ANNOUNCE: POE v0.33 - Now with exceptions.

ANNOUNCE: POE v0.33 - Now with exceptions.

am 27.12.2005 20:28:15 von Rocco Caputo

--------------------------------------
Happy New Gregorian Year! In advance!
--------------------------------------

POE 0.33 has been released. Thanks go out to everyone who helped
develop it.

Highlights of changes since version 0.32.

* POE::Exceptions rolled into core.

The long-running POE::Exceptions experiment was a success, and its
features have been rolled into POE.means death in event handlers is gracefully propagated as a signal
rather than immediately bringing down the entire program. If the
signal isn't caught, however, POE shuts down deliberately rather than
messily. Matt Cashner and Jonathan Steinert put in a lot of effort to
make this work well.

* Signal dispatch reworked, especially regarding SIGCHLD.

Speaking of Jonathan Steinert and signals, he found and fixed a lot of
problems with signal dispatch in general, especially regarding
SIGCHLD. We now have child process reaping during the END times with
mandatory warnings if any were left behind. This should clear up any
lingering zombies before a program exits, and it will let you know the
problem exists. It won't clear up zombies during long-term runs.
That's up to you to do by registering a sig(CHLD) event.

* Lost SIGCHLD signals found again.

Speaking of SIGCHLD, Jonathan Steinert made $SIG{CHLD} be "DEFAULT"
again. While IGNORE was well-meaning, it introduced a lot of problems
including lost signals in many cases. We can't have that, so now we
don't. As a result, you're going to need to reap your own children.
Don't fork around without setting up a sig(CHLD) handler.

* POE::Filter::HTTPD gets along with MSIE better.

Philip Gwyn patched the filter to deal with MSIE's tendency to send
along extra network newlines at the end of POST requests.

* Legacy Perl Support

Philip Gwyn patched the tests to avoid spurious errors in versions of
Perl circa 1995.

* POE::Component::Server::TCP concurrency limit.

Philip Gwyn added a Concurrency parameter to PoCo::Server::TCP to
limit the number of concurrent connections the server should handle.
It's used to limit a program's load, or even ensure that only one
client can connect at a time.

* Cleaned up -W warnings.

Joel Bernstein pointed out that POE wasn't -W safe. It should be as
of version 0.3202.

* POE::Component::Server::TCP socket leak corrected.

Abhishek Jain discovered a socket leak in PoCo::Server::TCP, which was
subsequently fixed in version 0.3201.

* Event handler context preservation.

Event handlers are invoked in void context if the dispatcher is called
in void context. Previously it would be called in scalar context,
giving rise to a subtle edge case where objects wouldn't destruct
properly.

As if that wasn't enough, POE's web site contains detailed logs for
every public release, ever!

- http://poe.perl.org/?POE_CHANGES

Even now the latest tarball should be hurtling towards your favorite
CPAN mirror. It is also on the web, and so is a Windows PPD! Users
who need advanced notice of changes can follow POE's development in
CVS or discuss new features on the mailing list.

- http://poe.perl.org/?Where_to_Get_POE
- http://poe.perl.org/?POE_Support_Resources

Thanks again to everyone who helped with this release. Keep the
feedback and patches coming.

---------
About POE
---------

POE is a networking and multitasking framework for Perl. It has been
in active development since 1996, and its first public release was in
1998. O'Reilly's The Perl Conference (now part of OSCON) named it
"Best New Module" in 1999.

- http://poe.perl.org/?What_POE_Is

POE's users and developers continue to improve and build upon it. See
the CPAN for the most up-to-date list of POE based modules.

- http://search.cpan.org/search?mode=module&query=POE

POE's robustness and performance have made it an integral part of
mission critical applications since its first release. It is used in
several fields, and in projects ranging from just a few lines of code
to hundreds of thousands.

- Financial:
Market servers, clients, billing systems, and automated trading
agents.

- Web:
Commerce servers, content management systems, application servers,
data warehouses, WAP proxies, ad exchanges, web crawlers/spiders,
and a variety of specialized agents.

- System Administration:
Large-scale host monitors and maintenance agents, distributed load
testers, a distributed file system (InterMezzo), radius monitors,
system log managers and reports, SNMP monitors, and spam detectors.

- Entertainment:
Interactive TV servers; mp3 jukeboxes and streaming servers; game
server monitors, managers, and tournament controllers; and a
plethora of IRC applications, services, and agents (bots).

- Software Development:
Compile farm managers, build managers, distributed testing
frameworks.

- Monitoring and Automation:
X10 home control systems, weather station monitors, alarm monitors.

We look forward to hearing how POE has helped you.

--
Rocco Caputo - rcaputo@cpan.org - http://poe.perl.org/