ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Changes
Revision: 1.295
Committed: Sat Dec 1 22:39:39 2007 UTC (16 years, 5 months ago) by root
Branch: MAIN
Changes since 1.294: +4 -0 lines
Log Message:
switch to EV::ADNS, if available

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