Revision history for Syntax-Keyword-Try

0.31    2025-09-23
        [BUGFIXES]
         * Adjust for new `cop_disable_warning()` API added in Perl 5.43.4, to
           replace no-longer-visible Perl_new_warnings_bitfield().
           https://github.com/Perl/perl5/issues/23609

0.30    2024-08-29
        [CHANGES]
         * Updates for XS::Parse::Keyword v0.35: new container macro names
         * Updated to latest hax/ support files: avoids SAVEt_LONG, now
           removed in perl 5.41.3

0.29    2023-07-13
        [CHANGES]
         * Updates to compile cleanly on perl v5.38
         * Remember to implement `no Syntax::Keyword::Try` to disable the
           syntax
         * Swap all the unit tests to `Test2::V0`

0.28    2022-12-08
        [CHANGES]
         * Account for the new structure of ->cop_warnings in perl v5.37.6
         * Updated to latest hax/ support files; accounting for newPADxVOP in
           latest bleadperl

0.27    2022-02-22
        [CHANGES]
         * Updates to support Feature::Compat::Try 0.05 with new `finally {}`
           blocks

0.26    2021-10-12
        [CHANGES]
         * Many internal updates to hax/ support files

        [BUGFIXES]
         * Fix try { return } to work correctly in all contexts without
           upsetting -DDEBUGGING perls

0.25    2021-06-01
        [CHANGES]
         * Rewrite parsing logic to use XS::Parse::Keyword 0.06
         * Removed the new-deprecated `try do { ... }` experimental syntax
         * Updated docs now that 5.34 is officially released, including
           `use feature 'try'`.

0.24    2021-05-10
        [CHANGES]
         * Deprecate the `try do { ... }` (experimental) syntax now that
           try-in-do works reliably. It will be removed soon because it gets
           in the way of converting the parser logic to XS::Parse::Keyword
         * Add documentation about the core `use feature 'try'` and
           Feature::Compat::Try module
         * Added an initial attempt at B::Deparse logic

0.23    2021-03-27
        [CHANGES]
         * Unit tests and documentation of the handling of the final-value
           semantics of `do { try ... }`
         * Also mention core's `feature 'try'` in documentation
         * Gives notice that the experimental 'try_value' feature is now
           discouraged and will eventually be removed

0.22    2021-03-26
        [CHANGES]
         * Preserve wantarray context within the try {} block (RT133616)
         * List-context `try do {}` now works fine as well
         * Apply unit-testing for RT134790

0.21    2021-01-22
        [CHANGES]
         * Add some import configuration options required to make
           Feature::Compat::Try work. Currently unit-tested but undocumented.

0.20    2020-11-24
        [BUGFIXES]
         * Fix for perl 5.14 by #include'ing hax/ files in the right order

0.19    2020-11-24
        [CHANGES]
         * Avoid the core Off() and Bit() macros as they were removed after
           perl 5.33.3
         * Support :experimental(try_value) to activate and silence the
           warning
         * Add documentation about the scalar context propagation issue of
           RT124229

0.18    2020-08-01
        [CHANGES]
         * De-experiment the `catch ($var)` syntax

0.17    2020-07-31
        [CHANGES]
         * Ensure that `catch ($var)` does not retain exception value after
           block exit
         * Docs fixes for clarity on experimental status of `catch ($var)`

        [BUGFIXES]
         * Ensure sv_isa_sv is a macro for aTHX on threaded perls

0.16    2020-07-23
        [CHANGES]
         * Provide the `:experimental` import tag as a nicer way to silence
           experimental warnings

        [BUGFIXES]
         * Don't name a variable `class` because it upsets some C compilers
           (RT133043)

0.15    2020-07-21
        [CHANGES]
         * Experimental typed `catch (VAR ...)` conditions

0.14    2020-07-07
        [CHANGES]
         * Optional experimental syntax of `catch (VAR)` instead of previous
           experimental `catch my VAR`
         * Mark `catch my VAR` as deprecated
         * Added explicit use VERSION declarations to every perl file

0.13    2020-06-29
        [BUGFIXES]
         * Pack correct MANIFEST to include hax/ files

0.12    2020-06-29
        [CHANGES]
         * Optional and experimental allocation of a new lexical under
           `catch my $VAR` syntax (RT130702). However, this syntax may not
           survive long, as part of the ongoing typed catch design work.

        [BUGFIXES]
         * Work around perl versions prior to 5.22 built with -DDEBUGGING
           getting upset about new*OP() being invoked with OP_CUSTOM
           (RT128562)

0.11    2019-09-07
        [CHANGES]
         * Use wrap_keyword_plugin() instead of direct access to
           PL_keyword_plugin
        [BUGFIXES]
         * Build OP_ENTER/OP_LEAVE structure the correct way so perl 5.31.3
           doesn't crash
         * Fix OP_NEXT/OP_LAST/OP_REDO mangling for perl 5.31.3 to avoid
           CPU spin (RT129975)

0.10    2019-06-13
        [CHANGES]
         * Added experimental value-semantic expression form (RT121267)
         * Document that the module works nicely with Future::AsyncAwait
         * Ignore import symbols `catch` and `finally`

        [BUGFIXES]
         * Fixed spelling mistakes in documentation (patch from debian)
           (RT124140)

0.09    2017-11-08 14:33:19
        [BUGFIXES]
         * Make module loading thread-safe on perls 5.16 and above. (RT123547)
           Safety on perl 5.14 is still an unsolved problem.

0.08    2017-09-14 17:26:20
        [BUGFIXES]
         * Handle the OpSIBLING of an OP_{NEXT,LAST,REDO} correctly (RT123040)

0.07    2017-08-13 23:11:39
        [CHANGES]
         * Capture 80await+try.t unit test from Future-AsyncAwait
         * Improved implementation of OP_PUSHFINALLY to help make try/finally
           inside async/await subs work

        [BUGFIXES]
         * Make 'eval { try { return ... } }' work correctly
         * Make 'return LIST' inside try{} blocks work correctly (RT122795)
            - with thanks to Zefram for code inspiration

0.06    2017/06/06 14:59:30
        [CHANGES]
         * Clarify documentation about the behaviour of try {} blocks without
           catch {}; include comparison with other modules

        [BUGFIXES]
         * Fix typo in #ifdef test (RT119709)
         * Restore C89 compatibility again (RT119665)

0.05    2017/06/05 14:04:06
        [CHANGES]
         * Add a SEE ALSO link pointing at the value-semantics RT ticket

        [BUGFIXES]
         * Fix cLISTOP->op_last field to keep DEBUGGING builds happy
           (RT119095)

0.04    2016/11/25 15:06:18
        [CHANGES]
         * Removed stale documentation about now-fixed warnings from
           next/last/redo

        [BUGFIXES]
         * Fix C code for C89 compatibility (RT118950)
         * Localise $@ around try/catch (RT118415)

0.03    2016/11/24 10:27:45
        [CHANGES]
         * Default import of 'try' keyword
         * Suppress 'exiting' warning around next/last/redo inside a try block
         * Don't bother outputting a Makefile.PL

0.02    2016/09/06 21:29:25
        [BUGFIXES]
         * Use OpSIBLING() macro for compatibility for perl 5.25.x
         * Documentation fixes

0.01    2016/09/05 22:19:33
        First version, released on an unsuspecting world.
