develooper Front page | perl.perl5.changes | Postings from June 2023

[Perl/perl5] 90eaf6: XXX skip croak.t under sanitizer

From:
Karl Williamson via perl5-changes
Date:
June 12, 2023 21:48
Subject:
[Perl/perl5] 90eaf6: XXX skip croak.t under sanitizer
Message ID:
Perl/perl5/push/refs/heads/smoke-me/khw-env/baad94-8991bb@github.com
  Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 90eaf6af6fb781c666ec8d72999f0fb4169239c7
      https://github.com/Perl/perl5/commit/90eaf6af6fb781c666ec8d72999f0fb4169239c7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/harness

  Log Message:
  -----------
  XXX skip croak.t under sanitizer


  Commit: 08453a8843a57b30b423096b5079f294c7c018f5
      https://github.com/Perl/perl5/commit/08453a8843a57b30b423096b5079f294c7c018f5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/op/sub.t

  Log Message:
  -----------
  op/sub.t: Cancel watchdog when done

A watchdog timer should be cancelled after the test(s) it guards.
Otherwise, when someone adds new tests after it in the file, and doesn't
notice that the tests are under the watchdog, those new tests can fail.
These failures may be intermittent, only happening under heavy load.


  Commit: cf2eee03f4be198781b818842f2fe60c4185fd7f
      https://github.com/Perl/perl5/commit/cf2eee03f4be198781b818842f2fe60c4185fd7f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/test.pl

  Log Message:
  -----------
  test.pl: Add comment that should clear watchdog

As it says, failure to cancel a timer can lead to failing (or worse:
flapping) tests


  Commit: 7bcf18bb0ebb306a92dc6c0d790474d6af976b1b
      https://github.com/Perl/perl5/commit/7bcf18bb0ebb306a92dc6c0d790474d6af976b1b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/TEST

  Log Message:
  -----------
  XXX skip cpan testing


  Commit: 08efa5c4ff3381cab8fc38e0fecc1b0b37aa3b32
      https://github.com/Perl/perl5/commit/08efa5c4ff3381cab8fc38e0fecc1b0b37aa3b32
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M MANIFEST
    M charclass_invlists.h
    M lib/unicore/mktables
    M lib/unicore/uni_keywords.pl
    M regcharclass.h
    A t/re/uniprops11.t
    A t/re/uniprops12.t
    A t/re/uniprops13.t
    A t/re/uniprops14.t
    A t/re/uniprops15.t
    A t/re/uniprops16.t
    A t/re/uniprops17.t
    A t/re/uniprops18.t
    A t/re/uniprops19.t
    A t/re/uniprops20.t
    A t/re/uniprops21.t
    A t/re/uniprops22.t
    A t/re/uniprops23.t
    A t/re/uniprops24.t
    M uni_keywords.h

  Log Message:
  -----------
  uniprops 24


  Commit: f90d9125252c2ee8949eb43d7c921fbe13fe8483
      https://github.com/Perl/perl5/commit/f90d9125252c2ee8949eb43d7c921fbe13fe8483
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M MANIFEST
    A t/uni/idstart.pl
    A t/uni/idstart00.t
    A t/uni/idstart01.t
    A t/uni/idstart02.t
    A t/uni/idstart03.t
    A t/uni/idstart04.t
    A t/uni/idstart05.t
    A t/uni/idstart06.t
    A t/uni/idstart07.t
    A t/uni/idstart08.t
    A t/uni/idstart09.t
    A t/uni/idstart10.t
    A t/uni/idstart11.t
    A t/uni/idstart12.t
    A t/uni/idstart13.t
    A t/uni/idstart14.t
    A t/uni/idstart15.t
    A t/uni/idstart16.t
    A t/uni/idstart17.t
    A t/uni/idstart18.t
    A t/uni/idstart19.t
    A t/uni/idstart20.t
    A t/uni/idstart21.t
    A t/uni/idstart22.t
    A t/uni/idstart23.t
    M t/uni/variables.t

  Log Message:
  -----------
  Split t/uni/variables.t into multiple tests

These can be done in parallel; otherwise this is often the test that
finishes last, holding up the test suite completion.


  Commit: a1d1eb3a8a318464af11025501654e96f2842219
      https://github.com/Perl/perl5/commit/a1d1eb3a8a318464af11025501654e96f2842219
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/test.pl

  Log Message:
  -----------
  XXX test.pl: dont unlink temps


  Commit: 49b5a381c7da138122c700c8e0ee98a4f6fc8300
      https://github.com/Perl/perl5/commit/49b5a381c7da138122c700c8e0ee98a4f6fc8300
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/test.pl

  Log Message:
  -----------
  Revert "XXX test.pl: dont unlink temps"

This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.


  Commit: cbe99cd80714620e45220d6eed6e66284e0d796f
      https://github.com/Perl/perl5/commit/cbe99cd80714620e45220d6eed6e66284e0d796f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  run/locale.t: more debug


  Commit: fedd93c6f878d589869cecaa48a593456dc1cef9
      https://github.com/Perl/perl5/commit/fedd93c6f878d589869cecaa48a593456dc1cef9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  XXX run/locale.t: maybe f move test


  Commit: 568a65dd0b47b29e67314fc6439d3a33ddf60be5
      https://github.com/Perl/perl5/commit/568a65dd0b47b29e67314fc6439d3a33ddf60be5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

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

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

Remove some blank lines that don't contribute to readability

Add/change comment wording


  Commit: f4d611727d777012749afca922d0e742e5463571
      https://github.com/Perl/perl5/commit/f4d611727d777012749afca922d0e742e5463571
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    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: 53b08af0a636360f75f19a847e932f334b6125a4
      https://github.com/Perl/perl5/commit/53b08af0a636360f75f19a847e932f334b6125a4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  vutil.c: Debug


  Commit: d473cab775089a959a947f263bd3b56430ca6eeb
      https://github.com/Perl/perl5/commit/d473cab775089a959a947f263bd3b56430ca6eeb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  vutil.c: Add logic to avoid having to change locales

Prior to this commit, unless the locale was C or POSIX, it changed it
temporarily so as to make sure the decimal point radix character was a
dot.

But on POSIX platforms or C99 compilers, there are easy ways to
determine if the radix is a dot or not, without having to look at the
locale.  This commit changes to take advantage of those mechanisms to
avoid toggling the locale unless it is actually needed to be done.

Only if the compiler is C89 on a non-POSIX box will the previous
existing method be used.


  Commit: e5d818d69eebbdf3425054e6503e3ad0431d48e2
      https://github.com/Perl/perl5/commit/e5d818d69eebbdf3425054e6503e3ad0431d48e2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  vutil.c: C.UTF-8 also has a dot radix character

This is another locale besides C and POSIX that are guaranteed to have
the radix character be a dot.

Very likely, locales beginning with "en_" will too.  But this isn't
guaranteed.


  Commit: c467df77d4e056a97f4f03d9038f98d0edb5b534
      https://github.com/Perl/perl5/commit/c467df77d4e056a97f4f03d9038f98d0edb5b534
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  vutil.c: Don't use Perl locale mechanisms

The code in this function may be called from places that participate in
the extensive Perl locale-handling mechanisms.  But it may also be
called from code that isn't.

That means it has to use the base level libc functions for its locale
handling, and to be careful to not interfere with the Perl data
structures.  When there is a possibility of collisions with other
threads, a mutex must be used to prevent that.  There is still the
possibility of races if another thread is not using a mutex to protect
its locale accesses; but that can't be helped.

Recent perls have added mechanisms to allow for an API that can be used
to do mutex locking without harming the Perl data structures.

This commit changes vutil.c to use them if available, and using no-ops
or the best available alternatives, if not.


  Commit: e8f05bf60b6e77acf0b2c11377b1daedf3117161
      https://github.com/Perl/perl5/commit/e8f05bf60b6e77acf0b2c11377b1daedf3117161
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  f vutil


  Commit: 09fce0fb46582389f4345b8df410ee5c0f80cc56
      https://github.com/Perl/perl5/commit/09fce0fb46582389f4345b8df410ee5c0f80cc56
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  vutil


  Commit: d7e1543ed72a93b9a21a9cc4d1ddd832eabec2cc
      https://github.com/Perl/perl5/commit/d7e1543ed72a93b9a21a9cc4d1ddd832eabec2cc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M vutil.c

  Log Message:
  -----------
  f vutil


  Commit: b612fb5f116554ac1a37349f07dd3afea6315684
      https://github.com/Perl/perl5/commit/b612fb5f116554ac1a37349f07dd3afea6315684
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/version/t/07locale.t

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

The former is always present; the latter might not be.


  Commit: 8fa8162af32a42ab858f334b4020650a12c8e4d3
      https://github.com/Perl/perl5/commit/8fa8162af32a42ab858f334b4020650a12c8e4d3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/version/t/07locale.t

  Log Message:
  -----------
  version 07locale.t should use LC_NUMERIC, not ALL

These outliers don't belong.  This file is working on LC_NUMERIC only.


  Commit: 3d3540c7fc7cd509a0a0f35301dbe2c16884e6ad
      https://github.com/Perl/perl5/commit/3d3540c7fc7cd509a0a0f35301dbe2c16884e6ad
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/Archive-Tar/t/02_methods.t

  Log Message:
  -----------
  XXX skip Archive-Tar because of symlinks


  Commit: 624f0c7b47e7e66ca417309429010e0776cc261e
      https://github.com/Perl/perl5/commit/624f0c7b47e7e66ca417309429010e0776cc261e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/porting/cmp_version.t

  Log Message:
  -----------
  XXX skip cmp_version.t because of sym links


  Commit: e3d7597705b89824a0dd376cb088ae5067e24d14
      https://github.com/Perl/perl5/commit/e3d7597705b89824a0dd376cb088ae5067e24d14
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX temp to test broken lconv on non-Windows


  Commit: 1c433dc9128d73a88b3f0cc2e5b47cba3abdd112
      https://github.com/Perl/perl5/commit/1c433dc9128d73a88b3f0cc2e5b47cba3abdd112
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/Sys-Syslog/t/syslog-inet-udp.t
    M cpan/Sys-Syslog/t/syslog.t

  Log Message:
  -----------
  XXX skip syslog tests because fail without LC_TIME


  Commit: 113b7dc022e0621b63f863efec392b1187053934
      https://github.com/Perl/perl5/commit/113b7dc022e0621b63f863efec392b1187053934
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Configure

  Log Message:
  -----------
  XXX Configure temporary to get no_nl, etc working


  Commit: e2595d47e4129c68755774a447ebfa9327ffb7cb
      https://github.com/Perl/perl5/commit/e2595d47e4129c68755774a447ebfa9327ffb7cb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M win32/config_H.gc
    M win32/config_H.vc

  Log Message:
  -----------
  Regenerate Configure after metaconfig backports applied


  Commit: 98db1346fb09c43a2b68820af982dafc09a26102
      https://github.com/Perl/perl5/commit/98db1346fb09c43a2b68820af982dafc09a26102
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Configure
    M config_h.SH
    M uconfig.h
    M win32/config_H.gc
    M win32/config_H.vc

  Log Message:
  -----------
  Regenerate Configure after rm thread-safe nl_langinfo_l


  Commit: fa4a300e88b9e05db263651476773758e289fc55
      https://github.com/Perl/perl5/commit/fa4a300e88b9e05db263651476773758e289fc55
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Configure
    M Cross/config.sh-arm-linux
    M Cross/config.sh-arm-linux-n770
    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
    M win32/config_H.gc
    M win32/config_H.vc

  Log Message:
  -----------
  XXX No count Regenerate Configure after LC_ALL


  Commit: c0271741d0a917ee82017e9c701958e6f7c65385
      https://github.com/Perl/perl5/commit/c0271741d0a917ee82017e9c701958e6f7c65385
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Use an enum to simplify consecutive value initialization

This commit replaces the clumsy method to initialize some symbols with
consecutive vaues.  This also presents opportunities to declare
variables as the particular enum type, to allow for better checking and
code generation.


  Commit: 156bfa0feb214d0a8484f2bdef71516899e9ce5b
      https://github.com/Perl/perl5/commit/156bfa0feb214d0a8484f2bdef71516899e9ce5b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  locale.c: Always leave a space for LC_ALL entries

Some platforms may not have the LC_ALL conglomerate category.  This
commit leaves a placeholder for it anyways.  Having this always there
can lead to some simplifications.


  Commit: faf4bbe8870b665d1c4e33e58d802fbf00ddbed9
      https://github.com/Perl/perl5/commit/faf4bbe8870b665d1c4e33e58d802fbf00ddbed9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M intrpvar.h
    M perl.h

  Log Message:
  -----------
  perl.h: Create a locale mnemonic #define for sync across files


  Commit: c0efd29769eb0d7dc01d488cd07a66143b047138
      https://github.com/Perl/perl5/commit/c0efd29769eb0d7dc01d488cd07a66143b047138
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl
    M perl.h

  Log Message:
  -----------
  XXX temporary: undef LC_ALL


  Commit: 9f85349a5c02025aab289cf6991d31eee950615e
      https://github.com/Perl/perl5/commit/9f85349a5c02025aab289cf6991d31eee950615e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Fake up win32 compile a bit


  Commit: 56b6f2443f864457bf96d4ef39c7e46684f1b202
      https://github.com/Perl/perl5/commit/56b6f2443f864457bf96d4ef39c7e46684f1b202
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  ruler


  Commit: ec3763e6d134187a15d0b66d21d96bbae1d65a48
      https://github.com/Perl/perl5/commit/ec3763e6d134187a15d0b66d21d96bbae1d65a48
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  newSVbool(): Fix compiler warning

The parameter was declared const in embed.fnc, but not in the function
prototype


  Commit: db81263deeb4b94b3a83d14752cc8ec1767b8b57
      https://github.com/Perl/perl5/commit/db81263deeb4b94b3a83d14752cc8ec1767b8b57
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M embed.fnc
    M proto.h

  Log Message:
  -----------
  regnode_after(): Fix compiler warning

A parameter to this function was declared const in its prototype but not
in embed.fnc.


  Commit: 63f7160cc09d173cbf180c3d8480827940fbb4dc
      https://github.com/Perl/perl5/commit/63f7160cc09d173cbf180c3d8480827940fbb4dc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  uvoffuni_to_utf8_flags_msgs(): Fix compiler warning

A parameter to this function was declared const in embed.fnc, but isn't
const.

This commit also adds a const to another parameter that is constant.


  Commit: 2d1e2b5a7c8f1966d7e936f55c1ca6fa4bf35cd3
      https://github.com/Perl/perl5/commit/2d1e2b5a7c8f1966d7e936f55c1ca6fa4bf35cd3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M embed.fnc
    M proto.h

  Log Message:
  -----------
  S_clear_placeholders(): Fix compiler warning

A parameter to this function was declared const in its prototype but not
in embed.fnc, and had a different name


  Commit: 6ce9d34c2e6c5e957c7f460f8371d5d639384f70
      https://github.com/Perl/perl5/commit/6ce9d34c2e6c5e957c7f460f8371d5d639384f70
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  DEBUG_


  Commit: 983786e2fee39f386f21ff42868c25adcdc381b6
      https://github.com/Perl/perl5/commit/983786e2fee39f386f21ff42868c25adcdc381b6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c
    M perl.c

  Log Message:
  -----------
  XXX appears to be an existing bug need multiplicity for cur_locale obj

SEE what is failing, maybe only non2008 nonsetlocale


  Commit: ecfd005a88f867d834df5298722c4f1e2e6f1c79
      https://github.com/Perl/perl5/commit/ecfd005a88f867d834df5298722c4f1e2e6f1c79
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: debug with thread id


  Commit: a1326dae3b9951622ff29a1c99d667e58bf0a5d6
      https://github.com/Perl/perl5/commit/a1326dae3b9951622ff29a1c99d667e58bf0a5d6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  XXX memlog


  Commit: 50a79468c3bd77c3d42dfba34c90bb4611d20f02
      https://github.com/Perl/perl5/commit/50a79468c3bd77c3d42dfba34c90bb4611d20f02
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX win workaround


  Commit: 37ddf7d5a7c2587be78cce0331f45c4e2795aeaf
      https://github.com/Perl/perl5/commit/37ddf7d5a7c2587be78cce0331f45c4e2795aeaf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  just after XXX win workaround


  Commit: ca5813eec0357b47f176f82f5cea9b8221e3aff5
      https://github.com/Perl/perl5/commit/ca5813eec0357b47f176f82f5cea9b8221e3aff5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale_threads.t
    M t/run/locale.t

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


  Commit: 6f03babd7fe51f6ad5167486cc0bf9661af8dff0
      https://github.com/Perl/perl5/commit/6f03babd7fe51f6ad5167486cc0bf9661af8dff0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Debug locking


  Commit: 837926d96ae4e0fae696645c6d7ad225e029cdbc
      https://github.com/Perl/perl5/commit/837926d96ae4e0fae696645c6d7ad225e029cdbc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h
    M t/run/switchDx.t

  Log Message:
  -----------
  debug thread


  Commit: e1881e5fe53ccb6621d05550f0eafbbccf4cc147
      https://github.com/Perl/perl5/commit/e1881e5fe53ccb6621d05550f0eafbbccf4cc147
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M dist/threads/threads.xs
    M inline.h

  Log Message:
  -----------
  threads.xs DEBUG_U


  Commit: 64d531eea80f1b2b21a12d87ddfb8b5db031576c
      https://github.com/Perl/perl5/commit/64d531eea80f1b2b21a12d87ddfb8b5db031576c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  XXX: UCRT mingw is not likely locale-thread safe

In order for mingw to be locale-thread safe, it needs UCRT which current
packages don't tend to have.  But this commit adds a XXX -DUCRT


  Commit: 22902c5e70b27aa6207b9919e758620ee3e20b9f
      https://github.com/Perl/perl5/commit/22902c5e70b27aa6207b9919e758620ee3e20b9f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  loc_tools


  Commit: caddaecac74f24a8131957b05b845e1eaa8ed3ce
      https://github.com/Perl/perl5/commit/caddaecac74f24a8131957b05b845e1eaa8ed3ce
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: c9becbd5e3435f8a34f89654b97fb1df89785e5a
      https://github.com/Perl/perl5/commit/c9becbd5e3435f8a34f89654b97fb1df89785e5a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: define locale mutex under more cirumstances

Prior to this commit, it wasn't defined if we aren't paying attention to
locales; but that doesn't mean they don't exist, and the operations that
affect them are still callable; so they should have a mutex to prevent
one thread from overwriting another's.


  Commit: bf1c7279cf5e8bf70de0b190f1bfcbcc24a607c1
      https://github.com/Perl/perl5/commit/bf1c7279cf5e8bf70de0b190f1bfcbcc24a607c1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl
    M perl.h

  Log Message:
  -----------
  perl.h: Also recognize -DNO_THREAD_SAFE_LOCALE

It would be a reasonable Configure option to say
-Accflags=-DNO_THREAD_SAFE_LOCALE


  Commit: 4e723b7c78708df114cae9928e3e58c73b747d6f
      https://github.com/Perl/perl5/commit/4e723b7c78708df114cae9928e3e58c73b747d6f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: configthreadlocale() error checking

The code previously just assumed the system call always worked.  But it
may not if the CRTL is wrong; this surfaced on a mingw compile.

It's better to have it fail outright than to continue and silently give
a wrong answer.


  Commit: 2582fec98fa3109ba687a73c7c3294dbef6ba3fb
      https://github.com/Perl/perl5/commit/2582fec98fa3109ba687a73c7c3294dbef6ba3fb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Turn mutex warning into a panic

This was my attempt to keep going and try to recover after a problem was
found:  an unbalanced number of  locks/unlocks.  However, in looking at
a many-million line execution trace, I realized that the recovery likely
doesn't lead to correct results, and we should quit immediately when it
happens.


  Commit: 4249a902e8153731a485bfb7bb91930683c3d457
      https://github.com/Perl/perl5/commit/4249a902e8153731a485bfb7bb91930683c3d457
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: White space, comments only


  Commit: 4003e93db7f56b4a3838111052e62a64c49c9c68
      https://github.com/Perl/perl5/commit/4003e93db7f56b4a3838111052e62a64c49c9c68
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h change lock debugging text


  Commit: 2e76d952f555ebf0b5a3f290593f9d5124e20b2e
      https://github.com/Perl/perl5/commit/2e76d952f555ebf0b5a3f290593f9d5124e20b2e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/harness

  Log Message:
  -----------
  XXX t/harness temp tweaks


  Commit: 954a50c13499d0e6bc1f001ee04002ce0cd3995b
      https://github.com/Perl/perl5/commit/954a50c13499d0e6bc1f001ee04002ce0cd3995b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M pod/perllocale.pod

  Log Message:
  -----------
  perllocale Xxx start of changes


  Commit: 65e20a115501527378fa2824e2baba6f12bb96da
      https://github.com/Perl/perl5/commit/65e20a115501527378fa2824e2baba6f12bb96da
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M hints/freebsd.sh
    M hints/openbsd.sh

  Log Message:
  -----------
  XXX try out bsd 2008


  Commit: a0c927a7d72425624521bd8195062454363bedae
      https://github.com/Perl/perl5/commit/a0c927a7d72425624521bd8195062454363bedae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  makedef.pl: Don't use locale items unless using locale

If we are configured to not look at locales at all, we shouldn't be
looking at threaded locales nor POSIX 2008 ones.

This commit fixes a situation that is not likely at all to show up in
real life, but I stumbled across it in testing weird configurations.


  Commit: c81997d311cba31df818d5dfe5f76e3e6bf86731
      https://github.com/Perl/perl5/commit/c81997d311cba31df818d5dfe5f76e3e6bf86731
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  makedef.pl: Remove redundant set

This ||= is useless, as just above we've already set MULTIPLICITY if
USE_ITHREADS is set.


  Commit: 763c909cda9610d36ea5ea7b6b6f71e6811d748d
      https://github.com/Perl/perl5/commit/763c909cda9610d36ea5ea7b6b6f71e6811d748d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale.t

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


  Commit: 00776c693a1ecc4a40d3f6dfccb1e6b6d9544588
      https://github.com/Perl/perl5/commit/00776c693a1ecc4a40d3f6dfccb1e6b6d9544588
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale.t

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


  Commit: 072e6ac4a95637f67f18928fd8911dadceca4861
      https://github.com/Perl/perl5/commit/072e6ac4a95637f67f18928fd8911dadceca4861
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale.t

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


  Commit: ec28d0529516a8c95e0c1a489211c375b674f5d5
      https://github.com/Perl/perl5/commit/ec28d0529516a8c95e0c1a489211c375b674f5d5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 52f08522fe685454267d338866bae57cf6785875
      https://github.com/Perl/perl5/commit/52f08522fe685454267d338866bae57cf6785875
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M handy.h

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


  Commit: b911c85eaab6197a671ccf17735f0ae84160558c
      https://github.com/Perl/perl5/commit/b911c85eaab6197a671ccf17735f0ae84160558c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M iperlsys.h

  Log Message:
  -----------
  iperlsys.h: TODO need to look at adding mutexes


  Commit: 829092aec4d4647178dea4fb6152b86b77f60442
      https://github.com/Perl/perl5/commit/829092aec4d4647178dea4fb6152b86b77f60442
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M regen/reentr.pl

  Log Message:
  -----------
  reentr.pl: XXX about needing mutex


  Commit: 9a74d12d1940a2ab5b359f125089db5951aa5b82
      https://github.com/Perl/perl5/commit/9a74d12d1940a2ab5b359f125089db5951aa5b82
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M regexec.c

  Log Message:
  -----------
  regexec.c: XXX has cast to U8 for some reason


  Commit: 062df16f9f85c96a358a3827a6b197374ee56504
      https://github.com/Perl/perl5/commit/062df16f9f85c96a358a3827a6b197374ee56504
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  perlapi: Combine sv_eq(), sv_eq_flags() entries


  Commit: 159a199037ba00c6f0e436dcc36611a10ddc774f
      https://github.com/Perl/perl5/commit/159a199037ba00c6f0e436dcc36611a10ddc774f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

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


  Commit: 8c1dd7bad4f3fb43506e8b82bc8dd185457024f0
      https://github.com/Perl/perl5/commit/8c1dd7bad4f3fb43506e8b82bc8dd185457024f0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M dist/IO/IO.xs

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


  Commit: 59923148fa52a7f9c706eebc7fa0578d9bbeaab1
      https://github.com/Perl/perl5/commit/59923148fa52a7f9c706eebc7fa0578d9bbeaab1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M pp.c

  Log Message:
  -----------
  Debug Windows memory usage in pp_study


  Commit: a7f6f66d6caa4003bcb2ee02c28406b64be31ff8
      https://github.com/Perl/perl5/commit/a7f6f66d6caa4003bcb2ee02c28406b64be31ff8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M pod/perlmod.pod

  Log Message:
  -----------
  perlmod


  Commit: 047000b584911ccd48925521a9b17f6108a6be0d
      https://github.com/Perl/perl5/commit/047000b584911ccd48925521a9b17f6108a6be0d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: fe4cccc972ea4015a8c73ca414e6bab0226ccdff
      https://github.com/Perl/perl5/commit/fe4cccc972ea4015a8c73ca414e6bab0226ccdff
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Rename S_calculate_LC_ALL_string()

Its return is a string.  Add the suffix '_string' to emphasize that


  Commit: 15f12b2d92a5d14a58b28b92542cfa6bb4f6032c
      https://github.com/Perl/perl5/commit/15f12b2d92a5d14a58b28b92542cfa6bb4f6032c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/version/t/07locale.t

  Log Message:
  -----------
  07locale.t: Add some Windows locales to try

On various windows machines, none of the locales listed in <DATA> exist.
This commit copies ones from core's loc_tools.pl to give additional
possibilities to try


  Commit: 93ad217002401ca5753dfc0cdae4b9f9c9762992
      https://github.com/Perl/perl5/commit/93ad217002401ca5753dfc0cdae4b9f9c9762992
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use proper macro

querylocale_c()  likely will expand to the correct thing, but it isn't
defined until higher in the stack of locale handling layers.  Instead
use the construct that is lower in the stack.


  Commit: e23e352c9dc771251acc455330cbac6960971f8f
      https://github.com/Perl/perl5/commit/e23e352c9dc771251acc455330cbac6960971f8f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move some static functions within file

This places them more conveniently.

Future commits will continue this reordering until like-level and
like-kind functions are close to each other physically in the file.


  Commit: 2aafa199949c8bcc2e7068c644e34944fbce414d
      https://github.com/Perl/perl5/commit/2aafa199949c8bcc2e7068c644e34944fbce414d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Replace an assumption by a cpp check

This commit adds a preprocessor directive to check if we are running on
a POSIX 2008 system, rather than just assume we are if the earlier
possibilities weren't the case.  And it causes a compile time error if
none pan out.


  Commit: 1ac019fce5b0ebe14e8dfd46d47c233536778238
      https://github.com/Perl/perl5/commit/1ac019fce5b0ebe14e8dfd46d47c233536778238
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't compile without LC_ALL under POSIX 2008

The code assumes that if you have POSIX 2008, you have LC_ALL.  This
adds a compile-time error check to prevent someone from finding that out
the harder way.


  Commit: 2f175779e9e7a090cc53ee922aae2779da2fabf4
      https://github.com/Perl/perl5/commit/2f175779e9e7a090cc53ee922aae2779da2fabf4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move a parallel array adjacent to its mates

This is in preparation for making their parallelism more obvious


  Commit: f6cfd112f12a5ad54d5e2096e7e9bc193173b44b
      https://github.com/Perl/perl5/commit/f6cfd112f12a5ad54d5e2096e7e9bc193173b44b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M embed.fnc
    M proto.h

  Log Message:
  -----------
  locale.c: Add warning if function return ignored


  Commit: 44971d84004892f87a9a92dd8a88aba2d9c03334
      https://github.com/Perl/perl5/commit/44971d84004892f87a9a92dd8a88aba2d9c03334
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Properly identify reason for placeholder in arrays

This is needed to handle the case where a locale category passed in (via
Perl_setlocale) is unknown to perl, hence is considered illegal.

The previous comments were misleading.


  Commit: 5d547548ec60f11fcab211e86a168d03c4743d22
      https://github.com/Perl/perl5/commit/5d547548ec60f11fcab211e86a168d03c4743d22
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Change return of S_get_category_index_nowarn

This is in preparation for it being called from more than a single
place.  Instead of returning -1 on error, it returns an out-of-bounds
value 1 greater than the largest legal value.  There is a placeholder
entry in all the arrays this can be indexed into for that illegal value.
This means if it somehow gets used, we wont get a segfault, like we
would on the -1, but instead a value that will show up as wrong, but not
crash.


  Commit: fb96a68bbbd45b6a56a4714994358d41ee68c7fd
      https://github.com/Perl/perl5/commit/fb96a68bbbd45b6a56a4714994358d41ee68c7fd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/XS-APItest/t/locale.t
    M locale.c

  Log Message:
  -----------
  locale.c: Check for illegal input category

It is possible for Perl_setlocale() to be called with a category value
that is illegal, or is just unknown to us.  There is a function that
maps category numbers into our internal indexing scheme.  It maps any
unknown value to the same index, larger than any legal one.

Prior to this commit, there was no check that the input was valid; we
went off processing it as if it were valid.  That there was an element
in the tables that corresponds to this index prevented any illegal
memory acceses, but it is better to check early and return an error.


  Commit: b955800a31f8b2fef6250ece74ca4cfc9d08461a
      https://github.com/Perl/perl5/commit/b955800a31f8b2fef6250ece74ca4cfc9d08461a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Revamp initialization of parallel arrays

This new method eliminates a lot of #ifdef's in each of the array
initializations, consolidating all the array entries for a category
to be in a single group.  This facilitates ease of checking that things
are correct and the addition of new items.

A Factory pattern to generate all these could be used instead.  But I
don't know how to do that in cpp (I suppose some recursive #includes
would do it uglily), and I don't think it's worth it to do a regen
script.

There is a reason for the  apparently weird indentation, that future
commits will reveal.


  Commit: 569b8596d775e6d7898c39ec101de60466784fcd
      https://github.com/Perl/perl5/commit/569b8596d775e6d7898c39ec101de60466784fcd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  Rename SETLOCALE_LOCK to LOCALE_LOCK

This mutex isn't just about the setlocale function; it applies to all
locale related critical sections.


  Commit: f74c00bb7cd7c0b0b2e3f7ddb61c2bfb2023c06d
      https://github.com/Perl/perl5/commit/f74c00bb7cd7c0b0b2e3f7ddb61c2bfb2023c06d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Avoid runtime strlen() calls

The lengths of these strings are known at compile time.  This commit
creates an array of those lengths to avoid calling strlen() in a loop
unnecessarily.


  Commit: 375a54309a36723b52b5c561644604d21a12380f
      https://github.com/Perl/perl5/commit/375a54309a36723b52b5c561644604d21a12380f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Replace loop with a switch()

locale.c uses tables to specify data and actions about the different
locale categories on the system.  The categories are opaque integers
specified by libc, so they have to be mapped to indices into the tables
for our use.  Prior to this commit, that was done by a loop iterating
over each possibility until it found a match.  This commit changes that
to use a switch() statement, so that the compiler can choose what the
best way to implement things are.


  Commit: 3b8ba98d8611b0e60cd215c5275edd81ee2893f5
      https://github.com/Perl/perl5/commit/3b8ba98d8611b0e60cd215c5275edd81ee2893f5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

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

There is actually only one place where the locale category can be input
from code outside this file.  Now that the previous commit added
validation to that one spot, The rest of the calls should already be
validated, and if the input is bad, it means that there is a serious
error in the logic of this code, and warrants panicking.

This commit collapses two functions into one plus a macro to call it
with the right parameters.  It moves the warning into the one place
where it is useful, and panics if there is a problem otherwise.


  Commit: 41f7624552b4ea0202df35b280d8a55ade115ab0
      https://github.com/Perl/perl5/commit/41f7624552b4ea0202df35b280d8a55ade115ab0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  XXXleaks: Remove PL_cur_LC_ALL for non-Windows

This value is now held in a slot in PL_curlocales[] for non-Windows
platforms.


  Commit: be899aeb5f2a8170fef58d6f3912dcf861085610
      https://github.com/Perl/perl5/commit/be899aeb5f2a8170fef58d6f3912dcf861085610
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Rename S_myquerylocale_i()

This name doesn't effectively describe it.  The new name is
querylocale_2008_i, indicating it is for the POSIX 2008 API.


  Commit: e9d30ba886c76c492b4c8ddf954a0e5d8fbf5488
      https://github.com/Perl/perl5/commit/e9d30ba886c76c492b4c8ddf954a0e5d8fbf5488
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Separate setlocale into bool and query

There are two ways that POSIX specifies to change the locale.

The earlier interface is setlocale(), which either returns NULL on
failure, or a pointer to global static memory containing the character
string of the changed locale.  That may very well be the input locale
name, or the platform can return something that to it is equivalent.

The second, from the 2008 standard, is newlocale() which returns either
NULL on failure or a pointer to an opaque object, and there is no
official way to find out what the current locale is.  (The next proposed
version of the Standard will finally add this capability.)  Some
platforms have introduced a querylocale() to get this information.
(glibc has a hidden function to do so.)

Note that the return value of setlocale() is problematic, valid only
until the next call to that function, which might be immediately from
another thread.  The value, if needed, has to be saved to a per-thread
buffer in a critical section with the function call.  That buffer
presents opportunities for leaking or being destroyed too early,
resulting in heap use after being freed.

And it turns out that the value is often not needed; often what is
needed is only if the operation failed or succeeded.

This commit starts the process of limiting the use of the changed value
to just where its really needed.  It does this by changing the
newlocale() form to return success/failure, removing all the macros that
think you can set and get the value in the same operation, and minor
fixups.


  Commit: 98fbb5d310a1548c1107a7e98da35ae5ab4a3b2a
      https://github.com/Perl/perl5/commit/98fbb5d310a1548c1107a7e98da35ae5ab4a3b2a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

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

This function is simple, but almost entirely redundant with
less_dicey_bool_setlocale_r().  A simple wrapper to the latter suffices.

The commit also changes the macros for this to use void_setlocale_r() as
the base which the other two are defined in terms of.  This avoids a
runtime calculation of the internal index corresponding to the input
locale category except when we are about to panic.


  Commit: a8db8b8a41e2b7e65f457651dbbe2316210ba726
      https://github.com/Perl/perl5/commit/a8db8b8a41e2b7e65f457651dbbe2316210ba726
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Avoid a runtime calculation

As in the previous commit, this rewrites the void_setlocale_X macros so
as to not need a runtime calculation except in the very rare event of
executing a panic.


  Commit: 01f2f2d67fdd85064b0d3dd03e1cf114430b8ca9
      https://github.com/Perl/perl5/commit/01f2f2d67fdd85064b0d3dd03e1cf114430b8ca9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add missing panic

In just the POSIX 2008 implementation of setting locales, the panic upon
failure had been omitted.  The whole point of a void call is so that the
caller doesn't have to check the return code of something that should
never fail, and can just assume that if it gets to the next statement
everything worked as expected.


  Commit: 345f0e8b5ff4f371294f5a3d7f1514bc004e74a8
      https://github.com/Perl/perl5/commit/345f0e8b5ff4f371294f5a3d7f1514bc004e74a8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Reorder code, add comments

There are three separate implementations of an internal API for locale
handling.  This commit makes them stand out in the code, and makes the
ordering within each implementation parallel to the other
implementations.

And adds explanatory comments.


  Commit: 4397b1ba39ca1b3a4a0e6472336c0221a09a7eea
      https://github.com/Perl/perl5/commit/4397b1ba39ca1b3a4a0e6472336c0221a09a7eea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Remove one-off macro

This was used to prevent an unnecessary copy.  But the next commit will
change the macro it was avoiding to not always do the copy.  That will
avoid more copies than this would. The copy that results will still be
unnecessary in some cases, but there is a net gain.


  Commit: 8b618791074d570c604f10118fec318d33d8421e
      https://github.com/Perl/perl5/commit/8b618791074d570c604f10118fec318d33d8421e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add a convenience macro query_nominal_locale_i

This is used when the locale needs to be what an external caller would
see.  Adding this simplifies some code.


  Commit: 7889acaaeb75d1b10ccc5eca7aca30097fecdbfb
      https://github.com/Perl/perl5/commit/7889acaaeb75d1b10ccc5eca7aca30097fecdbfb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move copy from macro to called function

Not all returns from the function need to be copied.  Thus this
eliminates some extraneous copies.


  Commit: 928decc93bbd6218ca74320ec975025421bb92dc
      https://github.com/Perl/perl5/commit/928decc93bbd6218ca74320ec975025421bb92dc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_toggle_locale_i: Move some assert()s, initialization


  Commit: 883947a8d5904e43041e2d18ffc151e931ec2bb4
      https://github.com/Perl/perl5/commit/883947a8d5904e43041e2d18ffc151e931ec2bb4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Add extra debug info to panics

This commit adds some call stack information to the message that gets
output when about to panic because of an unanticipated failure in
the locale handling code.


  Commit: a75a0c94ccd4523c3d6c50baab66e6fe8bf01cf9
      https://github.com/Perl/perl5/commit/a75a0c94ccd4523c3d6c50baab66e6fe8bf01cf9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add void_setlocale_with_caller macros

These pass a file and line number of further up the calling stack to a
panic so as to improve debugging information.


  Commit: e1c4cb07de718f8c41f7dac7689e59c4e66ed6f3
      https://github.com/Perl/perl5/commit/e1c4cb07de718f8c41f7dac7689e59c4e66ed6f3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Initialize PL_curlocales at startup

Previously this was done later, which meant other code had to take them
being uninitialized into consideration over and over at runtime.  That
code is hereby removed.

This commit enables further simplifications to follow in later commits.


  Commit: 90223848a044d66ebcc67b813e7e504ef0997533
      https://github.com/Perl/perl5/commit/90223848a044d66ebcc67b813e7e504ef0997533
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use void_ macro form when ignoring return

The void_ form panics if unsuccessful; and here we are relying on it
being successful.


  Commit: 5f816b581e921110120a025b8873b7d378fc57ba
      https://github.com/Perl/perl5/commit/5f816b581e921110120a025b8873b7d378fc57ba
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't exclude LC_ALL in  loop

This function was setting each individual locale category to the same
value.  But if all the subcomponents are the same, so is LC_ALL.  No
need to special case it


  Commit: 1a2ba27c0dc3b6da72b8e5c2e4efdeffff017b9f
      https://github.com/Perl/perl5/commit/1a2ba27c0dc3b6da72b8e5c2e4efdeffff017b9f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Change function to return void

It just returns the input value unchanged; this is a no-op.


  Commit: d3365b989db1863e723a2829addb3341b437d558
      https://github.com/Perl/perl5/commit/d3365b989db1863e723a2829addb3341b437d558
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Remove no-longer needed parameter and computation

When a locale category changes, LC_ALL necessarily also does.  When we
are looping changing a bunch of categories, LC_ALL's intermediate values
are of no importance; only the final value matters.  Prior to this
commit, this was handled by setting a flag to not do the recalculation
until the final loop iteration.

But a more elegant solution is to not recalculate it all, until the
value is actually needed.  So the code is changed to invalidate the
stored value if an individual locale category changes, and then do the
calculation only when needed and invalidated.


  Commit: 34663f32cd58d4542974b827c84b4ff8184e4ede
      https://github.com/Perl/perl5/commit/34663f32cd58d4542974b827c84b4ff8184e4ede
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Change parameter name for static function

category_locales_list is somewhat more descriptive than individ_locales


  Commit: 18d9b6b11dd7fc4d35f0c29a7d8fdb6c3e26c83e
      https://github.com/Perl/perl5/commit/18d9b6b11dd7fc4d35f0c29a7d8fdb6c3e26c83e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Change API of S_calculate_LC_ALL_string

This function looks at all the individual locale categories on the
system.  So far it is called with either an array of the current values
for them, or an object from which those values can be derived.

But the object is always the current locale object in effect.  The
querylocale_i() macro can be used to get this information without
needing to have to name the object.  Therefore the object parameter is
superfluous, and the function could be notified to use querylocale_i by
making the array parameter NULL.

But right now you get one or the other.  There are two signatures to
this function, depending on the platform capabilities.

This commit collapses those into one signature, the one with an array
parameter.  And then NULL is used to trigger calling querylocale_i().

The reason to do this is that future commits will want to pass an array
to this function, even when it is compiled on a platform that currently
doesn't allow that option.


  Commit: 06a63ac4f44639c8abe304243bf1dfdf7e4592f9
      https://github.com/Perl/perl5/commit/06a63ac4f44639c8abe304243bf1dfdf7e4592f9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

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

The previous enhancements to calculate_LC_ALL_string means this function
can just call it without having to loop itself.


  Commit: a575832693537c0bf45204a6782a5c51ba3d0706
      https://github.com/Perl/perl5/commit/a575832693537c0bf45204a6782a5c51ba3d0706
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Slight refactoring of S_querylocale_2008_i

This just moves some asserts, adds comments and a branch prediction, and
replaces a variable used in only one place by it value.


  Commit: d85043a47b4d69f78f8a51094f451093c0e68f8b
      https://github.com/Perl/perl5/commit/d85043a47b4d69f78f8a51094f451093c0e68f8b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Reorder #if clauses

Currently, the two clauses are about the same length, but in the next
commit the current first clause will become a lot longer.

The principal that it's easier to read code that disposes of the easy
cases first comes into play, so, reverse the clause order.


  Commit: 94c14f805df3470dab9dc0dd344e26a7f97f9141
      https://github.com/Perl/perl5/commit/94c14f805df3470dab9dc0dd344e26a7f97f9141
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Inline only remaining use of querylocale_l()

Future commits would make this macro need to be a function anyway, and
since there is only one use of it, just inline it.  The assertion it
defines is no longer needed, as we know that the one place it is now
placed is valid.

This also adds explanatory comments


  Commit: f4b59b38b304fba0eeb2e10ac5a8f59770fd6092
      https://github.com/Perl/perl5/commit/f4b59b38b304fba0eeb2e10ac5a8f59770fd6092
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Flatten two nested if's

These can be combined into a single more cohesive construct


  Commit: 9b30a227628e031b2d4561a9ff1a9ff0d0e45c32
      https://github.com/Perl/perl5/commit/9b30a227628e031b2d4561a9ff1a9ff0d0e45c32
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Workaround some libc POSIX 2008 bugs

Some systems try to make C.UTF-8 the same locale as plain C or POSIX.
The latter two names are synonymous according to the POSIX Standard, but
C.UTF-8 isn't.  It might be possible to implement them all with one
locale internally, but in some cases, at least, that isn't transparent
to us, leading to wrong results.

This commit adds a workaround for this problem.

See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269375


  Commit: 5446e0628e3d513087bb8d89a7b4afbc8008376f
      https://github.com/Perl/perl5/commit/5446e0628e3d513087bb8d89a7b4afbc8008376f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX pod?: locale.c: Add optional locking around querylocale()

The querylocale() libc call on some systems is non-standard, and
experience has shown it isn't necessarily thread-safe, especially on
Darwin.  It does appear to be safe on modern *BSD boxes. This commit
adds a locking mechanism that can be set up in a hints file.


  Commit: 710445bbdad37780a1d2e069b026a329ca899cbf
      https://github.com/Perl/perl5/commit/710445bbdad37780a1d2e069b026a329ca899cbf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move a #define, and add a comment


  Commit: daaaa31d06d5d5c30d60cdef6334a8f43ad59eba
      https://github.com/Perl/perl5/commit/daaaa31d06d5d5c30d60cdef6334a8f43ad59eba
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Split up S_setlocale_from_aggregate_LC_ALL

This splits out the parsing of the LC_ALL string from the locale
setting.  Future commits will use the parse portion in more places.

The new code doesn't panic on syntax errors, unlike the old.  This is
because we should never panic on user input, but return failure instead.


  Commit: 6e8999d4ac8e107c196ee72548457eaa475b77de
      https://github.com/Perl/perl5/commit/6e8999d4ac8e107c196ee72548457eaa475b77de
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

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

This macro uses the results of the new Configure probe that tells us how
the platform represents disparate LC_ALL strings.


  Commit: 8424923c781d3699294a1df6e6042f252abe216a
      https://github.com/Perl/perl5/commit/8424923c781d3699294a1df6e6042f252abe216a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move two helper functions for POSIX 2008 implementation


  Commit: dc30cc8ec400d0c5ff023cf0c59b12c5b04cb513
      https://github.com/Perl/perl5/commit/dc30cc8ec400d0c5ff023cf0c59b12c5b04cb513
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Add development aid for simulating LC_ALL fake positional notation

There are two ways that systems represent LC_ALL when not all individual
categories are in the same locale.  One is
    category_name=value
pairs, and the other is a positional notation
    cat1_value|cat2_value|cat3_value|...
where the separator (here '|') varies between platforms, and the
position of a value determines which category it applies to.

This commit adds the ability to simulate a positional box on a
name=value box, so that many bugs can be found without having to access
a real positional box.


  Commit: d19d724c1bb164c6b25d28871b2a053ef2380120
      https://github.com/Perl/perl5/commit/d19d724c1bb164c6b25d28871b2a053ef2380120
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add support for LC_ALL positional notation

Some platforms use a positional notatiol for LC_ALL when not all
categories are the same, like

    C/English/C.UTF-8/ ...

This commit takes advantage of the new Configure probe to now handle
those when parsing an LC_ALL string.


  Commit: 5eaa2d2e91a16f1d72c7be56775c7a4fa066fb77
      https://github.com/Perl/perl5/commit/5eaa2d2e91a16f1d72c7be56775c7a4fa066fb77
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: use variable to avoid extra comparisons

The mnemonic name also makes it clearer.  Instead of comparing two
variables multiple times, set a boolean once with the result, and use
that.


  Commit: b25d30328111420f3e8a984001a6d8321674b526
      https://github.com/Perl/perl5/commit/b25d30328111420f3e8a984001a6d8321674b526
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Windows Use .ACP for sys default fallback

Prior to this commit the locale handling code thought that Windows used
"" for the system default locale.  But it's not, and to get to the
change in the initialization code, the "" had already been tried and
failed.


  Commit: 9db357dd6c9b4533808739c019cdb610797fb468
      https://github.com/Perl/perl5/commit/9db357dd6c9b4533808739c019cdb610797fb468
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  locale.c, perl.h: comments, white space


  Commit: fca2ff76ccc1619ad26be88f9d3c09a1106723d7
      https://github.com/Perl/perl5/commit/fca2ff76ccc1619ad26be88f9d3c09a1106723d7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX maybe not for windows: S_calculate_LC_ALL_string(): save value after calculation

On some platforms the string returned by this function also needs to be
kept up-to-date in an array element.  This commit changes the function
to do the update (after the potentially expensive calculation) as a
side-effect, so as to avoid unnecessary recalculations.


  Commit: d1fe78d6b48c3f0b6a31128e258d9cfb48857833
      https://github.com/Perl/perl5/commit/d1fe78d6b48c3f0b6a31128e258d9cfb48857833
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Precalculate LC_ALL string boiler plate length

When not all categories have the same locale, the internal
representation of LC_ALL is a sequence of 'cat=value' pairs, separated
by semi-colons.  The only things that vary are the values.  This commit
sums up the non-varying portions at compile time.


  Commit: f4bb57de73ca8700f803f0572d7a603131b930d9
      https://github.com/Perl/perl5/commit/f4bb57de73ca8700f803f0572d7a603131b930d9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  S_querylocale_2008_i: Add caller's line# param

This will be helpful in debugging


  Commit: 56f8f4d046c0a740438786d26b2a7024c5408b6c
      https://github.com/Perl/perl5/commit/56f8f4d046c0a740438786d26b2a7024c5408b6c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Calculate native LC_ALL strings

There are two methods of representing non-uniform LC_ALL strings.  One
is name=value pairs, and the other is positional.  Now that there is a
Configure probe that detects the details, calculate_LC_ALL_string() is
here enhanced to have a parameter passed to it as to which variety the
output should be in, and to generate the proper format.


  Commit: dc21d7bbf1cfa0e01003712cc058a9a00b9dc35f
      https://github.com/Perl/perl5/commit/dc21d7bbf1cfa0e01003712cc058a9a00b9dc35f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Revamp S_stdize_locale()

We are now able to parse and construct non-uniform LC_ALL strings.  A
big part of this function was trying to deal with these, but now that
can be farmed out.

It's now extremely unlikely this function will now actually change
anything, based on recent field experience.  To save copying that
therefore won't likely ever be needed, this function now returns its
input if unchanged, and a mortalized copy if it unlikely does need to be
changed.  That means it no longer needs a buffer reserved for it.

The input is going to be the static global buffer pointed to by the
return of setlocale().  That means calls to this function need to be
protected by mutexes in threaded systems, and the result safely copied
during the critical section.  This requirement is unchanged by this
commit.


  Commit: e9ca09e206381bf69ac16a3a074e7ff65c68f0cc
      https://github.com/Perl/perl5/commit/e9ca09e206381bf69ac16a3a074e7ff65c68f0cc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Rename the buffer in S_less_dicey_locale

It was reusing the buffer formerly used by S_stdize_locale(), but now
its only use is from this function, so name it accordingly.


  Commit: 0f838edfc23d7fd38e5125156bd7d14fbc1431fb
      https://github.com/Perl/perl5/commit/0f838edfc23d7fd38e5125156bd7d14fbc1431fb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_stdize_locale() Rmv testing for spurious '='

This code had been added to counteract occasional cases of improper
syntax in a locale string.  Other fixes to the locale handling have
resulted in those cases not now showing up.  It was never clear if the
changes that code made to the locale name were actually the right thing
to do.

Now, we have the ability to correctly parse locale strings on all
platforms tested on.  If there is a problem with a platform, the parsing
discovers it and returns an error, which stdize_locale() checks for and
also returns an error if found, and so on back up the line to the user
calling code.


  Commit: 43de34de429607e7ed67f020ff3b823b05476890
      https://github.com/Perl/perl5/commit/43de34de429607e7ed67f020ff3b823b05476890
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M embed.fnc
    M embed.h
    M hints/aix.sh
    M locale.c
    M proto.h

  Log Message:
  -----------
  XXX perldelta other pod: Compile stdize_setlocale() only if requested

XXX perldelta, and where else?

This very old function has been whittled down to just looking for
newlines in returned locales.  Those just haven't come up in platforms
we have tested on in recent years.  Therefore, this is extra work on
most, or perhaps all platforms.  Should a platform show that this is
still needed, its hints file can be changed to add a Configure option.


  Commit: 5f13a4e3a29ab60fba11bafec0c7677e87a00dc5
      https://github.com/Perl/perl5/commit/5f13a4e3a29ab60fba11bafec0c7677e87a00dc5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Properly handle broken setlocale(LC_ALL, NULL)

Early AIX versions could return a truncated value in this case.
https://www.ibm.com/support/pages/apar/IV22097

Tests were skipped as a result by
59b4d2932ceb16662879bca2a22315c3597276ae.

This commit adds an easy workaround for this bug, changes the AIX hints
page to enable it; the next commit will revert the test skipping.


  Commit: 11815e81c3027f112d92eb52a79fbceeae73811a
      https://github.com/Perl/perl5/commit/11815e81c3027f112d92eb52a79fbceeae73811a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale.t
    M t/lib/warnings/regexec
    M t/run/locale.t

  Log Message:
  -----------
  Revert "AIX: skip some locale tests"

This reverts commit 59b4d2932ceb16662879bca2a22315c3597276ae.
which was a temporary fix for 5.38.0.

And now a workaround is in place for the defective libc implementation.


  Commit: d92bee3f7288a60162940c86b68e3355fe9d66ff
      https://github.com/Perl/perl5/commit/d92bee3f7288a60162940c86b68e3355fe9d66ff
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Create STDIZED_SETLOCALE_LOCK

Its best to use a mutex associated with the operation.  This creates one
for stdized_setlocale(), which is just an alias for another mutex.


  Commit: b9af5aa4bea11fd4c675f644e12da64ad39b4fc5
      https://github.com/Perl/perl5/commit/b9af5aa4bea11fd4c675f644e12da64ad39b4fc5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move a macro definition earlier in the file


  Commit: 52905e2de990aa876d03ac1302911a4d22e8a856
      https://github.com/Perl/perl5/commit/52905e2de990aa876d03ac1302911a4d22e8a856
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: define HAS_EXTENDED_OS_ERRNO

on the systms that have it.


  Commit: a69ea190c1d6f4f11e641388815c6779740e63c6
      https://github.com/Perl/perl5/commit/a69ea190c1d6f4f11e641388815c6779740e63c6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Change DEBUG statements to include non-0 errno

This is very helpful when things go wrong.


  Commit: a7db88024daacbd86d3c170fbdd97eb2e47d0266
      https://github.com/Perl/perl5/commit/a7db88024daacbd86d3c170fbdd97eb2e47d0266
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Only define string constant on platforms that need it


  Commit: cb9a4bfd39f9125fad62bcc7cccbc2778831ff0d
      https://github.com/Perl/perl5/commit/cb9a4bfd39f9125fad62bcc7cccbc2778831ff0d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Perl_sync_locale(): Best to change to global locale

This didn't actually cause a bug AFAIK, but prior to this commit, the
comment was wrong.  The comment makes sense, so bring the code into
compliance.

The reason it was not a bug is that even though the thread remained in
the per-thread locale, it uses the global locale API to set things.


  Commit: 707f77e9cc318e152761c429eeb5d90e0e8b1605
      https://github.com/Perl/perl5/commit/707f77e9cc318e152761c429eeb5d90e0e8b1605
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

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

Now that we have code that works on platforms with differing ways of
representing LC_ALL, we can use it instead of looping through all the
subcomponents.


  Commit: bf782047d2368e060e4e9cce388c9e6c37768356
      https://github.com/Perl/perl5/commit/bf782047d2368e060e4e9cce388c9e6c37768356
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Extract code into a function

This is in preparation for a future commit where it will be called from
more than one place.


  Commit: 0c349eb804c551a3b463bbf249377d91e28b2046
      https://github.com/Perl/perl5/commit/0c349eb804c551a3b463bbf249377d91e28b2046
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Extract code into separate function

This is in preparation for it being called from a second location in a
future commit.

Beyond the move, the only changes are to white space, and a
PERL_UNUSED_ARG.


  Commit: ddcd808820cb68fcef6da51c478103286881d123
      https://github.com/Perl/perl5/commit/ddcd808820cb68fcef6da51c478103286881d123
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Complement initialization of boolean

This was my attempt to make the difference listing in the next commit
smaller, but it didn't help much.


  Commit: 8193acee50bb8b91b8083aa45438380fb184738a
      https://github.com/Perl/perl5/commit/8193acee50bb8b91b8083aa45438380fb184738a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rework locale initialization loop

The previous code was always hard to understand, with a self-modifying
loop.  I finally figured out a clearer way to do it, by using an enum
with all the possibilities, and a switch statement that sets up the loop
for each, or decides this possibility isn't valid on this platform.  The
first possibility that works exits the loop.


  Commit: 73366785d575ab1996aa92a322fe017545b7db1d
      https://github.com/Perl/perl5/commit/73366785d575ab1996aa92a322fe017545b7db1d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv redundant sanity check

This was done only on Windows, to verify that the perl was operating on
a system that has a working _configthreadlocale(), when our Configure
expects it to.  But the previous commit now executes this function
anyway at the endif of initialization, so that is soon enough to fail if
something is wrong, making this redundant.


  Commit: bdfcf27051bfc352e37bab6d4879ff9a5213bfaf
      https://github.com/Perl/perl5/commit/bdfcf27051bfc352e37bab6d4879ff9a5213bfaf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M utf8.h

  Log Message:
  -----------
  silence utf8.h warning


  Commit: aaf466418e436d4f30fe9f965931cbdb53a4b02e
      https://github.com/Perl/perl5/commit/aaf466418e436d4f30fe9f965931cbdb53a4b02e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Extract code into a macro

This is in preparation for a simplification in future commits.


  Commit: 66131277ba938e941cd7ef90fdfd781b153241f0
      https://github.com/Perl/perl5/commit/66131277ba938e941cd7ef90fdfd781b153241f0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Extend macro from previous commit

Actually this creates a macro of the same name that accomplishes the
same thing, but specifically for Windows.


  Commit: ea90cd702708209e85edf0928b1069fddcbb3246
      https://github.com/Perl/perl5/commit/ea90cd702708209e85edf0928b1069fddcbb3246
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't over allocate array

This previously added an extraneous unused element.


  Commit: 3e8d44ccf6095ee9003321501805f64139673d96
      https://github.com/Perl/perl5/commit/3e8d44ccf6095ee9003321501805f64139673d96
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Bring declaration inside #if's

This would now cause a compilation error if the code gets screwed up.


  Commit: 2a61e9e200305dbf5eb0635c928f1750ccc4555f
      https://github.com/Perl/perl5/commit/2a61e9e200305dbf5eb0635c928f1750ccc4555f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Slight refactor of switch_to_global_locale()

Now that we can better handle any legal LC_ALL string, we can just use
LC_ALL when available.


  Commit: 6391ccca3ae1369ca841f4abd197439731b66eab
      https://github.com/Perl/perl5/commit/6391ccca3ae1369ca841f4abd197439731b66eab
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Perl__byte_dump_string(): Properly handle NULL input

Instead of an assert, this returns (nil) and things can proceed.


  Commit: 98d7ff50986f2849b04ea063819611175e597e8b
      https://github.com/Perl/perl5/commit/98d7ff50986f2849b04ea063819611175e597e8b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Combine two condiionals to rm special case

The case removed is handled transparently below.


  Commit: cfa5d350759baa8a4110de855dbab8e29e0dda86
      https://github.com/Perl/perl5/commit/cfa5d350759baa8a4110de855dbab8e29e0dda86
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_find_locale_from_environment(): Change var name

This variable is really the LANG environment variable; change its name
to correspond.


  Commit: a83f85d42ad48c4ffb688cf1cfe7a76191d97e46
      https://github.com/Perl/perl5/commit/a83f85d42ad48c4ffb688cf1cfe7a76191d97e46
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_find_locale_from_environment(): Add comments


  Commit: 9940691816af11b605dcde41b226714aa638ff80
      https://github.com/Perl/perl5/commit/9940691816af11b605dcde41b226714aa638ff80
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_find_locale_from_environment(): Combine logic

Prior to this commit, the logic was repeated for non-LC_ALL versus
LC_ALL; the latter being executed in a loop.  The logic is not really
trivial and it would be better to have just one instance, so that it
can't get out-of-sync.  To do this, this commit moves everything to the
loop, but sets it up for the non-LC_ALL case to just do a single
iteration.

It also avoids going out to the environment and fetching LANG unless
needed.  The previous behavior got LANG unconditionally if the loop was
used.  It is quite likely that not every locale category would have a
corresponding environment variable set, so that fetch likely wasn't
wasted.  But in order to combine things, the checking for LANG is done
in the loop.

The bottom line is that there is extra code required to combine the two
pieces of logic, but I believe the combining of this into a single
paradigm is worth it.


  Commit: f341aa56a0fdaca55a7d3ca6ae36a3df6769e80b
      https://github.com/Perl/perl5/commit/f341aa56a0fdaca55a7d3ca6ae36a3df6769e80b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX tests; linux doesn't allow this:S_find_locale_from_environment: Handle disparate LC_ALL

Prior to this commit, it was possible on some platforms to improperly
set a locale category from a locale of "".

Consider:

export LC_ALL="LC_CTYPE=de_DE;LC_NUMERIC=C;LC_TIME=de_DE;..."

and in Perl run with that environment:

    print POSIX::setlocale(LC_NUMERIC, "");


  Commit: b53cbb946f0e7ed228609910415088c7cabf898d
      https://github.com/Perl/perl5/commit/b53cbb946f0e7ed228609910415088c7cabf898d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Change parameter name for S_bool_setlocale_2008_i

THe new name is more descriptive


  Commit: 4d2340a410e9ebb2fc85147816a3b2e4c40442c9
      https://github.com/Perl/perl5/commit/4d2340a410e9ebb2fc85147816a3b2e4c40442c9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_bool_setlocale_2008_i: Improve debug statements


  Commit: ddc7a8399a1073e0b5dc3478217d9bc6d109dd76
      https://github.com/Perl/perl5/commit/ddc7a8399a1073e0b5dc3478217d9bc6d109dd76
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_bool_setlocale_2008_i: Check for failure return

Previously, this would forge ahead; looking at the code it seems it
would fail later on anyway, but it is best to check and fail
immediately.


  Commit: 9448a09e42c36b722e84f92b6896d5344c63e984
      https://github.com/Perl/perl5/commit/9448a09e42c36b722e84f92b6896d5344c63e984
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_bool_setlocale_2008_i: Separate out failure code

This causes the failure to be handled by going to effectively a
tail-call spot.  This is in preparation for it being used in another
place.


  Commit: 242033265959bdfe57e72acd984a24d59ce4a1ea
      https://github.com/Perl/perl5/commit/242033265959bdfe57e72acd984a24d59ce4a1ea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move declaration closer to first use


  Commit: ac889e77c85d93e696f74ceb07fd7c94ebfcf764
      https://github.com/Perl/perl5/commit/ac889e77c85d93e696f74ceb07fd7c94ebfcf764
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Extract two debug statements into macros

This is in preparation for them being called from other places


  Commit: 59eacabc924049238b5126069f36ab7ce69a7194
      https://github.com/Perl/perl5/commit/59eacabc924049238b5126069f36ab7ce69a7194
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Indent/outdent some lines

This is to make the differences in the next commit smaller


  Commit: a4f0f07ea38523a272b1d0dde362ac7e3519109d
      https://github.com/Perl/perl5/commit/a4f0f07ea38523a272b1d0dde362ac7e3519109d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

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

A "" input locale has been expanded by the time it gets here, so this is
never true; it is a relict from previous implementations.


  Commit: 30a8a8fa2ed5862b6d9ee87eb2a89527e943e37b
      https://github.com/Perl/perl5/commit/30a8a8fa2ed5862b6d9ee87eb2a89527e943e37b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_bool_setlocale_2008_i: Copy function call.

This removes a function call from a single place and inserts it in
several.  The reason is that it makes a future commit cleaner.


  Commit: 70a2c3ce76fdd770229968a96ed6a56936b76f0a
      https://github.com/Perl/perl5/commit/70a2c3ce76fdd770229968a96ed6a56936b76f0a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  S_update_PL_curlocales(): Add parameter

This is the ultimate caller's line number, which will be useful in a
future commit; unused for now.


  Commit: f6fc4d8b1b15e56ee7cea4105ccffbe8bacf7e4c
      https://github.com/Perl/perl5/commit/f6fc4d8b1b15e56ee7cea4105ccffbe8bacf7e4c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

  Log Message:
  -----------
  locale.c: Update comments, white-space in 2 functions


  Commit: 4ce1dfbab058cac1f63eef253308ae7efd28a305
      https://github.com/Perl/perl5/commit/4ce1dfbab058cac1f63eef253308ae7efd28a305
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Avoid an (unlikely) leak

As the comments say, this eventuality is unlikely to happen, but if it
did, it would mean a leak.


  Commit: 46d029d0af763da163b93f60e0cd6f21abfa460f
      https://github.com/Perl/perl5/commit/46d029d0af763da163b93f60e0cd6f21abfa460f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_bool_setlocale_2008_i: Remove recursion

This converts recursive calls of this function into an iterative loop.
Besides the obvious benefits, some platforms don't even require a loop,
as a future commit will do.


  Commit: fd219e10ee4666e5dcabfaad8f25e7949c9dccb4
      https://github.com/Perl/perl5/commit/fd219e10ee4666e5dcabfaad8f25e7949c9dccb4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Rmv unused function: S_setlocale_from_aggregate_LC_ALL

Previous commits have removed all uses of this


  Commit: 3ff5484eda06638203b21b01b91206b24c0683b7
      https://github.com/Perl/perl5/commit/3ff5484eda06638203b21b01b91206b24c0683b7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  S_parse_LC_ALL_string: Squash if categories are same locale

It turns out that some platforms return something like
    C/C/C/C/C/C
instead of just the equivalent 'C' when querying LC_ALL.  This can lead
to extra work for us, and unnecessary noise when displayed to the user.

This commit changes parse_LC_ALL_string() to look for this case, and to
coalesce the result to just  the single value, which is returned in just
the 0th element of the input array, leaving the other elements unused.

It makes this behavior overridable by an input flag, which will be used
in a future commit.


  Commit: 21cbade2cf57cf32dfa9b30198dcc868887fc730
      https://github.com/Perl/perl5/commit/21cbade2cf57cf32dfa9b30198dcc868887fc730
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_update_PL_curlocales(): accept arbitrary LC_ALL string

Prior to this commit, this function couldn't handle an LC_ALL string
that wasn't just a single locale for all categories.  But now that we
can parse a disparate string, update this function to use that.


  Commit: 9f315aee462194c02df155b582dd35a69f6af826
      https://github.com/Perl/perl5/commit/9f315aee462194c02df155b582dd35a69f6af826
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_setlocale_2008_i(): Use single newlocale() if available

On some platforms the newlocale() libc function when setting LC_ALL can
handle an input locale that sets some categories to one thing; and
others to another; etc.  On such platforms, we don't have to loop
through all categories individually.

This commit changes to use that if the #define indicating its
availability is set.


  Commit: 84968920848aec76d35ec114d190ffd26c9e97fa
      https://github.com/Perl/perl5/commit/84968920848aec76d35ec114d190ffd26c9e97fa
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  XXX Partial need vutil.c first Rmv underlying numeric

This object, only on POSIX 2008 systems, is no longer used.  I've been
keeping it around in case I could figure out if it had any remaining
utility, but don't see any.


  Commit: b3825d3f483c9ed3dedebb2a8f207119f4fa30fa
      https://github.com/Perl/perl5/commit/b3825d3f483c9ed3dedebb2a8f207119f4fa30fa
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Use function already designed for the purpose

Instead of several initialization calls, call the overarching one that
includes them all.


  Commit: 9defff628bb7c7b89d4be76657aecc3db5ea75e3
      https://github.com/Perl/perl5/commit/9defff628bb7c7b89d4be76657aecc3db5ea75e3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Avoid a duplicate conditional


  Commit: 9c268dbb33a2941b30a77e11eee3f1ea06d488fc
      https://github.com/Perl/perl5/commit/9c268dbb33a2941b30a77e11eee3f1ea06d488fc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: e2145ea8080c702a41a9d329ff572454171fc69a
      https://github.com/Perl/perl5/commit/e2145ea8080c702a41a9d329ff572454171fc69a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX Initial guess as to newlocale() capability

glibc has a newlocale() that can handle disparate LC_ALL string input.
This commit is until more data is gathered.


  Commit: db2e8c62ffba12f4dd28c3fdcdb742b855c64d56
      https://github.com/Perl/perl5/commit/db2e8c62ffba12f4dd28c3fdcdb742b855c64d56
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Add caller location info to e.g. RESTORE_LC_NUMERIC

These help pinpointing the error source when a failure occurs.


  Commit: 3eb2fa80198647a995847c46d5d08b830eb92c81
      https://github.com/Perl/perl5/commit/3eb2fa80198647a995847c46d5d08b830eb92c81
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX tests,delta: Handle glibc extra locale categories

glibc has several locale categories not found in standards.  This commit
provides minimal support.


  Commit: d92ba6af5f2fe2352bac88da16834b7071fab961
      https://github.com/Perl/perl5/commit/d92ba6af5f2fe2352bac88da16834b7071fab961
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Properly handle ignored locale categories

perl can be compiled to ignore arbitrary locale categories that are
actually on the system.  This has never worked transparently, especially
on platforms that use postional notation to represent LC_ALL when not
all categories are set to the same locale.  The system calls will return
a string containing the ignored category, and we dont know how to handle
that.

This large commit fixes that by compiling to include the information
about all categories on the system.  But if a category is to be ignored,
instead we set it to the C locale, and thwart any effort to change it
away from that locale.


  Commit: 0857c7f461772ca72f058695bf85b9fb6e23638b
      https://github.com/Perl/perl5/commit/0857c7f461772ca72f058695bf85b9fb6e23638b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revise warnings when locale init has issues

Previously, we didn't know the possible locale categories on this
system, so grepped through the environment outputting anything that
begins with 'LC_'.  But now we do know all of them, and can just use
those.


  Commit: ee298483360f93a2536b7d7fbf98d1a78c35faa4
      https://github.com/Perl/perl5/commit/ee298483360f93a2536b7d7fbf98d1a78c35faa4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  S_calculate_LC_ALL_string: Add parameter

This parameter is set only when this function is being called by
Perl_setlocale().  This is purely for performance  It causes this
function to use a particular buffer and avoid extra copying.


  Commit: 8292e2c126ed9f2de6438cff069d63f6eb503e6c
      https://github.com/Perl/perl5/commit/8292e2c126ed9f2de6438cff069d63f6eb503e6c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  XXX why not failing tests before this?Create S_native_querylocale_i() and use it

This new function differs from the already existing plain
querylocale_i() in that it returns in the platform's native format,
instead of the internal=to-perl one.

The internal one is used generally so that code doesn't have to cope
with multiple possible formats.  The format of the new locale in
Perl_setlocale() is going to be in native format.  We effectively
translate it into our internal one at the input edge, and that is used
thereafter.

But until this commit, the translation back to native format at the
output edge was incomplete.

This mostly worked because native format differs from locale.c
internal format in just two ways.

One is the locale for LC_NUMERIC.  perl keeps it generally in the C
locale, except for brief intervals which higher level code specifies,
when the real locale is swapped in.  (Actually, this isn't quite true.
If the real locale is indistinguishable from C as far as LC_NUMERIC
goes, perl is happy to use it rather than C, so as to save swapping.)
locale.c had the code in it to translate the internal format back to
native, so it worked for this case.

The other is LC_ALL when not all categories are set to the same locale.
Windows and Linux use 'name=value;' pairs notation, while things derived
from BSD (and others) use a positional notation in which only the values
are given, and the system knows which category a given value is for from
its position in the string.  Perl worked fine for the name=value pairs
notation, because that is the same as its internal one, so no
translation got done, but until this commit, there were issues on
positional platforms.  This seldom got in the way since most people, if
they set the locale at all, will just set it to some single 'foo'.

What this commit effectively does is change Perl_setlocale() to return
the value in the native format which the libc functions are expecting.
This differs from what it used to return only on platforms which use the
positional notation and only for LC_ALL when not all categories are set
to the same locale.

The new function subsumes much of the work previously done in
Perl_setlocale(), and it is able to simplify some of that work.


  Commit: 41c67133ad371159507ca47a6faa8207dca22b07
      https://github.com/Perl/perl5/commit/41c67133ad371159507ca47a6faa8207dca22b07
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  XXX why: locale.c: revise new_LC_ALL

This is because we don't want to use querylocale which is expecting
things to already be set up; instead pass what should happen to finish
the setup.


  Commit: dba6cb9d5d48ce734164dbe117f343133258f9a2
      https://github.com/Perl/perl5/commit/dba6cb9d5d48ce734164dbe117f343133258f9a2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Remove no longer used macro


  Commit: 4d0d4cd2489c9b6d01355a85831479a76c8208b3
      https://github.com/Perl/perl5/commit/4d0d4cd2489c9b6d01355a85831479a76c8208b3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Add setlocale_i()

This macro is defined on Configurations where a simple unadorned
setlocale works for categories that don't have perl record keeping
involved.

This allows Perl_setlocale() to avoid a lot of unnecessary overhead for
these.

This commit defines it only for unthreaded perls.


  Commit: 9443409aa0391c09005d10a97025ee4307954ed2
      https://github.com/Perl/perl5/commit/9443409aa0391c09005d10a97025ee4307954ed2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
   locale.c: Move S_update_PL_curlocales()

 Prior to this commit, it was only for POSIX 2008, but a future commit
 will want to use it when not POSIX 2008.


  Commit: fae12384eb5991dc9815e55a000d85988b96e799
      https://github.com/Perl/perl5/commit/fae12384eb5991dc9815e55a000d85988b96e799
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  savepv if threaded, unused I think


  Commit: b3e893a6eeb2ecc798f47b4bc4053a7f85a01327
      https://github.com/Perl/perl5/commit/b3e893a6eeb2ecc798f47b4bc4053a7f85a01327
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Rmv unexecuted statement after croak


  Commit: 168b4dfa2984320b74d98a5eb299326ff9a61722
      https://github.com/Perl/perl5/commit/168b4dfa2984320b74d98a5eb299326ff9a61722
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Improve collation debugging output

This adds a special case for when the buffer is empty


  Commit: 6395b433216047a18aa5b6af51ed9b1d3b5b9ef7
      https://github.com/Perl/perl5/commit/6395b433216047a18aa5b6af51ed9b1d3b5b9ef7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX introductory file comments


  Commit: 6dffac33e9195d92b3d5e60c810ae2a82e9f8540
      https://github.com/Perl/perl5/commit/6dffac33e9195d92b3d5e60c810ae2a82e9f8540
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Only compile workaround on platforms needing it

This code works around a bug on Windows with regard to localeconv().
And the bug only exists on such platforms that have thread-safety.
Prior to this commit, the code was compiled on platforms lacking
thread-safety, so was unnecessary.


  Commit: 24494ee11cb6418087d8c83a4091a53b7574ca48
      https://github.com/Perl/perl5/commit/24494ee11cb6418087d8c83a4091a53b7574ca48
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M intrpvar.h
    M locale.c

  Log Message:
  -----------
  locale.c: Use wider than U32 for a counter

Processes that change locales are incrementing a counter that could
eventully wrap if the process is long-lived.  It's not likely, but it's
also easy to make this a U64 if available, and make the chances of it
happening much closer to zero.


  Commit: 79fc29d8c768a67a67eec05f15138c7f8ba6a9be
      https://github.com/Perl/perl5/commit/79fc29d8c768a67a67eec05f15138c7f8ba6a9be
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move setting errno out of critical section

I doesn't matter much, but its better practice to make critical sections
as small as possible.


  Commit: 0c030546fafa41652ad5c5d1bf42a6a80a215ffc
      https://github.com/Perl/perl5/commit/0c030546fafa41652ad5c5d1bf42a6a80a215ffc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  get_win32_message_utf8ness() Fix unlikely case

This function calls get_locale_string_utf8ness_i().  The API of that
function changed earlier in the 5.37 series, and this was not updated to
correspond.  It is calling it with category 0, wich it thinks is an
out-of-bounds value, but it really is LC_ALL on Windows.  Thus it
actually probably doesn't lead to a failure, but it theoretically could
fail if LC_ALL is not uniform.

So it's better to not succeed just by accident.  This commit changes to
now use LC_CTYPE as the category.  And if someone has managed to compile
Windows without LC_CTYPE, it now just says that the input string isn't
UTF-8, as without LC_CTYPE, you've only got the C locale.


  Commit: 65bcc855116f56132fde97d1d405689b11069c50
      https://github.com/Perl/perl5/commit/65bcc855116f56132fde97d1d405689b11069c50
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Only define a structure if needed

Without LC_NUMERIC, this structure is unused, and generates a compiler
warning.


  Commit: b8bb906e399e12541e74f9f288a56d21bc9a2b0e
      https://github.com/Perl/perl5/commit/b8bb906e399e12541e74f9f288a56d21bc9a2b0e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add a debugging statement

This can be helpful in tracing what's happening with nl_langinfo()
calls.


  Commit: f81ee3612ea1e977493cca919544f325be07d9d9
      https://github.com/Perl/perl5/commit/f81ee3612ea1e977493cca919544f325be07d9d9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  perlapi:  Improve wording for Perl_langinfo()


  Commit: c47bcb896429f455dddf31433100462d468934cf
      https://github.com/Perl/perl5/commit/c47bcb896429f455dddf31433100462d468934cf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Critical section around initializing a global

This code should only have a race in the unlikely event that it is an
embedded perl, and there is another perl already running.  But best to
avoid the possibility at all.


  Commit: 93dc55dcc8219e2025d4292a71e954ef26a50654
      https://github.com/Perl/perl5/commit/93dc55dcc8219e2025d4292a71e954ef26a50654
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move #ifdef DEBUGGING

This moves it up to precede a block that only does debugging info.


  Commit: 98b4b383fbce3bd7911e20d6b5cf52aa90fe4583
      https://github.com/Perl/perl5/commit/98b4b383fbce3bd7911e20d6b5cf52aa90fe4583
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_stdize_locale: Set errno if fails


  Commit: b1c05068b1e38e8d864dd2983aaeb9d35a7925bc
      https://github.com/Perl/perl5/commit/b1c05068b1e38e8d864dd2983aaeb9d35a7925bc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX experimental: Define setlocale_i() on unsafe threaded builds

On threaded Configurations where thread-safe locale handling is not
available, perl automatically does a modicum of prevention of races by
executing locale changes in a critical section, and copying the results
to a thread-safe location.

This commit defines setlocale_i() on such builds.  This macro is used to
bypass more complex handling required in fully thread-safe builds.

I don't see how this changes thread-safeness on the unsafe builds, and
it passes the tests, but I'm considering it experimental for now, until
later in the development cycle.


  Commit: 75b685ca3867bcfd5f0ff1d1749d7d2e1d861248
      https://github.com/Perl/perl5/commit/75b685ca3867bcfd5f0ff1d1749d7d2e1d861248
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/porting/bincompat.t

  Log Message:
  -----------
  skip bincompat.t


  Commit: a9ecea141f46efa0fbe28bc27c0c49d5e137fa54
      https://github.com/Perl/perl5/commit/a9ecea141f46efa0fbe28bc27c0c49d5e137fa54
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M hints/darwin.sh

  Log Message:
  -----------
  darwin hints querylocale race in earlier darwins?


  Commit: 9c6384ba90ebba6e145bc8f04144eb5850bd6e72
      https://github.com/Perl/perl5/commit/9c6384ba90ebba6e145bc8f04144eb5850bd6e72
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M intrpvar.h

  Log Message:
  -----------
  intrpvar.h: Comments


  Commit: 0a422565f450c241fd3d2dc247c869fe8f878400
      https://github.com/Perl/perl5/commit/0a422565f450c241fd3d2dc247c869fe8f878400
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  emul


  Commit: 43b67d2c9fbe4f99cb1a12aad90b89f44f808f54
      https://github.com/Perl/perl5/commit/43b67d2c9fbe4f99cb1a12aad90b89f44f808f54
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  fixup emul


  Commit: da7640eaa4e331ddccf93e201839ee0f126e8a5b
      https://github.com/Perl/perl5/commit/da7640eaa4e331ddccf93e201839ee0f126e8a5b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  XXX finish msg: locale.c: Improve Windows thread initialization


  Commit: 6672e03985c7adaf716c57c39386cf111a8701ac
      https://github.com/Perl/perl5/commit/6672e03985c7adaf716c57c39386cf111a8701ac
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Change to use enum type

Instead of 'unsigned int', use the more restricted enum.


  Commit: 901fd15acbc59da7fccdc6c437cbb150bfd81f51
      https://github.com/Perl/perl5/commit/901fd15acbc59da7fccdc6c437cbb150bfd81f51
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Compile utf8ness on platforms that need it

These two functions need to be compiled on certain other platforms than
what was happening.


  Commit: 7c756435b0a0a3703b2a68252db665230e539093
      https://github.com/Perl/perl5/commit/7c756435b0a0a3703b2a68252db665230e539093
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Silence compiler warning on some platforms

This argument isn't used on some platforms.


  Commit: 0adca2aa861a4bf5680238015c1f360c1afcabf5
      https://github.com/Perl/perl5/commit/0adca2aa861a4bf5680238015c1f360c1afcabf5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Configure
    M locale.c
    M metaconfig.h
    M perl.h

  Log Message:
  -----------
  f Configure


  Commit: dacdaa0dc83514e4f62e1f845dfbfd8728797e3c
      https://github.com/Perl/perl5/commit/dacdaa0dc83514e4f62e1f845dfbfd8728797e3c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Configure
    M locale.c
    M metaconfig.h
    M perl.h

  Log Message:
  -----------
  Revert "f Configure"

This reverts commit 12d2cfd3fbf933bbbfb52a448d8bdda62f7ac100.


  Commit: c3f191e6f088b32053555d6753ddff14d17a0d2f
      https://github.com/Perl/perl5/commit/c3f191e6f088b32053555d6753ddff14d17a0d2f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  drop when Configure fixed


  Commit: a56740bf0ea2760994397319adea1790b1181569
      https://github.com/Perl/perl5/commit/a56740bf0ea2760994397319adea1790b1181569
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity


  Commit: 8b2dfd0fa6e3913c09ad810a10874f1877bfddee
      https://github.com/Perl/perl5/commit/8b2dfd0fa6e3913c09ad810a10874f1877bfddee
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  makedef.pl: Move comment


  Commit: 322d0c704964ba79fcabe49bd774c31c3665915e
      https://github.com/Perl/perl5/commit/322d0c704964ba79fcabe49bd774c31c3665915e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

  Log Message:
  -----------
  Maybe drop: makedef.pl: Move code


  Commit: 7c3e192fbb11e70c17fbe0ffaf99457d4f482d8b
      https://github.com/Perl/perl5/commit/7c3e192fbb11e70c17fbe0ffaf99457d4f482d8b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M makedef.pl

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


  Commit: a6758b4939e1db6731c0e61f76ea9c2d03bbbf35
      https://github.com/Perl/perl5/commit/a6758b4939e1db6731c0e61f76ea9c2d03bbbf35
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Add DEBUG_SETLOCALE_INCONSISTENCIES


  Commit: 0ff5ae041aab7f955e1c2787180e11cf0c8a9c0d
      https://github.com/Perl/perl5/commit/0ff5ae041aab7f955e1c2787180e11cf0c8a9c0d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Fix mingw locale builds

Experience has shown that mingw with an older runtime library doesn't
have more modern Windows features working properly.  This commit causes
it to compile with workarounds, but allows the user to

-Accflags='-DUCRT_USED'

to indicate to Configure that the code will be using the modern CRT.


  Commit: 1611f3ebb9835a00d4f953c91f8045d931e091bb
      https://github.com/Perl/perl5/commit/1611f3ebb9835a00d4f953c91f8045d931e091bb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Enable DEBUG_SETLOCALE_INCONSISTENCIES


  Commit: b72f77f0d88721086069bd87a10a2fce249bcc62
      https://github.com/Perl/perl5/commit/b72f77f0d88721086069bd87a10a2fce249bcc62
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Add detail to locale mutex debug


  Commit: 350ca9d455b55ff550039ff68a1e7690520460ac
      https://github.com/Perl/perl5/commit/350ca9d455b55ff550039ff68a1e7690520460ac
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h
    M t/porting/customized.dat

  Log Message:
  -----------
  XXX remaining loose ends


  Commit: b814897af104ea72705a69871759af147838ec2b
      https://github.com/Perl/perl5/commit/b814897af104ea72705a69871759af147838ec2b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/version/t/07locale.t
    M pod/perlembed.pod
    M t/porting/customized.dat

  Log Message:
  -----------
  final commit


  Commit: b5fd890cff525047a94d77a2055e6895cd672492
      https://github.com/Perl/perl5/commit/b5fd890cff525047a94d77a2055e6895cd672492
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  use enum, maybe drop


  Commit: a0cf3ab5c87c6187bcece0888a20b99d1ff7190a
      https://github.com/Perl/perl5/commit/a0cf3ab5c87c6187bcece0888a20b99d1ff7190a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "prev commit"

This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.


  Commit: 229709ce5a2104a6f4c63be3b25c56f0eddde5f0
      https://github.com/Perl/perl5/commit/229709ce5a2104a6f4c63be3b25c56f0eddde5f0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  more cat index enum


  Commit: 0ba1215596508fdf86caa903f03a40de9452eaae
      https://github.com/Perl/perl5/commit/0ba1215596508fdf86caa903f03a40de9452eaae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M dist/Tie-File/t/29a_upcopy.t

  Log Message:
  -----------
  XXX temp: dist/Tie-File/t/29a_upcopy.t: Up alarm


  Commit: c4514d5d5951823dc19be8bc0560e765e4d948da
      https://github.com/Perl/perl5/commit/c4514d5d5951823dc19be8bc0560e765e4d948da
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  f


  Commit: 75a267e9247f5b83adc8f19a30ae9d9bdec56e6e
      https://github.com/Perl/perl5/commit/75a267e9247f5b83adc8f19a30ae9d9bdec56e6e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h fixup


  Commit: f4b0d91e24e942b76120f986060e46d567f9830f
      https://github.com/Perl/perl5/commit/f4b0d91e24e942b76120f986060e46d567f9830f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M Configure

  Log Message:
  -----------
  f Configure for positional


  Commit: d35d0f0737d1f914bc3e242fef0dd177b6c1cb46
      https://github.com/Perl/perl5/commit/d35d0f0737d1f914bc3e242fef0dd177b6c1cb46
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  f Add positional


  Commit: 6e8f1af065111bce4878c75eb980db5e92d808e4
      https://github.com/Perl/perl5/commit/6e8f1af065111bce4878c75eb980db5e92d808e4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  fixup init for C C C C C


  Commit: 5b219d8aa321ab7b5ccc50d321c0875c71ecbcd3
      https://github.com/Perl/perl5/commit/5b219d8aa321ab7b5ccc50d321c0875c71ecbcd3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  perlapi: Fix strftime inaccuracies, clarify


  Commit: d90650db0e8c11c9d23dafaa4a11d303e2e9bfce
      https://github.com/Perl/perl5/commit/d90650db0e8c11c9d23dafaa4a11d303e2e9bfce
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Set errno when my_strftime() fails.

The libc strftime() doesn't have any way to distinguish between
erroneous input and that which just doesn't generate any output; hence
it doesn't set errno.

But my_strftime() has logic to reasonably confidently make that
distinction, so it should set errno when it determines that it is
erroneous input.


  Commit: 0fc6781e936d3f177bcfbf4854ac44c7f97a31c3
      https://github.com/Perl/perl5/commit/0fc6781e936d3f177bcfbf4854ac44c7f97a31c3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  add is_cur_locale_utf8


  Commit: 2c3f6e8e2a1278f75ab446ce5b53feaf6d8c1af7
      https://github.com/Perl/perl5/commit/2c3f6e8e2a1278f75ab446ce5b53feaf6d8c1af7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

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

By creating a temporary variable, an else is eliminated, and the
lock/unlock are brought close together.


  Commit: 72e69a6b9c8168e5e4b2c0442963404e59537207
      https://github.com/Perl/perl5/commit/72e69a6b9c8168e5e4b2c0442963404e59537207
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M dist/threads/threads.xs
    M embed.fnc
    M locale.c
    M perl.h
    M proto.h
    M util.c
    M win32/win32thread.c

  Log Message:
  -----------
  switch_locale_context: Add aTHX

This fixes GH #21040

Instead of a dTHX, this passes aTHX automatically, and skips calling
this function if there is no valid context.

It moves that decision into the macro itself, avoiding some #ifdef
directives.

And it adds explanation

f


  Commit: d0d28a9b1b3a5b371ba78f6f521ad52b66402405
      https://github.com/Perl/perl5/commit/d0d28a9b1b3a5b371ba78f6f521ad52b66402405
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  strftime: Always restore LC_CTYPE locale

my_strftime toggles LC_CTYPE to match LC_TIME to avoid mojibake.

In reading the code, I realized that there was a code path that doesn't
properly restore it, namely when failure is returned.  This commit fixes
that.


  Commit: f0127fc257beba56653bea9442b5ccde3b3d1bd4
      https://github.com/Perl/perl5/commit/f0127fc257beba56653bea9442b5ccde3b3d1bd4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Time::Piece: Use reentrant API

This single line magically makes this work much better under threading,
though critical section locks need to be added as well.


  Commit: 2f82fd0e365f7fd9188781b5400b4e4d35bba612
      https://github.com/Perl/perl5/commit/2f82fd0e365f7fd9188781b5400b4e4d35bba612
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  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: 470404be1135498d538a9177dc78d442b2d5105e
      https://github.com/Perl/perl5/commit/470404be1135498d538a9177dc78d442b2d5105e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Time-Piece: Use isSPACE_LC, not isspace; etc

isDIGIT_LC() does the same thing as isdigit when everything goes well,
but is more robust when things get more complicated.  The _LC forms are
thread safe, for example.

But note that this code doesn't work properly for a UTF-8 locale, as it
assumes that a byte and character are the same thing.  A major overhaul
would be needed to handle that.


  Commit: 9d4f66ca1307717ecf3a21a2a2ec8a1cf5d1b048
      https://github.com/Perl/perl5/commit/9d4f66ca1307717ecf3a21a2a2ec8a1cf5d1b048
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't compile unreachable code

This code is attempting to compute the nl_langinfo() codeset of the
current locale.  If there is no LC_CTYPE available on the system, the
codeset must be 'C', and the only callers to this static function know
that, and return that answer without calling this function.  That means
this part of the function will never be executed.  So don't compile it.


  Commit: 279b36d4b79e16db1bea9def2c62f57645a3a21a
      https://github.com/Perl/perl5/commit/279b36d4b79e16db1bea9def2c62f57645a3a21a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Prevent infinite recursion

This could happen on the very rare platform that isn't Windows, nor
supports nl_langinfo(), and has a buggy (or non-existent) mbtowc().

The code implements nl_langinfo() itself by recursion, and for some
locales could end up recursing indefinitely.  This commit adds guards to
prevent that.


  Commit: 75e301d037830814c6d1e7bac23e6ed95cd2dcc1
      https://github.com/Perl/perl5/commit/75e301d037830814c6d1e7bac23e6ed95cd2dcc1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Add DISABLE_LC_NUMERIC_CHANGES macro

This is for code that needs to keep other code from changing LC_NUMERIC
out from under it, but avoids the knowledge of PL_numeric_standard,
which is used when perl controls the locale handling.

This is designed for 'version' (vutil.c) to use, because it has to
operate seamlessly in the mode where perl controls the handling, and
when it doesn't, even if it doesn't know it doesn't.


  Commit: 99aaeb0c46d1d5b4865815b2cfbb8cac3059071c
      https://github.com/Perl/perl5/commit/99aaeb0c46d1d5b4865815b2cfbb8cac3059071c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Remove extraneous ';'


  Commit: 98b1865e5496d31b051b5c14c4b410dae20721ae
      https://github.com/Perl/perl5/commit/98b1865e5496d31b051b5c14c4b410dae20721ae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: localeconv() isn't broken on Windows unthreaded

Nor is it broken if compiled without per-thread locale handling.  The
bug in it until VS 2015 was that it always looked at the global locale.
When the only locale available is the global one, there is not breakage.

This commit thus avoids compiling workaround code for the bug when it
isn't necessary.


  Commit: 23cf57a694c650243dd46fa36a35379496324ebd
      https://github.com/Perl/perl5/commit/23cf57a694c650243dd46fa36a35379496324ebd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


  Commit: d1d481828b46a231a485de3d0df781cbd5fc0d12
      https://github.com/Perl/perl5/commit/d1d481828b46a231a485de3d0df781cbd5fc0d12
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/POSIX/t/time.t

  Log Message:
  -----------
  time.t


  Commit: 4be66bc0b2b89341c345c2e9a08db68f14e3ff01
      https://github.com/Perl/perl5/commit/4be66bc0b2b89341c345c2e9a08db68f14e3ff01
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/POSIX/t/time.t

  Log Message:
  -----------
  POSIX/t/time.t: Remove no longer necessary code

POSIX::strftime() now automatically handles the case where the locales of
LC_TIME and LC_CTYPE aren't the same.  So no need to explicitly do this
in the test file.


  Commit: d1af148587392786fd16b1efab5c8fc8cb742778
      https://github.com/Perl/perl5/commit/d1af148587392786fd16b1efab5c8fc8cb742778
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/POSIX/t/time.t

  Log Message:
  -----------
  XXX see how affects earlier commits: time.t: Add more strftime tests


  Commit: 01ca76521756b75e2a137f64499caf3962327fae
      https://github.com/Perl/perl5/commit/01ca76521756b75e2a137f64499caf3962327fae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: Split my_strftime into 2 functions

Future commits will want the individual functionality the two provided
separately.


  Commit: 9acc310b73033d59a2e638032ec330c0286a7d92
      https://github.com/Perl/perl5/commit/9acc310b73033d59a2e638032ec330c0286a7d92
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Move my_strftime() within the file

This will be more logically placed after future commits


  Commit: b1d56b3c168a95e1d43d3f7fe17df147dfb337db
      https://github.com/Perl/perl5/commit/b1d56b3c168a95e1d43d3f7fe17df147dfb337db
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Implement sv_strftime_tm and sv_strftime_ints

These two functions are designed to free the caller from having to know
anything about the intricacies of handling UTF-8 in using strftime(), as
they take SV inputs and return an SV with the UTF-8 flag appropriately
set.

They differ only in that one takes a bunch of integer arguments that
define the various components of the time; and the other takes a pointer
to a struct tm.

The POSIX implementation of strftime is converted to use these.


  Commit: fca978f9d674b7c6456bf3cded01119e764d45ea
      https://github.com/Perl/perl5/commit/fca978f9d674b7c6456bf3cded01119e764d45ea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M cpan/Time-Piece/Piece.pm
    M cpan/Time-Piece/Piece.xs
    M cpan/Time-Piece/Seconds.pm
    M dist/Module-CoreList/lib/Module/CoreList.pm

  Log Message:
  -----------
  Time::Piece: Add critical sections

This calls various macros to make certain libc calls uninterruptible, so
that they can be used safely in threaded applications, when this module
is loaded with a perl that supports this.

The macros are defined to do nothing if the perl doesn't contain working
versions of them.  In such perls, the macros are also defined to do
nothing except on configurations that could have races.

Typically, an extra problem is that the libc calls return in a global
static buffer, subject to being overwritten by another thread.  But an
earlier commit defined PERL_REENTRANT, which makes those functions
transparently return in a thread-local buffer instead.  That doesn't
help if the function gets interrupted by another thread; this commit
completes the process.


  Commit: e72ba8ce93ab200a56b3ea0dbe98acf731b42767
      https://github.com/Perl/perl5/commit/e72ba8ce93ab200a56b3ea0dbe98acf731b42767
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Implement sv_strftime_tm and sv_strftime_ints

These two functions are designed to free the caller from having to know
anything about the intricacies of handling UTF-8 in using strftime(), as
they take SV inputs and return an SV with the UTF-8 flag appropriately
set.

They differ only in that one takes a bunch of integer arguments that
define the various components of the time; and the other takes a pointer
to a struct tm.

The POSIX implementation of strftime is converted to use these.


  Commit: c3637851e8eb25a77e53502804e89a5d37655e60
      https://github.com/Perl/perl5/commit/c3637851e8eb25a77e53502804e89a5d37655e60
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_get_locale_string_utf8ness_i: Fix return

If the input is NULL, the utf8ness of the string isn't NO, but actually,
IMMATERIAL, as there is nothing there that matters


  Commit: 57d362ca1bf9028e512d952b33a998338fce0d2a
      https://github.com/Perl/perl5/commit/57d362ca1bf9028e512d952b33a998338fce0d2a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Avoid work that would be thrown away

If the caller to this function doesn't care about the UTF-8ness of the
result, no need to calculate it.


  Commit: 119b61ca9f56252fc627ad78a55c80268ceb3633
      https://github.com/Perl/perl5/commit/119b61ca9f56252fc627ad78a55c80268ceb3633
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Time-Piece: notes to myself


  Commit: 0f06ed929ce046044a8f5589567ec81d0afea427
      https://github.com/Perl/perl5/commit/0f06ed929ce046044a8f5589567ec81d0afea427
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  dregs


  Commit: f9c05b546b0b00a35f5bd8a36a955b8e9894232a
      https://github.com/Perl/perl5/commit/f9c05b546b0b00a35f5bd8a36a955b8e9894232a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Slightly change wording of DEBUG messages

This makes them more consistent with the other messages in this file.


  Commit: 4d6a9ea0e7a5cd2ee6d69cf486fa1837439ba0d1
      https://github.com/Perl/perl5/commit/4d6a9ea0e7a5cd2ee6d69cf486fa1837439ba0d1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M util.c

  Log Message:
  -----------
  util.c: Better panic messages


  Commit: 1bc69443e0b7b44e650739eeb2b6901d4825dea8
      https://github.com/Perl/perl5/commit/1bc69443e0b7b44e650739eeb2b6901d4825dea8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M win32/Makefile

  Log Message:
  -----------
  win32 Makefile


  Commit: 7f8c4a8a3ff491bc1e373d63565e031ad7d48883
      https://github.com/Perl/perl5/commit/7f8c4a8a3ff491bc1e373d63565e031ad7d48883
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/XS-APItest/t/locale.t

  Log Message:
  -----------
  XS-APItest/t/locale.t: Skip tests if pre-req not met

Rather than have them all failing, if the test that tries to set things
up fails, skip the ones that depend on it having succeeded


  Commit: 6abe51b3a2c4121b4db588fb384938572a4bdeda
      https://github.com/Perl/perl5/commit/6abe51b3a2c4121b4db588fb384938572a4bdeda
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/XS-APItest/t/locale.t

  Log Message:
  -----------
  XS-APItest/t/locale.t: White space only

Indent to correspond with a new block added in the previous commit


  Commit: bc9a15cc06074d920d43ca19a521d7a9688cc4c9
      https://github.com/Perl/perl5/commit/bc9a15cc06074d920d43ca19a521d7a9688cc4c9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale.t

  Log Message:
  -----------
  lib/locale.t: Avoid duplicate effort

By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice.  This matters on
Windows machines where the scan is slow.


  Commit: 473428c26535e835d21f13db22d59298f3775231
      https://github.com/Perl/perl5/commit/473428c26535e835d21f13db22d59298f3775231
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/op/lc.t

  Log Message:
  -----------
  t/op/lc.t: Avoid duplicate effort

By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice.  This matters on
Windows machines where the scan is slow.


  Commit: ddcee651f62edf94fdc7bf0055aecbfc34f43d08
      https://github.com/Perl/perl5/commit/ddcee651f62edf94fdc7bf0055aecbfc34f43d08
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/re/pat.t

  Log Message:
  -----------
  re/pat.t: Avoid duplicate effort

This scalar was being computed twice, and the computation is slow on
Windows.


  Commit: 8e59d61328da8814ee23dfa5d2c69cc150843573
      https://github.com/Perl/perl5/commit/8e59d61328da8814ee23dfa5d2c69cc150843573
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/re/pat.t

  Log Message:
  -----------
  re/pat.t: Fix typo in comment


  Commit: aea84f6ce1b7c68b87c0028bb6b5f4ffef6387be
      https://github.com/Perl/perl5/commit/aea84f6ce1b7c68b87c0028bb6b5f4ffef6387be
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  fdregs


  Commit: af6ded6b0123282788d54863146df4982eb86771
      https://github.com/Perl/perl5/commit/af6ded6b0123282788d54863146df4982eb86771
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M ext/POSIX/t/time.t

  Log Message:
  -----------
  POSIX/t/time.t: Avoid duplicate effort

By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice.  This matters on
Windows machines where the scan is slow.


  Commit: 632a6eba2269c06f051a98d7f1cc97d8cbec3fa3
      https://github.com/Perl/perl5/commit/632a6eba2269c06f051a98d7f1cc97d8cbec3fa3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Add UNLESS_PERL_MEM_LOG()

This is to be used to wrap code that should not be compiled if
PERL_MEM_LOG is defined.  Some things don't play well with that, and
this keeps them from being compiled automatically without extra #ifdefs


  Commit: 840d9dd2cc0bc0a6a41d91e431872f11f38842d3
      https://github.com/Perl/perl5/commit/840d9dd2cc0bc0a6a41d91e431872f11f38842d3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Use UNLESS_PERL_MEM_LOG()

These debugging statements for mutex locking are done at such a low
level that if PERL_MEM_LOG is used, infinite recursion would be
attempted.


  Commit: 09910d133eeff150f67392c004ebb83435cf6597
      https://github.com/Perl/perl5/commit/09910d133eeff150f67392c004ebb83435cf6597
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M inline.h

  Log Message:
  -----------
  Revert #if 0 in inline.h

I don't remember why this was done


  Commit: cc04261a4d7e0aa8d9ef5b4d8e9a05e0cdb2f482
      https://github.com/Perl/perl5/commit/cc04261a4d7e0aa8d9ef5b4d8e9a05e0cdb2f482
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX why no failures:locale.c: Quit early on failure to set the locale

When trying to set the locale under Windows (only), the code prior to
this commit would continue on to set PL_cur_LC_ALL to NULL, whereas the
failure means nothing changed, so this variable shouldn't either.


  Commit: 8b94f9f01d0b13e81d6515da742161e000b3cd9a
      https://github.com/Perl/perl5/commit/8b94f9f01d0b13e81d6515da742161e000b3cd9a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Avoid unnecessary freeing and reallocating

Check first if an interpreter variable has actually changed before
going to the trouble of freeing its memory and reallocating and
populating it.


  Commit: 672e29ac79f5639180ee49f8c0355bcced952d82
      https://github.com/Perl/perl5/commit/672e29ac79f5639180ee49f8c0355bcced952d82
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Return from win32_setlocale() needs to be stable

Prior to this commit it was subject to freeing when the scope was
exited.

This commit repurposes the already-existing per-thread buffer that holds
the return of setlocale(), stable until the next call to it.  Instead of
being used for setlocale() which isn't called directly on Windows
platforms, it uses it for win32_setlocale().


  Commit: c40a57118d786c156637c3e09c64bd5851b15003
      https://github.com/Perl/perl5/commit/c40a57118d786c156637c3e09c64bd5851b15003
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M util.c
    M win32/perlhost.h

  Log Message:
  -----------
  XXX Win32 mem log


  Commit: 5ba676560237852b8b8fb1a4a15ab7a55f24ec0b
      https://github.com/Perl/perl5/commit/5ba676560237852b8b8fb1a4a15ab7a55f24ec0b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M util.c

  Log Message:
  -----------
  XXX util add thread to mem_log


  Commit: 2478ff500a828dcce8251ed02cda1e7f04d99314
      https://github.com/Perl/perl5/commit/2478ff500a828dcce8251ed02cda1e7f04d99314
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX mv: initialize PL_cur_LC_ALL


  Commit: 2e65658b25125da1be26b8a538c7cfc9ef9f2fed
      https://github.com/Perl/perl5/commit/2e65658b25125da1be26b8a538c7cfc9ef9f2fed
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Debug wrap wset


  Commit: 9595b634532abe5651d5eada42813b482798fdd1
      https://github.com/Perl/perl5/commit/9595b634532abe5651d5eada42813b482798fdd1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  more dregs


  Commit: 23ffc0245d860eadff7cb883167e0965ff7c952b
      https://github.com/Perl/perl5/commit/23ffc0245d860eadff7cb883167e0965ff7c952b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  f XXX maybe


  Commit: d4cb301c44ec7a2665489d4d43c724c23b9c1d87
      https://github.com/Perl/perl5/commit/d4cb301c44ec7a2665489d4d43c724c23b9c1d87
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M regen/unicode_constants.pl
    M unicode_constants.h

  Log Message:
  -----------
  regen/unicode_constants.pl: Add Arabic radix

This will be helpful to vutil.c


  Commit: 40ef3b46a5c9a4506b532cbe41bf9088cbe96b01
      https://github.com/Perl/perl5/commit/40ef3b46a5c9a4506b532cbe41bf9088cbe96b01
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Be sure non-UTF-8 radix isn't UTF-8

In almost all locales in the world, the radix character is a dot or a
comma.  Prior to this commit, if a locale was ever used that had a
UTF-8-required radix, the SV that contains the radix would remain UTF-8,
causing anything that included it to also become UTF-8, slowing things
down.

Fortunately, such locales are unlikely to be used in commerce where Perl is likely to be used.  But this commit fixes that.

This problem came up in stress testing Perl using tests that will be
committed later.


  Commit: f38321fe79ab49ecce920f837e263ebaa532286d
      https://github.com/Perl/perl5/commit/f38321fe79ab49ecce920f837e263ebaa532286d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  Perl_force_locale_unlock: Add pTHX parameter

This replaces a dTHX inside the function, which is usable only by the
perl core on platforms that allow hiding functions from external code.
Thus this change should not break any applications.


  Commit: 3303ca5259af4384ad213a520280bdaaeed29594
      https://github.com/Perl/perl5/commit/3303ca5259af4384ad213a520280bdaaeed29594
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

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

  Log Message:
  -----------
  locale.c: S_save_to_buffer: Add pTHX parameter

This saves doing dTHX inside the function


  Commit: 9aa514e11cf9d3e3a2bdb0950f8a59811808df45
      https://github.com/Perl/perl5/commit/9aa514e11cf9d3e3a2bdb0950f8a59811808df45
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  d


  Commit: 30cef81b79cc982fa534c52dd7b1cbae647f85ea
      https://github.com/Perl/perl5/commit/30cef81b79cc982fa534c52dd7b1cbae647f85ea
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  fdregs


  Commit: 8991bb0495c6c6d4c9bbd6b77df3f5f29ed46939
      https://github.com/Perl/perl5/commit/8991bb0495c6c6d4c9bbd6b77df3f5f29ed46939
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M lib/locale_threads.t
    M locale.c
    M t/loc_tools.pl

  Log Message:
  -----------
  foo


Compare: https://github.com/Perl/perl5/compare/baad94e8c9ea...8991bb0495c6



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