--- Coro/Changes 2012/12/08 00:43:39 1.608 +++ Coro/Changes 2015/02/10 17:50:40 1.637 @@ -3,8 +3,81 @@ TODO: should explore PerlIO::coroaio (perl leaks like hell). TODO: channel->maxsize(newsize)? TODO: __GCC_HAVE_DWARF2_CFI_ASM - +TODO: swap_sv, maybe add scope_swap_sv, andallow to unswap by repeat? +TODO: swap_sv not undone in pool +TODO: croak when async_pool triesd to run canceled thread? + + - Coro::SemaphoreSet->try did not actually work (analyzed by + SATO Kentaro). + +6.41 Sat Sep 6 22:08:46 CEST 2014 + - restore portability to perl 5.8.x. + - give new Coro's a valid GvHV(PL_hintgv) - this is slow and takes + up some memory, but fixes "use feature" and similar modules + when used inside a Coro. + - allow zero as argument to Coro::Channel to mean the same thing + as no argument. this works with older versions as well, + but wasn't legal until now. + - slightly better c header file detection. + +6.39 Mon Jun 2 00:00:08 CEST 2014 + - work around more incompatible changes in 5.20. + +6.38 Sun Jun 1 21:54:23 CEST 2014 + - check that perl slots actually have enough space to hold + interpreter variables. + - untested port to perl 5.19 (64 bit tmps indices) (reported + by Andreas König). + - croak when cancel is called without a thread context. + +6.37 Tue Mar 4 13:27:33 CET 2014 + - *sigh*, removed leftover debugging code from debugging a + perl bug, of all things. + +6.36 Tue Mar 4 07:11:59 CET 2014 + - semaphores would not clear the destroy hook when interrupted + by ->throw, causing segfaults or worse. + - ->throw on a thread waiting for a semaphore did not acquire + the semaphore, but also didn't wake up other waiters, + possibly causing a deadlock. + - "FATAL: $Coro::IDLE blocked itself" will now use Carp::confess + to report a full stacktrace, which should help find out + where the actual call is. + - "atomically" destroy data in slf_destroy, because it is + the right thing to do, just in case. + - disable ecb.h libm dependency, to compile on ancient systems + or under adverse conditions. + +6.33 Mon Nov 18 11:26:27 CET 2013 + - do not crash when freeing padlists with holes (in 5.18). + - tentative SVt_BIND 5.19 port/fix. + +6.32 Tue Nov 5 15:35:35 CET 2013 + - use a new algorithm to derive padlists for perl 5.18. The old + one could lead to 0-pointer accesses inside perl (reported + by Darin McBride). + +6.31 Thu May 9 07:39:48 CEST 2013 + - Coro::AIO requests would crash if the thread was ready'd + while the request was ongoing. + +6.29 Wed May 8 02:55:18 CEST 2013 + - when an on_destroy handler destructs the coro currently being + destructed a perl scalar could be accessed after being freed, + likely causing a crash. + +6.28 Wed Mar 6 06:58:02 CET 2013 + - clean remnants of existing __DIE__ and __WARN__ handlers so + they lose their magic and will not cause segfaults later + (testcase by Andrey Sagulin). - improved Coro::State documentation a bit. + - Coro::Debug::command now flushes the output. + - add hack detection code for x32 abi, because the braindead slugs + who designed that made it look exactly like x86_64 without + providing proper compile time symbols to test for it. as a result, + this detection cannot work reliably. + - valgrind stack registering was broken. + - do not rely on Time::HiRes anymore in Coro::Debug. 6.23 Fri Dec 7 23:36:37 CET 2012 - use experimental fiber implementation on native windows @@ -83,7 +156,7 @@ 6.01 Sun Jul 3 12:31:14 CEST 2011 - workarounds are good, but the test for whether pthreads are used - was not good. thisone should be better. + was not good. this one should be better. - check differently whether gcc generates cfi instructions itself. 6.0 Wed Jun 29 19:43:35 CEST 2011 @@ -91,7 +164,7 @@ 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 + about 4% on non-threaded perls (so threaded perls now finally reach about half the speed of non-threaded perls). - slightly modernise Coro::Intro, add section about rouse functions. - avoid DEFSV and ERRSV, giving another 10% improvement @@ -455,7 +528,7 @@ - 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) 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. @@ -527,7 +600,7 @@ outdated software). Reported by John S. 4.744 Tue Jul 8 22:06:35 CEST 2008 - - correctly provide default DIE/WARN handlers as documented. + - correctly provide default DIE/WARN handlers as documented. - also overwrite PL_vtbl_sigelem.svt_clear, even though current implementations inside perl work fine for us. @@ -559,7 +632,7 @@ - fix typo in WSAEWOULDBLOCK. 4.72 Sun May 25 05:14:36 CEST 2008 - - tweak META.yaml a bit, unfortunately, there is no documented way + - tweak META.yaml a bit, unfortunately, there is no documented way to have optional dependencies with CPAN. doh :( - avoid running some tests on windows because they would fail due to perl bug (broken fork, broken pipes...). @@ -573,7 +646,7 @@ tcp sockets on windows. ugh.) 4.71 Sat May 24 20:01:27 CEST 2008 - - fix a bug in Coro::AnyEvent ("Usage: Coro::AnyEvent::_schedule()"). + - fix a bug in Coro::AnyEvent ("Usage: Coro::AnyEvent::_schedule()"). - take advantage of async name resolution of AnyEvent::Util. - work around brutal inet_aton override in Coro::LWP. - take advantage of the readyhook in Coro::EV, for smoother @@ -581,7 +654,7 @@ 4.7 Sun May 11 00:32:19 CEST 2008 - completely reworked the Coro manpage. - - added Coro::AnyEvent, generic event loop integration. + - added Coro::AnyEvent, generic event loop integration. - implement cancel, ready and kill commands in Coro::Debug. - document find_coro in Coro::Debug. - incompatible change: rename has_stack to has_cctx. @@ -715,7 +788,7 @@ - port to threaded perls. 4.1 Thu Oct 11 02:38:16 CEST 2007 - - incompatible change: $SIG{__DIE__} and $SIG{__WARN__} will now + - incompatible change: $SIG{__DIE__} and $SIG{__WARN__} will now be local to each coro (see Coro::State). - incompatible change: for very deep reasons, cede and cede_notself cannot return anything, so nothing will be returned. @@ -797,7 +870,7 @@ Steinbrunner, which applied flawlessly). 3.6 Sat Apr 14 17:13:31 CEST 2007 - - added some bugfixes to get eg/myhttpd working again. + - added some bugfixes to get eg/myhttpd working again. - added Coro::Storable for often-cede'ing freeze/thaw. - try to do a clean exit when a coroutine calls exit (EXPERIMENTAL).