Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: a045942efa394f65cfda17403fb80f727bce9c67
      
https://github.com/Perl/perl5/commit/a045942efa394f65cfda17403fb80f727bce9c67
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/harness

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


  Commit: c30c543de4fb546d6ff313c970d1bc5d8cb84ab2
      
https://github.com/Perl/perl5/commit/c30c543de4fb546d6ff313c970d1bc5d8cb84ab2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 51c07181edf0ba2f0309e23c6c2cfc9860286ff3
      
https://github.com/Perl/perl5/commit/51c07181edf0ba2f0309e23c6c2cfc9860286ff3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 9f7142006d9ae5b128dd3fc3896f1aad6289b848
      
https://github.com/Perl/perl5/commit/9f7142006d9ae5b128dd3fc3896f1aad6289b848
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/TEST

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


  Commit: b67a1d322921ba85388a3d0a8c42125347ed9ed6
      
https://github.com/Perl/perl5/commit/b67a1d322921ba85388a3d0a8c42125347ed9ed6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4513107a8a449f187c4c9223d76fe18c8e310956
      
https://github.com/Perl/perl5/commit/4513107a8a449f187c4c9223d76fe18c8e310956
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 44d1b2f0c971f579aa8797ab8282d3f5f5154c7d
      
https://github.com/Perl/perl5/commit/44d1b2f0c971f579aa8797ab8282d3f5f5154c7d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/test.pl

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


  Commit: cb99dd2c8e4c5d03e2c7c843598f91d65041a789
      
https://github.com/Perl/perl5/commit/cb99dd2c8e4c5d03e2c7c843598f91d65041a789
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/test.pl

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

This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.


  Commit: e536837d86c0d4e23549f3bcfced02785d0a53ab
      
https://github.com/Perl/perl5/commit/e536837d86c0d4e23549f3bcfced02785d0a53ab
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/run/locale.t

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


  Commit: 21bdec710566376412c15b4ba1112fd3c8262845
      
https://github.com/Perl/perl5/commit/21bdec710566376412c15b4ba1112fd3c8262845
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/run/locale.t

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


  Commit: 02409a46f5cf844ace1c6e2ab7f84b0920cf1a54
      
https://github.com/Perl/perl5/commit/02409a46f5cf844ace1c6e2ab7f84b0920cf1a54
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3ea128f49efab80b277777040ad2f9a3cef7451b
      
https://github.com/Perl/perl5/commit/3ea128f49efab80b277777040ad2f9a3cef7451b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a3ed86e436b89f7c4dfdd33a325f15abdec1455a
      
https://github.com/Perl/perl5/commit/a3ed86e436b89f7c4dfdd33a325f15abdec1455a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M vutil.c

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


  Commit: 8f028f1c1a8c04d6b0680bdf1b610ed8c054418e
      
https://github.com/Perl/perl5/commit/8f028f1c1a8c04d6b0680bdf1b610ed8c054418e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 9254f48c5685f3ccd8f57b381e3301b89c869b86
      
https://github.com/Perl/perl5/commit/9254f48c5685f3ccd8f57b381e3301b89c869b86
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a2fd731a043757e093f98c85d6d661e80e04ab03
      
https://github.com/Perl/perl5/commit/a2fd731a043757e093f98c85d6d661e80e04ab03
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 910d25b8572c2833debe741b70237447942aee2a
      
https://github.com/Perl/perl5/commit/910d25b8572c2833debe741b70237447942aee2a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M vutil.c

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


  Commit: 237a03db65be2f86e90f22450f50d17d80caad81
      
https://github.com/Perl/perl5/commit/237a03db65be2f86e90f22450f50d17d80caad81
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ee3f414677943c5094d1162ffa0e7da2192701f2
      
https://github.com/Perl/perl5/commit/ee3f414677943c5094d1162ffa0e7da2192701f2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4a17bf6e6f63e7649228f4233f0a95473becaf9d
      
https://github.com/Perl/perl5/commit/4a17bf6e6f63e7649228f4233f0a95473becaf9d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 95f4fd00d11200fbd7a0f26e3ab726c8edcca11e
      
https://github.com/Perl/perl5/commit/95f4fd00d11200fbd7a0f26e3ab726c8edcca11e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/porting/cmp_version.t

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


  Commit: f04d213ee2dbcdc8680637a59ac812d6e5d2b61b
      
https://github.com/Perl/perl5/commit/f04d213ee2dbcdc8680637a59ac812d6e5d2b61b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 4b184083d66de6149cd088178251761803f5f34a
      
https://github.com/Perl/perl5/commit/4b184083d66de6149cd088178251761803f5f34a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 5f4f79025afe16de52dac1e98bb4e2a82ea0d21c
      
https://github.com/Perl/perl5/commit/5f4f79025afe16de52dac1e98bb4e2a82ea0d21c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M Configure

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


  Commit: bf821cd7a028ea4386a41de3155c7c218f7e5f72
      
https://github.com/Perl/perl5/commit/bf821cd7a028ea4386a41de3155c7c218f7e5f72
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 736862b4666c0e629be2c72aaef6b3f1c367b9c2
      
https://github.com/Perl/perl5/commit/736862b4666c0e629be2c72aaef6b3f1c367b9c2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 1d0267bd9c757462fabb013eea70e921bee96b10
      
https://github.com/Perl/perl5/commit/1d0267bd9c757462fabb013eea70e921bee96b10
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a5677e45eb46e965aa5e45924dc399c24161f461
      
https://github.com/Perl/perl5/commit/a5677e45eb46e965aa5e45924dc399c24161f461
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7cef3751885b16c7417127663dace5cb94a0721e
      
https://github.com/Perl/perl5/commit/7cef3751885b16c7417127663dace5cb94a0721e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b519d26a63e5d063ad42f31670dd1f4b4d2d4a48
      
https://github.com/Perl/perl5/commit/b519d26a63e5d063ad42f31670dd1f4b4d2d4a48
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M intrpvar.h
    M perl.h

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


  Commit: da0e4737f2c247356794978ba73388e0f3393308
      
https://github.com/Perl/perl5/commit/da0e4737f2c247356794978ba73388e0f3393308
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M makedef.pl
    M perl.h

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


  Commit: b1d7d17084e688f9f0d4b4d837489a1e2b594116
      
https://github.com/Perl/perl5/commit/b1d7d17084e688f9f0d4b4d837489a1e2b594116
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: e8e0d7ef39a1a2e8120c1230766980763686ae79
      
https://github.com/Perl/perl5/commit/e8e0d7ef39a1a2e8120c1230766980763686ae79
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 759ff5954d41713990098ad27d70d3c56e7bd2dd
      
https://github.com/Perl/perl5/commit/759ff5954d41713990098ad27d70d3c56e7bd2dd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: d92dee84a8fd811ed543a40041ebff164a244349
      
https://github.com/Perl/perl5/commit/d92dee84a8fd811ed543a40041ebff164a244349
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 9eb8ad39ff43eb1500951434857579be1d88388b
      
https://github.com/Perl/perl5/commit/9eb8ad39ff43eb1500951434857579be1d88388b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a311efd3c8fd56b3f15106608a57c28dbd9226ee
      
https://github.com/Perl/perl5/commit/a311efd3c8fd56b3f15106608a57c28dbd9226ee
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 25eb705029819800086b003cbf2b24aad3be5d3a
      
https://github.com/Perl/perl5/commit/25eb705029819800086b003cbf2b24aad3be5d3a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 6fbdcf44a4e190cccbcf060b5b9c921181db881b
      
https://github.com/Perl/perl5/commit/6fbdcf44a4e190cccbcf060b5b9c921181db881b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 555112391defa2a34a33f91ed0f2189b7001a5d9
      
https://github.com/Perl/perl5/commit/555112391defa2a34a33f91ed0f2189b7001a5d9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 1de3e967214dc0e3238ee4d82ef976f5aafaa2bd
      
https://github.com/Perl/perl5/commit/1de3e967214dc0e3238ee4d82ef976f5aafaa2bd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 5ef85aba321442a3fb693289f3e2dbbc2b2c1824
      
https://github.com/Perl/perl5/commit/5ef85aba321442a3fb693289f3e2dbbc2b2c1824
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: bb2f7ea6ee5c7cef56c956dba9ec165c3da3626e
      
https://github.com/Perl/perl5/commit/bb2f7ea6ee5c7cef56c956dba9ec165c3da3626e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 7ea0fe4ae59ccead0716b9aa5458873d2defdbb9
      
https://github.com/Perl/perl5/commit/7ea0fe4ae59ccead0716b9aa5458873d2defdbb9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: d12d045e1e7f9bcdfb75d9dce1b74ba24c6a510f
      
https://github.com/Perl/perl5/commit/d12d045e1e7f9bcdfb75d9dce1b74ba24c6a510f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  XXX locale_threads.t: Add alarm


  Commit: 7ceb9900626e9b5ac92ef7c95abc77f4230b5d74
      
https://github.com/Perl/perl5/commit/7ceb9900626e9b5ac92ef7c95abc77f4230b5d74
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: fe6b79d4021a45efaf22e66e0b0d598bf1b083bd
      
https://github.com/Perl/perl5/commit/fe6b79d4021a45efaf22e66e0b0d598bf1b083bd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 644b410324b4dbadb203e2ca015f0f3f9b525874
      
https://github.com/Perl/perl5/commit/644b410324b4dbadb203e2ca015f0f3f9b525874
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 2e24349029caf8f2bcd25bce35c6c548478dc281
      
https://github.com/Perl/perl5/commit/2e24349029caf8f2bcd25bce35c6c548478dc281
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: fe7d9d5bca4bc8e04d20de80f8abb7590109683b
      
https://github.com/Perl/perl5/commit/fe7d9d5bca4bc8e04d20de80f8abb7590109683b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: d44b73379ba6ab86592b799d3d447b39e182889b
      
https://github.com/Perl/perl5/commit/d44b73379ba6ab86592b799d3d447b39e182889b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 1bc112f8aa2d0fa641421aa2fa67b1cee87da7de
      
https://github.com/Perl/perl5/commit/1bc112f8aa2d0fa641421aa2fa67b1cee87da7de
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c287dab595dc88185f20a0abbca6f7cdd556722c
      
https://github.com/Perl/perl5/commit/c287dab595dc88185f20a0abbca6f7cdd556722c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 023223e7423f3688d2109c9e85c80d985f502674
      
https://github.com/Perl/perl5/commit/023223e7423f3688d2109c9e85c80d985f502674
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c8cb6a68dda7453b9433fdb129dbbab33783fb8d
      
https://github.com/Perl/perl5/commit/c8cb6a68dda7453b9433fdb129dbbab33783fb8d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 236f9544e795f486cf3c2e35b6585ffa60750f61
      
https://github.com/Perl/perl5/commit/236f9544e795f486cf3c2e35b6585ffa60750f61
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 4e3cd51c92fc6786a843fcf6f5409f2a0205e809
      
https://github.com/Perl/perl5/commit/4e3cd51c92fc6786a843fcf6f5409f2a0205e809
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 95bfa869656ea7cb067eaffc4b8bf74b1b77569e
      
https://github.com/Perl/perl5/commit/95bfa869656ea7cb067eaffc4b8bf74b1b77569e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/harness

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


  Commit: 907de964b87704a56ff8a9fe903c276ecb3d14cb
      
https://github.com/Perl/perl5/commit/907de964b87704a56ff8a9fe903c276ecb3d14cb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M pod/perllocale.pod

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


  Commit: 9ed8889f9753b472bc0a83350824d4ffb66a3507
      
https://github.com/Perl/perl5/commit/9ed8889f9753b472bc0a83350824d4ffb66a3507
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  XXX ruler lib/locale_threads.t


  Commit: 9dd97da1c2c43b9d98b4283903c27c461a8f5071
      
https://github.com/Perl/perl5/commit/9dd97da1c2c43b9d98b4283903c27c461a8f5071
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 74be251d9b2a774230a620b3a90de69fea1bd617
      
https://github.com/Perl/perl5/commit/74be251d9b2a774230a620b3a90de69fea1bd617
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b2999fb8b8e55944311e0a346291c9f2807e5448
      
https://github.com/Perl/perl5/commit/b2999fb8b8e55944311e0a346291c9f2807e5448
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 10504d81bf76b26d2fcbf3326d214742b32e1da9
      
https://github.com/Perl/perl5/commit/10504d81bf76b26d2fcbf3326d214742b32e1da9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M lib/locale.t

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


  Commit: f875d7a50884974cf46a265664b4579566b4acf3
      
https://github.com/Perl/perl5/commit/f875d7a50884974cf46a265664b4579566b4acf3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M lib/locale.t

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


  Commit: 5ef274f579671823c66113a70ff5540bdbd641a3
      
https://github.com/Perl/perl5/commit/5ef274f579671823c66113a70ff5540bdbd641a3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M lib/locale.t

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


  Commit: bbb1fcd3e0efc093909c4e0f8b787bea57198a75
      
https://github.com/Perl/perl5/commit/bbb1fcd3e0efc093909c4e0f8b787bea57198a75
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 22204e7e42cdaf190f730a30ae5c51a71275fbb0
      
https://github.com/Perl/perl5/commit/22204e7e42cdaf190f730a30ae5c51a71275fbb0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M handy.h

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


  Commit: 9c665de7c0c2b9e92541a5231fd3778e1dc5d840
      
https://github.com/Perl/perl5/commit/9c665de7c0c2b9e92541a5231fd3778e1dc5d840
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M iperlsys.h

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


  Commit: 47865b29c5fb128c048089a4d0eb51c3d3b5fd83
      
https://github.com/Perl/perl5/commit/47865b29c5fb128c048089a4d0eb51c3d3b5fd83
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M regen/reentr.pl

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


  Commit: 8848bac1f78b2f0931e14c6fdae72512a83f74c6
      
https://github.com/Perl/perl5/commit/8848bac1f78b2f0931e14c6fdae72512a83f74c6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M regexec.c

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


  Commit: f2136df651e4afe43b3995e3e7df0c6d37ed1bb1
      
https://github.com/Perl/perl5/commit/f2136df651e4afe43b3995e3e7df0c6d37ed1bb1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M sv.c

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


  Commit: e1aaaad784139300f508c868e25cd9596ab65095
      
https://github.com/Perl/perl5/commit/e1aaaad784139300f508c868e25cd9596ab65095
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: b448962a75926c2e1a6b0ca1b6007e633d32e879
      
https://github.com/Perl/perl5/commit/b448962a75926c2e1a6b0ca1b6007e633d32e879
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 308e0af7da9f968f41b6680e08317925bcf4c570
      
https://github.com/Perl/perl5/commit/308e0af7da9f968f41b6680e08317925bcf4c570
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M pp.c

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


  Commit: a38cf71267b6cb86827552a0c42a3283652d853d
      
https://github.com/Perl/perl5/commit/a38cf71267b6cb86827552a0c42a3283652d853d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M pod/perlmod.pod

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


  Commit: 1c59699c55d94f2eedee4e09a2532ed39e8f81f2
      
https://github.com/Perl/perl5/commit/1c59699c55d94f2eedee4e09a2532ed39e8f81f2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: d72406f92fb8ff50933d2739376d5ba714fa33aa
      
https://github.com/Perl/perl5/commit/d72406f92fb8ff50933d2739376d5ba714fa33aa
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 22acf153de047e6c722aaf651486e924f9c64215
      
https://github.com/Perl/perl5/commit/22acf153de047e6c722aaf651486e924f9c64215
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 62ae94ff447ec68c0b81a810e68c99f509311375
      
https://github.com/Perl/perl5/commit/62ae94ff447ec68c0b81a810e68c99f509311375
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: d23dff35ca5f818afc83a950c88a4870095dc236
      
https://github.com/Perl/perl5/commit/d23dff35ca5f818afc83a950c88a4870095dc236
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0f0eac16ad1dc7d583314478f2819af97f21d34c
      
https://github.com/Perl/perl5/commit/0f0eac16ad1dc7d583314478f2819af97f21d34c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 2277af7b2f5589028f861d08bce7a5b286db08ca
      
https://github.com/Perl/perl5/commit/2277af7b2f5589028f861d08bce7a5b286db08ca
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 648241fa89867e1d83f7c29482a79ccaf0a22286
      
https://github.com/Perl/perl5/commit/648241fa89867e1d83f7c29482a79ccaf0a22286
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 368939816cecd6d4c1988ed80ed8323ff3ced4d1
      
https://github.com/Perl/perl5/commit/368939816cecd6d4c1988ed80ed8323ff3ced4d1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M embed.fnc
    M proto.h

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


  Commit: 9197b50d885af23cfa30d9ba8aa0b1264e6b8e23
      
https://github.com/Perl/perl5/commit/9197b50d885af23cfa30d9ba8aa0b1264e6b8e23
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 86c715ad017b1b13b4f784e24e4a1c4f641cf123
      
https://github.com/Perl/perl5/commit/86c715ad017b1b13b4f784e24e4a1c4f641cf123
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0f2c951ddcb20135da23202a72b4b1e049215c5d
      
https://github.com/Perl/perl5/commit/0f2c951ddcb20135da23202a72b4b1e049215c5d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c2893b6c9584e33534b4deda948841d15c91cc21
      
https://github.com/Perl/perl5/commit/c2893b6c9584e33534b4deda948841d15c91cc21
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 1cb5a54064eeef63db3d468d6a9d98826c8a6386
      
https://github.com/Perl/perl5/commit/1cb5a54064eeef63db3d468d6a9d98826c8a6386
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3b99d7fa1caa880fd18ed9319179a08820f595da
      
https://github.com/Perl/perl5/commit/3b99d7fa1caa880fd18ed9319179a08820f595da
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 8cebfb8862f8c7924ca87b1f917f2e2f078017b8
      
https://github.com/Perl/perl5/commit/8cebfb8862f8c7924ca87b1f917f2e2f078017b8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0be0f72502fbf3abc716ef45adcc56b6ae7531d4
      
https://github.com/Perl/perl5/commit/0be0f72502fbf3abc716ef45adcc56b6ae7531d4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f435754e65b0bf23b905bbe8cdb13c8880363b51
      
https://github.com/Perl/perl5/commit/f435754e65b0bf23b905bbe8cdb13c8880363b51
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 688f10f68045adfe252053f6f2b9877ff48e8205
      
https://github.com/Perl/perl5/commit/688f10f68045adfe252053f6f2b9877ff48e8205
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4058d92e676020cd5feb52e1e0bea3ef267668bf
      
https://github.com/Perl/perl5/commit/4058d92e676020cd5feb52e1e0bea3ef267668bf
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 155465a82d7d921f33b9618430481e105c99f570
      
https://github.com/Perl/perl5/commit/155465a82d7d921f33b9618430481e105c99f570
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 29abf9ff33b52d7ff1479524701cd58a6acbd498
      
https://github.com/Perl/perl5/commit/29abf9ff33b52d7ff1479524701cd58a6acbd498
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: d26ae453890908bc2522974fb97fb9e023dc7be5
      
https://github.com/Perl/perl5/commit/d26ae453890908bc2522974fb97fb9e023dc7be5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 516a8f41c46b50c45f14d8b92f77c49517544c55
      
https://github.com/Perl/perl5/commit/516a8f41c46b50c45f14d8b92f77c49517544c55
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b3f5f5d888a1ff94102625d3fd9c99f3c8727ec4
      
https://github.com/Perl/perl5/commit/b3f5f5d888a1ff94102625d3fd9c99f3c8727ec4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 67a1b2999f3216574a3fcd21e0eca4defe0372bc
      
https://github.com/Perl/perl5/commit/67a1b2999f3216574a3fcd21e0eca4defe0372bc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0b938c2dd9b3cef74e4882844fd4c1eca674ba8c
      
https://github.com/Perl/perl5/commit/0b938c2dd9b3cef74e4882844fd4c1eca674ba8c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7c086b04f77f58d250b20f2ba1093be2423632f3
      
https://github.com/Perl/perl5/commit/7c086b04f77f58d250b20f2ba1093be2423632f3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 3b61ecd77efdfcde655b5258918e937705861e29
      
https://github.com/Perl/perl5/commit/3b61ecd77efdfcde655b5258918e937705861e29
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: e5ba609451d7aee5b2bb8dfb40d9e549b74e4d53
      
https://github.com/Perl/perl5/commit/e5ba609451d7aee5b2bb8dfb40d9e549b74e4d53
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b82ecf120dc7873a5324672632b7d971e1a040a2
      
https://github.com/Perl/perl5/commit/b82ecf120dc7873a5324672632b7d971e1a040a2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: d2d70ccdbb00b12816daea92bc6b6a4f34cd7e8e
      
https://github.com/Perl/perl5/commit/d2d70ccdbb00b12816daea92bc6b6a4f34cd7e8e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b8eb96fc8656edcd8cbb83b04e64b4997b48bb8c
      
https://github.com/Perl/perl5/commit/b8eb96fc8656edcd8cbb83b04e64b4997b48bb8c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b5dcf101644977189a6f2e643195b89e5fbeeab9
      
https://github.com/Perl/perl5/commit/b5dcf101644977189a6f2e643195b89e5fbeeab9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: e02f869b27850b2d4aca016cd49c522086d5c9e4
      
https://github.com/Perl/perl5/commit/e02f869b27850b2d4aca016cd49c522086d5c9e4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 58381f04a092561812e5985f4d143e0e58a22074
      
https://github.com/Perl/perl5/commit/58381f04a092561812e5985f4d143e0e58a22074
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3ce515d8d05429ddd74c25cb7c327cdc7c5077d6
      
https://github.com/Perl/perl5/commit/3ce515d8d05429ddd74c25cb7c327cdc7c5077d6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 39daa51015d60a7a0cc4c4be12a92f1a8d6f3941
      
https://github.com/Perl/perl5/commit/39daa51015d60a7a0cc4c4be12a92f1a8d6f3941
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: cde2e3af0934afa40322227d954056c937a022c7
      
https://github.com/Perl/perl5/commit/cde2e3af0934afa40322227d954056c937a022c7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 44926947f671841d3b9bc8571072a470d582cfd1
      
https://github.com/Perl/perl5/commit/44926947f671841d3b9bc8571072a470d582cfd1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 9d4629888d1592c5efeeb06de245aa677beef9cf
      
https://github.com/Perl/perl5/commit/9d4629888d1592c5efeeb06de245aa677beef9cf
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f57681aa43ef3115e4384d932ed3730ab3722530
      
https://github.com/Perl/perl5/commit/f57681aa43ef3115e4384d932ed3730ab3722530
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 1205a6c840c1478962a0cb6354d965ce9a8e5cc4
      
https://github.com/Perl/perl5/commit/1205a6c840c1478962a0cb6354d965ce9a8e5cc4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: bd1db8d1e8c9e8916b42fa2d8315ee132a0d5f39
      
https://github.com/Perl/perl5/commit/bd1db8d1e8c9e8916b42fa2d8315ee132a0d5f39
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 973569bd1353c596d0ccc636b88e742d7523fb55
      
https://github.com/Perl/perl5/commit/973569bd1353c596d0ccc636b88e742d7523fb55
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: ca12927a711183de4647acd9cb39f8a0dd9f2da5
      
https://github.com/Perl/perl5/commit/ca12927a711183de4647acd9cb39f8a0dd9f2da5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b2aa2c4b8bc4f95ee085dc3660c683e2dbd1027d
      
https://github.com/Perl/perl5/commit/b2aa2c4b8bc4f95ee085dc3660c683e2dbd1027d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 60e5dbf817f3a387be138eb46b5f06f1f6baa2fa
      
https://github.com/Perl/perl5/commit/60e5dbf817f3a387be138eb46b5f06f1f6baa2fa
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 104fd557cf40e877de463e8fec1f8a234bf33c16
      
https://github.com/Perl/perl5/commit/104fd557cf40e877de463e8fec1f8a234bf33c16
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 2bcc958965fd1e131f9ebcc046439ebf4530935a
      
https://github.com/Perl/perl5/commit/2bcc958965fd1e131f9ebcc046439ebf4530935a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a60dbbab58a83f6c8b5607517e82d0f96e93ea43
      
https://github.com/Perl/perl5/commit/a60dbbab58a83f6c8b5607517e82d0f96e93ea43
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 74ff662ce518ee32b168b279a438472cc15feed3
      
https://github.com/Perl/perl5/commit/74ff662ce518ee32b168b279a438472cc15feed3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a666d1e90ca632fe6b2e85891f48b59ca35a8356
      
https://github.com/Perl/perl5/commit/a666d1e90ca632fe6b2e85891f48b59ca35a8356
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

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


  Commit: 84873c0718303da5f91b372cbe6dadf3e72c2b94
      
https://github.com/Perl/perl5/commit/84873c0718303da5f91b372cbe6dadf3e72c2b94
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f76e89fed9a720aa202cef36404c47cb46ec6ca4
      
https://github.com/Perl/perl5/commit/f76e89fed9a720aa202cef36404c47cb46ec6ca4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 90b0352f3e14344e48501f5df8e0ed9b0008385a
      
https://github.com/Perl/perl5/commit/90b0352f3e14344e48501f5df8e0ed9b0008385a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3b1198aab1d996e3779ff56597634ad752ddbe50
      
https://github.com/Perl/perl5/commit/3b1198aab1d996e3779ff56597634ad752ddbe50
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 8c7c7bb5fd88db549c6feadeaf3472171585d9dd
      
https://github.com/Perl/perl5/commit/8c7c7bb5fd88db549c6feadeaf3472171585d9dd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 1c68f08aa58c508eca52347a873ea7e12010f970
      
https://github.com/Perl/perl5/commit/1c68f08aa58c508eca52347a873ea7e12010f970
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c434116e0049f42f096b7c0d762328b610b5c0db
      
https://github.com/Perl/perl5/commit/c434116e0049f42f096b7c0d762328b610b5c0db
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: e0cd04f53f566046f418f8f34792e9c9b2f432dd
      
https://github.com/Perl/perl5/commit/e0cd04f53f566046f418f8f34792e9c9b2f432dd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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

XXX perldelta, and where else?

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


  Commit: 7e9dc0143f2b6306eeabe7968b64e0e0131a5015
      
https://github.com/Perl/perl5/commit/7e9dc0143f2b6306eeabe7968b64e0e0131a5015
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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

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

Tests were skipped as a result by
59b4d2932ceb16662879bca2a22315c3597276ae.

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


  Commit: 55b95f20998e62f05d708fe9b13f7717787e42fc
      
https://github.com/Perl/perl5/commit/55b95f20998e62f05d708fe9b13f7717787e42fc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 44484ecf09439a080ad45fb6e49eec599490d683
      
https://github.com/Perl/perl5/commit/44484ecf09439a080ad45fb6e49eec599490d683
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 344c7abfc9d87e91f79fe44b2329ebf0cb6f0a83
      
https://github.com/Perl/perl5/commit/344c7abfc9d87e91f79fe44b2329ebf0cb6f0a83
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 31b15d0c5d021d105268dd339f1e27268538a137
      
https://github.com/Perl/perl5/commit/31b15d0c5d021d105268dd339f1e27268538a137
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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

This is very helpful when things go wrong.


  Commit: eac0dcb80a8d3e0d0daf89f91f646999ab8515f8
      
https://github.com/Perl/perl5/commit/eac0dcb80a8d3e0d0daf89f91f646999ab8515f8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: c35761416ba7c31dfe241eab276e0746ee428a29
      
https://github.com/Perl/perl5/commit/c35761416ba7c31dfe241eab276e0746ee428a29
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 13546f076e638552c762aa4f30bdd29a3c9a9f6e
      
https://github.com/Perl/perl5/commit/13546f076e638552c762aa4f30bdd29a3c9a9f6e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3b10218e21f2cea59a2ec994462bae58e64802e9
      
https://github.com/Perl/perl5/commit/3b10218e21f2cea59a2ec994462bae58e64802e9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c112581528116eb5cae254f2141fec4d73842354
      
https://github.com/Perl/perl5/commit/c112581528116eb5cae254f2141fec4d73842354
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 6e5baa20bb2c156de47e0205a5a4a3f71b446467
      
https://github.com/Perl/perl5/commit/6e5baa20bb2c156de47e0205a5a4a3f71b446467
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 59acb4d414632a07cb01a865cf652b6af1378a31
      
https://github.com/Perl/perl5/commit/59acb4d414632a07cb01a865cf652b6af1378a31
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f934ce5960c3f35c951c7e8a84863410801d22b5
      
https://github.com/Perl/perl5/commit/f934ce5960c3f35c951c7e8a84863410801d22b5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 05ad43d1ebd74f8a0fc67f60f4e1ad72b367d35e
      
https://github.com/Perl/perl5/commit/05ad43d1ebd74f8a0fc67f60f4e1ad72b367d35e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M utf8.h

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


  Commit: f0d53ba27f077950ea9d82549e3f0f869ac78386
      
https://github.com/Perl/perl5/commit/f0d53ba27f077950ea9d82549e3f0f869ac78386
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: bdf9d2cfb15900258720fc009f47440623c42525
      
https://github.com/Perl/perl5/commit/bdf9d2cfb15900258720fc009f47440623c42525
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: cca9f027e04402c3be8c667be8f4eac4bf79de3f
      
https://github.com/Perl/perl5/commit/cca9f027e04402c3be8c667be8f4eac4bf79de3f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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

This previously added an extraneous unused element.


  Commit: e04cfbcb8b6da9e47a325e9239ca1d40f3d5361e
      
https://github.com/Perl/perl5/commit/e04cfbcb8b6da9e47a325e9239ca1d40f3d5361e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 94932ba8e703a91ae5862552b4eaea7a0708cd2d
      
https://github.com/Perl/perl5/commit/94932ba8e703a91ae5862552b4eaea7a0708cd2d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 07611db458cf9b5b8acc0256360547d4144791a6
      
https://github.com/Perl/perl5/commit/07611db458cf9b5b8acc0256360547d4144791a6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 054b3d1e3436fd8e922653d89f5e414cba08098b
      
https://github.com/Perl/perl5/commit/054b3d1e3436fd8e922653d89f5e414cba08098b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4fc8d714e6bd6f4b3f6b7c83da7e3d15d7c8bccd
      
https://github.com/Perl/perl5/commit/4fc8d714e6bd6f4b3f6b7c83da7e3d15d7c8bccd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ffeb2c1740ebe240045d21d7477ad707b7417c89
      
https://github.com/Perl/perl5/commit/ffeb2c1740ebe240045d21d7477ad707b7417c89
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 4765c5f82747c678b6e1e6654265d99c92d931d9
      
https://github.com/Perl/perl5/commit/4765c5f82747c678b6e1e6654265d99c92d931d9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ff97e66597367e417c61327dd3eb739d89b396bc
      
https://github.com/Perl/perl5/commit/ff97e66597367e417c61327dd3eb739d89b396bc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4d2f0222908dd9d38b1ed4308287d805c2146e32
      
https://github.com/Perl/perl5/commit/4d2f0222908dd9d38b1ed4308287d805c2146e32
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 5d36e336bad9c11cfac50b89f7ec1c354ca7af8f
      
https://github.com/Perl/perl5/commit/5d36e336bad9c11cfac50b89f7ec1c354ca7af8f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 43b88e911d41db630aa5da220d34ab2e7eaa40be
      
https://github.com/Perl/perl5/commit/43b88e911d41db630aa5da220d34ab2e7eaa40be
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 14fbb982c69af6818c5c8c8015cd6d8cb1b8bf9b
      
https://github.com/Perl/perl5/commit/14fbb982c69af6818c5c8c8015cd6d8cb1b8bf9b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a0503bbb9d86f63f528f1abe3cb7077a8d77e7d7
      
https://github.com/Perl/perl5/commit/a0503bbb9d86f63f528f1abe3cb7077a8d77e7d7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: bf6e5740d6a415b4b02efde7c6cbdd43e552cf03
      
https://github.com/Perl/perl5/commit/bf6e5740d6a415b4b02efde7c6cbdd43e552cf03
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 11314733d90078495c2855e16d4b73c2576c9001
      
https://github.com/Perl/perl5/commit/11314733d90078495c2855e16d4b73c2576c9001
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0d1f538312dd56a9ef0784fc6ff68cb2f7c7a204
      
https://github.com/Perl/perl5/commit/0d1f538312dd56a9ef0784fc6ff68cb2f7c7a204
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: d237a09084975ec93167e2d712d8a7e0265a324e
      
https://github.com/Perl/perl5/commit/d237a09084975ec93167e2d712d8a7e0265a324e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 59bf132e556cd9a9873776d8ef355276ebba0941
      
https://github.com/Perl/perl5/commit/59bf132e556cd9a9873776d8ef355276ebba0941
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7d4448e780af7dda87b3005b27a64cdde81167de
      
https://github.com/Perl/perl5/commit/7d4448e780af7dda87b3005b27a64cdde81167de
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_update_PL_curlocales_i(): Reverse order of conditionals

The new ordering will play better with future commits


  Commit: c0dfa65dcddaa7fba3d568be762388c8f3c90ba8
      
https://github.com/Perl/perl5/commit/c0dfa65dcddaa7fba3d568be762388c8f3c90ba8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

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


  Commit: 931d287d7dd65db0d006dc2467b291c038ea9408
      
https://github.com/Perl/perl5/commit/931d287d7dd65db0d006dc2467b291c038ea9408
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a2be51e471ab17d7aa496f759d653092e4198813
      
https://github.com/Perl/perl5/commit/a2be51e471ab17d7aa496f759d653092e4198813
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 157ec2fa174c6d64303de5fa9e95754afc0738a8
      
https://github.com/Perl/perl5/commit/157ec2fa174c6d64303de5fa9e95754afc0738a8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: cc0568c83731da88e56b41a94e696dacbfbf4871
      
https://github.com/Perl/perl5/commit/cc0568c83731da88e56b41a94e696dacbfbf4871
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 9a27fe0039589055502cc4763a1bf4b85dad414e
      
https://github.com/Perl/perl5/commit/9a27fe0039589055502cc4763a1bf4b85dad414e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 21a0fc13fcd617a602ace893dc2a49aaf241a4b8
      
https://github.com/Perl/perl5/commit/21a0fc13fcd617a602ace893dc2a49aaf241a4b8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ea2d977019cdf2f195cb8badf5ce443697c3eca4
      
https://github.com/Perl/perl5/commit/ea2d977019cdf2f195cb8badf5ce443697c3eca4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ddb92ca3e8055c1cce74f3919ec7b874725b6553
      
https://github.com/Perl/perl5/commit/ddb92ca3e8055c1cce74f3919ec7b874725b6553
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c37a0422062723e838a4075fd1eda8651ceb7651
      
https://github.com/Perl/perl5/commit/c37a0422062723e838a4075fd1eda8651ceb7651
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 41f3b52a08a9856c49fc9e595de82a9b99a8cc41
      
https://github.com/Perl/perl5/commit/41f3b52a08a9856c49fc9e595de82a9b99a8cc41
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: c95d81d18e76d3a2f90775a18e377a45fd5f7d11
      
https://github.com/Perl/perl5/commit/c95d81d18e76d3a2f90775a18e377a45fd5f7d11
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: c4fde6187730864bf051e85962964a8d77d7602b
      
https://github.com/Perl/perl5/commit/c4fde6187730864bf051e85962964a8d77d7602b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b6b0abfb7f11077a848ebe87c4f6ded3349b51bd
      
https://github.com/Perl/perl5/commit/b6b0abfb7f11077a848ebe87c4f6ded3349b51bd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: b5d442a2803b1f98d4c3d449d780868e42c6bdbc
      
https://github.com/Perl/perl5/commit/b5d442a2803b1f98d4c3d449d780868e42c6bdbc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7d368e8408deb30f8554d1b987a6c1c18f3abf1c
      
https://github.com/Perl/perl5/commit/7d368e8408deb30f8554d1b987a6c1c18f3abf1c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: bd79b9749410358aa11eef4bf267797ee0fefa33
      
https://github.com/Perl/perl5/commit/bd79b9749410358aa11eef4bf267797ee0fefa33
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 6ccf809235728ffdc1e71fbc13e4cc41551f5289
      
https://github.com/Perl/perl5/commit/6ccf809235728ffdc1e71fbc13e4cc41551f5289
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 56d9c0c08a68a3856627ca39f272088b89b55cbe
      
https://github.com/Perl/perl5/commit/56d9c0c08a68a3856627ca39f272088b89b55cbe
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3279cf807d82cb4ff93012547962ce94f3a6ec91
      
https://github.com/Perl/perl5/commit/3279cf807d82cb4ff93012547962ce94f3a6ec91
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: bad0c12d955a4009316a1b6c13139af490604ca5
      
https://github.com/Perl/perl5/commit/bad0c12d955a4009316a1b6c13139af490604ca5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 64445a5d68d09ba7d315197c942c6617c8653d7f
      
https://github.com/Perl/perl5/commit/64445a5d68d09ba7d315197c942c6617c8653d7f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 32585bd7008fa5bff042795e2057a680f811028f
      
https://github.com/Perl/perl5/commit/32585bd7008fa5bff042795e2057a680f811028f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 8d23d1de3002f3370d4a33781694f69af391c1fd
      
https://github.com/Perl/perl5/commit/8d23d1de3002f3370d4a33781694f69af391c1fd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: d40d41b008de7a3bb56ffe859fafee2af8ee4272
      
https://github.com/Perl/perl5/commit/d40d41b008de7a3bb56ffe859fafee2af8ee4272
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 89b066fe866d7fb76c23c7a9592573f0a9b24eb9
      
https://github.com/Perl/perl5/commit/89b066fe866d7fb76c23c7a9592573f0a9b24eb9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 54f66204988c7b371739c892ad46a31ec176297d
      
https://github.com/Perl/perl5/commit/54f66204988c7b371739c892ad46a31ec176297d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: cfa018c5e05f57b8e20bbc063c2bf0872be5e21b
      
https://github.com/Perl/perl5/commit/cfa018c5e05f57b8e20bbc063c2bf0872be5e21b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3fec9828cbe1620a5711b522e02183a63dbe9693
      
https://github.com/Perl/perl5/commit/3fec9828cbe1620a5711b522e02183a63dbe9693
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 647b27fc28458430ecac9b55817ad1fd5c5f045e
      
https://github.com/Perl/perl5/commit/647b27fc28458430ecac9b55817ad1fd5c5f045e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 411c4dd84cd70f825f5d3ca3f4b36e6d4fded746
      
https://github.com/Perl/perl5/commit/411c4dd84cd70f825f5d3ca3f4b36e6d4fded746
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 1433bc717c786a59414eac6b0db644a384ccd847
      
https://github.com/Perl/perl5/commit/1433bc717c786a59414eac6b0db644a384ccd847
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 319ba4b582214a58c2b3438e1846813bd7ae4f4b
      
https://github.com/Perl/perl5/commit/319ba4b582214a58c2b3438e1846813bd7ae4f4b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 7f006716e88431d6724fd2725df031f534181aec
      
https://github.com/Perl/perl5/commit/7f006716e88431d6724fd2725df031f534181aec
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 85c93be8b881209bbdaa7c3b2fa432f177892a97
      
https://github.com/Perl/perl5/commit/85c93be8b881209bbdaa7c3b2fa432f177892a97
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7781943c5f43494a6bf679d8af3144764c653c69
      
https://github.com/Perl/perl5/commit/7781943c5f43494a6bf679d8af3144764c653c69
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 2f2fe80bcca7d789f6efa0a2f30c4129c84aee44
      
https://github.com/Perl/perl5/commit/2f2fe80bcca7d789f6efa0a2f30c4129c84aee44
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 85e0e9eaedf1883f4c8989e5a68834f76ef3d0be
      
https://github.com/Perl/perl5/commit/85e0e9eaedf1883f4c8989e5a68834f76ef3d0be
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/porting/bincompat.t

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


  Commit: 1f39ea7440e092e73cd75ff56b4542b15f6bd13b
      
https://github.com/Perl/perl5/commit/1f39ea7440e092e73cd75ff56b4542b15f6bd13b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M hints/darwin.sh

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


  Commit: 2a7442478592fb41f48ef231d81be08a13100403
      
https://github.com/Perl/perl5/commit/2a7442478592fb41f48ef231d81be08a13100403
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M intrpvar.h

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


  Commit: 7c0e0948ce3abbc7a36d5a9be2b82ed249a66f33
      
https://github.com/Perl/perl5/commit/7c0e0948ce3abbc7a36d5a9be2b82ed249a66f33
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3f9f4e7127a7fa42e01d4d51ada2619122d7ebf5
      
https://github.com/Perl/perl5/commit/3f9f4e7127a7fa42e01d4d51ada2619122d7ebf5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3cbadafa5498fcb150ec70e15c489f159fec00ba
      
https://github.com/Perl/perl5/commit/3cbadafa5498fcb150ec70e15c489f159fec00ba
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: aaf170741e795efac177a7e48792b4a368d714a0
      
https://github.com/Perl/perl5/commit/aaf170741e795efac177a7e48792b4a368d714a0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f184a9415b78b64a8e46e5382c04c4f7835c3f98
      
https://github.com/Perl/perl5/commit/f184a9415b78b64a8e46e5382c04c4f7835c3f98
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f7dfa70bfa3ab2d076a3b1f6f1a318d543fb49e1
      
https://github.com/Perl/perl5/commit/f7dfa70bfa3ab2d076a3b1f6f1a318d543fb49e1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 4a1ec880d2463b3d395cb2fa12de757e5c7be382
      
https://github.com/Perl/perl5/commit/4a1ec880d2463b3d395cb2fa12de757e5c7be382
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ea7f965920f9fc78e95a8a0ce06248ba0bcc89e7
      
https://github.com/Perl/perl5/commit/ea7f965920f9fc78e95a8a0ce06248ba0bcc89e7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M makedef.pl

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


  Commit: 2687d6964ceec060b4db4a0f6dca0042a73ce201
      
https://github.com/Perl/perl5/commit/2687d6964ceec060b4db4a0f6dca0042a73ce201
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M makedef.pl

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


  Commit: 4118b6775ad6da559cbe82e2f42fc93324a1ec3b
      
https://github.com/Perl/perl5/commit/4118b6775ad6da559cbe82e2f42fc93324a1ec3b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M makedef.pl

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


  Commit: 1ae7500a99bf1b5098487115b35a515f8529e41a
      
https://github.com/Perl/perl5/commit/1ae7500a99bf1b5098487115b35a515f8529e41a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M makedef.pl

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


  Commit: 36f25a0a4a7f560fd19b9d4602c7530c22ea1e07
      
https://github.com/Perl/perl5/commit/36f25a0a4a7f560fd19b9d4602c7530c22ea1e07
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M makedef.pl

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


  Commit: e033cf5175ce3a58374fad57a0c085a8b8a52ed8
      
https://github.com/Perl/perl5/commit/e033cf5175ce3a58374fad57a0c085a8b8a52ed8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: eaec05d79036ae7a794ae0d852bfea438fbff31a
      
https://github.com/Perl/perl5/commit/eaec05d79036ae7a794ae0d852bfea438fbff31a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7d227bd07871f9b49c430f5f0be74fd988d4eeaf
      
https://github.com/Perl/perl5/commit/7d227bd07871f9b49c430f5f0be74fd988d4eeaf
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: a716adc016a63354fc59965e0f51c65ffba0ab30
      
https://github.com/Perl/perl5/commit/a716adc016a63354fc59965e0f51c65ffba0ab30
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 106cabce128a404fd81e3ddc1ca31d8f6d9fba1b
      
https://github.com/Perl/perl5/commit/106cabce128a404fd81e3ddc1ca31d8f6d9fba1b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 2cfc795fd1d6b74eb719e87f2baaa51108c01519
      
https://github.com/Perl/perl5/commit/2cfc795fd1d6b74eb719e87f2baaa51108c01519
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 53f12d4cb8f7945cdab1f89b0302143d596425ab
      
https://github.com/Perl/perl5/commit/53f12d4cb8f7945cdab1f89b0302143d596425ab
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 841131bf9335f36dff7da46dc6fbaf24f566d03d
      
https://github.com/Perl/perl5/commit/841131bf9335f36dff7da46dc6fbaf24f566d03d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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

This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.


  Commit: 5024a150c1f3951c80cc325da24acb79c06366cb
      
https://github.com/Perl/perl5/commit/5024a150c1f3951c80cc325da24acb79c06366cb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 007ac952c1b8ded635094d49d0b0ed237ae879d9
      
https://github.com/Perl/perl5/commit/007ac952c1b8ded635094d49d0b0ed237ae879d9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: cce41a939650e7ccebdd45e362fd74a1fed25610
      
https://github.com/Perl/perl5/commit/cce41a939650e7ccebdd45e362fd74a1fed25610
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 0b3afcac5135f2d6d70f04aeb967360c99e98877
      
https://github.com/Perl/perl5/commit/0b3afcac5135f2d6d70f04aeb967360c99e98877
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 00d905aff2b1b7b30bec6dc3447b307955600ec2
      
https://github.com/Perl/perl5/commit/00d905aff2b1b7b30bec6dc3447b307955600ec2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M Configure

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


  Commit: 06cafe79f6f27a98c767e4c03d158fb42be326c2
      
https://github.com/Perl/perl5/commit/06cafe79f6f27a98c767e4c03d158fb42be326c2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 853643c1b86f1fcb0bcffc0efc3940ea4c40777e
      
https://github.com/Perl/perl5/commit/853643c1b86f1fcb0bcffc0efc3940ea4c40777e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 34013c6ba8a019d1b53ef1cf2cb39d582d43b02c
      
https://github.com/Perl/perl5/commit/34013c6ba8a019d1b53ef1cf2cb39d582d43b02c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: dc28653c910eec96e7b5c2a5d16f25bf7f55518e
      
https://github.com/Perl/perl5/commit/dc28653c910eec96e7b5c2a5d16f25bf7f55518e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 6895ade0fe782df89e98f44f09200093644bf0cd
      
https://github.com/Perl/perl5/commit/6895ade0fe782df89e98f44f09200093644bf0cd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ed916247a91811ddec5b1de61239bfd7411f3227
      
https://github.com/Perl/perl5/commit/ed916247a91811ddec5b1de61239bfd7411f3227
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0c60d612cb052a23ecb3c0799cff0e71ca2a9bcb
      
https://github.com/Perl/perl5/commit/0c60d612cb052a23ecb3c0799cff0e71ca2a9bcb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7e394ef097cef6a3230059976dd4cebdca7c684e
      
https://github.com/Perl/perl5/commit/7e394ef097cef6a3230059976dd4cebdca7c684e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7487e34c495b62837288ff77fab185bcdb6b01e0
      
https://github.com/Perl/perl5/commit/7487e34c495b62837288ff77fab185bcdb6b01e0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4e5d7ab19f420349928436e08d67b9bb01b767dd
      
https://github.com/Perl/perl5/commit/4e5d7ab19f420349928436e08d67b9bb01b767dd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 2d6fb4d34fbdf7225512556ec49883274b0bc750
      
https://github.com/Perl/perl5/commit/2d6fb4d34fbdf7225512556ec49883274b0bc750
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f93d81fc91fe1e3cbea0cdfca39b81a306f010ad
      
https://github.com/Perl/perl5/commit/f93d81fc91fe1e3cbea0cdfca39b81a306f010ad
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 509283957c894d958d75cccfcae6776614c60a09
      
https://github.com/Perl/perl5/commit/509283957c894d958d75cccfcae6776614c60a09
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 10555128c5f6a1ed0d68c4a736863b7c04375e6d
      
https://github.com/Perl/perl5/commit/10555128c5f6a1ed0d68c4a736863b7c04375e6d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M perl.h

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


  Commit: 924a0328c21007ffa6ac2b9fa27b387b17d61a41
      
https://github.com/Perl/perl5/commit/924a0328c21007ffa6ac2b9fa27b387b17d61a41
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 2eb01bc361f0c477d55f3866088b8d8836b5149c
      
https://github.com/Perl/perl5/commit/2eb01bc361f0c477d55f3866088b8d8836b5149c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


  Commit: f716467866968b33516a97529bc39ace94bcee9a
      
https://github.com/Perl/perl5/commit/f716467866968b33516a97529bc39ace94bcee9a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: 03760343fbe3324b91dec6ac69e03d0a1a3618ea
      
https://github.com/Perl/perl5/commit/03760343fbe3324b91dec6ac69e03d0a1a3618ea
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 05e1c7b247beebeac289b8b032e92543e0d6b718
      
https://github.com/Perl/perl5/commit/05e1c7b247beebeac289b8b032e92543e0d6b718
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: f809d1c644a54162d701655dd6ba7472a304aa0f
      
https://github.com/Perl/perl5/commit/f809d1c644a54162d701655dd6ba7472a304aa0f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 1962991f544d0766d9605176bbf865862caf37c8
      
https://github.com/Perl/perl5/commit/1962991f544d0766d9605176bbf865862caf37c8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 51047cf422ed96c6c83a632e3b8899e33b928d75
      
https://github.com/Perl/perl5/commit/51047cf422ed96c6c83a632e3b8899e33b928d75
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 2ac76b7de819f0a43577a937d91614890716861d
      
https://github.com/Perl/perl5/commit/2ac76b7de819f0a43577a937d91614890716861d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 347746aceb25b0b4f6e18270ff1ba2925a47794d
      
https://github.com/Perl/perl5/commit/347746aceb25b0b4f6e18270ff1ba2925a47794d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

  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: 64ff340679830aa77c350de8c6fdf9463dd35f31
      
https://github.com/Perl/perl5/commit/64ff340679830aa77c350de8c6fdf9463dd35f31
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ad0ff7e9b638854ce468e6f05df835a14e4b481d
      
https://github.com/Perl/perl5/commit/ad0ff7e9b638854ce468e6f05df835a14e4b481d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 9f2d710faf3df2d2014920756fb7e7e2d0d46b4d
      
https://github.com/Perl/perl5/commit/9f2d710faf3df2d2014920756fb7e7e2d0d46b4d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: f9cdf1e984fb54c0f12276a917b6493c56ede4d1
      
https://github.com/Perl/perl5/commit/f9cdf1e984fb54c0f12276a917b6493c56ede4d1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: cbf38071bcde7e4426530f32c03efc05f17f2c52
      
https://github.com/Perl/perl5/commit/cbf38071bcde7e4426530f32c03efc05f17f2c52
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 4338fc8de154dc461d6df5ff4a5a828ca4f16d5f
      
https://github.com/Perl/perl5/commit/4338fc8de154dc461d6df5ff4a5a828ca4f16d5f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M util.c

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


  Commit: 2a5e0c3674fa0d3c48c0207ae7f0fb5bd740481a
      
https://github.com/Perl/perl5/commit/2a5e0c3674fa0d3c48c0207ae7f0fb5bd740481a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M win32/Makefile

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


  Commit: e06037ece334ee2c342da6fe7c45a10b607dedfa
      
https://github.com/Perl/perl5/commit/e06037ece334ee2c342da6fe7c45a10b607dedfa
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 84fecc20a733d67ecdca5ed2d523d0929abccc18
      
https://github.com/Perl/perl5/commit/84fecc20a733d67ecdca5ed2d523d0929abccc18
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 3172987a5e0eb1712838c588519772bd382f8911
      
https://github.com/Perl/perl5/commit/3172987a5e0eb1712838c588519772bd382f8911
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 96321b34b79398c0c4a5818b463d8372d46d7ed2
      
https://github.com/Perl/perl5/commit/96321b34b79398c0c4a5818b463d8372d46d7ed2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: a3c0e6223ab1bb0d4ae3775c57ebc37902c6d76b
      
https://github.com/Perl/perl5/commit/a3c0e6223ab1bb0d4ae3775c57ebc37902c6d76b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: e0db7a1ee05ec414d902bbf76defdea3cd71d937
      
https://github.com/Perl/perl5/commit/e0db7a1ee05ec414d902bbf76defdea3cd71d937
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/re/pat.t

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


  Commit: 4b14759ac3d34681d7dcedfa3c6c06b972b94497
      
https://github.com/Perl/perl5/commit/4b14759ac3d34681d7dcedfa3c6c06b972b94497
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  fdregs


  Commit: 5e2b5fbbbdec9f1c5e6970ae5d5df971dde4007e
      
https://github.com/Perl/perl5/commit/5e2b5fbbbdec9f1c5e6970ae5d5df971dde4007e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 5d33833548df9a73ad96c56ddc7559f6f346c5cc
      
https://github.com/Perl/perl5/commit/5d33833548df9a73ad96c56ddc7559f6f346c5cc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 0d34ff238947ed38644a97be6d2575d854cae85f
      
https://github.com/Perl/perl5/commit/0d34ff238947ed38644a97be6d2575d854cae85f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: be025fac13ae684c91ba55596005571325e5dd3b
      
https://github.com/Perl/perl5/commit/be025fac13ae684c91ba55596005571325e5dd3b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M inline.h

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

I don't remember why this was done


  Commit: 73f02743e9e2514c6525ce37ab99090e4616b328
      
https://github.com/Perl/perl5/commit/73f02743e9e2514c6525ce37ab99090e4616b328
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 7080fb4eda4d2ec290271a2a9d87b6ff26c973b9
      
https://github.com/Perl/perl5/commit/7080fb4eda4d2ec290271a2a9d87b6ff26c973b9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: 88c2686f1dd1ee60a136decbf36e9b544fe26512
      
https://github.com/Perl/perl5/commit/88c2686f1dd1ee60a136decbf36e9b544fe26512
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 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: ebfd32ba3a85324e6d84ea774ca6953081d318ee
      
https://github.com/Perl/perl5/commit/ebfd32ba3a85324e6d84ea774ca6953081d318ee
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

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

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


  Commit: f4a7287e926d8a7a72827ae67e37fa4eff8770a0
      
https://github.com/Perl/perl5/commit/f4a7287e926d8a7a72827ae67e37fa4eff8770a0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M util.c

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


  Commit: 8812e3a35f77636f875a24518e6f082caf0838b9
      
https://github.com/Perl/perl5/commit/8812e3a35f77636f875a24518e6f082caf0838b9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 993cf031467ef9b0f0c85bf2bd9e144a95102c5b
      
https://github.com/Perl/perl5/commit/993cf031467ef9b0f0c85bf2bd9e144a95102c5b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 7ecf7081054bbe29adaca7bfa3e8f0ba1a457eb7
      
https://github.com/Perl/perl5/commit/7ecf7081054bbe29adaca7bfa3e8f0ba1a457eb7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-03 (Sat, 03 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 9e769e5709e7bcf34319243390f60b0f5acc9ba7
      
https://github.com/Perl/perl5/commit/9e769e5709e7bcf34319243390f60b0f5acc9ba7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-09 (Fri, 09 Jun 2023)

  Changed paths:
    M embed.fnc
    M embed.h
    M hints/aix.sh
    M lib/locale_threads.t
    M locale.c
    M perl.h
    M proto.h
    M t/loc_tools.pl

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


Compare: https://github.com/Perl/perl5/compare/eddaa3f8f7f2...9e769e5709e7

Reply via email to