Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: fe3d11abd893597d9c5eb1c16f3d87134e52dc3d
https://github.com/Perl/perl5/commit/fe3d11abd893597d9c5eb1c16f3d87134e52dc3d
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use system locale if no records yet
There are cases involving threads or embedded interpreters where
initialization comes before we have had a chance to initialize our
records. If this happens, use the locale returned from libc. This
should end up getting changed in the normal course of events later on.
Commit: c8aea26409fd874a01f17867d16a5e369187e5a7
https://github.com/Perl/perl5/commit/c8aea26409fd874a01f17867d16a5e369187e5a7
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add some asserts
Commit: 598718e256f2c1dd44e9fcbfee7b996e02f80aa5
https://github.com/Perl/perl5/commit/598718e256f2c1dd44e9fcbfee7b996e02f80aa5
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M ext/POSIX/POSIX.xs
M locale.c
M perl.h
Log Message:
-----------
Mark certain mutex lock macros as private
mbtowc() mblen(), and wctomb() should not be directly used by XS
writers; instead use the POSIX versions. Don't encourage the direct use
by having public macros to aid in their use.
Commit: 687963e72f4fe64cf47efa84e041fbb620e60872
https://github.com/Perl/perl5/commit/687963e72f4fe64cf47efa84e041fbb620e60872
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M perl.h
Log Message:
-----------
Move #include from locale.c to perl.h
perl_langinfo.h is needed in perl.h to see if _NL_LOCALE_NAME is defined
on the system.
Commit: 30345f169d457b10340374bc54e6122b6e41d7f9
https://github.com/Perl/perl5/commit/30345f169d457b10340374bc54e6122b6e41d7f9
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M intrpvar.h
M makedef.pl
Log Message:
-----------
Change some HAS_QUERYLOCALE to USE_QUERYLOCALE
The HAS_QUERYLOCALE comes from config.h Just because we have this
doesn't mean we're going to use it. That is computed in perl.h, and
other places should use its determination.
Commit: d94aa97e72e6998a85674583fa0859e2a3a7fa42
https://github.com/Perl/perl5/commit/d94aa97e72e6998a85674583fa0859e2a3a7fa42
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M intrpvar.h
M perl.c
M sv.c
Log Message:
-----------
intrpvar.h,sv.c,perl.c: Remove unnecessary cpp condition
This conditional dates from when the rest of the conditions used
'HAS_foo' (from config.h) instead of USE_foo, which takes more things
into account.
Commit: 5e395a7af03c83ac012073ec7e17fd26f27bfa59
https://github.com/Perl/perl5/commit/5e395a7af03c83ac012073ec7e17fd26f27bfa59
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M intrpvar.h
M locale.c
M makedef.pl
M perl.c
M perl.h
M sv.c
Log Message:
-----------
locale.c: Move #define to perl.h; use it elsewhere
Rather than recalculate this combined conditional, do it once in
perl.h.
Commit: 131d0787f6b7d7d69a4acb4840a7ed9de9146327
https://github.com/Perl/perl5/commit/131d0787f6b7d7d69a4acb4840a7ed9de9146327
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Move some code around
This is purely to make future commits have smaller real difference
listings, and involves a temporary (complemented) copy of a preprocessor
conditional.
Commit: 365895b0a743bbcceaf0757b4b04c0c59ecb184a
https://github.com/Perl/perl5/commit/365895b0a743bbcceaf0757b4b04c0c59ecb184a
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Reorder cpp branches
Disposing of the trivial case first makes things easier to read.
Commit: da1b79a9e089c13238fc509948c252d2cb15ebde
https://github.com/Perl/perl5/commit/da1b79a9e089c13238fc509948c252d2cb15ebde
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M perl.h
M sv.c
Log Message:
-----------
Make the locale mutex a general semaphore
Future commits will use this new capability, and in Configurations where
no locale locking is currently necessary.
Commit: 05b43cb096b63fe71b7d2ce2dc00e0f7ee0f2903
https://github.com/Perl/perl5/commit/05b43cb096b63fe71b7d2ce2dc00e0f7ee0f2903
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M embedvar.h
M intrpvar.h
M makedef.pl
M perl.h
M perlvars.h
M sv.c
Log Message:
-----------
Use general locale mutex for numeric operations
This commit removes the separate mutex for locking locale-related
numeric operations on threaded perls; instead using the general locale
one. The previous commit made that a general semaphore, so now suitable
for use for this purpose as well.
This means that the locale can be locked for the duration of some
sprintf operations, longer than before this commit. But on most modern
platforms, thread-safe locales cause this lock to expand just to a
no-op; so there is no effect on these. And on the impacted platforms,
one is not supposed to be using locales and threads in combination, as
races can occur. This lock is used on those perls to keep Perl's
manipulation of LC_NUMERIC thread-safe. And for those there is also no
effect, as they already lock around those sprintf's.
Commit: 35137d90b476ca1f01869093f688e897ed987936
https://github.com/Perl/perl5/commit/35137d90b476ca1f01869093f688e897ed987936
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M perl.h
Log Message:
-----------
Add locale macro to wrap global-memory-using functions
Some functions return a result in a global-to-the-program buffer, or
they use global memory internally. Other threads must be kept from
simultaneously using that function. This macro is to be used for all
such ones dealing with locales. Ideally, there would be a separate mutex
for each such buffer space. But these functions also have to lock the
locale from changing during their execution, and there aren't that many
such functions, and they actually are rarely executed. So a single lock
will do.
This will allow future commits to have more targeted locking for
functions that don't affect the global locale.
Commit: 42195c1c1c462c634251e0b1b65d8b30e661ca42
https://github.com/Perl/perl5/commit/42195c1c1c462c634251e0b1b65d8b30e661ca42
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M perl.h
Log Message:
-----------
Redefine the POSIX.xs locale macros using prev commit
This commit uses the new macro introduced in the previous commit to
define the internal locale mutex macros in POSIX.xs
Commit: 4bd493020b770cbf4057bf51d38924bf4bb68222
https://github.com/Perl/perl5/commit/4bd493020b770cbf4057bf51d38924bf4bb68222
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
perl.h: Remove NL_LANGINFO_LOCK
This is needed in precisely one place in the code, so move it to there.
Commit: a09a3b94f20d89d891346bd958b75ca8da7f8cf0
https://github.com/Perl/perl5/commit/a09a3b94f20d89d891346bd958b75ca8da7f8cf0
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
perl.h: Remove LOCALECONV_LOCK
This is needed in just one function, in locale.c, so more it there.
Commit: 3df28905fbf380b6a2ae5645d4129a69ae0d296a
https://github.com/Perl/perl5/commit/3df28905fbf380b6a2ae5645d4129a69ae0d296a
Author: Karl Williamson <[email protected]>
Date: 2022-09-09 (Fri, 09 Sep 2022)
Changed paths:
M embedvar.h
M ext/POSIX/POSIX.xs
M intrpvar.h
M locale.c
M makedef.pl
M perl.c
M perl.h
M perlvars.h
M sv.c
Log Message:
-----------
Merge branch 'Start cleaning up mutexes for locales and functions that access
global memory' into blead
This series of commit first cleans up some locale initialization
gotchas, and adds asserts.
And it cleans up where a few locale-related definitions are done
It converts the locale mutex to a general semaphore from a binary one,
which allows for simplification in switching the LC_NUMERIC locale.
And certain mutex macros now use the newly-general one
Compare: https://github.com/Perl/perl5/compare/e5d2a2ef8ab1...3df28905fbf3