ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Changes
Revision: 1.340
Committed: Sat Apr 26 08:05:38 2008 UTC (16 years ago) by root
Branch: MAIN
Changes since 1.339: +1 -1 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.218 TODO: should explore PerlIO::via::CoroCede and PerlIO::via::CoroAIO.
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.173
8 root 1.340 4.6 Sat Apr 26 10:05:14 CEST 2008
9 root 1.336 - INCOMPATIBLE CHANGE: sub/code attributes are no longer supported
10 root 1.339 by the Coro module. It was a mistake to have it in the first place.
11     - (experimental) support for activestate perl 5.10 (method "w").
12     - (experimental) support for strawberry perl (method "a").
13 root 1.337 - coro_sigelem_set did not return a value although it had to,
14     actual impact unknown.
15 root 1.336
16 root 1.335 4.51 Mon Apr 14 13:28:27 CEST 2008
17     - make it compile again on 5.8.
18    
19 root 1.334 4.50 Thu Apr 10 09:43:17 CEST 2008
20     - I did it twice! (see 4.49).
21    
22 root 1.333 4.49 Sun Apr 6 21:23:31 CEST 2008
23     - grr, instead of compiling the recent changes on 5.10 only they
24     were compiled on 5.8 only.
25    
26 root 1.332 4.48 Sun Apr 6 20:36:46 CEST 2008
27 root 1.331 - allow coroutine switches during eval's under 5.10.x, as it seems
28     the parser is a per-interpreter option now, so this is safe
29     (this might fix the odd crashing bug).
30 root 1.332 - drop support for 5.9.x versions: they are dead, jim.
31 root 1.331
32 root 1.330 4.47 Sun Apr 6 00:37:52 CEST 2008
33 root 1.329 - force cctx allocation on API calls: we know we need to force one
34     and gcc actually manages to confuse our heuristic nowadays,
35     leading to crashes and worse.
36 root 1.330 - document force_cctx.
37 root 1.329
38 root 1.328 4.46 Fri Apr 4 22:05:43 CEST 2008
39     - upgrade libcoro, resulting in pthread-backend (which was only created
40     to fulfill the rules of the programming languages shootout).
41    
42 root 1.327 4.45 Thu Mar 13 11:55:36 CET 2008
43 root 1.322 - fix a file leaking bug in eg/mhyttpd that would allow
44     downloading of any file (reported by oesi).
45 root 1.325 - fix deadlock bug in Coro::Channel (reported by Richard Hundt)
46     (also add testcase).
47 root 1.323 - support Broadcast option in Coro::Socket (patch by Richard Hundt,
48     apparently having loads of fun with that).
49 root 1.324 - implement $state->swap_defsv, ->swap_defav and document ->throw.
50 root 1.322
51 root 1.321 4.4 Wed Feb 13 16:44:29 CET 2008
52 root 1.319 - only assume .cfi pseudo isns exist on GNU/Linux.
53 root 1.320 - add get_timed method to Coro::Channels.
54 root 1.321 - fixed Coro::Debug manpage.
55     - perl 5.11 compatbility improvement based on patch by
56     Andreas König.
57 root 1.319
58 root 1.318 4.37 Sun Jan 20 11:25:23 CET 2008
59 root 1.317 - soften the check for an active parser for perl 5.10 (avoiding
60     "Coro::State::transfer called while parsing" in many cases).
61 root 1.316
62 root 1.315 4.36 Sun Jan 13 10:53:56 CET 2008
63 root 1.314 - reset diehook when terminating from an async_pool as to not
64     trigger any __DIE__ handlers.
65    
66 root 1.313 4.35 Sun Jan 13 04:14:13 CET 2008
67 root 1.308 - "bt" debug command now displays any exceptions
68 root 1.311 from longmess and also skips the innermost
69     stackframes, giving more useufl output.
70 root 1.309 - allow backtraces in coroutines blocked in Coro::EV,
71 root 1.310 at a <1% speed hit.
72 root 1.312 - handle localising of $SIG{__WARN__} and __DIE__
73 root 1.314 properly (with a proper amount of dirty hacking).
74 root 1.308
75 root 1.307 4.34 Sat Dec 22 17:49:53 CET 2007
76 root 1.306 - upgrade to EV version 2.0 API.
77    
78 root 1.305 4.33 Mon Dec 17 08:36:12 CET 2007
79     - make Coro::AIO etc. loadable in the absence of EV.
80    
81 root 1.304 4.32 Mon Dec 17 07:46:02 CET 2007
82 root 1.301 - majorly improved Coro::Handle's performance with Coro::EV.
83 root 1.302 - implemented the until now mythical Coro::BDB module.
84 root 1.304 - specialcase EV in Coro::AIO and Coro::BDB for extra speed.
85 root 1.301
86 root 1.300 4.31 Wed Dec 5 12:32:39 CET 2007
87     - remove warn statement form Coro::Util.
88    
89 root 1.299 4.3 Tue Dec 4 20:33:14 CET 2007
90     - calls to the idle function could cause stack corruption
91     when the stack changed.
92 root 1.295 - do no longer rely on the presence of EV::DNS if EV is used
93     (because it is gone), but instead take avdantage of EV::ADNS
94     if available.
95 root 1.296 - add ($) prototypes to all functions in Coro::Storable.
96 root 1.297 - use a conventional (safer) idle callback in Coro::EV.
97 root 1.298 - do accept quickly in Coro::Debug to avoid endless loops.
98 root 1.295
99 root 1.294 4.22 Fri Nov 30 16:04:04 CET 2007
100 root 1.293 - really use optimised versions for Event and EV in Coro::Util
101     and Coro::Handle.
102    
103 root 1.292 4.21 Sun Nov 25 10:48:59 CET 2007
104 root 1.290 - fix a spurious memory read.
105 root 1.291 - Coro::EV no longer keeps the eventloop "alive".
106 root 1.290
107 root 1.289 4.2 Fri Nov 9 20:47:05 CET 2007
108 root 1.282 - enable/disable tracing from a new coroutine, not a pooled one.
109 root 1.283 - fix a memleak in Coro::Event.
110 root 1.284 - removed killall call from fork_eval.
111     - made sure store_fd is already loaded so that fork_eval
112     does not have to parse autoload in each subprocess.
113 root 1.288 - only use assembly method if -O switch is in $Config{optimize}.
114 root 1.289 - add (optional) Coro::EV module, so far the best event loop module
115     directly supported by Coro.
116     - if the event model is EV, use EV::DNS to resolve
117     stuff in Coro::Util.
118 root 1.286 - don't get confused by multiple event notifications in Coro::Handle.
119 root 1.287 - initial support for EV (libevent interface).
120 root 1.289 - require Event and EV using configure_requires, to force their existance.
121 root 1.282
122 root 1.281 4.13 Wed Oct 24 07:26:45 CEST 2007
123 root 1.277 - add Coro::Storable::blocking_thaw.
124 root 1.278 - use a vastly more complicated technique to localise
125     $SIG{__WARN/DIE__} that also works on perls <= 5.8.8.
126 root 1.279 - use a coroutine for the idle callback Coro::Event,
127     instead of running Event in the current coroutine context.
128     This also catches recursive invocations.
129 root 1.280 - actually report fork errors in gethostbyname and inet_aton.
130 root 1.277
131 root 1.276 4.11 Thu Oct 11 02:40:24 CEST 2007
132     - port to threaded perls.
133    
134 root 1.275 4.1 Thu Oct 11 02:38:16 CEST 2007
135 root 1.264 - incompatible change: $SIG{__DIE__} and $SIG{__WARN__} will now
136     be local to each coro (see Coro::State).
137 root 1.274 - incompatible change: for very deep reasons, cede and cede_notself
138     cannot return anything, so nothing will be returned.
139 root 1.264 - possibly bring back 5.10 compatibility (untested).
140     - work around stupid (and wrong) warning on 5.10 :(.
141     - overlay the saved state over the context stack. This saves
142     a few hundred bytes per coroutine on average and also
143     speeds up context switching a bit.
144 root 1.265 - further tune default stack sizes.
145 root 1.264 - (more) correctly calculate stack usage in coro_rss.
146 root 1.267 - Coro::Storable::blocking_* did not properly lock
147     resulting in races between coroutines.
148     - added Coro::Storable::guard.
149 root 1.268 - stopping to trace a coroutine could destroy the cctx of
150     an unrelated coroutine.
151 root 1.269 - explain the relationship between Perl and C coroutines in
152     more detail in Coro::State.
153 root 1.270 - Coro::Util::inet_aton did not short-circuit dotted quad forms,
154     causing a fork per resolve. This also affected Coro::Socket.
155 root 1.272 - switch to a separate stack in $coro->call/eval to avoid
156     invalidating pointers.
157 root 1.264
158 root 1.263 4.03 Sat Oct 6 21:24:00 CEST 2007
159 root 1.262 - added Coro::throw method.
160     - minor code cleanups.
161    
162 root 1.261 4.02 Sat Oct 6 02:36:47 CEST 2007
163 root 1.258 - fix a very minor per-coroutine memleak (a single codereference).
164 root 1.259 - fixed a bug where the currently in-use c context would be freed
165     prematurely (can happen only when programs change the stacksize
166     or use tracing).
167     - tracing can no longer keep a coro alive after it terminated.
168 root 1.260 - do static branch prediction in the common path for gcc. gives
169     about 2-5% speed improvement here.
170 root 1.258
171 root 1.256 4.01 Fri Oct 5 22:10:49 CEST 2007
172 root 1.257 - instead of recreating *a* standard output handle we simply
173     use STDOUT, which is faster and hopefully more robust.
174 root 1.255
175 root 1.254 4.0 Fri Oct 5 12:56:00 CEST 2007
176 root 1.238 - incompatibly changed Coro::Storable::freeze.
177 root 1.244 - major new feature: added Coro::Debug, for interactive coroutine
178     debugging, tracing and much more.
179 root 1.252 - major bug fix: unbelievable, but true: $_, $/ and many other
180     "saved" variables actually weren't being saved. This has been fixed,
181     of course, while increasing performance while losing all the save
182     flags.
183 root 1.251 - save flags are gone, and all the api functions dealing with them.
184 root 1.232 - added Coro::Semaphore::adjust.
185 root 1.233 - added Coro::Util::fork_eval.
186     - added Coro::Storable::{nfreeze,blocking_{freeze,nfreeze}}.
187 root 1.248 - added Coro::killall.
188 root 1.236 - reduce initial stack sizes to allow for "micro-coroutines".
189 root 1.239 - better async_pool resource management, moved parts of async_pool
190 root 1.240 handling to XS (major speed improvement).
191 root 1.245 - actually croak before modifying important data structures.
192     - refuse to transfer while compiling.
193     - possibly support eval EXPR better now.
194 root 1.249 - enable assembly per default on linux+bsd x86+amd64.
195 root 1.253 - all internal members were renamed _something for easier subclassing.
196 root 1.237 - many minor tweaks.
197 root 1.232
198 root 1.231 3.63 Wed May 16 14:10:06 CEST 2007
199 root 1.230 - implement handcoded assembly for x86/amd64 SVR ABI.
200    
201 root 1.229 3.62 Fri Apr 27 21:36:06 CEST 2007
202     - upgrade libcoro (which might set unwind info correctly).
203 root 1.228 - change default on linux to setjmp/longjmp.
204 root 1.227
205 root 1.226 3.61 Thu Apr 19 12:36:18 CEST 2007
206 root 1.225 - Coro::Storable caused an endless loop when thawing invalid
207     pst's sometimes.
208 root 1.223 - use a Semaphore in Coro::Storable, as Storable doesn't
209 root 1.224 seem to be reentrant (although it is documented to
210     be threadsafe...).
211     - fix Coro::Signal to bring back the original unreliable
212     but stateful semantics.
213 root 1.226 - fixed a lot of typos in Coro.pm (patch submitted by David
214     Steinbrunner, which applied flawlessly).
215 root 1.223
216     3.6 Sat Apr 14 17:13:31 CEST 2007
217 root 1.217 - added some bugfixes to get eg/myhttpd working again.
218 root 1.218 - added Coro::Storable for often-cede'ing freeze/thaw.
219 root 1.219 - try to do a clean exit when a coroutine calls exit
220     (EXPERIMENTAL).
221 root 1.220 - got rid of indirect call through _coro_init.
222     - updated the partly antique examples in eg/ to
223     work again and be a bit less magic, too.
224     - fixed Coro::Signal semantics to work as documented again.
225 root 1.217
226 root 1.216 3.55 Sun Mar 25 01:20:47 CET 2007
227 root 1.215 - add SAVE_DEFFH to save the default filehandle and enable
228     it by default.
229     - finally move socket-operations from Coro::Socket to Coro::Handle
230     to be able to unblock foreign sockets.
231     - add Coro::State::save_also and guarded_save.
232 root 1.211 - add count accessor to Coro::Semaphore.
233 root 1.212 - add Coro::State::cctx_stacksize.
234 root 1.213 - just for the fun of it, do not rely on implicit context,
235     which can dramatically improve performance, but people
236     using windows-process-emulation perls do not care much about
237     performance.
238 root 1.211
239 root 1.210 3.51 Sun Mar 4 14:18:04 CET 2007
240 root 1.209 - fixed a problem when you weakened references to Coro::State's
241     (patch by Yuval Kogman).
242    
243 root 1.208 3.501 Wed Feb 28 12:44:07 CET 2007
244     - rename some global symbols as macosx from hell redefines
245     them without asking.
246    
247 root 1.207 3.5 Tue Feb 13 20:22:53 CET 2007
248 root 1.204 - do AnyEvent model detection earlier, avoiding problems
249     caused by first using AnyEvent and later Coro::Event.
250 root 1.205 - implement and document Coro::Event event objects.
251     - fix a potential problem in Coro::Event causing crashes.
252 root 1.206 - initialise PL_comppad when creating a new coroutine,
253     avoids crashes on early coro destruction.
254 root 1.204
255 root 1.203 3.41 Mon Jan 22 19:19:49 CET 2007
256 root 1.202 - readline on Coro::Handle did not support undefined $/,
257     nor did it deliver partial lines on EOF or error.
258 root 1.203 - implement malloc fallback for stack allocation because
259     stupid broken idiotic OSX has a stupid broken
260     idiotic fits-the-whole-os mmap "implementation" and
261     my dick feels longer if Coro is portable even to
262     obsolete platforms.
263 root 1.202
264 root 1.201 3.4 Fri Jan 19 21:52:54 CET 2007
265 root 1.197 - remove t/09_timer.t, as it isn't really testing much
266     but was rather flaky in practise.
267 root 1.198 - async_pool coro would keep arguments and callback alive until
268     it was reused.
269 root 1.199 - cancellation of a coroutine could cause spurious idle calls
270     in cede_notself.
271 root 1.197
272 root 1.196 3.3 Sat Jan 6 03:45:00 CET 2007
273 root 1.187 - implement $coro->on_destroy.
274 root 1.188 - Coro::Event blocking semantics have been changed,
275     documented and - hopefully - improved.
276 root 1.184 - fix nice adding, not subtracting, from priority.
277 root 1.185 - fix ->prio and api_is_ready (patch by Mark Hinds).
278 root 1.190 - fixed an assert ("... == prev__cctx->idle_te")
279     that could errronously trigger.
280 root 1.192 - fix various large and small memleaks.
281 root 1.191 - use a (hopefully) more stable cancel implementation
282     that immediately frees the coroutine data.
283 root 1.194 - cede/cede_notself return a status now.
284 root 1.191 - added Coro::guard function.
285 root 1.193 - added a global coroutine pool for jobs (on my machine,
286     I can create and execute 48k simple coros/s with async,
287     and 128k coros with async_pool).
288 root 1.195 - Coro::AIO now uses the coroutine priority as io priority.
289 root 1.184
290 root 1.183 3.2 Fri Dec 22 05:07:09 CET 2006
291 root 1.179 - improve portability to slightly older perls.
292 root 1.180 - use cleaner coroutine destruction.
293 root 1.182 - simplify configuration for users.
294     - optionally (unrecommended) prefer perl functions over
295     their coro replacements.
296 root 1.179
297 root 1.178 3.11 Tue Dec 5 13:11:24 CET 2006
298     - fixed some bogus assert's, but as perl.h disables assert even
299     without NDEBUG (thank you very much), not too many people should
300     notice (that did include myself). Andreas König noticed, though :)
301     - do not save/restore PL_sortcxix on >= 5.9.x, it doesn't seem to have
302     it. Also noticed by Andreas König :)
303     - save/restore tainted status.
304     - verified to pass the testsuite on my 5.9.5.
305    
306 root 1.177 3.1 Mon Dec 4 23:03:40 CET 2006
307     - INCOMPATIBLE CHANGE: $/ is now per-coroutine (but slow).
308 root 1.175 - incompatible change: transfer flags are now per-state.
309 root 1.173 - give a better error message on deadlock.
310 root 1.175 - document Coro::nready.
311 root 1.174 - enhanced testsuite.
312 root 1.169
313 root 1.172 3.01 Sun Dec 3 23:47:42 CET 2006
314     - forgot to include Coro::Timer.
315    
316 root 1.171 3.0 Sun Dec 3 22:57:25 CET 2006
317 root 1.163 - the "FINALLY COMPLETELY STABLE" release (coming soon:
318     the "FAMOUS LAST WORDS" release).
319 root 1.166 - implement a new stack sharing algorithm, which uses a stack
320     pool (size currently hardcoded).
321 root 1.155 - make stack sharing mandatory (it no longer uses a heuristic).
322 root 1.157 - eval/die no longer cause weird problems under heavy use.
323 root 1.152 - Coro::Event could cause livelocks if it was used but
324 root 1.161 no Coro::Event watchers were used.
325 root 1.167 - Coro::Event now uses asynccheck as prepare does not
326     check for changed watchers.
327 root 1.170 - Coro::Event allows multiple waiting coros and will wake up one
328     per event.
329 root 1.152 - Coro::Event should be cleaner and more efficient now.
330 root 1.165 - new utility function Coro::unblock_sub.
331 root 1.164 - document the sad fact that Event is no longer reentrant.
332 root 1.163 - putting a coroutine into the ready queue twice could under
333     some circumstances lead to stack corruption.
334 root 1.161 - minor incompatibility: subclassing Coro::State is supported
335     directly now without going through a _coro_state member.
336 root 1.156 - state/coro switching is much faster now.
337 root 1.154 - very minor optimisations and code/documentation cleanup.
338 root 1.153 - avoid problems due to compiler inlining.
339 root 1.154 - removed timers from Coro::Timer -> use AnyEvent instead.
340     - replaced Coro::idle coroutine by (cleaner) idle handler.
341 root 1.156 - updated to newest libcoro.
342 root 1.159 - implement enhanced support for valgrind.
343 root 1.162 - implement is_ready and return value for ready.
344 root 1.168 - removed Coro::Cont, it was a misnomer (it's generators),
345     and it was somewhat annoying to get it right. Will come back
346     if somebody asks for it :)
347 root 1.163 - many ->wait methods and Coro::Event could return
348     spuriously without the event having happened.
349 root 1.146
350 root 1.145 2.5 Tue Nov 7 12:22:33 CET 2006
351 root 1.143 - made Coro::Util, Coro::Select, Coro::Handle and Coro::Socket
352     use AnyEvent, moved them to Coro/.
353 root 1.140 - added Coro::LWP which contains all the uglyness required to
354     make LWP non-blocking.
355     - should work with perl 5.9.x now (Andreas König made me do it).
356 root 1.141 - fixed another bug in Coro::Select when the timeout was undef.
357 root 1.136 - reuse PL_start_env for all coros, saves some memory per coroutine.
358     - manage PL_top_env differently, hopefully to avoid panic: top_env.
359 root 1.137 - timeout argument was not properly used in Coro::Socket.
360     - allow limited forms of subclassing in Coro::Handle/Coro::Socket.
361 root 1.138 - emulate undocumented(!) functionality of IO::Socket required
362     by LWP(!!).
363     - updated eg/lwp to work with newer lwp's.
364 root 1.140 - remove "FATAL: uncaught exception" prefix. Coroutines that die
365     kill the whole process, just as exceptions in the main "coroutine"
366     did already.
367 root 1.135
368 root 1.134 2.1 Wed Nov 1 23:01:13 CET 2006
369     - fix a long-standing bug in Coro::Select where select with
370     zero timeout would instead change the current default filehandle.
371 root 1.132 - use a simpler and hopefully more robust way to clone padlists
372     (uses less memory and a perl function instead of our own).
373     - coro can now create a stack guard area on many architectures.
374 root 1.134 - Coro::AIO properly reexports additional functions from IO::AIO.
375 root 1.132 - updated libcoro with a workaround for OS X,
376 root 1.134 pach and testing by Michael Schwern.
377 root 1.130
378 root 1.129 2.0 Tue Oct 24 05:47:17 CEST 2006
379 root 1.128 - support additional aio requests in Coro::AIO.
380    
381 root 1.129 1.9 (never properly released due to a glitch)
382    
383 root 1.127 1.8 Thu Feb 2 00:59:06 CET 2006
384 root 1.125 - applied suggested patch by SAMV to avoid problems during stupid
385     mark & sweep gc run.
386 root 1.126 - applied patch by Scott Walters for 5.9.3 compatibility.
387 root 1.125
388 root 1.124 1.7 Tue Dec 27 01:41:58 CET 2005
389 root 1.123 - added Coro::AIO, a thin wrapper around IO::AIO.
390 root 1.122 - improved Makefile.PL explanations.
391    
392 root 1.119 1.6 Mon Dec 12 21:30:05 CET 2005
393 root 1.117 - additionally save PM_curpm might fix as-of-yet
394 root 1.121 unseen problems with regex matches being attributed to the
395 root 1.117 wrong package.
396 root 1.118 - add t/10_bugs.t, which currently checks against imho broken
397     perls that use 0.26MB of stack space per Perl_magic_get
398 root 1.121 invocation (newer linuxes) as opposed to the 0.0002MB perl
399     normally uses.
400 root 1.120 - make stacksize configurable for the ultimate debian experience.
401 root 1.117
402 root 1.116 1.51 Mon Dec 12 18:48:36 CET 2005
403     - remove debugging warn() accidentally left in Coro::Select.
404    
405 root 1.115 1.5 Tue Nov 29 13:32:44 CET 2005
406 root 1.114 - use Coro::Event inside Coro::Select to avoid spurious deadlocks.
407 root 1.115 - fix Coro::Select 'select'.
408     - strict'ify some modules.
409 root 1.112 - libcoro errornously restored the SIGUSR2 handler to SIGUSR1.
410 root 1.115 - use XSLoader in selected modules.
411     - remove some 5.6 compatibility cruft.
412 root 1.112
413 root 1.111 1.4 Tue Sep 6 00:11:05 CEST 2005
414     - libcoro did not take into account the trampoline on amd64,
415     when 'l'inux method was used.
416    
417 root 1.110 1.31 Tue Aug 30 23:31:33 CEST 2005
418     - some portability fixes/workarounds.
419    
420 root 1.107 1.3 Sat Aug 20 03:08:56 CEST 2005
421 root 1.108 - no code changes. module seems to work fine.
422 root 1.106 - improve Coro::State docs, remove reference to nonexisting
423     Coro::State::flush method.
424 root 1.107 - no longer autodetect windows, present it as an option instead.
425 root 1.106
426 root 1.105 1.2 Mon May 16 02:00:55 CEST 2005
427 root 1.100 - included libcoro.c earlier in State.xs, might improve portability.
428 root 1.101 - use a faster and possibly more stable Coro::Cont implementation.
429 root 1.102 - accept x86_64 in addition to amd64 for optimized linux-amd64 support.
430 root 1.104 - fix bugs Coro::SemaphoreSet that could cause locks never to be freed.
431 root 1.105 - fix bugs in CoroAPI.h and document it in Coro::MakeMaker.
432 root 1.100
433 root 1.99 1.11 Thu Mar 3 18:00:52 CET 2005
434     - change of contact address.
435    
436 root 1.98 1.1 Tue Feb 22 20:51:16 CET 2005
437 root 1.97 - support [l]inux method on amd64.
438 root 1.109 - allow some context switches while compiling/eval'ing.
439 root 1.97
440 root 1.96 1.0 Tue Aug 10 03:47:27 CEST 2004
441 root 1.95 - Event 0.89 fixes the bug again.
442 root 1.96 - fix the remaining(??) memleak. I didn't free the cache-AV for
443     padlists, so one AV per created anon-sub leaked.
444 root 1.95
445 pcg 1.94 0.97 Fri May 14 15:23:32 CEST 2004
446     - remove stupid gcc extension that was an experiment only anyway.
447    
448 pcg 1.93 0.96 Thu May 13 18:09:29 CEST 2004
449 root 1.103 - tell people if they have yet another broken Event variant.
450 pcg 1.91 - made Coro to work _better_ with threads (it seems that, as long
451     as you use Coros in one thread only everything will work fine.
452     Looking at the perl source the problem might be missing locking
453     between Coro and some perl internal routines. That's not easily
454     fixable).
455 pcg 1.92 - (hopefully) got rid of the static xnext inside transfer.
456 pcg 1.91
457 pcg 1.90 0.95 Sun Feb 15 03:20:28 CET 2004
458 pcg 1.86 - removed Coro::State::flush, implemented a new and much
459     faster caching mechanism by attaching magic to the CV.
460 pcg 1.87 - a memleak with (real) closures remains.
461 pcg 1.88 - dramatically reduced size of stacks to 65536 (linux/x86), after
462     observing that even myhttpd never had more than a kilobyte
463     of stack in use (stack is still only physically allocated in
464     pagesize increments for systems suporting mmap).
465 pcg 1.89 - fix for a "cygwin-64" architecture added, proposed by Stefan Traby.
466 pcg 1.90 - fix for threaded perl.
467 pcg 1.86
468 pcg 1.85 0.9 Sun Nov 23 04:32:39 CET 2003
469 pcg 1.84 - fix a few very hard to track down but (of course) stupid
470     memory leaks.
471     - stringify version number to avoid locale problems :(.
472 pcg 1.85 - perl 5.9.0 does not have SvPADBUSY, reported by Scott Walters,
473     hopefully ignoring it "just works".
474 pcg 1.84
475 pcg 1.83 0.8 Wed Nov 5 19:38:40 CET 2003
476     - port to perl5.005_03, but only 5.8.x+ is supported!
477 pcg 1.82 - honor LocalAddr even without LocalPort in Coro::Socket.
478    
479 root 1.81 0.7 Tue May 27 03:12:38 CEST 2003
480     - the version jump indicates some level of testing, not gobs
481     of new features.
482 root 1.80 - uh... I found the prompt function in ExtUtils::MakeMaker.
483     Highly correct stuff, that is...
484 root 1.81 - fixed(?) a bug with die's in coroutines causing "panic: top_env".
485     the fix is not well understood by the author, so beware :(.
486 root 1.80
487 root 1.79 0.652 Thu May 8 02:54:46 CEST 2003
488 root 1.76 - Applied patch by Slaven Rezic to set default to "s" on FreeBSD,
489 root 1.78 cause version 4 doesn't have ucontext.
490 root 1.77 - Benjamin Reed reported that setjmp works fine on darwin,
491     so preselect it.
492 root 1.76
493 root 1.75 0.651 Sat Mar 29 15:00:23 CET 2003
494     - fix a bug in Coro::Handle where some bytes could get lost
495     on reading, reported by jason@nichego.net.
496 root 1.74
497 root 1.73 0.65 Sun Mar 23 00:08:26 CET 2003
498 root 1.72 - added a README.linux-glibc.
499     - new module Coro::Select.
500     - also save/restore PL_comppad, fixes segfaults with 5.8.1.
501     (I never claimed that I know what I am doing ;).
502 root 1.73 - set default to setjmp/longjmp on non-x86-linux.
503 root 1.72
504 root 1.71 0.6 Thu Nov 21 11:09:06 CET 2002
505     - made lazy context switching the default.
506     - fixed the bug where SemaphoreSet::guard
507     was the same as timed_guard and timed_guard was missing.
508     - fix a memleak in Coro::Timer.
509     - reclassified context sharing as not experimental.
510    
511 root 1.70 0.534 Sun Apr 14 03:05:12 CEST 2002
512 root 1.69 - fixed backspace => tab in header parsing (myhttpd).
513 root 1.70 - added eg/readline, for elmex.
514     - Coro::Event now calls ->start on first call instead of
515     ->again, which created wrong timeouts for the first ->next.
516     - fixed a bug where Coro::Socket returned a closed socket instead
517     of nothing on ECONNREFUSED and similar error conditions.
518 root 1.69
519 root 1.68 0.533 Mon Feb 18 18:49:40 CET 2002
520     - adapt to finally working Event-0.85.
521     - fixed buggy event initialization (trapped under windows, but how
522     could it possibly have worked anywhere?)
523    
524 root 1.67 0.532 Wed Jan 16 02:45:32 CET 2002
525 root 1.66 - removed the reference to pp_entersub, might work on
526     (some) win32 perls now (testsuite works under cygwin,
527     without Event, which freezes).
528 root 1.65
529 root 1.64 0.531 Mon Dec 10 22:18:44 CET 2001
530 root 1.63 - Fixed a bug in SemaphoreSet::timed_down.
531    
532 root 1.64 0.53 Tue Nov 27 21:11:13 CET 2001
533 root 1.60 - some tests for Event.
534 root 1.61 - slightly different internal architecture to get refcnt into the object
535     and not the reference. might fix a few bugs, certainly did introduce
536     new ones.
537     - Coro::Timer (independent of Event).
538 root 1.62 - new timed_wait functions for Coro::Signal, Semaphore, SemaphoreSet.
539 root 1.60
540 root 1.64 0.52 Tue Nov 6 21:36:18 CET 2001
541 root 1.58 - ported to cygwin (trivial).
542     patch by Gerrit P. Haase <gp@familiehaase.de>.
543     - small setjmp code fix by Sullivan.DanielJ@epamail.epa.gov.
544    
545 root 1.64 0.51 Thu Nov 1 20:39:01 CET 2001
546 root 1.54 - terminate/cancel now work properly (otherwise termination
547     could cause a "next coroutine is not and contains not..."
548     error.
549 root 1.55 - added Coro::Socket::shutdown.
550 root 1.56 - Coro::Event::loop no is the same as Event::loop.
551     - implemented terminate with args + join.
552 root 1.54
553 root 1.64 0.5 Fri Sep 28 16:15:35 CEST 2001
554 root 1.53 - fixed "print" on a Coro::Handle. The print method worked.
555 root 1.50 - small tweaks (seem to reduce memory consumption a lot)
556     in various modules.
557     - splendid use of "no warnings" scattered throughout.
558 root 1.52 - added Coro::Handle::rbuf, fixed Coro::Handle::fh.
559 root 1.48
560 root 1.47 0.49 Sun Sep 16 02:42:45 CEST 2001
561 root 1.43 - changed some method calls to function calls for speed
562     inside Coro::Handle.
563 root 1.44 - make Coro::Handle use an array instead of a hash for
564     speed reasons.
565     - IRIX mystery solved: it's SGI's NT, after all: "standard, huh?".
566     sjlj and ucontext should now work.
567     - IRIX-specific port for libcoro.
568 root 1.45 - swapped order of accept results to match IO::Socket.
569 root 1.46 - changed getsock/peername to sock/peername to match IO::Socket.
570     - fixed a bug that caused segfault when returning to main task
571     under some circumstances.
572     - other bugfixes.
573 root 1.43
574 root 1.42 0.45 Sun Sep 2 02:54:01 CEST 2001
575 root 1.36 - new method Coro::Handle::timeout.
576     - corrected speling of set...name to get...name in Coro::Socket.
577     - Coro::Socket::accept now returns a Coro::Socket, not a Coro::Handle.
578     - Coro::Handle now supports fileno and FILENO.
579     - added eg/myhttpd, a web server.
580 root 1.37 - Coro::Socket now accepts numeric ports as well as "port(number)"
581     syntax.
582 root 1.38 - moved some scheduling primitives into xs code. more to come.
583 root 1.39 - new simple priority system.
584 root 1.40 - implemented Coro::Event using XS, almost four times faster!
585 root 1.41 - small memory corruption problem fixed (boy that was difficult).
586 root 1.36
587 root 1.35 0.13 Wed Aug 8 16:53:07 CEST 2001
588 root 1.31 - new method Coro::Handle::readline.
589 root 1.34 - added eg/lwp and Coro::Handle::autoflush, to make LWP work.
590     (see eg/lwp on how to make LWP non-blocking).
591 root 1.31 - renamed Coro::Socket::new_inet to new.
592 root 1.32 - added Coro::Util, some utility functions.
593 root 1.33 - die/eval now works better (still get annoying (but true ;)
594     "Callback called exit" messages).
595 root 1.34 - Coro::Handle now supports timeout, and Coro::Socket Timeout.
596     - much better Coro::Socket support.
597 root 1.31
598     0.12 Fri Jul 27 04:19:01 CEST 2001
599 root 1.29 - do not use mmap if neither MAP_ANON nor MAP_ANONYMOUS is defined.
600 root 1.34 - very experimental stack sharing algorithm. not 100% safe but
601 root 1.28 should work well in practise ;)
602 root 1.30 - added Coro::RWLock.
603 root 1.31 - Coro::Specific now works.
604 root 1.28
605     0.11 Tue Jul 24 22:49:21 CEST 2001
606 root 1.27 - added specialized hack for newer and older linux versions (fast).
607     - renamed Coro::Event::IO to Coro::Handle.
608     - new module Coro::Socket.
609    
610 root 1.26 0.1 Tue Jul 24 01:47:53 CEST 2001
611 root 1.23 - release candidate 3. A rather new internal structure :(
612 root 1.24 - the great renaming: Damian Conway gave me a suitable replacement
613     for yield.
614 root 1.23 - added Coro/libcoro, a portable coroutine implementation for C
615 root 1.22 (not even perl-dependent!!!), which can be used by Coro::State.
616 root 1.20 - renamed SAVE_DEFSV (on xs-level only) to avoid symbol clash in
617     perl-5.6.
618 root 1.16 - new function Coro::Event::idle.
619     - the idle process is now overriden
620     by default in Coro::Event.
621 root 1.17 - Coro::Channel now enforces the size.
622 root 1.18 - canceling events now works in all cases.
623 root 1.19 - Coro state now include $_ and $@.
624     - yet another bug workaround that I do not really understand :(
625 root 1.21 - new module Coro::Event::IO (very undocumented) to do
626     non-blocking i/o.
627 root 1.25 - performance tuning.
628 root 1.16
629 root 1.15 0.08 Thu Jul 19 06:13:25 CEST 2001
630 root 1.14 - release candidate 2 (new functionality).
631 root 1.13 - add Coro::State::flush function.
632     - transfer now supports a flags value (mostly for speed ATM).
633     - might compile and work in the presence of threads now.
634 root 1.14 - continuations have a saner syntax.
635 root 1.19 - no more memleaks.
636 root 1.13
637 root 1.12 0.07 Tue Jul 17 17:40:18 CEST 2001
638     - release candidate 1 ;)
639     - slightly nicer code.
640     - fixed a scheduling bug in Coro::Event.
641    
642 root 1.11 0.06 Tue Jul 17 04:23:24 CEST 2001
643     - ok, I found the showstopper - the same sub must not be
644 root 1.9 re-entered in two different coroutines, otherwise => crash. I
645     see no easy solution to this problem, except by walking the call
646     chaing and saving/restoring the cv's, which is what I do now.
647 root 1.11 - memory leaks still latent, especially at thread termination.
648     - Coro::Event now works (haha).
649 root 1.9
650 root 1.8 0.05 Sun Jul 15 17:32:20 CEST 2001
651     - fixed a few issues in Coro::Event.
652     - I forgot to include Coro::Event in 0.04 :(:(:(
653    
654 root 1.7 0.04 Sun Jul 15 05:24:59 CEST 2001
655 root 1.5 - @_ is now properly localized.
656 root 1.4 - Coro::State is now easier subclassable.
657     - Coro::Cont now coroutine-aware.
658     - Coro::Specific is a low-overhead module to create
659     coroutine-specific vars.
660 root 1.6 - Coro::Event provides a simple interface to Event.
661 root 1.4
662 root 1.3 0.03 Fri Jul 13 14:51:52 CEST 2001
663 root 1.4 - transfer() now implemented in XS (beware).
664     - new module Coro::Cont for really faked continuations.
665     - big internal architecture changes: Coro::State is now
666 root 1.3 really low-level and can thus be used to implement other
667 root 1.4 interesting things, While "Coro::" implements a process-like
668     model. Still crude and subject to change.
669 root 1.3 - $_ and $@ are no longer being localized.
670    
671 root 1.2 0.02 Tue Jul 10 01:38:17 CEST 2001
672     - implemented "async" attribute.
673     - $_ and $@ are now localized.
674     - added Coro::Channel.
675     - more testcases, still no docs.
676    
677 root 1.1 0.01 Tue Jul 3 02:18:41 CEST 2001
678     - original version; copied from Convert::Scalar.
679