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

  Changed paths:
    M deb.c

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


  Commit: 5df56b316104c1316407e5e963d8c3798a8cba8d
      
https://github.com/Perl/perl5/commit/5df56b316104c1316407e5e963d8c3798a8cba8d
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-15 (Tue, 15 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: 107c29a96901c7fbd4a46a1510c95990036c2968
      
https://github.com/Perl/perl5/commit/107c29a96901c7fbd4a46a1510c95990036c2968
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-15 (Tue, 15 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: 4d0024a2d671677404003dc7ded6aa4bff742034
      
https://github.com/Perl/perl5/commit/4d0024a2d671677404003dc7ded6aa4bff742034
  Author: Tony Cook <t...@develop-help.com>
  Date:   2025-04-15 (Tue, 15 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/db1938c5ea74...4d0024a2d671

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

Reply via email to