ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/Changes
Revision: 1.339
Committed: Fri Aug 21 11:59:24 2009 UTC (14 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rel-5_112
Changes since 1.338: +2 -0 lines
Log Message:
5.112

File Contents

# User Rev Content
1 root 1.1 Revision history for Perl extension AnyEvent.
2    
3 root 1.339 5.112 Fri Aug 21 13:59:04 CEST 2009
4 root 1.338 - AnyEvent::Handle could cause hard crashes in Net::SSLeay when
5     using starttls with an illegal/uncreatable tls context.
6 root 1.339 - port to broken win32 perls.
7 root 1.338
8 root 1.337 5.111 Sun Aug 16 18:44:36 CEST 2009
9     - perl errornously requires sockaddr_un structures returned by the
10     kernel to have a specific length. work around this bug by padding
11     sockaddr_un structures (found to fail on OS X, as perl only uses
12     the correct code for GNU/Linux, but likely to fail on other
13     OSes as well).
14    
15 root 1.336 5.11 Wed Aug 12 17:49:37 CEST 2009
16 elmex 1.335 - fixed a bug in run_cmd with input from filename.
17 root 1.336 - create a json coder object when none is given in write direction
18     to reduce dependency on JSON.
19 elmex 1.335
20 root 1.334 5.1 Tue Aug 11 03:17:32 CEST 2009
21 root 1.333 - tcp_connect now reports the correct error in $!, not an unrelated
22     one (was broken since 4.91).
23     - AE::Handle did not properly clear rtimeout/wtimeout watchers
24     when retrying a tcp_connect.
25     - new functions: AnyEvent::Util::run_cmd and close_all_fds_except.
26 elmex 1.332 - fixed wrong documentation in AE::Socket.
27    
28 root 1.330 5.01 Mon Aug 10 03:16:32 CEST 2009
29     - last release broke EV child watchers :/.
30    
31 root 1.329 5.0 Sun Aug 9 17:32:09 CEST 2009
32     - officially introduce and document the AE API.
33 root 1.323 - lowering the timeout at runtime did not have immediate effect
34     in AnyEvent::Handle.
35 root 1.324 - AE::Handle now has separate and independent read and write timeout
36     settings.
37 root 1.326 - probe for Guard module when AnyEvent::Util is loaded, not at
38     runtime (Event doesn't like eval "use" from callbacks, and it avoids
39     exporting the probe function).
40 root 1.328 - Impl::IOAsync's io watchers did not use the filehandle emulation
41     code to work around it's watcher limits.
42     - work around IO::Async's problems with overloaded objects.
43     - try to disable wearnings inside IO::Async, it's just too buggy.
44 root 1.327 - do no longer use Event by default, only EV or Perl, Event is too buggy.
45 root 1.329 - hackishly provide fast AE:: interface when EV or Perl is the backend.
46 root 1.325 - inherit VERSION from AnyEvent::VERSION in most modules.
47 root 1.322
48 root 1.321 4.91 Thu Aug 6 15:42:45 CEST 2009
49 root 1.319 - AE::Handle::starttls could get out of sync when the read buffer
50     already contains some TLS handshake.
51 root 1.318 - AE::Handle did not properly free the TLS session, causing bigger
52     memory leaks in Net::SSLeay than expected (reported by toaster).
53 root 1.320 - AE::Socket::tcp_connect will now artificially delay invoking
54     the callback to avoid returning after invoking the callback.
55 root 1.321 - convert many internal watcher uses to AE API.
56 root 1.317
57 root 1.316 4.9 Sat Aug 1 11:07:01 CEST 2009
58 root 1.308 - Glib silently fails when registering a timeout with
59     a negative value, so avoid that.
60 root 1.315 - call condvar callback immediately when it is set
61     after the condition is already signalled.
62 root 1.314 - check rbuf_max condition only after trying to consume
63     data.
64 root 1.305 - normalise signal numbers to names when using the ae's
65     signal handling, but do not document this (yet).
66 root 1.308 - pure perl signal emulation did not properly set nonblocking
67     mode on the signal pipe on win32 (this is unlikely to have caused
68     any issues).
69 root 1.310 - new module: AnyEvent::Debug.
70 root 1.309 - AnyEvent::Strict now checks that a signal was specified
71     by name (not name or number).
72     - reduce memory footprint in typical cases by ~50kb by
73 root 1.308 only compiling signal code when necessary.
74 root 1.313 - add AnyEvent::Handle->rbuf_max.
75 root 1.311 - grab the AE namespace for future new API, implement stubs for
76     said future/alternative API.
77 root 1.315 - new function: AnyEvent::Socket::format_hostport.
78 root 1.305
79 root 1.303 4.881 Tue Jul 28 12:51:53 CEST 2009
80     - work around a bug in local in pre-5.10 perls, causing
81 root 1.304 AnyEvent::Handle to recurse when it should not
82     (analyzed by elmex).
83 root 1.303
84 root 1.302 4.88 Tue Jul 28 04:04:37 CEST 2009
85 root 1.301 - re-bless the handle into a dummy package after calling
86     AnyEvent::Handle::destroy, so the user does not need to check
87     for errors after every push_write etc.
88 root 1.302 - do not attempt to run t/02_signals.t on obviously broken
89     platforms.
90 root 1.301
91 root 1.300 4.87 Sun Jul 26 02:06:16 CEST 2009
92 root 1.295 - do not attempt to linger when there is no longer a valid fh.
93 root 1.296 - enforce tls mode to be either accept or connect, do not simply
94     segfault in Net::SSLeay.
95 root 1.298 - AnyEvent::Handle can now call tcp_connect itself (new parameters
96 root 1.299 connect, on_prepare, on_connect and on_connect_error). Updated
97     tutorial accordingly.
98 root 1.297 - add AnyEvent::Impl::Irssi backend.
99 root 1.295
100 root 1.294 4.86 Mon Jul 20 23:52:29 CEST 2009
101     - since the verbose warning is not enough, explicitly document
102     that versions before 1.33 of Net::SSLeay are not secure.
103 root 1.292 - work around signal handling races in Event and (...) Event::Lib.
104 root 1.293 - try to align signal-race timer to full-second boundaries.
105     - work around Tk not liking negative timeouts.
106 root 1.292 - don't complain of different grades of environmental unfriendlyness
107 root 1.302 in IO::Async.
108 root 1.292
109 root 1.290 4.85 Sat Jul 18 06:16:14 CEST 2009
110 root 1.287 - nail the signal race problem in perl once and for all
111     (see $AnyEvent::MAX_SIGNAL_LATENCY).
112     - take advantage of Async::Interrupt if it is available.
113     - load Time::HiRes and Guard modules on demand only.
114     - add optional/recommended modules section to AnyEvent
115     documentation.
116 root 1.288 - reduce memory usage considerably (and reduce startup penalty)
117     by not using "strict", "warnings" and "overload" modules.
118 root 1.289 - work around buggy windows/openbsd perls and provide EBADMSG
119     and EPROTO ourselves when missing.
120     - improve perl 5.6 compatibility of the core event loop.
121     - made Net::SSLeay version 1.33 a soft requirement.
122 root 1.286
123 root 1.285 4.83 Fri Jul 17 16:56:26 CEST 2009
124 root 1.284 - implement AnyEvent::Socket::getprotobyname.
125 root 1.283 - AnyEvent::CondVar's will now detect recursive blocking
126 root 1.284 waits and will croak, as too many people fall into
127     this trap.
128 root 1.281 - AnyEvent::Handle will now call ->destroy on itself after
129     executing the on_error callback, instead of doing some
130     half-baked internal shutdown, for fatal errors.
131 root 1.282 - clarify on_eof behaviour w.r.t. the read queue and
132     on_read callbacks.
133 root 1.281 - ignore some possible spurious wake-ups in tcp_connect.
134 root 1.279
135 root 1.278 4.82 Sat Jul 11 00:34:55 CEST 2009
136 root 1.277 - POE and Event backends didn't accept some callable objects as
137     callbacks.
138 root 1.275 - use Config module instead of POSIX module to detect signal names
139     in AnyEvent::Strict and AnyEvent::Impl::EventLib, as the POSIX
140     module doesn't even have all POSIX signals :/.
141 root 1.276 - use more workarounds around the many refcnt/corruption bugs in
142     Event::Lib.
143     - work around a race condition in perl's select, causing t/03_child.t
144     to rarely fail.
145 root 1.275
146 root 1.274 4.81 Thu Jul 9 10:30:30 CEST 2009
147 root 1.272 - AnyEvent::Handle didn't properly diagnose write errors
148     (it expected -1 from syswrite, how lame... :).
149 root 1.268 - support file descriptors in addition to file handles
150     in AnyEvent->io.
151 root 1.265 - new env variables: PERL_ANYEVENT_RESOLV_CONF,
152 root 1.266 PERL_ANYEVENT_MAX_OUTSTANDING_DNS, PERL_ANYEVENT_CA_FILE
153     and PERL_ANYEVENT_CA_PATH.
154 root 1.267 - provide a sensible synopsis section for AnyEvent::TLS.
155 root 1.273 - add a "supported backends" section to the manpage.
156 root 1.270 - added simple io watcher test to testsuite, using a
157     portable_socketpair.
158 root 1.271 - tried to improve the stability of the Event::Lib backend,
159     YMMV.
160 root 1.265
161 root 1.264 4.8 Mon Jul 6 23:45:16 CEST 2009
162 root 1.261 - AnyEvent::DNS did not properly follow CNAME records with
163     uppercase targets.
164 root 1.262 - AnyEvent::DNS would errornously return AAAA records
165     with v4 mapped addresses (a faulty record) as ipv4 addresses,
166     causing AnyEvent::Socket to throw an exception.
167 root 1.260 - added new module AnyEvent::TLS for easier SSL/TLS context
168     creation, with many options including hostname verification,
169     secure default configuration, lots of documentation and,
170     predefined diffie-hellman keys for perfect forward security
171     and much more. get it while it's still fresh!
172     - use AnyEvent::TLS in AnyEvent::Handle for context management.
173 root 1.256 - load AnyEvent::Handle only on demand in AnyEvent::DNS,
174     so AnyEvent::Socket users have smaller memory footprint
175     in the common case.
176 root 1.258 - add AnyEvent::Handle->push_shutdown method.
177     - add an additional error message parameter to AnyEvent::Handle's
178     on_error callback (for TLS, $! is still available).
179 root 1.263 - add AnyEvent::Handle on_starttls/on_stoptls callbacks.
180 root 1.257 - make AnyEvent::Handle more robust against early conenction
181     failures (during new), and return C<undef> in that case
182     from the constructor.
183 root 1.259 - AnyEvent::Handle will now try to load only JSON::XS first,
184     then fall back to JSON.
185 root 1.262 - format_ipv4/format_ipv6 are now exported by default, for symmetry,
186     and because it was documented that way.
187 root 1.256
188 root 1.258 4.451 Fri Jul 3 00:28:58 CEST 2009
189     - do not clear rbuf when shutting down an AnyEvent::Handle
190     object - doing so breaks AnyEvent::HTTP.
191    
192 root 1.255 4.45 Mon Jun 29 22:59:26 CEST 2009
193     - a write error could cause AnyEvent::Handle to create
194     an I/O watcher with an undefined $fh.
195 root 1.251 - special-case mapped ipv4 addresses in both
196     AnyEvent::Socket::format_address and parse_address,
197     to treat them just like ipv4 addresses.
198 root 1.254 - updated and overhauled the AnyEvent::Intro doc.
199 root 1.252 - implement AnyEvent::Socket::format_ipv4/ipv6.
200     - slightly speed up portable_pipe/socketpair.
201 root 1.255 - expand condvar begin/end documentation.
202 root 1.250
203 root 1.249 4.42 Fri Jun 26 08:32:18 CEST 2009
204 root 1.248 - preliminary and neccesarily incomplete support for IO::Async.
205 root 1.247 - reset SIGCHLD to DEFAULT when AnyEvent is loaded, in
206     case it was set to IGNORE, to ensure we can catch child statuses
207     even when the calling env acts stupidly.
208 root 1.248 - updated benchmarks with IO::Async, which performs very well.
209 root 1.247
210 root 1.245 4.412 Wed Jun 24 01:35:57 CEST 2009
211 root 1.242 - support an "untaint" attribute for AnyEvent::DNS
212     and set it on the default resolver.
213 root 1.241 - implement and document AnyEvent::Impl::Perl::loop.
214 root 1.242 - remove all anyevent-env variables from %ENV
215     when running in tainted mode.
216 root 1.244 - mention and extend the IO::Lambda benchmark.
217 root 1.241
218 root 1.240 4.411 Sun Jun 7 18:48:02 CEST 2009
219 root 1.239 - do not try to use F_SETFD on windows.
220    
221 root 1.238 4.41 Thu May 14 06:40:11 CEST 2009
222 root 1.236 - work around issues in older perls (5.8.0?) when
223     a signal handler is deleted from the %SIG hash.
224 root 1.237 - use POSIX::_exit in child test, to avoid running
225     destructors.
226     - speed up CHLD handling by relying on SIGCHLD being
227     synchronously delivered, even when we roll our own
228     implementation.
229 root 1.238 - AnyEvent::DNS: add the "dname" resource record name
230     for cosmetic reasons.
231 root 1.235
232 root 1.234 4.4 Sun Apr 26 20:12:33 CEST 2009
233     - implemented idle watchers, where applicable.
234 root 1.232 - AnyEvent->time died when Event backend was in use.
235     - fix a memleak in the Tk backend.
236     - sped up Tk timer handling.
237 root 1.233 - clip negative "after" values to 0 in AnyEvent::Impl::Event
238     to avoid spamming out warning messages.
239 root 1.232 - fix Qt timers without interval.
240 root 1.242 - avoid Qt zero-timeout special case, in old libqt's.
241 root 1.232
242 root 1.231 4.352 Mon Apr 20 16:31:11 CEST 2009
243 root 1.229 - fix AnyEvent::Strict error messages for child watchers.
244 root 1.230 - fix/update Makefile.PL "recommends" versions.
245     - add AnyEvent->now_update.
246 root 1.229
247 root 1.228 4.351 Sat Apr 11 07:56:14 CEST 2009
248 root 1.225 - actually make the signal pipe work under win32.
249 root 1.227 - localise $! in signal handler to avoid changing $!, although
250     perl itself does not seem to save/restore errno either.
251 root 1.226 - set the cloexec flag on the signal pipe (normally set by perl too).
252 root 1.225
253 root 1.224 4.35 Fri Mar 27 11:48:20 CET 2009
254 root 1.220 - event models relying on AnyEvent's signal watcher emulation did
255     invoke the callback asynchronously, contradicting documentation
256     and causing signals to get lost (this includes AnyEvent's own
257     event loop). AnyEvent now uses the standard pipe trick to make
258     callback execution synchronous to the event loop.
259 root 1.224 - AnyEvent::Handle didn't free TLS context data on DESTROY
260 root 1.223 (patch by Pavel Shaydo).
261 root 1.220 - work around the ever-incompatibly-changing API of MakeMaker.
262 root 1.221 - document that changing global variables without restoring them
263     is a bad idea in Perl (noted by Adam Rosenstein).
264 root 1.224 - AnyEvent::Strict now barfs if ->io is passed a file.
265 root 1.220
266 root 1.219 4.34 Thu Feb 12 18:32:45 CET 2009
267 root 1.218 - separately buffer TLS read data, as otherwise the read queue could
268     deadlock as receiving data is not expected while draining the
269     read queue (which cna only happen with TLS).
270 root 1.214 - raise EBADMSG error on JSON decoding errors.
271 root 1.215 - fix some minor manpage bugs (reported by Maximilian Gaß).
272     - speed up select bitmask parsing quite a bit in the pure perl
273     backend.
274 root 1.216 - use CORE::select instead of just select in AnyEvent::Impl::Perl.
275 root 1.214
276 root 1.213 4.331 Tue Jan 6 21:07:25 CET 2009
277 root 1.212 - socketpair fails on many vista machines because vista has
278     completely broken accept/getpeername and getsockname functions,
279     so we provide our own socketpair emulation that kind of works
280     (AnyEvent::Util::portable_pipe).
281     - new function: AnyEvent::Util::portable_socketpair.
282 root 1.211 - take advantage of the Guard module if it exists.
283    
284 root 1.210 4.33 Fri Nov 21 02:35:40 CET 2008
285     - AnyEvent::Strict did errornously flag a fileno of 0 as
286     illegal.
287 root 1.206 - reduce memory usage and slightly speed up the pure perl backend
288     by only storing the file descriptor, not the file handle.
289 root 1.207 - add missing autocork method to AnyEvent::Handle (reported
290     by Adam Rosenstein).
291 root 1.209 - AnyEvent::DNS->resolve errornously documented an $rcode result
292 root 1.208 argument, but there isn't (spotted by Henrik Krohns).
293 root 1.209 - the naked truth about Tk - it's basically unmaintained.
294 root 1.206
295 root 1.205 4.32 Mon Nov 3 22:46:32 CET 2008
296 root 1.204 - fix AnyEvent::Socket::resolve_sockaddr to properly support
297     unix sockets again and choose a proper default for
298     the socket type.
299     - fix call to resolve_sockaddr in tcp_connect.
300    
301 root 1.203 4.31 Thu Oct 30 04:41:48 CET 2008
302 root 1.200 - implemented AnyEvent::Handle->destroy method.
303 root 1.203 - hint about unexpected effects in TLS mode.
304 root 1.200 - speed up AnyEvent::Impl::Perl by using more arrays
305     instead of hashes without the slightest loss of readability :)
306 root 1.201 - work around a perl argument refcounting bug.
307 root 1.202 - with some perl patches applied, AnyEvent now seems leak-free.
308 root 1.198
309 root 1.197 4.3 Fri Oct 3 09:18:43 CEST 2008
310 root 1.196 - AnyEvent will now install a no-op signal handler for SIGPIPE,
311     unless one has been installed already.
312 root 1.197 - warn about not loaidng AnyEvent::Impl::POE early enough
313     (patch by Adam Rosenstein).
314 root 1.193 - fixed a great number of bugs and corner cases in AnyEvent::Handle:
315     - fix a bug in where in SSL connect mode, the
316 root 1.191 client would first wait for some data by the server and
317 root 1.197 otherwise hang. (reported and analyzed in an absolutely
318 root 1.191 exemplary manner by Adam Rosenstein).
319 root 1.193 - fix a bug in where SSL EOF would not be treated
320 root 1.191 as stream EOF, putting the connection into a hung state.
321 root 1.197 (reported and analyzed in an absolutely exemplary manner by Adam
322 root 1.191 Rosenstein).
323 root 1.193 - fix a potential segfault when the TLS context
324 root 1.191 would go missing in a read callback (e.g. due to stoptls) -
325     Net::SSLeay of course makes no type checking whatsoever.
326 root 1.192 - AnyEvent::Handle will not stop the read watcher in TLS mode.
327     - AnyEvent::Handle->stoptls will send a TLS close notify
328     instead of simply destroying the stream now.
329 root 1.195 - fix a bug where large blocks of data written in TLS mode
330     would not be sent unless triggered by receives.
331 root 1.193 - on_drain will now take the tls write buffer into account.
332     - SSL operations have been streamlined a bit and should be faster
333     now, more to come, though.
334 root 1.194 - added a FAQ section, will document nontrivial issues in there.
335 root 1.191
336 root 1.190 4.234 Mon Sep 29 04:08:13 CEST 2008
337 root 1.189 - fix child watcher documentation: only child exits will be reported,
338     no trace events.
339 root 1.190 - mention SIGPIPE in AnyEvent::Handle.
340     - perl backend will now use POSIX::times as monotonic clock
341 root 1.188 when available and the monotonic clock option is not.
342 root 1.187 - run even without Time::HiRes in some cases now, but do not
343 root 1.190 provide sub-second accuracy (all *supported* perl versions have
344 root 1.187 Time::HiRes).
345    
346 root 1.186 4.233 Fri Aug 22 01:48:05 CEST 2008
347     - fix a bug in the testsuite, causing a hang.
348     - clarified lots of AnyEvent::Handle constructor arguments.
349    
350 root 1.185 4.232 Thu Aug 21 20:44:25 CEST 2008
351     - fix a bug in AnyEvent::Handle that could cause two fatal error
352     callbacks on EOF, which caused AnyEvent::HTTP to signal success twice
353     (testcase by Leon Brocard).
354     - clarified on_eof/on_error documentation a bit.
355    
356 root 1.184 4.231 Tue Jul 29 13:12:15 CEST 2008
357     - remove some debugging code left in AnyEvent::Util::fork_call
358     (and no, it's impossible to implement with the broken windows
359     perls without resource leaks or worse).
360    
361 root 1.183 4.23 Tue Jul 29 12:19:59 CEST 2008
362 root 1.177 - document the first parameter passed to condvar callbacks to be
363     the callback.
364 root 1.178 - add AnyEvent::Socket::{ntoa,aton} aliases.
365 root 1.180 - optimize the AE::Handle->push_read (line) for the default
366 root 1.179 eol marker.
367 root 1.180 - optimize push_read (packstring|storable) for small packets.
368 root 1.182 - invoke on_error callback when no on_eof callback is set.
369 root 1.180 - fix a bug in push_read (storable) of unknown impact.
370 root 1.177
371 root 1.176 4.22 Sun Jul 20 16:34:13 CEST 2008
372 root 1.174 - new function AnyEvent::Socket::parse_hostport.
373 root 1.175 - as the bulkheads at microsoft can't even get getprotobyname reliably
374     working on their shitty fucking broken os we need to hardcode
375     some common protocol numbers in AnyEvent::Socket. How can
376     people even bother with such a pile of shit as windows.
377 root 1.174
378 root 1.173 4.21 Thu Jul 17 14:40:05 CEST 2008
379 root 1.171 - INCOMPATIBLE CHANGE: AnyEvent::Util::fork_call now has a prototype
380     which is incompatible to previous invocation syntax.
381 root 1.172 - work around more windows perl bugs in fork_call. I cannot imagine
382     why anybody would bother implementing fork in such an obviously
383     unusable way.
384     - avoid calling $do_retry if the request has already finished in
385     AnyEvent::DNS, thus avoiding an exception (reported by Anatoly
386     K. Sharifulin).
387 root 1.170
388 root 1.169 4.2 Sat Jul 12 22:42:11 CEST 2008
389 root 1.165 - support an "interval" argument for repeating timers.
390 root 1.164 - fix a bug in the pure perl event loop that caused timers to
391     be delayed under some circumstances.
392 root 1.167 - implement optional argument checking via PERL_ANYEVENT_STRICT.
393 root 1.169 - not importing anything from Event causes it to malfunction
394     and not use Time::HiRes, work around this bug.
395     - more bug workarounds against the endlessly broken Tk module,
396 root 1.168 seems to work now on 32 bit machines, but less so on 64 bit.
397 root 1.164 - minor optimisations applied to most backends.
398    
399 root 1.163 4.161 Fri Jul 4 14:24:48 CEST 2008
400 elmex 1.162 - fixed the t/handle/02_write.t, it read after write, with the
401 root 1.163 assumption that all data could be written before read
402     (reported by Jim Razmus).
403 elmex 1.162
404 root 1.161 4.160 Thu Jul 3 04:02:21 CEST 2008
405 root 1.160 - re-registering signal watchers after unregistering one did
406     not work if a backend falls back on AnyEvent's default
407     implementation (also affected child watchers).
408 root 1.159 - new AnyEvent::Handle options: autocork and no_delay.
409    
410 root 1.158 4.152 Sun Jun 22 14:15:44 CEST 2008
411 root 1.159 - allow for 32-bit perls that implement shifts differently
412     on different architectures in parse_ipv4 (reported and
413 root 1.158 analysed by Keiichi DAIBA).
414    
415 root 1.157 4.151 Fri Jun 6 17:34:24 CEST 2008
416     - make sure specifying _only_ on_read and never pushing reads
417     works.
418    
419 root 1.155 4.15 Fri Jun 6 13:00:46 CEST 2008
420 root 1.154 - the pure perl backend would keep some watchers alive when more than
421     one watcher was registered for the same fd.
422 root 1.155 - new "packstring" and "storable" read and write types
423     for AnyEvent::Handle.
424 root 1.156 - allow on_eof handler to be called after on_error with EPIPE returns.
425 root 1.153 - do not immediately call on_read callback in handle constructor.
426    
427 root 1.152 4.14 Thu Jun 5 20:29:31 CEST 2008
428 elmex 1.149 - Fixed a bug in DNS SRV priority sorting.
429 root 1.150 - AnyEvent::Util::guard now reports runtime errors while
430     executing the guard block as warnings.
431 root 1.152 - handle 0-byte-reads just before EOF correctly in AnyEvent::Handle.
432 elmex 1.149
433 root 1.148 4.13 Thu Jun 5 00:47:59 CEST 2008
434 root 1.146 - AnyEvent::DNS only followed cname chains with length 2,
435     contrary to documentation. bumped it up to 10, thanks to
436     microsoft, the current broken-dns-config-king.
437 root 1.147 - AnyEvent::DNS didn't check for socket return status
438     but instead relied on perl not creating filehandles in that
439     case - too bad it gives you a bogus file handle (reported
440     and analysed by Vladimir Timofeev).
441 root 1.145 - fix queue management logic in AnyEvent::Handle:
442     when on_read was registered, the queue was empty
443     and no progress could be made AnyEvent::Handle would
444     enter an endless loop.
445     - correctly start reading again when the handle became
446     busy again after idling.
447 root 1.146 - correctly treat tls shut-downs as EOF condition
448     (for the time being, would be nice to have a callback for that).
449 root 1.145 - correctly call eof callback under all conditions
450     (hopefully).
451 root 1.146 - the timeout callback did not expect that $self can go
452     away any time.
453 root 1.145
454 root 1.144 4.12 Tue Jun 3 10:58:04 CEST 2008
455     - include AnyEvent::Intro, a tutorial for anyevent,
456     anyevent::socket and anyevent::handle.
457 root 1.143 - allow more options in on_error.
458 root 1.142
459 root 1.141 4.11 Fri May 30 23:42:25 CEST 2008
460 root 1.135 - INCOMPATIBLE CHANGE: replace ptr by real PTR lookup, provide
461     reverse_lookup and reverse_verify to replace it, support
462     v4mapped and v4compat addresses.
463 root 1.129 - provide more documentation for the resolver class.
464 root 1.130 - really replace longest run of :0: by :: in format_address,
465     also properly convert :: and ::1 again.
466 root 1.134 - support NAPTR record name and decode it.
467 root 1.133 - implement random weight sampling for SRV records, as per
468     rfc 2782.
469 root 1.137 - correctly abort on srv-record targets of ".".
470     - added AnyEvent::DNS::wait_for_slot.
471 root 1.138 - in the unlikely event of a virtual circuit connection
472     being invalidated by a delayed udp reply, AnyEvent::DNS
473     could die. this has been fixed.
474     - plug a probable memleak in the DNS vc code.
475     - use configured timeout also for VC request phase.
476 root 1.139 - implement timeout and max_outstanding methods
477     for resolver class.
478 root 1.140 - update version numbers in all modules.
479 root 1.129
480 root 1.128 4.1 Thu May 29 05:45:40 CEST 2008
481 root 1.123 - INCOMPATIBLE CHANGE: renamed xxx_ip functions to xxx_address
482     which mirrors their purpose better (old names still available
483     for a while). Also moved AnyEvent::DNS::addr to
484     AnyEvent::Socket::resolve_sockaddr.
485 root 1.127 - implement AnyEvent->time and AnyEvent->now.
486 root 1.124 - fix IPv6 support in pack_sockaddr.
487 root 1.123 - officially un-experimentalise all newly introduced code.
488     - support unix domain sockets everywhere by specifying
489     a host of "unix/" and the pathname as service.
490 root 1.126 - implement an activity timeout in AnyEvent::Handle.
491 root 1.122 - added a regex read type to AnyEvent::Handle.
492     - added a json read/write type to AnyEvent::Handle.
493 root 1.118 - always croak in on_error in AnyEvent::Handle.
494     - document how to subclass AnyEvent::Handle.
495 root 1.120 - implement AnyEvent::Util::fork_call.
496 root 1.127 - add support for IPv6 nameservers and nameserver statements.
497 root 1.121 - work around _yet_ _another_ windows perl bug in where empty
498     select masks cause errors in the pure perl backend (this
499     workaround cannot be implemented for the other event loops,
500     but EV also works around this).
501 root 1.123 - supply AnyEvent::Socket::address_type and make good use of it.
502 root 1.122 - clarify and fix the Handle documentation w.r.t $self vs. $handle
503     vs. callback arguments.
504 root 1.127 - add some recommends to the META.yml.
505 root 1.117
506 root 1.116 4.05 Mon May 26 19:44:06 CEST 2008
507     - some platforms ignore the rfc and prepend an extra sa_len member to
508     the sockaddr structure, cater for those. also use sockaddr_family,
509     didn't know it was there, but comes in handy for the workaround.
510 root 1.114 - undo the import WIN32 hack.
511    
512 root 1.113 4.04 Mon May 26 08:03:31 CEST 2008
513 root 1.109 - try to work around yet another windows bug: failed connects are reported
514 root 1.110 as if it were out-of-band data. windows users: you suck. Only
515     EV, Glib, Event and the pure perl backend can handle this condition.
516 root 1.111 - optimize write algorithm in AnyEvent::Handle.
517 root 1.106 - properly parse PERL_ANYEVENT_PROTOCOLS and use the info correctly.
518 root 1.112 - tcp_connect now properly iterates through all targets.
519 root 1.104 - check wether IPv6 sockets can actually be created, otherwise, disable ipv6
520 root 1.114 support entirely. also hardcode some AF_INET6 constants for the
521 root 1.107 sake of perl 5.8.
522 root 1.106 - vastly improved nameserver/suffix detection algorithm for windows
523     (still a hack...)
524     - try to use a fallback dns server if no dns servers could be found.
525 root 1.108 - splatter around some local $SIG{__DIE__}'s to work around bad
526     die handlers.
527 root 1.104
528 root 1.102 4.03 Sun May 25 05:05:57 CEST 2008
529 root 1.100 - work around perl bugs on windows, where perl returns undocumented
530     error codes for sysread, syswrite etc.
531 root 1.96 - fix AnyEvent::Handle::unshift_read to really unshift and not push.
532 root 1.97 - AnyEvent::Handle could sometimes stumble over 0-byte writes.
533 root 1.101 - fix unpack_sockaddr, now works for AF_INET6 sockaddr's.
534 root 1.100 - updated documentation.
535 root 1.103 - lots of workarounds for perl 5.8 quirks.
536 root 1.98 - implement a more flexible type system for both reads and writes
537     in AnyEvent::Handle.
538 root 1.101 - support IPv6 in tcp_server.
539     - pass local hostname and port to the prepare callback in tcp_server.
540 root 1.99 - make types extendable in AnyEvent::Handle.
541 root 1.100 - croak, not die, in AnyEvent::Handle;
542 root 1.96
543 root 1.95 4.0 Sat May 24 19:58:08 CEST 2008
544 root 1.88 - added (experimental) AnyEvent::DNS module.
545     - added (experimental) AnyEvent::Socket module.
546 root 1.93 - added (experiemntal) support for TLS/SSL in AnyEvent::Handle.
547 root 1.90 - make condvar->end call ->send as documented.
548     - make condvar constructor support the documented cb => argument.
549 root 1.94 - overload condvars so you can use them instead of code references.
550 root 1.93 - support more of the POSIX forms instead of a pure dotted quad for
551 root 1.89 verbatim ip addresses.
552 root 1.88 - AnyEvent::Socket::inet_aton will use AnyEvent::DNS now and not fork anymore.
553 root 1.87 - try very hard not to freeze on broken windows perls.
554 root 1.86 - make on_eof optional in AnyEvent::Handle.
555 root 1.83 - support service names in tcp_connect and tcp_server.
556 root 1.84 - work around netbsd/openbsd bug causing unix sockets not to
557 root 1.121 become writable until empty.
558 root 1.81 - only make a dummy read for error detection when getpeername
559     returns ENOTCONN.
560 root 1.181 - defend AnyEvent::Util::inet_aton against Coro::LWP's brutal
561 root 1.82 override.
562 root 1.91 - new AnyEvent::Guard::cancel.
563 root 1.81
564 root 1.80 3.5 Sat May 17 23:17:14 CEST 2008
565 root 1.79 - gracefully deal with systems not defining CLOCK_MONOTONIC
566     (as opposed to not supporting the clock itself, which worked in 3.41).
567 root 1.77 - added AnyEvent::Util::tcp_connect and AnyEvent::Util::tcp_server
568     helpers, to replace the ill-designed AnyEvent::Socket class.
569     - added some examples (eg/connect, eg/handle).
570     - added AnyEvent::Util::guard.
571     - AnyEvent::Util now exports most of its functions.
572 elmex 1.74 - fixed a bug in *_read_chunk, where the callback was called with $self as
573     first and second argument.
574 root 1.77 - simplified and fixed regex handling in AnyEvent::Handle::*_read_line.
575 root 1.72 - fix manpage condvars examples to use new syntax.
576 root 1.78 - considerably improve inet_aton with EV::ADNS backend to support
577     cname chains (common dns configuration bug, e.g. with www.google.de)
578     and aaaa records if no a record could be found.
579 root 1.72
580 root 1.71 3.41 Sun May 11 19:53:13 CEST 2008
581     - work around a bug in perl 5.8.8's local. Reported by Yi Ma Mao.
582    
583 root 1.70 3.4 Sun May 11 00:29:25 CEST 2008
584 root 1.181 - complete re-implementation of condvars with a hopefully much more useful
585 root 1.70 API (backward compatible functions exist but are undocumented).
586 root 1.69 - AnyEvent::Handle fully rewritten with a hopefully more powerful API
587     (still subject to change).
588 root 1.63 - take advantage of CLOCK_MONOTONIC, if available, in AnyEvent::Impl::Perl.
589 root 1.68 - provide AnyEvent::post_detect and @AnyEvent::post_detect, which
590 root 1.67 allows module authors to avoid forcing event loop detection.
591     (used by Coro::AIO, Coro::BDB, Coro::AnyEvent for example).
592 root 1.66 - remove coro backends: Coro now provides generic support for AnyEvent
593     via Coro::AnyEvent.
594 root 1.63
595 root 1.62 3.3 Mon Apr 28 09:51:06 CEST 2008
596     - added AnyEvent::Handle, AnyEvent::Socket and AnyEvent::Util modules.
597 root 1.55 - fix a bug in the pure perl backend that kept watchers alive
598     when multiple watchers were registered for the same fh/poll combo.
599 root 1.54 - add a benchmark section showing AnyEvent overhead and comparing
600     the different event loops with each other.
601 root 1.56 - prefer pure perl over tk when autoprobing, as it's about as fast,
602     but doesn't crash with many watchers.
603 root 1.62 - declare Qt support non-experimental.
604 root 1.56 - clarify the confusing section about the file descriptor being
605     kept alive.
606     - document the race between loading of an event module and
607     child processes exiting.
608 root 1.53 - support POE as "backend" (with some caveats, POE is not generic
609 root 1.54 enough, and darn slow).
610 root 1.53 - support Wx and Prima through POE.
611 root 1.60 - optimise perl backend to use 20% less memory and take advantage
612 root 1.62 of typical timeout behaviour. It can now compete with
613 root 1.60 select/poll-based C event loops in most cases (it is usually
614     faster than Event and Glib :).
615 root 1.59 - roughly cut EV memory use in half and increase its speed by 30%,
616 root 1.62 by removing undocumented functionality. Did something similar
617     to other event loops where possible.
618 root 1.53
619 root 1.50 3.2 Thu Apr 24 10:10:40 CEST 2008
620 root 1.51 - do not die when anyevent watchers are destroyed while running callbacks
621     in the pureperl backend (could only happen when two watchers are registered
622     for the same fh/poll combo).
623     - support autoloading for child watchers, was broken in all versions.
624 root 1.47 - implement PERL_ANYEVENT_MODEL env variable.
625 root 1.49 - (experimental) implement interface to the (very crashy/buggy) Event::Lib module.
626     - (experimental) implement interface to the Qt module (cannot be autoprobed).
627 root 1.52 - this release is IO:AnyEvent-proof.
628 root 1.47
629 root 1.46 3.12 Tue Apr 22 07:11:46 CEST 2008
630     - reinstate AUTHOR section that got lost somehow.
631     - do not hang in the testsuite with badly broken perls (activestate,
632     strawberry...), but instead diagnose the problem and continue.
633     - use INT instead of CHLD in an attempt to support broken windows perls
634     better (this decreases the test quality, unfortunately).
635     - do not send the signal to the process group
636     (no problem for CHLD, bad for INT :).
637    
638 root 1.45 3.11 Sat Apr 19 06:57:31 CEST 2008
639     - major documentation rework.
640     - document the fact that child watchers only watch for zombies.
641     - fix the child watcher example.
642    
643 root 1.43 3.1 Wed Apr 16 17:09:01 CEST 2008
644 root 1.40 - work around recurring bugs in Tk by dup'ing filehandles, the
645 root 1.43 only method with good success chances on Tk (the bugs apparently
646     don't get fixed anytime soon).
647 root 1.42 - lift the restriction of only one watcher per fh direction
648     (as the Tk bug workaround also lifts it and only Tk imposed
649     such strong limits).
650 root 1.41 - changed probe order to prefer coro adaptors.
651     - explain why recursion into the event loop is not supported
652     unless the backend supports it (only Coro::EV does without
653     any restrictions...).
654     - add simple manpages for all backend modules.
655 root 1.40
656 root 1.39 3.0 Mon Apr 7 21:30:23 CEST 2008
657 root 1.38 - Coro::Signal changed semantics, roll our own, also cleaning
658     up the Coro implementation in general.
659     - rename Coro backend to CoroEvent.
660     - add some decision helping paragraph to the manpage that should
661 root 1.44 help people to decide whether AnyEvent is the right thing for them.
662 root 1.38
663 root 1.37 2.9 Mon Jan 28 13:31:54 CET 2008
664     - update for EV 3.0 API changes.
665    
666 root 1.36 2.8 Sun Nov 25 15:06:03 CET 2007
667     - waitpid can validly return 0. accept this fact of life
668     instead of reporting it to any watchers.
669    
670 root 1.35 2.7 Fri Nov 23 11:41:14 CET 2007
671 root 1.34 - force use of AnyEvent::Impl::Perl in testsuite, there is
672     too much breakage outside AnyEvent.
673 root 1.35 - deliver signals synchronously in AnyEvent::Impl::Perl
674     or any other event loop that relies on AnyEvents child
675     watcher emulation. *Could* help with hanging testsuite
676     (except when Event or EV are installed).
677 root 1.34
678 root 1.33 2.6 Fri Nov 9 20:36:35 CET 2007
679 root 1.32 - fix bug in testsuite.
680     - move EV adaptor modules to AnyEvent.
681     - add Coro+EV adaptor module.
682 root 1.26
683 root 1.31 2.55 Tue Nov 6 17:41:32 CET 2007
684 root 1.27 - add EV to the list of supported event models.
685 root 1.30 - do not auto-reset pid watchers, pass pid and status to them.
686 root 1.29 - allow a pid of zero to watch for all children in child watchers.
687 root 1.27
688 root 1.25 2.54 Wed Jul 18 17:36:23 CEST 2007
689     - work around a perl bug that results in
690     BEGIN not safe after errors--compilation aborted without
691     any discernible reason or error message by once
692     again not use'ing strict.
693    
694 root 1.24 2.53 Sun Jul 8 10:51:53 CEST 2007
695     - make Glib interface work again (spotted by elmex).
696    
697 root 1.22 2.52 Wed Mar 7 18:36:16 CET 2007
698     - child watchers stopped working permanently when
699 root 1.23 all current child watchers were destroyed.
700 root 1.22
701 root 1.21 2.51 Mon Dec 11 21:33:24 CET 2006
702     - work around bugs in perl where eval "require Module" returns
703     true even if the module couldn't be loaded :/.
704    
705 root 1.20 2.5 Mon Dec 11 02:15:28 CET 2006
706 root 1.19 - avoid $AUTOLOAD because many perls corrupt it.
707 root 1.20 - AnyEvent::detect forces autodetection.
708     - implement signal watchers (experimental)
709     (Tk does not support async signals (<= 804.027 at least),
710     so they might get delayed indefinitely on Tk).
711     - implement child watchers (experimental).
712     - moved default condvar implementation into base module, simplifying
713     most implementation modules.
714 root 1.14
715 root 1.18 2.1 Fri Nov 24 15:50:48 CET 2006
716 root 1.16 - better docs.
717     - simple testsuite.
718 root 1.17 - added AnyEvent->one_event method for special purposes.
719 root 1.16
720 root 1.15 2.0 Wed Nov 1 02:21:30 CET 2006
721 root 1.13 - INCOMPATIBLE CHANGE: poll can now either be "r" or "w" but not both.
722     - INCOMPATIBLE CHANGE: io watcher callbacks have no arguments anymore.
723     - EXPERIMENTAL:
724     new pure-perl model added, AnyEvent now always finds a suitable
725     event model.
726 root 1.12 - improved documentation.
727     - reduced cpu overhead.
728    
729 root 1.11 1.02 Fri Jan 13 14:15:40 CET 2006
730     - add COPYING to clarify license.
731    
732 root 1.10 1.01 Sun Jan 8 05:48:09 CET 2006
733     - correctly cancel Event timers, avoid memory leaks.
734    
735 root 1.9 1.0 Sun Jan 8 05:40:58 CET 2006
736 root 1.8 - allow third-party interfaces to be added at runtime.
737     - fix version number.
738    
739 root 1.7 0.9 Fri Dec 30 02:25:41 CET 2005
740 root 1.6 - fixed errors in the documentation.
741 root 1.7 - going back to using $VERSION as "load check",
742     as suggested by Jörn Reder. Let's see why I stopped using
743     this method.
744     - add 'hup' to the list of events to receive for glib
745     and generate 'rw' events for it, as some versions of
746     glib seem to require this, while this breaks other
747     (older) versions of glib.
748     - implemented PERL_ANYEVENT_VERBOSE env variable.
749 root 1.6
750 root 1.5 0.3 Sun Dec 4 10:43:33 CET 2005
751     - no changes to the code.
752     - fixed documentation.
753     - clarified some corner cases.
754     - vastly improved documentation with a long example.
755    
756 root 1.3 0.2 Thu Dec 1 22:18:49 CET 2005
757 root 1.44 - check whether a valid method was called, to avoid endless loops.
758 root 1.4 - move condvars into their own class (cleaner, safer).
759     - don't die when some modules are not available.
760     - Tk is too broken to allow for words. Will work once Tk works.
761 root 1.3
762 root 1.2 0.1 Thu Dec 1 19:44:57 CET 2005
763     - spiced up and cleaned up for release.
764    
765 root 1.1 0.01 Tue Sep 21 18:12:09 CEST 2004
766     - original version; copied from Convert::Scalar.
767