This version was released on 2001-04-20.

Add Dieter Pearcey's Stackable filter, allowing ReadWrite (and other wheels) to pass data through two or more filters. Stackable comes with other helpful filters: Map and Grep to transform data while it's still in a filter stack, and RecordBlock to group several records into a block of them.

Add t/24_filter_stack.t as a start for testing stackable filters. This so far is the only sample code for using these filters, and it's not very friendly in that regard.

Add ASSERT_USAGE. Setting this POE::Kernel debugging constant causes it to check the values passed to its parameters and croak if they're bad.

may break code: David Huggins-Daines discovered that POE versions 0.1205 and later don't work with older Tk versions. Make the Tk substrate fail if it's working with an older Perl-Tk library.

may break code: Gtk+ does not require a top-level window in order for POE to use its event loop. Furthermore, Mandrake says it's common for Gtk+ programs not to have any given "main" window which closes a program when it's destroyed. POE::Kernel no longer creates a top-level window when using Gtk+, and it has a new method, signal_ui_destroy, which can be used to fire UIDESTROY when some arbitrary widget is destroyed. See the POE::Kernel documentation.

Tk requires at least one widget to use the event loop, so POE::Kernel continues to create one and set $poe_main_window when Tk is in effect.

may break code: Deprecate support for coderefs in SocketFactory's SuccessState and FailureState parameters.

Applied Peter Scott's code/doc/test patches to allow Wheel::Run to fork off coderefs instead of new programs.

David Huggins-Daines pointed out that Sys::Hostname, while it's improved in 5.6.0, is pretty poor in prior perls. Added a manual POSIX::uname check in POE::Kernel.

Peter Scott pointed out that Wheel::Run won't flush output to a child process' STDIN unless a StdinEvent parameter is included. Changed Wheel::Run to flush to the child's STDIN handle even without StdinEvent.

Added an Alias parameter to POE::Component::Server::TCP so that it can receive events from other sessions.

Added a 'shutdown' event handler to POE::Component::Server::TCP. Combined with the component's alias, this lets some other session shut down a server.

Began using SourceForge's compile farm for cross-platform testing. The time reduction in POE's signal tests was too aggressive, causing some problems on the Debian test system. Increased the delay a little bit.

Add POE::Wheel::Curses to provide non-blocking input for Curses programs.

Back to POE CHANGES.