Branch: refs/heads/smoke-me/khw-locale
  Home:   https://github.com/Perl/perl5
  Commit: 8195284e26ab9fab31cd3af6b24492b6c5c9d1cb
      
https://github.com/Perl/perl5/commit/8195284e26ab9fab31cd3af6b24492b6c5c9d1cb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  perlapi: Rmv repeated word


  Commit: 150236fda23ff346018682418072f08e4b5c40a8
      
https://github.com/Perl/perl5/commit/150236fda23ff346018682418072f08e4b5c40a8
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M dosish.h
    M unixish.h

  Log Message:
  -----------
  XXX craig Unixish.h, doshish.h: Reorder terminations; simplify

The IO and memory terminations need to be after other things.  Add a
comment so that future maintainers won't make the mistakes I did.

Also refactor to that amiga os doesn't have a separate list to get out
of sync

I suspect that the amiga termination should be moved to earlier in
the sequence, but absent any evidence; I'm leaving it unchanged.


  Commit: 0a8675d7d9132fc61d758545b2dba4f010f4b3f7
      
https://github.com/Perl/perl5/commit/0a8675d7d9132fc61d758545b2dba4f010f4b3f7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Win32: Don't check folds validity

This code will check, when warnings are on, that the libc functions
return valid values.  But Windows platforms will always fail because
they have multiple divergences from the Posix standard.  The macros that
implement the case changing/folding in handy.h take extra steps to bring
Windows code more into alignment with Posix.  Those are too complicated
to easily duplicate the logic here.  The result of these checks is
looked at by our test suite, which has long, without anyone noticing,
skipped portions on Windows, even though handy.h should correct for
this.  So simply, don't do the checking under Windows, and find out what
handy.h has failed to fully correct for.


  Commit: 38eab8aee62e5aa34a23845eddb7023b10e85898
      
https://github.com/Perl/perl5/commit/38eab8aee62e5aa34a23845eddb7023b10e85898
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: b8fbc1272a45f68f3778f2ca7a95c806bd9dec83
      
https://github.com/Perl/perl5/commit/b8fbc1272a45f68f3778f2ca7a95c806bd9dec83
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 82bf6bf7c6b22a8b566d0f5ad25eb5370c110960
      
https://github.com/Perl/perl5/commit/82bf6bf7c6b22a8b566d0f5ad25eb5370c110960
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h
    M numeric.c
    M regcomp.c
    M regexec.c
    M utfebcdic.h

  Log Message:
  -----------
  Change handy.h 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: 8f108048ae2d7e45f1b1a929677f1bb7cd2e7c4d
      
https://github.com/Perl/perl5/commit/8f108048ae2d7e45f1b1a929677f1bb7cd2e7c4d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Remove only 2 calls to an internal macro

Replace isIDFIRST_LC and isWORD_CHAR_LC isIDFIRST_LC  with slightly
faster implementations.


  Commit: 43483520df23844fea6359589e4092a61c1be61a
      
https://github.com/Perl/perl5/commit/43483520df23844fea6359589e4092a61c1be61a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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 isIDFIRST_LC and isWORDCHAR_LC definitions for
non-Windows to match that platform superficially, though expanding to
what it previously did to.


  Commit: 6cc22ef35dd75d5e75ae827afd14c6c2200b2091
      
https://github.com/Perl/perl5/commit/6cc22ef35dd75d5e75ae827afd14c6c2200b2091
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Add some branch predictions


  Commit: 76d08d3552fda37e96a4ac872f25c3266ace0630
      
https://github.com/Perl/perl5/commit/76d08d3552fda37e96a4ac872f25c3266ace0630
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: White-space, comment only


  Commit: 4d14018b6b508c922a27023ea2b6a1bf635221eb
      
https://github.com/Perl/perl5/commit/4d14018b6b508c922a27023ea2b6a1bf635221eb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Don't use char class if no LC_CTYPE

It is possible to compile perl to not pay attention to LC_CTYPE.  This
was testing for no locales at all; whereas the stricter requirement
should be used.


  Commit: 28151792115aee7b00d56cda6c78b859ceeac7f6
      
https://github.com/Perl/perl5/commit/28151792115aee7b00d56cda6c78b859ceeac7f6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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 handy.h 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: e6bdf7c29a150f330ae079c5c84e98e747edd5b2
      
https://github.com/Perl/perl5/commit/e6bdf7c29a150f330ae079c5c84e98e747edd5b2
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Rmv internal macro

LC_CAST_ was my attempt at generality, but I didn't realize that the
POSIX standard specifies the type that this was meant to generalize, so
there isn't any need for it.


  Commit: a950f262ef8537440a251ea2317f1062490056a8
      
https://github.com/Perl/perl5/commit/a950f262ef8537440a251ea2317f1062490056a8
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: ae792a8564f745cb29e37c9306f591e9cf5c42d1
      
https://github.com/Perl/perl5/commit/ae792a8564f745cb29e37c9306f591e9cf5c42d1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Rmv unnecessary parameter to internal macros

The cast is required to be U8 by the POSIX standard.  There is no need
to have this added generality.


  Commit: 87eeda4ecaef0dd6a2bf761b83a2bcd5e4f256de
      
https://github.com/Perl/perl5/commit/87eeda4ecaef0dd6a2bf761b83a2bcd5e4f256de
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: #define one macro in terms of another

These two macros are equivalent as folding and lowercasing are the same
for this input domain.  Better to say so rather than to replicate the
definitions.


  Commit: 8dcce51c53a2ed302de4abd8383a108bca74fdc7
      
https://github.com/Perl/perl5/commit/8dcce51c53a2ed302de4abd8383a108bca74fdc7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  No locales => don't use isspace(), toLower() etc.

This commit changes what happens on platforms without locale handling to
use our precomputed definitions of what the various character class
definitions and case changing operations are.  Previously, it just
called the libc locale-dependent functions and made sure the result was
ASCII.  I think this is a holdover from before we had the precomputed
definitions


  Commit: d43512c16d05dd5fbafbf0a86e537d2289daa843
      
https://github.com/Perl/perl5/commit/d43512c16d05dd5fbafbf0a86e537d2289daa843
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Collapse two sets of macros

By redefining a wrapper macro used in one set based on compile-time
info; the other set can be defined in terms of it, and the separate
entries removed.


  Commit: 3c2728e80ab06ae0d541f02f15142eb803f7f53e
      
https://github.com/Perl/perl5/commit/3c2728e80ab06ae0d541f02f15142eb803f7f53e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Move some macro defns around

This is to make the difference listing in future commits smaller.

This change includes some comment changes, and some extra parens around
some subexpressions


  Commit: 373a4098ed0fdd4ff1f9a5a5f9b5d0bfbac7e33c
      
https://github.com/Perl/perl5/commit/373a4098ed0fdd4ff1f9a5a5f9b5d0bfbac7e33c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Collapse some macros

These 3 sets of macros can be collapsed trivially into 3 macros.


  Commit: 366185140eafe1a1e6bd2305a6d6d3cc7b1d2e24
      
https://github.com/Perl/perl5/commit/366185140eafe1a1e6bd2305a6d6d3cc7b1d2e24
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Add wrapper layer macros for isalnum() ...

This adds a new set of macros, forming a lower layer to what is currently
there to wrap the character classification libc functions, isdigit()
etc, and case changing ones, tolower(), toupper().

On most platforms these expand simply to the libc function call.  But on
windows, they expand to something more complex, to bring the Windows
calls into POSIX compliance.  Previously that was achieved at the higher
level, with the result that lower level calls were broken.  This
resulted in parts of the test suite being skipped on Windows.

The current level is rewritten to use the new lower layer, with the
result that it is simpler, as the complexity is now done further down.

I thought about calling these macros is_porcelain_isalnum or something
similar to emphaisze that they are close to the bare libc version, but
thought isU8_alnum() is shorter and conveys another truth, that being
the input is assumed to be a byte, without checking.


  Commit: 2fe0bde4e2464a6e165e5338bc7e551a06f5879e
      
https://github.com/Perl/perl5/commit/2fe0bde4e2464a6e165e5338bc7e551a06f5879e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M vms/vms.c

  Log Message:
  -----------
  locale.c: Use new macros from the prev commit

This should result in Windows boxes now passing the locale sanity
checks.  Previously that failure would cause the test suite tests to be
skipped, and warnings generated to Windows users that actually were
invalid, as the flaws were actually compensated for in other code.


  Commit: 645defe2d11d64f4f16a7505c551cf876106188a
      
https://github.com/Perl/perl5/commit/645defe2d11d64f4f16a7505c551cf876106188a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  XXX SEE IF WORKS handy.h: Change Windows macros


  Commit: 7c150b52d060c7b736c8aa7594776f2d937414cf
      
https://github.com/Perl/perl5/commit/7c150b52d060c7b736c8aa7594776f2d937414cf
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Add isCASED_LC

As a convenience to other code.


  Commit: 1b760ff2309d1eca178bc37b6b7aef95b0a77a3f
      
https://github.com/Perl/perl5/commit/1b760ff2309d1eca178bc37b6b7aef95b0a77a3f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M regexec.c

  Log Message:
  -----------
  regexec.c: Improve code

These case statements in a switch all had the same prelude for checking
if the locale is UTF-8 and handling that case separately.  A few commits
ago created macros closer to the base level.  This commit factors out
the common UTF-8 handling, and then puts the lower lever things in the
switch().  Perhaps the C optimizer will be smart enough to do this too,
but we might as well do it ourselves, now that it is convenient.


  Commit: a1deaf14f5d2365338aed9b572474294b8d89919
      
https://github.com/Perl/perl5/commit/a1deaf14f5d2365338aed9b572474294b8d89919
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M regexec.c

  Log Message:
  -----------
  regexec.c: Refactor switch default()

It seems clearer to me to have the panic at the end of the routine
instead of as the default: of a switch().


  Commit: 64f8a3fc05beb210ff7ea9b090ba36a096794617
      
https://github.com/Perl/perl5/commit/64f8a3fc05beb210ff7ea9b090ba36a096794617
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Declare three static arrays to be so.


  Commit: 8c899b7942e69efd94fef23510f9ade9fa7436f5
      
https://github.com/Perl/perl5/commit/8c899b7942e69efd94fef23510f9ade9fa7436f5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 310002df5bf2ca4b5efd070e96329afae8dc4b60
      
https://github.com/Perl/perl5/commit/310002df5bf2ca4b5efd070e96329afae8dc4b60
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 288a1a57a6d973db0c9a640c5bbbf484a8384476
      
https://github.com/Perl/perl5/commit/288a1a57a6d973db0c9a640c5bbbf484a8384476
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M makedef.pl
    M perl.h

  Log Message:
  -----------
  Add USE_LOCALE_THREADS #define

This is in preparation for supporting configurations where there threads
are available, but the locale handling code should ignore that fact.

This stems from the unusual locale handling of z/OS, where any attempt
is ignored to change locales after the first thread is created.


  Commit: 829b98493fa90554a4fa15157f4d07fbd164da92
      
https://github.com/Perl/perl5/commit/829b98493fa90554a4fa15157f4d07fbd164da92
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M ext/POSIX/lib/POSIX.pm
    M intrpvar.h
    M locale.c
    M makedef.pl
    M perl.c
    M perl.h
    M sv.c

  Log Message:
  -----------
  Regularize HAS_POSIX_2008_LOCALE, USE_POSIX_2008_LOCALE

A platform shouldn't be required to use the Posix 2008 locale handling
functions if they are present.  Perhaps they are buggy.  So, a separate
define for using them was introduced, USE_POSIX_2008_LOCALE.  But until
this commit there were cases that were looking at the underlying
availability of the functions, not if the Configuration called for their
use.


  Commit: e00438707f0a475a9527c95916e4f21c6bd6f2be
      
https://github.com/Perl/perl5/commit/e00438707f0a475a9527c95916e4f21c6bd6f2be
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Change macro name

Adopt the git convention of 'porcelain' meaning without special
handling.  This makes it clear that porcelain_setlocale() is the base
level.


  Commit: 2200dc4b9cf6acade2bf19896f89e24859d766c0
      
https://github.com/Perl/perl5/commit/2200dc4b9cf6acade2bf19896f89e24859d766c0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Cast return of setlocale() to const

If they had it to do over again, the libc makers would have made the
return of this function 'const char *'.  We can cast it that way
internally to catch erroneous uses at compile time.


  Commit: be8007d8ace0ce398b576b83f601fd8d1f223599
      
https://github.com/Perl/perl5/commit/be8007d8ace0ce398b576b83f601fd8d1f223599
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Create S_get_category_index()

libc locale categories, like LC_NUMERIC, are opaque integers.  This
makes it inconvenient to have table-driven code.  Instead, we have
tables that are indexed by small positive integers, which are a
compile-time mapping from the libc values.

This commit creates a run-time function to also do that mapping.  It
will first be used in the next commit.

The function does a loop through the available categories, looking for a
match.  It could be replaced by some sort of quick hash lookup, but the
largest arrays in the field have a max of 12 elements, with almost all
searches finding their quarry in the first 6.  It doesn't seem
worthwhile to me to replace a linear search of 6 elements by something
more complicated.  The design intent is this search will be used only at
the edges of the locale-handling code; once found the index is used in
future bits of the current operation.


  Commit: 32917078f128a32d543fc85de2221bcd3eccd819
      
https://github.com/Perl/perl5/commit/32917078f128a32d543fc85de2221bcd3eccd819
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Use get_category_index()

This creates the first uses of the function added in the previous commit.

It changes the name of a function that now takes an index to have the
suffix _i to indicate its calling parameter is a category index rather
than a category.  This will become a common paradigm in this file in
later commits.

Two macros are also created to call that function; they have suffixes _c
(to indicate the parameter is a category known at compile time, and _r
(to indicate it needs to be computed at runtime).  This is in keeping
with the already existing paradigm in this file.


  Commit: 2c42ee27da3d8a5c02462131b309092c1e2ca9d1
      
https://github.com/Perl/perl5/commit/2c42ee27da3d8a5c02462131b309092c1e2ca9d1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Change S_emulate_setlocale name and sig

It turns out this function is called only from places where we have the
category index already computed; so change the signature to use the
index and remove the re-calculation.

It renames it to emulate_setlocale_i() to indicate that the category
parameter is an index.

This also means, that it's very unlikely that it will be called with an
out-of-bounds value.  Remove the debugging statement for that case (but
retain the error return value).


  Commit: 6b731fbef56f807f97a2e402e50493e807cc1cb2
      
https://github.com/Perl/perl5/commit/6b731fbef56f807f97a2e402e50493e807cc1cb2
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M pod/perldelta.pod
    M pod/perldiag.pod

  Log Message:
  -----------
  locale.c: Simplify S_category_name

We can use the new function S_get_category_index() to simplify this.
Also, when I wrote it I didn't know about Perl_form(), and had
reimplemented a portion of it here; which is yanked as well.


  Commit: 9a3b0ba782942352bb950bbadc78e31bf9444fed
      
https://github.com/Perl/perl5/commit/9a3b0ba782942352bb950bbadc78e31bf9444fed
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 62a42c495f9f203ce239534e56596287f125373d
      
https://github.com/Perl/perl5/commit/62a42c495f9f203ce239534e56596287f125373d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Comment clarifications, white space

Some of these are to make future difference listings shorter

Some of the changes look like incorrect indentation here, but anticipate
future commits.


  Commit: a3801c3f4b74fbff69ded986f6cd6808c63779d1
      
https://github.com/Perl/perl5/commit/a3801c3f4b74fbff69ded986f6cd6808c63779d1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move fcn within file

This is for later commits which will change it to rely on new defines
that won't occur until later in the file than its current position


  Commit: e0b891aa727b630c235d2e12c22bd3dd7b0afe89
      
https://github.com/Perl/perl5/commit/e0b891aa727b630c235d2e12c22bd3dd7b0afe89
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Separate 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: 0a52645ea6cb91421166c89f1e55651741d5cb1e
      
https://github.com/Perl/perl5/commit/0a52645ea6cb91421166c89f1e55651741d5cb1e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Outdent previous commit

The previous commit kept the indentation level the same as it moved code
to a new function, even though an outer block was stripped off in the
process.  This was to minimize diff output.  This commit is white space
only.


  Commit: eb5b9db5098c8d80a5a309588493e0a2a4aac6f7
      
https://github.com/Perl/perl5/commit/eb5b9db5098c8d80a5a309588493e0a2a4aac6f7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 9a4e4ba8027f1394793288d3936611153ad7e32f
      
https://github.com/Perl/perl5/commit/9a4e4ba8027f1394793288d3936611153ad7e32f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: #define some macros in terms of a base one

This is so changes to the lowest level automatically propagate to the
others


  Commit: b258e1c2804e644043cd385c6ff4ed74a1d218fe
      
https://github.com/Perl/perl5/commit/b258e1c2804e644043cd385c6ff4ed74a1d218fe
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Create new macros for just querying locale

There are two sets of names, which immediately indicate if the result
can be relied on to be thread level or must be assumed to be global to
the whole process.  At the moment they all expand to the same thing,
since on a threadless perl, it's a don't care; and on a threaded perl,
they are all already thread-level, in the Configurations we support.

Future commits will cause the macros to diverge, and comments will be
added then.

For POSIX 2008, this commit causes queries to go directly to the query
function, avoiding S_emulate_setlocale_i() completely.


  Commit: 3234f797f368e0c6805c0236dc6026522f9b90df
      
https://github.com/Perl/perl5/commit/3234f797f368e0c6805c0236dc6026522f9b90df
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 4504b7e5a7be44f1c1725f8dde8535f9f86696df
      
https://github.com/Perl/perl5/commit/4504b7e5a7be44f1c1725f8dde8535f9f86696df
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add a convenience #define

This makes it clear if we are using an array that currently only happens
on non-querylocale systems, but that will change in future commits.


  Commit: c890e4598e71aed6a6635f5885bb49ec7094ec6c
      
https://github.com/Perl/perl5/commit/c890e4598e71aed6a6635f5885bb49ec7094ec6c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add setlocale() return context macros

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 and can be relied on (or not) to be per-thread.


  Commit: 34ff653e8bf7fc9772be382d388bcd59472bf41c
      
https://github.com/Perl/perl5/commit/34ff653e8bf7fc9772be382d388bcd59472bf41c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add panic check/message

This panic is done when a setlocale unexpectedly fails.


  Commit: 1d9051da0cf780efb54257d547743f99bbb4ff81
      
https://github.com/Perl/perl5/commit/1d9051da0cf780efb54257d547743f99bbb4ff81
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 901bd17ce1c6f1bd7b0858273115173d69b10411
      
https://github.com/Perl/perl5/commit/901bd17ce1c6f1bd7b0858273115173d69b10411
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Perl_setlocale(): Same code for all param2 == NULL

Calling Perl_setlocale() with a NULL 2nd parameter returns the current
locale, rather than changing it.  Previously LC_NUMERIC and LC_ALL were
treated specially; other categories were lumped in with the code that
changes the locale.

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', and the unnecessarily executing code
for when the locale changes is avoided.


  Commit: 8098c89a1cad147c417b1454d7ceefa9f1efc641
      
https://github.com/Perl/perl5/commit/8098c89a1cad147c417b1454d7ceefa9f1efc641
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use low level macros at low level

Implementing Perl_setlocale, we can safely use the internal macros that
the public ones expand to call, without the overhead those public macros
impose (which they do to be more immune from improper calls from outside
code).


  Commit: 1c6ddac1158a7dc3d992e2c15b42ed3764e48c39
      
https://github.com/Perl/perl5/commit/1c6ddac1158a7dc3d992e2c15b42ed3764e48c39
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Remove exploratory code

This code was to find out, in debugging builds, if an undocumented glibc
feature worked.  There were no reports that it didn't, and so, after,
several releases, it has served its purpose.  A future commit will allow
enabling this feature as a Configuration option.


  Commit: a2b132de0884e320b561b5e6015d839c4f5ec6fe
      
https://github.com/Perl/perl5/commit/a2b132de0884e320b561b5e6015d839c4f5ec6fe
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Expand scope of cpp conditional

This just doesn't bother with checking some locale-related stuff if not
paying attention to locales.


  Commit: 6281c26389820f38041e2548d9bf942898844b4a
      
https://github.com/Perl/perl5/commit/6281c26389820f38041e2548d9bf942898844b4a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  locale.c: Create new convenience macro

glibc doesn't have the querylocale() function, available on some other
platforms, such as Darwin and *BSD.  However, it instead has the
equivalent functionality available through an undocumented feature.

This commit allows someone in the know to compile perl to use that
feature, and wraps its API with a macro so that the calling code doesn't
have to be aware of the different APIs of the two methods.

That macro's definition is now done in perl.h, as future commits will
use it in other files.

Since this is an undocumented feature, I am not currently documenting
this wrapper availability.  However, it has been used in the field
without complaint for a couple of releases, as follows:  A more
cumbersome substitute method continues to be used to get what it does.
But in the past both methods were tried and the program died if they
yielded different results.  Since no one has complained, I'm fairly
confident it works.  But sill I'm deferring its more general use.


  Commit: 5c6dae74fcb92e059d1ce0bf1fe0257ea2370636
      
https://github.com/Perl/perl5/commit/5c6dae74fcb92e059d1ce0bf1fe0257ea2370636
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M intrpvar.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: querylocale() doesn't work on LC_ALL

I had misread the man pages.  This bug has been in the field for several
releases now, but most likely hasn't shown up because it's almost always
the case that the locale categories will be set to the same locale.  And
so most implementations of querylocale() would return the correct
result.

This commit works by splitting the calculation of the value of LC_ALL
from S_emulate_setlocale_i() into a separate function, and extending it
to work on querylocale() systems.  This has the added benefit of
removing tangential code from the main line, making
S_emulate_setlocale_i easier to read.

calculate_LC_ALL() is the new function, and is now called from two
places.  As part of this commit, constness is added to PL_curlocales[]

Part of this change is to keep our records of LC_ALL on non-querylocale
systems always up-to-date, which is better practice

And part of this change is temporary, marked as such, to be removed a
few commits later.


  Commit: f5af94be10d5ab0ff21b05902cee0a1baaff15d2
      
https://github.com/Perl/perl5/commit/f5af94be10d5ab0ff21b05902cee0a1baaff15d2
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M intrpvar.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  Make three locale PL_ strings const char*

This adds some compile safety to these.


  Commit: 1e3ce0391efcf54b866e721afd0618e1f7a0b69a
      
https://github.com/Perl/perl5/commit/1e3ce0391efcf54b866e721afd0618e1f7a0b69a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c Make a char * variable const

A future commit will want this


  Commit: 58e91fa307f0d82756e9b72e987337f87fe8f6a1
      
https://github.com/Perl/perl5/commit/58e91fa307f0d82756e9b72e987337f87fe8f6a1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M embedvar.h
    M intrpvar.h
    M locale.c
    M perl.c
    M proto.h
    M sv.c

  Log Message:
  -----------
  locale.c: Generalize stdize_locale()

This function is rewritten to handle LC_ALL, and to make it easier to
add new checks.

There is also a change, which I think is an improvement, in that everything
starting with a \n is trimmed, instead of just a trailing \n being

A couple of calls to stdize_locale() are removed, as they are redundant,
because they are called only as a result of Perl_setlocale() being
called, and that ends up calling stdize_locale always, early on.

The call to savepv() is also moved in a couple cases to after the result
is known to not be NULL

I originally had such a new check in mind, but it turned out that doing
it here didn't solve the problem, so this commit has been amended
(before ever being pushed) to not include that.
chomped.


  Commit: e179f343f7a5224ac864a8c5b0339d13ca7e240c
      
https://github.com/Perl/perl5/commit/e179f343f7a5224ac864a8c5b0339d13ca7e240c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX drop stdize_locale: #if 0, enabled even for emulate


  Commit: 03eb735da5e8818d713584626de492b967055f18
      
https://github.com/Perl/perl5/commit/03eb735da5e8818d713584626de492b967055f18
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Refactor some derived #defines

The _c suffix is supposed to mean the category is known at compile time.
In some configurations this does not matter, and so I had named things
carelessly, so this might be confusing.  This commit fixes that.


  Commit: eae293842c3baf30f6aa4b0cf2d4837895f06bb9
      
https://github.com/Perl/perl5/commit/eae293842c3baf30f6aa4b0cf2d4837895f06bb9
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use setlocale() for init, not P2008

We have found bugs in the POSIX 2008 libc implementations on various
platforms.  This code, which does the initialization of locale handling
has always been very conservative, expecting possible failures due to
bugs in it our the libc implementations, and backing out if necessary to
a crippled, but workable state, if something goes wrong.

I think we should use the oldest, most stable locale implementation in
these circumstances


  Commit: 393b6906a06230683e699d03536b164585a22a68
      
https://github.com/Perl/perl5/commit/393b6906a06230683e699d03536b164585a22a68
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Split aggregate LC_ALL from emulate_setlocale

This splits into a separate function the code necessary in some
Configurations to calculate LC_ALL from a potentially disparate
aggregate of categories having different locales.

This is being done just for readability, as this extensive code in the
middle of something else distracts from the main point.

A goto is hence replaced by a recursive call.


  Commit: ee45eb1064b787648ecbec03a3aa718ab6fc5206
      
https://github.com/Perl/perl5/commit/ee45eb1064b787648ecbec03a3aa718ab6fc5206
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Change internal variable name

The new name better reflects its purpose, so is less confusing


  Commit: bc60d1b6fea660cdd161bf611cf0b1dc454876f6
      
https://github.com/Perl/perl5/commit/bc60d1b6fea660cdd161bf611cf0b1dc454876f6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Clean up handling of a glibc bug

This commit moves all mention of this bug to just the code that requires
it, and inlines a macro, making it easier to comprehend


  Commit: 577dd07b1553b163d6195b7ce522b381ca4566dc
      
https://github.com/Perl/perl5/commit/577dd07b1553b163d6195b7ce522b381ca4566dc
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Split ancillary from S_emulate_setlocale

This takes the code to update LC_ALL, used only in some Configurations,
out of the main line, making the main line more readable.

It also allows the removal of temporary code added a few commits back


  Commit: 023bc25db95eebe0f8127f84a8d24a81631b7a70
      
https://github.com/Perl/perl5/commit/023bc25db95eebe0f8127f84a8d24a81631b7a70
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: locale "" can be disparate

Setting a locale "" means to get the value from environment variables.
These can set locale categories to different locales, and this needs to
be handled.  The logic before this commit only handled the disparate
case when the locale wasn't ""; but this was compensated for elsewhere.
A future commit will remove that compensation.


  Commit: b89142579a87b9f1af1792beb041f2c2576068b5
      
https://github.com/Perl/perl5/commit/b89142579a87b9f1af1792beb041f2c2576068b5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  Split off setting locale to "" from S_emulate_setlocale

This is done for readability, to move the special casing of setting a
locale to the empty string (hence getting it from the environment) out
of the main line code.


  Commit: 9a3b3a5fe2b4bf6b07457141109aa32483f9df13
      
https://github.com/Perl/perl5/commit/9a3b3a5fe2b4bf6b07457141109aa32483f9df13
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv.c: Duplicate more variables during cloning

These locale-related ones should be getting initialized in the new
thread, but be certain.


  Commit: 134ea84e4e5c2ddc4299f7009946288882a22c3f
      
https://github.com/Perl/perl5/commit/134ea84e4e5c2ddc4299f7009946288882a22c3f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M embedvar.h
    M intrpvar.h
    M locale.c
    M makedef.pl
    M perl.c
    M proto.h
    M sv.c

  Log Message:
  -----------
  locale.c: Add fcn to hide edge case undefined behavior

The POSIX 2008 API has an edge case in that the result of most of the
functions when called with a global (as opposed to a per-thread) locale
is undefined.

The duplocale() function is the exception which will create a per-thread
locale containing the values copied from the global one.

This commit just calls duplocale, if needed, and the caller need not
concern itself with this possibility


  Commit: 993724eac92b38e30c84c1369431885c83bae8c3
      
https://github.com/Perl/perl5/commit/993724eac92b38e30c84c1369431885c83bae8c3
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add DEBUGGING information

These functions are called as expansions of macros.  It may be useful to
know where in the file the macro occurred.


  Commit: 709e5d13337bb5cd3927805f8032a5b1d83ec5e4
      
https://github.com/Perl/perl5/commit/709e5d13337bb5cd3927805f8032a5b1d83ec5e4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Separate out two Win fcns from a larger one

This makes the larger one easier to understand, and prepares for
possible independent calls to the two, which are potentially useful on
their own.


  Commit: f335200ed8266ccf7df83f9e28f21274b30234e0
      
https://github.com/Perl/perl5/commit/f335200ed8266ccf7df83f9e28f21274b30234e0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  f XXX make fcns accessible to cygwin


  Commit: b13946a1ab42d4d63bf5f52fddd617ef0ac77a90
      
https://github.com/Perl/perl5/commit/b13946a1ab42d4d63bf5f52fddd617ef0ac77a90
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: fe18058f859655feb5ef65dcb14ad013c062a6db
      
https://github.com/Perl/perl5/commit/fe18058f859655feb5ef65dcb14ad013c062a6db
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs

  Log Message:
  -----------
  POSIX.xs: White-space only

Properly indent some nested preprocessor directives


  Commit: 2cc6b72eeed6294f0a807f28ee1f84fa96e160d9
      
https://github.com/Perl/perl5/commit/2cc6b72eeed6294f0a807f28ee1f84fa96e160d9
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M ext/POSIX/POSIX.xs
    M locale.c
    M proto.h

  Log Message:
  -----------
  Move code from POSIX.xs to locale.c

This avoids duplicated logic.


  Commit: 1198c947c09adb75394eb1bdd997989adc1b3876
      
https://github.com/Perl/perl5/commit/1198c947c09adb75394eb1bdd997989adc1b3876
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Reorder cases in a switch

This moves handling the CODESET to the end, as future commits will make
its handling more complicated.  The cases are now ordered so the
simplest (based on the direction of future commits) are first


  Commit: 5826996ecb5993ac6ab20ff8ab3ba593376c5be8
      
https://github.com/Perl/perl5/commit/5826996ecb5993ac6ab20ff8ab3ba593376c5be8
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Make statics of repeated string constants

These strings are (or soon will be) used in multiple places; so have
just one definition for them.


  Commit: 495fdf11f6b8332e18246c10e3fd34ac0de974b4
      
https://github.com/Perl/perl5/commit/495fdf11f6b8332e18246c10e3fd34ac0de974b4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add two #defines

This makes sure that we handle having any variant of nl_langinfo() or
localeconv().


  Commit: 33ee5536692353ec9922d5b9fb24fa7ade4c93a0
      
https://github.com/Perl/perl5/commit/33ee5536692353ec9922d5b9fb24fa7ade4c93a0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Return defaults for uncomputable langinfo items

Return the values from the C locale for nl_langinfo() items that aren't
computable on this platform.  If the platform has nl_langinfo(), then
all of them are computable, but if not, some can't be computed, and
others can be, but only if there are alternative methods available on
the platform.

As part of this commit, S_my_nl_langinfo() and S_save_to_buffer() are no
longer used when USE_LOCALE is not defined, so don't compile them.


  Commit: 24fbc1f1cad3264a4419b7015ff81ae96c93a26a
      
https://github.com/Perl/perl5/commit/24fbc1f1cad3264a4419b7015ff81ae96c93a26a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv reimplementation of my_strftime()

Prior to this commit, there was a near duplicate copy of the code from
util.c that implements my_strftime().  This was done because the util.c
version zaps the wday field, which made it incompatible.

But it dawned on me that if the arbitrary date we use to do our
calculations were such that it was for a year in which January 1 falls
on a Sunday, then the util.c version automatically works.


  Commit: 6a671ef0426049dbb3d2a1765fb940caa0566cec
      
https://github.com/Perl/perl5/commit/6a671ef0426049dbb3d2a1765fb940caa0566cec
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Shorten static function name

The extra syllable(s) are unnecessary noise


  Commit: fbe6be6c730cc72386622a79a97905d0c932f71b
      
https://github.com/Perl/perl5/commit/fbe6be6c730cc72386622a79a97905d0c932f71b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Extend a static function

This will allow it to be used in situations where the buffer it controls
is single use, and we don't need to keep track of the size for future
calls.


  Commit: a2102c38b967aa68b709b461a7509fd512e5a8a6
      
https://github.com/Perl/perl5/commit/a2102c38b967aa68b709b461a7509fd512e5a8a6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use typedef to simplify

This allows some preprocessor conditionals to be removed


  Commit: d237ce4eaaf493a056575c78b78ede3290192ca0
      
https://github.com/Perl/perl5/commit/d237ce4eaaf493a056575c78b78ede3290192ca0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv redundant cBOOL()

strEQ and && already return booleans


  Commit: c0486e7e01fcbb1db3c4bc167051559647a9dc8f
      
https://github.com/Perl/perl5/commit/c0486e7e01fcbb1db3c4bc167051559647a9dc8f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Fix currency symbol derivation

On platforms without nl_langinfo(), we derive the currency symbol from
localeconv().  The symbol must be tweaked to conform to nl_langinfo()
standards.  Prior to this commit, it guessed at how to tweak a rare
circumstance.  I found evidence this guess was wrong, so looked around,
and copied the way cygwin does it.

This also no longer returns just an empty string in certain cases.
nl_langinfo() itself doesn't, so conform to that.


  Commit: 359ce807865eeb544e4b5bbf9140a342b2eb1e1f
      
https://github.com/Perl/perl5/commit/359ce807865eeb544e4b5bbf9140a342b2eb1e1f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't add CP to Windows code page names

The actual name appears to be just the number for purposes of
nl_langinfo()-ish things.


  Commit: 5d7930b05f03218a3f408df36ec7ec3b299dcd92
      
https://github.com/Perl/perl5/commit/5d7930b05f03218a3f408df36ec7ec3b299dcd92
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Don't ask a static fcn to be inlined

It's too complicated to really be inlined, and the compiler can figure
things out itself given it is a static function


  Commit: 46f42f3b83679770846b042775346eec92365b70
      
https://github.com/Perl/perl5/commit/46f42f3b83679770846b042775346eec92365b70
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Rmv no longer used param from static fnc

Previous commits have gotten rid of this parameter to S_save_to_buffer


  Commit: 97ac967ceb614460f4e22420b3053b9b9d653a20
      
https://github.com/Perl/perl5/commit/97ac967ceb614460f4e22420b3053b9b9d653a20
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't change locale if already there

Changing the locale is cheap for some categories, but expensive for
others.  Changing LC_COLLATE is most expensive, requiring recalculation
of the collation transformation mapping.

This commit checks that we aren't already in the desired locale before
changing locales. and does nothing if no change is needed.


  Commit: b442e1386eced2c72dbf0f0bfbca83b42d33a94b
      
https://github.com/Perl/perl5/commit/b442e1386eced2c72dbf0f0bfbca83b42d33a94b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use a scratch buf; instead of reusing old

This is in preparation for the next commit


  Commit: a91ba1e048810f837d56c1104142c9e31e708a27
      
https://github.com/Perl/perl5/commit/a91ba1e048810f837d56c1104142c9e31e708a27
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Make static fcn reentrant

This makes my_langinfo() reentrant by adding parameters specifying where
to store the result.

This prepares for future commits, and fixes some minor bugs for XS
writers, in that the claim was that the buffer in calling
Perl_langinfo() was safe from getting zapped until the next call to it
in the same thread.  It turns out there were cases where, because of
internal calls, the buffer did get zapped.


  Commit: d16255029dc020d8aa47f5fdc9e6d25b6dc2eb7a
      
https://github.com/Perl/perl5/commit/d16255029dc020d8aa47f5fdc9e6d25b6dc2eb7a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: langinfo: Use Windows fcn to find CODESET

There is a Windows function, available for quite a long time, that will
return the current code page.  Use this for the nl_langinfo() CODESET,
as that libc function isn't implemented on Windows.


  Commit: 9f5dc57097df4159626c7a4907801d11ce5b600b
      
https://github.com/Perl/perl5/commit/9f5dc57097df4159626c7a4907801d11ce5b600b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add static fcn to analyze locale codeset

It determines if the name indicates it is UTF-8 or not.  There are
several variant spellings in use, and this hides that from the the
callers.

It won't be actually used until the next commit


  Commit: 05b1ecd2e0b3d19990998d1b727d4b615b684a44
      
https://github.com/Perl/perl5/commit/05b1ecd2e0b3d19990998d1b727d4b615b684a44
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M ext/I18N-Langinfo/Langinfo.pm
    M locale.c

  Log Message:
  -----------
  locale.c: Improve non-nl_langinfo() CODESET calc

Prior to this commit, on non-Windows platforms that don't have a
nl_langinfo() libc function, the code completely punted computation of
the CODESET item.  I have not been able to figure out how to do this,
even going to the locale definition files on disk (which may vary
anyway), but we can do a lot better than punting.

This commit adds three checks:

1) If the locale name is C or POSIX, we know the codeset

2) We can detect if a locale is UTF-8.  If it is, that is the codeset.
Many modern locales are of this ilk.

3) Failing that, some locales have the codeset appear in the name,
following a dot.

It isn't perfect, but it's a lot better than completely punting.


  Commit: 44358c56b15672417e810b6643106f29781e0094
      
https://github.com/Perl/perl5/commit/44358c56b15672417e810b6643106f29781e0094
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  Add toggle_locale() fcns

These are designed to temporarily switch the locale for a cateogry
around some operation that needs it to be different than the current
one.  They will be used in the next commit.

These will eventually replace the more unwieldy
_is_cur_LC_category_utf8() function, which toggles as a side effect


  Commit: b6f16b924b523360921051f9bf378b3afc8a2566
      
https://github.com/Perl/perl5/commit/b6f16b924b523360921051f9bf378b3afc8a2566
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  New signature for static fcn my_langinfo()

This commit changes the calling sequence for my_langinfo to add the
desired locale (or a sentinel to indicate to use the current locale),
and the locale category of the desired item.

This allows the function to be able to return the desired value for any
locale, avoiding some locale changes that would happen until this
commit, and hiding the need for locale changes from outside functions,
though a couple continue to do so to avoid potential multiple changes.


  Commit: 265d8e18e361d301f78c18ea160c91df880d900b
      
https://github.com/Perl/perl5/commit/265d8e18e361d301f78c18ea160c91df880d900b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add is_locale_utf8()

Previous commits have added the infrastructure to be able to determine
if a locale is UTF-8.  This will prove useful, and this commit adds
a function to encapsulate this information, and uses it in a couple of
places, with more to come in future commits.

This uses as a final fallback, mbtowc(), which some sources view was a
late adder to C89, and others as not really being available until C99.
Future commits will add heuristics when that function isn't available.


  Commit: d3e3ed1680fda012f4b6b6da5cb24a3aeb75f0b9
      
https://github.com/Perl/perl5/commit/d3e3ed1680fda012f4b6b6da5cb24a3aeb75f0b9
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add fcn for UTF8ness determination

get_locale_string_utf8ness_i() will determine if the string it is passed
in the locale it is passed is to be treated as UTF-8, or not.


  Commit: ad491f3bec8ce21a5c85a1c9a5d6686b9267ced9
      
https://github.com/Perl/perl5/commit/ad491f3bec8ce21a5c85a1c9a5d6686b9267ced9
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M ext/POSIX/POSIX.xs
    M locale.c
    M proto.h

  Log Message:
  -----------
  XXX perldelta Move POSIX::localeconv() logic to locale.c

The code currently in POSIX.xs is moved to locale.c, and reworked some
to fit in that scheme, and the logic for the workaround for the Windows
broken localeconv() is made more robust.

This is in preparation for the next commit which will use this logic
instead of (imperfectly) duplicating it.

This also creates Perl_localeconv() for direct XS calls of this
functionality.


  Commit: 4729325581c1d18c8585924c0ea947b48dbb1f92
      
https://github.com/Perl/perl5/commit/4729325581c1d18c8585924c0ea947b48dbb1f92
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: localeconv() unconditional NUMERIC toggle

It is possible to lockout changing the LC_NUMERIC locale.  This is done
in some printf cases where a recursive call could get the radix
character wrong.  But localeconv(), which could be called during this
recursion on some platforms, toggles the locale briefly, without
affecting the surrounding calls; so it can do the toggle
unconditionally.

The previous commit merely moved the functionality of localeconv() from
POSIX.xs to locale.c.  This commit expands upon that.


  Commit: 2d1470b5bfb4cb66bbc1495a7046897a85105bc1
      
https://github.com/Perl/perl5/commit/2d1470b5bfb4cb66bbc1495a7046897a85105bc1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Collapse duplicate logic into one instance

The previous commit move the logic for localeconv() into locale.c.  This
commit takes advantage of that to use it instead of repeating the logic.

On Windows, there is alternative way of finding the radix character for
systems that have a localeconv() that could cause a race.  Prior to this
commit, if that failed to find something that looked like the radix, it
returned a '?'.  Now it will drop down to using this new code, as the
likelihood of the race is small.

Notably, this commit removes the inconsistent duplicate logic that had
been used to deal with the Windows broken localeconv() bug.


  Commit: f0949005f3e567e025d75ed2c3a7bcff34dc8e02
      
https://github.com/Perl/perl5/commit/f0949005f3e567e025d75ed2c3a7bcff34dc8e02
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Fix windows bug with broken localeconv()

localeconv() was broken on Windows until VS 2015.  As a workaround, this
was using my_snprintf() to find what the decimal point character is,
trying to avoid our workaround for localeconv(), which has a (slight)
chance of a race condition.

The problem is that my_snprintf() might not end up calling snprintf at
all; I didn't trace all possibilities in Windows.  So it doesn't make
for a reliable sentinel.

This commit now specifically uses libc snprintf(), and if it fails, drops
down to try localeconv().


  Commit: 5ae1289da770582ad99290500b19b7b9beb9c7ad
      
https://github.com/Perl/perl5/commit/5ae1289da770582ad99290500b19b7b9beb9c7ad
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M ext/POSIX/POSIX.xs
    M locale.c
    M proto.h

  Log Message:
  -----------
  XXXdelta Add my_strftime8()

This is like plain my_strftime(), but additionally returns an indication
of the UTF-8ness of the returned string


  Commit: 5c60916beffc61ffb4af38d49d264010dcce0200
      
https://github.com/Perl/perl5/commit/5c60916beffc61ffb4af38d49d264010dcce0200
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add utf8ness return param to static fcn

my_langinfo_i() now will additionally return the UTF-8ness of the
returned string.


  Commit: 34db56e02122152734187d4191aaacaf36aed63f
      
https://github.com/Perl/perl5/commit/34db56e02122152734187d4191aaacaf36aed63f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M ext/I18N-Langinfo/Langinfo.xs
    M locale.c
    M proto.h

  Log Message:
  -----------
  XXXdelta Add Perl_langinfo8()

This is like Perl_langinfo() but additionally returns information about
the UTF-8ness of the returned string.


  Commit: 1f655929afd08a780d764f8c205ec9d7a7c60506
      
https://github.com/Perl/perl5/commit/1f655929afd08a780d764f8c205ec9d7a7c60506
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add fallbacks if no mbtowc()

This add heuristics that work well for non-English locales to determine
if a locale is UTF-8 or not when mbtowc() isn't available.  It would be
a very rare compiler that didn't have that these days, but this covers
that case as best as I have been able to figure out.


  Commit: 90fc4c1f12a1346e840a2debfa31e870aec2fdfe
      
https://github.com/Perl/perl5/commit/90fc4c1f12a1346e840a2debfa31e870aec2fdfe
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use Strerror(), not strerror()


  Commit: 959df354d9663138453703338e8321712e8d4ea2
      
https://github.com/Perl/perl5/commit/959df354d9663138453703338e8321712e8d4ea2
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  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: 9508f2b7488bd5642b8dab38670bc8dd4430e4a0
      
https://github.com/Perl/perl5/commit/9508f2b7488bd5642b8dab38670bc8dd4430e4a0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Avoid mojibake in "$!"

In stress testing, I discovered that the LC_CTYPE and LC_MESSAGES
locales need to be the same locale, or strerror() can return
question marks or mojibake instead of the proper message.

This commit refactors the handling of stringifying "$!" to make the
locales of both categories the same during the stringification.

Actually, I suspect it isn't the locale, but the codeset of the locale
that needs to be the same.  I suspect that if the categories were both
in different UTF-8 locales, or both in single-byte locales, that things
would work fine.  But it's cheaper to find the locale rather than the
locale's codeset, so that is what is done.


  Commit: 8b590336aa69a2c4b6fb6c2bd5066692f9787e98
      
https://github.com/Perl/perl5/commit/8b590336aa69a2c4b6fb6c2bd5066692f9787e98
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M makedef.pl
    M mg.c
    M proto.h

  Log Message:
  -----------
  Move utf8ness calc for $! into locale.c from mg.c

locale.c has the infrastructure to handle this, so remove repeated
logic.

The removed code tried to discern better based on using script runs, but
this actually doesn't help, so is removed.


  Commit: 77862524b7fa5846bc880e0458a25b51692ecb6e
      
https://github.com/Perl/perl5/commit/77862524b7fa5846bc880e0458a25b51692ecb6e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M mg.c

  Log Message:
  -----------
  mg.c: White-space only

Indent newly formed block from the previous commit.


  Commit: bd4482617b09b0e11935b00acda1df34bcd0ecfb
      
https://github.com/Perl/perl5/commit/bd4482617b09b0e11935b00acda1df34bcd0ecfb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M embedvar.h
    M intrpvar.h
    M locale.c
    M proto.h
    M sv.c

  Log Message:
  -----------
  locale.c: Rmv no longer used code; UTF8ness cache

What these functions do has been subsumed by code introduced in previous
commits, and in a more straight forward manner.

Also removed in this commit is the cache of the knowing what locales are
UTF-8 or not.  This data is now cheaper to calculate when needed, and
there is now a single entry cache, so I don't think the complexity
warrants keeping it.

It could be added back if necessary, split off from the remainder of
this commit.


  Commit: ea59ad8e08dd8eac633cf45bcede804ef64d56c7
      
https://github.com/Perl/perl5/commit/ea59ad8e08dd8eac633cf45bcede804ef64d56c7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Don't discard locale info in starting P2008

The program is started in the global locale, and then is converted to
the POSIX 2008 per-thread locale API.  Prior to this commit the startup
locale was discarded.  It really should be the foundation for the 2008
locales.  I don't know of any current paths through the code that this
makes a difference for, but it is a potential hole that is easy to plug.


  Commit: 527f97a7bcfc8063acb241e8f98b3fa4631cba8d
      
https://github.com/Perl/perl5/commit/527f97a7bcfc8063acb241e8f98b3fa4631cba8d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M perl.h
    M proto.h

  Log Message:
  -----------
  Add a common locale panic macro and functions

This will make sure that all the necessary clean up gets done.


  Commit: 32c753f062fc1be51060a8ec9208e7d25917ffcf
      
https://github.com/Perl/perl5/commit/32c753f062fc1be51060a8ec9208e7d25917ffcf
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Clean up thread_locale_init()

We can use internal functions to this file instead of the API ones here.
This commit also calls  sync_locale() to avoid repeated logic.


  Commit: e45d2ea68e0c23dcbadafc9a2714e34afeb632eb
      
https://github.com/Perl/perl5/commit/e45d2ea68e0c23dcbadafc9a2714e34afeb632eb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Omit an extra copy

In this case in Perl_setlocale(), we can just return the plain result
from setlocale(), as, if something further needs to be done that would
destroy it, that is taken care of already at the time.

On per-thread locale platforms, the result already is in a per-category
buffer.


  Commit: 69d0743965a5d320d75f1ffe0ca4aa8ec1b70606
      
https://github.com/Perl/perl5/commit/69d0743965a5d320d75f1ffe0ca4aa8ec1b70606
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M locale.c
    M makedef.pl
    M perl.c
    M sv.c

  Log Message:
  -----------
  locale.c: Cache the current LC_CTYPE locale name

This is now used as a cache of length 1 to avoid having to lookup up the
UTF-8ness as often.

There was a complicated cache previously, but changes to the logic
caused that to be much less necessary, and it is no longer actually
used, and will be removed in a later commit.

But it's pretty easy to keep this single value around to cut further
down the new scheme's need to look it up

This commit also skips doing S_newctype() if the new boss is the same as
the old


  Commit: 0d44ead0587768197d3faa28136ef23cbe8cff64
      
https://github.com/Perl/perl5/commit/0d44ead0587768197d3faa28136ef23cbe8cff64
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h

  Log Message:
  -----------
  intrpvar.h: Initialize a variable

I don't believe there is a bug with this PL_numeric_name being
uninitialized, but this is an easy precaution.


  Commit: 6717e135be0b720e2bdc02f2a07a25c840e8a577
      
https://github.com/Perl/perl5/commit/6717e135be0b720e2bdc02f2a07a25c840e8a577
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  Swap the ordering of two locale category indices

Perl internally uses a mapping of locale category values into a
consecutive sequence of indices starting at 0.  These are used as
indexes into arrays.  The reason is that the category numbers are
opaque, vary by platform, aren't necessarily sequential, and hence are
hard to make table driven code for.

This commit makes the LC_CTYPE index 0, and LC_NUMERIC equal to 1;
swapping them.  The reason is to cause LC_CTYPE to get done first in the
many loops through the categories.  The UTF8ness of categories is an
often needed value, and most of the time the categories will have the
same locale.  LC_CTYPE is needed to calculate the UTF8ness, and by doing
it first and caching the result, the other categories likely
automatically will use the same value, without having to recalculate.


  Commit: 131f9e529a2830bd8623cad5663afa4949f0f859
      
https://github.com/Perl/perl5/commit/131f9e529a2830bd8623cad5663afa4949f0f859
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use new mechanism to save/restore errno

Instead of explicitly saving the errno around debugging statements, the
new more general mechanism is used.


  Commit: 57aee0d0568021417c6c975c2839da8ad8c488e1
      
https://github.com/Perl/perl5/commit/57aee0d0568021417c6c975c2839da8ad8c488e1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move DEBUG location info

This commit takes advantage of the new mechanism to add common DEBUGGING
code to print the __FILE__ and __LINE__ of every debugging statement.
This allows those to be removed from each statement, and have them
implicitly added.

This make things consistent, and easier to read and add new statements.


  Commit: 5c0236213c683ac7ba955a50a58180c7413b2342
      
https://github.com/Perl/perl5/commit/5c0236213c683ac7ba955a50a58180c7413b2342
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add some asserts


  Commit: e8e6cc0a4f52d31f69382aa157316b82b6221629
      
https://github.com/Perl/perl5/commit/e8e6cc0a4f52d31f69382aa157316b82b6221629
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Reorder code, rmv unneeded conditional

Previous commits have made the conditional about being able to find the
radix character unnecessary.  The called function my_langinfo_c()
handles the case properly.

This commit also makes the trivial case first in a conditional, as that
is easier to comprehend.


  Commit: 0b68be257e484e9a169aed2d9b8c0b9153d3d975
      
https://github.com/Perl/perl5/commit/0b68be257e484e9a169aed2d9b8c0b9153d3d975
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Reorder 'if' branches

It's better for understandability to have positive tests than negative
ones


  Commit: a082cbe5d361d8702bc31787bf9e0554dff408f6
      
https://github.com/Perl/perl5/commit/a082cbe5d361d8702bc31787bf9e0554dff408f6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Refactor a static function

S_new_numeric() is called after the LC_NUMERIC category is changed, to
update various ancillary information Perl keeps.

This reorders the function so that on POSIX 2008 platforms, the numeric
object is created earlier.  This allows for fewer operations on those
platforms, as we already have the correct value in place for querying
what the radix and thousands separator characters are.

Explanatory comments are also added.


  Commit: 17436ba532ac58f2e661befcb0acb0dcd240ce9f
      
https://github.com/Perl/perl5/commit/17436ba532ac58f2e661befcb0acb0dcd240ce9f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Rmv unused code

The code to handle changing LC_NUMERIC and LC_COLLATION handled the
possibility of being passed a NULL locale name.  But we're not changing
things unless we have a new locale, and know its name, so a name is
always passed


  Commit: 27d6854d24e1567af660749c8f1059ec6b236add
      
https://github.com/Perl/perl5/commit/27d6854d24e1567af660749c8f1059ec6b236add
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv unnecessary savepv()

This moves the savepv() down in the function, after we know we need it.


  Commit: 4d88e9ad5dca396671b48ac1f6726595401c5433
      
https://github.com/Perl/perl5/commit/4d88e9ad5dca396671b48ac1f6726595401c5433
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Mv line of code later in fcn

This avoids setting this until needed.


  Commit: 9a11ce401854d8afcbf5db895899931ca9f7c895
      
https://github.com/Perl/perl5/commit/9a11ce401854d8afcbf5db895899931ca9f7c895
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Skip code if will be a no-op

The previous commits have fixed things up so that at this point in the
code nothing has changed, and if nothing will change, we can just return


  Commit: ad204d24ed646de56dcd8597f3a98df1dab6dfa6
      
https://github.com/Perl/perl5/commit/ad204d24ed646de56dcd8597f3a98df1dab6dfa6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Specially handle the trivial case

When setting the numeric radix character, and the locale is C or POSIX,
we know it's going to be a dot without having to look further.  All the
ancillary info is also known.  So save time and just set these all and
return.


  Commit: d523fa15bcb17f88994cf1a59b013b16ce5f2778
      
https://github.com/Perl/perl5/commit/d523fa15bcb17f88994cf1a59b013b16ce5f2778
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h
    M numeric.c

  Log Message:
  -----------
  numeric.c, intrpvar.h: Rmv outdated condition, comment

It hasn't been true for some releases that the SV was removed when the
radix was a dot.  Instead the SV contains the correct decimal point
character at all times.


  Commit: 012d181520253d4a070d50844a899aae3729d2eb
      
https://github.com/Perl/perl5/commit/012d181520253d4a070d50844a899aae3729d2eb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Swap setting related variables

It is clearer to use the variable more directly related to what is being
set; then set the more distantly related onve, than vice versa


  Commit: fe039a07c3ac7945ad7fe63c6afc67d32f73c683
      
https://github.com/Perl/perl5/commit/fe039a07c3ac7945ad7fe63c6afc67d32f73c683
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv special case

At this point in the code, we know we are already switched into the
underlying numeric locale; there's no need to further check to see if
switching is necessary.


  Commit: 8888a46c66a0f6825b42ed9273dcf5cdc0a281a4
      
https://github.com/Perl/perl5/commit/8888a46c66a0f6825b42ed9273dcf5cdc0a281a4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M locale.c
    M perl.c
    M sv.c

  Log Message:
  -----------
  locale.c: Save underlying radix character

When changing locales the new decimal point needs to be calculated.
This commit creates a new per-interpreter variable to save that
calculation, so it only has to be done when a new locale is set; prior
to this commit it was recalculated each time it was needed.

The calculation is still performed twice when the new locale is switched
into.  But the redundant calculation will be removed in a couple of
commits hence.


  Commit: b8f203b35fd804061c1f10389ae459448327124a
      
https://github.com/Perl/perl5/commit/b8f203b35fd804061c1f10389ae459448327124a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move debug stmt to earlier in fcn


  Commit: 2daee6aee83cb3c9366d54b12582c6b88b507348
      
https://github.com/Perl/perl5/commit/2daee6aee83cb3c9366d54b12582c6b88b507348
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv S_set_numeric_radix()

Previous commits have made this function much smaller, and its branches
can be easily absorbed into the callers, with clearer code, and in fact
removal of a redundant calculation of the locale's radix character,
promised in a previous commit's message


  Commit: 30ea3a65730b1679bbe5dacf36c422e62d1396b7
      
https://github.com/Perl/perl5/commit/30ea3a65730b1679bbe5dacf36c422e62d1396b7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXXfinish commit msg locale.c: Rmv some special cases

The previous commits have allowed the removal of special casing of
making sure the


  Commit: 360d1d3c8527bd815c94d1f5a5eec2617d96a04b
      
https://github.com/Perl/perl5/commit/360d1d3c8527bd815c94d1f5a5eec2617d96a04b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Change assert() into STATIC_ASSERT()


  Commit: 671ce9b09c50530c1d22444d89ee4f48b9b454e6
      
https://github.com/Perl/perl5/commit/671ce9b09c50530c1d22444d89ee4f48b9b454e6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use standard fold table for C locale

Copy the standard compiled-in ASCII fold table when the locale is C or
POSIX, instead of looping through all 256 characters and computing them.
This saves some time as well as ensures that any platform bugs become
irrelevant.


  Commit: 75ad000e79c323da28ea408c325d9ec9ce62c14f
      
https://github.com/Perl/perl5/commit/75ad000e79c323da28ea408c325d9ec9ce62c14f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add check that strxfrm didn't fail

The code failed to take into account that strxfrm() can fail for reasons
besides buffer length.  It does not return errors, and the only way to
check is to set errno to 0 beforehand, and check that it is still 0
afterwards.


  Commit: 0ef5a763f7235b2264c89a127c5e1e5a2b5d95f4
      
https://github.com/Perl/perl5/commit/0ef5a763f7235b2264c89a127c5e1e5a2b5d95f4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't assume LC_CTYPE, LC_COLLATE are same

This code is using isCNTRL_LC which depends on LC_CTYPE to verify that
something in the LC_COLLATE locale is a control.  That only works
properly if the two locales are the same.  This commit adds code to
ensure they are.


  Commit: 9792ce6f273418cb28d6cc3389828d7fe478721e
      
https://github.com/Perl/perl5/commit/9792ce6f273418cb28d6cc3389828d7fe478721e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: strxfrm() requires LC_CTYPE eq LC_COLLATE

The libc functions strxfrm() on some platforms requires the LC_CTYPE
locale to be the same as the LC_COLLATE locale (or rather, probably that
they have the same code set, but checking for locale is cheaper).
Otherwise mojibake would result, or more likely the function will fail,
setting errno.

This commit brings the locales into alignment if necessary


  Commit: f4c35b2edc09e2bc9336b53789ce8353b048593d
      
https://github.com/Perl/perl5/commit/f4c35b2edc09e2bc9336b53789ce8353b048593d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M Configure
    M Cross/config.sh-arm-linux
    M Cross/config.sh-arm-linux-n770
    M NetWare/config.wc
    M Porting/config.sh
    M config_h.SH
    M configure.com
    M metaconfig.h
    M plan9/config_sh.sample
    M uconfig.h
    M uconfig.sh
    M uconfig64.sh
    M win32/config.gc
    M win32/config.vc

  Log Message:
  -----------
  Configure: strxfrm_l


  Commit: 57a0ebc62242ab8277e3031dae6ad4045f31e284
      
https://github.com/Perl/perl5/commit/57a0ebc62242ab8277e3031dae6ad4045f31e284
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale.t

  Log Message:
  -----------
  XXX temp: lib/locale.t: debug


  Commit: eeec9b6a17dbab6014c8e28d079d6e7b4447bdb5
      
https://github.com/Perl/perl5/commit/eeec9b6a17dbab6014c8e28d079d6e7b4447bdb5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use strxfrm_l() if available

This more modern version of the function doesn't require us to change
locales.


  Commit: c9ba28e04af7d54069cdfa0ea12e4e1fcb3c1767
      
https://github.com/Perl/perl5/commit/c9ba28e04af7d54069cdfa0ea12e4e1fcb3c1767
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M mathoms.c
    M proto.h
    M sv.c

  Log Message:
  -----------
  Change name of internal function

This is in preparation for working on it; the new name, mem_collxfrm_ is
in compliance with the C Standard; the old was not.


  Commit: a54cda7208bfee618f56969a643ecc8b3f142a0d
      
https://github.com/Perl/perl5/commit/a54cda7208bfee618f56969a643ecc8b3f142a0d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M ext/POSIX/POSIX.xs
    M ext/POSIX/lib/POSIX.pod
    M locale.c
    M proto.h

  Log Message:
  -----------
  XXXdelta Fix POSIX::strxfrm()

This function takes an SV containing a PV.  The encoding of that PV is
based on the locale of the LC_CTYPE locale.  It really doesn't make
sense to collate based off of the sequencing of a different locale, which
prior to this commit it would do if the LC_COLLATION locale were
different.


  Commit: 06d6508ec6b0b71d9b4a1f0dc1b1ba847df74d2c
      
https://github.com/Perl/perl5/commit/06d6508ec6b0b71d9b4a1f0dc1b1ba847df74d2c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Improve debugging for mem_collxfrm()

This prints out more information, better organized.

It also moves up the info from -DLv to plain -DL


  Commit: 9546b79e7b9fb0bb3d62feb3496378f68c8c5ecf
      
https://github.com/Perl/perl5/commit/9546b79e7b9fb0bb3d62feb3496378f68c8c5ecf
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add debug statement for collation failure

Perhaps this should be a warning to the user that we couldn't calculate
collation info for the locale, but at least there should be a way to
get that info from a DEBUG statement


  Commit: d89298f6f19f95ffc3a64f6176819b22b7808902
      
https://github.com/Perl/perl5/commit/d89298f6f19f95ffc3a64f6176819b22b7808902
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Print code point in hex, not decimal

Hex is the more familiar form


  Commit: 129bf1bfd296e25aa6811a604bbdeca1125f1140
      
https://github.com/Perl/perl5/commit/129bf1bfd296e25aa6811a604bbdeca1125f1140
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M locale.c
    M perl.h

  Log Message:
  -----------
  Mark certain mutex lock macros as private

mbtowc() mblen(), and wctomb() should not be directly used by XS
writers; instead use the POSIX versions.  Don't encourage the direct use
by having public macros to aid in their use.


  Commit: 9d3b4e9998c1fcc9a8158768fad6b4ae2b8e6e8a
      
https://github.com/Perl/perl5/commit/9d3b4e9998c1fcc9a8158768fad6b4ae2b8e6e8a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Move some code around

This is purely to make future commits have smaller real difference
listings, and involves a temporary (complemented) copy of a preprocessor
conditional.


  Commit: 644a1eee76e8ab2cbb706d5d6695c4426426ca0e
      
https://github.com/Perl/perl5/commit/644a1eee76e8ab2cbb706d5d6695c4426426ca0e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Reorder cpp branches

Disposing of the trivial case first makes things easier to read.


  Commit: c213bd5fe2026ea2e4e46429fc6388ee0856337a
      
https://github.com/Perl/perl5/commit/c213bd5fe2026ea2e4e46429fc6388ee0856337a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M locale.c
    M makedef.pl
    M perl.h
    M sv.c

  Log Message:
  -----------
  Make the locale mutex a general semaphore

Future commits will use this new capability, and in Configurations where
no locale locking is currently necessary.


  Commit: bd3739f3a1b838288f54ec51b488e035d9fcd6e0
      
https://github.com/Perl/perl5/commit/bd3739f3a1b838288f54ec51b488e035d9fcd6e0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M makedef.pl
    M perl.h
    M perlvars.h
    M sv.c

  Log Message:
  -----------
  Use general locale mutex for numeric operations

This commit removes the separate mutex for locking locale-related
numeric operations on threaded perls; instead using the general locale
one.  The previous commit made that a general semaphore, so now suitable
for use for this purpose as well.

This means that the locale can be locked for the duration of some
sprintf operations, longer than before this commit.  But on most modern
platforms, thread-safe locales cause this lock to expand just to a
no-op; so there is no effect on these.  And on the impacted platforms,
one is not supposed to be using locales and threads in combination, as
races can occur.  This lock is used on those perls to keep Perl's
manipulation of LC_NUMERIC thread-safe.  And for those there is also no
effect, as they already lock around those sprintf's.


  Commit: c2666921b9844d229af8dcd7d6e071aa08d8e98c
      
https://github.com/Perl/perl5/commit/c2666921b9844d229af8dcd7d6e071aa08d8e98c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Add locale macro to wrap static-space-using fncs

Some functions return a result in a global-to-the-program buffer, or
they have an internal global buffer.  Other threads must be kept from
simultaneously using that function.  This macro is to be used for all
such ones dealing with locales.  Ideally, there would be a separate mutex
for each such buffer space.  But these functions also have to lock the
locale from changing during their execution, and there aren't that many
such functions, and they actually are rarely executed.  So a single lock
will do.

This will allow future commits to have more targeted locking for
functions that don't affect the global locale.


  Commit: 1cfd7ccaceb41bfeb93e343d2e65a2c33922f792
      
https://github.com/Perl/perl5/commit/1cfd7ccaceb41bfeb93e343d2e65a2c33922f792
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Redefine the POSIX.xs locale macros using prev commit

This commit uses the new macro introduced in the previous commit to
define the internal locale mutex macros in POSIX.xs


  Commit: b6b68a35c89bd8c105f86d8ad4dde5ce722f3c6a
      
https://github.com/Perl/perl5/commit/b6b68a35c89bd8c105f86d8ad4dde5ce722f3c6a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  perl.h: Remove NL_LANGINFO_LOCK

This is needed in precisely one place in the code, so move it to there.


  Commit: 2c74232caa839a71e54bd2a7f4f300b5ca9533dd
      
https://github.com/Perl/perl5/commit/2c74232caa839a71e54bd2a7f4f300b5ca9533dd
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  perl.h: Remove LOCALECONV_LOCK

This is needed in just one function, in locale.c, so more it there.


  Commit: 94a1819d3fc616d68abde9d3ea52b9d1b9c3f692
      
https://github.com/Perl/perl5/commit/94a1819d3fc616d68abde9d3ea52b9d1b9c3f692
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  XXX perlembed Add PORCELAIN_SETLOCALE_LOCK/UNLOCK

This macro is used to surround raw setlocale() calls so that the return
value in a global static buffer can be saved without interference with
other threads.

There are a few very rarely occurring instances in locale.c that are
converted to use this.  These previously could have been races.

The raw setlocales in the initialization function are not guarded, as
these happen early in the Perl process initialization, before threading
is enabled.

This is buggy if there are multiple embedded perls.  It can't be helped.
perlembed is being updated to indicate this.


  Commit: 9114f5d573ec53ea697d58ec088c06a448959db9
      
https://github.com/Perl/perl5/commit/9114f5d573ec53ea697d58ec088c06a448959db9
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Move #defining SETLOCALE_LOCK

This simplifies slightly, and will allow further simplification


  Commit: e6a7faec70c1fb8b15fc00aee6a7d0d3d25fa9b5
      
https://github.com/Perl/perl5/commit/e6a7faec70c1fb8b15fc00aee6a7d0d3d25fa9b5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Move LOCALE_READ_LOCK #definition

To enable future simplifications


  Commit: da2da7d96ed8be3ea8dc4d526d53bcca00dc01ae
      
https://github.com/Perl/perl5/commit/da2da7d96ed8be3ea8dc4d526d53bcca00dc01ae
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h
    M locale.c
    M makedef.pl
    M perl.c
    M perl.h
    M sv.c

  Log Message:
  -----------
  locale.c: Move #define to perl.h; use it elsewhere

 Rather than recalculate this combined conditional, do it once in
 perl.h.


  Commit: 50b75918ab554e00855a1b4f4f39ecbc5c362b0c
      
https://github.com/Perl/perl5/commit/50b75918ab554e00855a1b4f4f39ecbc5c362b0c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Mitigate unsafe threaded locales

This a new set of macros and functions to do locale changing and
querying for platforms where perl is compiled with threads, but the
platform doesn't have thread-safe locale handling.

All it does is:

1) The return of setlocale() is always safely saved in a per-thread
buffer, and
2) setlocale() is protected by a mutex from other threads which are
using perl's locale functions.

This isn't much, but it might be enough to get some programs to work on
such platforms which rarely change or query the locale.


  Commit: 2304ea0bf4baaadeceea4a5b3763963d3f0c6c25
      
https://github.com/Perl/perl5/commit/2304ea0bf4baaadeceea4a5b3763963d3f0c6c25
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX make sure comments get moved appropriately perl.h: Remove now empty block

Previous commits have left this empty except for comments.


  Commit: 74ec881d5b25f0634f1253671cd3087473626480
      
https://github.com/Perl/perl5/commit/74ec881d5b25f0634f1253671cd3087473626480
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M pp.c

  Log Message:
  -----------
  XXX pp.c: do %g print under mutex,


  Commit: f35644b1d6aefa12657777a72c6626d922a2640a
      
https://github.com/Perl/perl5/commit/f35644b1d6aefa12657777a72c6626d922a2640a
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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
    M sv.c

  Log Message:
  -----------
  Make fc(), /i thread-safe on participating platforms

A long standing bug in Perl that has gone undetected is that the array
is global that is created when changing locales and tells fc() and qr//i
matching what the folds are in the new locale.

What this means is that any program only has one set of fold definitions
that apply to all threads within it, even if we claim that the locales
are thread-safe on the given platform.  One possibility for this going
undetected so long is that no one is using locales on multi-threaded
systems much.  Another possibility is that modern UTF-8 locales have the
same set of folds as any other one.

It is a simple matter to make the fold array per-thread instead of
per-process, and that solves the problem transparently to other code.

I discovered this stress-testing locale handling under threads.  That
test will be added in a future commit.


  Commit: 483e71f6910ea0d43db9ef3f0aa722a30e3c2878
      
https://github.com/Perl/perl5/commit/483e71f6910ea0d43db9ef3f0aa722a30e3c2878
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M inline.h
    M locale.c

  Log Message:
  -----------
  locale.c/inline.h: Add fold calc debug statements

Under verbose debugging, this shows non-standard folds


  Commit: adfac3a859e450b27bd8bc5e15c8976265df2e58
      
https://github.com/Perl/perl5/commit/adfac3a859e450b27bd8bc5e15c8976265df2e58
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c comments


  Commit: b65bcd600bf423fa4f4306a510d26f31de0823b6
      
https://github.com/Perl/perl5/commit/b65bcd600bf423fa4f4306a510d26f31de0823b6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX prob drop; done before anything so no races


  Commit: d5f7c0dc806b3fefed4264e24f69a897042c4b57
      
https://github.com/Perl/perl5/commit/d5f7c0dc806b3fefed4264e24f69a897042c4b57
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Add #define for gwENVr_LOCALEr_UNLOCK

This is for functions that read the locale and environment and write to
some global space.


  Commit: 560fe7c28cb91ed99030185c71404c5c5955de51
      
https://github.com/Perl/perl5/commit/560fe7c28cb91ed99030185c71404c5c5955de51
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h
    M time64.c

  Log Message:
  -----------
  Remove ENV_LOCALE_LOCK/UNLOCK macros

These are subsumed by gwENVr_LOCALEr_LOCK created in the previous
commit.


  Commit: d7ba6ec0abbef27fe721a38099cef189f91469f2
      
https://github.com/Perl/perl5/commit/d7ba6ec0abbef27fe721a38099cef189f91469f2
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h
    M time64.c
    M util.c

  Log Message:
  -----------
  Change ENV/LOCALE locking read macro names

The old name was confusing.


  Commit: c32a54c623c4695b10bdf22dd6e8a1fe7f37a673
      
https://github.com/Perl/perl5/commit/c32a54c623c4695b10bdf22dd6e8a1fe7f37a673
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Move some statements

So they are closer to related statements


  Commit: 5cceea7900b24a5b83545a4a80bef2bb2b66a941
      
https://github.com/Perl/perl5/commit/5cceea7900b24a5b83545a4a80bef2bb2b66a941
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h
    M util.c

  Log Message:
  -----------
  perl.h: Finish implementing 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 commit
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.


  Commit: b5504ff25d44f786f6bd9524719c0fdae2518e29
      
https://github.com/Perl/perl5/commit/b5504ff25d44f786f6bd9524719c0fdae2518e29
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 65f30b06364293c7d9ecdcded4bb61a09d42af34
      
https://github.com/Perl/perl5/commit/65f30b06364293c7d9ecdcded4bb61a09d42af34
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M pp_sys.c

  Log Message:
  -----------
  XXX need to StructCopy pp_sys mutexes


  Commit: 923a36bc22e1c12c2d90b99fc31517ea383693c4
      
https://github.com/Perl/perl5/commit/923a36bc22e1c12c2d90b99fc31517ea383693c4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M win32/win32.c

  Log Message:
  -----------
  win32.c: Add mutexes around some calls

These could have races.


  Commit: 55b46c09f9a93984e42af8877746ed816f620b57
      
https://github.com/Perl/perl5/commit/55b46c09f9a93984e42af8877746ed816f620b57
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs

  Log Message:
  -----------
  POSIX.xs env locks, check file for more


  Commit: 33ab0665034397f0018c2cb3cdf3271068562133
      
https://github.com/Perl/perl5/commit/33ab0665034397f0018c2cb3cdf3271068562133
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M util.c

  Log Message:
  -----------
  util.c: mktime needs to run under a mutex

per the Posix standard


  Commit: a7d21cdf6bc461bb09f280575aa15f97d2a1926f
      
https://github.com/Perl/perl5/commit/a7d21cdf6bc461bb09f280575aa15f97d2a1926f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M util.c

  Log Message:
  -----------
  util.c: Add locks around strftime() calls


  Commit: 48bd955f27492cce14e4cfc0efda5fd95bd03e9e
      
https://github.com/Perl/perl5/commit/48bd955f27492cce14e4cfc0efda5fd95bd03e9e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 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: 40489ae6617817a3e3ccae6354f8f097754964cb
      
https://github.com/Perl/perl5/commit/40489ae6617817a3e3ccae6354f8f097754964cb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.pm
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  XXX cpan PR Time-Piece: Add locks

This add mutex locking around some unsafe thread operations to make this
module thread-safe.


  Commit: d92dd58644ecbe4fa013525aed7d9b9c23c1f0d0
      
https://github.com/Perl/perl5/commit/d92dd58644ecbe4fa013525aed7d9b9c23c1f0d0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  Time-Piece: Use foldEQ_locale() if available

This supported core function is thread-safe and knows about Perl
internals, so is preferable to the similar libc function, which is now
used only as a fallback.  This commit also bomb proofs the code by
adding an additional fallback, specified in C89, which isn't a great
substituted, but far better than nothing.


  Commit: 1bde33a6e9e00a9644ec088fd94994e82ca1d7fe
      
https://github.com/Perl/perl5/commit/1bde33a6e9e00a9644ec088fd94994e82ca1d7fe
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  Time-Piece: Use isSPACE, not isspace

The latter gives results that are dependent on the program's underlying
locale, and so may be inconsistent.

If locale dependence is actually desired, isSPACE_LC should be used, as
it knows about various things the module writer shouldn't have to
concern themselves with.  It is supported since 5.004


  Commit: 5b5fa052f1d7ffd3a90fbf0efa1ee861dd4fdbf1
      
https://github.com/Perl/perl5/commit/5b5fa052f1d7ffd3a90fbf0efa1ee861dd4fdbf1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  Time-Piece: Use isDIGIT, not isdigit

The latter gives results that are dependent on the program's underlying
locale, and so may be inconsistent.

If locale dependence is actually desired, isDIGIT_LC should be used, as
it knows about various things the module writer shouldn't have to
concern themselves with.  It is supported since 5.004


  Commit: 7a6c84eb683ce2058919e5ef8d7f6d1d59c26c4d
      
https://github.com/Perl/perl5/commit/7a6c84eb683ce2058919e5ef8d7f6d1d59c26c4d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  Time-Piece: Use isUPPER, not isupper

The latter gives results that are dependent on the program's underlying
locale, and so may be inconsistent.

If locale dependence is actually desired, isUPPER_LC should be used, as
it knows about various things the module writer shouldn't have to
concern themselves with.  It is supported since 5.004


  Commit: fa6b1fe5c17d86e2b98c56d85d39fd7602943ced
      
https://github.com/Perl/perl5/commit/fa6b1fe5c17d86e2b98c56d85d39fd7602943ced
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M pod/perlhacktips.pod

  Log Message:
  -----------
  XXX incomplete perlhacktips:


  Commit: dd67ee9c2ddcc3e45fede9aa19e13ec4570c17fc
      
https://github.com/Perl/perl5/commit/dd67ee9c2ddcc3e45fede9aa19e13ec4570c17fc
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M dist/IO/IO.pm
    M dist/IO/IO.xs

  Log Message:
  -----------
  XXX check if using ppport IO.xs: Remove fallback code furnished by ppport


  Commit: c324d9eaa94c187664be57f2a23e8c32357b70a2
      
https://github.com/Perl/perl5/commit/c324d9eaa94c187664be57f2a23e8c32357b70a2
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M hints/freebsd.sh

  Log Message:
  -----------
  XXX check with freebsd: hints/freebsd.sh


  Commit: e357dd6b0eb80428b2cd8281a53747c99e20d34d
      
https://github.com/Perl/perl5/commit/e357dd6b0eb80428b2cd8281a53747c99e20d34d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M thread.h

  Log Message:
  -----------
  thread.h: White-space, braces only


  Commit: 8842063cd0e0c95ce140171096a474bd90173fd7
      
https://github.com/Perl/perl5/commit/8842063cd0e0c95ce140171096a474bd90173fd7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M thread.h

  Log Message:
  -----------
  XXX thread.h Save errno around lock/unlock


  Commit: bcb65a00c8986fc499d528b2e5c4c4dd8adaf75c
      
https://github.com/Perl/perl5/commit/bcb65a00c8986fc499d528b2e5c4c4dd8adaf75c
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX perl.h: Debugging mutex lock'


  Commit: c03e229e7447911298d5378dd34700738fff1258
      
https://github.com/Perl/perl5/commit/c03e229e7447911298d5378dd34700738fff1258
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M locale.c
    M perl.h

  Log Message:
  -----------
  locks


  Commit: 8672a76ec4276a36c0b4027e0001757338779995
      
https://github.com/Perl/perl5/commit/8672a76ec4276a36c0b4027e0001757338779995
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX locale.c: Kludge because C obj getting destroyed


  Commit: cf6fb106148c6aa5a997389ab37d5fa4e56c77c7
      
https://github.com/Perl/perl5/commit/cf6fb106148c6aa5a997389ab37d5fa4e56c77c7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M .github/workflows/testsuite.yml

  Log Message:
  -----------
  Make DEBUGGING the default on CI


  Commit: 37d789a4fe335e67d572a12a0009b75d8d8f1fcd
      
https://github.com/Perl/perl5/commit/37d789a4fe335e67d572a12a0009b75d8d8f1fcd
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  t/run/locale.t: Move init stmt

This makes it easier to add a line to turn on debugging temporarily


  Commit: 80aceff147a6efca4230a444883b546bd7a104e1
      
https://github.com/Perl/perl5/commit/80aceff147a6efca4230a444883b546bd7a104e1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  XXX run/locale.t temp debug


  Commit: fdd7cd9b18edde903135b4d0fe236be24785f301
      
https://github.com/Perl/perl5/commit/fdd7cd9b18edde903135b4d0fe236be24785f301
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/porting/customized.dat
    M vutil.c

  Log Message:
  -----------
  vutil.c: Clean up white space

Change tabs to blanks; Fix indentation; chomp trailing white space

Remove some blank lines that don't contribute to readability


  Commit: 97e8f4998826f813f31909f41cff4d7011380bad
      
https://github.com/Perl/perl5/commit/97e8f4998826f813f31909f41cff4d7011380bad
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/porting/customized.dat
    M vutil.c

  Log Message:
  -----------
  vutil.c: Simplify locale handling

I read the code over and realized that there was a much simpler way to
do things.


  Commit: e167ee13dd9f6bc8582266fb3e88e6822cc3db73
      
https://github.com/Perl/perl5/commit/e167ee13dd9f6bc8582266fb3e88e6822cc3db73
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Change a branch into an assert

This code should no longer be necessary; but verify


  Commit: cb5a52dae237df954f767198f9aaec72c547f7fb
      
https://github.com/Perl/perl5/commit/cb5a52dae237df954f767198f9aaec72c547f7fb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  Add pTHX to locale_thread_init()


  Commit: 4daea5ade24a9a298b4af8eecfc87d3c96aaf1c5
      
https://github.com/Perl/perl5/commit/4daea5ade24a9a298b4af8eecfc87d3c96aaf1c5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  l


  Commit: cabb2f3550d3c5c4cca81b85bc2cda73feb66387
      
https://github.com/Perl/perl5/commit/cabb2f3550d3c5c4cca81b85bc2cda73feb66387
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M locale.c
    M sv.c

  Log Message:
  -----------
  PLcurlocales


  Commit: 5214e5a8bacb488fa5b4e3dc34c26f2f3d88cf36
      
https://github.com/Perl/perl5/commit/5214e5a8bacb488fa5b4e3dc34c26f2f3d88cf36
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M locale.c
    M sv.c

  Log Message:
  -----------
  Revert "PLcurlocales"

This reverts commit cd1fd76eac05b9ca866bb6f1dae6151767aa3d76.


  Commit: 0f7c321440c0697e2422b8bbc2c3b1f5023cb9e5
      
https://github.com/Perl/perl5/commit/0f7c321440c0697e2422b8bbc2c3b1f5023cb9e5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale.t

  Log Message:
  -----------
  lib/locale.t FILE debug


  Commit: 521b058e118b4e3d1458fc96b3d084a5c37730bc
      
https://github.com/Perl/perl5/commit/521b058e118b4e3d1458fc96b3d084a5c37730bc
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: windows DEBUG stmts


  Commit: 66a2901170293e199484a2a7474e2aed9362a446
      
https://github.com/Perl/perl5/commit/66a2901170293e199484a2a7474e2aed9362a446
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M proto.h

  Log Message:
  -----------
  f save_to_buffer ignore return


  Commit: 062b768caf46b6877e2b4899f7034079d8ac5175
      
https://github.com/Perl/perl5/commit/062b768caf46b6877e2b4899f7034079d8ac5175
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  handy.h: Add layer for char classification/case change

This layer currently expands to just the layer below it, but that will
be changed in a future commit.


  Commit: 7631cd8bb855721892d79b122ef7fe93ee4fbbce
      
https://github.com/Perl/perl5/commit/7631cd8bb855721892d79b122ef7fe93ee4fbbce
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod
    M t/porting/known_pod_issues.dat

  Log Message:
  -----------
  perlxs


  Commit: e06f2b16a45935d97a489ed22d87ff6d9c5f697b
      
https://github.com/Perl/perl5/commit/e06f2b16a45935d97a489ed22d87ff6d9c5f697b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX Temp dont use querylocale()


  Commit: d34963a660ddd9c13036a3ada07ffa52e4d2e7fb
      
https://github.com/Perl/perl5/commit/d34963a660ddd9c13036a3ada07ffa52e4d2e7fb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  l


  Commit: 44a066f75bbfc27a5cce7d10deb1a733cf160c05
      
https://github.com/Perl/perl5/commit/44a066f75bbfc27a5cce7d10deb1a733cf160c05
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h

  Log Message:
  -----------
  intrpvar.h: Swap position of two defns; add comment


  Commit: e3695837b0332c780e34db50aa6e11ef1e5285b5
      
https://github.com/Perl/perl5/commit/e3695837b0332c780e34db50aa6e11ef1e5285b5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h
    M locale.c

  Log Message:
  -----------
  locale.c: Add 'Lazy' location changing

When comparing two strings for order under 'use locale', one can call
strcoll() which creates hidden modified versions of the strings based on
the locale's collation ordering, does the comparison, and then throws
away the modified versions.

Or one can call strxfrm() to create a non-hidden modified version of
each string, and then do a straight comparison.  The advantage here is
that you are in control of when to discard the modified version, and the
(expensive) transformation is done just once, no matter how many times a
comparison is done.

Perl assumes that a string will be compared multiple times, so the first
time it happens under 'use locale', strxfrm() is called, and the
modified string is attached via magic to the SV.  The modified string is
discarded if the string changes, or is recomputed if the locale has
changed since the computation was done.

The transformation generally occupies some multiple of size of the
original string.  Memory must be allocated to hold it.  For any given
locale, the amount is predictable for all strings, roughly via a linear
equation "mx+b", where x is the size of the original string.  By
computing 'm' and 'b' once, Perl can allocate enough memory to hold the
transformation, but not too much.  (m and b are adjusted up as necessary
as more strings get transformed.)  This minimizes mallocs.

But the calculation of m and b is somewhat expensive, and only necessary
if the program actually does a string compare under 'use locale'.

This commit defers the calculation until needed.  It does the bare
minimum of changes accomplish this.  The next commit will rearrange
things.


  Commit: 1bc1580a1dc3984cd32bf50940323449dff8596f
      
https://github.com/Perl/perl5/commit/1bc1580a1dc3984cd32bf50940323449dff8596f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move code, white-space, comment only

This moves the function created in the previous commit to a more logical
place in the file; just before its only call.  It also removes nested
blocks that are no longer necessary.


  Commit: 60191f3fe6ff6071659c1d3286a031581f4b26e9
      
https://github.com/Perl/perl5/commit/60191f3fe6ff6071659c1d3286a031581f4b26e9
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M util.c

  Log Message:
  -----------
  XXX Configure strftime() is C89

We can assume it exists


  Commit: 934ab116fbf84c86474e26da4ca0d146384a39a7
      
https://github.com/Perl/perl5/commit/934ab116fbf84c86474e26da4ca0d146384a39a7
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h
    M sv.c

  Log Message:
  -----------
  perl.h: Change macro name to be C conformant

Leading underscores in names are undefined


  Commit: e04c6c11b73ed27f911c7cc4de712face508892e
      
https://github.com/Perl/perl5/commit/e04c6c11b73ed27f911c7cc4de712face508892e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M patchlevel.h

  Log Message:
  -----------
  patchlevel.h: White-space only: properly indent


  Commit: a7d23b8f719ebf2549279457ee9b026bea7dbfd1
      
https://github.com/Perl/perl5/commit/a7d23b8f719ebf2549279457ee9b026bea7dbfd1
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv.c: Comments white-space only


  Commit: 38d08d91f2a191f64d9998398b6e42de3fb049bf
      
https://github.com/Perl/perl5/commit/38d08d91f2a191f64d9998398b6e42de3fb049bf
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  makedef.pl: Rmv obsolete symbol

This routine is now a static function, so needn't be in makedef.pl


  Commit: 5ccbddc794a720af26a0deec4ffc5bc10df292de
      
https://github.com/Perl/perl5/commit/5ccbddc794a720af26a0deec4ffc5bc10df292de
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Refactor internal debugging function

setlocale_debug_string() variants  now use Perl_form, a function I
didn't know existed when I originally wrote this code.


  Commit: 3fb1c0357894fae1a5554ce7158b6c641e77c13f
      
https://github.com/Perl/perl5/commit/3fb1c0357894fae1a5554ce7158b6c641e77c13f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M proto.h

  Log Message:
  -----------
  locale.c: Add a fcn to display LC_ALL

This is trivial on a platform that has LC_ALL, but requires extra work
on platforms that don't.


  Commit: 226efface6a895c3dc21035b57116fb00fb22bd0
      
https://github.com/Perl/perl5/commit/226efface6a895c3dc21035b57116fb00fb22bd0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add debugging check

If we run across the REPLACEMENT CHARACTER, its likely a mismatch
between LC_CTYPE and another category.  This panics on debugging builds.


  Commit: 581197c796ed6d174be35b76af47c999d2a06129
      
https://github.com/Perl/perl5/commit/581197c796ed6d174be35b76af47c999d2a06129
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Initialize variables to avoid runtime check

Initializing them means we no longer have to tess that they are non-NULL
each time they are accessed.


  Commit: 905b32380c8e5211456625770f8290d637ea2c09
      
https://github.com/Perl/perl5/commit/905b32380c8e5211456625770f8290d637ea2c09
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Initialize PL_underlying_numeric_obj

This probably doesn't matter, but it's better form to initialize it to a
sane value.


  Commit: 5de0f7ff18364fbb96742da26f383445551b6887
      
https://github.com/Perl/perl5/commit/5de0f7ff18364fbb96742da26f383445551b6887
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Print better failing test numbers

This test module is 'required' from other perl test files.  If it
encounters an error, it doesn't know how to report it.  What it does is
call fail() if available, and a home-grown one otherwise.  Prior to this
commit the home-grown version just made all tests number 0.  This commit
changes that to make them sequentially numbered from a very high
starting one, so as not to interfere with the outer calls.


  Commit: 9720adcb48b83e727a8cc0ccc8d7fa312e8b3082
      
https://github.com/Perl/perl5/commit/9720adcb48b83e727a8cc0ccc8d7fa312e8b3082
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cygwin/cygwin.c

  Log Message:
  -----------
  cygwin


  Commit: e8627bc954ed852e04a86d1fe7b261c8edc05117
      
https://github.com/Perl/perl5/commit/e8627bc954ed852e04a86d1fe7b261c8edc05117
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M patchlevel.h

  Log Message:
  -----------
  Kludge to get cygwin to compile


  Commit: 2820a86b26fc9ee01d9a57a7d70b0207a2763623
      
https://github.com/Perl/perl5/commit/2820a86b26fc9ee01d9a57a7d70b0207a2763623
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cygwin/cygwin.c

  Log Message:
  -----------
  cygwin use fcns


  Commit: 31032a0ad0b377aaed9f3d0ebd3b0c86d8af098b
      
https://github.com/Perl/perl5/commit/31032a0ad0b377aaed9f3d0ebd3b0c86d8af098b
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cygwin/cygwin.c

  Log Message:
  -----------
  Revert "cygwin use fcns"

This reverts commit 24fbf2ccd8777c4af31eb9f8038d4cff7073b0c4.


  Commit: e96e66b9f9197952ea384add8c231b0597532fe6
      
https://github.com/Perl/perl5/commit/e96e66b9f9197952ea384add8c231b0597532fe6
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Refactor _trylocale()

This function is used to see if a locale actually works on the current
platform.  I was not fully aware of the glitches if a category is in one
locale, and LC_CTYPE is in another.  This makes sure they are both the
same; and this results in some simplification.


  Commit: 9296ff2e1e7ec3646d27b4e1e545ec0b4050aed5
      
https://github.com/Perl/perl5/commit/9296ff2e1e7ec3646d27b4e1e545ec0b4050aed5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Fail earlier

Move the code that returns failure into the loop, so won't keep
iterating if failure is going to happen anyway.


  Commit: 7f8980e388604727ab28ca337ecaa2d5ec52b2c4
      
https://github.com/Perl/perl5/commit/7f8980e388604727ab28ca337ecaa2d5ec52b2c4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Add checks

This verifies that we can restore a locale that we were previously in,
and makes sure that we don't stay in a locale that doesn't work well.
Doing so has led to crashes.


  Commit: be7e2fee0f9f4e42bc95413dd47cfa6e6da5d5d0
      
https://github.com/Perl/perl5/commit/be7e2fee0f9f4e42bc95413dd47cfa6e6da5d5d0
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Don't allow commas in locale names

This was a problem in some buggy Windows versions.  This addition keeps
locales with this bug from being tested.


  Commit: fd318a645c0115624519a46d78c5dc90797e96fe
      
https://github.com/Perl/perl5/commit/fd318a645c0115624519a46d78c5dc90797e96fe
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Check for unsupported locales

This commit causes us not to view unsupported locales as legitimate for
testing.  Core dumps occurred on some platforms without this.

It looks for a diagnostic that the next commit in this series will
generate.


  Commit: 05f46b0479ba099ac34859ed1f1aa193e46ff2e4
      
https://github.com/Perl/perl5/commit/05f46b0479ba099ac34859ed1f1aa193e46ff2e4
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M locale.c
    M pod/perldiag.pod

  Log Message:
  -----------
  XXXdelta Add locale unsupported test

Perl only suppots multi-byte locales that are UTF-8.  It turns out that
the others are worse than I thought, and if someone switches to one, the
program can crash.

This commit generates a default-on diagnostic when switching into such a
locale, and doesn't take the steps to add its data to the LC_CTYPE
database.

The check has been done in various releases for some time, but this
elevates its severity and tries to avoid actually using its data.

The previous commit caused the test suite to view such a locale as
unacceptable.


  Commit: 75780f68e64e74aa33ea6a8a350cc518ac9e0daf
      
https://github.com/Perl/perl5/commit/75780f68e64e74aa33ea6a8a350cc518ac9e0daf
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: White-space only


  Commit: 0174bdef2e9bad8780d8dbad9f036783b65a6647
      
https://github.com/Perl/perl5/commit/0174bdef2e9bad8780d8dbad9f036783b65a6647
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  XXX t/loc_tools.pl: Temp debug


  Commit: a60cf89c7b3b1324dad56101e81254e5cf11b841
      
https://github.com/Perl/perl5/commit/a60cf89c7b3b1324dad56101e81254e5cf11b841
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  t/loc_tools.pl: Swap lines

It doesn't matter much, but some warnings might be output by doing the
'use locale' before turning off warnings.


  Commit: 9f3b86f052f262be3ac4d5a4a3ae646ff58afc98
      
https://github.com/Perl/perl5/commit/9f3b86f052f262be3ac4d5a4a3ae646ff58afc98
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  XXX locale_threads


  Commit: 6c360c6a943e87d72ab28fa7e222d2eff8d01f19
      
https://github.com/Perl/perl5/commit/6c360c6a943e87d72ab28fa7e222d2eff8d01f19
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  XXX locale_threads debugging


  Commit: b731303afbc54de19c9b67350c59c36b93a89ed8
      
https://github.com/Perl/perl5/commit/b731303afbc54de19c9b67350c59c36b93a89ed8
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h

  Log Message:
  -----------
  intrpvar.h: White space only


  Commit: a6af30efcd133eb9be594d293c5aaa68dec17f9e
      
https://github.com/Perl/perl5/commit/a6af30efcd133eb9be594d293c5aaa68dec17f9e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M intrpvar.h

  Log Message:
  -----------
  intrpvar.h: Move some defns into appropriate #ifdefs


  Commit: 6421d09b05428b0ae779150b3f5f6af04f066dd5
      
https://github.com/Perl/perl5/commit/6421d09b05428b0ae779150b3f5f6af04f066dd5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M embedvar.h
    M intrpvar.h
    M locale.c
    M proto.h
    M sv.c

  Log Message:
  -----------
  XXX finish msg,thread_init Revamp sync_locale, switch_to_global_locale

f


  Commit: 91aa1c4a57bfbcc6a2d6a20bd2cd513d82a6fe1d
      
https://github.com/Perl/perl5/commit/91aa1c4a57bfbcc6a2d6a20bd2cd513d82a6fe1d
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv.c: Rmv duplicate clones

These variables are already cloned when creating a thread


  Commit: 8556ba12daedbb077313d0809db7a0375f617e68
      
https://github.com/Perl/perl5/commit/8556ba12daedbb077313d0809db7a0375f617e68
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv.c: Rmv redundant clause

If threaded locales are being used, basic locales are too.  No need to
check both


  Commit: 37d78dfa2f2fc0db636ac8909b7a624f37e68c24
      
https://github.com/Perl/perl5/commit/37d78dfa2f2fc0db636ac8909b7a624f37e68c24
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h
    M lib/locale.t

  Log Message:
  -----------
  Fix isspace() handling on AIX

This box incorrectly thinks the NBSP is a graphic on many locales.
Overriding that makes these locales behave like proper POSIX ones.


  Commit: 94fd69e0ce2066d78edcfb6d415e42b41e57e83f
      
https://github.com/Perl/perl5/commit/94fd69e0ce2066d78edcfb6d415e42b41e57e83f
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv.c: White-space only

Replace leading tabs with spaces


  Commit: d215aa139025bc8ad57f08dea3a370b9c566a796
      
https://github.com/Perl/perl5/commit/d215aa139025bc8ad57f08dea3a370b9c566a796
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M hints/cygwin.sh

  Log Message:
  -----------
  XXX check if really necessary after everything: Don't use POSIX 2008 locale

This has been found to be buggy leading to dying inside the newlocale()
in S_emulate_setlocale_i()


  Commit: 03c1aa3dcb0d658d4754b74aa89240d56fa4c653
      
https://github.com/Perl/perl5/commit/03c1aa3dcb0d658d4754b74aa89240d56fa4c653
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale.t

  Log Message:
  -----------
  lib/locale.t: Use I18N::Langinfo, not POSIX::localeconv()

Now that Langinfo is ported to every box, it requires less work than
localeconv(), and offers more choices.  This commit changes to use it,
and for more info when debugging, gets some additional info from it.


  Commit: 6217f1a2565aeed1af0677a83e75cb440b4876c5
      
https://github.com/Perl/perl5/commit/6217f1a2565aeed1af0677a83e75cb440b4876c5
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M handy.h

  Log Message:
  -----------
  XXX cygwin debugging small macro buf


  Commit: ce2375813137a359f392bb9ff6001f322a01abfb
      
https://github.com/Perl/perl5/commit/ce2375813137a359f392bb9ff6001f322a01abfb
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Avoid unnecessary calls to set_numeric_standard()

Prior to this commit, set_numeric_standard() was called unconditionally,
and it could decide if it should do anything or not.  But the variable
that indicates this is available to the caller, so by testing it, it can
avoid the call, which is most likely the case.


  Commit: 1ba2ab4b20de7a86b9133e1096b7ec30ee460790
      
https://github.com/Perl/perl5/commit/1ba2ab4b20de7a86b9133e1096b7ec30ee460790
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX perl.h: Debugging trace across all files


  Commit: d735c56320cff95983b2b622f9012a1cf2039573
      
https://github.com/Perl/perl5/commit/d735c56320cff95983b2b622f9012a1cf2039573
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX Use internal querylocale on Linux

XXX Need to bisect to see where this goes bad
XXX Is effectively a no-op due to other debugging code


  Commit: 0d1efc7cb85ceb84ce4577af39f39a2a6ecc5787
      
https://github.com/Perl/perl5/commit/0d1efc7cb85ceb84ce4577af39f39a2a6ecc5787
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs
    M dist/ExtUtils-ParseXS/lib/perlxs.pod
    M handy.h
    M iperlsys.h
    M locale.c
    M perl.h
    M pod/perllocale.pod
    M regen/reentr.pl
    M regexec.c
    M util.c

  Log Message:
  -----------
  Notes


  Commit: c4e3f706be3ca5f54207eee9d13bd753f3e0467e
      
https://github.com/Perl/perl5/commit/c4e3f706be3ca5f54207eee9d13bd753f3e0467e
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M embed.fnc
    M embed.h
    M embedvar.h
    M ext/I18N-Langinfo/t/Langinfo.t
    M ext/POSIX/POSIX.xs
    M intrpvar.h
    M lib/locale.t
    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/loc_tools.pl
    M t/run/locale.t

  Log Message:
  -----------
  57


  Commit: e3f950e9e79e2f7ef0ea0968c742bac0d0bee582
      
https://github.com/Perl/perl5/commit/e3f950e9e79e2f7ef0ea0968c742bac0d0bee582
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  58


  Commit: 5f11090fd998903253fdc0fa25dd585df44df689
      
https://github.com/Perl/perl5/commit/5f11090fd998903253fdc0fa25dd585df44df689
  Author: Karl Williamson <[email protected]>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lib/locale_threads.t
    M locale.c
    M pp.c

  Log Message:
  -----------
  60


Compare: https://github.com/Perl/perl5/compare/105e955c3af8...5f11090fd998

Reply via email to