Revision history for Perl module Wanted

v0.1.2 2026-06-14T07:25:04+0900
    - Fixed a latent NULL dereference in want_lvalue() when upcontext() does not return
      a valid context frame.
    - Hardened want_lvalue() further by checking that the returned context has a
      subroutine CV before calling CvLVALUE().
    - Skipped the threaded subtest in t/09.threads.t on Solaris threaded with Perl 5.10.0,
      where the old ithreads build can segfault during global destruction after all thread
      subtests have passed.
    - No public API changes.

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.
