[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl5-changes
Subject:    [Perl/perl5] 7abb0d: XXX skip croak.t under sanitizer
From:       Karl Williamson via perl5-changes <perl5-changes () perl ! org>
Date:       2023-06-17 3:54:31
Message-ID: Perl/perl5/push/refs/heads/smoke-me/khw-env/a487f9-01c98f () github ! com
[Download RAW message or body]

  Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 7abb0dfe092782e75fa2c259377612f3f908439f
      https://github.com/Perl/perl5/commit/7abb0dfe092782e75fa2c259377612f3f908439f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/harness

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


  Commit: 4cec46506f163b51ce0633abac68e483a18cf670
      https://github.com/Perl/perl5/commit/4cec46506f163b51ce0633abac68e483a18cf670
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 7bce303bf0d2c2438c115b0ae7caeec99a83d141
      https://github.com/Perl/perl5/commit/7bce303bf0d2c2438c115b0ae7caeec99a83d141
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 08dc87c3e13385c1936f7a70de69bbd68b1ed1c4
      https://github.com/Perl/perl5/commit/08dc87c3e13385c1936f7a70de69bbd68b1ed1c4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/TEST

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


  Commit: 9460eb7bf2f292d77a04e7b00b9fbe1ee0cbdb0a
      https://github.com/Perl/perl5/commit/9460eb7bf2f292d77a04e7b00b9fbe1ee0cbdb0a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 5ab5148e3ce4d1dd71c5d537612f05b1ab57125a
      https://github.com/Perl/perl5/commit/5ab5148e3ce4d1dd71c5d537612f05b1ab57125a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 357c01e7d06a990bbaff00ae382f12c436756438
      https://github.com/Perl/perl5/commit/357c01e7d06a990bbaff00ae382f12c436756438
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/test.pl

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


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

  Changed paths:
    M t/test.pl

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

This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.


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

  Changed paths:
    M t/run/locale.t

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


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

  Changed paths:
    M t/run/locale.t

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


  Commit: 91046d04886a16fdbbbebfec25a309e5ec91a918
      https://github.com/Perl/perl5/commit/91046d04886a16fdbbbebfec25a309e5ec91a918
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0c3613d45f46269e305fd95098d7cc50b504629b
      https://github.com/Perl/perl5/commit/0c3613d45f46269e305fd95098d7cc50b504629b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: c5d76fced7f3a94a43a4cfeb42dd4ca6c90a9d9d
      https://github.com/Perl/perl5/commit/c5d76fced7f3a94a43a4cfeb42dd4ca6c90a9d9d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M vutil.c

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


  Commit: 9bddd2d35a7ca5fcbe6f198adc2c87179c7462f0
      https://github.com/Perl/perl5/commit/9bddd2d35a7ca5fcbe6f198adc2c87179c7462f0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: bb5b4df4804b98b63339d5af6100a58c92e6a381
      https://github.com/Perl/perl5/commit/bb5b4df4804b98b63339d5af6100a58c92e6a381
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: c817fb9f336ff198539b704b1d9227024f63d377
      https://github.com/Perl/perl5/commit/c817fb9f336ff198539b704b1d9227024f63d377
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 9d58abce54ea68cc77014daacc13e985d1b3a4d5
      https://github.com/Perl/perl5/commit/9d58abce54ea68cc77014daacc13e985d1b3a4d5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M vutil.c

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


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

  Changed paths:
    M vutil.c

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


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

  Changed paths:
    M vutil.c

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


  Commit: 7a54176e3cd3a412b0d6935c6b03f745315f781a
      https://github.com/Perl/perl5/commit/7a54176e3cd3a412b0d6935c6b03f745315f781a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ce4b260e5a59452b6ff52fb561ef2ded2c25b6c4
      https://github.com/Perl/perl5/commit/ce4b260e5a59452b6ff52fb561ef2ded2c25b6c4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b1029f94f24d2007b1a4e1af5e469833027f5f4e
      https://github.com/Perl/perl5/commit/b1029f94f24d2007b1a4e1af5e469833027f5f4e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 865fe4435b1ce1dc3c669784e5306cd0570719f6
      https://github.com/Perl/perl5/commit/865fe4435b1ce1dc3c669784e5306cd0570719f6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/porting/cmp_version.t

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


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

  Changed paths:
    M perl.h

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


  Commit: a4c8464d9e673978e882e8643501ca3db7548db6
      https://github.com/Perl/perl5/commit/a4c8464d9e673978e882e8643501ca3db7548db6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b616784008abfe5acc0b9990cab7183197ba4a31
      https://github.com/Perl/perl5/commit/b616784008abfe5acc0b9990cab7183197ba4a31
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M Configure

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


  Commit: 29e6d8c8dc035edc17b3c924bd7e77ba14f72c07
      https://github.com/Perl/perl5/commit/29e6d8c8dc035edc17b3c924bd7e77ba14f72c07
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 1574b7a23ab29e94175bd2045e9d770dfb9a408f
      https://github.com/Perl/perl5/commit/1574b7a23ab29e94175bd2045e9d770dfb9a408f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: d1551701263026f31a4fc888baf66c415b3571b7
      https://github.com/Perl/perl5/commit/d1551701263026f31a4fc888baf66c415b3571b7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 34d48547a4a6a096c787c2bfb519982a9dbd9b66
      https://github.com/Perl/perl5/commit/34d48547a4a6a096c787c2bfb519982a9dbd9b66
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f1b82921cc34818b74d6820c747d93d013a9fbe9
      https://github.com/Perl/perl5/commit/f1b82921cc34818b74d6820c747d93d013a9fbe9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 7157cb626efca5ca270fd20d6c6f275fcae8a8d6
      https://github.com/Perl/perl5/commit/7157cb626efca5ca270fd20d6c6f275fcae8a8d6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M intrpvar.h
    M perl.h

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


  Commit: 1921861f4603e6c6d563a2c3934964d0422da9e4
      https://github.com/Perl/perl5/commit/1921861f4603e6c6d563a2c3934964d0422da9e4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M makedef.pl
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M locale.c

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


  Commit: 885faac103f77b5f954628896d0dcb1e93edadda
      https://github.com/Perl/perl5/commit/885faac103f77b5f954628896d0dcb1e93edadda
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: a7d39597d712321560efafd147958669cf782ab2
      https://github.com/Perl/perl5/commit/a7d39597d712321560efafd147958669cf782ab2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f5a4c89197256b3258e726b75694f7138d6d61c9
      https://github.com/Perl/perl5/commit/f5a4c89197256b3258e726b75694f7138d6d61c9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 7192b1cb38e453507c772d62dbf6c78c935f083a
      https://github.com/Perl/perl5/commit/7192b1cb38e453507c772d62dbf6c78c935f083a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4c92ff406c4212a8949c01721ff354586858f2ba
      https://github.com/Perl/perl5/commit/4c92ff406c4212a8949c01721ff354586858f2ba
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 43059c2338b06234b5aa92994cdfb0f0e7a12f21
      https://github.com/Perl/perl5/commit/43059c2338b06234b5aa92994cdfb0f0e7a12f21
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b4d0dd9781fc855c9820439f215eb68d99a3c4b8
      https://github.com/Perl/perl5/commit/b4d0dd9781fc855c9820439f215eb68d99a3c4b8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


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

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

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


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

  Changed paths:
    M locale.c

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


  Commit: 89a71aa11ae10c1880aa1bc7d6464b732615b123
      https://github.com/Perl/perl5/commit/89a71aa11ae10c1880aa1bc7d6464b732615b123
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 806cae16b8b49d5bf2fd7c211a0f12d3d87347dd
      https://github.com/Perl/perl5/commit/806cae16b8b49d5bf2fd7c211a0f12d3d87347dd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


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

  Changed paths:
    M perl.h

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


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

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

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


  Commit: 95e6b026a0630bd35dc495463bf0c191d5ffb614
      https://github.com/Perl/perl5/commit/95e6b026a0630bd35dc495463bf0c191d5ffb614
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 69c6335a5b16e7e8c29562b1966a7c338f403e8d
      https://github.com/Perl/perl5/commit/69c6335a5b16e7e8c29562b1966a7c338f403e8d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 429d7901d44996beea57819c5c2216f13f165197
      https://github.com/Perl/perl5/commit/429d7901d44996beea57819c5c2216f13f165197
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

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


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

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 4113a9908fbf994c06425cbbe02bc30f0d4c7fc0
      https://github.com/Perl/perl5/commit/4113a9908fbf994c06425cbbe02bc30f0d4c7fc0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  XXX loc tools needs work


  Commit: 959ecc58c69019804c574af765a98eb1b27a0f93
      https://github.com/Perl/perl5/commit/959ecc58c69019804c574af765a98eb1b27a0f93
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 6ac5d086fd0a570e86e1fe51e2e9df91115aab7f
      https://github.com/Perl/perl5/commit/6ac5d086fd0a570e86e1fe51e2e9df91115aab7f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: aeff4a17b1f993d34762aefd9787b331d3d123b7
      https://github.com/Perl/perl5/commit/aeff4a17b1f993d34762aefd9787b331d3d123b7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 51be8340b8cd8cd96746e0b2ba2fb5b742b14581
      https://github.com/Perl/perl5/commit/51be8340b8cd8cd96746e0b2ba2fb5b742b14581
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f29e099a3a9d67b720d2cfddb5314e827989dd6d
      https://github.com/Perl/perl5/commit/f29e099a3a9d67b720d2cfddb5314e827989dd6d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 17d6ac9c848d2c025e064691a9af692da8fa708e
      https://github.com/Perl/perl5/commit/17d6ac9c848d2c025e064691a9af692da8fa708e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 2676202e8c1d0cd51accf9fd55f73087080e3438
      https://github.com/Perl/perl5/commit/2676202e8c1d0cd51accf9fd55f73087080e3438
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M t/harness

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


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

  Changed paths:
    M pod/perllocale.pod

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


  Commit: 04c2edfd192dfbb6d28f8c6f33640d421878fc88
      https://github.com/Perl/perl5/commit/04c2edfd192dfbb6d28f8c6f33640d421878fc88
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 314d17985daa108e6deac99424d366ac1c42ce4a
      https://github.com/Perl/perl5/commit/314d17985daa108e6deac99424d366ac1c42ce4a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e876ab5ca460a9db0c016a24cb7552f8d800420d
      https://github.com/Perl/perl5/commit/e876ab5ca460a9db0c016a24cb7552f8d800420d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 287df56765a149d4a552e5d084eff55990d2025b
      https://github.com/Perl/perl5/commit/287df56765a149d4a552e5d084eff55990d2025b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 7838dca1d3bffd0d22740adf17600993c57ae0f0
      https://github.com/Perl/perl5/commit/7838dca1d3bffd0d22740adf17600993c57ae0f0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M handy.h

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


  Commit: 5552ed4e299c7d8d8b6f4798f4506e392b7c19ae
      https://github.com/Perl/perl5/commit/5552ed4e299c7d8d8b6f4798f4506e392b7c19ae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M iperlsys.h

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


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

  Changed paths:
    M regen/reentr.pl

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


  Commit: 349d2f01d32ab7d9a13e8aa86fcd70b9521887ef
      https://github.com/Perl/perl5/commit/349d2f01d32ab7d9a13e8aa86fcd70b9521887ef
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M regexec.c

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


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

  Changed paths:
    M sv.c

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


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

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

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


  Commit: de4f1aea7fa3ab2f3983e9610a8f302af88efa34
      https://github.com/Perl/perl5/commit/de4f1aea7fa3ab2f3983e9610a8f302af88efa34
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 7f1effb1b1e480527894afec7faae0d683fca07d
      https://github.com/Perl/perl5/commit/7f1effb1b1e480527894afec7faae0d683fca07d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M pp.c

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


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

  Changed paths:
    M pod/perlmod.pod

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


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

  Changed paths:
    M perl.h

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


  Commit: 333fdfbcb1bcd4213d8dc01e9b11e6e946628c9d
      https://github.com/Perl/perl5/commit/333fdfbcb1bcd4213d8dc01e9b11e6e946628c9d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 50647e3eb0e2e1b5bd1da48b1fc64acb5efad719
      https://github.com/Perl/perl5/commit/50647e3eb0e2e1b5bd1da48b1fc64acb5efad719
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f30c939b92362de0a0b424655244b99dbeb5851e
      https://github.com/Perl/perl5/commit/f30c939b92362de0a0b424655244b99dbeb5851e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 00a3b81eecf3fd5626f9ee6a7a1a1af24dbccc15
      https://github.com/Perl/perl5/commit/00a3b81eecf3fd5626f9ee6a7a1a1af24dbccc15
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 9aa4ac8c3ea6d831337e2b01573c3b0546000e97
      https://github.com/Perl/perl5/commit/9aa4ac8c3ea6d831337e2b01573c3b0546000e97
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e3ab71e2435889e8734cfdc52ddcbd8cb0d0df0e
      https://github.com/Perl/perl5/commit/e3ab71e2435889e8734cfdc52ddcbd8cb0d0df0e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: d2a84ba16bce9c1a346c577eacb04c90c38900dd
      https://github.com/Perl/perl5/commit/d2a84ba16bce9c1a346c577eacb04c90c38900dd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: de3f41adc97ba2c9c4e2c084533872c44ebcd692
      https://github.com/Perl/perl5/commit/de3f41adc97ba2c9c4e2c084533872c44ebcd692
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M embed.fnc
    M proto.h

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


  Commit: 35d33179e7685b6a23d9f4a7720a031d68d6627e
      https://github.com/Perl/perl5/commit/35d33179e7685b6a23d9f4a7720a031d68d6627e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 6798461d85f2c646b5631db787e15f9aac0f7989
      https://github.com/Perl/perl5/commit/6798461d85f2c646b5631db787e15f9aac0f7989
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 29bb9b4661d4413c8c97d59e855d0204df50991f
      https://github.com/Perl/perl5/commit/29bb9b4661d4413c8c97d59e855d0204df50991f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 348d737a6d6877a4090af830b56b279ca2d50cc7
      https://github.com/Perl/perl5/commit/348d737a6d6877a4090af830b56b279ca2d50cc7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 914d488de62d0bf2273bccd2aa268bf3a5b150a5
      https://github.com/Perl/perl5/commit/914d488de62d0bf2273bccd2aa268bf3a5b150a5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0b5684808225edfcd0a6515259f15501c36579b8
      https://github.com/Perl/perl5/commit/0b5684808225edfcd0a6515259f15501c36579b8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 8746d33a3946603472f8056806be8e15defd41ca
      https://github.com/Perl/perl5/commit/8746d33a3946603472f8056806be8e15defd41ca
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 791f90ff89439119ba1cdd2788abba7bfbd2403d
      https://github.com/Perl/perl5/commit/791f90ff89439119ba1cdd2788abba7bfbd2403d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 832f9b393888434c7e9a5c51c55d7290551c7fb2
      https://github.com/Perl/perl5/commit/832f9b393888434c7e9a5c51c55d7290551c7fb2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b3688a58d77db1176fcd9704122c07dbed6c1377
      https://github.com/Perl/perl5/commit/b3688a58d77db1176fcd9704122c07dbed6c1377
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 08c3c89f4cb3e90359561c23418864014cd8f6c5
      https://github.com/Perl/perl5/commit/08c3c89f4cb3e90359561c23418864014cd8f6c5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4a5beaf44eb305595e4772405996364e66414fad
      https://github.com/Perl/perl5/commit/4a5beaf44eb305595e4772405996364e66414fad
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: fc3b6ab14e0b54a1bc97e598428ca25825ac4979
      https://github.com/Perl/perl5/commit/fc3b6ab14e0b54a1bc97e598428ca25825ac4979
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 347b987d661111f3fcc1551c72471c515016860d
      https://github.com/Perl/perl5/commit/347b987d661111f3fcc1551c72471c515016860d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 6b1f32504b02f36d18c6190be68b818d052944d6
      https://github.com/Perl/perl5/commit/6b1f32504b02f36d18c6190be68b818d052944d6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 3cebafbc0584f530b1bf3037f164d93f2368a140
      https://github.com/Perl/perl5/commit/3cebafbc0584f530b1bf3037f164d93f2368a140
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 971b4e0cf8481c16555790c252844983da6e4a8d
      https://github.com/Perl/perl5/commit/971b4e0cf8481c16555790c252844983da6e4a8d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 7ef23825791e180d4a14d259a06879ffb37807f3
      https://github.com/Perl/perl5/commit/7ef23825791e180d4a14d259a06879ffb37807f3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 5c9a082b996c2e5831bdc1f736dbfcd41b73a6e2
      https://github.com/Perl/perl5/commit/5c9a082b996c2e5831bdc1f736dbfcd41b73a6e2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 1a10a839023e73c9bb8ddb8603c654fa03599b6b
      https://github.com/Perl/perl5/commit/1a10a839023e73c9bb8ddb8603c654fa03599b6b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b9a10f7f2b2700c8ef7d6c9c7bf539bbd9739bdf
      https://github.com/Perl/perl5/commit/b9a10f7f2b2700c8ef7d6c9c7bf539bbd9739bdf
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 355e3bec558ebcdefefd6db465fe95d12461ba79
      https://github.com/Perl/perl5/commit/355e3bec558ebcdefefd6db465fe95d12461ba79
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 13eaddbf9b9bf8ca347ed3e524b757e51dec91b9
      https://github.com/Perl/perl5/commit/13eaddbf9b9bf8ca347ed3e524b757e51dec91b9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 6a4ab3bacf04e53a63487a2bf4f0400ee28d9acc
      https://github.com/Perl/perl5/commit/6a4ab3bacf04e53a63487a2bf4f0400ee28d9acc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0f4ecf6cbcce4f5a755b7da7c5138843ea73e0dd
      https://github.com/Perl/perl5/commit/0f4ecf6cbcce4f5a755b7da7c5138843ea73e0dd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 99db3aa9fff2f22e1c169e703672e63f17b23d41
      https://github.com/Perl/perl5/commit/99db3aa9fff2f22e1c169e703672e63f17b23d41
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 959876a247a28d3ee643ec6c11529f660d753f8b
      https://github.com/Perl/perl5/commit/959876a247a28d3ee643ec6c11529f660d753f8b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: d77e6176b48821d8023fd4e59814dea95ab3acc3
      https://github.com/Perl/perl5/commit/d77e6176b48821d8023fd4e59814dea95ab3acc3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 2bfab720517e91fd7b59721e1efa854d7b345b42
      https://github.com/Perl/perl5/commit/2bfab720517e91fd7b59721e1efa854d7b345b42
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 79bf170ed1faeed89bcf1cb45fca250862cc02c2
      https://github.com/Perl/perl5/commit/79bf170ed1faeed89bcf1cb45fca250862cc02c2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 97d83a872cd205075a5b9a6da1ed4f3c9628b95e
      https://github.com/Perl/perl5/commit/97d83a872cd205075a5b9a6da1ed4f3c9628b95e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 197e096f6835d7a270cb8538bdb6cf6917a47864
      https://github.com/Perl/perl5/commit/197e096f6835d7a270cb8538bdb6cf6917a47864
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e9269f0e9bd69724b2a78e140d3a6f73e743c944
      https://github.com/Perl/perl5/commit/e9269f0e9bd69724b2a78e140d3a6f73e743c944
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ed7197d28c1fe5787b60c29514d9a3b5307f934a
      https://github.com/Perl/perl5/commit/ed7197d28c1fe5787b60c29514d9a3b5307f934a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 75dcbdd29c592797986634f6de5e00c4c1721893
      https://github.com/Perl/perl5/commit/75dcbdd29c592797986634f6de5e00c4c1721893
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 652cb49240e309bdfa052ab789745e74b99802bd
      https://github.com/Perl/perl5/commit/652cb49240e309bdfa052ab789745e74b99802bd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 7129c0f355eef3d458960db40fbf6691b75caa75
      https://github.com/Perl/perl5/commit/7129c0f355eef3d458960db40fbf6691b75caa75
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ec5b37997b52c80292b15323e9234fe96a49e61e
      https://github.com/Perl/perl5/commit/ec5b37997b52c80292b15323e9234fe96a49e61e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0d16ff484fc0333cc5419443ac6f1370043eae4d
      https://github.com/Perl/perl5/commit/0d16ff484fc0333cc5419443ac6f1370043eae4d
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 1dc795d948ba449572a4847caeb2e968fe0d8b4c
      https://github.com/Perl/perl5/commit/1dc795d948ba449572a4847caeb2e968fe0d8b4c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 8c32102d58c5deca6793724e75db45e26519ec19
      https://github.com/Perl/perl5/commit/8c32102d58c5deca6793724e75db45e26519ec19
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4b0131e07b4cc209c03fb932f7e12779aebf88e9
      https://github.com/Perl/perl5/commit/4b0131e07b4cc209c03fb932f7e12779aebf88e9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: a1437ae8811829acd2715c2cced1dab714fd4510
      https://github.com/Perl/perl5/commit/a1437ae8811829acd2715c2cced1dab714fd4510
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f89b511bbacc85ce1a1504c0a188bde988520a64
      https://github.com/Perl/perl5/commit/f89b511bbacc85ce1a1504c0a188bde988520a64
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

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


  Commit: c65adf24b2e70b97f85d5a864e06cd8f55fe1d4c
      https://github.com/Perl/perl5/commit/c65adf24b2e70b97f85d5a864e06cd8f55fe1d4c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e38d4749187d032d684cea6968bcd432d5698b38
      https://github.com/Perl/perl5/commit/e38d4749187d032d684cea6968bcd432d5698b38
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 46d000a6482903cff601769e5a4a3792b390ba50
      https://github.com/Perl/perl5/commit/46d000a6482903cff601769e5a4a3792b390ba50
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ec9f35d78920ea28f5f4e0c06dc8db49a59d79e5
      https://github.com/Perl/perl5/commit/ec9f35d78920ea28f5f4e0c06dc8db49a59d79e5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 2970a256aa8f89bba46f2f18b616058a16e924b1
      https://github.com/Perl/perl5/commit/2970a256aa8f89bba46f2f18b616058a16e924b1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 23a5243cfa347e275c13d5386125348bc0e4fc13
      https://github.com/Perl/perl5/commit/23a5243cfa347e275c13d5386125348bc0e4fc13
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 09f3d1251c71420ec8b0ac4c736ade0c6083e1eb
      https://github.com/Perl/perl5/commit/09f3d1251c71420ec8b0ac4c736ade0c6083e1eb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4962dee0ad7be68598fc25b0f0833cae225bd2d9
      https://github.com/Perl/perl5/commit/4962dee0ad7be68598fc25b0f0833cae225bd2d9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M embed.fnc
    M embed.h
    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: 57eb39a8d9a24e62fc9c3ebd66378c132bfe019e
      https://github.com/Perl/perl5/commit/57eb39a8d9a24e62fc9c3ebd66378c132bfe019e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M hints/aix.sh
    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: 95a16eee5bf48bcb00969b90b05720d59c33478e
      https://github.com/Perl/perl5/commit/95a16eee5bf48bcb00969b90b05720d59c33478e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 41fe4b5fd204cc65cfb11267ec445ec16c4ad0eb
      https://github.com/Perl/perl5/commit/41fe4b5fd204cc65cfb11267ec445ec16c4ad0eb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 1bdbdee4d35d5c1e87ab46945ffa231eef058487
      https://github.com/Perl/perl5/commit/1bdbdee4d35d5c1e87ab46945ffa231eef058487
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 718da86055151d88db03eae4b6c0f8d84380d08a
      https://github.com/Perl/perl5/commit/718da86055151d88db03eae4b6c0f8d84380d08a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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

on the systms that have it.


  Commit: c3327f1d272b775c61148e9af7637831aa58bd6e
      https://github.com/Perl/perl5/commit/c3327f1d272b775c61148e9af7637831aa58bd6e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: acd5944fa2c65420f866a318480f51fac99757ac
      https://github.com/Perl/perl5/commit/acd5944fa2c65420f866a318480f51fac99757ac
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 7f9397e606fb8d5e6d5a2de3178c9291d9ecb37a
      https://github.com/Perl/perl5/commit/7f9397e606fb8d5e6d5a2de3178c9291d9ecb37a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 845c7a257f8660107a86f545b3a02741b4819ec6
      https://github.com/Perl/perl5/commit/845c7a257f8660107a86f545b3a02741b4819ec6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 3cc72e1569893fb0037f142988871db6c26a3dfc
      https://github.com/Perl/perl5/commit/3cc72e1569893fb0037f142988871db6c26a3dfc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0171f632ab0695bc5c4f394d43a762a636faa5d2
      https://github.com/Perl/perl5/commit/0171f632ab0695bc5c4f394d43a762a636faa5d2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ca024e68bfd9d8e93f8aaae5537428c7a1b8b2f8
      https://github.com/Perl/perl5/commit/ca024e68bfd9d8e93f8aaae5537428c7a1b8b2f8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: a947b76b2d9014883b019a5e982fbcf7bb701c2b
      https://github.com/Perl/perl5/commit/a947b76b2d9014883b019a5e982fbcf7bb701c2b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 8e6ab47b2f209a5aa4e4f7a8f0f5a291f8459fd7
      https://github.com/Perl/perl5/commit/8e6ab47b2f209a5aa4e4f7a8f0f5a291f8459fd7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 650157ba8313f215d72a800f43fb77dc08635a93
      https://github.com/Perl/perl5/commit/650157ba8313f215d72a800f43fb77dc08635a93
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M utf8.h

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


  Commit: 7562d43c6ef0cd4f7db81ffbc48267b14ecdb3ab
      https://github.com/Perl/perl5/commit/7562d43c6ef0cd4f7db81ffbc48267b14ecdb3ab
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: cff26d4833497a65197e1f1359eda75b07bea9b1
      https://github.com/Perl/perl5/commit/cff26d4833497a65197e1f1359eda75b07bea9b1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 00988847c1b3d4b996dcd8d5193b8814359897f8
      https://github.com/Perl/perl5/commit/00988847c1b3d4b996dcd8d5193b8814359897f8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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

This previously added an extraneous unused element.


  Commit: 08bdb61967e45a98a2dc879f5636a73fbfa98ac8
      https://github.com/Perl/perl5/commit/08bdb61967e45a98a2dc879f5636a73fbfa98ac8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 5e6a221ffdac37b677bb020f923677edbfafbe5f
      https://github.com/Perl/perl5/commit/5e6a221ffdac37b677bb020f923677edbfafbe5f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: a207dfbaf636475d6b2b40bf205d37745905fe5f
      https://github.com/Perl/perl5/commit/a207dfbaf636475d6b2b40bf205d37745905fe5f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4b0e0c7d48e25a44f130f7280d2444ac26f01a10
      https://github.com/Perl/perl5/commit/4b0e0c7d48e25a44f130f7280d2444ac26f01a10
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ff2fca440a50c691baffa1bfc288b384222cf0a3
      https://github.com/Perl/perl5/commit/ff2fca440a50c691baffa1bfc288b384222cf0a3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 948dbad7ad5a98ffbad29f32cc032f007e44a1cd
      https://github.com/Perl/perl5/commit/948dbad7ad5a98ffbad29f32cc032f007e44a1cd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: cbf167bb228d5898fc80705cd7e2090c9dc0db51
      https://github.com/Perl/perl5/commit/cbf167bb228d5898fc80705cd7e2090c9dc0db51
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: d584e10766fea58a95fbda2895b8cd86b306817e
      https://github.com/Perl/perl5/commit/d584e10766fea58a95fbda2895b8cd86b306817e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: fa7e209a4ca311de71ae159157016b94d9d0741a
      https://github.com/Perl/perl5/commit/fa7e209a4ca311de71ae159157016b94d9d0741a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4b6588ae1ab0f170b41cd6c91447d67f58598ed0
      https://github.com/Perl/perl5/commit/4b6588ae1ab0f170b41cd6c91447d67f58598ed0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: a7c5603ab1a4c85a42b5cc9e40c10b5a9f7bbc59
      https://github.com/Perl/perl5/commit/a7c5603ab1a4c85a42b5cc9e40c10b5a9f7bbc59
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 78a440613d594feb861c5fb1e0d4c26210b3a2f8
      https://github.com/Perl/perl5/commit/78a440613d594feb861c5fb1e0d4c26210b3a2f8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b248389ff04ca79280d1da250f055a6c66d7dd9a
      https://github.com/Perl/perl5/commit/b248389ff04ca79280d1da250f055a6c66d7dd9a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: e2be6b5bca8150b3ea176387cb8225827ba5f2f7
      https://github.com/Perl/perl5/commit/e2be6b5bca8150b3ea176387cb8225827ba5f2f7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 63950157e499e8c1e8e7d2b3f250e3f5d1cd1116
      https://github.com/Perl/perl5/commit/63950157e499e8c1e8e7d2b3f250e3f5d1cd1116
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 21a485a4826ee209145f831c0e286b2872a4451c
      https://github.com/Perl/perl5/commit/21a485a4826ee209145f831c0e286b2872a4451c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0a1349a852d5f0744249b300c0ad4a7d82042cdc
      https://github.com/Perl/perl5/commit/0a1349a852d5f0744249b300c0ad4a7d82042cdc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: fe9d1563c1e5f04899e96f16e3c3bdf026ba0f9c
      https://github.com/Perl/perl5/commit/fe9d1563c1e5f04899e96f16e3c3bdf026ba0f9c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 9d86bd138ca346d87bcd95ba6bde19182a24f16c
      https://github.com/Perl/perl5/commit/9d86bd138ca346d87bcd95ba6bde19182a24f16c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

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


  Commit: 183c20b83d761e138ef4ab5d7b9a31703457286c
      https://github.com/Perl/perl5/commit/183c20b83d761e138ef4ab5d7b9a31703457286c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 6e57c19fb2db8ad8ef3d5db8a938a94d9815fb6a
      https://github.com/Perl/perl5/commit/6e57c19fb2db8ad8ef3d5db8a938a94d9815fb6a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 7a1be91114bab0ba91b7a7d2c0f6e569ceda9459
      https://github.com/Perl/perl5/commit/7a1be91114bab0ba91b7a7d2c0f6e569ceda9459
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 95f465a9effe876cf04a5551f52ebd16a45d1b47
      https://github.com/Perl/perl5/commit/95f465a9effe876cf04a5551f52ebd16a45d1b47
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: da2944a0b50a7f4761477a735895215bea6bf9a4
      https://github.com/Perl/perl5/commit/da2944a0b50a7f4761477a735895215bea6bf9a4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 5835010e221d65355608625e99713bcdad9b7098
      https://github.com/Perl/perl5/commit/5835010e221d65355608625e99713bcdad9b7098
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e06b7bcc2e6924d9bc6429d901a367376f360f61
      https://github.com/Perl/perl5/commit/e06b7bcc2e6924d9bc6429d901a367376f360f61
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0dca96c1b5d65629f56a439f97ecd131c68cfb58
      https://github.com/Perl/perl5/commit/0dca96c1b5d65629f56a439f97ecd131c68cfb58
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 44331d656851a2dd4adbe33050180777eff0d86e
      https://github.com/Perl/perl5/commit/44331d656851a2dd4adbe33050180777eff0d86e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 4731fc603a248d4a7344cce062895d2dba596df5
      https://github.com/Perl/perl5/commit/4731fc603a248d4a7344cce062895d2dba596df5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 7206f2b43c41c25e082a7b72d631d3c7390234ff
      https://github.com/Perl/perl5/commit/7206f2b43c41c25e082a7b72d631d3c7390234ff
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 95930c062b5d74a309a4e6152f86c63779825b93
      https://github.com/Perl/perl5/commit/95930c062b5d74a309a4e6152f86c63779825b93
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f97fb3c2500b761feb4a1454684f04ecdecebdd2
      https://github.com/Perl/perl5/commit/f97fb3c2500b761feb4a1454684f04ecdecebdd2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 80c864a51c5263027cc3df49592e7a4a1eb04684
      https://github.com/Perl/perl5/commit/80c864a51c5263027cc3df49592e7a4a1eb04684
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4bd87e5646c576aa2efec675611dec17f1a470b5
      https://github.com/Perl/perl5/commit/4bd87e5646c576aa2efec675611dec17f1a470b5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 94f8d203b459c175509df42dc6b3b155618bad46
      https://github.com/Perl/perl5/commit/94f8d203b459c175509df42dc6b3b155618bad46
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e755ec631ac13f902f08cfc2177c589d27cee3ca
      https://github.com/Perl/perl5/commit/e755ec631ac13f902f08cfc2177c589d27cee3ca
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b19e1bb3a561b3ca068457365b9a7b0c2876f684
      https://github.com/Perl/perl5/commit/b19e1bb3a561b3ca068457365b9a7b0c2876f684
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 80ffe9aefb44bab081acb2af1a962ed534cdb811
      https://github.com/Perl/perl5/commit/80ffe9aefb44bab081acb2af1a962ed534cdb811
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 4d33b1bf48668d62f872e08ff40160ec1292a5ef
      https://github.com/Perl/perl5/commit/4d33b1bf48668d62f872e08ff40160ec1292a5ef
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 99d6baaa3f52a9db5bf4efb47a2084677e9e371a
      https://github.com/Perl/perl5/commit/99d6baaa3f52a9db5bf4efb47a2084677e9e371a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 470e8a4f866986b4bff6f6ad9853ccfb87837883
      https://github.com/Perl/perl5/commit/470e8a4f866986b4bff6f6ad9853ccfb87837883
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: 2b1feeb1b203712bdf88c25852f6251ac97c88a1
      https://github.com/Perl/perl5/commit/2b1feeb1b203712bdf88c25852f6251ac97c88a1
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b1b0cb3b28106b7491d46bd04b0aac9cb7a2a778
      https://github.com/Perl/perl5/commit/b1b0cb3b28106b7491d46bd04b0aac9cb7a2a778
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 0d70ac5d41a6a6ccf9746b2552b77df31c8948ca
      https://github.com/Perl/perl5/commit/0d70ac5d41a6a6ccf9746b2552b77df31c8948ca
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 58e5eb9bde6116e193945cc2e1098fc446c7fbfd
      https://github.com/Perl/perl5/commit/58e5eb9bde6116e193945cc2e1098fc446c7fbfd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4c2a8b54cd0c5c252bd09fa956af4981e59eb4e4
      https://github.com/Perl/perl5/commit/4c2a8b54cd0c5c252bd09fa956af4981e59eb4e4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 6b0140b1db3512ae446f7d956249fdd11903f9f4
      https://github.com/Perl/perl5/commit/6b0140b1db3512ae446f7d956249fdd11903f9f4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 786c929b284a01008025efcf85cda44c780608c2
      https://github.com/Perl/perl5/commit/786c929b284a01008025efcf85cda44c780608c2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: a422ed5ee9f3d5addff4bc73080b47e1a77bb655
      https://github.com/Perl/perl5/commit/a422ed5ee9f3d5addff4bc73080b47e1a77bb655
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 72928c949d121033650c9f44a2f3bc79c594b573
      https://github.com/Perl/perl5/commit/72928c949d121033650c9f44a2f3bc79c594b573
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: e476a82ca12e7a32e77935e51378d05453673d93
      https://github.com/Perl/perl5/commit/e476a82ca12e7a32e77935e51378d05453673d93
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 2f142620b4fb6d9cb3f74c86dc8cf1c57debd309
      https://github.com/Perl/perl5/commit/2f142620b4fb6d9cb3f74c86dc8cf1c57debd309
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: f961847b64b19583518f2c96f50fd47ea1ffe5af
      https://github.com/Perl/perl5/commit/f961847b64b19583518f2c96f50fd47ea1ffe5af
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 8759fb6f8196f326d4748e7743b850390f88de19
      https://github.com/Perl/perl5/commit/8759fb6f8196f326d4748e7743b850390f88de19
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 9eed204d331b71453a2b3ab5e784626afb94a166
      https://github.com/Perl/perl5/commit/9eed204d331b71453a2b3ab5e784626afb94a166
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/porting/bincompat.t

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


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

  Changed paths:
    M hints/darwin.sh

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


  Commit: 272c0c9217a131ba060555837edb37250dbbd30c
      https://github.com/Perl/perl5/commit/272c0c9217a131ba060555837edb37250dbbd30c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M intrpvar.h

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


  Commit: 265de0159461055e109cc8ba108541f690e8b673
      https://github.com/Perl/perl5/commit/265de0159461055e109cc8ba108541f690e8b673
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: d39483a333cb657ddc7efecf2a24196a57e004c0
      https://github.com/Perl/perl5/commit/d39483a333cb657ddc7efecf2a24196a57e004c0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 9f94ee1b74fb6eb862c1ed19bdeac72bab6ccb5c
      https://github.com/Perl/perl5/commit/9f94ee1b74fb6eb862c1ed19bdeac72bab6ccb5c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: c5c94075eb3e272e955bdde1a43951b16f80c2b6
      https://github.com/Perl/perl5/commit/c5c94075eb3e272e955bdde1a43951b16f80c2b6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 27e760d08c486720d562383067853c05529ae82a
      https://github.com/Perl/perl5/commit/27e760d08c486720d562383067853c05529ae82a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 93decfd519bcdf0c701255b923d545995f07c6d6
      https://github.com/Perl/perl5/commit/93decfd519bcdf0c701255b923d545995f07c6d6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 06e044c7b8de91182ecb1b99826d3eb4eb5081e6
      https://github.com/Perl/perl5/commit/06e044c7b8de91182ecb1b99826d3eb4eb5081e6
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 09684e25d96e958148ead0799030b5687bd2f9f9
      https://github.com/Perl/perl5/commit/09684e25d96e958148ead0799030b5687bd2f9f9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 2bb1bc637fc813f955d3ff4b72b40be8b5047bb2
      https://github.com/Perl/perl5/commit/2bb1bc637fc813f955d3ff4b72b40be8b5047bb2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M perl.h

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


  Commit: a73e1430ceb77e65d23df08819a0c31e35d969f4
      https://github.com/Perl/perl5/commit/a73e1430ceb77e65d23df08819a0c31e35d969f4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: db7fffb4111b1c1ae17c3b117c7a3b6f598bf8d3
      https://github.com/Perl/perl5/commit/db7fffb4111b1c1ae17c3b117c7a3b6f598bf8d3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 92cab293803136badcd2fa6eeee70fc3e0be6fa9
      https://github.com/Perl/perl5/commit/92cab293803136badcd2fa6eeee70fc3e0be6fa9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 57336dbe020e1939ad0c4df9b092a3f229791d48
      https://github.com/Perl/perl5/commit/57336dbe020e1939ad0c4df9b092a3f229791d48
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 53ccff47489ce8f97f834e634668ea51b3a0be16
      https://github.com/Perl/perl5/commit/53ccff47489ce8f97f834e634668ea51b3a0be16
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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

This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.


  Commit: 2993c79688dd1ed0eece00496c4c602b72c89c16
      https://github.com/Perl/perl5/commit/2993c79688dd1ed0eece00496c4c602b72c89c16
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: e919eb8aa2ebe8ff250c873df7d409e927ab84a5
      https://github.com/Perl/perl5/commit/e919eb8aa2ebe8ff250c873df7d409e927ab84a5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: c9163d5b7007b042aea38fefa611fdffda88522f
      https://github.com/Perl/perl5/commit/c9163d5b7007b042aea38fefa611fdffda88522f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M perl.h

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


  Commit: 9642c0f5f37ee1b9cefe68b3bd50642966e4d77e
      https://github.com/Perl/perl5/commit/9642c0f5f37ee1b9cefe68b3bd50642966e4d77e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M Configure

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: 801fa65566883ba6e66502f4b08ca70e8abb4f58
      https://github.com/Perl/perl5/commit/801fa65566883ba6e66502f4b08ca70e8abb4f58
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 21c439901e4bb08942b2baa962463884cf00fd10
      https://github.com/Perl/perl5/commit/21c439901e4bb08942b2baa962463884cf00fd10
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

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


  Commit: 2482fe157fb23b1ebf65cb2ee2fbde1f5699f3af
      https://github.com/Perl/perl5/commit/2482fe157fb23b1ebf65cb2ee2fbde1f5699f3af
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 84e99e81664a09a2d430ab0ea954c2bd6121d9e2
      https://github.com/Perl/perl5/commit/84e99e81664a09a2d430ab0ea954c2bd6121d9e2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 6a5048b8231ad8a7d5f7d3bafe1b1484b3695a90
      https://github.com/Perl/perl5/commit/6a5048b8231ad8a7d5f7d3bafe1b1484b3695a90
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: af35a2f1f1f62099e1c53e3fdb70aeff16e9d821
      https://github.com/Perl/perl5/commit/af35a2f1f1f62099e1c53e3fdb70aeff16e9d821
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 88a7b944fb4cd5f1e0f396c12744bb2013680e5a
      https://github.com/Perl/perl5/commit/88a7b944fb4cd5f1e0f396c12744bb2013680e5a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 3b7c658e3940e78ec02deee02a2805532b5bbba8
      https://github.com/Perl/perl5/commit/3b7c658e3940e78ec02deee02a2805532b5bbba8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: ca98afd50a17cac9f9c0d7e03960ee791b4331f5
      https://github.com/Perl/perl5/commit/ca98afd50a17cac9f9c0d7e03960ee791b4331f5
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b30aa989941d9d61f5b422088851e64204139401
      https://github.com/Perl/perl5/commit/b30aa989941d9d61f5b422088851e64204139401
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: fd77a416b4781ff29716573b9912faea23503252
      https://github.com/Perl/perl5/commit/fd77a416b4781ff29716573b9912faea23503252
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: d042b6b3ed7780c98dbac12e4666b5eba7bbefa3
      https://github.com/Perl/perl5/commit/d042b6b3ed7780c98dbac12e4666b5eba7bbefa3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 52af31b233bc29c752fcdac0fa8e77dfa88332a9
      https://github.com/Perl/perl5/commit/52af31b233bc29c752fcdac0fa8e77dfa88332a9
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 87335b63f9d14bdd851140cf5a469b723b69fa01
      https://github.com/Perl/perl5/commit/87335b63f9d14bdd851140cf5a469b723b69fa01
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


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

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

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


  Commit: a3752af8b784ad1b100c9498ccac9113781787d8
      https://github.com/Perl/perl5/commit/a3752af8b784ad1b100c9498ccac9113781787d8
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 69cf11fb63f6322edf8c1d22155662ef0f719d63
      https://github.com/Perl/perl5/commit/69cf11fb63f6322edf8c1d22155662ef0f719d63
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 8e64c1fc189e300cdd48fb694a040a41e6fdac8a
      https://github.com/Perl/perl5/commit/8e64c1fc189e300cdd48fb694a040a41e6fdac8a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: aad8bbd46f3ee804d406102c8317e26bf0fbeb10
      https://github.com/Perl/perl5/commit/aad8bbd46f3ee804d406102c8317e26bf0fbeb10
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 46fb2ca8f988dc578b3927414558ea8396337ddc
      https://github.com/Perl/perl5/commit/46fb2ca8f988dc578b3927414558ea8396337ddc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 3bcca1a7795ceade29b6945f8eca515068fd8503
      https://github.com/Perl/perl5/commit/3bcca1a7795ceade29b6945f8eca515068fd8503
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 814cf55ad9db9b2d5424b6f09e87e86f83001112
      https://github.com/Perl/perl5/commit/814cf55ad9db9b2d5424b6f09e87e86f83001112
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: a6a7a032fdd6edb5e860059410b4bc216093ff7e
      https://github.com/Perl/perl5/commit/a6a7a032fdd6edb5e860059410b4bc216093ff7e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 69eb4211d375633f7ebe9c126e2aac3d14f544f3
      https://github.com/Perl/perl5/commit/69eb4211d375633f7ebe9c126e2aac3d14f544f3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 83827f9de661592e637c990448f8a81424d11bf3
      https://github.com/Perl/perl5/commit/83827f9de661592e637c990448f8a81424d11bf3
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

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

  Log Message:
  -----------
  Time-Piece: notes to myself


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

  Changed paths:
    M locale.c
    M t/run/locale.t

  Log Message:
  -----------
  dregs


  Commit: 80f06ed26b8b9c69a1648fde7675642ba3767dc4
      https://github.com/Perl/perl5/commit/80f06ed26b8b9c69a1648fde7675642ba3767dc4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 84bd9bcc4e48aa8a90d6310936fea3392cfa6118
      https://github.com/Perl/perl5/commit/84bd9bcc4e48aa8a90d6310936fea3392cfa6118
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M util.c

  Log Message:
  -----------
  util.c: Better panic messages


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

  Changed paths:
    M win32/Makefile

  Log Message:
  -----------
  win32 Makefile


  Commit: e781e9229e021dad7d3542cdde18cb912dde0b38
      https://github.com/Perl/perl5/commit/e781e9229e021dad7d3542cdde18cb912dde0b38
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 2628d86947a804f717e76039ac09084b6cd16a0b
      https://github.com/Perl/perl5/commit/2628d86947a804f717e76039ac09084b6cd16a0b
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: e6d678c9e832ecc2e2bed804cf4416db2d5377fd
      https://github.com/Perl/perl5/commit/e6d678c9e832ecc2e2bed804cf4416db2d5377fd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 5fc38460c20aac791d9cf012cc238ed4290985bc
      https://github.com/Perl/perl5/commit/5fc38460c20aac791d9cf012cc238ed4290985bc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 8dcfa9f8a25e8c77bbe8e68ea4ac148c5e450d05
      https://github.com/Perl/perl5/commit/8dcfa9f8a25e8c77bbe8e68ea4ac148c5e450d05
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: dab5981d481995939ca45939f84a4059510656fb
      https://github.com/Perl/perl5/commit/dab5981d481995939ca45939f84a4059510656fb
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M t/re/pat.t

  Log Message:
  -----------
  re/pat.t: Fix typo in comment


  Commit: 740b5c43539404ecf263d368550d6f00e4537f0a
      https://github.com/Perl/perl5/commit/740b5c43539404ecf263d368550d6f00e4537f0a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 549935088b0e8416499acc55c253d03625c45768
      https://github.com/Perl/perl5/commit/549935088b0e8416499acc55c253d03625c45768
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 5d2cb85e59f2a54d27482a2af7dada8d832b3682
      https://github.com/Perl/perl5/commit/5d2cb85e59f2a54d27482a2af7dada8d832b3682
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 2d59c7b55de9d76081728116cfc32323d2e21a1c
      https://github.com/Perl/perl5/commit/2d59c7b55de9d76081728116cfc32323d2e21a1c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M inline.h

  Log Message:
  -----------
  Revert #if 0 in inline.h

I don't remember why this was done


  Commit: 03be37de303ea853ab0121050de28559908f1ebc
      https://github.com/Perl/perl5/commit/03be37de303ea853ab0121050de28559908f1ebc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: b0897574181da803740612e34a5411e822730200
      https://github.com/Perl/perl5/commit/b0897574181da803740612e34a5411e822730200
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: abf7c917f6c5e9c24b4bac9ce1050fe8de94305f
      https://github.com/Perl/perl5/commit/abf7c917f6c5e9c24b4bac9ce1050fe8de94305f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 41a09d913cf3cb059e6ef96f4120d78668b8e802
      https://github.com/Perl/perl5/commit/41a09d913cf3cb059e6ef96f4120d78668b8e802
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M util.c
    M win32/perlhost.h

  Log Message:
  -----------
  XXX Win32 mem log


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

  Changed paths:
    M util.c

  Log Message:
  -----------
  XXX util add thread to mem_log


  Commit: 90524025393131a110c9e1d1179b0f939f0f9d6c
      https://github.com/Perl/perl5/commit/90524025393131a110c9e1d1179b0f939f0f9d6c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX mv: initialize PL_cur_LC_ALL


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

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Debug wrap wset


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

  Changed paths:
    M locale.c

  Log Message:
  -----------
  more dregs


  Commit: 425a3f43e04ddbda4e192aaaf1448121fd3f2e51
      https://github.com/Perl/perl5/commit/425a3f43e04ddbda4e192aaaf1448121fd3f2e51
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  f XXX maybe


  Commit: 752633e5f72b9c07ea533118c09627a142440dbd
      https://github.com/Perl/perl5/commit/752633e5f72b9c07ea533118c09627a142440dbd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 0acbeea1b2d179bec3b5bccde72998fd598dc85c
      https://github.com/Perl/perl5/commit/0acbeea1b2d179bec3b5bccde72998fd598dc85c
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 9d3ba1c3612da215636e23b9329f046f181351ae
      https://github.com/Perl/perl5/commit/9d3ba1c3612da215636e23b9329f046f181351ae
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 3d2b96f2ab9385d904945f0259e63fa358b3f4c7
      https://github.com/Perl/perl5/commit/3d2b96f2ab9385d904945f0259e63fa358b3f4c7
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 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: 4370e00bf50d2bd0780c9b038115725b1bf449df
      https://github.com/Perl/perl5/commit/4370e00bf50d2bd0780c9b038115725b1bf449df
  Author: Karl Williamson <khw@cpan.org>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  dregs


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

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Win32 also can determine the codeset

This code adds the codeset detail to debugging statements.  It didn't
change when the ability to find the codeset on Windows platforms was
added, so the detail was ommited for them, until this commit.


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

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Change some -DLv statements to -DL

These debug statements show something isn't quite normal, so shouldn't
require a verbose option to be displayed


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

  Changed paths:
    M embed.fnc
    M embed.h
    M ext/POSIX/t/time.t
    M intrpvar.h
    M lib/locale_threads.t
    M locale.c
    M perl.h
    M perl_langinfo.h
    M proto.h
    M t/loc_tools.pl

  Log Message:
  -----------
  foo


Compare: https://github.com/Perl/perl5/compare/a487f97322b7...01c98f7adc4a


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic