POE 0.37 is on PAUSE, and it'll be on your favorite CPAN mirror
whenever that normally happens.
Some extra thanks are in order before the usual round of changelog
highlights:
- To Benjamin Smith, for devoting a big chunk of his summer on POE's
tests. Thanks to him test coverage reports actually work again, and
we're up to 70% coverage (from 54%).
- To The Perl Foundation, for accepting Ben's project as one of only
a handful of Google Summer of Code projects they were allocated.
- To Google, for sponsoring the project.
Now the usual thanks. This release was made possible by
contributions from readers like you:
- Benjamin Smith updated POE's tests in more ways than are practical
to list. He also documented the POE::Resource classes.
- Yuval Kogman found a race condition between extra reference
counting and POE's garbage collection. Sometimes decrementing an
extra reference count would trigger an immediate GC on a session, and
hilarity would ensue.
- Chris Williams contributed POD tests to help POE's kwalitee
metrics. Then he went and fixed the problems they uncovered.
- I removed the POE::Wheel::FollowTail disclaimer about log
rotation. The wheel isn't special in regards to poorly rotated
files---even the system's tail -F may lose data in that case.
- Pedro Melo patched POE::Component::Client::TCP to clear its alias
after the disconnect callback returns.
- I added tests for POE::Wheel::ReadLine. It's only covered about
25% at the moment, though. It's data driven, so new tests are easy
to add. By the way, I also fixed the kill-word command. It was
deleting twice as many characters as necessary.
- Martijn van Beers documented new()'s deprecation. It's been a stub
of a method with some croak()s for a while.
- Chris Williams improved his IRC-reporting smoker program. It's not
part of the distro, but I thought it warranted a mention. If you
want to run one, it's in trunk/extras.
- Benjamin Smith's tests discovered a timing issue regarding
POE::Loop::IO_Poll callbacks. They were out of order relative to all
the other loops. Now that's fixed, but you really shouldn't rely on
the order of any given loop's events being the same as all the
others. There are just too many variables... varying.
- I fixed a hard crash in the POE::Wheel::ReadLine tests in
ActivePerl. Then I skipped them altogether because most event loops
can't multiplex the console on that platform.
- Michael Hartmann reported a busy loop in POE::Loop::Tk. His report
was detailed enough for me to hunt down and kill the bug.
- Yuval Kogman thoroughly thrashed the exceptions code, resulting in
some significant fixes.
- Yuval Kogman discovered a case where clearing an extra reference
count would immediately cause a session to be stopped. This has been
delayed until the handler returns, in case the handler really wanted
to do something else.
- Martijn van Beers began documenting POE's signals as a concept. He
could use some help. His CPAN ID is LOTR. He reads the list.
- Yuval Kogman discovered that even an unhandled die() would corrupt
POE::Kernel's data, meaning that run() would crash when called a
second time. This has been fixed, in large part thanks to Yuval's
comprehensive test case.
- Yuval Kogman discovered that exceptions that stringify to "" were
not being rethrown. This has been fixed.
Whew. Anyway, the CHANGES file in POE's distro lists the gory, gory
details for the changes since version 0.3601 was released on 2006-08-13.
I expect the next release to be in about a week and include the
rollback for the sig() reference counts. It may be longer if the
rollback exposes new issues.
--
Rocco Caputo - [EMAIL PROTECTED]