[Perl/perl5] c79fe2: S_new_SV: args unused, static inline & defined, re...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c79fe2b42ae2a540552f87251aa0e36a060dd584 https://github.com/Perl/perl5/commit/c79fe2b42ae2a540552f87251aa0e36a060dd584 Author: Richard Leach Date: 2024-06-12 (Wed, 12 Jun 2024) Changed paths: M embed.fnc M proto.h M sv.h M sv_inline.h Log Message: --- S_new_SV: args unused, static inline & defined, rename with Perl_ prefix When sv_inline.h was created in https://github.com/Perl/perl5/commit/75acd14e43f2ffb698fc7032498f31095b56adb5 and a number of things moved into it, the S_new_SV debugging function should have been made PERL_STATIC_INLINE and given the Perl_ prefix. This commit now does those things. It also marks the arguments to Perl_new_SV as PERL_UNUSED_ARG, reducing warnings on some builds. Additionally, now that we can use inline functions, the new_SV() macro is now just a call to this inline function, rather than being that only on DEBUG_LEAKING_SCALARS builds and a multi-line macro the rest of the time. To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 864b12: perlguts.pod - add some description of real vs fak...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 864b1299a6432ecfb65be2e5c9bf83988b0da0da https://github.com/Perl/perl5/commit/864b1299a6432ecfb65be2e5c9bf83988b0da0da Author: Richard Leach Date: 2024-06-12 (Wed, 12 Jun 2024) Changed paths: M pod/perlguts.pod Log Message: --- perlguts.pod - add some description of real vs fake AVs To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 06e421: S_fold_constants: remove early SvREADONLY(sv) to a...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 06e421c559c63975f29c35ba3588a0e6b0c75eca https://github.com/Perl/perl5/commit/06e421c559c63975f29c35ba3588a0e6b0c75eca Author: Richard Leach Date: 2024-06-11 (Tue, 11 Jun 2024) Changed paths: M ext/Devel-Peek/t/Peek.t M op.c M t/op/undef.t Log Message: --- S_fold_constants: remove early SvREADONLY(sv) to allow SvIsCOW(sv) Standard CONST PVs have the IsCOW flag set, meaning that COW can be used when assigning the CONST to a variable, rather than making a copy of the buffer. CONST PVs arising from constant folding have been lacking this flag, leading to unnecessary copying of PV buffers. This seems to have occurred because a common branch in S_fold_constants marks SVs as READONLY before the new CONST OP is created. When the OP is created, the Perl_ck_svconst() check function is called - this is the same as when a standard CONST OP is created. If the SV is not already marked as READONLY, the check function will try to set IsCOW if it is safe to do so, then in either case will make sure that the READONLY flag is set. This commit therefore removes the SvREADONLY(sv) statement from S_fold_constants(), allowing Perl_ck_svconst() to set the IsCOW and READONLY flags itself. Minor test updates are also included. To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 845643: Perl_leave_adjust_stacks: additional efficiency fo...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 84564318489ffdf8dcabe85187fe28b06d0c7537 https://github.com/Perl/perl5/commit/84564318489ffdf8dcabe85187fe28b06d0c7537 Author: Richard Leach Date: 2024-06-11 (Tue, 11 Jun 2024) Changed paths: M pp_hot.c Log Message: --- Perl_leave_adjust_stacks: additional efficiency for mortal copies The existing code has a fast path for copying a SVt_NULL or SVt_IV. For all other types, a new SVt_NULL is passed into sv_setsv_flags, where it will be upgraded into the required type by sv_upgrade(). This commit makes two changes: 1) Special case copying a SVt_NV where possible, as sv_setsv_flags does. 2) It's safe and more efficient to directly create a new type of SVt_PVNV or below, rather than upgrade it later, so do that. To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] a902d9: Perl_op_convert_list: No unnecessary processing of...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: a902d92a78262a0fd111789742f9c9e2a7fa2f42 https://github.com/Perl/perl5/commit/a902d92a78262a0fd111789742f9c9e2a7fa2f42 Author: Richard Leach Date: 2024-06-11 (Tue, 11 Jun 2024) Changed paths: M op.c Log Message: --- Perl_op_convert_list: No unnecessary processing of unfolded CONSTs When Perl_op_convert_list is called to stringify a CONST OP, but the `op_folded` flag has not been passed in, a fair amount of activity occurs before the function returns the original CONST OP unchanged. After this commit, the CONST OP is returned directly. For example, prior to this commit, given the statement 'print "2\n', the function is passed a simple CONST OP: 1const SVOP(0x55c99432c0b8) ===> [SELF] PARENT ===> [0x0] FLAGS = (SCALAR,SLABBED) SV = PV("2\n"\0) List context is forced upon it to yield: 2list LISTOP(0x55c99432c048) ===> [0x0] PARENT ===> [0x0] FLAGS = (UNKNOWN,KIDS,SLABBED) | 3+--pushmark OP(0x55c99432c088) ===> [SELF] | FLAGS = (SCALAR,SLABBED,MORESIB) | 1+--const SVOP(0x55c99432c0b8) ===> [SELF] FLAGS = (SCALAR,SLABBED) SV = PV("2\n"\0) The pushmark is nullified and the parent type set: 2stringify LISTOP(0x55c99432c048) ===> [0x0] PARENT ===> [0x0] FLAGS = (UNKNOWN,KIDS,SLABBED) | 3+--null (ex-pushmark) OP(0x55c99432c088) ===> [SELF] | FLAGS = (SCALAR,SLABBED,MORESIB) | 1+--const SVOP(0x55c99432c0b8) ===> [SELF] FLAGS = (SCALAR,SLABBED) SV = PV("2\n"\0) CHECKOP sets the number of non-null KIDS for the stringify: 2stringify LISTOP(0x55c99432c048) ===> [0x0] PARENT ===> [0x0] FLAGS = (UNKNOWN,KIDS,SLABBED) PRIVATE = (0x1) | 3+--null (ex-pushmark) OP(0x55c99432c088) ===> [SELF] | FLAGS = (SCALAR,SLABBED,MORESIB) | 1+--const SVOP(0x55c99432c0b8) ===> [SELF] FLAGS = (SCALAR,SLABBED) SV = PV("2\n"\0) Then it is constant folded back to: 1const SVOP(0x55c99432c0b8) ===> [SELF] PARENT ===> [0x0] FLAGS = (SCALAR,SLABBED) SV = PV("2\n"\0) To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 4d119e: Fcntl: export File Sealing flags on request
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 4d119e96fa1d2fc914987fecf8d14272e4766be7 https://github.com/Perl/perl5/commit/4d119e96fa1d2fc914987fecf8d14272e4766be7 Author: Richard Leach Date: 2024-03-12 (Tue, 12 Mar 2024) Changed paths: M ext/Fcntl/Fcntl.pm M ext/Fcntl/Makefile.PL Log Message: --- Fcntl: export File Sealing flags on request On many Unix-like platforms, anonymous files can be created using memfd_create(2). Where supported, File sealing provides a mechanism whereby a process can ensure that the underlying shared memory cannot be unexpectedly tampered with. This commit adds the flags for this mechanism to the Fcntl module, from where they can be optionally exported. See, for example: https://man7.org/linux/man-pages/man2/memfd_create.2.html To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 93ff35: Fcntl: export File Sealing flags on request (GH#22071
Branch: refs/heads/smoke-me/hydahy/fcntl_seals Home: https://github.com/Perl/perl5 Commit: 93ff35ffecdd7cc51f11a8b87ebdd1a92e1e5cdd https://github.com/Perl/perl5/commit/93ff35ffecdd7cc51f11a8b87ebdd1a92e1e5cdd Author: Richard Leach Date: 2024-03-09 (Sat, 09 Mar 2024) Changed paths: M ext/Fcntl/Fcntl.pm M ext/Fcntl/Makefile.PL Log Message: --- Fcntl: export File Sealing flags on request (GH#22071 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 12d9d9: regcomp.c - Exclude split STRING from /x default m...
Branch: refs/heads/yves/hydahy_gh18032 Home: https://github.com/Perl/perl5 Commit: 12d9d972e1e6d0f79c915e80e43b1fe2619c2538 https://github.com/Perl/perl5/commit/12d9d972e1e6d0f79c915e80e43b1fe2619c2538 Author: Richard Leach Date: 2024-03-08 (Fri, 08 Mar 2024) Changed paths: M ext/re/re.pm M pod/perlfunc.pod M pod/perlre.pod M regcomp.c M t/op/split.t Log Message: --- regcomp.c - Exclude split STRING from /x default modifiers. We have a magic special case with split STRING where if the STRING is a single space character we trigger awk emaulation mode, which causes split to ignore leading whitespace, and to split on \s+. When default regex modifier support was added to perl we didn't notice that it doesn't make sense for the /x modifiers to change the behavior of a STRING pattern in split. STRING patterns are NOT parsed using the normal pattern parsing rules, for instance "\s+" would split on 's' characters, not on whitepace. The /x modifier is designed to change the rules for *pattern* parsing, most notably by adding support for comments and ignoring whitespace in pattern definitions. This feels to me like a feature that should only apply to cases where a true pattern is parsed, such as where \s+ would be treated as the special pattern for matching whitespace and not a literal 's' character. Historically there was NO way to create a string pattern with the /x pattern enabled, to enable /x the string MUST have been fed into a true pattern parsing construct like qr// m// or s///. By excluding STRING patterns from /x notation, we ensure that the special case of awk emulation for C is preserved. Note that a default /x modifier *does* change the behavior of C, as the pattern in that case is parsed the same as C or C. With changes by Yves Orton Fixes #18032 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] ff74e3: Preserve split " " behaviour when whitespace modif...
Branch: refs/heads/yves/hydahy_gh18032 Home: https://github.com/Perl/perl5 Commit: ff74e3ca7eb82a4ac2ea0f19de0b98ec656515eb https://github.com/Perl/perl5/commit/ff74e3ca7eb82a4ac2ea0f19de0b98ec656515eb Author: Richard Leach Date: 2024-03-07 (Thu, 07 Mar 2024) Changed paths: M ext/re/re.pm M pod/perlfunc.pod M pod/perlre.pod M regcomp.c M t/op/split.t Log Message: --- Preserve split " " behaviour when whitespace modifiers are present Prior to this commit, the " " pattern would be collapsed into the empty "" pattern if the split was within scope of `use re` whitespace modifiers. Since this split pattern is documented as being a special case, that behaviour is undesirable. With changes by Yves Orton Fixes #18032 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 5236da: Preserve split " " behaviour when whitespace modif...
Branch: refs/heads/yves/hydahy_gh18032 Home: https://github.com/Perl/perl5 Commit: 5236da55bb062fe5d1783d0983f5abb69d599182 https://github.com/Perl/perl5/commit/5236da55bb062fe5d1783d0983f5abb69d599182 Author: Richard Leach Date: 2024-03-07 (Thu, 07 Mar 2024) Changed paths: M ext/re/re.pm M pod/perlfunc.pod M pod/perlre.pod M regcomp.c M t/op/split.t Log Message: --- Preserve split " " behaviour when whitespace modifiers are present Prior to this commit, the " " pattern would be collapsed into the empty "" pattern if the split was within scope of `use re` whitespace modifiers. Since this split pattern is documented as being a special case, that behaviour is undesirable. With changes by Yves Orton Fixes #18032 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 81ae79: Preserve split " " behaviour when whitespace modif...
Branch: refs/heads/yves/hydahy_gh18032 Home: https://github.com/Perl/perl5 Commit: 81ae79784712d394a12444ac72a0d3dbb07fa2f9 https://github.com/Perl/perl5/commit/81ae79784712d394a12444ac72a0d3dbb07fa2f9 Author: Richard Leach Date: 2024-03-07 (Thu, 07 Mar 2024) Changed paths: M ext/re/re.pm M pod/perlfunc.pod M pod/perlre.pod M regcomp.c M t/op/split.t Log Message: --- Preserve split " " behaviour when whitespace modifiers are present Prior to this commit, the " " pattern would be collapsed into the empty "" pattern if the split was within scope of `use re` whitespace modifiers. Since this split pattern is documented as being a special case, that behaviour is undesirable. With changes by Yves Orton Fixes #18032 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 06ec88: Preserve split " " behaviour when whitespace modif...
Branch: refs/heads/yves/hydahy_gh18032 Home: https://github.com/Perl/perl5 Commit: 06ec88a931b1e46a711b53ea8280316c8541caf8 https://github.com/Perl/perl5/commit/06ec88a931b1e46a711b53ea8280316c8541caf8 Author: Richard Leach Date: 2024-03-07 (Thu, 07 Mar 2024) Changed paths: M regcomp.c M t/op/split.t Log Message: --- Preserve split " " behaviour when whitespace modifiers are present Prior to this commit, the " " pattern would be collapsed into the empty "" pattern if the split was within scope of `use re` whitespace modifiers. Since this split pattern is documented as being a special case, that behaviour is undesirable. With changes by Yves Orton Fixes #18032 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications
[Perl/perl5] 0d564a: av.h - document new newAV_mortal macro
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 0d564a3d013287cf0880fdc3264f30c20fe6188d https://github.com/Perl/perl5/commit/0d564a3d013287cf0880fdc3264f30c20fe6188d Author: Richard Leach Date: 2024-02-05 (Mon, 05 Feb 2024) Changed paths: M av.h Log Message: --- av.h - document new newAV_mortal macro
[Perl/perl5] 0f9485: Version bumps: File::Glob and Hash::Util
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 0f9485cc78e57077433bdbe29fc9c4096361250f https://github.com/Perl/perl5/commit/0f9485cc78e57077433bdbe29fc9c4096361250f Author: Richard Leach Date: 2024-01-29 (Mon, 29 Jan 2024) Changed paths: M ext/File-Glob/Glob.pm M ext/Hash-Util/lib/Hash/Util.pm Log Message: --- Version bumps: File::Glob and Hash::Util
[Perl/perl5] f2d70d: Hash::Util::bucket_array - use av_push_simple on n...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: f2d70d2486d4c7e6d0324da15e8bdaaf7f9048b3 https://github.com/Perl/perl5/commit/f2d70d2486d4c7e6d0324da15e8bdaaf7f9048b3 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/Hash-Util/Util.xs Log Message: --- Hash::Util::bucket_array - use av_push_simple on new AVs Commit: b8f7169e69a855dab27ba8f4eb973b4221be6254 https://github.com/Perl/perl5/commit/b8f7169e69a855dab27ba8f4eb973b4221be6254 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M av.h M embed.fnc M proto.h Log Message: --- av.h - add newAV_mortal macro Commit: f5c91d78a509401203ee7cd70746098b58f32be6 https://github.com/Perl/perl5/commit/f5c91d78a509401203ee7cd70746098b58f32be6 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/Hash-Util-FieldHash/FieldHash.xs Log Message: --- Hash-Util-FieldHash/FieldHash.xs - use AV _simple close to newAV Commit: 3ac780f7a394805979020a5a6d545f109df37a03 https://github.com/Perl/perl5/commit/3ac780f7a394805979020a5a6d545f109df37a03 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/Hash-Util-FieldHash/lib/Hash/Util/FieldHash.pm Log Message: --- FieldHash.pm - version bump Commit: 8f6ecd0818d7ae6211e5e05642c967976f1b3676 https://github.com/Perl/perl5/commit/8f6ecd0818d7ae6211e5e05642c967976f1b3676 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/File-Glob/Glob.xs Log Message: --- File-Glob/Glob.xs - more efficient mortal AV creation Commit: 42680180a524aafa4dc87b408c342f944acc0de2 https://github.com/Perl/perl5/commit/42680180a524aafa4dc87b408c342f944acc0de2 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/mro/mro.xs Log Message: --- mro/mro.xs - more efficient AV/HV creation and fill Commit: cc3bc4ac1281e8018c5d88e40a1bf37e6253c3f4 https://github.com/Perl/perl5/commit/cc3bc4ac1281e8018c5d88e40a1bf37e6253c3f4 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/attributes/attributes.xs Log Message: --- attributes/attributes.xs - more efficient mortal hek creation Commit: e6c95c59cf1688f97f4243799395101d0466327d https://github.com/Perl/perl5/commit/e6c95c59cf1688f97f4243799395101d0466327d Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/XS-APItest/APItest.xs Log Message: --- XS-APItest/APItest.xs - more efficient AV creation & fill Commit: 4237b291bc8094c5d5e41db8fc94b5c1ed9ea854 https://github.com/Perl/perl5/commit/4237b291bc8094c5d5e41db8fc94b5c1ed9ea854 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/PerlIO-encoding/encoding.xs Log Message: --- PerlIO-encoding/encoding.xs - more efficient mortal SV creation Commit: 61ab81fe6cd8a70b3010f8e049ce28447060b6fe https://github.com/Perl/perl5/commit/61ab81fe6cd8a70b3010f8e049ce28447060b6fe Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/PerlIO-encoding/encoding.pm Log Message: --- PerlIO-encoding/encoding.pm - version bump Commit: f910458e3b8a39c38dcebe82097e5a456e8fdf7c https://github.com/Perl/perl5/commit/f910458e3b8a39c38dcebe82097e5a456e8fdf7c Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/POSIX/POSIX.xs Log Message: --- POSIX/POSIX.xs - more efficient mortal PV creation Commit: 95b5d5d1ab7916e982e9949062b034cb35678a35 https://github.com/Perl/perl5/commit/95b5d5d1ab7916e982e9949062b034cb35678a35 Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/Hash-Util-FieldHash/FieldHash.xs M ext/mro/mro.xs Log Message: --- mro/mro.xs - more efficient to create PV type rather than a NULL to immediately upgrade Commit: 196e612fd190f48f2a7e0d0f9d7c82ffb920e0cf https://github.com/Perl/perl5/commit/196e612fd190f48f2a7e0d0f9d7c82ffb920e0cf Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/mro/mro.pm Log Message: --- mro/mro.pm - version bump Commit: 90a628aca7348a6812efd0c0ee15dff833c68fdb https://github.com/Perl/perl5/commit/90a628aca7348a6812efd0c0ee15dff833c68fdb Author: Richard Leach Date: 2024-01-28 (Sun, 28 Jan 2024) Changed paths: M ext/DynaLoader/dl_aix.xs M ext/DynaLoader/dl_dllload.xs M ext/DynaLoader/dl_dlopen.xs M ext/DynaLoader/dl_dyld.xs M ext/DynaLoader/dl_freemint.xs M ext/DynaLoader/dl_hpux.xs Log Message: --- Dynaloader/dl* - create IV directly to get
[Perl/perl5] 7d35a2: Request 9e298ab to be included in perl-5.38.1
Branch: refs/heads/maint-votes Home: https://github.com/Perl/perl5 Commit: 7d35a21a9b8160037b202a65a0c3ed24459ef261 https://github.com/Perl/perl5/commit/7d35a21a9b8160037b202a65a0c3ed24459ef261 Author: Richard Leach Date: 2023-09-19 (Tue, 19 Sep 2023) Changed paths: M votes-5.38.xml Log Message: --- Request 9e298ab to be included in perl-5.38.1 Since 399fef9, trailing elements in an array that has been unshifted and resized might not be properly Zero() initialized. This is because of faulty arithmetic when calculating `to_null`, the number of elements to initialize, when the array was only partially shifted. This commit corrects the arithmetic, adds comments arount the calculation of `to_null`, and adds a test based upon the case provided in GH Perl#21235.
[Perl/perl5] c3aaa5: Perldelta for GH# 21442
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c3aaa52ff5a9796b4c9048031ed0c374216c497e https://github.com/Perl/perl5/commit/c3aaa52ff5a9796b4c9048031ed0c374216c497e Author: Richard Leach Date: 2023-09-19 (Tue, 19 Sep 2023) Changed paths: M pod/perldelta.pod Log Message: --- Perldelta for GH# 21442
[Perl/perl5] bea115: S_negate_string - allow for TARG==sv
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: bea115698e41f6acdaa450b343adbf1082c2e99e https://github.com/Perl/perl5/commit/bea115698e41f6acdaa450b343adbf1082c2e99e Author: Richard Leach Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M pp.c Log Message: --- S_negate_string - allow for TARG==sv Adds a case in `S_negate_string` to allow for TARG==sv, which then means that the `pp_negate` and `pp_i_negate` OPs can support the TARGMY optimization Commit: 359c2cd723a18f596af21897fb196d657d81752e https://github.com/Perl/perl5/commit/359c2cd723a18f596af21897fb196d657d81752e Author: Richard Leach Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M lib/B/Op_private.pm M opcode.h M pp.c M regen/op_private M regen/opcodes Log Message: --- pp_(i_)negate: add the TARGMY optimization This mostly means using the existing machinery in regen/, but also not bothering to replace *PL_stack_sp when (targ == sv), as that would effectively be a busywork no-op. Commit: c904517849a782954f8d958163a18f6cc192a485 https://github.com/Perl/perl5/commit/c904517849a782954f8d958163a18f6cc192a485 Author: Richard Leach Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M pp.c Log Message: --- pp_(i_)negate: Don't needlessly call S_negate_string Arguably it will be more common for users to want to negate an IV or NV, rather than a PV. Prior to this commit, `S_negate_string` was always called at the start of the OP and, if the target wasn't `SvPOKp`, that function just immediately returned. This commit moves the `SvPOKp` check into the `pp_` functions to avoid needless function calls. Compare: https://github.com/Perl/perl5/compare/5e28db930c33...c904517849a7
[Perl/perl5] c0c43c: pp_initfield: no need to extend av, should be the ...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c0c43c4cee85ee37cce9a0d8073adf058bc10dff https://github.com/Perl/perl5/commit/c0c43c4cee85ee37cce9a0d8073adf058bc10dff Author: Richard Leach Date: 2023-09-06 (Wed, 06 Sep 2023) Changed paths: M class.c Log Message: --- pp_initfield: no need to extend av, should be the desired size This was probably an accidental leftover after an early pull request changed AV creation to `av = newAV_alloc_x(count)` just above the removed line. Commit: f357b86a6592ee8216c004039cbbb51ffa14f78f https://github.com/Perl/perl5/commit/f357b86a6592ee8216c004039cbbb51ffa14f78f Author: Richard Leach Date: 2023-09-06 (Wed, 06 Sep 2023) Changed paths: M class.c Log Message: --- Perl_class_wrap_method_body: simple push to newly-created AV Since the AV has just been created and is simple in nature, there's no need to do a full-blown `av_push`. Technically, that's still overkill. Simplification could be taken further by creating the `fieldmap` AV with `PadnamelistMAX(pnl) - 2` items (when that is a >0 value), then directly assigning values into elements. But it's not clear (to me) if that would be worth doing. Compare: https://github.com/Perl/perl5/compare/008ae6a0ef7f...f357b86a6592
[Perl/perl5] 5efadf: Perldeltas for GH#21351 & GH#21265
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5efadf9a6aaf15307a7bc0038b678e403e5ba562 https://github.com/Perl/perl5/commit/5efadf9a6aaf15307a7bc0038b678e403e5ba562 Author: Richard Leach Date: 2023-09-02 (Sat, 02 Sep 2023) Changed paths: M pod/perldelta.pod Log Message: --- Perldeltas for GH#21351 & GH#21265
[Perl/perl5] 5fa726: OP_EMPTYAVHV: create ops in newANONHASH/newANONLIS...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5fa726eb82cb1530d131c957769b0e3d0ff4fe42 https://github.com/Perl/perl5/commit/5fa726eb82cb1530d131c957769b0e3d0ff4fe42 Author: Richard Leach Date: 2023-08-29 (Tue, 29 Aug 2023) Changed paths: M op.c M opcode.h M peep.c M regen/opcodes Log Message: --- OP_EMPTYAVHV: create ops in newANONHASH/newANONLIST rather than rpeep The current implementation of the OP_EMPTYAVHV optimization does not optimize instances of empty anonymous hashes/lists on the RHS of LOGOP conditions, such as in `my $x = $y || {}`. This commit addresses this by removing the peephole optimization in favour of having EMPTYAVHV OPs produced directly whenever a call is made to `newANONHASH` or `newANONLIST` with an empty child OP `o`. The standard TARGMY optimization in `S_maybe_targlex` has been slightly adapted to also optimize the `LVINTRO` case for this OP. This commit also addresses some feedback nits from the last dev cycle: EMPTYAVHV is no longer a LISTOP, now just a BASEOP, and it does not use the OPf_SPECIAL flag. (Both were unnecessary carryovers from the ANONHASH and ANONLIST OPs.)
[Perl/perl5] f8c577: PerlIOScalar_pushed: move SvUPGRADE to where it mi...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: f8c57796889a55dbc338669517501dcae1eec73b https://github.com/Perl/perl5/commit/f8c57796889a55dbc338669517501dcae1eec73b Author: Richard Leach Date: 2023-08-27 (Sun, 27 Aug 2023) Changed paths: M perlio.c Log Message: --- PerlIOScalar_pushed: move SvUPGRADE to where it might apply `newSVpvs("")` returns an SV of type `SVt_PV`, therefore there's no point in calling `SvUPGRADE(..., SVt_PV)` on it. The other nearby code paths _might_ set an SV that needs upgrading (I haven't looked into the logic), so the `SvUPGRADE` statement has been moved inside the relevant branch rather than being removed.
[Perl/perl5] b82b16: Perl_ck_refassign: support refassigning into a sta...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b82b16a38d98ef71e399a80f4e56073741c613cd https://github.com/Perl/perl5/commit/b82b16a38d98ef71e399a80f4e56073741c613cd Author: Richard Leach Date: 2023-08-25 (Fri, 25 Aug 2023) Changed paths: M op.c M t/op/lvref.t Log Message: --- Perl_ck_refassign: support refassigning into a state variable Prior to this commit, Perl_ck_refassign did not check if the target was a state variable and, if so, wrap it in a ONCE op so that the RHS is only evaluated once.
[Perl/perl5] cf56d3: Minor updates for release documentation
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: cf56d3cff2915955b875a372880dfad1baab7582 https://github.com/Perl/perl5/commit/cf56d3cff2915955b875a372880dfad1baab7582 Author: Richard Leach Date: 2023-08-16 (Wed, 16 Aug 2023) Changed paths: M Porting/how_to_write_a_perldelta.pod M Porting/release_managers_guide.pod Log Message: --- Minor updates for release documentation These are mostly additions for clarity or extra examples. Some advice has been removed from "update INSTALL", because the wording within INSTALL has been made less version-specific, requiring fewer updates per-release.
[Perl/perl5] 145a58: test.pl: avoid unnecessary work in like_yn()
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 145a58a4c23b1ceab2963d1a8b5ba6579d1786f2 https://github.com/Perl/perl5/commit/145a58a4c23b1ceab2963d1a8b5ba6579d1786f2 Author: Richard Leach Date: 2023-08-14 (Mon, 14 Aug 2023) Changed paths: M t/test.pl Log Message: --- test.pl: avoid unnecessary work in like_yn() `like_yn()` underpins `like()` and `unlike()` in _test.pl_, so is a fairly hot subroutine when running perl's test suite. This commit is a light refactor that does two main things: * Moves the `$display_got` and `$display_expected` definitions to only the branch where they will actually be used. * Simplifies the definitions of `$pass`, `$display_got`, and `$display_expected` to make them clearer and more efficient. Commit: 7dbb8cb7cd157a6f424b9d8ad0db5e9fac85e011 https://github.com/Perl/perl5/commit/7dbb8cb7cd157a6f424b9d8ad0db5e9fac85e011 Author: Richard Leach Date: 2023-08-14 (Mon, 14 Aug 2023) Changed paths: M t/test.pl Log Message: --- test.pl: convert tabs to spaces in like_yn() Compare: https://github.com/Perl/perl5/compare/6a09651902f8...7dbb8cb7cd15
[Perl/perl5] 9e298a: Perl_av_extend_guts: Zero() trailing elements afte...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 9e298ab597b2c6fc0741749d7e29119e2d6cd628 https://github.com/Perl/perl5/commit/9e298ab597b2c6fc0741749d7e29119e2d6cd628 Author: Richard Leach Date: 2023-07-20 (Thu, 20 Jul 2023) Changed paths: M av.c M t/op/array.t Log Message: --- Perl_av_extend_guts: Zero() trailing elements after unshift & resize Since https://github.com/Perl/perl5/commit/399fef93c903aedee05a74de780b57eeeb571b32, trailing elements in an array that has been unshifted and resized might not be properly Zero() initialized. This is because of faulty arithmetic when calculating `to_null`, the number of elements to initialize, when the array was only partially shifted. This commit corrects the arithmetic, adds comments arount the calculation of `to_null`, and adds a test based upon the case provided in GH #21235. The test added segfaults more reliably for me - almost every time - than the originally supplied case. However, since it relies upon uninitialized memory, it's probably still not deterministic and somewhat dependent upon the choice of memory allocator. Closes #21235
[Perl/perl5] b62502: Prefer scalar assignment to get caller's first ret...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b625025e93c87eab6565ea086e7d9c60245d6bd3 https://github.com/Perl/perl5/commit/b625025e93c87eab6565ea086e7d9c60245d6bd3 Author: Richard Leach Date: 2023-02-22 (Wed, 22 Feb 2023) Changed paths: M dist/Env/lib/Env.pm M lib/Benchmark.pm M lib/Class/Struct.pm M lib/overload.pm M lib/overload.t M lib/warnings.pm M regen/warnings.pl Log Message: --- Prefer scalar assignment to get caller's first return value Multiple forms of syntax can be used to obtain a package name from `caller`, which emits this as its first return value, and assign that name to a lexical scalar. The following each achieve the same result, but with varying efficiency: * `sub callme { my $package = caller(2); ...}` * `sub callme { my ($package) = caller(2); ...}` * `sub callme { my $package = (caller(2))[0]; ...}` In the first example, `pp_caller` determines only the package name and pushes it to the stack. In the other two examples, the other 10 of `caller`'s return values are calculated and pushed onto the stack, before being discarded. This commit changes non-CPAN-first instances of the latter two forms in core to the first form. Note: There is a special exception to the equivalence described above, when caller is use in list context within the DB package. Such a usage instance in regen/warnings.pl therefore remains unchanged.
[Perl/perl5] 3f66ab: perldelta.pod: performance entry for GH #20800
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 3f66aba00b176ea345e786583e448f0811273af6 https://github.com/Perl/perl5/commit/3f66aba00b176ea345e786583e448f0811273af6 Author: Richard Leach Date: 2023-02-19 (Sun, 19 Feb 2023) Changed paths: M pod/perldelta.pod Log Message: --- perldelta.pod: performance entry for GH #20800
[Perl/perl5] 7ff8dd: Perl_re_op_compile: additional parens to satisfy C...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 7ff8dd51be592f01fa35e391683fe415939a9a0f https://github.com/Perl/perl5/commit/7ff8dd51be592f01fa35e391683fe415939a9a0f Author: Richard Leach Date: 2023-02-13 (Mon, 13 Feb 2023) Changed paths: M regcomp.c Log Message: --- Perl_re_op_compile: additional parens to satisfy Coverity
[Perl/perl5] c56d7f: Perl_leave_adjust_stacks: don't make mortal copies...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c56d7fa9134de66efe85a2fd70b28069c2629e0d https://github.com/Perl/perl5/commit/c56d7fa9134de66efe85a2fd70b28069c2629e0d Author: Richard Leach Date: 2023-02-13 (Mon, 13 Feb 2023) Changed paths: M pp_hot.c Log Message: --- Perl_leave_adjust_stacks: don't make mortal copies of SvIMMORTAL SVs SvIMMORTAL SVs cannot be prematurely freed and so there is no need to create a mortal copy of them. They also will not leak, so there is no need to add the SV* to the temp stack.
[Perl/perl5] 09fbd1: S_do_chomp: remove unused svrecode SV
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 09fbd16e8a0e26ef4ac3790a6f67ec8dbdaa8720 https://github.com/Perl/perl5/commit/09fbd16e8a0e26ef4ac3790a6f67ec8dbdaa8720 Author: Richard Leach Date: 2023-02-11 (Sat, 11 Feb 2023) Changed paths: M pp.c Log Message: --- S_do_chomp: remove unused svrecode SV
[Perl/perl5] c7342b: Perl_sv_clear: faster treatment of bodyless NVs
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c7342b06c24013ac518d5817617c3abbef7f0a1e https://github.com/Perl/perl5/commit/c7342b06c24013ac518d5817617c3abbef7f0a1e Author: Richard Leach Date: 2023-02-10 (Fri, 10 Feb 2023) Changed paths: M sv.c Log Message: --- Perl_sv_clear: faster treatment of bodyless NVs The existing fast path for SVt_NULL/SVt_IV can also be used for bodyless SVt_NVs.
[Perl/perl5] 94a21c: sv_clear apidoc: prefer SvREFCNT_dec to sv_free()
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 94a21c89d725dee58126a57a36a33a72e3dd54fd https://github.com/Perl/perl5/commit/94a21c89d725dee58126a57a36a33a72e3dd54fd Author: Richard Leach Date: 2023-02-10 (Fri, 10 Feb 2023) Changed paths: M sv.c Log Message: --- sv_clear apidoc: prefer SvREFCNT_dec to sv_free() As per the old test, SvREFCNT_dec used to wrap sv_free, which then calls the Perl_SvREFCNT_dec function. Nowadays, SvREFCNT_dec calls Perl_SvREFCNT_dec directly, and the latter is a very small inline function. Using the macro probably should be the go-to now. Commit: 8d83c9f712bbdad0e46a7ea27be5959e9a3e4116 https://github.com/Perl/perl5/commit/8d83c9f712bbdad0e46a7ea27be5959e9a3e4116 Author: Richard Leach Date: 2023-02-10 (Fri, 10 Feb 2023) Changed paths: M toke.c Log Message: --- toke.c - use SvREFCNT_dec() rather than calling sv_free() sv_free() is a function call just to then do SvREFCNT_dec() anyway. SvREFCNT_dec is a macro that just calls the simple inline function Perl_SvREFCNT_dec(). In places where the SV being operated on has been newly creted, we can use ASSUME() statements to help the compiler to eliminate some unnecessary branches in this function. Compare: https://github.com/Perl/perl5/compare/a683fa5b7e81...8d83c9f712bb
[Perl/perl5] 1863a6: sv.h - Update type comments to reflect implementat...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 1863a6c87cb85549953c181e1d6a060138d60337 https://github.com/Perl/perl5/commit/1863a6c87cb85549953c181e1d6a060138d60337 Author: Richard Leach Date: 2023-02-10 (Fri, 10 Feb 2023) Changed paths: M sv.h Log Message: --- sv.h - Update type comments to reflect implementation realities Commit: 2ba5f4dfa884b4b8257dcbb4213ed932e82113a2 https://github.com/Perl/perl5/commit/2ba5f4dfa884b4b8257dcbb4213ed932e82113a2 Author: Richard Leach Date: 2023-02-10 (Fri, 10 Feb 2023) Changed paths: M sv.h Log Message: --- sv.h types - tidy trailing sentences Compare: https://github.com/Perl/perl5/compare/f2244cf0c11c...2ba5f4dfa884
[Perl/perl5] 3bbe14: t/test.pl - assign caller() to separate vars in _w...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 3bbe14f5ab0067b7ce4357aaa1fc3ecfc48afac6 https://github.com/Perl/perl5/commit/3bbe14f5ab0067b7ce4357aaa1fc3ecfc48afac6 Author: Richard Leach Date: 2023-01-13 (Fri, 13 Jan 2023) Changed paths: M t/test.pl Log Message: --- t/test.pl - assign caller() to separate vars in _where() _where() is a heavily used, small subroutine within test.pl. It currently assigns all eleven of caller()'s return values to array elements, then uses only the second and third of these to construct a return string. This commit changes the assignment to use separate variables, which ends up being more efficient. Benchmarking suggests that _where() is about 30% faster as a result. The overhead of ok( ... ) calls is reduced by about 10%.
[Perl/perl5] 25a56f: Prepare Module::Corelist for 5.37.8
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 25a56f0d068e15b5f11178eeda8e4664a20fb3c2 https://github.com/Perl/perl5/commit/25a56f0d068e15b5f11178eeda8e4664a20fb3c2 Author: Richard Leach Date: 2022-12-21 (Wed, 21 Dec 2022) Changed paths: M dist/Module-CoreList/Changes M dist/Module-CoreList/lib/Module/CoreList.pm M dist/Module-CoreList/lib/Module/CoreList/Utils.pm Log Message: --- Prepare Module::Corelist for 5.37.8
[Perl/perl5] b694b4: New perldelta for 5.37.8
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b694b46bcc174597e5573ef691878857fbfa259e https://github.com/Perl/perl5/commit/b694b46bcc174597e5573ef691878857fbfa259e Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M MANIFEST M Makefile.SH M pod/.gitignore M pod/perl.pod A pod/perl5377delta.pod M pod/perldelta.pod M vms/descrip_mms.template M win32/GNUmakefile M win32/Makefile M win32/pod.mak Log Message: --- New perldelta for 5.37.8 Commit: 314a24817c7acf6b814a9002ebe00ea4c5f3b01d https://github.com/Perl/perl5/commit/314a24817c7acf6b814a9002ebe00ea4c5f3b01d Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M Cross/config.sh-arm-linux M Cross/config.sh-arm-linux-n770 M INSTALL M META.json M META.yml M Porting/config.sh M Porting/config_H M Porting/perldelta_template.pod M Porting/sync-with-cpan M Porting/todo.pod M README.haiku M README.macosx M README.os2 M README.vms M hints/catamount.sh M lib/B/Op_private.pm M patchlevel.h M plan9/config_sh.sample M win32/GNUmakefile M win32/Makefile Log Message: --- Bump the perl version in various places for 5.37.8 Compare: https://github.com/Perl/perl5/compare/e2514fca1dda...314a24817c7a
[Perl/perl5] 0d0883: Update epigraphs.pod for 5.37.7
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 0d0883db50fedbe35a14700ee05a1448f28a17a6 https://github.com/Perl/perl5/commit/0d0883db50fedbe35a14700ee05a1448f28a17a6 Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M Porting/epigraphs.pod Log Message: --- Update epigraphs.pod for 5.37.7 Commit: e2514fca1dda924ee50c8002f9f9a4331ef02870 https://github.com/Perl/perl5/commit/e2514fca1dda924ee50c8002f9f9a4331ef02870 Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M Porting/release_schedule.pod Log Message: --- Update release_schedule.pod for 5.37.7 Compare: https://github.com/Perl/perl5/compare/b1163c2ae562...e2514fca1dda
[Perl/perl5]
Branch: refs/tags/v5.37.7 Home: https://github.com/Perl/perl5
[Perl/perl5] cb142f: Update Module::CoreList for 5.37.7
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: cb142fcf587f1b1751e76705e0adecea1b85f281 https://github.com/Perl/perl5/commit/cb142fcf587f1b1751e76705e0adecea1b85f281 Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M dist/Module-CoreList/lib/Module/CoreList.pm Log Message: --- Update Module::CoreList for 5.37.7 Commit: ae98afd843e8434e69858ca6124527fb2eff3cb5 https://github.com/Perl/perl5/commit/ae98afd843e8434e69858ca6124527fb2eff3cb5 Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M pod/perldelta.pod Log Message: --- Update perldelta.pod for 5.37.7 Commit: cb0c8d0ed61392264d8f845c325b04b199519a9f https://github.com/Perl/perl5/commit/cb0c8d0ed61392264d8f845c325b04b199519a9f Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M t/porting/customized.dat Log Message: --- Update t/porting/customized.dat for 5.37.7 Commit: b1163c2ae562670f2bf4c7700087f0c9d0ad8fe5 https://github.com/Perl/perl5/commit/b1163c2ae562670f2bf4c7700087f0c9d0ad8fe5 Author: Richard Leach Date: 2022-12-20 (Tue, 20 Dec 2022) Changed paths: M pod/perlhist.pod Log Message: --- Add new release to perlhist Compare: https://github.com/Perl/perl5/compare/88da24e71cc8...b1163c2ae562
[Perl/perl5] 54ca89: Replace SvGROW with sv_grow_fresh in perl.c, pp_sy...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 54ca894738d71b8a053b5405699c66b8c0bd346d https://github.com/Perl/perl5/commit/54ca894738d71b8a053b5405699c66b8c0bd346d Author: Richard Leach Date: 2022-11-30 (Wed, 30 Nov 2022) Changed paths: M perl.c M pp_sys.c M toke.c Log Message: --- Replace SvGROW with sv_grow_fresh in perl.c, pp_sys.c, toke.c Changed: * perl.c - Perl_moreswitches * pp_sys.c - pp_sysread * toke.c - Perl_scan_str In each of the above functions, one instance of SvGROW on a new SVt_PV can be swapped for the more efficient sv_grow_fresh. In two of the instances, the calls used to create the the SVt_PV have also been streamlined. There should not be any functional change as a result of this commit.
[Perl/perl5] dbf361: Extract minimum PV buffer/AV element size to commo...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: dbf3614df92e720a9536b1cceb915a18ff2b8c08 https://github.com/Perl/perl5/commit/dbf3614df92e720a9536b1cceb915a18ff2b8c08 Author: Richard Leach Date: 2022-11-21 (Mon, 21 Nov 2022) Changed paths: M av.c M perl.h M pp_hot.c M sv.c Log Message: --- Extract minimum PV buffer/AV element size to common definitions In a nutshell, for a long time the minimum PV length (hardcoded in Perl_sv_grow) has been 10 bytes and the minimum AV array size (hardcoded in av_extend_guts) has been 4 elements. These numbers have been used elsewhere for consistency (e.g. Perl_sv_grow_fresh) in the past couple of development cycles. Having a standard definition, rather than hardcoding in multiple places, is more maintainable. This commit therefore introduces into perl.h: PERL_ARRAY_NEW_MIN_KEY PERL_STRLEN_NEW_MIN (Note: Subsequent commit(s) will actually change the values.) Commit: 06dbfffcf611d03ad6078d4049e84de53458f9c9 https://github.com/Perl/perl5/commit/06dbfffcf611d03ad6078d4049e84de53458f9c9 Author: Richard Leach Date: 2022-11-21 (Mon, 21 Nov 2022) Changed paths: M perl.h Log Message: --- PERL_STRLEN_NEW_MIN - increase to multiple of pointer sizes Major malloc implementations, including the popular dlmalloc derivatives all return chunks of memory that are a multiple of the platform's pointer size. Perl's traditional default string allocation of 10 bytes will almost certainly result in a larger allocation than requested. Consequently, the interpreter may try to Renew() an allocation to increase the PV buffer size when it does not actually need to do so. This commit increases the default string size to the nearest pointer multiple. (12 bytes for 32-bit pointers, 16 bytes for 64-bit pointers). This is almost certainly unnecessarily small for 64-bit platforms, since most common malloc implementations seem to return 3*pointer size (i.e. 24 bytes) as the smallest allocation. However, 16 bytes was chosen to prevent an increase in memory usage in memory-constrained platforms which might have a smaller minimum memory allocation. Compare: https://github.com/Perl/perl5/compare/b17e77fbd875...06dbfffcf611
[Perl/perl5] 10a5c9: OP_EMPTYAVHV - optimized empty ANONLIST/ANONHASH
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 10a5c9138224597d018843f3b298a928555b67f0 https://github.com/Perl/perl5/commit/10a5c9138224597d018843f3b298a928555b67f0 Author: Richard Leach Date: 2022-10-24 (Mon, 24 Oct 2022) Changed paths: M ext/Opcode/Opcode.pm M lib/B/Deparse.pm M lib/B/Op_private.pm M opcode.h M opnames.h M peep.c M pp.c M pp_proto.h M regen/op_private M regen/opcodes M t/perf/benchmarks M t/perf/opcount.t Log Message: --- OP_EMPTYAVHV - optimized empty ANONLIST/ANONHASH This commit introduces a new OP to replace cases of OP_ANONLIST and OP_ANONHASH where there are zero elements, which is very common in Perl code. As an example, `my $x = {}` is currently implemented like this: ... 6 <2> sassign vKS/2 ->7 4<@> anonhash sK* ->5 3 <0> pushmark s ->4 5<0> padsv[$x:1,2] sRM*/LVINTRO ->6 The pushmark serves no meaningful purpose when there are zero elements and the anonhash, besides undoing the pushmark, performs work that is unnecessary for this special case. The peephole optimizer, which also checks for applicability of a related TARGMY optimization, transforms this example into: ... - <1> ex-sassign vKS/2 ->4 3<@> emptyavhv[$x:1,2] vK*/LVINTRO,ANONHASH,TARGMY ->4 - <0> ex-pushmark s ->3 -<0> ex-padsv sRM*/LVINTRO ->- Commit: 8b4768d1bcec4110f56a34c3d7ca4586c58434d9 https://github.com/Perl/perl5/commit/8b4768d1bcec4110f56a34c3d7ca4586c58434d9 Author: Richard Leach Date: 2022-10-24 (Mon, 24 Oct 2022) Changed paths: M ext/Opcode/Opcode.pm Log Message: --- version bump to squash Compare: https://github.com/Perl/perl5/compare/71a3dd321d7f...8b4768d1bcec
[Perl/perl5] 382a56: sv.c - add BODYLESS_NV fast code to sv_setXv funct...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 382a56637961ef97fde5808e97df108db4e3ed8d https://github.com/Perl/perl5/commit/382a56637961ef97fde5808e97df108db4e3ed8d Author: Richard Leach Date: 2022-10-22 (Sat, 22 Oct 2022) Changed paths: M sv.c Log Message: --- sv.c - add BODYLESS_NV fast code to sv_setXv functions For "BODYLESS" IVs and NVs, type up/downgrades can be easily done without having to call sv_upgrade. (Which will also not convert a BODYLESS NV back down to an IV, even when it is harmless to do so.) This commit adds "BODYLESS" handling to sv_setiv and sv_setnv, which previously lacked it, and "BODYLESS_NV" handling to sv_setsv_flags, which previously only special-cased "BODYLESS_IV"s. The BODYLESS_IV code in sv_setsv_flags previously did not preserve flags such as SVs_TEMP or SVs_PADTMP, which seemed like a potential latent bug. (The new BODYLESS_NV code *has* to preserve SVs_TEMP in order for all tests in t/lib/warnings to continue to pass.) Rather than clearing all flags, this commit instead does a SvOK_off(dsv) for both BODYLESS_IV and BODYLESS_NV cases.
[Perl/perl5] 9e99fb: AELEMFASTLEX_STORE - support negative keys, skip u...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 9e99fbb3940bfab6ce2638107363e928bcca917a https://github.com/Perl/perl5/commit/9e99fbb3940bfab6ce2638107363e928bcca917a Author: Richard Leach Date: 2022-10-22 (Sat, 22 Oct 2022) Changed paths: M peep.c M pp_hot.c M t/perf/opcount.t Log Message: --- AELEMFASTLEX_STORE - support negative keys, skip unnecessary check This commit: * Adds support for negative keys, as per the original AELEMFAST_LEX * Changes an if() check for a "useless assignment to a temporary" into an assert, since this condition should never be true when the LHS is the result of an array fetch.
[Perl/perl5] b93391: B::Deparse.pm - add padsv_store to list in sub ret...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b93391659d456f4fb0d24eb43c150565f51abbc4 https://github.com/Perl/perl5/commit/b93391659d456f4fb0d24eb43c150565f51abbc4 Author: Richard Leach Date: 2022-09-26 (Mon, 26 Sep 2022) Changed paths: M lib/B/Deparse.pm Log Message: --- B::Deparse.pm - add padsv_store to list in sub retscalar Issue #20327 revealed that code that is expected to deparse to: &$uncompress(my $Tmp = shift()); has, since the addition of padsv_store, been deparsing to this: &$uncompress(scalar(my $Tmp = shift())); This seems to be because padsv_store was not added to a particular list of scalar OPs in B::Deparse.pm. Closes #20327.
[Perl/perl5] 22d010: pp_undef w/ TARGMY: push sv, not &PL_sv_undef, ont...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 22d01053ed299e489bfee2839fb35dfeece9d1fb https://github.com/Perl/perl5/commit/22d01053ed299e489bfee2839fb35dfeece9d1fb Author: Richard Leach Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M pp.c M t/op/undef.t Log Message: --- pp_undef w/ TARGMY: push sv, not &PL_sv_undef, onto the stack Closes #20336.
[Perl/perl5] e61648: regcomp.c - use _simple functions where apparently...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: e616482ebbb5b0eb7ab5edca3089ddf13650074b https://github.com/Perl/perl5/commit/e616482ebbb5b0eb7ab5edca3089ddf13650074b Author: Richard Leach Date: 2022-09-22 (Thu, 22 Sep 2022) Changed paths: M regcomp.c Log Message: --- regcomp.c - use _simple functions where apparently safe to do so `av_push`, `av_store`, and `av_fetch` have been changed to their inline `_simple` variants in a number of places. No test failures have resulted from these changes. The remaining uses of the full-fat functions are not suitable to change because either the AVs have magic, or existing tests show that the `key` parameter is not > -1 when that is a pre-requisite of a replacement inline function.
[Perl/perl5] b6198b: SvPVCLEAR_FRESH - change from macro to inline func...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b6198bccd362ecd980c1b4301ce6817a2ec296e3 https://github.com/Perl/perl5/commit/b6198bccd362ecd980c1b4301ce6817a2ec296e3 Author: Richard Leach Date: 2022-09-22 (Thu, 22 Sep 2022) Changed paths: M embed.fnc M embed.h M proto.h M sv.h M sv_inline.h Log Message: --- SvPVCLEAR_FRESH - change from macro to inline function This is to prevent warnings due to the char * frequently being unused.
[Perl/perl5] f1cc67: perldelta - change pod markup for non-core modules
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: f1cc674150b9408466f484c1bd08faaa989000de https://github.com/Perl/perl5/commit/f1cc674150b9408466f484c1bd08faaa989000de Author: Richard Leach Date: 2022-09-19 (Mon, 19 Sep 2022) Changed paths: M pod/perldelta.pod Log Message: --- perldelta - change pod markup for non-core modules
[Perl/perl5] d63288: perldelta - add GH#20114 to Known Problems section
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: d6328840c56c87f8debfcb92f957b21d5f31df98 https://github.com/Perl/perl5/commit/d6328840c56c87f8debfcb92f957b21d5f31df98 Author: Richard Leach Date: 2022-09-19 (Mon, 19 Sep 2022) Changed paths: M pod/perldelta.pod Log Message: --- perldelta - add GH#20114 to Known Problems section
[Perl/perl5] 540f45: S_scan_heredoc: fresh sv functions close to point ...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 540f4522aa40f6672e5e44976a38fae4b39fa3b8 https://github.com/Perl/perl5/commit/540f4522aa40f6672e5e44976a38fae4b39fa3b8 Author: Richard Leach Date: 2022-09-18 (Sun, 18 Sep 2022) Changed paths: M toke.c Log Message: --- S_scan_heredoc: fresh sv functions close to point of use S_scan_heredoc does a SvGROW on a fresh PVIV. A sv_grow_fresh is more efficient, plus it seems only really needed in the nearby "else" branch. In the "if" branch, sv_setsv_fresh can be used directly. Commit: 90dc1489e6280a2f7cd39e74f7be2ec9e556cad7 https://github.com/Perl/perl5/commit/90dc1489e6280a2f7cd39e74f7be2ec9e556cad7 Author: Richard Leach Date: 2022-09-18 (Sun, 18 Sep 2022) Changed paths: M sv.h Log Message: --- sv.c - add SvPVCLEAR_FRESH macro for new PVs with buffer SvPVCLEAR(tmpstr) is a macro that calls sv_setpv_bufsize(tmpstr,0,0). If called on a newly minted PV/PVIV/PVNV/PVMG that has a fresh PV buffer assigned, many of the checks in SvPVCLEAR are unnecessary: * SvTHINKFIRST - won't be set * upgrade to SVt_PV - won't be necessary * SvGROW - we assert that this isn't necessary It then does some useful, but small actions: * sets SvCUR(sv, 0); * sets the last byte in the PV buffer to \0 * sets SvPOK_only_UTF8 * does SvTAINT Then does a final irrelevant check: * is tmpstr a PVCV - no it is not This commit introduces SvPVCLEAR_FRESH as a drop-in replacement for compatible SVs, that only does the relevant small actions. Commit: 8af03a11d8197fbbc9700846c4aa5c1baa32b281 https://github.com/Perl/perl5/commit/8af03a11d8197fbbc9700846c4aa5c1baa32b281 Author: Richard Leach Date: 2022-09-18 (Sun, 18 Sep 2022) Changed paths: M toke.c Log Message: --- S_scan_heredoc - use SvPVCLEAR_FRESH on new SV Commit: 51918aaf0287a9f5643ea3161fd8c6091a127428 https://github.com/Perl/perl5/commit/51918aaf0287a9f5643ea3161fd8c6091a127428 Author: Richard Leach Date: 2022-09-18 (Sun, 18 Sep 2022) Changed paths: M regcomp.c Log Message: --- S_regclass - use SvPVCLEAR_FRESH on new SV Commit: 94e822ee24ba222efc1979d79e64ca7b2c0942cb https://github.com/Perl/perl5/commit/94e822ee24ba222efc1979d79e64ca7b2c0942cb Author: Richard Leach Date: 2022-09-18 (Sun, 18 Sep 2022) Changed paths: M sv.c Log Message: --- vnewSVpvf - inline & reduce call to sv_vsetpvfn sv_vsetpvfn does just two things: * SvPVCLEAR on the sv passed in * calls sv_vcatpvfn_flags Since the SV passed into sv_vsetpvfn by vnewSVpvf is a brand new SV, it is more efficient to inline sv_vsetpvfn and change the SvPVCLEAR to SvPVCLEAR_FRESH. Compare: https://github.com/Perl/perl5/compare/b0b120dcf9fb...94e822ee24ba
[Perl/perl5] 33498e: sv_setsv_cow - directly create desired SVt_COW SV
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 33498ed6ab04d6249c8585950bfd9321db9d2fa7 https://github.com/Perl/perl5/commit/33498ed6ab04d6249c8585950bfd9321db9d2fa7 Author: Richard Leach Date: 2022-09-17 (Sat, 17 Sep 2022) Changed paths: M sv.c Log Message: --- sv_setsv_cow - directly create desired SVt_COW SV It's more efficient to directly create the desired SV type than create a SVt_NULL and then call sv_upgrade to get the desired type.
[Perl/perl5] 5e0c3e: pod - remove references to PrePAN (now defunct)
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5e0c3e4a3b85ccc05e1127d901a87d55a48e5b98 https://github.com/Perl/perl5/commit/5e0c3e4a3b85ccc05e1127d901a87d55a48e5b98 Author: Richard Leach Date: 2022-09-15 (Thu, 15 Sep 2022) Changed paths: M pod/perlcommunity.pod M pod/perlmodstyle.pod Log Message: --- pod - remove references to PrePAN (now defunct)
[Perl/perl5] e69d7f: perlguts - document newAV_alloc_x/z and _simple funcs
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: e69d7f8b2b933533e7d4b0f258a09d331a524e53 https://github.com/Perl/perl5/commit/e69d7f8b2b933533e7d4b0f258a09d331a524e53 Author: Richard Leach Date: 2022-09-16 (Fri, 16 Sep 2022) Changed paths: M pod/perlguts.pod Log Message: --- perlguts - document newAV_alloc_x/z and _simple funcs
[Perl/perl5] 658a5b: Perl_sv_setsv_flags: return after invlist_clone case
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 658a5bedcfb012a503b61de6c8cb69924cc6f6f8 https://github.com/Perl/perl5/commit/658a5bedcfb012a503b61de6c8cb69924cc6f6f8 Author: Richard Leach Date: 2022-09-14 (Wed, 14 Sep 2022) Changed paths: M sv.c Log Message: --- Perl_sv_setsv_flags: return after invlist_clone case In the "first_ switch" statement in Perl_sv_setsv_flags, there's this case: case SVt_INVLIST: invlist_clone(ssv, dsv); break; When the INVLIST code was added, it was unclear whether the logic following that switch needed to apply to INVLISTs or not. Early returns were also seen as risky from a future maintenance perspective. As a precaution, this case was written to `break` rather than `return`. With later analysis though, it seems like the code below this switch does not apply to INVLISTs, apart from one unintended interaction. * invlist_clone() - in regcomp.c - copies the PV buffer of ssv to dsv. * However, whenever an invlist is initialized, SvPOK_on is called on its SV; according to the nearby comment "/* This allows B to extract the PV */". * Because the switch case does not return, the later `if (sflags & SVp_POK)` branch will try to swipe/cow/copy the PV buffer of ssv to dsv. This is an unnecessary double copy. On that analysis, this commit changes the break into a return.
[Perl/perl5] 88745c: Perldelta for GH#20063 (addition to existing list)
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 88745cf76c5a2fcd907eec49427ee74a02e529b3 https://github.com/Perl/perl5/commit/88745cf76c5a2fcd907eec49427ee74a02e529b3 Author: Richard Leach Date: 2022-09-07 (Wed, 07 Sep 2022) Changed paths: M pod/perldelta.pod Log Message: --- Perldelta for GH#20063 (addition to existing list)
[Perl/perl5] aafefc: OP_AELEMFASTLEX_STORE - combined sassign/aelemfast...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: aafefcb90183e1d6ef62d9e1ccc1fae7fcdf9c8e https://github.com/Perl/perl5/commit/aafefcb90183e1d6ef62d9e1ccc1fae7fcdf9c8e Author: Richard Leach Date: 2022-09-07 (Wed, 07 Sep 2022) Changed paths: M ext/Opcode/Opcode.pm M lib/B/Deparse.pm M lib/B/Op_private.pm M opcode.h M opnames.h M peep.c M pp_hot.c M pp_proto.h M regen/op_private M regen/opcodes M t/perf/benchmarks M t/perf/opcount.t Log Message: --- OP_AELEMFASTLEX_STORE - combined sassign/aelemfast_lex This commit introduces a new OP to replace simple cases of OP_SASSIGN and OP_AELEMFAST_LEX. (Similar concept to GH #19943) For example, `my @ary; $ary[0] = "boo"` is currently implemented as: 7 <2> sassign vKS/2 ->8 5<$> const[PV "boo"] s ->6 -<1> ex-aelem sKRM*/2 ->7 6 <0> aelemfast_lex[@ary:1,2] sRM ->7 - <0> ex-const s ->- But now will be turned into: 6 <1> aelemfastlex_store[@ary:1,2] vKS ->7 5<$> const(PV "boo") s ->6 -<1> ex-aelem sKRM*/2 ->6 - <0> ex-aelemfast_lex sRM ->6 - <0> ex-const s ->- This is intended to be a transparent performance optimization. It should be applicable for RHS optrees of varying complexity.
[Perl/perl5] c5bbf8: peep.c:OP_PADSV_STORE - skip SASSIGN created by Me...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c5bbf81a67393c24727402cfeca0bfe002966ee0 https://github.com/Perl/perl5/commit/c5bbf81a67393c24727402cfeca0bfe002966ee0 Author: Richard Leach Date: 2022-09-06 (Tue, 06 Sep 2022) Changed paths: M peep.c Log Message: --- peep.c:OP_PADSV_STORE - skip SASSIGN created by Memoize::Once Memoize::Once produces a non-standard SASSIGN which should not and need not be optimized. Because this SASSIGN has only one child, something that hasn't been seen elsewhere, that can be used as a heuristic for skipping this type of SASSIGN in rpeep().
[Perl/perl5] e63223: Perldelta for GH#20077 (addition to existing list)
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: e63223c9d222ea0c196e1b7a4602b80efb98131e https://github.com/Perl/perl5/commit/e63223c9d222ea0c196e1b7a4602b80efb98131e Author: Richard Leach Date: 2022-08-25 (Thu, 25 Aug 2022) Changed paths: M pod/perldelta.pod Log Message: --- Perldelta for GH#20077 (addition to existing list)
[Perl/perl5] c74a92: Add OPpTARGET_MY optimization to OP_UNDEF
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c74a928a43322c574522f122a3f3a29262f90613 https://github.com/Perl/perl5/commit/c74a928a43322c574522f122a3f3a29262f90613 Author: Richard Leach Date: 2022-08-25 (Thu, 25 Aug 2022) Changed paths: M ext/B/t/optree_varinit.t M lib/B/Deparse.pm M lib/B/Op_private.pm M opcode.h M peep.c M pp.c M regen/op_private M t/op/undef.t M t/perf/benchmarks M t/perf/opcount.t Log Message: --- Add OPpTARGET_MY optimization to OP_UNDEF This allows the existing `undef` OP to act on a pad SV. The following two cases are optimized: `undef my $x`, currently implemented as: 4 <1> undef vK/1 ->5 3<0> padsv[$x:1,2] sRM/LVINTRO ->4 `my $a = undef`, currently implemented as: 5 <2> sassign vKS/2 ->6 3<0> undef s ->4 4<0> padsv[$x:1,2] sRM*/LVINTRO ->5 These are now just represented as: 3 <1> undef[$x:1,2] vK/SOMEFLAGS ->4 Note: The two cases are not quite functionally identical, as `$x = undef` clears the SV flags but preserves any PV allocation for later reuse, whereas `undef $x` does free any PV allocation. This behaviour difference is preserved through use of the OPpUNDEF_KEEP_PV flag.
[Perl/perl5] 6f6297: rpeep: don't apply padsv_store and padrange together
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 6f629715866f9fa9452688fb66ee6661307b7a78 https://github.com/Perl/perl5/commit/6f629715866f9fa9452688fb66ee6661307b7a78 Author: Richard Leach Date: 2022-08-23 (Tue, 23 Aug 2022) Changed paths: M peep.c M t/op/lex_assign.t Log Message: --- rpeep: don't apply padsv_store and padrange together As originally committed, the OP_PADSV_STORE optimization interacted negatively with OP_PADRANGE: 1. The new rpeep code was buggy, as it assumed that oldop must be the targ PADSV, when it could have been a padrange. In the first case, updating `oldoldop->op_next = o` is correct, in the second case the op_next chain must be left as-is. That was easily fixable. 2. There was some problem with stack book-keeping - probably of the mark stack. The following test case continued to fail even after the rpeep code had been fixed: my $x = {}; my $y; print keys %{$y = $x}; However, since both OP_PADSV_STORE and OP_PADRANGE optimize by taking the targ PADSV out of the op_next chain, it was apparent that there is reduced gain from having both optimizations applied to the same optree. Therefore, the simple fix applied by this commit is to modify peep(), such that the OP_PADSV_STORE optimization is not applied when OP_PADRANGE has already been applied. Existing tests did not pick up the problems, which were identified via Blead-Breaks-CPAN reports. Additional tests have thus been included.
[Perl/perl5] 22887b: Perldelta for GH#19943 (OP_PADSV_STORE)
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 22887b5bfa220f1de2e85d93f5387a8870cc1ae7 https://github.com/Perl/perl5/commit/22887b5bfa220f1de2e85d93f5387a8870cc1ae7 Author: Richard Leach Date: 2022-08-17 (Wed, 17 Aug 2022) Changed paths: M pod/perldelta.pod Log Message: --- Perldelta for GH#19943 (OP_PADSV_STORE) The wording has been left generic, since other such optimizations are in the PR queue and could just be tacked on the end later.
[Perl/perl5] 9fdd7f: Implement OP_PADSV_STORE - combined sassign/padsv OP
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 9fdd7fc4796d89d16dceea42f2af91e4fde296ed https://github.com/Perl/perl5/commit/9fdd7fc4796d89d16dceea42f2af91e4fde296ed Author: Richard Leach Date: 2022-08-17 (Wed, 17 Aug 2022) Changed paths: M ext/B/t/b.t M ext/B/t/optree_concise.t M ext/B/t/optree_samples.t M ext/B/t/optree_varinit.t M ext/Opcode/Opcode.pm M lib/B/Deparse.pm M lib/B/Op_private.pm M opcode.h M opnames.h M peep.c M pp_hot.c M pp_proto.h M regen/op_private M regen/opcodes M t/perf/opcount.t Log Message: --- Implement OP_PADSV_STORE - combined sassign/padsv OP This commit introduces a new OP to replace simple cases of OP_SASSIGN and OP_PADSV. For example, 'my $x = 1' is currently implemented as: 1 <;> nextstate(main 1 -e:1) v:{ 2 <$> const(IV 1) s 3 <0> padsv[$x:1,2] sRM*/LVINTRO 4 <2> sassign vKS/2 But now will be turned into: 1 <;> nextstate(main 1 -e:1) v:{ 2 <$> const(IV 1) s 3 <1> padsv_store[$x:1,2] vKMS/LVINTRO This intended to be a transparent performance optimization. It should be applicable for RHS optrees of varying complexity.
[Perl/perl5] e033b0: sv.c - add Perl_newSVhek_mortal
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: e033b0b9c2bf27f70f0267fc75188d4e7d2fc863 https://github.com/Perl/perl5/commit/e033b0b9c2bf27f70f0267fc75188d4e7d2fc863 Author: Richard Leach Date: 2022-08-05 (Fri, 05 Aug 2022) Changed paths: M embed.fnc M embed.h M proto.h M sv.c Log Message: --- sv.c - add Perl_newSVhek_mortal This is a small wrapper function intended to replace use of sv_2mortal(newSVhek(...)) This provides some small optimization, since sv_2mortal performs a number of checks for conditions that we know cannot be true. Commit: 518db96ae536faa5656a7cdc6b3dc510b75edb79 https://github.com/Perl/perl5/commit/518db96ae536faa5656a7cdc6b3dc510b75edb79 Author: Richard Leach Date: 2022-08-05 (Fri, 05 Aug 2022) Changed paths: M gv.c M hv.c M mro_core.c M op.c M pp.c M pp_sys.c M sv.c M toke.c M util.c Log Message: --- Replace sv_2mortal(newSVhek( with newSVhek_mortal The new Perl_newSVhek_mortal function is slightly more efficient. Compare: https://github.com/Perl/perl5/compare/819d09b57c6a...518db96ae536
[Perl/perl5] 819d09: Perl_newRV_noinc - explicitly simplify, convert to...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 819d09b57c6a76b0ba90670a1ea1861730bc457b https://github.com/Perl/perl5/commit/819d09b57c6a76b0ba90670a1ea1861730bc457b Author: Richard Leach Date: 2022-08-05 (Fri, 05 Aug 2022) Changed paths: M embed.fnc M proto.h M sv.c M sv_inline.h Log Message: --- Perl_newRV_noinc - explicitly simplify, convert to inline func Perl_newRV_noinc creates a new SVt_IV, then calls sv_setrv_noinc, which will check if the SVt_IV is SvTHINKFIRST (it won't be) and if it is types other than SVt_IV (it won't be). If those checks and associated branches are removed, all that remains is some flag twiddling and setting the sv_u.svu_rv pointer. A decent compiler *might* figure that all out and simplify Perl_newRV_noinc right down to the essentials, but if we do that directly, the entire function is small enough to move to sv_inline.h
[Perl/perl5] 5aaf02: Perl_reg_named_buff_fetch - simpler retarray creat...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5aaf02785ac2afc87abd458c0e6469818cc28775 https://github.com/Perl/perl5/commit/5aaf02785ac2afc87abd458c0e6469818cc28775 Author: Richard Leach Date: 2022-08-02 (Tue, 02 Aug 2022) Changed paths: M regcomp.c Log Message: --- Perl_reg_named_buff_fetch - simpler retarray creation & push retarray is a straightforward array created and populated with SvIVX(sv_dat) number of elements within this function. As the number of elements is known and all elements will be used, a correctly-sized array can be created using newAV_alloc_x. Since it's a straightforward array, av_push_simple can be used in place of av_push. This will be more efficient.
[Perl/perl5] 3b6b04: newAVav/newAVhv - use faster newAV_alloc_x(z) macros
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 3b6b0454f77464cedcad7102764c6788a4f14ba8 https://github.com/Perl/perl5/commit/3b6b0454f77464cedcad7102764c6788a4f14ba8 Author: Richard Leach Date: 2022-07-20 (Wed, 20 Jul 2022) Changed paths: M av.c Log Message: --- newAVav/newAVhv - use faster newAV_alloc_x(z) macros Commit: 80c024ac46cfd7ea9195a681104a2c19cc18dcbf https://github.com/Perl/perl5/commit/80c024ac46cfd7ea9195a681104a2c19cc18dcbf Author: Richard Leach Date: 2022-07-20 (Wed, 20 Jul 2022) Changed paths: M av.c Log Message: --- newAVav - av_push_simple for faster ret array assignment Commit: f98a2322bc85e4c02c26642730743969df0937bb https://github.com/Perl/perl5/commit/f98a2322bc85e4c02c26642730743969df0937bb Author: Richard Leach Date: 2022-07-20 (Wed, 20 Jul 2022) Changed paths: M av.c Log Message: --- newAVhv - av_push_simple for faster ret array assignments Compare: https://github.com/Perl/perl5/compare/35c98d68a648...f98a2322bc85
[Perl/perl5] bda3b1: B::Concise - private flags may store the argument ...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: bda3b19c10a9003a3e7c8c91f6674d892bcc2100 https://github.com/Perl/perl5/commit/bda3b19c10a9003a3e7c8c91f6674d892bcc2100 Author: Richard Leach Date: 2022-07-18 (Mon, 18 Jul 2022) Changed paths: M ext/B/B/Concise.pm Log Message: --- B::Concise - private flags may store the argument count
[Perl/perl5] 5af5b2: pp_aelemfast: include fast return for non-lvals
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5af5b232a2dc0e42e74fa716f7cf429ba9e386ac https://github.com/Perl/perl5/commit/5af5b232a2dc0e42e74fa716f7cf429ba9e386ac Author: Richard Leach Date: 2022-06-15 (Wed, 15 Jun 2022) Changed paths: M pp_hot.c Log Message: --- pp_aelemfast: include fast return for non-lvals Within the "inlined av_fetch() for simple cases" fast path, we already operate within the bounding conditions of the if() statement. Once AvARRAY(av)[key] is found to be null, a call of av_fetch(av,key,lval) here just boils down to a single line: return lval ? av_store(av,key,newSV_type(SVt_NULL)) : NULL; Checking the rest of pp_aelemfast, it's clear that within the fast path, if (!sv) and (!lval), the function must eventually PUSHs(&PL_sv_undef). So the fast path might as well do that directly.
[Perl/perl5] a9b64e: inline.h: add av_push_simple
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: a9b64e60085410a21f22d9df311cfe251b44d446 https://github.com/Perl/perl5/commit/a9b64e60085410a21f22d9df311cfe251b44d446 Author: Richard Leach Date: 2022-06-08 (Wed, 08 Jun 2022) Changed paths: M embed.fnc M embed.h M inline.h M proto.h Log Message: --- inline.h: add av_push_simple A simplified version of av_push, along the lines of av_store_simple and av_fetch_simple. This function is trivial, but having it makes refactoring of existing code easier to read. For example, changing: av_push(some_av, val); to: av_push_simple(some_av,val); is easier to read than: av_store_simple(some_av, AvFILLp(some_av) + 1, val) Commit: eae3cc9643eecd5d8b27c8fb4a3dc3bfebaf57e3 https://github.com/Perl/perl5/commit/eae3cc9643eecd5d8b27c8fb4a3dc3bfebaf57e3 Author: Richard Leach Date: 2022-06-08 (Wed, 08 Jun 2022) Changed paths: M av.c M embed.fnc M inline.h M proto.h Log Message: --- Move av_new_alloc from av.c to inline.h There was less benefit in doing this prior to newSV_type becoming an inline function. Now that it is, inlining av_new_alloc can help compilers eliminate redundant setting of AvMAX/AvFILLp and unnecessary branches of any following inlined calls to av_store_simple. Commit: 74279cb654174c8653f8e15198a6aa843636148e https://github.com/Perl/perl5/commit/74279cb654174c8653f8e15198a6aa843636148e Author: Richard Leach Date: 2022-06-08 (Wed, 08 Jun 2022) Changed paths: M mro_core.c M perlio.c M sv.c Log Message: --- Make use of av_push_simple in a few places. Specifically, only where a new AV has just been created and it's therefore obvious that av_push_simple is safe to use. In many cases, nearby code does av_push to an existing array. It might well be the case that these are simple arrays and av_push_simple could be used instead. The necessary analysis has been left for the future. Compare: https://github.com/Perl/perl5/compare/37a94617085a...74279cb65417
[Perl/perl5] 2ebf8a: pp_unshift: av_store is often unnecessary
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 2ebf8a2046483a8d79ad2050abd76cc78e70dd3c https://github.com/Perl/perl5/commit/2ebf8a2046483a8d79ad2050abd76cc78e70dd3c Author: Richard Leach Date: 2022-06-08 (Wed, 08 Jun 2022) Changed paths: M pp.c Log Message: --- pp_unshift: av_store is often unnecessary
[Perl/perl5] 2356f8: Move sv.h functions from inline.h into sv_inline.h,
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 2356f8bb5077e29623007d815dab58f43473a56d https://github.com/Perl/perl5/commit/2356f8bb5077e29623007d815dab58f43473a56d Author: Richard Leach Date: 2022-05-28 (Sat, 28 May 2022) Changed paths: M inline.h M sv_inline.h Log Message: --- Move sv.h functions from inline.h into sv_inline.h, so that all functions inlined from sv.* are in one place. This was suggested by @khw.
perl5-changes@perl.org
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: d0c76c0f88e5946c926a0cb191e20b5d9f2c6939 https://github.com/Perl/perl5/commit/d0c76c0f88e5946c926a0cb191e20b5d9f2c6939 Author: Richard Leach Date: 2022-04-04 (Mon, 04 Apr 2022) Changed paths: M regcomp.c Log Message: --- Perl_reg_named_buff_fetch: simplify newSVsv(&PL_sv_undef) Specifically, newSVsv(&PL_sv_undef) reduces to just newSV_type(SVt_NULL).
[Perl/perl5] b944b7: Perl_newSVnv: simplify SV creation and SvNV_set
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b944b7ba26833a5a2716dc6cc2542a994ff63c2c https://github.com/Perl/perl5/commit/b944b7ba26833a5a2716dc6cc2542a994ff63c2c Author: Richard Leach Date: 2022-03-20 (Sun, 20 Mar 2022) Changed paths: M sv.c Log Message: --- Perl_newSVnv: simplify SV creation and SvNV_set The function can be simplified by using the now-inlined newSV_type function, directly using SvNV_set, and twiddling the required flags. This cuts out any function call overhead, a switch statement leading to a sv_upgrade(sv, SVt_NV) call, and a touch more bit-twiddling than is necessary. Commit: 915544426781d184e3b057e63a20c089a32d3eba https://github.com/Perl/perl5/commit/915544426781d184e3b057e63a20c089a32d3eba Author: Richard Leach Date: 2022-03-20 (Sun, 20 Mar 2022) Changed paths: M sv.c Log Message: --- Perl_newSViv: simplify by using (inline) newSV_type Compare: https://github.com/Perl/perl5/compare/a933fcc5f0f3...915544426781
[Perl/perl5] d6b487: perl.c: www.perl.org uses https
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: d6b487cec2690eccc59f18bd6c3803ea06b3c9d6 https://github.com/Perl/perl5/commit/d6b487cec2690eccc59f18bd6c3803ea06b3c9d6 Author: Richard Leach Date: 2022-03-13 (Sun, 13 Mar 2022) Changed paths: M perl.c Log Message: --- perl.c: www.perl.org uses https
[Perl/perl5] 75acd1: Make newSV_type an inline function
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 75acd14e43f2ffb698fc7032498f31095b56adb5 https://github.com/Perl/perl5/commit/75acd14e43f2ffb698fc7032498f31095b56adb5 Author: Richard Leach Date: 2022-03-07 (Mon, 07 Mar 2022) Changed paths: M MANIFEST M embed.fnc M embed.h M perl.h M proto.h M sv.c M sv.h A sv_inline.h Log Message: --- Make newSV_type an inline function When a new SV is created and upgraded to a type known at compile time, uprooting a SV head and then using the general-purpose upgrade function (sv_upgrade) is clunky. Specifically, while uprooting a SV head is lightweight (assuming there are unused SVs), sv_upgrade is too big to be inlined, contains many branches that can logically be resolved at compile time for known start & end types, and the lookup of the correct body_details struct may add CPU cycles. This commit tries to address that by making newSV_type an inline function and including only the parts of sv_upgrade needed to upgrade a SVt_NULL. When the destination type is known at compile time, a decent compiler will inline a call to newSV_type and use the type information to throw away all the irrelevant parts of the sv_upgrade logic. Because of the spread of type definitions across header files, it did not seem possible to make the necessary changed inside sv.h, and so a new header file (sv_inline.h) was created. For the inlined function to work outside of sv.c, many definitions from that file were moved to sv_inline.h. Finally, in order to also benefit from this change, existing code in sv.c that does things like this: SV* sv; new_SV(sv); sv_upgrade(sv, SVt_PV) has been modified to read something like: SV* sv = newSV_type(SVt_PV); Commit: 8fcb24256a3027cbca7c100825eb3805586fe1e5 https://github.com/Perl/perl5/commit/8fcb24256a3027cbca7c100825eb3805586fe1e5 Author: Richard Leach Date: 2022-03-07 (Mon, 07 Mar 2022) Changed paths: M av.c M dump.c M gv.c M hv.c M inline.h M op.c M pad.c M pp.c M pp_ctl.c M pp_hot.c M regexec.c M scope.c M sv.c M toke.c Log Message: --- Inlined newSV_type(SVt_NULL) leaner than non-inlined newSV(0) When a function outside of sv.c creates a SV via newSV(0): * There is a call to Perl_newSV * A SV head is uprooted and its flags set * A runtime check is made to effectively see if 0 > 0 * The new SV* is returned Replacing newSV(0) with newSV_type(SVt_NULL) should be more efficient, because (assuming there are SV heads to uproot), the only step is: * A SV head is uprooted and its flags set Commit: 7ea8b04b5a0e6952b7ffd5a8fd96468b72da6bea https://github.com/Perl/perl5/commit/7ea8b04b5a0e6952b7ffd5a8fd96468b72da6bea Author: Richard Leach Date: 2022-03-07 (Mon, 07 Mar 2022) Changed paths: M av.c M doop.c M embed.fnc M embed.h M gv.c M hv.c M mg.c M mro_core.c M pad.c M pp.c M pp_ctl.c M pp_hot.c M proto.h M regcomp.c M sv_inline.h M universal.c Log Message: --- Perl_newSV_type_mortal - new inline function introduced and used There's no efficient way to create a mortal SV of any type other than SVt_NULL (via sv_newmortal). The options are either to do: * SV* sv = sv_newmortal; sv_upgrade(sv, SVt_SOMETYPE); but sv_upgrade is needlessly inefficient on new SVs. * SV* sv = sv_2mortal(newSV_type(SVt_SOMETYPE) but this will perform runtime checks to see if (sv) and if (SvIMMORTAL(sv), and for a new SV we know that those answers will always be yes and no. This commit adds a new inline function which is basically a mortalizing wrapper around the now-inlined newSV_type. Compare: https://github.com/Perl/perl5/compare/4f1687891150...7ea8b04b5a0e
[Perl/perl5] 28b761: sv_upgrade: remove redundant AvALLOC(sv) = 0
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 28b7611abf757b803ec5b296d60fc99763c1c8d0 https://github.com/Perl/perl5/commit/28b7611abf757b803ec5b296d60fc99763c1c8d0 Author: Richard Leach Date: 2021-12-24 (Fri, 24 Dec 2021) Changed paths: M sv.c Log Message: --- sv_upgrade: remove redundant AvALLOC(sv) = 0 xav_alloc is a member of the xpvav struct. The instance modified here would have been Zero()ed several lines previously, so both sides of this if() branch should be no-ops. With gcc 8.3.0 the compiled function is about 6 instructions smaller. Commit: 0d63558f3807c54b42649c7b9d8dbfbcb727b0ff https://github.com/Perl/perl5/commit/0d63558f3807c54b42649c7b9d8dbfbcb727b0ff Author: Richard Leach Date: 2021-12-24 (Fri, 24 Dec 2021) Changed paths: M sv.c Log Message: --- sv_upgrade: c99 compound literals to initialize xpvav/xpvhv For both the AV and HV cases, the new body is Zero()ed but then various struct members are set to non-zero values. Now that we support parts of c99, it seems more efficient to use compound literals to initailize the struct members. With gcc v8.3.0, the compiled function is smaller by 25 instructions. sv.o is slightly smaller, but the final perl binary size is unchanged. Compare: https://github.com/Perl/perl5/compare/b135e9358aa9...0d63558f3807
[Perl/perl5] 5124a9: Minor RMG tweaks
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5124a90647cf2887ce5f9ec87f78b40257a3aff2 https://github.com/Perl/perl5/commit/5124a90647cf2887ce5f9ec87f78b40257a3aff2 Author: Richard Leach Date: 2021-12-16 (Thu, 16 Dec 2021) Changed paths: M Porting/release_managers_guide.pod Log Message: --- Minor RMG tweaks
[Perl/perl5] 7b88b1: Minor output tweaks to sync-with-cpan
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 7b88b133f0456ec3803ae568755c54e41dc064d6 https://github.com/Perl/perl5/commit/7b88b133f0456ec3803ae568755c54e41dc064d6 Author: Richard Leach Date: 2021-12-16 (Thu, 16 Dec 2021) Changed paths: M Porting/sync-with-cpan Log Message: --- Minor output tweaks to sync-with-cpan
[Perl/perl5] f7f919: Misc microoptimizations when dealing with new SVs
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: f7f919a02477385250997b98fe25f99657653150 https://github.com/Perl/perl5/commit/f7f919a02477385250997b98fe25f99657653150 Author: Richard Leach Date: 2021-12-04 (Sat, 04 Dec 2021) Changed paths: M hv.c M pp.c M pp_ctl.c M pp_hot.c M pp_sys.c Log Message: --- Misc microoptimizations when dealing with new SVs In a few places, SVs can be created more efficiently or new SVs can be assigned to more efficiently. Small changes included: * Use sv_setpvn_fresh instead of sv_setpvn * Use sv_mortalcopy_flags instead of sv_newmortal + sv_setsv_flags * newSVsv_flags instead of newSV + sv_setsv_flags * sv_newmortal instead of sv_2mortal(newSV(0)) * Remove a SvGROW(sv, 257) following a newSV(257)
[Perl/perl5] 2a98b8: newSVpvn_flags().. is more efficient than sv_2mort...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 2a98b8cbbc6f75b5aaefb10acc4da4427359fcea https://github.com/Perl/perl5/commit/2a98b8cbbc6f75b5aaefb10acc4da4427359fcea Author: Richard Leach Date: 2021-11-29 (Mon, 29 Nov 2021) Changed paths: M op.c M pp_sys.c M regcomp.c M toke.c Log Message: --- newSVpvn_flags().. is more efficient than sv_2mortal(newSVpvn(..)) The same holds for newSVpvs* wrappers around newSVpvn* functions.
[Perl/perl5] c80a86: newSVpvn_flags(x, .. ,SVs_TEMP) more efficient tha...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c80a8618143e98aed6d9e5bbaee16d0308e211d0 https://github.com/Perl/perl5/commit/c80a8618143e98aed6d9e5bbaee16d0308e211d0 Author: Richard Leach Date: 2021-11-29 (Mon, 29 Nov 2021) Changed paths: M inline.h M perl.c M perlio.c M pp_sys.c Log Message: --- newSVpvn_flags(x, .. ,SVs_TEMP) more efficient than sv_2mortal(newSVpv(x,0))
[Perl/perl5] 46c759: Fixup Corelist.pm
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 46c7599cc0712f9fb0b16e7121aca51cc407ad0d https://github.com/Perl/perl5/commit/46c7599cc0712f9fb0b16e7121aca51cc407ad0d Author: Richard Leach Date: 2021-11-22 (Mon, 22 Nov 2021) Changed paths: M dist/Module-CoreList/lib/Module/CoreList.pm Log Message: --- Fixup Corelist.pm
[Perl/perl5] 642089: Prepare Module::Corelist for 5.35.7
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 6420890349a1b30bab5f201e19057a9f691a88ba https://github.com/Perl/perl5/commit/6420890349a1b30bab5f201e19057a9f691a88ba Author: Richard Leach Date: 2021-11-22 (Mon, 22 Nov 2021) Changed paths: M Porting/Maintainers.pl M dist/Module-CoreList/Changes M dist/Module-CoreList/lib/Module/CoreList.pm M dist/Module-CoreList/lib/Module/CoreList/Utils.pm Log Message: --- Prepare Module::Corelist for 5.35.7
[Perl/perl5] abee8b: Add epigraph for 5.35.6
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: abee8ba0ade8d70a05b8012c216871c81b607105 https://github.com/Perl/perl5/commit/abee8ba0ade8d70a05b8012c216871c81b607105 Author: Richard Leach Date: 2021-11-21 (Sun, 21 Nov 2021) Changed paths: M Porting/epigraphs.pod Log Message: --- Add epigraph for 5.35.6 Commit: cec8b4ef63a0826b8d696467c35b2016ae3ed354 https://github.com/Perl/perl5/commit/cec8b4ef63a0826b8d696467c35b2016ae3ed354 Author: Richard Leach Date: 2021-11-21 (Sun, 21 Nov 2021) Changed paths: M Porting/release_schedule.pod Log Message: --- Tick off 5.35.6 from release schedule Commit: 2fac577b7e23d1a31924032008b3260a91bff494 https://github.com/Perl/perl5/commit/2fac577b7e23d1a31924032008b3260a91bff494 Author: Richard Leach Date: 2021-11-21 (Sun, 21 Nov 2021) Changed paths: M MANIFEST M Makefile.SH M pod/.gitignore M pod/perl.pod A pod/perl5356delta.pod M pod/perldelta.pod M vms/descrip_mms.template M win32/GNUmakefile M win32/Makefile M win32/pod.mak Log Message: --- new perldelta for 5.35.7 Commit: e8a7ae4b24294cd1c95f88ce956e00b2e699de96 https://github.com/Perl/perl5/commit/e8a7ae4b24294cd1c95f88ce956e00b2e699de96 Author: Richard Leach Date: 2021-11-21 (Sun, 21 Nov 2021) Changed paths: M Cross/config.sh-arm-linux M Cross/config.sh-arm-linux-n770 M INSTALL M META.json M META.yml M Porting/config.sh M Porting/config_H M Porting/perldelta_template.pod M Porting/todo.pod M README.haiku M README.macosx M README.os2 M README.vms M hints/catamount.sh M lib/B/Op_private.pm M patchlevel.h M plan9/config_sh.sample M win32/GNUmakefile M win32/Makefile Log Message: --- Bump the perl version in various places for 5.35.7 Compare: https://github.com/Perl/perl5/compare/7badc7c896a8...e8a7ae4b2429
[Perl/perl5]
Branch: refs/tags/v5.35.6 Home: https://github.com/Perl/perl5
[Perl/perl5] dc12d1: Update AUTHORS list for 5.35.6
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: dc12d1ae70606f7e4903f72e0e816183500a https://github.com/Perl/perl5/commit/dc12d1ae70606f7e4903f72e0e816183500a Author: Richard Leach Date: 2021-11-20 (Sat, 20 Nov 2021) Changed paths: M AUTHORS Log Message: --- Update AUTHORS list for 5.35.6 Commit: 507e155a7ee3d28d6324ebcee9569d898c8acc56 https://github.com/Perl/perl5/commit/507e155a7ee3d28d6324ebcee9569d898c8acc56 Author: Richard Leach Date: 2021-11-20 (Sat, 20 Nov 2021) Changed paths: M dist/Module-CoreList/lib/Module/CoreList.pm Log Message: --- Update Module::CoreList for 5.35.6 Commit: deaec9bf9ff148ae0b4f8d0a644b1c262a2b688e https://github.com/Perl/perl5/commit/deaec9bf9ff148ae0b4f8d0a644b1c262a2b688e Author: Richard Leach Date: 2021-11-20 (Sat, 20 Nov 2021) Changed paths: M pod/perldelta.pod Log Message: --- Update perldelta for 5.35.6 release Commit: 7badc7c896a8f12c680283f7fbf93fb1e22a24da https://github.com/Perl/perl5/commit/7badc7c896a8f12c680283f7fbf93fb1e22a24da Author: Richard Leach Date: 2021-11-20 (Sat, 20 Nov 2021) Changed paths: M pod/perlhist.pod Log Message: --- add new release to perlhist Compare: https://github.com/Perl/perl5/compare/70074337fe75...7badc7c896a8
[Perl/perl5] b80b9f: Update HTTP::Tiny to v0.080
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b80b9f7fc6d09dfbec9460c291b313623f8560f0 https://github.com/Perl/perl5/commit/b80b9f7fc6d09dfbec9460c291b313623f8560f0 Author: Richard Leach Date: 2021-11-19 (Fri, 19 Nov 2021) Changed paths: M Porting/Maintainers.pl M cpan/HTTP-Tiny/lib/HTTP/Tiny.pm M cpan/HTTP-Tiny/t/140_proxy.t M cpan/HTTP-Tiny/t/141_no_proxy.t Log Message: --- Update HTTP::Tiny to v0.080 0.080 2021-11-05 08:15:46-04:00 America/New_York - No changes from 0.079-TRIAL. 0.079 2021-11-04 12:33:43-04:00 America/New_York (TRIAL RELEASE) [FIXED] - Fixed uninitialized value warnings on older Perls when the REQUEST_METHOD environment variable is set and CGI_HTTP_PROXY is not.
[Perl/perl5] 6853e8: Update bignum, Math::BigInt, Math::BigInt::FastCal...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 6853e8af3bcdae27c05a50e71c8ede1ab2b42822 https://github.com/Perl/perl5/commit/6853e8af3bcdae27c05a50e71c8ede1ab2b42822 Author: Richard Leach Date: 2021-11-19 (Fri, 19 Nov 2021) Changed paths: M MANIFEST M Makefile.SH M Porting/Maintainers.pl M cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm M cpan/Math-BigInt-FastCalc/t/bigintfc.t M cpan/Math-BigInt-FastCalc/t/biglog.t M cpan/Math-BigInt-FastCalc/t/bigroot.t M cpan/Math-BigInt-FastCalc/t/bootstrap.t M cpan/Math-BigInt-FastCalc/t/leak.t M cpan/Math-BigInt-FastCalc/t/mbi_rand.t M cpan/Math-BigInt/lib/Math/BigFloat.pm M cpan/Math-BigInt/lib/Math/BigInt.pm M cpan/Math-BigInt/lib/Math/BigInt/Calc.pm M cpan/Math-BigInt/lib/Math/BigInt/Lib.pm M cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm M cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm M cpan/Math-BigInt/t/Math/BigInt/Lib/TestUtil.pm M cpan/Math-BigInt/t/Math/BigInt/Subclass.pm A cpan/Math-BigInt/t/_bin_parts_to_lib_parts.t A cpan/Math-BigInt/t/_bin_str_to_str_parts.t A cpan/Math-BigInt/t/_dec_parts_to_lib_parts.t A cpan/Math-BigInt/t/_dec_str_to_str_parts.t M cpan/Math-BigInt/t/_e_math.t A cpan/Math-BigInt/t/_hex_str_to_str_parts.t A cpan/Math-BigInt/t/_oct_str_to_str_parts.t M cpan/Math-BigInt/t/alias.inc M cpan/Math-BigInt/t/backermann-mbi.t M cpan/Math-BigInt/t/bare_mbf.t M cpan/Math-BigInt/t/bare_mbi.t M cpan/Math-BigInt/t/bare_mif.t M cpan/Math-BigInt/t/bdigitsum-mbi.t M cpan/Math-BigInt/t/bdstr-mbf.t M cpan/Math-BigInt/t/bdstr-mbi.t M cpan/Math-BigInt/t/bestr-mbf.t M cpan/Math-BigInt/t/bestr-mbi.t M cpan/Math-BigInt/t/bfib-mbi.t M cpan/Math-BigInt/t/big_pi_e.t M cpan/Math-BigInt/t/bigfltpm.inc M cpan/Math-BigInt/t/bigfltpm.t M cpan/Math-BigInt/t/bigintc-import.t M cpan/Math-BigInt/t/bigintc.t M cpan/Math-BigInt/t/bigintpm.inc M cpan/Math-BigInt/t/bigintpm.t M cpan/Math-BigInt/t/bigints.t M cpan/Math-BigInt/t/biglog.t M cpan/Math-BigInt/t/bigroot.t M cpan/Math-BigInt/t/blucas-mbi.t M cpan/Math-BigInt/t/bnok-mbf.t M cpan/Math-BigInt/t/bnok-mbi.t M cpan/Math-BigInt/t/bnstr-mbf.t M cpan/Math-BigInt/t/bnstr-mbi.t A cpan/Math-BigInt/t/bpi-mbf.t A cpan/Math-BigInt/t/bpi-mbi.t M cpan/Math-BigInt/t/bsstr-mbf.t M cpan/Math-BigInt/t/bsstr-mbi.t M cpan/Math-BigInt/t/buparrow-mbi.t M cpan/Math-BigInt/t/calling-class-methods.t A cpan/Math-BigInt/t/calling-constant.t M cpan/Math-BigInt/t/calling-instance-methods.t A cpan/Math-BigInt/t/calling-lib1.t A cpan/Math-BigInt/t/calling-lib2.t R cpan/Math-BigInt/t/calling.t M cpan/Math-BigInt/t/config.t A cpan/Math-BigInt/t/const-mbf.t A cpan/Math-BigInt/t/const-mbi.t R cpan/Math-BigInt/t/const_mbf.t R cpan/Math-BigInt/t/constant.t M cpan/Math-BigInt/t/downgrade.t M cpan/Math-BigInt/t/dparts-mbf.t M cpan/Math-BigInt/t/dparts-mbi.t M cpan/Math-BigInt/t/eparts-mbf.t M cpan/Math-BigInt/t/eparts-mbi.t M cpan/Math-BigInt/t/from_base-mbi.t M cpan/Math-BigInt/t/from_base_num-mbi.t M cpan/Math-BigInt/t/from_bin-mbf.t M cpan/Math-BigInt/t/from_bin-mbi.t M cpan/Math-BigInt/t/from_hex-mbf.t M cpan/Math-BigInt/t/from_hex-mbi.t M cpan/Math-BigInt/t/from_ieee754-mbf.t M cpan/Math-BigInt/t/from_oct-mbf.t M cpan/Math-BigInt/t/from_oct-mbi.t M cpan/Math-BigInt/t/inf_nan.t M cpan/Math-BigInt/t/isa.t A cpan/Math-BigInt/t/lib_load-mbf-mbi.t A cpan/Math-BigInt/t/lib_load-mbi-mbf.t R cpan/Math-BigInt/t/lib_load.t M cpan/Math-BigInt/t/mbf_ali.t M cpan/Math-BigInt/t/mbi_ali.t M cpan/Math-BigInt/t/mbi_rand.t M cpan/Math-BigInt/t/mbimbf.t M cpan/Math-BigInt/t/nan_cmp.t M cpan/Math-BigInt/t/new-mbf.t A cpan/Math-BigInt/t/new-mbi.t M cpan/Math-BigInt/t/new_overloaded.t M cpan/Math-BigInt/t/nparts-mbf.t M cpan/Math-BigInt/t/nparts-mbi.t M cpan/Math-BigInt/t/objectify_mbf.t M cpan/Math-BigInt/t/objectify_mbi.t M cpan/Math-BigInt/t/req_mbf0.t M cpan/Math-BigInt/t/req_mbf1.t M cpan/Math-BigInt/t/req_mbfa.t M cpan/Math-BigInt/t/req_mbfi.t M cpan/Math-BigInt/t/req_mbfn.t M cpan/Math-BigInt/t/req_mbfw.t M cpan/Math-BigInt/t/require.t M cpan/Math-BigInt/t/round.t M cpan/Math-BigInt/t/rt-16221.t M cpan/Math-BigInt/t/sparts-mbf.t M cpan/Math-BigInt/t/sparts-mbi.t M cpan/Math-BigInt/t/sub_ali.t M cpan/Math-BigInt/t/sub_mbf.t M cpan/Math-BigInt/t/sub_mbi.t M cpan/Math-BigInt/t/sub_mif.t M cpan/Math-BigInt/t/to_base-mbi.t M cpan/Math-BigInt/t/to_base_num-mbi.t M cpan/Math-BigInt/t/to_ieee754-mbf.t M cpan/Math-BigInt/t/trap.t M cpan/Math-BigInt/t/upgrade.inc M cpan/Math-BigInt/t/upgrade.t M cpan/Math-BigInt/t/upgrade2.t M cpan/Math-BigInt/t/upgradef.t
[Perl/perl5] 64b405: sv.c: add Perl_sv_grow_fresh & Perl_sv_setvpn_fresh
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 64b4056614429bb6fc7d35118e19a220459358fd https://github.com/Perl/perl5/commit/64b4056614429bb6fc7d35118e19a220459358fd Author: Richard Leach Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M embed.fnc M embed.h M proto.h M sv.c Log Message: --- sv.c: add Perl_sv_grow_fresh & Perl_sv_setvpn_fresh Commit: c95a251c5f6231d44c00a4a5ac8f406e67757f96 https://github.com/Perl/perl5/commit/c95a251c5f6231d44c00a4a5ac8f406e67757f96 Author: Richard Leach Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M sv.c Log Message: --- sv.c: use Perl_sv_grow_fresh & Perl_sv_setvpn_fresh Commit: 49a73a262cd71d15e5dd08eecb48d421698ef832 https://github.com/Perl/perl5/commit/49a73a262cd71d15e5dd08eecb48d421698ef832 Author: Richard Leach Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M pp_hot.c Log Message: --- pp_match: newSVpvn_flags now more efficient than sv_newmortal + sv_setpvn. Commit: 11e7ed3342a412dba2546230e367d8deee3bcb24 https://github.com/Perl/perl5/commit/11e7ed3342a412dba2546230e367d8deee3bcb24 Author: Richard Leach Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M pp_sys.c Log Message: --- pp_system: safe to switch in sv_setpvn_fresh here Compare: https://github.com/Perl/perl5/compare/30194bf8f486...11e7ed3342a4
[Perl/perl5] 1a4dad: pp_match: remove is_utf8_string check, used by rem...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 1a4dad1b219ee8d6ae6487ddf4e985cdd41279d8 https://github.com/Perl/perl5/commit/1a4dad1b219ee8d6ae6487ddf4e985cdd41279d8 Author: Richard Leach Date: 2021-10-13 (Wed, 13 Oct 2021) Changed paths: M pp_hot.c Log Message: --- pp_match: remove is_utf8_string check, used by removed (v5.24) \C char class
[Perl/perl5] 48d213: av.h - better document newAV_alloc_x/newAV_alloc_xz
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 48d21358f7bd06d60aaa4f913cd417b5eafa3fc0 https://github.com/Perl/perl5/commit/48d21358f7bd06d60aaa4f913cd417b5eafa3fc0 Author: Richard Leach Date: 2021-08-27 (Fri, 27 Aug 2021) Changed paths: M av.h Log Message: --- av.h - better document newAV_alloc_x/newAV_alloc_xz Commit: 37018d9541041f8c096d300886fc94c43f174656 https://github.com/Perl/perl5/commit/37018d9541041f8c096d300886fc94c43f174656 Author: Richard Leach Date: 2021-08-27 (Fri, 27 Aug 2021) Changed paths: M av.h Log Message: --- av.h - addressing comments Commit: 7fc83db1d1f298e1d2b08f3a88288129d635f9d8 https://github.com/Perl/perl5/commit/7fc83db1d1f298e1d2b08f3a88288129d635f9d8 Author: Richard Leach Date: 2021-08-27 (Fri, 27 Aug 2021) Changed paths: M av.h Log Message: --- av.h: apidoc updates for khw comments Commit: 013a76a28a7d7563cd3b604f421d2356f31b3196 https://github.com/Perl/perl5/commit/013a76a28a7d7563cd3b604f421d2356f31b3196 Author: Richard Leach Date: 2021-08-27 (Fri, 27 Aug 2021) Changed paths: M av.h Log Message: --- av.h: more apidoc tweaks Compare: https://github.com/Perl/perl5/compare/7073dfe33aca...013a76a28a7d
[Perl/perl5] 4762e1: av.h: additional comments regarding real/fake AVs
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 4762e1f88cc9ef2d1223b060db61846ba24eff35 https://github.com/Perl/perl5/commit/4762e1f88cc9ef2d1223b060db61846ba24eff35 Author: Richard Leach Date: 2021-08-27 (Fri, 27 Aug 2021) Changed paths: M av.h Log Message: --- av.h: additional comments regarding real/fake AVs Commit: 7073dfe33acab50441f1ffe4774e121e882e7277 https://github.com/Perl/perl5/commit/7073dfe33acab50441f1ffe4774e121e882e7277 Author: Richard Leach Date: 2021-08-27 (Fri, 27 Aug 2021) Changed paths: M av.h Log Message: --- av.h: document that backrefs lists are fake AVs Compare: https://github.com/Perl/perl5/compare/9d1dc8e3bf4c...7073dfe33aca
[Perl/perl5] 8514db: op.h: define missing BASEOP fields (op_sibparent,o...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 8514db6ffd1098e6012da55bcbc8df6fc05f2fca https://github.com/Perl/perl5/commit/8514db6ffd1098e6012da55bcbc8df6fc05f2fca Author: Richard Leach Date: 2021-08-24 (Tue, 24 Aug 2021) Changed paths: M op.h Log Message: --- op.h: define missing BASEOP fields (op_sibparent,op_targ)
[Perl/perl5] c24391: pp_defined: modify OP_DEFINED paths to use TOPs an...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c243917ec3550cb982f033b448e4b740498dc53a https://github.com/Perl/perl5/commit/c243917ec3550cb982f033b448e4b740498dc53a Author: Richard Leach Date: 2021-08-17 (Tue, 17 Aug 2021) Changed paths: M pp_hot.c Log Message: --- pp_defined: modify OP_DEFINED paths to use TOPs and RETSETs
[Perl/perl5] 541e9a: av_create_and_push/unshift_one: remove experimenta...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 541e9af01a41e04539c3aedd46abb741ef89fb9b https://github.com/Perl/perl5/commit/541e9af01a41e04539c3aedd46abb741ef89fb9b Author: Richard Leach Date: 2021-07-31 (Sat, 31 Jul 2021) Changed paths: M embed.fnc Log Message: --- av_create_and_push/unshift_one: remove experimental flag Commit: 71ca71bc8b733c80f8f8099bb4673ee629da1353 https://github.com/Perl/perl5/commit/71ca71bc8b733c80f8f8099bb4673ee629da1353 Author: Richard Leach Date: 2021-07-31 (Sat, 31 Jul 2021) Changed paths: M av.c Log Message: --- av_create_and_push/unshift_one: faster create via newAV_alloc_xz Compare: https://github.com/Perl/perl5/compare/4c8bd78b274a...71ca71bc8b73
[Perl/perl5] 6e7a78: av.h - document newAV_alloc_xz
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 6e7a7813c390d2121876b9f8af4f37102e8d51fa https://github.com/Perl/perl5/commit/6e7a7813c390d2121876b9f8af4f37102e8d51fa Author: Richard Leach Date: 2021-07-29 (Thu, 29 Jul 2021) Changed paths: M av.h Log Message: --- av.h - document newAV_alloc_xz
[Perl/perl5] 158b05: av_new_alloc: revise description of size parameter
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 158b05f88107501586f35dde9afd3c1444e148e1 https://github.com/Perl/perl5/commit/158b05f88107501586f35dde9afd3c1444e148e1 Author: Richard Leach Date: 2021-07-06 (Tue, 06 Jul 2021) Changed paths: M av.c Log Message: --- av_new_alloc: revise description of size parameter
[Perl/perl5] 84c752: Add inline av_fetch_simple and av_store_simple fun...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 84c75204391437a2f1d2f579c545b4592014b1cb https://github.com/Perl/perl5/commit/84c75204391437a2f1d2f579c545b4592014b1cb Author: Richard Leach Date: 2021-07-03 (Sat, 03 Jul 2021) Changed paths: M embed.fnc M embed.h M inline.h M proto.h Log Message: --- Add inline av_fetch_simple and av_store_simple functions Commit: 310f47b68123831258bf28d4105fd80f8ed59430 https://github.com/Perl/perl5/commit/310f47b68123831258bf28d4105fd80f8ed59430 Author: Richard Leach Date: 2021-07-03 (Sat, 03 Jul 2021) Changed paths: M pad.c Log Message: --- Perl_pad_alloc: simplify av_fetch() calls The nature of PL_comppad allows this. Compare: https://github.com/Perl/perl5/compare/c683824536c9...310f47b68123