Good morning! POE 0.1701 can be found at <http://poe.perl.org/?Where_to_get_POE>. In the unlikely event that poe.perl.org is down (thanks Matt!), it's also available at <http://sf.net/projects/poe/>.
As usual, I've included the latest changes here. A better version is online at <http://poe.perl.org/?POE_CHANGES>. POE's test results are at <http://poe.perl.org/?POE's_test_results>. Test coverage results are at <http://poe.perl.org/?POE's_test_coverage_report>. -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sourceforge.net ----------------------- 0.1701 2001.10.22 (!!!) ----------------------- I'm tempted to nickname this release "Enterprise", but I'm not gonna. Rocco applied Tony Cook's documentation patch. Sungo applied his Preprocessor.pm patch that lets packages inherit macros and constants from other packages. It's another step towards making Session inheritable. Rocco applied Sky's patch to prevent Filter::HTTPD from mangling newlines in responses' content. Sky's patch also documents how to stream large files. Rocco applied a patch to Component::Server::TCP so it doesn't generate missing-state warnings. Rocco applied an experimental patch to Kernel's SIGCHLD code. It slowly polls for child processes to reap (once a second) until some CHLD signal arrives. After that, it polls rapidly until no more are available. Then it goes back into once per second mode. Ingy noticed that the deprecation warnings for using coderefs as event names in SocketFactory were really confusing. These have been changed, hopefully for the better. (!!!) Recombined the event and alarm queues. This is a big internal change to POE::Kernel and POE::Kernel::*, but it doesn't affect public interfaces. It's marked as potential breakage for people who are working in POE's guts. (!!!) Clean up POE::Kernel and POE::Kernel::* names. Replace "state transition event" with "event". Replace "state" with "event" when it refers to events. Replace "state" with "event handler" when it refers to code invoked to handle events. Fix up the documentation a little, too. This could potentially break programs that rely on undocumented POE::Kernel internals. Received reports that Linux's select() will block indefinitely if it's somehow interrupted with a signal when called with a 0s timeout. It's been implicated with the sudden lockup of long-running processes. Worked around it by setting the minimum select() timeout to 1 microsecond on Linux. Add defined tests to Wheel::Run so that it doesn't generate errors on Ctrl-C. Add code to POE::Wheel::FollowTail so it can emit a ResetEvent when files it watch have been reset. Fixed a bug in _alarm_find per Kirill's recommendation. It would die with "internal inconsistency: alarm should have been found" on long alarm queues. Fixed a bug that Kirill spotted in POE::Kernel::Select's macro substrate_ignore_filehandle. It assumed /$/ was really the end of a string, but /$/ can match before a newline. As a result, select(2) vectors were getting mangled, causing mysterious "select error: Bad file descriptor" or "select error: Unknown error" messages. (!!!) Posted events now keep sessions alive. This simplifies inter-session communication greatly, eliminating the need to call() between sessions. Chances are that this won't break many (any?) programs, but it's flagged as such to catch your attention. Debug FollowTail code per freeside's test case. Fixed a leak in Kernel/Tk.pm. Circular references on filehandles (in Tk?) were preventing them from closing. Stringifying a handle in a strategic place (it was being used as a hash key anyway) broke the reference loop and let handles close properly. Dieter Pearcey told me to remove an apostrophe from a comment, so I did. -End-
