Revision history for Future-XS 0.15 2026-01-13 [BUGFIXES] * Fix a memory leak when `->result` or `->get` on a failed future needs to create a full `Future::Exception` instance 0.14 2025-07-11 [CHANGES] * Make sure to bump refcount of self before calling Future_cancel() * Improved handling of selfstr in debug warnings; include label and constructed-at messages 0.13 2024-10-21 [CHANGES] * Implement the 'also' API for convergent Futures of Future v0.51 0.12 2023-12-27 [BUGFIXES] * Ensure the "not yet ready ..." exception is thrown from the correct caller * Include the current state name in exception message for forbidden state changes 0.11 2023-10-26 [CHANGES] * Module style updates: + Swap unit tests from `Test::More` to `Test2::V0` * Removed the now-redundant `sub import` [BUGFIXES] * Avoid memory leak with combined `->followed_by` + `->then` (RT150198) 0.10 2023-03-28 [BUGFIXES] * Remember to destroy the `catches` HV after immediate `->thencatch` (RT145699) * Many other small refcount-related bugfixes * Provide MAGIC with an `svt_dup` function on threaded perls, so as not to break objects on destruction of sidecar threads * Don't SEGV when DESTROY is run during global destruction and some SVs have already been reclaimed 0.09 2023-03-17 [CHANGES] * Improved rethrow of failures to set a more accurate thrower location file+line number (related to RT145249) 0.08 2022-12-11 [CHANGES] * Now requires perl v5.24 or later This is due to a bugfix for RT145597 which does not work on earlier perls https://rt.cpan.org/Ticket/Display.html?id=145597 [BUGFIXES] * Remember to PUTBACK after POPx'ing after a call_method/call_sv * Throw an exception if instance methods are not called on an instance, rather than segfaulting 0.07 2022-12-06 [BUGFIXES] * Ensure that `$f->retain` on a completed Future::XS returns the future and not undef (RT145168) * Include the real stringified future SV in croak messages rather than the placeholder `(SELF)` text 0.06 2022-09-27 [BUGFIXES] * Bugfixes for convergent constructors on pre-cancelled futures (RT144459) 0.05 2022-09-23 [BUGFIXES] * Always invoke the real ->new method for prototype cloning * Only inflate real Future::Exception instances, not any object * Implement compaction logic for on_cancel AVs * Don't crash on attempts to revoke cancellation from lost futures 0.04 2022-09-13 [CHANGES] * Implement remaining bits of API and behaviour in order to make the full set of Future dist tests pass [BUGFIXES] * Many many (many) bugfixes to refcounting and reference tracking, especially around the on_cancel revocation list * getenv() needs aTHX when running on Windows 0.03 2022-08-16 [CHANGES] * Added many new methods: + the new udata API + the timing capture methods + ->get and ->await + the `_with_f` variant methods * Implement proper subclassing support * Upgrade non-future results from sequencing methods into future instances [BUGFIXES] * Declare test-time dependency of Test::Fatal 0.02 2022-08-11 [BUGFIXES] * Declare test-time dependencies of Test::Identity and Test::Refcount * Before perl 5.36 we'll have to add -std=c99 to the compiler flags * Fix weird typo of `RETVAL` in .xs file * Use `XS_INTERNAL()` rather than `static XS()` because cygwin 0.01 2022-08-10 First version, released on an unsuspecting world.