Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 8abc8310d73e3bb464961c0a7ae24bb3953d0379
https://github.com/Perl/perl5/commit/8abc8310d73e3bb464961c0a7ae24bb3953d0379
Author: David Mitchell
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
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
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
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
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
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
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