This version was released on 2002-12-09.

  2002-12-09 18:14:46 by rcaputo; POE/Wheel/SocketFactory.pm 1.66

    Remove some Win32 warnings about constant prototypes. 

  2002-12-09 16:21:42 by rcaputo; POE.pm 1.153

    Bump version to 0.24. 

  2002-12-09 16:20:15 by rcaputo; README 1.102

    Pre-release tweaks. 

  2002-12-08 16:54:23 by rcaputo; MANIFEST 1.80

    Include MANIFEST.SKIP. 

  2002-12-05 20:37:20 by rcaputo; POE/Driver/SysRW.pm 1.23

    Applied Garrett Goebel's patch to support EWOULDBLOCK as a
    recoverable error on MSWin32. 

  2002-12-05 20:24:38 by rcaputo
  MANIFEST.SKIP 1.1; lib/Makefile-5005.pm 1.26

    Add Makefile targets for PPM-compatible tarballs. 

  2002-11-27 20:55:30 by rcaputo; POE/Component/Client/TCP.pm 1.26

    Fix the documentation for Started (was documeted as Start, which is
    wrong). Thanks to Rob Fugina for spotting this. 

  2002-11-27 17:52:28 by rcaputo; POE/Wheel/SocketFactory.pm 1.65

    Cygwin requires the exception flag be checked on sockets in order to
    detect connect() errors. As far as I know, no other system does.
    Disable the exception check on non-cygwin systems, as it interferes
    with Tk (which cannot check for exceptions as of version 800.023). 

  2002-11-27 08:06:26 by rcaputo; POE/Component/Client/TCP.pm 1.25

    Applied Pedro Melo Cunha's patch to add a Started callback and an
    Args list for passing values into the component without using
    closures. 

  2002-11-20 18:00:50 by rcaputo; POE/Wheel/SocketFactory.pm 1.64

    Added and documented pause_accept() and resume_accept() methods. 

  2002-11-20 17:57:41 by rcaputo; POE/Wheel/ReadWrite.pm 1.61

    Fixed a paste error in the documentation. 

  2002-11-19 19:23:00 by rcaputo; POE/Wheel/ReadLine.pm 1.26

    Carthag on efnet #poe pointed out that the last patch (also a
    response to his feedback) died outright if LE wasn't present. Also,
    there is no "ri" in termcap(5), so I'm faking it by printing part of
    the input string again. It works pretty well for being icky. :) 

  2002-11-19 18:44:05 by rcaputo; POE/Wheel/ReadLine.pm 1.25

    Support le and ri in addition to LE and RI. We'll need to support
    Term::Info (or the moral equivalent) also, because many operating
    systems don't deign to include termcap. Bleah. 

  2002-11-19 18:02:09 by rcaputo; POE/Kernel.pm 1.222

    Found and fixed the error in TRACE_DEFAULT: _dispatch_event() was
    trying to look up session aliases and other information before a
    session had started, so that stuff didn't exist. Instant crash. 

  2002-11-19 17:42:06 by rcaputo; POE/Kernel.pm 1.221

    Fixed explained return values when using TRACE_RETVALS. 

  2002-11-12 17:18:25 by rcaputo; POE/Wheel/SocketFactory.pm 1.63

    Apply Garrett Goebel's patch to make dynamic constants inline-able. 

  2002-11-08 17:11:54 by rcaputo
  POE/Kernel.pm 1.220; POE/Wheel/SocketFactory.pm 1.62

    Applied Garrett Goebel's SocketFactory patch to support non-blocking
    connect() on MSWin32. The patch also includes his notes on possible
    side effects and a better algorithms for avoiding them. This may fix
    several long-standing problems under Windows. 

  2002-11-08 16:20:11 by rcaputo; POE/Wheel/Run.pm 1.42

    Jos Boumans provided a testcase for Wheel::Run not sending
    CloseEvent. It turned out that we were setting socket readers based
    on the presence of StdoutEvent and StderrEvent, but we were
    incrementing the internal activitiy counter based on the presence of
    pipe handles. Two handles always exist (for pipes) regardless of the
    presence of events for them. The fix is to always register readers
    for child STDERR and STDOUT (lest one block!) but not emit events
    when they aren't wanted. We catch their closure, and things should
    work better now. 

  2002-11-07 20:04:14 by rcaputo; POE/Kernel.pm 1.219

    Fixed some of the Kernel traces that were confessing instead of
    warning. That caused POE to exit after the message, which was
    definitely not right. 

  2002-11-05 21:03:32 by rcaputo; POE/Wheel.pm 1.17

    Applied Garrett Goebel's doc fixes. 

  2002-11-03 14:40:17 by rcaputo; POE/Loop.pm 1.2

    Described the timer features needed in more detail, per Stef's
    feedback. 

  2002-11-01 16:43:26 by rcaputo; POE.pm 1.152

    Fixed a typo reported by Jeffz. 

  2002-11-01 14:59:16 by rcaputo
  POE/Component/Client/TCP.pm 1.24; POE/Component/Server/TCP.pm 1.30

    Add examples of Filter and ClientFilter parameters, thanks to a
    question on their nature by Abdul Fatah. 

  2002-10-27 22:57:53 by rcaputo; POE/Kernel.pm 1.218

    Addi mentioned using event counts to short-circuit queue sweeps. I
    forgot to do that in _data_ev_clear_session(). This patch adds it. 

  2002-10-26 11:59:39 by rcaputo; POE.pm 1.151; POE/Filter/Grep.pm 1.4;
  POE/Filter/Map.pm 1.4; POE/Filter/Reference.pm 1.27;
  POE/Filter/Stackable.pm 1.4; POE/Kernel.pm 1.217;
  POE/Loop/Select.pm 1.42; POE/Wheel/ReadLine.pm 1.24

    I discovered the podchecker utility, and ran it on POE's
    documentation. Ow! The errors are fixed, but not the warnings. 

  2002-10-26 06:21:28 by rcaputo; POE.pm 1.150

    Bump the version up to 0.2303. Feature freeze is over, la la la. 

  2002-10-25 17:04:16 by rcaputo; Makefile.PL 1.25

    Update the ithreads warning, and make the delay for it a little
    longer so people can digest it. 

  2002-10-25 16:13:36 by rcaputo; POE.pm 1.149

    Bump the version to 0.2302 for release. Feature freeze. Only commit
    bug fixes. 

  2002-10-25 15:53:46 by rcaputo; README 1.101

    Minor edits before 0.2302 is tarred up. 

  2002-10-25 15:04:38 by rcaputo; t/00_coverage.t 1.16

    Clean up an error message regarding Wheel::ReadLine and Term::Cap. 

  2002-10-25 06:56:09 by rcaputo; POE/Kernel.pm 1.216;
  POE/Loop/Event.pm 1.32; POE/Loop/Gtk.pm 1.31; POE/Loop/Poll.pm 1.19;
  POE/Loop/Select.pm 1.41; POE/Loop/Tk.pm 1.38

    [May Break Code] Clean up the ASSERT_ and TRACE_ messages, and
    standardize their categories. The _DEFAULT ones still work. :) 

  2002-10-25 06:52:29 by rcaputo; lib/cpan-test.perl 1.2

    Fixed a problem where the newest versions of a module were deleted
    rather than the oldest ones. Minor aesthetic changes, too. 

  2002-10-21 00:08:02 by rcaputo; POE/Wheel/Run.pm 1.41

    Only import what we need. 

  2002-10-20 20:55:22 by rcaputo; POE/Component/Client/TCP.pm 1.23;
  POE/Component/Server/TCP.pm 1.29; POE/Kernel.pm 1.215; POE/NFA.pm 1.18;
  POE/Session.pm 1.81; t/03_aliases.t 1.11; t/11_signals_poe.t 1.23;
  t/22_wheel_run.t 1.28; t/23_nfa.t 1.4

    Added a mandatory warning whenever a signal is handled by returning
    true from its event handler. POE versions since 0.20 have recommended
    using sig_handled() instead.

    Added a mandatory warning whenever a "_signal" event handler is
    registered. POE versions since 0.20 have recommended using sig() to
    register explicit handlers rather than using catch-all _signal event.

    Added a mandatory warning when calling sig_handled() in a "_signal"
    handler. This includes handling signals from "_default".

    Removed _signal handlers from components and tests, since they now
    cause warnings. For the tests which need to handle signals, we now
    call sig() to register those handlers.

    Removed _signal from the list of events which generate the "... but
    session foo has neither that state nor a _default state to handle it"
    warnings. Otherwise removing _signal handlers would trade one warning
    for another. 

  2002-10-20 20:35:51 by rcaputo; POE/Wheel/FollowTail.pm 1.39;
  POE/Wheel/ListenAccept.pm 1.26; POE/Wheel/ReadWrite.pm 1.60;
  POE/Wheel/SocketFactory.pm 1.61

    Removed support for /.*State/ parameters and upgraded their use from
    warnings to errors. This is a scheduled change, per
    http://poe.perl.org/?POE_RFCs/XyzState_to_XyzEvent 

  2002-10-18 20:43:22 by rcaputo; POE/Component/Client/TCP.pm 1.22

    Applied Casey Zacek's patch adding a ConnectTimeout to Client::TCP. 

  2002-10-14 23:04:45 by rcaputo; lib/cpan-test.perl 1.1

    This little ditty runs all the /^POE::/ modules on the CPAN against
    the local CVS version of POE. Useful for regression testing and
    uncovering problems in components. 

  2002-10-14 17:44:41 by rcaputo; POE/Kernel.pm 1.214

    Applied James March's patch to move the final leak checking out of
    END and into explicitly called finalize() functions. This prevents
    the checks from being triggered on crashes (which always leave some
    cruft behind). 

  2002-10-11 21:21:41 by rcaputo
  MANIFEST 1.79; POE/Queue.pm 1.1; POE/Queue/Array.pm 1.2

    Moved POE::Queue::Array documentation to POE::Queue and made it
    generic (only minor edits). Replaced POE::Queue::Array documentation
    with a pointer to POE::Queue's. 

  2002-10-09 14:36:27 by rcaputo; MANIFEST 1.78; POE/Kernel.pm 1.213;
  POE/Loop.pm 1.1; POE/Loop/Event.pm 1.31; POE/Loop/Gtk.pm 1.30;
  POE/Loop/Poll.pm 1.18; POE/Loop/Select.pm 1.40; POE/Loop/Tk.pm 1.37

    Classified the unclassified accessors as helpers, and tidied up their
    names to match their new category. Documented the abstract POE::Loop
    interface as POE/Loop.pm, and documented the specific loops with
    pointers back to it. 

  2002-10-07 20:40:24 by rcaputo; lib/cvs-log.perl 1.3

    While just admiring the cvs logs this generates, I noticed that I had
    badly formatted the dates. This swaps month and day in the log so
    that the dates make sense. 

  2002-10-04 16:30:30 by rcaputo; POE/Kernel.pm 1.212

    Renamed the VEC_* constants to MODE_* because they no longer are tied
    to select() bit vectors. Also renamed the FVC_* constants to FMO_*
    for the same reason. Tweaked the way _dispatch_event() is called as
    part of the voodoo of fixing Gtk and Event (see earlier commit). 

  2002-10-04 16:27:38 by rcaputo
  POE/Loop/Event.pm 1.30; POE/Loop/Gtk.pm 1.29

    Fixed file descriptor tracking. The first rewrite was broken because
    different access modes (read, write) would overwrite themselves for
    the same file descriptor. This version separates watchers by
    descriptor and mode, fixing LordVorp's problem and probaly also
    jerakeen's.

    Also cleaned up some of the warning messages, renamed VEC to MODE
    throughout, and fixed the _dispatch_event calls to match Kernel.pm's
    definition for that function. 

  2002-10-04 16:19:49 by rcaputo
  POE/Loop/Poll.pm 1.17; POE/Loop/Select.pm 1.39; POE/Loop/Tk.pm 1.36

    Clean up the trace/assert messages a little bit. Rename VEC to MODE
    throughout. Standardize the _dispatch_event() calls to match changes
    in Kernel.pm. 

  2002-10-03 18:59:38 by rcaputo; POE/Wheel/Run.pm 1.40

    Reset all signal handlers to DEFAULT in the child process. Leaving
    POE's signal handlers active was the wrong thing to do. Thanks to
    JamesCOU for finding this bug. 

  2002-10-03 12:43:17 by rcaputo; POE/Kernel.pm 1.211

    Add TRACE_RELATIONS, and move extra-reference garbage collection so
    that it doesn't trigger a duplicate _stop event *from* a _stop event.
    This clears up the last of the known bugs introduced by accessorizing
    POE::Kernel's internal structures. 

  2002-10-03 06:55:26 by rcaputo; POE/Kernel.pm 1.210;
  POE/Loop/Event.pm 1.29; POE/Loop/Gtk.pm 1.28; POE/Loop/Poll.pm 1.16;
  POE/Loop/Select.pm 1.38; POE/Loop/Tk.pm 1.35

    Normalized the parameters for the enqueue and dequeue functions in
    POE::Kernel, and their use throughout all the files. Tracked down and
    stomped a file descriptor reference count inconsistency. Tested POE
    against its own tests, and tested my components against POE. All
    tests successful. However, more work needs to be done: A lot of
    warnings come up when SIGINT'ing a program. 

  2002-10-02 22:58:20 by rcaputo; POE/Kernel.pm 1.209

    Implement POE_TRACE_FOO and POE_ASSERT_FOO environment variables.
    These let you turn on traces and assertions without modifying any
    code. Also cleaned up a leak in the extra refcount management, and
    tidied up some error messages. 

  2002-10-02 18:54:59 by rcaputo; POE/Kernel.pm 1.208

    Undo the inline "optimization" from the last commit. The function
    needs to exist for scoping reasons. 

  2002-10-02 18:38:33 by rcaputo; POE/Kernel.pm 1.207

    Chop up all the long (>79 chars) lines. Inline a function that was
    only called from one place. Fix a misspelled method name, which
    caused Rob Bloodgood's program to fail. 

  2002-10-02 07:01:36 by rcaputo; POE/Kernel.pm 1.206;
  POE/Loop/Event.pm 1.28; POE/Loop/Gtk.pm 1.27; POE/Loop/Poll.pm 1.15;
  POE/Loop/Select.pm 1.37; POE/Loop/Tk.pm 1.34

    Split Kernel.pm into several subsystems. Although they are in the
    same file, their data structures have been separated and hidden as
    lexicals in private scopes. The only way to modify them is through
    public accessors. The next step in the refactor will be to clean up
    the accessors, but I wanted to commit things while it still passes
    "make test". 

  2002-10-02 06:58:20 by rcaputo; t/08_errors.t 1.40

    I copped out, sorry. I removed some parameter syntax test which
    created wheels outside of any session. The resulting good syntax came
    out as errors because POE freaked when it tried to put the wheels
    somewhere that didn't exist. I hope to make up for tonight's lameness
    with a decent suite of unit tests later. 

  2002-10-02 06:54:56 by rcaputo; POE.pm 1.148

    We're going to try a different version numbering scheme. Odd
    subversions will be for CVS stuff. Even subversions will be web-only
    releases. As always, plain versions (which only go out to the
    hundredths place) are reserved for stable CPAN releases. Bump the
    version to 0.2301 to kick off the CVS phase (kind of late, though). 

  2002-10-02 06:27:41 by rcaputo; t/22_wheel_run.t 1.27

    Wheel::Run contains its own exit code, which tries to thwart object
    destruction so POE's own destructors aren't triggered. The exit
    statement in the coderef test was thwarting it, causing all kinds of
    false leak detection. 

  2002-09-30 02:43:46 by sungo; POE/Wheel/FollowTail.pm 1.38

    remove -l check on files which fixes spurious warning when
    encountering a filehandle 

  2002-09-28 02:53:26 by rcaputo; POE/Wheel/FollowTail.pm 1.37

    Be more conscientious about cleaning up when FollowTail is destroyed. 

  2002-09-28 00:20:57 by rcaputo
  POE/Wheel/FollowTail.pm 1.36; t/14_wheels_ft.t 1.10

    Split FollowTail into two modes: plain-file mode which uses
    "blocking" I/O and timer based polling on disk files, and fifo/socket
    mode which uses non-blocking I/O and select-based polling on special
    files. This should do the right things for sockets, pipes, and plain
    files. Because it avoids NBIO and select() on disk files, it should
    also work on Windows and VMS. 

  2002-09-27 02:23:24 by rcaputo; POE/Kernel.pm 1.205;
  POE/Loop/Event.pm 1.27; POE/Loop/Gtk.pm 1.26; POE/Loop/Poll.pm 1.14;
  POE/Loop/Select.pm 1.36; POE/Loop/Tk.pm 1.33

    Attempt to binmode() tied files, although do it in a block eval in
    case it fails. Don't bother making plain files (-f $handle)
    nonblocking, since it rarely makes a difference and sometimes really
    honks off the operating system (aka: POE dies in the attempt). Oh,
    and much code movement (aka: refactoring). Still not done with that. 

  2002-09-26 19:51:09 by rcaputo; samples/preforkedserver.perl 1.13

    Deprecated and moved. The entire program is replaced by a brief
    message pointing to its new location on the web. 

  2002-09-25 19:45:00 by rcaputo; MANIFEST 1.77; POE/Kernel.pm 1.204;
  POE/Loop/Event.pm 1.26; POE/Loop/Gtk.pm 1.25; POE/Loop/Poll.pm 1.13;
  POE/Loop/Select.pm 1.35; POE/Loop/Tk.pm 1.32; t/08_errors.t 1.39

    Rename POE::Kernel::* to POE::Loop::*. People following along with
    CVS will need to "cvs update -dP" or check the whole thing out again. 

  2002-09-25 06:30:20 by rcaputo; POE/Kernel.pm 1.203;
  POE/Loop/Event.pm 1.25; POE/Loop/Gtk.pm 1.24; POE/Loop/Poll.pm 1.12;
  POE/Loop/Select.pm 1.34; POE/Loop/Tk.pm 1.31

    Beginning of the refactoring that will move all POE data structure
    access into accessors. When this is done, the public interfaces will
    be totally separate from the internal data munging. That should let
    the data structures be redone in C without affecting the public
    interfaces. 

  2002-09-25 03:05:29 by rcaputo; POE/Queue/Array.pm 1.1

    How could I have forgotten to add this before? Duh! 

  2002-09-24 23:47:18 by rcaputo; t/22_wheel_run.t 1.26

    Apply sungo's fix for tcaine's Wheel::Run test failures on MacOS X.
    It turns out I forgot to catch an unhandled event after I made
    ASSERT_DEFAULT die outright on those things. It never occurred in
    testing, although it could have at any time. 

  2002-09-24 22:26:22 by rcaputo; POE/Kernel.pm 1.202;
  POE/Loop/Event.pm 1.24; POE/Loop/Gtk.pm 1.23; POE/Loop/Poll.pm 1.11;
  POE/Loop/Select.pm 1.33; POE/Loop/Tk.pm 1.30

    Finish separating POE::Kernel from the event loop bridges. 

  2002-09-24 06:32:41 by rcaputo; MANIFEST 1.76; POE/Kernel.pm 1.201;
  POE/Loop/Event.pm 1.23; POE/Loop/Gtk.pm 1.22; POE/Loop/Poll.pm 1.10;
  POE/Loop/Select.pm 1.32; POE/Loop/Tk.pm 1.29; t/001_queue.t 1.1

    Extract POE's queue code into POE::Queue::Array. 

  2002-09-24 06:22:55 by rcaputo; t/02_alarms.t 1.11

    Increase the size of the "large queue" tests. They were never made
    larger when POE's "large queue" threshold was raised. 

  2002-09-24 06:18:05 by rcaputo; TODO 1.34

    Fix the URL of POE's RFCs. 

  2002-09-22 23:55:27 by sungo; Makefile.PL 1.24

    add a warning about ithreads bug to Makefile.PL. 

  2002-09-19 01:49:32 by sungo; POE/Wheel/ReadLine.pm 1.23

    convert the last remaining macros to subroutines.
    samples/readline.perl runs flawlessly and all tests pass 

  2002-09-21 05:57:28 by rcaputo; POE/Kernel.pm 1.200;
  POE/Loop/Event.pm 1.22; POE/Loop/Gtk.pm 1.21; POE/Loop/Poll.pm 1.9;
  POE/Loop/Select.pm 1.31; POE/Loop/Tk.pm 1.28

    More code cleanup. Simplified Select.pm and Poll.pm by removing a
    block of code that already exists as a function in Kernel.pm. Minor
    optimizations in Select.pm by moving a loop into a function rather
    than calling the function once per iteration. 

  2002-09-18 07:03:18 by rcaputo; POE/Kernel.pm 1.199;
  POE/Loop/Event.pm 1.21; POE/Loop/Gtk.pm 1.20; POE/Loop/Poll.pm 1.8;
  POE/Loop/Select.pm 1.30; POE/Loop/Tk.pm 1.27

    Remove a public interface symbol from the event loop bridges. Add it
    to POE::Kernel instead, and have Kernel call the loops as necessary. 

  2002-09-18 04:04:20 by rcaputo; POE/Kernel.pm 1.198;
  POE/Loop/Event.pm 1.20; POE/Loop/Gtk.pm 1.19; POE/Loop/Poll.pm 1.7;
  POE/Loop/Select.pm 1.29; POE/Loop/Tk.pm 1.26

    Renamed the event loop "substrate" functions to "loop" functions,
    since they implement bridges for underlying event loops. Transplanted
    some loop-specific things from Kernel.pm to the appropriate bridges.
    The tentacles between Kernel and each event loop are not entirely
    untangled, but they are much more separate now than before. 

  2002-09-17 07:09:30 by rcaputo; POE/Filter/HTTPD.pm 1.28

    Tatsuhiko Miyagawa pointed out that this module uses HTTP::Response
    but doesn't load it. 

  2002-09-17 07:08:18 by rcaputo; POE/Kernel.pm 1.197

    Added two environment variables to set ASSERT_DEFAULT and
    TRACE_DEFAULT for testing. 

  2002-09-17 05:45:30 by rcaputo; POE/Kernel.pm 1.196;
  POE/Loop/Event.pm 1.19; POE/Loop/Gtk.pm 1.18; POE/Loop/Poll.pm 1.6;
  POE/Loop/Select.pm 1.28; POE/Loop/Tk.pm 1.25; POE/NFA.pm 1.17;
  POE/Session.pm 1.80; POE/Wheel/ReadLine.pm 1.22; t/08_errors.t 1.38

    Removed the use of POE::Preprocessor, except in ReadLine.pm which
    would have a circular reference in closures that I'm not sure how to
    break otherwise. 

  2002-09-17 03:00:08 by rcaputo; POE/Wheel/Run.pm 1.39

    Explanation of the ErrorEvent parameters. Patch by Erick Calder. 

  2002-09-15 16:49:21 by rcaputo; POE/Pipe.pm 1.6

    Retry on EWOULDBLOCK or EINPROGRESS rather than dying outright. James
    March discovered that it would sometimes die outright with those
    conditions, which is bad for recoverable, advisory errors like those. 

  2002-09-15 05:09:13 by rcaputo; POE/Kernel.pm 1.195

    Erick Calder's clarifications on a couple points regarding delay(). 

  2002-09-13 07:58:04 by rcaputo; t/06_tk.t 1.38

    Fix a misleading skip message (Tk *is* supported, just not fully). 

Back to POE CHANGES.