Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 25426f6691f1c11d64d65ba691039bdf89e32a0c
https://github.com/Perl/perl5/commit/25426f6691f1c11d64d65ba691039bdf89e32a0c
Author: Karl Williamson <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M regen/embed.pl
Log Message:
-----------
embed.pl: Move declaration closer to first use
Commit: 954ac2d6d4749bbb07e6e8e9b1682ae6bdb718a7
https://github.com/Perl/perl5/commit/954ac2d6d4749bbb07e6e8e9b1682ae6bdb718a7
Author: Karl Williamson <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M regen/embed.pl
Log Message:
-----------
embed.pl: Replace $_ by a mnemonic name
It's easier to follow
Commit: bfe7acce9a489ff73a53137bfeae0bb3c17f9eae
https://github.com/Perl/perl5/commit/bfe7acce9a489ff73a53137bfeae0bb3c17f9eae
Author: Karl Williamson <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M regen/embed.pl
Log Message:
-----------
embed.pl: Use equivalent expression for conditionals
Currently $args_assert_line is the complement of $has_mflag. But future
commits will change that, and these conditionals will want the new
definition.
Commit: bafb003b3b0fc17fcc1466584883ce145bcd7be1
https://github.com/Perl/perl5/commit/bafb003b3b0fc17fcc1466584883ce145bcd7be1
Author: Karl Williamson <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M regen/embed.pl
Log Message:
-----------
embed.pl: Split #if..#else into two #if's
This is in preparation for a future commit when some circumstances will
lead to there not being an #else.
Commit: 5e764f515d03bda52736280c2d57ec2b27a2aa02
https://github.com/Perl/perl5/commit/5e764f515d03bda52736280c2d57ec2b27a2aa02
Author: Karl Williamson <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M regen/embed.pl
Log Message:
-----------
embed.pl: White space only
Indent, in preparation for next commit which will place these lines in a
new block.
Commit: 4d526fc8af14c3f002b4c7d5e146f7a21a1750d6
https://github.com/Perl/perl5/commit/4d526fc8af14c3f002b4c7d5e146f7a21a1750d6
Author: Karl Williamson <[email protected]>
Date: 2026-02-11 (Wed, 11 Feb 2026)
Changed paths:
M Cross/Makefile-cross-SH
M MANIFEST
M Makefile.SH
M embed.fnc
M embed.h
A long_names.c
M plan9/mkfile
M proto.h
M regen/embed.pl
M t/porting/regen.t
M vms/descrip_mms.template
M win32/GNUmakefile
M win32/Makefile
Log Message:
-----------
embed.pl: Create long_names.c and populate it
This replaces the defective method previously used to automatically
generate long name (prefixed with "Perl_") synonyms for macros that have
an implicit thread context.
That method had been in place since 5.43.2. Leon Timmermans pointed out
the flaw (https://github.com/Perl/perl5/pull/23458). The long name
synonyms have the thread context passed explicitly. The method worked
by discarding the explicit parameter, relying on the implicit one. This
is valid if and only if the explicit value matches the implicit value.
This is always the case when the caller is from inside the perl core.
When the macro is not visible outside core, we know it can only be
called from inside, so the method is retained in that case.
Otherwise, it still is quite likely to be the case, but not always. In
an application that contains more than one embedded perl instance, that
application could be intermixing calls to the instances, using the long
name forms, and the explicit thread context might not match the implicit
one.
The solution adopted here that works for this case (and I can't think of
another way) is to create an actual function for each long name synonym.
The function merely calls its respective macro. The embedding
application calls the function with the correct thread, and the wrapped
macro gets that properly.
Perl has long automatically generated short name macros for functions
listed in embed.fnc. A consequence of this commit is that it is now
possible to go the other direction, to start with a short name macro,
and automatically generate a long name function for it. This means we
can swap implementations at will, without affecting any calling source
code.
That doesn't work for fancy macros that use the C preprocessor language
for things, like the '#' and '##' commands to it, or expanding a
single argument to a list, such as 'STR_WITH_LEN' does.
And the behavior isn't precisely synonymous if the macro evaluates an
argument more than once, and is called with that argument being an
expression with side effects.
Compare: https://github.com/Perl/perl5/compare/71307cc9a828...4d526fc8af14
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications