ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/Changes
Revision: 1.203
Committed: Thu Dec 30 07:43:03 2010 UTC (13 years, 4 months ago) by root
Branch: MAIN
Changes since 1.202: +5 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.143 Revision history for Perl extension EV
2 root 1.1
3 root 1.185 Changes marked with (libev) are changes in libev, and have more
4     documentation in the libev Changes file.
5    
6 root 1.203 - do not avoid the clock_gettime call on GNU/Linux anymore, as EV
7     links against -lpthread anyways - as a result, EV might now take
8     advantage of fast userspace clock_gettime implementations,
9     but also links against -lrt.
10    
11 root 1.202 4.02 Thu Dec 30 08:27:41 CET 2010
12     - the revents argument did not stringify correctly, as only the
13     numeric value was updated, while the string value was kept from
14     previous invocations.
15    
16 root 1.201 4.01 Sun Dec 5 12:42:13 CET 2010
17 root 1.197 - fully support EV_COMPAT3=0.
18 root 1.198 - default_fork was stupidly defined as inline.
19 root 1.199 - ask cpan to upgrade AnyEvent if < 5.29.
20 root 1.200 - support EV_EXTRA_DEFS during configuration.
21 root 1.201 - support -DEV_NO_LOOPS for snakker build.
22 root 1.197
23 root 1.196 4.00 Mon Oct 25 13:30:09 CEST 2010
24 root 1.194 - many API changes, see the manual.
25 root 1.196 - (libev) lots and lots of bugfixes, see the ev documentation.
26 root 1.187 - fix a bug where inotify usage would parse the same event
27     multiple times, causing various forms of breakage.
28     - greatly reduce stack usage for inotify (8kb to <0.5kb).
29 root 1.189 - expose ev_depth and ev_verify via the XS API.
30 root 1.196 - implement ev_cleanup watchers.
31 root 1.188 - (libev) ev_embed_stop did not correctly stop the watcher.
32     - (libev) disable poll backend on AIX.
33     - (libev) rename EV_TIMEOUT to EV_TIMER.
34     - (libev) add section on accept() problems to the manpage.
35 root 1.191 - (libev) no child watchers on win32.
36 root 1.190 - make code more aliasing compliant, in case perl is ever
37     translated to C.
38 root 1.193 - document the EV::CHECK runtime unavailability.
39 root 1.192 - ported to minix 3.1.7.
40 root 1.187
41 root 1.186 3.9 Thu Dec 31 07:59:59 CET 2009
42 root 1.182 - disable t/07* under automatic testing.
43 root 1.183 - increase t/09* timeouts as netbsd has *horribly* broken
44     select/kevent that *usually* sleep >>0.6s instead of 0.3.
45 root 1.184 - add constants EV::FLAG_NOSIGFD, EV::FLAG_NOINOTIFY and
46     EV::BACKEND_ALL.
47 root 1.185 - (libev) signalfd is no longer used by default.
48     - (libev) backport inotify code to C89.
49     - (libev) inotify file descriptors could leak into child processes.
50     - (libev) ev_stat watchers could keep an errornous extra ref on the loop.
51     - (libev) take advantage of inotify_init1, if available.
52     - (libev) the signal handling pipe wasn't always initialised under windows.
53     - changed minimum glibc requirement from glibc 2.9 to 2.7, for signalfd.
54     - (libev) only replace ev_stat.prev when we detect an actual difference.
55 root 1.182
56 root 1.181 3.8 Sun Aug 9 15:30:10 CEST 2009
57 root 1.180 - implement $loop->signal/signal_ns.
58 root 1.181 - (libev) incompatible change: do not necessarily reset signal
59     handler to SIG_DFL when a sighandler is stopped.
60     - (libev) ev_default_destroy did not properly free or zero some
61     members, potentially causing crashes and memory corruption on
62     repated ev_default_destroy/ev_default_loop calls.
63     - (libev) take advantage of signalfd on GNU/Linux systems.
64     - (libev) document that the signal mask might be in an unspecified
65     state when using libev's signal handling.
66     - (libev) take advantage of some GNU/Linux calls to set
67     cloexec/nonblock on fd creation, to avoid race conditions.
68     - implement internal glue code to interface more efficiently
69     with AnyEvent.
70 root 1.180
71 root 1.177 3.7 Fri Jul 17 16:49:16 CEST 2009
72 root 1.171 - add EV::loop_verify and EV::loop_depth.
73 root 1.172 - use output filehandle for i/o watchers waiting
74     for EV_WRITE, otherwise input filehandle.
75     - use common schmorp.h header.
76 root 1.176 - add EV::Timer->remaining.
77 root 1.175 - allow for subclassing of EV::Loop (see the exciting
78     EV::Loop::Async module for an example).
79     - added EV::invoke_pending and EV::pending_count.
80 root 1.171
81 root 1.177 - (libev) ev_unloop and ev_loop wrongly used a global variable to
82     exit loops, instead of using a per-loop variable.
83     - (libev) the ev_set_io_collect_interval interpretation has changed.
84     - add new functionality: EV::invoke_pending, EV::pending_count.
85     - add $timer->remaining.
86     - add EV::loop_depth.
87     - (libev) calling unloop in fork/prepare watchers will no longer poll
88     for new events.
89     - (libev) use GetSystemTimeAsFileTime instead of _timeb on windows,
90     for slightly higher accuracy.
91     - (libev) actually 0-initialise struct sigaction when installing
92     signals.
93    
94 root 1.170 3.6 Tue Apr 28 02:50:37 CEST 2009
95 root 1.167 - keepalive(0) could decrease the refcount of the loop
96     permanently.
97 root 1.168 - add ev_suspend/ev_resume, also make ev_now_update
98     accessible via the XS API.
99 root 1.169 - most EV::<eventtype> constants were missing and have been
100     added :/.
101     - add EV::VERSION_MAJOR/VERSION_MINOR constants.
102     - (libev) multiple timers becoming ready within an event loop
103     iteration will be invoked in the "correct" order now.
104     - (libev) do not leave the event loop early just because we have
105     no active watchers, fixing a problem when embedding a kqueue
106     loop that has active kernel events but no registered watchers
107     (reported by blacksand blacksand).
108     - (libev) correctly zero the idx values for arrays, so destroying
109     and reinitialising the default loop actually works (patch by
110     Malek Hadj-Ali).
111     - (libev) new EV::CUSTOM revents flag for use by applications.
112     - (libev) add documentation section about priorites.
113     - (libev) add a glossary to the dcoumentation.
114     - (libev) extend the ev_fork description slightly.
115     - (libev) optimize a jump out of call_pending.
116     - t/03_keepalive could fail when there was no actual error.
117 root 1.167
118 root 1.166 3.53 Sun Feb 15 02:38:20 CET 2009
119     - (libev) on win32, the event loop creation could randomly fail
120     due to an initialised variable having the wrong value.
121 root 1.165 - (libev) probe for CLOCK_REALTIME support at runtime as well and
122     fall back to gettimeofday if there is an error, to support older
123     operating systems with newer header files/libraries.
124     - prefer gettimeofday over clock_gettime by default.
125    
126 root 1.164 3.52 Wed Jan 7 21:46:14 CET 2009
127 root 1.163 - (libev) fix some issues in the select backend when in fd_set mode.
128     - (libev) due to a thinko, instead of disabling everything but
129     select on the borked OS X platform, everything but select was
130     allowed (reported by Emanuele Giaquinta).
131     - (libev) actually verify that local and remote port are matching in
132     libev's socketpair emulation, which makes denial-of-service
133     attacks harder (but not impossible - it's windows). Make sure
134     it even works under vista, which thinks that getpeer/sockname
135     should return fantasy port numbers.
136    
137 root 1.162 3.51 Wed Dec 24 23:01:59 CET 2008
138 root 1.161 - do not cache the arguments passed to callbacks if the refcount
139     indicates that the callback has stolen them.
140 root 1.159 - (libev) try to avoid librt on GNU/Linux.
141 root 1.160 - (libev) check port_getn return value dfferently, might potentially
142     avoid problems.
143 root 1.162 - (libev) fix a bug with stat watchers possibly causing freezes.
144     - (libev) work around OS X 10.5 breaking poll, now select is the
145     only viable choice left on that pile of garbage.
146 root 1.161 - play tester whore: disable some tests that typically fail only
147     on cpan tester machines.
148 root 1.159
149 root 1.158 3.49 Wed Nov 19 11:26:53 CET 2008
150 root 1.155 - fix typos in manpage (Alex Efros).
151 root 1.156 - increase timing even further, for the ever-overloaded cpan-tester
152     machines, and to the detriment of everybody else who wants a fast
153     make test.
154 root 1.157 - possible 5.6 compatibility.
155 root 1.158 - (libev) use inotify even on buggy kernels, but don't rely on it.
156     - (libev) use inotify only as an added hint on network filesystems.
157 root 1.155
158 root 1.154 3.48 Thu Oct 30 09:09:48 CET 2008
159 root 1.152 - (libev) use a generation counter to detect spurious epoll events
160 root 1.151 and recreate the kernel in such a case (sorry, it's slow, but
161     I didn't design epoll...).
162 root 1.150 - (libev) optimise away an EPOLL_CTL_ADD/MOD combo in the epoll
163     backend in some cases.
164     - (libev) use memset to initialise most arrays now and do away
165     with the init functions.
166 root 1.152 - speed up event callback invocation further (~15%), by
167 root 1.151 not creating the object reference each time.
168 root 1.153 - EV::sleep was documented, but not implemented. fun.
169 root 1.150
170     3.45 Tue Oct 21 22:20:39 CEST 2008
171     - (libev) disable inotify usage on linux <2.6.25 (kernel bug).
172 root 1.146 - (libev) ev_embed will now automatically follow fork.
173     - (libev) ev_once will now pass both io and timeout events to
174     the callback when both happen concurrently, instead of giving
175     one precedence.
176 root 1.149 - install C library documentation as EV::libev manpage (sorry, oesi).
177 root 1.150 - (libev) fix a minor performance bug in ev_stat handling.
178 root 1.146
179 root 1.145 3.44 Mon Sep 29 05:16:31 CEST 2008
180 root 1.144 - (libev) add EV::now_update and $loop->now_update.
181    
182 root 1.142 3.431 Sun Jul 13 00:19:02 CEST 2008
183     - made the EV::embed callback optional again. reported by
184     Vladimir Timofeev.
185    
186 root 1.141 3.43 Tue Jul 8 20:56:31 CEST 2008
187 root 1.140 - disabled warnings in EV.pm, the CHECK issue is now understood
188     and harmless.
189    
190 root 1.139 3.42 Mon May 26 07:36:46 CEST 2008
191 root 1.138 - (libev) work around another bug in windows perls and
192     windows itself: failed connects do NOT set read or write
193     flags in select, but this version of libev will.
194    
195 root 1.136 3.41 Thu May 22 01:39:40 CEST 2008
196 root 1.135 - (libev) fix many heap-related bugs (timers, periodics).
197 root 1.134 - (libev) improve timing stability of timers and periodics.
198 root 1.137 - expose ev_loop_verify to perl code.
199 root 1.134 - clarify documentation for periodic reschedule callbacks.
200     - verify that the passed callback argument is indeed a code
201     reference, for earlier error reporting and a nice calling
202     speed increase (as well as saving memory).
203    
204 root 1.133 3.4 Tue May 20 21:51:55 CEST 2008
205 root 1.132 - (libev) work around both a windows bug and a bug in perl's
206     select on windows when not waiting for any file descriptors.
207 root 1.131 - bundle ev.pod into the tarball, just to increase its size
208     (and for the poor internetless person).
209    
210 root 1.130 3.33 Sun May 18 12:43:04 CEST 2008
211     - (libev) use numerous enhancements such as a more
212     cache-friendly 4-heap and heap index caching for timers.
213     - remove undocumented ev_timer->at accessor.
214    
215 root 1.129 3.31 Wed Apr 16 20:48:59 CEST 2008
216     - (libev) post-last-minute fix for ev_poll.c problem.
217    
218 root 1.128 3.3 Wed Apr 16 19:04:47 CEST 2008
219 root 1.125 - (libev) linux eventfd support.
220 root 1.128 - (libev) inline more with C99 compilers.
221     - (libev) work around a number of bugs in valgrind.
222     - (libev) work around broken realloc on openbsd and darwin.
223 root 1.126 - added example to EV::MakeMaker manpage.
224 root 1.127 - add async_pending method.
225 root 1.125
226 root 1.123 3.2 Wed Apr 2 17:08:16 CEST 2008
227 root 1.117 - "ported" again to the Microsoft "C" language.
228 root 1.124 - relax testsuite timing for the benefit of freebsd users once more.
229 root 1.121 - fix EVAPI's ev_time and ev_sleep macros.
230 root 1.120 - (libev) fix select backend on 64 bit architetcures.
231 root 1.122 - (libev) ev_loop flags are now local to each invocation.
232 root 1.117
233 root 1.116 3.1 Sat Mar 8 11:41:14 CET 2008
234 root 1.113 - add ev_sync_* and ev_fork_* to EVAPI.h.
235 root 1.115 - provide EV::Embed->sweep method.
236     - new watcher type: async (not very useful in perl).
237 root 1.113
238 root 1.112 3.0 Mon Jan 28 13:23:11 CET 2008
239     - upgrade to libev-3.0.
240 root 1.111 - change child handler to incorporate tracing flag.
241    
242 root 1.110 2.01 Mon Dec 31 01:59:19 CET 2007
243     - found a minor problem in the testsuite that is only
244     caught by new Test::Harness versions (reported by Andreas
245     König).
246    
247 root 1.107 2.0 Sat Dec 22 17:47:03 CET 2007
248 root 1.100 - no longer force kqueue when enabled, enable it
249     on more systems (as its now by default not used on most).
250 root 1.95 - expose fork watchers.
251     - switch to libev's MULTIPLICITY API.
252 root 1.96 - use a slightly different include file name strategy.
253     - get rid of (unused) libevent emulation.
254 root 1.97 - 5% watcher management speedup due to callback optimisation
255     when inline closures are used, 5% slowdown due to multiplicity.
256 root 1.98 - very minimal support for dynamic event loops and embed watchers.
257 root 1.103 - fix name of prepare start/stop methods.
258 root 1.105 - create and export EV::sleep and EV::set_*_collect_interval.
259 root 1.106 - fix typos in manpage (Alex Efros).
260 root 1.95
261 root 1.94 1.86 Tue Dec 18 02:36:57 CET 2007
262 root 1.93 - add periodic->at methods.
263 root 1.92
264 root 1.91 1.85 Fri Dec 14 20:32:40 CET 2007
265 root 1.90 - further optimise epoll backend by adding a heuristic that
266     avoids EPOLL_CTL_DEL calls if possible.
267 root 1.87 - EV::signal->start was not async-signal safe.
268 root 1.89 - optimise start/stop when the fd hasn't changed.
269 root 1.87
270 root 1.86 1.8 Tue Dec 11 22:17:46 CET 2007
271 root 1.83 - API version 3:0.
272 root 1.81 - reduced fudge factor to zero for select, poll, epoll
273     and kqueue: your system better be posix-compliant
274     even in its extensions :->
275 root 1.82 - improve long-term numerical stability in periodic watchers
276     by introducing a separate offset value instead of reusing at.
277 root 1.84 - recalculate real/monotonic clocks before blocking fully
278     to avoid blocking for longer than necessary.
279 root 1.85 - fix bugs in the heap functions. this rarely lead to illegal
280     heap orderings.
281 root 1.81
282 root 1.80 1.72 Sat Dec 8 15:31:26 CET 2007
283 root 1.77 - add dummy loop arguments to some EVAPI functions
284     so that clients can use EV_A and EV_DEFAULT.
285 root 1.78 - expose ev_clear_pending.
286 root 1.79 - renamed trigger to invoke.
287 root 1.77
288 root 1.76 1.71 Fri Dec 7 19:10:24 CET 2007
289 root 1.75 - changed/implemented idle watcher priority.
290     - allow out-of-range priorities to be set.
291     - fix ->priority to actually work on started watchers.
292     - improved testsuite.
293    
294 root 1.74 1.6 Wed Dec 5 15:06:20 CET 2007
295 root 1.70 - add a missing SPAGAIN.
296 root 1.71 - ripped out EV::DNS, use EV::ADNS for a better backend.
297     - make ev_time callable from EVAPI.h.
298 root 1.72 - add EV::loop_count.
299 root 1.73 - some space optimisations.
300 root 1.70
301 root 1.69 1.5 Wed Nov 28 20:19:09 CET 2007
302 root 1.67 - add inotify backend.
303 root 1.69 - make testsuite even less sensible to timing issues,
304     add more stat tests.
305 root 1.68 - add ->attr, ->prev, ->stat calls to stat watcher.
306 root 1.67
307 root 1.66 1.4 Tue Nov 27 17:35:27 CET 2007
308 root 1.64 - work around a linux 2.4 kernel bug in child handlers.
309     - implement stat watcher interface.
310 root 1.65 - implement fork watcher interface.
311 root 1.64 - io->set did not keep the fh alive.
312     - actively check signal numbers/names to be valid.
313     - cleanups, minor fixes, new bugs.
314 root 1.66 - work around windows bugs in the testsuite.
315 root 1.64
316 root 1.63 1.3 Sun Nov 25 10:46:57 CET 2007
317     - stopping idle/check/prepare watchers could cause data corruption.
318 root 1.58 - implement and document EV::once.
319 root 1.57 - improved documentation, verify that netbsd indeed has the only
320     working kqueue implementation (out of darwin, freebsd, netbsd and
321     openbsd). Praise them!
322 root 1.62 - fix the data method so it might work.
323 root 1.59 - expose ev_ref/ev_unref to the C API.
324 root 1.61 - expose ref/unref in form of the ->keepalive method to perl.
325 root 1.58 - minor bugfixes and portability fixes.
326 root 1.57
327 root 1.56 1.2 Thu Nov 22 05:44:09 CET 2007
328     - disable kqueue by default on !netbsd, as its broken on freebsd,
329     darwin and openbsd and thus almost everywhere.
330     - add some allowance in t/01_timer.t for the uneven monotonic
331     vs. realtime clock tick on at least freebsd.
332     - add -lsocket -lnsl on solaris in case the perl guy forgot to
333     configure them.
334    
335 root 1.55 1.1 Wed Nov 21 06:08:48 CET 2007
336 root 1.53 - improved timer test to include periodics and
337     withstand small timing variations.
338 root 1.54 - many minor tweaks to libev.
339 root 1.53
340 root 1.52 1.0 Fri Nov 16 14:51:59 CET 2007
341 root 1.50 - require AnyEvent update if AnyEvent is installed.
342 root 1.51 - add solaris 10 port-based backend.
343     - add child_ns and fix check_ns.
344 root 1.52 - treat yes/no as enforcement, not as hint, when configuring,
345     documentation update (reported by Andy Grundman).
346 root 1.50
347 root 1.49 0.9 Wed Nov 14 22:24:49 CET 2007
348 root 1.45 - changed LIBEV_METHODS to LIBEV_FLAGS and the
349     way this is used inside libev.
350 root 1.46 - many, many bugfixes.
351     - add unloop constants.
352 root 1.47 - add timer test.
353 root 1.48 - ev_loop will now terminate immediately when no watchers are active.
354 root 1.45
355 root 1.44 0.8 Mon Nov 12 02:28:46 CET 2007
356 root 1.41 - fix "testsuite" again :().
357     - fix check/idle/prepare/child watcher stop.
358 root 1.42 - enourmously many fixes.
359     - rewritten select backend (mostly for win32).
360     - cache socket handles on win32.
361 root 1.43 - provide considerably finer control over configuration.
362 root 1.41
363 root 1.40 0.7 Fri Nov 9 20:37:58 CET 2007
364 root 1.39 - move AnyEvent adaptor into the AnyEvent module.
365 root 1.41 - use private copy of evdns.[ch].
366 root 1.39 - many minor fixes.
367    
368 root 1.38 0.6 Thu Nov 8 18:23:43 CET 2007
369 root 1.95 - (libev) better native win32 support.
370 root 1.35 - fix idle watchers.
371 root 1.37 - implement and document periodic reschedule callbacks.
372     - do not run dns test on !linux platforms (actually to exclude win32).
373 root 1.38 - fix (unused in EV :) poll backend.
374 root 1.34
375 root 1.33 0.51 Tue Nov 6 19:50:22 CET 2007
376 root 1.32 - fix kqueue/poll compilation issue.
377 root 1.33 - work around design issues in kqueue.
378 root 1.32 - enable kqueue by default, seems to work.
379    
380 root 1.31 0.5 Tue Nov 6 17:37:44 CET 2007
381 root 1.23 - add signal and pid mutators.
382 root 1.27 - add rstatus/rpid accessors.
383 root 1.24 - updated libev (lower cost for clock monotonic).
384 root 1.25 - support event priorities.
385 root 1.26 - try to find SIG_SIZE on perls that don't have it (Slaven Rezic).
386 root 1.28 - improved signal handling, fixed child watchers.
387 root 1.29 - experimentally add kqueue backend, completely untested.
388 root 1.30 - ported to cygwin and native win32.
389 root 1.23
390 root 1.22 0.1 Thu Nov 1 18:29:22 CET 2007
391 root 1.18 - replaced libevent by libev (total rewrite).
392     - many bugfixes w.r.t. libevent.
393     - new watcher types: periodic, check, prepare, child, idle.
394 root 1.16 - performance optimisations.
395 root 1.19 - added interactive configuration.
396 root 1.21 - added fork support.
397 root 1.16
398 root 1.14 0.03 Mon Oct 29 20:52:50 CET 2007
399 root 1.9 - add timed_io convenience constructors.
400     - improve documentation.
401 root 1.8 - support signal names in addition to signal numbers.
402 root 1.9 - support signal anyevent watchers.
403 root 1.10 - vastly improved testsuite (its all relative :).
404 root 1.11 - add EV::MakeMaker, beginning of C-level API.
405 root 1.12 - force strings to byte form.
406 root 1.6
407 root 1.5 0.02 Sun Oct 28 07:40:21 CET 2007
408 root 1.15 - call $EV::DIED in case a callback throws an exception.
409 root 1.4 - add const char * to typemap for possible 5.6 compatibility.
410 root 1.3
411     0.01 Sat Oct 27 19:10:18 CEST 2007
412     - initial release.
413    
414     0.00 Fri Oct 26 11:12:57 CEST 2007
415 root 1.1 - original version; cloned from JSON::XS
416