AnyEvent

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

        - handle lone \015's properly in AE::Handle's default line read
          (reported by various people).
        - untaint ip addresses found in /etc/hosts (patch by José Micó).
        - the memleak fix in 7.03 caused resolving via /etc/hosts to always
          fail on first use (reported and testcase by Andrew Whatson).
        - expose AnyEvent::Log::format_time, and allow users to redefine it.
        - expose AnyEvent::Log::default_format, and allow redefinition.
        - expose AnyEvent::Log::fatal_exit, to allow redefinition.
	- AnyEvent::Debug shell can now run coro shell commands, if available.
	- t/63* tests were wrongly in MANIFEST.
        - kernel.org's finger server went MIA, switch to freebsd.org and
          icculus.org.
        - clarify that IO::AIO and AnyEvent::AIO are needed for AnyEvent::IO
          to function asynchronously (reported by Daniel Carosone).
        - hard-disable $^W in most tests, it generates too much garbage output.
        - use a (hopefully) more future-proof method to emulate common::sense.
        - upgrade to UTS-46:6.2.0.
        - switch to INSTLIB from INSTLIBDIR, as INSTLIBDIR was wrongly
          documented. should not affect anything.

7.04 Thu Nov 15 02:23:58 CET 2012
	- debugging code left in.

7.03 Thu Nov 15 02:16:11 CET 2012
	- AnyEvent::Socket::inet_aton did not work when dns resolution was
          used to find the addresses (analyzed and patch by Maxime Soulé).
        - fix a memory leak in the /etc/hosts lookup code when hosts don't
          resolve and are not in hosts (analyzed by sten).

7.02 Tue Aug 14 04:27:58 CEST 2012
	- AnyEvent::Util::run_cmd could block indefinitely (analyzed and test
          program by Yorhel).
	- verified that AnyEvent::Socket follows RFC5952.
        - try to parse "ADDR#PORT" in addition to "ADDR PORT".

7.01 Sun May 13 01:03:17 CEST 2012
	- fail with EPROTO in AnyEvent::Handle wqhen TLS is requested but
          not available, instead of throwing an exception.
	- use File::Spec to get the tmpdir in t/*, to avoid needless
          failures on (most, not mine :) windows boxes.
        - new handle read types: tls_detect and tls_autostart.

7.0  Fri Apr 13 06:33:30 CEST 2012
        - child watchers are broken in POE 1.352 (also many earlier
          versions) and there seems to be no way to work around it, as POE
          itself is inherently racy. Document this regression and add a delay
          in t/68_poe_03_child.t for the time being.
	- new module AnyEvent::IO, that is a frontend to either a pure-perl
          synchronous I/O implementation (AnyEvent::IO::Perl), or to the
          asynchronous I/O extension IO::AIO (AnyEvent::IO::IOAIO).
        - load /etc/hosts only when DNS has no answer.
        - stat /etc/hosts on every access and reload it if it changed.
        - load /etc/hosts via AnyEvent::IO - potentially asynchronous.
        - fix a buggy croak in the dh parameter reading in AnyEvent::TLS.
        - AnyEvent::Log log_to_file and log_to_path now use AnyEvent::IO. As
          a side effect, they now use true appending as opposed to libc
          appending, and the file might not have been opened when the function
          returns.
        - the default logging level was not properly documented in a variety of
          places, this has hopefully been rectified.
	- updated uts46data.pl for unicode 6.1.0.
        - made log messages generated by AnyEvent submodules not
          include the package name anymore, as it will be logged
          by default already.
        - upgrade to the trick used by common-sense 3.5 to work
          around extra warning torture/breakage under perl 5.15.x.
        - log messages by anyevent are now ucfirst, are usually full
          sentences and do no longer include the package name.
        - the storable read type would sometimes throw an exception instead
          of causing EBADMSG (analyzed by Maxime Soulé).
        - work around a bug in openssl 1.0.1 which enforces a minimum rsa
          keysize (reported by Paul Howarth).
	- documented Rocco fabricating statements about AnyEvent and me.

6.14 Tue Jan 31 20:00:24 CET 2012
	- AnyEvent::Impl::Tk was broken due to a mysterious "die" inside,
          probably an editing mistake (reported by Darin McBride).

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

Changes  view on Meta::CPAN

	- use Config module instead of POSIX module to detect signal names
          in AnyEvent::Strict and AnyEvent::Impl::EventLib, as the POSIX
          module doesn't even have all POSIX signals :/.
        - use more workarounds around the many refcnt/corruption bugs in
          Event::Lib.
        - work around a race condition in perl's select, causing t/03_child.t
          to rarely fail.

4.81 Thu Jul  9 10:30:30 CEST 2009
        - AnyEvent::Handle didn't properly diagnose write errors
          (it expected -1 from syswrite, how lame... :).
	- support file descriptors in addition to file handles
          in AnyEvent->io.
	- new env variables: PERL_ANYEVENT_RESOLV_CONF,
          PERL_ANYEVENT_MAX_OUTSTANDING_DNS, PERL_ANYEVENT_CA_FILE
          and PERL_ANYEVENT_CA_PATH.
        - provide a sensible synopsis section for AnyEvent::TLS.
        - add a "supported backends" section to the manpage.
        - added simple io watcher test to testsuite, using a
          portable_socketpair.
        - tried to improve the stability of the Event::Lib backend,
          YMMV.

4.8  Mon Jul  6 23:45:16 CEST 2009
	- AnyEvent::DNS did not properly follow CNAME records with
          uppercase targets.
        - AnyEvent::DNS would errornously return AAAA records
          with v4 mapped addresses (a faulty record) as ipv4 addresses,
          causing AnyEvent::Socket to throw an exception.
        - added new module AnyEvent::TLS for easier SSL/TLS context
          creation, with many options including hostname verification,
          secure default configuration, lots of documentation and,
          predefined diffie-hellman keys for perfect forward security
          and much more. get it while it's still fresh!
        - use AnyEvent::TLS in AnyEvent::Handle for context management.
	- load AnyEvent::Handle only on demand in AnyEvent::DNS,
          so AnyEvent::Socket users have smaller memory footprint
          in the common case.
        - add AnyEvent::Handle->push_shutdown method.
        - add an additional error message parameter to AnyEvent::Handle's
          on_error callback (for TLS, $! is still available).
        - add AnyEvent::Handle on_starttls/on_stoptls callbacks.
        - make AnyEvent::Handle more robust against early connection
          failures (during new), and return C<undef> in that case
          from the constructor.
        - AnyEvent::Handle will now try to load only JSON::XS first,
          then fall back to JSON.
        - format_ipv4/format_ipv6 are now exported by default, for symmetry,
          and because it was documented that way.

4.451 Fri Jul  3 00:28:58 CEST 2009
	- do not clear rbuf when shutting down an AnyEvent::Handle
          object - doing so breaks AnyEvent::HTTP.

4.45  Mon Jun 29 22:59:26 CEST 2009
        - a write error could cause AnyEvent::Handle to create
          an I/O watcher with an undefined $fh.
        - special-case mapped ipv4 addresses in both
          AnyEvent::Socket::format_address and parse_address,
          to treat them just like ipv4 addresses.
        - updated and overhauled the AnyEvent::Intro doc.
        - implement AnyEvent::Socket::format_ipv4/ipv6.
	- slightly speed up portable_pipe/socketpair.
        - expand condvar begin/end documentation.

4.42  Fri Jun 26 08:32:18 CEST 2009
	- preliminary and neccesarily incomplete support for IO::Async.
	- reset SIGCHLD to DEFAULT when AnyEvent is loaded, in
          case it was set to IGNORE, to ensure we can catch child statuses
          even when the calling env acts stupidly.
        - updated benchmarks with IO::Async, which performs very well.

4.412 Wed Jun 24 01:35:57 CEST 2009
	- support an "untaint" attribute for AnyEvent::DNS
          and set it on the default resolver.
	- implement and document AnyEvent::Impl::Perl::loop.
        - remove all anyevent-env variables from %ENV
          when running in tainted mode.
        - mention and extend the IO::Lambda benchmark.

4.411 Sun Jun  7 18:48:02 CEST 2009
	- do not try to use F_SETFD on windows.

4.41  Thu May 14 06:40:11 CEST 2009
        - work around issues in older perls (5.8.0?) when
          a signal handler is deleted from the %SIG hash.
        - use POSIX::_exit in child test, to avoid running
          destructors.
        - speed up CHLD handling by relying on SIGCHLD being
          synchronously delivered, even when we roll our own
          implementation.
	- AnyEvent::DNS: add the "dname" resource record name
          for cosmetic reasons.

4.4   Sun Apr 26 20:12:33 CEST 2009
	- implemented idle watchers, where applicable.
	- AnyEvent->time died when Event backend was in use.
        - fix a memleak in the Tk backend.
        - sped up Tk timer handling.
        - 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

Changes  view on Meta::CPAN

        - 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.



( run in 0.532 second using v1.01-cache-2.11-cpan-39bf76dae61 )