--- AnyEvent/Changes 2011/08/15 18:58:29 1.473 +++ AnyEvent/Changes 2012/01/12 06:27:44 1.523 @@ -1,24 +1,77 @@ Revision history for Perl extension AnyEvent. TODO: document TCP_*** constants -TODO: catch AE::xxx for anyevent strict and anyevent debug -TODO: anyevent::trace? or debug tracing all watchers? -TODO: anyevent strict checking for $_ changes? - -TODO: parse_unix??? -TODO: logging? / trace_level - -6.01 - -6.0 (not officially released) - - INCOMPATIBLE CHANGE: AnyEvent::DNS resource records now include - the TTL as fourth element - this affects ->resolve directly, - and ->request and ->dns_unpack indirectly. Convenience functions - such as AnyEvent::DNS::{a,txt,mx,srv} are not affected, neither - is AnyEvent::Socket. +TODO: add debug/trace logging to some modules + +6.13 Thu Jan 12 07:27:01 CET 2012 + - AnyEvent::Util::fork_call checked for POSIX availability in the wrong way, + causing it to fail if POSIX wasn't loaded already (analysed by Rock Power). + - AnyEvent::Handle::push_read (line => did pass $1 directly, so + regex-matching inside the callback would change the parameter, despite + $1 being dynamically scoped per-block. this perl bug is now being + worked around (testcase by Cindy Wang). + +6.12 Mon Dec 12 13:21:10 CET 2011 + - $! was clobbered by subsequent calls in tcp_connect, due to + the postpone not saving/restoring it (analyzed by Richard Garnish). + +6.11 Tue Nov 22 10:36:05 CET 2011 + - Tk cannot create windows when tainted unless you set a title, so + set a dummy title for AnyEvent's dummy mainwindow. How dummy. + - escape any nonprintable/nonascii characters when stringifying + backtraces. + - log the reason loading an interface module fails to load at level debug. + +6.1 Tue Oct 4 19:44:30 CEST 2011 + - INCOMPATIBLE CHANGE: the default log level is now "4" (error + and above), and some messages inside AnyEvent have been elevated + to higher log levels to print by default. + - AnyEvent::log, unlike AnyEvent::Log::log, did not always exit on fatal. + - work around yet another signal race bug, newly introduced by POE. My + how that module sucks. + - add google public ipv6 dns as fallback servers, so AE::DNS can finally + support ipv6-only operation even with defaults (also use ::1 instead + of 127.0.0.1). + - give better guidelines on how to chose a logging level. + - AnyEvent::Log can now cap (limit) log message priority by context. + - AE::log will now save and restore $! and $@, so callers don't have to. + - AE::Strict now checks that registered fds are still valid at regular + intervals. + - skip frequently called 'require' calls if the module appears loaded. + - increase signal latency test timer considerably for poor little osx, + which can't be bothered with basic posix functionality such as signal + delivery. + - mention some debugging aids in the tutorial. + - new env variable PERL_ANYEVENT_MAX_SIGNAL_LATENCY. + - private (%namespace) log contexts in PERL_ANYEVENT_LOG now have the name + of the context as title. + - AnyEvent::Strict would not restore read-write access to $_ when a callback + died - this is a user bug, but since AE::Strict exists to help dbeugging... + - detect the extremely evil IO::Async::Loop::AnyEvent module and refuse + to work with it - the author is well aware of the issues but refuses + to fix them. This extreme step has been taken because the module actively + attacks the goals of AnyEvent and makes it harder for module authors to use + AnyEvent. + +6.02 Fri Aug 26 20:08:31 CEST 2011 + - log_to_syslog now accepts facility strings. + - log_to_syslog would not allow facilities - "$facility|$level" + *literally* means that string. sheesh. + - the CPAN parser got confused and thought we provide Sys::Syslog, try + to work around. + - renamed AnyEvent::Impl::FLTK2 to FLTK. + +6.01 Fri Aug 26 07:04:11 CEST 2011 + - 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" @@ -30,13 +83,22 @@ 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 function: AnyEvent::postpone. + - 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 $_ by the callback. + - 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 @@ -44,6 +106,8 @@ - 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, @@ -64,6 +128,12 @@ - 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,