Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 019cd2fc13f3da151d32c39af0a78cc2c728ee95
      
https://github.com/Perl/perl5/commit/019cd2fc13f3da151d32c39af0a78cc2c728ee95
  Author: Paul "LeoNerd" Evans <[email protected]>
  Date:   2026-03-02 (Mon, 02 Mar 2026)

  Changed paths:
    M lib/B/Deparse.t

  Log Message:
  -----------
  Split tests for B::Deparse refaliasing into two sections

The previous giant list was too big to debug if a single test case
happened to fail


  Commit: de3c4f2f659a682aafcac9e1c03e461fdb873e20
      
https://github.com/Perl/perl5/commit/de3c4f2f659a682aafcac9e1c03e461fdb873e20
  Author: Paul "LeoNerd" Evans <[email protected]>
  Date:   2026-03-02 (Mon, 02 Mar 2026)

  Changed paths:
    M cop.h
    M inline.h
    M op.c
    M pp_ctl.c

  Log Message:
  -----------
  Implement `foreach \LEXICAL (...)` without lvref magic

Previously, commit 091a08d8047 made a more efficient implemention of
`foreach` loops where the iteration variable was declared using
`\my $VAR`. A cornercase of that logic was missed, wherein the iteration
variable was *previously* declared as a lexical before the foreach loop
itself. That resulted in an optree using `OP_SREFGEN` on `OP_LVREF`
directly, rather than on a `OP_PADxV`, so a case was missed.

By covering this case here as well, we now manage to remove any uses of
`PERL_MAGIC_lvref` to implement `foreach` loops on refaliased lexicals.
The code to implement those now-dead cases has been removed and replaced
with an `assert(mg->mg_obj)`, to cover the still-remaining case of
iteration over a refalias to a package variable. Those may be covered in
a later commit.


Compare: https://github.com/Perl/perl5/compare/3ecc21b425cd...de3c4f2f659a

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to