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