--- Coro/Changes 2013/05/09 05:40:13 1.617 +++ Coro/Changes 2017/07/14 23:20:07 1.670 @@ -3,6 +3,141 @@ 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? +TODO: croak when async_pool tries to run canceled thread? + +6.513 Sat Jul 15 01:18:51 CEST 2017 + - experimental 5.22 comaptibility changes (PadlistNAMES). + - removed attributes example and made sure the other examples + still work. + - fix some statevar types for newer perls, should be of no consequence. + +6.512 Fri Jul 14 05:03:17 CEST 2017 + - seems to pass test suite down till 5.8.9, so make this the + minimum requirement in Makefile.PL. + - experimental 5.24 compatibility changes (SUB_ARGARRAY). + - experimental 5.26 compatibility changes (PL_comppad -> PADOFFSET). + - disable FORTIFY_SOURCE to avoid broken (but well-intentioned) + fortified longjmp variants in some libcs. + - re-try JIT allocation without PROT_EXEC, to hopefully improve + portability (still doesn't seem to work around broken selinux + mmap everywhere). + - speling fixes (Xavier Guimard). + +6.511 Sun Jun 26 23:44:50 CEST 2016 + - make it compile with threaded perls again. + - simplify and speed up __DIE__ and __WARN__ handling. + +6.51 Sat Jun 25 20:57:20 CEST 2016 + - 6.5 release didn't compile on most older perls due to + a logic error enabling experimental 5.24 code for all versions. + - since various broken or deficient patches float around + to work around the vtbl API breakage in perl, let's provide + our own workaround, which seems to be much less invasive + and more compatible than the approaches seen so far. YMMV. + - work around assertion failure in perl_destruct on 5.24 + (analyzed by Dave Mitchell). + +6.5 Wed Jun 22 22:23:50 CEST 2016 + - swap_sv swapping order was not symmetrical, causing + wrong swaps when swap_sv was used multiple times on the + same sv in the same thread. + - swap_sv calls can now be undone by calling it again + with the same variables. + - swap_sv calls will now be undone in async_pool threads. + - split Coro::Semaphore::up/adjust into separate xs functions + for better error reporting, at slight codesize increase. + - (libcoro) arm assembly support, please test and report. + - adjust to PL_savestack changes in perl 5.24 (adapted from + the debian patch, which unfortunately gets it wrong). + +6.49 Sat Oct 17 01:40:12 CEST 2015 + - throwing an exception to a thread waiting in + Coro::Handle using Coro::EV did not stop the watchers, + causing the next call to fail (testcase by Martin Pritchard). + - bump minimum perl version to 5.10. + +6.48 Sun Oct 4 19:03:51 CEST 2015 + - fix memory leak when Coro::Handle uses Coro::EV internally + (testcase by Sten Sten). + - update code to libev 4 API (internally, Coro still used the + version 3 API calls). + - remove unused hv_sig. + +6.47 Sat Jul 11 03:58:20 CEST 2015 + - swap_svs - NVs can be in the SV head beginning with 5.20. + +6.46 Tue Jun 30 14:36:30 CEST 2015 + - restore portability to perls with windows fork emulation + (patch by Petr Písař). + +6.45 Tue Jun 30 01:40:08 CEST 2015 + - restore portability to perl 5.16 and below. + +6.44 Tue Jun 30 00:41:54 CEST 2015 + - avoid segfaulting (or worse) when tracing a canceled thread. + - the Event module silently broke it's public hook API, causing + failures on perls compiled with -Duselongdouble. Requiring + the latest version of Event because I don't know which release + changed this (it's not mentioned in the ChangeLog). + - allow xs level enterleave hooks via CoroAPI. + +6.43 Thu Jun 4 15:38:14 CEST 2015 + - use stability canary. + - port to stableperl-5.22.0-1.001. + - update libecb. + +6.42 Wed Feb 11 20:29:52 CET 2015 + - Coro::SemaphoreSet->try did not actually work (analyzed by + SATO Kentaro). + - upgrade libecb to be C11 compliant. + +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 @@ -103,7 +238,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 @@ -111,7 +246,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 @@ -475,7 +610,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. @@ -547,7 +682,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. @@ -579,7 +714,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...). @@ -593,7 +728,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 @@ -601,7 +736,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. @@ -735,7 +870,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. @@ -817,7 +952,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).