Branch: refs/heads/smoke-me/khw-safe
Home: https://github.com/Perl/perl5
Commit: d49f0e6309b1a85211554d264a275ab361962c53
https://github.com/Perl/perl5/commit/d49f0e6309b1a85211554d264a275ab361962c53
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M pp.c
M sv.c
Log Message:
-----------
Avoid some compiler warnings with -DNO_LOCALE
Commit: 43eaf8629c671d10f6aa1977e3aa820375d7cc18
https://github.com/Perl/perl5/commit/43eaf8629c671d10f6aa1977e3aa820375d7cc18
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove dead code
This code was left in for a potential guide for the future. Now that
I'm getting round to implementing it, I'm going in a different
direction.
Commit: 6a51ac36c85fd2bf185bbd24842f77946c3e7407
https://github.com/Perl/perl5/commit/6a51ac36c85fd2bf185bbd24842f77946c3e7407
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
Save and restore errno around DEBUG statements
Adding DEBUG statements should not affect errno. But it could. I have
in the past wrapped them in save/restores when it's become a problem.
But that is effort that could have been conserved by just always doing
it automatically.
Commit: 666acf3c4661b517324e01d6cf2497ad69ba68ef
https://github.com/Perl/perl5/commit/666acf3c4661b517324e01d6cf2497ad69ba68ef
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
dTHX in DEBUG__
Commit: 58befbff7d72d2b4a3b305ff765c7fcc10f0d955
https://github.com/Perl/perl5/commit/58befbff7d72d2b4a3b305ff765c7fcc10f0d955
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
Create DEBUG macro for when two flags must be set
There are some debugging statements that should only be displayed when
two flags are set; so far the v flag and another. This commit creates
a macro for that purpose that saves a conditional (at least when
unoptimized) over the previous way to do it.
Commit: 42aa58088a68c52418c871270be023df57662de3
https://github.com/Perl/perl5/commit/42aa58088a68c52418c871270be023df57662de3
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
DEBUG_L now also looks at environment variable
Because locale initialization happens before command line processing,
one can't pass a -DL argument to enable debugging of locale
initialization. Instead, an environment variable is read then, and is
used to enable debugging or not. In the past, code specifically had to
test for this being set. This commit changes that so that debugging can
automatically be enabled without having to write special code. Future
commits will strip out those special checks.
Commit: e87f823e074d94b352e45952ada8c7a69ea50035
https://github.com/Perl/perl5/commit/e87f823e074d94b352e45952ada8c7a69ea50035
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Replace most #ifdef DEBUGGING lines
THe previous commit enhanced the DEBUG macros so that they contain the
logic that previously had to be done with conditional compilation
statements. Removing them makes the code easier to read.
Commit: 17fa81b90f4b3ac9c5218b717013634aa53e2970
https://github.com/Perl/perl5/commit/17fa81b90f4b3ac9c5218b717013634aa53e2970
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
M numeric.c
M regcomp.c
M regexec.c
M utfebcdic.h
Log Message:
-----------
Change macro names to be C standard conformant
C reserves symbols beginning with underscores for its own use. This
commit moves the underscore so it is trailing, which is legal. The
symbols changed here are most of the ones in handy.h that have few uses
outside it.
Commit: 6ccc758303cf501affec42d42811358a19a01296
https://github.com/Perl/perl5/commit/6ccc758303cf501affec42d42811358a19a01296
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: Refactor some #ifdef's for commonality
This changes these compilation conditionals so that things in common
between Windows and other platforms are only defined once.
It changes the isWORDCHAR_LC definition for non-Windows to match that
platform, adding an UNLIKELY().
Commit: 185651627c42ff827a0942914b339614706a151a
https://github.com/Perl/perl5/commit/185651627c42ff827a0942914b339614706a151a
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: White-space, comment only
Commit: 7332ae45dfa253bdd7d96e425fd543fb28c9908c
https://github.com/Perl/perl5/commit/7332ae45dfa253bdd7d96e425fd543fb28c9908c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: Remove only call to an internal macro
Replace isIDFIRST_LC with a slightly faster implementation, in line
with what isWORDCHAR already does
Commit: f1e3f8c5d79f93967cd1e71d573516f38b6d5178
https://github.com/Perl/perl5/commit/f1e3f8c5d79f93967cd1e71d573516f38b6d5178
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M charclass_invlists.h
M handy.h
M l1_char_class_tab.h
M lib/unicore/uni_keywords.pl
M perl.c
M perl.h
M regcomp.c
M regcomp.h
M regen/mk_PL_charclass.pl
M regexec.c
M sv.c
M uni_keywords.h
M utfebcdic.h
Log Message:
-----------
Change macro names to be C standard conformant
C reserves symbols beginning with underscores for its own use. This
commit moves the underscore so it is trailing, which is legal. The
symbols changed here are many of the ones in handy.h that have
significant uses outside it.
Commit: a812af5008ebf240e22c27654cd2a2390e31939c
https://github.com/Perl/perl5/commit/a812af5008ebf240e22c27654cd2a2390e31939c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: Rmv unneeded generality
The possible first character of an ID is always an alpha in the range
0-255, so there is no harm changing from the former to the latter. And
future changes would otherwise have needed an extra parameter in a bunch
of macros.
Commit: db569b3bd00b72638a39c3a043d5116b59b2af53
https://github.com/Perl/perl5/commit/db569b3bd00b72638a39c3a043d5116b59b2af53
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: Don't special case isASCII_LC
This was an attempt to save instructions, but future commits will need
the generality
Commit: 24afc36bfaf434f56325ec5b5bd13314a24a3bd4
https://github.com/Perl/perl5/commit/24afc36bfaf434f56325ec5b5bd13314a24a3bd4
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: Refactor some internal macros
This changes the parameters etc, in preparation for further changes
Commit: e1765a7db2936495417d0a4e84b66d024f926f31
https://github.com/Perl/perl5/commit/e1765a7db2936495417d0a4e84b66d024f926f31
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M proto.h
M regexec.c
Log Message:
-----------
regexec.c: Make internal function static
This used to be called from utf8.c, but no longer; no need to make it
other than static. This allows the compiler to better optimize.
Commit: ffc6b64195d1f5acb4ddbc1f5f1d9b1d2b6e9a1b
https://github.com/Perl/perl5/commit/ffc6b64195d1f5acb4ddbc1f5f1d9b1d2b6e9a1b
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M globvar.sym
M handy.h
M inline.h
M perl.h
M proto.h
M regexec.c
Log Message:
-----------
regexec.c: Use function call table to streamline code
This replaces a switch() statement with a function pointer table. But
the main reason I'm doing this is for future functionality.
Commit: 85493349a837790e876259893a0e0a781b07545c
https://github.com/Perl/perl5/commit/85493349a837790e876259893a0e0a781b07545c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Declare three static arrays to be so.
Commit: 50ab23573e4e85bc726b77328cbf11a758688ac5
https://github.com/Perl/perl5/commit/50ab23573e4e85bc726b77328cbf11a758688ac5
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
Move some locale.c #defines to perl.h
This is in preparation for them to be used in macros from outside
locale.c
Commit: 861d7e533e04ac14981fee8a405fe92ba844605a
https://github.com/Perl/perl5/commit/861d7e533e04ac14981fee8a405fe92ba844605a
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
Mark newly moved symbols as private
The previous commit made certain symbols that previously were local to
locale.c now available everywhere. Add a trailing underscore to their
names to mark them as private.
Commit: 008af00928ad1a73ea1c73e66d3c637e70459b29
https://github.com/Perl/perl5/commit/008af00928ad1a73ea1c73e66d3c637e70459b29
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
Split internal function into two
This splits out the portion of a function that calculates the index into
our tables from a locale category. This immediately allows the calling
sequence to be simplified, but future commits will have use for just
the functionality of the new function.
One debugging statement is also removed from the new split out function,
which was not really necessary, and made it harder to do the next
commit.
Commit: 71ba5f441d424fedbe32587f9d2969a91087eb16
https://github.com/Perl/perl5/commit/71ba5f441d424fedbe32587f9d2969a91087eb16
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
POSIX.xs: Add locks around certain operations
These operations may have races without these newly created locks.
Commit: 6270c14f85dcd71eabc85e9c239b4d87f44caa19
https://github.com/Perl/perl5/commit/6270c14f85dcd71eabc85e9c239b4d87f44caa19
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
POSIX.xs: Use macro to reduce complexity
This #defines a macro and uses it to populate a structure, so that
strings don't have to be typed twice.
Commit: da432c2ae59783c0b7dcdcac20af9543054c8c40
https://github.com/Perl/perl5/commit/da432c2ae59783c0b7dcdcac20af9543054c8c40
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
POSIX.xs: White-space only
Properly indent some nested preprocessor directives
Commit: 3f83a381edd2fec6b5a416c4305a9abe54a6ac86
https://github.com/Perl/perl5/commit/3f83a381edd2fec6b5a416c4305a9abe54a6ac86
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
POSIX.xs: Remove excess conditional
This conditional is just extra execution time on platforms where the
underlying field doesn't exist. Don't compile it on such platforms.
Commit: 618c53ff64ede5e14e0100cfc54237567d56a067
https://github.com/Perl/perl5/commit/618c53ff64ede5e14e0100cfc54237567d56a067
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use nocontext; avoid rarely needed dTHX
This is a rare case; no point in doing a dTHX just for it.
Commit: 0bb77fb3298adc51dd8765132692450ac6bc490c
https://github.com/Perl/perl5/commit/0bb77fb3298adc51dd8765132692450ac6bc490c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
M pod/perldelta.pod
M pod/perldiag.pod
Log Message:
-----------
locale.c: Simplify function
We can use the function split-out in the previous commit to simplify
this. Also, when I wrote it I didn't know about Perl_form(), and
reimplemented a portion of it here; that can be yanked as well.
Commit: a0775d75203132c35c538d3c8e57979ef678d892
https://github.com/Perl/perl5/commit/a0775d75203132c35c538d3c8e57979ef678d892
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move unreachable code
It turns out this code, setting errno, is unreachable. Move it to the
place where it would do some good, removing an extraneous, unreachable
return;
Commit: 111b5019affb2fb1398f5f0077458f7a176f32e9
https://github.com/Perl/perl5/commit/111b5019affb2fb1398f5f0077458f7a176f32e9
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Comment clarifications, white space
Commit: a961d25a9f24dbdcdc7faa194ed8250c9c434c35
https://github.com/Perl/perl5/commit/a961d25a9f24dbdcdc7faa194ed8250c9c434c35
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Separate the query part of emulate_setlocale
This splits a large function so that it is easier to comprehend, and is
in preparation for them to be separately callable.
Commit: d88943853c79233549573451acf6fdb6d0d1b840
https://github.com/Perl/perl5/commit/d88943853c79233549573451acf6fdb6d0d1b840
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove spaces around a '##' preprocessor directive
It turns out that at least my gcc preprocessor gets confused in some
contexts if spaces surround the ##. CAT2() doesn't work for these.
It is working in this context, but future commits will introduce ones
where it won't, so this commit will help make things consistent within
this file
What seems to fail is #define f(x) (..., g(x ## y), ...) where 'x' is a
an already #defined symbol. I want 'xy', but instead, for example if
'x' has been defined to be 1, I get '1y'
Commit: 39290df7f8b9a45f5c31f4814073097d7642a961
https://github.com/Perl/perl5/commit/39290df7f8b9a45f5c31f4814073097d7642a961
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Create new macros for just querying locale
Now that the query portion has been split off, we can go to it directly.
Commit: 7ea16cf8d262bdcbada76182b3157a68731ddb26
https://github.com/Perl/perl5/commit/7ea16cf8d262bdcbada76182b3157a68731ddb26
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Generalize certain Win32 calls
The old versions were windows-specific; the changes use a more generic
macro that currently expands to the same thing, but future commits will
change that.
Commit: fe76546623bd3db0cb1dd339b0ff7573041dd304
https://github.com/Perl/perl5/commit/fe76546623bd3db0cb1dd339b0ff7573041dd304
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.: Create macros to call setlocale in special return contexts
Future commits will benefit from knowing if the return value of
setlocale is to be ignored, just checked for if it worked, or the full
value is needed.
Commit: 3313919cc9a7652cd3e6f50016e7003efd52c337
https://github.com/Perl/perl5/commit/3313919cc9a7652cd3e6f50016e7003efd52c337
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Split a static function into two parts
One part doesn't have to be compiled on platforms that don't have the
libc function querylocale(). It makes it easier to grok when that part
isn't inlined with the other part. But more importantly, the split off
part will be called separately in future commits.
Commit: 9d02dc8868e3030735c837d395e0f6599a36e63c
https://github.com/Perl/perl5/commit/9d02dc8868e3030735c837d395e0f6599a36e63c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Use a function table to simplify code
Some locale categories require extra steps when they are changed. This
moves that logic to a table, which gets rid of some code
Commit: f1da290c0bdad65334c30adb26e4af3c0035cab5
https://github.com/Perl/perl5/commit/f1da290c0bdad65334c30adb26e4af3c0035cab5
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Same code for all queries of current locale
Previously querying LC_NUMERIC and LC_ALL were treated specially; other
queries were lumped in with changes. Changing some categories involves
a non-trivial amount of work. This commit avoids that by moving all
queries to the same 'if' branch. LC_NUMERIC and LC_ALL still have to be
treated specially, but now it's all within the same outer 'if'.
Commit: 770e1ebc63aaa15320b43e6097053aff999327c1
https://github.com/Perl/perl5/commit/770e1ebc63aaa15320b43e6097053aff999327c1
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M intrpvar.h
M lib/locale_threads.t
M locale.c
M perl.h
M proto.h
M t/loc_tools.pl
Log Message:
-----------
2008
Commit: 0e95917b5d3c8f8dabfe4f33f58ecf4e7dbf34f1
https://github.com/Perl/perl5/commit/0e95917b5d3c8f8dabfe4f33f58ecf4e7dbf34f1
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embedvar.h
M intrpvar.h
M makedef.pl
M perl.h
M sv.c
Log Message:
-----------
Change internal PL_ variable name
This is now used for the locale mutex, instead of the mutex the next
commit will remove; change its name to correspond.
Commit: a0ee43cc747c2ceac98c30e3c0306aadf5ce0f42
https://github.com/Perl/perl5/commit/a0ee43cc747c2ceac98c30e3c0306aadf5ce0f42
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
M perlvars.h
Log Message:
-----------
Remove no longer used mutex
A previous commit removed all need for this.
Commit: edd888238f88e74f6247b0498f57c848a75ecdb3
https://github.com/Perl/perl5/commit/edd888238f88e74f6247b0498f57c848a75ecdb3
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M ebcdic_tables.h
M embedvar.h
M globvar.sym
M inline.h
M intrpvar.h
M perl.h
M regen/ebcdic.pl
Log Message:
-----------
XXX finish fold_locale
tests, copy in thread create
Commit: a83948c7cf15cae8f0f6478e9ab149f854344fde
https://github.com/Perl/perl5/commit/a83948c7cf15cae8f0f6478e9ab149f854344fde
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
XXX inspect, trailing white: perl.h: refactor
Commit: e01d322dd7175c555a778fc81ce98eab1ef06878
https://github.com/Perl/perl5/commit/e01d322dd7175c555a778fc81ce98eab1ef06878
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX merge other commit: locale.c: Remove some errno saves
These are no longer needed, as the debugging code now automatically
preserves errno.
Commit: 38c58df84f1600c1ce51c1a29431657620f1b400
https://github.com/Perl/perl5/commit/38c58df84f1600c1ce51c1a29431657620f1b400
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
Prevent rare locale race
In reading code, I realized that it is possible for there to be a race
here if two threads operating in a Posix 2008 locale system convert to
the old-style locale system. That is unlikely, but it is easy to
prevent any race through a mutex. They still would have problems if
they do a tug-of-war on what the global locale should be.
Commit: 91cdc5bcc990f6ffbcec8b7d326de6620021bb21
https://github.com/Perl/perl5/commit/91cdc5bcc990f6ffbcec8b7d326de6620021bb21
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX commit message, assert(0);locale.c: Add code to do thread-safe emulation
Commit: b75265950676868eaf2de6808d8d12ccde4a5dc7
https://github.com/Perl/perl5/commit/b75265950676868eaf2de6808d8d12ccde4a5dc7
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Revise querying a locale
Now that the LC_NUMERIC toggling is under the same mutex as the rest of
locale handling, we can simplify things.
Commit: b827c39c04dfbba88bf8faf42ef86b6c94462ed8
https://github.com/Perl/perl5/commit/b827c39c04dfbba88bf8faf42ef86b6c94462ed8
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Skip changing the locale if same as the old
Meet the new boss; same as the old boss.
There is some housekeeping involved in changing locales, particularly in
computing a new collation ordering. So, it's worth it to check if the
new locale being requested is actually not different than the existing.
If so, we can just return without doing anything
Commit: c30095cd7c9a5c532d455016248fe03bc2d83e2d
https://github.com/Perl/perl5/commit/c30095cd7c9a5c532d455016248fe03bc2d83e2d
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX loop index for consistency
Commit: d83566abe45ffc675b2232461e480a4974948da8
https://github.com/Perl/perl5/commit/d83566abe45ffc675b2232461e480a4974948da8
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX Lv? locale.c: Add some debugging,
Commit: 9ef1ef00e9203d9b08733911c4f5d8bcdf86c2e6
https://github.com/Perl/perl5/commit/9ef1ef00e9203d9b08733911c4f5d8bcdf86c2e6
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M handy.h
M inline.h
Log Message:
-----------
Add thread-safe locale emulation for LC_CTYPE
All character class checking and case conversions will now come through
this inline function which will switch to the proper locale if
Configured to do so.
Commit: b6d34315d24f4cede8d2bd53148fe75ab47abcaf
https://github.com/Perl/perl5/commit/b6d34315d24f4cede8d2bd53148fe75ab47abcaf
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M inline.h
Log Message:
-----------
XXX temporary: Add some debugging code for locale emulation
Commit: 4989e62f95b7cc7799decf962bb5f17e81f0f5b5
https://github.com/Perl/perl5/commit/4989e62f95b7cc7799decf962bb5f17e81f0f5b5
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M pp.c
Log Message:
-----------
XXX pp.c: do %g print under mutex,
Commit: 593058de6e93d0d8f1b2fdd53f088c06e6bb32a0
https://github.com/Perl/perl5/commit/593058de6e93d0d8f1b2fdd53f088c06e6bb32a0
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M intrpvar.h
Log Message:
-----------
intrpvar.h: Addd clarifying comment
Commit: e30452319abb16b573abe06aef402bca753477c4
https://github.com/Perl/perl5/commit/e30452319abb16b573abe06aef402bca753477c4
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
lc_messages bug
Commit: c6e407e118070864de09e47d01e953a4c3a53cb6
https://github.com/Perl/perl5/commit/c6e407e118070864de09e47d01e953a4c3a53cb6
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale init
Commit: 65d606198031419d6486aefd11a309f7ce70c81a
https://github.com/Perl/perl5/commit/65d606198031419d6486aefd11a309f7ce70c81a
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slight refactor of strftime loop
It's easier to understand if we exit the loop right after the
conditional that causes us to, rather than at the bottom of the loop.
Commit: fbf007acebd7a9048dc8bb39fcfdba46650d8e98
https://github.com/Perl/perl5/commit/fbf007acebd7a9048dc8bb39fcfdba46650d8e98
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Refactor strftime loop
This removes the call of strftime from the loop conditional, in
preparation for wrapping strftime() in a mutex.
Commit: 4838f19594b673ac884e5bf55fefe67b5cea14ea
https://github.com/Perl/perl5/commit/4838f19594b673ac884e5bf55fefe67b5cea14ea
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: White-space comment only
Adjust indentation from changes in previous two commits.
Add a clarifying comment
Commit: b1bdde749211aeb6463ee154de84f0b731a4de59
https://github.com/Perl/perl5/commit/b1bdde749211aeb6463ee154de84f0b731a4de59
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
M util.c
Log Message:
-----------
strftime() needs to be locked.
On some systems, it just needs to not have the locale nor environment
change while it is executing. A many-reader lock for each will work for
those. The Posix standard, on the other hand, says (under the tzset
entry) that strftime effective calls it, thus setting some globals, so
it needs exclusive access for those. A Configure probe could be written
to check for the behavior.
Commit: ebd68bbddc63ebd053558d11a41a09c7933b360c
https://github.com/Perl/perl5/commit/ebd68bbddc63ebd053558d11a41a09c7933b360c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't need full LOCALECONV_LOCK
Here, the items being returned are monetary, no need to toggle
LC_NUMERIC, which is what a full LOCALCONV_LOCK would do.
Commit: 138bf48e0af41fb38497db01b0f800d7892dbd85
https://github.com/Perl/perl5/commit/138bf48e0af41fb38497db01b0f800d7892dbd85
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M intrpvar.h
M perl.h
M sv.c
Log Message:
-----------
Turn on thread-safe emulation
Commit: fb0796561f6b95d20cb6d1d6787dfba630d4d671
https://github.com/Perl/perl5/commit/fb0796561f6b95d20cb6d1d6787dfba630d4d671
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
M time64.c
M util.c
Log Message:
-----------
Change name of mutex macros for ENV/LOCALE locking
The names were somewhat confusing.
Commit: 27898d3c74fbbc85cecea7c91d6b492f66cc3440
https://github.com/Perl/perl5/commit/27898d3c74fbbc85cecea7c91d6b492f66cc3440
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M util.c
Log Message:
-----------
XXX util.c: LOCALTIME lock
Commit: c679ebd06b4b0997ecf6691f0c5a3be4150ccd71
https://github.com/Perl/perl5/commit/c679ebd06b4b0997ecf6691f0c5a3be4150ccd71
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Move some statements
So they are closer to related statements
Commit: bf7fc7d86cbe9ff06778cf69cb048d5e9a446721
https://github.com/Perl/perl5/commit/bf7fc7d86cbe9ff06778cf69cb048d5e9a446721
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
XXX finish msg Implement combo ENV/LOCALE mutexes
There are cases where an executing function is vulnerable to either the
locale or environment being changed by another thread. This implements
macros that use mutexes to protect these critical sections. There are
two cases that exist: one where the functions only read; and one where
they can also need exclusive control so that a competing thread can't
overwrite the returned static buffer before it is safely copied.
5.32 had a placeholder for these, but didn't actually implement it.
Instead it locked just the ENV portion. On modern platforms with
thread-safe locales, the locale portion is a no-op anyway, so things
worked on them.
This new commit extends that safety to other platforms. This has long
been a vulnerability in Perl, but
Commit: e08ded677c5309374bdb31d3307824dde7deef8a
https://github.com/Perl/perl5/commit/e08ded677c5309374bdb31d3307824dde7deef8a
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M ext/POSIX/POSIX.xs
M intrpvar.h
M locale.c
M perl.h
M proto.h
M sv.c
M t/loc_tools.pl
M unixish.h
Log Message:
-----------
STRFTIME
Commit: 73b4494002db9f0e94773bc8ef3de39b8ce95937
https://github.com/Perl/perl5/commit/73b4494002db9f0e94773bc8ef3de39b8ce95937
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M os2/os2.c
Log Message:
-----------
os2: Use many reader lock instead of exclusive
This is just reading the environment, not changing it, so a many readers
can be accessing it at the same time.
Commit: 1bc641591368c8ee5fc8a2cfb4e07b5c23002796
https://github.com/Perl/perl5/commit/1bc641591368c8ee5fc8a2cfb4e07b5c23002796
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX prob drop; done before anything so no races
Commit: c983805fbd23c8dd5b3ea6a4371a07903565188e
https://github.com/Perl/perl5/commit/c983805fbd23c8dd5b3ea6a4371a07903565188e
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M reentr.h
M regen/reentr.pl
Log Message:
-----------
XXX comments, move in rebase reentr
Commit: cee3e2d16f0e4e774cb06141aa560b74d1bafbda
https://github.com/Perl/perl5/commit/cee3e2d16f0e4e774cb06141aa560b74d1bafbda
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M reentr.h
M regen/reentr.pl
Log Message:
-----------
Revert "reentr doing locks"
This reverts commit db16fd717a1c82eac14855982c1967e79d73b719.
Commit: c4a3dffac2ba46aabe7d6619b0e5a78d7d9efb8b
https://github.com/Perl/perl5/commit/c4a3dffac2ba46aabe7d6619b0e5a78d7d9efb8b
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M time64.c
Log Message:
-----------
time64.c: Remove no longer needed code
This code defined some macros; those are now defined by perl.h
Commit: 672ec1296142f6021e48294bbeefc6b2c4ea57d2
https://github.com/Perl/perl5/commit/672ec1296142f6021e48294bbeefc6b2c4ea57d2
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M win32/win32.c
Log Message:
-----------
win32.c: Add mutexes around some calls
These could have races.
Commit: 0c67f13ef927d7c71f06c9c8b069249f981e1b57
https://github.com/Perl/perl5/commit/0c67f13ef927d7c71f06c9c8b069249f981e1b57
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M pp_sys.c
Log Message:
-----------
XXX need to StructCopy pp_sys mutexes
Commit: bff054bda28947bc7e24875cb84ec4bcb5d9104b
https://github.com/Perl/perl5/commit/bff054bda28947bc7e24875cb84ec4bcb5d9104b
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M util.c
Log Message:
-----------
mktime needs to run under a mutex
per the Posix standard
Commit: 6daf20341d5f3205a061733315f10789a07b9c50
https://github.com/Perl/perl5/commit/6daf20341d5f3205a061733315f10789a07b9c50
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.pm
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX cpan PR Time-Piece
Commit: 3a39d56d3946aa346352f7db95944a6620cef92e
https://github.com/Perl/perl5/commit/3a39d56d3946aa346352f7db95944a6620cef92e
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
XXX perlxs
Commit: ceb1158f3ec74177654bc08144c483e34b3436d1
https://github.com/Perl/perl5/commit/ceb1158f3ec74177654bc08144c483e34b3436d1
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
cpan/Time-Piece/Piece.xs: Use foldEQ_locale() if available
Using this is preferable to the glibc function due to it being tailored
for Perl, and is thread-safe in the latest versions.
Commit: 4276be74a3aaf5b30657f6b94a165dcf38d76b6e
https://github.com/Perl/perl5/commit/4276be74a3aaf5b30657f6b94a165dcf38d76b6e
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece/Piece.xs: Use isDIGIT, not isdigit
isDIGIT is not locale-dependent, matching just [0-9]. There was a bug
using isdigit() in at least one place where it calculated the value of
the digit by subtracting the original of '0' from it. This works only
if the digit is in [0-9], but there are locales where there is another
set of digits, and so would give a very wrong result. That makes it
clear to me that only [0-9] were assumed by the original authors.
Commit: ed0b130de9bccc6111871113af9ecfaa770c12e5
https://github.com/Perl/perl5/commit/ed0b130de9bccc6111871113af9ecfaa770c12e5
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX Time-Piece/Piece.xs: Use isSPACE not isspace
Same msg as prev commit
Commit: f0c2801fedc46776b2d9cf4cb9497adb72e95304
https://github.com/Perl/perl5/commit/f0c2801fedc46776b2d9cf4cb9497adb72e95304
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX Time-Piece/Piece.xs: Use isUPPER not isupper
Same msg as prev commit
Commit: 1aff687ed25c5b5d84f577aa0bc5ffbe6f0af315
https://github.com/Perl/perl5/commit/1aff687ed25c5b5d84f577aa0bc5ffbe6f0af315
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX Time Piece temporary
Commit: a7e2129dd776cffb1f782fd7165527c0bb26435d
https://github.com/Perl/perl5/commit/a7e2129dd776cffb1f782fd7165527c0bb26435d
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M pod/perlhacktips.pod
Log Message:
-----------
XXX incomplete perlhacktips:
Commit: 695b4ed3561aa0a9c27b8f858c203bb2af5e8c9c
https://github.com/Perl/perl5/commit/695b4ed3561aa0a9c27b8f858c203bb2af5e8c9c
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M dist/IO/IO.xs
Log Message:
-----------
XXX check if using ppport IO.xs: Remove fallback code furnished by ppport
Commit: b93eae51f643f39b995f975360fb54adfd5c452b
https://github.com/Perl/perl5/commit/b93eae51f643f39b995f975360fb54adfd5c452b
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M hints/freebsd.sh
Log Message:
-----------
XXX check with freebsd: hints/freebsd.sh
Commit: f0d4fd450de587510e404b00fa1055ad7ecfbdc7
https://github.com/Perl/perl5/commit/f0d4fd450de587510e404b00fa1055ad7ecfbdc7
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M dosish.h
M unixish.h
Log Message:
-----------
Move IO destruction to end of list
During destruction, a list is executed in order. Here's a couple of
them:
OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM;
If something goes wrong, and the I/O system has already been destructed,
it's hard to figure out what's going on. This is solved simply by
moving the I/O termination to the end of the list.
Commit: 78d73996a3282c8bf5d888a6945f3cf2d9253a80
https://github.com/Perl/perl5/commit/78d73996a3282c8bf5d888a6945f3cf2d9253a80
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
M cygwin/cygwin.c
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M dosish.h
M embed.fnc
M embed.h
M ext/I18N-Langinfo/Langinfo.pm
M ext/I18N-Langinfo/Langinfo.xs
M ext/POSIX/POSIX.xs
M handy.h
M inline.h
M intrpvar.h
M iperlsys.h
M lib/locale_threads.t
M locale.c
M makedef.pl
M perl.c
M perl.h
M pod/perllocale.pod
M pp_sys.c
M proto.h
M regen/reentr.pl
M regexec.c
M sv.c
M t/loc_tools.pl
M t/porting/known_pod_issues.dat
M t/re/charset.t
M thread.h
M unixish.h
M util.c
M win32/win32.c
Log Message:
-----------
f
Commit: 0d7c86d74f9a9c64f81cf8ab8d3ad286f3be11c6
https://github.com/Perl/perl5/commit/0d7c86d74f9a9c64f81cf8ab8d3ad286f3be11c6
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove duplicate code
This code was essentially a reimplementation of my_strftime(). I
suddenly realized a way to avoid having to reimplement it, simply by
choosing a year in which January 1 falls on a Sunday.
The indentaion was changed to be consistent with future commits.
Commit: f68ed9a35dec8eae95a941c74c85d2f9ddbbb692
https://github.com/Perl/perl5/commit/f68ed9a35dec8eae95a941c74c85d2f9ddbbb692
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Return C values if strftime() disabled
This is the first commit in a series that will generally return
something from Perl_langinfo() when parts of the locale handling system
are not enabled. This commit causes the C locale values to be returned
if strftime is not available.
Commit: af1dc837658813899790098d3a617e87b5e32b87
https://github.com/Perl/perl5/commit/af1dc837658813899790098d3a617e87b5e32b87
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Refactor #ifdef's for clarity
The my_strerror() function has effectively 5 different implementations
depending on the capabilities of the platform. Only a few lines are
common to all, the set-up and the return. The #ifdefs obscure the
underlying logic. So this commit separates them out into 5 different
functions, with the result that it's clear what is going on in each.
Commit: 7b3d7aa8f126328ad3b501f4076c145c94d2c1df
https://github.com/Perl/perl5/commit/7b3d7aa8f126328ad3b501f4076c145c94d2c1df
Author: Karl Williamson <[email protected]>
Date: 2021-02-04 (Thu, 04 Feb 2021)
Changed paths:
M dist/IO/IO.pm
M embed.fnc
M embed.h
M embedvar.h
M ext/I18N-Langinfo/Langinfo.pm
M ext/I18N-Langinfo/Langinfo.xs
M ext/POSIX/POSIX.xs
M ext/POSIX/lib/POSIX.pm
M ext/POSIX/lib/POSIX.pod
M ext/POSIX/t/mb.t
M inline.h
M intrpvar.h
M lib/locale_threads.t
M locale.c
M makedef.pl
M mg.c
M perl.c
M perl.h
M proto.h
M regexec.c
M sv.c
M t/harness
M t/loc_tools.pl
M thread.h
M util.c
Log Message:
-----------
f
Compare: https://github.com/Perl/perl5/compare/2e757141f4ef...7b3d7aa8f126