--- Coro/Changes 2006/11/02 19:20:01 1.135 +++ Coro/Changes 2006/12/01 02:17:37 1.163 @@ -1,8 +1,46 @@ Revision history for Perl extension Coro. -TODO: possibly convert some of the Event modules into AnyEvent users. +3.0 + - the "FINALLY COMPLETELY STABLE" release (coming soon: + the "FAMOUS LAST WORDS" release). + - implement a new stack sharing algorithm. + - make stack sharing mandatory (it no longer uses a heuristic). + - eval/die no longer cause weird problems under heavy use. + - Coro::Event could cause livelocks if it was used but + no Coro::Event watchers were used. + - Coro::Event should be cleaner and more efficient now. + - putting a coroutine into the ready queue twice could under + some circumstances lead to stack corruption. + - minor incompatibility: subclassing Coro::State is supported + directly now without going through a _coro_state member. + - state/coro switching is much faster now. + - very minor optimisations and code/documentation cleanup. + - avoid problems due to compiler inlining. + - removed timers from Coro::Timer -> use AnyEvent instead. + - replaced Coro::idle coroutine by (cleaner) idle handler. + - updated to newest libcoro. + - implement enhanced support for valgrind. + - implement is_ready and return value for ready. + - many ->wait methods and Coro::Event could return + spuriously without the event having happened. - - should compile with perl 5.9.x now. +2.5 Tue Nov 7 12:22:33 CET 2006 + - made Coro::Util, Coro::Select, Coro::Handle and Coro::Socket + use AnyEvent, moved them to Coro/. + - added Coro::LWP which contains all the uglyness required to + make LWP non-blocking. + - should work with perl 5.9.x now (Andreas König made me do it). + - fixed another bug in Coro::Select when the timeout was undef. + - reuse PL_start_env for all coros, saves some memory per coroutine. + - manage PL_top_env differently, hopefully to avoid panic: top_env. + - timeout argument was not properly used in Coro::Socket. + - allow limited forms of subclassing in Coro::Handle/Coro::Socket. + - emulate undocumented(!) functionality of IO::Socket required + by LWP(!!). + - updated eg/lwp to work with newer lwp's. + - remove "FATAL: uncaught exception" prefix. Coroutines that die + kill the whole process, just as exceptions in the main "coroutine" + did already. 2.1 Wed Nov 1 23:01:13 CET 2006 - fix a long-standing bug in Coro::Select where select with