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

  Changed paths:
    M t/harness

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


  Commit: 7b7dba63d3092997ddc6b4e8055163cc7234392a
      
https://github.com/Perl/perl5/commit/7b7dba63d3092997ddc6b4e8055163cc7234392a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 7732b99821ebefa10183c17be263835969abbf4e
      
https://github.com/Perl/perl5/commit/7732b99821ebefa10183c17be263835969abbf4e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6c3f9e71bf69211d951d8b6cf94e802041ebd980
      
https://github.com/Perl/perl5/commit/6c3f9e71bf69211d951d8b6cf94e802041ebd980
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M t/TEST

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


  Commit: 6e345e5853d21b9182614ebf67d5c3be51b2dcc7
      
https://github.com/Perl/perl5/commit/6e345e5853d21b9182614ebf67d5c3be51b2dcc7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 70a586279bd6894c7f1ca0bf5a0d5a44e035d495
      
https://github.com/Perl/perl5/commit/70a586279bd6894c7f1ca0bf5a0d5a44e035d495
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 61a731f279f8f74f7d6d2bfc526c7ed4a9612e52
      
https://github.com/Perl/perl5/commit/61a731f279f8f74f7d6d2bfc526c7ed4a9612e52
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M t/test.pl

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


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

  Changed paths:
    M t/test.pl

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

This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.


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

  Changed paths:
    M t/run/locale.t

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


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

  Changed paths:
    M t/run/locale.t

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


  Commit: 02a68a1323baaf0da9baaf63af65913b3ec3a95d
      
https://github.com/Perl/perl5/commit/02a68a1323baaf0da9baaf63af65913b3ec3a95d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 2928d53a7ec04401a62d7164f95750fcb68c48c7
      
https://github.com/Perl/perl5/commit/2928d53a7ec04401a62d7164f95750fcb68c48c7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: b2af19b22a5ac1a794945cf88f77a4633b3393db
      
https://github.com/Perl/perl5/commit/b2af19b22a5ac1a794945cf88f77a4633b3393db
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M vutil.c

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


  Commit: b39802b2c668d7a9be966317e266bb9992fb70f2
      
https://github.com/Perl/perl5/commit/b39802b2c668d7a9be966317e266bb9992fb70f2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a229cd4a5faca848403791054c3349697b8a5c61
      
https://github.com/Perl/perl5/commit/a229cd4a5faca848403791054c3349697b8a5c61
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 323af48a7d360c025845cc576cc77326eed5817b
      
https://github.com/Perl/perl5/commit/323af48a7d360c025845cc576cc77326eed5817b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 80f4c66055da65a761a050b2c892ccdb53c2e1bb
      
https://github.com/Perl/perl5/commit/80f4c66055da65a761a050b2c892ccdb53c2e1bb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M vutil.c

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


  Commit: fa5935eb115164c70615042ebb73e7194e81e57d
      
https://github.com/Perl/perl5/commit/fa5935eb115164c70615042ebb73e7194e81e57d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 097761287a2d738780b743c16f8a2837e8930f56
      
https://github.com/Perl/perl5/commit/097761287a2d738780b743c16f8a2837e8930f56
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 125a75f0d508b0c93c446e52dac03ce9d08e9f4c
      
https://github.com/Perl/perl5/commit/125a75f0d508b0c93c446e52dac03ce9d08e9f4c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

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

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


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

  Changed paths:
    M t/porting/cmp_version.t

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M Configure

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


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

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

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


  Commit: 897236d3fcb0abda7c1fcc21350c000969146809
      
https://github.com/Perl/perl5/commit/897236d3fcb0abda7c1fcc21350c000969146809
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 9118383bcbef6309c3e0f1fc3fcab7902fedcecb
      
https://github.com/Perl/perl5/commit/9118383bcbef6309c3e0f1fc3fcab7902fedcecb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: af52c7bfef8cb5ae941d708fd835d057de0bba40
      
https://github.com/Perl/perl5/commit/af52c7bfef8cb5ae941d708fd835d057de0bba40
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 4f55eeba198b9776d1c46613a1ccb5c060e3d834
      
https://github.com/Perl/perl5/commit/4f55eeba198b9776d1c46613a1ccb5c060e3d834
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 5679e16a178dfc61f489d4758b552d03544151fe
      
https://github.com/Perl/perl5/commit/5679e16a178dfc61f489d4758b552d03544151fe
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M intrpvar.h
    M perl.h

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


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

  Changed paths:
    M makedef.pl
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M locale.c

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


  Commit: 4002f60699b8a2cec9e64127af69c3b14337929b
      
https://github.com/Perl/perl5/commit/4002f60699b8a2cec9e64127af69c3b14337929b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: c95e52d2c706673fcee89b0eebc1a7a9cf941f03
      
https://github.com/Perl/perl5/commit/c95e52d2c706673fcee89b0eebc1a7a9cf941f03
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6f0c191ca77c2b8767b418b33dedb266640c2298
      
https://github.com/Perl/perl5/commit/6f0c191ca77c2b8767b418b33dedb266640c2298
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a113b58c4aebb3ea975cc6df038dff8ed7518618
      
https://github.com/Perl/perl5/commit/a113b58c4aebb3ea975cc6df038dff8ed7518618
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: fec18d77d21fb6f203939541f7eef8e0c3161af3
      
https://github.com/Perl/perl5/commit/fec18d77d21fb6f203939541f7eef8e0c3161af3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


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

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

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


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

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

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


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

  Changed paths:
    M lib/locale_threads.t

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


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

  Changed paths:
    M perl.h

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


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

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

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


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

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

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


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

  Changed paths:
    M t/loc_tools.pl

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


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

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 15958ef58a02e9974fc8361d3965c67a5b10083b
      
https://github.com/Perl/perl5/commit/15958ef58a02e9974fc8361d3965c67a5b10083b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 22874208b90dc69db4a55b42d3f69f09adc8bd43
      
https://github.com/Perl/perl5/commit/22874208b90dc69db4a55b42d3f69f09adc8bd43
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 72fb31ac1870eac0b758d8219cbb66d16769fefa
      
https://github.com/Perl/perl5/commit/72fb31ac1870eac0b758d8219cbb66d16769fefa
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 9819ea84f22a312861b2761fab909fea40fb1e30
      
https://github.com/Perl/perl5/commit/9819ea84f22a312861b2761fab909fea40fb1e30
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: bee67b00b2caa57b23ccebd80b275acf2275843f
      
https://github.com/Perl/perl5/commit/bee67b00b2caa57b23ccebd80b275acf2275843f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M t/harness

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


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

  Changed paths:
    M pod/perllocale.pod

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


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

  Changed paths:
    M lib/locale_threads.t

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


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

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

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


  Commit: 5ec5f09ad361aefdc80e0fbfced3bc890ed7ea43
      
https://github.com/Perl/perl5/commit/5ec5f09ad361aefdc80e0fbfced3bc890ed7ea43
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 3a80052e4c91a34eac381ddbb839eb9f76e6d1f5
      
https://github.com/Perl/perl5/commit/3a80052e4c91a34eac381ddbb839eb9f76e6d1f5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 7ffb07853e83b5db0c7e55bb5de2ec22e05b0cbf
      
https://github.com/Perl/perl5/commit/7ffb07853e83b5db0c7e55bb5de2ec22e05b0cbf
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M pod/perlhacktips.pod

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


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

  Changed paths:
    M handy.h

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


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

  Changed paths:
    M iperlsys.h

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


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

  Changed paths:
    M regen/reentr.pl

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


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

  Changed paths:
    M regexec.c

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


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

  Changed paths:
    M sv.c

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


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

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

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


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

  Changed paths:
    M pp.c

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


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

  Changed paths:
    M pod/perlmod.pod

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


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

  Changed paths:
    M perl.h

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


  Commit: 20b7a362302df66daf8e382137f2825d463f3a80
      
https://github.com/Perl/perl5/commit/20b7a362302df66daf8e382137f2825d463f3a80
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: dc085a2acc23d7f9d9b9f9b703645d8acbbbf7c8
      
https://github.com/Perl/perl5/commit/dc085a2acc23d7f9d9b9f9b703645d8acbbbf7c8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 96637115af3015e2048a3902a5bae5e9645cb8ad
      
https://github.com/Perl/perl5/commit/96637115af3015e2048a3902a5bae5e9645cb8ad
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: b31e447b57e73fb8468c744020ae53a930adaa4a
      
https://github.com/Perl/perl5/commit/b31e447b57e73fb8468c744020ae53a930adaa4a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: eec3815548b59ea07108f59b63d59558ff8a0375
      
https://github.com/Perl/perl5/commit/eec3815548b59ea07108f59b63d59558ff8a0375
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: b987ea38064bd84b7cab51ba9b7f33772ed36dc0
      
https://github.com/Perl/perl5/commit/b987ea38064bd84b7cab51ba9b7f33772ed36dc0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 06dc5cb30d5779eac42cb0bca561ad615b3f3df1
      
https://github.com/Perl/perl5/commit/06dc5cb30d5779eac42cb0bca561ad615b3f3df1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 84abee51e74ad86a077873f14f4f3432e9d35a97
      
https://github.com/Perl/perl5/commit/84abee51e74ad86a077873f14f4f3432e9d35a97
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M embed.fnc
    M proto.h

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


  Commit: fb43a93fbfcb8ee342ad31029ca1d8aaa60864d2
      
https://github.com/Perl/perl5/commit/fb43a93fbfcb8ee342ad31029ca1d8aaa60864d2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: d8dd168f8820042bd982ea59b9b8974c7dd637ce
      
https://github.com/Perl/perl5/commit/d8dd168f8820042bd982ea59b9b8974c7dd637ce
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e9bc5f08e655ee5c093c0d3d84d98109c830f119
      
https://github.com/Perl/perl5/commit/e9bc5f08e655ee5c093c0d3d84d98109c830f119
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 99bad26e817b23770d2360b0ab0bb7098dd14992
      
https://github.com/Perl/perl5/commit/99bad26e817b23770d2360b0ab0bb7098dd14992
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 5051e05b3d22240b57bdffc6551e33d28e120fd5
      
https://github.com/Perl/perl5/commit/5051e05b3d22240b57bdffc6551e33d28e120fd5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: c24b95f0345967d6a6dbbd31abcdc4f9bda1ee2b
      
https://github.com/Perl/perl5/commit/c24b95f0345967d6a6dbbd31abcdc4f9bda1ee2b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6653fe227b72ad02e8c5aa6ff3a22d75573e6f08
      
https://github.com/Perl/perl5/commit/6653fe227b72ad02e8c5aa6ff3a22d75573e6f08
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 33c11e2c799ceaf7fbfbd3e6ad4a81fb202ae48e
      
https://github.com/Perl/perl5/commit/33c11e2c799ceaf7fbfbd3e6ad4a81fb202ae48e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 221b440b72c5be5dd8b1cb21d19ed40e52490b92
      
https://github.com/Perl/perl5/commit/221b440b72c5be5dd8b1cb21d19ed40e52490b92
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e0d9e797947107b6deee665789b450e9eb4bef61
      
https://github.com/Perl/perl5/commit/e0d9e797947107b6deee665789b450e9eb4bef61
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0d54634326d21ee263389909465d9304d64ade31
      
https://github.com/Perl/perl5/commit/0d54634326d21ee263389909465d9304d64ade31
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 53d500b01da8bc75c8f2b861de53ac14e00a8843
      
https://github.com/Perl/perl5/commit/53d500b01da8bc75c8f2b861de53ac14e00a8843
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6d8302ef9872836904ca9acde61a7d3675a53e99
      
https://github.com/Perl/perl5/commit/6d8302ef9872836904ca9acde61a7d3675a53e99
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a3b23c2efa460777ef08e9fb746e0347f0d05289
      
https://github.com/Perl/perl5/commit/a3b23c2efa460777ef08e9fb746e0347f0d05289
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 09cc75660dfe051ac97e53b91b6262596c5a5cf0
      
https://github.com/Perl/perl5/commit/09cc75660dfe051ac97e53b91b6262596c5a5cf0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 89f4696cddbc7c23dd903f242fbac5276bd3defb
      
https://github.com/Perl/perl5/commit/89f4696cddbc7c23dd903f242fbac5276bd3defb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 26b469233821047e5c1fb3c248773661009739ec
      
https://github.com/Perl/perl5/commit/26b469233821047e5c1fb3c248773661009739ec
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 4788ac30bfc7ce3ee9bcb0274edbfbe3215f58e2
      
https://github.com/Perl/perl5/commit/4788ac30bfc7ce3ee9bcb0274edbfbe3215f58e2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e713c4579bd91b2cc039819549c6e3e1d4e39f50
      
https://github.com/Perl/perl5/commit/e713c4579bd91b2cc039819549c6e3e1d4e39f50
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 425ef4fd0df677ad118017d2ae754a890fdd5b74
      
https://github.com/Perl/perl5/commit/425ef4fd0df677ad118017d2ae754a890fdd5b74
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6ef679b41cd9a52ede784bcbc4b815463b10216f
      
https://github.com/Perl/perl5/commit/6ef679b41cd9a52ede784bcbc4b815463b10216f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 8a73801455019e165314bcc09239fd7f39cad663
      
https://github.com/Perl/perl5/commit/8a73801455019e165314bcc09239fd7f39cad663
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 75362468c81390565614d81a4a4ac48fe1a30d6b
      
https://github.com/Perl/perl5/commit/75362468c81390565614d81a4a4ac48fe1a30d6b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a9380f0b1477d0c63701acef5b18bbb7eec11708
      
https://github.com/Perl/perl5/commit/a9380f0b1477d0c63701acef5b18bbb7eec11708
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 48212c5a2aaffcaed244fced4d6dc71e92d3656d
      
https://github.com/Perl/perl5/commit/48212c5a2aaffcaed244fced4d6dc71e92d3656d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 93138330bb9a02f4ca2c2e86f2d37ab1f3594699
      
https://github.com/Perl/perl5/commit/93138330bb9a02f4ca2c2e86f2d37ab1f3594699
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 748700163b7d2785fdbfcfe16191d3de8375c568
      
https://github.com/Perl/perl5/commit/748700163b7d2785fdbfcfe16191d3de8375c568
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 67e1f223d11c05a05dab50a8782a427c050c6932
      
https://github.com/Perl/perl5/commit/67e1f223d11c05a05dab50a8782a427c050c6932
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a905342f109cc96db99beeb14d46923c9bb83330
      
https://github.com/Perl/perl5/commit/a905342f109cc96db99beeb14d46923c9bb83330
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 7564f420070409667f976719f321da8b3436a2ce
      
https://github.com/Perl/perl5/commit/7564f420070409667f976719f321da8b3436a2ce
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 40c1411772856dcae4903669e7b1dcdadbcbcb74
      
https://github.com/Perl/perl5/commit/40c1411772856dcae4903669e7b1dcdadbcbcb74
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a4e71655ff30a65f38df81d3b711d4cc6a2387b0
      
https://github.com/Perl/perl5/commit/a4e71655ff30a65f38df81d3b711d4cc6a2387b0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 637215dcfd2c264ea740cd4e6dacefa74938a3fa
      
https://github.com/Perl/perl5/commit/637215dcfd2c264ea740cd4e6dacefa74938a3fa
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0b68288a276f45952fab91a936beaae8ce1fdf82
      
https://github.com/Perl/perl5/commit/0b68288a276f45952fab91a936beaae8ce1fdf82
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a791c583eb76cdc665f6741451e73dc5610f011d
      
https://github.com/Perl/perl5/commit/a791c583eb76cdc665f6741451e73dc5610f011d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 1e9dfd95e42e0a3cb364ce77600d4d73be755ef3
      
https://github.com/Perl/perl5/commit/1e9dfd95e42e0a3cb364ce77600d4d73be755ef3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 780db3256cdf74c6bc027f175f5fc424aa2c4f40
      
https://github.com/Perl/perl5/commit/780db3256cdf74c6bc027f175f5fc424aa2c4f40
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 2a76628b781d4d090c526755b17f39d855576684
      
https://github.com/Perl/perl5/commit/2a76628b781d4d090c526755b17f39d855576684
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0ac57f34f491375b03ba6d754e72c049080a22e3
      
https://github.com/Perl/perl5/commit/0ac57f34f491375b03ba6d754e72c049080a22e3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 875ba926c41e88fcc457845fed7d2951f1cc416b
      
https://github.com/Perl/perl5/commit/875ba926c41e88fcc457845fed7d2951f1cc416b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 1e0e8fcd5016b65ab787669ab6509aec4268a04e
      
https://github.com/Perl/perl5/commit/1e0e8fcd5016b65ab787669ab6509aec4268a04e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: ae66efc65f00934bf96f3513e5f62ca0a6967a43
      
https://github.com/Perl/perl5/commit/ae66efc65f00934bf96f3513e5f62ca0a6967a43
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 9c205e239209ac5785cb1ecea082dcc3817c395e
      
https://github.com/Perl/perl5/commit/9c205e239209ac5785cb1ecea082dcc3817c395e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 429de9445988583e3a4f108a8e38dbf7c9ad157a
      
https://github.com/Perl/perl5/commit/429de9445988583e3a4f108a8e38dbf7c9ad157a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

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


  Commit: 9f37c2777c96f1b03826ccf8bdc9977c3261ff6a
      
https://github.com/Perl/perl5/commit/9f37c2777c96f1b03826ccf8bdc9977c3261ff6a
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: dfd9ab280ba3f42a8677b346e49a9d38805f2c25
      
https://github.com/Perl/perl5/commit/dfd9ab280ba3f42a8677b346e49a9d38805f2c25
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 153b95e2bc93de077f4c47d39c4e0745088088d5
      
https://github.com/Perl/perl5/commit/153b95e2bc93de077f4c47d39c4e0745088088d5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 121c9cf0de378f884dcfeb0e2f6abf3291106cc9
      
https://github.com/Perl/perl5/commit/121c9cf0de378f884dcfeb0e2f6abf3291106cc9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: c99614de2dfb95a7cc579f72f388934e2cc89368
      
https://github.com/Perl/perl5/commit/c99614de2dfb95a7cc579f72f388934e2cc89368
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 9fcb4aa8ca1198f8a3934369b48a9ec9238597dd
      
https://github.com/Perl/perl5/commit/9fcb4aa8ca1198f8a3934369b48a9ec9238597dd
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 544cb35df3600a7ea0c16e849d661f8b62d85f97
      
https://github.com/Perl/perl5/commit/544cb35df3600a7ea0c16e849d661f8b62d85f97
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 8041f980e8962e3fb02130e9b7299f79c2da5082
      
https://github.com/Perl/perl5/commit/8041f980e8962e3fb02130e9b7299f79c2da5082
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 7a2c90ad0ac6706cf298e49d12819a7853123c56
      
https://github.com/Perl/perl5/commit/7a2c90ad0ac6706cf298e49d12819a7853123c56
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 018ae29d8b810ebfe044c92704c14b0566d851af
      
https://github.com/Perl/perl5/commit/018ae29d8b810ebfe044c92704c14b0566d851af
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 7980d2a637e2c9e2eeea6031b30a756a1ef34ec2
      
https://github.com/Perl/perl5/commit/7980d2a637e2c9e2eeea6031b30a756a1ef34ec2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 8062d66793bd49d8baad28c173971e75c7ae0aa2
      
https://github.com/Perl/perl5/commit/8062d66793bd49d8baad28c173971e75c7ae0aa2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: 6988efbd7248c7e1eb2ec5881a416cc6a25ba54d
      
https://github.com/Perl/perl5/commit/6988efbd7248c7e1eb2ec5881a416cc6a25ba54d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e2813aaab1042d4e512aaa2652484d14e8166bfb
      
https://github.com/Perl/perl5/commit/e2813aaab1042d4e512aaa2652484d14e8166bfb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 72760c8dbbf1bdca7915d32e47ab3ae4195e7b0b
      
https://github.com/Perl/perl5/commit/72760c8dbbf1bdca7915d32e47ab3ae4195e7b0b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 59bcade882045fe6b02f7a40ae7e33a4a3f06e04
      
https://github.com/Perl/perl5/commit/59bcade882045fe6b02f7a40ae7e33a4a3f06e04
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: f1f654c54f24351489bcdbbd21839d7c79757c90
      
https://github.com/Perl/perl5/commit/f1f654c54f24351489bcdbbd21839d7c79757c90
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: eda9e6dd9708c3511c87ef2dd6ca7c4ccafe0d23
      
https://github.com/Perl/perl5/commit/eda9e6dd9708c3511c87ef2dd6ca7c4ccafe0d23
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 709c20c0aee41b0404a16e9973c9c9a829ce24c4
      
https://github.com/Perl/perl5/commit/709c20c0aee41b0404a16e9973c9c9a829ce24c4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 28fb54d6de6af6dc7cc7e53aae9cdb0e398218b7
      
https://github.com/Perl/perl5/commit/28fb54d6de6af6dc7cc7e53aae9cdb0e398218b7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M utf8.h

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


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

  Changed paths:
    M locale.c

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

This previously added an extraneous unused element.


  Commit: 8bc446fc03cfd09ac75d52a17450beca86c72362
      
https://github.com/Perl/perl5/commit/8bc446fc03cfd09ac75d52a17450beca86c72362
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a7fb0c49f1c57a313fd4995bbecfcd832b273740
      
https://github.com/Perl/perl5/commit/a7fb0c49f1c57a313fd4995bbecfcd832b273740
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: bec8c6b608a02382ac7373bae5d8a8616182a7c8
      
https://github.com/Perl/perl5/commit/bec8c6b608a02382ac7373bae5d8a8616182a7c8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: df77cbe03ba3557c972c87b1e559d0fb9bb5bef3
      
https://github.com/Perl/perl5/commit/df77cbe03ba3557c972c87b1e559d0fb9bb5bef3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e0b6bb9959a1c0f6be1fc06413530450ff40515c
      
https://github.com/Perl/perl5/commit/e0b6bb9959a1c0f6be1fc06413530450ff40515c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: bcef45ef0ff714b3436f58b8bead7ee28dea617c
      
https://github.com/Perl/perl5/commit/bcef45ef0ff714b3436f58b8bead7ee28dea617c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: fd5efc9051e7b951a1b1d4f3db746e4260881635
      
https://github.com/Perl/perl5/commit/fd5efc9051e7b951a1b1d4f3db746e4260881635
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 08a02150358abc9e97688b70f9a4d91d855efb44
      
https://github.com/Perl/perl5/commit/08a02150358abc9e97688b70f9a4d91d855efb44
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 2f2e3ac6766a0a92288c2a656c71906362617752
      
https://github.com/Perl/perl5/commit/2f2e3ac6766a0a92288c2a656c71906362617752
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 1e21ac1bd2c42236187bd21e8f7c62d3ce29ac04
      
https://github.com/Perl/perl5/commit/1e21ac1bd2c42236187bd21e8f7c62d3ce29ac04
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 79c30140a6a0061818e0a08afc0540e03a8dff9b
      
https://github.com/Perl/perl5/commit/79c30140a6a0061818e0a08afc0540e03a8dff9b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: d6fdb5fe30a0bf1d2d9d7bd3ad3e3dda677085d0
      
https://github.com/Perl/perl5/commit/d6fdb5fe30a0bf1d2d9d7bd3ad3e3dda677085d0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 512539e19255c5758e33960ed46b643ced618601
      
https://github.com/Perl/perl5/commit/512539e19255c5758e33960ed46b643ced618601
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 21fe2fc5a1969199d3be0a8356f37d1459082f77
      
https://github.com/Perl/perl5/commit/21fe2fc5a1969199d3be0a8356f37d1459082f77
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 2594f0132e933c2d63faad6b4f8c47c31830329e
      
https://github.com/Perl/perl5/commit/2594f0132e933c2d63faad6b4f8c47c31830329e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 4bafdbc192e24351e789ad5d9390ee742be0d826
      
https://github.com/Perl/perl5/commit/4bafdbc192e24351e789ad5d9390ee742be0d826
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 858d4570d390a882022e185e766e54ad9e872e59
      
https://github.com/Perl/perl5/commit/858d4570d390a882022e185e766e54ad9e872e59
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: de60a721b105bd9bdd1f491fea8311375b1a5958
      
https://github.com/Perl/perl5/commit/de60a721b105bd9bdd1f491fea8311375b1a5958
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a0c043d9e79fec83cf0c5b6b318d6a60377affdf
      
https://github.com/Perl/perl5/commit/a0c043d9e79fec83cf0c5b6b318d6a60377affdf
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 9a9b0aaeccb3764dcb874c120e269afa65efccc6
      
https://github.com/Perl/perl5/commit/9a9b0aaeccb3764dcb874c120e269afa65efccc6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c
    M perl.h

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


  Commit: 76e2ed069204ca4b475de255dd6e7e0a910301cc
      
https://github.com/Perl/perl5/commit/76e2ed069204ca4b475de255dd6e7e0a910301cc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 23dc3790ae92ede7b750aa03c8fce08808432ca6
      
https://github.com/Perl/perl5/commit/23dc3790ae92ede7b750aa03c8fce08808432ca6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: d08bf0548d5a83ef08fe0ebdcae7c34407e73d33
      
https://github.com/Perl/perl5/commit/d08bf0548d5a83ef08fe0ebdcae7c34407e73d33
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0be307dbd2102bf6b152a50e289a755c72e97813
      
https://github.com/Perl/perl5/commit/0be307dbd2102bf6b152a50e289a755c72e97813
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6897bf0df60d735e56c202f5421cdffeaeb5a8a3
      
https://github.com/Perl/perl5/commit/6897bf0df60d735e56c202f5421cdffeaeb5a8a3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: f410c8ce644ef9b997128349ed7c8750ce135fe2
      
https://github.com/Perl/perl5/commit/f410c8ce644ef9b997128349ed7c8750ce135fe2
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 941c04097671052e3bb8d054251c1af50947eb57
      
https://github.com/Perl/perl5/commit/941c04097671052e3bb8d054251c1af50947eb57
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 15a42594615d3a98eef53788a1a15f273e10817b
      
https://github.com/Perl/perl5/commit/15a42594615d3a98eef53788a1a15f273e10817b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 519e4bbeac39a0eaac7c98915fc4c357005165ea
      
https://github.com/Perl/perl5/commit/519e4bbeac39a0eaac7c98915fc4c357005165ea
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: a4c786800b4fc75110450aaeacd7c104c60057f5
      
https://github.com/Perl/perl5/commit/a4c786800b4fc75110450aaeacd7c104c60057f5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6c69b2f499239f1df8608f5e34b37748c2b585b6
      
https://github.com/Perl/perl5/commit/6c69b2f499239f1df8608f5e34b37748c2b585b6
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 98f6b6d9daa9f63bf3591f435c7546603836e647
      
https://github.com/Perl/perl5/commit/98f6b6d9daa9f63bf3591f435c7546603836e647
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 3784ba5d316457fb86617896edc60fa7bf881ac7
      
https://github.com/Perl/perl5/commit/3784ba5d316457fb86617896edc60fa7bf881ac7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 3ba1e44d3431c4b36a9ea2fdde6ad8a5f452aa2d
      
https://github.com/Perl/perl5/commit/3ba1e44d3431c4b36a9ea2fdde6ad8a5f452aa2d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a8f2ae27a7ee207bda56de5a5c5bf71469628d45
      
https://github.com/Perl/perl5/commit/a8f2ae27a7ee207bda56de5a5c5bf71469628d45
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 80b2b41d1f7125bdc63817b9448ed5cff072ec91
      
https://github.com/Perl/perl5/commit/80b2b41d1f7125bdc63817b9448ed5cff072ec91
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e4c1883527467cee8469403e3f2454d50c3cd1bc
      
https://github.com/Perl/perl5/commit/e4c1883527467cee8469403e3f2454d50c3cd1bc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 4ac114175bfe694cca4221e68c0f260f468a848d
      
https://github.com/Perl/perl5/commit/4ac114175bfe694cca4221e68c0f260f468a848d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 3d6e7ca343d62c0111fb10fbb6e24b50a861f166
      
https://github.com/Perl/perl5/commit/3d6e7ca343d62c0111fb10fbb6e24b50a861f166
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: fc689b0a84b55783ebea302671577e14a783f926
      
https://github.com/Perl/perl5/commit/fc689b0a84b55783ebea302671577e14a783f926
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 8cbbdec0a7480c81d159fd7268c2c53bd8ffba32
      
https://github.com/Perl/perl5/commit/8cbbdec0a7480c81d159fd7268c2c53bd8ffba32
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: de8ad300566a723f8a635e8c56a368a391b6410f
      
https://github.com/Perl/perl5/commit/de8ad300566a723f8a635e8c56a368a391b6410f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 1974bcaf46ae09ad10aa0f7e4c252b9fd789a79e
      
https://github.com/Perl/perl5/commit/1974bcaf46ae09ad10aa0f7e4c252b9fd789a79e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0cac539ed471d4d693a8738c646914636e5b61f0
      
https://github.com/Perl/perl5/commit/0cac539ed471d4d693a8738c646914636e5b61f0
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: c6f670b59082507aabe3442b962b340e3f78905e
      
https://github.com/Perl/perl5/commit/c6f670b59082507aabe3442b962b340e3f78905e
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 87fa42a307c52cf9f99fe8ee91651578c1adeefc
      
https://github.com/Perl/perl5/commit/87fa42a307c52cf9f99fe8ee91651578c1adeefc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 8a1e6ffb5cb25297616680df182c5d5a9f07233c
      
https://github.com/Perl/perl5/commit/8a1e6ffb5cb25297616680df182c5d5a9f07233c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 03e9f83e0f78567e0b947fc38452c2e20b21cbc9
      
https://github.com/Perl/perl5/commit/03e9f83e0f78567e0b947fc38452c2e20b21cbc9
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


  Commit: 4650a77e1e30b9b53036b399f6f4520f5c075840
      
https://github.com/Perl/perl5/commit/4650a77e1e30b9b53036b399f6f4520f5c075840
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 8d3c226ac8335117ca27788a9de33420b45f8171
      
https://github.com/Perl/perl5/commit/8d3c226ac8335117ca27788a9de33420b45f8171
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6e2b226feaceee12e533760827974da6d3f23474
      
https://github.com/Perl/perl5/commit/6e2b226feaceee12e533760827974da6d3f23474
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M t/porting/bincompat.t

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


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

  Changed paths:
    M hints/darwin.sh

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


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

  Changed paths:
    M intrpvar.h

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


  Commit: b4f4f974bcc31bbcc74f4e58528cfc650fb1569b
      
https://github.com/Perl/perl5/commit/b4f4f974bcc31bbcc74f4e58528cfc650fb1569b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 36150236ae8c81a6c06451fd1c01554003c79cc3
      
https://github.com/Perl/perl5/commit/36150236ae8c81a6c06451fd1c01554003c79cc3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6bd9af0217b4663ae9b0e1813a4788c7836787bb
      
https://github.com/Perl/perl5/commit/6bd9af0217b4663ae9b0e1813a4788c7836787bb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: cc95b0f25e807cdfe98c74c49f9bb64576740adb
      
https://github.com/Perl/perl5/commit/cc95b0f25e807cdfe98c74c49f9bb64576740adb
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: fcb3bcfd5ca6dc5e0536dce8e0ce05e1acb5869f
      
https://github.com/Perl/perl5/commit/fcb3bcfd5ca6dc5e0536dce8e0ce05e1acb5869f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 452896b023f9a35609280608208da6b101a28603
      
https://github.com/Perl/perl5/commit/452896b023f9a35609280608208da6b101a28603
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

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

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M makedef.pl

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

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

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


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

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

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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

This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.


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

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

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M Configure

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


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

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

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


  Commit: 8c7e0ae5ad390dcd96f34372c7892e00a40608bc
      
https://github.com/Perl/perl5/commit/8c7e0ae5ad390dcd96f34372c7892e00a40608bc
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a138826d147d692ef530dc022b461d1282fefd6c
      
https://github.com/Perl/perl5/commit/a138826d147d692ef530dc022b461d1282fefd6c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: f0599bc2862acd5b15908fbd7071e5878586ec1d
      
https://github.com/Perl/perl5/commit/f0599bc2862acd5b15908fbd7071e5878586ec1d
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 4ec2799386b919ffa1408778ca176c65d6edc85f
      
https://github.com/Perl/perl5/commit/4ec2799386b919ffa1408778ca176c65d6edc85f
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0ebe753c0641d7530540eb44bb71c337bcf5cf97
      
https://github.com/Perl/perl5/commit/0ebe753c0641d7530540eb44bb71c337bcf5cf97
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a7424c6ba0f1d3a56059ef2982b3626e92275f8b
      
https://github.com/Perl/perl5/commit/a7424c6ba0f1d3a56059ef2982b3626e92275f8b
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: f9fe04e1bde60b34ddc03e5115e464055aab7e21
      
https://github.com/Perl/perl5/commit/f9fe04e1bde60b34ddc03e5115e464055aab7e21
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: fe5b7d761cce16f695706b04d2c1cd771eeca56c
      
https://github.com/Perl/perl5/commit/fe5b7d761cce16f695706b04d2c1cd771eeca56c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 91f9d540a3f9c8cf2836e70e23087b0ab35465e7
      
https://github.com/Perl/perl5/commit/91f9d540a3f9c8cf2836e70e23087b0ab35465e7
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 9294afc25abae98a87edf9c8bbb05be5eb7d8cc4
      
https://github.com/Perl/perl5/commit/9294afc25abae98a87edf9c8bbb05be5eb7d8cc4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


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

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

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


  Commit: ab184254ff8a9fc70e609674d7181c5e900f9468
      
https://github.com/Perl/perl5/commit/ab184254ff8a9fc70e609674d7181c5e900f9468
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6d80be9431de0267931775010d5d263f6b3fcdf5
      
https://github.com/Perl/perl5/commit/6d80be9431de0267931775010d5d263f6b3fcdf5
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a1a7f819a54c37abad275ee34ba6ed02bbc56299
      
https://github.com/Perl/perl5/commit/a1a7f819a54c37abad275ee34ba6ed02bbc56299
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 1092f69f5c3135b6e07571b9c4657dc19335cc95
      
https://github.com/Perl/perl5/commit/1092f69f5c3135b6e07571b9c4657dc19335cc95
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 0ce2fa1ede167909d84cbb36c76f512df29f9c38
      
https://github.com/Perl/perl5/commit/0ce2fa1ede167909d84cbb36c76f512df29f9c38
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6be90677db3396ca83ab473eb8fe50a6b41a8812
      
https://github.com/Perl/perl5/commit/6be90677db3396ca83ab473eb8fe50a6b41a8812
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 1835c63746dcc13e605664f4194097c4c84eb734
      
https://github.com/Perl/perl5/commit/1835c63746dcc13e605664f4194097c4c84eb734
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 81bc7e50df5f58f9b088b958aae356ac24876c44
      
https://github.com/Perl/perl5/commit/81bc7e50df5f58f9b088b958aae356ac24876c44
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: f5f6dbe31ee61e85d8d089913d8181731e582ca1
      
https://github.com/Perl/perl5/commit/f5f6dbe31ee61e85d8d089913d8181731e582ca1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: f696a36a75660df44fb19ff63962b56bff944689
      
https://github.com/Perl/perl5/commit/f696a36a75660df44fb19ff63962b56bff944689
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

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

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M util.c

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


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

  Changed paths:
    M win32/Makefile

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


  Commit: 25b74493f1f034349e419a1489663d26f468ace8
      
https://github.com/Perl/perl5/commit/25b74493f1f034349e419a1489663d26f468ace8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e650f93340d56840b80e85bd6ae3448cfcf83976
      
https://github.com/Perl/perl5/commit/e650f93340d56840b80e85bd6ae3448cfcf83976
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 55912dfde4c97bf99efbf31d7e9744c23f8f6cc3
      
https://github.com/Perl/perl5/commit/55912dfde4c97bf99efbf31d7e9744c23f8f6cc3
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 2449cb30c111422c3529c1f62b9e121b17166053
      
https://github.com/Perl/perl5/commit/2449cb30c111422c3529c1f62b9e121b17166053
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: d81889b6bf7ad21948cf9d7c35e5b7920dcb61e4
      
https://github.com/Perl/perl5/commit/d81889b6bf7ad21948cf9d7c35e5b7920dcb61e4
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 6347300a59b93f5ac8e61d5820046bca5a846938
      
https://github.com/Perl/perl5/commit/6347300a59b93f5ac8e61d5820046bca5a846938
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M t/re/pat.t

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


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

  Changed paths:
    M t/run/locale.t

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


  Commit: 1f1638f2d13c95b7331189d2b99ed36415ba2900
      
https://github.com/Perl/perl5/commit/1f1638f2d13c95b7331189d2b99ed36415ba2900
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e73051f15b3c8295c95cfd6b87af5feb130c054c
      
https://github.com/Perl/perl5/commit/e73051f15b3c8295c95cfd6b87af5feb130c054c
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: d90cbd3fc783fd79573f4c501e9c87421406a538
      
https://github.com/Perl/perl5/commit/d90cbd3fc783fd79573f4c501e9c87421406a538
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: a223527658a11312f4540e4fe002da50d524a4e8
      
https://github.com/Perl/perl5/commit/a223527658a11312f4540e4fe002da50d524a4e8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
    M inline.h

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

I don't remember why this was done


  Commit: 2ef634f945da43d7c75415565d7b17b137261f59
      
https://github.com/Perl/perl5/commit/2ef634f945da43d7c75415565d7b17b137261f59
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: 62c0530f5b4b699578c1b9f0f2791a4ccafcd1f1
      
https://github.com/Perl/perl5/commit/62c0530f5b4b699578c1b9f0f2791a4ccafcd1f1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: d9e5b4410a8af318629d7652d8c14e451ebc04ba
      
https://github.com/Perl/perl5/commit/d9e5b4410a8af318629d7652d8c14e451ebc04ba
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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: e91430e50925c92527ba241d6267a81f289326f1
      
https://github.com/Perl/perl5/commit/e91430e50925c92527ba241d6267a81f289326f1
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 Jun 2023)

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

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


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

  Changed paths:
    M util.c

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: baad94e8c9eaf4dfde9669b5e6a0baa239af4fd8
      
https://github.com/Perl/perl5/commit/baad94e8c9eaf4dfde9669b5e6a0baa239af4fd8
  Author: Karl Williamson <[email protected]>
  Date:   2023-06-10 (Sat, 10 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/192fc0bfa44f...baad94e8c9ea

Reply via email to