2.2.2 Mon May 17 16:34:52 PDT 2010 Bug Fixes * Let perl5i::1 load without Time::y2038 if Perl is already y2038 safe just like perl5i::2 does. Test Fixes * Possible failure of t/command_line_wrapper.t if perl5i isn't already installed. 2.2.1 Sun May 16 22:52:01 PDT 2010 Bug Fixes * Greatly reduced the amount of clashes when loading perl5i::1 and perl5i::2. * Make meta objects on read only strings and numbers work with non-threaded perls. [github 131] * Bumped to a version of indirect which does not leak out of scope. [rt.cpan.org 50570] 2.2.0 Sun May 9 13:22:56 PDT 2010 New Features * $thing->mo->is_tainted, along with untaint and taint, are now callable on everything to provide a unified interface. [github 89] * Added $number->commify and $number->group_digits to turn 1000 into 1,000. [github 128] * Added $obj->mo->id, a universal unique object identifier. Deprecation Warnings * $thing->is_tainted, untaint and taint will be removed in v3. Please use $thing->mo->is_tainted and friends. [github 89] Bug Fixes * $class->can($method) now works as it should (previously autoboxing would interfere). [github 112] 2.1.1 Tue Apr 27 21:34:04 PDT 2010 Fixes * Upgrade dependency on autovivification so Regexp::Common works with perl5i. [github 32] 2.1.0 Fri Apr 16 12:15:10 EEST 2010 New Features * trim, ltrim and rtrim now work on arrays. [github 121] (Nick Patch) Fixes * Quiet a warning in DateTime.pm on systems where gmtime() returns undef for out of bound times (mostly Windows). * Fix the perl5i command line tool on stock OS X 5.10.0 [github 116] * Fix perl5i.bat on Windows. * perl5i can load after List::MoreUtils (and thus things like Moose) [github 127] * Fix is_integer() and is_decimal() for things like 1.0 and 1. [github 123] * Fix rounding of negative numbers. [github 118] Test Fixes * Quiet the autodie test on Windows [github 126] * Fix the quoting of command_line_wrapper.t for Windows [github 126] 2.0.3 Fri Mar 19 13:57:37 PDT 2010 Fixes * Forgot to require B before using a B routine in the JSON dump. Build Fixes * Forgot to require Digest::SHA1 for checksum() Test Fixes * Removed use of Test::Exception which may have been causing the "Bizarre copy of HASH" errors in 5.11.5. 2.0.2 Wed Mar 17 12:21:00 PDT 2010 Build Fixes * Ensure non META.yml savy CPAN shells see the configure_requires for Module::Build. * Forgot to require indirect.pm, JSON and YAML::Any Test Fixes * Don't run the v1 and v0 sanity tests unless Time::y2038 is installed. * autobox 2.60 changed how isa() works and broke 42->isa("UNIVERSAL"). Will fix for real later. 2.0.1 Wed Mar 17 11:10:54 PDT 2010 Fixes * Quick fix to handle not always having Time::y2038. 2.0.0 Tue Mar 16 23:34:22 PDT 2010 Incompatible Changes * In general, methods which return a list return an array in list context and an array ref in scalar context. This enables chaining of autoboxed methods. * $module->load() is now $module->require() with simpler semantics. [github 107] [schwern] * Indirect object syntax (ie. $obj = new Class) is now a compile time syntax error. * $thing->mo now always returns a meta instance object. This allows the meta object to DWIM on plain strings which previously would be treated as classes and return the meta class object. * The guaranteed range of gm/localtime() has been reduced to avoid depending on Time::y2038 if possible. * $thing->perl is now $thing->mo->perl and works on everything. New Features * $thing->mo->is_equal($other) universal equality method. [brunov] * $thing->mc has been added to always return a meta class object. This allows disambiguation when $thing could be considered a class name. * new autoboxed methods: %hash->diff() and %hash->intersect() [brunov] * Added $thing->mo->dump to dump objects in multiple formats including YAML and JSON. Fixes * Update dep on autovivification to one that works on 5.11 [schwern] * Update autobox::Core dep to clarify scalar vs list context returns. * Fix taint test failing with Test::More 0.95_01. [schwern] * Fix time compat test failing because of unknown time zones. [schwern] * Time::y2038 is only required if the built in time functions are not up to task. [schwern] Optimizations * Optimize @array->intersect() and @array->diff() when @array contains no refs. [brunov] 1.1.0 Tue Mar 2 19:09:49 PST 2010 New Features * print() and say() now work on hashes, time(), localtime() and gmtime(). * $obj->mo->checksum will return a checksum for the contents of any object. * Added $path->path2module and $module->module2path Bugs * alias() was still being exported. * Work around DateTime::TimeZone not being able to determine the local time zone on FreeBSD and possibly others. * localtime() is less suseptable to the DateTime distant year DOS attack. Docs * Document that carp() and croak() are exported. 1.0.0 Thu Feb 25 21:56:47 PST 2010 New Features * @array->first() now takes a regex like @array->grep() [github 93] (brunov) * All autoboxed objects now respond to is_number() and friends. They always return false. [github 100] (brunov) * All applicable array and hash methods now return arrays in list context and array refs in scalar context. (brunov) * diff() now works on nested data structures and honors overloaded objects (brunov) * Add a basic $number->round() [github 95] * Added @array->intersect() (brunov) Docs * Wrote perl5ifaq for all your frequently asked questions. * Document the perl5i command line utility. [github 31] Bug Fixes * Ensure the DateTime objects coming from time(), gmtime() and localtime() compare with eq and == 0.2.2 Fri Feb 19 14:56:36 PST 2010 Other * Some modules got the wrong version. 0.2.1 Fri Feb 19 04:23:58 PST 2010 Bug Fixes * round_up() and round_down() didn't work 0.2.0 Fri Feb 19 03:48:36 PST 2010 Incompatible Changes * "use perl5i" no longer works. You must instead "use perl5i::0" to protect against future incompatibilities. "use perl5i::latest" for the adventurous. * We no longer export rreturn() or lnoreturn() from Want. This can wait if we tackle lvalue subroutines. * load() is now a scalar method, so its $module->load not load($module) * alias() is now an autoboxed method rather than a function. New Features * try/catch support via Try::Tiny (brunov) * caller() now returns an object via Perl6::Caller (schwern, Timothy Totten) * Everything has a Meta object (perl5i::Meta) accessable via $thing->mo * Added meta object methods to handle tainting. mo->is_tainted(), mo->taint(), mo->untaint(). * Added mo->reftype to get the bare reference type of anything. * Added mo->class to get the class of anything. * Added mo->ISA to return @ISA. * Added mo->super to call a method in a super class. * Added mo->linear_isa to get the object's inheritance path. * Introduced perl5i::latest to use the latest version. * Added %hash->flip() and %hash->merge() (brunov) * @array->grep now takes a regex * Select methods from List::MoreUtils added as ARRAY methods. all, any, none, true, false, uniq, minmax, mesh. * Added @array->diff() (brunov) * "use utf8" is on by default. * STDOUT, STDIN, STDERR and all opened filehandles have utf8 encoding on. * @ARGV is encoded as UTF8 * Added methods to determine if a scalar is a number and what kind it is. * Added ceil()/floor() and round_up()/round_down() synonyms. Docs * Various POD fixes (chromatic, Richard Soderberg) * Collected together the autoboxed methods Other * Look, a changes document! * Added a patching policy. See the PATCHING file. * We have a mailing list now. http://groups.google.com/group/perl5i 0.1.0 Sat Jan 23 14:55:52 2010 -0800 * Return to CPAN after deleting 20090424 * New versioning scheme so we can declare incompatibilities, see semver.org for details. If you have perl5i installed you must force an upgrade. * Thanks to the Open Source Bridge perl5i Hackathon! Incompatible Changes * Switched to DateTime from Time::Piece New Features * List::Util now autoboxed (Chas) * time() returns a DateTime object (schwern) * Added alias() (schwern) * Now y2038 safe (schwern) * die always returns 255 regardless of $! or $? (Chas) * Added a perl5i command line program (dap) * Add $CWD for localized chdir'ing via File::chdir (schwern) * Add $scalar->center() (chromatic, benh) * Add $scalar->ltrim(), ->rtrim() and trim() (benh) * Add $scalar->wrap() via Text::Wrap (brunov) * Automatic "use English" (schwern) * Automatic "use IO::Handle" so things like autoflush are available (schwern) * Automatic "use Want" (Jeff Lavallee) * Automatic "no autovivification" (schwern) Bug Fixes * stat() works in list context (schwern) 20090424 Fri Apr 24 11:38:24 2009 -0700 * First release