Revision history for Syntax-Keyword-Try 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.