The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
1.46: (2005-08-24)
   -- warn about undef sockets in Danga::Socket's constructor, or overwriting
      the descriptor map with a socket using the same fd as another in use.
   -- change all print STDERR to warn (so we can trap 'em with $SIG{__WARN__})
   -- delay the removal of fds from DescriptorMap to eliminate warnings
      when one fds in the same epoll_wait/etc return set kills one of
      the others which hasn't been processed yet.  new test t/12-closerace.t to
      demonstrate the situation.

1.45: (2005-08-23)
   -- don't hang forever if there is a timer but no sockets
      and looptimeout is -1.  the problem was we always picked the
      lesser time of LoopTimeout and NextTimerTimeout, but if LoopTimeout
      was -1 (which means infinity), we preferred that, wrongly.
   -- in RunTimers, calculate the milliseconds in integer, and add 1
      to remove some floating point weirdness which caused 20-30 extra
      loops which accomplished nothing.  see comments.

1.44: (2005-08-16)
   -- fix another bug in push_back_read... ancient:  comma instead of
      semi-colon (can you tell nobody used this function before?)
   -- fix a bug in push_back_read ... apparently it never actually
      worked when you asked for less bytes than were available.
   -- adds code for when kqueue returns a fd we don't have a
      mapping for (Matt Sergeant)
   -- generic timer support (Matt Sergeant), use HiRes and rearrange
      to share some code (Brad)
   -- make tcp_cork a noop on non-linux (FIXME: port to bsd at least)

1.43:
   -- don't even try epoll if not on a known/tested arch
   -- updated POD docs

1.42:
   -- use the right epoll system call numbers on non-x86
      machines
   -- start of a good test suite
   -- 64-bit struct support (test suite passes on ia64, ppc)
      (and presumably ppc64, but yet untested)


1.41:
   -- make the Poll mode behave like Epoll/Kqueue in that
      fds returned w/ no corresponding Danga::Socket object
      or OtherFds coderef just get ignored.  make it robust
      against apps with races, perhaps?  patch from Justin Azoff
      <JAzoff@uamail.albany.edu>

1.40:

   -- Kqueue support from Matt Sergeant

1.39:

   -- make BSD::Resource optional

1.38:

   -- added support for profiling (epoll only at the moment while this
      feature is further fleshed out); user application is required to
      enable profiling and actually process the resultant data

   -- if epoll_wait returns an event we can't handle, delete it.
      this means the application fucked up and lost its state somehow.
      or maybe Danga::Socket did?  still debugging this in Perlbal.

1.25: (2004-10-22)

   -- move the syscall.ph require into "package main" rather than stealing
      all its definitions into our namespace.  now other modules can
      use syscall.ph and Danga::Socket at the same time (as long as they're
      also polite and load it into main)  (NOTE: if you know a better way
      to do this, let us know...)

1.24: (2004-10-21)

   -- ability to steal the underlying socket from the Danga::Socket
      object.  this is useful if a caller wants to hold onto the socket
      but destroy the Danga::Socket object (previously the Danga::Socket
      close would close the underlying socket)

1.22: (2004-10-21)

   -- minimal POD docs
   -- first public release