Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: c11afdbc91d680645229bf66cc2118a93aa8a8fd https://github.com/Perl/perl5/commit/c11afdbc91d680645229bf66cc2118a93aa8a8fd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 07ffafe2b49e09fdefb43ed6f55af5a5a5e8c4be https://github.com/Perl/perl5/commit/07ffafe2b49e09fdefb43ed6f55af5a5a5e8c4be Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: f3f418098df0ce6d8083b57c8be668aa4e94a56c https://github.com/Perl/perl5/commit/f3f418098df0ce6d8083b57c8be668aa4e94a56c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm Log Message: ----------- BlackBox dont use rare scripts Commit: cddc981158d776aa4590fc18c627c2978bdc7d41 https://github.com/Perl/perl5/commit/cddc981158d776aa4590fc18c627c2978bdc7d41 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/harness Log Message: ----------- XXX t/harness temp tweaks Commit: 5b074092f24434eebc856ad54246b5c74c34931a https://github.com/Perl/perl5/commit/5b074092f24434eebc856ad54246b5c74c34931a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: fa5bf606ec206af209d7693206b8e8abec6d10d8 https://github.com/Perl/perl5/commit/fa5bf606ec206af209d7693206b8e8abec6d10d8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: 8a6e9f7268acf519f9a35010dc247e632db0c9ed https://github.com/Perl/perl5/commit/8a6e9f7268acf519f9a35010dc247e632db0c9ed Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- Revert "skip bincompat.t" This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c. Commit: 1df2a73705835c2f5f14e1cf47eb62c07d2782cf https://github.com/Perl/perl5/commit/1df2a73705835c2f5f14e1cf47eb62c07d2782cf Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/TEST Log Message: ----------- Skip cpan testing message Commit: d625df97125a6b0cb4c43ef6f09f539b64b7f49d https://github.com/Perl/perl5/commit/d625df97125a6b0cb4c43ef6f09f539b64b7f49d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/TEST Log Message: ----------- Also skip non-thread dist testing Commit: 5cad8684352dcb48bcc2c75e8da5dc84c9c3cdfb https://github.com/Perl/perl5/commit/5cad8684352dcb48bcc2c75e8da5dc84c9c3cdfb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: c6a0354b8c85b6141740c9c45b20820b420be02a https://github.com/Perl/perl5/commit/c6a0354b8c85b6141740c9c45b20820b420be02a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: d91592269db67645281fbadf42ef345d91efcff8 https://github.com/Perl/perl5/commit/d91592269db67645281fbadf42ef345d91efcff8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: a08fd1cccada7d1f21a6d4cef192d21e9d5fc84e https://github.com/Perl/perl5/commit/a08fd1cccada7d1f21a6d4cef192d21e9d5fc84e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 7f9123de0f4c35cdd555b60452abeea2cb184376 https://github.com/Perl/perl5/commit/7f9123de0f4c35cdd555b60452abeea2cb184376 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: c0395c7dac063f271732c820337f3c9a17b26474 https://github.com/Perl/perl5/commit/c0395c7dac063f271732c820337f3c9a17b26474 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: 46d853b91e1b2c331477d2119e0360d22c82d780 https://github.com/Perl/perl5/commit/46d853b91e1b2c331477d2119e0360d22c82d780 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: e9af284222054c9050ae7a076f5806b2e054aa29 https://github.com/Perl/perl5/commit/e9af284222054c9050ae7a076f5806b2e054aa29 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: 8fa96864f8ed4d343fea61f2226fe2924f26b251 https://github.com/Perl/perl5/commit/8fa96864f8ed4d343fea61f2226fe2924f26b251 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: 99e27f59f0e987ea3a09d1b940c309f74477e648 https://github.com/Perl/perl5/commit/99e27f59f0e987ea3a09d1b940c309f74477e648 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 5ac26f6df94b3fd2440f525e553d8483c7e4b0c0 https://github.com/Perl/perl5/commit/5ac26f6df94b3fd2440f525e553d8483c7e4b0c0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 659e59eabd5d58eac263c898cf1a31b8879deaba https://github.com/Perl/perl5/commit/659e59eabd5d58eac263c898cf1a31b8879deaba Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: aa0b50436f2ebfbf5f8cc7ed3dda00da41360604 https://github.com/Perl/perl5/commit/aa0b50436f2ebfbf5f8cc7ed3dda00da41360604 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: Allow undef LC_ALL Commit: e256191edaeac974950441452ad4d2b2e188aca1 https://github.com/Perl/perl5/commit/e256191edaeac974950441452ad4d2b2e188aca1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: 8c7362bd4a590a85378496964434530e7c676b6d https://github.com/Perl/perl5/commit/8c7362bd4a590a85378496964434530e7c676b6d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: be2a1f27b23863be25ab0c439f94978a47fbcf92 https://github.com/Perl/perl5/commit/be2a1f27b23863be25ab0c439f94978a47fbcf92 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 1a948875005fe81005ed644dd276fac8df1b5eb0 https://github.com/Perl/perl5/commit/1a948875005fe81005ed644dd276fac8df1b5eb0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: c1f80dd8a15cd54f85e319492d82567947553800 https://github.com/Perl/perl5/commit/c1f80dd8a15cd54f85e319492d82567947553800 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 84c47b75701718408b6b21a8c1c004d1a334554e https://github.com/Perl/perl5/commit/84c47b75701718408b6b21a8c1c004d1a334554e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: 81cf025d99a8b078e495637dbf5f65371d2d6de3 https://github.com/Perl/perl5/commit/81cf025d99a8b078e495637dbf5f65371d2d6de3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: 72fb29058e58e6c6e29d55aab7b1559d5a0e609c https://github.com/Perl/perl5/commit/72fb29058e58e6c6e29d55aab7b1559d5a0e609c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads.xs DEBUG_U Commit: 59c512496d5a22b289da88c18f00996b54ef1196 https://github.com/Perl/perl5/commit/59c512496d5a22b289da88c18f00996b54ef1196 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: 89e8305fb84b17deb229d63c49563b3775af50e9 https://github.com/Perl/perl5/commit/89e8305fb84b17deb229d63c49563b3775af50e9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: d9358615e1e7e6df7a18086aa332be5e9d3a6354 https://github.com/Perl/perl5/commit/d9358615e1e7e6df7a18086aa332be5e9d3a6354 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: e4f8e8c905660270f6d994e26bd488d1306fe613 https://github.com/Perl/perl5/commit/e4f8e8c905660270f6d994e26bd488d1306fe613 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: 582625dadbb1f15d4e9b8695d4c3d57ec76730ab https://github.com/Perl/perl5/commit/582625dadbb1f15d4e9b8695d4c3d57ec76730ab Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: d03d25e67ddf1be45615d93e4c61f0fdc5c20a7e https://github.com/Perl/perl5/commit/d03d25e67ddf1be45615d93e4c61f0fdc5c20a7e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M cpan/version/t/07locale.t Log Message: ----------- cpan/version/07locale.t: drop, bug have to recompute md5 Commit: de1185116fb1e431393cf3ab443e10eb877362c5 https://github.com/Perl/perl5/commit/de1185116fb1e431393cf3ab443e10eb877362c5 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat Commit: 16f3b992592d4f33989359ccaeb5eb1e15546f3c https://github.com/Perl/perl5/commit/16f3b992592d4f33989359ccaeb5eb1e15546f3c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: XXX Debug Commit: 1a1485c1205d91d4fab28afc27c454b271b68f3e https://github.com/Perl/perl5/commit/1a1485c1205d91d4fab28afc27c454b271b68f3e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- S_querylocale_2008_i: Add entry assertion Commit: 40739ab10d3603d4fa62cfc96a74199b42d72dd7 https://github.com/Perl/perl5/commit/40739ab10d3603d4fa62cfc96a74199b42d72dd7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_i: Add entry assertion Commit: cc44f9bf579c6ab9367ebcf6bb899b7051f9df5f https://github.com/Perl/perl5/commit/cc44f9bf579c6ab9367ebcf6bb899b7051f9df5f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: c4f6cc88899eab246878207840adb2e7bcd4110b https://github.com/Perl/perl5/commit/c4f6cc88899eab246878207840adb2e7bcd4110b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: 98865a22e6b8eba6bb96a44d29a9392e59f0ff0c https://github.com/Perl/perl5/commit/98865a22e6b8eba6bb96a44d29a9392e59f0ff0c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pp.c Log Message: ----------- pp_study: Add memory use debugging Commit: bc7aea7fac78b2ff9580d2566e54721317380ee7 https://github.com/Perl/perl5/commit/bc7aea7fac78b2ff9580d2566e54721317380ee7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pp.c Log Message: ----------- Revert "pp_study: Add memory use debugging" Commit: 24d91d4107ca56ffdfeada42a32925207928269d https://github.com/Perl/perl5/commit/24d91d4107ca56ffdfeada42a32925207928269d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin Commit: 896f3bd9e6cf2f8acf20c7d607592f6d2b15d4e4 https://github.com/Perl/perl5/commit/896f3bd9e6cf2f8acf20c7d607592f6d2b15d4e4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 5c5b3e3dffe4bfcdac41da5663150e6d00c17e94 https://github.com/Perl/perl5/commit/5c5b3e3dffe4bfcdac41da5663150e6d00c17e94 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: debug Commit: e1d713623585ff1337b0e4bc88620d2e31c4b0b3 https://github.com/Perl/perl5/commit/e1d713623585ff1337b0e4bc88620d2e31c4b0b3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: add a commented out yield Commit: c6e9c1534d17801dfd3aee1e72df0e669b54faa1 https://github.com/Perl/perl5/commit/c6e9c1534d17801dfd3aee1e72df0e669b54faa1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: debugging Commit: cb1b1e02e106532c5fc2f04f3702a16c0427e969 https://github.com/Perl/perl5/commit/cb1b1e02e106532c5fc2f04f3702a16c0427e969 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 8951889dc0698f6ac8812023b394ef3bc9c89054 https://github.com/Perl/perl5/commit/8951889dc0698f6ac8812023b394ef3bc9c89054 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 7af4519911bb83c0355fcc95626c2016a11ad3ad https://github.com/Perl/perl5/commit/7af4519911bb83c0355fcc95626c2016a11ad3ad Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: d52476c689fbf8d0a4dd21ecd75dd23c577fd752 https://github.com/Perl/perl5/commit/d52476c689fbf8d0a4dd21ecd75dd23c577fd752 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M thread.h Log Message: ----------- thread.h: White space only Indent some nested preproccessor defines Commit: ddb0e52c6c2a9b44a50debc89ce719adb873fb13 https://github.com/Perl/perl5/commit/ddb0e52c6c2a9b44a50debc89ce719adb873fb13 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: f23b260c2b99c2b0fadfc1bc2adf01b1ed9d34e4 https://github.com/Perl/perl5/commit/f23b260c2b99c2b0fadfc1bc2adf01b1ed9d34e4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- XXX Time::Piece strftime Commit: a01439c724cd425d1876c3bda4e75bb4fec5b1c4 https://github.com/Perl/perl5/commit/a01439c724cd425d1876c3bda4e75bb4fec5b1c4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: notes to myself Commit: 736ea4da3c59db6364048d52046b42e2f05fd40b https://github.com/Perl/perl5/commit/736ea4da3c59db6364048d52046b42e2f05fd40b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.pm M t/porting/customized.dat Log Message: ----------- Time-Piece Commit: d415c41d7333367f244c962588212478fe913fc5 https://github.com/Perl/perl5/commit/d415c41d7333367f244c962588212478fe913fc5 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M util.c M win32/perlhost.h Log Message: ----------- XXX Win32 mem log Commit: 58b9219855aae936795716aa9cb5e41c5ae88a0e https://github.com/Perl/perl5/commit/58b9219855aae936795716aa9cb5e41c5ae88a0e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M util.c Log Message: ----------- XXX util add thread to mem_log Commit: 773fabff3a66f33f5658306fe036b485e7d53170 https://github.com/Perl/perl5/commit/773fabff3a66f33f5658306fe036b485e7d53170 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- Debug wrap wset Commit: 3cd1b384f2c3477402f27df0be9e5b430fbf2888 https://github.com/Perl/perl5/commit/3cd1b384f2c3477402f27df0be9e5b430fbf2888 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: 99a516666d377777ec180970045d339401a1355a https://github.com/Perl/perl5/commit/99a516666d377777ec180970045d339401a1355a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: 8b6f14b7fa14ac100896ef6cbcdaa2d8f41e1d6a https://github.com/Perl/perl5/commit/8b6f14b7fa14ac100896ef6cbcdaa2d8f41e1d6a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: ff9b21e8308d724c583105b5ec20500431b57831 https://github.com/Perl/perl5/commit/ff9b21e8308d724c583105b5ec20500431b57831 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: 6853625951475befe0ca732861e34b4c22b59063 https://github.com/Perl/perl5/commit/6853625951475befe0ca732861e34b4c22b59063 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: b78c8319586ed6e587bc78822c92dd75739e6049 https://github.com/Perl/perl5/commit/b78c8319586ed6e587bc78822c92dd75739e6049 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M win32/config_H.gc M win32/config_h.PL M win32/config_sh.PL Log Message: ----------- XXX config Commit: aea61e50a68b736b648bdf374435c9380a41153a https://github.com/Perl/perl5/commit/aea61e50a68b736b648bdf374435c9380a41153a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pod/perlembed.pod Log Message: ----------- f perlembed Commit: f762e723fe66ee68102b8b4fef68bf79b6838dcb https://github.com/Perl/perl5/commit/f762e723fe66ee68102b8b4fef68bf79b6838dcb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 632d5403876e2cc812c2d3c42430afee246932b8 https://github.com/Perl/perl5/commit/632d5403876e2cc812c2d3c42430afee246932b8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 18974332f4db892b3ac7159f3795c6b763f926a9 https://github.com/Perl/perl5/commit/18974332f4db892b3ac7159f3795c6b763f926a9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pp.c Log Message: ----------- pp_study: hook Commit: b623ee3c51c6698a0f3e424ec59e188f3795c8c6 https://github.com/Perl/perl5/commit/b623ee3c51c6698a0f3e424ec59e188f3795c8c6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t: Cope with no LC_ALL Commit: 6c947c0c026701f92ecf2771a6029992545805b5 https://github.com/Perl/perl5/commit/6c947c0c026701f92ecf2771a6029992545805b5 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 0e5fd037ff74eebcb7b0b124787188fdaed0c6ca https://github.com/Perl/perl5/commit/0e5fd037ff74eebcb7b0b124787188fdaed0c6ca Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 5b693735a97cae5f2dc607ec05aabc02cbf439fb https://github.com/Perl/perl5/commit/5b693735a97cae5f2dc607ec05aabc02cbf439fb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: b257614161ae969c590354bcb10a93539875c5f2 https://github.com/Perl/perl5/commit/b257614161ae969c590354bcb10a93539875c5f2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 8bd43e1b9faa97a740513c70d1caf4b868c2a9cb https://github.com/Perl/perl5/commit/8bd43e1b9faa97a740513c70d1caf4b868c2a9cb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: e3d49fa48adbe9e6d3c7c2604350fca906f3eebe https://github.com/Perl/perl5/commit/e3d49fa48adbe9e6d3c7c2604350fca906f3eebe Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 692ab6de5f266995dbcabea5f8ca9e7657f4a4ff https://github.com/Perl/perl5/commit/692ab6de5f266995dbcabea5f8ca9e7657f4a4ff Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: d84c636cbef1e39437eb466e4c5143d6a42e94b8 https://github.com/Perl/perl5/commit/d84c636cbef1e39437eb466e4c5143d6a42e94b8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- Revert "t/run/locale.t: Add test" This reverts commit 28b41f6baf95fe40466e5ee3e349550c7c4e85ee. Commit: 9eb54427e8ff5ef269fb2eb0e0d5742e35f177f4 https://github.com/Perl/perl5/commit/9eb54427e8ff5ef269fb2eb0e0d5742e35f177f4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Cope with no LC_ALL Commit: c11aecfc5bcd907ae7460341020028887b92f067 https://github.com/Perl/perl5/commit/c11aecfc5bcd907ae7460341020028887b92f067 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Commit: 7340c94cde840523a09a25477cce166af09c4cee https://github.com/Perl/perl5/commit/7340c94cde840523a09a25477cce166af09c4cee Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 0d5714a1e0770fdcb071cb6d70cfe853ce5d90ea https://github.com/Perl/perl5/commit/0d5714a1e0770fdcb071cb6d70cfe853ce5d90ea Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- C_thous better ifdef Commit: 5da32d21f28d8e83a5bb6a250268445139fc5a25 https://github.com/Perl/perl5/commit/5da32d21f28d8e83a5bb6a250268445139fc5a25 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: bd7bb97d6b5c6f016c9e08f2e3b18f860336def6 https://github.com/Perl/perl5/commit/bd7bb97d6b5c6f016c9e08f2e3b18f860336def6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loctools use if dumper Commit: d91859bb5f376a4935412c95fa8439f2df2afda0 https://github.com/Perl/perl5/commit/d91859bb5f376a4935412c95fa8439f2df2afda0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M ext/POSIX/lib/POSIX.pod Log Message: ----------- start of pod for localeconv Commit: bf51a68c4ef24c4144524e51558c35ef8937c460 https://github.com/Perl/perl5/commit/bf51a68c4ef24c4144524e51558c35ef8937c460 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: c35584e232bd7bb92427b143ae3b545e3c516e7b https://github.com/Perl/perl5/commit/c35584e232bd7bb92427b143ae3b545e3c516e7b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- debug populate localeconv Commit: 5289a6c6349150863a0c149525f3dd859c426bbe https://github.com/Perl/perl5/commit/5289a6c6349150863a0c149525f3dd859c426bbe Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- debug thread xs Commit: a84eb46cc0f5518a423a71006d3813356937e6f0 https://github.com/Perl/perl5/commit/a84eb46cc0f5518a423a71006d3813356937e6f0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Add debugging info Commit: 2b2d9f2288af87ee8419e008f577dc2fc7145312 https://github.com/Perl/perl5/commit/2b2d9f2288af87ee8419e008f577dc2fc7145312 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Cope with no LC_CTYPE Commit: 9ff171c9a9587449d228a31218143b66177ebf3b https://github.com/Perl/perl5/commit/9ff171c9a9587449d228a31218143b66177ebf3b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 06fdfeb86f161cc44e1cf676ee45926c88425e23 https://github.com/Perl/perl5/commit/06fdfeb86f161cc44e1cf676ee45926c88425e23 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Call newSVpvz() Commit: 0907de032528feab37f39a053a053adddf42d9ef https://github.com/Perl/perl5/commit/0907de032528feab37f39a053a053adddf42d9ef Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: f1ee526fadaaf62f2ec52827f02f6615d707c050 https://github.com/Perl/perl5/commit/f1ee526fadaaf62f2ec52827f02f6615d707c050 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 206e89cde2f4789982a8cf960b13f2b602e9007a https://github.com/Perl/perl5/commit/206e89cde2f4789982a8cf960b13f2b602e9007a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- Move ENV defns Commit: 36b50a4c1c4fc0776950ce2e1255d1af9eb05f4f https://github.com/Perl/perl5/commit/36b50a4c1c4fc0776950ce2e1255d1af9eb05f4f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 55ad932bb7019f27c116049fc9359b8d295559d1 https://github.com/Perl/perl5/commit/55ad932bb7019f27c116049fc9359b8d295559d1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Move things so gwLOCK definitions are adjacent Commit: 602018ab3c7c01b5bb3ccfbf7dd99dbb7cfa817f https://github.com/Perl/perl5/commit/602018ab3c7c01b5bb3ccfbf7dd99dbb7cfa817f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: e7ab94b74e7807f68a7c0aaf1de387007a198df2 https://github.com/Perl/perl5/commit/e7ab94b74e7807f68a7c0aaf1de387007a198df2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 51dd2ecb0345f8a7db168fef32f0fab00d417096 https://github.com/Perl/perl5/commit/51dd2ecb0345f8a7db168fef32f0fab00d417096 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: fa03bcdf322c7400500167c0a3aa6df98deecdf8 https://github.com/Perl/perl5/commit/fa03bcdf322c7400500167c0a3aa6df98deecdf8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 910eb33dea88133110cf65cedce4fa8b3930606c https://github.com/Perl/perl5/commit/910eb33dea88133110cf65cedce4fa8b3930606c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: b4595207a7daaca9d728c1e54ad1c74d86062093 https://github.com/Perl/perl5/commit/b4595207a7daaca9d728c1e54ad1c74d86062093 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 3012f6d2f565c28405bf26674ff6f50f2d17c106 https://github.com/Perl/perl5/commit/3012f6d2f565c28405bf26674ff6f50f2d17c106 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- mv reent unlock Commit: 2d41d26e767bd5a90bb7a57cecb842b34698589f https://github.com/Perl/perl5/commit/2d41d26e767bd5a90bb7a57cecb842b34698589f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: debugging new read lock Commit: 10eb0e4445f6ddcb1e19db3b5ee8a4483f9d2d5c https://github.com/Perl/perl5/commit/10eb0e4445f6ddcb1e19db3b5ee8a4483f9d2d5c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- debug locks Commit: d47fb4622b163097d049b4813c9b51518e8d541b https://github.com/Perl/perl5/commit/d47fb4622b163097d049b4813c9b51518e8d541b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: e1646939e4f8518e21bb66d1a3c90e04feb0e918 https://github.com/Perl/perl5/commit/e1646939e4f8518e21bb66d1a3c90e04feb0e918 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- env read Commit: 660481c500b26f7f7bdc31ab06a65870b68ad08b https://github.com/Perl/perl5/commit/660481c500b26f7f7bdc31ab06a65870b68ad08b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h white space in ENV READ LOCK defn Commit: 479c64ca961eabdbc36f8ba9e927b8b538aff289 https://github.com/Perl/perl5/commit/479c64ca961eabdbc36f8ba9e927b8b538aff289 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- locale read lock Commit: e561608fdf80316036f249146af7ef34e646600c https://github.com/Perl/perl5/commit/e561608fdf80316036f249146af7ef34e646600c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h deadlock comments Commit: e4d11e44fc1f3f7ddadb3bf073ff76055d1437b8 https://github.com/Perl/perl5/commit/e4d11e44fc1f3f7ddadb3bf073ff76055d1437b8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 9b91aa0c76fdfdcb3065763230a1dbca3ccb3caa https://github.com/Perl/perl5/commit/9b91aa0c76fdfdcb3065763230a1dbca3ccb3caa Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 98a93eb2fa093c59a0bb8bea8b2101ccef5fc402 https://github.com/Perl/perl5/commit/98a93eb2fa093c59a0bb8bea8b2101ccef5fc402 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: c5aaa0509e4050427ae05b82a6f7b5e72a017497 https://github.com/Perl/perl5/commit/c5aaa0509e4050427ae05b82a6f7b5e72a017497 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M win32/win32.c Log Message: ----------- win32.c: Wrap putenv with ENV_LOCK Commit: 3d5abf2ce84bf0360f3173dd59958ea82465b4e5 https://github.com/Perl/perl5/commit/3d5abf2ce84bf0360f3173dd59958ea82465b4e5 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pp_sys.c Log Message: ----------- pp_sys: Add locks around some calls Commit: d716f9a8eb9d9214674d6d75099afb253cdd627f https://github.com/Perl/perl5/commit/d716f9a8eb9d9214674d6d75099afb253cdd627f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M doio.c Log Message: ----------- doio: Wrap functions with mutexes Commit: 11764105e9795b7c1149528e9d874552450475bd https://github.com/Perl/perl5/commit/11764105e9795b7c1149528e9d874552450475bd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.c Log Message: ----------- perl.c: Wrap functions with mutexes Commit: aad228d904fd95bb30d37e75999fd6f3fcbd33c6 https://github.com/Perl/perl5/commit/aad228d904fd95bb30d37e75999fd6f3fcbd33c6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M mg.c M perl.c Log Message: ----------- sysconf lock Commit: 9160427666dc37d1f5f8a423e4dc5b3bea27f3a6 https://github.com/Perl/perl5/commit/9160427666dc37d1f5f8a423e4dc5b3bea27f3a6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs Log Message: ----------- posix.xs sysconf comment Commit: 01255478b6d2430306543ab7bee101d8e11fc9cc https://github.com/Perl/perl5/commit/01255478b6d2430306543ab7bee101d8e11fc9cc Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 5ca595f86cc3e6b646086ddf899aae97c3d4923b https://github.com/Perl/perl5/commit/5ca595f86cc3e6b646086ddf899aae97c3d4923b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c move gwLOCK defn; maybe leave in perl? Commit: 9e410984211450ddf4ce93d19358e7c1ace5ae58 https://github.com/Perl/perl5/commit/9e410984211450ddf4ce93d19358e7c1ace5ae58 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 3dc654a15293db08b21f83976dfc47224cc6e16c https://github.com/Perl/perl5/commit/3dc654a15293db08b21f83976dfc47224cc6e16c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- maybe emul Commit: e54094b8f8026f5092d3690b6a52f41bbeab0510 https://github.com/Perl/perl5/commit/e54094b8f8026f5092d3690b6a52f41bbeab0510 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M embedvar.h M intrpvar.h M locale.c M makedef.pl M sv.c Log Message: ----------- more maybe Commit: beb6afe96a5e8d60c3f7de22ac4784d203c3a45d https://github.com/Perl/perl5/commit/beb6afe96a5e8d60c3f7de22ac4784d203c3a45d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: 5abfee912c0f983f7d1ba8eab592d902a51d984b https://github.com/Perl/perl5/commit/5abfee912c0f983f7d1ba8eab592d902a51d984b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: e21a14c5dcc03579534b5e7cf3f56854a93d9bf8 https://github.com/Perl/perl5/commit/e21a14c5dcc03579534b5e7cf3f56854a93d9bf8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- Make numeric standard inconsistent Commit: 7459f2b19cc5185d08406c5f979d625a67e93662 https://github.com/Perl/perl5/commit/7459f2b19cc5185d08406c5f979d625a67e93662 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 3a76863ab4f55569acad58eca775d70f7c4c46bd https://github.com/Perl/perl5/commit/3a76863ab4f55569acad58eca775d70f7c4c46bd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 8af6714d2ce5bec58ce6a68513a28b3d67c70c58 https://github.com/Perl/perl5/commit/8af6714d2ce5bec58ce6a68513a28b3d67c70c58 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: c09cbbd68580f9af90895c260b3459bfca317315 https://github.com/Perl/perl5/commit/c09cbbd68580f9af90895c260b3459bfca317315 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- DEBUG Lv to U Commit: 3cb6b8cc181bcdcf61035ee5069b841e3fb3d863 https://github.com/Perl/perl5/commit/3cb6b8cc181bcdcf61035ee5069b841e3fb3d863 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- extra debug Commit: c3f77bdc676473768d85574cc93b5efe15cbe139 https://github.com/Perl/perl5/commit/c3f77bdc676473768d85574cc93b5efe15cbe139 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Maybe comment' Commit: b7b6c4cca17797f19847462942de4fd96ad68cca https://github.com/Perl/perl5/commit/b7b6c4cca17797f19847462942de4fd96ad68cca Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: f6e97cd6c759f55d43d003b3ab425ed25f1ee572 https://github.com/Perl/perl5/commit/f6e97cd6c759f55d43d003b3ab425ed25f1ee572 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- Debug uselocale Commit: 6a11e957be070ea460c1e41b8b6af833bf18c4fd https://github.com/Perl/perl5/commit/6a11e957be070ea460c1e41b8b6af833bf18c4fd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M sv.c Log Message: ----------- sv.c need to check for pv in sv in sv_setpvf Commit: a630087c98ca6714bb6c6eca4558d5583a429c9e https://github.com/Perl/perl5/commit/a630087c98ca6714bb6c6eca4558d5583a429c9e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M sv.c Log Message: ----------- sv Commit: bd6f458d1dcb36d339c767fad58d2e329cb915e0 https://github.com/Perl/perl5/commit/bd6f458d1dcb36d339c767fad58d2e329cb915e0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- immediate use Commit: ea5e3fe8a0f5aa14dac37b55d3d7a8fd64906e1e https://github.com/Perl/perl5/commit/ea5e3fe8a0f5aa14dac37b55d3d7a8fd64906e1e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- more immed Commit: a9362a90c26ba967101dd29fdf4da70d7f5ec232 https://github.com/Perl/perl5/commit/a9362a90c26ba967101dd29fdf4da70d7f5ec232 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- Revert "more immed" This reverts commit 7213d12415bbd16283e624ea64f633e9abd2be48. Commit: 3f5119787f966e1484236406f13b8a3642cd1b2c https://github.com/Perl/perl5/commit/3f5119787f966e1484236406f13b8a3642cd1b2c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Comments, white space Commit: 803905e9b245a1ba5ee3b117924275df61cf7df9 https://github.com/Perl/perl5/commit/803905e9b245a1ba5ee3b117924275df61cf7df9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: cfcbf457b2f9f96ecea9f5f9b8eaa4813b00bf22 https://github.com/Perl/perl5/commit/cfcbf457b2f9f96ecea9f5f9b8eaa4813b00bf22 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- start of shortening bad utf8 strerror Commit: 38caaca597345832bdca6e0a20e642ecd05d3e08 https://github.com/Perl/perl5/commit/38caaca597345832bdca6e0a20e642ecd05d3e08 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- Revert "start of shortening bad utf8 strerror" This reverts commit 042cf1f20203857936fe147213f9af1c30e76188. Commit: 9af2c4f8573a4d3a1d41d3091e86de7fa81c5c23 https://github.com/Perl/perl5/commit/9af2c4f8573a4d3a1d41d3091e86de7fa81c5c23 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: ea9f616d2aa7f3dfe64d6ea44930a51332d7aab1 https://github.com/Perl/perl5/commit/ea9f616d2aa7f3dfe64d6ea44930a51332d7aab1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: wrap wcrtomb() calls with mutex lock Commit: a24d67108be64b96229daab1598e872bf25d444c https://github.com/Perl/perl5/commit/a24d67108be64b96229daab1598e872bf25d444c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M pp_sys.c Log Message: ----------- XXX ? pp_sys grent etc LOCKS Commit: f1dc1420bab56fd43bc51bbfb795f8f7f1aef201 https://github.com/Perl/perl5/commit/f1dc1420bab56fd43bc51bbfb795f8f7f1aef201 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs M iperlsys.h M locale.c Log Message: ----------- final Commit: 38f340a67be5a8b4757957f75b8423308d093283 https://github.com/Perl/perl5/commit/38f340a67be5a8b4757957f75b8423308d093283 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 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: 450a272540e1ec627c8b1478eb68d9aff79d5120 https://github.com/Perl/perl5/commit/450a272540e1ec627c8b1478eb68d9aff79d5120 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Update comments about strftime Commit: 045d9203e8cdac3746b0781124ba886e4aebe2d6 https://github.com/Perl/perl5/commit/045d9203e8cdac3746b0781124ba886e4aebe2d6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M lock_definitions.h Log Message: ----------- l Commit: ba16577dcb0a5cec400eeef52439c9385367d998 https://github.com/Perl/perl5/commit/ba16577dcb0a5cec400eeef52439c9385367d998 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c M lock_definitions.h M perl.h M regen/lock_definitions.pl Log Message: ----------- bar Commit: 53ece1979f8dd58db0737e62358dc3e6812b619d https://github.com/Perl/perl5/commit/53ece1979f8dd58db0737e62358dc3e6812b619d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M locale.c M sv.c Log Message: ----------- foo Commit: 0d5792869dbde8c69be458afaeaa4e5fa5d09171 https://github.com/Perl/perl5/commit/0d5792869dbde8c69be458afaeaa4e5fa5d09171 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-30 (Sat, 30 Mar 2024) Changed paths: M lock_definitions.h M perl.h M regen/lock_definitions.pl M util.c Log Message: ----------- lock Compare: https://github.com/Perl/perl5/compare/a7eb124f19a7...0d5792869dbd To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications