Revision history for Perl module Wanted
v0.1.1 2026-06-08T07:19:56+0900
- Test-only maintenance release; no functional changes to the XS implementation.
- Replaced the Perl 5.10 defined-or operator (//) in t/02.all.t and t/04.boolean.t
with defined()/ternary expressions.
This restores syntax compatibility with Perl 5.8.x, where those test files failed
to compile on CPAN Testers.
- Simplified t/11.rreturn.t by removing internal want_lvalue() assertions from
lvalue-assignment test paths. Those checks were probing implementation details and
could not reliably distinguish between Perls that correctly propagated lvalue
context and those that did not. The test now focuses on the actual behaviour under
test: whether rreturn correctly dies in lvalue assignment contexts.
- Eliminated spurious TODO passed reports from t/11.rreturn.t on some CPAN Testers
platforms.
- Updated GitLab repository and bugtracker metadata after moving the project to the
'deguest' group.
- Fixed a precedence bug in t/93.signature.t that caused the AUTHOR_TESTING level
check to behave incorrectly.
v0.1.0 2025-05-24T22:45:22+0900
- Initial version as a fork from Want, which does not seem maintained anymore.
- Added context() function to determine the caller's context (RT#16670).
- Fixed various bugs from Want:
- RT#4628: Segfault in Set::Array
Now returns undef in invalid contexts.
- RT#57980: Segmentation Fault in Tied Module
Now returns undef in tied contexts.
- RT#68350: Segfault in Overloaded Operator '>'
Now returns undef in invalid contexts.
- RT#90062: Segfault Under Threads
Now returns undef in invalid thread contexts.
- RT#2196: Bus Error Inside Tie
Now returns undef in tied contexts; version requirement updated to 5.006
(inherited from Want-0.29).
- RT#104042: Add OpSIBLING Support
Already fixed in Want-0.26 and inherited.
- RT#133060: Test Failure When File Path Contains Space
Not applicable in our test suite.
- RT#136651: Segmentation Fault When Used Inside a Thread
Now returns undef in invalid thread contexts.
- RT#47963: want() Confused by Prototypes
Documented limitation in POD under LIMITATIONS; fix requires XS-level changes not
implemented in this release.
- Fixed lvalue reference assignment issue on Perl < 5.12.0 (e.g., \(scalar g(...))
not tying to underlying variable); added version guard in t/02.all.t.
- Fixed first_multideref_type() usage on Perl < 5.22.0 (OP_MULTIDEREF introduced in
5.22.0); added version guards in Want.pm and t/02.all.t.
- Fixed critical bug in double_return() under Perl 5.22.x and 5.24.x that caused
double-free errors in lvalue assignment contexts.
This was caused by unsafe freeing of op tree structures reused by Perl.
The workaround is version-guarded and safe.
- Marked double_return() as stable and safe for use in all supported versions.
- All tests now pass successfully across Perl 5.8.8 through 5.38.
- Confirmed correctness of disarm_temp(), copy_rval(), and copy_rvals() logic on
stack markers.
- Known limitation: In Perl 5.36+, want_lvalue() may fail to detect lvalue context in
some scenarios (e.g., inside eval) due to CxLVAL unreliability (affects
t/11.rreturn.t tests 7 and 14).
- Modernised test suite with Test::More.
- Added detailed comments to all XS functions in Wanted.xs and FirstMultideref.xsh
for better documentation.