Good morning! Version 0.1901 of the POE multitasking/networking framework has been released. Thanks to everyone who helped make this possible.
This version is a release candidate for the next CPAN release, which will be version 0.20. The release date for 0.20 is tentatively scheduled for next weekend, on or around June 7. Since version 0.1901 is on the CPAN, you must acquire it from SourceForge or a mirror site. http://prdownloads.sf.net/poe/POE-0.1901.tar.gz http://poe.perl.org/?Where_to_Get_POE This version is another major improvement over the last. Several bugs have been fixed, new features have been added, and old features have begun the long, slow side into deprecation. A summary of the changes in version 0.1901 has been included at the end of this announcement. A complete, browsable list of changes, broken down by version number, is available on the web at: http://poe.perl.org/?POE_CHANGES http://poe.perl.org/?POE_CHANGES/Changes_in_POE_0.1901 Thanks again to everyone who has helped get POE this far. Keep that feedback coming. :) -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sf.net ----- Notes ----- These are change highlights since 0.19. Changes marked with "(!!!)" may break backward compatibility. While POE has been tested on several different machines, it has not been tested on yours. Be sure to try it on a development machine before deploying it in production systems. Thank you. ------------------ Installation Fixes ------------------ People using perl 5.005 or later will have a vastly improved Makefile.PL experience, thanks to Matt Cashner. (!!!) Perl 5.004 will eventually be deprecated. While Makefile.PL is fairly static, having to support ones for perl 5.004 and 5.005 or later is just the tip of the maintenance iceberg. ------------ Signal Fixes ------------ (!!!) Signal dispatch has been redone to avoid the problem where signals have killed part of a program but not the whole thing. 1. Dispatch the signal to sessions that requested it via $kernel->sig(). 2. Dispatch the signal to everyone else via _signal events. This feature has been separated from the $kernel->sig() dispatch so that it may be deprecated in the future. 3. If the signal is handled by any event handler, then no sessions are stopped. This allows one session to handle a signal on behalf of an entire program, fixing the partial-kill problem. sig_handled() was added and documented. This will eventually replace the use of return values to flag signals as "handled". ---------------- Other Core Fixes ---------------- POE::Preprocessor can now write preprocessed source upon request. This will let people "compile" POE programs using perl2exe and perlapp. Thanks to Zoltan Kandi and everyone else who demanded this. A long-standing but rarely (if ever) tickled "internal inconsistency" type of bug was fixed in the select_foo() functions. Thanks to Scott Beck for reporting this. A regression test was added so it will never happen again. POE now supports IO::Poll thanks Matt Sergeant. This has the potential to increase performance for large scale network programs, but we haven't benchmarked it. If anyone has a large-scale POE benchmark, we'd love to know how it performs. Currently MSWin32 does not support IO::Poll. Hopefully the module will be fixed after ActiveState Perl build 631. A subtle EOF bug was fixed in Driver::SysRW. Thanks to Peter Barabas for finding it. The TRACE_FOO and ASSERT_FOO messages will show aliases when possible. ----------- Wheel Fixes ----------- POE::Wheel::FollowTail no longer reports log resets when they didn't happen. POE::Wheel::ReadLine guesses vt100 if no TERM variable is set. POE::Wheel::ReadLine guesses 38400 if it can't figure the console speed using getospeed(). Thanks to Ekkis for reporting this one and suggesting the fix. POE::Wheel::Run now emits a CloseEvent when the child process has closed its output file handles. This indicates that the child process is done sending data. Thanks to everyone who suggested this. POE::Wheel::Run includes a new parameter for ErrorEvent, ARG4. It contains the name of the file handle that the error was encountered on: STDIN, STDOUT or STDERR. Thanks to everyone who suggested this. POE::Wheel::Run now uses POE::Filter::Line by default. -------------------- Ongoing Deprecations -------------------- (!!!) The FooState deprecation in POE::Wheel modules has finally entered step 4. http://poe.perl.org/?POE_RFCs/XyzState_to_XyzEvent has more details about this. ----------- MacOS Fixes ----------- Thanks to Iain Chalmers, many of POE's tests run better on MacOS 9.x. ------------- Windows Fixes ------------- Test 06_tk.t skips two failures resulting from broken Tk fileevent watchers on MSWin32. (!!!) Support for POE::Wheel::Run on MSWin32 has been indefinitely suspended. POE needs someone with heavy parent/child IPC experience on MSWin32 to take this over. A complete solution must either work on every contemporary MSWin32 platform or gracefully decline to work on the ones where this is impossible. An internal inconsistency failure for child PIDs >0 on MSWin32 was fixed. Thanks to Arthur Bergman and ted Suzman for reporting it. POE::Wheel::ReadLine no longer crashes ActiveState Perl 631. Thanks to Jos Boumans for reporting it and helping me fix it. --- End ---
