Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: d0ce9562107310d6734205bd9238a7f40c0abdff
      
https://github.com/Perl/perl5/commit/d0ce9562107310d6734205bd9238a7f40c0abdff
  Author: Karl Williamson <k...@cpan.org>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Change name of macro formal parameter

This makes all the definitions of this macro consistent.


  Commit: ee5d3da4901872afb36e415079bf6bd201750299
      
https://github.com/Perl/perl5/commit/ee5d3da4901872afb36e415079bf6bd201750299
  Author: Karl Williamson <k...@cpan.org>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M locale_table.h
    M perl.h

  Log Message:
  -----------
  Move code from perl.h to locale_table.h

This is in preparation for future commits.  The layout of the new code
is also in preparation for those commits.


  Commit: 7c6d23b7585d43766478e2f378a12e14b446e695
      
https://github.com/Perl/perl5/commit/7c6d23b7585d43766478e2f378a12e14b446e695
  Author: Karl Williamson <k...@cpan.org>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M locale.c
    M locale_table.h
    M perl.h

  Log Message:
  -----------
  locale_table.h: Use CTYPE instead of LC_CTYPE, etc

locale.c is changed to add 'LC_'.  This is in preparation for future
commits.


  Commit: d3966372b48fd82ad40a0ceb1e94698e3400e648
      
https://github.com/Perl/perl5/commit/d3966372b48fd82ad40a0ceb1e94698e3400e648
  Author: Karl Williamson <k...@cpan.org>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M embed.fnc
    M embed.h
    M locale.c
    M locale_table.h
    M perl.h
    M proto.h

  Log Message:
  -----------
  Fix ignoring locale categories

There have long been Configure options like

    ./Configure -Accflags=-DNO_LOCALE_TIME

to tell perl to not pay attention to the LC_TIME category.  This feature
has never fully worked.  This commit fixes it.

One problem is that the when the libc does know about LC_TIME, but perl
is supposed to ignore that, it didn't have in place the logic to ignore
it in many circumstances.

This commit creates a boolean array for each locale category known to
the platform's libc, indicating whether that category is to be ignored
or not by perl.  If no category is to be ignored, the array and
ancillary code are not compiled, so perl works like it did before this
commit.

But if one or more categories are to be ignored, the code comes into
play.  A problem is that such categories really do exist on the
platform, and so ignoring them just doesn't work properly.  On a
platform with positional LC_ALL notation when not all categories have
the same locale, LC_ALL legally could look something like

    C/de_DE/nl_NL/en_GB/zh_TW.UTF-8/he_IL

Perl has to be smart enough to know which of those are categories to be
ignore.  Prior to this commit, it wasn't.  In fact, all ignored
categories do exist and do have a locale.  Those should all be C.
Therefore this commit doesn't actually ignore any locales; it instead
causes perl to refuse to change such ones away from C.

We don't currently have tests for these configurations.  I have
personally tested a couple hundred different combinations over and over,
but that's way too much for CI.


  Commit: 225d64bc50818556f49e1715049dd980edb1e61f
      
https://github.com/Perl/perl5/commit/225d64bc50818556f49e1715049dd980edb1e61f
  Author: Karl Williamson <k...@cpan.org>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M t/loc_tools.pl

  Log Message:
  -----------
  loc_tools: Handle ignored positional categories

The previous commit changes locale.c to adequately handle categories on
a system that we have been told to ignore.  This commit updates
loc_tools to better handle them.


Compare: https://github.com/Perl/perl5/compare/6e13fe3b438e...225d64bc5081

Reply via email to