This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
David Mitchell [Sun, 30 Aug 2020 10:03:33 +0000 (11:03 +0100)]
better comment what regen/mg_vtable.pl does
This automates the generating of a lot of perl magic tables and macros,
but it was very opaque as to how it did it.
David Mitchell [Fri, 28 Aug 2020 15:20:46 +0000 (16:20 +0100)]
generate_uudmap.c: add comments and headers
Add some comments at the top of this file to explain what it does.
Also make it add comment headers at the tops of the three files it
generates (uudmap.h bitcount.h mg_data.h) which explain that the file
is auto-generated and what its purpose is.
Tony Cook [Thu, 20 Aug 2020 05:57:01 +0000 (15:57 +1000)]
document PerlIO::scalar's behavior for read-only scalars
fixes #17971
David Mitchell [Fri, 28 Aug 2020 10:16:55 +0000 (11:16 +0100)]
remove leaky warnings.t skip
Two tests used to skip under ASan because they were known to leak.
This has since been fixed
David Mitchell [Fri, 28 Aug 2020 10:05:11 +0000 (11:05 +0100)]
cop.h: remove obsolete comment
The macro which the comment describes is long gone, but the comment got
missed.
David Mitchell [Fri, 28 Aug 2020 10:00:28 +0000 (11:00 +0100)]
pp_multiconcat(): tweak a const
Remove a bit of a hack done by me 2 years ago to shut up a compiler warning
which did a cast to RW of a constant string.
Since the field which the const string is assigned to is never modified,
just make that field const instead.
David Mitchell [Fri, 28 Aug 2020 09:22:02 +0000 (10:22 +0100)]
t/perf/benchmarks: tweak mixed arithmetic
The benchmarks which test adding an int to a num weren't measuring
correctly because, after the first iteration, the PVIV var got upgraded
to a PVNV - thus causing the optimised 'both args NV' path to be chosen
after that.
Make the benchmark recreate the integer variable on each iteration
Karl Williamson [Thu, 27 Aug 2020 15:39:34 +0000 (09:39 -0600)]
perlre: Fix some links
Karl Williamson [Thu, 27 Aug 2020 20:52:49 +0000 (14:52 -0600)]
perlapi: Don't display certain flag values
These were not intended to go into perlapi, but the flag indicating so
was mistakenly left off.
Karl Williamson [Wed, 22 Jul 2020 23:13:20 +0000 (17:13 -0600)]
Document vnewSVpvf
Tony Cook [Thu, 27 Aug 2020 02:21:47 +0000 (12:21 +1000)]
not only system and library calls can set errno
Unfortunately I don't remember the ticket, but I remember one
complaining that code like C<print $fh "..."> would set $!
when $fh wasn't an open filehandle, so cover that case here too.
Tony Cook [Thu, 27 Aug 2020 02:19:44 +0000 (12:19 +1000)]
clarify that errno can be set to non-zero on success
David Mitchell [Thu, 27 Aug 2020 16:08:03 +0000 (17:08 +0100)]
S_lossless_NV_to_IV(): skip Perl_isnan
This inline function was added by v5.31.0-27-g3a019afd6f to consolidate
similar code in several places, like pp_add(). It also avoided undefined
behaviour, as seen by ASan, by no longer unconditionally trying to cast
an NV to IV - ASan would complain when nv was -Inf for example.
However that commit introduced a performance regression into common
numeric operators like pp_and(). This commit partially claws back
performance by skipping the initial test of 'skip if Nan' which called
Perl_isnan(). Instead, except on systems where NAN_COMPARE_BROKEN is
true, it relies on NaN being compared to anything always being false,
and simply rearranges existing conditions nv < IV_MIN etc to be
nv >= IV_MIN so that any NaN comparison will trigger a false return.
This claws back about half the performance loss. The rest seems
unavoidable, since the two range tests for IV_MIN..IV_MAX are an
unavoidable part of avoiding undefined behaviour.
David Mitchell [Wed, 26 Aug 2020 11:19:14 +0000 (12:19 +0100)]
add new autodie test file to 'TEST -deparse' skips
autodie tests generally fail the 'deparse and run the test file'
round trip due to stringified references in %^H. Add this newish test
file to the list of excluded test files.
Tom Hukins [Fri, 26 Apr 2019 14:13:13 +0000 (15:13 +0100)]
Improve documentation grammar
Tom Hukins [Wed, 26 Aug 2020 09:56:13 +0000 (10:56 +0100)]
Stop implying "." belongs in $ENV{PATH}
Instead, use an arbitrary path that has less chance of encouraging
people to allow the current directory in their path.
This was prompted by #16951 and attached as a patch to that issue which
was mistakenly closed without fixing the problem.
Tom Hukins [Tue, 25 Aug 2020 16:43:37 +0000 (17:43 +0100)]
Fix typos in comments
Karl Williamson [Wed, 22 Jul 2020 22:52:30 +0000 (16:52 -0600)]
Document DEFSV DEFSV_set SAVE_DEFSV
David Mitchell [Tue, 25 Aug 2020 12:15:25 +0000 (13:15 +0100)]
sort { return foo() } ...
GH #18081
A sub call via return in a sort block was called in void rather than
scalar context, causing the comparison result to be discarded.
This because when a sort block is called it is not a real function
call, even though a sort block can be returned from. Instead, a
CXt_NULL is pushed on the context stack. Because this isn't a sub-ish
context type (unlike CXt_SUB, CXt_EVAL etc) there is no 'caller sub'
on the context stack to be found to retrieve the caller's context
(i.e. cx->cx_gimme).
This commit fixes it by special-casing Perl_gimme_V().
Ideally at some future point, a new context type, CXt_SORT, should be
added. This would be used instead of CXt_NULL when a sort BLOCK is
called. Like other sub-ish context types, it would have an old_cxsubix
field and PL_curstackinfo->si_cxsubix would point to it. This would
eliminate needing special-case handling in places like Perl_gimme_V().
Karl Williamson [Wed, 22 Jul 2020 12:49:34 +0000 (06:49 -0600)]
Document vform
Karl Williamson [Sat, 18 Jul 2020 13:24:34 +0000 (07:24 -0600)]
Document a bunch of foo_nocontext functions
These just refer to foo's pod, with an explanation of 'nocontext'
Karl Williamson [Sat, 18 Jul 2020 13:06:50 +0000 (07:06 -0600)]
Change vwarn pod to be in terms of plain warn
Nicolas R [Thu, 20 Aug 2020 15:12:32 +0000 (09:12 -0600)]
run_multiple_progs: option to abort on first failure
Setting PERL_TEST_ABORT_FIRST_FAILURE to a true value
while running a test usinng run_multiple_progs stop
on the first failure.
This provides a mechanism to debug step by step
these tests.
On failure a hint to use PERL_TEST_ABORT_FIRST_FAILURE
is advertised.
Nicolas R [Wed, 19 Aug 2020 21:57:09 +0000 (15:57 -0600)]
run_multiple_progs: advertise file and line number on failures
This is helping identify test failures from run_multiple_progs
by providing the source file and line number.
Nicolas R [Wed, 19 Aug 2020 20:53:54 +0000 (14:53 -0600)]
run_multiple_progs: auto tag test when name is mising
When running a run_multiple_progs give each test a name
when missing.
H.Merijn Brand [Sun, 23 Aug 2020 19:04:06 +0000 (21:04 +0200)]
Guard the change against running more than once
Why only comment what nobody sees, where it is easy to check it
Karl Williamson [Sun, 16 Aug 2020 17:27:28 +0000 (11:27 -0600)]
perlvar: Remove PERL_VERSION... apidoc entries
This is no longer the place where these deprecated macros are considered
to be documented
Karl Williamson [Wed, 22 Jul 2020 15:33:31 +0000 (09:33 -0600)]
toke.c: Use SvPV_shrink_to_cur
which is what it is doing, instead of the more general SvPV_renew.
Karl Williamson [Wed, 22 Jul 2020 23:10:19 +0000 (17:10 -0600)]
Document re_dup_guts
Karl Williamson [Sat, 18 Jul 2020 14:44:25 +0000 (08:44 -0600)]
Document SvOOK_off
Karl Williamson [Sat, 18 Jul 2020 14:36:09 +0000 (08:36 -0600)]
Document SvVSTRING_mg
Karl Williamson [Mon, 17 Aug 2020 02:33:13 +0000 (20:33 -0600)]
cop.h: Comments, white space
Karl Williamson [Wed, 22 Jul 2020 22:51:37 +0000 (16:51 -0600)]
Document INTMAX_C, UINTMAX_C
Karl Williamson [Sat, 18 Jul 2020 13:15:12 +0000 (07:15 -0600)]
Note that PERL_UINT_MIN is documented
Karl Williamson [Sat, 18 Jul 2020 13:13:29 +0000 (07:13 -0600)]
Document PERL_USE_GCC_BRACE_GROUPS
Karl Williamson [Sat, 18 Jul 2020 15:02:20 +0000 (09:02 -0600)]
Document PTR2foo
Karl Williamson [Sat, 18 Jul 2020 15:54:32 +0000 (09:54 -0600)]
Document ibcmp_utf8, and move to like-fcns hdr
James E Keenan [Sun, 16 Aug 2020 15:21:34 +0000 (11:21 -0400)]
lib/Symbol.t: Exercise qualify_to_ref()
Symbol::qualify_to_ref() has not previously been exercised in this test
file. Do so. Also, exercise certain usages of qualify() that are
documented in SYNOPSIS but were also previously unexercised.
Bring test file into compliance with stricture.
James E Keenan [Sat, 22 Aug 2020 20:44:29 +0000 (16:44 -0400)]
Correct typo in 'die' message.
Karl Williamson [Tue, 18 Aug 2020 01:40:18 +0000 (19:40 -0600)]
Document EXTERN_C macros
Karl Williamson [Sun, 26 Apr 2020 23:47:47 +0000 (17:47 -0600)]
util.c: Comment fix-up
H.Merijn Brand [Sat, 22 Aug 2020 14:12:58 +0000 (16:12 +0200)]
Merge Configure changes for z/OS and AIX
Thank you Karl!
Karl Williamson [Sun, 26 Apr 2020 23:47:47 +0000 (17:47 -0600)]
Refactor rninstr()
This function finds a needle in a haystack.
If memrchr() is available, use it to find the final byte in the needle;
If the needle is length 1, that's all we need, and this is special
cased. Otherwise it uses memEQ of the other bytes of the needle, from
where the needle would have to start, and if no match, repeats.
If no memrchr(), it emulates that by just looking backward from the end
until it finds the needle's final byte; then proceeds as above.
John Lightsey [Thu, 20 Aug 2020 20:53:57 +0000 (15:53 -0500)]
Add missing boundary check to grok_infnan
The grok_infnan() function was walking past the end of the string
while skipping over trailing '0' characters. This is another
variation of #17370.
Dagfinn Ilmari Mannsåker [Fri, 21 Aug 2020 21:35:37 +0000 (22:35 +0100)]
Add Merijn's new email address to Porting/checkAUTHORS.pl
Nicolas R [Fri, 14 Aug 2020 21:16:22 +0000 (16:16 -0500)]
die_unwind(): global destruction
Fix #18063
During global destruction make sure we preserve
the string by using mortalcopy.
This is an update on
8c86f0238ecb5f32c2e7fba36e3edfdb54069068
change which avoided sv_mortalcopy in favor of sv_2mortal.
H.Merijn Brand [Fri, 21 Aug 2020 13:53:11 +0000 (15:53 +0200)]
Make getverlist inside Configure strict/warnings safe and correctly sorted
Dagfinn Ilmari Mannsåker [Mon, 10 Aug 2020 19:21:08 +0000 (20:21 +0100)]
Remove 5005threads vestiges from Configure and friends
See https://github.com/Perl/metaconfig/pull/66/
Karen Etheridge [Thu, 20 Aug 2020 21:59:54 +0000 (14:59 -0700)]
Win32API::File::inc::ExtUtils::Myconst2perl is not indexed
..and Porting/corelist.pl warns about it
Karen Etheridge [Thu, 20 Aug 2020 21:57:50 +0000 (14:57 -0700)]
add new Module::CoreList entries
Karen Etheridge [Thu, 20 Aug 2020 21:23:32 +0000 (14:23 -0700)]
canonicalize more committer names and emails
Karen Etheridge [Thu, 20 Aug 2020 20:57:30 +0000 (13:57 -0700)]
bump Module::CoreList version
Karen Etheridge [Thu, 20 Aug 2020 20:55:38 +0000 (13:55 -0700)]
Bump the perl version in various places for 5.33.2
Karen Etheridge [Thu, 20 Aug 2020 20:53:16 +0000 (13:53 -0700)]
new perldelta for 5.33.2
Karen Etheridge [Thu, 20 Aug 2020 20:45:31 +0000 (13:45 -0700)]
tick off 5.33.1 release
Karen Etheridge [Thu, 20 Aug 2020 20:44:21 +0000 (13:44 -0700)]
fix version in release announcement template
Karen Etheridge [Thu, 20 Aug 2020 20:44:06 +0000 (13:44 -0700)]
commit epigraph for 5.33.1 release
Karen Etheridge [Thu, 20 Aug 2020 19:48:30 +0000 (12:48 -0700)]
add new release to perlhist
Karen Etheridge [Thu, 20 Aug 2020 18:32:25 +0000 (11:32 -0700)]
finalize perldelta for 5.33.1
Karen Etheridge [Thu, 20 Aug 2020 19:11:03 +0000 (12:11 -0700)]
Update Module::CoreList for 5.33.1
Dagfinn Ilmari Mannsåker [Thu, 20 Aug 2020 09:45:25 +0000 (10:45 +0100)]
perldelta: add missing =over/=item/=back around perldebguts entry
Karl Williamson [Thu, 20 Aug 2020 01:49:15 +0000 (19:49 -0600)]
regcomp.c: Silence compiler warning
This commit goes back to using av_top_index to silence the
signed/unsigned comparison warning. Other methods could have been used,
but the signed variable is actually used to fetch the array index, so I
decided to go this route.
Tony Cook [Thu, 20 Aug 2020 01:40:00 +0000 (11:40 +1000)]
fix broken perldelta links introduced in
5238875cf10
Tony Cook [Thu, 20 Aug 2020 01:25:33 +0000 (11:25 +1000)]
Karl Williamson [Thu, 20 Aug 2020 01:06:01 +0000 (19:06 -0600)]
Use av_top_index() instead of av_tindex()
I was never happy with this short form, and other people weren't either.
Now that most things are better expressed in terms of av_count, convert
the few remaining items that are clearer when referring to an index into
using the fully spelled out form
Karl Williamson [Wed, 19 Aug 2020 20:33:06 +0000 (14:33 -0600)]
pp_ctl.c: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:13:19 +0000 (18:13 -0600)]
Typemap.xs: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:12:45 +0000 (18:12 -0600)]
mro.xs: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:11:01 +0000 (18:11 -0600)]
APItest.xs: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:09:47 +0000 (18:09 -0600)]
Hash-Util-FieldHash: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:18:53 +0000 (18:18 -0600)]
pp.c: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:17:36 +0000 (18:17 -0600)]
PERL_FILTER_EXISTS: Convert to use av_count()
Karl Williamson [Thu, 20 Aug 2020 00:15:09 +0000 (18:15 -0600)]
os2.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 19:15:12 +0000 (13:15 -0600)]
Porting/makerel: Add a create EBCDIC option
So that the .gz and .xz files can be unpacked on EBCDIC platforms
without any muss or fuss
Karl Williamson [Wed, 19 Aug 2020 23:12:26 +0000 (17:12 -0600)]
perldelta: Add missing =item lines
Karl Williamson [Wed, 19 Aug 2020 23:08:20 +0000 (17:08 -0600)]
Add entry for fixing #16529
Nicolas R [Wed, 19 Aug 2020 23:06:22 +0000 (17:06 -0600)]
pod/perldelta: Improve formatting for dual life modules
Dagfinn Ilmari Mannsåker [Wed, 19 Aug 2020 23:03:37 +0000 (00:03 +0100)]
Add perldelta entry for perldebguts ${"_<$filename"} fix
See commit
6e764e36cf6a7c109e74ca4ccafbba27a0b422cd
Dagfinn Ilmari Mannsåker [Wed, 19 Aug 2020 22:59:58 +0000 (23:59 +0100)]
perldelta: alphabetise document list
Dagfinn Ilmari Mannsåker [Wed, 19 Aug 2020 22:56:22 +0000 (23:56 +0100)]
Note customized ExtUtils-Constant test
Commit
67b5e820b9462a832786fae47188b044c8fd42fb adjusted the test file
to avoid an indirect method call, but failed to update
Porting/Maintainers.pl and t/porting/customized.dat.
Dagfinn Ilmari Mannsåker [Wed, 19 Aug 2020 22:55:31 +0000 (23:55 +0100)]
Remove obsolete custimized.dat entry for Pod-Usage test
Commit
b9ab2ffe309876b1749351c4276565e2289c82ac updated Pod-Usage to
v1.70, which includes the test change, but failed to remove it from
t/porting/customized.dat.
Nicolas R [Wed, 19 Aug 2020 22:57:23 +0000 (16:57 -0600)]
Add perldetla entries for my_rpeep and range op
Changes for
39f7bd8a2f and
f4941eebb5
Nicolas R [Wed, 19 Aug 2020 22:50:08 +0000 (16:50 -0600)]
Add perldelta entries for dual life modules
Karen Etheridge [Wed, 19 Aug 2020 22:44:18 +0000 (15:44 -0700)]
add new rjbs email
Dagfinn Ilmari Mannsåker [Wed, 19 Aug 2020 22:40:46 +0000 (23:40 +0100)]
Add perldelta entry for Intel compiler detection fix
See commit
8ffcbbbe4a4411bb0971e61a39fa2608a4ef5145
Karl Williamson [Wed, 19 Aug 2020 22:35:42 +0000 (16:35 -0600)]
perldelta: Note GH #18019 is fixed
Karl Williamson [Wed, 19 Aug 2020 22:22:50 +0000 (16:22 -0600)]
perldelta: Note more doc changes
Karen Etheridge [Wed, 19 Aug 2020 22:18:29 +0000 (15:18 -0700)]
perldelta update for commit
3aa74965c0
Karen Etheridge [Wed, 19 Aug 2020 21:02:58 +0000 (14:02 -0700)]
whitespace fixes only
Karl Williamson [Wed, 19 Aug 2020 20:56:22 +0000 (14:56 -0600)]
vms.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:55:17 +0000 (14:55 -0600)]
universal.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:53:34 +0000 (14:53 -0600)]
sv.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:51:09 +0000 (14:51 -0600)]
regcomp.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:34:19 +0000 (14:34 -0600)]
pp_sys.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:11:13 +0000 (14:11 -0600)]
pp.h.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:09:17 +0000 (14:09 -0600)]
perl.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:07:06 +0000 (14:07 -0600)]
doio.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 20:03:55 +0000 (14:03 -0600)]
pp_hot.c: Convert to use av_count()
Karl Williamson [Wed, 19 Aug 2020 17:57:17 +0000 (11:57 -0600)]
Add av_count()
This returns the number of elements in an array in a clearly named
function.
av_top_index(), av_tindex() are clearly named, but are less than ideal,
and came about because no one back then thought of this one, until now
Paul Evans did.
Nicolas R [Wed, 19 Aug 2020 22:08:39 +0000 (16:08 -0600)]
perldelta: Plan9 and 9front i386
Relates: #17891
Add perldelta entry for Plan9 and 9front.