The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension Coro.

0.652 Thu May  8 02:54:46 CEST 2003
	- Applied patch by Slaven Rezic to set default to "s" on FreeBSD,
          cause version 4 doesn't have ucontext.
	- Benjamin Reed reported that setjmp works fine on darwin,
          so preselect it.

0.651 Sat Mar 29 15:00:23 CET 2003
	- fix a bug in Coro::Handle where some bytes could get lost
          on reading, reported by jason@nichego.net.

0.65  Sun Mar 23 00:08:26 CET 2003
	- added a README.linux-glibc.
        - new module Coro::Select.
        - also save/restore PL_comppad, fixes segfaults with 5.8.1.
          (I never claimed that I know what I am doing ;).
        - set default to setjmp/longjmp on non-x86-linux.

0.6   Thu Nov 21 11:09:06 CET 2002
        - made lazy context switching the default.
	- fixed the bug where SemaphoreSet::guard
          was the same as timed_guard and timed_guard was missing.
        - fix a memleak in Coro::Timer.
        - reclassified context sharing as not experimental.

0.534 Sun Apr 14 03:05:12 CEST 2002
	- fixed backspace => tab in header parsing (myhttpd).
        - added eg/readline, for elmex.
        - Coro::Event now calls ->start on first call instead of
          ->again, which created wrong timeouts for the first ->next.
        - fixed a bug where Coro::Socket returned a closed socket instead
          of nothing on ECONNREFUSED and similar error conditions.

0.533 Mon Feb 18 18:49:40 CET 2002
	- adapt to finally working Event-0.85.
        - fixed buggy event initialization (trapped under windows, but how
          could it possibly have worked anywhere?)

0.532 Wed Jan 16 02:45:32 CET 2002
	- removed the reference to pp_entersub, might work on
          (some) win32 perls now (testsuite works under cygwin,
          without Event, which freezes).

0.531 Mon Dec 10 22:18:44 CET 2001
	- Fixed a bug in SemaphoreSet::timed_down.

0.53  Tue Nov 27 21:11:13 CET 2001
	- some tests for Event.
        - slightly different internal architecture to get refcnt into the object
          and not the reference. might fix a few bugs, certainly did introduce
          new ones.
        - Coro::Timer (independent of Event).
        - new timed_wait functions for Coro::Signal, Semaphore, SemaphoreSet.

0.52  Tue Nov  6 21:36:18 CET 2001
	- ported to cygwin (trivial).
          patch by Gerrit P. Haase <gp@familiehaase.de>.
        - small setjmp code fix by Sullivan.DanielJ@epamail.epa.gov.

0.51  Thu Nov  1 20:39:01 CET 2001
	- terminate/cancel now work properly (otherwise termination
          could cause a "next coroutine is not and contains not..."
          error.
        - added Coro::Socket::shutdown.
        - Coro::Event::loop no is the same as Event::loop.
        - implemented terminate with args + join.

0.5   Fri Sep 28 16:15:35 CEST 2001
	- fixed "print" on a Coro::Handle. The print method worked.
	- small tweaks (seem to reduce memory consumption a lot)
          in various modules.
        - splendid use of "no warnings" scattered throughout.
        - added Coro::Handle::rbuf, fixed Coro::Handle::fh.

0.49  Sun Sep 16 02:42:45 CEST 2001
	- changed some method calls to function calls for speed
          inside Coro::Handle.
        - make Coro::Handle use an array instead of a hash for
          speed reasons.
        - IRIX mystery solved: it's SGI's NT, after all: "standard, huh?".
          sjlj and ucontext should now work.
        - IRIX-specific port for libcoro.
        - swapped order of accept results to match IO::Socket.
        - changed getsock/peername to sock/peername to match IO::Socket.
        - fixed a bug that caused segfault when returning to main task
          under some circumstances.
        - other bugfixes.

0.45  Sun Sep  2 02:54:01 CEST 2001
	- new method Coro::Handle::timeout.
        - corrected speling of set...name to get...name in Coro::Socket.
        - Coro::Socket::accept now returns a Coro::Socket, not a Coro::Handle.
        - Coro::Handle now supports fileno and FILENO.
        - added eg/myhttpd, a web server.
        - Coro::Socket now accepts numeric ports as well as "port(number)"
          syntax.
        - moved some scheduling primitives into xs code. more to come.
        - new simple priority system.
        - implemented Coro::Event using XS, almost four times faster!
        - small memory corruption problem fixed (boy that was difficult).

0.13  Wed Aug  8 16:53:07 CEST 2001
	- new method Coro::Handle::readline.
        - added eg/lwp and Coro::Handle::autoflush, to make LWP work.
          (see eg/lwp on how to make LWP non-blocking).
        - renamed Coro::Socket::new_inet to new.
        - added Coro::Util, some utility functions.
        - die/eval now works better (still get annoying (but true ;)
          "Callback called exit" messages).
        - Coro::Handle now supports timeout, and Coro::Socket Timeout.
        - much better Coro::Socket support.

0.12  Fri Jul 27 04:19:01 CEST 2001
	- do not use mmap if neither MAP_ANON nor MAP_ANONYMOUS is defined.
	- very experimental stack sharing algorithm. not 100% safe but
          should work well in practise ;)
        - added Coro::RWLock.
        - Coro::Specific now works.

0.11  Tue Jul 24 22:49:21 CEST 2001
	- added specialized hack for newer and older linux versions (fast).
        - renamed Coro::Event::IO to Coro::Handle.
        - new module Coro::Socket.

0.1   Tue Jul 24 01:47:53 CEST 2001
	- release candidate 3. A rather new internal structure :(
        - the great renaming: Damian Conway gave me a suitable replacement
          for yield.
	- added Coro/libcoro, a portable coroutine implementation for C
          (not even perl-dependent!!!), which can be used by Coro::State.
	- renamed SAVE_DEFSV (on xs-level only) to avoid symbol clash in
          perl-5.6.
	- new function Coro::Event::idle.
        - the idle process is now overriden
          by default in Coro::Event.
        - Coro::Channel now enforces the size.
        - canceling events now works in all cases.
        - Coro state now include $_ and $@.
        - yet another bug workaround that I do not really understand :(
        - new module Coro::Event::IO (very undocumented) to do
          non-blocking i/o.
        - performance tuning.

0.08  Thu Jul 19 06:13:25 CEST 2001
	- release candidate 2 (new functionality).
	- add Coro::State::flush function.
        - transfer now supports a flags value (mostly for speed ATM).
        - might compile and work in the presence of threads now.
        - continuations have a saner syntax.
        - no more memleaks.

0.07  Tue Jul 17 17:40:18 CEST 2001
	- release candidate 1 ;)
	- slightly nicer code.
        - fixed a scheduling bug in Coro::Event.

0.06  Tue Jul 17 04:23:24 CEST 2001
        - ok, I found the showstopper - the same sub must not be
          re-entered in two different coroutines, otherwise => crash. I
          see no easy solution to this problem, except by walking the call
          chaing and saving/restoring the cv's, which is what I do now.
        - memory leaks still latent, especially at thread termination.
        - Coro::Event now works (haha).

0.05  Sun Jul 15 17:32:20 CEST 2001
	- fixed a few issues in Coro::Event.
        - I forgot to include Coro::Event in 0.04 :(:(:(

0.04  Sun Jul 15 05:24:59 CEST 2001
	- @_ is now properly localized.
	- Coro::State is now easier subclassable.
        - Coro::Cont now coroutine-aware.
        - Coro::Specific is a low-overhead module to create
          coroutine-specific vars.
        - Coro::Event provides a simple interface to Event.

0.03  Fri Jul 13 14:51:52 CEST 2001
	- transfer() now implemented in XS (beware).
	- new module Coro::Cont for really faked continuations.
	- big internal architecture changes: Coro::State is now
          really low-level and can thus be used to implement other
          interesting things, While "Coro::" implements a process-like
          model. Still crude and subject to change.
        - $_ and $@ are no longer being localized.

0.02  Tue Jul 10 01:38:17 CEST 2001
	- implemented "async" attribute.
        - $_ and $@ are now localized.
        - added Coro::Channel.
        - more testcases, still no docs.

0.01  Tue Jul  3 02:18:41 CEST 2001
	- original version; copied from Convert::Scalar.