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