develooper Front page | perl.poe | Postings from September 2006

Crikey! POE 0.37 has been rehabilitated and released into the wild!

Rocco Caputo
September 7, 2006 23:17
Crikey! POE 0.37 has been rehabilitated and released into the wild!
Message ID:
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  

- 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 - Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About