--- Coro/Changes 2011/05/12 23:55:39 1.564 +++ Coro/Changes 2011/06/28 22:18:57 1.571 @@ -5,16 +5,25 @@ TODO: http://www.microsoft.com/msj/archive/s2ce.aspx TODO: tutorial +TODO: in_eval, PL_tained - INCOMPATIBLE CHANGE: unreferenced coro objects will now be destroyed and cleaned up automatically (e.g. async { schedule }). + - implement a JIT compiler for part of the thread switch code, + which gives a 50% speed improvement on threaded perls, and + about 4% on non-thraeded perls (so threaded perls now finally + reach about half the speed of non-threaded perls). + - avoid DEFSV and ERRSV, giving another 10% improvement + in thread switching. - Coro::State->is_destroyed is now called is_zombie. + - implement a Coro->safe_cancel method that might fail, but + cancels in a "safer" way if it succeeds. + - get rid of two hash-accesses when initialising a new Coro - this + speeds up coro creation by almost a factor of two. - croak when a coro that is being cancelled tries to block (e.g. while executing a guard block), instead of crashing or deadlocking. - use a more robust and also faster method to identify Coro::State objects - speeds up everything a bit. - - implement a Coro->safe_cancel method that might fail, but - cancels in a "safer" way if it succeeds. - implement Coro->cancel in XS for a 20% speed improvement, and to be able to implement mutual cancellation. - speed up context switches by a percent or two by more efficiently @@ -29,6 +38,12 @@ functions to have destructors. - get rid if coro refcounting - simply crash in other interpreter threads by nulling the pointers on clone. + - simplify warn/die hook handling when loading Coro - the convoluted + logic seems to be no longer neccessary. + - use libecb instead of our own home-grown gcc hacks. + - document alternatives to Coro::LWP. Please use them :) + - work around another mindless idiotic NEEDLESS bug in openbsd/mirbsds + sigaltstack. 5.372 Wed Feb 23 06:14:30 CET 2011 - apparently mingw doesn't provide a working gettimeofday, try to