Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: d90be81df55f09d37b1fbee89abf7a002dcf8439 https://github.com/Perl/perl5/commit/d90be81df55f09d37b1fbee89abf7a002dcf8439 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: d0ca397bafbf0a8db0847118e90da523f5aca6f3 https://github.com/Perl/perl5/commit/d0ca397bafbf0a8db0847118e90da523f5aca6f3 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 511ff485ef0111ea3d06c2911ed93fee4737510d https://github.com/Perl/perl5/commit/511ff485ef0111ea3d06c2911ed93fee4737510d Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm Log Message: ----------- BlackBox dont use rare scripts Commit: 0c67280e15e6d7d3d5d3cc0de3fe1448adb33e88 https://github.com/Perl/perl5/commit/0c67280e15e6d7d3d5d3cc0de3fe1448adb33e88 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/harness Log Message: ----------- XXX t/harness temp tweaks Commit: 724021e7b01f99c1bd9c5b14818b45bc857ba4f7 https://github.com/Perl/perl5/commit/724021e7b01f99c1bd9c5b14818b45bc857ba4f7 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: b15549344a9b5a88a37803e63d47dbb637b2b904 https://github.com/Perl/perl5/commit/b15549344a9b5a88a37803e63d47dbb637b2b904 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: 198b00cb32b89aa6081f11cd74bcba18865f2050 https://github.com/Perl/perl5/commit/198b00cb32b89aa6081f11cd74bcba18865f2050 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/TEST Log Message: ----------- Skip cpan testing message Commit: 430f815ab6a2f55df1069264eec4932e2ec04f63 https://github.com/Perl/perl5/commit/430f815ab6a2f55df1069264eec4932e2ec04f63 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/TEST Log Message: ----------- Also skip non-thread dist testing Commit: ea5a6b829fc003b24afddf3bc39a7a42016a42eb https://github.com/Perl/perl5/commit/ea5a6b829fc003b24afddf3bc39a7a42016a42eb Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: 4f7e772c0a508abdbdc66b1a89cd818c176c8093 https://github.com/Perl/perl5/commit/4f7e772c0a508abdbdc66b1a89cd818c176c8093 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: 79e9658d58cc127a81aa15eba8917263e9911f57 https://github.com/Perl/perl5/commit/79e9658d58cc127a81aa15eba8917263e9911f57 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 3884aef80df297ee135ba91e8a200b76bea1c15a https://github.com/Perl/perl5/commit/3884aef80df297ee135ba91e8a200b76bea1c15a Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M dist/Tie-File/t/29a_upcopy.t Log Message: ----------- up timeout for dist/Tie-File/t/29a_upcopy.t Commit: 238a2d0b5478c280234728a931918192a970b5aa https://github.com/Perl/perl5/commit/238a2d0b5478c280234728a931918192a970b5aa Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 5ed8fdde15df9a0f0945ca34fa335a6c7183165a https://github.com/Perl/perl5/commit/5ed8fdde15df9a0f0945ca34fa335a6c7183165a Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: 8b91cc6609815b7d4e28e22fb8773c813cd8bf8b https://github.com/Perl/perl5/commit/8b91cc6609815b7d4e28e22fb8773c813cd8bf8b Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: bed049e09aa0d441679d4173ae0b19a738d99fd1 https://github.com/Perl/perl5/commit/bed049e09aa0d441679d4173ae0b19a738d99fd1 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: fa8b5813f06f04fab799cf62b16839765680ec04 https://github.com/Perl/perl5/commit/fa8b5813f06f04fab799cf62b16839765680ec04 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: 91dc66c5e2ba12871535e6cabd91d65c5df6b196 https://github.com/Perl/perl5/commit/91dc66c5e2ba12871535e6cabd91d65c5df6b196 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 101df4cf99a0b7d05d12a6a69def30d7ba8e16df https://github.com/Perl/perl5/commit/101df4cf99a0b7d05d12a6a69def30d7ba8e16df Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t prob. due to 5.38 tag issue Commit: a6fa31fd886424a5aae8596c237e0d8d4a51c375 https://github.com/Perl/perl5/commit/a6fa31fd886424a5aae8596c237e0d8d4a51c375 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: faf90299c8b82737421c0f38d062e7af369a26db https://github.com/Perl/perl5/commit/faf90299c8b82737421c0f38d062e7af369a26db Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: Allow undef LC_ALL Commit: 7a9daa39189b34f70547b54860113daebe31ec05 https://github.com/Perl/perl5/commit/7a9daa39189b34f70547b54860113daebe31ec05 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: 29e4ab775efb10696ae5c02ecacbd7267c786374 https://github.com/Perl/perl5/commit/29e4ab775efb10696ae5c02ecacbd7267c786374 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: b176f3cc5971b100b9ffbe9ad748e75d5b24a9f7 https://github.com/Perl/perl5/commit/b176f3cc5971b100b9ffbe9ad748e75d5b24a9f7 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 2546a07703edcc1ec5e8d960fb704729513a4fa5 https://github.com/Perl/perl5/commit/2546a07703edcc1ec5e8d960fb704729513a4fa5 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: f94a53ae467f0eb74592541c9c62cd491a140a4e https://github.com/Perl/perl5/commit/f94a53ae467f0eb74592541c9c62cd491a140a4e Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 34e263d8bb7b30ddec748d0c8c353bfffbdd4cb6 https://github.com/Perl/perl5/commit/34e263d8bb7b30ddec748d0c8c353bfffbdd4cb6 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: e44dec0c1831bd9ad9796145230c9229db0b0433 https://github.com/Perl/perl5/commit/e44dec0c1831bd9ad9796145230c9229db0b0433 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: 5d146958a7596ada8dfbb9b1b54351bf82bad68b https://github.com/Perl/perl5/commit/5d146958a7596ada8dfbb9b1b54351bf82bad68b Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads.xs DEBUG_U Commit: 2f8517353cce24e46f668477d64d6aa85c1315b0 https://github.com/Perl/perl5/commit/2f8517353cce24e46f668477d64d6aa85c1315b0 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: 17a8903f797fedb3230b7d2fc2532e4525b18e36 https://github.com/Perl/perl5/commit/17a8903f797fedb3230b7d2fc2532e4525b18e36 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: bec79d0b92be006901b35c8e59225580e4a20270 https://github.com/Perl/perl5/commit/bec79d0b92be006901b35c8e59225580e4a20270 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: 1b9303610b62bc32d3efed633ec8dcc6d5b30b77 https://github.com/Perl/perl5/commit/1b9303610b62bc32d3efed633ec8dcc6d5b30b77 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: c50dba76643e5825f9140313f044a3b4262a6e63 https://github.com/Perl/perl5/commit/c50dba76643e5825f9140313f044a3b4262a6e63 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 8f64737b65c6804e50645c045b1c8cf52138ec17 https://github.com/Perl/perl5/commit/8f64737b65c6804e50645c045b1c8cf52138ec17 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M cpan/version/t/07locale.t Log Message: ----------- cpan/version/07locale.t: drop, bug have to recompute md5 Commit: 1f12ea5b4042256101db63936619c1d451556499 https://github.com/Perl/perl5/commit/1f12ea5b4042256101db63936619c1d451556499 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat Commit: a96921c3b360d086c5f586c68807d390d9abaa82 https://github.com/Perl/perl5/commit/a96921c3b360d086c5f586c68807d390d9abaa82 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c 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. There is no test added because I didn't find a shell that allows setting LC_ALL to such a disparate value. Commit: ebd3cafa705d4fbb88f23630584683af182dab4d https://github.com/Perl/perl5/commit/ebd3cafa705d4fbb88f23630584683af182dab4d Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: XXX Debug Commit: df5de680be844d3405dbccee6b275d69642d15e6 https://github.com/Perl/perl5/commit/df5de680be844d3405dbccee6b275d69642d15e6 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- S_querylocale_2008_i: Add entry assertion Commit: 83e6f3e7ad2bc6f35e245243994f920f013a8868 https://github.com/Perl/perl5/commit/83e6f3e7ad2bc6f35e245243994f920f013a8868 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_i: Add entry assertion Commit: 1520c15ef788f21b5c168786b6cd476e38584c0a https://github.com/Perl/perl5/commit/1520c15ef788f21b5c168786b6cd476e38584c0a Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: 2e58c00f5b81ecaea30ef1b019ec8149aec752f0 https://github.com/Perl/perl5/commit/2e58c00f5b81ecaea30ef1b019ec8149aec752f0 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: 0700824abaa87952c07b922d00997944e1fbf9d8 https://github.com/Perl/perl5/commit/0700824abaa87952c07b922d00997944e1fbf9d8 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M pp.c Log Message: ----------- pp_study: Add memory use debugging Commit: 1d6def17b7026c4265613c4ad1504f2253aaba89 https://github.com/Perl/perl5/commit/1d6def17b7026c4265613c4ad1504f2253aaba89 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M pp.c Log Message: ----------- Revert "pp_study: Add memory use debugging" Commit: e4f828dbd16b06073220d8906c7d6bef87b7e404 https://github.com/Perl/perl5/commit/e4f828dbd16b06073220d8906c7d6bef87b7e404 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin Commit: 663997fda2bac0d9ed56c15b6567c51d666b2ac8 https://github.com/Perl/perl5/commit/663997fda2bac0d9ed56c15b6567c51d666b2ac8 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 91ce51dbb8469e0b8dab2ea61a38b596550d4332 https://github.com/Perl/perl5/commit/91ce51dbb8469e0b8dab2ea61a38b596550d4332 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: debug Commit: 11190e603677cd57e12730391ad95147f4645390 https://github.com/Perl/perl5/commit/11190e603677cd57e12730391ad95147f4645390 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: add a commented out yield Commit: caa58df6d1e88acb20c5b6bc8d89f6b856bf5e8d https://github.com/Perl/perl5/commit/caa58df6d1e88acb20c5b6bc8d89f6b856bf5e8d Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: debugging Commit: ffd7ac717225f128d5083f1cbe657c62ff820def https://github.com/Perl/perl5/commit/ffd7ac717225f128d5083f1cbe657c62ff820def Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: 68bdc87857bba4e36993e076aa0f388feb8c1623 https://github.com/Perl/perl5/commit/68bdc87857bba4e36993e076aa0f388feb8c1623 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: bcfbe7ff505594e730aadca7d51a7de7a9646e01 https://github.com/Perl/perl5/commit/bcfbe7ff505594e730aadca7d51a7de7a9646e01 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 3541c7834ceabb8d09f1a0e46bdab3d2658ba867 https://github.com/Perl/perl5/commit/3541c7834ceabb8d09f1a0e46bdab3d2658ba867 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: af4ad958e1b18d8fad6d0725702e0862f6ac093e https://github.com/Perl/perl5/commit/af4ad958e1b18d8fad6d0725702e0862f6ac093e Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M thread.h Log Message: ----------- thread.h: White space only Indent some nested preproccessor defines Commit: 5dfdaa9a96f251a2e3ffd804e3905ce9ba0081cc https://github.com/Perl/perl5/commit/5dfdaa9a96f251a2e3ffd804e3905ce9ba0081cc Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: b09aa79f2a674e79dd2687172109529c1cf1bcb8 https://github.com/Perl/perl5/commit/b09aa79f2a674e79dd2687172109529c1cf1bcb8 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- XXX Time::Piece strftime Commit: 543eff82cb953a7ee14e2eff5274a7a851285c92 https://github.com/Perl/perl5/commit/543eff82cb953a7ee14e2eff5274a7a851285c92 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: notes to myself Commit: 357cf5a1e125549d3a4e2903cf62ad8aa092b2ac https://github.com/Perl/perl5/commit/357cf5a1e125549d3a4e2903cf62ad8aa092b2ac Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M util.c M win32/perlhost.h Log Message: ----------- XXX Win32 mem log Commit: 478518de8fc2c644f0e8defbf1d8659b250523a9 https://github.com/Perl/perl5/commit/478518de8fc2c644f0e8defbf1d8659b250523a9 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M util.c Log Message: ----------- XXX util add thread to mem_log Commit: 466c6e07eb49564f92f783c25267f0b92e384d85 https://github.com/Perl/perl5/commit/466c6e07eb49564f92f783c25267f0b92e384d85 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- Debug wrap wset Commit: 82b3c6963f2446613bc9badb19026dc4d59007b8 https://github.com/Perl/perl5/commit/82b3c6963f2446613bc9badb19026dc4d59007b8 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: df3b488edce87d4e2e03be495a2d99064f48ebc1 https://github.com/Perl/perl5/commit/df3b488edce87d4e2e03be495a2d99064f48ebc1 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: 3495c78672162a8cbb3fa65cb47aa63d7915b8c1 https://github.com/Perl/perl5/commit/3495c78672162a8cbb3fa65cb47aa63d7915b8c1 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: 046454f5f7adbb68297ea517ecd3c642539fa4e3 https://github.com/Perl/perl5/commit/046454f5f7adbb68297ea517ecd3c642539fa4e3 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M dist/ExtUtils-ParseXS/lib/perlxs.pod M t/porting/known_pod_issues.dat Log Message: ----------- perlxs Commit: cb8817bd9d67d98568f8e22bbe52504ae140a633 https://github.com/Perl/perl5/commit/cb8817bd9d67d98568f8e22bbe52504ae140a633 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: fbfa4a82d823fcd38987adc275117422b96030d5 https://github.com/Perl/perl5/commit/fbfa4a82d823fcd38987adc275117422b96030d5 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: dd0b6ba79c91c6b6d5749fb1362a891e2c6224d3 https://github.com/Perl/perl5/commit/dd0b6ba79c91c6b6d5749fb1362a891e2c6224d3 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M win32/config_H.gc M win32/config_h.PL M win32/config_sh.PL Log Message: ----------- XXX config Commit: 35bf1d8ac749209e9834da2e668314c63481ff52 https://github.com/Perl/perl5/commit/35bf1d8ac749209e9834da2e668314c63481ff52 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/run/locale.t Log Message: ----------- XXX t/run/locale.t Commit: 9a0f72f7e67be4b40f2e251c1aee4ca721cc9987 https://github.com/Perl/perl5/commit/9a0f72f7e67be4b40f2e251c1aee4ca721cc9987 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M pod/perlembed.pod Log Message: ----------- f perlembed Commit: 3721ddd498c65b687c6001c7c5437680431c1163 https://github.com/Perl/perl5/commit/3721ddd498c65b687c6001c7c5437680431c1163 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 878252d49c47d93a259415dcfff24d442b1c64f9 https://github.com/Perl/perl5/commit/878252d49c47d93a259415dcfff24d442b1c64f9 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: start of using platform locales Commit: bb1ea86729bc0532508a2b6ca6012ba58551be12 https://github.com/Perl/perl5/commit/bb1ea86729bc0532508a2b6ca6012ba58551be12 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- Revert "locale_threads: start of using platform locales" This reverts commit a7a8dea3aabb81a05aacaf3a26c49854a5854111. Commit: f3dc8a8051be29f676420dbb058da09171c770fb https://github.com/Perl/perl5/commit/f3dc8a8051be29f676420dbb058da09171c770fb Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c M perl.c M sv.c Log Message: ----------- define numeric values to be C when no USE_NUMERIC Commit: 809a71a5bd641e38046f25cb3a91c1bca4cc2279 https://github.com/Perl/perl5/commit/809a71a5bd641e38046f25cb3a91c1bca4cc2279 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c M perl.c M sv.c Log Message: ----------- Revert "define numeric values to be C when no USE_NUMERIC" This reverts commit 9bb7ff6531bf9e28d635a71e6d55c752a995da2d. Commit: 5c5d731f0b9b2272a23405222c23e355717d12b7 https://github.com/Perl/perl5/commit/5c5d731f0b9b2272a23405222c23e355717d12b7 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 95209af957a3b1d6d6cc9b645667a2760dc7e4d5 https://github.com/Perl/perl5/commit/95209af957a3b1d6d6cc9b645667a2760dc7e4d5 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- locale.c: Generalize save_to_buffer() This adds a parameter to the function to give the length of the input string to save; when -1, it acts as it did before this commit. This will allow a string that contains embedded NUL characters to be used with this function. And that is needed because it turns out that nl_langinfo() returns such a string, and Perl has never handled it properly. This is the first step in fixing that. Commit: 8b9a10856769eee47f13d3eb7bde8b2f2e312230 https://github.com/Perl/perl5/commit/8b9a10856769eee47f13d3eb7bde8b2f2e312230 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- Revert "locale.c: Generalize save_to_buffer()" This reverts commit be8fa81d301b9db351876a3738b93b1450c590d0. Commit: 8be219448b5daa61c8ac11cb1be643d88be722dc https://github.com/Perl/perl5/commit/8be219448b5daa61c8ac11cb1be643d88be722dc Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Commit: 80e8b725c395cd03d214b2d1feba85fffa87ee26 https://github.com/Perl/perl5/commit/80e8b725c395cd03d214b2d1feba85fffa87ee26 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: f98776a83a3729441ff4092a67ca85d9e7f652cd https://github.com/Perl/perl5/commit/f98776a83a3729441ff4092a67ca85d9e7f652cd Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- C_thous better ifdef Commit: 01be3c6c5764bf60af3394e4bfa9847fa6e98717 https://github.com/Perl/perl5/commit/01be3c6c5764bf60af3394e4bfa9847fa6e98717 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: e775bbe5870f18f780230d49c4a4ff8cdc641660 https://github.com/Perl/perl5/commit/e775bbe5870f18f780230d49c4a4ff8cdc641660 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loctools use if dumper Commit: 61965cd6c820073d4e2b20586eb068dacfe0b879 https://github.com/Perl/perl5/commit/61965cd6c820073d4e2b20586eb068dacfe0b879 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale.t Log Message: ----------- XXX lib/locale.t dont scan for LC_NUMERIC Commit: 27b8ca8832d441068381fbcc43f2190b5f8dd4b0 https://github.com/Perl/perl5/commit/27b8ca8832d441068381fbcc43f2190b5f8dd4b0 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Combine some preprocessor directives This function is full of #if conditionals, due to the high variance in what the capabilities of platforms are. I tried various methods to lessen the cognitive load, like turning it into separate functions that each suit a particular Configuration, but it was just as complicated as before. The code is doing set up, then the actual operation, then teardown. The actual operation is invariant. What this commit does is for some of the setup conditionals to define its own teardown macro. The result is the teardown looks much cleaner, and there is no possibility that it will get out-of-sync with the setup. Commit: 5d4bd9a5877bc864099f6f5941419e1d7de48d54 https://github.com/Perl/perl5/commit/5d4bd9a5877bc864099f6f5941419e1d7de48d54 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M hints/freebsd.sh M locale.c Log Message: ----------- Avoid unnecessary mutex lock on Windows It turns out that Windows since VS 2015 has a completely thread-safe localeconv() function, with its result stored in a per-thread buffer. MingW when built with the Universal C Run Time (UCRT) also has this property. These are the only implementations of localeconv() I know of like this. There is thus no need to have a critical section on these platforms. This commit abstracts this, so that other platforms can be added if found to be thread-safe. Commit: 518c02a2b17da503e72760f046c632b82b73779b https://github.com/Perl/perl5/commit/518c02a2b17da503e72760f046c632b82b73779b Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- XXX msg: locale.c: Combine some more (WIn32) preprocessor directives Commit: 4f5a4b7f453d2557d1bfddf3f4d4b465fb5ad48a https://github.com/Perl/perl5/commit/4f5a4b7f453d2557d1bfddf3f4d4b465fb5ad48a Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- locale.c: White space only Commit: 03853ff738862359c1d30bf941f352d9085b2230 https://github.com/Perl/perl5/commit/03853ff738862359c1d30bf941f352d9085b2230 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Do simple adjustment in a critical section This adjustment was deferred until after the critical section, but it is only an extra conditional and variable set, whose time should be dwarfed by the store to the hash, so I think it's all right to add it to the critical section. Commit: 27e667f631ab0fbf865258278037fa458f48d922 https://github.com/Perl/perl5/commit/27e667f631ab0fbf865258278037fa458f48d922 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- Do localeconv() adjustments immediately unthreaded localeconv() must be called and its struct processed in a critical section when other threads or embedded perls could also be using it. Something like StructCopy can't be used to save its values, as a deep copy is needed. Some of the processing can be expensive, so is deferred to a separate pass after the critical section. But if no critical section is needed, it's cheaper to do the processing as we go along doing the copy. A comment removed in this commit said that the reason this wasn't done was because of an extra maintenance cost (having to maintain the code in two places). But when I actually looked at what it would like like to do this, I found it is essentially just an extra function call, not enough "extra" to worry about. Commit: fdd1fe65526302ad0ee3ec8d97bfa8d9f5f3281d https://github.com/Perl/perl5/commit/fdd1fe65526302ad0ee3ec8d97bfa8d9f5f3281d Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M ext/POSIX/lib/POSIX.pod Log Message: ----------- start of pod for localeconv Commit: 733560df58d65d7d75bbfed115c1206db9c428a1 https://github.com/Perl/perl5/commit/733560df58d65d7d75bbfed115c1206db9c428a1 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 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: 701cb5a876e445cfcaba05d379726b0eb943ddf0 https://github.com/Perl/perl5/commit/701cb5a876e445cfcaba05d379726b0eb943ddf0 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- debug populate localeconv Commit: 5e78b3a5ca961a5078948bfcd9f006783b3d6255 https://github.com/Perl/perl5/commit/5e78b3a5ca961a5078948bfcd9f006783b3d6255 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- debug thread xs Commit: b28ef230156fae584807e56053009948f31e04ad https://github.com/Perl/perl5/commit/b28ef230156fae584807e56053009948f31e04ad Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Change variable names Using 'set' as opposed to 'group' is clearer. Commit: 8805ecf60c623279e0d352483935c593e6af3018 https://github.com/Perl/perl5/commit/8805ecf60c623279e0d352483935c593e6af3018 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Add debugging info Commit: 0d1298474890598451518184746ccda8743e8d91 https://github.com/Perl/perl5/commit/0d1298474890598451518184746ccda8743e8d91 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- Don't mortalize my_localeconv() for internal use For external consumption, retain the mortalization; but for internal explicitly decrement the reference count when done. Commit: 57edaa8f8ee28022a0e76fcfba2f3b59843a9da1 https://github.com/Perl/perl5/commit/57edaa8f8ee28022a0e76fcfba2f3b59843a9da1 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Use stable copy to compare instead of temporary We make a copy of this temporary. Use that going foward, and free the temporary earlier. Commit: f64afe178f0e65db113e539181af061741023c94 https://github.com/Perl/perl5/commit/f64afe178f0e65db113e539181af061741023c94 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embedvar.h M intrpvar.h M perl.c M sv.c Log Message: ----------- PL_strftime_buf Commit: f83cae869e932e32ed1a42096c9878d0fe2d8393 https://github.com/Perl/perl5/commit/f83cae869e932e32ed1a42096c9878d0fe2d8393 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embedvar.h M intrpvar.h M perl.c M sv.c Log Message: ----------- Revert "PL_strftime_buf" This reverts commit 640625a4d9cdf9c3d8b0ff45865be221632ab8cd. Commit: 1a545f7d239618d6b24246e4b58a88c7b8101bd0 https://github.com/Perl/perl5/commit/1a545f7d239618d6b24246e4b58a88c7b8101bd0 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale_table.h Log Message: ----------- C preprocessor doesn't understand 'false' means 0 So use 0 instead; 1 instead of 'true' Commit: 83a55a168ae444fab4e982e4b3ab8e0a926bc482 https://github.com/Perl/perl5/commit/83a55a168ae444fab4e982e4b3ab8e0a926bc482 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Move #include to earlier The next commit will want this header's information to be available for perl_langinfo.h. Commit: 4fc680fabad7b0a6a112eb41d239ead2efe1c56d https://github.com/Perl/perl5/commit/4fc680fabad7b0a6a112eb41d239ead2efe1c56d Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c M perl_langinfo.h Log Message: ----------- locale.c: Compile/call S_emulate_langinfo in more Configurations This will not compile if -DNO_LOCALE is specified, as well as some other Configurations where various locale categories are missing or confined to be the C locale. Commit: 67231e711a1b3dbf357f6d828ab2a4889393278c https://github.com/Perl/perl5/commit/67231e711a1b3dbf357f6d828ab2a4889393278c Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Avoid unused param warnings Under some configurations the three declarations here warned; the #ifdef was missing a term Commit: 7cdf2e8a1cf66b506e39cdb0a21fb69c448f2965 https://github.com/Perl/perl5/commit/7cdf2e8a1cf66b506e39cdb0a21fb69c448f2965 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M embed.h M proto.h Log Message: ----------- locale.c: Don't compile unused function Since 0b52bb633d8c55bb15f05cdb19a4b7cb071ea271, this function isn't used unless localeconv() is available. Don't compile it unless that is true. Commit: 211e9dc1945d215e52dbcffa3d46815d20f6f531 https://github.com/Perl/perl5/commit/211e9dc1945d215e52dbcffa3d46815d20f6f531 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- locale.c: Don't compile unused function Since 60e050beb2e45ebd7ead7f1bf93f845b23c474b5, this function is no longer called if -DNO_LOCALE has been specified. Don't compile it when not called. Commit: 89c4073071ad8669678f2d6267a0cda88ec61251 https://github.com/Perl/perl5/commit/89c4073071ad8669678f2d6267a0cda88ec61251 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Fix bug when -DNO_LOCALE_TIME The logic for these preprocessor conditionals is wrong. We must change LC_CTYPE to match LC_TIME (if the platform requires it) even when LC_TIME is confined to be the C locale, as happens when -DNO_LOCALE_TIME is in effect in a Configuration. But doing so allows for simplification and hence the complete removal of these preprocessor conditionals, as the logic is already available in the DEALING macros that this commit replaces the previous code with Commit: 88fb63cc9fd00db4b5f3efe6616af9f64808033f https://github.com/Perl/perl5/commit/88fb63cc9fd00db4b5f3efe6616af9f64808033f Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- locale.c: Change API for static strftime-related functions This changes these functions to be called with an additional SV parameter; their return becomes a bool success/fail. This presents a couple of advantages: libc strftime() now writes directly to the SV's PV, eliminating copying or using sv_usepvn(). For internal calls where the result is immediately consumed entirely in this file, we can use the already-existing scratch SV as the destination. This SV gets reused over and over, and likely will soon reach a large enough size so that it doesn't have to grow. Prior to this commit, a size was guessed each time and the space freed immediately after each use. Commit: a4be0e8700c52bc8feaa93809145d05ce46e1503 https://github.com/Perl/perl5/commit/a4be0e8700c52bc8feaa93809145d05ce46e1503 Author: Karl Williamson <k...@cpan.org> Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M embed.fnc M locale.c M proto.h Log Message: ----------- locale.c: Change formal parameter name The previous commit makes the current name somewhat ambiguous; so change it and add comments clarifying its use. Commit: 9fc785b4b0dcb35cb45803354883fc2939d47a25 https://github.com/Perl/perl5/commit/9fc785b4b0dcb35cb45803354883fc2939d47a25 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 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: 64301c79165ae854f46a575394359da57c6ce067 https://github.com/Perl/perl5/commit/64301c79165ae854f46a575394359da57c6ce067 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Call newSVpvz() Commit: ca097509ba331161c98374dc6eba91445a448677 https://github.com/Perl/perl5/commit/ca097509ba331161c98374dc6eba91445a448677 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Each toggle locale must have matching restore The next commit will want this symmetry, which until now hasn't mattered. Commit: 7247743124cf79837d0da5f8ffd0ccee9f5b4bd1 https://github.com/Perl/perl5/commit/7247743124cf79837d0da5f8ffd0ccee9f5b4bd1 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Use a critical section when locale is toggled Sometimes the locale for a category has to be toggled to some other locale, when the desired value is for a locale that isn't the current one. This doesn't present any problem when locales are thread-safe. The locale gets toggled back before any other work is done. But when locales are not thread-safe and we have threads, another thread can execute in the now-wrong locale. Perl, for a few releases now, tries to mitigate the issues with running locales under threads when yhread-safe locales are not in use, for mitigations that are easy to do. These very well may make things work for applications that don't change locales very much; say only on startup. But now perl itself changes locales briefly behind an application's back. It turns out it is easy to add a lock that will keep threads that otherwise would work to continue to work. That's what this commit does, by adding TOGGLE_LOCK and TOGGLE_UNLOCK macros that are no-ops for all but the unsafe-threaded locale implementation. The unused parameter to the macros is for future use. Commit: 7c417a907b1a2931400e9b269f68b3b7aee30e5c https://github.com/Perl/perl5/commit/7c417a907b1a2931400e9b269f68b3b7aee30e5c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M lib/locale.t M locale.c Log Message: ----------- fix alt0 for no_nl Commit: a0f65e39cf843563eb7d002cf45a6d63e3ced95c https://github.com/Perl/perl5/commit/a0f65e39cf843563eb7d002cf45a6d63e3ced95c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- SvPV nomg Commit: d3fc757b2205212b2145f914456497871d6cb000 https://github.com/Perl/perl5/commit/d3fc757b2205212b2145f914456497871d6cb000 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- shorten_toggle Commit: ab61b675c56be86badc156155d435b91c46273e9 https://github.com/Perl/perl5/commit/ab61b675c56be86badc156155d435b91c46273e9 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Swap the order of two functions The new ordering will make the diffs less in the next commit, and will make just as much sense going forward as the previous ordering. Commit: 4bd6ed271c4102427c90da0e8552bcdf555e0546 https://github.com/Perl/perl5/commit/4bd6ed271c4102427c90da0e8552bcdf555e0546 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- locale.c: Pass locale to strftime functions Commit: a977eb64d06bcef59f6fd34e4f07fecdb732d654 https://github.com/Perl/perl5/commit/a977eb64d06bcef59f6fd34e4f07fecdb732d654 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- querylocale Maybe use C in the callers Commit: 45061d22268ddb2b9e61be40ca1d75c601c49085 https://github.com/Perl/perl5/commit/45061d22268ddb2b9e61be40ca1d75c601c49085 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "querylocale" This reverts commit b6ea27aa76a1c8785e84df9a1a42f1a71dcc81e2. Commit: 2a6e88e28d06aff909525d05be35f13ac1af092d https://github.com/Perl/perl5/commit/2a6e88e28d06aff909525d05be35f13ac1af092d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- toggle2 Commit: b4465ca2f5d098011921903b7db1c762a20d9660 https://github.com/Perl/perl5/commit/b4465ca2f5d098011921903b7db1c762a20d9660 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: bbaf627ee2264158f86d976ac35e4db618667f95 https://github.com/Perl/perl5/commit/bbaf627ee2264158f86d976ac35e4db618667f95 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: f030123d61242200406614a6e6fad7abeb54ec72 https://github.com/Perl/perl5/commit/f030123d61242200406614a6e6fad7abeb54ec72 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Make numeric standard inconsistent Commit: 6afb2a500ad378ab2ce06f4ec88f17b3850e319c https://github.com/Perl/perl5/commit/6afb2a500ad378ab2ce06f4ec88f17b3850e319c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M embed.fnc M embed.h M embedvar.h M handy.h M inline.h M intrpvar.h M locale.c M makedef.pl M mg.c M perl.c M perl.h M pod/perlvar.pod M proto.h M sv.c Log Message: ----------- Add ability to emulate thread-safe locale operations Locale information was originally global for an entire process. Later, it was realized that different threads could want to be running in different locales. Windows added this ability, and POSIX 2008 followed suit (though using a completely different API). When available, perl automatically uses these capabilities. But many platforms have neither, or their implementation, such as on Darwin, is buggy. This commit adds the capability for Perl programs to operate as if the platform were thread-safe. This implementation is based on the observation that the underlying locale matters only to relatively few libc calls, and only during their execution. It can be anything at all at any other time. perl keeps what the proper locale should be for each category in a a per-thread array. Each locale-dependent operation must be wrapped in mutex lock/unlock operations. The lock additionally compares what libc knows the locale to be, and what it should be for this thread at this time, and changes the actual locale to the proper value if necessary. That's all that is needed. This commit adds macros to perl.h, for example "MBTOWC_LOCK_", that expand to do the mutex lock, and change the global locale to the expected value. On perls built without this emulation capability, they are no-ops. All code in the perl core (unless I've missed something), are changed to use these macros (there weren't actually many places that needed this). Thus, any pure perl program will automatically become locale-thread-safe under this Configuration. In order for XS code to also become locale-thread-safe, it must use these macros to wrap calls to locale-dependent functions. Relatively few modules call such functions. For example, the only one I found that ships with the perl core is Time::Piece, and it has more fundamental issues with running under threads than this. I am preparing pull requests for it. Thus, this is not completely transparent to code like native-thread-safe locale handling is. Therefore ${^SAFE_LOCALES} returns 2 (instead of 1) for this type of thread-safety. Another deficiency compared to the native thread safety is when a thread calls a non-perl library that accesses the locale. The typical example is Gtk (though this particular application can be configured to not be problematic). With the native safe threads, everything works as long as only one such thread is used per Perl program. That thread would then be the only one operating in the global locale, hence there are no conflicts. With this emulation, all threads are operating in the global locale, and mutexes would have to be used to prevent conflicts. To minimize those, the code added in this commit restores the global locale when through to the state it was in when started. A major concern is the performance impact. This is after all trading speed for accuracy. lib/locale_threads.t is noticeably slower when this is being used. But that is doing multiple threads constantly using locale-dependent operations. I don't notice any change with the rest of the test suite. In pure perl, this only comes into play while in the scope of 'use locale' or when using some of the few POSIX:: functions that are locale-dependent. And to some extent when formatting, but the regular overhead there should dwarf what this adds. This commit leaves this feature off by default. The next commit changes that for the next few 5.39 development releases, so we can see if there is actually an issue. Commit: ef4a16c5ac5f497a5cd20f31e4d52c50aac5b546 https://github.com/Perl/perl5/commit/ef4a16c5ac5f497a5cd20f31e4d52c50aac5b546 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- DEBUG Lv to U Commit: 3acc0e7f6ffc9f5fad17439275ec9b4ef89c24b6 https://github.com/Perl/perl5/commit/3acc0e7f6ffc9f5fad17439275ec9b4ef89c24b6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- CONST_CAT_TO_INDEX Commit: 80c8cf55663bd6f92cb557d4b3f08fa34649d3c6 https://github.com/Perl/perl5/commit/80c8cf55663bd6f92cb557d4b3f08fa34649d3c6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- extra debug Commit: 4733a1674423ee47b33eb0ee1882e1bf39faa1a6 https://github.com/Perl/perl5/commit/4733a1674423ee47b33eb0ee1882e1bf39faa1a6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- more emul locks Commit: acaff35d7ed83830fb36c149aafede5cdf400061 https://github.com/Perl/perl5/commit/acaff35d7ed83830fb36c149aafede5cdf400061 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- langinfo lock Commit: 3fd528c9d5d5b9c05dc1c697e61570b81811fb95 https://github.com/Perl/perl5/commit/3fd528c9d5d5b9c05dc1c697e61570b81811fb95 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- lock mask Commit: 590f9b2093821e182fedc1c90a950c046566770f https://github.com/Perl/perl5/commit/590f9b2093821e182fedc1c90a950c046566770f Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Maybe comment' Commit: 441f840078c7532b584fc5e4151cee065cd5ae31 https://github.com/Perl/perl5/commit/441f840078c7532b584fc5e4151cee065cd5ae31 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- emul assertion Commit: f9bb23b2379f0b07287cda23ae2a24e855134f6b https://github.com/Perl/perl5/commit/f9bb23b2379f0b07287cda23ae2a24e855134f6b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "lock mask" This reverts commit 3fd528c9d5d5b9c05dc1c697e61570b81811fb95. Commit: 1386971ad6fe7485db5acd79d650c3ff48b5c578 https://github.com/Perl/perl5/commit/1386971ad6fe7485db5acd79d650c3ff48b5c578 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "langinfo lock" This reverts commit acaff35d7ed83830fb36c149aafede5cdf400061. Commit: b7587fc7fa56a0bd1db12df93b4c7e0e80ee60dc https://github.com/Perl/perl5/commit/b7587fc7fa56a0bd1db12df93b4c7e0e80ee60dc Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "more emul locks" This reverts commit 4733a1674423ee47b33eb0ee1882e1bf39faa1a6. Commit: 8e2dfee67d7711d714fae9c4a7b98de8d68e40b5 https://github.com/Perl/perl5/commit/8e2dfee67d7711d714fae9c4a7b98de8d68e40b5 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c M makedef.pl 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: e2aa4331f7f964db1ecf42eb30efa88df16bdea1 https://github.com/Perl/perl5/commit/e2aa4331f7f964db1ecf42eb30efa88df16bdea1 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 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: b5d54b5420d012e27bf72e4cfd38a4023a4a36a5 https://github.com/Perl/perl5/commit/b5d54b5420d012e27bf72e4cfd38a4023a4a36a5 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h maybe drop Commit: ed10a1935cc111314ce85f64729302b19fa44280 https://github.com/Perl/perl5/commit/ed10a1935cc111314ce85f64729302b19fa44280 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M makedef.pl Log Message: ----------- makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity Commit: f8a1e14a31b2600baa873b012a726e6ca32e2f6c https://github.com/Perl/perl5/commit/f8a1e14a31b2600baa873b012a726e6ca32e2f6c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads.t: Better handle weird locales The previous code was generating bunches of uninitialized variable warnings, due to 1) not checking for definedness early; 2) the loop termination needs to be reevaluated each time because there is a potential splice, shortening the array. This only happens, I believe, on MingW not using UCRT. Commit: fdfa515c403148471b5f284918430a4b351033e0 https://github.com/Perl/perl5/commit/fdfa515c403148471b5f284918430a4b351033e0 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 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: 4f2653ae4ec91a8f6364a2d56fa78e13d69656a7 https://github.com/Perl/perl5/commit/4f2653ae4ec91a8f6364a2d56fa78e13d69656a7 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- wrap uselocale Commit: 875f15d386a670bcd4b41a0f65bc0fb85cdfeb7d https://github.com/Perl/perl5/commit/875f15d386a670bcd4b41a0f65bc0fb85cdfeb7d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "wrap uselocale" This reverts commit b3ad3326b431cebbfd69809ffab741e79a099898. Commit: add2029134e2224528a5a1fba43317babbafe95a https://github.com/Perl/perl5/commit/add2029134e2224528a5a1fba43317babbafe95a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Debug uselocale Commit: dcbceec066ee98cbc67e2d89560a67cf184f875e https://github.com/Perl/perl5/commit/dcbceec066ee98cbc67e2d89560a67cf184f875e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M pp.c Log Message: ----------- pp_study: hook Commit: 579a6e8482dd436e465d5d860a57c44152241fae https://github.com/Perl/perl5/commit/579a6e8482dd436e465d5d860a57c44152241fae Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M sv.c Log Message: ----------- sv.c need to check for pv in sv in sv_setpvf Commit: d57565d5719746a0a3873db4bb47f4a5407bf65a https://github.com/Perl/perl5/commit/d57565d5719746a0a3873db4bb47f4a5407bf65a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- XXXExperimental: use just one of mktime, minimktime Commit: c9a74d18ab40c06b207f998983b62f228feefed6 https://github.com/Perl/perl5/commit/c9a74d18ab40c06b207f998983b62f228feefed6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M hv.c M locale.c M perl.h M sv.c Log Message: ----------- final Commit: 83dac42a06c27a8839b67b6bff9c31f8c4839767 https://github.com/Perl/perl5/commit/83dac42a06c27a8839b67b6bff9c31f8c4839767 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M sv_inline.h Log Message: ----------- Add comment to sv_setpv_freshbuf Commit: 4c12ea854d7de4914f53bbf932fb8c9c1e030500 https://github.com/Perl/perl5/commit/4c12ea854d7de4914f53bbf932fb8c9c1e030500 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "XXXExperimental: use just one of mktime, minimktime" This reverts commit d57565d5719746a0a3873db4bb47f4a5407bf65a. Compare: https://github.com/Perl/perl5/compare/3742f557366e...4c12ea854d7d