ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/Changes
Revision: 1.366
Committed: Sat Dec 5 02:58:30 2009 UTC (14 years, 5 months ago) by root
Branch: MAIN
Changes since 1.365: +2 -0 lines
Log Message:
*** empty log message ***

File Contents

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