This version was released on 2004-01-27.

  2004-01-27 20:15:21 by rcaputo; MANIFEST.SKIP 1.7

    Add more development artifacts. 

  2004-01-27 20:09:27 by rcaputo
  Build.PL 1.2; mylib/Makefile-5005.pm 1.34

    The last commit DID modify META.yml. The new MakeMaker generates a
    Makefile clause that creates META.yml during "make dist". That
    clobbers the more complete Build.PL version we've been using. This
    commit patches lib/Build.PL to find POE.pm in its current location.
    It also patches Makfile-5005.pm so that "make dist" does not generate
    a META.yml. Finally it commits a working META.yml.
    
    In the future, META.yml should come out of cvs, and "make dist"
    should generate a proper one. 

  2004-01-27 19:18:16 by rcaputo; lib/POE.pm 1.167

    Bump POE.pm up to 0.28. META.yml doesn't change, but cvs still
    includes it here. Silly cvs. 

  2004-01-26 00:20:06 by sungo; lib/POE/Filter/HTTPD.pm 1.35

    add docs to warn about possible brokenness with libwww 

  2004-01-25 06:39:53 by sungo; t/30_filter_httpd.t 1.6

    add tests for large multipart form data posts 

  2004-01-25 06:19:26 by sungo; lib/POE/Filter/HTTPD.pm 1.34

    remove spurious warn 

  2004-01-25 06:14:34 by sungo; lib/POE/Filter/HTTPD.pm 1.33

    add a better error condition in the case of a POST request in a 0.9
    transaction. 

  2004-01-25 05:50:44 by sungo; t/30_filter_httpd.t 1.5

    rip out the hack workaround. specify the protocol using the
    http::request method 

  2004-01-25 02:51:07 by sungo; MANIFEST 1.95

    test 

  2004-01-25 02:49:14 by sungo; t/30_filter_httpd.t 1.4

    remove skip block around no longer skipped tests. remove a warning 

  2004-01-25 01:54:58 by rcaputo; lib/POE/Wheel/ReadWrite.pm 1.67

    Apocalypse found a bug in the documentation for put(). This is such a
    major thing, I'm shocked nobody reported it sooner. 

  2004-01-23 06:08:32 by sungo; t/30_filter_httpd.t 1.3

    turn on the simple post tests after working around the
    HTTP::Request::Common bug that was causing them to fail 

  2004-01-23 05:39:14 by sungo; t/30_filter_httpd.t 1.2

    add HEAD tests. add PUT and POST tests which are currently skipped
    due to known bugs 

  2004-01-23 05:32:40 by sungo; MANIFEST 1.94

    add the new test to the manifest 

  2004-01-23 05:06:34 by sungo; NEEDS 1.8

    keep NEEDS parser from looking into the bundled AUtoInstall.pm for
    strange non-needed needs 

  2004-01-22 06:02:11 by sungo; mylib/Makefile-5004.pm 1.16;
  mylib/Makefile-5005.pm 1.33; t/30_filter_httpd.t 1.1

    (!!) Add core prerequisite of Test::More. Add the beginnings of tests
    of Filter::HTTPD 

  2004-01-22 04:21:07 by sungo; lib/POE/Filter/HTTPD.pm 1.32

    add error messages to every build_error call 

  2004-01-21 23:01:08 by rcaputo
  lib/POE/Filter/Block.pm 1.14; t/15_filter_block.t 1.8

    Optimize the semantics of Filter::Block's custom length codecs---no
    more data copying, at least. Document the encoder/decoder
    subroutines. 

  2004-01-21 19:53:01 by rcaputo
  lib/POE/Filter/Block.pm 1.13; t/15_filter_block.t 1.7

    Implement Alexander Zangerl's suggestion that Filter::Block have
    pluggable prepended length codecs. He's writing a C program to
    interface with a POE server, and he doesn't like the C string
    terminator (NUL, chr(0)) in the records. This closes rt.cpan.org
    ticket 3812. 

  2004-01-21 17:27:01 by rcaputo; MANIFEST 1.93; lib/POE/Kernel.pm 1.277;
  lib/POE/Loop/Event.pm 1.37; lib/POE/Loop/Gtk.pm 1.44;
  lib/POE/Loop/Poll.pm 1.30; lib/POE/Loop/Select.pm 1.56;
  lib/POE/Loop/TkCommon.pm 1.6; lib/POE/Resource/Events.pm 1.10;
  lib/POE/Resource/Statistics.pm 1.1; lib/POE/Resources.pm 1.6

    Renamed POE::Resource::Performance to POE::Resource::Statistics. The
    new form follows the POE::Resource::{plural thingy here} naming
    convention, and it opens the door for gathering statistics that may
    have nothing to do with performance. TRACE_PERFORMANCE has also been
    renamed TRACE_STATISTICS. 

  2004-01-21 06:48:25 by rcaputo; lib/POE/Wheel/Run.pm 1.57

    Apply Gerald Richter's fix to his earlier patch. This corrects
    Winsize behavior when STDIN isn't a TTY. 

  2004-01-21 06:27:46 by sungo; lib/POE/Filter/HTTPD.pm 1.31

    style nit pick. replace some random hard \t indents with the majority
    2 space indents 

  2004-01-21 05:28:15 by rcaputo
  lib/POE/Resource/SIDs.pm 1.9; lib/POE/Resource/Signals.pm 1.10

    Minor style changes as a result of adding (then removing) a first
    stab at mark-and-sweep garbage collection for sessions. Turns out
    it's not needed just yet. 

  2004-01-19 22:11:52 by rcaputo; lib/POE.pm 1.166

    I accidentally rewrote the documentation for this module. 

  2004-01-19 21:41:40 by rcaputo; lib/POE/Wheel/ReadLine.pm 1.31

    Hardcode some keystroke character sequences for a few common
    terminals, including the various DEC VT sequences. This should fix
    the input editing and history for most people. 

  2004-01-16 16:58:37 by rcaputo
  lib/POE/Resource/Events.pm 1.9; t/res/filehandles.t 1.6

    Commit Nick Williams' patches to add documentation and fix some of
    the numbers. I also moved the "blocked" checking into
    POE/Resource/Events so we can also calculate the average blocked
    time. 

  2004-01-16 16:44:27 by rcaputo; lib/POE/Kernel.pm 1.276

    Document run_one_timeslice(). 

  2004-01-16 03:46:03 by rcaputo; MANIFEST 1.92; lib/POE/Kernel.pm 1.275;
  lib/POE/Loop/Event.pm 1.36; lib/POE/Loop/Gtk.pm 1.43;
  lib/POE/Loop/Poll.pm 1.29; lib/POE/Loop/Select.pm 1.55;
  lib/POE/Loop/TkCommon.pm 1.5; lib/POE/Resources.pm 1.5;
  t/res/aliases.t 1.7; t/res/events.t 1.4; t/res/extrefs.t 1.8;
  t/res/filehandles.t 1.5

    Apply Nick Williams' POE::Resource::Performance class and the
    TRACE_PERFORMANCE hooks to enable runtime wallclock statistics. This
    may be extended to include CPU time inside POE::Kernel, within POE
    sessions, etc. It's still raw and experimental code; it does not
    fairly compare performance between different event loops yet. The
    various statistics have not been adequately defined, so we cannot
    verify their accuracy. The profiling code itself contributes to POE's
    overhead and may skew results against POE. Your mileage may vary.
    Small parts may present a choking hazard. Use only as directed. 

  2004-01-15 22:34:04 by rcaputo; lib/POE/Loop/Poll.pm 1.28

    Second attempt to define POLLRDBAND if it wasn't already. 

  2004-01-15 22:18:44 by rcaputo
  lib/POE/Component/Server/TCP.pm 1.44; lib/POE/Kernel.pm 1.274

    Meaningless style tweaks. 

  2004-01-15 22:17:46 by rcaputo; lib/POE/Loop/Poll.pm 1.27

    Define POLLRDBAND if it's not available. This occurs on MacOSX quite
    frequently. 

  2004-01-09 23:11:17 by rcaputo; lib/POE/Kernel.pm 1.273

    Apply Graham Barr's patch to REALLY disable SIGCHLD polling when
    running as an Apache handler. 

  2004-01-05 22:37:36 by rcaputo
  lib/POE/NFA.pm 1.28; lib/POE/Session.pm 1.97

    Wrap postbacks in unblessed, anonymous subs under Tk. Tk blesses its
    callbacks, which conflicts with our blessed postbacks. This works
    around the problem. 

  2004-01-05 22:36:46 by rcaputo; t/08_errors.t 1.51

    Quiet some spurious warnings generated by testing the errors that
    occur when loading mulitple event loops. 

  2004-01-04 06:14:06 by rcaputo; lib/POE/Wheel/ReadLine.pm 1.30

    Matt Cashner pointed out that ^D on an empty line should throw an
    exception. This commit adds the "eot" exception to do just that. 

  2003-12-20 19:40:02 by rcaputo; lib/POE/Kernel.pm 1.272

    While discussing libevent, I realized that a POE::XS::Loop::Libevent
    would not have a trigger module. There would be no IO::Poll-like
    module that causes POE::Kernel to autoload it. So this patch tweaks
    the loop autoloader to honor explicitly loaded event loops and not
    try to load the default select loop. 

  2003-12-18 15:37:00 by rcaputo; lib/POE/Session.pm 1.96

    Applied Alex Avriette's documentation patch. This mentions the return
    values from new() and create(). 

  2003-12-18 04:29:05 by rcaputo; lib/POE/Wheel/Run.pm 1.56

    Applied Gerald Richter's patch to allow setting the child process'
    window size if it's run in a pty. 

  2003-12-16 04:58:46 by rcaputo; lib/POE/Kernel.pm 1.271

    Improve error detection in the POE::XS::Loop loader. Add autoloading
    for POE::XS::Loop::Select. 

  2003-12-16 04:56:49 by rcaputo; lib/POE/Loop/Select.pm 1.54

    Reorder the timeout calculation to reduce latency in select(). 

  2003-12-16 04:55:42 by rcaputo; lib/POE/Resources.pm 1.4

    Support auto-loading POE::XS::Resource::Foo if it's available. Fall
    back to POE::Resource::Foo if the XS version isn't available or
    cannot load. 

  2003-12-13 05:37:29 by rcaputo; lib/POE/Kernel.pm 1.270;
  lib/POE/Resource/Sessions.pm 1.14; t/06_tk.t 1.45

    Event loops. Look for POE::XS::Loop::$something before
    POE::Loop::$something. It should be possible to include arbitrary
    event loops now (Gtk2, for example). Likewise, now people can start
    writing XS versions of event loops. 

  2003-12-12 04:05:06 by rcaputo; lib/POE/Kernel.pm 1.269;
  lib/POE/Loop/Event.pm 1.35; lib/POE/Loop/Gtk.pm 1.42;
  lib/POE/Loop/Poll.pm 1.26; lib/POE/Loop/Select.pm 1.53;
  lib/POE/Loop/Tk.pm 1.43; lib/POE/Loop/TkActiveState.pm 1.7;
  lib/POE/Loop/TkCommon.pm 1.4

    Remove the hardcoding for POE::Loop classes. Now POE::Kernel will
    walk %INC and compare each module against the files in ./Loop (where
    "." is wherever POE::Kernel is, according to __FILE__). 

  2003-12-11 18:06:21 by rcaputo; mylib/cvs-log.perl 1.5

    Add a (commented out) option to go back farther in time. What's
    really needed here is some sort of command-line flag. 

  2003-12-04 23:15:19 by rcaputo; lib/POE/Session.pm 1.95

    Applied a POD typo correction from Alex. 

  2003-11-28 17:12:08 by rcaputo
  lib/POE/Kernel.pm 1.268; t/01_sessions.t 1.26

    Applied Scott Beck's patch to add a hard POE::Kernel stop. 

  2003-11-26 03:52:07 by rcaputo; lib/POE/Component/Client/TCP.pm 1.39;
  lib/POE/Component/Server/TCP.pm 1.43; lib/POE/Driver/SysRW.pm 1.26;
  lib/POE/Kernel.pm 1.267; lib/POE/Loop/Poll.pm 1.25;
  lib/POE/Loop/Select.pm 1.52; lib/POE/Pipe.pm 1.12;
  lib/POE/Queue/Array.pm 1.5; lib/POE/Session.pm 1.94;
  lib/POE/Wheel/ListenAccept.pm 1.28; lib/POE/Wheel/SocketFactory.pm 1.74

    Replace POSIX errno constants with ones from Errno. The Errno module
    has better errno support than POSIX in "special" environments like
    ActivePerl. This commit addresses rt.cpan.org ticket #4476. 

  2003-11-22 17:45:10 by sungo; lib/POE/Loop/Gtk.pm 1.41

    change init_check to simply not initialize gtk a second+ time. not
    sure why init() is passing the second time but init_check() doesnt
    but whatever. 

  2003-11-22 16:13:07 by rcaputo
  lib/POE/NFA.pm 1.27; lib/POE/Resource/Sessions.pm 1.13

    Move the parent GC tests out of _data_ses_free and into
    _data_ses_stop. Currently the former is only called by the latter
    (and by POE::NFA, which seems to be erroneous anyway since no _parent
    and _child events happen there). 

  2003-11-22 15:32:06 by rcaputo; lib/POE/Loop/Gtk.pm 1.40

    Allow POE::Kernel->run() to be called multiple times in Gtk programs.
    Previously, Gtk->check_init() would return failure when called a
    second time, causing a couple of the tests to fail. This commit fixes
    rt.cpan.org ticket number 4459. 

  2003-11-22 05:05:10 by rcaputo; lib/POE/Resource/Extrefs.pm 1.9

    Deferring deletion of %kr_extra_refs items caused inconsistencies in
    the results from _data_extref_count(). I noticed it when
    Client::HTTP's tests stopped exiting on their own. Tracked it back to
    Client::DNS, reproduced it there, and used its test suite to verify
    the error back home in POE::Resource::Extrefs. Whee!
    
    Oh, right. This commit backs out that prior "optimization". 

  2003-11-22 04:55:27 by sungo; t/21_gtk.t 1.20

    remove spurious warn i stupidly left in 

  2003-11-22 04:54:31 by sungo; lib/POE/Loop/Gtk.pm 1.39; t/21_gtk.t 1.19

    add gtk initialization error checking. fix gtk test suite to skip the
    whole suite if gtk initialization fails. 

  2003-11-21 05:08:26 by rcaputo; lib/POE.pm 1.165;
  lib/POE/API/ResLoader.pm 1.3; lib/POE/Component.pm 1.6;
  lib/POE/Component/Client/TCP.pm 1.38;
  lib/POE/Component/Server/TCP.pm 1.42; lib/POE/Driver.pm 1.15;
  lib/POE/Driver/SysRW.pm 1.25; lib/POE/Filter.pm 1.13;
  lib/POE/Filter/Block.pm 1.12; lib/POE/Filter/Grep.pm 1.5;
  lib/POE/Filter/HTTPD.pm 1.30; lib/POE/Filter/Line.pm 1.24;
  lib/POE/Filter/Map.pm 1.5; lib/POE/Filter/RecordBlock.pm 1.4;
  lib/POE/Filter/Reference.pm 1.28; lib/POE/Filter/Stackable.pm 1.5;
  lib/POE/Filter/Stream.pm 1.12; lib/POE/Loop.pm 1.3;
  lib/POE/Loop/Event.pm 1.34; lib/POE/Loop/Gtk.pm 1.38;
  lib/POE/Loop/PerlSignals.pm 1.4; lib/POE/Loop/Poll.pm 1.24;
  lib/POE/Loop/Select.pm 1.51; lib/POE/Loop/Tk.pm 1.42;
  lib/POE/Loop/TkActiveState.pm 1.6; lib/POE/Loop/TkCommon.pm 1.3;
  lib/POE/Macro/UseBytes.pm 1.3; lib/POE/NFA.pm 1.26;
  lib/POE/Pipe.pm 1.11; lib/POE/Pipe/OneWay.pm 1.13;
  lib/POE/Pipe/TwoWay.pm 1.16; lib/POE/Preprocessor.pm 1.31;
  lib/POE/Queue.pm 1.3; lib/POE/Queue/Array.pm 1.4;
  lib/POE/Resource.pm 1.3; lib/POE/Resource/Aliases.pm 1.10;
  lib/POE/Resource/Events.pm 1.8; lib/POE/Resource/Extrefs.pm 1.8;
  lib/POE/Resource/FileHandles.pm 1.9; lib/POE/Resource/SIDs.pm 1.8;
  lib/POE/Resource/Sessions.pm 1.12; lib/POE/Resource/Signals.pm 1.9;
  lib/POE/Resources.pm 1.3; lib/POE/Session.pm 1.93;
  lib/POE/Wheel.pm 1.18; lib/POE/Wheel/Curses.pm 1.11;
  lib/POE/Wheel/FollowTail.pm 1.48; lib/POE/Wheel/ListenAccept.pm 1.27;
  lib/POE/Wheel/ReadLine.pm 1.29; lib/POE/Wheel/ReadWrite.pm 1.66;
  lib/POE/Wheel/Run.pm 1.55; lib/POE/Wheel/SocketFactory.pm 1.73

    Ok. So I'm braindead from staring into SOAP modules all day. I
    figured I'd do this one no-brainer just to say I accomplished
    something today. I replaced all the $VERSION strings with Dilithium
    Crystals. Let's see who notices. Bonus: No more retrograde releases,
    at least not after one last CPAN cataclysm. 

  2003-11-21 05:01:27 by rcaputo; lib/POE/Kernel.pm 1.266

    Exploratory commit of the new $VERSION code. 

  2003-11-20 19:21:57 by rcaputo
  lib/POE/Kernel.pm 1.265; lib/POE/Resource/Sessions.pm 1.11

    Reimplement _stop, mostly by moving the side effects out of
    _dispatch_event and into _data_ses_stop. This further shrinks
    _dispatch_event (some of POE's hottest code) and factors out more of
    the recursion and side effects that made it so difficult to work
    with. 

  2003-11-20 17:13:41 by rcaputo; lib/POE/Kernel.pm 1.264

    Nick Williams at Morgan Stanley reported that the new "Please mail
    the following information to...." message shows up even when _trap()
    is caught from within eval{}. This commit closes his rt.cpan.org
    ticket, number 4436. 

  2003-11-19 21:28:54 by rcaputo
  lib/POE/Wheel/ReadWrite.pm 1.65; lib/POE/Wheel/Run.pm 1.54

    Add shutdown_stdin() to POE::Wheel::Run. Refactor some code in
    POE::Wheel::ReadWrite. I have no idea why teh other files are being
    pulled into this commit; they have no changes listed in "cvs diff". 

  2003-11-13 18:28:47 by rcaputo; lib/POE/Resource/Aliases.pm 1.9;
  lib/POE/Resource/Events.pm 1.7; lib/POE/Resource/Extrefs.pm 1.7;
  lib/POE/Resource/FileHandles.pm 1.8; t/res/extrefs.t 1.7

    Move some delete() calls to the finalize stage of resource cleanup.
    Many of the session-keyed structures can linger until the session is
    destroyed. This saves tests in hotter code, which should show up as a
    minor performance boost. Hopefully no leaks are created here. 

  2003-11-13 17:08:00 by rcaputo
  MANIFEST 1.91; lib/POE/Kernel.pm 1.263; t/regress/neyuki-detach.t 1.1

    Neyuki discovered that detach_myself() was not working from _start,
    nor was it working at all. This commit fixes the latter problem, but
    detach_myself() from _start is not completely fixed. Turned the test
    case into a regression test, and started t/regress for these things. 

  2003-11-13 03:11:49 by rcaputo; lib/POE/Resource/Sessions.pm 1.10

    Add explanations to some of the _trap() calls, and comment on why we
    don't do garbage collection at what might otherwise be considered a
    good place for it. 

  2003-11-10 23:20:55 by rcaputo
  lib/POE/NFA.pm 1.25; lib/POE/Session.pm 1.92; t/01_sessions.t 1.25

    Applied Dan McCormicks's callback() patch. 

  2003-11-06 20:37:16 by rcaputo; lib/POE/Component/Server/TCP.pm 1.41

    Applied a patch from Eric (l2kashe) that lets you specify different
    input and output filters for client sessions at the outset. To be
    sure, you may still set different filters on $heap->{client}
    directly, but this avoids the extra step.
    
    Applied Damir Dzeko's patch to support UNIX sockets, but this is
    neither a documented nor permanent patch. A better solution will
    probably be to abstract most of Server::TCP into a base class and
    derive Server::TCP and Server::UNIX from it. 

  2003-11-06 20:34:07 by rcaputo; lib/POE/Component/Client/TCP.pm 1.37

    Re-establish aliases on reconnect. Nick Williams discovered that
    disconnect would clear aliases but reconnect wouldn't restore them. 

  2003-11-04 04:48:33 by rcaputo
  lib/POE/Kernel.pm 1.262; lib/POE/Session.pm 1.91

    Document TRACE_DESTROY, and modify it to use POE::Kernel::_warn() so
    it can be redirected somewhere other than STDERR. 

  2003-11-04 04:43:20 by rcaputo; lib/POE/Session.pm 1.90

    Make TRACE_DESTROY more useful. 

  2003-11-04 02:18:42 by rcaputo; lib/POE/Wheel/SocketFactory.pm 1.72

    "rmah" and "czth" reported that Solaris and some BSD variants define
    a SOMAXCONN that is much smaller than what they can really handle.
    Using SOMAXCONN as a hint and clipping the listen queue to it will
    hinder application scalability in some cases. I seem to recall it
    being put there because setting the listen queue too high breaks some
    systems. So it's commented out for now; we'll see who notices. 

  2003-11-02 05:10:29 by rcaputo
  lib/POE.pm 1.164; lib/POE/NFA.pm 1.24; lib/POE/Session.pm 1.89

    Propagate the POE::Kernel TRACE and ASSERT constants into any other
    package that is interested in them. This passes environment variables
    down into other packages. 

  2003-11-02 04:51:48 by rcaputo
  lib/POE/Kernel.pm 1.261; lib/POE/Session.pm 1.88

    Generalize POE's environment variable handling so you can specify
    arbitrary POE_foo. These override the constants previously defined.
    It's now possible to define asserts and traces not currently
    supported by POE::Kernel. More importantly, it means you can set
    POE_ASSERT_STATES for POE::Session (and possibly new things yet
    undetermined). Thanks to Nick Williams pointed out that
    POE_ASSERT_STATES wasn't supported. 

  2003-10-29 23:50:58 by rcaputo; lib/POE/Component/Client/TCP.pm 1.36;
  lib/POE/Component/Server/TCP.pm 1.40

    Various Disconnect callbacks weren't actually called when a remote
    end disconnected while the local end had output for it. This was a
    side effect of {Client,Server}::TCP's helpful flush-before-disconect
    code. Unfortunately, the components didn't account for the fact that
    the remote end might not be there. "Apocalypse" discovered this
    condition during load testing and was nice enough to track it down.
    Thanks!
    
    The other two files have whitespace changes. Darn CVS for wanting to
    commit them, but what can y'do? 

  2003-10-29 21:36:06 by rcaputo; lib/POE.pm 1.163

    Increase version to 0.2701, to indicate we're in between-release CVS
    mode. 

  2003-10-20 05:13:52 by rcaputo; lib/POE/Wheel/Run.pm 1.53

    Add another no-END/no-DESTROY method for terminating a child process. 

  2003-10-20 05:13:21 by rcaputo; lib/POE/Resource/Events.pm 1.6

    Note a logic error in the cleanup code. The error isn't damaging, but
    it does incur more overhead than necessary during session
    destruction. 

  2003-10-16 15:54:06 by rcaputo; lib/POE/Wheel/Run.pm 1.52

    Bline pointed out that kill(0) sent SIGTERM. Added a defined() to
    support kill(0), and documented the default. 

  2003-10-08 15:27:00 by rcaputo; lib/POE/Loop/Gtk.pm 1.37

    There are no Gnome equivalents for Gtk->main() and Gtk->main_quit(),
    so remove them. 

Back to POE CHANGES.