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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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