[Perl/perl5] 096dc4: cleanup

2023-12-04 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 096dc4d4f45301b5f48036c1131aa4578c2dd4cd
  
https://github.com/Perl/perl5/commit/096dc4d4f45301b5f48036c1131aa4578c2dd4cd
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M locale.c
M makedef.pl

  Log Message:
  ---
  cleanup




[Perl/perl5] 20b929: perldelta for fea90cfbe1f

2023-12-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 20b9297558d49b1ea3a549afe4f753b148f26f99
  
https://github.com/Perl/perl5/commit/20b9297558d49b1ea3a549afe4f753b148f26f99
  Author: Tony Cook 
  Date:   2023-12-05 (Tue, 05 Dec 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for fea90cfbe1f




[Perl/perl5] fea90c: grow the tmps (mortal) stack exponentially rather ...

2023-12-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: fea90cfbe1f221d50be90ca5ceb0c6c7f121e442
  
https://github.com/Perl/perl5/commit/fea90cfbe1f221d50be90ca5ceb0c6c7f121e442
  Author: Tony Cook 
  Date:   2023-12-05 (Tue, 05 Dec 2023)

  Changed paths:
M scope.c

  Log Message:
  ---
  grow the tmps (mortal) stack exponentially rather than linearly

As with the value stack and the save stack, this gives us constant
amortized growth per element.

After this patch the profiler shows the "SvPV_shrink_to_cur(sv)"
and "sv = sv_2mortal(newSV(80))" calls in do_readline as the
hotspots for the io unheated test case, using 55% of the measured
time in total.

Fixes #21654




[Perl/perl5] bd55a4: mktables more verbose

2023-12-04 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: bd55a40ab19b663c98f3c4e18b57be28c71ad605
  
https://github.com/Perl/perl5/commit/bd55a40ab19b663c98f3c4e18b57be28c71ad605
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M charclass_invlists.h
M lib/unicore/Makefile
M lib/unicore/mktables
M lib/unicore/uni_keywords.pl
M regcharclass.h
M uni_keywords.h

  Log Message:
  ---
  mktables more verbose


  Commit: 9e41ef7af8c8296ce2318b55596e2587594b5d23
  
https://github.com/Perl/perl5/commit/9e41ef7af8c8296ce2318b55596e2587594b5d23
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm

  Log Message:
  ---
  BlackBox dont use rare scripts


  Commit: f291806148c9a09e5981db4600a26143d80f9cd3
  
https://github.com/Perl/perl5/commit/f291806148c9a09e5981db4600a26143d80f9cd3
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/harness

  Log Message:
  ---
  XXX t/harness temp tweaks


  Commit: f61838c07ab6566b35fec5891f0f71d0342830f0
  
https://github.com/Perl/perl5/commit/f61838c07ab6566b35fec5891f0f71d0342830f0
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/harness

  Log Message:
  ---
  XXX skip croak.t under sanitizer


  Commit: 46e7ceb763e1f62d98685bdb10324e27c183399e
  
https://github.com/Perl/perl5/commit/46e7ceb763e1f62d98685bdb10324e27c183399e
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/porting/bincompat.t

  Log Message:
  ---
  skip bincompat.t


  Commit: 1a863980067368197e1e4f32c8e2e74e8a77af74
  
https://github.com/Perl/perl5/commit/1a863980067368197e1e4f32c8e2e74e8a77af74
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/TEST

  Log Message:
  ---
  XXX skip cpan testing


  Commit: bb0bb26d30e4a64281445d822445968e792c7e50
  
https://github.com/Perl/perl5/commit/bb0bb26d30e4a64281445d822445968e792c7e50
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M MANIFEST
M charclass_invlists.h
M dist/Tie-File/t/29a_upcopy.t
M lib/unicore/mktables
M lib/unicore/uni_keywords.pl
M regcharclass.h
A t/re/uniprops11.t
A t/re/uniprops12.t
A t/re/uniprops13.t
A t/re/uniprops14.t
A t/re/uniprops15.t
A t/re/uniprops16.t
A t/re/uniprops17.t
A t/re/uniprops18.t
A t/re/uniprops19.t
A t/re/uniprops20.t
A t/re/uniprops21.t
A t/re/uniprops22.t
A t/re/uniprops23.t
A t/re/uniprops24.t
M uni_keywords.h

  Log Message:
  ---
  XXX temp: dist/Tie-File/t/29a_upcopy.t: Up alarm


  Commit: 545e20b5195e459616164f1529d8dc8def9f24df
  
https://github.com/Perl/perl5/commit/545e20b5195e459616164f1529d8dc8def9f24df
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M MANIFEST
A t/uni/idstart.pl
A t/uni/idstart00.t
A t/uni/idstart01.t
A t/uni/idstart02.t
A t/uni/idstart03.t
A t/uni/idstart04.t
A t/uni/idstart05.t
A t/uni/idstart06.t
A t/uni/idstart07.t
A t/uni/idstart08.t
A t/uni/idstart09.t
A t/uni/idstart10.t
A t/uni/idstart11.t
A t/uni/idstart12.t
A t/uni/idstart13.t
A t/uni/idstart14.t
A t/uni/idstart15.t
A t/uni/idstart16.t
A t/uni/idstart17.t
A t/uni/idstart18.t
A t/uni/idstart19.t
A t/uni/idstart20.t
A t/uni/idstart21.t
A t/uni/idstart22.t
A t/uni/idstart23.t
M t/uni/variables.t

  Log Message:
  ---
  Split t/uni/variables.t into multiple tests

These can be done in parallel; otherwise this is often the test that
finishes last, holding up the test suite completion.


  Commit: 0c09b3994e7e2f7f1d8fa4d793057b6cd79acc02
  
https://github.com/Perl/perl5/commit/0c09b3994e7e2f7f1d8fa4d793057b6cd79acc02
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/test.pl

  Log Message:
  ---
  XXX test.pl: dont unlink temps


  Commit: 25b6e4f23c5d75243e7ccfd9e80a3cf1956f5d3f
  
https://github.com/Perl/perl5/commit/25b6e4f23c5d75243e7ccfd9e80a3cf1956f5d3f
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/test.pl

  Log Message:
  ---
  Revert "XXX test.pl: dont unlink temps"

This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.


  Commit: 4acd191e64d8b5eca67ae30c74756866b3e654fe
  
https://github.com/Perl/perl5/commit/4acd191e64d8b5eca67ae30c74756866b3e654fe
  Author: Karl Williamson 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/run/locale.t

  Log Message:
  ---
  run/locale.t: more debug


  Commit: 5ef49866f20eab64a1cc9c16340f0b910da9fa61
  

[Perl/perl5]

2023-12-04 Thread iabyn via perl5-changes
  Branch: refs/heads/davem/rc4
  Home:   https://github.com/Perl/perl5


[Perl/perl5] 08368a: document ref assignment in list context

2023-12-04 Thread iabyn via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 08368a773f179335566e09096be6e015368237d1
  
https://github.com/Perl/perl5/commit/08368a773f179335566e09096be6e015368237d1
  Author: David Mitchell 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M pod/perlref.pod

  Log Message:
  ---
  document ref assignment in list context

The 'refaliasing' feature, whereby assigning to a literal reference
causes an aliasing operation (e.g. \$x = \...) didn't document what was
returned if the assignment was done in list context.

This commit adds a basic summary to the docs.

See the thread http://nntp.perl.org/group/perl.perl5.porters/267074
for the discussion.


  Commit: 823fcbfd95001ebd591a4b9c0c19b0e126f22d76
  
https://github.com/Perl/perl5/commit/823fcbfd95001ebd591a4b9c0c19b0e126f22d76
  Author: David Mitchell 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/op/lvref.t

  Log Message:
  ---
  add list context tests to t/op/lvref.t

Codify the existing behaviour of alias list assignment in list
context, e.g.

 = (  (\$x, \$y, \(@a)) = ()  );
and
   (  (\$x, \$y, \(@a)) = ()  ) = ;

Whether the existing behaviour is sane is up for debate, but if
if we change it, it should be a deliberate choice, not an accidental
change not spotted by the existing tests.


  Commit: b98a30fe2d2891321ee60dcd6b44ce6498a1f211
  
https://github.com/Perl/perl5/commit/b98a30fe2d2891321ee60dcd6b44ce6498a1f211
  Author: David Mitchell 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/op/lvref.t

  Log Message:
  ---
  add lvalue scalar alias tests to lvref.t

This is a compile-time error:

   (\$x = \1) = \2;

However, the following is legal code, but is untested (the 'OPf_MOD'
branch in pp_refassign() is not triggered by the test suite):

   f(\$x = \1);

So this commit adds some tests. It assumes that the above code is
equivalent to:

   \$x = \1;
   f(\$x);

Whether the existing behaviour is sane is up for debate, but if
if we change it, it should be a deliberate choice, not an accidental
change not spotted by the existing tests.


  Commit: 313c8957d30780156be85d76909da6b1bfdbce27
  
https://github.com/Perl/perl5/commit/313c8957d30780156be85d76909da6b1bfdbce27
  Author: David Mitchell 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M ext/Hash-Util-FieldHash/t/02_function.t

  Log Message:
  ---
  Hash-Util-FieldHash: fixup test on PERL_RC_STACK

Hash::Util::FieldHash is an implementation of "inside out" objects,
where field values are stored in per-field hashes whose keys are the
numeric addresses of the objects, and whose values represent the value
of that field for a particular object.

The hashes are magic, in that they don't hold a reference to each
object, but automatically delete the relevant entry from the hash when
the object is freed. This is achieved internally with weak references
and a bunch of user magic attached to the hash and the object.

A test in 02_function.t checks that such a link in the magic hash to an
object is removed after the real object is freed. This test looked
something like:

$h{[]} = 123;
is(keys %h, 0);

which relied on the temp anon array being freed almost immediately and
triggering the hash delete. Now it turns out that OP_ANONLIST (and its
later optimisation, OP_EMPTYAVHV) return an SvTEMP RV. In the code
above, this means that [] gets freed at the start of the next statement
(by the freetmps() in pp_nextstate()), and all works as expected.

However, when pp_emptyavhv() is unwrapped in the next commit, on
PERL_RC_STACK builds it will skip mortalising the return result, and
just rely on the ref count from the stack to keep the RV alive as long
as needed. By "needed", this is only while the helem op is being
executed, and the temp array is thus freed at the end of the helem,
rather than at the end of the statement. This triggers the entry in the
hash being auto-deleted earlier, so when the next op, the scalar assign,
executes, it triggers a warning:

Useless assignment to a temporary at t/02_function.t line 121.

After a lot of faffing about trying to work out what was going on, I
concluded that the intent of the test could just as well be done by
creating a real array reference variable and to just undef it directly
after the hash assign.

(I.e. it took some time to convince myself that there wasn't a bug in
pp_emptyavhv, pp_sassign nor FieldHash.xs, and that just the test needed
fixing.)


  Commit: 14403447b7488675c7d043c7d7325011727b3e45
  
https://github.com/Perl/perl5/commit/14403447b7488675c7d043c7d7325011727b3e45
  Author: David Mitchell 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M pp.c
M t/op/array.t

  Log Message:
  ---
  make RC-stack-aware: unwrap pp_emptyavhv()

Remove the temporary wrapper from pp_emptyavhv()

Also fix some tests in array.t, which were expecting a temp