Skip to content

Commit

Permalink
perldelta for locale changes
Browse files Browse the repository at this point in the history
  • Loading branch information
khwilliamson authored and haarg committed Oct 22, 2023
1 parent cea3213 commit f8f432a
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions pod/perldelta.pod
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,46 @@ Don't clear the integer flag C<IOK> from lines in the C<<
@{"_<$sourcefile"} >> array when a C<dbstate> op is removed for that
line. This was broken when fixing [GH #19198]. [GH #21564]

=item *

Many bug fixes have been made for using locales under threads and in
embedded perls. And workarounds for libc bugs have been added. As a
result thread-safe locale handling is now the default under OpenBSD, and
MingW when compiled with UCRT.

However, testing has shown that Darwin's implementation of thread-safe
locale handling has bugs. So now Perl doesn't attempt to use the
thread-safe operations when compiled on Darwin.

As before, you can check to see if your program is running with
thread-safe locales by checking if the value of C<${^SAFE_LOCALES}> is
1.

=item *

Various bugs have been fixed when perl is configured with
C<-Accflags=-DNO_LOCALE_NUMERIC> or any other locale category (or
categories).

=item *

Not all locale categories need be set to the same locale. Perl now
works around bugs in the libc implementations of locale handling on some
platforms that previously could result in mojibake.

=item *

C<LC_ALL> is represented in one of two ways when not all locale
categories are set to the same locale. On some platforms, such as Linux
and Windows, the representation is of the form of a series of
C<'category=locale-name'> pairs. On other platforms, such as *BSD, the
representation is positional like S<C<I<name1> / I<name2> / ... >>.
I<name1> is always for a particular category as defined by the platform,
as are the other names. The sequence that separates the names
(the S<C< / >> above) also varies by platform. Previously, perl had
problems with platforms that used the positional notation. This is now
fixed.

=back

=head1 Known Problems
Expand Down

0 comments on commit f8f432a

Please sign in to comment.