The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.19

  • Rocco fixed where Client::TCP did not always call its Disconnected callback when the client requested a disconnect.
  • Rocco revised the order of operations in Wheel::Curses' initialization, but it didn't fix the bug he was looking for.
  • Rocco made missing termcap warnings less ugly in t/00_coverage.t.
  • Rocco rewrote POE::Kernel's internal data structure documentation.
  • Sungo found a buglet (because it was harmless... this time) in POE::Kernel's dispatch function. It was breaking Session encapsulation because of a typo. Rocco applied the fix.
  • Bline found out that POE::NFA's goto_state() was not going to the very first state before his session was needed by other startup sessions. Rocco made goto_state() be synchronous the first time, so that the equivalent of a synchronous _start would happen.
  • Rocco updated POE::NFA to use CALLER_FILE_NAME and CALLER_FILE_LINE so that ARG0 is in the same offset as the other sessions.
  • Rocco added a get_runstate() method to POE::NFA. This is equivalent to get_heap() in POE::Session.
  • Rocco patched Wheel::ReadLine to use a private copy of STDIN and STDOUT so that other code could redirect them.
  • Rocco wrapped binmode() in eval{} in Kernel and SocketFactory. It turns out that binmode() is not so harmless if it's used with a tied filehandle class that doesn't support it.
  • Rocco wrapped Kernel's fcntl() calls in a test for tied() since fcntl on tied filehandles isn't meaningful.
  • TonyC spent considerable time beating on Win32 support and found a workable work-around to tests 4 and 10 failing. Rocco applied some patches.
  • Curses doesn't always update the screen properly if STDIN is not in blocking mode. Rocco patched POE::Wheel::Curses to ensure STDIN blocks.
  • Rocco updated the Windows and MacOS support info. in POE's man page based on user feedback.
  • Rocco found and fixed a circular reference in POE::Wheel::ReadLine that prevented it (and thus programs) from exiting cleanly.
  • Add blib and blib/lib to lib/deptest.perl, making it more useful for other modules.

Modules

POE
multitasking and networking framework for perl
a POE servlet class
a simplified TCP client
a simplified TCP server
an abstract file driver
an abstract sysread/syswrite file driver
a protocol abstraction
filter between streams and blocks
POE Data Grepping Filter
convert stream to HTTP::Request; HTTP::Response to stream
filter data as lines
POE Data Mapping Filter
POE Record Block Abstraction
freeze data for sending; thaw data when it arrives
POE Multiple Filter Abstraction
pass through data unchanged (a do-nothing filter)
an event driven threaded application kernel in Perl
event driven nondeterministic finite automaton
common functions for POE::Pipe::OneWay and ::TwoWay
portable one-way pipe creation (works without POE)
portable two-way pipe creation (works without POE)
a macro/const/enum preprocessor
an event driven abstract state machine
high-level protocol logic
non-blocking Curses.pm input for full-screen console apps
follow the tail of an ever-growing file
accept connections from regular listening sockets
prompted terminal input with basic editing keys
buffered non-blocking I/O
event driven fork/exec with added value
non-blocking socket creation and management

Provides

in lib/MyOtherFreezer.pm
in lib/Devel/Null.pm
in POE/Kernel/Event.pm
in POE/Kernel/Gtk.pm
in POE/Kernel/Select.pm
in POE/Kernel/Tk.pm
in POE/Kernel/Event.pm
in POE/Kernel/Gtk.pm
in POE/Kernel/Select.pm
in POE/Kernel/Tk.pm
in lib/TestSetup.pm
in lib/Devel/Trace.pm