ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Changes
Revision: 1.508
Committed: Mon Jul 6 03:42:29 2009 UTC (14 years, 10 months ago) by root
Branch: MAIN
CVS Tags: rel-5_151
Changes since 1.507: +1 -0 lines
Log Message:
5.151

File Contents

# User Rev Content
1 root 1.1 Revision history for Perl extension Coro.
2 root 1.113
3 root 1.382 TODO: should explore PerlIO::coroaio (perl leaks like hell).
4 root 1.328 TODO: maybe implement a default message channel, very much like Erlang's
5     actor model (which is cool in a lot of important aspects (failures!),
6 root 1.247 but very lacking in others (higher level ipc)).
7 root 1.487 TODO: unready_all
8 root 1.490 TODO: myhttpd header parsing
9 root 1.494 TODO: channel->maxsize(newsize)?
10 root 1.173
11 root 1.508 5.151 Mon Jul 6 05:41:57 CEST 2009
12 root 1.506 - backport to windows process emulation code again (patch by
13     Yasuhiro MATSUMOTO).
14 root 1.507 - slightly update Coro::MakeMaker.
15 root 1.506
16 root 1.505 5.15 Tue Jun 30 10:28:06 CEST 2009
17 root 1.502 - deprecate Coro::Socket, document how to get ipv6 support via
18     AnyEvent::Socket instead.
19 root 1.500 - implement signal->wait ($cb) interface, similar to semaphores.
20 root 1.501 - work around SvOK not supporting getmagic, so we have to getmagic
21     to test for undef :/ (reported by Matthias Waldorf).
22 root 1.502 - load Coro::AnyEvent in all modules using AnyEvent.
23 root 1.503 - work around perl corrupting our internal data structures,
24     reported by Tokuhiro Matsuno.
25 root 1.504 - enable per-coroutine real and cpu time gathering
26     (Coro::State::enable_times).
27 root 1.500
28 root 1.499 5.14 Wed Jun 24 01:37:48 CEST 2009
29 root 1.497 - provide explicit functions to "cede" to the event loop in Coro::AnyEvent,
30     as this seems to have been a difficult concept (poll, sleep, idle,
31     idle_upto).
32     - add Coro::AnyEvent::readable/writable functions.
33     - clarify Coro::EV/Event/AnyEvent manpages.
34 root 1.496 - free per-thread global scalars in the thread calling ->cancel, to
35     avoid crashes when $_, $@ etc., are magical but some of those
36     had already been freed.
37 root 1.499 - "unexperimentalise" the callback interface for Coro::Semaphore.
38 root 1.493 - speed up ready queue management/context switching by using a linked
39 root 1.492 list instead of an array (~5-10%).
40 root 1.493 - implement "watch" command in Coro::Debug shells.
41 root 1.494 - for fun, implement time-slicing as an example in the manpage.
42 root 1.497 - if AnyEvent detects EV or Event, but we don't have Coro::EV or
43     Coro::Event, use the normal AnyEvent handling instead of dieing
44     (the same is true for Coro::Handle).
45     - properly document Coro::EV::timed_io_once.
46 root 1.498 - avoid unneccessary ->cancel calls in Coro::Handle.
47     - maybe make it work on mingw32 with win32 backend
48     (based on patch by Yasuhiro Matsumoto).
49 root 1.492
50 root 1.490 5.132 Fri May 29 09:00:39 CEST 2009
51 root 1.488 - do not keep a reference to the argument itself in
52 root 1.491 Coro::Semaphore::guard, as it could change later.
53 root 1.489 - support SO_RCVBUF/SO_SNDBUF nonstandard Coro::Socket options,
54     should support a prepare callback.
55 root 1.488
56 root 1.487 5.131 Mon Mar 16 23:20:37 CET 2009
57 root 1.485 - implement and document Coro->suspend, Coro->resume.
58 root 1.486 - fix Coro::Select implementation to not (often) close
59     the passed file descriptors (testcase provided by pippijn).
60 root 1.485
61 root 1.484 5.13 Mon Dec 15 21:51:42 CET 2008
62 root 1.481 - EXPERIMENTAL: implement dynamic winds (on_enter/on_leave).
63 root 1.476 - don't set diehook to C<undef> but instead to NULL, to avoid
64     spurious warnings.
65 root 1.478 - fix a lot of bugs in Coro::SemaphoreSet.
66     - Coro::SemaphoreSet will less often create a semaphore needlessly.
67     - add Coro::SemaphoreSet::count and wait methods.
68 root 1.477 - take advantage of the new Guard module.
69     - deprecate Coro::guard.
70 root 1.479 - try to fix the dreaded 01_unblock tests once more. I hate it when
71     testsuites need more fixing than the code they are supposed to test.
72 root 1.480 - croak in more cases when a required callback isn't resolvable.
73     - fix some minor issues in Coro::State->call/eval.
74     - use current coroutine context instead of a temporary one
75     when temporarily switching to another coroutine.
76 root 1.484 - do not call C-level on_destroy handlers during global destruction,
77     to avoid needless segfaults.
78 root 1.476
79 root 1.475 5.12 Sun Dec 7 13:30:38 CET 2008
80 root 1.467 - add default config for MirOS, which seems to be a bug-to-bug
81     compatible fork of openbsd ("world domination by releasing
82     openbsd cvs before the openbsd folks do it" or so :).
83 root 1.468 - free_padlist did destroy the names pad, not good, but didn't
84 root 1.470 seem to bother perl - this could fix issues such as eval ""
85 root 1.477 inside a function called from multiple coroutines.
86 root 1.467 - use a different method to detect destruction time.
87     - be more careful when freeing padlists just before global
88     destruction.
89 root 1.469 - fixed and expanded the call/cc example.
90 root 1.471 - renamed _terminate to _coro_run.
91 root 1.473 - new method Coro::Channel->shutdown.
92     - try pthreads on openbsd <4.4 (broken sigaltstack, will
93     pthreads fare better?).
94     - be less picky about destroying "a" running coroutine.
95 root 1.466
96 root 1.465 5.11 Tue Nov 25 21:49:05 CET 2008
97 root 1.464 - DEBUGGING in 5.10.0 is a mess: it constantly flags perfectly
98     working code with failed assertions, introducing more bugs than
99     it fixes, requiring elaborate workarounds :(
100    
101 root 1.463 5.1 Mon Nov 24 08:54:59 CET 2008
102     - wrote a small introductory tutorial - Coro::Intro.
103 root 1.454 - convert Coro::Timer, Coro::Select and Coro::Util to rouse API.
104 root 1.453 - Coro::Select did errornously dup the file descriptors
105     and didn't work with all AnyEvent backends.
106 root 1.463 - Coro::Select wasn't imported correctly form Coro::LWP, causing blocking
107     LWP data transfers.
108 root 1.458 - disassociate c contexts from coro objects - this is agruably more
109     correct, but mostly allows sharing of cctxs between coro and state
110     objects, for added memory savings and speed increases.
111 root 1.455 - bumped $Coro::POOL_RSS up to 32kb by default.
112 root 1.456 - no longer set the optype to OP_CUSTOM, as B::* understandably
113     doesn't like this very much (and we *are* a type of entersub).
114 root 1.458 - implement state cloning, just to prove that call/cc can be done.
115 root 1.460 - automatically load Coro::AnyEvent in Coro::Handle.
116 root 1.461 - wrap ->cancel calls in eval inside Coro::Handle as EV watchers
117     do not have this method (and don't need it either).
118     - speed up generic anyevent methods in Coro::Handle by using rouse
119     callbacks.
120     - allow coroutines in $Coro::IDLE, speeding up Coro::AnyEvent and
121     others. It also makes the debugger happier, as you can trace
122     through the idle threads now.
123 root 1.462 - add comppad_name* and hints ($^H, %^H) to per-thread variables.
124 root 1.461 - eg/event was pretty broken.
125 root 1.457 - better 5.8.6 compatibility.
126 root 1.453
127 root 1.452 5.0 Thu Nov 20 10:35:05 CET 2008
128 root 1.424 - NEW ARCHITECTURE: use the latest 4.x version if you experience
129     stability issues.
130 root 1.411 - bump API version to 7 - all dependents must be recompiled.
131 root 1.430 - removed timed_* functions - they were not being used anyways
132     and should be replaced by a more generic mechanism -
133 root 1.429 and were annoying to support anyways :)
134 root 1.451 - removed SemaphoreSet's waiter method - use sem method instead.
135 root 1.415 - Coro::Semaphore->adjust didn't correctly wake up enough waiters.
136 root 1.416 - async_pool did free a scalar value twice
137     ("Attempt to unreference...").
138 root 1.420 - fix a longstanding bug where calling terminate on a coro that
139     was waiting for a semaphore that was just becoming available
140     would cause a deadlock (semaphore would get into a state where
141 root 1.433 it was available but waiters were still blocked).
142 root 1.432 - calling throw on a coroutine that is waiting for a semaphore will
143     no longer make it acquire the semaphore (and thus leak a count).
144 root 1.412 - perl's process emulation is now not even theoretically supported
145     anymore.
146 root 1.447 - new functions Coro::rouse_cb and Coro::rouse_wait for easier
147     conversion of callback-style to blocking-style.
148     - new methods $coro->schedule_to and ->cede_to, to specifically
149     schedule or cede to a specific coroutine.
150 root 1.433 - new function Coro::Semaphore::wait.
151 root 1.428 - use named constants in Coro::Channel (Richard Hundt).
152 root 1.412 - directly patch the entersub opcode calling SLF functions (cede,
153     transfer and so on). this does speed up context switching, but
154     more importanly, it frees us from the hardcoded behaviour of
155     entersub, so we might actually be able to return something from
156     those functions and atcually create new ones.
157     - take advantage of __builtin_frame_address on gcc.
158     - expose THX in coroapi (not sure whether this was a wise decision,
159     as "threaded" perls are running at half speed anyways).
160     - implement execute_slf (schedule-like-function) interface that makes
161     it possible to implement schedule-like-functions in XS.
162 root 1.424 - use new SLF interface to massively speed up Coro::EV by roughly a
163     factor of two.
164     - used new SLF interface to massively speed up Coro::Semaphore by a
165     factor of three.
166 root 1.426 - used new SLF interface to speed up Coro::AIO by roughly a factor of
167     four and reduce its memory usage considerably.
168 root 1.429 - implement Coro::SemaphoreSet purely in terms of Coro::Semaphore,
169     for a nice speedup and vastly more correct behaviour. Also implement
170     a new method "sem" to get at the underlying semaphore object.
171 root 1.430 - implement Coro::Channel in terms of Coro::Semaphore, for a moderate
172     (in comparison) 20-40% speedup.
173 root 1.435 - used new SLF interface to reimplement Coro::Signal gaining
174     some unknown (because I was too lazy), but certain, speedup, and also
175     making signals reliable for the first time.
176 root 1.445 - used new SLF interface and other optimisations to speed up async_pool
177     by a factor of two. It also doesn't rely on perl's exception mechanism
178 root 1.446 to exit anymore. The overhead for terminating an async_pool, coro over
179     a normal async is now very small.
180 root 1.444 - sped up coroutine creation/destruction by 40%.
181 root 1.417 - forgot to include Coro/libcoro/README in the dist for all these years.
182 root 1.418 - work around a freebsd pthreads bug (manual testcancel is required as
183     pthread_cond_wait isn't a cancellation point on freebsd).
184 root 1.438 - use new rouse functions to speed up and simplify Coro::BDB.
185 root 1.439 - make "prefer perl native functions" work with threaded perls.
186 root 1.440 - condense Coro::Debug ps output, hint at v and w flags.
187 root 1.436 - (libcoro) lots of minor cleanups and portability improvements.
188 root 1.416
189 root 1.449 4.914 Wed Nov 19 12:54:18 CET 2008
190     - fix a disastrous bug in the readline optimisation
191     introduced in 4.801.
192    
193 root 1.416 4.913 Sat Nov 15 07:58:28 CET 2008
194     - async_pool did free a scalar value twice
195     ("Attempt to unreference...").
196 root 1.408
197 root 1.407 4.912 Thu Nov 13 18:31:23 CET 2008
198 root 1.404 - minor cleanups.
199 root 1.405 - use much larger stacks on linux and perl < 5.8.8.
200 root 1.406 - Coro::Debug::new_unix_server did not unlink the socket
201     when destroyed.
202 root 1.404
203 root 1.403 4.911 Tue Nov 11 04:26:17 CET 2008
204 root 1.401 - "port" to threaded perls.
205    
206 root 1.400 4.91 Mon Nov 10 05:36:38 CET 2008
207     - the ->throw exception object no longer leaks.
208     - creating a new cctx leaked a scopestack entry (memleak).
209     - new coroutines didn't get created with a zero flags field
210     (unknown impact).
211 root 1.399 - calling ->throw on a not-yet-started coroutine should now work
212     instead of being ignored.
213 root 1.400 - ->throw is now supported on Coro::State objects.
214 root 1.398 - clean up cctx creation code a bit.
215 root 1.400 - entersub is actually a UNOP, not a LOGOP (not a bugfix).
216 root 1.398
217 root 1.397 4.9 Sat Nov 8 17:45:27 CET 2008
218 root 1.392 - (libcoro) did not preserve rbp with CORO_ASM (we are getting there).
219     - (libcoro) no longer leak threads in the experimental pthread backend,
220     also speed it up considerably.
221 root 1.394 - (libcoro) do not rely on makecontext passing void *'s unscathed.
222 root 1.392 - fix compiletime dependencies on libcoro in the Makefile.
223     - cctx_count wasn't always updated properly.
224 root 1.393 - Coro::State::cctx_stacksize wasn't applied correctly.
225     - new function Coro::State::cctx_max_idle.
226     - the default max number of idle C contexts is now 4.
227 root 1.394 - (libcoro) try harder to get _setjmp/_longjmp.
228     - (libcoro) cleanup and extend the libcoro API to officially
229     allow the creation of empty source contexts.
230 root 1.395 - very experimental workaround for the totally broken netbsd platform.
231 root 1.396 - tried to hack around openbsd bugs.
232 root 1.391
233 root 1.390 4.804 Wed Nov 5 16:36:00 CET 2008
234 root 1.389 - Coro::Debug::new_unix_server would not create a non-blocking listening
235 root 1.390 socket, sometimes causing freezes.
236 root 1.392 - (libcoro) fix misaligned stack points for setjmp and assembly
237     methods, which can cause crashes on x86/x86_64 with a sufficiently
238     aggressive compiler.
239 root 1.389 - new function: Coro::Debug::new_tcp_server.
240 root 1.388 - move ->throw into the Coro class because it only works on coro objects.
241    
242 root 1.387 4.803 Mon Nov 3 17:16:12 CET 2008
243 root 1.392 - (libcoro) use a global asm statement to become independent of gcc
244     otpimisations for CORO_ASM (thanks to pippijn for the idea).
245 root 1.387 - try to workaround yet another broken bsd, this time dragonfly.
246 root 1.386
247 root 1.385 4.802 Thu Oct 30 10:56:12 CET 2008
248     - support -fno-omit-frame-pointer on x86 with the assembly method.
249 root 1.383 - tune 01_unblock.t tests a bit.
250    
251 root 1.382 4.801 Wed Oct 22 18:33:37 CEST 2008
252 root 1.381 - improve readline speed for very long "lines".
253 root 1.382 - backport to 5.8.8.
254 root 1.381
255 root 1.380 4.8 Thu Oct 2 13:34:40 CEST 2008
256 root 1.378 - new function Coro::AIO::aio_wait.
257     - Coro.:AIO and Coro::BDB now "use Coro::AnyEvent".
258     - greatly speed up and reduce memory usage of Coro::AIO requests.
259 root 1.379 - implement some other µ-optimisations.
260 root 1.378
261 root 1.377 4.749 Mon Sep 29 14:40:12 CEST 2008
262     - port to slow and broken pseudo-threaded perls. (courtesy pippijn).
263    
264 root 1.376 4.748 Sat Sep 27 14:03:19 CEST 2008
265 root 1.374 - implement, but do not document, PerlIO::cede(granularity).
266 root 1.372 - Coro::Storable forgot to wrap Storable::pstore.
267 root 1.374 - work around the multitude of leaks and memory corruption
268 root 1.375 bugs in PerlIO::via by using our own C-level perliol. As a side
269     effect, Coro::Storable is now much, much, much faster.
270 root 1.372
271 root 1.371 4.747 Tue Sep 23 01:59:41 CEST 2008
272 root 1.369 - fix a per-cv memleak (one empty array was leaked per
273     code reference).
274 root 1.370 - avoid a crash in coro->call|rss when the coroutine was already
275     destroyed (most noticably when using Coro::Debug::ps :)
276     - also protect *Storable::FILE.
277 root 1.371 - push up default storable granularity to 20ms.
278 root 1.369
279 root 1.368 4.746 Sun Sep 21 03:22:20 CEST 2008
280     - be more insistent on locking Storable against reentrancy
281     in Coro::Storable.
282 root 1.366 - move swap_def?v and throw to Coro::State, as documented.
283    
284 root 1.365 4.745 Thu Jul 24 00:14:38 CEST 2008
285 root 1.364 - remove debugging code related to MgPV_nolen_const, also try to
286     make it compile with perl 5.8.6 (yes, apple apparently loves
287     outdated software). Reported by John S.
288 root 1.363
289 root 1.362 4.744 Tue Jul 8 22:06:35 CEST 2008
290 root 1.361 - correctly provide default DIE/WARN handlers as documented.
291     - also overwrite PL_vtbl_sigelem.svt_clear, even though current
292     implementations inside perl work fine for us.
293    
294 root 1.360 4.743 Mon Jun 16 00:21:57 CEST 2008
295     - when using Coro::EV without running EV::loop it could
296     result in busy-waiting for events, this has been fixed.
297     - reduce codesize and improve performance by using EV_DEFAULT_UC.
298    
299 root 1.359 4.742 Sat May 31 14:10:21 CEST 2008
300     - implement a workaround for (some) perl <5.8.8 versions.
301     - require EV 3.3+.
302    
303 root 1.358 4.741 Fri May 30 23:33:09 CEST 2008
304     - tell netbsd how utterly broken their imitation of an OS is
305     and refuse to build by default if pthreads are in use.
306     - switch to "s" method on all bsd's by default, as their ucontext
307     stuff seems just too broken.
308     - fix a bug in Coro::Select.
309    
310 root 1.357 4.74 Thu May 29 20:05:31 CEST 2008
311     - do not test Coro::LWP for lack of dependencies.
312     - do not test Coro::Select for lack of working perls.
313    
314     4.73 Thu May 29 2008
315 root 1.356 - fix a bug in Coro::EV which would cause it to block despite
316     there being runnable coroutines.
317 root 1.354 - sprinkle "no warnings" freely over everything, also suppress
318     warnings for some other modules.
319 root 1.355 - fix typo in WSAEWOULDBLOCK.
320 root 1.354
321 root 1.353 4.72 Sun May 25 05:14:36 CEST 2008
322 root 1.351 - tweak META.yaml a bit, unfortunately, there is no documented way
323     to have optional dependencies with CPAN. doh :(
324 root 1.350 - avoid running some tests on windows because they would fail due to
325 root 1.351 perl bug (broken fork, broken pipes...).
326     - work around perl on windows bugs where perl returns undocumented
327     error codes for sysread, syswrite etc. by taking advantage
328     of AnyEvent's workaround for that problem.
329 root 1.350 - use AnyEvent::Util::fh_nonblocking in Coro::Handle to work around
330     a common perl implementation bug on windows.
331     - use unix domain sockets in testsuite to work around
332 root 1.351 common perl implementation bugs on widows (they are emulated by
333     tcp sockets on windows. ugh.)
334 root 1.350
335 root 1.349 4.71 Sat May 24 20:01:27 CEST 2008
336 root 1.348 - fix a bug in Coro::AnyEvent ("Usage: Coro::AnyEvent::_schedule()").
337 root 1.347 - take advantage of async name resolution of AnyEvent::Util.
338     - work around brutal inet_aton override in Coro::LWP.
339 root 1.348 - take advantage of the readyhook in Coro::EV, for smoother
340     scheduling.
341 root 1.347
342 root 1.346 4.7 Sun May 11 00:32:19 CEST 2008
343 root 1.342 - completely reworked the Coro manpage.
344     - added Coro::AnyEvent, generic event loop integration.
345 root 1.341 - implement cancel, ready and kill commands in Coro::Debug.
346     - document find_coro in Coro::Debug.
347 root 1.343 - incompatible change: rename has_stack to has_cctx.
348 root 1.346 - Coro::AIO and Coro::BDB no longer force event model detection,
349     use AnyEvent::AIO and AnyEvent::BDB.
350 root 1.341
351 root 1.340 4.6 Sat Apr 26 10:05:14 CEST 2008
352 root 1.336 - INCOMPATIBLE CHANGE: sub/code attributes are no longer supported
353 root 1.339 by the Coro module. It was a mistake to have it in the first place.
354     - (experimental) support for activestate perl 5.10 (method "w").
355     - (experimental) support for strawberry perl (method "a").
356 root 1.337 - coro_sigelem_set did not return a value although it had to,
357     actual impact unknown.
358 root 1.336
359 root 1.335 4.51 Mon Apr 14 13:28:27 CEST 2008
360     - make it compile again on 5.8.
361    
362 root 1.334 4.50 Thu Apr 10 09:43:17 CEST 2008
363     - I did it twice! (see 4.49).
364    
365 root 1.333 4.49 Sun Apr 6 21:23:31 CEST 2008
366     - grr, instead of compiling the recent changes on 5.10 only they
367     were compiled on 5.8 only.
368    
369 root 1.332 4.48 Sun Apr 6 20:36:46 CEST 2008
370 root 1.331 - allow coroutine switches during eval's under 5.10.x, as it seems
371     the parser is a per-interpreter option now, so this is safe
372     (this might fix the odd crashing bug).
373 root 1.332 - drop support for 5.9.x versions: they are dead, jim.
374 root 1.331
375 root 1.330 4.47 Sun Apr 6 00:37:52 CEST 2008
376 root 1.329 - force cctx allocation on API calls: we know we need to force one
377     and gcc actually manages to confuse our heuristic nowadays,
378     leading to crashes and worse.
379 root 1.330 - document force_cctx.
380 root 1.329
381 root 1.328 4.46 Fri Apr 4 22:05:43 CEST 2008
382     - upgrade libcoro, resulting in pthread-backend (which was only created
383     to fulfill the rules of the programming languages shootout).
384    
385 root 1.327 4.45 Thu Mar 13 11:55:36 CET 2008
386 root 1.322 - fix a file leaking bug in eg/mhyttpd that would allow
387     downloading of any file (reported by oesi).
388 root 1.325 - fix deadlock bug in Coro::Channel (reported by Richard Hundt)
389     (also add testcase).
390 root 1.323 - support Broadcast option in Coro::Socket (patch by Richard Hundt,
391     apparently having loads of fun with that).
392 root 1.324 - implement $state->swap_defsv, ->swap_defav and document ->throw.
393 root 1.322
394 root 1.321 4.4 Wed Feb 13 16:44:29 CET 2008
395 root 1.319 - only assume .cfi pseudo isns exist on GNU/Linux.
396 root 1.320 - add get_timed method to Coro::Channels.
397 root 1.321 - fixed Coro::Debug manpage.
398     - perl 5.11 compatbility improvement based on patch by
399     Andreas König.
400 root 1.319
401 root 1.318 4.37 Sun Jan 20 11:25:23 CET 2008
402 root 1.317 - soften the check for an active parser for perl 5.10 (avoiding
403     "Coro::State::transfer called while parsing" in many cases).
404 root 1.316
405 root 1.315 4.36 Sun Jan 13 10:53:56 CET 2008
406 root 1.314 - reset diehook when terminating from an async_pool as to not
407     trigger any __DIE__ handlers.
408    
409 root 1.313 4.35 Sun Jan 13 04:14:13 CET 2008
410 root 1.308 - "bt" debug command now displays any exceptions
411 root 1.311 from longmess and also skips the innermost
412     stackframes, giving more useufl output.
413 root 1.309 - allow backtraces in coroutines blocked in Coro::EV,
414 root 1.310 at a <1% speed hit.
415 root 1.312 - handle localising of $SIG{__WARN__} and __DIE__
416 root 1.314 properly (with a proper amount of dirty hacking).
417 root 1.308
418 root 1.307 4.34 Sat Dec 22 17:49:53 CET 2007
419 root 1.306 - upgrade to EV version 2.0 API.
420    
421 root 1.305 4.33 Mon Dec 17 08:36:12 CET 2007
422     - make Coro::AIO etc. loadable in the absence of EV.
423    
424 root 1.304 4.32 Mon Dec 17 07:46:02 CET 2007
425 root 1.301 - majorly improved Coro::Handle's performance with Coro::EV.
426 root 1.302 - implemented the until now mythical Coro::BDB module.
427 root 1.304 - specialcase EV in Coro::AIO and Coro::BDB for extra speed.
428 root 1.301
429 root 1.300 4.31 Wed Dec 5 12:32:39 CET 2007
430     - remove warn statement form Coro::Util.
431    
432 root 1.299 4.3 Tue Dec 4 20:33:14 CET 2007
433     - calls to the idle function could cause stack corruption
434     when the stack changed.
435 root 1.295 - do no longer rely on the presence of EV::DNS if EV is used
436     (because it is gone), but instead take avdantage of EV::ADNS
437     if available.
438 root 1.296 - add ($) prototypes to all functions in Coro::Storable.
439 root 1.297 - use a conventional (safer) idle callback in Coro::EV.
440 root 1.298 - do accept quickly in Coro::Debug to avoid endless loops.
441 root 1.295
442 root 1.294 4.22 Fri Nov 30 16:04:04 CET 2007
443 root 1.293 - really use optimised versions for Event and EV in Coro::Util
444     and Coro::Handle.
445    
446 root 1.292 4.21 Sun Nov 25 10:48:59 CET 2007
447 root 1.290 - fix a spurious memory read.
448 root 1.291 - Coro::EV no longer keeps the eventloop "alive".
449 root 1.290
450 root 1.289 4.2 Fri Nov 9 20:47:05 CET 2007
451 root 1.282 - enable/disable tracing from a new coroutine, not a pooled one.
452 root 1.283 - fix a memleak in Coro::Event.
453 root 1.284 - removed killall call from fork_eval.
454     - made sure store_fd is already loaded so that fork_eval
455     does not have to parse autoload in each subprocess.
456 root 1.288 - only use assembly method if -O switch is in $Config{optimize}.
457 root 1.289 - add (optional) Coro::EV module, so far the best event loop module
458     directly supported by Coro.
459     - if the event model is EV, use EV::DNS to resolve
460     stuff in Coro::Util.
461 root 1.286 - don't get confused by multiple event notifications in Coro::Handle.
462 root 1.287 - initial support for EV (libevent interface).
463 root 1.289 - require Event and EV using configure_requires, to force their existance.
464 root 1.282
465 root 1.281 4.13 Wed Oct 24 07:26:45 CEST 2007
466 root 1.277 - add Coro::Storable::blocking_thaw.
467 root 1.278 - use a vastly more complicated technique to localise
468     $SIG{__WARN/DIE__} that also works on perls <= 5.8.8.
469 root 1.279 - use a coroutine for the idle callback Coro::Event,
470     instead of running Event in the current coroutine context.
471     This also catches recursive invocations.
472 root 1.280 - actually report fork errors in gethostbyname and inet_aton.
473 root 1.277
474 root 1.276 4.11 Thu Oct 11 02:40:24 CEST 2007
475     - port to threaded perls.
476    
477 root 1.275 4.1 Thu Oct 11 02:38:16 CEST 2007
478 root 1.264 - incompatible change: $SIG{__DIE__} and $SIG{__WARN__} will now
479     be local to each coro (see Coro::State).
480 root 1.274 - incompatible change: for very deep reasons, cede and cede_notself
481     cannot return anything, so nothing will be returned.
482 root 1.264 - possibly bring back 5.10 compatibility (untested).
483     - work around stupid (and wrong) warning on 5.10 :(.
484     - overlay the saved state over the context stack. This saves
485     a few hundred bytes per coroutine on average and also
486     speeds up context switching a bit.
487 root 1.265 - further tune default stack sizes.
488 root 1.264 - (more) correctly calculate stack usage in coro_rss.
489 root 1.267 - Coro::Storable::blocking_* did not properly lock
490     resulting in races between coroutines.
491     - added Coro::Storable::guard.
492 root 1.268 - stopping to trace a coroutine could destroy the cctx of
493     an unrelated coroutine.
494 root 1.269 - explain the relationship between Perl and C coroutines in
495     more detail in Coro::State.
496 root 1.270 - Coro::Util::inet_aton did not short-circuit dotted quad forms,
497     causing a fork per resolve. This also affected Coro::Socket.
498 root 1.272 - switch to a separate stack in $coro->call/eval to avoid
499     invalidating pointers.
500 root 1.264
501 root 1.263 4.03 Sat Oct 6 21:24:00 CEST 2007
502 root 1.262 - added Coro::throw method.
503     - minor code cleanups.
504    
505 root 1.261 4.02 Sat Oct 6 02:36:47 CEST 2007
506 root 1.258 - fix a very minor per-coroutine memleak (a single codereference).
507 root 1.259 - fixed a bug where the currently in-use c context would be freed
508     prematurely (can happen only when programs change the stacksize
509     or use tracing).
510     - tracing can no longer keep a coro alive after it terminated.
511 root 1.260 - do static branch prediction in the common path for gcc. gives
512     about 2-5% speed improvement here.
513 root 1.258
514 root 1.256 4.01 Fri Oct 5 22:10:49 CEST 2007
515 root 1.257 - instead of recreating *a* standard output handle we simply
516     use STDOUT, which is faster and hopefully more robust.
517 root 1.255
518 root 1.254 4.0 Fri Oct 5 12:56:00 CEST 2007
519 root 1.238 - incompatibly changed Coro::Storable::freeze.
520 root 1.244 - major new feature: added Coro::Debug, for interactive coroutine
521     debugging, tracing and much more.
522 root 1.252 - major bug fix: unbelievable, but true: $_, $/ and many other
523     "saved" variables actually weren't being saved. This has been fixed,
524     of course, while increasing performance while losing all the save
525     flags.
526 root 1.251 - save flags are gone, and all the api functions dealing with them.
527 root 1.232 - added Coro::Semaphore::adjust.
528 root 1.233 - added Coro::Util::fork_eval.
529     - added Coro::Storable::{nfreeze,blocking_{freeze,nfreeze}}.
530 root 1.248 - added Coro::killall.
531 root 1.236 - reduce initial stack sizes to allow for "micro-coroutines".
532 root 1.239 - better async_pool resource management, moved parts of async_pool
533 root 1.240 handling to XS (major speed improvement).
534 root 1.245 - actually croak before modifying important data structures.
535     - refuse to transfer while compiling.
536     - possibly support eval EXPR better now.
537 root 1.249 - enable assembly per default on linux+bsd x86+amd64.
538 root 1.253 - all internal members were renamed _something for easier subclassing.
539 root 1.237 - many minor tweaks.
540 root 1.232
541 root 1.231 3.63 Wed May 16 14:10:06 CEST 2007
542 root 1.230 - implement handcoded assembly for x86/amd64 SVR ABI.
543    
544 root 1.229 3.62 Fri Apr 27 21:36:06 CEST 2007
545     - upgrade libcoro (which might set unwind info correctly).
546 root 1.228 - change default on linux to setjmp/longjmp.
547 root 1.227
548 root 1.226 3.61 Thu Apr 19 12:36:18 CEST 2007
549 root 1.225 - Coro::Storable caused an endless loop when thawing invalid
550     pst's sometimes.
551 root 1.223 - use a Semaphore in Coro::Storable, as Storable doesn't
552 root 1.224 seem to be reentrant (although it is documented to
553     be threadsafe...).
554     - fix Coro::Signal to bring back the original unreliable
555     but stateful semantics.
556 root 1.226 - fixed a lot of typos in Coro.pm (patch submitted by David
557     Steinbrunner, which applied flawlessly).
558 root 1.223
559     3.6 Sat Apr 14 17:13:31 CEST 2007
560 root 1.217 - added some bugfixes to get eg/myhttpd working again.
561 root 1.218 - added Coro::Storable for often-cede'ing freeze/thaw.
562 root 1.219 - try to do a clean exit when a coroutine calls exit
563     (EXPERIMENTAL).
564 root 1.220 - got rid of indirect call through _coro_init.
565     - updated the partly antique examples in eg/ to
566     work again and be a bit less magic, too.
567     - fixed Coro::Signal semantics to work as documented again.
568 root 1.217
569 root 1.216 3.55 Sun Mar 25 01:20:47 CET 2007
570 root 1.215 - add SAVE_DEFFH to save the default filehandle and enable
571     it by default.
572     - finally move socket-operations from Coro::Socket to Coro::Handle
573     to be able to unblock foreign sockets.
574     - add Coro::State::save_also and guarded_save.
575 root 1.211 - add count accessor to Coro::Semaphore.
576 root 1.212 - add Coro::State::cctx_stacksize.
577 root 1.213 - just for the fun of it, do not rely on implicit context,
578     which can dramatically improve performance, but people
579     using windows-process-emulation perls do not care much about
580     performance.
581 root 1.211
582 root 1.210 3.51 Sun Mar 4 14:18:04 CET 2007
583 root 1.209 - fixed a problem when you weakened references to Coro::State's
584     (patch by Yuval Kogman).
585    
586 root 1.208 3.501 Wed Feb 28 12:44:07 CET 2007
587     - rename some global symbols as macosx from hell redefines
588     them without asking.
589    
590 root 1.207 3.5 Tue Feb 13 20:22:53 CET 2007
591 root 1.204 - do AnyEvent model detection earlier, avoiding problems
592     caused by first using AnyEvent and later Coro::Event.
593 root 1.205 - implement and document Coro::Event event objects.
594     - fix a potential problem in Coro::Event causing crashes.
595 root 1.206 - initialise PL_comppad when creating a new coroutine,
596     avoids crashes on early coro destruction.
597 root 1.204
598 root 1.203 3.41 Mon Jan 22 19:19:49 CET 2007
599 root 1.202 - readline on Coro::Handle did not support undefined $/,
600     nor did it deliver partial lines on EOF or error.
601 root 1.203 - implement malloc fallback for stack allocation because
602     stupid broken idiotic OSX has a stupid broken
603     idiotic fits-the-whole-os mmap "implementation" and
604     my dick feels longer if Coro is portable even to
605     obsolete platforms.
606 root 1.202
607 root 1.201 3.4 Fri Jan 19 21:52:54 CET 2007
608 root 1.197 - remove t/09_timer.t, as it isn't really testing much
609     but was rather flaky in practise.
610 root 1.198 - async_pool coro would keep arguments and callback alive until
611     it was reused.
612 root 1.199 - cancellation of a coroutine could cause spurious idle calls
613     in cede_notself.
614 root 1.197
615 root 1.196 3.3 Sat Jan 6 03:45:00 CET 2007
616 root 1.187 - implement $coro->on_destroy.
617 root 1.188 - Coro::Event blocking semantics have been changed,
618     documented and - hopefully - improved.
619 root 1.184 - fix nice adding, not subtracting, from priority.
620 root 1.185 - fix ->prio and api_is_ready (patch by Mark Hinds).
621 root 1.190 - fixed an assert ("... == prev__cctx->idle_te")
622     that could errronously trigger.
623 root 1.192 - fix various large and small memleaks.
624 root 1.191 - use a (hopefully) more stable cancel implementation
625     that immediately frees the coroutine data.
626 root 1.194 - cede/cede_notself return a status now.
627 root 1.191 - added Coro::guard function.
628 root 1.193 - added a global coroutine pool for jobs (on my machine,
629     I can create and execute 48k simple coros/s with async,
630     and 128k coros with async_pool).
631 root 1.195 - Coro::AIO now uses the coroutine priority as io priority.
632 root 1.184
633 root 1.183 3.2 Fri Dec 22 05:07:09 CET 2006
634 root 1.179 - improve portability to slightly older perls.
635 root 1.180 - use cleaner coroutine destruction.
636 root 1.182 - simplify configuration for users.
637     - optionally (unrecommended) prefer perl functions over
638     their coro replacements.
639 root 1.179
640 root 1.178 3.11 Tue Dec 5 13:11:24 CET 2006
641     - fixed some bogus assert's, but as perl.h disables assert even
642     without NDEBUG (thank you very much), not too many people should
643     notice (that did include myself). Andreas König noticed, though :)
644     - do not save/restore PL_sortcxix on >= 5.9.x, it doesn't seem to have
645     it. Also noticed by Andreas König :)
646     - save/restore tainted status.
647     - verified to pass the testsuite on my 5.9.5.
648    
649 root 1.177 3.1 Mon Dec 4 23:03:40 CET 2006
650     - INCOMPATIBLE CHANGE: $/ is now per-coroutine (but slow).
651 root 1.175 - incompatible change: transfer flags are now per-state.
652 root 1.173 - give a better error message on deadlock.
653 root 1.175 - document Coro::nready.
654 root 1.174 - enhanced testsuite.
655 root 1.169
656 root 1.172 3.01 Sun Dec 3 23:47:42 CET 2006
657     - forgot to include Coro::Timer.
658    
659 root 1.171 3.0 Sun Dec 3 22:57:25 CET 2006
660 root 1.163 - the "FINALLY COMPLETELY STABLE" release (coming soon:
661     the "FAMOUS LAST WORDS" release).
662 root 1.166 - implement a new stack sharing algorithm, which uses a stack
663     pool (size currently hardcoded).
664 root 1.155 - make stack sharing mandatory (it no longer uses a heuristic).
665 root 1.157 - eval/die no longer cause weird problems under heavy use.
666 root 1.152 - Coro::Event could cause livelocks if it was used but
667 root 1.161 no Coro::Event watchers were used.
668 root 1.167 - Coro::Event now uses asynccheck as prepare does not
669     check for changed watchers.
670 root 1.170 - Coro::Event allows multiple waiting coros and will wake up one
671     per event.
672 root 1.152 - Coro::Event should be cleaner and more efficient now.
673 root 1.165 - new utility function Coro::unblock_sub.
674 root 1.164 - document the sad fact that Event is no longer reentrant.
675 root 1.163 - putting a coroutine into the ready queue twice could under
676     some circumstances lead to stack corruption.
677 root 1.161 - minor incompatibility: subclassing Coro::State is supported
678     directly now without going through a _coro_state member.
679 root 1.156 - state/coro switching is much faster now.
680 root 1.154 - very minor optimisations and code/documentation cleanup.
681 root 1.153 - avoid problems due to compiler inlining.
682 root 1.154 - removed timers from Coro::Timer -> use AnyEvent instead.
683     - replaced Coro::idle coroutine by (cleaner) idle handler.
684 root 1.156 - updated to newest libcoro.
685 root 1.159 - implement enhanced support for valgrind.
686 root 1.162 - implement is_ready and return value for ready.
687 root 1.168 - removed Coro::Cont, it was a misnomer (it's generators),
688     and it was somewhat annoying to get it right. Will come back
689     if somebody asks for it :)
690 root 1.163 - many ->wait methods and Coro::Event could return
691     spuriously without the event having happened.
692 root 1.146
693 root 1.145 2.5 Tue Nov 7 12:22:33 CET 2006
694 root 1.143 - made Coro::Util, Coro::Select, Coro::Handle and Coro::Socket
695     use AnyEvent, moved them to Coro/.
696 root 1.140 - added Coro::LWP which contains all the uglyness required to
697     make LWP non-blocking.
698     - should work with perl 5.9.x now (Andreas König made me do it).
699 root 1.141 - fixed another bug in Coro::Select when the timeout was undef.
700 root 1.136 - reuse PL_start_env for all coros, saves some memory per coroutine.
701     - manage PL_top_env differently, hopefully to avoid panic: top_env.
702 root 1.137 - timeout argument was not properly used in Coro::Socket.
703     - allow limited forms of subclassing in Coro::Handle/Coro::Socket.
704 root 1.138 - emulate undocumented(!) functionality of IO::Socket required
705     by LWP(!!).
706     - updated eg/lwp to work with newer lwp's.
707 root 1.140 - remove "FATAL: uncaught exception" prefix. Coroutines that die
708     kill the whole process, just as exceptions in the main "coroutine"
709     did already.
710 root 1.135
711 root 1.134 2.1 Wed Nov 1 23:01:13 CET 2006
712     - fix a long-standing bug in Coro::Select where select with
713     zero timeout would instead change the current default filehandle.
714 root 1.132 - use a simpler and hopefully more robust way to clone padlists
715     (uses less memory and a perl function instead of our own).
716     - coro can now create a stack guard area on many architectures.
717 root 1.134 - Coro::AIO properly reexports additional functions from IO::AIO.
718 root 1.132 - updated libcoro with a workaround for OS X,
719 root 1.134 pach and testing by Michael Schwern.
720 root 1.130
721 root 1.129 2.0 Tue Oct 24 05:47:17 CEST 2006
722 root 1.128 - support additional aio requests in Coro::AIO.
723    
724 root 1.129 1.9 (never properly released due to a glitch)
725    
726 root 1.127 1.8 Thu Feb 2 00:59:06 CET 2006
727 root 1.125 - applied suggested patch by SAMV to avoid problems during stupid
728     mark & sweep gc run.
729 root 1.126 - applied patch by Scott Walters for 5.9.3 compatibility.
730 root 1.125
731 root 1.124 1.7 Tue Dec 27 01:41:58 CET 2005
732 root 1.123 - added Coro::AIO, a thin wrapper around IO::AIO.
733 root 1.122 - improved Makefile.PL explanations.
734    
735 root 1.119 1.6 Mon Dec 12 21:30:05 CET 2005
736 root 1.117 - additionally save PM_curpm might fix as-of-yet
737 root 1.121 unseen problems with regex matches being attributed to the
738 root 1.117 wrong package.
739 root 1.118 - add t/10_bugs.t, which currently checks against imho broken
740     perls that use 0.26MB of stack space per Perl_magic_get
741 root 1.121 invocation (newer linuxes) as opposed to the 0.0002MB perl
742     normally uses.
743 root 1.120 - make stacksize configurable for the ultimate debian experience.
744 root 1.117
745 root 1.116 1.51 Mon Dec 12 18:48:36 CET 2005
746     - remove debugging warn() accidentally left in Coro::Select.
747    
748 root 1.115 1.5 Tue Nov 29 13:32:44 CET 2005
749 root 1.114 - use Coro::Event inside Coro::Select to avoid spurious deadlocks.
750 root 1.115 - fix Coro::Select 'select'.
751     - strict'ify some modules.
752 root 1.112 - libcoro errornously restored the SIGUSR2 handler to SIGUSR1.
753 root 1.115 - use XSLoader in selected modules.
754     - remove some 5.6 compatibility cruft.
755 root 1.112
756 root 1.111 1.4 Tue Sep 6 00:11:05 CEST 2005
757     - libcoro did not take into account the trampoline on amd64,
758     when 'l'inux method was used.
759    
760 root 1.110 1.31 Tue Aug 30 23:31:33 CEST 2005
761     - some portability fixes/workarounds.
762    
763 root 1.107 1.3 Sat Aug 20 03:08:56 CEST 2005
764 root 1.108 - no code changes. module seems to work fine.
765 root 1.106 - improve Coro::State docs, remove reference to nonexisting
766     Coro::State::flush method.
767 root 1.107 - no longer autodetect windows, present it as an option instead.
768 root 1.106
769 root 1.105 1.2 Mon May 16 02:00:55 CEST 2005
770 root 1.100 - included libcoro.c earlier in State.xs, might improve portability.
771 root 1.101 - use a faster and possibly more stable Coro::Cont implementation.
772 root 1.102 - accept x86_64 in addition to amd64 for optimized linux-amd64 support.
773 root 1.104 - fix bugs Coro::SemaphoreSet that could cause locks never to be freed.
774 root 1.105 - fix bugs in CoroAPI.h and document it in Coro::MakeMaker.
775 root 1.100
776 root 1.99 1.11 Thu Mar 3 18:00:52 CET 2005
777     - change of contact address.
778    
779 root 1.98 1.1 Tue Feb 22 20:51:16 CET 2005
780 root 1.97 - support [l]inux method on amd64.
781 root 1.109 - allow some context switches while compiling/eval'ing.
782 root 1.97
783 root 1.96 1.0 Tue Aug 10 03:47:27 CEST 2004
784 root 1.95 - Event 0.89 fixes the bug again.
785 root 1.96 - fix the remaining(??) memleak. I didn't free the cache-AV for
786     padlists, so one AV per created anon-sub leaked.
787 root 1.95
788 pcg 1.94 0.97 Fri May 14 15:23:32 CEST 2004
789     - remove stupid gcc extension that was an experiment only anyway.
790    
791 pcg 1.93 0.96 Thu May 13 18:09:29 CEST 2004
792 root 1.103 - tell people if they have yet another broken Event variant.
793 pcg 1.91 - made Coro to work _better_ with threads (it seems that, as long
794     as you use Coros in one thread only everything will work fine.
795     Looking at the perl source the problem might be missing locking
796     between Coro and some perl internal routines. That's not easily
797     fixable).
798 pcg 1.92 - (hopefully) got rid of the static xnext inside transfer.
799 pcg 1.91
800 pcg 1.90 0.95 Sun Feb 15 03:20:28 CET 2004
801 pcg 1.86 - removed Coro::State::flush, implemented a new and much
802     faster caching mechanism by attaching magic to the CV.
803 pcg 1.87 - a memleak with (real) closures remains.
804 pcg 1.88 - dramatically reduced size of stacks to 65536 (linux/x86), after
805     observing that even myhttpd never had more than a kilobyte
806     of stack in use (stack is still only physically allocated in
807     pagesize increments for systems suporting mmap).
808 pcg 1.89 - fix for a "cygwin-64" architecture added, proposed by Stefan Traby.
809 pcg 1.90 - fix for threaded perl.
810 pcg 1.86
811 pcg 1.85 0.9 Sun Nov 23 04:32:39 CET 2003
812 pcg 1.84 - fix a few very hard to track down but (of course) stupid
813     memory leaks.
814     - stringify version number to avoid locale problems :(.
815 pcg 1.85 - perl 5.9.0 does not have SvPADBUSY, reported by Scott Walters,
816     hopefully ignoring it "just works".
817 pcg 1.84
818 pcg 1.83 0.8 Wed Nov 5 19:38:40 CET 2003
819     - port to perl5.005_03, but only 5.8.x+ is supported!
820 pcg 1.82 - honor LocalAddr even without LocalPort in Coro::Socket.
821    
822 root 1.81 0.7 Tue May 27 03:12:38 CEST 2003
823     - the version jump indicates some level of testing, not gobs
824     of new features.
825 root 1.80 - uh... I found the prompt function in ExtUtils::MakeMaker.
826     Highly correct stuff, that is...
827 root 1.81 - fixed(?) a bug with die's in coroutines causing "panic: top_env".
828     the fix is not well understood by the author, so beware :(.
829 root 1.80
830 root 1.79 0.652 Thu May 8 02:54:46 CEST 2003
831 root 1.76 - Applied patch by Slaven Rezic to set default to "s" on FreeBSD,
832 root 1.78 cause version 4 doesn't have ucontext.
833 root 1.77 - Benjamin Reed reported that setjmp works fine on darwin,
834     so preselect it.
835 root 1.76
836 root 1.75 0.651 Sat Mar 29 15:00:23 CET 2003
837     - fix a bug in Coro::Handle where some bytes could get lost
838     on reading, reported by jason@nichego.net.
839 root 1.74
840 root 1.73 0.65 Sun Mar 23 00:08:26 CET 2003
841 root 1.72 - added a README.linux-glibc.
842     - new module Coro::Select.
843     - also save/restore PL_comppad, fixes segfaults with 5.8.1.
844     (I never claimed that I know what I am doing ;).
845 root 1.73 - set default to setjmp/longjmp on non-x86-linux.
846 root 1.72
847 root 1.71 0.6 Thu Nov 21 11:09:06 CET 2002
848     - made lazy context switching the default.
849     - fixed the bug where SemaphoreSet::guard
850     was the same as timed_guard and timed_guard was missing.
851     - fix a memleak in Coro::Timer.
852     - reclassified context sharing as not experimental.
853    
854 root 1.70 0.534 Sun Apr 14 03:05:12 CEST 2002
855 root 1.69 - fixed backspace => tab in header parsing (myhttpd).
856 root 1.70 - added eg/readline, for elmex.
857     - Coro::Event now calls ->start on first call instead of
858     ->again, which created wrong timeouts for the first ->next.
859     - fixed a bug where Coro::Socket returned a closed socket instead
860     of nothing on ECONNREFUSED and similar error conditions.
861 root 1.69
862 root 1.68 0.533 Mon Feb 18 18:49:40 CET 2002
863     - adapt to finally working Event-0.85.
864     - fixed buggy event initialization (trapped under windows, but how
865     could it possibly have worked anywhere?)
866    
867 root 1.67 0.532 Wed Jan 16 02:45:32 CET 2002
868 root 1.66 - removed the reference to pp_entersub, might work on
869     (some) win32 perls now (testsuite works under cygwin,
870     without Event, which freezes).
871 root 1.65
872 root 1.64 0.531 Mon Dec 10 22:18:44 CET 2001
873 root 1.63 - Fixed a bug in SemaphoreSet::timed_down.
874    
875 root 1.64 0.53 Tue Nov 27 21:11:13 CET 2001
876 root 1.60 - some tests for Event.
877 root 1.61 - slightly different internal architecture to get refcnt into the object
878     and not the reference. might fix a few bugs, certainly did introduce
879     new ones.
880     - Coro::Timer (independent of Event).
881 root 1.62 - new timed_wait functions for Coro::Signal, Semaphore, SemaphoreSet.
882 root 1.60
883 root 1.64 0.52 Tue Nov 6 21:36:18 CET 2001
884 root 1.58 - ported to cygwin (trivial).
885     patch by Gerrit P. Haase <gp@familiehaase.de>.
886     - small setjmp code fix by Sullivan.DanielJ@epamail.epa.gov.
887    
888 root 1.64 0.51 Thu Nov 1 20:39:01 CET 2001
889 root 1.54 - terminate/cancel now work properly (otherwise termination
890     could cause a "next coroutine is not and contains not..."
891     error.
892 root 1.55 - added Coro::Socket::shutdown.
893 root 1.56 - Coro::Event::loop no is the same as Event::loop.
894     - implemented terminate with args + join.
895 root 1.54
896 root 1.64 0.5 Fri Sep 28 16:15:35 CEST 2001
897 root 1.53 - fixed "print" on a Coro::Handle. The print method worked.
898 root 1.50 - small tweaks (seem to reduce memory consumption a lot)
899     in various modules.
900     - splendid use of "no warnings" scattered throughout.
901 root 1.52 - added Coro::Handle::rbuf, fixed Coro::Handle::fh.
902 root 1.48
903 root 1.47 0.49 Sun Sep 16 02:42:45 CEST 2001
904 root 1.43 - changed some method calls to function calls for speed
905     inside Coro::Handle.
906 root 1.44 - make Coro::Handle use an array instead of a hash for
907     speed reasons.
908     - IRIX mystery solved: it's SGI's NT, after all: "standard, huh?".
909     sjlj and ucontext should now work.
910     - IRIX-specific port for libcoro.
911 root 1.45 - swapped order of accept results to match IO::Socket.
912 root 1.46 - changed getsock/peername to sock/peername to match IO::Socket.
913     - fixed a bug that caused segfault when returning to main task
914     under some circumstances.
915     - other bugfixes.
916 root 1.43
917 root 1.42 0.45 Sun Sep 2 02:54:01 CEST 2001
918 root 1.36 - new method Coro::Handle::timeout.
919     - corrected speling of set...name to get...name in Coro::Socket.
920     - Coro::Socket::accept now returns a Coro::Socket, not a Coro::Handle.
921     - Coro::Handle now supports fileno and FILENO.
922     - added eg/myhttpd, a web server.
923 root 1.37 - Coro::Socket now accepts numeric ports as well as "port(number)"
924     syntax.
925 root 1.38 - moved some scheduling primitives into xs code. more to come.
926 root 1.39 - new simple priority system.
927 root 1.40 - implemented Coro::Event using XS, almost four times faster!
928 root 1.41 - small memory corruption problem fixed (boy that was difficult).
929 root 1.36
930 root 1.35 0.13 Wed Aug 8 16:53:07 CEST 2001
931 root 1.31 - new method Coro::Handle::readline.
932 root 1.34 - added eg/lwp and Coro::Handle::autoflush, to make LWP work.
933     (see eg/lwp on how to make LWP non-blocking).
934 root 1.31 - renamed Coro::Socket::new_inet to new.
935 root 1.32 - added Coro::Util, some utility functions.
936 root 1.33 - die/eval now works better (still get annoying (but true ;)
937     "Callback called exit" messages).
938 root 1.34 - Coro::Handle now supports timeout, and Coro::Socket Timeout.
939     - much better Coro::Socket support.
940 root 1.31
941     0.12 Fri Jul 27 04:19:01 CEST 2001
942 root 1.29 - do not use mmap if neither MAP_ANON nor MAP_ANONYMOUS is defined.
943 root 1.34 - very experimental stack sharing algorithm. not 100% safe but
944 root 1.28 should work well in practise ;)
945 root 1.30 - added Coro::RWLock.
946 root 1.31 - Coro::Specific now works.
947 root 1.28
948     0.11 Tue Jul 24 22:49:21 CEST 2001
949 root 1.27 - added specialized hack for newer and older linux versions (fast).
950     - renamed Coro::Event::IO to Coro::Handle.
951     - new module Coro::Socket.
952    
953 root 1.26 0.1 Tue Jul 24 01:47:53 CEST 2001
954 root 1.23 - release candidate 3. A rather new internal structure :(
955 root 1.24 - the great renaming: Damian Conway gave me a suitable replacement
956     for yield.
957 root 1.23 - added Coro/libcoro, a portable coroutine implementation for C
958 root 1.22 (not even perl-dependent!!!), which can be used by Coro::State.
959 root 1.20 - renamed SAVE_DEFSV (on xs-level only) to avoid symbol clash in
960     perl-5.6.
961 root 1.16 - new function Coro::Event::idle.
962     - the idle process is now overriden
963     by default in Coro::Event.
964 root 1.17 - Coro::Channel now enforces the size.
965 root 1.18 - canceling events now works in all cases.
966 root 1.19 - Coro state now include $_ and $@.
967     - yet another bug workaround that I do not really understand :(
968 root 1.21 - new module Coro::Event::IO (very undocumented) to do
969     non-blocking i/o.
970 root 1.25 - performance tuning.
971 root 1.16
972 root 1.15 0.08 Thu Jul 19 06:13:25 CEST 2001
973 root 1.14 - release candidate 2 (new functionality).
974 root 1.13 - add Coro::State::flush function.
975     - transfer now supports a flags value (mostly for speed ATM).
976     - might compile and work in the presence of threads now.
977 root 1.14 - continuations have a saner syntax.
978 root 1.19 - no more memleaks.
979 root 1.13
980 root 1.12 0.07 Tue Jul 17 17:40:18 CEST 2001
981     - release candidate 1 ;)
982     - slightly nicer code.
983     - fixed a scheduling bug in Coro::Event.
984    
985 root 1.11 0.06 Tue Jul 17 04:23:24 CEST 2001
986     - ok, I found the showstopper - the same sub must not be
987 root 1.9 re-entered in two different coroutines, otherwise => crash. I
988     see no easy solution to this problem, except by walking the call
989     chaing and saving/restoring the cv's, which is what I do now.
990 root 1.11 - memory leaks still latent, especially at thread termination.
991     - Coro::Event now works (haha).
992 root 1.9
993 root 1.8 0.05 Sun Jul 15 17:32:20 CEST 2001
994     - fixed a few issues in Coro::Event.
995     - I forgot to include Coro::Event in 0.04 :(:(:(
996    
997 root 1.7 0.04 Sun Jul 15 05:24:59 CEST 2001
998 root 1.5 - @_ is now properly localized.
999 root 1.4 - Coro::State is now easier subclassable.
1000     - Coro::Cont now coroutine-aware.
1001     - Coro::Specific is a low-overhead module to create
1002     coroutine-specific vars.
1003 root 1.6 - Coro::Event provides a simple interface to Event.
1004 root 1.4
1005 root 1.3 0.03 Fri Jul 13 14:51:52 CEST 2001
1006 root 1.4 - transfer() now implemented in XS (beware).
1007     - new module Coro::Cont for really faked continuations.
1008     - big internal architecture changes: Coro::State is now
1009 root 1.3 really low-level and can thus be used to implement other
1010 root 1.4 interesting things, While "Coro::" implements a process-like
1011     model. Still crude and subject to change.
1012 root 1.3 - $_ and $@ are no longer being localized.
1013    
1014 root 1.2 0.02 Tue Jul 10 01:38:17 CEST 2001
1015     - implemented "async" attribute.
1016     - $_ and $@ are now localized.
1017     - added Coro::Channel.
1018     - more testcases, still no docs.
1019    
1020 root 1.1 0.01 Tue Jul 3 02:18:41 CEST 2001
1021     - original version; copied from Convert::Scalar.
1022