Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: 041600289e553e176266d14e6ec42a19931ac9ae https://github.com/Perl/perl5/commit/041600289e553e176266d14e6ec42a19931ac9ae Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 6cb2d20c66c4a1c85457669b5ab237e5e2e5c7b3 https://github.com/Perl/perl5/commit/6cb2d20c66c4a1c85457669b5ab237e5e2e5c7b3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: bc3d94c948dda2eb97d52e891a4311e1373586bd https://github.com/Perl/perl5/commit/bc3d94c948dda2eb97d52e891a4311e1373586bd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm Log Message: ----------- BlackBox dont use rare scripts Commit: 354d9763d53a6707bf95cd054f2a3bf5c3c22ebf https://github.com/Perl/perl5/commit/354d9763d53a6707bf95cd054f2a3bf5c3c22ebf Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/harness Log Message: ----------- XXX t/harness temp tweaks Commit: 149ed5c5a6204fce50243579b7e766326a2bf671 https://github.com/Perl/perl5/commit/149ed5c5a6204fce50243579b7e766326a2bf671 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: ae8a636d53976348e100810c5210e4febcd875a2 https://github.com/Perl/perl5/commit/ae8a636d53976348e100810c5210e4febcd875a2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: 793fcd7642c845d5ad0d4c8ccf9b2668a5ad0727 https://github.com/Perl/perl5/commit/793fcd7642c845d5ad0d4c8ccf9b2668a5ad0727 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- Revert "skip bincompat.t" This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c. Commit: cc07f45f81f4c9102c53c68a23d8762c127408de https://github.com/Perl/perl5/commit/cc07f45f81f4c9102c53c68a23d8762c127408de Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/TEST Log Message: ----------- Skip cpan testing message Commit: 9772026cae3beb80f9dc0c88ce122c47510a9571 https://github.com/Perl/perl5/commit/9772026cae3beb80f9dc0c88ce122c47510a9571 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/TEST Log Message: ----------- Also skip non-thread dist testing Commit: 6c7671ecf0c9578bfe20672bfa48b0eccf014ab4 https://github.com/Perl/perl5/commit/6c7671ecf0c9578bfe20672bfa48b0eccf014ab4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: e69baaa1e3d41b5c43c7ce403488704bd85fed8b https://github.com/Perl/perl5/commit/e69baaa1e3d41b5c43c7ce403488704bd85fed8b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: 416dd74255eebe271d2242c51db140d4f34c00f2 https://github.com/Perl/perl5/commit/416dd74255eebe271d2242c51db140d4f34c00f2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 4b79a5744c7a54cefcf29f071df317bef6334c9d https://github.com/Perl/perl5/commit/4b79a5744c7a54cefcf29f071df317bef6334c9d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M dist/Tie-File/t/29a_upcopy.t Log Message: ----------- up timeout for dist/Tie-File/t/29a_upcopy.t Commit: 8f3c961ec42d67ac3e1f5754fbb328b357e25716 https://github.com/Perl/perl5/commit/8f3c961ec42d67ac3e1f5754fbb328b357e25716 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 488579b387e41160468d43927bf4142736923531 https://github.com/Perl/perl5/commit/488579b387e41160468d43927bf4142736923531 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: dabcd831d568396d7c62d9399cc4cb425b020a33 https://github.com/Perl/perl5/commit/dabcd831d568396d7c62d9399cc4cb425b020a33 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 85ffaa44b67c40e952d0d21daa4c9098a34e6124 https://github.com/Perl/perl5/commit/85ffaa44b67c40e952d0d21daa4c9098a34e6124 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: ee255df1dd3692980afb8e56a40e2aa14536d46c https://github.com/Perl/perl5/commit/ee255df1dd3692980afb8e56a40e2aa14536d46c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: afaa02a631b290feae1ab14b6e227bf318d5d4ca https://github.com/Perl/perl5/commit/afaa02a631b290feae1ab14b6e227bf318d5d4ca Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 9f7f4357563bb3e913facc13ef17167348af063d https://github.com/Perl/perl5/commit/9f7f4357563bb3e913facc13ef17167348af063d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t prob. due to 5.38 tag issue Commit: 1c0a2aa29e0d2ef85a1625d4c0828e13d535ddd2 https://github.com/Perl/perl5/commit/1c0a2aa29e0d2ef85a1625d4c0828e13d535ddd2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 13c5aa792b6f68c258f50434a0e3d6e18288c139 https://github.com/Perl/perl5/commit/13c5aa792b6f68c258f50434a0e3d6e18288c139 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: Allow undef LC_ALL Commit: 964c460a8e4431d3bad4d602a1f980fbc1e862f0 https://github.com/Perl/perl5/commit/964c460a8e4431d3bad4d602a1f980fbc1e862f0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: ff36f84fa392cd79f1640080ee0b888f100a0890 https://github.com/Perl/perl5/commit/ff36f84fa392cd79f1640080ee0b888f100a0890 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 7ff6960aa8619dcf1b76cccc4caa030b9f5124b0 https://github.com/Perl/perl5/commit/7ff6960aa8619dcf1b76cccc4caa030b9f5124b0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: bceda4db3b8c882bf451427837f3299a31df214b https://github.com/Perl/perl5/commit/bceda4db3b8c882bf451427837f3299a31df214b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 15a2866d330dfc8fe023a04faf07f7c701e797bf https://github.com/Perl/perl5/commit/15a2866d330dfc8fe023a04faf07f7c701e797bf Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 1df9e21182e7c7d8abeda820a00b467b990fbba1 https://github.com/Perl/perl5/commit/1df9e21182e7c7d8abeda820a00b467b990fbba1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: e1310131440601c992280659c9101a2b72ce4135 https://github.com/Perl/perl5/commit/e1310131440601c992280659c9101a2b72ce4135 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: 982d1029e67a64cf381a39213e09b1a470b80396 https://github.com/Perl/perl5/commit/982d1029e67a64cf381a39213e09b1a470b80396 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads.xs DEBUG_U Commit: 569ce45faadd154658d8529d05734f686a190e39 https://github.com/Perl/perl5/commit/569ce45faadd154658d8529d05734f686a190e39 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: b365849e5bee032e4d613eb805ea424bdc57700d https://github.com/Perl/perl5/commit/b365849e5bee032e4d613eb805ea424bdc57700d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: f273b7c3560a128a5d4e9b76715c8b4f3192a682 https://github.com/Perl/perl5/commit/f273b7c3560a128a5d4e9b76715c8b4f3192a682 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: c5e0173d9cbd8b14dd52ec2cd2f5877b03c3d446 https://github.com/Perl/perl5/commit/c5e0173d9cbd8b14dd52ec2cd2f5877b03c3d446 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: b3486d4d52a19f248c1a45b87415cadd9ee7702d https://github.com/Perl/perl5/commit/b3486d4d52a19f248c1a45b87415cadd9ee7702d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: c3e60b5c4dd16aa8b275e502e7c15c12ac17854c https://github.com/Perl/perl5/commit/c3e60b5c4dd16aa8b275e502e7c15c12ac17854c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M cpan/version/t/07locale.t Log Message: ----------- cpan/version/07locale.t: drop, bug have to recompute md5 Commit: 2ffa222a9297db7b52fb9264f319de90f12c3ba8 https://github.com/Perl/perl5/commit/2ffa222a9297db7b52fb9264f319de90f12c3ba8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat Commit: c07dbc662a5441cc39e0090dd349a6c85a3d818e https://github.com/Perl/perl5/commit/c07dbc662a5441cc39e0090dd349a6c85a3d818e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: XXX Debug Commit: d2571202194dfd0a8c3198dad98b3ec40a51af0e https://github.com/Perl/perl5/commit/d2571202194dfd0a8c3198dad98b3ec40a51af0e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- S_querylocale_2008_i: Add entry assertion Commit: b37affb89425dece7230690dc5f8e3b169181a14 https://github.com/Perl/perl5/commit/b37affb89425dece7230690dc5f8e3b169181a14 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_i: Add entry assertion Commit: b002d4dffe80813a9631dccbf37a23cc1cd43c5c https://github.com/Perl/perl5/commit/b002d4dffe80813a9631dccbf37a23cc1cd43c5c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: 9bd2d47b4a513fb656863c5b86e545cd523241d8 https://github.com/Perl/perl5/commit/9bd2d47b4a513fb656863c5b86e545cd523241d8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: 7a2243c5e58e8a16542d41328542cc6901767057 https://github.com/Perl/perl5/commit/7a2243c5e58e8a16542d41328542cc6901767057 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pp.c Log Message: ----------- pp_study: Add memory use debugging Commit: e452844e63156a157fd957f1661bf240f6bb7b3f https://github.com/Perl/perl5/commit/e452844e63156a157fd957f1661bf240f6bb7b3f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pp.c Log Message: ----------- Revert "pp_study: Add memory use debugging" Commit: 35d224c411dc991affad19603d5597e4dfce784e https://github.com/Perl/perl5/commit/35d224c411dc991affad19603d5597e4dfce784e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin Commit: f40d5d2a4483bb5285e96e3fc5b724265002bb11 https://github.com/Perl/perl5/commit/f40d5d2a4483bb5285e96e3fc5b724265002bb11 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 6128ae14f12db463813c92da2984e64a88ac8010 https://github.com/Perl/perl5/commit/6128ae14f12db463813c92da2984e64a88ac8010 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: debug Commit: 7764c327f744d0fb6fb48b800a1937eeff5dd57c https://github.com/Perl/perl5/commit/7764c327f744d0fb6fb48b800a1937eeff5dd57c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: add a commented out yield Commit: 46eb63937b27680d8da3a2d241eb379900e747b9 https://github.com/Perl/perl5/commit/46eb63937b27680d8da3a2d241eb379900e747b9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: debugging Commit: 67b40ae0751c7913adaa1d19a269581364391ca3 https://github.com/Perl/perl5/commit/67b40ae0751c7913adaa1d19a269581364391ca3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 6aae9e10b30e33910c7466deac53804432d41050 https://github.com/Perl/perl5/commit/6aae9e10b30e33910c7466deac53804432d41050 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 9f4ac5b58cf8026a704947fd5774735e20b82468 https://github.com/Perl/perl5/commit/9f4ac5b58cf8026a704947fd5774735e20b82468 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 7369de334eb0a0e0d9e6a0bee8b6c8bbd696f2d2 https://github.com/Perl/perl5/commit/7369de334eb0a0e0d9e6a0bee8b6c8bbd696f2d2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M thread.h Log Message: ----------- thread.h: White space only Indent some nested preproccessor defines Commit: e59c635069da6af48c4fa7a976dccdd167fba5ea https://github.com/Perl/perl5/commit/e59c635069da6af48c4fa7a976dccdd167fba5ea Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: f37a434811db32ac5e8be8e3301697c551a82562 https://github.com/Perl/perl5/commit/f37a434811db32ac5e8be8e3301697c551a82562 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- XXX Time::Piece strftime Commit: f15d537eddac3f4869a9e25159e431c48706bb3e https://github.com/Perl/perl5/commit/f15d537eddac3f4869a9e25159e431c48706bb3e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: notes to myself Commit: 314e4685a26acc9c0a34dc94aa5aeac019c2683c https://github.com/Perl/perl5/commit/314e4685a26acc9c0a34dc94aa5aeac019c2683c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.pm M t/porting/customized.dat Log Message: ----------- Time-Piece Commit: 0abd85c1750e6627b4b3638171b90de9310978a7 https://github.com/Perl/perl5/commit/0abd85c1750e6627b4b3638171b90de9310978a7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M util.c M win32/perlhost.h Log Message: ----------- XXX Win32 mem log Commit: fd5f1f6c29685ae280d7cf3d0caff498861490c1 https://github.com/Perl/perl5/commit/fd5f1f6c29685ae280d7cf3d0caff498861490c1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M util.c Log Message: ----------- XXX util add thread to mem_log Commit: 9a1bd559a0de353ef44c69d120f4bf217bc2df14 https://github.com/Perl/perl5/commit/9a1bd559a0de353ef44c69d120f4bf217bc2df14 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- Debug wrap wset Commit: a58642415928beae6d8a8625ae24e8d9a83c27c0 https://github.com/Perl/perl5/commit/a58642415928beae6d8a8625ae24e8d9a83c27c0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: bb8b2c8888e2dd851771064355fb7127148fe21b https://github.com/Perl/perl5/commit/bb8b2c8888e2dd851771064355fb7127148fe21b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: a8a81159d53be79649a8d6022a0dc86a7a0c1266 https://github.com/Perl/perl5/commit/a8a81159d53be79649a8d6022a0dc86a7a0c1266 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: 4a588d36967fae0f69297bf95862cb6c428fb058 https://github.com/Perl/perl5/commit/4a588d36967fae0f69297bf95862cb6c428fb058 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: 89e1900f4317b97d80f8bf31ae3f4495cd34530a https://github.com/Perl/perl5/commit/89e1900f4317b97d80f8bf31ae3f4495cd34530a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: 2add87f6fcab9c44d0c988b4fd42cea7f99d95cb https://github.com/Perl/perl5/commit/2add87f6fcab9c44d0c988b4fd42cea7f99d95cb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M win32/config_H.gc M win32/config_h.PL M win32/config_sh.PL Log Message: ----------- XXX config Commit: 32915f00fc6bfe82f56dba8ee3701c223f557c41 https://github.com/Perl/perl5/commit/32915f00fc6bfe82f56dba8ee3701c223f557c41 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pod/perlembed.pod Log Message: ----------- f perlembed Commit: 6867d5d8a2ca6ad747482f533c99c30e5648d797 https://github.com/Perl/perl5/commit/6867d5d8a2ca6ad747482f533c99c30e5648d797 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: d9d77978d109778dc581d03124eb5612a200b687 https://github.com/Perl/perl5/commit/d9d77978d109778dc581d03124eb5612a200b687 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 0ec8d9b1e0b5fd7eae6e6f41a486d99f103d6837 https://github.com/Perl/perl5/commit/0ec8d9b1e0b5fd7eae6e6f41a486d99f103d6837 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pp.c Log Message: ----------- pp_study: hook Commit: f25300f3cdf6bef32761fd43e2baef2ec904b2fd https://github.com/Perl/perl5/commit/f25300f3cdf6bef32761fd43e2baef2ec904b2fd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t: Cope with no LC_ALL Commit: 9618a42aa746b5e78769b399721bb3a91478eb5d https://github.com/Perl/perl5/commit/9618a42aa746b5e78769b399721bb3a91478eb5d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 85c903dbc89d401512f6f2353c51a3cdf379dcd6 https://github.com/Perl/perl5/commit/85c903dbc89d401512f6f2353c51a3cdf379dcd6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 4edac3011d14a54f650144f729036e7e2fe8753d https://github.com/Perl/perl5/commit/4edac3011d14a54f650144f729036e7e2fe8753d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 60052460cad86dbca83be74f0a1ed99a59baf5cd https://github.com/Perl/perl5/commit/60052460cad86dbca83be74f0a1ed99a59baf5cd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: c34bdd4df01e518965c0c8f68436bb36f6f2e0eb https://github.com/Perl/perl5/commit/c34bdd4df01e518965c0c8f68436bb36f6f2e0eb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 05abda18492f0036b1882e035581a6e7887da709 https://github.com/Perl/perl5/commit/05abda18492f0036b1882e035581a6e7887da709 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 0d2ab0163819b0728f86364a28930498168517ff https://github.com/Perl/perl5/commit/0d2ab0163819b0728f86364a28930498168517ff Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: e377bfeebc414cfdcaf5af6f22442c8dd6a4dd18 https://github.com/Perl/perl5/commit/e377bfeebc414cfdcaf5af6f22442c8dd6a4dd18 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- Revert "t/run/locale.t: Add test" This reverts commit 28b41f6baf95fe40466e5ee3e349550c7c4e85ee. Commit: d8c8288f2217675bf21c25909737d8baf30a6959 https://github.com/Perl/perl5/commit/d8c8288f2217675bf21c25909737d8baf30a6959 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Cope with no LC_ALL Commit: 56ea56119201665f7ff1c68980cc8fa20517ac67 https://github.com/Perl/perl5/commit/56ea56119201665f7ff1c68980cc8fa20517ac67 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Commit: 137b2ee3a8b931c0705f7b93c450d3c8951daecd https://github.com/Perl/perl5/commit/137b2ee3a8b931c0705f7b93c450d3c8951daecd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: de5ed01bdb67054e4ecb79d8c96329a01a269fa2 https://github.com/Perl/perl5/commit/de5ed01bdb67054e4ecb79d8c96329a01a269fa2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- C_thous better ifdef Commit: 088c9bf939ce756af644dde45815049a353d4d6e https://github.com/Perl/perl5/commit/088c9bf939ce756af644dde45815049a353d4d6e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 217358fb99a1647b8e7f49dd9d8605f3f8004dcb https://github.com/Perl/perl5/commit/217358fb99a1647b8e7f49dd9d8605f3f8004dcb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loctools use if dumper Commit: abcc2b69acfeb6a4a4770b6228f4e8fa3255f145 https://github.com/Perl/perl5/commit/abcc2b69acfeb6a4a4770b6228f4e8fa3255f145 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M ext/POSIX/lib/POSIX.pod Log Message: ----------- start of pod for localeconv Commit: c9770fac0d914853282aa47aa0ecb1609bb8c3cf https://github.com/Perl/perl5/commit/c9770fac0d914853282aa47aa0ecb1609bb8c3cf Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 8105f538cd19872492906c4bd100aedf421b4c3a https://github.com/Perl/perl5/commit/8105f538cd19872492906c4bd100aedf421b4c3a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- debug populate localeconv Commit: 2e7644bdb5f30ec220324644ce9f7140c708f20b https://github.com/Perl/perl5/commit/2e7644bdb5f30ec220324644ce9f7140c708f20b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- debug thread xs Commit: 58e475127dad2ce196ad231877383156ef1ab82c https://github.com/Perl/perl5/commit/58e475127dad2ce196ad231877383156ef1ab82c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Add debugging info Commit: f5eeb22c25cca1160ac952daaf83e2b0003207ee https://github.com/Perl/perl5/commit/f5eeb22c25cca1160ac952daaf83e2b0003207ee Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Cope with no LC_CTYPE Commit: f6f34ea373fe7deb09654426373de3d3dd9cccac https://github.com/Perl/perl5/commit/f6f34ea373fe7deb09654426373de3d3dd9cccac Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 388f70d0fa9c919ee650111f4cb46f3649fd17d3 https://github.com/Perl/perl5/commit/388f70d0fa9c919ee650111f4cb46f3649fd17d3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Call newSVpvz() Commit: 5ac186ba3aecbc57963adb84568154bda94c2221 https://github.com/Perl/perl5/commit/5ac186ba3aecbc57963adb84568154bda94c2221 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 0b7a0f43c51de41801560f15c27aeb3d74c34030 https://github.com/Perl/perl5/commit/0b7a0f43c51de41801560f15c27aeb3d74c34030 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: c78517196ce380aaf442f0cdc61145030fb54070 https://github.com/Perl/perl5/commit/c78517196ce380aaf442f0cdc61145030fb54070 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- Move ENV defns Commit: 788dc912a4173b73b8414e7563ed29283d5e3871 https://github.com/Perl/perl5/commit/788dc912a4173b73b8414e7563ed29283d5e3871 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 6c845e094acc9a819120994b7ad821bc6c41b4f3 https://github.com/Perl/perl5/commit/6c845e094acc9a819120994b7ad821bc6c41b4f3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Move things so gwLOCK definitions are adjacent Commit: 924a75f3e9b7525b0633c2f5df905c70a03bb3ca https://github.com/Perl/perl5/commit/924a75f3e9b7525b0633c2f5df905c70a03bb3ca Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- Move locale mutex init/destruct I can't find a place in this file for this to go that isn't somewhat awkward. Because the environment and locale mutexes are intertwined, they naturally fit together. One would think the basic initialization and termination of the locale mutexes should go ahead of their use. But because of all the complications, that interrupts the flow of the logic between the environment and locale mutexes, so they are moved to later by this commit. Commit: f2b2a937eeca6562bbd40addf78345c24fb2df27 https://github.com/Perl/perl5/commit/f2b2a937eeca6562bbd40addf78345c24fb2df27 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 4e6e498e2e71a865e6fdaaa23d73572c628f23cc https://github.com/Perl/perl5/commit/4e6e498e2e71a865e6fdaaa23d73572c628f23cc Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: d77d0d8ace32e2e1cc05d52b92599bbc9590ce94 https://github.com/Perl/perl5/commit/d77d0d8ace32e2e1cc05d52b92599bbc9590ce94 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 72ace218084178eeb54ef4980b8c11c44d4cbad8 https://github.com/Perl/perl5/commit/72ace218084178eeb54ef4980b8c11c44d4cbad8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: a0685cd45db316fea1dd8c67b89d2728fc61cad6 https://github.com/Perl/perl5/commit/a0685cd45db316fea1dd8c67b89d2728fc61cad6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 2c529876215b63cabf319cdb47780afc93d7295f https://github.com/Perl/perl5/commit/2c529876215b63cabf319cdb47780afc93d7295f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- mv reent unlock Commit: 015e83ec2f0ebdbc502a141dbb2032fc6dd03970 https://github.com/Perl/perl5/commit/015e83ec2f0ebdbc502a141dbb2032fc6dd03970 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: debugging new read lock Commit: 45b9f912d9e46adccfdb72a3c7db341c81ad51f8 https://github.com/Perl/perl5/commit/45b9f912d9e46adccfdb72a3c7db341c81ad51f8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- debug locks Commit: 77e73a0912459f3aa2730986594d0eb8f6b84071 https://github.com/Perl/perl5/commit/77e73a0912459f3aa2730986594d0eb8f6b84071 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 3c98c7eeb2be1e350f2c027605e78901cafd409a https://github.com/Perl/perl5/commit/3c98c7eeb2be1e350f2c027605e78901cafd409a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- env read Commit: 84dba86ba43ec5200da3cf954234638d8412a53a https://github.com/Perl/perl5/commit/84dba86ba43ec5200da3cf954234638d8412a53a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h white space in ENV READ LOCK defn Commit: 08f1fa98a96b9beeb68571cc5ad2761b7e255c22 https://github.com/Perl/perl5/commit/08f1fa98a96b9beeb68571cc5ad2761b7e255c22 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- locale read lock Commit: 94d0d3196eebf553286f0494795506bf91f14af8 https://github.com/Perl/perl5/commit/94d0d3196eebf553286f0494795506bf91f14af8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h deadlock comments Commit: 7e87df3a809f3a0505602ec33050e306cc544024 https://github.com/Perl/perl5/commit/7e87df3a809f3a0505602ec33050e306cc544024 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M MANIFEST M Makefile.SH A lock_definitions.h M regen.pl A regen/lock_definitions.pl M t/porting/regen.t Log Message: ----------- lock definitions.h Commit: bea668cfb6324939444628c6d0dab82dce00a32c https://github.com/Perl/perl5/commit/bea668cfb6324939444628c6d0dab82dce00a32c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs M locale.c M lock_definitions.h M perl.h M regen/lock_definitions.pl Log Message: ----------- cripple-locks Commit: 4cfd6fa180b993445720c39bb131aedba1fc6e1a https://github.com/Perl/perl5/commit/4cfd6fa180b993445720c39bb131aedba1fc6e1a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 382db10c4c4d2530366bbf0fd6206269b283b4eb https://github.com/Perl/perl5/commit/382db10c4c4d2530366bbf0fd6206269b283b4eb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M win32/win32.c Log Message: ----------- win32.c: Wrap putenv with ENV_LOCK Commit: e3f8964f50918fc98f9fd9a52fbd442211a24510 https://github.com/Perl/perl5/commit/e3f8964f50918fc98f9fd9a52fbd442211a24510 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pp_sys.c Log Message: ----------- pp_sys: Add locks around some calls Commit: e9355dd321bef2265d36ef8f4967cc7017e71c53 https://github.com/Perl/perl5/commit/e9355dd321bef2265d36ef8f4967cc7017e71c53 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M doio.c Log Message: ----------- doio: Wrap functions with mutexes Commit: a220db5846fc88e473addbba826680ccf140aef0 https://github.com/Perl/perl5/commit/a220db5846fc88e473addbba826680ccf140aef0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.c Log Message: ----------- perl.c: Wrap functions with mutexes Commit: 7f7de2a2d1ac67399e274e25f17fe2049f1079eb https://github.com/Perl/perl5/commit/7f7de2a2d1ac67399e274e25f17fe2049f1079eb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M mg.c M perl.c Log Message: ----------- sysconf lock Commit: 43c3958837026535d1a0a2a1e140b0247865d5a2 https://github.com/Perl/perl5/commit/43c3958837026535d1a0a2a1e140b0247865d5a2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs Log Message: ----------- posix.xs sysconf comment Commit: ecd8fca19a7b6aa634d72ced99ae913785c89f31 https://github.com/Perl/perl5/commit/ecd8fca19a7b6aa634d72ced99ae913785c89f31 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: c46ce56aa89bcfd18c19cc11ddeb81eae88eb271 https://github.com/Perl/perl5/commit/c46ce56aa89bcfd18c19cc11ddeb81eae88eb271 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c move gwLOCK defn; maybe leave in perl? Commit: 7c308bbb78d0e40c20cb294fdd67c1c74d7b387c https://github.com/Perl/perl5/commit/7c308bbb78d0e40c20cb294fdd67c1c74d7b387c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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 lock_definitions.h M makedef.pl M mg.c M perl.c M perl.h M pod/perlvar.pod M proto.h M regen/lock_definitions.pl M sv.c Log Message: ----------- ability Commit: ab29f461e2bcaff39142a8e6b29489047bcddae4 https://github.com/Perl/perl5/commit/ab29f461e2bcaff39142a8e6b29489047bcddae4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- maybe emul Commit: 982c7317337cac5d54f18b5c85829dedc9ecd797 https://github.com/Perl/perl5/commit/982c7317337cac5d54f18b5c85829dedc9ecd797 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M embedvar.h M intrpvar.h M locale.c M makedef.pl M sv.c Log Message: ----------- more maybe Commit: ad33313869b456c708c5b3e6cde688be905eec66 https://github.com/Perl/perl5/commit/ad33313869b456c708c5b3e6cde688be905eec66 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: 599c0bbe71c7bdba4d5f4e3733fc22a64d4e8c2f https://github.com/Perl/perl5/commit/599c0bbe71c7bdba4d5f4e3733fc22a64d4e8c2f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: f7d358a75f4ef0ffc20f2d741b1a8a9fe83ae7d3 https://github.com/Perl/perl5/commit/f7d358a75f4ef0ffc20f2d741b1a8a9fe83ae7d3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- Make numeric standard inconsistent Commit: 08130a679f42103493ab93e27083cedc9b5ead87 https://github.com/Perl/perl5/commit/08130a679f42103493ab93e27083cedc9b5ead87 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 9bab58bbfd8905602f125b475ab16ad9a9672e9d https://github.com/Perl/perl5/commit/9bab58bbfd8905602f125b475ab16ad9a9672e9d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 93603a55bdf5a3bbe9df1e8f536c19064bfcca77 https://github.com/Perl/perl5/commit/93603a55bdf5a3bbe9df1e8f536c19064bfcca77 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: 930e746cfd51848eb314ed559f57a036141c73ee https://github.com/Perl/perl5/commit/930e746cfd51848eb314ed559f57a036141c73ee Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- DEBUG Lv to U Commit: 57acc8172f9d34e114566b91ce701a139c651d55 https://github.com/Perl/perl5/commit/57acc8172f9d34e114566b91ce701a139c651d55 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- extra debug Commit: 3bfe5bdc7b53fdcfc6cc449b07f619d83065797d https://github.com/Perl/perl5/commit/3bfe5bdc7b53fdcfc6cc449b07f619d83065797d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Maybe comment' Commit: 13871deeac64df03c5fee8f063d060f1cb0316e9 https://github.com/Perl/perl5/commit/13871deeac64df03c5fee8f063d060f1cb0316e9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: f86f7f2f80b7ed9a67bab2040a7f40fdd70d65f9 https://github.com/Perl/perl5/commit/f86f7f2f80b7ed9a67bab2040a7f40fdd70d65f9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- Debug uselocale Commit: bb3ca8ed44e9b135d5c9cc14736c2a0a0e44fc40 https://github.com/Perl/perl5/commit/bb3ca8ed44e9b135d5c9cc14736c2a0a0e44fc40 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M sv.c Log Message: ----------- sv.c need to check for pv in sv in sv_setpvf Commit: 84112fc3eaa495fa1c3a5ae183098e400bc1c318 https://github.com/Perl/perl5/commit/84112fc3eaa495fa1c3a5ae183098e400bc1c318 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M sv.c Log Message: ----------- sv Commit: d97ad64c3e8e92c58db666a2308c2e355f1018b4 https://github.com/Perl/perl5/commit/d97ad64c3e8e92c58db666a2308c2e355f1018b4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- immediate use Commit: 8da6690b7cdc8e723cf065032fdd986aac3df1ae https://github.com/Perl/perl5/commit/8da6690b7cdc8e723cf065032fdd986aac3df1ae Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- more immed Commit: cb54206cf3d99163ff7f9c3a6aa33825c6c53ccc https://github.com/Perl/perl5/commit/cb54206cf3d99163ff7f9c3a6aa33825c6c53ccc Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- Revert "more immed" This reverts commit 7213d12415bbd16283e624ea64f633e9abd2be48. Commit: 2203bee66b2324fa1e9a864d2c04b96084d43e91 https://github.com/Perl/perl5/commit/2203bee66b2324fa1e9a864d2c04b96084d43e91 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Comments, white space Commit: d081d66376417d250720084375b0f59a56a578da https://github.com/Perl/perl5/commit/d081d66376417d250720084375b0f59a56a578da Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: d23a92f52f391c3f2d429c1be03fbdecd2ee2a29 https://github.com/Perl/perl5/commit/d23a92f52f391c3f2d429c1be03fbdecd2ee2a29 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- start of shortening bad utf8 strerror Commit: 0cbecfb9faeb4fa46d09ac260c06921e40a4c04d https://github.com/Perl/perl5/commit/0cbecfb9faeb4fa46d09ac260c06921e40a4c04d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- Revert "start of shortening bad utf8 strerror" This reverts commit 042cf1f20203857936fe147213f9af1c30e76188. Commit: 6e8aad727c1b42cb3b64f3d1dab22cef70d2799f https://github.com/Perl/perl5/commit/6e8aad727c1b42cb3b64f3d1dab22cef70d2799f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 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: eba22072494d251c192a988ce5064ae4e123f11a https://github.com/Perl/perl5/commit/eba22072494d251c192a988ce5064ae4e123f11a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: wrap wcrtomb() calls with mutex lock Commit: 27f023d4de1696b735cc405396d525da06d36b07 https://github.com/Perl/perl5/commit/27f023d4de1696b735cc405396d525da06d36b07 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M pp_sys.c Log Message: ----------- XXX ? pp_sys grent etc LOCKS Commit: 5e4183823cdef591aa2848215035639658316223 https://github.com/Perl/perl5/commit/5e4183823cdef591aa2848215035639658316223 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs M iperlsys.h M locale.c Log Message: ----------- final Commit: 3dd3e05c274dbf65633ec6502890b411121b6334 https://github.com/Perl/perl5/commit/3dd3e05c274dbf65633ec6502890b411121b6334 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs M locale.c M lock_definitions.h M perl.c M perl.h M regen/lock_definitions.pl M thread.h M util.c Log Message: ----------- l Commit: b30278c690e3c009f1b89dc6274d787f7123b81f https://github.com/Perl/perl5/commit/b30278c690e3c009f1b89dc6274d787f7123b81f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Update comments about strftime Commit: 45f0c4f6309ff59731af417f417486522d7c3504 https://github.com/Perl/perl5/commit/45f0c4f6309ff59731af417f417486522d7c3504 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M lock_definitions.h Log Message: ----------- l Commit: a7eb124f19a7b8008b7b8e0324746507269f6306 https://github.com/Perl/perl5/commit/a7eb124f19a7b8008b7b8e0324746507269f6306 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-25 (Mon, 25 Mar 2024) Changed paths: M locale.c M lock_definitions.h M perl.h M regen/lock_definitions.pl Log Message: ----------- bar Compare: https://github.com/Perl/perl5/compare/3d22e17edb76...a7eb124f19a7 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications