2.8.1
New Features
* %hash->each() is guaranteed to iterate through the entire hash.
[github 142]
* $string->is_module_name() checks if a string is a valid module name.
Doc Changes
* Document the very useful %hash->each( func ($k, $v) { ... } ).
[github 142]
* Add perl5ifaq entry: "How do I merge two hashes?"
* Add perl5ifaq entry: "How can I get the unique keys from multiple hashes?"
* Minor POD glitches and spelling fixes from Debian.
[rt.cpan.org 71253] [rt.cpan.org 71254]
Test Fixes
* Updated tests for new version of Child. (Chad Granum)
Bug Fixes
* Depend on the newest version of Child. (Chad Granum)
Security Fixes
* require() will now only require modules. [github #204]
2.8.0 Sat Sep 24 21:36:32 PDT 2011
Bug Fixes
* Depend on a newer, more reliable version of Devel::Declare. Lets perl5i work
with Devel::REPL. [github 153]
* Depend on a newer indirect.pm to avoid leaks into eval on 5.10. [rt.cpan.org 64521]
* Quiet the overzealous "v-string in use/require non-portable" warning from
5.10.0. [github 174]
New Features
* Added a list() keyword to force list context. Compliments scalar().
[github #169] (Mike Doherty)
* `strict vars` is now off for perl5i one-liners. [github #63] (Mike Doherty)
* alias() will no longer issue "subroutine redefined" warnings.
There was no way to make them honor "no warnings 'redefine'". [github #185]
(Mike Doherty)
* -Mperl5i now means -Mperl5i::latest rather than spitting at you.
[github #193] (Mike Doherty)
* $string->reverse now always reverses $string regardless of context.
[github #182]
Doc Changes
* Removed unnecessarily detailed docs about Child.
Misc
* Delegate Unicode stuff to utf8::all. [github #190]
* checksum() now using the core Digest::SHA module instead of
Digest::SHA1. [github #196] (Mike Doherty)
2.6.1 Thu, 24 Mar 2011 16:33:39 +1100
Bug Fixes
* methods() can handle modules like Fcntl with weird things in their
symbol tables. [github 184]
Test Fixes
* Work around broken Test::Output 0.16_03 alpha that CPAN testers
are using. See https://rt.cpan.org/Ticket/Display.html?id=66172
2.6.0 Thu, 24 Feb 2011 11:23:25 +1100
New Features
* Added capture(), from Capture::Tiny, to capture output to STDOUT and
STDERR [github 178]
New Docs
* Added perl5ifaq entries for capturing output from a command using
capture()
Bug Fixes
* perl5i will no longer double encode @ARGV if it's loaded multiple times.
[github 176]
Windows Fixes
* Fix t/center.t (Myf White)
* Fix t/command_line_wrapper.t (Myf White)
Misc
* The dependency on true.pm will no longer confuse some YAML parsers.
2.5.1 Fri, 28 Jan 2011 11:01:33 +1000
Misc
* Fix the META.yml file so the requirement on "true" is not
interpreted as a boolean by YAML::XS. [github 173]
2.5.0 Mon, 24 Jan 2011 11:03:38 +1000
Doc Fixes
* Update the Artistic License link to one that works. (Schwern)
New Features
* Added $class->mc->symbol_table to get a class's symbol table (Schwern)
* Added $obj->mo->methods to get the methods available to an object (Schwern)
[github 170]
2.4.1 Wed Nov 24 16:35:39 EST 2010
Bug Fixes
* The lexical nature of the improved error message was implemented
wrong and caused it to leak out or not work. [github 99] (Schwern)
2.4.0 Fri Aug 27 19:18:45 PDT 2010
New Features
* You no longer have to put a true value at the end of a module.
Thanks to chocolateboy's true.pm!
Bug Fixes
* Bumped the dependency on indirect.pm to avoid a seg fault in
@{[ $x->$y ]} when $x and $y are undefined. [github 164]
Thanks to Tokuhiro Matsuno and Vincent Pit.
* The improved error message for failing to load a module is now
a lexical feature. This prevents it messing up things that
parse that error message, like base.pm. This makes perl5i
play nice with Class::DBI amongst a lot of other things.
[github 165] (Chad)
2.3.1 Fri Jul 30 18:14:38 PDT 2010
No changes from 2.3.0_03.
2.3.0_03 Wed Jul 28 20:32:36 PDT 2010
Incompatible Changes (only with this alpha series)
* Signature->num_params is now Signature->num_positional_params because
we'll add named params eventually and you generally only care about
how many positional params a function takes. (Schwern)
* Remove ngrep, nmap and nfor. Replaced by @array->foreach( def($x,$y) ) {}
and @array->map( def($x) {} );
* def has been removed. Consensus is emerging for func.
New Features
* Added child() to make forking easier. [github 150] (Chad)
* @array->foreach now takes a function with variable arguments and DWIM
* $number->is_even and is_odd [github 143] (Eric A. Zarko)
Bug Fixes
* Anonymous functions were getting a new signature each time they're
declared even though its the same code reference. (Schwern)
2.3.0_02 Thu Jul 15 19:13:22 PDT 2010
New Features
* Signature introspection, via $code->signature, for subroutines defined
with C<def>, C<func> and C<method>.
Documentation
* Anonymous methods and functions (they always worked)
2.3.0_01 Mon Jul 12 16:15:05 PDT 2010
New Features
* ngrep and nmap are like grep and map but you can name the $_ variable.
(Chad) [github 36]
* nfor is like for but you can specify it to loop over any number of
elements at a time. (Chad) [github 40]
* "method" declares a method and does the "my $self = shift" for you.
(Schwern) [github 19]
* "def" and "func" provide basic subroutine signatures. (Schwern)
[github 19]
* The error message upon not being able to load a module has been
improved for human readability. (Chad) [github 99]
Test Fixes
* Clean up dangling temp files. (Avar) [github 139]
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