Branch: refs/heads/smoke-me/tonyc/16608-leave-smartmatch-sub
  Home:   https://github.com/Perl/perl5
  Commit: 637f82e127dc2def1518375895413113e699c995
      
https://github.com/Perl/perl5/commit/637f82e127dc2def1518375895413113e699c995
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-09 (Wed, 09 Apr 2025)

  Changed paths:
    M deb.c

  Log Message:
  -----------
  PERLSI_REGCOMP: add debugging string


  Commit: 095b2907046834ab715f95587d3dcfe1d294ac20
      
https://github.com/Perl/perl5/commit/095b2907046834ab715f95587d3dcfe1d294ac20
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-09 (Wed, 09 Apr 2025)

  Changed paths:
    M cop.h
    M deb.c
    M pp_ctl.c
    M t/lib/croak/pp_ctl

  Log Message:
  -----------
  smartmatch: fail to find the loop instead of crashing

dopoptoloop() or dopoptolabel() would find a loop outside the sub
called from call_sv() and rewind the context and save stack to outside
the context set up by call_sv(), crashes and panics ensure.

Switching stacks here also starts a new context stack, so the outer
loop isn't found and we don't crash.

Most other callers to call_sv() (or call_method() etc) do the same.

I'm not entirely sure about passing flags = 1 to push_stackinfo(),
this matches pp_sort, but not other callers.

Fixes #16608


  Commit: 94629dcff6ff15b5b7ada886bfae289d3e12d9e7
      
https://github.com/Perl/perl5/commit/94629dcff6ff15b5b7ada886bfae289d3e12d9e7
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-09 (Wed, 09 Apr 2025)

  Changed paths:
    M class.c
    M cop.h
    M deb.c
    M t/lib/croak/class

  Log Message:
  -----------
  class.c, injected_constructor: prevent loop exits exiting

Using last, next etc would pop the context stack to above the
call_sv(), generally resulting in a crash or assertion failure.

The search the context to pop to stops at the top of the current
context stack, and PUSHSTACKi() switches to a new stack, preventing
the search from finding any loop outside the call_sv()

Similar to #16608


  Commit: b903a339329fb290dc23ee1ef52116b477b80746
      
https://github.com/Perl/perl5/commit/b903a339329fb290dc23ee1ef52116b477b80746
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-09 (Wed, 09 Apr 2025)

  Changed paths:
    M pod/perldelta.pod

  Log Message:
  -----------
  perldelta for smartmatch, class constructors exiting with loop exits


Compare: https://github.com/Perl/perl5/compare/637f82e127dc%5E...b903a339329f

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

Reply via email to