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