--- Coro/Changes 2006/11/05 19:16:09 1.141 +++ Coro/Changes 2006/12/04 03:54:44 1.174 @@ -1,8 +1,52 @@ Revision history for Perl extension Coro. -TODO: possibly convert some of the Event modules into AnyEvent users. +TODO: transfer flags must be per state +TODO: better (earlier) error messages on broken transfer's - - converted Coro::Select to AnyEvent. +3. + - give a better error message on deadlock. + - enhanced testsuite. + +3.01 Sun Dec 3 23:47:42 CET 2006 + - forgot to include Coro::Timer. + +3.0 Sun Dec 3 22:57:25 CET 2006 + - the "FINALLY COMPLETELY STABLE" release (coming soon: + the "FAMOUS LAST WORDS" release). + - implement a new stack sharing algorithm, which uses a stack + pool (size currently hardcoded). + - 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 now uses asynccheck as prepare does not + check for changed watchers. + - Coro::Event allows multiple waiting coros and will wake up one + per event. + - Coro::Event should be cleaner and more efficient now. + - new utility function Coro::unblock_sub. + - document the sad fact that Event is no longer reentrant. + - 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. + - removed Coro::Cont, it was a misnomer (it's generators), + and it was somewhat annoying to get it right. Will come back + if somebody asks for it :) + - many ->wait methods and Coro::Event could return + spuriously without the event having happened. + +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). @@ -14,7 +58,6 @@ - emulate undocumented(!) functionality of IO::Socket required by LWP(!!). - updated eg/lwp to work with newer lwp's. - - made Coro::Util an AnyEvent user, moved it to Coro/. - remove "FATAL: uncaught exception" prefix. Coroutines that die kill the whole process, just as exceptions in the main "coroutine" did already.