Branch: refs/heads/smoke-me/khw-env
Home: https://github.com/Perl/perl5
Commit: 6f2de805820c19f9ce7bb6fa8d6370003bd5301b
https://github.com/Perl/perl5/commit/6f2de805820c19f9ce7bb6fa8d6370003bd5301b
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
DEBUG_
Commit: 3da62fd02887910e3c106180cee09fef6544ab2a
https://github.com/Perl/perl5/commit/3da62fd02887910e3c106180cee09fef6544ab2a
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M locale.c
M perl.c
Log Message:
-----------
XXX appears to be an existing bug need multiplicity for cur_locale obj
SEE what is failing, maybe only non2008 nonsetlocale
Commit: 1257cf90972806c36f1995b6ed2019f843e92355
https://github.com/Perl/perl5/commit/1257cf90972806c36f1995b6ed2019f843e92355
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: debug with thread id
Commit: ff7332f01dc75a7d89d94a983715c565ea7ac65b
https://github.com/Perl/perl5/commit/ff7332f01dc75a7d89d94a983715c565ea7ac65b
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M embed.fnc
M proto.h
M util.c
Log Message:
-----------
XXX memlog
Commit: 4496fa54802cf45ff0e740da958d7f3f3a3ee8b4
https://github.com/Perl/perl5/commit/4496fa54802cf45ff0e740da958d7f3f3a3ee8b4
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX win workaround
Commit: 0dda1b643c6bc502789d9f4a6a0f98c4736bf0b2
https://github.com/Perl/perl5/commit/0dda1b643c6bc502789d9f4a6a0f98c4736bf0b2
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
just after XXX win workaround
Commit: 77fd542b9cedc2b840b8af3e55dad5e477c009e4
https://github.com/Perl/perl5/commit/77fd542b9cedc2b840b8af3e55dad5e477c009e4
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M lib/locale_threads.t
M t/run/locale.t
Log Message:
-----------
locale_threads
Commit: 32632655b95244fd5241b440254e503c1142909d
https://github.com/Perl/perl5/commit/32632655b95244fd5241b440254e503c1142909d
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
XXX locale_threads.t: Add alarm
Commit: 5a78a87932322aa885fc9feb781924c1933f352e
https://github.com/Perl/perl5/commit/5a78a87932322aa885fc9feb781924c1933f352e
Author: Karl Williamson <[email protected]>
Date: 2023-05-30 (Tue, 30 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Debug locking
Commit: 4e746aa8b9f21d83cddacd424b57af159fa9b35b
https://github.com/Perl/perl5/commit/4e746aa8b9f21d83cddacd424b57af159fa9b35b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
M t/run/switchDx.t
Log Message:
-----------
debug thread
Commit: 003fa80f29e368aa89d0c91dc4bc0db455974d5d
https://github.com/Perl/perl5/commit/003fa80f29e368aa89d0c91dc4bc0db455974d5d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M dist/threads/threads.xs
M inline.h
Log Message:
-----------
threads.xs DEBUG_U
Commit: eee67224d81252c9b48b8b795f63d98808e6fc18
https://github.com/Perl/perl5/commit/eee67224d81252c9b48b8b795f63d98808e6fc18
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
XXX: UCRT mingw is not likely locale-thread safe
In order for mingw to be locale-thread safe, it needs UCRT which current
packages don't tend to have. But this commit adds a XXX -DUCRT
Commit: 370a60ecc3b256a18f575874d2b96091a261fd5e
https://github.com/Perl/perl5/commit/370a60ecc3b256a18f575874d2b96091a261fd5e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
loc_tools
Commit: e7c8376c3ad93777dc168841b924e8f3f120cdd1
https://github.com/Perl/perl5/commit/e7c8376c3ad93777dc168841b924e8f3f120cdd1
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
XXX t/loc_tools.pl: Temp debug
Commit: 6d1ed78b71dafcf2760a70e4e1bcb737a22b882c
https://github.com/Perl/perl5/commit/6d1ed78b71dafcf2760a70e4e1bcb737a22b882c
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: define locale mutex under more cirumstances
Prior to this commit, it wasn't defined if we aren't paying attention to
locales; but that doesn't mean they don't exist, and the operations that
affect them are still callable; so they should have a mutex to prevent
one thread from overwriting another's.
Commit: 0dc87e9dfc18f28a010f0796c833fdc34e60f210
https://github.com/Perl/perl5/commit/0dc87e9dfc18f28a010f0796c833fdc34e60f210
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
perl.h: Also recognize -DNO_THREAD_SAFE_LOCALE
It would be a reasonable Configure option to say
-Accflags=-DNO_THREAD_SAFE_LOCALE
Commit: 7f0e9a0b09b1d046a98db38e72d16f128765df5d
https://github.com/Perl/perl5/commit/7f0e9a0b09b1d046a98db38e72d16f128765df5d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: configthreadlocale() error checking
The code previously just assumed the system call always worked. But it
may not if the CRTL is wrong; this surfaced on a mingw compile.
It's better to have it fail outright than to continue and silently give
a wrong answer.
Commit: dc8c8ab1eb8bf8ea7ea93f1957f8b44de4916e04
https://github.com/Perl/perl5/commit/dc8c8ab1eb8bf8ea7ea93f1957f8b44de4916e04
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Turn mutex warning into a panic
This was my attempt to keep going and try to recover after a problem was
found: an unbalanced number of locks/unlocks. However, in looking at
a many-million line execution trace, I realized that the recovery likely
doesn't lead to correct results, and we should quit immediately when it
happens.
Commit: d5e4d625cef9b82f9262d98ada8498c88bc1a74e
https://github.com/Perl/perl5/commit/d5e4d625cef9b82f9262d98ada8498c88bc1a74e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: White space, comments only
Commit: c617895606725d927ce3c9615a843f64aa6d870b
https://github.com/Perl/perl5/commit/c617895606725d927ce3c9615a843f64aa6d870b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h change lock debugging text
Commit: ef0539586b0dc330d8d7e380a9b4c8ba67eb8706
https://github.com/Perl/perl5/commit/ef0539586b0dc330d8d7e380a9b4c8ba67eb8706
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/harness
Log Message:
-----------
XXX t/harness temp tweaks
Commit: 7b66c77c9617cdb3b8cb1ff17f64cc7868e44321
https://github.com/Perl/perl5/commit/7b66c77c9617cdb3b8cb1ff17f64cc7868e44321
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M pod/perllocale.pod
Log Message:
-----------
perllocale Xxx start of changes
Commit: 98d77e5bce19fa1d7bcd814dae6926cd239c4bba
https://github.com/Perl/perl5/commit/98d77e5bce19fa1d7bcd814dae6926cd239c4bba
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M lib/locale_threads.t
Log Message:
-----------
XXX ruler lib/locale_threads.t
Commit: 9625904f79a287f0811020e5f4c5a76dff2f41b3
https://github.com/Perl/perl5/commit/9625904f79a287f0811020e5f4c5a76dff2f41b3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M hints/freebsd.sh
M hints/openbsd.sh
Log Message:
-----------
XXX try out bsd 2008
Commit: e49cdb6d7646bbdb106eed171c0b048db979db30
https://github.com/Perl/perl5/commit/e49cdb6d7646bbdb106eed171c0b048db979db30
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Don't use locale items unless using locale
If we are configured to not look at locales at all, we shouldn't be
looking at threaded locales nor POSIX 2008 ones.
This commit fixes a situation that is not likely at all to show up in
real life, but I stumbled across it in testing weird configurations.
Commit: 609cf2c1bdf4f45604aab87f306613efbc03c583
https://github.com/Perl/perl5/commit/609cf2c1bdf4f45604aab87f306613efbc03c583
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Remove redundant set
This ||= is useless, as just above we've already set MULTIPLICITY if
USE_ITHREADS is set.
Commit: 593a6c681bb8c57977233c25d8cf28b275ec04cc
https://github.com/Perl/perl5/commit/593a6c681bb8c57977233c25d8cf28b275ec04cc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
XXX temp: lib/locale.t: debug
Commit: 6eb5183a1065c78b4bd2f15c48315b528f51f00d
https://github.com/Perl/perl5/commit/6eb5183a1065c78b4bd2f15c48315b528f51f00d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t FILE debug
Commit: 3767827360a6e9e371e4afef1d5bd010516ca4d5
https://github.com/Perl/perl5/commit/3767827360a6e9e371e4afef1d5bd010516ca4d5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t
Commit: 627118707ccba64d686d2e812a828a2db661bad6
https://github.com/Perl/perl5/commit/627118707ccba64d686d2e812a828a2db661bad6
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M pod/perlhacktips.pod
Log Message:
-----------
XXX incomplete perlhacktips:
Commit: 515b7fd3296450e73664db8b98c9200506527cc9
https://github.com/Perl/perl5/commit/515b7fd3296450e73664db8b98c9200506527cc9
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M handy.h
Log Message:
-----------
XXX cygwin debugging small macro buf
Commit: f35a8aa04bf8a966498b3d592b058025383358a2
https://github.com/Perl/perl5/commit/f35a8aa04bf8a966498b3d592b058025383358a2
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M iperlsys.h
Log Message:
-----------
iperlsys.h: TODO need to look at adding mutexes
Commit: d05d27621e261374d6bf7530813a117a27766797
https://github.com/Perl/perl5/commit/d05d27621e261374d6bf7530813a117a27766797
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M regen/reentr.pl
Log Message:
-----------
reentr.pl: XXX about needing mutex
Commit: b959e4862bd636b89a5c1f395d4d8dfa5df7c23f
https://github.com/Perl/perl5/commit/b959e4862bd636b89a5c1f395d4d8dfa5df7c23f
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M regexec.c
Log Message:
-----------
regexec.c: XXX has cast to U8 for some reason
Commit: d49a096274b3bcb9057b231f82c3f25bc8612b84
https://github.com/Perl/perl5/commit/d49a096274b3bcb9057b231f82c3f25bc8612b84
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M sv.c
Log Message:
-----------
perlapi: Combine sv_eq(), sv_eq_flags() entries
Commit: 4d80511ebc7b44c9d4c500ef540d69adb12ecdbd
https://github.com/Perl/perl5/commit/4d80511ebc7b44c9d4c500ef540d69adb12ecdbd
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M t/porting/known_pod_issues.dat
Log Message:
-----------
perlxs
Commit: 1465ee2807170123ccd791b558f8e23b967aa19e
https://github.com/Perl/perl5/commit/1465ee2807170123ccd791b558f8e23b967aa19e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M dist/IO/IO.xs
Log Message:
-----------
XXX check if using ppport IO.xs: Remove fallback code furnished by ppport
Commit: 0ecfda601d55ba4cfd85082976a8d37facb5a3c3
https://github.com/Perl/perl5/commit/0ecfda601d55ba4cfd85082976a8d37facb5a3c3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M pp.c
Log Message:
-----------
Debug Windows memory usage in pp_study
Commit: e0200856031b642dbb40869fd59a4f28ee77d857
https://github.com/Perl/perl5/commit/e0200856031b642dbb40869fd59a4f28ee77d857
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M pod/perlmod.pod
Log Message:
-----------
perlmod
Commit: 978e4e151ea29306aaee0accc635c69e35fcab57
https://github.com/Perl/perl5/commit/978e4e151ea29306aaee0accc635c69e35fcab57
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
XXX perl.h: Debugging mutex lock'
Commit: 618bde0d77c0ee1038cee6eedaf7acd75a4da60d
https://github.com/Perl/perl5/commit/618bde0d77c0ee1038cee6eedaf7acd75a4da60d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Rename S_calculate_LC_ALL_string()
Its return is a string. Add the suffix '_string' to emphasize that
Commit: a53831cca0c2ea3509cae8e42edf7b94af3fed30
https://github.com/Perl/perl5/commit/a53831cca0c2ea3509cae8e42edf7b94af3fed30
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M cpan/version/t/07locale.t
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: 63a9cd50b6c225283d06f8506808a9896bef5078
https://github.com/Perl/perl5/commit/63a9cd50b6c225283d06f8506808a9896bef5078
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use proper macro
querylocale_c() likely will expand to the correct thing, but it isn't
defined until higher in the stack of locale handling layers. Instead
use the construct that is lower in the stack.
Commit: 974c8f291fa0091d7d53e55184369588237c2ff8
https://github.com/Perl/perl5/commit/974c8f291fa0091d7d53e55184369588237c2ff8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move some static functions within file
This places them more conveniently.
Future commits will continue this reordering until like-level and
like-kind functions are close to each other physically in the file.
Commit: bf81e52c7e33476fdad9d75ee77b639b18f5a107
https://github.com/Perl/perl5/commit/bf81e52c7e33476fdad9d75ee77b639b18f5a107
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Replace an assumption by a cpp check
This commit adds a preprocessor directive to check if we are running on
a POSIX 2008 system, rather than just assume we are if the earlier
possibilities weren't the case. And it causes a compile time error if
none pan out.
Commit: 598d4c3f91c12756d83a123a707c08f79a19e5b5
https://github.com/Perl/perl5/commit/598d4c3f91c12756d83a123a707c08f79a19e5b5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't compile without LC_ALL under POSIX 2008
The code assumes that if you have POSIX 2008, you have LC_ALL. This
adds a compile-time error check to prevent someone from finding that out
the harder way.
Commit: 75b83b6177152f2571687c8c3e5b9d52e87d3be5
https://github.com/Perl/perl5/commit/75b83b6177152f2571687c8c3e5b9d52e87d3be5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a parallel array adjacent to its mates
This is in preparation for making their parallelism more obvious
Commit: 566b001bb1e6f1c763e5403aab835f017b0e6967
https://github.com/Perl/perl5/commit/566b001bb1e6f1c763e5403aab835f017b0e6967
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
locale.c: Add warning if function return ignored
Commit: 2938e2ddab58d847b0a942dc687bdc97de8d1718
https://github.com/Perl/perl5/commit/2938e2ddab58d847b0a942dc687bdc97de8d1718
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Properly identify reason for placeholder in arrays
This is needed to handle the case where a locale category passed in (via
Perl_setlocale) is unknown to perl, hence is considered illegal.
The previous comments were misleading.
Commit: 53515dd4667412d7a475d251dd9bb41f959d1b15
https://github.com/Perl/perl5/commit/53515dd4667412d7a475d251dd9bb41f959d1b15
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
Change return of S_get_category_index_nowarn
This is in preparation for it being called from more than a single
place. Instead of returning -1 on error, it returns an out-of-bounds
value 1 greater than the largest legal value. There is a placeholder
entry in all the arrays this can be indexed into for that illegal value.
This means if it somehow gets used, we wont get a segfault, like we
would on the -1, but instead a value that will show up as wrong, but not
crash.
Commit: 15ae6791a128d3dc49922cd6bbe9f19c69ee86aa
https://github.com/Perl/perl5/commit/15ae6791a128d3dc49922cd6bbe9f19c69ee86aa
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/XS-APItest/t/locale.t
M locale.c
Log Message:
-----------
locale.c: Check for illegal input category
It is possible for Perl_setlocale() to be called with a category value
that is illegal, or is just unknown to us. There is a function that
maps category numbers into our internal indexing scheme. It maps any
unknown value to the same index, larger than any legal one.
Prior to this commit, there was no check that the input was valid; we
went off processing it as if it were valid. That there was an element
in the tables that corresponds to this index prevented any illegal
memory acceses, but it is better to check early and return an error.
Commit: 6dc043bbf456fff8d11eb258775a6d0964a33b63
https://github.com/Perl/perl5/commit/6dc043bbf456fff8d11eb258775a6d0964a33b63
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Revamp initialization of parallel arrays
This new method eliminates a lot of #ifdef's in each of the array
initializations, consolidating all the array entries for a category
to be in a single group. This facilitates ease of checking that things
are correct and the addition of new items.
A Factory pattern to generate all these could be used instead. But I
don't know how to do that in cpp (I suppose some recursive #includes
would do it uglily), and I don't think it's worth it to do a regen
script.
There is a reason for the apparently weird indentation, that future
commits will reveal.
Commit: 0934eeac4f9df1e87d6d46bc52e37528bc157c0e
https://github.com/Perl/perl5/commit/0934eeac4f9df1e87d6d46bc52e37528bc157c0e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
Rename SETLOCALE_LOCK to LOCALE_LOCK
This mutex isn't just about the setlocale function; it applies to all
locale related critical sections.
Commit: 3aa5b7cc936931d557715a5a1edbffc717850c14
https://github.com/Perl/perl5/commit/3aa5b7cc936931d557715a5a1edbffc717850c14
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid runtime strlen() calls
The lengths of these strings are known at compile time. This commit
creates an array of those lengths to avoid calling strlen() in a loop
unnecessarily.
Commit: 7f31a02aae830e74a5056bc67a7f2c4095d2ddc8
https://github.com/Perl/perl5/commit/7f31a02aae830e74a5056bc67a7f2c4095d2ddc8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Replace loop with a switch()
locale.c uses tables to specify data and actions about the different
locale categories on the system. The categories are opaque integers
specified by libc, so they have to be mapped to indices into the tables
for our use. Prior to this commit, that was done by a loop iterating
over each possibility until it found a match. This commit changes that
to use a switch() statement, so that the compiler can choose what the
best way to implement things are.
Commit: 611f371678893863ab986a3513c6d26bb04246ae
https://github.com/Perl/perl5/commit/611f371678893863ab986a3513c6d26bb04246ae
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Refactor S_get_category_index()
There is actually only one place where the locale category can be input
from code outside this file. Now that the previous commit added
validation to that one spot, The rest of the calls should already be
validated, and if the input is bad, it means that there is a serious
error in the logic of this code, and warrants panicking.
This commit collapses two functions into one plus a macro to call it
with the right parameters. It moves the warning into the one place
where it is useful, and panics if there is a problem otherwise.
Commit: ec57455154e0574c13edd9db338eb1534f66a014
https://github.com/Perl/perl5/commit/ec57455154e0574c13edd9db338eb1534f66a014
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
M makedef.pl
M perl.h
Log Message:
-----------
XXXleaks: Remove PL_cur_LC_ALL for non-Windows
This value is now held in a slot in PL_curlocales[] for non-Windows
platforms.
Commit: 385d82d1bca83de6cb819f49c5815c0f4216dad5
https://github.com/Perl/perl5/commit/385d82d1bca83de6cb819f49c5815c0f4216dad5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Rename S_myquerylocale_i()
This name doesn't effectively describe it. The new name is
querylocale_2008_i, indicating it is for the POSIX 2008 API.
Commit: fd9789defe8afc46afff30ff22d3864f8a89fe03
https://github.com/Perl/perl5/commit/fd9789defe8afc46afff30ff22d3864f8a89fe03
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Separate setlocale into bool and query
There are two ways that POSIX specifies to change the locale.
The earlier interface is setlocale(), which either returns NULL on
failure, or a pointer to global static memory containing the character
string of the changed locale. That may very well be the input locale
name, or the platform can return something that to it is equivalent.
The second, from the 2008 standard, is newlocale() which returns either
NULL on failure or a pointer to an opaque object, and there is no
official way to find out what the current locale is. (The next proposed
version of the Standard will finally add this capability.) Some
platforms have introduced a querylocale() to get this information.
(glibc has a hidden function to do so.)
Note that the return value of setlocale() is problematic, valid only
until the next call to that function, which might be immediately from
another thread. The value, if needed, has to be saved to a per-thread
buffer in a critical section with the function call. That buffer
presents opportunities for leaking or being destroyed too early,
resulting in heap use after being freed.
And it turns out that the value is often not needed; often what is
needed is only if the operation failed or succeeded.
This commit starts the process of limiting the use of the changed value
to just where its really needed. It does this by changing the
newlocale() form to return success/failure, removing all the macros that
think you can set and get the value in the same operation, and minor
fixups.
Commit: 75d14555e5d7e87f48e69f2d9fb603912a238214
https://github.com/Perl/perl5/commit/75d14555e5d7e87f48e69f2d9fb603912a238214
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Rmv less_dicey_void_setlocale_r()
This function is simple, but almost entirely redundant with
less_dicey_bool_setlocale_r(). A simple wrapper to the latter suffices.
The commit also changes the macros for this to use void_setlocale_r() as
the base which the other two are defined in terms of. This avoids a
runtime calculation of the internal index corresponding to the input
locale category except when we are about to panic.
Commit: b9624e067234bacbee7dc0c5f208d342e31bab04
https://github.com/Perl/perl5/commit/b9624e067234bacbee7dc0c5f208d342e31bab04
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid a runtime calculation
As in the previous commit, this rewrites the void_setlocale_X macros so
as to not need a runtime calculation except in the very rare event of
executing a panic.
Commit: b9a9c9dd55d426565cb33d2619c217ffd316879e
https://github.com/Perl/perl5/commit/b9a9c9dd55d426565cb33d2619c217ffd316879e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add missing panic
In just the POSIX 2008 implementation of setting locales, the panic upon
failure had been omitted. The whole point of a void call is so that the
caller doesn't have to check the return code of something that should
never fail, and can just assume that if it gets to the next statement
everything worked as expected.
Commit: f43d1481d7855fd080b08ca8c58785b1c1a1625b
https://github.com/Perl/perl5/commit/f43d1481d7855fd080b08ca8c58785b1c1a1625b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Reorder code, add comments
There are three separate implementations of an internal API for locale
handling. This commit makes them stand out in the code, and makes the
ordering within each implementation parallel to the other
implementations.
And adds explanatory comments.
Commit: 3c318430d025c029ab92713aee52167e43d4b886
https://github.com/Perl/perl5/commit/3c318430d025c029ab92713aee52167e43d4b886
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove one-off macro
This was used to prevent an unnecessary copy. But the next commit will
change the macro it was avoiding to not always do the copy. That will
avoid more copies than this would. The copy that results will still be
unnecessary in some cases, but there is a net gain.
Commit: 082833683d7c679b5abbab58c61b1419d0aec880
https://github.com/Perl/perl5/commit/082833683d7c679b5abbab58c61b1419d0aec880
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add a convenience macro query_nominal_locale_i
This is used when the locale needs to be what an external caller would
see. Adding this simplifies some code.
Commit: 9162d2fbcd0a3a42a924a823da07302b9eb9f982
https://github.com/Perl/perl5/commit/9162d2fbcd0a3a42a924a823da07302b9eb9f982
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move copy from macro to called function
Not all returns from the function need to be copied. Thus this
eliminates some extraneous copies.
Commit: 4b820b54a85b059b87d65718dd1accf092483259
https://github.com/Perl/perl5/commit/4b820b54a85b059b87d65718dd1accf092483259
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_toggle_locale_i: Move some assert()s, initialization
Commit: b91d4a5237476d6d65f5a4b3b8885b31e9db2c95
https://github.com/Perl/perl5/commit/b91d4a5237476d6d65f5a4b3b8885b31e9db2c95
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Add extra debug info to panics
This commit adds some call stack information to the message that gets
output when about to panic because of an unanticipated failure in
the locale handling code.
Commit: c6af2ca7787e6f0ec512e2bd24bc2371a76f329c
https://github.com/Perl/perl5/commit/c6af2ca7787e6f0ec512e2bd24bc2371a76f329c
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add void_setlocale_with_caller macros
These pass a file and line number of further up the calling stack to a
panic so as to improve debugging information.
Commit: c619c43a60c84506624867d970b80c1aeb68fea3
https://github.com/Perl/perl5/commit/c619c43a60c84506624867d970b80c1aeb68fea3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Initialize PL_curlocales at startup
Previously this was done later, which meant other code had to take them
being uninitialized into consideration over and over at runtime. That
code is hereby removed.
This commit enables further simplifications to follow in later commits.
Commit: 96a134cccacdd1ead7151dd3ba9c48ae68584bde
https://github.com/Perl/perl5/commit/96a134cccacdd1ead7151dd3ba9c48ae68584bde
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use void_ macro form when ignoring return
The void_ form panics if unsuccessful; and here we are relying on it
being successful.
Commit: b56eaa4f3fbc41c064572886452710c25e00e290
https://github.com/Perl/perl5/commit/b56eaa4f3fbc41c064572886452710c25e00e290
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't exclude LC_ALL in loop
This function was setting each individual locale category to the same
value. But if all the subcomponents are the same, so is LC_ALL. No
need to special case it
Commit: feae890e1c6694c4f4b6e557bb7c1c5788ea4efb
https://github.com/Perl/perl5/commit/feae890e1c6694c4f4b6e557bb7c1c5788ea4efb
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change function to return void
It just returns the input value unchanged; this is a no-op.
Commit: cf2bd0248dd97534c5f83fbc93542a21bccb9ba9
https://github.com/Perl/perl5/commit/cf2bd0248dd97534c5f83fbc93542a21bccb9ba9
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Remove no-longer needed parameter and computation
When a locale category changes, LC_ALL necessarily also does. When we
are looping changing a bunch of categories, LC_ALL's intermediate values
are of no importance; only the final value matters. Prior to this
commit, this was handled by setting a flag to not do the recalculation
until the final loop iteration.
But a more elegant solution is to not recalculate it all, until the
value is actually needed. So the code is changed to invalidate the
stored value if an individual locale category changes, and then do the
calculation only when needed and invalidated.
Commit: 279daa2dc68d35cdae9bd4415613f411c863799d
https://github.com/Perl/perl5/commit/279daa2dc68d35cdae9bd4415613f411c863799d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change parameter name for static function
category_locales_list is somewhat more descriptive than individ_locales
Commit: b076ac42be96beb1e84ea27bd3ee50c5b76274fc
https://github.com/Perl/perl5/commit/b076ac42be96beb1e84ea27bd3ee50c5b76274fc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change API of S_calculate_LC_ALL_string
This function looks at all the individual locale categories on the
system. So far it is called with either an array of the current values
for them, or an object from which those values can be derived.
But the object is always the current locale object in effect. The
querylocale_i() macro can be used to get this information without
needing to have to name the object. Therefore the object parameter is
superfluous, and the function could be notified to use querylocale_i by
making the array parameter NULL.
But right now you get one or the other. There are two signatures to
this function, depending on the platform capabilities.
This commit collapses those into one signature, the one with an array
parameter. And then NULL is used to trigger calling querylocale_i().
The reason to do this is that future commits will want to pass an array
to this function, even when it is compiled on a platform that currently
doesn't allow that option.
Commit: 05f03ed64656b33648b1fdf565667bc9af19ef5e
https://github.com/Perl/perl5/commit/05f03ed64656b33648b1fdf565667bc9af19ef5e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Simplify S_get_LC_ALL_display
The previous enhancements to calculate_LC_ALL_string means this function
can just call it without having to loop itself.
Commit: 6d8e30fff24fd25cbe96bb2771fed4e7fe827ddc
https://github.com/Perl/perl5/commit/6d8e30fff24fd25cbe96bb2771fed4e7fe827ddc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slight refactoring of S_querylocale_2008_i
This just moves some asserts, adds comments and a branch prediction, and
replaces a variable used in only one place by it value.
Commit: 6263376b2f54d8eb2edd7098fabbe4d0cef388ff
https://github.com/Perl/perl5/commit/6263376b2f54d8eb2edd7098fabbe4d0cef388ff
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Reorder #if clauses
Currently, the two clauses are about the same length, but in the next
commit the current first clause will become a lot longer.
The principal that it's easier to read code that disposes of the easy
cases first comes into play, so, reverse the clause order.
Commit: 6b7c5fe75c462182fd92814672c37c8c9f217d82
https://github.com/Perl/perl5/commit/6b7c5fe75c462182fd92814672c37c8c9f217d82
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Inline only remaining use of querylocale_l()
Future commits would make this macro need to be a function anyway, and
since there is only one use of it, just inline it. The assertion it
defines is no longer needed, as we know that the one place it is now
placed is valid.
This also adds explanatory comments
Commit: f2472dfb954ac12eb50c9df7756446d8651bd827
https://github.com/Perl/perl5/commit/f2472dfb954ac12eb50c9df7756446d8651bd827
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Flatten two nested if's
These can be combined into a single more cohesive construct
Commit: c411cff3e9edcee8fe4087a43dd8c540f946905d
https://github.com/Perl/perl5/commit/c411cff3e9edcee8fe4087a43dd8c540f946905d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Workaround some libc POSIX 2008 bugs
Some systems try to make C.UTF-8 the same locale as plain C or POSIX.
The latter two names are synonymous according to the POSIX Standard, but
C.UTF-8 isn't. It might be possible to implement them all with one
locale internally, but in some cases, at least, that isn't transparent
to us, leading to wrong results.
This commit adds a workaround for this problem.
See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269375
Commit: 283dec2c2071cfe2634315e8502b94273a41fbce
https://github.com/Perl/perl5/commit/283dec2c2071cfe2634315e8502b94273a41fbce
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX pod?: locale.c: Add optional locking around querylocale()
The querylocale() libc call on some systems is non-standard, and
experience has shown it isn't necessarily thread-safe, especially on
Darwin. It does appear to be safe on modern *BSD boxes. This commit
adds a locking mechanism that can be set up in a hints file.
Commit: 6e4b46074b97647025e8b718cce889eea2088212
https://github.com/Perl/perl5/commit/6e4b46074b97647025e8b718cce889eea2088212
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a #define, and add a comment
Commit: f94a2d77a860d741b65fef91b13ee3b9f5ac87bf
https://github.com/Perl/perl5/commit/f94a2d77a860d741b65fef91b13ee3b9f5ac87bf
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Split up S_setlocale_from_aggregate_LC_ALL
This splits out the parsing of the LC_ALL string from the locale
setting. Future commits will use the parse portion in more places.
The new code doesn't panic on syntax errors, unlike the old. This is
because we should never panic on user input, but return failure instead.
Commit: 983657832c6512640b8b4c8072e7ec39ab48fa60
https://github.com/Perl/perl5/commit/983657832c6512640b8b4c8072e7ec39ab48fa60
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Create is_disparate_LC_ALL()
This macro uses the results of the new Configure probe that tells us how
the platform represents disparate LC_ALL strings.
Commit: 3b35db793f18589c6efa1cfa55aeb32af7169510
https://github.com/Perl/perl5/commit/3b35db793f18589c6efa1cfa55aeb32af7169510
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move two helper functions for POSIX 2008 implementation
Commit: ad8c4947f94ecc25349524369f7a401dc7bd4924
https://github.com/Perl/perl5/commit/ad8c4947f94ecc25349524369f7a401dc7bd4924
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
Add development aid for simulating LC_ALL fake positional notation
There are two ways that systems represent LC_ALL when not all individual
categories are in the same locale. One is
category_name=value
pairs, and the other is a positional notation
cat1_value|cat2_value|cat3_value|...
where the separator (here '|') varies between platforms, and the
position of a value determines which category it applies to.
This commit adds the ability to simulate a positional box on a
name=value box, so that many bugs can be found without having to access
a real positional box.
Commit: 23e770c0ffff141bdedd8f67fc3d0dc436a017ca
https://github.com/Perl/perl5/commit/23e770c0ffff141bdedd8f67fc3d0dc436a017ca
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add support for LC_ALL positional notation
Some platforms use a positional notatiol for LC_ALL when not all
categories are the same, like
C/English/C.UTF-8/ ...
This commit takes advantage of the new Configure probe to now handle
those when parsing an LC_ALL string.
Commit: fac1da3ede53b76a6765a3729a9baa07311d1838
https://github.com/Perl/perl5/commit/fac1da3ede53b76a6765a3729a9baa07311d1838
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: use variable to avoid extra comparisons
The mnemonic name also makes it clearer. Instead of comparing two
variables multiple times, set a boolean once with the result, and use
that.
Commit: 390f4d4a15dd8c82288b5ed64465ceeb48abec21
https://github.com/Perl/perl5/commit/390f4d4a15dd8c82288b5ed64465ceeb48abec21
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Windows Use .ACP for sys default fallback
Prior to this commit the locale handling code thought that Windows used
"" for the system default locale. But it's not, and to get to the
change in the initialization code, the "" had already been tried and
failed.
Commit: 7ce735b826c5f7f639a180ac46f46fcbf9ee6670
https://github.com/Perl/perl5/commit/7ce735b826c5f7f639a180ac46f46fcbf9ee6670
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c, perl.h: comments, white space
Commit: 35581946a1088c7b4b320c427e933306bc7f9c29
https://github.com/Perl/perl5/commit/35581946a1088c7b4b320c427e933306bc7f9c29
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX maybe not for windows: S_calculate_LC_ALL_string(): save value after
calculation
On some platforms the string returned by this function also needs to be
kept up-to-date in an array element. This commit changes the function
to do the update (after the potentially expensive calculation) as a
side-effect, so as to avoid unnecessary recalculations.
Commit: cf3b7fb2414c49ed9e39e940310f33630adcf1da
https://github.com/Perl/perl5/commit/cf3b7fb2414c49ed9e39e940310f33630adcf1da
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Precalculate LC_ALL string boiler plate length
When not all categories have the same locale, the internal
representation of LC_ALL is a sequence of 'cat=value' pairs, separated
by semi-colons. The only things that vary are the values. This commit
sums up the non-varying portions at compile time.
Commit: 09c61023d51ec563bf3692c7154f8002b68cddec
https://github.com/Perl/perl5/commit/09c61023d51ec563bf3692c7154f8002b68cddec
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
S_querylocale_2008_i: Add caller's line# param
This will be helpful in debugging
Commit: ba1b53a72a516ab3f4c0cddf069994b968259817
https://github.com/Perl/perl5/commit/ba1b53a72a516ab3f4c0cddf069994b968259817
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Calculate native LC_ALL strings
There are two methods of representing non-uniform LC_ALL strings. One
is name=value pairs, and the other is positional. Now that there is a
Configure probe that detects the details, calculate_LC_ALL_string() is
here enhanced to have a parameter passed to it as to which variety the
output should be in, and to generate the proper format.
Commit: eb602f3283926b67f41ea48f0c9a3c394cf458f8
https://github.com/Perl/perl5/commit/eb602f3283926b67f41ea48f0c9a3c394cf458f8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Revamp S_stdize_locale()
We are now able to parse and construct non-uniform LC_ALL strings. A
big part of this function was trying to deal with these, but now that
can be farmed out.
It's now extremely unlikely this function will now actually change
anything, based on recent field experience. To save copying that
therefore won't likely ever be needed, this function now returns its
input if unchanged, and a mortalized copy if it unlikely does need to be
changed. That means it no longer needs a buffer reserved for it.
The input is going to be the static global buffer pointed to by the
return of setlocale(). That means calls to this function need to be
protected by mutexes in threaded systems, and the result safely copied
during the critical section. This requirement is unchanged by this
commit.
Commit: 34b8623858a2ed5fd9204424b52c44bb2d900814
https://github.com/Perl/perl5/commit/34b8623858a2ed5fd9204424b52c44bb2d900814
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M perl.c
M sv.c
Log Message:
-----------
Rename the buffer in S_less_dicey_locale
It was reusing the buffer formerly used by S_stdize_locale(), but now
its only use is from this function, so name it accordingly.
Commit: 197e54b4ffc21cb800129de4899a53cd21a4a7f1
https://github.com/Perl/perl5/commit/197e54b4ffc21cb800129de4899a53cd21a4a7f1
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_stdize_locale() Rmv testing for spurious '='
This code had been added to counteract occasional cases of improper
syntax in a locale string. Other fixes to the locale handling have
resulted in those cases not now showing up. It was never clear if the
changes that code made to the locale name were actually the right thing
to do.
Now, we have the ability to correctly parse locale strings on all
platforms tested on. If there is a problem with a platform, the parsing
discovers it and returns an error, which stdize_locale() checks for and
also returns an error if found, and so on back up the line to the user
calling code.
Commit: 0a347a8c37954b390eba3c9f058d515e84e312a4
https://github.com/Perl/perl5/commit/0a347a8c37954b390eba3c9f058d515e84e312a4
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M hints/aix.sh
M locale.c
M proto.h
Log Message:
-----------
XXX perldelta other pod: Compile stdize_setlocale() only if requested
XXX perldelta, and where else?
This very old function has been whittled down to just looking for
newlines in returned locales. Those just haven't come up in platforms
we have tested on in recent years. Therefore, this is extra work on
most, or perhaps all platforms. Should a platform show that this is
still needed, its hints file can be changed to add a Configure option.
Commit: 60f15d97f860403ac741bde64717b3be7a8967f5
https://github.com/Perl/perl5/commit/60f15d97f860403ac741bde64717b3be7a8967f5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Properly handle broken setlocale(LC_ALL, NULL)
Early AIX versions could return a truncated value in this case.
https://www.ibm.com/support/pages/apar/IV22097
Tests were skipped as a result by
59b4d2932ceb16662879bca2a22315c3597276ae.
This commit adds an easy workaround for this bug, changes the AIX hints
page to enable it; the next commit will revert the test skipping.
Commit: c07aece309be753dbf2f765814f0af0a93804eb8
https://github.com/Perl/perl5/commit/c07aece309be753dbf2f765814f0af0a93804eb8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M lib/locale.t
M t/lib/warnings/regexec
M t/run/locale.t
Log Message:
-----------
Revert "AIX: skip some locale tests"
This reverts commit 59b4d2932ceb16662879bca2a22315c3597276ae.
which was a temporary fix for 5.38.0.
And now a workaround is in place for the defective libc implementation.
Commit: fdfd91d473704758c14529055dd1a9dd468dc4f8
https://github.com/Perl/perl5/commit/fdfd91d473704758c14529055dd1a9dd468dc4f8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Create STDIZED_SETLOCALE_LOCK
Its best to use a mutex associated with the operation. This creates one
for stdized_setlocale(), which is just an alias for another mutex.
Commit: cec31c4221c15b60aae97b5a20583662925cea8d
https://github.com/Perl/perl5/commit/cec31c4221c15b60aae97b5a20583662925cea8d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a macro definition earlier in the file
Commit: 623996b3e317b4a30e85f34bd8301d238c07b29b
https://github.com/Perl/perl5/commit/623996b3e317b4a30e85f34bd8301d238c07b29b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Change DEBUG statements to include non-0 errno
This is very helpful when things go wrong.
Commit: db0b9a13b33ae91ac38ecab52b557c324db53b75
https://github.com/Perl/perl5/commit/db0b9a13b33ae91ac38ecab52b557c324db53b75
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only define string constant on platforms that need it
Commit: c0bfd40fe16e4790e10ff7a9bf081691dd94bfbc
https://github.com/Perl/perl5/commit/c0bfd40fe16e4790e10ff7a9bf081691dd94bfbc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Perl_sync_locale(): Best to change to global locale
This didn't actually cause a bug AFAIK, but prior to this commit, the
comment was wrong. The comment makes sense, so bring the code into
compliance.
The reason it was not a bug is that even though the thread remained in
the per-thread locale, it uses the global locale API to set things.
Commit: 836ec370fe73a7ef9b68c9f710b7f86dd3963254
https://github.com/Perl/perl5/commit/836ec370fe73a7ef9b68c9f710b7f86dd3963254
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c(): Use LC_ALL if available
Now that we have code that works on platforms with differing ways of
representing LC_ALL, we can use it instead of looping through all the
subcomponents.
Commit: d3c76c26ab23cbf11b33b3c16e0f73ee859df7f7
https://github.com/Perl/perl5/commit/d3c76c26ab23cbf11b33b3c16e0f73ee859df7f7
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Extract code into a function
This is in preparation for a future commit where it will be called from
more than one place.
Commit: 477941587d5b241267f86146fe3b9c965679cf39
https://github.com/Perl/perl5/commit/477941587d5b241267f86146fe3b9c965679cf39
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Extract code into separate function
This is in preparation for it being called from a second location in a
future commit.
Beyond the move, the only changes are to white space, and a
PERL_UNUSED_ARG.
Commit: e012385f2a9e5e3083a8e6e9b051a17cdf96ef4f
https://github.com/Perl/perl5/commit/e012385f2a9e5e3083a8e6e9b051a17cdf96ef4f
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Complement initialization of boolean
This was my attempt to make the difference listing in the next commit
smaller, but it didn't help much.
Commit: 43bb3d0a8ee77e4f574668a1ce346cb376330381
https://github.com/Perl/perl5/commit/43bb3d0a8ee77e4f574668a1ce346cb376330381
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rework locale initialization loop
The previous code was always hard to understand, with a self-modifying
loop. I finally figured out a clearer way to do it, by using an enum
with all the possibilities, and a switch statement that sets up the loop
for each, or decides this possibility isn't valid on this platform. The
first possibility that works exits the loop.
Commit: fa5203e18ac55c26d71cd45f7f3df3dc5133bd53
https://github.com/Perl/perl5/commit/fa5203e18ac55c26d71cd45f7f3df3dc5133bd53
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv redundant sanity check
This was done only on Windows, to verify that the perl was operating on
a system that has a working _configthreadlocale(), when our Configure
expects it to. But the previous commit now executes this function
anyway at the endif of initialization, so that is soon enough to fail if
something is wrong, making this redundant.
Commit: e571481ef612cf7f956f563e40950238b55ca896
https://github.com/Perl/perl5/commit/e571481ef612cf7f956f563e40950238b55ca896
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M utf8.h
Log Message:
-----------
silence utf8.h warning
Commit: a0918108725342ace946c1503c8f3cddc21de340
https://github.com/Perl/perl5/commit/a0918108725342ace946c1503c8f3cddc21de340
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Extract code into a macro
This is in preparation for a simplification in future commits.
Commit: 543a84fcc832229ba0842b63c93111d6ecb4edc3
https://github.com/Perl/perl5/commit/543a84fcc832229ba0842b63c93111d6ecb4edc3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Extend macro from previous commit
Actually this creates a macro of the same name that accomplishes the
same thing, but specifically for Windows.
Commit: e1e41bbbdf21d9f50730084c365aeef05ca7d78a
https://github.com/Perl/perl5/commit/e1e41bbbdf21d9f50730084c365aeef05ca7d78a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't over allocate array
This previously added an extraneous unused element.
Commit: 48c8e2b32a9d26be7f371638c9bed14f88abb66b
https://github.com/Perl/perl5/commit/48c8e2b32a9d26be7f371638c9bed14f88abb66b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Bring declaration inside #if's
This would now cause a compilation error if the code gets screwed up.
Commit: b6a6444a2833a680c7659a9aa5672cc90335557f
https://github.com/Perl/perl5/commit/b6a6444a2833a680c7659a9aa5672cc90335557f
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slight refactor of switch_to_global_locale()
Now that we can better handle any legal LC_ALL string, we can just use
LC_ALL when available.
Commit: 53d9f90e2dd1812b188a89164fd940be875bf44c
https://github.com/Perl/perl5/commit/53d9f90e2dd1812b188a89164fd940be875bf44c
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M proto.h
M utf8.c
Log Message:
-----------
Perl__byte_dump_string(): Properly handle NULL input
Instead of an assert, this returns (nil) and things can proceed.
Commit: 120ba7910c6338171eb60bdde756917ff1da692c
https://github.com/Perl/perl5/commit/120ba7910c6338171eb60bdde756917ff1da692c
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Combine two condiionals to rm special case
The case removed is handled transparently below.
Commit: 61264ae32ba68070031fec5f3047a885aa6c87a8
https://github.com/Perl/perl5/commit/61264ae32ba68070031fec5f3047a885aa6c87a8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Change var name
This variable is really the LANG environment variable; change its name
to correspond.
Commit: 1cb21686cfeb06d4e34a875078d1638358ff1cef
https://github.com/Perl/perl5/commit/1cb21686cfeb06d4e34a875078d1638358ff1cef
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Add comments
Commit: 31af109f8228a9c8994545a71cef121959713236
https://github.com/Perl/perl5/commit/31af109f8228a9c8994545a71cef121959713236
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Combine logic
Prior to this commit, the logic was repeated for non-LC_ALL versus
LC_ALL; the latter being executed in a loop. The logic is not really
trivial and it would be better to have just one instance, so that it
can't get out-of-sync. To do this, this commit moves everything to the
loop, but sets it up for the non-LC_ALL case to just do a single
iteration.
It also avoids going out to the environment and fetching LANG unless
needed. The previous behavior got LANG unconditionally if the loop was
used. It is quite likely that not every locale category would have a
corresponding environment variable set, so that fetch likely wasn't
wasted. But in order to combine things, the checking for LANG is done
in the loop.
The bottom line is that there is extra code required to combine the two
pieces of logic, but I believe the combining of this into a single
paradigm is worth it.
Commit: 7d3966347b200e73c75a93b755a67f4953d4a450
https://github.com/Perl/perl5/commit/7d3966347b200e73c75a93b755a67f4953d4a450
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX tests; linux doesn't allow this: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 in Perl run with that environment:
print POSIX::setlocale(LC_NUMERIC, "");
Commit: a0d947bfccd2c284ba3398f200f70c5d84bb4c30
https://github.com/Perl/perl5/commit/a0d947bfccd2c284ba3398f200f70c5d84bb4c30
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
Change parameter name for S_bool_setlocale_2008_i
THe new name is more descriptive
Commit: 71bf1cbcd9bdac77780cc8e5fcbc0db2b3f784dc
https://github.com/Perl/perl5/commit/71bf1cbcd9bdac77780cc8e5fcbc0db2b3f784dc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Improve debug statements
Commit: 3403a892bfe52d494812f16a07c7800cd5106b37
https://github.com/Perl/perl5/commit/3403a892bfe52d494812f16a07c7800cd5106b37
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Check for failure return
Previously, this would forge ahead; looking at the code it seems it
would fail later on anyway, but it is best to check and fail
immediately.
Commit: 3001daef3a508d328f0d6a5fcdd1cac85de8d2e2
https://github.com/Perl/perl5/commit/3001daef3a508d328f0d6a5fcdd1cac85de8d2e2
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Separate out failure code
This causes the failure to be handled by going to effectively a
tail-call spot. This is in preparation for it being used in another
place.
Commit: 26bc060d3f7819f452b3de7b1156e1a0ecd7af0b
https://github.com/Perl/perl5/commit/26bc060d3f7819f452b3de7b1156e1a0ecd7af0b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move declaration closer to first use
Commit: 013f2ede75d8d4915f1435db24fa37b19c634e7d
https://github.com/Perl/perl5/commit/013f2ede75d8d4915f1435db24fa37b19c634e7d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Extract two debug statements into macros
This is in preparation for them being called from other places
Commit: cd174b963d9497c8a6224daced02aad4758b3b16
https://github.com/Perl/perl5/commit/cd174b963d9497c8a6224daced02aad4758b3b16
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Indent/outdent some lines
This is to make the differences in the next commit smaller
Commit: 4448f687dc7944a2d6462f24ba97b837d10b09f4
https://github.com/Perl/perl5/commit/4448f687dc7944a2d6462f24ba97b837d10b09f4
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv obsolete code
A "" input locale has been expanded by the time it gets here, so this is
never true; it is a relict from previous implementations.
Commit: e04c2ca37b35f80ebc2cd20a4230e38a98e07856
https://github.com/Perl/perl5/commit/e04c2ca37b35f80ebc2cd20a4230e38a98e07856
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Copy function call.
This removes a function call from a single place and inserts it in
several. The reason is that it makes a future commit cleaner.
Commit: 8a3157552d62c95687d7c387ce16b22426f3ffe0
https://github.com/Perl/perl5/commit/8a3157552d62c95687d7c387ce16b22426f3ffe0
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
S_update_PL_curlocales(): Add parameter
This is the ultimate caller's line number, which will be useful in a
future commit; unused for now.
Commit: 0a417b188bc906327679e4b1e4a3f3a78510f6c0
https://github.com/Perl/perl5/commit/0a417b188bc906327679e4b1e4a3f3a78510f6c0
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_update_PL_curlocales_i(): Reverse order of conditionals
The new ordering will play better with future commits
Commit: 314dbd1447e8dc7af4cc6e18f14f5583f987610d
https://github.com/Perl/perl5/commit/314dbd1447e8dc7af4cc6e18f14f5583f987610d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c: Update comments, white-space in 2 functions
Commit: 77f832bee660514615a6355b90eb75fff0db3b98
https://github.com/Perl/perl5/commit/77f832bee660514615a6355b90eb75fff0db3b98
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid an (unlikely) leak
As the comments say, this eventuality is unlikely to happen, but if it
did, it would mean a leak.
Commit: 215b82e68c82e1f9fcae6da95f3b3a5f55a636f3
https://github.com/Perl/perl5/commit/215b82e68c82e1f9fcae6da95f3b3a5f55a636f3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Remove recursion
This converts recursive calls of this function into an iterative loop.
Besides the obvious benefits, some platforms don't even require a loop,
as a future commit will do.
Commit: 8adb50e7a3ccbac4ca5f0f3f4363ef984dffbb22
https://github.com/Perl/perl5/commit/8adb50e7a3ccbac4ca5f0f3f4363ef984dffbb22
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
Rmv unused function: S_setlocale_from_aggregate_LC_ALL
Previous commits have removed all uses of this
Commit: 85158ce6e864c5014bdd21e9801e598c9a03a557
https://github.com/Perl/perl5/commit/85158ce6e864c5014bdd21e9801e598c9a03a557
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
S_parse_LC_ALL_string: Squash if categories are same locale
It turns out that some platforms return something like
C/C/C/C/C/C
instead of just the equivalent 'C' when querying LC_ALL. This can lead
to extra work for us, and unnecessary noise when displayed to the user.
This commit changes parse_LC_ALL_string() to look for this case, and to
coalesce the result to just the single value, which is returned in just
the 0th element of the input array, leaving the other elements unused.
It makes this behavior overridable by an input flag, which will be used
in a future commit.
Commit: f641b8cd3ad42c7dba1a0bfd9fb6d85eb804d747
https://github.com/Perl/perl5/commit/f641b8cd3ad42c7dba1a0bfd9fb6d85eb804d747
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_update_PL_curlocales(): accept arbitrary LC_ALL string
Prior to this commit, this function couldn't handle an LC_ALL string
that wasn't just a single locale for all categories. But now that we
can parse a disparate string, update this function to use that.
Commit: 7e20f2df0048797e63203d7d11d4e47d17527664
https://github.com/Perl/perl5/commit/7e20f2df0048797e63203d7d11d4e47d17527664
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_setlocale_2008_i(): Use single newlocale() if available
On some platforms the newlocale() libc function when setting LC_ALL can
handle an input locale that sets some categories to one thing; and
others to another; etc. On such platforms, we don't have to loop
through all categories individually.
This commit changes to use that if the #define indicating its
availability is set.
Commit: 7e4a285cd6e1c0dd977410a2e5e1cc83500d85f3
https://github.com/Perl/perl5/commit/7e4a285cd6e1c0dd977410a2e5e1cc83500d85f3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M perl.c
M sv.c
Log Message:
-----------
XXX Partial need vutil.c first Rmv underlying numeric
This object, only on POSIX 2008 systems, is no longer used. I've been
keeping it around in case I could figure out if it had any remaining
utility, but don't see any.
Commit: de26bb9cbd0ad8124512bd134464a12c27516a9d
https://github.com/Perl/perl5/commit/de26bb9cbd0ad8124512bd134464a12c27516a9d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use function already designed for the purpose
Instead of several initialization calls, call the overarching one that
includes them all.
Commit: f6eaf1c2dae085367965d98d93c9d37404b58346
https://github.com/Perl/perl5/commit/f6eaf1c2dae085367965d98d93c9d37404b58346
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid a duplicate conditional
Commit: 748a8af8fe7d3106a6a19dd685c661d6a1a0a798
https://github.com/Perl/perl5/commit/748a8af8fe7d3106a6a19dd685c661d6a1a0a798
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Initialize PL_cur_locale_obj
Commit: 5e826b15048a336484a6d8bb0a2e2730dd6a0ecf
https://github.com/Perl/perl5/commit/5e826b15048a336484a6d8bb0a2e2730dd6a0ecf
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX Initial guess as to newlocale() capability
glibc has a newlocale() that can handle disparate LC_ALL string input.
This commit is until more data is gathered.
Commit: 1c81a802ac47788bec79382614f1b54d44cc4314
https://github.com/Perl/perl5/commit/1c81a802ac47788bec79382614f1b54d44cc4314
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
Add caller location info to e.g. RESTORE_LC_NUMERIC
These help pinpointing the error source when a failure occurs.
Commit: 5f2aea8ade1bfe5a477843572228e6b198e659a3
https://github.com/Perl/perl5/commit/5f2aea8ade1bfe5a477843572228e6b198e659a3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX tests,delta: Handle glibc extra locale categories
glibc has several locale categories not found in standards. This commit
provides minimal support.
Commit: db3ff6beaaa1f6442ae3d63041baf87ddeeac717
https://github.com/Perl/perl5/commit/db3ff6beaaa1f6442ae3d63041baf87ddeeac717
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
Properly handle ignored locale categories
perl can be compiled to ignore arbitrary locale categories that are
actually on the system. This has never worked transparently, especially
on platforms that use postional notation to represent LC_ALL when not
all categories are set to the same locale. The system calls will return
a string containing the ignored category, and we dont know how to handle
that.
This large commit fixes that by compiling to include the information
about all categories on the system. But if a category is to be ignored,
instead we set it to the C locale, and thwart any effort to change it
away from that locale.
Commit: 467242fa6d4924e9b73cb00414c21537a2632559
https://github.com/Perl/perl5/commit/467242fa6d4924e9b73cb00414c21537a2632559
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Revise warnings when locale init has issues
Previously, we didn't know the possible locale categories on this
system, so grepped through the environment outputting anything that
begins with 'LC_'. But now we do know all of them, and can just use
those.
Commit: e410229fe81890b162ed3525fb8eb1b793f5fec3
https://github.com/Perl/perl5/commit/e410229fe81890b162ed3525fb8eb1b793f5fec3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
S_calculate_LC_ALL_string: Add parameter
This parameter is set only when this function is being called by
Perl_setlocale(). This is purely for performance It causes this
function to use a particular buffer and avoid extra copying.
Commit: b090b0ccf0c639185f7b3e2f02d91e8d8aef1389
https://github.com/Perl/perl5/commit/b090b0ccf0c639185f7b3e2f02d91e8d8aef1389
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
XXX why not failing tests before this?Create S_native_querylocale_i() and use
it
This new function differs from the already existing plain
querylocale_i() in that it returns in the platform's native format,
instead of the internal=to-perl one.
The internal one is used generally so that code doesn't have to cope
with multiple possible formats. The format of the new locale in
Perl_setlocale() is going to be in native format. We effectively
translate it into our internal one at the input edge, and that is used
thereafter.
But until this commit, the translation back to native format at the
output edge was incomplete.
This mostly worked because native format differs from locale.c
internal format in just two ways.
One is the locale for LC_NUMERIC. perl keeps it generally in the C
locale, except for brief intervals which higher level code specifies,
when the real locale is swapped in. (Actually, this isn't quite true.
If the real locale is indistinguishable from C as far as LC_NUMERIC
goes, perl is happy to use it rather than C, so as to save swapping.)
locale.c had the code in it to translate the internal format back to
native, so it worked for this case.
The other is LC_ALL when not all categories are set to the same locale.
Windows and Linux use 'name=value;' pairs notation, while things derived
from BSD (and others) use a positional notation in which only the values
are given, and the system knows which category a given value is for from
its position in the string. Perl worked fine for the name=value pairs
notation, because that is the same as its internal one, so no
translation got done, but until this commit, there were issues on
positional platforms. This seldom got in the way since most people, if
they set the locale at all, will just set it to some single 'foo'.
What this commit effectively does is change Perl_setlocale() to return
the value in the native format which the libc functions are expecting.
This differs from what it used to return only on platforms which use the
positional notation and only for LC_ALL when not all categories are set
to the same locale.
The new function subsumes much of the work previously done in
Perl_setlocale(), and it is able to simplify some of that work.
Commit: e943614ea011992a74f4b914ef824154e2a8d0b8
https://github.com/Perl/perl5/commit/e943614ea011992a74f4b914ef824154e2a8d0b8
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
XXX why: locale.c: revise new_LC_ALL
This is because we don't want to use querylocale which is expecting
things to already be set up; instead pass what should happen to finish
the setup.
Commit: 56f17887563d8c028af04c08c79cd21a8b5cbd5e
https://github.com/Perl/perl5/commit/56f17887563d8c028af04c08c79cd21a8b5cbd5e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove no longer used macro
Commit: 133e694ecb9871d47ef28c4ec65e68a1925801bf
https://github.com/Perl/perl5/commit/133e694ecb9871d47ef28c4ec65e68a1925801bf
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Add setlocale_i()
This macro is defined on Configurations where a simple unadorned
setlocale works for categories that don't have perl record keeping
involved.
This allows Perl_setlocale() to avoid a lot of unnecessary overhead for
these.
This commit defines it only for unthreaded perls.
Commit: 457e83d7b3ec2bfb9dfe32779fda054c548419ad
https://github.com/Perl/perl5/commit/457e83d7b3ec2bfb9dfe32779fda054c548419ad
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move S_update_PL_curlocales()
Prior to this commit, it was only for POSIX 2008, but a future commit
will want to use it when not POSIX 2008.
Commit: acada600c81c191f518726877e7d2808faf9b62d
https://github.com/Perl/perl5/commit/acada600c81c191f518726877e7d2808faf9b62d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
savepv if threaded, unused I think
Commit: 768c07b5cef172cacd18ce72b72e161741c5a823
https://github.com/Perl/perl5/commit/768c07b5cef172cacd18ce72b72e161741c5a823
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv unexecuted statement after croak
Commit: 3de5d1d2aff191c5bb298e59cb41b67f08803419
https://github.com/Perl/perl5/commit/3de5d1d2aff191c5bb298e59cb41b67f08803419
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Improve collation debugging output
This adds a special case for when the buffer is empty
Commit: 0be47d1380b95cf9cd51290aef36a63ce9321c19
https://github.com/Perl/perl5/commit/0be47d1380b95cf9cd51290aef36a63ce9321c19
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX introductory file comments
Commit: b050f51fcfb37464184b3409826f7e8bb6befe6e
https://github.com/Perl/perl5/commit/b050f51fcfb37464184b3409826f7e8bb6befe6e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only compile workaround on platforms needing it
This code works around a bug on Windows with regard to localeconv().
And the bug only exists on such platforms that have thread-safety.
Prior to this commit, the code was compiled on platforms lacking
thread-safety, so was unnecessary.
Commit: d319ab06add518e2617b274ba3fa5128ced22e67
https://github.com/Perl/perl5/commit/d319ab06add518e2617b274ba3fa5128ced22e67
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M intrpvar.h
M locale.c
Log Message:
-----------
locale.c: Use wider than U32 for a counter
Processes that change locales are incrementing a counter that could
eventully wrap if the process is long-lived. It's not likely, but it's
also easy to make this a U64 if available, and make the chances of it
happening much closer to zero.
Commit: a463cae9addf31391072a1d40ddd4a3ec1e9005a
https://github.com/Perl/perl5/commit/a463cae9addf31391072a1d40ddd4a3ec1e9005a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move setting errno out of critical section
I doesn't matter much, but its better practice to make critical sections
as small as possible.
Commit: 44996aa6d80f61fdfb8993a48040185afa60879e
https://github.com/Perl/perl5/commit/44996aa6d80f61fdfb8993a48040185afa60879e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
get_win32_message_utf8ness() Fix unlikely case
This function calls get_locale_string_utf8ness_i(). The API of that
function changed earlier in the 5.37 series, and this was not updated to
correspond. It is calling it with category 0, wich it thinks is an
out-of-bounds value, but it really is LC_ALL on Windows. Thus it
actually probably doesn't lead to a failure, but it theoretically could
fail if LC_ALL is not uniform.
So it's better to not succeed just by accident. This commit changes to
now use LC_CTYPE as the category. And if someone has managed to compile
Windows without LC_CTYPE, it now just says that the input string isn't
UTF-8, as without LC_CTYPE, you've only got the C locale.
Commit: 875fc37858ef54cd39dc0d9f15b6bcf825b952ac
https://github.com/Perl/perl5/commit/875fc37858ef54cd39dc0d9f15b6bcf825b952ac
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only define a structure if needed
Without LC_NUMERIC, this structure is unused, and generates a compiler
warning.
Commit: 69cf6275327437b9588c41cdb1dedb32651b22da
https://github.com/Perl/perl5/commit/69cf6275327437b9588c41cdb1dedb32651b22da
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add a debugging statement
This can be helpful in tracing what's happening with nl_langinfo()
calls.
Commit: 6fa67fc77d5b4c96b956e0b537832b8d2b86f338
https://github.com/Perl/perl5/commit/6fa67fc77d5b4c96b956e0b537832b8d2b86f338
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
perlapi: Improve wording for Perl_langinfo()
Commit: df3290efc2e31cc99d24ef5a4770cb53c53d6228
https://github.com/Perl/perl5/commit/df3290efc2e31cc99d24ef5a4770cb53c53d6228
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Critical section around initializing a global
This code should only have a race in the unlikely event that it is an
embedded perl, and there is another perl already running. But best to
avoid the possibility at all.
Commit: 71960857c7dceaf85e44a1049a9c3364397dba44
https://github.com/Perl/perl5/commit/71960857c7dceaf85e44a1049a9c3364397dba44
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move #ifdef DEBUGGING
This moves it up to precede a block that only does debugging info.
Commit: c5488b8f70430d303b301afea7943996653db87d
https://github.com/Perl/perl5/commit/c5488b8f70430d303b301afea7943996653db87d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_stdize_locale: Set errno if fails
Commit: 908052f9d4cabbbc68469198f0532118e332e731
https://github.com/Perl/perl5/commit/908052f9d4cabbbc68469198f0532118e332e731
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX experimental: Define setlocale_i() on unsafe threaded builds
On threaded Configurations where thread-safe locale handling is not
available, perl automatically does a modicum of prevention of races by
executing locale changes in a critical section, and copying the results
to a thread-safe location.
This commit defines setlocale_i() on such builds. This macro is used to
bypass more complex handling required in fully thread-safe builds.
I don't see how this changes thread-safeness on the unsafe builds, and
it passes the tests, but I'm considering it experimental for now, until
later in the development cycle.
Commit: 472112f569868f785be1d42466294abf9c6a014d
https://github.com/Perl/perl5/commit/472112f569868f785be1d42466294abf9c6a014d
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/porting/bincompat.t
Log Message:
-----------
skip bincompat.t
Commit: 81b2e10c4abf2b6f16a10f2540670b76be533515
https://github.com/Perl/perl5/commit/81b2e10c4abf2b6f16a10f2540670b76be533515
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M hints/darwin.sh
Log Message:
-----------
darwin hints querylocale race in earlier darwins?
Commit: c68d5ba986f25c73cd3bfbe797d7c65038dae7f6
https://github.com/Perl/perl5/commit/c68d5ba986f25c73cd3bfbe797d7c65038dae7f6
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M intrpvar.h
Log Message:
-----------
intrpvar.h: Comments
Commit: f5d37eeb5cff8532710f56fc6d5b0639d7dead7a
https://github.com/Perl/perl5/commit/f5d37eeb5cff8532710f56fc6d5b0639d7dead7a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
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 proto.h
M sv.c
Log Message:
-----------
emul
Commit: 5ada3b45a30e2c442dc6c35ef09d9501b529d787
https://github.com/Perl/perl5/commit/5ada3b45a30e2c442dc6c35ef09d9501b529d787
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M intrpvar.h
M locale.c
M makedef.pl
M sv.c
Log Message:
-----------
XXX finish msg: locale.c: Improve Windows thread initialization
Commit: 903458588aee4fc9a7d59bd1cf7e826ff2ec9b72
https://github.com/Perl/perl5/commit/903458588aee4fc9a7d59bd1cf7e826ff2ec9b72
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change to use enum type
Instead of 'unsigned int', use the more restricted enum.
Commit: eed578c671cea6b2700469233e6a62da0281dfc7
https://github.com/Perl/perl5/commit/eed578c671cea6b2700469233e6a62da0281dfc7
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Compile utf8ness on platforms that need it
These two functions need to be compiled on certain other platforms than
what was happening.
Commit: 74da9bf940e8f6bd844b962255cf3ccc0c880911
https://github.com/Perl/perl5/commit/74da9bf940e8f6bd844b962255cf3ccc0c880911
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Silence compiler warning on some platforms
This argument isn't used on some platforms.
Commit: f7e1bac07a683b8377c00dce5e731f15abfce1de
https://github.com/Perl/perl5/commit/f7e1bac07a683b8377c00dce5e731f15abfce1de
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M Configure
M locale.c
M metaconfig.h
M perl.h
Log Message:
-----------
f Configure
Commit: b2684c4ef8cd08657e704b6eeebd62a784cd9eab
https://github.com/Perl/perl5/commit/b2684c4ef8cd08657e704b6eeebd62a784cd9eab
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M Configure
M locale.c
M metaconfig.h
M perl.h
Log Message:
-----------
Revert "f Configure"
This reverts commit 12d2cfd3fbf933bbbfb52a448d8bdda62f7ac100.
Commit: 36a26c9cb6f7f45b35832ab373e9851adfa16178
https://github.com/Perl/perl5/commit/36a26c9cb6f7f45b35832ab373e9851adfa16178
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
drop when Configure fixed
Commit: e2f227c1eabfc72c07a99371ceb163204347824e
https://github.com/Perl/perl5/commit/e2f227c1eabfc72c07a99371ceb163204347824e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity
Commit: 9bba3c63036ea9a007fe586176c4895d996cfd43
https://github.com/Perl/perl5/commit/9bba3c63036ea9a007fe586176c4895d996cfd43
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Move comment
Commit: 37968f7b1b9a196842e026936b5bc92939891f22
https://github.com/Perl/perl5/commit/37968f7b1b9a196842e026936b5bc92939891f22
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
Maybe drop: makedef.pl: Move code
Commit: 6750382f2b7e8f046285dc762f7e5069e132b6bd
https://github.com/Perl/perl5/commit/6750382f2b7e8f046285dc762f7e5069e132b6bd
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Remove obsolete symbol
Commit: 5106f1f0ad3c0d19599b4182ae16a3406dbf1f64
https://github.com/Perl/perl5/commit/5106f1f0ad3c0d19599b4182ae16a3406dbf1f64
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
Add DEBUG_SETLOCALE_INCONSISTENCIES
Commit: 9e8c542b222b13881a1798048048d21d46b76b0b
https://github.com/Perl/perl5/commit/9e8c542b222b13881a1798048048d21d46b76b0b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
Fix mingw locale builds
Experience has shown that mingw with an older runtime library doesn't
have more modern Windows features working properly. This commit causes
it to compile with workarounds, but allows the user to
-Accflags='-DUCRT_USED'
to indicate to Configure that the code will be using the modern CRT.
Commit: 2a48ae6ba352c8b4f19d206635c32b5b37b0a958
https://github.com/Perl/perl5/commit/2a48ae6ba352c8b4f19d206635c32b5b37b0a958
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
Enable DEBUG_SETLOCALE_INCONSISTENCIES
Commit: 54bd9d94205ad16cac4d8df6edff760af5932229
https://github.com/Perl/perl5/commit/54bd9d94205ad16cac4d8df6edff760af5932229
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add detail to locale mutex debug
Commit: 963f6e8eebc01c425995c38c526f897f5c1423ee
https://github.com/Perl/perl5/commit/963f6e8eebc01c425995c38c526f897f5c1423ee
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
M perl.h
M t/porting/customized.dat
Log Message:
-----------
XXX remaining loose ends
Commit: 348584a48b08d09e1f70caa6e1cb0c7f81939c01
https://github.com/Perl/perl5/commit/348584a48b08d09e1f70caa6e1cb0c7f81939c01
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M cpan/version/t/07locale.t
M pod/perlembed.pod
M t/porting/customized.dat
Log Message:
-----------
final commit
Commit: d7d6a42a9b860b0f2436a52e27862dd10c4dabe7
https://github.com/Perl/perl5/commit/d7d6a42a9b860b0f2436a52e27862dd10c4dabe7
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
use enum, maybe drop
Commit: f57502699c0a708c487d9b3cc0af0a423456a768
https://github.com/Perl/perl5/commit/f57502699c0a708c487d9b3cc0af0a423456a768
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Revert "prev commit"
This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.
Commit: 3817b03dce55ff9edb8ae071a32d9b57b5c9882e
https://github.com/Perl/perl5/commit/3817b03dce55ff9edb8ae071a32d9b57b5c9882e
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
more cat index enum
Commit: a73211fdc121b841c1897de4e28021b45f41e2a1
https://github.com/Perl/perl5/commit/a73211fdc121b841c1897de4e28021b45f41e2a1
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M dist/Tie-File/t/29a_upcopy.t
Log Message:
-----------
XXX temp: dist/Tie-File/t/29a_upcopy.t: Up alarm
Commit: ea5116265eb4beebf9bfec04a5f9a054d15c028a
https://github.com/Perl/perl5/commit/ea5116265eb4beebf9bfec04a5f9a054d15c028a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
f
Commit: 17ce7243bd08cccb51da92588a97707b3067f2c1
https://github.com/Perl/perl5/commit/17ce7243bd08cccb51da92588a97707b3067f2c1
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h fixup
Commit: 312e3a94f0f81bb81b46c9efecc9923cbdee11c7
https://github.com/Perl/perl5/commit/312e3a94f0f81bb81b46c9efecc9923cbdee11c7
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M Configure
Log Message:
-----------
f Configure for positional
Commit: 6aaed469c86a45ed69cf5d921db081df217fbefb
https://github.com/Perl/perl5/commit/6aaed469c86a45ed69cf5d921db081df217fbefb
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
fixup init for C C C C C
Commit: 3d1ed04f22c9d78302b2a35d46857679937414bc
https://github.com/Perl/perl5/commit/3d1ed04f22c9d78302b2a35d46857679937414bc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
perlapi: Fix strftime inaccuracies, clarify
Commit: 2655e9a22a793c78e73231b47307224dc1c8abce
https://github.com/Perl/perl5/commit/2655e9a22a793c78e73231b47307224dc1c8abce
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Set errno when my_strftime() fails.
The libc strftime() doesn't have any way to distinguish between
erroneous input and that which just doesn't generate any output; hence
it doesn't set errno.
But my_strftime() has logic to reasonably confidently make that
distinction, so it should set errno when it determines that it is
erroneous input.
Commit: 786d0bf034a7f9ad05a66c42946b10b42e4de647
https://github.com/Perl/perl5/commit/786d0bf034a7f9ad05a66c42946b10b42e4de647
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
add is_cur_locale_utf8
Commit: f4e26090bbebae88867b7455eb91adc944b167a3
https://github.com/Perl/perl5/commit/f4e26090bbebae88867b7455eb91adc944b167a3
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Simplify S_new_ctype
By creating a temporary variable, an else is eliminated, and the
lock/unlock are brought close together.
Commit: da149febafde58e08ded2873369204abcae0ea10
https://github.com/Perl/perl5/commit/da149febafde58e08ded2873369204abcae0ea10
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M dist/threads/threads.xs
M embed.fnc
M locale.c
M perl.h
M proto.h
M util.c
M win32/win32thread.c
Log Message:
-----------
switch_locale_context: Add aTHX
This fixes GH #21040
Instead of a dTHX, this passes aTHX automatically, and skips calling
this function if there is no valid context.
It moves that decision into the macro itself, avoiding some #ifdef
directives.
And it adds explanation
f
Commit: 354c03fc8901119b67dbed6eeba8991606e01420
https://github.com/Perl/perl5/commit/354c03fc8901119b67dbed6eeba8991606e01420
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
strftime: Always restore LC_CTYPE locale
my_strftime toggles LC_CTYPE to match LC_TIME to avoid mojibake.
In reading the code, I realized that there was a code path that doesn't
properly restore it, namely when failure is returned. This commit fixes
that.
Commit: ffddaec03c9139fefe44890de89a12fc61c67d74
https://github.com/Perl/perl5/commit/ffddaec03c9139fefe44890de89a12fc61c67d74
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
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: 927e5f139caaa2febd4c641fcb47c05936f6bc46
https://github.com/Perl/perl5/commit/927e5f139caaa2febd4c641fcb47c05936f6bc46
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: Use foldEQ_locale() if available
This supported core function 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
substituted, but far better than nothing.
Commit: d42873574cda511e66c43fe3a0023e8ac49317de
https://github.com/Perl/perl5/commit/d42873574cda511e66c43fe3a0023e8ac49317de
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
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: b9999679a580144958a559ea9ed5fd642846b59a
https://github.com/Perl/perl5/commit/b9999679a580144958a559ea9ed5fd642846b59a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't compile unreachable code
This code is attempting to compute the nl_langinfo() codeset of the
current locale. If there is no LC_CTYPE available on the system, the
codeset must be 'C', and the only callers to this static function know
that, and return that answer without calling this function. That means
this part of the function will never be executed. So don't compile it.
Commit: cac37e0cde86f7d39a4692e9e65824e5172ee89b
https://github.com/Perl/perl5/commit/cac37e0cde86f7d39a4692e9e65824e5172ee89b
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
Log Message:
-----------
locale.c: Prevent infinite recursion
This could happen on the very rare platform that isn't Windows, nor
supports nl_langinfo(), and has a buggy (or non-existent) mbtowc().
The code implements nl_langinfo() itself by recursion, and for some
locales could end up recursing indefinitely. This commit adds guards to
prevent that.
Commit: 643712bebdefb88f44c009f7f265d21bc2cd3e61
https://github.com/Perl/perl5/commit/643712bebdefb88f44c009f7f265d21bc2cd3e61
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add DISABLE_LC_NUMERIC_CHANGES macro
This is for code that needs to keep other code from changing LC_NUMERIC
out from under it, but avoids the knowledge of PL_numeric_standard,
which is used when perl controls the locale handling.
This is designed for 'version' (vutil.c) to use, because it has to
operate seamlessly in the mode where perl controls the handling, and
when it doesn't, even if it doesn't know it doesn't.
Commit: 52eb6947fa9f57ccf6840cf4a604f7cb99eb079c
https://github.com/Perl/perl5/commit/52eb6947fa9f57ccf6840cf4a604f7cb99eb079c
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Remove extraneous ';'
Commit: 0c399087d59899cf61a5fb8e1459975d952962be
https://github.com/Perl/perl5/commit/0c399087d59899cf61a5fb8e1459975d952962be
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: localeconv() isn't broken on Windows unthreaded
Nor is it broken if compiled without per-thread locale handling. The
bug in it until VS 2015 was that it always looked at the global locale.
When the only locale available is the global one, there is not breakage.
This commit thus avoids compiling workaround code for the bug when it
isn't necessary.
Commit: 4207ef2a904111ff3b2ae90bb4e4c906f99932db
https://github.com/Perl/perl5/commit/4207ef2a904111ff3b2ae90bb4e4c906f99932db
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M thread.h
Log Message:
-----------
thread.h: White space only
Indent some nested preproccessor defines
Commit: e7812c8832d2abb830371f0ad0b8b6ee06c3f227
https://github.com/Perl/perl5/commit/e7812c8832d2abb830371f0ad0b8b6ee06c3f227
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M win32/Makefile
Log Message:
-----------
win32 perl mem log
Commit: 760b87467ab1cbf58dc8ce368a312fbc5a4798ce
https://github.com/Perl/perl5/commit/760b87467ab1cbf58dc8ce368a312fbc5a4798ce
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
time.t
Commit: 84f0faf3328dd9c2b11b7c23ee558e1746670af0
https://github.com/Perl/perl5/commit/84f0faf3328dd9c2b11b7c23ee558e1746670af0
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
POSIX/t/time.t: Remove no longer necessary code
POSIX::strftime() now automatically handles the case where the locales of
LC_TIME and LC_CTYPE aren't the same. So no need to explicitly do this
in the test file.
Commit: 6f602fc8ce0e70e2490772e8a4b0fdbb79c602f9
https://github.com/Perl/perl5/commit/6f602fc8ce0e70e2490772e8a4b0fdbb79c602f9
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
XXX see how affects earlier commits: time.t: Add more strftime tests
Commit: bb90b1b50011166dd44f27402fd851d785fc6fa1
https://github.com/Perl/perl5/commit/bb90b1b50011166dd44f27402fd851d785fc6fa1
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Split my_strftime into 2 functions
Future commits will want the individual functionality the two provided
separately.
Commit: f39ae0ef5572a478057eac79fd62d21fdede6187
https://github.com/Perl/perl5/commit/f39ae0ef5572a478057eac79fd62d21fdede6187
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move my_strftime() within the file
This will be more logically placed after future commits
Commit: b8df4c4d8b35d53339f483dc4e763d9add7d04f6
https://github.com/Perl/perl5/commit/b8df4c4d8b35d53339f483dc4e763d9add7d04f6
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M embed.fnc
M embed.h
M ext/POSIX/POSIX.xs
M locale.c
M proto.h
Log Message:
-----------
Implement sv_strftime_tm and sv_strftime_ints
These two functions are designed to free the caller from having to know
anything about the intricacies of handling UTF-8 in using strftime(), as
they take SV inputs and return an SV with the UTF-8 flag appropriately
set.
They differ only in that one takes a bunch of integer arguments that
define the various components of the time; and the other takes a pointer
to a struct tm.
The POSIX implementation of strftime is converted to use these.
Commit: b72ac5f8c075a0f89e982404045b52e1dc55017a
https://github.com/Perl/perl5/commit/b72ac5f8c075a0f89e982404045b52e1dc55017a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
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: 19b5b633501c6eff62f51a07f9d64eff7f4ee1bb
https://github.com/Perl/perl5/commit/19b5b633501c6eff62f51a07f9d64eff7f4ee1bb
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Implement sv_strftime_tm and sv_strftime_ints
These two functions are designed to free the caller from having to know
anything about the intricacies of handling UTF-8 in using strftime(), as
they take SV inputs and return an SV with the UTF-8 flag appropriately
set.
They differ only in that one takes a bunch of integer arguments that
define the various components of the time; and the other takes a pointer
to a struct tm.
The POSIX implementation of strftime is converted to use these.
Commit: cbac520810f08c664e6b43ba0d88a9d2efc146d5
https://github.com/Perl/perl5/commit/cbac520810f08c664e6b43ba0d88a9d2efc146d5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_get_locale_string_utf8ness_i: Fix return
If the input is NULL, the utf8ness of the string isn't NO, but actually,
IMMATERIAL, as there is nothing there that matters
Commit: 23c67be97c5cacfdcaab4284615045c2ab8ae4d4
https://github.com/Perl/perl5/commit/23c67be97c5cacfdcaab4284615045c2ab8ae4d4
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid work that would be thrown away
If the caller to this function doesn't care about the UTF-8ness of the
result, no need to calculate it.
Commit: de15b19ae1a657e82eb5c077b9690f3c992e1366
https://github.com/Perl/perl5/commit/de15b19ae1a657e82eb5c077b9690f3c992e1366
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: notes to myself
Commit: 0ef526699465ca39a3f3f1fefbc9aa17db6d787a
https://github.com/Perl/perl5/commit/0ef526699465ca39a3f3f1fefbc9aa17db6d787a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
dregs
Commit: 15d2c04bd2e64fbe8d1d4361543a218672b62a00
https://github.com/Perl/perl5/commit/15d2c04bd2e64fbe8d1d4361543a218672b62a00
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slightly change wording of DEBUG messages
This makes them more consistent with the other messages in this file.
Commit: d3f0123945bc1bb149ffe36e9e38037c9f74476a
https://github.com/Perl/perl5/commit/d3f0123945bc1bb149ffe36e9e38037c9f74476a
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M util.c
Log Message:
-----------
util.c: Better panic messages
Commit: 4adccf543d50e7077a167b7f3a80732f355b0f27
https://github.com/Perl/perl5/commit/4adccf543d50e7077a167b7f3a80732f355b0f27
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M win32/Makefile
Log Message:
-----------
win32 Makefile
Commit: f08e27425c13e176876f96f1e69697f736e644c1
https://github.com/Perl/perl5/commit/f08e27425c13e176876f96f1e69697f736e644c1
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/XS-APItest/t/locale.t
Log Message:
-----------
XS-APItest/t/locale.t: Skip tests if pre-req not met
Rather than have them all failing, if the test that tries to set things
up fails, skip the ones that depend on it having succeeded
Commit: e617affaf5ac812b1e9209181bc412cc3890ddfe
https://github.com/Perl/perl5/commit/e617affaf5ac812b1e9209181bc412cc3890ddfe
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/XS-APItest/t/locale.t
Log Message:
-----------
XS-APItest/t/locale.t: White space only
Indent to correspond with a new block added in the previous commit
Commit: 4cba5cd3415fe686ab6f91054071909051770fc7
https://github.com/Perl/perl5/commit/4cba5cd3415fe686ab6f91054071909051770fc7
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t: Avoid duplicate effort
By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice. This matters on
Windows machines where the scan is slow.
Commit: d3b597aab6dc8cfd7ad6946b732b12fad103da62
https://github.com/Perl/perl5/commit/d3b597aab6dc8cfd7ad6946b732b12fad103da62
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/op/lc.t
Log Message:
-----------
t/op/lc.t: Avoid duplicate effort
By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice. This matters on
Windows machines where the scan is slow.
Commit: 3082ab49ff718fab0180ba3a3f8ea5dce897e695
https://github.com/Perl/perl5/commit/3082ab49ff718fab0180ba3a3f8ea5dce897e695
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/re/pat.t
Log Message:
-----------
re/pat.t: Avoid duplicate effort
This scalar was being computed twice, and the computation is slow on
Windows.
Commit: 9446f0865a3a439c976a53d0f0409806e79cc9ea
https://github.com/Perl/perl5/commit/9446f0865a3a439c976a53d0f0409806e79cc9ea
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/re/pat.t
Log Message:
-----------
re/pat.t: Fix typo in comment
Commit: 6a1f8f5c4b66aff5f9d02637bd4c060719ae7c80
https://github.com/Perl/perl5/commit/6a1f8f5c4b66aff5f9d02637bd4c060719ae7c80
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M t/run/locale.t
Log Message:
-----------
fdregs
Commit: 42e8ee5a1d9d5e04d0bcb0fb9a440d36e29f4966
https://github.com/Perl/perl5/commit/42e8ee5a1d9d5e04d0bcb0fb9a440d36e29f4966
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
POSIX/t/time.t: Avoid duplicate effort
By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice. This matters on
Windows machines where the scan is slow.
Commit: bbce26af78171f12c14e5d6da103f5191530f5dd
https://github.com/Perl/perl5/commit/bbce26af78171f12c14e5d6da103f5191530f5dd
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add UNLESS_PERL_MEM_LOG()
This is to be used to wrap code that should not be compiled if
PERL_MEM_LOG is defined. Some things don't play well with that, and
this keeps them from being compiled automatically without extra #ifdefs
Commit: 0f4d611b8067419d8b8a6fab4d024c81cb82f3ca
https://github.com/Perl/perl5/commit/0f4d611b8067419d8b8a6fab4d024c81cb82f3ca
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Use UNLESS_PERL_MEM_LOG()
These debugging statements for mutex locking are done at such a low
level that if PERL_MEM_LOG is used, infinite recursion would be
attempted.
Commit: b6a21e179f5ff39613b98e2ac8bf90f7839379cc
https://github.com/Perl/perl5/commit/b6a21e179f5ff39613b98e2ac8bf90f7839379cc
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M inline.h
Log Message:
-----------
Revert #if 0 in inline.h
I don't remember why this was done
Commit: 4cfd9ee468010fce5a8d86e2abf8a16c162953e5
https://github.com/Perl/perl5/commit/4cfd9ee468010fce5a8d86e2abf8a16c162953e5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX why no failures:locale.c: Quit early on failure to set the locale
When trying to set the locale under Windows (only), the code prior to
this commit would continue on to set PL_cur_LC_ALL to NULL, whereas the
failure means nothing changed, so this variable shouldn't either.
Commit: 276bd6c644023e5743f1376e6d9de15cc72a22c4
https://github.com/Perl/perl5/commit/276bd6c644023e5743f1376e6d9de15cc72a22c4
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid unnecessary freeing and reallocating
Check first if an interpreter variable has actually changed before
going to the trouble of freeing its memory and reallocating and
populating it.
Commit: 70b6ea029b4c4048321a3b0cc2ebf53577854762
https://github.com/Perl/perl5/commit/70b6ea029b4c4048321a3b0cc2ebf53577854762
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Return from win32_setlocale() needs to be stable
Prior to this commit it was subject to freeing when the scope was
exited.
This commit repurposes the already-existing per-thread buffer that holds
the return of setlocale(), stable until the next call to it. Instead of
being used for setlocale() which isn't called directly on Windows
platforms, it uses it for win32_setlocale().
Commit: adf832318487ad359abe7820365f8b8ef985bec4
https://github.com/Perl/perl5/commit/adf832318487ad359abe7820365f8b8ef985bec4
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M util.c
M win32/perlhost.h
Log Message:
-----------
XXX Win32 mem log
Commit: 4de18f3e51ab82b73e470c214758cad5855f7477
https://github.com/Perl/perl5/commit/4de18f3e51ab82b73e470c214758cad5855f7477
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M util.c
Log Message:
-----------
XXX util add thread to mem_log
Commit: 5de0426968f8b86389238a61a95786ceadaa77d2
https://github.com/Perl/perl5/commit/5de0426968f8b86389238a61a95786ceadaa77d2
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX mv: initialize PL_cur_LC_ALL
Commit: d55f153eb2485b6fc97406e8023f68b70cf7cff5
https://github.com/Perl/perl5/commit/d55f153eb2485b6fc97406e8023f68b70cf7cff5
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
Debug wrap wset
Commit: 65ef39f969ea654def6ea64b23d1fcf7c8201164
https://github.com/Perl/perl5/commit/65ef39f969ea654def6ea64b23d1fcf7c8201164
Author: Karl Williamson <[email protected]>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M locale.c
Log Message:
-----------
more dregs
Compare: https://github.com/Perl/perl5/compare/86a489288bc2...65ef39f969ea