This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
4 years agodevel/scanprov: Restrict symbols to identifier-like
Karl Williamson [Sun, 28 Jul 2019 16:39:08 +0000 (10:39 -0600)]
devel/scanprov: Restrict symbols to identifier-like

Previously, it used \w+, which gathers things like numbers.  We are
instead interested in identifiers.  It probably doesn't make a
difference except that we don't needlessly add a bunch of things to the
generated hash

(cherry picked from commit 83a7475bfcfa1bd2d56b4cb1a77f43e7059c2f20)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/scanprov: Handle blead properly
Karl Williamson [Sun, 28 Jul 2019 16:22:25 +0000 (10:22 -0600)]
devel/scanprov: Handle blead properly

Previously, the code just removed blead from the list of perls it dealt
with.  But this doesn't work, because the algorithm (heuristic,
actually) relies on going through all the versions, and the symbols
erroneously ascribed to blead will instead erroneously be ascribed to
the next lower version.  Instead, this commit changes so that blead is
simply not written.  (The comments detail why the symbols are
erroneously ascribed to the highest version checked.)

(cherry picked from commit 89c7fcf8b81b3390a318abd2d2f5875305fc5fd1)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Rename variable for clarity
Karl Williamson [Thu, 8 Aug 2019 18:57:12 +0000 (12:57 -0600)]
PPPort_pm.PL: Rename variable for clarity

Doing so showed that we already had an array with what we wanted, no
need to go through a hash again.

(cherry picked from commit 4f91b5dc1d8171a6bc6b54fb8d76fa6bca697f7b)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Comments, white space
Karl Williamson [Sun, 21 Jul 2019 18:47:36 +0000 (12:47 -0600)]
PPPort_pm.PL: Comments, white space

(cherry picked from commit c9bb660cea95c2c98a0f5a6a63b7f5fdf1d2fadc)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/ppphbin: Change variable name
Karl Williamson [Thu, 1 Aug 2019 16:39:08 +0000 (10:39 -0600)]
parts/inc/ppphbin: Change variable name

This makes it clearer at first glance as to what is going on

(cherry picked from commit 38edf48e7b91ba30e1c26958445deac475d52347)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/ppphbin: Add comments
Karl Williamson [Sun, 21 Jul 2019 18:47:01 +0000 (12:47 -0600)]
parts/inc/ppphbin: Add comments

(cherry picked from commit 9e8dd684615d93294c81a4bff7e7610b0621d1fe)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/ppphbin: Fix accumulation of Hints/Warnings
Karl Williamson [Sun, 21 Jul 2019 18:43:30 +0000 (12:43 -0600)]
parts/inc/ppphbin: Fix accumulation of Hints/Warnings

Prior to this commit, if any line in the middle of one of these didn't
begin with an asterisk (a typical comment continuation marker), the hint
was silently discarded.

(cherry picked from commit d7b17de7bd53bc7f5c58e0aebeec7420e0de860d)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoRename some data files
Karl Williamson [Mon, 15 Jul 2019 16:06:04 +0000 (10:06 -0600)]
Rename some data files

These are renamed to their proper 6 digit perl version names.
Previously the final part was multiplied by 10.

(cherry picked from commit d48910fdea411975c3e0be496800f8ea73c69091)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agopppport: Print hints/warnings always.
Karl Williamson [Sun, 28 Jul 2019 21:51:39 +0000 (15:51 -0600)]
pppport: Print hints/warnings always.

Previously they were displayed only if somethng else was.

(cherry picked from commit 27527f7a456d30199751a43bdba64212daad7e61)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/ppphbin: Add clarifying text to output
Karl Williamson [Sun, 14 Jul 2019 16:01:09 +0000 (10:01 -0600)]
parts/inc/ppphbin: Add clarifying text to output

(cherry picked from commit 1f910f5b55fe9bfb8d755dae343f2b785e44aee7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoppport.h: Don't say unsupported if avail in earliest version
Karl Williamson [Sun, 21 Jul 2019 18:31:14 +0000 (12:31 -0600)]
ppport.h: Don't say unsupported if avail in earliest version

If this API element is available in the earliest version we have info
for, then it actually is supported.

(cherry picked from commit 083f8295dac44481178034faba58f096dda25703)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoppport.h: Don't print unsupported info for invalid entries
Karl Williamson [Sun, 21 Jul 2019 18:29:22 +0000 (12:29 -0600)]
ppport.h: Don't print unsupported info for invalid entries

By 'invalid', I mean ones that are, say deprecated or inaccessible
outside core, etc.

(cherry picked from commit a114ba3327ec8379d16b870e91d260b1e99b1866)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoppport.h: Print out more API info
Karl Williamson [Sun, 21 Jul 2019 18:27:21 +0000 (12:27 -0600)]
ppport.h: Print out more API info

This uses the flags from embed.fnc to enable printing better API info
for elements that are, say, deprecated or core-only.

(cherry picked from commit 1fc2b5279cfb31e354f3bba615df71f721ad071b)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/ppphbin: Change variable name
Karl Williamson [Sun, 21 Jul 2019 04:11:55 +0000 (22:11 -0600)]
parts/inc/ppphbin: Change variable name

This was a smash up of several words that I kept reading wrong

(cherry picked from commit 20bf156f900f5a012fc3610ddc54db6092ed907e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/ppphbin: Change option default
Karl Williamson [Sun, 21 Jul 2019 03:56:10 +0000 (21:56 -0600)]
parts/inc/ppphbin: Change option default

The verion that we default to shouldn't be earlier than the earliest
version we know about.

(cherry picked from commit ef70102090b532971146c8ea9d67df4369abb175)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Don't discard earliest info
Karl Williamson [Sun, 21 Jul 2019 03:43:12 +0000 (21:43 -0600)]
devel/mktodo.pl: Don't discard earliest info

When regenerating the files of what came when, the code uses version n
as a base to see what version n+1 added.  Prior to this commit the
information from version 0 was simply discarded.  That meant you had to
have one more perl to compile than what you wanted info for.  That is
wasteful and unnecessary.

This commit changes so that a file is generated for the earliest perl
being generated, containing all the API symbols known to that perl.
Effectively, it assumes that all of them popped into existence when that
version came out.  Words will be changed in the output to indicate that
these symbols have been available AT LEAST since this version.

For many years, the earliest perl that we had info for was 5.003_07.
That meant that the regeneration was run with an even earlier perl.
With this commit, wherever we stop, we have information from it, and
don't have to throw anything away.

(cherry picked from commit 28c1bee885eb2373eda222e45b5af49cec6ccfb5)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Don't hard-code min/max versions
Karl Williamson [Sun, 21 Jul 2019 00:34:53 +0000 (18:34 -0600)]
PPPort_pm.PL: Don't hard-code min/max versions

We can calculate this from the files we have generated, so manual
intervention is no longer required.

(cherry picked from commit f778898fbc24791c7b1181ac5e4d9b677d7e3233)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoAdd an argument to mktodo.pl
Karl Williamson [Sun, 21 Jul 2019 00:10:39 +0000 (18:10 -0600)]
Add an argument to mktodo.pl

This will be the directory in which to place the output files.

This will enable not having to write over one set of file as we go
along.  Previously everything got written to one directory, then the
files were moved, and the directory filled again.

This will also enable passing in info without having to add even more,
mostly redundant, arguments.

(cherry picked from commit 23e4148517314fb987306cc65255c25028174c16)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: White-space only
Karl Williamson [Sun, 21 Jul 2019 00:18:01 +0000 (18:18 -0600)]
devel/mktodo.pl: White-space only

(cherry picked from commit e01f423f20117c9315f3b05bd485a78cab5b8212)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/inctools: Add function to format version
Karl Williamson [Sun, 21 Jul 2019 00:04:15 +0000 (18:04 -0600)]
parts/inc/inctools: Add function to format version

This takes a version number and creates a floating point version with
exactly 7 digits with a decimal point after the 5.  This is used as the
first line in files in parts/todo,base, as well as in the data in
ppport.h.

(cherry picked from commit fad2103a9a2c28ff439b9b7c851a9e09194e91a6)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Use debug levels.
Karl Williamson [Tue, 6 Aug 2019 22:26:49 +0000 (16:26 -0600)]
devel/mktodo.pl: Use debug levels.

(cherry picked from commit cb2f9c687c7687295c5f63aca668edba9a395751)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoChange --debug option to have levels of detail
Karl Williamson [Tue, 6 Aug 2019 22:03:38 +0000 (16:03 -0600)]
Change --debug option to have levels of detail

(cherry picked from commit d62bda55bbfa2de367141dce1774eed7db9c3b64)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/regenerate: Remove exists from if tests
Karl Williamson [Thu, 1 Aug 2019 22:40:06 +0000 (16:40 -0600)]
devel/regenerate: Remove exists from if tests

I'm unsure as to why his is needed, but I found there were problems when
the code uses exists instead of just checking if the value is true.
This is a tiny hash, so autovivification isn't a performance issue at
all.

(cherry picked from commit 41457fa69251e60ddfce2e4f870a09a0115bfc6b)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/regenerate: Add a few comments
Karl Williamson [Sat, 13 Jul 2019 19:30:55 +0000 (13:30 -0600)]
devel/regenerate: Add a few comments

(cherry picked from commit 13c691ffddb3eef81dc61589f8c1bba382c5a1f2)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/regenerate: Fix progess message typo
Karl Williamson [Tue, 25 Jun 2019 17:37:40 +0000 (11:37 -0600)]
devel/regenerate: Fix progess message typo

(cherry picked from commit 9b68795efa464fb125892c4c67a78bea1b57eb7f)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/devtools.pl: 'use warnings'
Karl Williamson [Thu, 1 Aug 2019 15:49:01 +0000 (09:49 -0600)]
devel/devtools.pl: 'use warnings'

(cherry picked from commit 2844f84fbd42bd3f5111503e22c4ec60fd87bcd7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/devtools.pl: Print out perls in this run if debug
Karl Williamson [Wed, 10 Jul 2019 23:33:56 +0000 (17:33 -0600)]
devel/devtools.pl: Print out perls in this run if debug

(cherry picked from commit 2514f0d3f4ea2ce02304660effec31b9e17c079c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/devtools.pl: Add debugging info
Karl Williamson [Mon, 15 Jul 2019 21:33:04 +0000 (15:33 -0600)]
devel/devtools.pl: Add debugging info

This is triggered by either an error or verbose debugging options

(cherry picked from commit ff6dd7ca2b7c06a784c21af4d7e940268c30395a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoAdd --debug option
Karl Williamson [Wed, 10 Jul 2019 23:32:37 +0000 (17:32 -0600)]
Add --debug option

This option already existed in an inner script, but you couldn't specify
it from an outer one, which would be the typical way that got called.

(cherry picked from commit aefd7c471b5018d9f65cdb44559f743b56580405)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/devtools.pl: Comments
Karl Williamson [Mon, 15 Jul 2019 23:25:08 +0000 (17:25 -0600)]
devel/devtools.pl: Comments

(cherry picked from commit 9c0820c499f22640bd6bef34d4b82161fd86d203)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo: Add option to speed up debugging
Karl Williamson [Sat, 20 Jul 2019 22:55:57 +0000 (16:55 -0600)]
devel/mktodo: Add option to speed up debugging

'debug-start=' allows the caller to skip all releases above the one
specified, so that you don't have to go through them all again just to
get to one thats failing.  (The order things are done is descending.)

devel/regenerate is also made to recognize this parameter and pass it
along.

(cherry picked from commit 52bf4fc971becb876364b7e634530f383f88bb1c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/devtools.pl: Add an element to a hash
Karl Williamson [Sat, 20 Jul 2019 23:47:22 +0000 (17:47 -0600)]
devel/devtools.pl: Add an element to a hash

which is an integer, and use that to sort on.  This turns out to be the
file name of the key in the proper parts/base,todo directory, but for
the moment is not used except in this function

(cherry picked from commit 907e18f8e5a8dea9054da01a6d18c8bac70603d1)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/devtools.pl: Standardize input version number
Karl Williamson [Sat, 20 Jul 2019 23:48:59 +0000 (17:48 -0600)]
devel/devtools.pl: Standardize input version number

Instead of having the user have to know the exact syntax, this will take
any of several possibilities and format it to a standard value.

(cherry picked from commit 654cbcc5ab3d26fe42339ab2d0df8857b742c70c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/scanprov: Use library fcn to find perl versions
Karl Williamson [Sun, 28 Jul 2019 16:10:44 +0000 (10:10 -0600)]
devel/scanprov: Use library fcn to find perl versions

(cherry picked from commit bda70fe0831788bc0acd0f681d72340bbf8a40de)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/scanprov: Rename variable to be more mnemonic
Karl Williamson [Sun, 28 Jul 2019 15:51:46 +0000 (09:51 -0600)]
devel/scanprov: Rename variable to be more mnemonic

(cherry picked from commit 157a5aebaba3103015fb49b167941c5158554965)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/scanprov: Comments, white-space
Karl Williamson [Sun, 28 Jul 2019 15:48:56 +0000 (09:48 -0600)]
devel/scanprov: Comments, white-space

(cherry picked from commit 76db8504124b170fdeda965d724a830eba465bc5)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoMove finding perl versions from mktodo to devtools.pl
Karl Williamson [Sat, 20 Jul 2019 22:55:37 +0000 (16:55 -0600)]
Move finding perl versions from mktodo to devtools.pl

This is in preparation for this calculation to be done from a second
place.

(cherry picked from commit 0cca64a344d7e677ed62e307aa8183fecb63f5ea)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Stop using a known bad API element
Karl Williamson [Sat, 24 Aug 2019 21:05:05 +0000 (15:05 -0600)]
devel/mktodo.pl: Stop using a known bad API element

This was a bug which led to some unpredicatble results due to hash key
randomization.  We determined that a function or macro is not suitable
for a given release, but then forget that fact, and try to use it
anyway.

This single line change fixed a bunch of problems.  As I understand, you
couldn't regenerate on newer perls, and still may have had to try
multiple times for success.  I believe this is because of the hash key
randomization in v5.18.  I sort of understand how that could cause this
kind of issue, but I can't explain it easily, and its gone now anyway.

(cherry picked from commit 63d92fe04f63baa649f33ce9d751a6f5d58b3ce6)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Put hash lookups in variables
Karl Williamson [Sat, 24 Aug 2019 21:03:20 +0000 (15:03 -0600)]
devel/mktodo.pl: Put hash lookups in variables

Looked up once, and easier to read.

(cherry picked from commit 04d3d1b8c41271de1940e81ae3a516e229e2e434)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Explicitly close file
Karl Williamson [Mon, 15 Jul 2019 19:16:54 +0000 (13:16 -0600)]
devel/mktodo.pl: Explicitly close file

I'm not sure if it was always getting closed or not.

(cherry picked from commit b173ed3c45da4be559e3c5da128a9fcb9b95f27c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Add some comments
Karl Williamson [Tue, 2 Jul 2019 16:58:44 +0000 (10:58 -0600)]
devel/mktodo.pl: Add some comments

(cherry picked from commit 99f5969f6583102fb7bcf1f28e18b91324f208b7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Reorder else clauses
Karl Williamson [Mon, 15 Jul 2019 20:25:58 +0000 (14:25 -0600)]
devel/mktodo.pl: Reorder else clauses

This makes the trivial (short) case first, so it's easier to read

(cherry picked from commit 9f3102880cda991067d28d7f59759bc4005f886a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Move invariant expression out of loop
Karl Williamson [Thu, 11 Jul 2019 04:22:07 +0000 (22:22 -0600)]
devel/mktodo.pl: Move invariant expression out of loop

(cherry picked from commit a513fe6f824d69d855753d04893a94692433a718)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Add ability to dump generated file
Karl Williamson [Tue, 2 Jul 2019 17:08:56 +0000 (11:08 -0600)]
devel/mktodo.pl: Add ability to dump generated file

For use in debugging

(cherry picked from commit 7dd1ddf8118d5e9d622609d393be81055d5156b9)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Add comments, dump stderr if error
Karl Williamson [Sat, 29 Jun 2019 06:32:21 +0000 (00:32 -0600)]
devel/mktodo.pl: Add comments, dump stderr if error

These are some rudimentary comments.  It started working before I had to
delve deeper.

(cherry picked from commit a70e4aafcde7761301e62b6f630d11da5788c61f)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo.pl: Rename some variables
Karl Williamson [Sat, 13 Jul 2019 19:06:29 +0000 (13:06 -0600)]
devel/mktodo.pl: Rename some variables

These were confusingly named.

(cherry picked from commit 269a0070e5633ab951c216bb706aef1250c22af5)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo: Add ability for multiple source dirs
Karl Williamson [Mon, 8 Jul 2019 20:47:25 +0000 (14:47 -0600)]
devel/mktodo: Add ability for multiple source dirs

This allows the parameter that takes the prefix for where the perls to
use are to be a comma separated list of such directory prefixes

(cherry picked from commit 93a1b4370969c51dd0315cd8d3a218265800b7ed)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo: Add some comments
Karl Williamson [Tue, 2 Jul 2019 16:57:55 +0000 (10:57 -0600)]
devel/mktodo: Add some comments

(cherry picked from commit e00ce51fae01f6ca67ee85158d42d483ede947e2)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo: Notify user of blead compilation issues
Karl Williamson [Tue, 2 Jul 2019 16:54:56 +0000 (10:54 -0600)]
devel/mktodo: Notify user of blead compilation issues

The results will be off unless the very first time, things work.  Prior
to this commit that could go undetected.

(cherry picked from commit 04103542d777e907b9775abf042e9a23dbed7812)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mktodo: Fix location of old perls
Karl Williamson [Tue, 25 Jun 2019 17:41:31 +0000 (11:41 -0600)]
devel/mktodo: Fix location of old perls

This had an extra layer of directory structure beyond what typical
places old perls are kept.

A future commit allows specifying mutiple directories on the command
line, which gives full generality.

(cherry picked from commit dbe3786586c45ed8ac1fca184a30924630a5dbf0)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoNo longer need special handling of my_sprintf
Karl Williamson [Tue, 2 Jul 2019 16:44:06 +0000 (10:44 -0600)]
No longer need special handling of my_sprintf

A month ago, I made a commit that had a special case for my_sprintf.  It
turns out if this function is marked in blead as deprecated (which has
now been done), the problem doesn't come up.

(cherry picked from commit 70c38e06ffec0f0c34041c0582c6456e1d70263d)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mkapidoc.sh: Add some config symbols
Karl Williamson [Wed, 14 Aug 2019 23:40:20 +0000 (17:40 -0600)]
devel/mkapidoc.sh: Add some config symbols

These symbols are available to XS writers, and some are backported by
this module.  Only the easy to handle symbols are added by this commit,
with no plans to extend this until there is a future need..

(cherry picked from commit ca3dc33a326bc91061976a259a3a3920c111d37c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/inctools: Add sort fcn of API lines
Karl Williamson [Tue, 13 Aug 2019 04:37:44 +0000 (22:37 -0600)]
parts/inc/inctools: Add sort fcn of API lines

These lines have the name be the 3rd field with separator '|'

(cherry picked from commit 7f9278b13869baea6e8b01690990c71ff3ce8838)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Convert to use parse_version
Karl Williamson [Sat, 20 Jul 2019 21:00:56 +0000 (15:00 -0600)]
parts/apicheck.pl: Convert to use parse_version

This function is now suitable here, instead of duplicating logic

(cherry picked from commit 9a55a3a3baf52d0d53571f576f6dc69d915220eb)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/inctools: Add fcn to return integer version
Karl Williamson [Sat, 20 Jul 2019 23:22:36 +0000 (17:22 -0600)]
parts/inc/inctools: Add fcn to return integer version

This is a Perl version of the C macro PERL_BCDVERSION, so the value
returned can be used  as the file names in parts/base and parts/todo,
and is easy to compare.

(cherry picked from commit 7be255fab4621aecfe8192ea2fa2d4aa842067f4)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/inctools: Rewrite parse_version
Karl Williamson [Sat, 20 Jul 2019 20:52:09 +0000 (14:52 -0600)]
parts/inc/inctools: Rewrite parse_version

This now accepts more input formats than before, and dies when wrong
with the same messages that ppport.h uses, so that the latter can now
convert to use this function.

And, importantly, it fixes a bug where the lowest component of version
numbers in early perls was multiplied by 10.

(cherry picked from commit 38f1e0a218ae97b719e1cd048bde157d08dd3f37)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/inc/parse_version: Call fcn to not duplicate logic
Karl Williamson [Thu, 18 Jul 2019 20:42:22 +0000 (14:42 -0600)]
parts/inc/parse_version: Call fcn to not duplicate logic

Change to avoid redundant code; add comment

(cherry picked from commit b02f52889c1a5d1d79cb91fd545ce9f6c454c963)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoSort a bunch of outputs in dictionary order
Karl Williamson [Sat, 20 Jul 2019 20:12:11 +0000 (14:12 -0600)]
Sort a bunch of outputs in dictionary order

Makes them easier to read

(cherry picked from commit 2d3877590e755fab8a115cd49bb99953dee5d516)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoExtract duplicate common subs into common file
Karl Williamson [Thu, 18 Jul 2019 20:31:56 +0000 (14:31 -0600)]
Extract duplicate common subs into common file

These had gotten slightly out of sync.  This file is in parts/inc, as it
needs to be expanded as part of ppport.h

(cherry picked from commit cfa14856d571b28a8542c3285990b105c2923d71)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoUpdate minimum perl version to 5.003_07
Karl Williamson [Wed, 10 Jul 2019 23:17:51 +0000 (17:17 -0600)]
Update minimum perl version to 5.003_07

It used to say plain 5.003, but for many years the earliest data had
been 5.003_07.  I have tested it back to there and think this is good
enough.  This is actually quite early in the 5.003 cycle.  If we wanted
to try another 5.003, it would be more likely 5.003_97 which perlhist
says was widely used, but is real close to 5.004

(cherry picked from commit 1dd8b06856003dc87de669ef8356e66eb30985f9)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Prototypes differing only in pTHX_
Karl Williamson [Fri, 12 Jul 2019 16:43:35 +0000 (10:43 -0600)]
PPPort_pm.PL: Prototypes differing only in pTHX_

Use special wording for these, as this can be an unavoidable issue for
very early perls that don't port thread context back that far.

(cherry picked from commit b8a73dca70de398e16e70857f461cc88d99ac5c8)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Note the functions that are special
Karl Williamson [Fri, 12 Jul 2019 19:19:35 +0000 (13:19 -0600)]
PPPort_pm.PL: Note the functions that are special

Special meaning deprecated, experimental, or not documented

(cherry picked from commit ae56cb8010ec0ad4487040218ec6f90924908eb2)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Move some includes to earlier
Karl Williamson [Fri, 12 Jul 2019 19:18:57 +0000 (13:18 -0600)]
PPPort_pm.PL: Move some includes to earlier

These need to be defined earlier to work on very early perls

(cherry picked from commit ed2f32accaedeed3f4b4471c831503263e65fa6a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoPPPort_pm.PL: Add/fix comments, pod
Karl Williamson [Thu, 8 Aug 2019 17:51:28 +0000 (11:51 -0600)]
PPPort_pm.PL: Add/fix comments, pod

(cherry picked from commit 04a21a21f6a7cbbb24e10848f5483f35be516936)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agobuildperl.pl: Add pod/usage info
Karl Williamson [Mon, 8 Jul 2019 20:38:18 +0000 (14:38 -0600)]
buildperl.pl: Add pod/usage info

(cherry picked from commit cc4f886f095f23621d29ae3f1a472bda71b92b12)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agobuildperl.pl: Don't try to install man pages
Karl Williamson [Mon, 8 Jul 2019 20:35:05 +0000 (14:35 -0600)]
buildperl.pl: Don't try to install man pages

(cherry picked from commit 0a183db5b6138fcded66ba407a3d8216734d7e70)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agobuildperl.pl: Don't die if make install returns >0
Karl Williamson [Mon, 8 Jul 2019 20:32:29 +0000 (14:32 -0600)]
buildperl.pl: Don't die if make install returns >0

Sometimes 'make install' returns non-success even if it actually
installed enough for our purposes.

(cherry picked from commit c3f61c3653ab3e67676930f49fd5e16f45e3df4f)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agobuildperl.pl: Add ability to build in parallel
Karl Williamson [Mon, 8 Jul 2019 20:30:11 +0000 (14:30 -0600)]
buildperl.pl: Add ability to build in parallel

This allows you to manually call this with a -j parameter to give the
number of parallel jobs to run, default 1.

(cherry picked from commit baffbaef885a245b50c5c20dc60b4dc180615433)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevtools.pl: Re-prompt if user typed wrong
Karl Williamson [Mon, 8 Jul 2019 20:36:19 +0000 (14:36 -0600)]
devtools.pl: Re-prompt if user typed wrong

Previously it just waited for the user to type the right thing without
prompting that it was doing so.

It also prints a BEL character to notify that attention is needed.

(cherry picked from commit 4b79a8599508f7ad03e4f6e8b62062f5ba989969)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoHandle "literal string" args
Karl Williamson [Wed, 14 Aug 2019 22:42:46 +0000 (16:42 -0600)]
Handle "literal string" args

Some of the macros in perl require an argument to be a literal C string,
that is, one enclosed in quotation marks.  This change causes trim_arg()
to recognize these and return them properly, and apicheck.pl to use the
passed string directly as the argument.

(cherry picked from commit bc85e4126fa938abcaecadef4cbd8678da215250)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Special case things like _aTHX
Karl Williamson [Wed, 14 Aug 2019 03:34:00 +0000 (21:34 -0600)]
parts/apicheck.pl: Special case things like _aTHX

A few macros have a leading underscore to indicate a comma.  This adds
code to handle them.  I made separate variabled for threaded and maybe
non-threaded, but I don't know if the latter actually happens.

(cherry picked from commit 1187530614591229d1a4f1d7b2989439b1038861)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Add declarations for MY_CXT testing
Karl Williamson [Wed, 14 Aug 2019 03:17:58 +0000 (21:17 -0600)]
parts/apicheck.pl: Add declarations for MY_CXT testing

(cherry picked from commit aed2f395177f375003a5eecdc9535ac1e22c7f93)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Handle macros with trailing '_'
Karl Williamson [Tue, 6 Aug 2019 21:50:56 +0000 (15:50 -0600)]
parts/apicheck.pl: Handle macros with trailing '_'

The underscore represents a comma when expanded.  This commit makes this
program handle it.

(cherry picked from commit 12c850af3cce16d98a6a316b41a6992cfe6c6bda)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: A couple better diagnosics
Karl Williamson [Tue, 6 Aug 2019 21:49:54 +0000 (15:49 -0600)]
parts/apicheck.pl: A couple better diagnosics

(cherry picked from commit efe0e70e31d29bb9fdafee482bc4652151973f31)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Add special parameter name 'block'
Karl Williamson [Tue, 6 Aug 2019 21:47:10 +0000 (15:47 -0600)]
parts/apicheck.pl: Add special parameter name 'block'

A new macro has been added to blead that has a parameter that can be a C
block.  This can easily be accommodated by the code in this file, if we
know about how to handle it.

(cherry picked from commit 2095204694d4f9df74463fc45d58b441759de865)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Add white-space to m//x for readability
Karl Williamson [Wed, 14 Aug 2019 19:04:14 +0000 (13:04 -0600)]
parts/apicheck.pl: Add white-space to m//x for readability

And some comments to regex

(cherry picked from commit a76243946786233602fab339e55b29851c3785e9)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Silence warnings on old perls
Karl Williamson [Sun, 14 Jul 2019 16:01:59 +0000 (10:01 -0600)]
parts/apicheck.pl: Silence warnings on old perls

A hash element wasn't always automatically quoted: {foo} warned, {'foo'}
doesn't.

(cherry picked from commit 2a1fab422eb86442cc09296f3fe03d027e9c7254)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Add a few comments; white-space
Karl Williamson [Tue, 2 Jul 2019 16:52:45 +0000 (10:52 -0600)]
parts/apicheck.pl: Add a few comments; white-space

(cherry picked from commit fc50937fba868cf630ba6ccedd83d88a307ea81f)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Ignore some hard-to-handle functions
Karl Williamson [Tue, 2 Jul 2019 16:49:25 +0000 (10:49 -0600)]
parts/apicheck.pl: Ignore some hard-to-handle functions

These are hard to get to work, so punt.

(cherry picked from commit 5e34d4c395ed0f10bae66d83e8ac0ab5264197bd)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: BOOTCHECK needs some declarations to compile
Karl Williamson [Tue, 2 Jul 2019 16:48:39 +0000 (10:48 -0600)]
parts/apicheck.pl: BOOTCHECK needs some declarations to compile

(cherry picked from commit 5490382d8d66af8e7a06103b6fc74baa90c6c7d0)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: MULTICALL needs declarations to compile
Karl Williamson [Tue, 2 Jul 2019 16:46:18 +0000 (10:46 -0600)]
parts/apicheck.pl: MULTICALL needs declarations to compile

(cherry picked from commit 27cc0c8cf320818b8d81ec0f0ddd9e1f71cb1a38)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Sort some lists
Karl Williamson [Tue, 2 Jul 2019 16:39:21 +0000 (10:39 -0600)]
parts/apicheck.pl: Sort some lists

This makes it easier to see if something is on the list.

(cherry picked from commit 84572eb25b1204a8832d83d99df67a7d4f5e155d)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: LC_NUMERIC manip requires a decl
Karl Williamson [Sat, 29 Jun 2019 17:24:56 +0000 (11:24 -0600)]
parts/apicheck.pl: LC_NUMERIC manip requires a decl

The tests for these macros need to be special cased, like some others,
so that a declaration is made.

(cherry picked from commit eec0adf3b6947231b219e9d03dfaeeb9bebb2cb7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Fix up aTHX
Karl Williamson [Tue, 25 Jun 2019 17:58:35 +0000 (11:58 -0600)]
parts/apicheck.pl: Fix up aTHX

Now that we have better flags indicating if a macro or function needs
thread context or not, we can do a better job of handling it.

(cherry picked from commit 26a7bc7c87b1326539c5ec9b6389e615051a066a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Handle const parameters
Karl Williamson [Tue, 25 Jun 2019 17:46:33 +0000 (11:46 -0600)]
parts/apicheck.pl: Handle const parameters

We now have parameters that are declared 'const'.  The code generated
previously was declared const without being initialized, which is now
fatal.

(cherry picked from commit 35286f38df4517fb5fa338fcff410eaa5c0ddce0)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: Handle identifier containing 'const'
Karl Williamson [Tue, 25 Jun 2019 17:35:51 +0000 (11:35 -0600)]
parts/apicheck.pl: Handle identifier containing 'const'

While reading the code, I realized that if an identifier name contained
the substring 'const' this wouldn't work.  It's a simple matter to add
\b to prevent this unlikely scenario.

(cherry picked from commit eaa9c034d31c5a167bf85b6888fed5201bf0667f)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/apicheck.pl: ignore duplicate function
Karl Williamson [Sat, 20 Jul 2019 21:01:59 +0000 (15:01 -0600)]
parts/apicheck.pl: ignore duplicate function

(cherry picked from commit 9dfb2a45f3db2125b67e3f6b9783e10a129dab57)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/ppptools.pl: Misspelled intended lookbehind assertion
Karl Williamson [Wed, 14 Aug 2019 22:28:33 +0000 (16:28 -0600)]
parts/ppptools.pl: Misspelled intended lookbehind assertion

And when I corrected the spelling, I discovered that it would never have
worked if spelled correctly on perls that predate this feature.  So I
used a less efficient loop.

(cherry picked from commit e1584b7d3806e80c64225acc2dd0e4b0ee45196e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/ppptools.pl: Add comments, white-space, m//x
Karl Williamson [Mon, 15 Jul 2019 21:35:14 +0000 (15:35 -0600)]
parts/ppptools.pl: Add comments, white-space, m//x

This makes some patterns /x with white space to make them more readable.
It also changes several s/\s*// to s/\s+//, which is faster.

(cherry picked from commit 49ee9fdc8f67a4180bee01519cba8bce36f33387)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/ppptools.pl: Rename variables
Karl Williamson [Thu, 18 Jul 2019 20:50:00 +0000 (14:50 -0600)]
parts/ppptools.pl: Rename variables

to be more mnemonic

(cherry picked from commit dd19dfc1234756d5bc4e21e49a7e0e1a47924f96)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/ppptools.pl: Normalize prototypes
Karl Williamson [Fri, 12 Jul 2019 16:38:10 +0000 (10:38 -0600)]
parts/ppptools.pl: Normalize prototypes

This is so the existing comparison routines don't show that things are
different solely because of white space differences

(cherry picked from commit 93e8c96d2cd21f17b16636c3876a7960ef48b74e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/ppptools.pl: Yet another instance of an old flag
Karl Williamson [Thu, 11 Jul 2019 04:32:55 +0000 (22:32 -0600)]
parts/ppptools.pl: Yet another instance of an old flag

THe meanings of various flags changed a couple of months ago.  This is
the final (AFAICT) one to update.

(cherry picked from commit f03de555ac51a65231b9116f35506a751f5d559b)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoparts/ppptools.pl: Don't omit any fcns/macros in parsing .fnc
Karl Williamson [Tue, 9 Jul 2019 17:47:47 +0000 (11:47 -0600)]
parts/ppptools.pl: Don't omit any fcns/macros in parsing .fnc

A commit I made some years ago caused deprecated and experimental
functions from not being parsed.  This was the wrong thing to do.
This is because some tools like scan_prov (which hasn't been run in many
years) need them.  Instead this moves the skipping to the routine that
needs to skip, and doesn't skip as many categories.

(cherry picked from commit 24f05e758aa2d50ac85aa495b956b209e52a5e84)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoapicheck_c.PL: Add detail to comment
Karl Williamson [Wed, 14 Aug 2019 13:20:40 +0000 (07:20 -0600)]
apicheck_c.PL: Add detail to comment

(cherry picked from commit 948b1be3996812d97c85115a7c35678a0ab2b596)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mkapidoc.sh: Add strict, warnings
Karl Williamson [Wed, 14 Aug 2019 23:39:10 +0000 (17:39 -0600)]
devel/mkapidoc.sh: Add strict, warnings

(cherry picked from commit 5b5e4dc3f866089d8a51f580d4ecb554452a816a)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agoAll entries in apidoc.fnc are documented
Karl Williamson [Thu, 4 Jul 2019 20:25:29 +0000 (14:25 -0600)]
All entries in apidoc.fnc are documented

They often don't have that flag in the source, but since they're in the
source, they're documented.  So just add the flag when generating the
file.

(cherry picked from commit 78cf0bdd4bbf969d6ec7058755320706aff9143e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mkapidoc.sh: Slight clean up
Karl Williamson [Tue, 6 Aug 2019 04:54:32 +0000 (22:54 -0600)]
devel/mkapidoc.sh: Slight clean up

(cherry picked from commit 3135597a40b0d2fdc6daaa57cedd88b6963b58ff)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mkapidoc.sh: Sort the apidoc macros by name
Karl Williamson [Tue, 25 Jun 2019 17:19:18 +0000 (11:19 -0600)]
devel/mkapidoc.sh: Sort the apidoc macros by name

(cherry picked from commit ba3cdff1750f4339cf04e511c9ac9099c93d10a4)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mkapidoc.sh: White-space, comments only
Karl Williamson [Tue, 25 Jun 2019 17:09:58 +0000 (11:09 -0600)]
devel/mkapidoc.sh: White-space, comments only

This makes it more readable

(cherry picked from commit 9b98f505fc1548b82871f2870b10282bcdc489d2)
Signed-off-by: Nicolas R <atoomic@cpan.org>
4 years agodevel/mkapidoc.sh: Skip irrelevant embed.fnc lines
Karl Williamson [Thu, 8 Aug 2019 18:33:18 +0000 (12:33 -0600)]
devel/mkapidoc.sh: Skip irrelevant embed.fnc lines

Skip comments, for example.

(cherry picked from commit a71d41a14e304380acebac8be29cba06b6e5d137)
Signed-off-by: Nicolas R <atoomic@cpan.org>