Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 5856f5b7c769d5f558791d0d2f100ff79d1662dd
      
https://github.com/Perl/perl5/commit/5856f5b7c769d5f558791d0d2f100ff79d1662dd
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 1eb13b11f60bc5e98a00e979d35be5ff8fe01ae7
      
https://github.com/Perl/perl5/commit/1eb13b11f60bc5e98a00e979d35be5ff8fe01ae7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 0cfa98aa314210408b1f8bd47b6dd2a821df2f60
      
https://github.com/Perl/perl5/commit/0cfa98aa314210408b1f8bd47b6dd2a821df2f60
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: df9b6304f8c8a4efcc4555a0f4a8c2589c521a03
      
https://github.com/Perl/perl5/commit/df9b6304f8c8a4efcc4555a0f4a8c2589c521a03
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/harness

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


  Commit: 58b3b675673e1bf89dc0a868fbf39b4000391c15
      
https://github.com/Perl/perl5/commit/58b3b675673e1bf89dc0a868fbf39b4000391c15
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/harness

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


  Commit: b7e9b6d20bc27b8a9f302a2a5ee4c03c96a2e513
      
https://github.com/Perl/perl5/commit/b7e9b6d20bc27b8a9f302a2a5ee4c03c96a2e513
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/porting/bincompat.t

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


  Commit: 1de2018f0e8bb44366564644f93af00f7e3f623e
      
https://github.com/Perl/perl5/commit/1de2018f0e8bb44366564644f93af00f7e3f623e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/porting/bincompat.t

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

This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c.


  Commit: f3e9d947f19ffe6a0e952de71dab414aebfbce9c
      
https://github.com/Perl/perl5/commit/f3e9d947f19ffe6a0e952de71dab414aebfbce9c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/TEST

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


  Commit: df96f10ffbd2e5f289bad04f8fe32a8e51e2febb
      
https://github.com/Perl/perl5/commit/df96f10ffbd2e5f289bad04f8fe32a8e51e2febb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/TEST

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


  Commit: 44637dce4f058831e2ea6e54916ee627e4b4d929
      
https://github.com/Perl/perl5/commit/44637dce4f058831e2ea6e54916ee627e4b4d929
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: c6c982663a7e8cc46e373e04d1b8139627eaac52
      
https://github.com/Perl/perl5/commit/c6c982663a7e8cc46e373e04d1b8139627eaac52
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/porting/cmp_version.t

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


  Commit: 056c2476682de1f6ee6a1854bbc93b38e48fc672
      
https://github.com/Perl/perl5/commit/056c2476682de1f6ee6a1854bbc93b38e48fc672
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 93e0606fa818c3351fc2dd8f568ef7d5d5c175ae
      
https://github.com/Perl/perl5/commit/93e0606fa818c3351fc2dd8f568ef7d5d5c175ae
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: a84f83b37ad35a1a73330eff31bb9186ab9f8982
      
https://github.com/Perl/perl5/commit/a84f83b37ad35a1a73330eff31bb9186ab9f8982
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 0250d4ea280800688211d927ac4b6581011fd55c
      
https://github.com/Perl/perl5/commit/0250d4ea280800688211d927ac4b6581011fd55c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: caaf462c556964df282fa243c05dee0d6c38739c
      
https://github.com/Perl/perl5/commit/caaf462c556964df282fa243c05dee0d6c38739c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: d094c980977679021d780b8d25aec6827061a739
      
https://github.com/Perl/perl5/commit/d094c980977679021d780b8d25aec6827061a739
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

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


  Commit: 336cf8b1f5ba9c7ce6817b90c0b62e572911e36c
      
https://github.com/Perl/perl5/commit/336cf8b1f5ba9c7ce6817b90c0b62e572911e36c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: 40c322c438916eb3ce5f20d22839dd798d5d068e
      
https://github.com/Perl/perl5/commit/40c322c438916eb3ce5f20d22839dd798d5d068e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: aa0d1848f780b918758d63eafcd8a06aaa4a376f
      
https://github.com/Perl/perl5/commit/aa0d1848f780b918758d63eafcd8a06aaa4a376f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/porting/cmp_version.t

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


  Commit: 346c3633bcc5a626ba156fefc8dec1c34a7c0673
      
https://github.com/Perl/perl5/commit/346c3633bcc5a626ba156fefc8dec1c34a7c0673
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 91c0bd8e9a6f1e0108fe0eb6fdb08ba34c2c7b5e
      
https://github.com/Perl/perl5/commit/91c0bd8e9a6f1e0108fe0eb6fdb08ba34c2c7b5e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M makedef.pl
    M perl.h

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


  Commit: 402da53212f35bf8e422fd9b76a9332e4b974718
      
https://github.com/Perl/perl5/commit/402da53212f35bf8e422fd9b76a9332e4b974718
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

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


  Commit: 086e4501ed4747154066e9411e7b00a206857c8f
      
https://github.com/Perl/perl5/commit/086e4501ed4747154066e9411e7b00a206857c8f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: e03e394cfe14dfe9bee921d9f0fb61a718d1b540
      
https://github.com/Perl/perl5/commit/e03e394cfe14dfe9bee921d9f0fb61a718d1b540
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 83710b7c939aa8335ccab92924972a9708014ae6
      
https://github.com/Perl/perl5/commit/83710b7c939aa8335ccab92924972a9708014ae6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: b50fff16a14b81666fc3c92f118bb2f43090b560
      
https://github.com/Perl/perl5/commit/b50fff16a14b81666fc3c92f118bb2f43090b560
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: fd7aca1c8287db786cf475d53deb22716501cd52
      
https://github.com/Perl/perl5/commit/fd7aca1c8287db786cf475d53deb22716501cd52
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: d29782222809ede15027bdda0a9a7726bc36963d
      
https://github.com/Perl/perl5/commit/d29782222809ede15027bdda0a9a7726bc36963d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 6cf55bae639934dc962cba89c5e04fae88c59d06
      
https://github.com/Perl/perl5/commit/6cf55bae639934dc962cba89c5e04fae88c59d06
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M dist/threads/threads.xs

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


  Commit: fc1fe24d8c312865212a901b82fa9b3d598cf3f5
      
https://github.com/Perl/perl5/commit/fc1fe24d8c312865212a901b82fa9b3d598cf3f5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale.t

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


  Commit: 6a024baa467b28398bc5ac2f2861b6fd85b75162
      
https://github.com/Perl/perl5/commit/6a024baa467b28398bc5ac2f2861b6fd85b75162
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale.t

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


  Commit: c6848b00384d7c9987c06c27b01e5b690b6aa83a
      
https://github.com/Perl/perl5/commit/c6848b00384d7c9987c06c27b01e5b690b6aa83a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale.t

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


  Commit: 30f2f0437a2ed2866abbab705b180d2426ba29f0
      
https://github.com/Perl/perl5/commit/30f2f0437a2ed2866abbab705b180d2426ba29f0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

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


  Commit: 682127f82527d48eac7338481f7a40574bc964fb
      
https://github.com/Perl/perl5/commit/682127f82527d48eac7338481f7a40574bc964fb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 17f0452c12545f70a51125584e13590b82c7d31e
      
https://github.com/Perl/perl5/commit/17f0452c12545f70a51125584e13590b82c7d31e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 153f5aff3186d6898853b1f91f41d04f94679b3d
      
https://github.com/Perl/perl5/commit/153f5aff3186d6898853b1f91f41d04f94679b3d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/porting/customized.dat

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


  Commit: fda061792bef924031f0b4594e207ba3b7062e90
      
https://github.com/Perl/perl5/commit/fda061792bef924031f0b4594e207ba3b7062e90
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: 137ecd158feca8f7226c5e0102426cf3febd187a
      
https://github.com/Perl/perl5/commit/137ecd158feca8f7226c5e0102426cf3febd187a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 4aece1a6ac64ba73abb0f086c08efc222375833b
      
https://github.com/Perl/perl5/commit/4aece1a6ac64ba73abb0f086c08efc222375833b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 0408befce6e6467731fcea3cc49b61fde42425d0
      
https://github.com/Perl/perl5/commit/0408befce6e6467731fcea3cc49b61fde42425d0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: cc3f8dc744533ae68af201dd142893a10f59a1f4
      
https://github.com/Perl/perl5/commit/cc3f8dc744533ae68af201dd142893a10f59a1f4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M hints/darwin.sh

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


  Commit: 8dc94ee5b8007f5dfe99571db9df4349eb8f1034
      
https://github.com/Perl/perl5/commit/8dc94ee5b8007f5dfe99571db9df4349eb8f1034
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pp.c

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


  Commit: f04ceca149d2d26b3d4e76478fb28b6233d4d7c7
      
https://github.com/Perl/perl5/commit/f04ceca149d2d26b3d4e76478fb28b6233d4d7c7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pp.c

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


  Commit: fad62135ccb7196c9151b90f2ea2edff96fb4984
      
https://github.com/Perl/perl5/commit/fad62135ccb7196c9151b90f2ea2edff96fb4984
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M hints/darwin.sh

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


  Commit: d11bdaf9a4d32aa592f5e78c74f70ce651b2f3ae
      
https://github.com/Perl/perl5/commit/d11bdaf9a4d32aa592f5e78c74f70ce651b2f3ae
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 330ba258d6ba4e687d0363831221c6fe46a86c27
      
https://github.com/Perl/perl5/commit/330ba258d6ba4e687d0363831221c6fe46a86c27
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/run/locale.t

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


  Commit: 2294e887294d6d273f5093cc10193f1d84ddf907
      
https://github.com/Perl/perl5/commit/2294e887294d6d273f5093cc10193f1d84ddf907
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: 56c36d3b5b990f64f3ea17acdc3f759e3782468a
      
https://github.com/Perl/perl5/commit/56c36d3b5b990f64f3ea17acdc3f759e3782468a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: 36809df8c77fa9361e843554ab81cf2335be6f90
      
https://github.com/Perl/perl5/commit/36809df8c77fa9361e843554ab81cf2335be6f90
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 02f28bbcfdfbebf8d58818078db998406f7ef837
      
https://github.com/Perl/perl5/commit/02f28bbcfdfbebf8d58818078db998406f7ef837
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: f7bb9a31be6e8c926fe9bece7ce5c749309c8190
      
https://github.com/Perl/perl5/commit/f7bb9a31be6e8c926fe9bece7ce5c749309c8190
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 2e5de2c9b1d33df2890889ec2de2a0ebdee296b5
      
https://github.com/Perl/perl5/commit/2e5de2c9b1d33df2890889ec2de2a0ebdee296b5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M thread.h

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

Indent some nested preproccessor defines


  Commit: 1d3ef5936703e4edd7f0b0fb009060c6c2e6d1f7
      
https://github.com/Perl/perl5/commit/1d3ef5936703e4edd7f0b0fb009060c6c2e6d1f7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 6ad77f1226b79bc363f04df63a74ac21117ff4ad
      
https://github.com/Perl/perl5/commit/6ad77f1226b79bc363f04df63a74ac21117ff4ad
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: a0812f397ab4c4966133ee8b0f4ff22a396f3962
      
https://github.com/Perl/perl5/commit/a0812f397ab4c4966133ee8b0f4ff22a396f3962
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 67551c4fc48a2579748489932a06e614da91c13f
      
https://github.com/Perl/perl5/commit/67551c4fc48a2579748489932a06e614da91c13f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M cpan/Time-Piece/Piece.pm
    M t/porting/customized.dat

  Log Message:
  -----------
  Time-Piece


  Commit: 64e89fb4ac2776c4609d66b951917a15150ebf80
      
https://github.com/Perl/perl5/commit/64e89fb4ac2776c4609d66b951917a15150ebf80
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 9ca286271e16f78364f57bef0c833f717212a1cb
      
https://github.com/Perl/perl5/commit/9ca286271e16f78364f57bef0c833f717212a1cb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M util.c

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


  Commit: 005c3e571ad9a2b919b1badd8e7ad4a21634f09e
      
https://github.com/Perl/perl5/commit/005c3e571ad9a2b919b1badd8e7ad4a21634f09e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 9c9c6bc31ceee6c1ced765debe74997bec67fab7
      
https://github.com/Perl/perl5/commit/9c9c6bc31ceee6c1ced765debe74997bec67fab7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pod/perlhacktips.pod

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


  Commit: 0c6c6848de41a899cad67f19e7a29e5e99735f8a
      
https://github.com/Perl/perl5/commit/0c6c6848de41a899cad67f19e7a29e5e99735f8a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M iperlsys.h

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


  Commit: cafe9eb009c85ead7d651dbdeaf8b9fff91fff2e
      
https://github.com/Perl/perl5/commit/cafe9eb009c85ead7d651dbdeaf8b9fff91fff2e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M regen/reentr.pl

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


  Commit: d6e3d8e95b323c6888e353d81745e3aa70a5fe8d
      
https://github.com/Perl/perl5/commit/d6e3d8e95b323c6888e353d81745e3aa70a5fe8d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pod/perlmod.pod

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


  Commit: 51774150f0c2d2a6ec8a1710e686c75b68c3a71a
      
https://github.com/Perl/perl5/commit/51774150f0c2d2a6ec8a1710e686c75b68c3a71a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 91135df097cc32f95c5420113e05fdc8182ce234
      
https://github.com/Perl/perl5/commit/91135df097cc32f95c5420113e05fdc8182ce234
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pod/perlembed.pod

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


  Commit: 54689a3bc07fd42414524bbd4493ce6d967e2419
      
https://github.com/Perl/perl5/commit/54689a3bc07fd42414524bbd4493ce6d967e2419
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 765723e693f27502cc77a0056c1c993f6b356d41
      
https://github.com/Perl/perl5/commit/765723e693f27502cc77a0056c1c993f6b356d41
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 7b814548f24cdce6ad2e5a3d0616e2c50fc672e8
      
https://github.com/Perl/perl5/commit/7b814548f24cdce6ad2e5a3d0616e2c50fc672e8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pp.c

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


  Commit: 6a8a1cfcd1caf31eaf043270bd64bc70d8356312
      
https://github.com/Perl/perl5/commit/6a8a1cfcd1caf31eaf043270bd64bc70d8356312
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale.t

  Log Message:
  -----------
  lib/locale.t: Cope with no LC_ALL


  Commit: 71de7a391d9d7e7931921cccf8fb7749841c0af5
      
https://github.com/Perl/perl5/commit/71de7a391d9d7e7931921cccf8fb7749841c0af5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale.t

  Log Message:
  -----------
  lib/locale.t: Cope with no_nl,no localeconv

I single stepped the code and it returned a comma on ps_AF, but the
SNPRINTF printed the read thing.  I think it is because we are emulating
the deficient libc.


  Commit: 4b0e8e1ff068c89d99f6a1481397c1ef507d8a8e
      
https://github.com/Perl/perl5/commit/4b0e8e1ff068c89d99f6a1481397c1ef507d8a8e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: ec56ec43396f8d170e0430971475b77857c4510e
      
https://github.com/Perl/perl5/commit/ec56ec43396f8d170e0430971475b77857c4510e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: dee469bd6716d4e531b7356f5ab8547a387fc558
      
https://github.com/Perl/perl5/commit/dee469bd6716d4e531b7356f5ab8547a387fc558
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: b38b4532a886a4320caee531431dabfc85d321ac
      
https://github.com/Perl/perl5/commit/b38b4532a886a4320caee531431dabfc85d321ac
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 0a3c91c28c82a5d5aedbb98770af1ff6bbc24ec3
      
https://github.com/Perl/perl5/commit/0a3c91c28c82a5d5aedbb98770af1ff6bbc24ec3
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 63e4b69d62d698c6265c421cde9cbf5802c03ba8
      
https://github.com/Perl/perl5/commit/63e4b69d62d698c6265c421cde9cbf5802c03ba8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 91641b5e27d6e546bf26b3963be13a3a0d0c3fb7
      
https://github.com/Perl/perl5/commit/91641b5e27d6e546bf26b3963be13a3a0d0c3fb7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/run/locale.t

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

This reverts commit 28b41f6baf95fe40466e5ee3e349550c7c4e85ee.


  Commit: 82522199a85cc83d19263bdb22b3f14d8ef1a3a2
      
https://github.com/Perl/perl5/commit/82522199a85cc83d19263bdb22b3f14d8ef1a3a2
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/run/locale.t

  Log Message:
  -----------
  t/run/locale.t: Cope with no LC_ALL


  Commit: ad7f0faebf1e63d0db1067b4d19ff9a12d6eefd4
      
https://github.com/Perl/perl5/commit/ad7f0faebf1e63d0db1067b4d19ff9a12d6eefd4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 30c20f92c37794ec8b936a5ade2e445be7039b76
      
https://github.com/Perl/perl5/commit/30c20f92c37794ec8b936a5ade2e445be7039b76
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: ef379ca82549a973eafeeb808eb28a0cd1089234
      
https://github.com/Perl/perl5/commit/ef379ca82549a973eafeeb808eb28a0cd1089234
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 64e6cfdbef490f3804fa3c82e4713f81d6246cc3
      
https://github.com/Perl/perl5/commit/64e6cfdbef490f3804fa3c82e4713f81d6246cc3
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 7a7d8d7b08bc415b0ba25a2add732ef46e2977e4
      
https://github.com/Perl/perl5/commit/7a7d8d7b08bc415b0ba25a2add732ef46e2977e4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/loc_tools.pl

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


  Commit: c812d7d7c2a10945fbd701c88ed56cd401adf9ef
      
https://github.com/Perl/perl5/commit/c812d7d7c2a10945fbd701c88ed56cd401adf9ef
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 33ee05775cfbb884663b0a62c05d990ab3cad68c
      
https://github.com/Perl/perl5/commit/33ee05775cfbb884663b0a62c05d990ab3cad68c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 288db1fe36316e99016c713ae04a4ad61ff879a6
      
https://github.com/Perl/perl5/commit/288db1fe36316e99016c713ae04a4ad61ff879a6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 5255322e88e0cdb8f16a229dbe7a683a611fface
      
https://github.com/Perl/perl5/commit/5255322e88e0cdb8f16a229dbe7a683a611fface
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M dist/threads/threads.xs

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


  Commit: b8691934f498200c5c0526a56006db046be703b8
      
https://github.com/Perl/perl5/commit/b8691934f498200c5c0526a56006db046be703b8
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale_threads.t

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


  Commit: d213d2d7336a667ca10b4544390bb6eb0afd7135
      
https://github.com/Perl/perl5/commit/d213d2d7336a667ca10b4544390bb6eb0afd7135
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  lib/locale_threads.t: Cope with no LC_CTYPE


  Commit: a7497a006284164ed271ef722be999f467d35e4b
      
https://github.com/Perl/perl5/commit/a7497a006284164ed271ef722be999f467d35e4b
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 1f808adae445d0f68a0136ddfc07fd451fc55237
      
https://github.com/Perl/perl5/commit/1f808adae445d0f68a0136ddfc07fd451fc55237
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 3d4e0031c269a49f30ccad5fe1842d760a2c2e01
      
https://github.com/Perl/perl5/commit/3d4e0031c269a49f30ccad5fe1842d760a2c2e01
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M malloc.c

  Log Message:
  -----------
  XXX malloc.c: Locak around a getenv

I believe this is done very early; only for the first time; maybe
mutexes aren't initialized, so may not be necessary; might break


  Commit: b739709dd63281e5bf112fe214104e843dbf5a98
      
https://github.com/Perl/perl5/commit/b739709dd63281e5bf112fe214104e843dbf5a98
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.c

  Log Message:
  -----------
  perl.c: Add locks around a *environ access

When reading the environment, a read lock is needed; when writing, a
write lock.


  Commit: e8712dda7daa047b8ee8ae88ef52c997ef1b937f
      
https://github.com/Perl/perl5/commit/e8712dda7daa047b8ee8ae88ef52c997ef1b937f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Use auxiliary #define for simplicity

Prior to this commit we avoided #defining a symbol until later, so that
that fact could be used for further decisions.  But this is a bit
awkward, and so this commit introduces an additional #define that can be
used for the decisions, while defining the symbol at the place where it
makes the most sense to.


  Commit: 28aea2c9ce7928a92c87607790d3680df1f1cf44
      
https://github.com/Perl/perl5/commit/28aea2c9ce7928a92c87607790d3680df1f1cf44
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: ab7db2d52ac19e3164f928adc786c51f08ee2169
      
https://github.com/Perl/perl5/commit/ab7db2d52ac19e3164f928adc786c51f08ee2169
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  Revert "perlxs"

This reverts commit 04b79e3fe0b3ee92fef5f0c69ea516f47e1b6ac6.


  Commit: 42866fd2f99a90b62181ec4fa1d2aad6fca0201a
      
https://github.com/Perl/perl5/commit/42866fd2f99a90b62181ec4fa1d2aad6fca0201a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h
    M perlvars.h

  Log Message:
  -----------
  perl.h: Convert reentrant locks to allow many readers

This is in preparation for future use of these.
The only current mutex that is reentrant is the one for locales.


  Commit: edd5c95a4c3076afe1ccf2ab28c7b1b6afda0228
      
https://github.com/Perl/perl5/commit/edd5c95a4c3076afe1ccf2ab28c7b1b6afda0228
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  Avoid deadlock if request a read lock while holding a write one

iIn a reentrant mutex, the previous commit added the ability to have
multiple readers.  But if a thread owns a mutex, and requests a read
lock as well, the thread will be deadlocked by itself.

Avoid this by testing for the condition and handling separately.

All reentrant mutexes currently have no read lock attempts.  So this
case is entirely theoretical for the moment.


  Commit: 5f9cd5e0d7a9450faeed05bcc0a0a18f0c04ed99
      
https://github.com/Perl/perl5/commit/5f9cd5e0d7a9450faeed05bcc0a0a18f0c04ed99
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Change formal macro parameter name

This is in preparation for the next commit when it otherwise would be
confusing.


  Commit: 24897896aa87f9771fd2cb590f6930d28124b9dc
      
https://github.com/Perl/perl5/commit/24897896aa87f9771fd2cb590f6930d28124b9dc
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  Allow a reentrant thread to acquire write lock while holding read


  Commit: 4ee672cb9e47b9a3f74dd3c2fbce0f70979f73ca
      
https://github.com/Perl/perl5/commit/4ee672cb9e47b9a3f74dd3c2fbce0f70979f73ca
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  mv reent unlock


  Commit: aabdec6b19082d7da224513e7de6d9b87b5fca0c
      
https://github.com/Perl/perl5/commit/aabdec6b19082d7da224513e7de6d9b87b5fca0c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: debugging new read lock


  Commit: 28dd6d56a4999d1bb72ff88ede34bb1a2aad71d9
      
https://github.com/Perl/perl5/commit/28dd6d56a4999d1bb72ff88ede34bb1a2aad71d9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  debug locks


  Commit: b6324f000d19c14a64bf8d4b5d56e0131694e654
      
https://github.com/Perl/perl5/commit/b6324f000d19c14a64bf8d4b5d56e0131694e654
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  Make ENV_LOCK reentrant


  Commit: 49b75936e36d71ac5fa876e32eb43d565c9160d0
      
https://github.com/Perl/perl5/commit/49b75936e36d71ac5fa876e32eb43d565c9160d0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  env read


  Commit: e4ed4cf8dad5f823cb63662be4c2bb716a6a52ba
      
https://github.com/Perl/perl5/commit/e4ed4cf8dad5f823cb63662be4c2bb716a6a52ba
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h white space in ENV READ LOCK defn


  Commit: ad70bed77ef629ffa24bc988b9cfa1bebc683750
      
https://github.com/Perl/perl5/commit/ad70bed77ef629ffa24bc988b9cfa1bebc683750
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  locale read lock


  Commit: e46766754ec1f1efe2e132cfdfbdb65ec5020edc
      
https://github.com/Perl/perl5/commit/e46766754ec1f1efe2e132cfdfbdb65ec5020edc
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h deadlock comments


  Commit: c65e4aef8a81b5d6d828ee0fd2c44bd98ea4d8df
      
https://github.com/Perl/perl5/commit/c65e4aef8a81b5d6d828ee0fd2c44bd98ea4d8df
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M MANIFEST
    M Makefile.SH
    M dist/ExtUtils-ParseXS/lib/perlxs.pod
    A lock_definitions.h
    M pod/perlembed.pod
    M pod/perlhacktips.pod
    M regen.pl
    A regen/lock_definitions.pl
    M t/porting/regen.t

  Log Message:
  -----------
  Add lock_definitions.h


  Commit: 2ba0d6b3f65d5785c7935da1697cc2263e9c2da4
      
https://github.com/Perl/perl5/commit/2ba0d6b3f65d5785c7935da1697cc2263e9c2da4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  add locks and expansions


  Commit: a0257451d8efe892a82ffb1b7d6d5c8cae03f7ea
      
https://github.com/Perl/perl5/commit/a0257451d8efe892a82ffb1b7d6d5c8cae03f7ea
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  regen/reentr.pl: Redefine lock if redefine function

The generated header may define a macro that overrides a libc function
call with an equivalent reentrant one.  That means that the mutex lock
macros for that function are no longer correct; they are for the
original.  This commit causes them to be changed to the revised one.
Typically the result will be less strict locking.


  Commit: d1d88b07063b1f21a9395e00d5e3e9ab977dc2dc
      
https://github.com/Perl/perl5/commit/d1d88b07063b1f21a9395e00d5e3e9ab977dc2dc
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M win32/win32.c

  Log Message:
  -----------
  win32.c: Wrap putenv with ENV_LOCK


  Commit: be1945455778086f0708fa236ac3ea9449fbdca5
      
https://github.com/Perl/perl5/commit/be1945455778086f0708fa236ac3ea9449fbdca5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pp_sys.c

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


  Commit: 5625748ab92a9445bbe7f9dce8bf73cd26d11410
      
https://github.com/Perl/perl5/commit/5625748ab92a9445bbe7f9dce8bf73cd26d11410
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M doio.c

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


  Commit: f309ae32948fcd681cee9c3ca5f973ec69e962a7
      
https://github.com/Perl/perl5/commit/f309ae32948fcd681cee9c3ca5f973ec69e962a7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.c

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


  Commit: dec54ad495ce9c2bbc5abbf8a34a6ba416a03ed5
      
https://github.com/Perl/perl5/commit/dec54ad495ce9c2bbc5abbf8a34a6ba416a03ed5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M mg.c
    M perl.c

  Log Message:
  -----------
  sysconf lock


  Commit: c1820ebf3144c560911e398c5a9b5f17e06de25e
      
https://github.com/Perl/perl5/commit/c1820ebf3144c560911e398c5a9b5f17e06de25e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M ext/POSIX/POSIX.xs

  Log Message:
  -----------
  posix.xs sysconf comment


  Commit: 245838cb3a268261fda90e8423317bca843c04a9
      
https://github.com/Perl/perl5/commit/245838cb3a268261fda90e8423317bca843c04a9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Enable shortened critical section times

Since 5335601b6b6a88f5244d09fd2c1e531a1918ec12, there has been the
capability of having nested locks, where the inner one is necessary in
all conditions, and the outer one is desirable in just some conditions.

But this hasn't been enabled because in some Configurations it could
cause a deadlock, with the thread locking the ENV mutex, and then in a
nested call trying to lock it again.  The previous commit made this mutex 
reentrant, so the deadlock is gone.


  Commit: bbbfaa5c1a3aa51ccfcd2ac7817f4c31150f30f4
      
https://github.com/Perl/perl5/commit/bbbfaa5c1a3aa51ccfcd2ac7817f4c31150f30f4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c move gwLOCK defn; maybe leave in perl?


  Commit: 556d4f1748232c0eadb75359e784f3a1d667c2d7
      
https://github.com/Perl/perl5/commit/556d4f1748232c0eadb75359e784f3a1d667c2d7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  lock definitions for emul


  Commit: 6529f7d0bbea55d753142d2d874c03b413e960c5
      
https://github.com/Perl/perl5/commit/6529f7d0bbea55d753142d2d874c03b413e960c5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M embed.fnc
    M embed.h
    M embedvar.h
    M ext/POSIX/POSIX.xs
    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: a09e9841bce4eeddd3cb580ee9bcd9d48dfdc4c0
      
https://github.com/Perl/perl5/commit/a09e9841bce4eeddd3cb580ee9bcd9d48dfdc4c0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 0a6d8833116ecccc63593abee383f6994fdfb22e
      
https://github.com/Perl/perl5/commit/0a6d8833116ecccc63593abee383f6994fdfb22e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 558f8728640619c2409df88dda76ed6bbc747f9d
      
https://github.com/Perl/perl5/commit/558f8728640619c2409df88dda76ed6bbc747f9d
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  Revert "more maybe"

This reverts commit 2a4f54586fcb557bbea226866777d78fd4ff65e0.


  Commit: 3641ad01fa83d414f4ad66f39832926868a94657
      
https://github.com/Perl/perl5/commit/3641ad01fa83d414f4ad66f39832926868a94657
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "maybe emul"

This reverts commit 67f1c694e1610bec6e6c7a3ef77d7b742279681e.


  Commit: 157ee8bfe473768a9457ff22adbdb62c4b0cfa9e
      
https://github.com/Perl/perl5/commit/157ee8bfe473768a9457ff22adbdb62c4b0cfa9e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

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


  Commit: 62ade0907143fbfeac89afa745ef04caed78f3fe
      
https://github.com/Perl/perl5/commit/62ade0907143fbfeac89afa745ef04caed78f3fe
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M perl.h

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


  Commit: 6ef77fd5bd2a9e83d06290c6bf31e4913291eab4
      
https://github.com/Perl/perl5/commit/6ef77fd5bd2a9e83d06290c6bf31e4913291eab4
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: e500a90673831f726c36ca303aa0a1709b15c01f
      
https://github.com/Perl/perl5/commit/e500a90673831f726c36ca303aa0a1709b15c01f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: d2a9156f7248c33613eced9dee8ed7f217d14f55
      
https://github.com/Perl/perl5/commit/d2a9156f7248c33613eced9dee8ed7f217d14f55
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: ab05f059ff662139372316eafd87addb25e827cd
      
https://github.com/Perl/perl5/commit/ab05f059ff662139372316eafd87addb25e827cd
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M makedef.pl
    M perl.h

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

This reverts commit 566751d91c6d868543ceddfe409a738283a465c4.


  Commit: b0c62c8f0d9f37dba803cab51d1c5456e8dfe247
      
https://github.com/Perl/perl5/commit/b0c62c8f0d9f37dba803cab51d1c5456e8dfe247
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: e0b1a0c7f0c440a7dc72b80b0ef2d63cf1bc44fe
      
https://github.com/Perl/perl5/commit/e0b1a0c7f0c440a7dc72b80b0ef2d63cf1bc44fe
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: bce8752c3845ed024229ad6140206cc600c138ad
      
https://github.com/Perl/perl5/commit/bce8752c3845ed024229ad6140206cc600c138ad
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: d19069858de6ba0c9c97729a2ee6aec9404a1207
      
https://github.com/Perl/perl5/commit/d19069858de6ba0c9c97729a2ee6aec9404a1207
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 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: 625365535bf835309d97ec64ece9082675440c3f
      
https://github.com/Perl/perl5/commit/625365535bf835309d97ec64ece9082675440c3f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: d6badb637d2c5a9b3f19e5e2ff9d5c857c9a5c1e
      
https://github.com/Perl/perl5/commit/d6badb637d2c5a9b3f19e5e2ff9d5c857c9a5c1e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M sv.c

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


  Commit: d5905db16238320f43a339b2a533985cf61b50e5
      
https://github.com/Perl/perl5/commit/d5905db16238320f43a339b2a533985cf61b50e5
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M sv.c

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


  Commit: efb8f4dc099a4ec1259e0a6e58010f1d86826849
      
https://github.com/Perl/perl5/commit/efb8f4dc099a4ec1259e0a6e58010f1d86826849
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: f48c667d766ae16f01ec625e08c3545a37d41cc1
      
https://github.com/Perl/perl5/commit/f48c667d766ae16f01ec625e08c3545a37d41cc1
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 8673b0810739c8ddecb1e857980579068eb73fbe
      
https://github.com/Perl/perl5/commit/8673b0810739c8ddecb1e857980579068eb73fbe
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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

This reverts commit 7213d12415bbd16283e624ea64f633e9abd2be48.


  Commit: 60ef284cc0acdfddfded624e7d2ee07f96a4090f
      
https://github.com/Perl/perl5/commit/60ef284cc0acdfddfded624e7d2ee07f96a4090f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

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


  Commit: 3e0f71c74a3a393267fa86afbc6d65d24aa59dac
      
https://github.com/Perl/perl5/commit/3e0f71c74a3a393267fa86afbc6d65d24aa59dac
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 92c5daff221cefe0dccede1e2e41cbc7686c24c6
      
https://github.com/Perl/perl5/commit/92c5daff221cefe0dccede1e2e41cbc7686c24c6
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  start of shortening bad utf8 strerror


  Commit: b22941be37a5627229650526e962de5b9499daff
      
https://github.com/Perl/perl5/commit/b22941be37a5627229650526e962de5b9499daff
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  Revert "start of shortening bad utf8 strerror"

This reverts commit 042cf1f20203857936fe147213f9af1c30e76188.


  Commit: 424d4438a44017bc238f198ddc46ea8dd5b86602
      
https://github.com/Perl/perl5/commit/424d4438a44017bc238f198ddc46ea8dd5b86602
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

  Log Message:
  -----------
  Wrap sysconf() calls with mutex locks

The environment is supposed to stay constant during these calls.


  Commit: 5a47a5129dc8426610afca9c9359bca8028f057c
      
https://github.com/Perl/perl5/commit/5a47a5129dc8426610afca9c9359bca8028f057c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: wrap wcrtomb() calls with mutex lock


  Commit: 7abd58bd1f24c6cea424e97490b1a309f4c3e4a7
      
https://github.com/Perl/perl5/commit/7abd58bd1f24c6cea424e97490b1a309f4c3e4a7
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M pp_sys.c

  Log Message:
  -----------
  XXX ? pp_sys grent etc LOCKS


  Commit: 5fdaf99a17fa88945ee4b03e25137d19b6e6340e
      
https://github.com/Perl/perl5/commit/5fdaf99a17fa88945ee4b03e25137d19b6e6340e
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

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

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


  Commit: 354afda2d57ac5600524bd58167e28fe038b0771
      
https://github.com/Perl/perl5/commit/354afda2d57ac5600524bd58167e28fe038b0771
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M t/porting/known_pod_issues.dat

  Log Message:
  -----------
  podcheck: Add reference to strtok()


  Commit: 57563448d1caf8d324f230790aeecef1c234ffc0
      
https://github.com/Perl/perl5/commit/57563448d1caf8d324f230790aeecef1c234ffc0
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M locale.c
    M perl.c
    M perl.h
    M reentr.c
    M regen/lock_definitions.pl
    M regen/reentr.pl
    M regen/regen_lib.pl
    M sv.c
    M t/test.pl
    M thread.h
    M util.c
    M win32/win32.c

  Log Message:
  -----------
  lots


  Commit: 6d9325a3c108464c6d37693db4331a39446bb27c
      
https://github.com/Perl/perl5/commit/6d9325a3c108464c6d37693db4331a39446bb27c
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M lib/locale.pm

  Log Message:
  -----------
  locale.pm


  Commit: 12f2b4f7acce10f05cee66a68622f96662eab89a
      
https://github.com/Perl/perl5/commit/12f2b4f7acce10f05cee66a68622f96662eab89a
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod
    M lock_definitions.h
    M regen/lock_definitions.pl

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


  Commit: 39afc661dc4b90d3f74eba990d6e4bc5d43fab61
      
https://github.com/Perl/perl5/commit/39afc661dc4b90d3f74eba990d6e4bc5d43fab61
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M win32/win32thread.h

  Log Message:
  -----------
  Don't use CriticalSection on MingW without UCRT

I ran a test that uses mutexes extensively (and isn't in blead) on
MingW, and got lots of failures.  After adding lots of trace statements,
and poring over logs, it became clear that the EnterCriticalSection()
calls (and kin) were not doing what they are supposed to do, locking out
other threads.

This locking mechanism is the default for Windows, but win32thread.h
allows for the use of a heavier-weight locking mechanism, selected by
a Configuration option, or by adding to it the single line

  #define DONT_USE_CRITICAL_SECTION

Doing so "magically" caused those errors to go away.

This tells me that the error is in the CriticalSection libc calls.

I then ran the same test on MSVC, and the errors didn't happen.  It is
using a later libc that the MingW I tested on is.  From this, I infer
that this bug has been fixed in later libc versions.  (This is true of
some other bugs we already have workarounds for.)

This commit causes the CriticalSection calls to not be used on MingW
when it isn't compiled to use the later libc version UCRT.  I don't know
when libc was fixed, but until evidence to the contrary surfaces, I took
the easy way out, and assume any version is ok that is recent enough to
have _MSVC_VER defined .


  Commit: 67107a4d80f8c1466062d1af21b8f863e3c34fe9
      
https://github.com/Perl/perl5/commit/67107a4d80f8c1466062d1af21b8f863e3c34fe9
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M win32/win32thread.h

  Log Message:
  -----------
  Revert "Don't use CriticalSection on MingW without UCRT"

This reverts commit 39afc661dc4b90d3f74eba990d6e4bc5d43fab61.


  Commit: d07e7d354b4d83817b5121baec31c942e8c4dceb
      
https://github.com/Perl/perl5/commit/d07e7d354b4d83817b5121baec31c942e8c4dceb
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M locale.c
    M lock_definitions.h

  Log Message:
  -----------
  extend experimental emulate locale safe thread


  Commit: c50a024c5f0d4593897bd5fde0f2f1d9f7395b43
      
https://github.com/Perl/perl5/commit/c50a024c5f0d4593897bd5fde0f2f1d9f7395b43
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M perl.h
    M sv.c

  Log Message:
  -----------
  upload


  Commit: 570d6804db96ca7137c06853ce090ced87850393
      
https://github.com/Perl/perl5/commit/570d6804db96ca7137c06853ce090ced87850393
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M locale.c
    M perl.h
    M t/loc_tools.pl
    M t/test.pl
    M thread.h

  Log Message:
  -----------
  here


  Commit: 2da22df1e4a6d78166d91e1955429f5e88821e0f
      
https://github.com/Perl/perl5/commit/2da22df1e4a6d78166d91e1955429f5e88821e0f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M lib/locale_threads.t

  Log Message:
  -----------
  locale_thread 3 and 10


Compare: https://github.com/Perl/perl5/compare/3d63a3d7a349...2da22df1e4a6

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

Reply via email to