--- cvsroot/EV/Makefile.PL 2007/11/22 04:52:24 1.23 +++ cvsroot/EV/Makefile.PL 2007/12/22 05:47:52 1.29 @@ -40,7 +40,8 @@ reliably. Unfortunately, some systems are bound to be broken, so you can disable this here: you can completely disable the detection and use of the monotonic clock by answering 'n' here. Support for this clock type -will otherwise be autodetected at both compile- and runtime. +will otherwise be autodetected at both compile- and runtime. (this setting +currently affects the use of nanosleep over select as well). EOF @@ -118,13 +119,13 @@ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** -EV by default uses select, which makes it hard to write efficient servers, -especially if the number of active connections is much lower than the open -ones. GNU/Linux systems have a more scalable method called "epoll", which -EV can use. For this to work, both your kernel and glibc have to support -epoll, but if you can compile it, the detection will be done at runtime, -and EV will safely fall back to using select when epoll isn't available. -If unsure, accept the default. +Select and poll make it hard to write efficient servers, especially if the +number of active connections is much lower than the watched ones. GNU/Linux +systems have a more scalable method called "epoll", which EV can use. For +this to work, both your kernel and glibc have to support epoll, but if you +can compile it, the detection will be done at runtime, and EV will safely +fall back to using select when epoll isn't available. If unsure, accept +the default. EOF @@ -140,18 +141,18 @@ safe fallback to other methods when it cannot be used. Note that kqueue is broken on most operating systems, so it defaults to -'n' on most platforms that claim to support it. Here is what we know: +'n' on everything but netbsd. Here is what we know: -OS X: completely, utterly broken on at least <= 10.5. -FreeBSD: broken on at least <= 6.2-STABLE, - sockets and pipes *might* work, ptys definitely don't. -NetBSD: reports indicate that it likely WORKS. Yeah! :) +NetBSD: partially working in at least 3.1. Yeah! :) +FreeBSD: broken on at least 6.2-STABLE, + sockets *likely* work, ptys definitely don't. OpenBSD: reports indicate that it likely doesn't work (similar problems as on FreeBSD). +OS X: completely, utterly broken on at least < 10.5. EOF -my $can_kqueue = $^O =~ /netbsd/i && -e "/usr/include/sys/event.h"; +my $can_kqueue = -e "/usr/include/sys/event.h"; $DEFINE .= " -DEV_USE_KQUEUE=" . (0 + (prompt ("Enable kqueue backend (y/n)?", $can_kqueue ? "y" : "n") =~ /[yY]/)); @@ -161,12 +162,12 @@ Similarly to the kqueue backend above, EV can take advantage of the -solaris 10 port interface. Support for port will be detected at runtime, -with a safe fallback to other methods when it cannot be used. +solaris 10 event port interface. Support for event ports will be detected +at runtime, with a safe fallback to other methods when it cannot be used. EOF -$DEFINE .= " -DEV_USE_PORT=" . (0 + (prompt ("Enable port backend (y/n)?", (-e "/usr/include/sys/port.h") ? "y" : "n") =~ /[yY]/)); +$DEFINE .= " -DEV_USE_PORT=" . (0 + (prompt ("Enable event port backend (y/n)?", (-e "/usr/include/sys/port.h") ? "y" : "n") =~ /[yY]/)); print < 2.6) : (); @@ -203,7 +219,7 @@ depend => { "EV.c" => "EV/EVAPI.h " . "libev/ev.c libev/ev.h libev/ev_epoll.c libev/ev_select.c libev/ev_kqueue.c libev/ev_poll.c " - . "libev/event.h libev/event.c evdns.h evdns.c libev/ev_vars.h libev/ev_wrap.h", + . "libev/event.h libev/event.c libev/ev_vars.h libev/ev_wrap.h", }, INC => "-Ilibev", DEFINE => "$DEFINE", @@ -215,7 +231,6 @@ VERSION_FROM => "EV.pm", PM => { 'EV.pm' => '$(INST_LIBDIR)/EV.pm', - 'EV/DNS.pm' => '$(INST_LIBDIR)/EV/DNS.pm', 'EV/EVAPI.h' => '$(INST_LIBDIR)/EV/EVAPI.h', 'EV/MakeMaker.pm' => '$(INST_LIBDIR)/EV/MakeMaker.pm', 'libev/ev.h' => '$(INST_LIBDIR)/EV/ev.h',