Branch: refs/heads/smoke-me/khw-env
Home: https://github.com/Perl/perl5
Commit: 5856f5b7c769d5f558791d0d2f100ff79d1662dd
https://github.com/Perl/perl5/commit/5856f5b7c769d5f558791d0d2f100ff79d1662dd
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t:
Fixes #21697.
On some platforms, a locale name is specified in the code page (or
code set) that applies to it, rather than plain ASCII. Windows, and
hence MingW, is the prime example.
The locale name for a particular Turkish variety found in MingW is
"Turkish_T?????.1254" where the question marks represent different
characters that have meaning in the 1254 code page, but would look like
mojibake if I had reproduced their actual values here.
When doing a setlocale() here, if the current code page is incompatible
with the new one, it will fail; if compatible it will succeed.
On my box running MingW, locales are tried out by this test file in
alphabetical order, and the one before this Turkish happens to be Thai,
with a code page of 874. Apparently 1254 is not compatible with 874, so
switching directly from Thai to Turkish fails.
The solution is to switch into a neutral code page before switching into
one being trialed. "C" works in this case, and I suspect in all others.
Commit: 1eb13b11f60bc5e98a00e979d35be5ff8fe01ae7
https://github.com/Perl/perl5/commit/1eb13b11f60bc5e98a00e979d35be5ff8fe01ae7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M charclass_invlists.h
M lib/unicore/Makefile
M lib/unicore/mktables
M lib/unicore/uni_keywords.pl
M regcharclass.h
M uni_keywords.h
Log Message:
-----------
mktables more verbose
Commit: 0cfa98aa314210408b1f8bd47b6dd2a821df2f60
https://github.com/Perl/perl5/commit/0cfa98aa314210408b1f8bd47b6dd2a821df2f60
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
Log Message:
-----------
BlackBox dont use rare scripts
Commit: df9b6304f8c8a4efcc4555a0f4a8c2589c521a03
https://github.com/Perl/perl5/commit/df9b6304f8c8a4efcc4555a0f4a8c2589c521a03
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/harness
Log Message:
-----------
XXX t/harness temp tweaks
Commit: 58b3b675673e1bf89dc0a868fbf39b4000391c15
https://github.com/Perl/perl5/commit/58b3b675673e1bf89dc0a868fbf39b4000391c15
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/harness
Log Message:
-----------
XXX skip croak.t under sanitizer
Commit: b7e9b6d20bc27b8a9f302a2a5ee4c03c96a2e513
https://github.com/Perl/perl5/commit/b7e9b6d20bc27b8a9f302a2a5ee4c03c96a2e513
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/porting/bincompat.t
Log Message:
-----------
skip bincompat.t
Commit: 1de2018f0e8bb44366564644f93af00f7e3f623e
https://github.com/Perl/perl5/commit/1de2018f0e8bb44366564644f93af00f7e3f623e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/porting/bincompat.t
Log Message:
-----------
Revert "skip bincompat.t"
This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c.
Commit: f3e9d947f19ffe6a0e952de71dab414aebfbce9c
https://github.com/Perl/perl5/commit/f3e9d947f19ffe6a0e952de71dab414aebfbce9c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/TEST
Log Message:
-----------
Skip cpan testing message
Commit: df96f10ffbd2e5f289bad04f8fe32a8e51e2febb
https://github.com/Perl/perl5/commit/df96f10ffbd2e5f289bad04f8fe32a8e51e2febb
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/TEST
Log Message:
-----------
Also skip non-thread dist testing
Commit: 44637dce4f058831e2ea6e54916ee627e4b4d929
https://github.com/Perl/perl5/commit/44637dce4f058831e2ea6e54916ee627e4b4d929
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Archive-Tar/t/02_methods.t
Log Message:
-----------
XXX skip Archive-Tar because of symlinks
Commit: c6c982663a7e8cc46e373e04d1b8139627eaac52
https://github.com/Perl/perl5/commit/c6c982663a7e8cc46e373e04d1b8139627eaac52
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/porting/cmp_version.t
Log Message:
-----------
XXX skip cmp_version.t because of sym links
Commit: 056c2476682de1f6ee6a1854bbc93b38e48fc672
https://github.com/Perl/perl5/commit/056c2476682de1f6ee6a1854bbc93b38e48fc672
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Sys-Syslog/t/syslog-inet-udp.t
M cpan/Sys-Syslog/t/syslog.t
Log Message:
-----------
XXX skip syslog tests because fail without LC_TIME
Commit: 93e0606fa818c3351fc2dd8f568ef7d5d5c175ae
https://github.com/Perl/perl5/commit/93e0606fa818c3351fc2dd8f568ef7d5d5c175ae
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M dist/Tie-File/t/29a_upcopy.t
Log Message:
-----------
up timeout for dist/Tie-File/t/29a_upcopy.t
Commit: a84f83b37ad35a1a73330eff31bb9186ab9f8982
https://github.com/Perl/perl5/commit/a84f83b37ad35a1a73330eff31bb9186ab9f8982
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M MANIFEST
A t/uni/idstart.pl
A t/uni/idstart00.t
A t/uni/idstart01.t
A t/uni/idstart02.t
A t/uni/idstart03.t
A t/uni/idstart04.t
A t/uni/idstart05.t
A t/uni/idstart06.t
A t/uni/idstart07.t
A t/uni/idstart08.t
A t/uni/idstart09.t
A t/uni/idstart10.t
A t/uni/idstart11.t
A t/uni/idstart12.t
A t/uni/idstart13.t
A t/uni/idstart14.t
A t/uni/idstart15.t
A t/uni/idstart16.t
A t/uni/idstart17.t
A t/uni/idstart18.t
A t/uni/idstart19.t
A t/uni/idstart20.t
A t/uni/idstart21.t
A t/uni/idstart22.t
A t/uni/idstart23.t
M t/uni/variables.t
Log Message:
-----------
Split t/uni/variables.t into multiple tests
These can be done in parallel; otherwise this is often the test that
finishes last, holding up the test suite completion.
Commit: 0250d4ea280800688211d927ac4b6581011fd55c
https://github.com/Perl/perl5/commit/0250d4ea280800688211d927ac4b6581011fd55c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
run/locale.t: more debug
Commit: caaf462c556964df282fa243c05dee0d6c38739c
https://github.com/Perl/perl5/commit/caaf462c556964df282fa243c05dee0d6c38739c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M MANIFEST
M charclass_invlists.h
M lib/unicore/mktables
M lib/unicore/uni_keywords.pl
M regcharclass.h
A t/re/uniprops11.t
A t/re/uniprops12.t
A t/re/uniprops13.t
A t/re/uniprops14.t
A t/re/uniprops15.t
A t/re/uniprops16.t
A t/re/uniprops17.t
A t/re/uniprops18.t
A t/re/uniprops19.t
A t/re/uniprops20.t
A t/re/uniprops21.t
A t/re/uniprops22.t
A t/re/uniprops23.t
A t/re/uniprops24.t
M uni_keywords.h
Log Message:
-----------
Make 24 uniprops.t tests
Commit: d094c980977679021d780b8d25aec6827061a739
https://github.com/Perl/perl5/commit/d094c980977679021d780b8d25aec6827061a739
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
XXX temp to test broken lconv on non-Windows
Commit: 336cf8b1f5ba9c7ce6817b90c0b62e572911e36c
https://github.com/Perl/perl5/commit/336cf8b1f5ba9c7ce6817b90c0b62e572911e36c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
XXX run/locale.t: maybe f move test
Commit: 40c322c438916eb3ce5f20d22839dd798d5d068e
https://github.com/Perl/perl5/commit/40c322c438916eb3ce5f20d22839dd798d5d068e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/version/t/07locale.t
M t/porting/customized.dat
Log Message:
-----------
version::07locale.t: Use I18N::Langinfo, not POSIX::localeconv()
The former is always present; the latter might not be.
Commit: aa0d1848f780b918758d63eafcd8a06aaa4a376f
https://github.com/Perl/perl5/commit/aa0d1848f780b918758d63eafcd8a06aaa4a376f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/porting/cmp_version.t
Log Message:
-----------
XXX skip cmp_version.t prob. due to 5.38 tag issue
Commit: 346c3633bcc5a626ba156fefc8dec1c34a7c0673
https://github.com/Perl/perl5/commit/346c3633bcc5a626ba156fefc8dec1c34a7c0673
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/version/t/07locale.t
M t/porting/customized.dat
Log Message:
-----------
version 07locale.t should use LC_NUMERIC, not ALL
These outliers don't belong. This file is working on LC_NUMERIC only.
Commit: 91c0bd8e9a6f1e0108fe0eb6fdb08ba34c2c7b5e
https://github.com/Perl/perl5/commit/91c0bd8e9a6f1e0108fe0eb6fdb08ba34c2c7b5e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
XXX temporary: Allow undef LC_ALL
Commit: 402da53212f35bf8e422fd9b76a9332e4b974718
https://github.com/Perl/perl5/commit/402da53212f35bf8e422fd9b76a9332e4b974718
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Fake up win32 compile a bit
Commit: 086e4501ed4747154066e9411e7b00a206857c8f
https://github.com/Perl/perl5/commit/086e4501ed4747154066e9411e7b00a206857c8f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M sv.c
Log Message:
-----------
newSVbool(): Fix compiler warning
The parameter was declared const in embed.fnc, but not in the function
prototype
Commit: e03e394cfe14dfe9bee921d9f0fb61a718d1b540
https://github.com/Perl/perl5/commit/e03e394cfe14dfe9bee921d9f0fb61a718d1b540
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
regnode_after(): Fix compiler warning
A parameter to this function was declared const in its prototype but not
in embed.fnc.
Commit: 83710b7c939aa8335ccab92924972a9708014ae6
https://github.com/Perl/perl5/commit/83710b7c939aa8335ccab92924972a9708014ae6
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M proto.h
M utf8.c
Log Message:
-----------
uvoffuni_to_utf8_flags_msgs(): Fix compiler warning
A parameter to this function was declared const in embed.fnc, but isn't
const.
This commit also adds a const to another parameter that is constant.
Commit: b50fff16a14b81666fc3c92f118bb2f43090b560
https://github.com/Perl/perl5/commit/b50fff16a14b81666fc3c92f118bb2f43090b560
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
S_clear_placeholders(): Fix compiler warning
A parameter to this function was declared const in its prototype but not
in embed.fnc, and had a different name
Commit: fd7aca1c8287db786cf475d53deb22716501cd52
https://github.com/Perl/perl5/commit/fd7aca1c8287db786cf475d53deb22716501cd52
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M proto.h
M util.c
Log Message:
-----------
XXX memlog
Commit: d29782222809ede15027bdda0a9a7726bc36963d
https://github.com/Perl/perl5/commit/d29782222809ede15027bdda0a9a7726bc36963d
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
M t/run/switchDx.t
Log Message:
-----------
debug thread
Commit: 6cf55bae639934dc962cba89c5e04fae88c59d06
https://github.com/Perl/perl5/commit/6cf55bae639934dc962cba89c5e04fae88c59d06
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M dist/threads/threads.xs
Log Message:
-----------
threads.xs DEBUG_U
Commit: fc1fe24d8c312865212a901b82fa9b3d598cf3f5
https://github.com/Perl/perl5/commit/fc1fe24d8c312865212a901b82fa9b3d598cf3f5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.t
Log Message:
-----------
XXX temp: lib/locale.t: debug
Commit: 6a024baa467b28398bc5ac2f2861b6fd85b75162
https://github.com/Perl/perl5/commit/6a024baa467b28398bc5ac2f2861b6fd85b75162
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t FILE debug
Commit: c6848b00384d7c9987c06c27b01e5b690b6aa83a
https://github.com/Perl/perl5/commit/c6848b00384d7c9987c06c27b01e5b690b6aa83a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t
Commit: 30f2f0437a2ed2866abbab705b180d2426ba29f0
https://github.com/Perl/perl5/commit/30f2f0437a2ed2866abbab705b180d2426ba29f0
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
XXX perl.h: Debugging mutex lock'
Commit: 682127f82527d48eac7338481f7a40574bc964fb
https://github.com/Perl/perl5/commit/682127f82527d48eac7338481f7a40574bc964fb
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/version/t/07locale.t
M t/porting/customized.dat
Log Message:
-----------
07locale.t: Add some Windows locales to try
On various windows machines, none of the locales listed in <DATA> exist.
This commit copies ones from core's loc_tools.pl to give additional
possibilities to try
Commit: 17f0452c12545f70a51125584e13590b82c7d31e
https://github.com/Perl/perl5/commit/17f0452c12545f70a51125584e13590b82c7d31e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/version/t/07locale.t
Log Message:
-----------
cpan/version/07locale.t: drop, bug have to recompute md5
Commit: 153f5aff3186d6898853b1f91f41d04f94679b3d
https://github.com/Perl/perl5/commit/153f5aff3186d6898853b1f91f41d04f94679b3d
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/porting/customized.dat
Log Message:
-----------
customized.dat
Commit: fda061792bef924031f0b4594e207ba3b7062e90
https://github.com/Perl/perl5/commit/fda061792bef924031f0b4594e207ba3b7062e90
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
loc_tools: XXX Debug
Commit: 137ecd158feca8f7226c5e0102426cf3febd187a
https://github.com/Perl/perl5/commit/137ecd158feca8f7226c5e0102426cf3febd187a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
S_querylocale_2008_i: Add entry assertion
Commit: 4aece1a6ac64ba73abb0f086c08efc222375833b
https://github.com/Perl/perl5/commit/4aece1a6ac64ba73abb0f086c08efc222375833b
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_i: Add entry assertion
Commit: 0408befce6e6467731fcea3cc49b61fde42425d0
https://github.com/Perl/perl5/commit/0408befce6e6467731fcea3cc49b61fde42425d0
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
savepv if threaded, unused I think
Commit: cc3f8dc744533ae68af201dd142893a10f59a1f4
https://github.com/Perl/perl5/commit/cc3f8dc744533ae68af201dd142893a10f59a1f4
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M hints/darwin.sh
Log Message:
-----------
darwin hints querylocale race in earlier darwins?
Commit: 8dc94ee5b8007f5dfe99571db9df4349eb8f1034
https://github.com/Perl/perl5/commit/8dc94ee5b8007f5dfe99571db9df4349eb8f1034
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pp.c
Log Message:
-----------
pp_study: Add memory use debugging
Commit: f04ceca149d2d26b3d4e76478fb28b6233d4d7c7
https://github.com/Perl/perl5/commit/f04ceca149d2d26b3d4e76478fb28b6233d4d7c7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pp.c
Log Message:
-----------
Revert "pp_study: Add memory use debugging"
Commit: fad62135ccb7196c9151b90f2ea2edff96fb4984
https://github.com/Perl/perl5/commit/fad62135ccb7196c9151b90f2ea2edff96fb4984
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M hints/darwin.sh
Log Message:
-----------
darwin
Commit: d11bdaf9a4d32aa592f5e78c74f70ce651b2f3ae
https://github.com/Perl/perl5/commit/d11bdaf9a4d32aa592f5e78c74f70ce651b2f3ae
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M hints/freebsd.sh
Log Message:
-----------
Enable thread-safe locales on some freebsd versions
This had been disabled in the hints file due to bugs, which perl now
works around, so reenable (and reformat some lines for clarity)
Commit: 330ba258d6ba4e687d0363831221c6fe46a86c27
https://github.com/Perl/perl5/commit/330ba258d6ba4e687d0363831221c6fe46a86c27
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
t/run/locale.t: debug
Commit: 2294e887294d6d273f5093cc10193f1d84ddf907
https://github.com/Perl/perl5/commit/2294e887294d6d273f5093cc10193f1d84ddf907
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
locale_threads: add a commented out yield
Commit: 56c36d3b5b990f64f3ea17acdc3f759e3782468a
https://github.com/Perl/perl5/commit/56c36d3b5b990f64f3ea17acdc3f759e3782468a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
locale_threads: debugging
Commit: 36809df8c77fa9361e843554ab81cf2335be6f90
https://github.com/Perl/perl5/commit/36809df8c77fa9361e843554ab81cf2335be6f90
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time::Piece: Use reentrant API
This single line magically makes this work much better under threading,
though critical section locks need to be added as well.
Commit: 02f28bbcfdfbebf8d58818078db998406f7ef837
https://github.com/Perl/perl5/commit/02f28bbcfdfbebf8d58818078db998406f7ef837
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: Use foldEQ_locale() if available
This core function available since 5.13.2 is thread-safe and knows about
Perl internals, so is preferable to the similar libc function, which is
now used only as a fallback. This commit also bomb proofs the code by
adding an additional fallback, specified in C89, which isn't a great
substitute, but far better than nothing.
Commit: f7bb9a31be6e8c926fe9bece7ce5c749309c8190
https://github.com/Perl/perl5/commit/f7bb9a31be6e8c926fe9bece7ce5c749309c8190
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: Use isSPACE_LC, not isspace; etc
isDIGIT_LC() does the same thing as isdigit when everything goes well,
but is more robust when things get more complicated. The _LC forms are
thread safe, for example.
But note that this code doesn't work properly for a UTF-8 locale, as it
assumes that a byte and character are the same thing. A major overhaul
would be needed to handle that.
Commit: 2e5de2c9b1d33df2890889ec2de2a0ebdee296b5
https://github.com/Perl/perl5/commit/2e5de2c9b1d33df2890889ec2de2a0ebdee296b5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M thread.h
Log Message:
-----------
thread.h: White space only
Indent some nested preproccessor defines
Commit: 1d3ef5936703e4edd7f0b0fb009060c6c2e6d1f7
https://github.com/Perl/perl5/commit/1d3ef5936703e4edd7f0b0fb009060c6c2e6d1f7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.pm
M cpan/Time-Piece/Piece.xs
M cpan/Time-Piece/Seconds.pm
M dist/Module-CoreList/lib/Module/CoreList.pm
Log Message:
-----------
Time::Piece: Add critical sections
This calls various macros to make certain libc calls uninterruptible, so
that they can be used safely in threaded applications, when this module
is loaded with a perl that supports this.
The macros are defined to do nothing if the perl doesn't contain working
versions of them. In such perls, the macros are also defined to do
nothing except on configurations that could have races.
Typically, an extra problem is that the libc calls return in a global
static buffer, subject to being overwritten by another thread. But an
earlier commit defined PERL_REENTRANT, which makes those functions
transparently return in a thread-local buffer instead. That doesn't
help if the function gets interrupted by another thread; this commit
completes the process.
Commit: 6ad77f1226b79bc363f04df63a74ac21117ff4ad
https://github.com/Perl/perl5/commit/6ad77f1226b79bc363f04df63a74ac21117ff4ad
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
XXX Time::Piece strftime
Commit: a0812f397ab4c4966133ee8b0f4ff22a396f3962
https://github.com/Perl/perl5/commit/a0812f397ab4c4966133ee8b0f4ff22a396f3962
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: notes to myself
Commit: 67551c4fc48a2579748489932a06e614da91c13f
https://github.com/Perl/perl5/commit/67551c4fc48a2579748489932a06e614da91c13f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M cpan/Time-Piece/Piece.pm
M t/porting/customized.dat
Log Message:
-----------
Time-Piece
Commit: 64e89fb4ac2776c4609d66b951917a15150ebf80
https://github.com/Perl/perl5/commit/64e89fb4ac2776c4609d66b951917a15150ebf80
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M util.c
M win32/perlhost.h
Log Message:
-----------
XXX Win32 mem log
Commit: 9ca286271e16f78364f57bef0c833f717212a1cb
https://github.com/Perl/perl5/commit/9ca286271e16f78364f57bef0c833f717212a1cb
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M util.c
Log Message:
-----------
XXX util add thread to mem_log
Commit: 005c3e571ad9a2b919b1badd8e7ad4a21634f09e
https://github.com/Perl/perl5/commit/005c3e571ad9a2b919b1badd8e7ad4a21634f09e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
Debug wrap wset
Commit: 9c9c6bc31ceee6c1ced765debe74997bec67fab7
https://github.com/Perl/perl5/commit/9c9c6bc31ceee6c1ced765debe74997bec67fab7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pod/perlhacktips.pod
Log Message:
-----------
XXX incomplete perlhacktips:
Commit: 0c6c6848de41a899cad67f19e7a29e5e99735f8a
https://github.com/Perl/perl5/commit/0c6c6848de41a899cad67f19e7a29e5e99735f8a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M iperlsys.h
Log Message:
-----------
iperlsys.h: TODO need to look at adding mutexes
Commit: cafe9eb009c85ead7d651dbdeaf8b9fff91fff2e
https://github.com/Perl/perl5/commit/cafe9eb009c85ead7d651dbdeaf8b9fff91fff2e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M regen/reentr.pl
Log Message:
-----------
reentr.pl: XXX about needing mutex
Commit: d6e3d8e95b323c6888e353d81745e3aa70a5fe8d
https://github.com/Perl/perl5/commit/d6e3d8e95b323c6888e353d81745e3aa70a5fe8d
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pod/perlmod.pod
Log Message:
-----------
perlmod
Commit: 51774150f0c2d2a6ec8a1710e686c75b68c3a71a
https://github.com/Perl/perl5/commit/51774150f0c2d2a6ec8a1710e686c75b68c3a71a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M win32/config_H.gc
M win32/config_h.PL
M win32/config_sh.PL
Log Message:
-----------
XXX config
Commit: 91135df097cc32f95c5420113e05fdc8182ce234
https://github.com/Perl/perl5/commit/91135df097cc32f95c5420113e05fdc8182ce234
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pod/perlembed.pod
Log Message:
-----------
f perlembed
Commit: 54689a3bc07fd42414524bbd4493ce6d967e2419
https://github.com/Perl/perl5/commit/54689a3bc07fd42414524bbd4493ce6d967e2419
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M intrpvar.h
M locale.c
M perl.h
Log Message:
-----------
Fixup FAKE_MINGW
This is used (by me) to partially emulate MingW on a *nix platform. It
was passing all its tests, but I discovered that I had the wrong #if
which was hence not enabling crucial parts of the emulation.
Commit: 765723e693f27502cc77a0056c1c993f6b356d41
https://github.com/Perl/perl5/commit/765723e693f27502cc77a0056c1c993f6b356d41
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add #define to separate label from declaration
This is designed to be mostly self-documenting.
Commit: 7b814548f24cdce6ad2e5a3d0616e2c50fc672e8
https://github.com/Perl/perl5/commit/7b814548f24cdce6ad2e5a3d0616e2c50fc672e8
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pp.c
Log Message:
-----------
pp_study: hook
Commit: 6a8a1cfcd1caf31eaf043270bd64bc70d8356312
https://github.com/Perl/perl5/commit/6a8a1cfcd1caf31eaf043270bd64bc70d8356312
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t: Cope with no LC_ALL
Commit: 71de7a391d9d7e7931921cccf8fb7749841c0af5
https://github.com/Perl/perl5/commit/71de7a391d9d7e7931921cccf8fb7749841c0af5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t: Cope with no_nl,no localeconv
I single stepped the code and it returned a comma on ps_AF, but the
SNPRINTF printed the read thing. I think it is because we are emulating
the deficient libc.
Commit: 4b0e8e1ff068c89d99f6a1481397c1ef507d8a8e
https://github.com/Perl/perl5/commit/4b0e8e1ff068c89d99f6a1481397c1ef507d8a8e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
t/run/locale.t: Change var name and hoist to larger scope
The old name was somewhat misleading
Commit: ec56ec43396f8d170e0430971475b77857c4510e
https://github.com/Perl/perl5/commit/ec56ec43396f8d170e0430971475b77857c4510e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
t/run/locale.t: Extract code into a sub
This is in preparation for it to be called from another place
Commit: dee469bd6716d4e531b7356f5ab8547a387fc558
https://github.com/Perl/perl5/commit/dee469bd6716d4e531b7356f5ab8547a387fc558
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
t/run/locale.t: Save sub return in an array
This is in preparation for it to be used again.
Commit: b38b4532a886a4320caee531431dabfc85d321ac
https://github.com/Perl/perl5/commit/b38b4532a886a4320caee531431dabfc85d321ac
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
t/run/locale.t: Add test
This is marked TODO; the next commit will cause this test to pass.
Commit: 0a3c91c28c82a5d5aedbb98770af1ff6bbc24ec3
https://github.com/Perl/perl5/commit/0a3c91c28c82a5d5aedbb98770af1ff6bbc24ec3
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
M t/run/locale.t
Log Message:
-----------
S_find_locale_from_environment: Handle disparate LC_ALL
Prior to this commit, it was possible on some platforms to improperly
set a locale category from a locale of "".
Consider:
export LC_ALL="LC_CTYPE=de_DE;LC_NUMERIC=C;LC_TIME=de_DE;..."
and then run
print POSIX::setlocale(LC_NUMERIC, "");
It wouldn't know how to extract just the LC_NUMERIC part of the LC_ALL
string.
Commit: 63e4b69d62d698c6265c421cde9cbf5802c03ba8
https://github.com/Perl/perl5/commit/63e4b69d62d698c6265c421cde9cbf5802c03ba8
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
M t/run/locale.t
Log Message:
-----------
Revert "S_find_locale_from_environment: Handle disparate LC_ALL"
This reverts commit ec083d3e824ac77199917066653c26780cf26bb0.
Commit: 91641b5e27d6e546bf26b3963be13a3a0d0c3fb7
https://github.com/Perl/perl5/commit/91641b5e27d6e546bf26b3963be13a3a0d0c3fb7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
Revert "t/run/locale.t: Add test"
This reverts commit 28b41f6baf95fe40466e5ee3e349550c7c4e85ee.
Commit: 82522199a85cc83d19263bdb22b3f14d8ef1a3a2
https://github.com/Perl/perl5/commit/82522199a85cc83d19263bdb22b3f14d8ef1a3a2
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/run/locale.t
Log Message:
-----------
t/run/locale.t: Cope with no LC_ALL
Commit: ad7f0faebf1e63d0db1067b4d19ff9a12d6eefd4
https://github.com/Perl/perl5/commit/ad7f0faebf1e63d0db1067b4d19ff9a12d6eefd4
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Commit: 30c20f92c37794ec8b936a5ade2e445be7039b76
https://github.com/Perl/perl5/commit/30c20f92c37794ec8b936a5ade2e445be7039b76
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Silence compiler warning
This tightens when this function is compiled to the actual
Configurations it is needed in.
Commit: ef379ca82549a973eafeeb808eb28a0cd1089234
https://github.com/Perl/perl5/commit/ef379ca82549a973eafeeb808eb28a0cd1089234
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
C_thous better ifdef
Commit: 64e6cfdbef490f3804fa3c82e4713f81d6246cc3
https://github.com/Perl/perl5/commit/64e6cfdbef490f3804fa3c82e4713f81d6246cc3
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M ext/POSIX/t/posix.t
M ext/POSIX/t/time.t
M ext/XS-APItest/t/locale.t
M lib/locale.t
M lib/locale_threads.t
Log Message:
-----------
skip tests if no strftime
Commit: 7a7d8d7b08bc415b0ba25a2add732ef46e2977e4
https://github.com/Perl/perl5/commit/7a7d8d7b08bc415b0ba25a2add732ef46e2977e4
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
loctools use if dumper
Commit: c812d7d7c2a10945fbd701c88ed56cd401adf9ef
https://github.com/Perl/perl5/commit/c812d7d7c2a10945fbd701c88ed56cd401adf9ef
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M ext/POSIX/lib/POSIX.pod
Log Message:
-----------
start of pod for localeconv
Commit: 33ee05775cfbb884663b0a62c05d990ab3cad68c
https://github.com/Perl/perl5/commit/33ee05775cfbb884663b0a62c05d990ab3cad68c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add struct definition as a fallback
If we ever encountered a platform that didn't have localeconv(), nor its
structure definition, this could be used to get things to work.
Commit: 288db1fe36316e99016c713ae04a4ad61ff879a6
https://github.com/Perl/perl5/commit/288db1fe36316e99016c713ae04a4ad61ff879a6
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
debug populate localeconv
Commit: 5255322e88e0cdb8f16a229dbe7a683a611fface
https://github.com/Perl/perl5/commit/5255322e88e0cdb8f16a229dbe7a683a611fface
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M dist/threads/threads.xs
Log Message:
-----------
debug thread xs
Commit: b8691934f498200c5c0526a56006db046be703b8
https://github.com/Perl/perl5/commit/b8691934f498200c5c0526a56006db046be703b8
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
lib/locale_threads.t: Add debugging info
Commit: d213d2d7336a667ca10b4544390bb6eb0afd7135
https://github.com/Perl/perl5/commit/d213d2d7336a667ca10b4544390bb6eb0afd7135
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
lib/locale_threads.t: Cope with no LC_CTYPE
Commit: a7497a006284164ed271ef722be999f467d35e4b
https://github.com/Perl/perl5/commit/a7497a006284164ed271ef722be999f467d35e4b
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M embed.h
M proto.h
M sv.c
Log Message:
-----------
Add newSVpvz() to create a sized SvPV.
There's no current trivial method to create a non-zero length SV that
will hold a PV.
Commit: 1f808adae445d0f68a0136ddfc07fd451fc55237
https://github.com/Perl/perl5/commit/1f808adae445d0f68a0136ddfc07fd451fc55237
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Call newSVpvz()
Commit: 3d4e0031c269a49f30ccad5fe1842d760a2c2e01
https://github.com/Perl/perl5/commit/3d4e0031c269a49f30ccad5fe1842d760a2c2e01
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M malloc.c
Log Message:
-----------
XXX malloc.c: Locak around a getenv
I believe this is done very early; only for the first time; maybe
mutexes aren't initialized, so may not be necessary; might break
Commit: b739709dd63281e5bf112fe214104e843dbf5a98
https://github.com/Perl/perl5/commit/b739709dd63281e5bf112fe214104e843dbf5a98
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.c
Log Message:
-----------
perl.c: Add locks around a *environ access
When reading the environment, a read lock is needed; when writing, a
write lock.
Commit: e8712dda7daa047b8ee8ae88ef52c997ef1b937f
https://github.com/Perl/perl5/commit/e8712dda7daa047b8ee8ae88ef52c997ef1b937f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Use auxiliary #define for simplicity
Prior to this commit we avoided #defining a symbol until later, so that
that fact could be used for further decisions. But this is a bit
awkward, and so this commit introduces an additional #define that can be
used for the decisions, while defining the symbol at the place where it
makes the most sense to.
Commit: 28aea2c9ce7928a92c87607790d3680df1f1cf44
https://github.com/Perl/perl5/commit/28aea2c9ce7928a92c87607790d3680df1f1cf44
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M pod/perlembed.pod
M pod/perlhacktips.pod
M t/porting/known_pod_issues.dat
Log Message:
-----------
perlxs
Commit: ab7db2d52ac19e3164f928adc786c51f08ee2169
https://github.com/Perl/perl5/commit/ab7db2d52ac19e3164f928adc786c51f08ee2169
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M pod/perlembed.pod
M pod/perlhacktips.pod
M t/porting/known_pod_issues.dat
Log Message:
-----------
Revert "perlxs"
This reverts commit 04b79e3fe0b3ee92fef5f0c69ea516f47e1b6ac6.
Commit: 42866fd2f99a90b62181ec4fa1d2aad6fca0201a
https://github.com/Perl/perl5/commit/42866fd2f99a90b62181ec4fa1d2aad6fca0201a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
M perlvars.h
Log Message:
-----------
perl.h: Convert reentrant locks to allow many readers
This is in preparation for future use of these.
The only current mutex that is reentrant is the one for locales.
Commit: edd5c95a4c3076afe1ccf2ab28c7b1b6afda0228
https://github.com/Perl/perl5/commit/edd5c95a4c3076afe1ccf2ab28c7b1b6afda0228
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
Avoid deadlock if request a read lock while holding a write one
iIn a reentrant mutex, the previous commit added the ability to have
multiple readers. But if a thread owns a mutex, and requests a read
lock as well, the thread will be deadlocked by itself.
Avoid this by testing for the condition and handling separately.
All reentrant mutexes currently have no read lock attempts. So this
case is entirely theoretical for the moment.
Commit: 5f9cd5e0d7a9450faeed05bcc0a0a18f0c04ed99
https://github.com/Perl/perl5/commit/5f9cd5e0d7a9450faeed05bcc0a0a18f0c04ed99
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Change formal macro parameter name
This is in preparation for the next commit when it otherwise would be
confusing.
Commit: 24897896aa87f9771fd2cb590f6930d28124b9dc
https://github.com/Perl/perl5/commit/24897896aa87f9771fd2cb590f6930d28124b9dc
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embedvar.h
M intrpvar.h
M makedef.pl
M perl.h
M sv.c
Log Message:
-----------
Allow a reentrant thread to acquire write lock while holding read
Commit: 4ee672cb9e47b9a3f74dd3c2fbce0f70979f73ca
https://github.com/Perl/perl5/commit/4ee672cb9e47b9a3f74dd3c2fbce0f70979f73ca
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
mv reent unlock
Commit: aabdec6b19082d7da224513e7de6d9b87b5fca0c
https://github.com/Perl/perl5/commit/aabdec6b19082d7da224513e7de6d9b87b5fca0c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: debugging new read lock
Commit: 28dd6d56a4999d1bb72ff88ede34bb1a2aad71d9
https://github.com/Perl/perl5/commit/28dd6d56a4999d1bb72ff88ede34bb1a2aad71d9
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
debug locks
Commit: b6324f000d19c14a64bf8d4b5d56e0131694e654
https://github.com/Perl/perl5/commit/b6324f000d19c14a64bf8d4b5d56e0131694e654
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embedvar.h
M intrpvar.h
M makedef.pl
M perl.h
M sv.c
Log Message:
-----------
Make ENV_LOCK reentrant
Commit: 49b75936e36d71ac5fa876e32eb43d565c9160d0
https://github.com/Perl/perl5/commit/49b75936e36d71ac5fa876e32eb43d565c9160d0
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
env read
Commit: e4ed4cf8dad5f823cb63662be4c2bb716a6a52ba
https://github.com/Perl/perl5/commit/e4ed4cf8dad5f823cb63662be4c2bb716a6a52ba
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
perl.h white space in ENV READ LOCK defn
Commit: ad70bed77ef629ffa24bc988b9cfa1bebc683750
https://github.com/Perl/perl5/commit/ad70bed77ef629ffa24bc988b9cfa1bebc683750
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
locale read lock
Commit: e46766754ec1f1efe2e132cfdfbdb65ec5020edc
https://github.com/Perl/perl5/commit/e46766754ec1f1efe2e132cfdfbdb65ec5020edc
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
perl.h deadlock comments
Commit: c65e4aef8a81b5d6d828ee0fd2c44bd98ea4d8df
https://github.com/Perl/perl5/commit/c65e4aef8a81b5d6d828ee0fd2c44bd98ea4d8df
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M MANIFEST
M Makefile.SH
M dist/ExtUtils-ParseXS/lib/perlxs.pod
A lock_definitions.h
M pod/perlembed.pod
M pod/perlhacktips.pod
M regen.pl
A regen/lock_definitions.pl
M t/porting/regen.t
Log Message:
-----------
Add lock_definitions.h
Commit: 2ba0d6b3f65d5785c7935da1697cc2263e9c2da4
https://github.com/Perl/perl5/commit/2ba0d6b3f65d5785c7935da1697cc2263e9c2da4
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M ext/POSIX/POSIX.xs
M locale.c
M perl.h
Log Message:
-----------
add locks and expansions
Commit: a0257451d8efe892a82ffb1b7d6d5c8cae03f7ea
https://github.com/Perl/perl5/commit/a0257451d8efe892a82ffb1b7d6d5c8cae03f7ea
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M reentr.h
M regen/reentr.pl
Log Message:
-----------
regen/reentr.pl: Redefine lock if redefine function
The generated header may define a macro that overrides a libc function
call with an equivalent reentrant one. That means that the mutex lock
macros for that function are no longer correct; they are for the
original. This commit causes them to be changed to the revised one.
Typically the result will be less strict locking.
Commit: d1d88b07063b1f21a9395e00d5e3e9ab977dc2dc
https://github.com/Perl/perl5/commit/d1d88b07063b1f21a9395e00d5e3e9ab977dc2dc
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M win32/win32.c
Log Message:
-----------
win32.c: Wrap putenv with ENV_LOCK
Commit: be1945455778086f0708fa236ac3ea9449fbdca5
https://github.com/Perl/perl5/commit/be1945455778086f0708fa236ac3ea9449fbdca5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pp_sys.c
Log Message:
-----------
pp_sys: Add locks around some calls
Commit: 5625748ab92a9445bbe7f9dce8bf73cd26d11410
https://github.com/Perl/perl5/commit/5625748ab92a9445bbe7f9dce8bf73cd26d11410
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M doio.c
Log Message:
-----------
doio: Wrap functions with mutexes
Commit: f309ae32948fcd681cee9c3ca5f973ec69e962a7
https://github.com/Perl/perl5/commit/f309ae32948fcd681cee9c3ca5f973ec69e962a7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.c
Log Message:
-----------
perl.c: Wrap functions with mutexes
Commit: dec54ad495ce9c2bbc5abbf8a34a6ba416a03ed5
https://github.com/Perl/perl5/commit/dec54ad495ce9c2bbc5abbf8a34a6ba416a03ed5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M mg.c
M perl.c
Log Message:
-----------
sysconf lock
Commit: c1820ebf3144c560911e398c5a9b5f17e06de25e
https://github.com/Perl/perl5/commit/c1820ebf3144c560911e398c5a9b5f17e06de25e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
posix.xs sysconf comment
Commit: 245838cb3a268261fda90e8423317bca843c04a9
https://github.com/Perl/perl5/commit/245838cb3a268261fda90e8423317bca843c04a9
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Enable shortened critical section times
Since 5335601b6b6a88f5244d09fd2c1e531a1918ec12, there has been the
capability of having nested locks, where the inner one is necessary in
all conditions, and the outer one is desirable in just some conditions.
But this hasn't been enabled because in some Configurations it could
cause a deadlock, with the thread locking the ENV mutex, and then in a
nested call trying to lock it again. The previous commit made this mutex
reentrant, so the deadlock is gone.
Commit: bbbfaa5c1a3aa51ccfcd2ac7817f4c31150f30f4
https://github.com/Perl/perl5/commit/bbbfaa5c1a3aa51ccfcd2ac7817f4c31150f30f4
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c move gwLOCK defn; maybe leave in perl?
Commit: 556d4f1748232c0eadb75359e784f3a1d667c2d7
https://github.com/Perl/perl5/commit/556d4f1748232c0eadb75359e784f3a1d667c2d7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lock_definitions.h
M regen/lock_definitions.pl
Log Message:
-----------
lock definitions for emul
Commit: 6529f7d0bbea55d753142d2d874c03b413e960c5
https://github.com/Perl/perl5/commit/6529f7d0bbea55d753142d2d874c03b413e960c5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M embed.h
M embedvar.h
M ext/POSIX/POSIX.xs
M handy.h
M inline.h
M intrpvar.h
M locale.c
M makedef.pl
M mg.c
M perl.c
M perl.h
M pod/perlvar.pod
M proto.h
M sv.c
Log Message:
-----------
Add ability to emulate thread-safe locale operations
Locale information was originally global for an entire process. Later,
it was realized that different threads could want to be running in
different locales. Windows added this ability, and POSIX 2008 followed
suit (though using a completely different API). When available, perl
automatically uses these capabilities.
But many platforms have neither, or their implementation, such as on
Darwin, is buggy. This commit adds the capability for Perl programs to
operate as if the platform were thread-safe.
This implementation is based on the observation that the underlying
locale matters only to relatively few libc calls, and only during their
execution. It can be anything at all at any other time. perl keeps
what the proper locale should be for each category in a a per-thread
array. Each locale-dependent operation must be wrapped in mutex
lock/unlock operations. The lock additionally compares what libc knows
the locale to be, and what it should be for this thread at this time,
and changes the actual locale to the proper value if necessary. That's
all that is needed.
This commit adds macros to perl.h, for example "MBTOWC_LOCK_", that
expand to do the mutex lock, and change the global locale to the
expected value. On perls built without this emulation capability, they
are no-ops. All code in the perl core (unless I've missed something),
are changed to use these macros (there weren't actually many places that
needed this). Thus, any pure perl program will automatically become
locale-thread-safe under this Configuration.
In order for XS code to also become locale-thread-safe, it must use
these macros to wrap calls to locale-dependent functions. Relatively
few modules call such functions. For example, the only one I found that
ships with the perl core is Time::Piece, and it has more fundamental
issues with running under threads than this. I am preparing pull
requests for it.
Thus, this is not completely transparent to code like native-thread-safe
locale handling is. Therefore ${^SAFE_LOCALES} returns 2 (instead of 1)
for this type of thread-safety.
Another deficiency compared to the native thread safety is when a thread
calls a non-perl library that accesses the locale. The typical example is
Gtk (though this particular application can be configured to not be
problematic). With the native safe threads, everything works as long as
only one such thread is used per Perl program. That thread would then
be the only one operating in the global locale, hence there are no
conflicts. With this emulation, all threads are operating in the global
locale, and mutexes would have to be used to prevent conflicts. To
minimize those, the code added in this commit restores the global locale
when through to the state it was in when started.
A major concern is the performance impact. This is after all trading
speed for accuracy. lib/locale_threads.t is noticeably slower when this
is being used. But that is doing multiple threads constantly using
locale-dependent operations. I don't notice any change with the rest of
the test suite. In pure perl, this only comes into play while in the
scope of 'use locale' or when using some of the few POSIX:: functions
that are locale-dependent. And to some extent when formatting, but the
regular overhead there should dwarf what this adds.
This commit leaves this feature off by default. The next commit changes
that for the next few 5.39 development releases, so we can see if there
is actually an issue.
Commit: a09e9841bce4eeddd3cb580ee9bcd9d48dfdc4c0
https://github.com/Perl/perl5/commit/a09e9841bce4eeddd3cb580ee9bcd9d48dfdc4c0
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
maybe emul
Commit: 0a6d8833116ecccc63593abee383f6994fdfb22e
https://github.com/Perl/perl5/commit/0a6d8833116ecccc63593abee383f6994fdfb22e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M sv.c
Log Message:
-----------
more maybe
Commit: 558f8728640619c2409df88dda76ed6bbc747f9d
https://github.com/Perl/perl5/commit/558f8728640619c2409df88dda76ed6bbc747f9d
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M sv.c
Log Message:
-----------
Revert "more maybe"
This reverts commit 2a4f54586fcb557bbea226866777d78fd4ff65e0.
Commit: 3641ad01fa83d414f4ad66f39832926868a94657
https://github.com/Perl/perl5/commit/3641ad01fa83d414f4ad66f39832926868a94657
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
Revert "maybe emul"
This reverts commit 67f1c694e1610bec6e6c7a3ef77d7b742279681e.
Commit: 157ee8bfe473768a9457ff22adbdb62c4b0cfa9e
https://github.com/Perl/perl5/commit/157ee8bfe473768a9457ff22adbdb62c4b0cfa9e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
Add DEBUG_SETLOCALE_INCONSISTENCIES
Commit: 62ade0907143fbfeac89afa745ef04caed78f3fe
https://github.com/Perl/perl5/commit/62ade0907143fbfeac89afa745ef04caed78f3fe
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M perl.h
Log Message:
-----------
Enable DEBUG_SETLOCALE_INCONSISTENCIES
Commit: 6ef77fd5bd2a9e83d06290c6bf31e4913291eab4
https://github.com/Perl/perl5/commit/6ef77fd5bd2a9e83d06290c6bf31e4913291eab4
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
Make numeric standard inconsistent
Commit: e500a90673831f726c36ca303aa0a1709b15c01f
https://github.com/Perl/perl5/commit/e500a90673831f726c36ca303aa0a1709b15c01f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
M makedef.pl
M perl.h
Log Message:
-----------
Experimentally enable per-thread locale emulation
This is set to end in 5.39.10, but will give us field experience in the
meantime.
Commit: d2a9156f7248c33613eced9dee8ed7f217d14f55
https://github.com/Perl/perl5/commit/d2a9156f7248c33613eced9dee8ed7f217d14f55
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
Don't do thread-safe locales emulation on mingw
MingW when compiled with the Universal C runtime (UCRT) is thread-safe
with respect to locales, just as VS 2015 and later MSVCRT compilations
are.
However, versions not using UCRT cannot be compiled to emulate
thread-safe locale. I'm pretty sure this is due to a bug in the libc
strftime() function, having spent a bunch of hours working on this.
It often fails lib/locale_threads.t when using the emulation, but not
always. The failure is always in strftime().
What made me think it could be perl is another characteristic of the
failures. lib/locale_threads.t works by, in each thread, setting each
available locale category to a locale, different from any other category
in that thread, and as different as possible from the locale for the
corresponding category in any other thread. For example thread 0 might
have LC_CTYPE set to locale X, LC_NUMERIC to Y, LC_TIME to Z, etc.
Thread 1 would use a locale for LC_CTYPE, as different from X as
possible, meaning executing the same operation on thread 0 and thread 1
would yield different expected results. (It goes to some lengths to
calculate the biggest distance in the results.) Similarly LC_NUMERIC
would have something almost completely different from Y; and so on.
Then each thread executes a batch of iterations. Each iteration runs
all the operations I could find that perl uses that apply to LC_TYPE,
and all the ones that apply to each of the other categories. And
verifies that all the results are as expected.
Simultaneously, the other threads are executing their batch. It is
verifying that there is no bleed-through from one thread to another. If
the threads all have the same results as the other threads, we couldn't
detect if there is real bleed-through or not. This is solved by making
the results for each category as different as possible from any other
thread currently executing.
However, this isn't good enough. Every so many iterations, each thread
changes to use a new set of locales. This verifies that the locales can
be changed in a thread without that bleeding through to other threads.
And thread 0 is special. It harvests the other threads as they finish,
and keeps going for a while. This is to catch bugs in thread
completion, of which we've had a few.
MingW's failures all occur, when they occur, on the first iteration
following a switch to a new set of locales. That is suspiciously like
it is a race condition in cleaning up from the previous setting. But it
isn't the first test of the set of the first iteration of the next set.
It can be the 10th or so test. I added enough debugging statements to
convince me that it isn't perl.
This is the failing code in locale.c:
STRFTIME_LOCK;
int len = strftime(buf, bufsize, fmt, mytm);
STRFTIME_UNLOCK;
The returned 'buf' is not always correct.
T
The LOCK/UNLOCK macros on MingW with thread-safe emulation enabled, call
EnterCriticalSection(), and set the locales for the categories that
affect strftime() to the proper locale. Just to be sure. I tested
setting LC_ALL to the correct value. While in its uninterruptible (by
other locale handling code anyway) section, strftime() fills buf with
the result for the current locale (which STRFTIME_LOCK has set).
I added print statements within the critical section thusly
STRFTIME_LOCK;
DEBUG_U(PerlIO_printf(Perl_debug_log,
"calling strftime(%s), LC_ALL=%s\n",
fmt, setlocale(LC_ALL, NULL)));
int len = strftime(buf, bufsize, fmt, mytm);
DEBUG_U(PerlIO_printf(Perl_debug_log,
"return=%s, LC_ALL=%s\n",
buf, setlocale(LC_ALL, NULL)));
STRFTIME_UNLOCK;
On this platform, setlocale() expands to _wsetlocale(), a Windows libc
call.
Here's what they showed for one failure.
calling strftime(%b), LC_ALL=Hungarian_Hungary.1250
return=marc., LC_ALL=Hungarian_Hungary.1250
The 'a' in the Hungarian for March is supposed to be a U+00E1, with an
acute accent, so this is wrong.
strftime() also is passed a pointer to a struct tm, which is filled in
with various integers which indicate in this case which month the %b is
supposed to return. That it is returning something very much like márch
indicates those integers are correct.
Not shown in the example above are the other prints I added to verify
that we are indeed in a critical section. I didn't see a way to
actually test for this via a libc call, but one could use strace and
wade through the output. But there are print statements that print out
immediately before entering a critical section, and immediately after
leaving it. I verified that those prints indicate this code is in a
critical section.
I note that this box has actually not very many locales, so that the
distance between the results of various threads isn't all that large.
Pretty much all the locales are CP 1250, 1251, 1252, and 1257, and no
UTF-8 ones, so all locales are single byte. None of them map \XE1 into
plain 'a', which is what we are seeing returned, so the cleanup theory
seems wrong. Sometimes the return is '?' or a series of them,
indicating that the returned character is mojibake.
None of the locales I saw had 'marc\.' as a possible return. It appears
only here in the entire trace of all threads. This makes it again less
likely that it is a cleanup issue. But where did it come from?. I
don't know. The value for the C locale is 'Mar', so it didn't come from
there.
The localeconv() function is also broken in this Configuration. We long
ago figured out a workaround for that. I tried that same workaround for
strftime(), and it didn't help.
Commit: ab05f059ff662139372316eafd87addb25e827cd
https://github.com/Perl/perl5/commit/ab05f059ff662139372316eafd87addb25e827cd
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
Revert "Don't do thread-safe locales emulation on mingw"
This reverts commit 566751d91c6d868543ceddfe409a738283a465c4.
Commit: b0c62c8f0d9f37dba803cab51d1c5456e8dfe247
https://github.com/Perl/perl5/commit/b0c62c8f0d9f37dba803cab51d1c5456e8dfe247
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
DEBUG Lv to U
Commit: e0b1a0c7f0c440a7dc72b80b0ef2d63cf1bc44fe
https://github.com/Perl/perl5/commit/e0b1a0c7f0c440a7dc72b80b0ef2d63cf1bc44fe
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
extra debug
Commit: bce8752c3845ed024229ad6140206cc600c138ad
https://github.com/Perl/perl5/commit/bce8752c3845ed024229ad6140206cc600c138ad
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Maybe comment'
Commit: d19069858de6ba0c9c97729a2ee6aec9404a1207
https://github.com/Perl/perl5/commit/d19069858de6ba0c9c97729a2ee6aec9404a1207
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
Revert "locale_threads.t: Skip on OpenBSD and DragonFly threaded builds"
This reverts commit 1d74e8214dd53cf0fa9e8c5aab3e6187685eadcd, as they
have been modified
Commit: 625365535bf835309d97ec64ece9082675440c3f
https://github.com/Perl/perl5/commit/625365535bf835309d97ec64ece9082675440c3f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
Debug uselocale
Commit: d6badb637d2c5a9b3f19e5e2ff9d5c857c9a5c1e
https://github.com/Perl/perl5/commit/d6badb637d2c5a9b3f19e5e2ff9d5c857c9a5c1e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M sv.c
Log Message:
-----------
sv.c need to check for pv in sv in sv_setpvf
Commit: d5905db16238320f43a339b2a533985cf61b50e5
https://github.com/Perl/perl5/commit/d5905db16238320f43a339b2a533985cf61b50e5
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M sv.c
Log Message:
-----------
sv
Commit: efb8f4dc099a4ec1259e0a6e58010f1d86826849
https://github.com/Perl/perl5/commit/efb8f4dc099a4ec1259e0a6e58010f1d86826849
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
immediate use
Commit: f48c667d766ae16f01ec625e08c3545a37d41cc1
https://github.com/Perl/perl5/commit/f48c667d766ae16f01ec625e08c3545a37d41cc1
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
more immed
Commit: 8673b0810739c8ddecb1e857980579068eb73fbe
https://github.com/Perl/perl5/commit/8673b0810739c8ddecb1e857980579068eb73fbe
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
Revert "more immed"
This reverts commit 7213d12415bbd16283e624ea64f633e9abd2be48.
Commit: 60ef284cc0acdfddfded624e7d2ee07f96a4090f
https://github.com/Perl/perl5/commit/60ef284cc0acdfddfded624e7d2ee07f96a4090f
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Comments, white space
Commit: 3e0f71c74a3a393267fa86afbc6d65d24aa59dac
https://github.com/Perl/perl5/commit/3e0f71c74a3a393267fa86afbc6d65d24aa59dac
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
add is_cur_locale_utf8
Commit: 92c5daff221cefe0dccede1e2e41cbc7686c24c6
https://github.com/Perl/perl5/commit/92c5daff221cefe0dccede1e2e41cbc7686c24c6
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
start of shortening bad utf8 strerror
Commit: b22941be37a5627229650526e962de5b9499daff
https://github.com/Perl/perl5/commit/b22941be37a5627229650526e962de5b9499daff
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
Revert "start of shortening bad utf8 strerror"
This reverts commit 042cf1f20203857936fe147213f9af1c30e76188.
Commit: 424d4438a44017bc238f198ddc46ea8dd5b86602
https://github.com/Perl/perl5/commit/424d4438a44017bc238f198ddc46ea8dd5b86602
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M reentr.c
M regen/reentr.pl
M util.c
Log Message:
-----------
Wrap sysconf() calls with mutex locks
The environment is supposed to stay constant during these calls.
Commit: 5a47a5129dc8426610afca9c9359bca8028f057c
https://github.com/Perl/perl5/commit/5a47a5129dc8426610afca9c9359bca8028f057c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: wrap wcrtomb() calls with mutex lock
Commit: 7abd58bd1f24c6cea424e97490b1a309f4c3e4a7
https://github.com/Perl/perl5/commit/7abd58bd1f24c6cea424e97490b1a309f4c3e4a7
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M pp_sys.c
Log Message:
-----------
XXX ? pp_sys grent etc LOCKS
Commit: 5fdaf99a17fa88945ee4b03e25137d19b6e6340e
https://github.com/Perl/perl5/commit/5fdaf99a17fa88945ee4b03e25137d19b6e6340e
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M ext/POSIX/POSIX.xs
M iperlsys.h
M locale.c
Log Message:
-----------
final
Commit: 354afda2d57ac5600524bd58167e28fe038b0771
https://github.com/Perl/perl5/commit/354afda2d57ac5600524bd58167e28fe038b0771
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M t/porting/known_pod_issues.dat
Log Message:
-----------
podcheck: Add reference to strtok()
Commit: 57563448d1caf8d324f230790aeecef1c234ffc0
https://github.com/Perl/perl5/commit/57563448d1caf8d324f230790aeecef1c234ffc0
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M ext/POSIX/POSIX.xs
M locale.c
M perl.c
M perl.h
M reentr.c
M regen/lock_definitions.pl
M regen/reentr.pl
M regen/regen_lib.pl
M sv.c
M t/test.pl
M thread.h
M util.c
M win32/win32.c
Log Message:
-----------
lots
Commit: 6d9325a3c108464c6d37693db4331a39446bb27c
https://github.com/Perl/perl5/commit/6d9325a3c108464c6d37693db4331a39446bb27c
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M lib/locale.pm
Log Message:
-----------
locale.pm
Commit: 12f2b4f7acce10f05cee66a68622f96662eab89a
https://github.com/Perl/perl5/commit/12f2b4f7acce10f05cee66a68622f96662eab89a
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M lock_definitions.h
M regen/lock_definitions.pl
Log Message:
-----------
perlxs
Commit: 39afc661dc4b90d3f74eba990d6e4bc5d43fab61
https://github.com/Perl/perl5/commit/39afc661dc4b90d3f74eba990d6e4bc5d43fab61
Author: Karl Williamson <[email protected]>
Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths:
M win32/win32thread.h
Log Message:
-----------
Don't use CriticalSection on MingW without UCRT
I ran a test that uses mutexes extensively (and isn't in blead) on
MingW, and got lots of failures. After adding lots of trace statements,
and poring over logs, it became clear that the EnterCriticalSection()
calls (and kin) were not doing what they are supposed to do, locking out
other threads.
This locking mechanism is the default for Windows, but win32thread.h
allows for the use of a heavier-weight locking mechanism, selected by
a Configuration option, or by adding to it the single line
#define DONT_USE_CRITICAL_SECTION
Doing so "magically" caused those errors to go away.
This tells me that the error is in the CriticalSection libc calls.
I then ran the same test on MSVC, and the errors didn't happen. It is
using a later libc that the MingW I tested on is. From this, I infer
that this bug has been fixed in later libc versions. (This is true of
some other bugs we already have workarounds for.)
This commit causes the CriticalSection calls to not be used on MingW
when it isn't compiled to use the later libc version UCRT. I don't know
when libc was fixed, but until evidence to the contrary surfaces, I took
the easy way out, and assume any version is ok that is recent enough to
have _MSVC_VER defined .
Commit: 67107a4d80f8c1466062d1af21b8f863e3c34fe9
https://github.com/Perl/perl5/commit/67107a4d80f8c1466062d1af21b8f863e3c34fe9
Author: Karl Williamson <[email protected]>
Date: 2024-05-25 (Sat, 25 May 2024)
Changed paths:
M win32/win32thread.h
Log Message:
-----------
Revert "Don't use CriticalSection on MingW without UCRT"
This reverts commit 39afc661dc4b90d3f74eba990d6e4bc5d43fab61.
Commit: d07e7d354b4d83817b5121baec31c942e8c4dceb
https://github.com/Perl/perl5/commit/d07e7d354b4d83817b5121baec31c942e8c4dceb
Author: Karl Williamson <[email protected]>
Date: 2024-05-25 (Sat, 25 May 2024)
Changed paths:
M locale.c
M lock_definitions.h
Log Message:
-----------
extend experimental emulate locale safe thread
Commit: c50a024c5f0d4593897bd5fde0f2f1d9f7395b43
https://github.com/Perl/perl5/commit/c50a024c5f0d4593897bd5fde0f2f1d9f7395b43
Author: Karl Williamson <[email protected]>
Date: 2024-05-25 (Sat, 25 May 2024)
Changed paths:
M perl.h
M sv.c
Log Message:
-----------
upload
Commit: 570d6804db96ca7137c06853ce090ced87850393
https://github.com/Perl/perl5/commit/570d6804db96ca7137c06853ce090ced87850393
Author: Karl Williamson <[email protected]>
Date: 2024-05-25 (Sat, 25 May 2024)
Changed paths:
M locale.c
M perl.h
M t/loc_tools.pl
M t/test.pl
M thread.h
Log Message:
-----------
here
Commit: 2da22df1e4a6d78166d91e1955429f5e88821e0f
https://github.com/Perl/perl5/commit/2da22df1e4a6d78166d91e1955429f5e88821e0f
Author: Karl Williamson <[email protected]>
Date: 2024-05-25 (Sat, 25 May 2024)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
locale_thread 3 and 10
Compare: https://github.com/Perl/perl5/compare/3d63a3d7a349...2da22df1e4a6
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications