develooper Front page | perl.perl5.changes | Postings from May 2021

[Perl/perl5] 8cf4d2: perlapi: Rmv repeated word

From:
Karl Williamson via perl5-changes
Date:
May 3, 2021 13:47
Subject:
[Perl/perl5] 8cf4d2: perlapi: Rmv repeated word
Message ID:
Perl/perl5/push/refs/heads/smoke-me/khw-locale/292f90-6f8c49@github.com
  Branch: refs/heads/smoke-me/khw-locale
  Home:   https://github.com/Perl/perl5
  Commit: 8cf4d24279f8c311d12689178b658f898d041369
      https://github.com/Perl/perl5/commit/8cf4d24279f8c311d12689178b658f898d041369
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M sv.c

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


  Commit: e25b2c999e27c6c402191f1fa3087e3c8444db01
      https://github.com/Perl/perl5/commit/e25b2c999e27c6c402191f1fa3087e3c8444db01
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 55cf74a3aee948965401bb14d10d25b7ed68467b
      https://github.com/Perl/perl5/commit/55cf74a3aee948965401bb14d10d25b7ed68467b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 32fbfddeba7cbf24c2a6af68ed8692116911e940
      https://github.com/Perl/perl5/commit/32fbfddeba7cbf24c2a6af68ed8692116911e940
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f8fbe76e832d93da584e09a2f0729f9210c3be02
      https://github.com/Perl/perl5/commit/f8fbe76e832d93da584e09a2f0729f9210c3be02
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 2a72e3bac784aa7d67145f9c3b7624307c34392f
      https://github.com/Perl/perl5/commit/2a72e3bac784aa7d67145f9c3b7624307c34392f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 7aef721d822916f6fb56bb4c28f370370aa13e83
      https://github.com/Perl/perl5/commit/7aef721d822916f6fb56bb4c28f370370aa13e83
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 466affcd21be65656ff6810b149e103723630bdc
      https://github.com/Perl/perl5/commit/466affcd21be65656ff6810b149e103723630bdc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 7d8f203c6b019ffb328307edbcfd9dd360c37001
      https://github.com/Perl/perl5/commit/7d8f203c6b019ffb328307edbcfd9dd360c37001
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M handy.h

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


  Commit: 4a34289bf2802a0542f554d8ecc6a76cc4ad2336
      https://github.com/Perl/perl5/commit/4a34289bf2802a0542f554d8ecc6a76cc4ad2336
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M handy.h

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


  Commit: 2bf6fc95677f88d89b5eb239c7aae79f795f02d1
      https://github.com/Perl/perl5/commit/2bf6fc95677f88d89b5eb239c7aae79f795f02d1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bffdc778c0febe3ad45be62d5bd83b994f3623d7
      https://github.com/Perl/perl5/commit/bffdc778c0febe3ad45be62d5bd83b994f3623d7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c97f8f1dc62e79a6734f9c401a2586af5db011fe
      https://github.com/Perl/perl5/commit/c97f8f1dc62e79a6734f9c401a2586af5db011fe
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 81f71514eb549ccd8241da5feebe735666c673ca
      https://github.com/Perl/perl5/commit/81f71514eb549ccd8241da5feebe735666c673ca
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0d6aef26b94d50e5f2915098656a99d10ffe4c77
      https://github.com/Perl/perl5/commit/0d6aef26b94d50e5f2915098656a99d10ffe4c77
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ecd57034ec3905354776ae32bc9a2fe7d52719f6
      https://github.com/Perl/perl5/commit/ecd57034ec3905354776ae32bc9a2fe7d52719f6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f2c4db554362dc4977ebc72d6b65a3446f98fe97
      https://github.com/Perl/perl5/commit/f2c4db554362dc4977ebc72d6b65a3446f98fe97
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 8f556fa32d5d5886264584b018e1814f7441d0cd
      https://github.com/Perl/perl5/commit/8f556fa32d5d5886264584b018e1814f7441d0cd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 7f4da7866c0b48444fba0e593797501c6936c058
      https://github.com/Perl/perl5/commit/7f4da7866c0b48444fba0e593797501c6936c058
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e4b678871d659e87ed7684c04786a3b71b45fc20
      https://github.com/Perl/perl5/commit/e4b678871d659e87ed7684c04786a3b71b45fc20
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0e2f1404c038d03f9e4307f26ae6f1a97f98b1a5
      https://github.com/Perl/perl5/commit/0e2f1404c038d03f9e4307f26ae6f1a97f98b1a5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b0bd44a200282958afb3745c608f6ccb40c86be0
      https://github.com/Perl/perl5/commit/b0bd44a200282958afb3745c608f6ccb40c86be0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ac51f08eb11b4bb74da5f22054559f0775a84246
      https://github.com/Perl/perl5/commit/ac51f08eb11b4bb74da5f22054559f0775a84246
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M handy.h

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


  Commit: ce3ad29bacbd52628a8c4b2ddb9502f55d0ae5a5
      https://github.com/Perl/perl5/commit/ce3ad29bacbd52628a8c4b2ddb9502f55d0ae5a5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M handy.h

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

As a convenience to other code.


  Commit: e0073b90e793f36a1584f208c314b6d339ac90db
      https://github.com/Perl/perl5/commit/e0073b90e793f36a1584f208c314b6d339ac90db
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e4012385e13d49df98b3b1a4ed15df9cd7b320a0
      https://github.com/Perl/perl5/commit/e4012385e13d49df98b3b1a4ed15df9cd7b320a0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 9fd817fc2fe437008b0564fac590c7024ed1bc52
      https://github.com/Perl/perl5/commit/9fd817fc2fe437008b0564fac590c7024ed1bc52
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 77e986fa216fbc1bc3369b65e3e10803fdea012f
      https://github.com/Perl/perl5/commit/77e986fa216fbc1bc3369b65e3e10803fdea012f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e71f98df63fda47b7928d4a95ce2a15bfb0907e0
      https://github.com/Perl/perl5/commit/e71f98df63fda47b7928d4a95ce2a15bfb0907e0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 38db94474daad18a7efe702dd1947de0208dc3b1
      https://github.com/Perl/perl5/commit/38db94474daad18a7efe702dd1947de0208dc3b1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4f17d9c25649a7a1730ec492027152c89de5e9f5
      https://github.com/Perl/perl5/commit/4f17d9c25649a7a1730ec492027152c89de5e9f5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: dcc9c5a104904986b416e5caa5c5911afc4592c1
      https://github.com/Perl/perl5/commit/dcc9c5a104904986b416e5caa5c5911afc4592c1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0df13e091f4953fba353249979457e8f7cc15369
      https://github.com/Perl/perl5/commit/0df13e091f4953fba353249979457e8f7cc15369
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 82c553788588490b4f43914b68784ada58cc5399
      https://github.com/Perl/perl5/commit/82c553788588490b4f43914b68784ada58cc5399
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: cb014a856747d0e0c5698ddf2d59b6e10dcbf672
      https://github.com/Perl/perl5/commit/cb014a856747d0e0c5698ddf2d59b6e10dcbf672
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ec3951170f196aadfefc188835caf326652bce2a
      https://github.com/Perl/perl5/commit/ec3951170f196aadfefc188835caf326652bce2a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f49199cdb681731a23a736a65cd510b8cb86250b
      https://github.com/Perl/perl5/commit/f49199cdb681731a23a736a65cd510b8cb86250b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 339cce6cf26b2e6648dc98b2438990886d78a68f
      https://github.com/Perl/perl5/commit/339cce6cf26b2e6648dc98b2438990886d78a68f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 6c8ddd0c7cdb9b07ffdf4d11737f0d978084d9ff
      https://github.com/Perl/perl5/commit/6c8ddd0c7cdb9b07ffdf4d11737f0d978084d9ff
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bd58aed6cf4072c22ad96f27058447f47c833505
      https://github.com/Perl/perl5/commit/bd58aed6cf4072c22ad96f27058447f47c833505
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0decd32f98a8790d5decde7edb71e175272fbc2f
      https://github.com/Perl/perl5/commit/0decd32f98a8790d5decde7edb71e175272fbc2f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: a28b2b7b17f35cf2143c1f287dd144a29eba00f9
      https://github.com/Perl/perl5/commit/a28b2b7b17f35cf2143c1f287dd144a29eba00f9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5aac7086040422be22741e6fe3bef7bc88169df1
      https://github.com/Perl/perl5/commit/5aac7086040422be22741e6fe3bef7bc88169df1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 1612713b73e876785447ec7c550137db966a96e3
      https://github.com/Perl/perl5/commit/1612713b73e876785447ec7c550137db966a96e3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3d89ea165203fb881749795a509b18968c3744d7
      https://github.com/Perl/perl5/commit/3d89ea165203fb881749795a509b18968c3744d7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 2c6a381846636d00ad8662bf1a23f4ea482f72ee
      https://github.com/Perl/perl5/commit/2c6a381846636d00ad8662bf1a23f4ea482f72ee
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b08dfd007ac9060c1647df0b9be3260b5d35226c
      https://github.com/Perl/perl5/commit/b08dfd007ac9060c1647df0b9be3260b5d35226c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 801e90bd38a42dbed827fdccde7790cf7c984756
      https://github.com/Perl/perl5/commit/801e90bd38a42dbed827fdccde7790cf7c984756
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 8b55f9cc77807d4dfaf95d2f8f2cdd6846eb74d5
      https://github.com/Perl/perl5/commit/8b55f9cc77807d4dfaf95d2f8f2cdd6846eb74d5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 69e16e5c131751c3cd48d8c4f45fea08eb0ed954
      https://github.com/Perl/perl5/commit/69e16e5c131751c3cd48d8c4f45fea08eb0ed954
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c631b6a2ead88bad8ff323f08d7acaa7dc236b70
      https://github.com/Perl/perl5/commit/c631b6a2ead88bad8ff323f08d7acaa7dc236b70
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 9b234a5448c79f401964a634961b970e80c3bd52
      https://github.com/Perl/perl5/commit/9b234a5448c79f401964a634961b970e80c3bd52
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3758f19285d4420fbf16160cadf4b2ad8f68cde5
      https://github.com/Perl/perl5/commit/3758f19285d4420fbf16160cadf4b2ad8f68cde5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 68d4f54277ed3b5c5aabf4f91be122c3293f921f
      https://github.com/Perl/perl5/commit/68d4f54277ed3b5c5aabf4f91be122c3293f921f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f993767f687c520d11e36c10a17a980f4bfb6b80
      https://github.com/Perl/perl5/commit/f993767f687c520d11e36c10a17a980f4bfb6b80
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 677b2df6f3da5ba07d7e9675fbb8b2a53d583e09
      https://github.com/Perl/perl5/commit/677b2df6f3da5ba07d7e9675fbb8b2a53d583e09
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 9b3ddc2204d6f5e1082593c4c749b10e32bd4cd6
      https://github.com/Perl/perl5/commit/9b3ddc2204d6f5e1082593c4c749b10e32bd4cd6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b5c83d659d4870ac560c7b72d52385310fd69bd6
      https://github.com/Perl/perl5/commit/b5c83d659d4870ac560c7b72d52385310fd69bd6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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

A future commit will want this


  Commit: f9c41226a62e17f7c88457db37c6927e26c74353
      https://github.com/Perl/perl5/commit/f9c41226a62e17f7c88457db37c6927e26c74353
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e9d504d7a5d749d4333a0c34153d8f1591818c2d
      https://github.com/Perl/perl5/commit/e9d504d7a5d749d4333a0c34153d8f1591818c2d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 5355353c7cc255ead67f5fd61933d94387aa6ec9
      https://github.com/Perl/perl5/commit/5355353c7cc255ead67f5fd61933d94387aa6ec9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5c72b73ef8963482efd3575effe191ba32b2ebce
      https://github.com/Perl/perl5/commit/5c72b73ef8963482efd3575effe191ba32b2ebce
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: a863974790a77e517846a4a829f18bec679ced2c
      https://github.com/Perl/perl5/commit/a863974790a77e517846a4a829f18bec679ced2c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 77130ad9a759aa3d70ad8f8f4d7274ac24683b24
      https://github.com/Perl/perl5/commit/77130ad9a759aa3d70ad8f8f4d7274ac24683b24
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 2accd2626c4e098cc1aa0d91080a53b164ea7aeb
      https://github.com/Perl/perl5/commit/2accd2626c4e098cc1aa0d91080a53b164ea7aeb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 96ec7c3b8b32cbc0360f73a48db574d49ac4a766
      https://github.com/Perl/perl5/commit/96ec7c3b8b32cbc0360f73a48db574d49ac4a766
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ca74dc1719795c3a4915cdfe18800dd720827d3a
      https://github.com/Perl/perl5/commit/ca74dc1719795c3a4915cdfe18800dd720827d3a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4a2d5ba90508293677f222ed7b185bf5a704e03f
      https://github.com/Perl/perl5/commit/4a2d5ba90508293677f222ed7b185bf5a704e03f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 86f829c5e73e9dc0299d717329423c48a1ee4d94
      https://github.com/Perl/perl5/commit/86f829c5e73e9dc0299d717329423c48a1ee4d94
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: cb547a6768ec793b9ddcb44877199b5a9f75825f
      https://github.com/Perl/perl5/commit/cb547a6768ec793b9ddcb44877199b5a9f75825f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bb842087d13b8bb472deb5c3e9c8dfe04374a67c
      https://github.com/Perl/perl5/commit/bb842087d13b8bb472deb5c3e9c8dfe04374a67c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0af19d70565e169edfb0ef31d17c099ba22b9edb
      https://github.com/Perl/perl5/commit/0af19d70565e169edfb0ef31d17c099ba22b9edb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 11a8267c7d205be6062a9b44259bf71099106f45
      https://github.com/Perl/perl5/commit/11a8267c7d205be6062a9b44259bf71099106f45
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 61707a711c572e8f1a2482fa421bc53c6559370a
      https://github.com/Perl/perl5/commit/61707a711c572e8f1a2482fa421bc53c6559370a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 12b3f051cc93872d658c3b75026c8784b4dcfa50
      https://github.com/Perl/perl5/commit/12b3f051cc93872d658c3b75026c8784b4dcfa50
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs

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

Properly indent some nested preprocessor directives


  Commit: e9ae88626b31a8eb05d889f9e17775c5aae98dfa
      https://github.com/Perl/perl5/commit/e9ae88626b31a8eb05d889f9e17775c5aae98dfa
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5bc3710dfebc9a8a658ea5fd4efcc54f123927a9
      https://github.com/Perl/perl5/commit/5bc3710dfebc9a8a658ea5fd4efcc54f123927a9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0dc2d4aa5b39169a8dde6e8eed392c73522645a9
      https://github.com/Perl/perl5/commit/0dc2d4aa5b39169a8dde6e8eed392c73522645a9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 44c05b36ca59d8d558876dd15dbc2df0f3e16e8f
      https://github.com/Perl/perl5/commit/44c05b36ca59d8d558876dd15dbc2df0f3e16e8f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 7d3db3e4abf63dbf3927acacbbade3e83af68352
      https://github.com/Perl/perl5/commit/7d3db3e4abf63dbf3927acacbbade3e83af68352
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 62b54fdec8eaea202c2054b974d5fb43f9cbd1ca
      https://github.com/Perl/perl5/commit/62b54fdec8eaea202c2054b974d5fb43f9cbd1ca
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d8460a399a34496901a145321887aef3209397ea
      https://github.com/Perl/perl5/commit/d8460a399a34496901a145321887aef3209397ea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 92bd26806ecb2d5a2ce0f1e1c6966de151b63f51
      https://github.com/Perl/perl5/commit/92bd26806ecb2d5a2ce0f1e1c6966de151b63f51
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 95a021ca7ca87cdb89d5f4e3e29277bbf8f14eea
      https://github.com/Perl/perl5/commit/95a021ca7ca87cdb89d5f4e3e29277bbf8f14eea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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

This allows some preprocessor conditionals to be removed


  Commit: 366916bc34aa3f4a325f7bfb4b14500ab4213a63
      https://github.com/Perl/perl5/commit/366916bc34aa3f4a325f7bfb4b14500ab4213a63
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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

strEQ and && already return booleans


  Commit: 8d9f76ffa882ef763d9658114da03d292d461cef
      https://github.com/Perl/perl5/commit/8d9f76ffa882ef763d9658114da03d292d461cef
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ad96f0b11670f43f22c294cc5d33ba46706b7b91
      https://github.com/Perl/perl5/commit/ad96f0b11670f43f22c294cc5d33ba46706b7b91
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bb519547ee3e1387cb3f97f4d165932497c5a66a
      https://github.com/Perl/perl5/commit/bb519547ee3e1387cb3f97f4d165932497c5a66a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: cb8b2b505e04617c4f00c40c3a5170b1a26bada7
      https://github.com/Perl/perl5/commit/cb8b2b505e04617c4f00c40c3a5170b1a26bada7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 209917109ce186118d38bba41799dab74017dee8
      https://github.com/Perl/perl5/commit/209917109ce186118d38bba41799dab74017dee8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d7b6c214869eaf926717cdfe4c60e613690de36b
      https://github.com/Perl/perl5/commit/d7b6c214869eaf926717cdfe4c60e613690de36b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d3268476372274553d945be8b78a371ae127c171
      https://github.com/Perl/perl5/commit/d3268476372274553d945be8b78a371ae127c171
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ff1200dc48e49e4c418b3c5797db0124bd35c252
      https://github.com/Perl/perl5/commit/ff1200dc48e49e4c418b3c5797db0124bd35c252
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c6170cfe4ccbe187dca48559a246eed44d422a8b
      https://github.com/Perl/perl5/commit/c6170cfe4ccbe187dca48559a246eed44d422a8b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3b099455d9d9c262b68eb6e152806e19153e3d92
      https://github.com/Perl/perl5/commit/3b099455d9d9c262b68eb6e152806e19153e3d92
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 730abdd1b3cb1a330c55b366b1edda62e15e86ce
      https://github.com/Perl/perl5/commit/730abdd1b3cb1a330c55b366b1edda62e15e86ce
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 13a058cb939cca6179182f7a163d851595dbc0ca
      https://github.com/Perl/perl5/commit/13a058cb939cca6179182f7a163d851595dbc0ca
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 30bde34bc180d08e4b62234d05bb9028b2958a8a
      https://github.com/Perl/perl5/commit/30bde34bc180d08e4b62234d05bb9028b2958a8a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bf231ed479e796b9dc69a76026c8153c08d55158
      https://github.com/Perl/perl5/commit/bf231ed479e796b9dc69a76026c8153c08d55158
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f766ac5e7a5cf0c43a77d59fa82430572e6d2022
      https://github.com/Perl/perl5/commit/f766ac5e7a5cf0c43a77d59fa82430572e6d2022
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 19386d1a14f41735e6cf07a22ab08bc6f9a89541
      https://github.com/Perl/perl5/commit/19386d1a14f41735e6cf07a22ab08bc6f9a89541
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ce317d380dd8c5c248cc532cee11d7e3437eb26e
      https://github.com/Perl/perl5/commit/ce317d380dd8c5c248cc532cee11d7e3437eb26e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f56fdc82aafb91d615782254f83ea462e1a6c919
      https://github.com/Perl/perl5/commit/f56fdc82aafb91d615782254f83ea462e1a6c919
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4921f9b4e1860b1fef99d3a5fe5021dddefd0aa5
      https://github.com/Perl/perl5/commit/4921f9b4e1860b1fef99d3a5fe5021dddefd0aa5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f583d1eb5cd88b3f32c147f06b28daba61aa657d
      https://github.com/Perl/perl5/commit/f583d1eb5cd88b3f32c147f06b28daba61aa657d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bf5e55c8b4ccb9a19ef32c33db652e4f0ec5a70d
      https://github.com/Perl/perl5/commit/bf5e55c8b4ccb9a19ef32c33db652e4f0ec5a70d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 9e646991cbfd4898e574e474c843abe8b5debd30
      https://github.com/Perl/perl5/commit/9e646991cbfd4898e574e474c843abe8b5debd30
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f348d6731051ef5a7ab3914bebfd25d064b5d6b5
      https://github.com/Perl/perl5/commit/f348d6731051ef5a7ab3914bebfd25d064b5d6b5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 4214df52a2b61517b272b84d93b1ca6f6d420389
      https://github.com/Perl/perl5/commit/4214df52a2b61517b272b84d93b1ca6f6d420389
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 94653001d5d854ffa495e61ddc079ba6b951c10d
      https://github.com/Perl/perl5/commit/94653001d5d854ffa495e61ddc079ba6b951c10d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e81c677e7c14c70e06641e085221c28d3f3a1f87
      https://github.com/Perl/perl5/commit/e81c677e7c14c70e06641e085221c28d3f3a1f87
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f3992b4df2daab7dbc3ffe764b4f6a2b034a84a9
      https://github.com/Perl/perl5/commit/f3992b4df2daab7dbc3ffe764b4f6a2b034a84a9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M mg.c

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

Indent newly formed block from the previous commit.


  Commit: edae6036f428b14f8b8f44fcbc5b5007167bffe8
      https://github.com/Perl/perl5/commit/edae6036f428b14f8b8f44fcbc5b5007167bffe8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 1b09c76833905826738f3582999e9b5dff1ea914
      https://github.com/Perl/perl5/commit/1b09c76833905826738f3582999e9b5dff1ea914
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f84c6ea9ab46a516c39a401614594b973e0eed14
      https://github.com/Perl/perl5/commit/f84c6ea9ab46a516c39a401614594b973e0eed14
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 01c0b4ee72e1f8e8069e00b9d470f1f37ebcdb20
      https://github.com/Perl/perl5/commit/01c0b4ee72e1f8e8069e00b9d470f1f37ebcdb20
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ec45b7abae92094ab6fcac33261d64d689afb5c9
      https://github.com/Perl/perl5/commit/ec45b7abae92094ab6fcac33261d64d689afb5c9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 133b2491b0017b4affc80987a689cb5d3962a4a7
      https://github.com/Perl/perl5/commit/133b2491b0017b4affc80987a689cb5d3962a4a7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e34644971bfd23edec525d3a7612a7ac85462fbf
      https://github.com/Perl/perl5/commit/e34644971bfd23edec525d3a7612a7ac85462fbf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d00833ad706a23a9d940ca50d693e4f940e62374
      https://github.com/Perl/perl5/commit/d00833ad706a23a9d940ca50d693e4f940e62374
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e6f29fd4c2565a49fe3029d3ea0f078378a6a7fb
      https://github.com/Perl/perl5/commit/e6f29fd4c2565a49fe3029d3ea0f078378a6a7fb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 72a0bdf6fe73598d9ff2f392294364fd3d151a0c
      https://github.com/Perl/perl5/commit/72a0bdf6fe73598d9ff2f392294364fd3d151a0c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 7f07801649f11429d132e60285514f0dc9edb9a9
      https://github.com/Perl/perl5/commit/7f07801649f11429d132e60285514f0dc9edb9a9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 9788d82afabbf44ee1ca4d86db4d5895f5f9efd1
      https://github.com/Perl/perl5/commit/9788d82afabbf44ee1ca4d86db4d5895f5f9efd1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: a1c531c1247a4153cd349e9a3b83ea835cb73b67
      https://github.com/Perl/perl5/commit/a1c531c1247a4153cd349e9a3b83ea835cb73b67
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bace79adc967ff7060f278b0be0c3c2fb7fba8fe
      https://github.com/Perl/perl5/commit/bace79adc967ff7060f278b0be0c3c2fb7fba8fe
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4e5fbcf45980d821e069c001f521d95240d662c6
      https://github.com/Perl/perl5/commit/4e5fbcf45980d821e069c001f521d95240d662c6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b989097c2d47c0056973924e0f690d735b6f482a
      https://github.com/Perl/perl5/commit/b989097c2d47c0056973924e0f690d735b6f482a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: dc75a6bcf468352ed95d3fbdb8c6b7400d7b9faa
      https://github.com/Perl/perl5/commit/dc75a6bcf468352ed95d3fbdb8c6b7400d7b9faa
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 72db72656a948f744bfb1a9db8fc3d935648d511
      https://github.com/Perl/perl5/commit/72db72656a948f744bfb1a9db8fc3d935648d511
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 341061db9413c30708fb782eabfa2891848f1e76
      https://github.com/Perl/perl5/commit/341061db9413c30708fb782eabfa2891848f1e76
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d11721ccce59972e7040aeab9650cd7c9c8bf2fa
      https://github.com/Perl/perl5/commit/d11721ccce59972e7040aeab9650cd7c9c8bf2fa
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 95751f19fd43a40f584838092d914a198b2d14d5
      https://github.com/Perl/perl5/commit/95751f19fd43a40f584838092d914a198b2d14d5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 0c0a4f4ea522a1970803bb0b80914eca97e8884d
      https://github.com/Perl/perl5/commit/0c0a4f4ea522a1970803bb0b80914eca97e8884d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4f5ea90a90304da7fa734b8d23d3c5ef8794d1c5
      https://github.com/Perl/perl5/commit/4f5ea90a90304da7fa734b8d23d3c5ef8794d1c5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c5d7c77c0f2067d5a432483a247717b07a699a67
      https://github.com/Perl/perl5/commit/c5d7c77c0f2067d5a432483a247717b07a699a67
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 546138c8d181a1048630e91f4a5a2c97da2cd8bf
      https://github.com/Perl/perl5/commit/546138c8d181a1048630e91f4a5a2c97da2cd8bf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5dd6cf5396177196b6bc9bede890854aaff24e16
      https://github.com/Perl/perl5/commit/5dd6cf5396177196b6bc9bede890854aaff24e16
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4fbeeab8bcca7689650b73dcbdf9b2f6df640373
      https://github.com/Perl/perl5/commit/4fbeeab8bcca7689650b73dcbdf9b2f6df640373
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 0e645c336f9c24aa480355d38e048ab81e51b0b6
      https://github.com/Perl/perl5/commit/0e645c336f9c24aa480355d38e048ab81e51b0b6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3c345e991a517079a9e1575bc3b9dbb2b0dc5e8a
      https://github.com/Perl/perl5/commit/3c345e991a517079a9e1575bc3b9dbb2b0dc5e8a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b0c269baa1b9991a9a894a6e1330a9598184eca5
      https://github.com/Perl/perl5/commit/b0c269baa1b9991a9a894a6e1330a9598184eca5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3d30d9dd45d4e4c12f2539620d47772c04afa653
      https://github.com/Perl/perl5/commit/3d30d9dd45d4e4c12f2539620d47772c04afa653
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 88dab36bf9a5bb9e708adac06d67ff1385491d4e
      https://github.com/Perl/perl5/commit/88dab36bf9a5bb9e708adac06d67ff1385491d4e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d03754ab04712a48566fb96f5fa7ed7fd9d530c8
      https://github.com/Perl/perl5/commit/d03754ab04712a48566fb96f5fa7ed7fd9d530c8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M lib/locale.t

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


  Commit: b0cacc5aa301fa2983526f204b2a1160458e0fdf
      https://github.com/Perl/perl5/commit/b0cacc5aa301fa2983526f204b2a1160458e0fdf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b90e8aba82314185dd101f2a72cf0a2caba95a3f
      https://github.com/Perl/perl5/commit/b90e8aba82314185dd101f2a72cf0a2caba95a3f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: a046eadc3dc6995dc823b39615326d8f5ba6c256
      https://github.com/Perl/perl5/commit/a046eadc3dc6995dc823b39615326d8f5ba6c256
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: bf636a880af8c461bf5cd3c6d6e710f176e46151
      https://github.com/Perl/perl5/commit/bf636a880af8c461bf5cd3c6d6e710f176e46151
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f79c572f5843df56e381da643f65e7507e857dc2
      https://github.com/Perl/perl5/commit/f79c572f5843df56e381da643f65e7507e857dc2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b04e1b8b743a395a44237ded610eac818c007726
      https://github.com/Perl/perl5/commit/b04e1b8b743a395a44237ded610eac818c007726
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: fe20c1539733c1e2be0ae94b427a5bcc8c3ce5f0
      https://github.com/Perl/perl5/commit/fe20c1539733c1e2be0ae94b427a5bcc8c3ce5f0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: fdec9b2535d39e22f74f88e7d71d0a17550be158
      https://github.com/Perl/perl5/commit/fdec9b2535d39e22f74f88e7d71d0a17550be158
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5f22f1959384487dd790ebaabe59c4dcfac8db95
      https://github.com/Perl/perl5/commit/5f22f1959384487dd790ebaabe59c4dcfac8db95
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b2b6cd8293d0feb9598000abd54985a8f6057d49
      https://github.com/Perl/perl5/commit/b2b6cd8293d0feb9598000abd54985a8f6057d49
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 62d1e3a7e24c22671c226338cbab320661c793f6
      https://github.com/Perl/perl5/commit/62d1e3a7e24c22671c226338cbab320661c793f6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 34485024db541c9add380712ddd5abcd4e7bbf82
      https://github.com/Perl/perl5/commit/34485024db541c9add380712ddd5abcd4e7bbf82
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b6995b43bc8872634dd598eac7eff556549a872f
      https://github.com/Perl/perl5/commit/b6995b43bc8872634dd598eac7eff556549a872f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b5fcdf596e3bab81fd0350894c1d05fa266038a8
      https://github.com/Perl/perl5/commit/b5fcdf596e3bab81fd0350894c1d05fa266038a8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4e1f35a9c0f1d83e05e9dbbebb7a80e15ffa28dc
      https://github.com/Perl/perl5/commit/4e1f35a9c0f1d83e05e9dbbebb7a80e15ffa28dc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d326e39a153d641eadf85e6d61d286e3f1048ee1
      https://github.com/Perl/perl5/commit/d326e39a153d641eadf85e6d61d286e3f1048ee1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 365bd91db10a6f7e7988759082ccf32de77020b1
      https://github.com/Perl/perl5/commit/365bd91db10a6f7e7988759082ccf32de77020b1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M perl.h

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

This simplifies slightly, and will allow further simplification


  Commit: addcff2421d3a68e945497c84affd040683fe993
      https://github.com/Perl/perl5/commit/addcff2421d3a68e945497c84affd040683fe993
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M perl.h

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

To enable future simplifications


  Commit: cc1e2bd6e1956b1881ad594af7384d767836a05c
      https://github.com/Perl/perl5/commit/cc1e2bd6e1956b1881ad594af7384d767836a05c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 7998c6985d38b8ddb1a009e67179c0de821e67f8
      https://github.com/Perl/perl5/commit/7998c6985d38b8ddb1a009e67179c0de821e67f8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 9829569d21033968e674beba330f48c116843aad
      https://github.com/Perl/perl5/commit/9829569d21033968e674beba330f48c116843aad
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5f2dc40ce1dcd78ffbb98f1d723bdfdd9e6601a4
      https://github.com/Perl/perl5/commit/5f2dc40ce1dcd78ffbb98f1d723bdfdd9e6601a4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M pp.c

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


  Commit: 16afa29e5c358202fa70537bc013ca83504794ae
      https://github.com/Perl/perl5/commit/16afa29e5c358202fa70537bc013ca83504794ae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: fadad5ba124cacfc8cfb7caf688ebbbaf97e5258
      https://github.com/Perl/perl5/commit/fadad5ba124cacfc8cfb7caf688ebbbaf97e5258
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c31fb0831befa39d4a05c3108583d5e150d89754
      https://github.com/Perl/perl5/commit/c31fb0831befa39d4a05c3108583d5e150d89754
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: be9791037c7bc8a316c2ae8ef629bbf357685f00
      https://github.com/Perl/perl5/commit/be9791037c7bc8a316c2ae8ef629bbf357685f00
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 54a6742335c1646280b2401d471573bb4a420d09
      https://github.com/Perl/perl5/commit/54a6742335c1646280b2401d471573bb4a420d09
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 88a40f1c1c8a3f4c5f2a1fb9db190097c7fef066
      https://github.com/Perl/perl5/commit/88a40f1c1c8a3f4c5f2a1fb9db190097c7fef066
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c0b9c7e373035b597b7bded8c29c60c621de3b42
      https://github.com/Perl/perl5/commit/c0b9c7e373035b597b7bded8c29c60c621de3b42
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 41deb6ffca2bca362e7e975bbba727053c1d2038
      https://github.com/Perl/perl5/commit/41deb6ffca2bca362e7e975bbba727053c1d2038
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M perl.h

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

So they are closer to related statements


  Commit: 589c9c8835616c778a91e15699d0b139e82743ea
      https://github.com/Perl/perl5/commit/589c9c8835616c778a91e15699d0b139e82743ea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 72e092757d364a5d23c4a9b4c2e0c1f48a1a1929
      https://github.com/Perl/perl5/commit/72e092757d364a5d23c4a9b4c2e0c1f48a1a1929
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 1d759d9e9cfb6cdbe7a290d1f48d26cc8f217c83
      https://github.com/Perl/perl5/commit/1d759d9e9cfb6cdbe7a290d1f48d26cc8f217c83
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M pp_sys.c

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


  Commit: 72aaaa28de181c378f5cb553854455ab6fb7f143
      https://github.com/Perl/perl5/commit/72aaaa28de181c378f5cb553854455ab6fb7f143
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M win32/win32.c

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

These could have races.


  Commit: 4e775a03ce039bd06b79f8630774e29b47dd7b78
      https://github.com/Perl/perl5/commit/4e775a03ce039bd06b79f8630774e29b47dd7b78
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M ext/POSIX/POSIX.xs

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


  Commit: 12e9aa325d6d935e98ca32f2ccfc5a2549bfea48
      https://github.com/Perl/perl5/commit/12e9aa325d6d935e98ca32f2ccfc5a2549bfea48
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M util.c

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

per the Posix standard


  Commit: 250754bf4e5f6dcd5e2547bf838614a946da2789
      https://github.com/Perl/perl5/commit/250754bf4e5f6dcd5e2547bf838614a946da2789
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M util.c

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


  Commit: 982fee7fdd6d5f84b5e5ca8d8d3ca0bbd13694cf
      https://github.com/Perl/perl5/commit/982fee7fdd6d5f84b5e5ca8d8d3ca0bbd13694cf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5cc466fc778d68522039d516f3bb3f9a4e1f4d37
      https://github.com/Perl/perl5/commit/5cc466fc778d68522039d516f3bb3f9a4e1f4d37
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c4db1fa7e2e2a908611d8523638286aa3192eed1
      https://github.com/Perl/perl5/commit/c4db1fa7e2e2a908611d8523638286aa3192eed1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 13752e66d34b64b0fd11b83371d4e87a605cdefc
      https://github.com/Perl/perl5/commit/13752e66d34b64b0fd11b83371d4e87a605cdefc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: c6dce6216c996379975e1a9121f3f2b8e24fb320
      https://github.com/Perl/perl5/commit/c6dce6216c996379975e1a9121f3f2b8e24fb320
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 16eb82f8d801b7528f3f4096492cad97ca76ccfc
      https://github.com/Perl/perl5/commit/16eb82f8d801b7528f3f4096492cad97ca76ccfc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 621f6824af780b74eb89c71547c845c95024d754
      https://github.com/Perl/perl5/commit/621f6824af780b74eb89c71547c845c95024d754
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 111af00b6157be0d9ac0ae152328ee553a91f987
      https://github.com/Perl/perl5/commit/111af00b6157be0d9ac0ae152328ee553a91f987
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 92d31e333959f7de9bcad84b71198a34652adf9d
      https://github.com/Perl/perl5/commit/92d31e333959f7de9bcad84b71198a34652adf9d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M hints/freebsd.sh

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


  Commit: 0348c8f6e12295fbe44a2ef808fe04ae1bbed468
      https://github.com/Perl/perl5/commit/0348c8f6e12295fbe44a2ef808fe04ae1bbed468
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M thread.h

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


  Commit: 9d666c9749dec3dd8824eb186451937eea36dfaf
      https://github.com/Perl/perl5/commit/9d666c9749dec3dd8824eb186451937eea36dfaf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M thread.h

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


  Commit: de2a3fe4eeba4bacca12463482e55e0888f9c133
      https://github.com/Perl/perl5/commit/de2a3fe4eeba4bacca12463482e55e0888f9c133
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M perl.h

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


  Commit: e4bfe1a1b0ae727ba321b4bb5cb6b1fcc3f55b7a
      https://github.com/Perl/perl5/commit/e4bfe1a1b0ae727ba321b4bb5cb6b1fcc3f55b7a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

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

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


  Commit: a1319f140c6e3a392fac418c0d4a24a23ff3672f
      https://github.com/Perl/perl5/commit/a1319f140c6e3a392fac418c0d4a24a23ff3672f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: db3bd86a3fbc836eba7ea9205b6c45d9ab54e316
      https://github.com/Perl/perl5/commit/db3bd86a3fbc836eba7ea9205b6c45d9ab54e316
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

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

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


  Commit: d343aaad3eea80d89feeb48805838b737045a599
      https://github.com/Perl/perl5/commit/d343aaad3eea80d89feeb48805838b737045a599
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3fe5639c84420695593e3550b6f7982b5d02df9c
      https://github.com/Perl/perl5/commit/3fe5639c84420695593e3550b6f7982b5d02df9c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M t/run/locale.t

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


  Commit: d14e42a5044b4a15cd351b9cd389563d3c338321
      https://github.com/Perl/perl5/commit/d14e42a5044b4a15cd351b9cd389563d3c338321
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e9c788c176d1359d2ae202963e399969499e5c66
      https://github.com/Perl/perl5/commit/e9c788c176d1359d2ae202963e399969499e5c66
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 3afd3997189b92b32aa27ba85510c059a5f43b82
      https://github.com/Perl/perl5/commit/3afd3997189b92b32aa27ba85510c059a5f43b82
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b69a03e654e3ab418b97c33c4a26fb78dc3d7efb
      https://github.com/Perl/perl5/commit/b69a03e654e3ab418b97c33c4a26fb78dc3d7efb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 4a3a234e876b58b716510232e38c2a54851c892a
      https://github.com/Perl/perl5/commit/4a3a234e876b58b716510232e38c2a54851c892a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 04bdc9d2d452a6c385dcf253d2f927a7582f70ac
      https://github.com/Perl/perl5/commit/04bdc9d2d452a6c385dcf253d2f927a7582f70ac
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

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

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


  Commit: e5339163f4cf765011dc25b7f143b703faa729f4
      https://github.com/Perl/perl5/commit/e5339163f4cf765011dc25b7f143b703faa729f4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d16edaf21288a9dc7145eca9239bcb790b90d140
      https://github.com/Perl/perl5/commit/d16edaf21288a9dc7145eca9239bcb790b90d140
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M lib/locale.t

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


  Commit: 625b42d44ab373364998c6efb153d2a57074778e
      https://github.com/Perl/perl5/commit/625b42d44ab373364998c6efb153d2a57074778e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 5d7de07315a5167964b09f509635f01c79a1290a
      https://github.com/Perl/perl5/commit/5d7de07315a5167964b09f509635f01c79a1290a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M embed.fnc
    M proto.h

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


  Commit: d80eec1606cc144660c93876ff90883a8545c890
      https://github.com/Perl/perl5/commit/d80eec1606cc144660c93876ff90883a8545c890
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 74ca279386ebff7c5d17641fc685f36e8c979955
      https://github.com/Perl/perl5/commit/74ca279386ebff7c5d17641fc685f36e8c979955
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

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

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


  Commit: 70701e2e0afd424254caf6d4738db362080fe4b5
      https://github.com/Perl/perl5/commit/70701e2e0afd424254caf6d4738db362080fe4b5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M perl.h

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


  Commit: 128d6137bbbeb238f187b5dfe480eab390f7022e
      https://github.com/Perl/perl5/commit/128d6137bbbeb238f187b5dfe480eab390f7022e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c

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


  Commit: 6fdf53e7ae9e64e1d5310835f3e980aade77c7bf
      https://github.com/Perl/perl5/commit/6fdf53e7ae9e64e1d5310835f3e980aade77c7bf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M intrpvar.h

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


  Commit: f1ddc0143ea0a10876f5269b8d1a770351c9c4c0
      https://github.com/Perl/perl5/commit/f1ddc0143ea0a10876f5269b8d1a770351c9c4c0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: af17caef286918a7261f5d285d62a3fd11746ecd
      https://github.com/Perl/perl5/commit/af17caef286918a7261f5d285d62a3fd11746ecd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 747cdc107e747c5070f034579e7ea61408c0526d
      https://github.com/Perl/perl5/commit/747cdc107e747c5070f034579e7ea61408c0526d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M locale.c
    M util.c

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

We can assume it exists


  Commit: e1091fc52bc528205b6e046dd2437967df0c1e0d
      https://github.com/Perl/perl5/commit/e1091fc52bc528205b6e046dd2437967df0c1e0d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: adb19e2ce592d2768b60bb5319d237caa812dfe8
      https://github.com/Perl/perl5/commit/adb19e2ce592d2768b60bb5319d237caa812dfe8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M patchlevel.h

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


  Commit: 2e8a719865a3d2fbb269becd138b30935cb8a1a4
      https://github.com/Perl/perl5/commit/2e8a719865a3d2fbb269becd138b30935cb8a1a4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M sv.c

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


  Commit: b75775ea57bd3bd64d5c367b9e2c7e58d2eca2f6
      https://github.com/Perl/perl5/commit/b75775ea57bd3bd64d5c367b9e2c7e58d2eca2f6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: e2951d712fa5c24ec8f37b3d55b4278fa145e141
      https://github.com/Perl/perl5/commit/e2951d712fa5c24ec8f37b3d55b4278fa145e141
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f97436c5396c7e7da932315e91fdbebf890fcf81
      https://github.com/Perl/perl5/commit/f97436c5396c7e7da932315e91fdbebf890fcf81
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ddaef91640dabb449c204acef43e777d53026238
      https://github.com/Perl/perl5/commit/ddaef91640dabb449c204acef43e777d53026238
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 991f4537bf74dabf2445dec19863ad22e865a3e0
      https://github.com/Perl/perl5/commit/991f4537bf74dabf2445dec19863ad22e865a3e0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 6cf6b3d04e93f4c0f47b12ddf26050a9a4a99357
      https://github.com/Perl/perl5/commit/6cf6b3d04e93f4c0f47b12ddf26050a9a4a99357
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 83662cdfad5e0e3bc2fb0b98af2dbbbad2587115
      https://github.com/Perl/perl5/commit/83662cdfad5e0e3bc2fb0b98af2dbbbad2587115
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 14c40fa2ab5063890080ea48f3baec6e656387fa
      https://github.com/Perl/perl5/commit/14c40fa2ab5063890080ea48f3baec6e656387fa
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M cygwin/cygwin.c

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


  Commit: 529a18e6c6751bcd8b944d62af26b5f6402caeda
      https://github.com/Perl/perl5/commit/529a18e6c6751bcd8b944d62af26b5f6402caeda
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M patchlevel.h

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


  Commit: 031eaae6b7e6df5124772309ecd8982492cd1a19
      https://github.com/Perl/perl5/commit/031eaae6b7e6df5124772309ecd8982492cd1a19
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M cygwin/cygwin.c

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


  Commit: 2b494d7d78b853a38094365606a66c80b683e4bb
      https://github.com/Perl/perl5/commit/2b494d7d78b853a38094365606a66c80b683e4bb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M cygwin/cygwin.c

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

This reverts commit 24fbf2ccd8777c4af31eb9f8038d4cff7073b0c4.


  Commit: c218b2f469d1ffdcacfc8431863ea72df065e97d
      https://github.com/Perl/perl5/commit/c218b2f469d1ffdcacfc8431863ea72df065e97d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 840b25840f9a364c592b208d6ea3d8f3c09c0000
      https://github.com/Perl/perl5/commit/840b25840f9a364c592b208d6ea3d8f3c09c0000
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 47d62e66c2a1b58e4dd144075224e9a7a887b70d
      https://github.com/Perl/perl5/commit/47d62e66c2a1b58e4dd144075224e9a7a887b70d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 2707942a9adf8e0ae22222968c5f7038bb5bfced
      https://github.com/Perl/perl5/commit/2707942a9adf8e0ae22222968c5f7038bb5bfced
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 580105ab440d47e4ba877586b3545047155e96f7
      https://github.com/Perl/perl5/commit/580105ab440d47e4ba877586b3545047155e96f7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: b35d306c8a1b83090a38544e997caffd8d2b39a9
      https://github.com/Perl/perl5/commit/b35d306c8a1b83090a38544e997caffd8d2b39a9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: f39ee36aa4d2120906420273a78b441b9c95730c
      https://github.com/Perl/perl5/commit/f39ee36aa4d2120906420273a78b441b9c95730c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: baf5a8f50e047e0278c8cc7f6eed2e777a21264f
      https://github.com/Perl/perl5/commit/baf5a8f50e047e0278c8cc7f6eed2e777a21264f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 8307cef461ffc937e733825300213f8dff3b1ad8
      https://github.com/Perl/perl5/commit/8307cef461ffc937e733825300213f8dff3b1ad8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5ae6b79e8dc560f9d3a66685aeaa2423519edf54
      https://github.com/Perl/perl5/commit/5ae6b79e8dc560f9d3a66685aeaa2423519edf54
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: 209de9f967c2c832af96912ae94dac286b126eb1
      https://github.com/Perl/perl5/commit/209de9f967c2c832af96912ae94dac286b126eb1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: 786f281982baa867e7c08065890ee6f9c4f058d4
      https://github.com/Perl/perl5/commit/786f281982baa867e7c08065890ee6f9c4f058d4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M intrpvar.h

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


  Commit: b16156e76974e857374f8671076eba45b1b86a3f
      https://github.com/Perl/perl5/commit/b16156e76974e857374f8671076eba45b1b86a3f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M intrpvar.h

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


  Commit: b9c449fe296ca005d183dfa910dee752bbffb2d1
      https://github.com/Perl/perl5/commit/b9c449fe296ca005d183dfa910dee752bbffb2d1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5ba69cb8e468fa34e0352426af640c8849e2c438
      https://github.com/Perl/perl5/commit/5ba69cb8e468fa34e0352426af640c8849e2c438
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M sv.c

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

These variables are already cloned when creating a thread


  Commit: 88dd7ec3ccec798cdf70d35fe57d747517a3a8af
      https://github.com/Perl/perl5/commit/88dd7ec3ccec798cdf70d35fe57d747517a3a8af
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 48d9b88719df6123f72aeb84ecd8017778a92e2f
      https://github.com/Perl/perl5/commit/48d9b88719df6123f72aeb84ecd8017778a92e2f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: df34ab80e999e95c4efa69552cb7072d8b173db4
      https://github.com/Perl/perl5/commit/df34ab80e999e95c4efa69552cb7072d8b173db4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M sv.c

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

Replace leading tabs with spaces


  Commit: d1aa822ab2cb2188eb7623f8a42f1cc9afa1d796
      https://github.com/Perl/perl5/commit/d1aa822ab2cb2188eb7623f8a42f1cc9afa1d796
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: d8f5c473cf1fe49d38c571ddb253fd7c65c878ef
      https://github.com/Perl/perl5/commit/d8f5c473cf1fe49d38c571ddb253fd7c65c878ef
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 61c7d617085cd6194e5941ffddabaca9dbb9a230
      https://github.com/Perl/perl5/commit/61c7d617085cd6194e5941ffddabaca9dbb9a230
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M handy.h

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


  Commit: f687ad3aa9babec4e58e536fd88f0fb508e07e59
      https://github.com/Perl/perl5/commit/f687ad3aa9babec4e58e536fd88f0fb508e07e59
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 5ac7cc5358a6bc5e5fe49d7177039fd54f857df5
      https://github.com/Perl/perl5/commit/5ac7cc5358a6bc5e5fe49d7177039fd54f857df5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 May 2021)

  Changed paths:
    M perl.h

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


  Commit: 4865318484baddd63a09ebdf2c31ca4fcadc9376
      https://github.com/Perl/perl5/commit/4865318484baddd63a09ebdf2c31ca4fcadc9376
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: ee4cd1c806e2b30ad166a137ae332aba9c71737a
      https://github.com/Perl/perl5/commit/ee4cd1c806e2b30ad166a137ae332aba9c71737a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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: 6f8c497306a1509bb62c0d88975af750e56fa466
      https://github.com/Perl/perl5/commit/6f8c497306a1509bb62c0d88975af750e56fa466
  Author: Karl Williamson <khw@cpan.org>
  Date:   2021-05-03 (Mon, 03 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:
  -----------
  55


Compare: https://github.com/Perl/perl5/compare/292f9010500f...6f8c497306a1



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About