Revision history for Contextual-Return
0.0.1 Mon Mar 14 22:53:00 2005
Initial release.
0.0.2 Sun May 22 05:48:19 2005
- added dependency on version.pm
0.1.0 Fri Feb 17 12:15:18 2006
- added LAZY {...} block for better self-documentation
- fixed propagation of exceptions from methods called on returned object
- Added proxying of can() and isa(). (Should VERSION() be done as well?)
(thanks, Rob)
- Added FIXED() to support morphing of scalar return values (thanks, Rob)
- BACKWARDS INCOMPATIBLE CHANGE:
Added fallback to scalar returns for list context
To get the old behavior, add:
LIST { croak "Can't call this sub in list context" }
- Made return values under ${} and @{} remain fully lazy (unless FIXED)
- Added LVALUE, RVALUE, and NVALUE blocks for implementing lvalue returns
- Added FAIL block for smart failure
- Added Contextual::Return::FAIL_WITH to configure FAIL
0.2.0 Tue Mar 6 16:34:54 2007
- Fixed doc nit (thanks BrowserUK)
- Fixed test suite under Windows (thanks Nigel and Doug)
- Fixed doc bugs for FAIL_WITH
- Removed dependency on Carp internals (now replaces them!)
- Fixed VOID handling (now correctly falls back to DEFAULT)
- Fixed caller semantics within handler blocks (thanks Schwern)
- Fixed edge case of C::R::V metainformation requests (thanks Andrew)
- Rejigged FIXED/LAZY/ACTIVE
- Added RESULT and RECOVER blocks (thanks Aaron)
0.2.1 Thu Mar 29 17:59:40 2007
- Removed spurious Smart::Comments dependency (thanks Dave!)
0.003001 Tue Jun 22 17:20:36 2010
- Added Contextual::Return::FREEZE and Contextual::Return::DUMP
to facilitate debugging
- General clean-and-tighten of documentation
- Added CLEANUP blocks
- Added PUREBOOL context
- [BACKWARDS INCOMPATIBLE CHANGE] Changed export interface
- Added warning about (mis)behaviour of LVALUE, RVALUE, NVALUE
under the debugger (thanks Steven)
- Documented METHOD handlers
0.003002 Thu Jan 19 09:27:29 2012
- Updated version number of Contextual::Return::Failure
to placate CPAN indexer
- Improved error messages for bare handlers in bad contexts (thanks Mathew)
- Work around problems with Test::More and caller
0.004000 Thu Feb 16 14:30:56 2012
- Fixed context propagation bugs in FIXED and ACTIVE modifiers
- Added STRICT modifier to prevent fallbacks
(i.e. impose strict typing on return values)
0.004001 Thu Feb 16 19:01:05 2012
- Fixed annoying POD nit (thanks Salvatore)
0.004002 Fri Mar 2 06:18:38 2012
- Fixed significant typo (Carp:carp -> Carp::carp)
(thanks everyone who reported it)
0.004003 Wed Apr 11 07:55:49 2012
- Doc patch (thanks Fabrizio)
- Patched failures.t to account from bleadperl changes
(thanks Zefram!)
0.004004 Sun Aug 5 17:46:56 2012
- Further patch to failures.t
- Added redefinition of Scalar::Util::blessed() to avoid nasty
surprises (thanks Andrew!)
- Added confess() and cluck() overrides
and fixed caller() override to set @DB::args when appropriate
0.004005 Mon Aug 20 10:44:35 2012
- Further patch for t/confess.t
(Thanks, David!)
0.004006 Thu Oct 4 16:49:47 2012
- Circumvented annoying undef-as-key warnings in Perl 5.17+
- Honour @CARP_NOT's when reporting context
0.004007 Fri Oct 5 23:05:05 2012
- Added BLESSED handler for better control over how blessed() lies
- Upgraded reimplementation of blessed() to make more sense
0.004008 Sat Sep 12 13:16:30 2015
- Promoted $VERSION variable to earlier in source to
attempt to placate cpanminus (thanks, Karen!)
- Added prototype to overridden caller()
- Changed way caller() is overridden, hopefully will no longer
clash with Sub::Uplevel
0.004009 Fri Nov 18 08:34:19 2016
- Improved behaviour of FREEZE (Thanks, Mathew!)
- Improved output of DUMP
0.004010 Thu Dec 1 17:41:14 2016
- Spelling fix in POD (thanks, Salvatore)
- Improved DUMP behaviour when passed a non-CRV argument
(thanks, Mathew)
0.004011 Sat Apr 8 15:23:14 2017
- Patched memory leak from use of @DB::args
(thanks, Jay!)
0.004012 Thu Apr 13 01:06:09 2017
- Optimized previous patch for memory leak
(thanks, Jay and Father C.)
- Added missing test plan to t/fail.t
0.004014 Fri Apr 14 18:46:16 2017
- Reverted to 0.004011 due to segfaults under
optimized memory leak patch (thanks, Slavin!)