Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: 2c1e4ff59eec0830bdc40ba8e10040a9e86ef339 https://github.com/Perl/perl5/commit/2c1e4ff59eec0830bdc40ba8e10040a9e86ef339 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 1cdc020324c503b4447fa0c6b10c7b344bf4174c https://github.com/Perl/perl5/commit/1cdc020324c503b4447fa0c6b10c7b344bf4174c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: b7d962c73b68ad3456da1c63ecad622fee0ec4ed https://github.com/Perl/perl5/commit/b7d962c73b68ad3456da1c63ecad622fee0ec4ed Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm Log Message: ----------- BlackBox dont use rare scripts Commit: 07324230b69aa387a6527377931d643ff47fb958 https://github.com/Perl/perl5/commit/07324230b69aa387a6527377931d643ff47fb958 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/harness Log Message: ----------- XXX t/harness temp tweaks Commit: 0519f2de7e462d4e1bc49eef90f8522046f8c9de https://github.com/Perl/perl5/commit/0519f2de7e462d4e1bc49eef90f8522046f8c9de Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: 4e2d805c0c82ef71caffdb27e564267bb33c6b82 https://github.com/Perl/perl5/commit/4e2d805c0c82ef71caffdb27e564267bb33c6b82 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: 789758d3f06b0bfc839b9f8a8a37b25f150c7b1b https://github.com/Perl/perl5/commit/789758d3f06b0bfc839b9f8a8a37b25f150c7b1b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- Revert "skip bincompat.t" This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c. Commit: 0736a5ae59e802de030bc2ab45163bff9508b926 https://github.com/Perl/perl5/commit/0736a5ae59e802de030bc2ab45163bff9508b926 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/TEST Log Message: ----------- Skip cpan testing message Commit: ad50e157aff320eb213404b49bbfbb574dcf6e43 https://github.com/Perl/perl5/commit/ad50e157aff320eb213404b49bbfbb574dcf6e43 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- runconfigure: only usequery with that directory Commit: 98258eeff8d0f8af3b280e980e8057fc0e5c86a7 https://github.com/Perl/perl5/commit/98258eeff8d0f8af3b280e980e8057fc0e5c86a7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/TEST Log Message: ----------- Also skip non-thread dist testing Commit: 693a90bdb97fdb1df67cb2f995f46541dad0e0d1 https://github.com/Perl/perl5/commit/693a90bdb97fdb1df67cb2f995f46541dad0e0d1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: 5b36bfd82bb1bad2986e492bb3a8f35677a9630a https://github.com/Perl/perl5/commit/5b36bfd82bb1bad2986e492bb3a8f35677a9630a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: de3472e9d1b579f3af5369006012d8af8ac9bf26 https://github.com/Perl/perl5/commit/de3472e9d1b579f3af5369006012d8af8ac9bf26 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 55172d8dd5135fcf785dbadd41536f9b89367dac https://github.com/Perl/perl5/commit/55172d8dd5135fcf785dbadd41536f9b89367dac Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: bf6bed91b8fa710598058023ec3a3de9675aecd0 https://github.com/Perl/perl5/commit/bf6bed91b8fa710598058023ec3a3de9675aecd0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 4ac0c95c92b3754882d28df4753fd454f031d753 https://github.com/Perl/perl5/commit/4ac0c95c92b3754882d28df4753fd454f031d753 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: 810676f415cd3d168343871897d1babb6f9e21b7 https://github.com/Perl/perl5/commit/810676f415cd3d168343871897d1babb6f9e21b7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: cafab6d7b45225c06df7178ee8cf2ada54da0ba3 https://github.com/Perl/perl5/commit/cafab6d7b45225c06df7178ee8cf2ada54da0ba3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: 552c47fd63c5f251945c31e2d1ea542dd08c982b https://github.com/Perl/perl5/commit/552c47fd63c5f251945c31e2d1ea542dd08c982b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: c7c78b0f64ccc608001a684efac42ab42894fd5d https://github.com/Perl/perl5/commit/c7c78b0f64ccc608001a684efac42ab42894fd5d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 2eacc103ce0319aa39ebb74e06ed2efd175c4f70 https://github.com/Perl/perl5/commit/2eacc103ce0319aa39ebb74e06ed2efd175c4f70 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: dad12d8236ce04ed003db70edb48519e589953ed https://github.com/Perl/perl5/commit/dad12d8236ce04ed003db70edb48519e589953ed Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 9ab4c57249a34e3867afb0b2498d41481e8346c5 https://github.com/Perl/perl5/commit/9ab4c57249a34e3867afb0b2498d41481e8346c5 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: Allow undef LC_ALL Commit: 4203e55b42970b955199e3285112c000bb54a3a9 https://github.com/Perl/perl5/commit/4203e55b42970b955199e3285112c000bb54a3a9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: c31140ac4910d83432ab7f652ace58ea0bb1e7f6 https://github.com/Perl/perl5/commit/c31140ac4910d83432ab7f652ace58ea0bb1e7f6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 316f6ed9d98351467313aab9d4793451c1973a8c https://github.com/Perl/perl5/commit/316f6ed9d98351467313aab9d4793451c1973a8c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 62cffb9d3f3a5450faaf80a7e8e92f46ecab8197 https://github.com/Perl/perl5/commit/62cffb9d3f3a5450faaf80a7e8e92f46ecab8197 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 2f987d33878a3e1dccf6aeb40c58c700a022dd0d https://github.com/Perl/perl5/commit/2f987d33878a3e1dccf6aeb40c58c700a022dd0d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 8211eddc256db2c9795590e0537eae713db36696 https://github.com/Perl/perl5/commit/8211eddc256db2c9795590e0537eae713db36696 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: d0063c5c70a6bf1e4a6344ce17f9593899e56949 https://github.com/Perl/perl5/commit/d0063c5c70a6bf1e4a6344ce17f9593899e56949 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: 597c179f1062a1f0783fbab789d19ada91069aa4 https://github.com/Perl/perl5/commit/597c179f1062a1f0783fbab789d19ada91069aa4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads.xs DEBUG_U Commit: 63ff2996a68faa213717a9c9ca3dc1d87b3260ae https://github.com/Perl/perl5/commit/63ff2996a68faa213717a9c9ca3dc1d87b3260ae Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: 8ab6ae4edfc6b88179b29eab54ba38f08a58a9e7 https://github.com/Perl/perl5/commit/8ab6ae4edfc6b88179b29eab54ba38f08a58a9e7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: 8b2ef555dd4c1b03475218c1bbeedc685c01e246 https://github.com/Perl/perl5/commit/8b2ef555dd4c1b03475218c1bbeedc685c01e246 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: 92ad03afea6137981e6f7029472f1184bf42b47b https://github.com/Perl/perl5/commit/92ad03afea6137981e6f7029472f1184bf42b47b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: 92bf7b23b8d804e1d81e9d79099fea561cad32ed https://github.com/Perl/perl5/commit/92bf7b23b8d804e1d81e9d79099fea561cad32ed Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 9fec151e35278ef6e3782f284d2340b0660fe945 https://github.com/Perl/perl5/commit/9fec151e35278ef6e3782f284d2340b0660fe945 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M cpan/version/t/07locale.t Log Message: ----------- cpan/version/07locale.t: drop, bug have to recompute md5 Commit: efd910dcfc487b57ee4423b2d81087d65681fcf2 https://github.com/Perl/perl5/commit/efd910dcfc487b57ee4423b2d81087d65681fcf2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat Commit: 366594a31621a0a0247b0cc0d90735188f91f175 https://github.com/Perl/perl5/commit/366594a31621a0a0247b0cc0d90735188f91f175 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: XXX Debug Commit: 7ce753ca6b01da1a80060c4e8bbb246f38d8ee91 https://github.com/Perl/perl5/commit/7ce753ca6b01da1a80060c4e8bbb246f38d8ee91 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- S_querylocale_2008_i: Add entry assertion Commit: ca7acd0c77858988f6f4fe32d90e4e5888c3e7f1 https://github.com/Perl/perl5/commit/ca7acd0c77858988f6f4fe32d90e4e5888c3e7f1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_i: Add entry assertion Commit: 4fc4be634a9a7c256ea1b152ad6272117d613e90 https://github.com/Perl/perl5/commit/4fc4be634a9a7c256ea1b152ad6272117d613e90 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: 590beb3e19e192eb3ec26a851771a0cc742846ef https://github.com/Perl/perl5/commit/590beb3e19e192eb3ec26a851771a0cc742846ef Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: ab9fe1b89ea555ab79bf46ab824d078e47f45ae6 https://github.com/Perl/perl5/commit/ab9fe1b89ea555ab79bf46ab824d078e47f45ae6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pp.c Log Message: ----------- pp_study: Add memory use debugging Commit: 34d6840080340f956a740fc67914006a4751c826 https://github.com/Perl/perl5/commit/34d6840080340f956a740fc67914006a4751c826 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pp.c Log Message: ----------- Revert "pp_study: Add memory use debugging" Commit: 7041614a395a3cca2161a1559ff3496a5263677b https://github.com/Perl/perl5/commit/7041614a395a3cca2161a1559ff3496a5263677b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin Commit: c72e9a254c1ae56d5306b93c4ad12a4130281383 https://github.com/Perl/perl5/commit/c72e9a254c1ae56d5306b93c4ad12a4130281383 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 5b1e11c3a5c50954f2feb4cc218e4b2b19aa9653 https://github.com/Perl/perl5/commit/5b1e11c3a5c50954f2feb4cc218e4b2b19aa9653 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: debug Commit: 74e7ac05c6514362c13414e6c727f239e5ac2dde https://github.com/Perl/perl5/commit/74e7ac05c6514362c13414e6c727f239e5ac2dde Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: add a commented out yield Commit: e35b7c4e118be7c2d2629aa958e753f1ede5aa79 https://github.com/Perl/perl5/commit/e35b7c4e118be7c2d2629aa958e753f1ede5aa79 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: debugging Commit: 950dca1f53ea72aa9bfd0ef40220c25b91e22269 https://github.com/Perl/perl5/commit/950dca1f53ea72aa9bfd0ef40220c25b91e22269 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 806a95274368153d5ad0cb81df2b82ca1df54d8d https://github.com/Perl/perl5/commit/806a95274368153d5ad0cb81df2b82ca1df54d8d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 426299c6fa626ba9c7cef0f9fcacf1a1ee115abb https://github.com/Perl/perl5/commit/426299c6fa626ba9c7cef0f9fcacf1a1ee115abb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: f8f59a95eb22c511b7a5dc56abc225cd19e0152b https://github.com/Perl/perl5/commit/f8f59a95eb22c511b7a5dc56abc225cd19e0152b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M thread.h Log Message: ----------- thread.h: White space only Indent some nested preproccessor defines Commit: 14781c93f014db5516cca8fa2890213652977f72 https://github.com/Perl/perl5/commit/14781c93f014db5516cca8fa2890213652977f72 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 02befff437a5bfc09b87e9b4e1457f1a7ff89f85 https://github.com/Perl/perl5/commit/02befff437a5bfc09b87e9b4e1457f1a7ff89f85 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- XXX Time::Piece strftime Commit: 78ae1de735987ac444ad2c06fc132199905523e2 https://github.com/Perl/perl5/commit/78ae1de735987ac444ad2c06fc132199905523e2 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: notes to myself Commit: ef406b52545546742d78a4907329adc4620058ae https://github.com/Perl/perl5/commit/ef406b52545546742d78a4907329adc4620058ae Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M cpan/Time-Piece/Piece.pm M t/porting/customized.dat Log Message: ----------- Time-Piece Commit: 3ae8a790b25c02cb4feffef680ba87dc7551e3b6 https://github.com/Perl/perl5/commit/3ae8a790b25c02cb4feffef680ba87dc7551e3b6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M util.c M win32/perlhost.h Log Message: ----------- XXX Win32 mem log Commit: 8e84b21834233a60d893e5e3650cc92de237eae7 https://github.com/Perl/perl5/commit/8e84b21834233a60d893e5e3650cc92de237eae7 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M util.c Log Message: ----------- XXX util add thread to mem_log Commit: c3cd7d3e95efeda4c62a3a9b7df8e84360f027e9 https://github.com/Perl/perl5/commit/c3cd7d3e95efeda4c62a3a9b7df8e84360f027e9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- Debug wrap wset Commit: 910779109abafacb2a3cf27167a448c85c593646 https://github.com/Perl/perl5/commit/910779109abafacb2a3cf27167a448c85c593646 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: 9b41ba2c31a28def59b2eb4f52753f906b8414e6 https://github.com/Perl/perl5/commit/9b41ba2c31a28def59b2eb4f52753f906b8414e6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: 79eaaf4bdac82668e58cfb69f044e56a87365d98 https://github.com/Perl/perl5/commit/79eaaf4bdac82668e58cfb69f044e56a87365d98 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: 3e735510663e8c4c10819bb421c0c00e580b5ddd https://github.com/Perl/perl5/commit/3e735510663e8c4c10819bb421c0c00e580b5ddd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: 73979c311eb3354f670e84ca5200bf39eac5d5a6 https://github.com/Perl/perl5/commit/73979c311eb3354f670e84ca5200bf39eac5d5a6 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: 21ec4cf4cdce2d81a9d6eae0dcf68ab43a825b49 https://github.com/Perl/perl5/commit/21ec4cf4cdce2d81a9d6eae0dcf68ab43a825b49 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M win32/config_H.gc M win32/config_h.PL M win32/config_sh.PL Log Message: ----------- XXX config Commit: 1f3f7a343041315e38a3fb47d98f99fa09ab29eb https://github.com/Perl/perl5/commit/1f3f7a343041315e38a3fb47d98f99fa09ab29eb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pod/perlembed.pod Log Message: ----------- f perlembed Commit: b3c88126aaea4fb5183cea35d676ab13b19116f9 https://github.com/Perl/perl5/commit/b3c88126aaea4fb5183cea35d676ab13b19116f9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 04dde4f65f502291f7f4548693d8a9fa610e7e54 https://github.com/Perl/perl5/commit/04dde4f65f502291f7f4548693d8a9fa610e7e54 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 10ce782b41ef7964f3a78886b06d38e9d8781b40 https://github.com/Perl/perl5/commit/10ce782b41ef7964f3a78886b06d38e9d8781b40 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M pp.c Log Message: ----------- pp_study: hook Commit: 8a231997b0fbcea97b07ebbbdd691c29dac0caa8 https://github.com/Perl/perl5/commit/8a231997b0fbcea97b07ebbbdd691c29dac0caa8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t: Cope with no LC_ALL Commit: 10ea04f76ce3e73fbeeb9841144ae733f5395320 https://github.com/Perl/perl5/commit/10ea04f76ce3e73fbeeb9841144ae733f5395320 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 711bf018f8271374beb27228ad9b5412c4b9aa76 https://github.com/Perl/perl5/commit/711bf018f8271374beb27228ad9b5412c4b9aa76 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 2afa3c1e0285f26da1de8d5f32507cc6682067ad https://github.com/Perl/perl5/commit/2afa3c1e0285f26da1de8d5f32507cc6682067ad Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 873c01e07eec824cb57797d04051523a9c78e053 https://github.com/Perl/perl5/commit/873c01e07eec824cb57797d04051523a9c78e053 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: f7f76cdacbb96c73c10f3110e4b40c57182707da https://github.com/Perl/perl5/commit/f7f76cdacbb96c73c10f3110e4b40c57182707da Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: a8a797baecb2c64d29840f690164715dcdddc3c9 https://github.com/Perl/perl5/commit/a8a797baecb2c64d29840f690164715dcdddc3c9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 957f22721fe6aafd04d1926c1b2f35fac239e3c9 https://github.com/Perl/perl5/commit/957f22721fe6aafd04d1926c1b2f35fac239e3c9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: f18e7a32dfb5b482684276763e1e3d3963b0629b https://github.com/Perl/perl5/commit/f18e7a32dfb5b482684276763e1e3d3963b0629b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- Revert "t/run/locale.t: Add test" This reverts commit 28b41f6baf95fe40466e5ee3e349550c7c4e85ee. Commit: f509ba81e2476309324d83530a2cf19d0939ae8f https://github.com/Perl/perl5/commit/f509ba81e2476309324d83530a2cf19d0939ae8f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Cope with no LC_ALL Commit: 953b320b2229eda9e8d1e0c9086c5eb2d24fd945 https://github.com/Perl/perl5/commit/953b320b2229eda9e8d1e0c9086c5eb2d24fd945 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Commit: e7b151f44ee50006d66bbce2415591e9fe66c47e https://github.com/Perl/perl5/commit/e7b151f44ee50006d66bbce2415591e9fe66c47e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: a35f45db97ffbdba94531a633ad426ec21bd7273 https://github.com/Perl/perl5/commit/a35f45db97ffbdba94531a633ad426ec21bd7273 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- C_thous better ifdef Commit: 65c97d7d5722241bce7d1e2c3ebfc8b179f99e49 https://github.com/Perl/perl5/commit/65c97d7d5722241bce7d1e2c3ebfc8b179f99e49 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: e36e9a4f7889f5f5ab416ea94e0f20904e615dae https://github.com/Perl/perl5/commit/e36e9a4f7889f5f5ab416ea94e0f20904e615dae Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loctools use if dumper Commit: 045e283d798545c556ca23825b2c3b28ac19e96a https://github.com/Perl/perl5/commit/045e283d798545c556ca23825b2c3b28ac19e96a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M ext/POSIX/lib/POSIX.pod Log Message: ----------- start of pod for localeconv Commit: 5640ba28d5f9ad5a2e89a9ee1460a56bcc1ee23e https://github.com/Perl/perl5/commit/5640ba28d5f9ad5a2e89a9ee1460a56bcc1ee23e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 8dda3978cae3195fe5c370ee7aec0869c2495615 https://github.com/Perl/perl5/commit/8dda3978cae3195fe5c370ee7aec0869c2495615 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- debug populate localeconv Commit: f0185be796edf0ed637f361d3b4246c19ad7830b https://github.com/Perl/perl5/commit/f0185be796edf0ed637f361d3b4246c19ad7830b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- debug thread xs Commit: 40458426751ff320be03c46c0873f7639b45cdbe https://github.com/Perl/perl5/commit/40458426751ff320be03c46c0873f7639b45cdbe Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Add debugging info Commit: a49f0ab3100dbdfeca806a132858c5d617205b73 https://github.com/Perl/perl5/commit/a49f0ab3100dbdfeca806a132858c5d617205b73 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Cope with no LC_CTYPE Commit: 4295edb4c52a9231f1bfe678f43e17d173ab2740 https://github.com/Perl/perl5/commit/4295edb4c52a9231f1bfe678f43e17d173ab2740 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 07c38560a833b4705a92a86c6bd26cec3fc3b17a https://github.com/Perl/perl5/commit/07c38560a833b4705a92a86c6bd26cec3fc3b17a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Call newSVpvz() Commit: cf4fd8bd069105a4085e33bf012d120dbadba3de https://github.com/Perl/perl5/commit/cf4fd8bd069105a4085e33bf012d120dbadba3de Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: fa943501e5c2ebf7683f0446676d84892860d881 https://github.com/Perl/perl5/commit/fa943501e5c2ebf7683f0446676d84892860d881 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: ed4f4b641413cb5488f04ae460a3d09ab1617997 https://github.com/Perl/perl5/commit/ed4f4b641413cb5488f04ae460a3d09ab1617997 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- Move ENV defns Commit: 91602458d7d5559084ce814fd05109c49e3dce7d https://github.com/Perl/perl5/commit/91602458d7d5559084ce814fd05109c49e3dce7d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: bbb7cc7648a84d883509360196be8604c5e35e0d https://github.com/Perl/perl5/commit/bbb7cc7648a84d883509360196be8604c5e35e0d Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Move things so gwLOCK definitions are adjacent Commit: 45e67884f6ae788a8c4804206bd47c3a23aa0522 https://github.com/Perl/perl5/commit/45e67884f6ae788a8c4804206bd47c3a23aa0522 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: c4ed141d9fd541d1c0e37473a6a2d09e17be3c7a https://github.com/Perl/perl5/commit/c4ed141d9fd541d1c0e37473a6a2d09e17be3c7a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 4600d45e149faaf373588d3e0202a6753725c589 https://github.com/Perl/perl5/commit/4600d45e149faaf373588d3e0202a6753725c589 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: fdaf311e27d514822690ef00c44e3676b3884dc1 https://github.com/Perl/perl5/commit/fdaf311e27d514822690ef00c44e3676b3884dc1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 57b2465bf3cb3f9a02eed506400da13414e69652 https://github.com/Perl/perl5/commit/57b2465bf3cb3f9a02eed506400da13414e69652 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 53662e58002c9b4a3aea4031a183ef16596c030e https://github.com/Perl/perl5/commit/53662e58002c9b4a3aea4031a183ef16596c030e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 94babbedacd7116fe540f4d3da3f5f68658ca1a1 https://github.com/Perl/perl5/commit/94babbedacd7116fe540f4d3da3f5f68658ca1a1 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- mv reent unlock Commit: 5c867a45ab2b48a91a69c3d09be372428c5b090f https://github.com/Perl/perl5/commit/5c867a45ab2b48a91a69c3d09be372428c5b090f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h: debugging new read lock Commit: 2646925315354793317325a704dc9080944c72b3 https://github.com/Perl/perl5/commit/2646925315354793317325a704dc9080944c72b3 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- debug locks Commit: 22c8432bc0f7049626a0790dcebc2c1ed9f25c88 https://github.com/Perl/perl5/commit/22c8432bc0f7049626a0790dcebc2c1ed9f25c88 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: 4f02a662917e647773d58531f882f64f3405c0cf https://github.com/Perl/perl5/commit/4f02a662917e647773d58531f882f64f3405c0cf Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- env read Commit: 6418118b328b24b6b92dcbed954f4b9639c6f0cb https://github.com/Perl/perl5/commit/6418118b328b24b6b92dcbed954f4b9639c6f0cb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h white space in ENV READ LOCK defn Commit: 5bdd8119105dedb460ec7d54c8a3c0b8fab6a8b8 https://github.com/Perl/perl5/commit/5bdd8119105dedb460ec7d54c8a3c0b8fab6a8b8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- locale read lock Commit: e59b4ce32635cc85407c9fe2163136f6db54f69e https://github.com/Perl/perl5/commit/e59b4ce32635cc85407c9fe2163136f6db54f69e Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 Mar 2024) Changed paths: M perl.h Log Message: ----------- perl.h deadlock comments Commit: b1f4babf960276fbae73cc635a1fbee185789ba8 https://github.com/Perl/perl5/commit/b1f4babf960276fbae73cc635a1fbee185789ba8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-21 (Thu, 21 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: cfa77c89a392b88161838299a525b21fcdce536a https://github.com/Perl/perl5/commit/cfa77c89a392b88161838299a525b21fcdce536a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: c1efc996fbeae862f946c5526a0845af4849448a https://github.com/Perl/perl5/commit/c1efc996fbeae862f946c5526a0845af4849448a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 716d1d47923e735c3b96366466e22a491da80139 https://github.com/Perl/perl5/commit/716d1d47923e735c3b96366466e22a491da80139 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M win32/win32.c Log Message: ----------- win32.c: Wrap putenv with ENV_LOCK Commit: dcc66102f356da57535abcde08f47c809b8db7f5 https://github.com/Perl/perl5/commit/dcc66102f356da57535abcde08f47c809b8db7f5 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M pp_sys.c Log Message: ----------- pp_sys: Add locks around some calls Commit: b8996904a5eed1cb5df646322544ba6cdce57710 https://github.com/Perl/perl5/commit/b8996904a5eed1cb5df646322544ba6cdce57710 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M doio.c Log Message: ----------- doio: Wrap functions with mutexes Commit: b074f0ece3512cad32557c9d6cce997a89e481eb https://github.com/Perl/perl5/commit/b074f0ece3512cad32557c9d6cce997a89e481eb Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M perl.c Log Message: ----------- perl.c: Wrap functions with mutexes Commit: 94431f96ebeea7fe0e338ee18b429d9050e188b0 https://github.com/Perl/perl5/commit/94431f96ebeea7fe0e338ee18b429d9050e188b0 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M mg.c M perl.c Log Message: ----------- sysconf lock Commit: 638ae1f0d1b08f767d30021463a983af989b56c9 https://github.com/Perl/perl5/commit/638ae1f0d1b08f767d30021463a983af989b56c9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs Log Message: ----------- posix.xs sysconf comment Commit: 5ae06e4274ba8c6c3f490e07399733a389c7569f https://github.com/Perl/perl5/commit/5ae06e4274ba8c6c3f490e07399733a389c7569f Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 86238d276c5077a5a8f734a72af40731b781a645 https://github.com/Perl/perl5/commit/86238d276c5077a5a8f734a72af40731b781a645 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c move gwLOCK defn; maybe leave in perl? Commit: 738da40353948de620922b72bc673feba1487d93 https://github.com/Perl/perl5/commit/738da40353948de620922b72bc673feba1487d93 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 7422104848d2cf4b5608bce86784a3e5767eca76 https://github.com/Perl/perl5/commit/7422104848d2cf4b5608bce86784a3e5767eca76 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- maybe emul Commit: 699d5c261244ccdf63084aa389d7fc60f132ceef https://github.com/Perl/perl5/commit/699d5c261244ccdf63084aa389d7fc60f132ceef Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M embedvar.h M intrpvar.h M locale.c M makedef.pl M sv.c Log Message: ----------- more maybe Commit: 2976ebe7653c275790b9edc5a8db4bf7cc54abc8 https://github.com/Perl/perl5/commit/2976ebe7653c275790b9edc5a8db4bf7cc54abc8 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: 67559bd6ddfa98fecad378fe2b2b2ba40d85eaa9 https://github.com/Perl/perl5/commit/67559bd6ddfa98fecad378fe2b2b2ba40d85eaa9 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: 5dbe6eb114b000cc19810d86a7696f77f369df76 https://github.com/Perl/perl5/commit/5dbe6eb114b000cc19810d86a7696f77f369df76 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- Make numeric standard inconsistent Commit: ceee93fa9f832924b263b7337db8ed9589855f04 https://github.com/Perl/perl5/commit/ceee93fa9f832924b263b7337db8ed9589855f04 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 292fec69f1f9289ac6afaf6505c61650f435276b https://github.com/Perl/perl5/commit/292fec69f1f9289ac6afaf6505c61650f435276b Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 3b3224891b9c379bb87e1458837eda1f5c9c9809 https://github.com/Perl/perl5/commit/3b3224891b9c379bb87e1458837eda1f5c9c9809 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 44c4b618e49be99578886fde6f1858e051aeb57a https://github.com/Perl/perl5/commit/44c4b618e49be99578886fde6f1858e051aeb57a Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- DEBUG Lv to U Commit: d1ac3a90a49a22527ded6228745554776188bb42 https://github.com/Perl/perl5/commit/d1ac3a90a49a22527ded6228745554776188bb42 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- extra debug Commit: d76b5e614551d9ab41304d3531cc507b7417a4f4 https://github.com/Perl/perl5/commit/d76b5e614551d9ab41304d3531cc507b7417a4f4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Maybe comment' Commit: 2de6bb9203d09e034aa63954df2cd4d6e0684b40 https://github.com/Perl/perl5/commit/2de6bb9203d09e034aa63954df2cd4d6e0684b40 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: bd5fc47a8ec05e8f731e6623cc681f59823470af https://github.com/Perl/perl5/commit/bd5fc47a8ec05e8f731e6623cc681f59823470af Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- Debug uselocale Commit: bb66fd41169c3067de9cee95642e74c7a01c314c https://github.com/Perl/perl5/commit/bb66fd41169c3067de9cee95642e74c7a01c314c Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M sv.c Log Message: ----------- sv.c need to check for pv in sv in sv_setpvf Commit: 22b3628591b4a988cbc815b4c5da663502b30d50 https://github.com/Perl/perl5/commit/22b3628591b4a988cbc815b4c5da663502b30d50 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M sv.c Log Message: ----------- sv Commit: 8617aeb2ec93abc44e46e108dad23b7815caa215 https://github.com/Perl/perl5/commit/8617aeb2ec93abc44e46e108dad23b7815caa215 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- immediate use Commit: 3237f834ec1b4c39d81a37e16fc32ccab897cf14 https://github.com/Perl/perl5/commit/3237f834ec1b4c39d81a37e16fc32ccab897cf14 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- more immed Commit: 0fcc4a251580d62707f473d54cf3f6ec73b8a181 https://github.com/Perl/perl5/commit/0fcc4a251580d62707f473d54cf3f6ec73b8a181 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- Revert "more immed" This reverts commit 7213d12415bbd16283e624ea64f633e9abd2be48. Commit: 75d2b88dd95421c5736ac53b7dbe626bb8fb3110 https://github.com/Perl/perl5/commit/75d2b88dd95421c5736ac53b7dbe626bb8fb3110 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Comments, white space Commit: c8a3e5041a180eadde9048fefa0dee9578de86e4 https://github.com/Perl/perl5/commit/c8a3e5041a180eadde9048fefa0dee9578de86e4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: f48c4cf8b586cc0d2eec9cb304d66f0869198af4 https://github.com/Perl/perl5/commit/f48c4cf8b586cc0d2eec9cb304d66f0869198af4 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- start of shortening bad utf8 strerror Commit: 3f667382c3c10bfda7f7dd25ab9b79d64a4994ae https://github.com/Perl/perl5/commit/3f667382c3c10bfda7f7dd25ab9b79d64a4994ae Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- Revert "start of shortening bad utf8 strerror" This reverts commit 042cf1f20203857936fe147213f9af1c30e76188. Commit: b2e8626f648f5efe58f424887cd6712e26bd63ad https://github.com/Perl/perl5/commit/b2e8626f648f5efe58f424887cd6712e26bd63ad Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 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: 19fdb15428a1e2ec380da16ef823fed12b63fe19 https://github.com/Perl/perl5/commit/19fdb15428a1e2ec380da16ef823fed12b63fe19 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M locale.c Log Message: ----------- locale.c: wrap wcrtomb() calls with mutex lock Commit: 774ceddf8b96a9b22073b2f9feacaf4bc5783401 https://github.com/Perl/perl5/commit/774ceddf8b96a9b22073b2f9feacaf4bc5783401 Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M pp_sys.c Log Message: ----------- XXX ? pp_sys grent etc LOCKS Commit: 23de41b1489d3fb30a4c44ada7d243d164a7d3cf https://github.com/Perl/perl5/commit/23de41b1489d3fb30a4c44ada7d243d164a7d3cf Author: Karl Williamson <k...@cpan.org> Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M ext/POSIX/POSIX.xs M iperlsys.h M locale.c Log Message: ----------- final Commit: 3d22e17edb76296fc6805eb9f6974963ad16e2dd https://github.com/Perl/perl5/commit/3d22e17edb76296fc6805eb9f6974963ad16e2dd Author: Karl Williamson <k...@cpan.org> Date: 2024-03-24 (Sun, 24 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 Compare: https://github.com/Perl/perl5/compare/e324ecf91e12...3d22e17edb76 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications