summaryrefslogtreecommitdiff
path: root/Changes
diff options
context:
space:
mode:
Diffstat (limited to 'Changes')
-rw-r--r--Changes273
1 files changed, 273 insertions, 0 deletions
diff --git a/Changes b/Changes
new file mode 100644
index 0000000..59a3f2b
--- /dev/null
+++ b/Changes
@@ -0,0 +1,273 @@
+Revision history for Future
+
+0.32 2015/03/10 19:54:22
+ [CHANGES]
+ * Documentation updates for new ->wrap_cb method
+
+ [BUGFIXES]
+ * Empty convergents should respect subclassing (RT97537)
+ * Adjust loss-report regexp for bleadperl (RT99002 again)
+ * Make trailing periods in warning tests optional, to account for
+ Carp version changes (RT100685)
+
+0.31 2015/03/08 17:50:06
+ [CHANGES]
+ * Added debugging warning when destroying a failed Future that has
+ not reported its failure (RT102198)
+ * Have ->and_then / ->or_else die immediately to further their
+ deprecation
+ * 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)
+
+0.18 2013/09/20 19:09:57
+ [CHANGES]
+ * Added 'try_repeat' and 'try_repeat_until_success' aliases
+ * @CARP_NOT trust between Future and Future::Utils
+
+ [BUGFIXES]
+ * Fix to concurrent non-immediate + immediate fmap* return values
+
+0.17 2013/09/07 16:53:47
+ [CHANGES]
+ * Performance improvement by using direct member access instead of
+ accessor methods
+ * Documentation updates; suggestion of documentation style for
+ Future-returning code
+
+ [BUGFIXES]
+ * Respect subclassing of immediate->followed_by and dependent futures
+ with mixed subclass or immediate components
+
+0.16 CHANGES:
+ * Proper behaviour of ->wait_all and ->needs_all on an empty list -
+ just return empty immediate done
+ * Proper behaviour of ->wait_any and ->needs_any on an empty list -
+ return an immediate failure
+ * Performance improvement to ->done for immediate Future->new->done
+ * Keep a count of pending child futures to avoid quadratic behaviour
+ due to linear scan of children every time one completes
+ * Improve efficiency of Future::Utils::repeat and fmap* when trials
+ return immediates
+ * Make repeat and fmap* 'return' argument optional by cloning the
+ first non-immediate trial
+ * Rework unit tests to avoid dependency on Test::Warn
+
+0.15 CHANGES:
+ * Added Future->call constructor
+ * Fixed reference-retaining bug in Future's on_cancel callback list
+ * Ensure that ->cancel returns $self even on immediates
+ * Documentation updates to mention ->wrap and ->call, and the fmap
+ family
+
+0.14 CHANGES:
+ * Added Future->wrap constructor
+ * Added Future::Utils::fmap* family of functions
+
+ BUGFIXES:
+ * Fixed a precedence bug in 'and' vs &&
+
+0.13 CHANGES:
+ * Added ->then and ->else methods; like ->and_then but code is passed
+ result directly instead of invocant future
+ * Added repeat { ... } foreach, otherwise argument to set final
+ result and also handle empty lists
+ * Added repeat { ... } generate
+ * Turn repeat { ... } code block exceptions into failed futures
+ * Ensure that ->on_cancel returns $self (RT85134)
+ * Documentation / Phrasebook updates to demonstrate newly added
+ features
+
+0.12 CHANGES:
+ * Take a 'return' argument to Future::Utils::repeat; deprecate the
+ trial-cloning feature for subclasses
+ * Have ->followed_by/etc... print a warning in void context
+ * Throw an exception when ->followed_by/etc.. code does not yield a
+ Future (RT84188)
+ * Ensure that ->needs_all/->needs_any work correctly on a mix of
+ immediate and pending Futures (RT84187)
+ * Ensure that ->on_done/->on_fail always return invocant (RT84313)
+ * Ensure that ->on_ready($f) works on cancelled Futures (RT84312)
+
+0.11 CHANGES:
+ * Added Future::Phrasebook documentation file
+ * Ensure that exceptions thrown from ->followed_by code block are
+ caught and turned into failed Futures
+ * Fix filename regexp matches for unit-tests so they work on Windows
+
+0.10 BUGFIXES:
+ * Account for newer Carp version in unit tests, which appends
+ trailing period to messages
+
+0.09 CHANGES:
+ * Split ->fail method into new ->die call, only append caller
+ file/line to the exception in the latter
+ * Various documentation and example improvements
+
+0.08 CHANGES:
+ * Ignore attempts to cancel already-complete or already-cancelled
+ futures, or to attach ->on_cancel callbacks to them
+ * $future->get should return the first result in scalar context
+ * Added Future::Utils with repeat { ...} and
+ repeat_until_success { ... } looping constructs
+
+ * Link to LPW2012 talk slides
+
+0.07 CHANGES:
+ * Leak debugging
+
+0.06 CHANGES:
+ * Remembered to actually include the example scripts. No other actual
+ code changes.
+
+0.05 CHANGES:
+ * Respect subclassing by allowing ->new on instances
+ * Allow subclasses to provide an ->await method which will be used
+ by ->get and ->failure
+ * Added some example scripts to demonstrate how to use Futures with
+ various event systems
+
+0.04 CHANGES:
+ * Fix implementation of sequenced futures to work properly on
+ immediates
+ * Ensure that future->future chaining via callbacks works correctly
+ on immediates
+ * Link to "curry" in the docs about CODE-returning convenience
+ accessors ->done_cb, ->fail_cb and ->cancel_cb
+
+0.03 INCOMPATIBLE CHANGES:
+ * Future->needs_all and Future->needs_any now return dependents'
+ results
+
+ CHANGES:
+ * Removed $future->( ... ) callable override
+ * Pass $f1 to ->or_else code block by symmetry with ->and_then
+ * Added $f->followed_by
+ * Added Future->wait_any dependent future constructor
+ * Rearranged documentation and added more examples
+
+0.02 CHANGES:
+ * Rearranged non-leaf future logic
+ * Added {pending,ready,done,failed,cancelled}_futures accessors
+ * Added Future->needs_any constructor
+
+0.01 First version, released on an unsuspecting world.
+