--- Coro/Changes 2008/11/09 23:08:49 1.398 +++ Coro/Changes 2008/11/17 01:05:47 1.423 @@ -5,9 +5,68 @@ actor model (which is cool in a lot of important aspects (failures!), but very lacking in others (higher level ipc)). -4.91 - - typo: new coroutines didn't get created with a zero flags field. +TODO: testcancel +TODO: aio +TODO: Coro::Semaphore +TODO: trow disturbs cleanup path inside pp_slf? +TODO: throw special-case in transfer? +5.0 + - NEW ARCHITECTURE: use 4.912 for the stable version. + - bump API version to 7 - all dependents must be recompiled. + - Coro::Semaphore->adjust didn't correctly wake up enough waiters. + - async_pool did free a scalar value twice + ("Attempt to unreference..."). + - fix a longstanding bug where calling terminate on a coro that + was waiting for a semaphore that was just becoming available + would cause a deadlock (semaphore would get into a state where + it was available but waiters were waiting(. + - avoid deadlock in Coro::Channel if maxsize == 1 (Richard Hundt). + - perl's process emulation is now not even theoretically supported + anymore. + - directly patch the entersub opcode calling SLF functions (cede, + transfer and so on). this does speed up context switching, but + more importanly, it frees us from the hardcoded behaviour of + entersub, so we might actually be able to return something from + those functions and atcually create new ones. + - take advantage of __builtin_frame_address on gcc. + - expose THX in coroapi (not sure whether this was a wise decision, + as "threaded" perls are running at half speed anyways). + - implement execute_slf (schedule-like-function) interface that makes + it possible to implement schedule-like-functions in XS. + - use new SLF interface to massively speed up Coro::EV by roughly a factor + of two. + - removed timed_down and timed_guard functions - they were not being used + anyways and should be replaced by a more generic mechanism - and were + annoying to support anyways : + - used new SLF interface to massively speed up Coro::Semaphore by a factor + of three. + - forgot to include Coro/libcoro/README in the dist for all these years. + - work around a freebsd pthreads bug (manual testcancel is required as + pthread_cond_wait isn't a cancellation point on freebsd). + +4.913 Sat Nov 15 07:58:28 CET 2008 + - async_pool did free a scalar value twice + ("Attempt to unreference..."). + +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).