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

Reply via email to