Branch: refs/heads/davem/rc_stack2 Home: https://github.com/Perl/perl5 Commit: 71cb155c51db3d871f75f8cee9d3d584596f9378 https://github.com/Perl/perl5/commit/71cb155c51db3d871f75f8cee9d3d584596f9378 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-02 (Sat, 02 Sep 2023)
Changed paths: M pp.c M pp_ctl.c M pp_hot.c M pp_sys.c Log Message: ----------- make RC-stack-aware: unwrap nullary pp() fns Remove the temporary wrappers from most of the pp() functions which take zero arguments from the stack (but which may well return arguments). Only the simple nullary OPs have been unwrapped in this commit; more complex ones will have their own commit. Commit: 03a64f1cf5e02bc5b363228a6a16ee4411f4d4f1 https://github.com/Perl/perl5/commit/03a64f1cf5e02bc5b363228a6a16ee4411f4d4f1 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-02 (Sat, 02 Sep 2023) Changed paths: M doop.c M embed.fnc M hv.c M pp.c M pp_hot.c M proto.h Log Message: ----------- make RC-stack-aware: unwrap rv2av etc pp fns Remove the temporary wrappers from a set of pp() functions which handle retrieving the whole contents of an array or hash. These needed to be done as one commit because there's a lot of shared static functions etc that all need to be changed at the same time. The unwrapped pp() functions are: do_kv (a.k.a. pp_keys, pp_values) pp_rv2sv pp_padrange pp_padav pp_padhv pp_rv2av (a.k.a. pp_rv2hv) pp_lvavref In addition the following static or non-public functions were fixed and changed: Perl_hv_pushkv S_padhv_rv2hv_common - it's now responsible for popping arg Perl_softref2xv - its signature has changed. Commit: 9f480e1758aa73fc320bc8d7e7a8498312a05c39 https://github.com/Perl/perl5/commit/9f480e1758aa73fc320bc8d7e7a8498312a05c39 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-02 (Sat, 02 Sep 2023) Changed paths: M pp.c M pp_hot.c Log Message: ----------- make RC-stack-aware: unwrap unary pp() fns Remove the temporary wrappers from many of the pp() functions which take a single argument from the stack. Only the simple unary OPs have been unwrapped in this commit; more complex ones will come later. Commit: 7bc913e2dbdf6733b1f777da6293d24d6d0efcbf https://github.com/Perl/perl5/commit/7bc913e2dbdf6733b1f777da6293d24d6d0efcbf Author: David Mitchell <da...@iabyn.com> Date: 2023-09-02 (Sat, 02 Sep 2023) Changed paths: M builtin.c M pp.c Log Message: ----------- make RC-stack-aware: unwrap builtin pp() fns Remove the temporary wrappers from the pp() functions which implement some of the functionality of the builtin:: namespace. All of these had to be done as a single commit, because a couple of XS functions which implement many of the builtin subs need to be made RC-stack-aware at the same time as all the associated pp() functions, since those pp() functions are tail-called by the XS functions. Commit: 63b07e5cbb57d49204ee8864f27fc36b0f770931 https://github.com/Perl/perl5/commit/63b07e5cbb57d49204ee8864f27fc36b0f770931 Author: David Mitchell <da...@iabyn.com> Date: 2023-09-02 (Sat, 02 Sep 2023) Changed paths: M pp.c M pp_ctl.c M pp_hot.c Log Message: ----------- make RC-stack-aware: unwrap binary pp() fns Remove the temporary wrappers from many of the pp() functions which take two arguments from the stack. Only the simpler binary OPs have been unwrapped in this commit; more complex ones will come later. Compare: https://github.com/Perl/perl5/compare/71cb155c51db%5E...63b07e5cbb57