Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 919f63a397b96ef28103ff93858ac7036196a4db
https://github.com/Perl/perl5/commit/919f63a397b96ef28103ff93858ac7036196a4db
Author: Karl Williamson <[email protected]>
Date: 2026-04-09 (Thu, 09 Apr 2026)
Changed paths:
M embed.h
M handy.h
Log Message:
-----------
handy.h: Add PREVENT_LVALUE
This macro forces a compilation error if called from an lvalue context
Commit: 6cceb96758b65264f42e2ee8df8d8f1b93d28f66
https://github.com/Perl/perl5/commit/6cceb96758b65264f42e2ee8df8d8f1b93d28f66
Author: Karl Williamson <[email protected]>
Date: 2026-04-09 (Thu, 09 Apr 2026)
Changed paths:
M regcomp.h
Log Message:
-----------
regcomp.h: White-space only
Make comment not have continuations
Commit: 2c8983ca850e83b3aa727c54cc956bd2bd606f9e
https://github.com/Perl/perl5/commit/2c8983ca850e83b3aa727c54cc956bd2bd606f9e
Author: Karl Williamson <[email protected]>
Date: 2026-04-09 (Thu, 09 Apr 2026)
Changed paths:
M regcomp.c
M regcomp.h
M regcomp_internal.h
M regcomp_study.c
M regcomp_trie.c
Log Message:
-----------
regcomp: Create macro to set NEXT_OFF, and use it
This macro has an assert that the value fits in the space available.
This centralizes that error check.
Commit: bc855d22dbdbfc9e86bdae8eda9946d3cb0e7aef
https://github.com/Perl/perl5/commit/bc855d22dbdbfc9e86bdae8eda9946d3cb0e7aef
Author: Karl Williamson <[email protected]>
Date: 2026-04-09 (Thu, 09 Apr 2026)
Changed paths:
M regcomp.h
Log Message:
-----------
regcomp.h: Make sure can't use NEXT_OFF to assign to
The previous commit created a macro specifically for setting the value
into NEXT_OFF. This commit makes sure that the previous way to do this
no longer compiles, so that someone won't unwittingly add new code that
would otherwise bypass the check in the new set macro.
Commit: 632b9fb4635c67cee75f4859dceb47e8207a7b55
https://github.com/Perl/perl5/commit/632b9fb4635c67cee75f4859dceb47e8207a7b55
Author: Karl Williamson <[email protected]>
Date: 2026-04-09 (Thu, 09 Apr 2026)
Changed paths:
M regcomp_trie.c
Log Message:
-----------
Add check to TRIE_HANDLE_WORD
This macro stores a value into a field limited to 16 bits. This adds an
assert that the value fits. One other place also stores into that
field, without using this macro. Add the assert there too.
Suggested by Tony Cook.
Commit: 03f74bbbd3a68350d926ee93d56ee4808c28c4c7
https://github.com/Perl/perl5/commit/03f74bbbd3a68350d926ee93d56ee4808c28c4c7
Author: Karl Williamson <[email protected]>
Date: 2026-04-09 (Thu, 09 Apr 2026)
Changed paths:
M regcomp_study.c
M t/re/pat_advanced.t
Log Message:
-----------
regcomp_study: Don't create a trie that would overflow
This addresses GH #23388
The design of the trie compiling code is to batch extra long tries into
smaller chunks that fit into whatever limitations there are. However,
this ticket shows that that isn't always being done.
In this case, a bunch of branches that have TAIL operands can be
combined together, and the final TAIL is used. And the code requires
that the delta between the first branch and this final TAIL fit into a
16-bit field. That is the root cause of this bug.
I'm not familiar enough with the trie construction code to easily
understand why the final tail needs to be used here. So this patch
simply doesn't optimize a sequence of branches into a trie that would
overflow.
This could be revisited by someone who knows more about this than I, or
earlier in the development cycle.
Compare: https://github.com/Perl/perl5/compare/7afbdacd6ee9...03f74bbbd3a6
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications