[Perl/perl5] 5314ff: Fix compiling without LC_ALL defined

2023-11-01 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 5314ff9fe3c55bb32eb80a46176db11446e432f3
  
https://github.com/Perl/perl5/commit/5314ff9fe3c55bb32eb80a46176db11446e432f3
  Author: Karl Williamson 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

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

  Log Message:
  ---
  Fix compiling without LC_ALL defined

It is legal to have a platform without the aggregate LC_ALL locale
category defined, though I don't know of any such.  Recent changes broke
compilation for that case.  This commit restores it.

(To check this, one has to munge perl.h slightly to force it to
be #undef, and I hadn't tried that recently)




[Perl/perl5] e2934f: Test simultaneous threads running different locales

2023-11-01 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: e2934ffc337ae33a6c1efacaec4911531cf3e424
  
https://github.com/Perl/perl5/commit/e2934ffc337ae33a6c1efacaec4911531cf3e424
  Author: Karl Williamson 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
M lib/locale_threads.t

  Log Message:
  ---
  Test simultaneous threads running different locales

This adds an elaborate test to lib/locale_threads.t, designed to stress
test perl's (and the platform's) ability to properly handle multiple
threads, each running with a different combination of locales.

Locales originally were global to the whole process, but POSIX 2008 and
Windows (even earlier) introduced per-thread locales.  This test is
skipped on platforms that don't offer either of these.  But otherwise it
verifies that they actually work and that perl correctly uses them.

Each thread in the test runs a tight loop of calling locale-sensitive
operations, and checking that their result is as expected (which is
computed before starting the thread).  This checks that other threads
aren't interfering with this one.

Each thread is started with LC_CTYPE in locale A, LC_NUMERIC in locale
B, etc for each category on the system for which perl has
an operation that uses that category.  Most platforms do not properly
handle such a situation, returning mojibake if, for example, LC_CTYPE is
in an incompatible locale with LC_TIME.  perl takes extra actions to make
this work, and the test verifies that.  (In reading code, it appears
that some recent libc's do handle this without a perl workaround being
needed, but that is a minority capability, and I have chosen to leave
the workaround in on those platforms, due in part to not being able to
write a Configure probe that reliably finds more than surface-level
failures.)

Every so many iterations, each thread will shift to using a different
set of disparate locales, and then check that the new expected values
are the ones now returned.  Doing this in the tight loop should surface
races that would arise when changing locales, and verify that each
thread is independent of the others.

If two locales are almost the same, it could be that a thread getting
its expected result was in fact just getting an identical result from
another thread.  To minimize this, the test goes to some lengths to try
to find locales as different from each other as possible to run
simultaneously.

Experience with smoking this led me to choose 15 threads with 100
iterations each, as higher values lead to it taking too long, and
running out of memory on some of our smoke farm boxes.  On my Linux box,
I've used 500 threads and 1000 iterations, which takes a long time.  On
my Windows box, something like 100 threads and 1000 iterations.  And on
some other boxes I have access to, something like 50 threads and 1000
iterations.

I started writing this test a couple of years ago, and only now, after a
couple hundred locale-related commits to blead, is it ready itself to be
put into blead without generating failures.  I also have submitted
tickets against some platforms.  Just this week, two such tickets were
resolved, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269375 and
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255646

I did not file tickets on platforms where I thought they would be
ignored, so no tickets against Windows nor Darwin, but workarounds
remain for them in perl.




[Perl/perl5] dc1c48: CUSTOMIZED designation no longer needed

2023-11-01 Thread James E Keenan via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: dc1c48a01aa0f206921a4c7b0f2d28c080a135bc
  
https://github.com/Perl/perl5/commit/dc1c48a01aa0f206921a4c7b0f2d28c080a135bc
  Author: James E Keenan 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
M Porting/Maintainers.pl

  Log Message:
  ---
  CUSTOMIZED designation no longer needed

Per https://github.com/Test-More/Test2-Suite/issues/282.


  Commit: dde38cd6ad6fc0333bf9467db62c2c17dde0df1d
  
https://github.com/Perl/perl5/commit/dde38cd6ad6fc0333bf9467db62c2c17dde0df1d
  Author: Chad Granum 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
M Porting/Maintainers.pl
M cpan/Test2-Suite/lib/Test2/AsyncSubtest.pm
M cpan/Test2-Suite/lib/Test2/AsyncSubtest/Event/Attach.pm
M cpan/Test2-Suite/lib/Test2/AsyncSubtest/Event/Detach.pm
M cpan/Test2-Suite/lib/Test2/AsyncSubtest/Formatter.pm
M cpan/Test2-Suite/lib/Test2/AsyncSubtest/Hub.pm
M cpan/Test2-Suite/lib/Test2/Bundle.pm
M cpan/Test2-Suite/lib/Test2/Bundle/Extended.pm
M cpan/Test2-Suite/lib/Test2/Bundle/More.pm
M cpan/Test2-Suite/lib/Test2/Bundle/Simple.pm
M cpan/Test2-Suite/lib/Test2/Compare.pm
M cpan/Test2-Suite/lib/Test2/Compare/Array.pm
M cpan/Test2-Suite/lib/Test2/Compare/Bag.pm
M cpan/Test2-Suite/lib/Test2/Compare/Base.pm
M cpan/Test2-Suite/lib/Test2/Compare/Bool.pm
M cpan/Test2-Suite/lib/Test2/Compare/Custom.pm
M cpan/Test2-Suite/lib/Test2/Compare/DeepRef.pm
M cpan/Test2-Suite/lib/Test2/Compare/Delta.pm
M cpan/Test2-Suite/lib/Test2/Compare/Event.pm
M cpan/Test2-Suite/lib/Test2/Compare/EventMeta.pm
M cpan/Test2-Suite/lib/Test2/Compare/Float.pm
M cpan/Test2-Suite/lib/Test2/Compare/Hash.pm
M cpan/Test2-Suite/lib/Test2/Compare/Isa.pm
M cpan/Test2-Suite/lib/Test2/Compare/Meta.pm
M cpan/Test2-Suite/lib/Test2/Compare/Negatable.pm
M cpan/Test2-Suite/lib/Test2/Compare/Number.pm
M cpan/Test2-Suite/lib/Test2/Compare/Object.pm
M cpan/Test2-Suite/lib/Test2/Compare/OrderedSubset.pm
M cpan/Test2-Suite/lib/Test2/Compare/Pattern.pm
M cpan/Test2-Suite/lib/Test2/Compare/Ref.pm
M cpan/Test2-Suite/lib/Test2/Compare/Regex.pm
M cpan/Test2-Suite/lib/Test2/Compare/Scalar.pm
M cpan/Test2-Suite/lib/Test2/Compare/Set.pm
M cpan/Test2-Suite/lib/Test2/Compare/String.pm
M cpan/Test2-Suite/lib/Test2/Compare/Undef.pm
M cpan/Test2-Suite/lib/Test2/Compare/Wildcard.pm
M cpan/Test2-Suite/lib/Test2/Manual.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/API.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/Context.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/EndToEnd.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/Event.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/Hubs.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/IPC.pm
M cpan/Test2-Suite/lib/Test2/Manual/Anatomy/Utilities.pm
M cpan/Test2-Suite/lib/Test2/Manual/Concurrency.pm
M cpan/Test2-Suite/lib/Test2/Manual/Contributing.pm
M cpan/Test2-Suite/lib/Test2/Manual/Testing.pm
M cpan/Test2-Suite/lib/Test2/Manual/Testing/Introduction.pm
M cpan/Test2-Suite/lib/Test2/Manual/Testing/Migrating.pm
M cpan/Test2-Suite/lib/Test2/Manual/Testing/Planning.pm
M cpan/Test2-Suite/lib/Test2/Manual/Testing/Todo.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/FirstTool.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Formatter.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Nesting.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Plugin/TestExit.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Plugin/TestingDone.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Plugin/ToolCompletes.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Plugin/ToolStarts.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Subtest.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/TestBuilder.pm
M cpan/Test2-Suite/lib/Test2/Manual/Tooling/Testing.pm
M cpan/Test2-Suite/lib/Test2/Mock.pm
M cpan/Test2-Suite/lib/Test2/Plugin.pm
M cpan/Test2-Suite/lib/Test2/Plugin/BailOnFail.pm
M cpan/Test2-Suite/lib/Test2/Plugin/DieOnFail.pm
M cpan/Test2-Suite/lib/Test2/Plugin/ExitSummary.pm
M cpan/Test2-Suite/lib/Test2/Plugin/SRand.pm
M cpan/Test2-Suite/lib/Test2/Plugin/Times.pm
M cpan/Test2-Suite/lib/Test2/Plugin/UTF8.pm
M cpan/Test2-Suite/lib/Test2/Require.pm
M cpan/Test2-Suite/lib/Test2/Require/AuthorTesting.pm
M cpan/Test2-Suite/lib/Test2/Require/EnvVar.pm
M cpan/Test2-Suite/lib/Test2/Require/Fork.pm
M cpan/Test2-Suite/lib/Test2/Require/Module.pm
M cpan/Test2-Suite/lib/Test2/Require/Perl.pm
M cpan/Test2-Suite/lib/Test2/Require/RealFork.pm
M cpan/Test2-Suite/lib/Test2/Require/Threads.pm
M cpan/Test2-Suite/lib/Test2/Suite.pm
M cpan/Test2-Suite/lib/Test2/Todo.pm
M cpan/Test2-Suite/lib/Test2/Tools.pm
  

[Perl/perl5] 25df82: cpan/Term-Table - Update to version 0.018

2023-11-01 Thread James E Keenan via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 25df82dc1f81b26dce0982e5a78731afa12e8f6e
  
https://github.com/Perl/perl5/commit/25df82dc1f81b26dce0982e5a78731afa12e8f6e
  Author: Chad Granum 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
M Porting/Maintainers.pl
M cpan/Term-Table/lib/Term/Table.pm
M cpan/Term-Table/lib/Term/Table/Cell.pm
M cpan/Term-Table/lib/Term/Table/CellStack.pm
M cpan/Term-Table/lib/Term/Table/HashBase.pm
M cpan/Term-Table/lib/Term/Table/LineBreak.pm
M cpan/Term-Table/lib/Term/Table/Spacer.pm
M cpan/Term-Table/lib/Term/Table/Util.pm

  Log Message:
  ---
  cpan/Term-Table - Update to version 0.018

0.018 2023-10-22 21:55:51-07:00 America/Los_Angeles

- Merged doc fix PR




[Perl/perl5] ccb875: sv.c: Initialize intrpvar.h variable in cloning

2023-11-01 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: ccb8754ad8a7b45ddfe5d6dc77672a357e7c17f1
  
https://github.com/Perl/perl5/commit/ccb8754ad8a7b45ddfe5d6dc77672a357e7c17f1
  Author: Karl Williamson 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
M sv.c

  Log Message:
  ---
  sv.c: Initialize intrpvar.h variable in cloning

This was previously overlooked.  But it only affects rare Configuration,
so hadn't shown up so far in our testing.




[Perl/perl5] 6abb31: Mention that the regex used by the empty m// is sc...

2023-11-01 Thread Yves Orton via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6abb319d677a4c9294c18fe07407c2bb5255d483
  
https://github.com/Perl/perl5/commit/6abb319d677a4c9294c18fe07407c2bb5255d483
  Author: E. Choroba 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
M pod/perlop.pod
M pod/perlvar.pod

  Log Message:
  ---
  Mention that the regex used by the empty m// is scoped