On Wed, Dec 05, 2007 at 01:05:31AM +0100, Jochen Stenzel <[EMAIL PROTECTED]> 
wrote:
> OK, I will check if this runs on Strawberry Perl. While it was a very
> handy distribution PxPerl is no longer maintained, so if the failure is
> specific to that compilation there is no urgent need to fix it.
> 
> But perhaps ... could there be be something like a "portability" section
> in the docs? Just as an idea, as without such notes a reader without
> special Windows API insight could expect things to work exactly as
> described, so such a section could be helpful.

The problem isn't the windows API, which EV doesn't use, but the perl
API, which EV has to use on windows, because windows doesn't have a file
descriptor concept. The perl API is a problem because it doesn't exist
in a stable form. I can only support the single perl I sometimes test with
(which is activestate perl).

I cannot say anything else about other perls, thats not really my job and not
really in my abilities.

If you want to use the POSIX model under windows, you will necessarily
have to learn a lot about the limitations of your particular perl,
but that doesn't belong in the EV documentation, but in the perl
documentation, because thats where it is implemented.

> but I am a bit irritated to hear it should not work in general as from a

You have to take that up to microsoft, not me, however, as I am not
responsible for that (check up on msdn for details).

> > Windows doesn't support this operation, [detailed explanation]
> 
> Thanks for this description, I wasn't aware if this.

In fact, windows *does* support this operation, as console handles
are special. It does not, however, work for anything else (pipes
etc.). Windows also has the limitation of a maximum of 64 objects that you
can wait on at the same time (this seems to be a kernel limitation even in
current versions of windows).

All EV (and perl) can do is provide some very crude and limited emulation for
something windows ultimately doesn't provide.

> >>     * The STDIN io watcher causes a very high load (100%).
> > 
> > Your callback doesn't check for errors (if windows provides any you will
> > get an revents with EV::ERROR set).
> 
> Yes, it was a very simple callback indeed.
> 
> For the error checking, sorry to mention the docs once more but could it
>  ... ? ;-)

I think it is clearly documented in the libev documentation (which also
has a lot of portability hints). The EV module only describes the perl
interface.

> Ok, thanks again for pointing this out. To sum it up, I really think
> these system dependencies are worth to be mentioned in the manual,

The problem is that with "system" you mean "all the various flavours of perl
under windows", and I think this clearly belongs into the documentation for
that relevant flavour.

(libev also has a native win32 for use outside perl, but it is not used in
EV because it has to be compatible to perl itself).

> order to make it clear to future users what they can expect on a certain
> system.

I think thats already done, the libev manual is quite saturated with
portability hints and backend characteristics.

-- 
                The choice of a
      -----==-     _GNU_
      ----==-- _       generation     Marc Lehmann
      ---==---(_)__  __ ____  __      [EMAIL PROTECTED]
      --==---/ / _ \/ // /\ \/ /      http://schmorp.de/
      -=====/_/_//_/\_,_/ /_/\_\      XX11-RIPE

Reply via email to