The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension Promises

0.90 Saturday, Feb. 8th, 2014
    !! ----------------------------------- !!
    !!   BACKWARDS COMPATIBILITY WARNING   !!
    !! ----------------------------------- !!
    !! This is the first step towards full !!
    !! compatibility with the Promises/A+  !!
    !! spec, at which we will declare this !!
    !! to be module to be 1.0              !!
    !! ----------------------------------- !!

      NOTE: Pretty much everything in this
            release is thanks to the work
            of Clinton Gormley++

    - Fixed the behavior of finally() to make
      sure @results are passed along correctly
    - Handle any "then"-able object to be returned
      as a result, instead of only accepting
      Promise objects
    - then/done/finally now accept both callbacks
      (CODE refs) and "Callable" objects (objects
      of classes that overload the CODE de-ref
      operator)
    - New docs in Promises::Cookbook::GentleIntro.
    - Doc fixes and CPAN repository metadata added,
      thanks to David Steinbrunner for this


0.08 Tuesday, Jan. 21, 2014
    !! Thanks to clinton gormley for all these
    !! changes. Please take note of the backcompat
    !! breaking change for finalize().

    - then() callbacks are now wrapped in
      an eval block to prevent fatal exceptions
      and to ensure that rejected promises
      are propagated correctly
    - renamed finalize() to done()
    - added catch() sugar which takes just
      an error handler
    - added finally() handler which will
      always be called, regardles of
      whether the promise is resolved
      or rejected, much like try/catch/finally

0.07 Saturday, Jan. 18, 2014
    - fixing a issues with localizing
      exceptions that were found by CPAN
      testers
      - thanks to clinton gormley for
        providing the fix for this

0.06 Friday, Jan. 17, 2014
    - make sure to clear both resolved and
      rejected callbacks after resolution,
      thanks to clinton gormley for this.
    - add event-loop specific backends to
      allow promises to be resolved in an
      async manner (as Promises/A+ suggests)
      - thanks to clinton gormley for
        starting this feature
      - backend created for AE, AnyEvent
        and EV
      - backend for Mojo::IOLoop, thanks
        to clinton gormley for this
      - tests added
    - add in finalize() operator for ending
      a chain of promises (see docs for more
      info)
      - thanks to clinton gormley for this
        feature, docs and tests

0.05 Monday, Dec. 23, 2013
    - catch exceptions in any callback and
      call reject if they happen
    - the 'promise' method on deferred objects
      will now return a new Promises::Promise
      instance each time it is called
        - this prevents the memory cycle we
          originally had

0.04 Thursday, Oct. 17, 2013
    *** DEPRECATION WARNING ***
    - The 'when' helper in Promises.pm is being
      deprecated because it clashes with the
      perl keyword. See RT #84024 for more info.
    - 'when' renamed to 'collect'
        - tests and docs adjusted accordingly

0.03 Sunday, Feb. 17th, 2013
    - added a `deferred` helper function to Promises.pm

    - fixed the reject call in `when`
      (thanks to rafl for this)
        - added tests for this

    - large doc reworking
        - moved things into a cookbook
        - added example of usage with Mojo::IOLoop
        - added comparison with Scala futures
            - this still needs some work, but the
              basics are ther

0.02 Saturday, Nov. 24th, 2012
    - add several predicate methods to help when
      interrogating status, this resolves RT #81278.
        - thanks to Toby Inkster for this
    - fixed error chaining so that the result of an
      error in one step of the chain will be passed
      onto the next step as well, this resolves
      RT #81358.
        - thanks to TOSHIOITO for this
    - made error callbacks optional and ensured that
      the errors will bubble to the next promise in
      the chain, this resolves RT #81356.
        - thanks again to TOSHIOITO for this

0.01 Friday, Nov. 16th, 2012
    - First release to an unsuspecting world