Revision history for Perl extension Promise::XS: 0.19 - Fix a couple free-after-use bugs. Thank you, @andk! 0.18 Fri 18 Nov 2022 - all() now accepts non-promise values (as Promises.pm does) Thank you, @AnaTofuZ! - Async/await is no longer considered experimental. - Prevent DEBUGGING perls from running problematic Future::AsyncAwait test. (Fixes CPAN smokers.) Warning added in docs. - Fix t/async_await__several_awaits.t’s Mojo test. 0.17 Mon 15 Aug 2022 - Support Future::AsyncAwait’s top-level await. - Internal: Use Easy XS. 0.16 Fri 15 Oct 2021 - Fix typo in AWAIT_GET method. 0.15 Wed 17 Aug 2021 - Hard-code the name of the converter sub in XS. This improves compatibility with perlcc. - Skip Future::AsyncAwait tests on perls where that module expects to work with Future.pm rather than Promise::XS. (cf. https://rt.cpan.org/Public/Bug/Display.html?id=137723) 0.14 Wed 24 Feb 2021 - Fix hold-ref test’s skip logic for old Future::AsyncAwait versions. 0.13 Tue 23 Feb 2021 - Experimental async/await support added. - Skip failing (not super-consequential) test on 5.8. - Fix CPAN.pm installation problems. 0.12 Wed 13 Jan 2021 - Detect and throw on infinite recursion (issue #4). 0.11 Mon 26 Oct 2020 - Make $Promise::XS::VERSION exist. (Fixes an external packaging tool.) - Add GitHub CI. 0.10 Fri 17 Jul 2020 - BUG FIX: Fix clear_unhandled_rejection() to work again. - BUG FIX: Pre-resolved promises no longer break race(). - resolved() and rejected() are now implemented in XS rather than Perl. - Create all() and race() methods in Promise::XS::Promise. - finally() now creates its own internal result that has to be caught, or else an uncaught-rejection warning displays. The goal here is to match ES6’s behavior—as closely as possible, anyhow, given this library’s support for multi-part resolutions and rejections. - Rejections with no defined values now trigger a warning. - Resolve a few inconsequential compiler warnings. 0.09 Fri 6 Mar 2020 - Fix uninitialized pointer. 0.08 Mon 24 Feb 2020 - BREAKING CHANGE (minor): finally() is now closer to ECMAScript’s specification. Toward that end, finally() callbacks no longer receive arguments, and they handle exceptions and returned rejected promises as ECMAScript’s finally() callbacks handle them. - A warning is now thrown if a promise is the first of multiple returns from a promise callback. - Speed up memory-leak detection on promise creation. 0.07 Tue 11 Feb 2020 - Support old event loop versions that lack zero-timer methods. - Report event loop versions in distribution tests. 0.06 Thu 6 Feb 2020 - Fix compilation on some old thread-multi perls. 0.05 Sat 1 Feb 2020 - Test fixes. 0.04 Fri Jan 31 2020 - Trivial documentation fix. 0.03 Mon Jan 6 2020 - Optimize all() and race() by reducing number of Perl callbacks. - Fix C99 dependency. - Specify disabled prototypes in XS. - Skip failing test in Win32. (Fix maybe forthcoming … ?) - Attempt to support ithreads. (Thank you, RANDIR!) - Update documentation to include caveats about Windows & threads. - Add GitHub data to Makefile.PL. 0.02 Mon Dec 30 2019 - Make then(), catch(), and finally() create objects in the same class as the context object. Add documentation about subclassing. 0.01 Sun Dec 29 2019 - Initial release