Revision history for Perl extension Want.
0.01 Sun Jul 1 18:04:58 2001
- original version; created by h2xs 1.1.1.4 with options
-A Want
- Published to CPAN on 2001-07-15
0.02 Mon Jul 16 10:06:15 2001
- Give correct expectation count for constructs like
my ($x, $y, $z) = (23, foo()); # foo's expectation count is 2
- want(2) should be true in C<@x = foo()> etc;
i.e. infinity > N for any finite N :-)
- Support '!' negative requests
- correct expectation count for slices
0.03 Wed Jul 25 12:03:01 BST 2001
- Fix documentation snafus
- add want('COUNT') as a synonym for C<howmany>
and want('REF') for C<wantref>
- BOOLEAN context
- now compiles & passes tests under ithreads
- SCALARREF and OBJECT reference contexts
(want('REF') eq 'SCALAR' || want('REF') eq 'OBJECT')
- Reorganised test suite
0.04 Sat Aug 4 09:44:34 BST 2001
- 'want' is now exported by default
- BOOL is a euphemism for BOOLEAN (Perl 6 compatibility)
- ARGUMENTS section added to documentation
- excised C++-style comments from the source
- fixed the expectation count issue from the BUGS section of 0.03
- ASSIGN context. Yeah, baby!
- don't throw an error if RVALUE/LVALUE are used from a non-lvalue sub
- specifiers can also now be space-separated, e.g.:
want('LVALUE ASSIGN');
0.05 Tue Aug 28 22:14:48 BST 2001
- tests pass on 5.6.1 and above
- added 'rreturn' and 'lnoreturn' functions
0.06 Fri Jul 25 11:42:13 BST 2003
- pass thread context to Perl_pop_return
- remove v-string
0.07 Mon Aug 18 10:27:27 BST 2003
- do not try to call pop_return (it's private)
- update copyright year(s) and fix doc glitches
- remove spurious || $n eq 'gelem' from _wantref
- change i to I32 (rather than U32) to avoid compiler warning
on Win32
0.08 Mon Dec 13 01:23:28 GMT 2004
- Accommodate the changed internals of perl 5.9.2
(the retstack is no more: see change #23156).
0.09 Thu Jun 30 15:02:37 BST 2005
- Fix a bug reported by Damian: want doesn't work (crashes) if
it's called from within the guard of a loop. See the comment
above upcontext_plus in Want.xs.
- Runs under the debugger!
- Give an error message (rather than segfaulting) if called from
a tie handler.
0.10 Sat Mar 25 15:00:41 GMT 2006
- Make context propagate through subroutine return
- Fix bug whereby want('LVALUE') sometimes gave false positives
(see test 58 in t/all.t)
- Fix bug whereby want_boolean often gave false positives
0.11 Sat Aug 26 22:36:27 BST 2006
- (Jerry D. Hedden) Fix bug whereby 'lnoreturn' failed to
decrement the CvDEPTH, which causes an error with 'use threads'
0.12 Tue Aug 29 21:06:40 BST 2006
- (Jerry D. Hedden) Force the threads test to be skipped if oldstyle
threads (as opposed to ithreads) are in use.
0.13 Tue May 1 21:39:19 BST 2007
- Address bug #26847, and add t/methcall.t
0.14 Fri May 4 12:00:20 BST 2007
- Fix bug #26928
0.15 Sun Jul 15 14:39:15 BST 2007
- Fix compiler warning (#26961) -- from Jerry D. Hedden
- Fix memory leak in want_assign (#28224)
0.16 Thu Dec 6 11:15:39 GMT 2007
- Make sure there are no ._ files in the tarball
- Refuse to run Makefile.PL with Perl < 5.006
0.17 Sun Feb 3 22:30:30 GMT 2008
- Be compatible with internals changes post-5.10 (new loop contexts & CxLVAL)
0.18 Mon Feb 4 09:35:56 GMT 2008
- Code identical to 0.17; eliminate ._files by using gnutar.
0.19 Sat 30 Jul 2011 17:07:16 BST
- Change tests to avoid the new warning 'Useless assignment to a temporary' added in 5.15.
0.20 Sun 5 Feb 2012 17:43:22 GMT
- Remove a test that was testing the behaviour of perl, rather than of this module,
and was testing an aspect of perl’s behaviour that has changed (bf8fb5ebd) in
in such a way that the test was failing with bleadperl.
0.21 Wed 29 Feb 2012 16:47:58 GMT
- Avoid leaking the RHS of an lnoreturn lvalue sub, thanks to Father Chrysostomos
https://rt.cpan.org/Public/Bug/Display.html?id=72083
0.22 Sun 15 Dec 2013 17:08:35 GMT
- Prevent return from being optimised away by newer (>= 5.19.7) Perls.
This is a patch supplied by @wolfsage: see
https://github.com/robinhouston/Want/pull/1
0.23 Mon 24 Mar 2014 00:28:36 GMT
- Accommodate a bleadperl change to the optree, made in 7d3c8a6837b55fff0e6294ebf8c94a1601367c76.
This is bug #94086 for Want, and bug #121342 for perl5.
0.24 Tue 2 Dec 2014 10:22:39 GMT
- Accommodate another bleadperl change. Patch provided by Father Chrysostomos at
https://rt.cpan.org/Public/Bug/Display.html?id=100626
0.25 Wed 10 Dec 2014 19:31:03 GMT
- Add support for the new OP_MULTIDEREF
Perl has a new op, added as a performance optimisation in fedf30e1c349130b23648c022f5f3cb4ad7928f3,
to represent a sequence of array/hash dereferences. This patch adds support for the new op.
0.26 Tue 28 Apr 2015 12:31:17 BST
- There is a new experimental option in bleadperl under which one ought not to use
the op_sibling field directly. Quoting from perlguts.pod:
“ Starting in version 5.21.2, perls built with the experimental
define C<-DPERL_OP_PARENT> add an extra boolean flag for each op,
C<op_moresib>. When not set, this indicates that this is the last op in an
C<OpSIBLING> chain. This frees up the C<op_sibling> field on the last
sibling to point back to the parent op. Under this build, that field is
also renamed C<op_sibparent> to reflect its joint role. The macro
C<OpSIBLING(o)> wraps this special behaviour, and always returns NULL on
the last sibling. With this build the C<op_parent(o)> function can be
used to find the parent of any op. Thus for forward compatibility, you
should always use the C<OpSIBLING(o)> macro rather than accessing
C<op_sibling> directly. ”
Thanks to Reini Urban for the patch.
0.27 Thu 25 Feb 2016 21:26:04 GMT
- perl 5.23.8 breaks the hack we were using to implement double_return.
This patch from David Mitchell fixes it. See https://rt.cpan.org/Ticket/Display.html?id=112226
David wrote:
> Running with a debugging perl-5.23.8 will show assertion failures in the Want test suite. It's because PL_comppad/PL_curpad save/restore is now done by the context stack / cx_popsub() rather than as previously on the savestack / LEAVE.
> This stops the double_return() 'convert CXt_SUB to CXt_NULL' hack from working properly, as PL_comppad is no longer restored when transitioning from the inner to outer sub. The attached patch substitutes one evil hack for another: it keeps the CXt_SUB context stack entry, but sets its retop field to point to the return op again (rather than its caller) so that the return op gets called twice (with a bit of markstack hackery to ensure there are two marks for the two returns to pop).
> rreturn and lnoreturn are also a bit under-tested. In particular, there are no tests for rreturn in list context. I added such a test, but more need adding.
> I can see this hack breaking again in the future. Perhaps in the long term
> rreturn() and lnoreturn() should be implemented using custom ops???
> Dave M.
0.28 Thu 25 Feb 2016 22:02:42 GMT
- Fix test failure in 5.14
- Fix test failure in 5.23.9 (using a patch from Slaven Rezic)
http://cpan.cpantesters.org/authors/id/S/SR/SREZIC/patches/Want-0.26-RT112226.patch
0.29 Fri 26 Feb 2016 04:42:19 GMT
- Restore compatibility with certain older perl versions (5.10 and 5.12)
It seems that “ATTRS: lvalue” doesn’t work with older perls, but that you can
forward-declare the method in Perl code with the :lvalue attribute with the same
effect.
This version of Want is still broken with perl 5.8, for reasons I haven’t investigated.