--- cvsroot/Coro/Changes 2012/12/05 00:14:22 1.602 +++ cvsroot/Coro/Changes 2014/03/04 05:07:44 1.625 @@ -2,13 +2,91 @@ TODO: should explore PerlIO::coroaio (perl leaks like hell). TODO: channel->maxsize(newsize)? -TODO: http://www.microsoft.com/msj/archive/s2ce.aspx 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: add peerhost/peerport from IO::Socket::INET etc. - +Program terminated with signal 11, Segmentation fault. +#0 coro_semaphore_adjust (av=0x0, adjust=0) at State.xs:2915 +2915 State.xs: No such file or directory. +(gdb) bt +#0 coro_semaphore_adjust (av=0x0, adjust=0) at State.xs:2915 +#1 0x00007f638f0c0703 in slf_destroy (coro=0x5957180) at State.xs:2605 +#2 coro_state_destroy (coro=0x5957180) at State.xs:1712 +#3 0x00007f638f0c150c in coro_state_destroy (coro=) at State.xs:1709 +#4 XS_Coro__destroy (cv=) at State.xs:3853 +#5 0x00000000004b572d in Perl_pp_entersub () at pp_hot.c:2881 +#6 0x00000000004adfe3 in Perl_runops_standard () at run.c:42 +#7 0x000000000044335f in S_run_body (oldscope=) at perl.c:2462 +#8 perl_run (my_perl=) at perl.c:2383 +#9 0x00007f638f0ba3a1 in cctx_run (arg=) at State.xs:1478 +#10 0x00007f638f0b74d5 in coro_init () at libcoro/coro.c:96 +(gdb) up +#1 0x00007f638f0c0703 in slf_destroy (coro=0x5957180) at State.xs:2605 +2605 in State.xs +(gdb) p coro->slf_frame +$1 = { + prepare = 0x7f638f0baf60 , + check = 0x7f638f0b6e70 , + data = 0x0, + destroy = 0x7f638f0bb820 + + +TODO: warnhook reports from wrong line number now, when arg is Math::GMP number. + - 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 + perls. + - use sizeof (void *) as multiplication factor for stack sizes, + to accomodate the totally braindamaged microsoft 64 bit "os". + - changed verifier host from win2k-ap510-32 to win7-sp516-32/64. + activeperl 5.16 crashes when PerlIO_define_layer is called due + to some bug in the perl dll, strawberry perl at least passes + the testsuite. + - implement Coro::Handle->peeraddr/host/port, for slightly + improved compatibility with LWP. - implement 5.17 compatibility by almost blindly applying a good-looking patch by Father Chrysostomos. + - move stack management functions into libcoro 3. + - libcoro version 3 "released". - support magic values as timed_io_once args. - recommend AnyEvent 7+ or EV 4+, also require EV version 4 or newer for Coro::EV. @@ -443,7 +521,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. @@ -515,7 +593,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. @@ -547,7 +625,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...). @@ -561,7 +639,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 @@ -569,7 +647,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. @@ -703,7 +781,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. @@ -785,7 +863,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).