This version was released on 2006-09-08.

  2006-09-08 04:54:53 (r2118) by rcaputo; poe/lib/POE.pm M

    Version 0.37! Rejoice! 

  2006-09-08 04:50:08 (r2117) by rcaputo
  poe/tests/10_units/01_pod/01_pod.t M

    Fix a vim modeline. Nothing here to see, folks. 

  2006-09-08 04:45:45 (r2116) by rcaputo
  poe/tests/10_units/01_pod/01_pod.t M; poe/lib/POE/Loop.pm M;
  poe/tests/10_units/03_base/08_resource.t M; poe/lib/POE/Kernel.pm M;
  poe/tests/10_units/03_base/03_component.t M;
  poe/tests/10_units/01_pod/02_pod_coverage.t M; poe/lib/POE/Session.pm
  M; poe/lib/POE/Wheel/ReadLine.pm M; poe/lib/POE/Resource.pm M;
  poe/lib/POE/Pipe/TwoWay.pm M; poe/tests/10_units/03_base/06_loop.t M;
  poe/lib/POE/Pipe.pm M; poe/lib/POE/Pipe/OneWay.pm M; poe/lib/POE.pm M;
  poe/tests/10_units/03_base/01_poe.t M; poe/lib/POE/Component.pm M;
  poe/lib/POE/NFA.pm M

    Updated Chris Williams' fine POD tests to more explicitly treat
    certain methods as private. Also added a "strict" mode that doesn't
    skip over the methods temporarily considered private while we figure
    out whether they should really be so. Also removed tabs while I was
    in there. Curse you, tabs!
    
    Removed new() methods from classes that are really uninstantiated
    mixins. Calling a nonexistent method is semantically about the same
    as calling a constructor that only exists to croak. Had to remove
    tests for the croaks as well.
    
    Documented select_pause_read() and select_resume_read().
    
    Added leading underscores to a bunch of helper functions and methods
    that should really have been private. There are more to come, but
    their privacy status is less obvious. 

  2006-09-08 02:56:42 (r2115) by rcaputo; poe/Makefile.PL M

    Turn off executable bit. Apparently executable Makefile.PLs are bad. 

  2006-09-08 02:54:35 (r2114) by rcaputo; poe/examples/queue.perl M

    Make this file executable. 

  2006-09-08 02:51:51 (r2113) by rcaputo; poe/examples A; poe/samples D

    Rename samples to examples. 

  2006-09-08 02:51:03 (r2112) by rcaputo; poe/MANIFEST M

    Rename the samples files to examples files. 

  2006-09-07 22:13:39 (r2111) by rcaputo
  poe/lib/POE/Wheel/FollowTail.pm M

    Remove the disclaimer about needing system's tail for robustness.
    It's only an issue if log files are rotated incorrectly, and in that
    case even the system's tail will fail. 

  2006-09-06 17:35:20 (r2110) by rcaputo
  poe/lib/POE/Component/Client/TCP.pm M

    Pedro Melo suggested on the mailing list that clearing the components
    alias be delayed until after the disconnect callback. This revision
    applies his patch. 

  2006-09-06 15:34:03 (r2109) by rcaputo
  poe/tests/30_loops/00_base/wheel_curses.pm M

    Skip the POE::Wheel::Curses tests entirely if IO::Pty isn't
    available. 

  2006-09-05 19:06:41 (r2108) by bingosnet
  poe/lib/POE/Wheel/ReadLine.pm M; extras/smoker.perl M;
  poe/tests/10_units/01_pod/02_pod_coverage.t M

    More pod coverage fixes. Wheel::ReadLine 

  2006-09-05 15:59:17 (r2107) by rcaputo
  poe/tests/00_pod_tests D; poe/tests/10_units/01_pod A; poe/MANIFEST M

    Move the POD tests to 10_units/01_pod. 

  2006-09-05 14:18:29 (r2106) by bingosnet
  poe/lib/POE/Component/Client/TCP.pm M; poe/lib/POE/Wheel/Run.pm M;
  poe/lib/POE/Filter/HTTPD.pm M; poe/lib/POE/Resources.pm M;
  poe/lib/POE/Filter/Stackable.pm M; poe/lib/POE/Filter/RecordBlock.pm M;
  poe/lib/POE/Wheel/FollowTail.pm M; poe/lib/POE/Wheel/ListenAccept.pm M;
  poe/lib/POE/Filter/Grep.pm M; poe/lib/POE/Driver/SysRW.pm M;
  poe/lib/POE/Session.pm M; poe/lib/POE/Wheel/SocketFactory.pm M;
  poe/tests/00_pod_tests/01_pod.t A; poe/lib/POE/Pipe/TwoWay.pm M;
  poe/lib/POE/Wheel/ReadWrite.pm M; poe/lib/POE/Component/Server/TCP.pm
  M; poe/lib/POE/Pipe/OneWay.pm M;
  poe/tests/00_pod_tests/02_pod_coverage.t A; poe/tests/00_pod_tests A;
  poe/lib/POE/Filter/Map.pm M; poe/MANIFEST M

    Added pod tests, fixed pod errors and improved pod coverage. Set
    POE_TEST_POD env var to enable tests. 

  2006-09-05 06:18:46 (r2105) by rcaputo
  poe/tests/30_loops/00_base/wheel_readline.pm M

    Cover more conditions. Now with 27.5% coverage. 

  2006-09-05 05:48:20 (r2104) by rcaputo
  poe/tests/30_loops/00_base/wheel_readline.pm M

    Start testing different editor commands. 

  2006-09-05 05:47:42 (r2103) by rcaputo; poe/lib/POE/Wheel/ReadLine.pm M

    POE::Wheel::Readline would delete twice as many characters as
    necessary on a kill-word command. 

  2006-09-05 03:19:08 (r2102) by rcaputo
  poe/lib/POE/Wheel/Curses.pm M;
  poe/tests/30_loops/00_base/wheel_curses.pm M

    Put the intrflush() call back, and skip all my shiny new tests
    because some Curses functions block terribly under unbuffered ptys.
    But they only do the blocking on some platforms. Grrrr. 

  2006-09-05 02:48:00 (r2101) by rcaputo
  poe/tests/30_loops/00_base/wheel_curses.pm M

    Make this into a proper test. Keystrokes are pushed down to a
    Wheel::Curses running under a pseudo tty. 

  2006-09-05 02:46:27 (r2100) by rcaputo; poe/lib/POE/Wheel/Curses.pm M

    Comment out the intrflush() call. It flushes to the terminal, which
    may be a bad thing if it's an unbuffered pipe. 

  2006-09-05 01:42:03 (r2099) by rcaputo
  poe/tests/30_loops/00_base/wheel_readline.pm M

    Create proper data-driven tests for Wheel::ReadLine. You can tweak
    various bits of Wheel::ReadLine by adding new test data to the start
    of this program. 

  2006-09-05 01:41:11 (r2098) by rcaputo; poe/lib/POE/Wheel/ReadLine.pm M

    A cheezy hack to avoid destroying Wheel::ReadLine instances from
    within POE::Kernel's space. A proper fix would be to somehow break
    this wheel's circular references to $self so that DESTROY is
    triggered immediately when the user destroys the objects' last
    references. 

  2006-09-04 21:17:47 (r2097) by rcaputo
  poe/MANIFEST.SKIP M; poe/MANIFEST M

    Add two new tests to the manifest. Skip more coverage databases. 

  2006-09-04 21:15:33 (r2096) by rcaputo
  poe/tests/10_units/03_base/16_explicit_loop_fail.t D;
  poe/tests/10_units/03_base/17_explicit_loop_fail.t A;
  poe/tests/10_units/03_base/15_explicit_loop.t D;
  poe/tests/10_units/03_base/14_kernel_internal.t D;
  poe/tests/10_units/03_base/16_explicit_loop.t A;
  poe/tests/10_units/03_base/15_kernel_internal.t A

    Rename some of the tests. There were two 14s. 

  2006-09-04 20:50:53 (r2095) by rcaputo
  poe/tests/10_units/03_base/16_explicit_loop_fail.t A;
  poe/tests/10_units/03_base/15_explicit_loop.t A; poe/lib/POE.pm M

    Instrument some code in POE's import, especially the code for
    explicit loop loading and its failure. 

  2006-09-04 20:08:31 (r2094) by lotr; poe/lib/POE/Session.pm M

    Edited the docs for new() to reflect the deprecation status 

  2006-09-03 14:43:44 (r2093) by bingosnet; extras/smoker.perl M

    Switched smoker.perl to LWP::UserAgent. This way it'll work on
    MSWin32 too.

  2006-09-03 06:23:35 (r2092) by rcaputo
  poe/tests/30_loops/00_base/wheel_run.pm M

    POE::Loop::Gtk doesn't perform I/O callbacks in exactly the same
    order as the other event loop bridges. Compensate by increasing the
    expected fetch count here. I'm not sure how we'll be able to
    guarantee I/O callback order, so it isn't at this time. 

  2006-09-02 14:25:09 (r2091) by bingosnet; extras/smoker.perl M

    Updated smoker.perl. Made decent defaults for cmd line arguments and
    added POD. 

  2006-09-02 05:59:20 (r2090) by rcaputo
  poe/tests/30_loops/00_base/wheel_readline.pm M

    Can't test Wheel::ReadLine without Term::ReadKey. Sorry... that's
    just the way it goes. 

  2006-09-02 05:53:27 (r2089) by rcaputo; poe/lib/POE/Loop/IO_Poll.pm M

    IO::Poll I/O callbacks were in a slightly different order than
    select() ones, at least on Cygwin. How did I know? Because one of
    Benjamin Smith's tests behaved differently (failed, that is) on
    Cygwin. Anyway, the ordering has been fixed, and the test should pass
    now. 

  2006-09-01 19:02:24 (r2088) by rcaputo
  poe/lib/POE/Wheel/SocketFactory.pm M

    Resolve rt.cpan.org ticket 20990. XS modules define stub functions
    that throw errors when the underlying C constant is not available.
    Merely checking for defined(\&CONSTANT) is not good enough because it
    will always be true. One must eval { my $x = &CONSTANT } to see
    whether using the constant is legal. That's what the new code does
    here. Thanks to Eric Rybski for pointing out the problem. 

  2006-09-01 10:24:43 (r2087) by bsmith
  poe/lib/POE/Resource/Extrefs.pm M; poe/lib/POE/Resource/Signals.pm M;
  poe/lib/POE/Resource/Aliases.pm M; poe/lib/POE/Resource/SIDs.pm M;
  poe/lib/POE/Resource/Controls.pm M; poe/lib/POE/Resources.pm M;
  poe/lib/POE/Resource/Events.pm M; poe/lib/POE/Resource/Sessions.pm M;
  poe/lib/POE/Resource/Statistics.pm M;
  poe/lib/POE/Resource/FileHandles.pm M

    (#19971) Added docs for POE::Resources. Adjusted package statements,
    and docs of POE::Resource::* to match the that name. 

  2006-09-01 04:47:05 (r2086) by rcaputo
  poe/tests/30_loops/00_base/wheel_readline.pm M

    Skip Wheel::ReadLine tests in ActivePerl. ActivePerl can't multiplex
    terminal/console filehandles. 

  2006-09-01 04:04:14 (r2085) by rcaputo; poe/lib/POE/Wheel/Run.pm M

    Explain that read error 0 happens when the child closes one of its
    standard output handles. Also explain that "$!" eq "" when $! == 0 in
    Perl. Resolves rt.cpan.org ticket 19054. 

  2006-09-01 03:31:22 (r2084) by rcaputo
  poe/lib/POE/Loop/Event.pm M; poe/lib/POE/Resource/Events.pm M;
  poe/lib/POE/Loop/TkCommon.pm M

    Fix a Tk busy loop, reported by Michael Hartmann in rt.cpan.org
    ticket 20978. If POE's only using timers, POE::Loop::TkCommon's main
    loop was spinning at 100% cpu. Now it's not, although it meant
    significant changes through some of the event loops. Gtk remains
    untested, too. 

  2006-09-01 02:48:35 (r2083) by rcaputo
  poe/tests/30_loops/00_base/wheel_run.pm M

    Increase the child process timeout. It timed out accidentially when
    my machine was overloaded. 

  2006-09-01 01:09:10 (r2082) by rcaputo; poe/lib/POE/Wheel/ReadLine.pm M

    POE::Wheel::ReadLine isn't supported on Windows. ActivePerl can only
    multiplex sockets. 

  2006-08-31 15:53:27 (r2081) by rcaputo
  poe/tests/30_loops/00_base/k_signals_rerun.pm M

    It really seems that Event doesn't catch SIGCHLD, or at least not
    while restarting the event loop. These tests are skipped for now,
    when there's a combination of Event and MSWin32. 

  2006-08-31 07:18:17 (r2080) by rcaputo
  poe/tests/90_regression/broeren-win32-nbio.t M

    Clear the SIGCHLD handler when we're done, otherwise the test never
    exits. 

  2006-08-31 04:52:58 (r2079) by rcaputo
  poe/tests/30_loops/00_base/k_signals_rerun.pm M

    Skip the signals rerun test when using a combination of Event.pm and
    MSWin32. Apparently Event can't catch SIGCHLD in Windows. A better
    solution would be to poll for SIGCHLD in this case, but it's a tricky
    exception to make. 

  2006-08-31 01:12:47 (r2078) by rcaputo
  poe/lib/POE/Wheel/Run.pm M; poe/tests/30_loops/00_base/wheel_run.pm M

    Disallow users calling put() on a POE::Wheel::Run instance that has
    already had its STDIN handle closed. 

  2006-08-28 19:09:00 (r2077) by rcaputo
  poe/tests/30_loops/00_base/wheel_run.pm M

    Switch from exit() to CORE::exit() for testing under Tk. Have the
    test child program exit one of two ways: "got eof" if it truly has
    exited its while(<STDIN>) loop for EOF reasons, or "got alarm" if the
    child process timed out. Also increased the timeout for slow or
    bogged down machines. Unfortunately the @shutdown_expected test times
    out rather than receives "got eof", so now the test is broken. And
    furthermore, it tries to put() after calling shutdown_stdin() which
    seems wrong. Anyway, this test is still broken. 

  2006-08-28 04:47:23 (r2076) by rcaputo; poe/lib/POE/Session.pm M

    _default no longer needs to worry about its return value if it's
    handling a signal. Either it calls sig_handled() or it doesn't. 

  2006-08-26 16:16:27 (r2075) by bsmith
  poe/tests/30_loops/00_base/wheel_run.pm M

    Skip tests that fail on win32.

  2006-08-24 13:47:37 (r2074) by bingosnet
  poe/tests/30_loops/00_base/wheel_readline.pm M

    Made wheel_readline tests skip all on MSWin32 when standard input is
    not a terminal.

  2006-08-23 07:25:27 (r2073) by rcaputo
  poe/tests/30_loops/00_base/k_signals_rerun.pm M

    Tests were failing under Tk because Tk traps exit() and throws a
    strange error when it's called. Changed Wheel::Run to an arrayref
    form of Program, which spawns an extra process but allows the process
    to call its own darned exit(). 

  2006-08-23 06:23:51 (r2072) by rcaputo
  poe/tests/30_loops/00_base/wheel_run.pm M

    Program => "string" may be double forking when run on some platforms,
    in some shells, or both. I'm not sure exactly. Replace it with
    Program => [ "stuff", "here" ] to avoid executing the command line
    through a shell. Thanks to Charles Ayres for reporting this and
    letting me use his machine for testing. 

  2006-08-22 06:16:35 (r2071) by rcaputo
  poe/tests/30_loops/00_base/wheel_readwrite.pm M

    Disable a large chunk of tests under Tk because seek() fails. Tk
    doesn't support seek() in its Tk::IO handles. 

  2006-08-21 14:41:12 (r2070) by bsmith
  poe/tests/30_loops/00_base/wheel_run.pm M

    Reworked the test for POE::Wheel::Run->shutdown_stdin to work
    portably. 

  2006-08-21 13:07:25 (r2069) by bsmith
  poe/tests/30_loops/00_base/ses_session.pm M

    My extensions to the POE::Session tests accidentally reverted the
    signal changes. This patch puts back the extra sig() calls. 

  2006-08-21 13:01:25 (r2068) by bsmith
  poe/tests/30_loops/00_base/wheel_readwrite.pm M

    Skip some POE::Wheel::ReadWrite tests on windows.

  2006-08-21 12:39:09 (r2067) by bsmith; poe/MANIFEST M

    Updating the MANIFEST for the newly added test files.

  2006-08-21 12:35:09 (r2066) by bsmith
  poe/tests/30_loops/00_base/wheel_run.pm M

    Rewrite of the POE::Wheel::Run tests.

  2006-08-21 12:15:28 (r2065) by bsmith
  poe/tests/30_loops/00_base/ses_session.pm M

    Extend POE::Session tests to cover option().

  2006-08-21 11:56:56 (r2064) by bsmith
  poe/tests/30_loops/00_base/ses_nfa.pm M

    Further POE::NFA tests (options, postbacks, callbacks, etc)

  2006-08-21 11:20:35 (r2063) by bsmith
  poe/tests/30_loops/00_base/comp_tcp.pm M

    Test the POE::Component::Client::TCP constructor, and specifying the
    filter explictly.

  2006-08-21 10:19:30 (r2062) by bsmith
  poe/tests/30_loops/00_base/wheel_readwrite.pm A

    A set of tests that just examine POE::Wheel::ReadWrite (it was
    already well tested but only in conjunction with other modules).

  2006-08-21 09:52:36 (r2061) by bsmith
  poe/tests/10_units/03_base/14_kernel_internal.t A;
  poe/tests/10_units/03_base/14_kernel.t M

    Extended the tests of POE::Kernel's public and private interfaces.

  2006-08-21 09:43:46 (r2060) by bsmith
  poe/lib/POE/Component/Client/TCP.pm M

    Fixed a typo in an error message and gave the $foo variable the name
    $using_watermarks.

  2006-08-21 06:28:01 (r2059) by rcaputo
  poe/tests/20_resources/00_base/extrefs_gc.pm A; poe/lib/POE/Kernel.pm
  M; poe/MANIFEST M; poe/tests/30_loops/00_base/k_signals_rerun.pm M

    Add a test case (and fix) for a session garbage collection timing
    issue discoverd by Yuval Kogman. Incrementing and then decrementing
    an extra reference count could prematurely trigger a session's
    destruction. Now checks are in place to make sure it can't. 

  2006-08-21 06:25:50 (r2058) by rcaputo
  poe/tests/90_regression/rt14444-arg1.t M;
  poe/tests/10_units/07_exceptions/03_not_handled.t M;
  poe/tests/10_units/07_exceptions/02_turn_off.t M;
  poe/tests/30_loops/00_base/sbk_signal_init.pm M;
  poe/tests/90_regression/steinert-recursive-signal.t M

    Tabs to spaces. Bleah. 

  2006-08-20 21:06:21 (r2057) by lotr; docs/poesignals.pod A

    beginnings of what should end up as comprehensive signal
    documentation

  2006-08-20 06:42:30 (r2056) by rcaputo; poe/lib/POE/Loop/Event.pm M

    Replace POE::Loop::Event's direct use of Event's main loop with a
    very small custom one. Also remove use of $Event::DIED. The
    combination of these changes allows Yuval Kogman's new test program
    to pass and minimizes the amount of extraneous noise generated by
    Event's own exception handling. 

  2006-08-20 06:36:57 (r2055) by rcaputo
  poe/MANIFEST M; poe/tests/30_loops/00_base/k_signals_rerun.pm A

    Add Yuval Kogman's test case for edge conditions in rethrowing die()
    and restarting POE::Kernel's run() loop. 

  2006-08-20 06:35:45 (r2054) by rcaputo; poe/lib/POE/Kernel.pm M

    Save unhandled exceptions so they'll be rethrown from a safe place.
    _dispatch_event() is too deep in the call stack to successfully
    rethrow a die(). 

  2006-08-20 06:34:51 (r2053) by rcaputo
  poe/lib/POE/Resource/Events.pm M

    After dispatching a timeslice, check whether an unhandled exception
    occurred. If so, clean up the kernel and rethrow the exception from a
    safe place. 

  2006-08-20 06:33:46 (r2052) by rcaputo
  poe/tests/90_regression/rt19908-merlyn-stop.t M

    Improve the test by counting _stop invocations and making sure that
    POE::Kernel->run() exits due to the exception in _stop. Removed some
    DOSish carriage returns. 

  2006-08-19 22:30:34 (r2051) by rcaputo
  poe/lib/POE/Resource/Signals.pm M; poe/lib/POE/Kernel.pm M

    Re-instate exception handling from _stop, since we need it or
    otherwise POE::Kernel is left in a corrupt state.
    
    Also make signals (except IDLE and ZOMBIE) properly keep sessions
    alive. Previously they only did it sort of half-heartedly, and there
    were cases where sessions could go away despite handling signals.
    
    The IDLE and ZOMBIE signals don't keep sessions alive. Otherwise
    merely watching for them would ensure that they never occurred. 

  2006-08-19 22:28:10 (r2050) by rcaputo
  poe/lib/POE/Resource/Aliases.pm M

    Fix a method name. One was named _data_ses_... instead of
    _data_alias_.... 

  2006-08-19 22:26:34 (r2049) by rcaputo; poe/lib/POE/Wheel/Run.pm M

    Remove tabs. Curse indentation! 

  2006-08-19 22:23:54 (r2048) by rcaputo
  poe/lib/POE/Resource/Sessions.pm M

    Don't allow _data_ses_stop() to stop a session currently being
    stopped. This is needed for proper exception handling in _stop
    handlers, otherwise infinite recursion happens. That's bad. 

  2006-08-19 22:19:44 (r2047) by rcaputo
  poe/tests/30_loops/00_base/wheel_run.pm M;
  poe/tests/30_loops/00_base/k_signals.pm M;
  poe/tests/90_regression/steinert-signal-integrity.t M;
  poe/tests/30_loops/00_base/ses_session.pm M;
  poe/tests/90_regression/suzman_windows.t M;
  poe/tests/10_units/07_exceptions/01_normal.t M

    Shut down signals in the tests that watch for them. Six tests would
    otehrwise hang with proper sig() keep-alive semantics. 

  2006-08-17 16:50:42 (r2046) by rcaputo; poe/lib/POE/Kernel.pm M

    Yuval Kogman discovered two problems in exception throwing for die()
    during _stop: Exceptions as overloaded objects would sometimes fail
    to be detected because they stringify to "". Exceptions during _stop
    would be handled by eval{} and never rethrown. 

  2006-08-16 20:58:46 (r2045) by bsmith; poe/mylib/coverage.perl M

    Change how cover, prove and make are search for to work better on
    windows (especially where make is called dmake).

  2006-08-16 20:36:04 (r2044) by bsmith
  poe/tests/90_regression/rt19908-merlyn-stop.t M

    Set $SIG{ALRM} back to IGNORE after the kernel exits so that on slow
    systems with Devel::Cover the test doesn't fail when the alarm fires
    later.

  2006-08-14 15:09:07 (r2043) by rcaputo; poe/lib/POE/Wheel/ReadLine.pm M

    Don't rely on STDIN and STDOUT being file descriptors 0 and 1,
    respectively. 

Back to POE CHANGES.