--- Coro/Changes 2008/09/24 21:32:38 1.375 +++ Coro/Changes 2008/11/14 07:22:11 1.411 @@ -1,11 +1,89 @@ Revision history for Perl extension Coro. -TODO: should explore PerlIO::coroaio. +TODO: should explore PerlIO::coroaio (perl leaks like hell). TODO: maybe implement a default message channel, very much like Erlang's actor model (which is cool in a lot of important aspects (failures!), but very lacking in others (higher level ipc)). -4.748 +5.0 + - NEW ARCHITECTURE: use 4.912 for the stable version. + - bump API version to 7 - all dependents must be recompiled. + - directly patch the entersub opcode calling ssl functions (cede, + transfer and so on). this does speed up context switching by + up to 10%. More importanly, it frees us from the hardcoded + behaviour of entersub, so we might actually be able to return + something from those functions. + - take advanatge of __builtin_frame_address on gcc. + - expose THX in coroapi (not sure whether this was a wise decision). + +4.912 Thu Nov 13 18:31:23 CET 2008 + - minor cleanups. + - use much larger stacks on linux and perl < 5.8.8. + - Coro::Debug::new_unix_server did not unlink the socket + when destroyed. + +4.911 Tue Nov 11 04:26:17 CET 2008 + - "port" to threaded perls. + +4.91 Mon Nov 10 05:36:38 CET 2008 + - the ->throw exception object no longer leaks. + - creating a new cctx leaked a scopestack entry (memleak). + - new coroutines didn't get created with a zero flags field + (unknown impact). + - calling ->throw on a not-yet-started coroutine should now work + instead of being ignored. + - ->throw is now supported on Coro::State objects. + - clean up cctx creation code a bit. + - entersub is actually a UNOP, not a LOGOP (not a bugfix). + +4.9 Sat Nov 8 17:45:27 CET 2008 + - (libcoro) did not preserve rbp with CORO_ASM (we are getting there). + - (libcoro) no longer leak threads in the experimental pthread backend, + also speed it up considerably. + - (libcoro) do not rely on makecontext passing void *'s unscathed. + - fix compiletime dependencies on libcoro in the Makefile. + - cctx_count wasn't always updated properly. + - Coro::State::cctx_stacksize wasn't applied correctly. + - new function Coro::State::cctx_max_idle. + - the default max number of idle C contexts is now 4. + - (libcoro) try harder to get _setjmp/_longjmp. + - (libcoro) cleanup and extend the libcoro API to officially + allow the creation of empty source contexts. + - very experimental workaround for the totally broken netbsd platform. + - tried to hack around openbsd bugs. + +4.804 Wed Nov 5 16:36:00 CET 2008 + - Coro::Debug::new_unix_server would not create a non-blocking listening + socket, sometimes causing freezes. + - (libcoro) fix misaligned stack points for setjmp and assembly + methods, which can cause crashes on x86/x86_64 with a sufficiently + aggressive compiler. + - new function: Coro::Debug::new_tcp_server. + - move ->throw into the Coro class because it only works on coro objects. + +4.803 Mon Nov 3 17:16:12 CET 2008 + - (libcoro) use a global asm statement to become independent of gcc + otpimisations for CORO_ASM (thanks to pippijn for the idea). + - try to workaround yet another broken bsd, this time dragonfly. + +4.802 Thu Oct 30 10:56:12 CET 2008 + - support -fno-omit-frame-pointer on x86 with the assembly method. + - tune 01_unblock.t tests a bit. + +4.801 Wed Oct 22 18:33:37 CEST 2008 + - improve readline speed for very long "lines". + - backport to 5.8.8. + +4.8 Thu Oct 2 13:34:40 CEST 2008 + - new function Coro::AIO::aio_wait. + - Coro.:AIO and Coro::BDB now "use Coro::AnyEvent". + - greatly speed up and reduce memory usage of Coro::AIO requests. + - implement some other ยต-optimisations. + +4.749 Mon Sep 29 14:40:12 CEST 2008 + - port to slow and broken pseudo-threaded perls. (courtesy pippijn). + +4.748 Sat Sep 27 14:03:19 CEST 2008 - implement, but do not document, PerlIO::cede(granularity). - Coro::Storable forgot to wrap Storable::pstore. - work around the multitude of leaks and memory corruption