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

Reply via email to