AnyEvent

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Perl extension AnyEvent.

TODO: document TCP_*** constants
TODO: add debug/trace logging to some modules
TODO: use the eval-with-cb-call trick also to speed up JSON?
TODO: FAQ: common pitfalls? invoke-before-return
TODO: FAQ: scope-ids? hosts file order?
TODO: AnyEvent::Handle with AnyEvent::IO?
TODO: invalid. and localhost. specialcasing inside AEDNS and not AESocket (rfc6761)
TODO: maybe implement env variable to give hosts precedence
TODO: more formats for parse_ipv6 (single ipv6 address without port, ...p80, ...#80)
TODO: inet_aton maybe pack C4? no, add a comment why not
TODO: socket prepare callbacks, can they easily signal failure as well?
TODO: Олег Г <verdrehung@gmail.com>, empty A record response causes
AnyEvent::resolve_sockaddr to eventually call pack_sockaddr with undef -
broken dns server, but maybe improve the response.

7.17 Wed Sep 18 03:04:49 CEST 2019
	- work around antique openssl version in RHEL 7  by formatting
          dh parameters differently (reported by several people).
	- add t/13_weaken.t.

7.16 Fri Jul 19 18:00:21 CEST 2019
	- add ffdhe group dh parameters from RFC 7919, and use ffdhe3072
          as new default, instead of schmorp1539.
        - AnyEvent::Log did not reassess logging status of
          AnyEvent::Log::logger's when contexts were changed with
          ->attach/detach/slaves, causing them to not log even though a
          recent attach should have caused them to log.
	- added some more logging configuration examples.
        - mention RFC 8482 in AnyEvent::DNS.

7.15 Tue Feb 26 03:07:42 CET 2019
        - INCOMPATIBLE CHANGE: AnyEvent::Handle's tls_detect documentation gave
          separate major and minor versions, while code passed only a single
          value. This version follows the documentation and now passes separate
          major and minor values.
	- work around Net::SSLeay not having been ported to openssl 1.1, but many
          distributions compiling it against openssl 1.1, which unfortunately
          succeeds and results in a very broken module.
        - AnyEvent::DNS::dns_unpack now stores the original DNS packet
          in the __ member, to allow decoding of undecodable resouce records
          containing compressed domian names.
	- AnyEvent::Socket::parse_ipv6 would NOT, as advertised, accept ipv4
          addresses. It now does and converts them to ipv4 mapped addresses.
        - support CAA records, based on patch by Steve Atkins.
        - add freenom and cloudflare nameservers as dns fallback.
	- AnyEvent::Strict would not properly ward against io watchers
          on files when the handle passed was a file descriptor.
        - document "internal" variables used by the dns en-/decoder to allow
          enterprising users to extend them in a semi-official way.

7.14 Sat Jun 24 01:44:19 CEST 2017
	- fix a crash bug in AnyEvent::Handle with openssl 1.1.0 (patched
	  by Paul Howarth and apparently tracked down by Mike McCauley).
	- AnyEvent::Handle->keepalive was documented (and defined) twice
          (found by Matt Merhar).
        - AnyEvent::Socket::tcp_bind/tcp_server would immediately unlink a unix
          listening socket unless a guard is used. Change this so that no
          cleanup will be performed unless a guard is used and document this more
          clearly.
        - make tcp_bind/tcp_server error messages more regular.
        - work around latest perl upstream breakage - this time, perl5porters were
          apparently bullied by a bogus CVE (CVE-2016-1238), and since distros
          stupidly apply anything that has "security fix" stamped on it, it's likely
          going to be a problem in practise (and working around it is trivial on
          windows and unix).
        - add TCP_FASTOPEN/MSG_FASTOPEN and MSG_NOSIGNAL/MSG_MORE/MSG_DONTWAIT
          to constants.
        - update warnings to common::sense 3.74 standards.

7.13 Sat Sep 17 04:31:49 CEST 2016
	- Only call tlsext_host_name for non-empty common names (reported
          by Maxime Soulé).
        - log a (single) notice message if SNI is not supported.
        - upgrade to UTS-46:9.0.0 draft and switch to non-transitional
          behaviour, beating thunderbird, ie, edge, chrome and safari to it :)
          (see also https://bugzilla.mozilla.org/show_bug.cgi?id=1218179)
        - turns out the UTS-46 IDNA testcase failures were indeed bugs in the
          testcases and the specification and not in the code - the post-9.0.0
          unicode files have all known problems fixed, so finally the AnyEvent
          IDNA implementation can pass the full IDNA testsuite - without needing
          a single fix :)
        - guarantee (and document) that condvar callbacks will be removed
          on invocation - important to avoid circular references.

7.12 Wed Jan 27 19:12:26 CET 2016
	- use common name as hostname for tls connects, if Net::SSLeay
          supports SNI.
        - fix documentation of tls_autostart read type in AnyEvent::Handle,
          analyzed by Felix Ostmann.

7.11 Thu Jul 16 14:36:00 CEST 2015
	- AnyEvent::Socket::parse_ipv6 could accept malformed ipv6
          addresses (extra "::" at end and similar cases).
	- add a more explicit warning to AnyEvent::Handle that it doesn't
          work on files, people keep getting confused.
        - new function AnyEvent::Socket::tcp_bind.
        - new functions AnyEvent::fh_block and AnyEvent::fh_unblock.
	- aligned ipv6 address formatting with RFC 5952 (by not shortening
          a single :0: to ::).
        - added stability canary support.

7.09 Sat May  2 16:38:53 CEST 2015
	- AnyEvent::Debug called an internal function (AnyEvent::Log::ft)
          that was renamed to AnyEvent::Log:format_time. uinder its old name
          (analyzed by Michael Stovenour).
        - update AnyEvent::DNS fallback resolver addresses:
          seems google effectively killed most other free dns resolvers,
          so remove them, but add cable and wireless (ecrc) since it was
          stable for 20 years or so, official or not, and there should be
          an alternative to google.
        - perl5porters broke windows error codes in 5.20, and mapped
          WSAEWOULDBLOCK on the (different) EWOULDBLOCK error code, and
          WSAEINPROGRESS into the incompatible ERINPROGRESS code, probably
          because they were so cool. They probably broke other error codes
          for no reason, too, but I didn't care for checking, it's too
          depressing. This version only works around the WSAEWOULDBLOCK
          issue, because I don't have a nice way to work around the
          WSAEINPROGRESS bug.

7.08 Wed Dec 10 05:27:17 CET 2014
        - work around a newly introduced bug in Socket 2.011 (an
          errornous sun_length check) (analyzed by Maxime Soulé).
	- AnyEvent::TLS didn't load (but refer to) AnyEvent::Socket
          (analyzed by Ben Magistro).
        - AnyEvent::Strict will now confess, not croak. This is in line with

Changes  view on Meta::CPAN

          and ->dns_unpack indirectly. Convenience functions such as
          AnyEvent::DNS::{a,txt,mx,srv} are not affected, neither is
          AnyEvent::Socket.
        - INCOMPATIBLE CHANGE: backend authors now should not implement
          one_event or loop, but instead the AnyEvent::CondVar::_wait and _poll
          methods.
        - INCOMPATIBLE CHANGE: verbosity levels have been redefined, see
          AnyEvent (PERL_ANYEVENT_VERBOSE) and AnyEvent::Log for details.
        - DEPRECIATION: please change
          "use AnyEvent::Impl::Perl" to "use AnyEvent::Loop" and
          "AnyEvent::Impl::Perl::loop" to "AnyEvent::Loop::run"
          in your programs, for future compatibility.
        - *blush* idle watcher emulation was borked.
        - AnyEvent::Strict now checks the AE::xxx functions as well.
        - querying too long domain names would barf deep inside AnyEvent::DNS - since
          this is hard to avoid for applications, AnyEvent:.DNS::request now checks for
          for too long domain names explicitly and passes an undef to the callback
          instead (reported by James Bromberger).
        - make AnyEvent::Util more robust against EINTR (analyzed by Andrew Suffield).
        - new functions: AnyEvent::postpone, AnyEvent::log.
        - new module: AnyEvent::Log, for simple logging needs.
        - new env variable, PERL_ANYEVENT_LOG, for fine-grained logging config.
        - new env variable, PERL_ANYEVENT_DEBUG_SHELL, to automatically start
          a debug shell.
        - new env variable, PERL_ANYEVENT_DEBUG_WRAP, to automatically enable
          watcher instrumentation/wrapping (see AnyEvent::Debug::wrap).
        - new env variable, PERL_ANYEVENT_HOSTS, to override the place where
          /etc/hosts can be found.
        - an empty PERL_ANYEVENT_RESOLV_CONF now selects the default
          configuration.
        - env variables can now be specified using AE_xyz instead of
          PERL_ANYEVENT_xyz, subject to some rules.
        - lots of new AnyEvent::Debug functionality.
        - AnyEvent::Strict now checks for modifications of $_ by the callback
          (by setting it to readonly while executing the callback, if possible).
        - IO::Async sometimes cancels the wrong timer when you call cancel_timer.
          Invest extra overhead to work around this peculiar behaviour.
        - split the pure perl backend into a loop module and an impl
          module (AnyEvent::Loop and AnyEvent::Impl::Perl).
        - some read types (regex, netstring, json, storable) could
          errornously keep an AE::Handle object alive on their own
          (reported by Mohammad Toossi).
        - AnyEvent::Socket::resolve_sockaddr and all functions using it now
          supports /etc/hosts overrides.
        - add more workarounds around child watcher bugs in IO::Async
          and (newly introduced) in POE.
        - use glib child watchers and try to work around its limitations,
          if possible (based on a patch by Kevin Ryde).
	- add support for FLTK (fltk2), via AnyEvent::Impl::FLTK2.
        - many read types in AnyEvent::Handle would malfunction during
          transitions to TLS because of a "delete $self->{rbuf}".
          (reported by Gerald Galster).
        - improve condvar blocking wait performance (probably only noticable
          with faster backends), also make it easier for event loops that
          do not support blocking waits.
        - PERL_ANYEVENT_MODEL now also allows full module names, although
          the usefulness of this feature is not yet clear.
        - add tests for all supported event loops, conditional on PERL_ANYEVENT_LOOP_TESTS.
        - add t/80_ssltext.t.
        - no longer use AUTOLOAD for the initial loading (for no very good reason).
        - tcp_server now tries to unlink unix domain sockets when it gets destroyed.
        - do not run event loop detection multiple times when programs call their cached
          copies of AnyEvent::detect.
        - parse_hostport now accepts absolute paths als unix domain sockets.
        - suppress the idiotic warning inside POE by patching the POE::Kernel
          run flags instead of asking the user to jump through contortions.
        - add Task::Weaken as dependency (as recommends only at this time).
        - replace PF_UNSPEC by 0, for good old minix.

6.0 (not officially released, but was on CPAN for about 15 minutes :/)

5.34  Thu May 12 09:59:41 CEST 2011
	- AE::TLS didn't support both cert_file and key at the same time,
          due to some copy&paste bug (reported and analyzed by vti).
	- improve AE::Handle timeout documentation slightly.

5.33  Mon Feb  7 21:51:41 CET 2011
	- never appeared on CPAN, for unknown reasons.
	- AnyEvent::Handle on_connect_error - do not try to destroy a handle
          object when it's already gone (analyzed by Ryan Bullock).
	- update idna algorithm(s) to UTS#46 version 6.0.0.
        - preserve trailing dot in idn_to_ascii - testsuite says to preserve,
          uts46 says it's an error, and testsuite makes more sense.
        - remove leading dots in idn_to_ascii - testsuite says to remove,
          uts46 says it's an error, and testsuite makes more sense.
        - fixed a bug in idn ignored character processing.
        - passes the uts46 6.0.0 testsuite except for three cases which
          apparently are bugs in the testsuite itself.
        - passes the uts46 6.0.1 testsuite except for eleven cases which
          apparently are bugs in the testsuite itself.

5.31  Sun Jan 23 11:49:19 CET 2011
	- work around a POE bug where POE would first poll for new events and
          invoke handlers BEFORE handling the message queue.
	- fix parsing of "domain" statement in resolv.conf (Johannes Plunien).
	- stop_read now does just that in TLS mode. see its
          documentation for caveats.
	- update to common::sense 3.4 warning set (some warnings in perl impose
          an arbitrary 32kb limit on regex matches, which affects
          AnyEvent::Handle).
        - AE::Handle had a broken rbuf_max method and missing wbuf_max method.
        - new experimental AE::Handle::resettls method.

5.3    Fri Dec 31 05:48:13 CET 2010
	- major IOAsync patch by Paul Evans - 0.33 is required, as the major
          issues with IO::Async have been solved in that version, including
          the availabilty of a default loop!
	- implement new wbuf_max parameter for AnyEvent::Handle.
        - added Cocoa::EventLoop backend by Daisuke Murase.
        - the default testsuite now honors PERL_ANYEVENT_MODEL (Paul Evans).
        - clarify handle on_prepare documentation.
	- set CLOEXEC flag on parent-side fd's in AnyEvent::Util::run_cmd,
          to avoid leaking them to any child processes.
        - try to force files into the arch-dependend lib directory, for the
          half-"turly obsessive compulsive person"(s) that depend on it.

5.29   Sun Dec  5 10:49:21 CET 2010
        - convert EV backend to EV 4.00 API (so better upgrade EV too).
        - AE::Handle: implement dynamic read_size adjustment, add
          max_read_size parameter, reduce default read_size to 2048.
        - add some FAQ entries for servers and/or on_eof vs. on_error.
	- work around OS bugs (cygwin again) when lingering in AE::Handle.
        - reduce memory usage slightly when connect was used in AE::Handle.
        - wrok around more segfaults in Tk.
        - document tls_ctx => undef as valid.
        - detect WNOHANG value at compiletime.
        - include some probably linux-only support for building AnyEvent
          as part of the perl core.

Changes  view on Meta::CPAN

        - clip negative "after" values to 0 in AnyEvent::Impl::Event
          to avoid spamming out warning messages.
        - fix Qt timers without interval.
        - avoid Qt zero-timeout special case, in old libqt's.

4.352 Mon Apr 20 16:31:11 CEST 2009
	- fix AnyEvent::Strict error messages for child watchers.
        - fix/update Makefile.PL "recommends" versions.
        - add AnyEvent->now_update.

4.351 Sat Apr 11 07:56:14 CEST 2009
        - actually make the signal pipe work under win32.
        - localise $! in signal handler to avoid changing $!, although
          perl itself does not seem to save/restore errno either.
	- set the cloexec flag on the signal pipe (normally set by perl too).

4.35  Fri Mar 27 11:48:20 CET 2009
        - event models relying on AnyEvent's signal watcher emulation did
          invoke the callback asynchronously, contradicting documentation
          and causing signals to get lost (this includes AnyEvent's own
          event loop). AnyEvent now uses the standard pipe trick to make
          callback execution synchronous to the event loop.
        - AnyEvent::Handle didn't free TLS context data on DESTROY
          (patch by Pavel Shaydo).
        - work around the ever-incompatibly-changing API of MakeMaker.
        - document that changing global variables without restoring them
          is a bad idea in Perl (noted by Adam Rosenstein).
        - AnyEvent::Strict now barfs if ->io is passed a file.

4.34  Thu Feb 12 18:32:45 CET 2009
	- separately buffer TLS read data, as otherwise the read queue could
          deadlock as receiving data is not expected while draining the
          read queue (which cna only happen with TLS).
	- raise EBADMSG error on JSON decoding errors.
        - fix some minor manpage bugs (reported by Maximilian Gaß).
        - speed up select bitmask parsing quite a bit in the pure perl
          backend.
        - use CORE::select instead of just select in AnyEvent::Impl::Perl.

4.331 Tue Jan  6 21:07:25 CET 2009
	- socketpair fails on many vista machines because vista has
          completely broken accept/getpeername and getsockname functions,
          so we provide our own socketpair emulation that kind of works
          (AnyEvent::Util::portable_pipe).
        - new function: AnyEvent::Util::portable_socketpair.
	- take advantage of the Guard module if it exists.

4.33 Fri Nov 21 02:35:40 CET 2008
	- AnyEvent::Strict did errornously flag a fileno of 0 as
          illegal.
	- reduce memory usage and slightly speed up the pure perl backend
          by only storing the file descriptor, not the file handle.
        - add missing autocork method to AnyEvent::Handle (reported
          by Adam Rosenstein).
        - AnyEvent::DNS->resolve errornously documented an $rcode result
          argument, but there isn't (spotted by Henrik Krohns).
        - the naked truth about Tk - it's basically unmaintained.

4.32 Mon Nov  3 22:46:32 CET 2008
	- fix AnyEvent::Socket::resolve_sockaddr to properly support
          unix sockets again and choose a proper default for
          the socket type.
        - fix call to resolve_sockaddr in tcp_connect.

4.31 Thu Oct 30 04:41:48 CET 2008
	- implemented AnyEvent::Handle->destroy method.
	- hint about unexpected effects in TLS mode.
        - speed up AnyEvent::Impl::Perl by using more arrays
          instead of hashes without the slightest loss of readability :)
        - work around a perl argument refcounting bug.
        - with some perl patches applied, AnyEvent now seems leak-free.

4.3  Fri Oct  3 09:18:43 CEST 2008
	- AnyEvent will now install a no-op signal handler for SIGPIPE,
          unless one has been installed already.
        - warn about not loaidng AnyEvent::Impl::POE early enough
          (patch by Adam Rosenstein).
	- fixed a great number of bugs and corner cases in AnyEvent::Handle.
        - fix a bug in where in SSL connect mode, the
          client would first wait for some data by the server and
          otherwise hang. (reported and analysed in an absolutely
          exemplary manner by Adam Rosenstein).
        - fix a bug in where SSL EOF would not be treated
          as stream EOF, putting the connection into a hung state.
          (reported and analysed in an absolutely exemplary manner by Adam
          Rosenstein).
        - fix a potential segfault when the TLS context
          would go missing in a read callback (e.g. due to stoptls) -
          Net::SSLeay of course makes no type checking whatsoever.
        - AnyEvent::Handle will not stop the read watcher in TLS mode.
        - AnyEvent::Handle->stoptls will send a TLS close notify
          instead of simply destroying the stream now.
        - fix a bug where large blocks of data written in TLS mode
          would not be sent unless triggered by receives.
        - on_drain will now take the tls write buffer into account.
        - SSL operations have been streamlined a bit and should be faster
          now, more to come, though.
        - added a FAQ section, will document nontrivial issues in there.

4.234 Mon Sep 29 04:08:13 CEST 2008
	- fix child watcher documentation: only child exits will be reported,
          no trace events.
        - mention SIGPIPE in AnyEvent::Handle.
	- perl backend will now use POSIX::times as monotonic clock
          when available and the monotonic clock option is not.
        - run even without Time::HiRes in some cases now, but do not
          provide sub-second accuracy (all *supported* perl versions have
          Time::HiRes).

4.233 Fri Aug 22 01:48:05 CEST 2008
	- fix a bug in the testsuite, causing a hang.
        - clarified lots of AnyEvent::Handle constructor arguments.

4.232 Thu Aug 21 20:44:25 CEST 2008
	- fix a bug in AnyEvent::Handle that could cause two fatal error
          callbacks on EOF, which caused AnyEvent::HTTP to signal success twice
          (testcase by Leon Brocard).
        - clarified on_eof/on_error documentation a bit.

4.231 Tue Jul 29 13:12:15 CEST 2008
        - remove some debugging code left in AnyEvent::Util::fork_call

Changes  view on Meta::CPAN

        - Fixed a bug in DNS SRV priority sorting.
        - AnyEvent::Util::guard now reports runtime errors while
          executing the guard block as warnings.
        - handle 0-byte-reads just before EOF correctly in AnyEvent::Handle.

4.13 Thu Jun  5 00:47:59 CEST 2008
	- AnyEvent::DNS only followed cname chains with length 2,
          contrary to documentation. bumped it up to 10, thanks to
          microsoft, the current broken-dns-config-king.
        - AnyEvent::DNS didn't check for socket return status
          but instead relied on perl not creating filehandles in that
          case - too bad it gives you a bogus file handle (reported
          and analysed by Vladimir Timofeev).
	- fix queue management logic in AnyEvent::Handle:
          when on_read was registered, the queue was empty
          and no progress could be made AnyEvent::Handle would
          enter an endless loop.
        - correctly start reading again when the handle became
          busy again after idling.
        - correctly treat tls shut-downs as EOF condition
          (for the time being, would be nice to have a callback for that).
        - correctly call eof callback under all conditions
          (hopefully).
        - the timeout callback did not expect that $self can go
          away any time.

4.12 Tue Jun  3 10:58:04 CEST 2008
	- include AnyEvent::Intro, a tutorial for anyevent,
          anyevent::socket and anyevent::handle.
        - allow more options in on_error.

4.11 Fri May 30 23:42:25 CEST 2008
        - INCOMPATIBLE CHANGE: replace ptr by real PTR lookup, provide
          reverse_lookup and reverse_verify to replace it, support
          v4mapped and v4compat addresses.
	- provide more documentation for the resolver class.
        - really replace longest run of :0: by :: in format_address,
          also properly convert :: and ::1 again.
        - support NAPTR record name and decode it.
        - implement random weight sampling for SRV records, as per
          rfc 2782.
        - correctly abort on srv-record targets of ".".
        - added AnyEvent::DNS::wait_for_slot.
        - in the unlikely event of a virtual circuit connection
          being invalidated by a delayed udp reply, AnyEvent::DNS
          could die. this has been fixed.
        - plug a probable memleak in the DNS vc code.
        - use configured timeout also for VC request phase.
        - implement timeout and max_outstanding methods
          for resolver class.
        - update version numbers in all modules.

4.1  Thu May 29 05:45:40 CEST 2008
	- INCOMPATIBLE CHANGE: renamed xxx_ip functions to xxx_address
          which mirrors their purpose better (old names still available
          for a while). Also moved AnyEvent::DNS::addr to
          AnyEvent::Socket::resolve_sockaddr.
	- implement AnyEvent->time and AnyEvent->now.
        - fix IPv6 support in pack_sockaddr.
	- officially un-experimentalise all newly introduced code.
        - support unix domain sockets everywhere by specifying
          a host of "unix/" and the pathname as service.
        - implement an activity timeout in AnyEvent::Handle.
	- added a regex read type to AnyEvent::Handle.
	- added a json read/write type to AnyEvent::Handle.
        - always croak in on_error in AnyEvent::Handle.
        - document how to subclass AnyEvent::Handle.
        - implement AnyEvent::Util::fork_call.
        - add support for IPv6 nameservers and nameserver statements.
        - work around _yet_ _another_ windows perl bug in where empty
          select masks cause errors in the pure perl backend (this
          workaround cannot be implemented for the other event loops,
          but EV also works around this).
        - supply AnyEvent::Socket::address_type and make good use of it.
        - clarify and fix the Handle documentation w.r.t $self vs. $handle
          vs. callback arguments.
	- add some recommends to the META.yml.

4.05 Mon May 26 19:44:06 CEST 2008
        - some platforms ignore the rfc and prepend an extra sa_len member to
          the sockaddr structure, cater for those. also use sockaddr_family,
          didn't know it was there, but comes in handy for the workaround.
	- undo the import WIN32 hack.

4.04 Mon May 26 08:03:31 CEST 2008
	- try to work around yet another windows bug: failed connects are reported
          as if it were out-of-band data. windows users: you suck. Only
          EV, Glib, Event and the pure perl backend can handle this condition.
        - optimize write algorithm in AnyEvent::Handle.
	- properly parse PERL_ANYEVENT_PROTOCOLS and use the info correctly.
        - tcp_connect now properly iterates through all targets.
	- check wether IPv6 sockets can actually be created, otherwise, disable ipv6
          support entirely. also hardcode some AF_INET6 constants for the
          sake of perl 5.8.
        - vastly improved nameserver/suffix detection algorithm for windows
          (still a hack...)
        - try to use a fallback dns server if no dns servers could be found.
        - splatter around some local $SIG{__DIE__}'s to work around bad
          die handlers.

4.03 Sun May 25 05:05:57 CEST 2008
	- work around perl bugs on windows, where perl returns undocumented
          error codes for sysread, syswrite etc.
	- fix AnyEvent::Handle::unshift_read to really unshift and not push.
        - AnyEvent::Handle could sometimes stumble over 0-byte writes.
        - fix unpack_sockaddr, now works for AF_INET6 sockaddr's.
        - updated documentation.
        - lots of workarounds for perl 5.8 quirks.
        - implement a more flexible type system for both reads and writes
          in AnyEvent::Handle.
        - support IPv6 in tcp_server.
        - pass local hostname and port to the prepare callback in tcp_server.
        - make types extendable in AnyEvent::Handle.
        - croak, not die, in AnyEvent::Handle;

4.0  Sat May 24 19:58:08 CEST 2008
	- added (experimental) AnyEvent::DNS module.
        - added (experimental) AnyEvent::Socket module.
        - added (experiemntal) support for TLS/SSL in AnyEvent::Handle.
        - make condvar->end call ->send as documented.
        - make condvar constructor support the documented cb => argument.
        - overload condvars so you can use them instead of code references.
        - support more of the POSIX forms instead of a pure dotted quad for
          verbatim ip addresses.
        - AnyEvent::Socket::inet_aton will use AnyEvent::DNS now and not fork anymore.
	- try very hard not to freeze on broken windows perls.
        - make on_eof optional in AnyEvent::Handle.
	- support service names in tcp_connect and tcp_server.
        - work around netbsd/openbsd bug causing unix sockets not to
          become writable until empty.
	- only make a dummy read for error detection when getpeername
          returns ENOTCONN.
        - defend AnyEvent::Util::inet_aton against Coro::LWP's brutal
          override.
        - new AnyEvent::Guard::cancel.

3.5  Sat May 17 23:17:14 CEST 2008
	- gracefully deal with systems not defining CLOCK_MONOTONIC
          (as opposed to not supporting the clock itself, which worked in 3.41).
	- added AnyEvent::Util::tcp_connect and AnyEvent::Util::tcp_server
          helpers, to replace the ill-designed AnyEvent::Socket class.
	- added some examples (eg/connect, eg/handle).
	- added AnyEvent::Util::guard.
        - AnyEvent::Util now exports most of its functions.
	- fixed a bug in *_read_chunk, where the callback was called with $self as
          first and second argument.
        - simplified and fixed regex handling in AnyEvent::Handle::*_read_line.
	- fix manpage condvars examples to use new syntax.
        - considerably improve inet_aton with EV::ADNS backend to support
          cname chains (common dns configuration bug, e.g. with www.google.de)
          and aaaa records if no a record could be found.

3.41 Sun May 11 19:53:13 CEST 2008
	- work around a bug in perl 5.8.8's local. Reported by Yi Ma Mao.

3.4  Sun May 11 00:29:25 CEST 2008
	- complete re-implementation of condvars with a hopefully much more useful
          API (backward compatible functions exist but are undocumented).
	- AnyEvent::Handle fully rewritten with a hopefully more powerful API
          (still subject to change).
	- take advantage of CLOCK_MONOTONIC, if available, in AnyEvent::Impl::Perl.
        - provide AnyEvent::post_detect and @AnyEvent::post_detect, which
          allows module authors to avoid forcing event loop detection.
          (used by Coro::AIO, Coro::BDB, Coro::AnyEvent for example).
        - remove coro backends: Coro now provides generic support for AnyEvent
          via Coro::AnyEvent.

3.3  Mon Apr 28 09:51:06 CEST 2008
        - added AnyEvent::Handle, AnyEvent::Socket and AnyEvent::Util modules.
        - fix a bug in the pure perl backend that kept watchers alive
          when multiple watchers were registered for the same fh/poll combo.
	- add a benchmark section showing AnyEvent overhead and comparing
          the different event loops with each other.
        - prefer pure perl over tk when autoprobing, as it's about as fast,
          but doesn't crash with many watchers.
	- declare Qt support non-experimental.
        - clarify the confusing section about the file descriptor being
          kept alive.
        - document the race between loading of an event module and
          child processes exiting.
        - support POE as "backend" (with some caveats, POE is not generic
          enough, and darn slow).
        - support Wx and Prima through POE.
        - optimise perl backend to use 20% less memory and take advantage
          of typical timeout behaviour. It can now compete with
          select/poll-based C event loops in most cases (it is usually
          faster than Event and Glib :).
        - roughly cut EV memory use in half and increase its speed by 30%,
          by removing undocumented functionality. Did something similar



( run in 2.649 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )