[Perl/perl5] 8f6713: add rpp_replace_at() API function

2023-09-08 Thread iabyn via perl5-changes
  Branch: refs/heads/davem/rc3
  Home:   https://github.com/Perl/perl5
  Commit: 8f6713e525a992c8cc1d80b7b69e23f774511f64
  
https://github.com/Perl/perl5/commit/8f6713e525a992c8cc1d80b7b69e23f774511f64
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M embed.fnc
M embed.h
M inline.h
M pod/perlguts.pod
M proto.h

  Log Message:
  ---
  add rpp_replace_at() API function


  Commit: 095a29e2f15f1a44478dbc10f08c84d65126fb02
  
https://github.com/Perl/perl5/commit/095a29e2f15f1a44478dbc10f08c84d65126fb02
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M embed.fnc
M embed.h
M inline.h
M pod/perlguts.pod
M proto.h

  Log Message:
  ---
  add rpp_context() API function


  Commit: f4b013698fc3e7fe5257dd84c5035c2c6ad5bb62
  
https://github.com/Perl/perl5/commit/f4b013698fc3e7fe5257dd84c5035c2c6ad5bb62
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp.c
M pp_ctl.c
M pp_hot.c

  Log Message:
  ---
  make RC-stack-aware: unwrap startmatch and misc

Remove the temporary wrappers from these pp() functions:

pp_smartmatch
pp_i_eq
pp_eq
pp_seq
pp_match

They had to be treated as one group since pp_smartmatch() tail calls
the other four pp() functions.


  Commit: 7d0ef3192bcb0f8a26b2f84af35975154540fdaa
  
https://github.com/Perl/perl5/commit/7d0ef3192bcb0f8a26b2f84af35975154540fdaa
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp_hot.c

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

Remove the temporary wrapper from this unary pp() function.
It should have been done at the same time as all the other hot unary
ops, but I missed it.


  Commit: 554348a381d77da3906783513ba5c92514e60b9d
  
https://github.com/Perl/perl5/commit/554348a381d77da3906783513ba5c92514e60b9d
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M embed.fnc
M pp_hot.c
M pp_sys.c
M proto.h

  Log Message:
  ---
  make RC-stack-aware: unwrap pp_print(),tied_method

Remove the temporary wrapper from pp_print().

Also, update Perl_tied_method() to support both ref-counted-stack and
non-ref-counted-stack callers. Initially pp_print() is the only RC
caller of it.

Perl_tied_method() was a bit of mess: undocumented and confusing.
So also add some more code comments, and rename one of its parameters
from 'sp' to 'mark' to better reflect that it points to the base of the
argument list, not to the top.


  Commit: 4df9f3a6ed6e265beae78f1587af0e88d3df76ad
  
https://github.com/Perl/perl5/commit/4df9f3a6ed6e265beae78f1587af0e88d3df76ad
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp.c

  Log Message:
  ---
  make RC-stack-aware: pp_anonlist, pp_av2arylen

Remove the temporary wrapper from pp_anonlist() and update it to directly
work in a refcounted-stack environment.

In addition, fix a bug in (the already unwrapped) pp_av2arylen(),
which only manifests itself in PERL_RC_STACK environments.

In particular, this expression in lvalue context was triggering a
premature free of the array:

[1..10]->$#*

Basically pp_av2arylen() pops the AV off the stack and replaces it
with an SV with PERL_MAGIC_arylen which points back to the AV (and vice
versa). The link back is weak, so nothing actually keeps the AV alive;
previously, something else like the temps stack was keeping AV alive.

So swap the weak/strong mg_ptrs around to make the problem go away.


  Commit: 3a3935e9c065e343f6d4797520373bad06118154
  
https://github.com/Perl/perl5/commit/3a3935e9c065e343f6d4797520373bad06118154
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp.c

  Log Message:
  ---
  make RC-stack-aware: unwrap: pp_(kv)[ah]slice

Remove the temporary wrappers from:
pp_aslice()
pp_hslice()
pp_kvaslice()
pp_kvhslice()


  Commit: 1716877ea558fe18073150130dbc706690e9b99b
  
https://github.com/Perl/perl5/commit/1716877ea558fe18073150130dbc706690e9b99b
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp_hot.c

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

Remove the temporary wrapper from pp_join()


  Commit: 796a53cc6619718a889d594fe4edc1a06c49c6b3
  
https://github.com/Perl/perl5/commit/796a53cc6619718a889d594fe4edc1a06c49c6b3
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp.c

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

Remove the temporary wrapper from pp_push()


  Commit: e30412b2d1da8efb398b47e41cbb378539aad80e
  
https://github.com/Perl/perl5/commit/e30412b2d1da8efb398b47e41cbb378539aad80e
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
 

[Perl/perl5] f87d08: [doc] Fix 'comprised of'

2023-09-08 Thread Dan Church via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: f87d08569b779eeb9445716e595090f23fdab8e0
  
https://github.com/Perl/perl5/commit/f87d08569b779eeb9445716e595090f23fdab8e0
  Author: Dan Church 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M AUTHORS
M dist/Data-Dumper/Dumper.pm
M dist/base/lib/fields.pm
M pod/perl5180delta.pod
M pod/perl561delta.pod
M pod/perl56delta.pod
M pod/perldiag.pod
M pod/perlunicode.pod
M sv.c
M t/uni/lex_utf8.t

  Log Message:
  ---
  [doc] Fix 'comprised of'

- It's not the meaning of the word; the whole comprises the parts, the
  parts compose the whole.
- The etymology of the word comes from Latin words meaning to hold or
  grasp together.
- "Comprised of" is often used unnecessarily to aggrandize a sentence
  instead of just using a more precise "composed of" or "consists of."
- Many English style manuals state it's not to be used.

Further reading: https://en.m.wikipedia.org/wiki/User:Giraffedata/comprised_of

Existing instances of 'comprise' being used correctly in the Perl docs:
- perlunicode.pod: "Those [character types] listed above comprised the complete 
set for many Unicode releases, but others were added in Unicode 6.3; [...]"
- Encode / Supported.pod: "You may also have found out by now why 7bit ISO-2022 
cannot comprise a CCS [Coded Character Set]."
- cpan / perlfaq.pod: "The perlfaq comprises several documents that answer the 
most commonly asked questions about Perl and Perl programming."
- bytes.pm: "This pragma allows for the examination of the individual bytes 
that together comprise a character."
- perldocstyle.pod: "Most of the perfunc man page comprises a single list, 
found under the header [...]"




[Perl/perl5] 5e7a38: Define a PADNAMEf_TOMBSTONE for lexically deleting...

2023-09-08 Thread Paul Evans via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 5e7a38e197815e9bf2230d5bb06897871c873765
  
https://github.com/Perl/perl5/commit/5e7a38e197815e9bf2230d5bb06897871c873765
  Author: Paul "LeoNerd" Evans 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pad.c
M pad.h

  Log Message:
  ---
  Define a PADNAMEf_TOMBSTONE for lexically deleting pad entries

A pad entry with this flag means that we should consider the name does
not exist. If we find that name on lookup, return NOT_IN_PAD instead.

This will be used for implementing the unexport version of lexical
imports used by `use builtin`, allowing `no builtin ...` to remove pad
entries again.


  Commit: 92ddeac03bb34a9c34a0187468d02fbb0a9cc4dd
  
https://github.com/Perl/perl5/commit/92ddeac03bb34a9c34a0187468d02fbb0a9cc4dd
  Author: Paul "LeoNerd" Evans 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M builtin.c
M lib/builtin.pm
M lib/builtin.t
M pod/perldiag.pod

  Log Message:
  ---
  Implement a  builtin::unimport  that removes imported lexicals from the scope


Compare: https://github.com/Perl/perl5/compare/7c60f1f796a4...92ddeac03bb3


[Perl/perl5] 7c60f1: Implement builtin::stringify

2023-09-08 Thread Paul Evans via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 7c60f1f796a4c23bbfc43b25f2e159ffea14300b
  
https://github.com/Perl/perl5/commit/7c60f1f796a4c23bbfc43b25f2e159ffea14300b
  Author: Paul "LeoNerd" Evans 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M builtin.c
M lib/builtin.pm
M lib/builtin.t

  Log Message:
  ---
  Implement builtin::stringify




[Perl/perl5] 1ff13a: pp_caller/@DB::args: fix fail under -DPERL_POISON

2023-09-08 Thread iabyn via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 1ff13a08be65e3dd2618f9a2abea3e4e2990d89c
  
https://github.com/Perl/perl5/commit/1ff13a08be65e3dd2618f9a2abea3e4e2990d89c
  Author: David Mitchell 
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
M pp_ctl.c

  Log Message:
  ---
  pp_caller/@DB::args: fix fail under -DPERL_POISON

v5.39.1-335-gd2cddbe1df added a fix and test when copying elements of a
sub's arg into @DB::args, to skip freed SVs, i.e. ones whose RC==0.

However, under -DPERL_POISON builds, such SVs can have a "reference
count" of 0xabababab... . So in addition, check for SvIS_FREED().

This fixes recent smoke failures under -DPERL_POISON.