This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Thu, 27 Aug 2020 16:15:07 +0000 (10:15 -0600)]
Change formal parameter name of gv_fetchpv*
This is a flags parameter, not a particular single flag
Karl Williamson [Thu, 27 Aug 2020 15:44:05 +0000 (09:44 -0600)]
Note for Devel::PPPort HvNAME_get, HvNAMELEN_get
Karl Williamson [Thu, 27 Aug 2020 15:33:43 +0000 (09:33 -0600)]
perlcall: Add some C<>
Karl Williamson [Thu, 27 Aug 2020 15:29:52 +0000 (09:29 -0600)]
perlapi: Don't display usage for PL_errgv
Karl Williamson [Thu, 27 Aug 2020 15:26:55 +0000 (09:26 -0600)]
perlapi: capitalize 'op'
Karl Williamson [Thu, 27 Aug 2020 15:23:19 +0000 (09:23 -0600)]
perlapi: deprecate pack_cat() (a mathoms func)
Karl Williamson [Thu, 27 Aug 2020 15:17:59 +0000 (09:17 -0600)]
Change formal parameter name of gv_autload4
The name was completely irrelevant to what it is
Karl Williamson [Thu, 27 Aug 2020 15:09:46 +0000 (09:09 -0600)]
Document IN_PERL_(RUN|COMPILE)TIME
Karl Williamson [Thu, 27 Aug 2020 13:53:30 +0000 (07:53 -0600)]
perlapi: XS_EXTERNAL is preferred over plain XS
Karl Williamson [Thu, 27 Aug 2020 13:49:37 +0000 (07:49 -0600)]
perlapi: XS, XS_EXTERNAL do take a parameter
Karl Williamson [Thu, 27 Aug 2020 13:05:11 +0000 (07:05 -0600)]
Improve docs for PERL_foo_MAX/MIN
This puts these in the new sections of perlapi, and makes them display
better.
Karl Williamson [Thu, 27 Aug 2020 12:51:58 +0000 (06:51 -0600)]
Fixup docs for LIKELY/UNLIKELY
Karl Williamson [Thu, 27 Aug 2020 12:42:33 +0000 (06:42 -0600)]
Fix docs for STMT_START,END,BRACE_GROUPS
Karl Williamson [Sat, 29 Aug 2020 20:21:35 +0000 (14:21 -0600)]
perlguts: Rmv unneeded meta apidoc line
These instructions to apidoc are actually not relevant, because the pod
they were trying to control is verbatim, hence not looked at.
Karl Williamson [Thu, 27 Aug 2020 21:31:04 +0000 (15:31 -0600)]
perlreguts: Note pregcomp/regexec are documented here
Karl Williamson [Thu, 27 Aug 2020 21:00:41 +0000 (15:00 -0600)]
perlguts: Fix grammar
Karl Williamson [Thu, 27 Aug 2020 20:59:26 +0000 (14:59 -0600)]
perlguts: Note that UVXf is mentioned
This particular format had been omitted
Karl Williamson [Thu, 27 Aug 2020 13:10:22 +0000 (07:10 -0600)]
UTF8fARG,UTF8f are documented in perlguts
Karl Williamson [Wed, 22 Jul 2020 22:40:01 +0000 (16:40 -0600)]
perlguts: Note that various SAVEfoo macros are documented
Karl Williamson [Wed, 22 Jul 2020 22:38:05 +0000 (16:38 -0600)]
perlguts: Note existence of SAVEI8, I16, BOOL
Karl Williamson [Sat, 29 Aug 2020 17:46:39 +0000 (11:46 -0600)]
embed.fnc: 'ref' is not an API function
In fact is only accessible to 3 .c files, all in core.
Karl Williamson [Thu, 27 Aug 2020 20:41:53 +0000 (14:41 -0600)]
perlapi: Improve display of isFOO
The character classification macro variants are now presented as a list
Karl Williamson [Sat, 5 Sep 2020 05:42:54 +0000 (23:42 -0600)]
Fix bytes_from_utf8_loc() pod
I didn't mean to apply
8505db87404436956f86e54885cacd73840801c0 just
yet, but having done so, there is a change required in a link
Karl Williamson [Fri, 4 Sep 2020 23:20:59 +0000 (17:20 -0600)]
perlapi: Consolidate some references to perlguts
Karl Williamson [Fri, 28 Aug 2020 12:50:29 +0000 (06:50 -0600)]
perlapi: Turn some references to mg_[gs]et into links
Karl Williamson [Thu, 27 Aug 2020 20:09:28 +0000 (14:09 -0600)]
perlapi: Display toFOO better
The character case change macro variants are now displayed all
together
Karl Williamson [Sat, 29 Aug 2020 19:45:48 +0000 (13:45 -0600)]
Make bytes_from_utf8_loc() internal
And add it to perlintern, and fix grammar in its pod
Karl Williamson [Sun, 16 Aug 2020 12:35:04 +0000 (06:35 -0600)]
regen/warnings.pl: Move some hidden pod
This is a long list of warning categories which doesn't print, but
exists to indicate to downstream tools, such as Devel::PPPort that these
categories exist and are documented. Move them to the end of the file
so as to make the meat of things flow better.
Karl Williamson [Sun, 16 Aug 2020 12:32:41 +0000 (06:32 -0600)]
Document packWARN.?
Karl Williamson [Sun, 16 Aug 2020 12:31:31 +0000 (06:31 -0600)]
regen/warnings.pl: Collapse closely related pod
Having separate entries for ckWARN ... ckWARN4 just clutters things
up. Instead fairly recent extensions to our API generation mechanism
allows these to be variants in a single entry.
Karl Williamson [Mon, 31 Aug 2020 22:43:53 +0000 (16:43 -0600)]
perlapi: Consolidate PERL_MAGIC_foo entries
Karl Williamson [Fri, 4 Sep 2020 22:13:57 +0000 (16:13 -0600)]
Merge branch 'autodoc update' into blead
This series of commits updates autodoc to generate a more complete and
improved perlapi/perlintern
A major change is the ability to group multiple items in one entry. We
have many cases where there are slightly different takes on essentially
the same functionality, such as handling magic or not. All can be
grouped in the same entry, and only their differences noted. This make
is easier to add new pod when adding a new variant, and it means a more
concise .pod file, with the user not having to jump from entry A that is
listed as similar to entry B, which in turn may even currently say it is
similar to entry C.
The elements in config.h are now included in perlapi, most in new
sections.
I posted an example of these changes in p5p and got zero comments, so am
pushing as it is now. It is easy to add new sections and to move items
to different ones than they currently are in.
This commit series doesn't actually do any consolidation of entries;
merely enables the ability to do so. Patches for doing this will come
over time, and hopefully by multiple members of the community.
Karl Williamson [Wed, 2 Sep 2020 16:39:30 +0000 (10:39 -0600)]
autodoc: Update comments to reflect new behavior
Karl Williamson [Thu, 3 Sep 2020 23:41:32 +0000 (17:41 -0600)]
autodoc.pl: Regularize perlintern handling
Karl Williamson [Sat, 29 Aug 2020 19:33:54 +0000 (13:33 -0600)]
autodoc.pl: Add missing semi-colon
Karl Williamson [Wed, 2 Sep 2020 16:55:47 +0000 (10:55 -0600)]
Update embed.fnc to document autodoc changes
Karl Williamson [Wed, 26 Aug 2020 22:42:40 +0000 (16:42 -0600)]
autodoc: Add section name checking
In the past a section could just spring into existence. This adds a
check that it is one of the known ones, so typos won't create a screwed
up perlapi. If a new section is needed, just add it to the list of
valid ones.
Karl Williamson [Wed, 26 Aug 2020 22:15:37 +0000 (16:15 -0600)]
autodoc: Display list of sections near top
This would enable someone to more quickly organize their search
Karl Williamson [Wed, 26 Aug 2020 23:47:31 +0000 (17:47 -0600)]
Reorganize perlapi
This uses a new organization of sections that I came up with. I asked
for comments on p5p, but there were none.
Karl Williamson [Wed, 26 Aug 2020 23:40:28 +0000 (17:40 -0600)]
Change some =head1 to apidoc_section lines
apidoc_section is slightly favored over head1, as it is known only to
autodoc, and can't be confused with real pod.
Karl Williamson [Wed, 26 Aug 2020 22:07:42 +0000 (16:07 -0600)]
autodoc: Don't output empty section
But warn when one encountered.
Karl Williamson [Tue, 1 Sep 2020 23:47:44 +0000 (17:47 -0600)]
autodoc: Revise display of apidoc elements
This heavily refactors the code that outputs each api element.
Indentation is cut to 1 space, as anything more doesn't matter much
visually, or at all in html displays, and this gives more geography on a
line.
More importantly, multiple items sharing the same pod within the same
element are displayed prettier.
xxx 1 indent f display
Karl Williamson [Wed, 26 Aug 2020 19:08:03 +0000 (13:08 -0600)]
autodoc: Add config.h to what is documented
config.h is now parsed, and the results intermixed into perlapi.
Karl Williamson [Wed, 26 Aug 2020 18:23:07 +0000 (12:23 -0600)]
autodoc: Add section footers in this file
Previously, there were no section footers
This commit doesn't actually add any of these; just accepts and handles
any future ones.
Karl Williamson [Wed, 26 Aug 2020 18:17:47 +0000 (12:17 -0600)]
autodo: Enclose elements with C<...>
This make all-caps ones look better
Karl Williamson [Wed, 26 Aug 2020 14:42:42 +0000 (08:42 -0600)]
autodoc: Add ability to list variants like perlfunc does
This adds apidoc_item so that you can specify things that are closely
related in a single entry, with the list of the things at the top, much
as perlfunc does with, say, various forms of split
The arguments to the non-main entry are accepted but nothing is done
with them now. This is because I was uncertain how we might want to
display things, as the arguments to the main entry have been shown
forever only in the usage paragraph at the end, unlike perlfunc where
the arguments are displayed on the same line as each variant.
Karl Williamson [Mon, 24 Aug 2020 20:27:50 +0000 (14:27 -0600)]
autodoc: Simplify input loops
This refactors the code that reads the documentation to eliminate
redundant code. Now, the same loop reads both the heading text and the
pod guts.
As part of this, certain headings that were inadvertently omitted from
perlapi are now included.
Karl Williamson [Mon, 24 Aug 2020 23:32:28 +0000 (17:32 -0600)]
autodoc: Use hash not array for heterogenous elements
Karl Williamson [Mon, 24 Aug 2020 15:55:12 +0000 (09:55 -0600)]
autodoc.pl: Use bold font for 'deprecated', 'experimental'
Karl Williamson [Mon, 17 Aug 2020 04:11:52 +0000 (22:11 -0600)]
autodoc.pl: Change more misleading variable names
And shortens others
Karl Williamson [Mon, 17 Aug 2020 04:01:19 +0000 (22:01 -0600)]
autodoc.pl: Rmv unnecessary variable
This intermediate value caused confusion, and isn't necessary.
A porting test would fail temporarily, so that has been turned off for
the next few commits
Karl Williamson [Mon, 17 Aug 2020 03:45:08 +0000 (21:45 -0600)]
autodoc.pl: Change some variable names
The previous ones were misleading
Karl Williamson [Wed, 26 Aug 2020 22:42:56 +0000 (16:42 -0600)]
autodoc: Warn on empty pod
Karl Williamson [Mon, 17 Aug 2020 03:09:56 +0000 (21:09 -0600)]
autodoc.pl: White space only
Outdent since the previous commit removed an enclosing block
Karl Williamson [Mon, 17 Aug 2020 03:04:30 +0000 (21:04 -0600)]
autodoc.pl: Extract code into a function
This is in preparation for it being called from a second place.
The function is also expanded to accept a future syntactic construct
Karl Williamson [Fri, 4 Sep 2020 20:04:23 +0000 (14:04 -0600)]
autodoc: Don't output empty sections
Karl Williamson [Mon, 17 Aug 2020 02:54:30 +0000 (20:54 -0600)]
autodoc.pl: Use consistent sort for missing docs
The rest of the file is basically dictionary order; do the same for
these
Karl Williamson [Thu, 23 Jul 2020 01:21:13 +0000 (19:21 -0600)]
autodoc.pl: Improve the SEE ALSO section
This harvests all the pods linked to by perlapi/perlintern and puts them
in the SEE ALSO section
Karl Williamson [Wed, 2 Sep 2020 16:55:02 +0000 (10:55 -0600)]
autodoc.pl: Add ability to link to other pods
This enhances perlapi and perlintern so that an API element that is
documented in some other pod can automatically have a link to that pod
generated and placed into perlapi/perlintern. This allows one stop
browsing through the API, as the hither-to-unlisted elements now are
listed there, with a link.
Karl Williamson [Thu, 23 Jul 2020 01:15:59 +0000 (19:15 -0600)]
Remove redundant apidoc entries.
These didn't use to matter, as they were hidden entries, but they will
matter starting in the next commit.
Karl Williamson [Wed, 26 Aug 2020 18:32:14 +0000 (12:32 -0600)]
autodoc: Add 'use warnings'
Karl Williamson [Wed, 22 Jul 2020 23:50:49 +0000 (17:50 -0600)]
autodoc.pl: Update to accept F flag
Karl Williamson [Wed, 22 Jul 2020 23:47:17 +0000 (17:47 -0600)]
autodoc.pl: Don't look in cpan,dist,ext
Karl Williamson [Wed, 22 Jul 2020 14:47:37 +0000 (08:47 -0600)]
autodoc.pl: Add helpful info to two diagnostics
Karl Williamson [Wed, 22 Jul 2020 14:44:38 +0000 (08:44 -0600)]
autodoc.pl: Add C<...> around some text
H.Merijn Brand [Wed, 2 Sep 2020 12:55:28 +0000 (14:55 +0200)]
Regenerate Configure after accepting PR
Chris 'BinGOs' Williams [Wed, 2 Sep 2020 12:23:01 +0000 (08:23 -0400)]
ExtUtils-Install: sync with cpan version 2.16
Committer updated VERSION in initial POD section in Install.pm.
Karl Williamson [Sat, 29 Aug 2020 17:02:06 +0000 (11:02 -0600)]
gv.c: Clarify comment
Karl Williamson [Thu, 27 Aug 2020 21:33:58 +0000 (15:33 -0600)]
sv.h: Clarify comment
Karl Williamson [Tue, 1 Sep 2020 23:36:06 +0000 (17:36 -0600)]
pad.h: Add missing =cut to render pod correctly
Nicolas R [Tue, 1 Sep 2020 21:15:29 +0000 (15:15 -0600)]
IRC notifications for opened and synchronize PR
This is using a different wording for opened
or synchronize pull requests.
Karl Williamson [Sun, 16 Aug 2020 01:59:43 +0000 (19:59 -0600)]
Change some link pod for better rendering
C<L</foo>> renders better in places than L</C<foo>>
Karl Williamson [Mon, 31 Aug 2020 23:36:43 +0000 (17:36 -0600)]
perlapi: Fix typo
Spotted by James Keenan
Karl Williamson [Wed, 26 Aug 2020 18:52:58 +0000 (12:52 -0600)]
perlapi for get_c_backtrace_dump: fix verbatim
These weren't indented so weren't treated as verbatim
Sawyer X [Mon, 31 Aug 2020 20:12:15 +0000 (23:12 +0300)]
Small change
Ricardo Signes [Thu, 27 Aug 2020 01:41:55 +0000 (21:41 -0400)]
release announcement: waffle on perl5 v perl7 for now
John Lightsey [Sat, 29 Aug 2020 04:39:18 +0000 (23:39 -0500)]
Heap buffer overflow in regex bracket group whitespace handling
The code for skipping whitespace in regex bracket character groups
was walking past the end of the regex in some cases.
Richard Leach [Sun, 30 Aug 2020 16:19:16 +0000 (17:19 +0100)]
pp_akeys: use av_top_index rather than Perl_av_len
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