Revision history for Future-AsyncAwait

0.15    2018-01-24 04:12:04
        [CHANGES]
         * Support older perls back to 5.16 (continues work on RT122252). Just
           5.14 remains unsupported now
         * Neater implementation which avoids hacky workarounds from abusing
           `cv_clone()`

        [BUGFIXES]
         * Avoid using anonymous union in struct SuspendedFrame (thanks ilmari)
           (RT124171)

0.14    2018-01-22 04:42:02
        [CHANGES]
         * Document and test that 'await' works from inside 'do {}'
         * Test that two nested 'async sub's can await nicely

        [BUGFIXES]
         * Fix for 'await' twice inside the same 'foreach' loop (RT124144)
         * Fix handling of ITERVAR save/restore on perl 5.24+
         * Use correct printf format for IVs when debug printing
         * Ensure that captured lexicals from now-dead scopes remain working

0.13    2018-01-18 15:52:03
        [CHANGES]
         * Support older perls back to 5.18 (continues work on RT122252)
        
        [BUGFIXES]
         * Ensure that 'async sub' called in list context doesn't leak its
           input arguments as well as Future result

0.12    2018-01-15 19:02:42
        [CHANGES]
         * Support older perls back as far as 5.20 and 5.22
           (partly solves RT122252)
         * Link to TPCiA talk recording on youtube

0.11    2018-01-07 16:35:25
        [BUGFIXES]
         * Fixes for markstack restoration calculation
         * Don't save/restore PAD slots relating to outer captures or
           protosubs (RT124026)

0.10    2017-08-13 23:25:33
        [BUGFIXES]
         * Implement enough of SAVEt_DESTRUCTOR_X to make try/finally work
         * Fix the remaining integration tests with Syntax::Keyword::Try now
           latest version (0.07) works correctly

0.09    2017-08-13 17:44:48
        [CHANGES]
         * Link to TPCiA talk slides
         * Forbid the use of foreach loops on non-lexicals as that has
           semantic problems due to the implied 'local'
         * Unit-test that plain 'eval{}' works as expected
         * Allow specifically the use of 'local $@' to support common patterns
           around 'eval{}'
         * Unit-test that try/catch from Syntax::Keyword::Try works
        
        [BUGFIXES]
         * Save cx->blk_gimme on CXt_LOOP_* contexts (thanks rurban)
           (RT122673)

0.08    2017/08/10 16:48:52
        [CHANGES]
         * Handle the other CXt_LOOP_* context types, making foreach() loops
           work

0.07    2017/07/11 23:26:48
        [CHANGES]
         * Forbid the use of 'await' outside of 'async sub'
         * Handle CXt_BLOCK contexts
         * Handle SAVEt_CLEARSV and SAVEt_CLEARPADRANGE savestack entries
         * Further documentation rework

        [BUGFIXES]
         * Fix off-by-one error on reading the savestack, resulting in a
           number of false-"TODO" failures being fixed
         * Fix parser logic for parenthesized 'await( ... )' expressions

0.06    2017/06/29 17:43:19
        [CHANGES]
         * Support suspend/resume within while loops and plain loop blocks
         * Import the syntax keywords by default, rather than having to
           request them as an import symbol
         * Added some initial documentation to explain the new syntax

        [BUGFIXES]
         * Declare (for now) dependency on perl 5.24 to prevent older versions
           from attempting it and failing. We hope to support older versions
           back to 5.14 in due course.

0.05    2017/06/27 15:20:54
        [BUGFIXES]
         * Fix await op so it can await multiple times within the same sub

0.04    2017/06/06 18:42:15
        [CHANGES]
         * Suspend and resume the PAD around an await so lexical variables are
           preserved
         * Ensure that anon async subs can suspend/resume - see also
             https://rt.perl.org/Public/Bug/Display.html?id=131519
        
        [BUGFIXES]
         * Ensure MARK stack doesn't upset debugperl

0.03    2017/05/08 21:33:46
        [CHANGES]
         * Handle the value and mark stacks around suspend/await, allowing
           some stack temporaries to be preserved
         * Avoid naming internal functions "Perl_..."

        [BUGFIXES]
         * Ensure that die after await is still caught
         * Avoid C++-style comments and C99-style for() loop variable declarations
           (RT121569)

0.02    2017/05/08 16:55:38
        [CHANGES]
         * Initial tiny implementation of actual suspend/resume on 'await'
