This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Nicholas Clark [Wed, 25 Aug 2021 07:44:49 +0000 (07:44 +0000)]
cmpVERSION.pl and test.pl now handle checkouts from git-worktree.
Nicholas Clark [Mon, 23 Aug 2021 15:48:49 +0000 (15:48 +0000)]
pp_tie should completely reset the underlying hash's iterator state.
Previously it would mangle it, resetting EITER but not RITER, meaning that
after untie continuing iteration would be inconsistent - normally it would
carry on exactly where it left off, but if iteration had been in the middle
of a chain of HEs, it would skip the rest of the chain.
Fixes GH #19077
Nicholas Clark [Mon, 23 Aug 2021 15:07:39 +0000 (15:07 +0000)]
Tests for tied hashes using test.pl
t/op/tie.t uses run_multiple_progs() to run each test in an individual perl
interpreter. This is robust, but slow and doesn't give much flexibility in
test diagnostics.
Hence this test file, for test cases that can safely run in the same
interpreter, and where we'd can use like() etc for better diagnostics.
Nicholas Clark [Mon, 26 Jul 2021 13:10:30 +0000 (13:10 +0000)]
Don't call HvHASKFLAGS_on() in S_hv_delete_common().
We're not changing any keys on the hash, so if it didn't have any keys with
flags before the delete, it won't have any afterwards either.
I added this line in Nov 2003 as part of commit
cd6d36ac47e47079:
Move the negative key -> utf8 flag conversion out to hv_delete
I don't think that it was correct then, and I don't think that it's correct
now.
Nicholas Clark [Sat, 31 Jul 2021 08:11:27 +0000 (08:11 +0000)]
pp_tie should use HvEITER_get() instead of HvEITER().
The former doesn't make a function call.
Nicholas Clark [Sun, 1 Aug 2021 09:01:44 +0000 (09:01 +0000)]
Add /^vgcore.*/ to the list of podcheck.t filename exclusions.
Regularly named core files were in the list, but valgrind's variant were not.
Paul "LeoNerd" Evans [Sun, 22 Aug 2021 16:39:26 +0000 (17:39 +0100)]
Display the completion ETA once we've done at least 20%
Paul "LeoNerd" Evans [Sun, 22 Aug 2021 14:41:46 +0000 (15:41 +0100)]
Print count of done vs. total tests and percentage from Porting/bench.pl
Richard Leach [Sun, 25 Apr 2021 20:00:43 +0000 (21:00 +0100)]
op.h: define missing BASEOP fields (op_sibparent,op_targ)
TAKAI Kousuke [Thu, 19 Aug 2021 17:37:22 +0000 (02:37 +0900)]
sv.c: Removed a redundant SvNV_nomg call in sv_vcatpvfn_flags.
SvNV_nomg(argsv) is redundant here because its NV is already loaded
to the local variable "nv".
Dan Book [Thu, 19 Aug 2021 15:52:27 +0000 (11:52 -0400)]
Exporter: Document non-inheriting as default mechanism
Karl Williamson [Mon, 10 May 2021 16:41:28 +0000 (10:41 -0600)]
utf8.c: Make new static fcn more flexible
This commit allows this function to be called with NULL parameters when
the result of these is not needed.
Karl Williamson [Mon, 16 Aug 2021 02:22:44 +0000 (20:22 -0600)]
utf8.c: White-space, comment only
Karl Williamson [Sun, 9 May 2021 21:46:01 +0000 (15:46 -0600)]
utf8.c: Rmv no longer needed speed-up code
The code this commit removes made sense when we were using swashes, and
we had to go out to files on disk to find the answers. It used
knowledge of the Unicode character database to skip swaths of scripts
which are caseless.
But now, all that information is stored in C arrays that will be paged
in when accessed, which is done by a binary search. The information
about those swaths is in those arrays. The conditionals removed here
are better spent in executing iterations of the search in L1 cache.
Karl Williamson [Sun, 9 May 2021 21:14:11 +0000 (15:14 -0600)]
utf8.c: Split a static fcn
This adds a new function for changing the case of an input code point.
The difference between this and the existing function is that the new
one returns an array of UVs instead of a combination of the first code
point and UTF-8 of the whole thing, a somewhat awkward API that made
more sense when we used swashes. That function is retained for now, at
least, but most of the work is done in the new function.
Karl Williamson [Fri, 14 May 2021 14:53:56 +0000 (08:53 -0600)]
utf8.c: Use porcelain libc case changing fcn
The fancy wrapper macro that does extra things was being used, when all
that is needed is the bare libc function. This is because the code
calling it already wraps it, so avoids calling it unless the bare
version is what is appropriate.
Karl Williamson [Mon, 16 Aug 2021 11:22:54 +0000 (05:22 -0600)]
regexec.c: White-space/comment only
Karl Williamson [Thu, 6 May 2021 16:55:48 +0000 (10:55 -0600)]
regexec.c: regrepeat() switch() on target utf8ness
Many of the cases in the main switch() statement in regrepeat() begin
with
if (utf8_target)
or similar. These branches can be saved, and the code easier to
understand by including the utf8ness in the case statements, as this
commit does; taking advantage of the changes in the previous commit.
Karl Williamson [Thu, 6 May 2021 15:59:06 +0000 (09:59 -0600)]
regnodes.h: Add new set of defines
There currently is a set of defines for switching on the op code of the
regnode, and another set for switching on that plus the utf8ness of both
the target and pattern. This latter set is useful in one routine in
regexec.c where all three are important. It allows fewer branches to
have to be done by encoding where to go into the case: value.
There are other similar switches in regexec. The one in regrepeat()
doesn't care very much about the utf8ness of the pattern.
This commit adds a third set of defines for use by that switch, which
will be used by the next commit.
Nicholas Clark [Mon, 23 Aug 2021 11:36:38 +0000 (11:36 +0000)]
Replace FIXME in the MANIFEST with the correct description for the file.
We have 117 instances of the text FIXME in the core source code - it's not
actually good choice of text for a placeholder meaning "fix this before
pushing", as it's easy to miss the one that was added with this intent.
My mistake, spotted by ilmari.
Nicholas Clark [Sun, 22 Aug 2021 08:35:30 +0000 (08:35 +0000)]
Pre-extend hashes in list assignment before assigning to them.
We know how many pairs of keys/values are on the stack, so pre-extend the
hash to the appropriate size, instead of letting the hash needlessly re-size
one or more times during the assignment loop.
Nicholas Clark [Sat, 21 Aug 2021 15:04:09 +0000 (15:04 +0000)]
Pre-extend new anonymous hashes before assigning to them.
We know how many pairs of keys/values are on the stack, so pre-extend the
hash to the appropriate size, instead of letting the hash needlessly
re-size one or more times during the assignment loop.
Nicholas Clark [Sat, 21 Aug 2021 19:13:13 +0000 (19:13 +0000)]
Use sv_inc() for the env de-dup hash in S_init_postdump_symbols().
This replaces an hv_exists/hv_store pair with a single LVALUE hv_fetch.
Nicholas Clark [Sat, 21 Aug 2021 18:49:59 +0000 (18:49 +0000)]
Comment about some subtleties in S_init_postdump_symbols().
Nicholas Clark [Sat, 21 Aug 2021 17:09:59 +0000 (17:09 +0000)]
Move some variables in S_init_postdump_symbols() to a tighter scope.
Nicholas Clark [Sat, 21 Aug 2021 16:41:31 +0000 (16:41 +0000)]
Pre-size the %ENV hash before populating it from environ.
Also use HvTOTALKEYS() instead of HvKEYS(), as the latter makes a check for
placeholders, which here cannot make a difference.
Nicholas Clark [Sat, 21 Aug 2021 10:03:25 +0000 (10:03 +0000)]
Hash::Util::FieldHash fix_trigger can pre-size the hash before use.
This is only called by CLONE (and hence only matters for ithreads), but it's
an improvement, and small and self-contained.
Nicholas Clark [Sat, 21 Aug 2021 19:28:14 +0000 (19:28 +0000)]
Pre-extend the ISA hash in Perl_mro_get_linear_isa().
Nicholas Clark [Sat, 21 Aug 2021 08:10:48 +0000 (08:10 +0000)]
S_mro_get_linear_isa_c3() now uses sv_inc_nomg().
Previously it was coding the increment "longhand", to avoid bugs in 5.6.x.
However, this XS code is now exclusively in the core, and 5.6.x is long
dead, so there's no need to work around it.
The "longhand" code might *seem* to be more efficient (due to inlining some
logic) but it still required at least one call to a function in sv.c
(so no real change in generated code size) and that call was for the
increment 0 => 1, so likely called a lot, so no significant change in total
calls made.
Nicholas Clark [Sat, 21 Aug 2021 19:59:32 +0000 (19:59 +0000)]
Use an LVALUE hv_fetch() in S_sequence_num() instead of fetch/store.
Chris 'BinGOs' Williams [Mon, 23 Aug 2021 08:11:27 +0000 (09:11 +0100)]
Better put a date in it
Karen Etheridge [Mon, 23 Aug 2021 01:18:17 +0000 (18:18 -0700)]
Bump the perl version in various places for 5.35.4
James E Keenan [Mon, 23 Aug 2021 02:02:57 +0000 (02:02 +0000)]
Merge branch 'porting-core-cpan-diff-
20210805' into blead
James E Keenan [Sun, 22 Aug 2021 23:50:13 +0000 (23:50 +0000)]
Porting/core-cpan-diff: Remove '--binary' on *BSDs
Other things being equal, Porting/core-cpan-diff defaults to passing '-u
--binary' to the 'diff' command. It turns out that, though '--binary'
is not a *documented* option for GNU diff, it is present in the source
code (rjbs research in
https://github.com/Perl/perl5/pull/19027#issuecomment-
898901007). The
'--binary' option clearly does *not* work on FreeBSD and probably
doesn't work on other *BSDs. On those systems, running the program
spews more than 80,000 lines of error output.
Code revised to remove '--binary' on *BSDs. Documentation adjusted.
For https://github.com/Perl/perl5/pull/19027
James E Keenan [Mon, 23 Aug 2021 01:48:14 +0000 (01:48 +0000)]
Merge branch 'pod-html-refactoring-5-of-5' into blead
James E Keenan [Sun, 15 Aug 2021 14:30:02 +0000 (14:30 +0000)]
Pod::Html: correct line dropped in
13f1edeb52
As noted by @Grinnz in
https://github.com/Perl/perl5/pull/19050#discussion_r688968921.
James E Keenan [Sun, 15 Aug 2021 14:20:32 +0000 (14:20 +0000)]
Pod::Html: remove debugging artifact
As noted by @Grinnz in https://github.com/Perl/perl5/pull/19050#discussion_r688969025.
James E Keenan [Sun, 15 Aug 2021 14:14:41 +0000 (14:14 +0000)]
Pod::Html: remove debugging artifact
As noted by @Grinnz in
https://github.com/Perl/perl5/pull/19050#discussion_r688969538.
James E Keenan [Sat, 14 Aug 2021 15:41:42 +0000 (15:41 +0000)]
Pod::Html: assign directly to array ref
This restores the thrust of
c0ac28175b, which got zapped when resolving
merge conflicts.
James E Keenan [Sun, 22 Aug 2021 23:22:45 +0000 (23:22 +0000)]
Pod-Html: remove commented-out code
Make use of Exporter consistent.
James E Keenan [Thu, 18 Mar 2021 19:18:14 +0000 (19:18 +0000)]
Introduce $self->{Pages}
htmldir3.t: 3rd test unit is now expected to fail. So now the test file
demonstrates that the unit fails whether it's placed before the second
unit or after.
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 18:57:02 +0000 (18:57 +0000)]
Move $output into the object
Correct dropped variable declaration.
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 18:04:20 +0000 (18:04 +0000)]
Replace _save_pages() with _transform()
_save_pages() is a Pod::Simple::Search method which takes two specific
arguments. From the point of view of making Pod-Html OO, it was
problematic because (a) it used a variable ($Podroot) defined outside of
its scope and (b) it assigned to a variable (%Pages) defined outside of
its scope. It was therefore resistant to encapsulation.
Experimentation showed that if we use the return value of
Pod::Simple::Search::survey(), we could parse that hashref using what
was the guts of _save_pages() and assign explicitly to %Pages.
TODO: Move %Pages within the Pod::Html object. Handle $object
properly.
Signed-off-by: James E Keenan <jkeenan@cpan.org>
Remove merge conflict marks, commented-out code, as noted by rjbs in
https://github.com/Perl/perl5/pull/19050#discussion_r693559914.
James E Keenan [Thu, 18 Mar 2021 12:21:55 +0000 (12:21 +0000)]
Convert 3 more subroutines to method calls
refine_parser(); feed_tree_to_parser(); write_file()
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 12:14:33 +0000 (12:14 +0000)]
Turn 3 more internal subroutines into method calls
identify_input(); parse_input_for_podtree(); set_Title_from_podtree();
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 12:04:00 +0000 (12:04 +0000)]
Have generate_cache() use object
Still have to deal with %Pages being outside the object.
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 12:01:39 +0000 (12:01 +0000)]
Make get_cache(), cache_key() and load_cache() use object
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 11:53:11 +0000 (11:53 +0000)]
File::Spec::Unix is not needed within package Pod::Html
It's only needed within Pod::Simple::XHTML::LocalPodLinks, so let's
remove it from the first package.
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Thu, 18 Mar 2021 00:05:33 +0000 (00:05 +0000)]
Start to make Pod::Html object-oriented.
For the time being, at least, we'll have pod2html() call a constructor.
All subs up through refine_globals have been turned into method calls.
Signed-off-by: James E Keenan <jkeenan@cpan.org>
James E Keenan [Mon, 12 Jul 2021 12:14:36 +0000 (12:14 +0000)]
Increment $VERSION to 1.33 in all .pm files
Dan Book [Wed, 4 Aug 2021 19:55:35 +0000 (15:55 -0400)]
perlfunc 'ref' and UNIVERSAL: document isa operator alternative
Karl Williamson [Sat, 14 Aug 2021 18:53:43 +0000 (12:53 -0600)]
isUTF8 DFA: change while {} to do {} while;
This saves a conditional in many cases. Core Perl doesn't call this
on an empty string, so the first test that it is empty is redundant.
We can't guarantee this for non-core calls, so the conditional is made
explicit for them.
Karen Etheridge [Sat, 21 Aug 2021 17:33:07 +0000 (10:33 -0700)]
update the range of versions we support and do not support
Karl Williamson [Sat, 21 Aug 2021 17:17:18 +0000 (11:17 -0600)]
Rmv redundant API info for isUTF8_char_flags
This resolves GH #19069
Karen Etheridge [Sat, 21 Aug 2021 16:20:49 +0000 (09:20 -0700)]
add epigraph for 5.35.3
Aristotle Pagaltzis [Sat, 21 Aug 2021 11:30:36 +0000 (13:30 +0200)]
Text-Tabs+Wrap: Sync with CPAN version 2021.0814
Chris 'BinGOs' Williams [Sat, 21 Aug 2021 10:06:12 +0000 (11:06 +0100)]
Here be corelist
Nicholas Clark [Sat, 21 Aug 2021 06:48:25 +0000 (06:48 +0000)]
Before filling the lookup hash for opcode names, pre-expand it.
We know the size needed (about 400 entries), so doing this saves several
automatic resizes when populating it.
Nicholas Clark [Fri, 20 Aug 2021 20:31:24 +0000 (20:31 +0000)]
Delete Perl_ptr_table_clear, marked as deprecated since v5.14.0
Karen Etheridge [Sat, 21 Aug 2021 03:38:24 +0000 (20:38 -0700)]
make way for 5.35.4
Karen Etheridge [Sat, 21 Aug 2021 03:30:02 +0000 (20:30 -0700)]
tick off release 5.35.3
Karen Etheridge [Sat, 21 Aug 2021 02:54:44 +0000 (19:54 -0700)]
add new release to perlhist
Karen Etheridge [Sat, 21 Aug 2021 02:36:54 +0000 (19:36 -0700)]
finalize perldelta
Karen Etheridge [Sat, 21 Aug 2021 02:11:49 +0000 (19:11 -0700)]
Update Module::CoreList for 5.35.3
Karen Etheridge [Sat, 21 Aug 2021 01:56:19 +0000 (18:56 -0700)]
update AUTHORS
Karen Etheridge [Sat, 21 Aug 2021 01:17:23 +0000 (18:17 -0700)]
more perldelta updates
Karl Williamson [Sat, 21 Aug 2021 01:55:35 +0000 (19:55 -0600)]
perlop: Fix indented here-doc empty line description
This bug was introduced by
c275db86a9.
Spotted by Karen Etheridge
Karen Etheridge [Sat, 21 Aug 2021 01:00:30 +0000 (18:00 -0700)]
add some missing perldelta entries
Karen Etheridge [Fri, 20 Aug 2021 23:58:28 +0000 (16:58 -0700)]
collapse 3 whitespace to 2
Karen Etheridge [Fri, 20 Aug 2021 23:57:57 +0000 (16:57 -0700)]
fix pod markup
Neil Bowers [Sat, 14 Aug 2021 21:11:13 +0000 (22:11 +0100)]
Added my choice of epigraph for 5.35.2
Nicholas Clark [Wed, 18 Aug 2021 19:31:38 +0000 (19:31 +0000)]
perldelta for sort.pm becoming a no-op.
Also fix a typo in sort's Pod.
David Golden [Tue, 17 Aug 2021 01:44:29 +0000 (21:44 -0400)]
Add top-level Code of Conduct document
This commit adds a top-level file that points readers to the actual
Standards of Conduct in perlpolicy.pod. It also makes a point to
distinguish between what the Perl Steering Council is responsible for
and what other community groups are responsible for.
Richard Leach [Tue, 10 Aug 2021 22:30:09 +0000 (23:30 +0100)]
pp_defined: modify OP_DEFINED paths to use TOPs and RETSETs
Tony Cook [Tue, 17 Aug 2021 04:31:12 +0000 (14:31 +1000)]
perldelta updates
also sort the module entries.
Tony Cook [Tue, 17 Aug 2021 04:30:11 +0000 (14:30 +1000)]
bump $Time::HiRes::VERSION
for the Makefile.PL change
Leon Timmermans [Mon, 16 Aug 2021 15:07:35 +0000 (17:07 +0200)]
Perldelta that «use v5.35» enables warnings
Karl Williamson [Sat, 7 Aug 2021 23:24:08 +0000 (17:24 -0600)]
mktables: Generate =head1 NAME line in Name.pm
All .pm files are supposed to have this line. So far this hasn't been
necessary for this file, but future commits will require it.
Ben Cornett [Sun, 11 Jul 2021 15:22:22 +0000 (15:22 +0000)]
Document v5.35 warnings-on-by-default
Asher Mancinelli [Fri, 23 Apr 2021 16:17:33 +0000 (10:17 -0600)]
Test new warnings enabled by default
Asher Mancinelli [Fri, 23 Apr 2021 16:17:09 +0000 (10:17 -0600)]
Add asher mancinelli to AUTHORS
Leon Timmermans [Sun, 28 Mar 2021 16:13:08 +0000 (18:13 +0200)]
Enable warnings on «use v5.35»
Max Maischein [Sat, 14 Aug 2021 20:35:02 +0000 (22:35 +0200)]
Add "run makedepend in parallel" to perldelta
Karl Williamson [Thu, 1 Jul 2021 00:21:16 +0000 (18:21 -0600)]
Add utf8_to_utf16
Karl Williamson [Thu, 1 Jul 2021 00:27:12 +0000 (18:27 -0600)]
Improve utf16_to_utf8_reversed()
Instead of destroying the input by first swapping the bytes, this calls
a base function with the order to use. The non-reverse function is
changed to call the base function with the non-reversed order.
James E Keenan [Fri, 13 Aug 2021 21:39:09 +0000 (21:39 +0000)]
lib/unicore/mktables: correct sub signatures in 2 locations
Then, re-run regen/mk_invlists.pl and regen/regcharclass.pl and commit
changes in headers.
Karl Williamson [Sat, 7 Aug 2021 13:38:54 +0000 (07:38 -0600)]
Simplify utf16_to_utf8()
A previous commit has simplified uvoffuni_to_utf8_flags() so that it is
hardly more than the code in this function. So strip out the code and
replace it by a call to uvoffuni_to_utf8_flags().
James E Keenan [Sat, 14 Aug 2021 15:08:04 +0000 (15:08 +0000)]
Merge branch 'pod-html-refactoring-4-of-5' into blead
James E Keenan [Tue, 10 Aug 2021 22:20:32 +0000 (22:20 +0000)]
Pod::Html::Util: small documentation changes
In part suggested by rjbs code review.
James E Keenan [Tue, 10 Aug 2021 21:59:07 +0000 (21:59 +0000)]
Pod::Html: assign directly to array ref
... rather than to the array which is referenced. (Corrected response
to rjbs comment in
https://github.com/Perl/perl5/pull/18977#discussion_r671734180)
James E Keenan [Mon, 12 Jul 2021 00:28:11 +0000 (00:28 +0000)]
Pod-Html: Simplify the sub which processes options
Pod::Html::Util::parse_command_line() was doing too much. It should
wrap around GetOptions(), call the usage() routine if needed, then
return a hashref of options to its caller.
Its caller -- Pod::Html::pod2html() -- should do the heavy lifting
involved in processing the options and inserting the data into the
globals hashref.
Hence, we rename Pod::Html::Util::parse_command_line to
Pod::Html::Util::process_command_line() and simplify its functionality.
In lib/Pod/Html.pm we import process_command_line(), call it and pass
its return value onto a new subroutine, process_options(), that
populates $globals.
Document Pod::Html::Util subroutines.
Karl Williamson [Thu, 1 Jul 2021 18:31:26 +0000 (12:31 -0600)]
utf8.c: Rmv #undef
This is unnecessary in a .c file, and the code it referred to has been
moved away.
Karl Williamson [Wed, 30 Jun 2021 21:43:46 +0000 (15:43 -0600)]
utf8.c: Use macros instead of reinventing them
Karl Williamson [Fri, 2 Jul 2021 00:48:10 +0000 (18:48 -0600)]
utf8.c: Refactor is_utf8_char_helper()
Now that the DFA is used by the only callers to this to eliminate the
need to check for e.g., wrong continuation bytes, this function can be
refactored to use a switch statement, which makes it clearer, shorter,
and faster.
The name is changed to indicate its private nature
Karl Williamson [Fri, 25 Jun 2021 19:09:08 +0000 (13:09 -0600)]
Make macro isUTF8_CHAR_flags an inline fcn
This makes it use the fast DFA for this functionality.
Karl Williamson [Fri, 2 Jul 2021 00:47:45 +0000 (18:47 -0600)]
is_utf8_valid_partial_char_flags: Use DFA
The DFA macro for determining if a sequence is valid UTF-8 was
deliberately made general enough to accommodate this use-case, in which
only a partial character is acceptable. Change the code to use the DFA.
The helper function's name is changed to indicate it is private
Karl Williamson [Wed, 30 Jun 2021 20:13:35 +0000 (14:13 -0600)]
utf8.c: Rmv EBCDIC dependency
There are new macros that suffice to make the determination here.
Karl Williamson [Wed, 30 Jun 2021 19:45:12 +0000 (13:45 -0600)]
utf8.c: Rmv an EBCDIC dependency
This is now generated by regcharclass.pl
James E Keenan [Fri, 13 Aug 2021 22:47:44 +0000 (18:47 -0400)]
Check off 5.35.2 in release schedule
Ricardo Signes [Fri, 13 Aug 2021 22:23:01 +0000 (18:23 -0400)]
perldelta: make note of "switch" leaving the v5.36 bundle