Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 69d296d8d045bffd8238c1326449c48886889346
      
https://github.com/Perl/perl5/commit/69d296d8d045bffd8238c1326449c48886889346
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale.t

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

Fixes #21697.

On some platforms, a locale name is specified in the code page (or
code set) that applies to it, rather than plain ASCII.  Windows, and
hence MingW, is the prime example.

The locale name for a particular Turkish variety found in MingW is
"Turkish_T?????.1254" where the question marks represent different
characters that have meaning in the 1254 code page, but would look like
mojibake if I had reproduced their actual values here.

When doing a setlocale() here, if the current code page is incompatible
with the new one, it will fail; if compatible it will succeed.

On my box running MingW, locales are tried out by this test file in
alphabetical order, and the one before this Turkish happens to be Thai,
with a code page of 874.  Apparently 1254 is not compatible with 874, so
switching directly from Thai to Turkish fails.

The solution is to switch into a neutral code page before switching into
one being trialed.  "C" works in this case, and I suspect in all others.


  Commit: 99df0f4f1df4a26b66db7788ad37136ddfba6517
      
https://github.com/Perl/perl5/commit/99df0f4f1df4a26b66db7788ad37136ddfba6517
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M charclass_invlists.h
    M lib/unicore/Makefile
    M lib/unicore/mktables
    M lib/unicore/uni_keywords.pl
    M regcharclass.h
    M uni_keywords.h

  Log Message:
  -----------
  mktables more verbose


  Commit: 07175b9133124001b72139ae1b491e62b093ba7a
      
https://github.com/Perl/perl5/commit/07175b9133124001b72139ae1b491e62b093ba7a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm

  Log Message:
  -----------
  BlackBox dont use rare scripts


  Commit: 50c59359017dde85d1b133c5ed46560e1cb7a6c6
      
https://github.com/Perl/perl5/commit/50c59359017dde85d1b133c5ed46560e1cb7a6c6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/harness

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


  Commit: a140a1aaa6b761185331d4ca7026bbf0dcdff16b
      
https://github.com/Perl/perl5/commit/a140a1aaa6b761185331d4ca7026bbf0dcdff16b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/harness

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


  Commit: d01160da7355fc2c98b9c0a0c78e4695a048d9c0
      
https://github.com/Perl/perl5/commit/d01160da7355fc2c98b9c0a0c78e4695a048d9c0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/porting/bincompat.t

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


  Commit: 0a737c41a2f4e8d05d88660e24aa12cbff5b903f
      
https://github.com/Perl/perl5/commit/0a737c41a2f4e8d05d88660e24aa12cbff5b903f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/porting/bincompat.t

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

This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c.


  Commit: 840d4eab304f4b7f790b751f48fab5a01671245c
      
https://github.com/Perl/perl5/commit/840d4eab304f4b7f790b751f48fab5a01671245c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/TEST

  Log Message:
  -----------
  Skip cpan testing message


  Commit: dcdfbd8fe35a23bfa1933cab1a8caf70bbcaecf5
      
https://github.com/Perl/perl5/commit/dcdfbd8fe35a23bfa1933cab1a8caf70bbcaecf5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  runconfigure: only usequery with that directory


  Commit: d5f0736ee2076ddb0b07af9fbb797a0dc4f26afb
      
https://github.com/Perl/perl5/commit/d5f0736ee2076ddb0b07af9fbb797a0dc4f26afb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/TEST

  Log Message:
  -----------
  Also skip non-thread dist testing


  Commit: 09f68e1a769095557e39d310fa85990f683da525
      
https://github.com/Perl/perl5/commit/09f68e1a769095557e39d310fa85990f683da525
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: b7e147e4fcc652718f726e21c974fade5bf1e101
      
https://github.com/Perl/perl5/commit/b7e147e4fcc652718f726e21c974fade5bf1e101
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/porting/cmp_version.t

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


  Commit: 33070a7e935a1fc90dfa7c81756747dd4fd5b7a3
      
https://github.com/Perl/perl5/commit/33070a7e935a1fc90dfa7c81756747dd4fd5b7a3
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 16809a9974c68293ece677d6ab3307214c7a2f8e
      
https://github.com/Perl/perl5/commit/16809a9974c68293ece677d6ab3307214c7a2f8e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  up timeout for dist/Tie-File/t/29a_upcopy.t


  Commit: 2bc35b69e5d38a52debf5699d18a67d71fb3bd63
      
https://github.com/Perl/perl5/commit/2bc35b69e5d38a52debf5699d18a67d71fb3bd63
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 3cf41957fd6aa8e7dc8b68d1b31e55df77575e4d
      
https://github.com/Perl/perl5/commit/3cf41957fd6aa8e7dc8b68d1b31e55df77575e4d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: 8edbc16cdd3583e3bc7f5a95969db8b8324899c1
      
https://github.com/Perl/perl5/commit/8edbc16cdd3583e3bc7f5a95969db8b8324899c1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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:
  -----------
  Make 24 uniprops.t tests


  Commit: 628edfc290c4b6348e2545d2e52b7b056fb09745
      
https://github.com/Perl/perl5/commit/628edfc290c4b6348e2545d2e52b7b056fb09745
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: c2e2e00f92e5ab69c1eaa2bdeb20a1e7421c7a6a
      
https://github.com/Perl/perl5/commit/c2e2e00f92e5ab69c1eaa2bdeb20a1e7421c7a6a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: b9e42eb07f54e82c31f70835ad0fd19fd268378a
      
https://github.com/Perl/perl5/commit/b9e42eb07f54e82c31f70835ad0fd19fd268378a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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

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


  Commit: 0b56ac42290538b600f584c8968a596382cb4a3d
      
https://github.com/Perl/perl5/commit/0b56ac42290538b600f584c8968a596382cb4a3d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/porting/cmp_version.t

  Log Message:
  -----------
  XXX skip cmp_version.t prob. due to 5.38 tag issue


  Commit: 89a57f2381ffd51b82a88530bf808e54fe07d77c
      
https://github.com/Perl/perl5/commit/89a57f2381ffd51b82a88530bf808e54fe07d77c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  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: f7653609517459e3e04702e52674757faaf9d6a0
      
https://github.com/Perl/perl5/commit/f7653609517459e3e04702e52674757faaf9d6a0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M makedef.pl
    M perl.h

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


  Commit: d767f06a3c5517944b76816a2c50546c41ef02f9
      
https://github.com/Perl/perl5/commit/d767f06a3c5517944b76816a2c50546c41ef02f9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: d5815570c7e4b0fade1ba2be3dea201399c03039
      
https://github.com/Perl/perl5/commit/d5815570c7e4b0fade1ba2be3dea201399c03039
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 2f970b03f5998e5270f1b7beb50ab8c18a0415c4
      
https://github.com/Perl/perl5/commit/2f970b03f5998e5270f1b7beb50ab8c18a0415c4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 0940facd1dcc8efdcdca4b9c80de503b8141092e
      
https://github.com/Perl/perl5/commit/0940facd1dcc8efdcdca4b9c80de503b8141092e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 72707a2271a60e726d0ac71f41f5ee88aac7f408
      
https://github.com/Perl/perl5/commit/72707a2271a60e726d0ac71f41f5ee88aac7f408
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 2fe6ff3681d13c0d079570bab764fe1a737a2119
      
https://github.com/Perl/perl5/commit/2fe6ff3681d13c0d079570bab764fe1a737a2119
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: b462aa685b3a322875d03b2cd7081d4df1356f0b
      
https://github.com/Perl/perl5/commit/b462aa685b3a322875d03b2cd7081d4df1356f0b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: 01f9876a5fd3add10d97477ed4bdf3fa6da09520
      
https://github.com/Perl/perl5/commit/01f9876a5fd3add10d97477ed4bdf3fa6da09520
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M dist/threads/threads.xs

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


  Commit: 0f36a5b82d68e981d95173bf9ec1f0bcab0ea0a3
      
https://github.com/Perl/perl5/commit/0f36a5b82d68e981d95173bf9ec1f0bcab0ea0a3
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale.t

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


  Commit: 38b3c157f797ecfa666f50e87a974b5fbe2e33cc
      
https://github.com/Perl/perl5/commit/38b3c157f797ecfa666f50e87a974b5fbe2e33cc
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale.t

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


  Commit: c40e01df1ffc4771b0ec045841f54729d0d102f3
      
https://github.com/Perl/perl5/commit/c40e01df1ffc4771b0ec045841f54729d0d102f3
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale.t

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


  Commit: f163b7eeee60baee5a6b3553351abb1b8f065649
      
https://github.com/Perl/perl5/commit/f163b7eeee60baee5a6b3553351abb1b8f065649
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: 676b5e111d1d1d7e0f913c61e3c06e10c678cb85
      
https://github.com/Perl/perl5/commit/676b5e111d1d1d7e0f913c61e3c06e10c678cb85
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  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: db8e700435e5abd1452bbc5a95740a7ea03e0b66
      
https://github.com/Perl/perl5/commit/db8e700435e5abd1452bbc5a95740a7ea03e0b66
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  cpan/version/07locale.t: drop, bug have to recompute md5


  Commit: a746a829cff1b172252908ff2011dadb195fad71
      
https://github.com/Perl/perl5/commit/a746a829cff1b172252908ff2011dadb195fad71
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/porting/customized.dat

  Log Message:
  -----------
  customized.dat


  Commit: 41f04543195eaa8636b98aa0006e539476da02ca
      
https://github.com/Perl/perl5/commit/41f04543195eaa8636b98aa0006e539476da02ca
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  loc_tools: XXX Debug


  Commit: 7c073605d8020e7ea417343739941add26f97e7d
      
https://github.com/Perl/perl5/commit/7c073605d8020e7ea417343739941add26f97e7d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_querylocale_2008_i:  Add entry assertion


  Commit: 7b872d68afd930e8bbdbbb940c4f68adff3b3643
      
https://github.com/Perl/perl5/commit/7b872d68afd930e8bbdbbb940c4f68adff3b3643
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  S_bool_setlocale_i: Add entry assertion


  Commit: 20ef6a2f1f619ef1bf9b44c11a59d3e3325feaed
      
https://github.com/Perl/perl5/commit/20ef6a2f1f619ef1bf9b44c11a59d3e3325feaed
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: c9981c1a7b4d637ef55b36a5e5c3b9e8d7380525
      
https://github.com/Perl/perl5/commit/c9981c1a7b4d637ef55b36a5e5c3b9e8d7380525
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M hints/darwin.sh

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


  Commit: cbf023b432069bb0770146414d6303f7403e094e
      
https://github.com/Perl/perl5/commit/cbf023b432069bb0770146414d6303f7403e094e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pp.c

  Log Message:
  -----------
  pp_study: Add memory use debugging


  Commit: 3325f8cf1fa1a15ab4f26c4a71b74290b4025419
      
https://github.com/Perl/perl5/commit/3325f8cf1fa1a15ab4f26c4a71b74290b4025419
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pp.c

  Log Message:
  -----------
  Revert "pp_study: Add memory use debugging"


  Commit: 935656b8690aae7c3686147edd93a4a5cdb6be5d
      
https://github.com/Perl/perl5/commit/935656b8690aae7c3686147edd93a4a5cdb6be5d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M hints/darwin.sh

  Log Message:
  -----------
  darwin


  Commit: eac6b2d100b99619d8fe9a693983e30646cbd376
      
https://github.com/Perl/perl5/commit/eac6b2d100b99619d8fe9a693983e30646cbd376
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M hints/freebsd.sh

  Log Message:
  -----------
  Enable thread-safe locales on some freebsd versions

This had been disabled in the hints file due to bugs, which perl now
works around, so reenable (and reformat some lines for clarity)


  Commit: 9f9190c8ecd9889c8034e7b0ace08e1ea25414a1
      
https://github.com/Perl/perl5/commit/9f9190c8ecd9889c8034e7b0ace08e1ea25414a1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: a18d473700a1ecface2ee2cb13405fdc3078fbbe
      
https://github.com/Perl/perl5/commit/a18d473700a1ecface2ee2cb13405fdc3078fbbe
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  locale_threads: add a commented out yield


  Commit: c0318fa017f4f361f9ad47a7f5433b04352884b1
      
https://github.com/Perl/perl5/commit/c0318fa017f4f361f9ad47a7f5433b04352884b1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: cfc0a552132b5081aacdcd5a5e365272cca30ac4
      
https://github.com/Perl/perl5/commit/cfc0a552132b5081aacdcd5a5e365272cca30ac4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 0b2a13dd074c1f58602c0f9f556435bbd653cbaf
      
https://github.com/Perl/perl5/commit/0b2a13dd074c1f58602c0f9f556435bbd653cbaf
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  Time-Piece: Use foldEQ_locale() if available

This core function available since 5.13.2 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
substitute, but far better than nothing.


  Commit: 084ee1f111638719ac41287065fb96f470bf485a
      
https://github.com/Perl/perl5/commit/084ee1f111638719ac41287065fb96f470bf485a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 44e99c7382ee769f55ad98235a59e52a4201b240
      
https://github.com/Perl/perl5/commit/44e99c7382ee769f55ad98235a59e52a4201b240
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


  Commit: 245fef46371a2ec7f546c821825c0357d85e2741
      
https://github.com/Perl/perl5/commit/245fef46371a2ec7f546c821825c0357d85e2741
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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: 27c86e078798c18355c90cd0b70d646d56fc2eaa
      
https://github.com/Perl/perl5/commit/27c86e078798c18355c90cd0b70d646d56fc2eaa
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  XXX Time::Piece strftime


  Commit: b545cb43f5d8846bf18e60a9bf3183af92f0627f
      
https://github.com/Perl/perl5/commit/b545cb43f5d8846bf18e60a9bf3183af92f0627f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: 883593856b0dfa82fefea4726b251f638c896af1
      
https://github.com/Perl/perl5/commit/883593856b0dfa82fefea4726b251f638c896af1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: 95803afefa74695f936419f348fd471b675a4dce
      
https://github.com/Perl/perl5/commit/95803afefa74695f936419f348fd471b675a4dce
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M util.c

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


  Commit: dc43d4bbec998e050c0b7e4459b82b18e78234cb
      
https://github.com/Perl/perl5/commit/dc43d4bbec998e050c0b7e4459b82b18e78234cb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: aefd8c2da3963b2ba6346a3990546bd90156f827
      
https://github.com/Perl/perl5/commit/aefd8c2da3963b2ba6346a3990546bd90156f827
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 62bb31921d6a7526eaf5a186037a8af03113b60b
      
https://github.com/Perl/perl5/commit/62bb31921d6a7526eaf5a186037a8af03113b60b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M iperlsys.h

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


  Commit: 89b37778ea7f2f969263e6dbcdbdd37e2c0486be
      
https://github.com/Perl/perl5/commit/89b37778ea7f2f969263e6dbcdbdd37e2c0486be
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M regen/reentr.pl

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


  Commit: 856904829a31e5d5c6f22405e70addf1fedf6e79
      
https://github.com/Perl/perl5/commit/856904829a31e5d5c6f22405e70addf1fedf6e79
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: 53ec864bcc059e6c4c9723af086d5cc311d2ec79
      
https://github.com/Perl/perl5/commit/53ec864bcc059e6c4c9723af086d5cc311d2ec79
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pod/perlmod.pod

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


  Commit: 6891773c05448faf6bd467e94bfd467e7bb96c57
      
https://github.com/Perl/perl5/commit/6891773c05448faf6bd467e94bfd467e7bb96c57
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pod/perllocale.pod

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


  Commit: 2770ff968ced632f384393deefb8680030dc7807
      
https://github.com/Perl/perl5/commit/2770ff968ced632f384393deefb8680030dc7807
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M win32/config_H.gc
    M win32/config_h.PL
    M win32/config_sh.PL

  Log Message:
  -----------
  XXX config


  Commit: 7b2bd5cf0b16a6d1ed6b7e668dcb07500bd55eb6
      
https://github.com/Perl/perl5/commit/7b2bd5cf0b16a6d1ed6b7e668dcb07500bd55eb6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pod/perlembed.pod

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


  Commit: 275862bd428022ca48529cfd9a5904cd3ef45fbb
      
https://github.com/Perl/perl5/commit/275862bd428022ca48529cfd9a5904cd3ef45fbb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M intrpvar.h
    M locale.c
    M perl.h

  Log Message:
  -----------
  Fixup FAKE_MINGW

This is used (by me) to partially emulate MingW on a *nix platform.  It
was passing all its tests, but I discovered that I had the wrong #if
which was hence not enabling crucial parts of the emulation.


  Commit: db995bfc6ef0960064eb5ce63718c519d9dd5046
      
https://github.com/Perl/perl5/commit/db995bfc6ef0960064eb5ce63718c519d9dd5046
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  locale_threads: start of using platform locales


  Commit: 7dec32a81ca37ec0f78ece7f0ff117eb0b9460c9
      
https://github.com/Perl/perl5/commit/7dec32a81ca37ec0f78ece7f0ff117eb0b9460c9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  Revert "locale_threads: start of using platform locales"

This reverts commit a7a8dea3aabb81a05aacaf3a26c49854a5854111.


  Commit: e7fb54af4ec74d622d7854278612299e428c2f8c
      
https://github.com/Perl/perl5/commit/e7fb54af4ec74d622d7854278612299e428c2f8c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c
    M perl.c
    M sv.c

  Log Message:
  -----------
  define numeric values to be C when no USE_NUMERIC


  Commit: 849a8e900ac95f939ee3f13b6c9f895d6b8377a6
      
https://github.com/Perl/perl5/commit/849a8e900ac95f939ee3f13b6c9f895d6b8377a6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c
    M perl.c
    M sv.c

  Log Message:
  -----------
  Revert "define numeric values to be C when no USE_NUMERIC"

This reverts commit 9bb7ff6531bf9e28d635a71e6d55c752a995da2d.


  Commit: ff9df8778d2abf4ffc348cc2700eb354cf10aa56
      
https://github.com/Perl/perl5/commit/ff9df8778d2abf4ffc348cc2700eb354cf10aa56
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add #define to separate label from declaration

This is designed to be mostly self-documenting.


  Commit: 3a3b46654279bc9cb11c58d88691f485f822f3a2
      
https://github.com/Perl/perl5/commit/3a3b46654279bc9cb11c58d88691f485f822f3a2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pp.c

  Log Message:
  -----------
  pp_study: hook


  Commit: d5987d7bd4b0143b3655e0336ec531e55728c8c5
      
https://github.com/Perl/perl5/commit/d5987d7bd4b0143b3655e0336ec531e55728c8c5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


  Commit: 76604d37449d7396cc52491c608cfd51fa133080
      
https://github.com/Perl/perl5/commit/76604d37449d7396cc52491c608cfd51fa133080
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  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 pod/perlvar.pod
    M proto.h
    M sv.c

  Log Message:
  -----------
  Add ability to emulate thread-safe locale operations

Locale information was originally global for an entire process.  Later,
it was realized that different threads could want to be running in
different locales.  Windows added this ability, and POSIX 2008 followed
suit (though using a completely different API).  When available, perl
automatically uses these capabilities.

But many platforms have neither, or their implementation, such as on
Darwin, is buggy.  This commit adds the capability for Perl programs to
operate as if the platform were thread-safe.

This implementation is based on the observation that the underlying
locale matters only to relatively few libc calls, and only during their
execution.  It can be anything at all at any other time.  perl keeps
what the proper locale should be for each category in a a per-thread
array.  Each locale-dependent operation must be wrapped in mutex
lock/unlock operations.  The lock additionally compares what libc knows
the locale to be, and what it should be for this thread at this time,
and changes the actual locale to the proper value if necessary.  That's
all that is needed.

This commit adds macros to perl.h, for example "MBTOWC_LOCK_", that
expand to do the mutex lock, and change the global locale to the
expected value.  On perls built without this emulation capability, they
are no-ops.  All code in the perl core (unless I've missed something),
are changed to use these macros (there weren't actually many places that
needed this).  Thus, any pure perl program will automatically become
locale-thread-safe under this Configuration.

In order for XS code to also become locale-thread-safe, it must use
these macros to wrap calls to locale-dependent functions.  Relatively
few modules call such functions.  For example, the only one I found that
ships with the perl core is Time::Piece, and it has more fundamental
issues with running under threads than this.  I am preparing pull
requests for it.

Thus, this is not completely transparent to code like native-thread-safe
locale handling is.  Therefore ${^SAFE_LOCALES} returns 2 (instead of 1)
for this type of thread-safety.

Another deficiency compared to the native thread safety is when a thread
calls a non-perl library that accesses the locale.  The typical example is
Gtk (though this particular application can be configured to not be
problematic).  With the native safe threads, everything works as long as
only one such thread is used per Perl program.  That thread would then
be the only one operating in the global locale, hence there are no
conflicts.  With this emulation, all threads are operating in the global
locale, and mutexes would have to be used to prevent conflicts.  To
minimize those, the code added in this commit restores the global locale
when through to the state it was in when started.

A major concern is the performance impact.  This is after all trading
speed for accuracy.  lib/locale_threads.t is noticeably slower when this
is being used.  But that is doing multiple threads constantly using
locale-dependent operations.  I don't notice any change with the rest of
the test suite.  In pure perl, this only comes into play while in the
scope of 'use locale' or when using some of the few POSIX:: functions
that are locale-dependent.  And to some extent when formatting, but the
regular overhead there should dwarf what this adds.

This commit leaves this feature off by default.  The next commit changes
that for the next few 5.39 development releases, so we can see if there
is actually an issue.


  Commit: deeb804a67599b345e13a88bcbadb93e800bc239
      
https://github.com/Perl/perl5/commit/deeb804a67599b345e13a88bcbadb93e800bc239
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 2ea9addecb82265497baa44159f32d0cfa64ae49
      
https://github.com/Perl/perl5/commit/2ea9addecb82265497baa44159f32d0cfa64ae49
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  more maybe


  Commit: 1cbc8826872c46cb830701d062eef24afe8a1aef
      
https://github.com/Perl/perl5/commit/1cbc8826872c46cb830701d062eef24afe8a1aef
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  locale.c: Silence compiler warning

This tightens when this function is compiled to the actual
Configurations it is needed in.


  Commit: f44c0a05fbebb75c22d57250810135157d929f60
      
https://github.com/Perl/perl5/commit/f44c0a05fbebb75c22d57250810135157d929f60
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  C_thous better ifdef


  Commit: 1af8aa5aee9b3af9824195806b12d0647150c664
      
https://github.com/Perl/perl5/commit/1af8aa5aee9b3af9824195806b12d0647150c664
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M ext/POSIX/t/posix.t
    M ext/POSIX/t/time.t
    M ext/XS-APItest/t/locale.t
    M lib/locale.t
    M lib/locale_threads.t

  Log Message:
  -----------
  skip tests if no strftime


  Commit: 541d9bbc43e3758c896562d15a8f1a3c72eefd68
      
https://github.com/Perl/perl5/commit/541d9bbc43e3758c896562d15a8f1a3c72eefd68
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  loctools use if dumper


  Commit: f93144aeb233996dc5eb7da1f335e3128a663fcd
      
https://github.com/Perl/perl5/commit/f93144aeb233996dc5eb7da1f335e3128a663fcd
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M ext/POSIX/lib/POSIX.pod

  Log Message:
  -----------
  start of pod for localeconv


  Commit: 7a342f42522ce9935824e3cfc5b91a845aa90a21
      
https://github.com/Perl/perl5/commit/7a342f42522ce9935824e3cfc5b91a845aa90a21
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Add struct definition as a fallback

If we ever encountered a platform that didn't have localeconv(), nor its
structure definition, this could be used to get things to work.


  Commit: 16129a30688b35a23b321325da90033d983a73b4
      
https://github.com/Perl/perl5/commit/16129a30688b35a23b321325da90033d983a73b4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  debug populate localeconv


  Commit: 28110821671ec36e8165f0d53368d7996a960962
      
https://github.com/Perl/perl5/commit/28110821671ec36e8165f0d53368d7996a960962
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M dist/threads/threads.xs

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


  Commit: 3b1545dc6acaa86449669cfdb4ee43f35cb12508
      
https://github.com/Perl/perl5/commit/3b1545dc6acaa86449669cfdb4ee43f35cb12508
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  lib/locale_threads.t: Add debugging info


  Commit: 8e3873bc718de305ced544f0e43ea9d709427375
      
https://github.com/Perl/perl5/commit/8e3873bc718de305ced544f0e43ea9d709427375
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  Add newSVpvz() to create a sized SvPV.

There's no current trivial method to create a non-zero length  SV that
will hold a PV.


  Commit: 483a1ee8962ad043841c43cd22bd26e4ae947bb0
      
https://github.com/Perl/perl5/commit/483a1ee8962ad043841c43cd22bd26e4ae947bb0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Call newSVpvz()


  Commit: 6eb60082e99fecb7cfe69cb16826e9f6e64941ce
      
https://github.com/Perl/perl5/commit/6eb60082e99fecb7cfe69cb16826e9f6e64941ce
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Shorten critical section times

Toggling a category's locale has a cost, so if there are a bunch of
operations that are going to be done in a row in a particular toggled
state, it makes sense to toggle once, do them all, then toggle back.
Most of the toggling in this file is short term, but there are a few
places where it is advantageous to toggle once.

But on some Configurations, toggling creates a critical, uninterruptible
section.  For these, keeping the amount of time spent in such a state
without letting other threads execute needs to be as short as feasible,
and this outweighs the cost of toggling and retoggling.

This commit balances these competing needs by creating new macros for
those cases where we want to have an overarching toggle.  Those macros
become no-ops when the toggling creates an uninterruptible section.
Thus, when there is a cost to remaining toggled for longer periods,
those macros don't do anything, and the macros that are at the point of
the actual need are the ones that do the toggling/retoggling.  In the
Configurations where there isn't such a cost, the overarching macros
kick in, and the shorter-term ones find that the state is already
toggled, and they return without doing anything.


  Commit: 201cd81226c044fc3a4e771ae7f596cb61f95ec3
      
https://github.com/Perl/perl5/commit/201cd81226c044fc3a4e771ae7f596cb61f95ec3
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: e8f02bc4d2e24d0aeda397d01f4a6451505f0626
      
https://github.com/Perl/perl5/commit/e8f02bc4d2e24d0aeda397d01f4a6451505f0626
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: 70ca551a1b12adc2c90c8a798e0a911535e1e024
      
https://github.com/Perl/perl5/commit/70ca551a1b12adc2c90c8a798e0a911535e1e024
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Make numeric standard inconsistent


  Commit: b0096cb47204408f0c7e191a80168f9445b32c76
      
https://github.com/Perl/perl5/commit/b0096cb47204408f0c7e191a80168f9445b32c76
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  Experimentally enable per-thread locale emulation

This is set to end in 5.39.10, but will give us field experience in the
meantime.


  Commit: 5a45617e7079201b3f228a4e2eea2f88e460398c
      
https://github.com/Perl/perl5/commit/5a45617e7079201b3f228a4e2eea2f88e460398c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M makedef.pl
    M perl.h

  Log Message:
  -----------
  Don't do thread-safe locales emulation on mingw

MingW when compiled with the Universal C runtime (UCRT) is thread-safe
with respect to locales, just as VS 2015 and later MSVCRT compilations
are.

However, versions not using UCRT cannot be compiled to emulate
thread-safe locale.  I'm pretty sure this is due to a bug in the libc
strftime() function, having spent a bunch of hours working on this.

It often fails lib/locale_threads.t when using the emulation, but not
always.  The failure is always in strftime().

What made me think it could be perl is another characteristic of the
failures.  lib/locale_threads.t works by, in each thread, setting each
available locale category to a locale, different from any other category
in that thread, and as different as possible from the locale for the
corresponding category in any other thread.  For example thread 0 might
have LC_CTYPE set to locale X, LC_NUMERIC to Y, LC_TIME to Z, etc.
Thread 1 would use a locale for LC_CTYPE, as different from X as
possible, meaning executing the same operation on thread 0 and thread 1
would yield different expected results.  (It goes to some lengths to
calculate the biggest distance in the results.)  Similarly LC_NUMERIC
would have something almost completely different from Y; and so on.

Then each thread executes a batch of iterations.  Each iteration runs
all the operations I could find that perl uses that apply to LC_TYPE,
and all the ones that apply to each of the other categories.  And
verifies that all the results are as expected.

Simultaneously, the other threads are executing their batch.  It is
verifying that there is no bleed-through from one thread to another.  If
the threads all have the same results as the other threads, we couldn't
detect if there is real bleed-through or not.  This is solved by making
the results for each category as different as possible from any other
thread currently executing.

However, this isn't good enough.  Every so many iterations, each thread
changes to use a new set of locales.  This verifies that the locales can
be changed in a thread without that bleeding through to other threads.

And thread 0 is special.  It harvests the other threads as they finish,
and keeps going for a while.  This is to catch bugs in thread
completion, of which we've had a few.

MingW's failures all occur, when they occur, on the first iteration
following a switch to a new set of locales.  That is suspiciously like
it is a race condition in cleaning up from the previous setting.  But it
isn't the first test of the set of the first iteration of the next set.
It can be the 10th or so test.  I added enough debugging statements to
convince me that it isn't perl.

This is the failing code in locale.c:

        STRFTIME_LOCK;
        int len = strftime(buf, bufsize, fmt, mytm);
        STRFTIME_UNLOCK;

The returned 'buf' is not always correct.
T
The LOCK/UNLOCK macros on MingW with thread-safe emulation enabled, call
EnterCriticalSection(), and set the locales for the categories that
affect strftime() to the proper locale.  Just to be sure. I tested
setting LC_ALL to the correct value.  While in its uninterruptible (by
other locale handling code anyway) section, strftime() fills buf with
the result for the current locale (which STRFTIME_LOCK has set).

I added print statements within the critical section thusly

        STRFTIME_LOCK;
        DEBUG_U(PerlIO_printf(Perl_debug_log,
                              "calling strftime(%s), LC_ALL=%s\n",
                              fmt, setlocale(LC_ALL, NULL)));
        int len = strftime(buf, bufsize, fmt, mytm);
        DEBUG_U(PerlIO_printf(Perl_debug_log,
                              "return=%s, LC_ALL=%s\n",
                              buf, setlocale(LC_ALL, NULL)));
        STRFTIME_UNLOCK;

On this platform, setlocale() expands to _wsetlocale(), a Windows libc
call.

Here's what they showed for one failure.

        calling strftime(%b), LC_ALL=Hungarian_Hungary.1250
        return=marc., LC_ALL=Hungarian_Hungary.1250

The 'a' in the Hungarian for March is supposed to be a U+00E1, with an
acute accent, so this is wrong.

strftime() also is passed a pointer to a struct tm, which is filled in
with various integers which indicate in this case which month the %b is
supposed to return.  That it is returning something very much like márch
indicates those integers are correct.

Not shown in the example above are the other prints I added to verify
that we are indeed in a critical section.  I didn't see a way to
actually test for this via a libc call, but one could use strace and
wade through the output.  But there are print statements that print out
immediately before entering a critical section, and immediately after
leaving it.  I verified that those prints indicate this code is in a
critical section.

I note that this box has actually not very many locales, so that the
distance between the results of various threads isn't all that large.
Pretty much all the locales are CP 1250, 1251, 1252, and 1257, and no
UTF-8 ones, so all locales are single byte.  None of them map \XE1 into
plain 'a', which is what we are seeing returned, so the cleanup theory
seems wrong.  Sometimes the return is '?' or a series of them,
indicating that the returned character is mojibake.

None of the locales I saw had 'marc\.' as a possible return.  It appears
only here in the entire trace of all threads.  This makes it again less
likely that it is a cleanup issue.  But where did it come from?.  I
don't know.  The value for the C locale is 'Mar', so it didn't come from
there.

The localeconv() function is also broken in this Configuration.  We long
ago figured out a workaround for that.  I tried that same workaround for
strftime(), and it didn't help.


  Commit: d236730017212c13b7b8568ed42e092f31856dbd
      
https://github.com/Perl/perl5/commit/d236730017212c13b7b8568ed42e092f31856dbd
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  femul


  Commit: a6637baff18e5462a292a0c991a29cf396238500
      
https://github.com/Perl/perl5/commit/a6637baff18e5462a292a0c991a29cf396238500
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  DEBUG Lv to U


  Commit: 1e13247f48efc8e28a3357dc45171fcb6260554c
      
https://github.com/Perl/perl5/commit/1e13247f48efc8e28a3357dc45171fcb6260554c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  extra debug


  Commit: 5b85ca8dc551f1a45cae7ddc89026e9c5d3b15b9
      
https://github.com/Perl/perl5/commit/5b85ca8dc551f1a45cae7ddc89026e9c5d3b15b9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  more emul locks


  Commit: 3064edd9c6f13297c6e6854cdee173a56ae5bb99
      
https://github.com/Perl/perl5/commit/3064edd9c6f13297c6e6854cdee173a56ae5bb99
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "more emul locks"

This reverts commit 4733a1674423ee47b33eb0ee1882e1bf39faa1a6.


  Commit: ba5ec11e5e1a36e9d58c63b235b3e37fb3ed05d2
      
https://github.com/Perl/perl5/commit/ba5ec11e5e1a36e9d58c63b235b3e37fb3ed05d2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  langinfo lock


  Commit: 9632c75a5c82b5be13bd6e2c0fcba98f328c3844
      
https://github.com/Perl/perl5/commit/9632c75a5c82b5be13bd6e2c0fcba98f328c3844
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "langinfo lock"

This reverts commit acaff35d7ed83830fb36c149aafede5cdf400061.


  Commit: 9eb1346b1be03df559f1ad73022c1da9f0172e88
      
https://github.com/Perl/perl5/commit/9eb1346b1be03df559f1ad73022c1da9f0172e88
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  lock mask


  Commit: e783974592ae7706677e6325158c29764e188b62
      
https://github.com/Perl/perl5/commit/e783974592ae7706677e6325158c29764e188b62
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "lock mask"

This reverts commit 3fd528c9d5d5b9c05dc1c697e61570b81811fb95.


  Commit: b0a88a6139fa6589e32c2233ee3a9a2c0830e391
      
https://github.com/Perl/perl5/commit/b0a88a6139fa6589e32c2233ee3a9a2c0830e391
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Maybe comment'


  Commit: c2b38049a586ea24b77db855c5bfaddab229acc8
      
https://github.com/Perl/perl5/commit/c2b38049a586ea24b77db855c5bfaddab229acc8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX perl.h maybe drop


  Commit: 8b77f69400fbfa6f4b8f5f22793ef883ef27e601
      
https://github.com/Perl/perl5/commit/8b77f69400fbfa6f4b8f5f22793ef883ef27e601
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  Revert "locale_threads.t: Skip on OpenBSD and DragonFly threaded builds"

This reverts commit 1d74e8214dd53cf0fa9e8c5aab3e6187685eadcd, as they
have been modified


  Commit: ecd4a88e6116c617f2fa7d8277d3b860e0d75a29
      
https://github.com/Perl/perl5/commit/ecd4a88e6116c617f2fa7d8277d3b860e0d75a29
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Debug uselocale


  Commit: 101196f7df2a5f03fae83929ea5458b328cdadf0
      
https://github.com/Perl/perl5/commit/101196f7df2a5f03fae83929ea5458b328cdadf0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv.c need to check for pv in sv in sv_setpvf


  Commit: 1cf61457ed3db7622ae8d72b0142e0b74dd3f287
      
https://github.com/Perl/perl5/commit/1cf61457ed3db7622ae8d72b0142e0b74dd3f287
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  sv


  Commit: 48559f524e1557a91bc1147bd94e8e1f536d3ba9
      
https://github.com/Perl/perl5/commit/48559f524e1557a91bc1147bd94e8e1f536d3ba9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  immediate use


  Commit: d76456b9c4f28e5a4fee5e7c8bbf22b517fe4df9
      
https://github.com/Perl/perl5/commit/d76456b9c4f28e5a4fee5e7c8bbf22b517fe4df9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  more immed


  Commit: 67b523632e9c3ca2b9bc80a2e07e04cfc2d06f18
      
https://github.com/Perl/perl5/commit/67b523632e9c3ca2b9bc80a2e07e04cfc2d06f18
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "more immed"

This reverts commit d14fa3db195160b1170c3b169204fdfa10830fb8.


  Commit: ec46a77511cf1762db8300ffb95422ea1e52bbeb
      
https://github.com/Perl/perl5/commit/ec46a77511cf1762db8300ffb95422ea1e52bbeb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  Revert "immediate use"

This reverts commit f0df51da9259a5823f1561c492ff8e6b9eb2805a.


  Commit: cf09c09a72fe4058f415962c585bdaabeaa53da1
      
https://github.com/Perl/perl5/commit/cf09c09a72fe4058f415962c585bdaabeaa53da1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Comments, white space


  Commit: 2c21e020c851a99fa0b9841a9ba3cf252d32c5ad
      
https://github.com/Perl/perl5/commit/2c21e020c851a99fa0b9841a9ba3cf252d32c5ad
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: 5acd693545d45085a7edbdc17ed8df99a7a56131
      
https://github.com/Perl/perl5/commit/5acd693545d45085a7edbdc17ed8df99a7a56131
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

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


  Commit: 201938f01a2dbf8180eb5120be0295527c45e6fd
      
https://github.com/Perl/perl5/commit/201938f01a2dbf8180eb5120be0295527c45e6fd
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  t/run/locale.t: Change var name and hoist to larger scope

The old name was somewhat misleading


  Commit: b1526b16e50959f10acd685009745c24d621bdb9
      
https://github.com/Perl/perl5/commit/b1526b16e50959f10acd685009745c24d621bdb9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  t/run/locale.t: Extract code into a sub

This is in preparation for it to be called from another place


  Commit: 8c1410bc2993a597bdd730ad6c5b54740cf12011
      
https://github.com/Perl/perl5/commit/8c1410bc2993a597bdd730ad6c5b54740cf12011
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  t/run/locale.t: Save sub return in an array

This is in preparation for it to be used again.


  Commit: 28b41f6baf95fe40466e5ee3e349550c7c4e85ee
      
https://github.com/Perl/perl5/commit/28b41f6baf95fe40466e5ee3e349550c7c4e85ee
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  t/run/locale.t: Add test

This is marked TODO; the next commit will cause this test to pass.


  Commit: ec083d3e824ac77199917066653c26780cf26bb0
      
https://github.com/Perl/perl5/commit/ec083d3e824ac77199917066653c26780cf26bb0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

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

  Log Message:
  -----------
  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 then run

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

It wouldn't know how to extract just the LC_NUMERIC part of the LC_ALL
string.


  Commit: df6f8d129f8667fb796194fbc167141d6589dfe5
      
https://github.com/Perl/perl5/commit/df6f8d129f8667fb796194fbc167141d6589dfe5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  finish comment;: read env lock on posix setlocale lock


  Commit: 5ba0d18460910ef80945b87168d97f0e96a94450
      
https://github.com/Perl/perl5/commit/5ba0d18460910ef80945b87168d97f0e96a94450
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Don't recalculate the locale

In these functions, we already know the locale, so pass it to the called
function instead of NULL, so that that function won't have to
recalculate it.


  Commit: ad35a7da395595c26de1226f6a6918883344ff71
      
https://github.com/Perl/perl5/commit/ad35a7da395595c26de1226f6a6918883344ff71
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M regen/regen_lib.pl

  Log Message:
  -----------
  regen/regen_lib.pl: Stop compile time warning

This suppresses the warning about negative repeat counts


  Commit: 2a9f0465389eccaa8a66762cccd19c28401d0a75
      
https://github.com/Perl/perl5/commit/2a9f0465389eccaa8a66762cccd19c28401d0a75
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M regen/reentr.pl

  Log Message:
  -----------
  regen/reentr.pl: Use hash instead of code conditionals

Fill this hash with the buffer sizes instead of using conditionals in
the code to do so.  This is in preparation for more variance in the
sizes, which would otherwise increase the number of conditionals


  Commit: e9b82552d3a7f376a9bd09dae899b65d620255b9
      
https://github.com/Perl/perl5/commit/e9b82552d3a7f376a9bd09dae899b65d620255b9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M reentr.c
    M regen/reentr.pl

  Log Message:
  -----------
  reentr.pl: Increase strerror_r buffer size

We have seen cases where a libc strerror() buffer size of 80 is not
enough.  See https://github.com/Perl/perl5/issues/21992.

One might think our current size for strerror_r() of 256 would handle
any situation, but in looking around for this, I saw that glibc bothers
to document that theirs is 1024.  So this commit bumps it to that.


  Commit: 7962cbc97de9b8a8c78347ebc046534dfa55558f
      
https://github.com/Perl/perl5/commit/7962cbc97de9b8a8c78347ebc046534dfa55558f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M regen/reentr.pl

  Log Message:
  -----------
  regen/reentr.pl: Update comments


  Commit: f8abf906b3ab9a9c544ca9212509fef8d169935a
      
https://github.com/Perl/perl5/commit/f8abf906b3ab9a9c544ca9212509fef8d169935a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M reentr.c
    M regen/reentr.pl

  Log Message:
  -----------
  regen/reentr.pl: Reserve L_cuserid bytes for getlogin_r buffer

This constant is defined by POSIX to be the max size of a user name.  We
don't have to guess, as what was done before this commit.


  Commit: 6297e503802e166a87b8d95496bd873489175f86
      
https://github.com/Perl/perl5/commit/6297e503802e166a87b8d95496bd873489175f86
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M reentr.c
    M regen/reentr.pl

  Log Message:
  -----------
  regen/reentr.pl: Reserve L_ctermid bytes for ttyname_r buffer

This constant is defined by POSIX to be the max size of the return of
ctermid(), which should be the same as for ttyname_r().


  Commit: e43f252866c0c2cdd7a66d0d4a60cf854703772c
      
https://github.com/Perl/perl5/commit/e43f252866c0c2cdd7a66d0d4a60cf854703772c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M doio.c

  Log Message:
  -----------
  doio: Wrap functions with mutexes


  Commit: ee878cda0f31f53c6f7ec1f8c2a4fc42ba7c1f55
      
https://github.com/Perl/perl5/commit/ee878cda0f31f53c6f7ec1f8c2a4fc42ba7c1f55
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.c

  Log Message:
  -----------
  perl.c: Wrap functions with mutexes


  Commit: 35f70d68f52be28e630472fcc4b1add5a5ab1cf9
      
https://github.com/Perl/perl5/commit/35f70d68f52be28e630472fcc4b1add5a5ab1cf9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M reentr.c
    M reentr.h
    M regen/reentr.pl

  Log Message:
  -----------
  regen/reentr.pl: Update copyright year


  Commit: 7d6be8f16416961074c742ad82293760cd1dacd8
      
https://github.com/Perl/perl5/commit/7d6be8f16416961074c742ad82293760cd1dacd8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M reentr.h
    M regen/reentr.pl

  Log Message:
  -----------
  regen/reentr.pl: White-space, comment


  Commit: dec29bc74b34ffbf4c1bc8fb12c7e039c5a8f9e6
      
https://github.com/Perl/perl5/commit/dec29bc74b34ffbf4c1bc8fb12c7e039c5a8f9e6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M MANIFEST
    A reentr_locks.h
    M regen/reentr.pl
    M t/porting/regen.t

  Log Message:
  -----------
  regen/reentr.pl: Also generate mutex locking definitions

This program has a DATA table containing information about the reentrant
version of various functions.  This commit adds two columns to that
tablwe containing information I researched about the thread-safety of
the non-reentrant functions vs the reentrant ones.  It uses this to
generate a new header file of macro definitions that say how each
version should be locked.

The coder now need only use the name of a function to get to a macro
containing the appropriate definition; the coder need not know the
details.


  Commit: 1481cb0dae7c86d26d01442973f8f94103ea5b34
      
https://github.com/Perl/perl5/commit/1481cb0dae7c86d26d01442973f8f94103ea5b34
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Include the generated file from the previous commit

And remove the now duplicate LOCK definitions.

I checked an earlier version to make sure the new locks matched the old,
and the only changes were errors I had found in the old ones
e


  Commit: 965c6b5eda85bb3e34c9793cf2a3ce92ac20a122
      
https://github.com/Perl/perl5/commit/965c6b5eda85bb3e34c9793cf2a3ce92ac20a122
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M pp_sys.c

  Log Message:
  -----------
  pp_sys: Add locks around some calls


  Commit: 9452fc9e2655f858d53344e0348b087ab68be985
      
https://github.com/Perl/perl5/commit/9452fc9e2655f858d53344e0348b087ab68be985
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M ext/I18N-Langinfo/Langinfo.xs
    M iperlsys.h
    M lib/locale.t

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


  Commit: f3634657d37c467fd34c724be2f8bb255d8c5e5b
      
https://github.com/Perl/perl5/commit/f3634657d37c467fd34c724be2f8bb255d8c5e5b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M locale.c

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


Compare: https://github.com/Perl/perl5/compare/c6fcd80dc597...f3634657d37c

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to