Ugh, my release management skills stink. Hopefully there won't be another release with this many changes at once for a _long_ time (or better yet, never!).
I gave up on Win32 and made a hack to skip the failing test. I figure that the infinite datetime stuff is marginal enough that it's better to get an otherwise usable-on-Win32 release out now. 0.13 2003-05-05 [ IMPROVEMENTS ] - DateTime now does more validation of parameters given to constructors and to the set() method, so bogus values like a month of 13 are a fatal error. - Added a new constructor, from_day_of_year(). - Added a number of new "get" methods, including era, year_with_era, hour_1, hour_12, hour_12_0, weekday_of_month, and week_of_month. Based in part on a patch from Rick Measham. - Now any object method can be called in strftime format by using "%{method}" as a format specifier. Patch from Rick Measham - Added an is_zero method to DateTime::Duration, for objects of zero length. - DateTime->from_epoch will now accept a floating point epoch and turn the post-decimal portion into nanoseconds. This was done in order to interface more accurately with Time::HiRes. - Added a DateTime->hires_epoch method that returns a floating point value for epoch, also for compatibility with Time::HiRes. - DateTime.pm now implements Storable hooks to reduce the size of serialized DateTime objects. In particular, the contained time zone object is not serialized along with the DateTime object. - It is now possible to create arbitrary DateTime::Language subclasses in any namespace. [ BUG FIXES ] - "Fixed" 20infinite.t failures on Windows with 2 icky hacks. The first simply doesn't compile the XS code that deals with infinite numbers on Win32, so the pure Perl version is used instead. However, the rest of the XS code is still compiled on Win32. The other hack is to simply skip a failing test in 20infinite.t on Win32. Hopefully, this will eventually be fixed but given that this is not core functionality for most users, I'd rather get this release out the door now. - Fix epoch() method to work properly with dates greater than 50 years ago. Apparently, if Time::Local is given a year less than 100, it tries to guess the century, and it doesn't do this by simply adding 1900. Numbers less than 53 (for the year 2003) are treated as being in the current century. Ugh. - Fixed compilation on HPUX. Patch from Dan Sully. - The last_day_of_month() method did not accept a nanosecond parameter. - A DT::Duration object created with just nanoseconds was always positive, regardless of the value given for nanoseconds. - Fixed a serious bug when subtracting one datetime from another that could cause the result to be off by up to a second, and negative when it should be positive. This was caused by the introduction of nanoseconds in 0.10. - A zero length duration reported itself as positive when it should be neither positive nor negative. - In Perl 5.6.1/Red Hat Linux 7.2, multiplying a variable with value zero by -1 gives negative-zero, which breaks tests. perl -e ' $x=0; $x*=-1; print $x ' -0 Patch by Flavio Glock. - Comparing a DateTime::Infinite object to a regular datetime could cause a fatal error. Reported by John Peacock. - Fixed a failure in the 04epoch.t tests on Win32. Negative epoch values don't work on Win32. [ BACKWARDS INCOMPATIBILITIES ] - The "Portugese" language module has been renamed to "Portuguese". I'm so embarassed! Reported by Richard Evans. - DateTime::Infinite objects no longer die if "set" methods are called. Instead, these methods are now no-op methods that simply return the original object. This makes these objects more usable when mixed with regular datetime objects. - Removed the fractional_second constructor parameter. It was incorrectly documented anyway. The fractional_second _accessor_ is still there. - DateTime::Duration objects of zero length no longer return true for is_positive. -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/