Future
view release on metacpan or search on metacpan
Revision history for Future
0.52 2025-07-11
[CHANGES]
* Expose `Test::Future::Deferred->flush` as a method for test scripts
* Include constructed-at message in debug warnings
0.51 2024-10-21
[CHANGES]
* Permit convergent futures to not cancel some component futures,
simplifying the use of `->without_cancel`
* Give a more obvious error message when a `Test::Future::Deferred`
runs out of things to do
* Various small module style updates to documentation, unit tests,
etc
* Now requires Perl version 5.14 or later
0.50 2023-03-17
[CHANGES]
* Swap all unit tests from `Test::More` to `Test2::V0`
* Avoids test_requires on `Test::Refcount` or `Test::Fatal`
[BUGFIXES]
* Fix documentation minisynopsis on `->udata`
* Set `@CARP_NOT` so that `AWAIT_GET` rethrow appears to come from
the right location (RT145249)
0.49 2022-10-17
[CHANGES]
* Big reshuffle to move most code into Future/PP.pm in order to
support an optional Future-XS distribution too
* Attempt to load Future::XS by preference if it is available
* Additional unit tests for cornercases of XS implementation
* Remember to provide the AWAIT_WAIT API method
* Migrated Future::Queue out into its own distribution
[BUGFIXES]
* Bugfixes and unit tests for convergents on pre-cancelled futures
(RT144459)
0.48 2022-01-26
[CHANGES]
* Implement the new AWAIT_ON_CANCEL API shape for Future::AsyncAwait
[BUGFIXES]
* Make sure to set rtime for immediate futures (RT134620)
0.47 2021-01-01
[BUGFIXES]
* Don't weaken() the waiting future in Future::Mutex as that causes
it to be dropped in some situations
0.46 2020-10-19
[CHANGES]
* Provide AWAIT_CHAIN_CANCEL named method for compatibility with
upcoming Future::AsyncAwait::Awaitable method rename
[BUGFIXES]
* Ensure that Future::Mutex returns proper cloned future instances
when waiting (RT133563)
0.45 2020-04-22
[CHANGES]
* API changes to make duck-typing closer to Promises/A+ et.al:
+ Allow sequencing methods to yield non-Future results; upgrade
them to being Future-wrapped
+ Add ->resolve and ->reject as aliases of ->done and ->fail
* Recognise PERL_FUTURE_STRICT environment variable to restore
previous sequencing method behaviour
[BUGFIXES]
* ->without_cancel still needs to cancel result if caller is
cancelled
* Ensure all Future::AsyncAwait interop methods properly respect
subclassing
0.44 2020-03-25
[CHANGES]
* Added ->result; use that in unit tests and docs where appropriate
* Slight performance boost in internals by direct field access rather
than accessor methods
* Document ->await properly; make it wait until ready
* Discourage ->block_until_ready
0.43 2020-01-07
[CHANGES]
* Implement the Future::AsyncAwait::Awaitable API methods directly
0.42 2019-11-12
[CHANGES]
* Added Future::Queue
[BUGFIXES]
* Remove already-completed futures from the on_cancel chain of others
to avoid the list growing arbitrarily large in some situations; e.g
easily provoked by long loops in Future::AsyncAwait
0.41 2019-06-13
[CHANGES]
* Added Future::Exception->throw
0.40 2019-05-03
[CHANGES]
* Added Future::Exception (RT129373)
* Make ->get throw a Future::Exception and ->fail recognise one
* Better documentation of the failure category parameter
* Added a properly-documented ->block_until_ready
0.39 2018-09-20 14:03:05
[CHANGES]
* Announce done_cb/fail_cb/cancel_cb as deprecated in favour of curry
* Provide ->wrap_cb method (experimental)
[BUGFIXES]
* Ensure that Test::Future does not retain Futures once they are
complete (RT101128)
* 'use Future' in Future::Utils (RT102167)
0.30 2014/11/26 14:29:28
[CHANGES]
* Rename 'dependent' futures to 'convergent'
* Removed examples/ scripts that now exist as independent modules
* Added ->without_cancel
* Sanity-check the $code argument to ->on_{ready,done,fail,cancel} to
ensure it is callable or a Future
[BUGFIXES]
* Ensure that 'ready_at' is always set in DEBUG mode
* Fix DEBUG 'lost_at' line number reporting tests for latest
bleadperl (RT99002)
* Ensure that if Future::Utils::repeat condition code dies, that is
passed to the result Future and not propagated to the caller
(RT100067)
* Failure by returning a non-Future from a sequencing code block
should report as a failed Future, not throw exception to caller
0.29 2014/07/17 12:18:12
[CHANGES]
* Added Test::Future
* Stronger deprecations - repeat {} on failures warns every time,
->and_then / ->or_else warn once
[BUGFIXES]
* Define the behaviour of dependent futures when components are
cancelled. (Partially fixes RT96685)
* Use Module::Build->prompt (RT96409)
* Ensure that repeat on an empty foreach list or empty generator
without 'otherwise' behaves correctly, just yield an immediate
0.28 2014/06/08 22:43:40
[CHANGES]
* Added ->label
* Added ->btime, rtime, elapsed tracing timers
* Better handling of 'breaks' version detection
0.27 2014/06/06 17:42:27
[BUGFIXES]
* Depend on Carp 1.25 for the new message format with trailing
period, so tests work
0.26 2014/06/01 12:52:53
[CHANGES]
* Added ->is_failed accessor
* Implement ->export_to_level in Future::Utils
* Print a warning about lost sequence Futures
* Allow Future->done and Future->fail as simple class constructors
to return immediates
* Added Future->unwrap
[BUGFIXES]
* Ensure that sequence futures are weaken()ed in the forward
direction.
**NOTE** This will potentially break existing code that depended on
strong references. This old code was, however, broken.
0.25 2014/02/22 03:47:08
[BUGFIXES]
* Fix warning-matching test in unit test for both older and newer
versions of Carp
0.24 2014/02/21 17:57:49
[CHANGES]
* Have repeat print a warning if it is asked to retry over a failure
* Change documentation to suggest try_repeat instead of repeat for
retries over failure
* Check at call time that sequencing callbacks really are callable,
leading to neater error messages (RT93164)
0.23 2014/01/19 15:26:55
[CHANGES]
* Link to Futures advent calendar 2013
* Fixes/additions to Phrasebook documentation, including section
about tree recursion
[BUGFIXES]
* Ensure that late addition of additional items to a fmap foreach
array works correctly even with concurrency
0.22 2014/01/12 03:12:18
[CHANGES]
* Ignore ->done or ->fail on cancelled Futures
* Added ->then_done, ->then_fail, ->else_done, ->else_fail
* Neaten up naming of fmap* family - provide both long and short
names for each function
* Added Future::Utils::call and call_with_escape
* Ensure that dependent futures on subclasses tries to use derived
futures as prototype if possible
0.21 2013/12/29 18:14:41
[CHANGES]
* Major performance improvement by folding out some layers of sub {}
wrapping in sequencing operations
* Added ->then_with_f and ->else_with_f
[BUGFIXES]
* Don't start another trial after cancelling a repeat() (RT91147)
0.20 2013/11/18 19:14:27
[CHANGES]
* Include an indication of done/failed/cancelled status of a Future
when ->done or ->failing an already-ready one
[BUGFIXES]
* Declare requires perl 5.8 because it fails on 5.6 smokers - no idea
why
* Fix a couple of typoes in docs (RT89185)
0.19 2013/09/27 13:31:16
[BUGFIXES]
* Guard against odd things happening during ->cancel at global
destruction (RT88967)
( run in 4.042 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )