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
---

Reply via email to