ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Changes
Revision: 1.500
Committed: Wed Jun 24 02:52:38 2009 UTC (14 years, 10 months ago) by root
Branch: MAIN
Changes since 1.499: +2 -0 lines
Log Message:
*** empty log message ***

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