The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 6.01 - 2011-08-26

  • INCOMPATIBLE CHANGE: AnyEvent::DNS resource records now include the TTL as fourth element - this affects ->resolve, ->request 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 F</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 $_ 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.

Documentation

frequently asked questions
an introductory tutorial to AnyEvent

Modules

AE
simpler/faster/newer/cooler AnyEvent API
the DBI of event loop programming
fully asynchronous DNS resolution
debugging utilities for AnyEvent
non-blocking I/O on streaming handles via AnyEvent
AnyEvent adaptor for Cocoa::EventLoop
AnyEvent adaptor for EV
AnyEvent adaptor for Event
AnyEvent adaptor for Event::Lib
AnyEvent adaptor for FLTK (Fast Light Toolkit version two)
AnyEvent adaptor for Glib
AnyEvent adaptor for IO::Async
AnyEvent adaptor for Irssi
AnyEvent adaptor for POE
AnyEvent adaptor for AnyEvent's pure perl AnyEvent::Loop
AnyEvent adaptor for Qt
AnyEvent adaptor for Tk
simple logging "framework"
AnyEvent's Pure-Perl event loop
useful IPv4 and IPv6 stuff. also unix domain sockets. and stuff.
force strict mode on for the whole process
SSLv2/SSLv3/TLSv1 contexts for use in AnyEvent::Handle
various utility functions.

Provides

AE
in lib/AnyEvent.pm
in lib/AnyEvent/Log.pm
in lib/AnyEvent/Log.pm
in lib/AnyEvent/Log.pm
in lib/AnyEvent.pm
in lib/AnyEvent.pm
in lib/AnyEvent.pm
in lib/AnyEvent/Debug.pm
in lib/AnyEvent/Debug.pm
in lib/AnyEvent/Debug.pm
in lib/AnyEvent/Debug.pm
in lib/AnyEvent/Impl/Qt.pm
in lib/AnyEvent/Impl/Qt.pm
in lib/AnyEvent/Log.pm
in lib/AnyEvent/Log.pm
in lib/AnyEvent/Log.pm
in lib/AnyEvent/Log.pm