Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 8abc8310d73e3bb464961c0a7ae24bb3953d0379 https://github.com/Perl/perl5/commit/8abc8310d73e3bb464961c0a7ae24bb3953d0379 Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023)
Changed paths: M Porting/deparse-skips.txt Log Message: ----------- deparse-skips.txt: update bignum/t/*.t entries In general, cpan/bignum test scripts don't survive a Deparse round-trip due to the code references in the hints hash getting stringified. Update Porting/deparse-skips.txt with all the new/renamed test scripts under cpan/bignum/t which have been added in the last year (since the last time I checked deparse-skips.txt). For some reason cpan/bignum/t/scope-nested-const.t has started working. Commit: 8d0340233999cfc486a6be1c238cda425091b425 https://github.com/Perl/perl5/commit/8d0340233999cfc486a6be1c238cda425091b425 Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M Porting/deparse-skips.txt Log Message: ----------- Porting/deparse-skips.txt: remove deleted files A few test files listed for skipping are no longer present, so remove them from deparse-skips.txt Commit: 4b363cc54ad9455f95c5443a73dace641061d706 https://github.com/Perl/perl5/commit/4b363cc54ad9455f95c5443a73dace641061d706 Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M lib/B/Deparse.pm M lib/B/Deparse.t Log Message: ----------- Deparse.pm: handle padsv_store in list cxt The recently added op, OP_PADSV_STORE, which combines PADSV and SASSIGN ops into a single op on something like my $lex = 1; wasn't being deparsed correctly in list context, e.g. @foo = (my $x = 1); This is because the pp_list() sub in Deparse.pm directly handles any pad ops itself when it sees a list - such as in my ($x, $y, $z) - rather than leaving pp_padsv(), pp_padsv_store() etc to deal with the individual elements. So update pp_list() to handle a padsv_store op. Note that the second added test, for 'state', didn't actually fail, but I added a test anyway, in case a future change makes the optree such that it goes down this code path instead. Commit: b99e539a81462c41695314d24a2d8d0b500696b4 https://github.com/Perl/perl5/commit/b99e539a81462c41695314d24a2d8d0b500696b4 Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M Porting/deparse-skips.txt Log Message: ----------- deparse-skips.txt: exclude class/*.t None of the class test files currently survive a Deparse round-trip, due to (at first glance) Deparse.pm not recognising the OP_METHSTART op. Mark all these files as expected-to-fail for now. Commit: 90fd99b97a52baa38c0036487cd0a1af17a435b7 https://github.com/Perl/perl5/commit/90fd99b97a52baa38c0036487cd0a1af17a435b7 Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M lib/B/Deparse.pm Log Message: ----------- Deparse.pm: handle signatures under 'use v5.36' Deparse.pm was checking for the equivalent of use feature 'signatures'; being in scope when deciding whether to deparse a sub using signature syntax. However, since 5.36.0, signatures can also be be enabled via use v5.36; but Deparse wasn't checking for this (the latter is stored in hints rather than in features). I haven't added a test as 'use v.5.36' itself currently doesn't deparse cleanly; however, this commit means that #use feature 'signatures'; use v5.36; sub f($x,$y) { return $x + $y; } used to deparse as: sub f { do { die sprintf("Too many arguments for subroutine at %s line %d.\n", (caller)[1, 2]) unless @_ <= 2; ... } but now correctly deparses as: sub f ($x, $y) { ... } Uncommenting the 'use feature' line instead worked both before and now. It was showing up as this failing: cd t; ./TEST -deparse ../lib/builtin.t Commit: 0981555231134f941fdaf99ea16d73ff2eafbc0b https://github.com/Perl/perl5/commit/0981555231134f941fdaf99ea16d73ff2eafbc0b Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M Porting/deparse-skips.txt Log Message: ----------- deparse-skips.txt: skip undef.t, opcount.t for now Both these files have had tests added using this unusual construct: keys %{($h=undef)||{}} which currently gets deparsed as keys %{ {} unless $h=undef } which then confuses the parser. Commit: 1976d5b75935c5e6334ab8100058c7168ccae906 https://github.com/Perl/perl5/commit/1976d5b75935c5e6334ab8100058c7168ccae906 Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M Porting/deparse-skips.txt Log Message: ----------- deparse-skips.txt: remove now-passing tests t/op/hexfp.t and ext/XS-APItest/t/svpeek.t have both started surviving a Deparse round trip. I haven't looked at why, but this commit removes them from the list of expected failures. Commit: 776cc8956ace81a6af8ec98b923f112e0117694e https://github.com/Perl/perl5/commit/776cc8956ace81a6af8ec98b923f112e0117694e Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M Porting/deparse-skips.txt Log Message: ----------- Porting/deparse-skips.txt: skip t/e/pat_re_eval.t The new /(*{...})/ form introduced by v5.37.7-155-gc224bbd5d1 isn't yet correctly deparsed, so for now ignore round-trip Deparse errors from the test file which contains it. Commit: dd7860de060505db36b2d7c63b78e54285cd874a https://github.com/Perl/perl5/commit/dd7860de060505db36b2d7c63b78e54285cd874a Author: David Mitchell <da...@iabyn.com> Date: 2023-05-26 (Fri, 26 May 2023) Changed paths: M Porting/deparse-skips.txt M lib/B/Deparse.pm M lib/B/Deparse.t Log Message: ----------- [MERGE} assorted Deparse fixups Compare: https://github.com/Perl/perl5/compare/7dd90efac96d...dd7860de0605