Branch: refs/heads/davem/rc3 Home: https://github.com/Perl/perl5 Commit: 253be3248222778ec3d0c6d85b9c0fc8ee86670e https://github.com/Perl/perl5/commit/253be3248222778ec3d0c6d85b9c0fc8ee86670e Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: d00f98795a4dcdfd323a0ed5ab6d301031ab16d3 https://github.com/Perl/perl5/commit/d00f98795a4dcdfd323a0ed5ab6d301031ab16d3 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads->object(): handle no argument threads->object() without an argument is supposed to return undef. But before checking that there's no argument, the XS was actually accessing the argument. This went undetected for around 13 years, due to the fact that 1) likely nothing outside the test code in basic.t called it without an argument; 2) as long as any old SV pointer was still on the stack it would (probably) harmlessly access it and then return. I only spotted it due to the fact that a recent change to PERL_RC_STACK meant that the pointer one above the top of stack happened to be NULL. Commit: 401f18ce0246a0f54bf7fa6b85ed75b3513a75ee https://github.com/Perl/perl5/commit/401f18ce0246a0f54bf7fa6b85ed75b3513a75ee Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: 39d32d0a07d2b3e21150e45649b2e064ea4ab499 https://github.com/Perl/perl5/commit/39d32d0a07d2b3e21150e45649b2e064ea4ab499 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: 215ea980d1ffae2df32d63031b9ed241fee15b8d https://github.com/Perl/perl5/commit/215ea980d1ffae2df32d63031b9ed241fee15b8d Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: b1559ebafb2f7ff0bd8bb2f286663179170f7a34 https://github.com/Perl/perl5/commit/b1559ebafb2f7ff0bd8bb2f286663179170f7a34 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: 07fb468e789015f20d7959d7d079aff757a6daca https://github.com/Perl/perl5/commit/07fb468e789015f20d7959d7d079aff757a6daca Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: 8d5561e5b0da75c5200e4b208042084e9c7dbd18 https://github.com/Perl/perl5/commit/8d5561e5b0da75c5200e4b208042084e9c7dbd18 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: 5dcff307731add12b371587fdcca65ea9723b88b https://github.com/Perl/perl5/commit/5dcff307731add12b371587fdcca65ea9723b88b Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 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: a5203b3f256808ba44d04c438055968bbbde7df6 https://github.com/Perl/perl5/commit/a5203b3f256808ba44d04c438055968bbbde7df6 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp.c Log Message: ----------- make RC-stack-aware: unwrap pp_push() Remove the temporary wrapper from pp_push() Commit: ef3cee02b07912d81e02dffa7f707bc900bde804 https://github.com/Perl/perl5/commit/ef3cee02b07912d81e02dffa7f707bc900bde804 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp.c Log Message: ----------- make RC-stack-aware: unwrap pp_list() Remove the temporary wrapper from pp_list() Commit: 6ca77eae1978fadc6359eb2b663ed6620e6185c4 https://github.com/Perl/perl5/commit/6ca77eae1978fadc6359eb2b663ed6620e6185c4 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp.c Log Message: ----------- make RC-stack-aware: unwrap pp_unshift() Remove the temporary wrapper from pp_unshift() Commit: 23763d5645f5923008fc926e17d50115aa7373b4 https://github.com/Perl/perl5/commit/23763d5645f5923008fc926e17d50115aa7373b4 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp.c Log Message: ----------- make RC-stack-aware: unwrap pp_refgen() Remove the temporary wrapper from pp_refgen() Commit: f89455eddaa822dc6bac56192d3b3db5db6b0023 https://github.com/Perl/perl5/commit/f89455eddaa822dc6bac56192d3b3db5db6b0023 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp.c Log Message: ----------- make RC-stack-aware: unwrap pp_anonhash() Remove the temporary wrapper from pp_anonhash() Commit: 4d61c5babb2923beeb4db81633dd196f233ceb9a https://github.com/Perl/perl5/commit/4d61c5babb2923beeb4db81633dd196f233ceb9a Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp_hot.c Log Message: ----------- make RC-stack-aware: unwrap pp_multideref() Remove the temporary wrapper from pp_multideref() Commit: e3d299834e35fee339efbc70b9d29edebb582538 https://github.com/Perl/perl5/commit/e3d299834e35fee339efbc70b9d29edebb582538 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M pp_hot.c Log Message: ----------- make RC-stack-aware: unwrap pp_multiconcat() Remove the temporary wrapper from pp_multiconcat() Compare: https://github.com/Perl/perl5/compare/2559024c1da4...e3d299834e35