This version was released on 2004-11-25.

  2004-11-25 19:44:12 by rcaputo; lib/POE.pm 1.181

    Bump the version to 0.30 for release. 

  2004-11-25 19:37:23 by rcaputo; lib/POE/Filter/Reference.pm 1.32

    POE::Filter::Reference wasn't loading Compress::Zlib due to require()
    semantics changes somewhere between 5.6.1 and 5.7.4. Thanks to
    acid06@gmail.com (whoever that is) for reporting the problem and
    providing a suggested fix. 

  2004-11-25 16:56:22 by rcaputo; mylib/Makefile-5005.pm 1.50

    Combine the core requirements for ExtUtils::AutoInstall and MakeMaker
    into one hash so they can be changed together at once. 

  2004-11-25 16:47:48 by rcaputo; mylib/Makefile-5005.pm 1.49

    Downgrade requirements because ActiveState's repository is behind the
    times. 

  2004-11-25 16:12:54 by rcaputo; mylib/ExtUtils/AutoInstall.pm 1.7

    Upgrade to 0.61. 

  2004-11-25 07:04:24 by rcaputo
  MANIFEST 1.110; mylib/Makefile-5004.pm 1.30

    Remove the old dependency checker. It was reporting all kinds of
    bogus things and needed to be put down. 

  2004-11-25 06:59:12 by rcaputo
  tests/10_units/01_preprocessor/02_macro_usebytes.t 1.6

    Put back some code that was removed in an overzealous change. 

  2004-11-24 23:20:46 by rcaputo
  tests/10_units/01_preprocessor/02_macro_usebytes.t 1.5

    Add an Id tag. 

  2004-11-24 22:25:25 by rcaputo
  tests/30_loops/00_base/ses_session.pm 1.7

    Skip the event loop restarting test if we're using Tk and a
    non-threaded version of Perl 5.8 or later. Tk dumps core per
    rt.cpan.org ticket 8588, and we can't be failing OUR tests because of
    that. 

  2004-11-24 22:23:07 by rcaputo
  tests/10_units/01_preprocessor/02_macro_usebytes.t 1.4

    The two-arg binmode() call wasn't needed. It was a vestige of
    displaying Phi on the console, and that went away a long time ago. 

  2004-11-24 21:17:40 by rcaputo; mylib/gen-tests.perl 1.7

    Disable the XS tests, seeing as we don't have any XS to test yet. I
    don't need to answer a bunch of questions about them at this time. 

  2004-11-24 16:41:59 by rcaputo; mylib/gen-tests.perl 1.6

    Cosmetic change to wrap a line at 80 columns. 

  2004-11-24 03:48:32 by rcaputo
  tests/30_loops/00_base/ses_session.pm 1.6

    Garbage collection behaves differently under 5.005_04. 

  2004-11-24 03:46:28 by rcaputo; tests/10_units/03_base/01_poe.t 1.6

    Remove a vestige of debugging the issue where STDERR wouldn't come
    back after being temporarily redirected. 

  2004-11-24 02:28:05 by rcaputo
  mylib/Makefile-5004.pm 1.29; mylib/Makefile-5005.pm 1.48

    Upgrade dependencies to versions that are known to pass tests. 

  2004-11-24 02:26:18 by rcaputo
  tests/30_loops/00_base/ses_session.pm 1.5

    The more versions of Perl we test on, the more new and interesting
    (and virtually impossible to track down) garbage collection issues
    arise. Klortho, take me now! 

  2004-11-24 02:23:57 by rcaputo
  tests/20_resources/00_base/extrefs.pm 1.2

    CROM COUNT THE TESTS! Uh... add a test count to the Test::More
    import. 

  2004-11-24 02:21:02 by rcaputo; tests/10_units/05_filters/03_http.t 1.4

    Data::Dumper doesn't build on---to put it nicely---"legacy" versions
    of Perl. Thank goodness this test didn't use it. 

  2004-11-24 02:18:56 by rcaputo; tests/10_units/03_base/01_poe.t 1.5;
  tests/10_units/04_drivers/01_sysrw.t 1.4

    Fix temporary STDERR redirection around tests for error and/or
    warning conditions. Previously STDERR would go away and never come
    back. Bad STDERR. 

  2004-11-24 02:17:03 by rcaputo
  tests/10_units/01_preprocessor/02_macro_usebytes.t 1.3

    Two-argument binmode() isn't supported in very very extremely old
    versions of Perl. A warning results when someone tries to use it.
    This change adds a note that the warning can be disabled by upgrading
    Perl. 

  2004-11-24 02:12:51 by rcaputo; mylib/gen-tests.perl 1.5

    File::Spec::Functions isn't available in Perl 5.004_05. Downgrade to
    plain File::Spec. 

  2004-11-24 02:10:40 by rcaputo; lib/POE/Queue/Array.pm 1.8

    Use Carp explicitly rather than assume it's loaded by another module.
    The stand-alone queue tests were failing because Carp wasn't loaded
    anywhere else. 

  2004-11-24 02:09:19 by rcaputo; lib/POE/Loop/IO_Poll.pm 1.32

    IO::Poll went retrograde on CPAN. Back the required version down to
    0.01, despite there being problems in older, pre-0.05 versions. 

  2004-11-24 02:07:50 by rcaputo; lib/POE/Driver/SysRW.pm 1.30

    Perl 5.005_04 was not properly setting $! on important sysread()
    errors. While debugging, I discovered a simple no-op that causes $!
    to be set properly. This commit adds the work-around, and now the
    SysRW driver tests pass. 

  2004-11-24 02:04:37 by rcaputo; Makefile.PL 1.33

    5.005_04 exists, so the Makefile.PL deprecation warning has changed
    to target versions before that. 

  2004-11-22 19:28:35 by rcaputo
  tests/30_loops/00_base/ses_session.pm 1.4

    Work around an intermittent failure in Tk when starting its main loop
    twice in one program. 

  2004-11-22 18:05:19 by rcaputo; MANIFEST 1.109;
  mylib/Makefile-5004.pm 1.28; mylib/Makefile-5005.pm 1.47;
  mylib/gen-tests.perl 1.4; test.pl 1.2

    SourceForge has moved t to tests. This commit should point everything
    to the tests' new location. 

  2004-11-22 18:04:14 by rcaputo
  tests/30_loops/00_base/all_errors.pm 1.2

    Fix the skip message so Test::Harness can report the reason. 

  2004-11-22 00:24:06 by rcaputo; test.pl 1.1

    Hurk burk! Why didn't I include this in the last commit? 

  2004-11-22 00:22:13 by rcaputo; MANIFEST 1.108;
  mylib/Makefile-5004.pm 1.27; mylib/Makefile-5005.pm 1.46

    After expanding and refactoring POE's test suite, the command line to
    run all the tests has become too long for some shells. Sungo
    suggested moving the Test::Harness invocation into test.pl, which
    seems to work swimmingly, as this commit shall attest. 

  2004-11-22 00:13:53 by rcaputo;
  tests/30_loops/00_base/k_signals.pm 1.3;
  tests/30_loops/00_base/ses_session.pm 1.3;
  tests/30_loops/00_base/wheel_run.pm 1.2;
  tests/30_loops/00_base/wheel_sf_ipv6.pm 1.2;
  tests/30_loops/00_base/wheel_sf_unix.pm 1.2

    So, recent versions of Tk trap exit() when it's called from BEGIN{}
    or eval{}. It croaks rather than exiting, which makes it a little
    harder for tests to bail out under Tk.
    
    This commit uses CORE::exit() to bypass Tk's trap. It also prints the
    skip messages manually since Test::More and POE's own TestSetup both
    exit on their own when skipping entire test files. 

  2004-11-22 00:10:21 by rcaputo; mylib/gen-tests.perl 1.3

    Fixed the DISPLAY checking code so that test templates expand
    correctly on Windows. 

  2004-11-22 00:08:07 by rcaputo; lib/POE/Resource/FileHandles.pm 1.18;
  tests/10_units/04_drivers/01_sysrw.t 1.3

    In these enlightened times of ActivePerl 5.8.4, $handle->blocking()
    seems not to do anything useful. This commit undoes the blocking()
    calls that were introduced when ActivePerl 5.8.0 broke the original
    ioctl() calls and actually seemed to honor blocking(). ActivePerl,
    she is such a fickle mistress. 

  2004-11-17 05:28:13 by rcaputo
  mylib/Makefile-5004.pm 1.26; mylib/Makefile-5005.pm 1.45

    Use fileglobs to shorten the list of test files passed to MakeMaker.
    Unfortunately, this does not fix the problem that the Test::Harness
    command line is too long for CMD.EXE (and possibly other limited
    shells). 

  2004-11-16 21:13:09 by rcaputo; Makefile.PL 1.32

    Resolve rt.cpan.org ticket 6319 by asking people to "make
    reportupload" at the end of Makefile.PL. It may be better to ask at
    the end of "make test" but I'm not in the mood to hack Makefile
    through Makefile.PL right now. 

  2004-11-16 19:21:02 by rcaputo; lib/POE/Component/Server/TCP.pm 1.49

    Applied the patch in rt.cpan.org ticket 7787. This adds a Started
    callback (originally suggested as ServerStarted) to the component, so
    you get a callback right away when the server is started.
    
    The original patch wasn't documented, so I documented it. The bulk of
    this commit involves tidying up the documentation while I was
    rummaging through it. 

  2004-11-16 08:25:54 by teknikill
  tests/20_resources/00_base/caller_state.pm 1.1

    add CALLER_STATE test 

  2004-11-16 07:58:58 by teknikill
  tests/20_resources/00_base/events.pm 1.2

    CALLER_STATE modifications 

  2004-11-16 07:54:12 by teknikill; lib/POE/Loop/Event.pm 1.41;
  lib/POE/Loop/PerlSignals.pm 1.8; lib/POE/NFA.pm 1.30;
  lib/POE/Resource/Events.pm 1.13; lib/POE/Resource/FileHandles.pm 1.17;
  lib/POE/Resource/Statistics.pm 1.3; lib/POE/Session.pm 1.104

    CALLER_STATE added 

  2004-11-16 07:50:15 by teknikill; lib/POE/Kernel.pm 1.308

    CALLER_STATE and get_active_event added 

  2004-11-16 07:13:04 by rcaputo; lib/POE/API/ResLoader.pm 1.4;
  lib/POE/Driver/SysRW.pm 1.29; lib/POE/Filter.pm 1.14;
  lib/POE/Filter/Block.pm 1.15; lib/POE/Filter/Grep.pm 1.6;
  lib/POE/Filter/HTTPD.pm 1.36; lib/POE/Filter/Reference.pm 1.31;
  lib/POE/Kernel.pm 1.307; lib/POE/Loop.pm 1.5;
  lib/POE/Loop/Event.pm 1.40; lib/POE/Loop/Gtk.pm 1.45;
  lib/POE/Loop/TkCommon.pm 1.10; lib/POE/NFA.pm 1.29;
  lib/POE/Preprocessor.pm 1.34; lib/POE/Queue/Array.pm 1.7;
  lib/POE/Resource/Aliases.pm 1.11; lib/POE/Resource/FileHandles.pm 1.16;
  lib/POE/Resource/Statistics.pm 1.2; lib/POE/Session.pm 1.103;
  lib/POE/Wheel/FollowTail.pm 1.51; lib/POE/Wheel/ReadLine.pm 1.35;
  lib/POE/Wheel/ReadWrite.pm 1.69; lib/POE/Wheel/Run.pm 1.60

    Applied LARRYSH's massive spellchecking patch. This resolves
    rt.cpan.org ticket 8451. 

  2004-11-15 23:28:01 by rcaputo; lib/POE/Session.pm 1.102

    Fixed a typo in the POD, resolving rt.cpan.org ticket 8358 by Joost
    Vunderink. He also has the greatest .sig in his bug report. You
    should go look at it. 

  2004-11-15 23:23:36 by rcaputo; lib/POE/Filter/Stackable.pm 1.6

    This commit resolves rt.cpan.org ticket 8281: Attached patch brings
    Filter::Stackable into the get_one Filter API era.
    
    There are no known issues with the new feature, but it remains
    untested as of this time. Martijn van Beers contributed the patch and
    is aware of his responsibility to fix anything it breaks. 

  2004-11-15 02:57:53 by rcaputo; lib/POE/Filter/Reference.pm 1.30

    Get rid of redefined subroutine warnings when POE::Filter::Reference
    releads a partially loaded package. This uses the old school $^W
    thing so Legacy Perl won't choke on "no warnings". 

  2004-11-12 14:51:53 by rcaputo
  tests/10_units/05_filters/07_reference.t 1.4

    Scott Beck pointed out that the qq{} wasn't future proof. The eval
    could silently fail if @_ ever became populated. I've switched to q{}
    and thrown in C<die if $@> to make sure it never happens... or is
    found if it does. 

  2004-11-11 17:43:26 by rcaputo
  lib/POE/Kernel.pm 1.306; lib/POE/Loop/PerlSignals.pm 1.7

    Allow users to register $kernel->sig("WINCH"). POE does not register
    all %SIG entries by default anymore, so it's up to the developer to
    determine whether SIGWINCH is safe in her environment. We no longer
    need to block $SIG{WINCH}. 

  2004-11-11 17:21:09 by rcaputo
  tests/10_units/05_filters/07_reference.t 1.3

    Philip Gwyn said my changes to his test invalidated it. That isn't
    surprising since I wasn't completely sure what was being tested. We
    went over the details in IRC for a bit, and came up with a small
    change to make it ideologically correct. This commit applies his
    patch to fix my breakage of his earlier patch. 

  2004-11-10 02:35:12 by rcaputo; lib/POE/Filter/Reference.pm 1.29;
  tests/10_units/05_filters/07_reference.t 1.2

    Rhesa Rozendaal reported a problem where XML::Simple uses a
    serializer but not completely, resulting in the module being loaded
    but not all methods being present. The situation fooled
    POE::Filter::Reference.
    
    Philip Gwyn submitted this test and change to reload the serializer
    in this case, pulling all its methods into existence. KTHXAPPLIED! 

  2004-11-09 23:36:23 by rcaputo; lib/POE/Component/Server/TCP.pm 1.48

    Removed the CAVEATS section, as the one caveat was ill thought out.
    You can do a lot of things with POE::Component::Server::TCP,
    including challenge/response protocols. 

  2004-11-08 20:48:13 by rcaputo; lib/POE/Resource/FileHandles.pm 1.15

    Ok. This time for sure. Jonathan verified it before I committed it. 

  2004-11-08 17:07:13 by rcaputo; lib/POE/Resource/FileHandles.pm 1.14

    We don't have tests that trigger the error I just "fixed", so the
    "fix" had a bug in it. This fix should fix the "fix" in my last
    commit. Unless it doesn't, in which case there'll be yet another. 

  2004-11-08 16:37:24 by rcaputo; lib/POE/Resource/FileHandles.pm 1.13

    Jonathan Steinert pointed out that the "can't select a handle 2+
    times" error was vague. This commit should fix that up good, a-yep. 

  2004-10-30 21:30:01 by rcaputo; lib/POE/Driver/SysRW.pm 1.28

    Clear $! if syswrite() returns successfully.
    
    POE wheels check $! to detect driver errors. Some tied filehandle
    classes (this time Devel::SerialPort) don't clear $! on success.
    POE::Wheel::ReadWrite would see this as an error condition, and bad
    things would happen. Clearing $! on success makes wheel operations
    more robust. 

  2004-10-16 17:22:00 by rcaputo; lib/POE/Kernel.pm 1.305

    Ever since the experimental stop() was added, and run() was
    resumable, it annoyed me that combining them with POE::Wheel::Run---
    to run POE kernels in child processes--- would not recalculate the
    child kernels' IDs. As you may know, kernel IDs are meant to be
    globally unique. They're a hash of the machine address, process ID,
    and creation time. So it seems to make sense that spawned off POE
    processes should have IDs different from their parents.
    
    This change forces a kernel ID recalculation whenever stop() is
    called. 

  2004-10-14 04:24:20 by hachi; lib/POE/Wheel/SocketFactory.pm 1.78

    In an endeavor to use SocketFactory without the POE::Kernel,
    discovered that IO::Handle needs to be loaded to work properly. This
    glitch never showed up before because Kernel.pm has use IO::Handle in
    it for us. Added for completeness. 

  2004-10-13 17:48:28 by rcaputo; lib/POE/Wheel/ReadLine.pm 1.34

    After a lengthy study into the reasons for Term::ReadKey failing, it
    was discovered that Perl 5.8.0 is to blame, most likely under
    particular versions of the Linux kernel, or gcc, or a combination of
    kernel AND gcc. Versions of Perl other than 5.8.0 work under the same
    combinations of kernel and gcc, however. This commit documents the
    research results, provides a test case to determine if "your" system
    suffers from the problem, and recommends alternatives. 

  2004-10-13 16:54:26 by rcaputo; MANIFEST 1.107

    This sample program is covered in the "Evolution of a POE Server"
    tutorial at http://poe.perl.org/?Tutorials 

  2004-10-13 16:47:48 by rcaputo; MANIFEST 1.106

    Removed the tk.perl sample program. It is superseded by the Cookbook
    "Tk Interfaces" recipe. See http://poe.perl.org/?POE_Cookbook . 

  2004-10-12 20:13:51 by lotr; lib/POE.pm 1.180; lib/POE/Kernel.pm 1.304;
  tests/10_units/03_base/01_poe.t 1.4;
  tests/10_units/03_base/14_kernel.t 1.1

    Remove the POE::Loop modules from the modules that need to be loaded
    seperately, as they're being passed to POE::Kernel. Also die when
    attempting to load more than one Loop. And add some tests to make
    sure it works like we want to. 

  2004-10-12 16:49:48 by rcaputo
  lib/POE.pm 1.179; lib/POE/Kernel.pm 1.303

    Applying a patch by Martijn van Beers. This change adds syntax for
    loading POE::Loop classes explicitly from POE::Kernel's import(). It
    also adds code to POE.pm's import() that transfers Loop classes to
    the new syntax. The upshot is that you can load classes explicitly
    rather than let POE::Kernel figure things out. This is especially
    important for event loops that identify as two or more event loops
    (such as Glib and Gtk2). 

  2004-10-12 05:18:51 by rcaputo;
  tests/10_units/01_preprocessor/02_macro_usebytes.t 1.2;
  tests/10_units/02_pipes/01_base.t 1.2;
  tests/10_units/02_pipes/02_oneway.t 1.2;
  tests/10_units/02_pipes/03_twoway.t 1.2;
  tests/10_units/03_base/01_poe.t 1.3;
  tests/10_units/03_base/02_api_resloader.t 1.2;
  tests/10_units/03_base/03_component.t 1.2;
  tests/10_units/03_base/04_driver.t 1.2;
  tests/10_units/03_base/05_filter.t 1.2;
  tests/10_units/03_base/06_loop.t 1.2;
  tests/10_units/03_base/07_queue.t 1.2;
  tests/10_units/03_base/08_resource.t 1.2;
  tests/10_units/03_base/09_resources.t 1.2;
  tests/10_units/03_base/10_wheel.t 1.2;
  tests/10_units/04_drivers/01_sysrw.t 1.2;
  tests/10_units/05_filters/02_grep.t 1.2;
  tests/10_units/05_filters/03_http.t 1.3;
  tests/10_units/05_filters/05_map.t 1.2;
  tests/10_units/05_filters/06_recordblock.t 1.2;
  tests/20_resources/00_base/statistics.pm 1.2

    Remove "use warnings" throughout the tests. It's amazing what flushes
    out when you run the tests under a really really old version of Perl. 

  2004-10-12 05:06:31 by rcaputo; mylib/gen-tests.perl 1.2

    Three-arg open is not supported in perl 5.005. This massages it back
    to two-arg open. 

  2004-10-11 20:10:23 by rcaputo
  lib/POE/Kernel.pm 1.302; lib/POE/Resource/FileHandles.pm 1.12

    Move some RUNNING_IN_HELL code to an appropriate file. Namely, the
    dummy F_[GS]ETFL constants. They fit better in
    POE::Resource::FileHandles. 

  2004-10-07 22:04:46 by rcaputo; tests/10_units/03_base/01_poe.t 1.2

    God kills a kitten every time someone doesn't use POE. This change
    ensures that POE is being used, so no kittens will die on our watch.
    We love kittens, and don't wish any harm upon them. 

  2004-10-05 15:50:39 by rcaputo; mylib/Makefile-5005.pm 1.44

    Removed the '-tests' parameters for each of the optional modules. The
    tests are all in different places now, some of them don't exist, and
    others exist multiple times... but only after they're generated from
    templates. 

  2004-10-05 15:31:59 by rcaputo; lib/POE/Driver/SysRW.pm 1.27

    Fixed some awkward indenting. This change is meaningless. 

  2004-10-05 15:30:42 by rcaputo; Makefile.PL 1.31

    Swapped a couple words is a prompt, possibly making it easier to
    read. 

  2004-09-27 05:19:38 by rcaputo; lib/POE/Kernel.pm 1.301

    Fluffle said the documentation didn't explain how sessions are reaped
    after terminal signals are delivered. Hey, that's true! Well, now
    they do. Take THAT! 

  2004-09-23 21:49:44 by rcaputo; mylib/ExtUtils/AutoInstall.pm 1.6

    17:35 <autrijus> dngor: hey. you may wish to start shipping POE with
    EU::AI 0.60 soonish. CPANPLUS 0.050 and later had a problem with
    EU::AI 0.5x; while I'm trying to solve it at the cpanplus end, it may
    not be always as smooth as it can be.
    
    Ok. This commit upgrades ExtUtils::AutoInstall to 0.60. 

  2004-09-17 07:11:04 by rcaputo
  MANIFEST 1.105; lib/POE/Kernel.pm 1.300; lib/POE/Loop/IO_Poll.pm 1.31

    In retrospect, it was rather dumb to rename Poll.pm to IO-Poll.pm.
    While the hyphen makes a great filesystem character, it's not very
    good for package names. Perl tends to think you're subtracting
    barewords, and things just don't work out right. This commit renames
    IO-Poll.pm to IO_Poll.pm. I hope this fixes it for good. 

  2004-09-16 01:38:17 by rcaputo
  tests/90_regression/ton-stop-corruption.t 1.2

    Turn on ASSERT_DEFAULT, like we're supposed to in tests. 

  2004-09-16 00:26:13 by rcaputo; MANIFEST 1.104;
  lib/POE/Kernel.pm 1.299; lib/POE/Resource/FileHandles.pm 1.11;
  tests/90_regression/ton-stop-corruption.t 1.1

    Ton Hospel discovered that stop() from some event handlers causes the
    session that called it to be reaped twice. The second reap triggers
    an inconsistency error when ASSERT_DEFAULT is enabled. This patch
    adds a check to see whether a session is dead by the time its handler
    returns (and bypasses a lot of moot garbage collection in the rare
    cases that it is). It adds a performance penalty across the board.
    There's probably a better way, but this is more immediate. This patch
    also includes Ton's test case as a proper regression test. 

  2004-09-14 00:16:12 by rcaputo
  lib/POE/Loop/TkCommon.pm 1.9; lib/POE/Queue/Array.pm 1.6

    Ton Hospel made a couple interesting observations about POE's event
    loop. First, the code could be tightened up. Perl assignments are
    relatively expensive, and restructuring the code to avoid them means
    a few percent increase in performance. His example appears as a
    comment in POE::Queue::Array, marked with his name.
    
    His second observation is that the Tk loop is about twice as slow as
    it should be. Our workaround for high-priority Tk timers is rather
    stupid. Ton works around it by maintaining separate "immediate" and
    timer queues, and not using Tk to drive the immediate events. I've
    commented on his idea in POE::Loop::TkCommon. 

  2004-09-08 05:59:59 by rcaputo; lib/POE/Kernel.pm 1.298;
  lib/POE/Loop/PerlSignals.pm 1.6; lib/POE/Loop/TkCommon.pm 1.8;
  lib/POE/Resource/Signals.pm 1.12; lib/POE/Session.pm 1.101;
  tests/20_resources/00_base/signals.pm 1.2;
  tests/30_loops/00_base/k_signals.pm 1.2;
  tests/30_loops/00_base/ses_session.pm 1.2

    This commit moves signal deprecations forward. It incorporates a
    number of changes:
    
    POE has stopped dispatching _signal publicly. It's still used
    internally, but programs will not receive it. Attempting to register
    a _signal event handler will still result in a fatal error, however.
    This has the nice benefit of pushing problems on users rather than
    allowing them to fester quietly as bizarre runtime behavior. I'm all
    for that since it's less support problems.
    
    The return values of signal handlers are not significant anymore, and
    you will not receive errors based on them. Using sig_handled() is
    mandatory if you want to handle signals.
    
    POE does not always register handlers for most of %SIG anymore.
    Instead, it registers the handlers as needed when you call
    $kernel->sig(). This means that Ctrl+Z (^Z) WILL suspend any program
    that has not set a TSTP handler.
    
    Signal dispatch is vastly simplified. It should be significantly
    faster, although most programs won't notice a difference. Signal
    dispatch is not that common.
    
    Tests for deprecated behaviors have been removed.
    
    Old emacs-style indenting has been changed to more conventional
    indenting here and there.
    
    The ses_session.pm test sometimes dumps core under Tk. It's not
    consistent, and I'm not sure why. 

  2004-09-05 00:32:34 by rcaputo; mylib/coverage.perl 1.14

    Stop excluding tests themselves. The reports don't cover all of the
    POE modules when they are excluded. 

  2004-09-04 23:14:51 by rcaputo; tests/10_units/05_filters/03_http.t 1.2

    This test contained a hardcoded path to t/19_filterchange.t, which I
    just SO totally broke. I replaced it with $0 which seems to work
    pretty well. 

  2004-09-04 23:06:14 by rcaputo; mylib/gen-tests.perl 1.1

    This utility derives tests based on templates and different
    environments. 

  2004-09-04 22:50:40 by rcaputo;
  tests/10_units/01_preprocessor/01_preprocessor.t 1.1;
  tests/10_units/01_preprocessor/02_macro_usebytes.t 1.1;
  tests/10_units/02_pipes/01_base.t 1.1;
  tests/10_units/02_pipes/02_oneway.t 1.1;
  tests/10_units/02_pipes/03_twoway.t 1.1;
  tests/10_units/03_base/01_poe.t 1.1;
  tests/10_units/03_base/02_api_resloader.t 1.1;
  tests/10_units/03_base/03_component.t 1.1;
  tests/10_units/03_base/04_driver.t 1.1;
  tests/10_units/03_base/05_filter.t 1.1;
  tests/10_units/03_base/06_loop.t 1.1;
  tests/10_units/03_base/07_queue.t 1.1;
  tests/10_units/03_base/08_resource.t 1.1;
  tests/10_units/03_base/09_resources.t 1.1;
  tests/10_units/03_base/10_wheel.t 1.1;
  tests/10_units/03_base/11_assert_usage.t 1.1;
  tests/10_units/03_base/12_assert_retval.t 1.1;
  tests/10_units/03_base/13_assert_data.t 1.1;
  tests/10_units/04_drivers/01_sysrw.t 1.1;
  tests/10_units/05_filters/01_block.t 1.1;
  tests/10_units/05_filters/02_grep.t 1.1;
  tests/10_units/05_filters/03_http.t 1.1;
  tests/10_units/05_filters/04_line.t 1.1;
  tests/10_units/05_filters/05_map.t 1.1;
  tests/10_units/05_filters/06_recordblock.t 1.1;
  tests/10_units/05_filters/07_reference.t 1.1;
  tests/10_units/05_filters/08_stream.t 1.1;
  tests/10_units/05_filters/50_stackable.t 1.1;
  tests/10_units/05_filters/99_filterchange.t 1.1;
  tests/10_units/06_queues/01_array.t 1.1;
  tests/20_resources/00_base/aliases.pm 1.1;
  tests/20_resources/00_base/controls.pm 1.1;
  tests/20_resources/00_base/events.pm 1.1;
  tests/20_resources/00_base/extrefs.pm 1.1;
  tests/20_resources/00_base/filehandles.pm 1.1;
  tests/20_resources/00_base/sessions.pm 1.1;
  tests/20_resources/00_base/sids.pm 1.1;
  tests/20_resources/00_base/signals.pm 1.1;
  tests/20_resources/00_base/statistics.pm 1.1;
  tests/30_loops/00_base/all_errors.pm 1.1;
  tests/30_loops/00_base/comp_tcp.pm 1.1;
  tests/30_loops/00_base/k_alarms.pm 1.1;
  tests/30_loops/00_base/k_aliases.pm 1.1;
  tests/30_loops/00_base/k_detach.pm 1.1;
  tests/30_loops/00_base/k_selects.pm 1.1;
  tests/30_loops/00_base/k_signals.pm 1.1;
  tests/30_loops/00_base/ses_nfa.pm 1.1;
  tests/30_loops/00_base/ses_session.pm 1.1;
  tests/30_loops/00_base/wheel_accept.pm 1.1;
  tests/30_loops/00_base/wheel_run.pm 1.1;
  tests/30_loops/00_base/wheel_sf_ipv6.pm 1.1;
  tests/30_loops/00_base/wheel_sf_tcp.pm 1.1;
  tests/30_loops/00_base/wheel_sf_udp.pm 1.1;
  tests/30_loops/00_base/wheel_sf_unix.pm 1.1;
  tests/30_loops/00_base/wheel_tail.pm 1.1;
  tests/90_regression/neyuki_detach.t 1.1;
  tests/90_regression/suzman_windows.t 1.1

    These are the wonderful tests we're adding to replace the stinky old
    ones. Some of these are the stinky old ones in new clothes, but just
    for a little while until we can make less stinky ones from them. 

  2004-09-04 22:34:03 by rcaputo
  Makefile.PL 1.30; mylib/Makefile-5005.pm 1.43

    Migrate the prompt bypassing code out of the 5.5+ Makefile generator
    and into the base Makefile.PL. This is the code that skips
    interaction if STDIN isn't a terminal, or if --default is specified. 

  2004-09-04 22:19:10 by rcaputo; MANIFEST 1.103; Makefile.PL 1.29;
  mylib/Makefile-5004.pm 1.25; mylib/Makefile-5005.pm 1.42

    Commit the new tests, the new utilities to support them, and
    necessary changes to the install and distribution scripts. 

  2004-09-04 22:07:06 by rcaputo; MANIFEST 1.102

    Remove the existing tests to make room for the new ones. 

  2004-09-04 21:49:41 by rcaputo; mylib/coverage.perl 1.13

    Ignore modules within the test directory. Also allow coverage of
    individual files on the command line. Great for one-off coverage
    reports to see where a test program is deficient. 

  2004-09-02 00:51:56 by sungo; Makefile.PL 1.28;
  mylib/Makefile-5004.pm 1.24; mylib/Makefile-5005.pm 1.41

    add ability to opt out of network tests 

  2004-09-02 00:22:43 by rcaputo; MANIFEST 1.101; lib/POE/Kernel.pm 1.297

    Renamed POE::Loop::Poll to POE::Loop::IO-Poll, to normalize the way
    event loops are loaded. No exceptions for modules that begin with
    IO:: now. 

  2004-09-01 17:41:08 by rcaputo; lib/POE/Kernel.pm 1.296

    Tweaked the POE::Loop loader to load things like Event::Lib as
    POE::Loop::Event-Lib instead of POE::Loop::Lib. It still strips a
    leading IO:: off the path for legacy (POE::Loop::Poll) support. At
    some point we should probably have SourceForge move Poll.pm to
    IO-Poll.pm and remove the IO stripping code. 

  2004-09-01 16:35:08 by rcaputo; lib/POE/Wheel/ReadLine.pm 1.33

    Nick Williams fixed a bug where pressing Return (^M) from within a
    history search would insert the ^M character into the input line
    before returning it. 

  2004-09-01 11:47:47 by rcaputo; lib/POE/Wheel/ReadLine.pm 1.32

    Nick Williams made extensive revisions to this wheel, adding most
    (all?) of the gnu readline features. Command history search, custom
    key bindings, .inputrc parsing, tab completion, vi and emacs modes,
    it's all there! 

  2004-08-03 20:08:36 by rcaputo; lib/POE/Loop/Event.pm 1.39

    Ton Hospel discovered that POE::Loop::Event does not exit when an
    event handler calls C<die>. The problem turned out to be Event.pm's
    default exception handler, which turns the C<die> into a harmless
    C<warn> and resumes the event loop. Well, POE's all inconsistent
    inside and nothing will happen, so the program stalls hard. Even
    Ctrl+C and Ctrl+\ don't terminate it. This commit replaces the
    default excetion handler, turning it into a harmless C<warn> followed
    by an equally harmless (yet eminently terminal) C<exit>. I originally
    tried to use C<die> inside the exception handler, even setting
    $SIG{__DIE__} = "DEFAULT", but it only sufficed to change the
    original warning into some twisted, recursive form of it. And of
    course the program didn't actually die. Now at least it exits. 

  2004-08-02 21:02:55 by rcaputo; lib/POE/Wheel/Run.pm 1.59

    Mark Lawrence discovered that POE::Wheel::Run's shutdown_stdin()
    method was broken. Probably because it was never actually tested.
    This commit adds tests for shutdown_stdin() under different
    POE::Wheel::Run conduits. It also hopefully fixes the originally
    reported bug. The test itself will need testing on different
    platforms since some systems don't support all of them. Most notably:
    Windows and Solaris. 

  2004-08-01 23:44:21 by rcaputo; lib/POE/Component/Server/TCP.pm 1.47

    An anoymous tipster pointed out that Acceptor is not valid when using
    the ClientInput mode. Unfortunately the documentation implied that
    they were ok together. Now the docs lead you slightly less astray. 

  2004-07-20 16:51:48 by rcaputo; lib/POE/Kernel.pm 1.295;
  mylib/Makefile-5004.pm 1.23; mylib/Makefile-5005.pm 1.40

    Replaced the previous commit with File::Spec. This makes the event
    loop loader ueber-portable to anything that runs Perl and has a
    filesystem. Had to add File::Spec as a dependency in the Makefile
    libraries, and did some reformatting while I was there. 

  2004-07-20 15:44:02 by rcaputo; lib/POE/Kernel.pm 1.294

    Improve Windows (and non-UNIXy) operating system compatibility. Using
    modules with strange path separators would cause a startup error. The
    pattern for strange path separators has been expanded to cover most
    of them. Thanks to woggle for bringing the problem to my attention. 

  2004-07-16 14:44:56 by rcaputo; lib/POE/Resource/Extrefs.pm 1.10

    Plug at least three memory leaks that only occur when ASSERT_DATA is
    true. 

  2004-07-16 02:37:43 by rcaputo; lib/POE/Resource/Signals.pm 1.11

    Note a potential error condition in the source, and pose the question
    of how to properly handle it. 

  2004-07-16 01:12:28 by rcaputo; lib/POE/Resource/Controls.pm 1.3

    Replaced some silent returns with full-on croaks when a bad number of
    parameters is passed to one of POE::Resource::Controls' methods.
    
    Added a return 1; to _data_magic_finalize, since all the finalize
    functions return true on success. 

  2004-07-16 01:10:16 by rcaputo; lib/POE/Resource/Sessions.pm 1.18

    Moved more assertions before their corresponding traces. This
    continues to push the errors out to the user, rather than causing
    strange side errors within POE::Kernel. 

  2004-07-16 01:09:08 by rcaputo; lib/POE/Resource/Events.pm 1.12

    Clarify what "blocked" events are in some comments. The code confused
    me while I was working on some tests for it, so I thought "more
    comments!" 

  2004-07-15 21:20:45 by rcaputo; lib/POE/Resource/Sessions.pm 1.17

    Moved parameter test assertions before their corresponding traces.
    This way the assertions can bail out before the traces cause more
    errors deeper within POE (where the messages have less meaning). 

  2004-07-15 20:00:45 by rcaputo; lib/POE/Resource/Sessions.pm 1.16

    Add messages to the _trap() calls for various forms of internal
    inconsistency. Perhaps a lot of them can be removed once the test
    coverage gets close to its maxima. 

  2004-07-15 14:03:29 by rcaputo; lib/POE/Resource/Events.pm 1.11

    Comment some code to increment event reference counts. It's only used
    in one place, so it's not a separate method like the decrement code. 

  2004-07-15 14:01:39 by rcaputo; lib/POE/Component/Client/TCP.pm 1.42;
  lib/POE/Component/Server/TCP.pm 1.46

    Docs: Clarify the role of the Args constructor parameters in both
    Client:: and Server::TCP. 

  2004-07-15 13:58:10 by rcaputo; lib/POE/Kernel.pm 1.293

    The description of aliases was horrible. Now it's rewritten. 

  2004-07-13 03:46:50 by rcaputo; lib/POE/Wheel.pm 1.19

    Changed the way wheel IDs are allocated, so the first one evar is 1
    (not 2). Added a private (also not documented) mutator to reset the
    internal wheel ID counter so the tests can verify that IDs will be
    reused properly after Perl's integer type rolls over (if evar). Oh,
    and I documented that the POE::Wheel functions are called as just
    that---functions, not class methods. This detail confused me while
    writing some tests, and that's never a good thing. 

  2004-07-13 03:43:48 by rcaputo; lib/POE/Loop/PerlSignals.pm 1.5

    The SIGCHLD signal handler was not actually used. Instead we've been
    polling for SIGCHLD for the longest time. So I removed the handler.
    It was either that or listen to Devel::Cover complain "Oh, you're not
    using this code!" every time. Bastard. :) 

  2004-07-11 06:30:53 by rcaputo; lib/POE/Loop/TkCommon.pm 1.7

    The Tk event loop wouldn't end with TRACE_DEFAULT on (as in the
    tests). It expected the exhausted event queue to have only one event
    in it (the SIGCHLD polling event). With TRACE_DEFAULT, however, there
    are two. The second is for runtime statistics gathering. This change
    accounts for the second event when gathering statistics. 

  2004-07-11 05:46:30 by rcaputo; lib/POE/Kernel.pm 1.292

    Note some TODOs in the source. One's an ugly bit of logging---a
    double message if a _trap isn't caught by eval. The other is a need
    to exercise some code should waitpid() return a strange value. That's
    an obscure assertion. It ensures that the operating system behaves
    according to expectations (something that doesn't always happen,
    especially when running on Strange New Systems). 

  2004-07-11 04:29:42 by rcaputo; lib/POE/Kernel.pm 1.291

    Replaced the use of some public API functions with the private API
    functions they translate to. This reduces a level of indirection
    inside POE::Kernel's extra reference count management (yay,
    efficiency) and allows parameter errors to be reported correctly
    (yay, correctness).
    
    Oh, and I corrected a couple typos in some comments. Whee! 

  2004-07-11 01:03:49 by rcaputo; lib/POE/Kernel.pm 1.290

    Correct a typo in an error message. Also tidied up some whitespace. 

  2004-07-10 18:43:38 by rcaputo; lib/POE/Kernel.pm 1.289

    _trap_death() was not dying with the correct message. Now it should
    be. 

  2004-07-05 22:39:07 by rcaputo
  MANIFEST 1.100; MANIFEST.SKIP 1.8; mylib/coverage.perl 1.12

    Switch from our homegrown Devel::Trace-based test coverage reporter
    to one using Devel::Cover. 

  2004-06-27 16:23:52 by rcaputo; lib/POE/Kernel.pm 1.288;
  lib/POE/Resource/Sessions.pm 1.15; lib/POE/Session.pm 1.100

    Include the _stop event handler's return value in the _child "lose"
    event.
    
    (!!!) Programs that rely on the child session receiving _stop after
    the parent receives a _child event will be negatively affected by
    this change. The order of these events has been reversed so _stop's
    return value can be passed to the parent session along with _child. 

  2004-06-22 19:05:02 by rcaputo; lib/POE/Kernel.pm 1.287

    Patched a doc nit noticed by Andrew A. Chen. Thanks, dude! 

  2004-06-13 16:49:37 by rcaputo; lib/POE/Preprocessor.pm 1.33

    PAR understands POE::Preprocessor very well. Document this. 

  2004-06-13 16:48:28 by rcaputo; lib/POE.pm 1.178

    Bump the version to indicate internal CVS development. 

Back to POE CHANGES.