Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 96673a4bb36a973a9a4c5cd0e5727a799789a32c
      
https://github.com/Perl/perl5/commit/96673a4bb36a973a9a4c5cd0e5727a799789a32c
  Author: Lukas Mai <lukasmai....@gmail.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M op.c
    M t/op/for-many.t

  Log Message:
  -----------
  newFOROP: fix crash when optimizing 2-var for over builtin::indexed

OP_ENTERSUB isn't necessarily a LISTOP, apparently, so we can't just
grab its op_last. Instead, copy/paste logic from elsewhere in op.c to
find the cvop.

Also, avoid crashing on "fake" pad entries that represent lexical subs
from outer scopes by climbing up the scope chain until we reach a real
pad entry.

Fixes #23405.


  Commit: 55ce815fbe0b4bd9a5bc1484cf48330d53977d75
      
https://github.com/Perl/perl5/commit/55ce815fbe0b4bd9a5bc1484cf48330d53977d75
  Author: Lukas Mai <lukasmai....@gmail.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M t/perf/opcount.t

  Log Message:
  -----------
  perf/opcount.t: ensure imported builtins are optimized

When I saw (in #23429) that

    use builtin qw(indexed);
    sub { for my ($x, $y) (indexed) {} }

crashes, but

    sub { for my ($x, $y) (builtin::indexed) {} }

works fine, I realized that optrees for calls to lexically imported subs
look different from calls to package subs.

This commit make sure both call variants are optimized to direct ops.


  Commit: 7aa27d7640d9bdffb6f6a47760bc18c38c0caa99
      
https://github.com/Perl/perl5/commit/7aa27d7640d9bdffb6f6a47760bc18c38c0caa99
  Author: Lukas Mai <lukasmai....@gmail.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M pod/perldelta.pod

  Log Message:
  -----------
  perldelta for the 2-var 'for' crash (#23405)


  Commit: 404e37b805ecb8437a20016b131eb434a4b0b21e
      
https://github.com/Perl/perl5/commit/404e37b805ecb8437a20016b131eb434a4b0b21e
  Author: Lukas Mai <lukasmai....@gmail.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M op.c

  Log Message:
  -----------
  op.c: factor out repeated entersub code

... for locating the beginning of the argument list and the end (which
is the entered sub itself) in the op tree.


Compare: https://github.com/Perl/perl5/compare/d83bd2549fce...404e37b805ec

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

Reply via email to