Branch: refs/heads/smoke-me/khw-safe
Home: https://github.com/Perl/perl5
Commit: 89b723e6fec70a061b61ec7936d09ce7c6570768
https://github.com/Perl/perl5/commit/89b723e6fec70a061b61ec7936d09ce7c6570768
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 3461b7591e900e9be72cf0652ce95ce968a215f2
https://github.com/Perl/perl5/commit/3461b7591e900e9be72cf0652ce95ce968a215f2
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: b7b29cb01ed78aaa66aac1dc81f43c4a3c19d134
https://github.com/Perl/perl5/commit/b7b29cb01ed78aaa66aac1dc81f43c4a3c19d134
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
dTHX in DEBUG__
Commit: 9ca7e0fbbeaed7a233e0e8db3f28c8dec781417f
https://github.com/Perl/perl5/commit/9ca7e0fbbeaed7a233e0e8db3f28c8dec781417f
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: b0c6bb35cc785c77082457914b21d9ffdc7d334e
https://github.com/Perl/perl5/commit/b0c6bb35cc785c77082457914b21d9ffdc7d334e
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 5789948043d6c7ff792434d4e47b606963fafbb4
https://github.com/Perl/perl5/commit/5789948043d6c7ff792434d4e47b606963fafbb4
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 88cd3558beb464506e9679eedeb8bf1b825797f0
https://github.com/Perl/perl5/commit/88cd3558beb464506e9679eedeb8bf1b825797f0
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: f11e37755e70fdee40fe9535ad1d76d0d9620467
https://github.com/Perl/perl5/commit/f11e37755e70fdee40fe9535ad1d76d0d9620467
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 1e44409ed9f24c22d1153efc4c38ac3ae8fca457
https://github.com/Perl/perl5/commit/1e44409ed9f24c22d1153efc4c38ac3ae8fca457
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M handy.h
Log Message:
-----------
handy.h: White-space, comment only
Commit: 71bf6dfb51a9211e2c9df05ffcb83141e2f53b44
https://github.com/Perl/perl5/commit/71bf6dfb51a9211e2c9df05ffcb83141e2f53b44
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: fbfe21bfcfbc7950c5047c2c191443db6c4c4d39
https://github.com/Perl/perl5/commit/fbfe21bfcfbc7950c5047c2c191443db6c4c4d39
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 806e3ac0b2d60c925dbe19aaed239af12ed7d5a3
https://github.com/Perl/perl5/commit/806e3ac0b2d60c925dbe19aaed239af12ed7d5a3
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 1d8042fcdae4bd6821459bfbdf91bbd1455d48c3
https://github.com/Perl/perl5/commit/1d8042fcdae4bd6821459bfbdf91bbd1455d48c3
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 005d09dc582f6f3d720e96e9ae4ebeade443125f
https://github.com/Perl/perl5/commit/005d09dc582f6f3d720e96e9ae4ebeade443125f
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 08734f9a0c9c139eb3069015d2e4cb9a7d098e73
https://github.com/Perl/perl5/commit/08734f9a0c9c139eb3069015d2e4cb9a7d098e73
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 87041d700b72f9eed64944bf41fedc132cf256b5
https://github.com/Perl/perl5/commit/87041d700b72f9eed64944bf41fedc132cf256b5
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 90c3829aaf3c3bd84311530e59d9abb9cb64993c
https://github.com/Perl/perl5/commit/90c3829aaf3c3bd84311530e59d9abb9cb64993c
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Declare three static arrays to be so.
Commit: 206b55b2ec03a8fca1af7138c0c4388e03e52e43
https://github.com/Perl/perl5/commit/206b55b2ec03a8fca1af7138c0c4388e03e52e43
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 99a22d2b6344568c9c53dc82031f26834723d6bf
https://github.com/Perl/perl5/commit/99a22d2b6344568c9c53dc82031f26834723d6bf
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 81dc059e82096307340639db8f30835ca5c0a384
https://github.com/Perl/perl5/commit/81dc059e82096307340639db8f30835ca5c0a384
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: b7a443adcf36e883cd0b30237fb35dc1ee717901
https://github.com/Perl/perl5/commit/b7a443adcf36e883cd0b30237fb35dc1ee717901
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 9c43b47df7543df7e6d5c7e9ec583c8196208262
https://github.com/Perl/perl5/commit/9c43b47df7543df7e6d5c7e9ec583c8196208262
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 02513445e79e9b78d44d6925c9ed0717751609d4
https://github.com/Perl/perl5/commit/02513445e79e9b78d44d6925c9ed0717751609d4
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
POSIX.xs: White-space only
Properly indent some nested preprocessor directives
Commit: 0c788578c9ad0cd2bc3668b1f7c6acd00de3c333
https://github.com/Perl/perl5/commit/0c788578c9ad0cd2bc3668b1f7c6acd00de3c333
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 263e523c146fa2c82a6dcd8b091079e3e1be3a67
https://github.com/Perl/perl5/commit/263e523c146fa2c82a6dcd8b091079e3e1be3a67
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 94a26d8d66b90d765e4298244966f3f641f54bda
https://github.com/Perl/perl5/commit/94a26d8d66b90d765e4298244966f3f641f54bda
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 02e27167b54920232f62bd1711f79c9189bdee54
https://github.com/Perl/perl5/commit/02e27167b54920232f62bd1711f79c9189bdee54
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 726d3a5f47e0842b929c059fe5983c166be60f67
https://github.com/Perl/perl5/commit/726d3a5f47e0842b929c059fe5983c166be60f67
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Comment clarifications, white space
Commit: 9ecf2f457037fa8652dd9f5fd683cb1c4e05754e
https://github.com/Perl/perl5/commit/9ecf2f457037fa8652dd9f5fd683cb1c4e05754e
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: c9da8217427ec599c15f0e37e5446331d9fc855d
https://github.com/Perl/perl5/commit/c9da8217427ec599c15f0e37e5446331d9fc855d
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 3b3691c7472289fae9b99e93f6762dd1f440f023
https://github.com/Perl/perl5/commit/3b3691c7472289fae9b99e93f6762dd1f440f023
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: b02d232038b178161a76ef8fb3e56f955681be20
https://github.com/Perl/perl5/commit/b02d232038b178161a76ef8fb3e56f955681be20
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 2040f1f2c96a3ea4727a502910cbacad2a567968
https://github.com/Perl/perl5/commit/2040f1f2c96a3ea4727a502910cbacad2a567968
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: b60ed8eefd2f3fe99d4ae5918b0c6cadfd44a304
https://github.com/Perl/perl5/commit/b60ed8eefd2f3fe99d4ae5918b0c6cadfd44a304
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: f8078a525b85df3f133e3c999a6d4e64791783ff
https://github.com/Perl/perl5/commit/f8078a525b85df3f133e3c999a6d4e64791783ff
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: ec62b153aa14f2d35afc350119b41394b6a8efd9
https://github.com/Perl/perl5/commit/ec62b153aa14f2d35afc350119b41394b6a8efd9
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 43df0c1217846fa2017a44d81ed509d41cf4f7a0
https://github.com/Perl/perl5/commit/43df0c1217846fa2017a44d81ed509d41cf4f7a0
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: d8b4891f48adf044c18ca9a1779cc7614113c65b
https://github.com/Perl/perl5/commit/d8b4891f48adf044c18ca9a1779cc7614113c65b
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 639e47f4a28f2c904c9e30475ae219db2cfac2fc
https://github.com/Perl/perl5/commit/639e47f4a28f2c904c9e30475ae219db2cfac2fc
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 9c45bae20d0c6015e8ad2fd3396bf19fda4e0328
https://github.com/Perl/perl5/commit/9c45bae20d0c6015e8ad2fd3396bf19fda4e0328
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 17e3c5b71e38f87445616602356fd33b82f983c8
https://github.com/Perl/perl5/commit/17e3c5b71e38f87445616602356fd33b82f983c8
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
XXX inspect, trailing white: perl.h: refactor
Commit: 01504f860c286ec4184e67d487aa3f12c3d8d5cc
https://github.com/Perl/perl5/commit/01504f860c286ec4184e67d487aa3f12c3d8d5cc
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: b429aeb61aed2884822e98e694189537ba065320
https://github.com/Perl/perl5/commit/b429aeb61aed2884822e98e694189537ba065320
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 03025445aa3d38719fea86cdf5d2279e5409dacb
https://github.com/Perl/perl5/commit/03025445aa3d38719fea86cdf5d2279e5409dacb
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX commit message, assert(0);locale.c: Add code to do thread-safe emulation
Commit: 240ae67055114d2a29a2dffb733be3487c83e19b
https://github.com/Perl/perl5/commit/240ae67055114d2a29a2dffb733be3487c83e19b
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 2dce3d948c4ebe267bf83b29cff8c72e5c173569
https://github.com/Perl/perl5/commit/2dce3d948c4ebe267bf83b29cff8c72e5c173569
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 83720af48c6f2aeccc877232169808f655e1d0b0
https://github.com/Perl/perl5/commit/83720af48c6f2aeccc877232169808f655e1d0b0
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX loop index for consistency
Commit: f915fefa48c60040e7c82714fc6b77117fdcaf1a
https://github.com/Perl/perl5/commit/f915fefa48c60040e7c82714fc6b77117fdcaf1a
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX Lv? locale.c: Add some debugging,
Commit: 305d4ae78c5c5f640ebf8e6d6af6f58b6c93dd79
https://github.com/Perl/perl5/commit/305d4ae78c5c5f640ebf8e6d6af6f58b6c93dd79
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: f5620b3658a9126353b453967bded8bebca1267c
https://github.com/Perl/perl5/commit/f5620b3658a9126353b453967bded8bebca1267c
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M inline.h
Log Message:
-----------
XXX temporary: Add some debugging code for locale emulation
Commit: 825ce566526240e49edf4ea65b7809f04dc4755c
https://github.com/Perl/perl5/commit/825ce566526240e49edf4ea65b7809f04dc4755c
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M pp.c
Log Message:
-----------
XXX pp.c: do %g print under mutex,
Commit: d7da1c23383f210c7a4b72ac6f87511587c4f7f0
https://github.com/Perl/perl5/commit/d7da1c23383f210c7a4b72ac6f87511587c4f7f0
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M intrpvar.h
Log Message:
-----------
intrpvar.h: Addd clarifying comment
Commit: 63330ac2c6c53163b1c89b8afc427f6c6de0d443
https://github.com/Perl/perl5/commit/63330ac2c6c53163b1c89b8afc427f6c6de0d443
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
lc_messages bug
Commit: 889e3f6cc072698c6fbc26da9db6965bbd7e7755
https://github.com/Perl/perl5/commit/889e3f6cc072698c6fbc26da9db6965bbd7e7755
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
locale init
Commit: 5baba178e93602ed5fc5a141b2807ff8e338eaff
https://github.com/Perl/perl5/commit/5baba178e93602ed5fc5a141b2807ff8e338eaff
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: bb399f299a72a58dd9476e960c8eb07cbef7f3e8
https://github.com/Perl/perl5/commit/bb399f299a72a58dd9476e960c8eb07cbef7f3e8
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: e56e2e7b9ed029483133fff8380e8fdf42d1c167
https://github.com/Perl/perl5/commit/e56e2e7b9ed029483133fff8380e8fdf42d1c167
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: a4c0570bedf6613a2123efda51f4c1139fd14a0d
https://github.com/Perl/perl5/commit/a4c0570bedf6613a2123efda51f4c1139fd14a0d
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: f792b4ea52936d4e35fa97f98663e83526309139
https://github.com/Perl/perl5/commit/f792b4ea52936d4e35fa97f98663e83526309139
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 9756078521da400ac173bbb3b3ad8f9b49570e2a
https://github.com/Perl/perl5/commit/9756078521da400ac173bbb3b3ad8f9b49570e2a
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M intrpvar.h
M perl.h
M sv.c
Log Message:
-----------
Turn on thread-safe emulation
Commit: e0d880f98cd9d869785b1ca868470c10c2595f69
https://github.com/Perl/perl5/commit/e0d880f98cd9d869785b1ca868470c10c2595f69
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 682f21ed01a37d92f73aef058e5c0b97caf05765
https://github.com/Perl/perl5/commit/682f21ed01a37d92f73aef058e5c0b97caf05765
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Move some statements
So they are closer to related statements
Commit: 13bd4bee0cc1c5b723cbeb59ef1a4314a3a067a5
https://github.com/Perl/perl5/commit/13bd4bee0cc1c5b723cbeb59ef1a4314a3a067a5
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: a8d10e098a30a56ee43e9f87a784fde6ec290947
https://github.com/Perl/perl5/commit/a8d10e098a30a56ee43e9f87a784fde6ec290947
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M cygwin/cygwin.c
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 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 proto.h
M regen/reentr.pl
M regexec.c
M sv.c
M t/harness
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
Log Message:
-----------
STRFTIME
Commit: 3e342c381adf9120b9d56c85f9fe57e7bb720d16
https://github.com/Perl/perl5/commit/3e342c381adf9120b9d56c85f9fe57e7bb720d16
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: d9912110bb1879e9bf4895bba85f0d55f60e4a6d
https://github.com/Perl/perl5/commit/d9912110bb1879e9bf4895bba85f0d55f60e4a6d
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
M mg.c
Log Message:
-----------
more strerror mg.c
Commit: 9c32435034dfde928d5d5de2b2af5d2116b0923c
https://github.com/Perl/perl5/commit/9c32435034dfde928d5d5de2b2af5d2116b0923c
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M locale.c
Log Message:
-----------
XXX prob drop; done before anything so no races
Commit: 65c19aa468077d46c84d7aa263ef661ff0f5c972
https://github.com/Perl/perl5/commit/65c19aa468077d46c84d7aa263ef661ff0f5c972
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M util.c
Log Message:
-----------
XXX util.c: LOCALTIME lock
Commit: 99fc94dda77a95b72c7017afea7232b2603ad793
https://github.com/Perl/perl5/commit/99fc94dda77a95b72c7017afea7232b2603ad793
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: a3ef3c4e1a02fda42023cd751f17b3f6f425a3be
https://github.com/Perl/perl5/commit/a3ef3c4e1a02fda42023cd751f17b3f6f425a3be
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M pp_sys.c
Log Message:
-----------
XXX need to StructCopy pp_sys mutexes
Commit: 0ff9d3c6d795c2852e0747f137feeb9437b3532c
https://github.com/Perl/perl5/commit/0ff9d3c6d795c2852e0747f137feeb9437b3532c
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M win32/win32.c
Log Message:
-----------
win32.c: Add mutexes around some calls
These could have races.
Commit: e39c2d6feaf3656b39cc2145b7edc31f5358dfa3
https://github.com/Perl/perl5/commit/e39c2d6feaf3656b39cc2145b7edc31f5358dfa3
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M win32/win32.c
Log Message:
-----------
more_win32.c
Commit: 54e7217e4452d09a7d0c508c86c0b054d0a98b12
https://github.com/Perl/perl5/commit/54e7217e4452d09a7d0c508c86c0b054d0a98b12
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M util.c
Log Message:
-----------
mktime needs to run under a mutex
per the Posix standard
Commit: 1fd8b2a0479aadad513fdcfc75b0b97e1ed8cb63
https://github.com/Perl/perl5/commit/1fd8b2a0479aadad513fdcfc75b0b97e1ed8cb63
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
XXX perlxs
Commit: 8f22a77377a23e22bdffe27d2da130bf506d0c2e
https://github.com/Perl/perl5/commit/8f22a77377a23e22bdffe27d2da130bf506d0c2e
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
more perlxs
Commit: 6509c0c4d4d90ab6e04a25f918bc17fa7cc04aa2
https://github.com/Perl/perl5/commit/6509c0c4d4d90ab6e04a25f918bc17fa7cc04aa2
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 9852abe0bc8d99aa240c432d49f2eec439cc6c83
https://github.com/Perl/perl5/commit/9852abe0bc8d99aa240c432d49f2eec439cc6c83
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M dosish.h
M unixish.h
Log Message:
-----------
XXX Fix IO destruction order
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.
revert move
Commit: 8ebb3794867145728750e7b4e8f1d0b1be34a644
https://github.com/Perl/perl5/commit/8ebb3794867145728750e7b4e8f1d0b1be34a644
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.pm
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX cpan PR Time-Piece
Commit: cfbcfc9ee42fb0534b9247e3a9cd04009a568580
https://github.com/Perl/perl5/commit/cfbcfc9ee42fb0534b9247e3a9cd04009a568580
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: d1cd67dafdba08079057ded9e3b892f4fb5ae6ea
https://github.com/Perl/perl5/commit/d1cd67dafdba08079057ded9e3b892f4fb5ae6ea
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: 4a18d2920594089064ff57f8eb6d868f6efc3750
https://github.com/Perl/perl5/commit/4a18d2920594089064ff57f8eb6d868f6efc3750
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: eb49ab1e94e885b5a8a6f0c7381829f82d805d17
https://github.com/Perl/perl5/commit/eb49ab1e94e885b5a8a6f0c7381829f82d805d17
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: fb9a6791d1679046decedd453052524982971b56
https://github.com/Perl/perl5/commit/fb9a6791d1679046decedd453052524982971b56
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX Time Piece temporary
Commit: bb585e649e9a39e56d746b82d8ccf4c7dbd511c0
https://github.com/Perl/perl5/commit/bb585e649e9a39e56d746b82d8ccf4c7dbd511c0
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Timepiece
Commit: 6244885efdce022272a81050076aaf3568c52a67
https://github.com/Perl/perl5/commit/6244885efdce022272a81050076aaf3568c52a67
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M pod/perlhacktips.pod
Log Message:
-----------
XXX incomplete perlhacktips:
Commit: 6ddfd40999ddda58636c315a3e2de0518bb24bf2
https://github.com/Perl/perl5/commit/6ddfd40999ddda58636c315a3e2de0518bb24bf2
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 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: a7f742e0375155dd0f7a698f4cfbf1838086a51f
https://github.com/Perl/perl5/commit/a7f742e0375155dd0f7a698f4cfbf1838086a51f
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M hints/freebsd.sh
Log Message:
-----------
XXX check with freebsd: hints/freebsd.sh
Commit: 9fcf591277f31327f6a5dff140fe88c256c8acf6
https://github.com/Perl/perl5/commit/9fcf591277f31327f6a5dff140fe88c256c8acf6
Author: Karl Williamson <[email protected]>
Date: 2021-02-05 (Fri, 05 Feb 2021)
Changed paths:
M embed.fnc
M embed.h
M ext/I18N-Langinfo/Langinfo.xs
M locale.c
M mg.c
M perl_langinfo.h
M proto.h
Log Message:
-----------
f
Compare: https://github.com/Perl/perl5/compare/3d202f2680c2...9fcf591277f3