Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 3eb3477364345b47c02d88feef7454b554d3706a
      
https://github.com/Perl/perl5/commit/3eb3477364345b47c02d88feef7454b554d3706a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: ef5894ec8590455b10be5c4e0210232047219c51
      
https://github.com/Perl/perl5/commit/ef5894ec8590455b10be5c4e0210232047219c51
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 43993c24a0bf54ce6e28230f8a7ade4ad2861c2a
      
https://github.com/Perl/perl5/commit/43993c24a0bf54ce6e28230f8a7ade4ad2861c2a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: 94f0435af2cd21c111f2e74e57c30c604a669f36
      
https://github.com/Perl/perl5/commit/94f0435af2cd21c111f2e74e57c30c604a669f36
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/harness

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


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

  Changed paths:
    M t/harness

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


  Commit: 59bb8bff87a7ddda366282bc171608a76b8b49e6
      
https://github.com/Perl/perl5/commit/59bb8bff87a7ddda366282bc171608a76b8b49e6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/porting/bincompat.t

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


  Commit: 69e3c5a52fcdc7051220ab14202c267a35136e35
      
https://github.com/Perl/perl5/commit/69e3c5a52fcdc7051220ab14202c267a35136e35
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/porting/bincompat.t

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

This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c.


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

  Changed paths:
    M t/TEST

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M t/TEST

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


  Commit: 4af12bc3793632551711ab3f8d35662fb9ab1c28
      
https://github.com/Perl/perl5/commit/4af12bc3793632551711ab3f8d35662fb9ab1c28
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


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

  Changed paths:
    M t/porting/cmp_version.t

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


  Commit: b79de4e5743de19502905df375733dad1a1a8e77
      
https://github.com/Perl/perl5/commit/b79de4e5743de19502905df375733dad1a1a8e77
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 43283aec7e8e5ff9ff29ffd576d4f9aaf4398045
      
https://github.com/Perl/perl5/commit/43283aec7e8e5ff9ff29ffd576d4f9aaf4398045
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: b21c7b91381c4b88cc87482c37c76d9a8708ca44
      
https://github.com/Perl/perl5/commit/b21c7b91381c4b88cc87482c37c76d9a8708ca44
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 93f542c7e717c8df6134fa7412dab8889d60513d
      
https://github.com/Perl/perl5/commit/93f542c7e717c8df6134fa7412dab8889d60513d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: d0ac3ccce79afa7b21284f8625831e9f57b070a4
      
https://github.com/Perl/perl5/commit/d0ac3ccce79afa7b21284f8625831e9f57b070a4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 5f65aafe17246bca97f5e0e9d68d512ac2a5d6f5
      
https://github.com/Perl/perl5/commit/5f65aafe17246bca97f5e0e9d68d512ac2a5d6f5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: 246fc5e57cd82c988a49371a1e320d51d5009164
      
https://github.com/Perl/perl5/commit/246fc5e57cd82c988a49371a1e320d51d5009164
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: cbc35fae4e265298d08d9c8e24c8d3d1b056017a
      
https://github.com/Perl/perl5/commit/cbc35fae4e265298d08d9c8e24c8d3d1b056017a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 93417a85149d7adeebaaf4aa944f0d243a0fa909
      
https://github.com/Perl/perl5/commit/93417a85149d7adeebaaf4aa944f0d243a0fa909
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 8fdda119f0352c2dc310cad0c7252de5f8d3a10f
      
https://github.com/Perl/perl5/commit/8fdda119f0352c2dc310cad0c7252de5f8d3a10f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 663bd3aaaf4eec7af604ef98ab86ad341c8ac200
      
https://github.com/Perl/perl5/commit/663bd3aaaf4eec7af604ef98ab86ad341c8ac200
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M makedef.pl
    M perl.h

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


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

  Changed paths:
    M perl.h

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


  Commit: c0e695d26f768ffdd8bb5fb39676017da5aea07b
      
https://github.com/Perl/perl5/commit/c0e695d26f768ffdd8bb5fb39676017da5aea07b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 167df2936a63442f560ed6542506cf241d4324b6
      
https://github.com/Perl/perl5/commit/167df2936a63442f560ed6542506cf241d4324b6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 291b1f45ce40892c687bf990474a995a611189d2
      
https://github.com/Perl/perl5/commit/291b1f45ce40892c687bf990474a995a611189d2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 296c66aacf66607fa6e269a33efbe7137c4e4889
      
https://github.com/Perl/perl5/commit/296c66aacf66607fa6e269a33efbe7137c4e4889
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: d0d973943d55e5705ec4af819679da75c08b3750
      
https://github.com/Perl/perl5/commit/d0d973943d55e5705ec4af819679da75c08b3750
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


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

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

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


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

  Changed paths:
    M dist/threads/threads.xs

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


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

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M lib/locale.t

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


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

  Changed paths:
    M lib/locale.t

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


  Commit: 55b99f2ce56150666e18e0837e6f48b718756b02
      
https://github.com/Perl/perl5/commit/55b99f2ce56150666e18e0837e6f48b718756b02
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: a2af25af3427adcb912a8ebe87a15727b588cbbe
      
https://github.com/Perl/perl5/commit/a2af25af3427adcb912a8ebe87a15727b588cbbe
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 9990e0c0346d6e8d4b8bb484738dc77e45aa864f
      
https://github.com/Perl/perl5/commit/9990e0c0346d6e8d4b8bb484738dc77e45aa864f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


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

  Changed paths:
    M t/porting/customized.dat

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


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

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 34e58f6c2c4c75900633dad6c564f2a167968316
      
https://github.com/Perl/perl5/commit/34e58f6c2c4c75900633dad6c564f2a167968316
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 517a41f557ef8daa0714f16f42d938e316283d85
      
https://github.com/Perl/perl5/commit/517a41f557ef8daa0714f16f42d938e316283d85
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: 44d24b8a405b7a0a44b7c510469140f20ef1c675
      
https://github.com/Perl/perl5/commit/44d24b8a405b7a0a44b7c510469140f20ef1c675
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M hints/darwin.sh

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


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

  Changed paths:
    M pp.c

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


  Commit: 724ce4ed2dd3a3ed82e41e1ca27ae8d5327e3428
      
https://github.com/Perl/perl5/commit/724ce4ed2dd3a3ed82e41e1ca27ae8d5327e3428
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M pp.c

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


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

  Changed paths:
    M hints/darwin.sh

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


  Commit: 86ce92a1938908a7e6c439eb800278f82287dca4
      
https://github.com/Perl/perl5/commit/86ce92a1938908a7e6c439eb800278f82287dca4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: b1f56b1a7bbb1ba37a2da2ece8070d2a3a7039cc
      
https://github.com/Perl/perl5/commit/b1f56b1a7bbb1ba37a2da2ece8070d2a3a7039cc
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/run/locale.t

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


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

  Changed paths:
    M lib/locale_threads.t

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


  Commit: 34444f4eee94714e123a3c441517433303c100dc
      
https://github.com/Perl/perl5/commit/34444f4eee94714e123a3c441517433303c100dc
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: dca0ff9496c58598568809b0913bb4f8faf6ff17
      
https://github.com/Perl/perl5/commit/dca0ff9496c58598568809b0913bb4f8faf6ff17
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 9300143c0cf5d11bc5d879ed04c701aa0c26ee65
      
https://github.com/Perl/perl5/commit/9300143c0cf5d11bc5d879ed04c701aa0c26ee65
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: c7c83325723930216c5f26b833dfbab4850fa946
      
https://github.com/Perl/perl5/commit/c7c83325723930216c5f26b833dfbab4850fa946
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: e74f9d65c2f754838211351f5474d38c7bdeaf03
      
https://github.com/Perl/perl5/commit/e74f9d65c2f754838211351f5474d38c7bdeaf03
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


  Commit: 0af8a2c75206d73b31714a46b8613a3f7b65618c
      
https://github.com/Perl/perl5/commit/0af8a2c75206d73b31714a46b8613a3f7b65618c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 92e9c24f2f46c14f8a012355294a8a88d4a53969
      
https://github.com/Perl/perl5/commit/92e9c24f2f46c14f8a012355294a8a88d4a53969
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: 7896bb0bcbe4bd0b78f723a9c6e6b9c9c6abb929
      
https://github.com/Perl/perl5/commit/7896bb0bcbe4bd0b78f723a9c6e6b9c9c6abb929
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


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

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

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


  Commit: 454b5e5231a89a9296783b8a05e2e48afde5b370
      
https://github.com/Perl/perl5/commit/454b5e5231a89a9296783b8a05e2e48afde5b370
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M util.c

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


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

  Changed paths:
    M locale.c

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


  Commit: 3354d901862e94648346264d85e653b56635eed2
      
https://github.com/Perl/perl5/commit/3354d901862e94648346264d85e653b56635eed2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 920eaffbf698a1d2fbef4dd5cf8d3cfb0fb3924e
      
https://github.com/Perl/perl5/commit/920eaffbf698a1d2fbef4dd5cf8d3cfb0fb3924e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M iperlsys.h

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


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

  Changed paths:
    M regen/reentr.pl

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


  Commit: 45b008fcffb3b4098f55905a2e0ea4c8bc2e18e7
      
https://github.com/Perl/perl5/commit/45b008fcffb3b4098f55905a2e0ea4c8bc2e18e7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: c55dc19cb4cdf31fee780b9d7a2abaaa86546757
      
https://github.com/Perl/perl5/commit/c55dc19cb4cdf31fee780b9d7a2abaaa86546757
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M pod/perlmod.pod

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


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

  Changed paths:
    M pod/perllocale.pod

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


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

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

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


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

  Changed paths:
    M pod/perlembed.pod

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


  Commit: 63f9efb171873d50f895eb2aa913fdb467bb8af5
      
https://github.com/Perl/perl5/commit/63f9efb171873d50f895eb2aa913fdb467bb8af5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: f705ead3f2c9a58a747f2006448041f55ee35c84
      
https://github.com/Perl/perl5/commit/f705ead3f2c9a58a747f2006448041f55ee35c84
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M lib/locale_threads.t

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


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

  Changed paths:
    M lib/locale_threads.t

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

This reverts commit a7a8dea3aabb81a05aacaf3a26c49854a5854111.


  Commit: ff990f2bc1a98fa3db266b7669e24a5b25017c70
      
https://github.com/Perl/perl5/commit/ff990f2bc1a98fa3db266b7669e24a5b25017c70
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 224b42f09468ab30b263307af8555ac4225ac733
      
https://github.com/Perl/perl5/commit/224b42f09468ab30b263307af8555ac4225ac733
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 06546e526cf57eca8ed9d28b6203f029c73cf5c1
      
https://github.com/Perl/perl5/commit/06546e526cf57eca8ed9d28b6203f029c73cf5c1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 1168d246c542f928573fb276f77e59de4b59a0a7
      
https://github.com/Perl/perl5/commit/1168d246c542f928573fb276f77e59de4b59a0a7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M pp.c

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


  Commit: 10c8a1bfd08b4179734b4c643c5d2f332a27d98a
      
https://github.com/Perl/perl5/commit/10c8a1bfd08b4179734b4c643c5d2f332a27d98a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 0b2333c6376360ee4c9a8ddd6790474525d2db2b
      
https://github.com/Perl/perl5/commit/0b2333c6376360ee4c9a8ddd6790474525d2db2b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 8c1c74aade0e6ba462365725cf2c8706a5555363
      
https://github.com/Perl/perl5/commit/8c1c74aade0e6ba462365725cf2c8706a5555363
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 40a2461493518bd18a30c26bab49bd2214039c43
      
https://github.com/Perl/perl5/commit/40a2461493518bd18a30c26bab49bd2214039c43
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: 4aa8ee87638bc5304bf5235235670a42d42f1300
      
https://github.com/Perl/perl5/commit/4aa8ee87638bc5304bf5235235670a42d42f1300
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: c6ccfec74b056bba55851736307bb7f2e556745f
      
https://github.com/Perl/perl5/commit/c6ccfec74b056bba55851736307bb7f2e556745f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: e83fcd5bdb29f433c62d72a71bec89f699378f1b
      
https://github.com/Perl/perl5/commit/e83fcd5bdb29f433c62d72a71bec89f699378f1b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: f8a5866d41574a9ee3776ecc06eba31906550358
      
https://github.com/Perl/perl5/commit/f8a5866d41574a9ee3776ecc06eba31906550358
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 82bef432619841cf82b0cbc2b7082dbf05ec0a43
      
https://github.com/Perl/perl5/commit/82bef432619841cf82b0cbc2b7082dbf05ec0a43
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: 288381bc92fd9038fde460c231466abf09b4cd3c
      
https://github.com/Perl/perl5/commit/288381bc92fd9038fde460c231466abf09b4cd3c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: da52b46f2e6b8185fbfa1e79eb09e3e8c62d5556
      
https://github.com/Perl/perl5/commit/da52b46f2e6b8185fbfa1e79eb09e3e8c62d5556
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M dist/threads/threads.xs

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


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

  Changed paths:
    M lib/locale_threads.t

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


  Commit: 611b4a1ef54d9798d9748687d10658c8a2f60aea
      
https://github.com/Perl/perl5/commit/611b4a1ef54d9798d9748687d10658c8a2f60aea
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 9486b414c1233c2349a89ab52ffe46439503cb91
      
https://github.com/Perl/perl5/commit/9486b414c1233c2349a89ab52ffe46439503cb91
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M locale.c

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


  Commit: f4109837c0858b8bbb7827f52ab199c075908c25
      
https://github.com/Perl/perl5/commit/f4109837c0858b8bbb7827f52ab199c075908c25
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: cc1479123718871f87ab11a278ac4727137581d8
      
https://github.com/Perl/perl5/commit/cc1479123718871f87ab11a278ac4727137581d8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 10ad73d871945ccdcbc142b7da1f35e9db87d96c
      
https://github.com/Perl/perl5/commit/10ad73d871945ccdcbc142b7da1f35e9db87d96c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.h

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


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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


  Commit: 4acc3625ece97109c7fbf406555b4f49121ef1bb
      
https://github.com/Perl/perl5/commit/4acc3625ece97109c7fbf406555b4f49121ef1bb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 22985263dc8d671307eab10850d40deaa4dd521a
      
https://github.com/Perl/perl5/commit/22985263dc8d671307eab10850d40deaa4dd521a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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

This reverts commit 4733a1674423ee47b33eb0ee1882e1bf39faa1a6.


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

  Changed paths:
    M locale.c

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


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

  Changed paths:
    M locale.c

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

This reverts commit acaff35d7ed83830fb36c149aafede5cdf400061.


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

  Changed paths:
    M locale.c

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


  Commit: 440c1a4d65652d314b50451c21c3e8feffc470a2
      
https://github.com/Perl/perl5/commit/440c1a4d65652d314b50451c21c3e8feffc470a2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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

This reverts commit 3fd528c9d5d5b9c05dc1c697e61570b81811fb95.


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

  Changed paths:
    M locale.c

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


  Commit: 354faaf5bcdfa121599826c0ee8ee7b90399186d
      
https://github.com/Perl/perl5/commit/354faaf5bcdfa121599826c0ee8ee7b90399186d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: 6a0c0299993de2bba30e5d89eb5dea240ecbb1cf
      
https://github.com/Perl/perl5/commit/6a0c0299993de2bba30e5d89eb5dea240ecbb1cf
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 304c6f719da720adefc05bd57d16a0e97d4af8ab
      
https://github.com/Perl/perl5/commit/304c6f719da720adefc05bd57d16a0e97d4af8ab
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 00189c6ee6b948eaf8ce6957cb211c3ee5637363
      
https://github.com/Perl/perl5/commit/00189c6ee6b948eaf8ce6957cb211c3ee5637363
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M sv.c

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


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

  Changed paths:
    M sv.c

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


  Commit: 26ad73e1b50b72b9c5e79408c123937f17461df6
      
https://github.com/Perl/perl5/commit/26ad73e1b50b72b9c5e79408c123937f17461df6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: 3028a6988277d32504210e5203c97b6d8432b9cd
      
https://github.com/Perl/perl5/commit/3028a6988277d32504210e5203c97b6d8432b9cd
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 4b4c93f4823793b1c2ea2853cbae933d57fa6a08
      
https://github.com/Perl/perl5/commit/4b4c93f4823793b1c2ea2853cbae933d57fa6a08
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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

This reverts commit d14fa3db195160b1170c3b169204fdfa10830fb8.


  Commit: 9628e57cf765f0e179d2ceaf771027a60b4e0451
      
https://github.com/Perl/perl5/commit/9628e57cf765f0e179d2ceaf771027a60b4e0451
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: f6fc0611c9c41c8a1868434d92fce6be11ad0c06
      
https://github.com/Perl/perl5/commit/f6fc0611c9c41c8a1868434d92fce6be11ad0c06
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M locale.c

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


  Commit: 4b4c5e4e08e09418a63580d7869d0b0d76a44d62
      
https://github.com/Perl/perl5/commit/4b4c5e4e08e09418a63580d7869d0b0d76a44d62
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: 37c49ef042f1076d63fe296f17e40b79bc6f4603
      
https://github.com/Perl/perl5/commit/37c49ef042f1076d63fe296f17e40b79bc6f4603
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: c091514a0430192fe3392df4bea5eb0f14d68979
      
https://github.com/Perl/perl5/commit/c091514a0430192fe3392df4bea5eb0f14d68979
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 7a3fa1789110d8a2e3b126b464b367b82d993858
      
https://github.com/Perl/perl5/commit/7a3fa1789110d8a2e3b126b464b367b82d993858
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 6a6c462abd957b474145d650a4f3cc9e07711160
      
https://github.com/Perl/perl5/commit/6a6c462abd957b474145d650a4f3cc9e07711160
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: b1ee261734ae13a15392583ae2ed4f7f1448f0c0
      
https://github.com/Perl/perl5/commit/b1ee261734ae13a15392583ae2ed4f7f1448f0c0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 1625db0f65923eef1f831a04ae766c34fb119f48
      
https://github.com/Perl/perl5/commit/1625db0f65923eef1f831a04ae766c34fb119f48
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: f059f7c996c857adee0023fac6bac460374bfe3e
      
https://github.com/Perl/perl5/commit/f059f7c996c857adee0023fac6bac460374bfe3e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

  Log Message:
  -----------
  Revert "S_find_locale_from_environment: Handle disparate LC_ALL"

This reverts commit ec083d3e824ac77199917066653c26780cf26bb0.


  Commit: 0077d3e674277462972874102f41a869e2cbf711
      
https://github.com/Perl/perl5/commit/0077d3e674277462972874102f41a869e2cbf711
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M t/run/locale.t

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

This reverts commit 28b41f6baf95fe40466e5ee3e349550c7c4e85ee.


  Commit: 5251753b39cdd961354e35e58c344fad84d8704f
      
https://github.com/Perl/perl5/commit/5251753b39cdd961354e35e58c344fad84d8704f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.h

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


  Commit: 84a98ec72e64799f3ed6ebc218c479030d937373
      
https://github.com/Perl/perl5/commit/84a98ec72e64799f3ed6ebc218c479030d937373
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 183724bc83799d729c09ff19360a1e47bc5bdea9
      
https://github.com/Perl/perl5/commit/183724bc83799d729c09ff19360a1e47bc5bdea9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: ff1218b95e9528c5287f7575e5b169d019c1ba93
      
https://github.com/Perl/perl5/commit/ff1218b95e9528c5287f7575e5b169d019c1ba93
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 794862fead97848650b50c245b26926b2528d943
      
https://github.com/Perl/perl5/commit/794862fead97848650b50c245b26926b2528d943
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 884bb128efabe6d4a24a1a2224f57d8527112c01
      
https://github.com/Perl/perl5/commit/884bb128efabe6d4a24a1a2224f57d8527112c01
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M regen/reentr.pl

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


  Commit: 36a13c06bde8adf10cf88ecc378819d6e0cad73c
      
https://github.com/Perl/perl5/commit/36a13c06bde8adf10cf88ecc378819d6e0cad73c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 16de4b73747917e4f52014ace47103a062068e5d
      
https://github.com/Perl/perl5/commit/16de4b73747917e4f52014ace47103a062068e5d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

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

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


  Commit: d852ec1f1f4371fb542d183c7befb4b8872b851c
      
https://github.com/Perl/perl5/commit/d852ec1f1f4371fb542d183c7befb4b8872b851c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: bdbd9cb8cec9f5e2de0a9e10942783d35d902399
      
https://github.com/Perl/perl5/commit/bdbd9cb8cec9f5e2de0a9e10942783d35d902399
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M doio.c

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


  Commit: 1033a8e5e06a64de96e1c88c483741c3cbedacc8
      
https://github.com/Perl/perl5/commit/1033a8e5e06a64de96e1c88c483741c3cbedacc8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.c

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


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

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

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


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

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

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


  Commit: 0bd1f851c0ea880efef95f1c9938b362096f3b00
      
https://github.com/Perl/perl5/commit/0bd1f851c0ea880efef95f1c9938b362096f3b00
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: db6571aa30019512f11a49274a6a080c4749d564
      
https://github.com/Perl/perl5/commit/db6571aa30019512f11a49274a6a080c4749d564
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 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: 066f96d7fea3f0ea0bd3ee8c833f6b6a901b970c
      
https://github.com/Perl/perl5/commit/066f96d7fea3f0ea0bd3ee8c833f6b6a901b970c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M pp_sys.c

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


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

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Use Perl_croak() instead of more specific panic

Instead of using locale_panic_(), which is applicable for locales, use
the more generic Perl_croak().  This is in preparation for a future
commit that will use this code in other situations


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

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Create PERL_REENTRANT_LOCK(), UNLOCK

Prior to this commit, the mutex lock for locales was a reentrant lock;
and no others.

This extracts that logic into these two new macros, and generalizes
them, so that any mutex can easily be made into a reentrant one.


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

  Changed paths:
    M embedvar.h
    M intrpvar.h
    M perl.h
    M sv.c

  Log Message:
  -----------
  start reent env lock


  Commit: 4ad6c2707a2c784224e94ae00d6bf78727d67134
      
https://github.com/Perl/perl5/commit/4ad6c2707a2c784224e94ae00d6bf78727d67134
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M perl.h
    M perlvars.h

  Log Message:
  -----------
  REENT LOCK => many reader


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

  Changed paths:
    M perl.h

  Log Message:
  -----------
  move env lock


  Commit: 152e49f881efd5274db3b6e5082e8b133aff9978
      
https://github.com/Perl/perl5/commit/152e49f881efd5274db3b6e5082e8b133aff9978
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M ext/I18N-Langinfo/Langinfo.xs
    M iperlsys.h
    M lib/locale.t
    M lib/locale_threads.t
    M locale.c
    M locale_table.h
    M makedef.pl
    M perl.h
    M reentr_locks.h
    M regen/reentr.pl
    M t/run/locale.t

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


Compare: https://github.com/Perl/perl5/compare/3f64593f6224...152e49f881ef

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

Reply via email to