This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Hauke D [Tue, 13 Aug 2019 20:05:47 +0000 (22:05 +0200)]
Change "--sysroot X" to "--sysroot=X" in Configure
Tony Cook [Mon, 26 Aug 2019 00:27:10 +0000 (10:27 +1000)]
perldelta for
14d26b44a1d7
Tony Cook [Tue, 20 Aug 2019 05:43:05 +0000 (15:43 +1000)]
(perl #134230) don't interpret 0x, 0b when numifying strings
Craig A. Berry [Sun, 25 Aug 2019 19:26:11 +0000 (14:26 -0500)]
Make find.t work on VMS by trimming trailing dots.
For whatever reason, find.t uses a lot of filenames with no
extension for testing purposes, but on VMS there is no such thing
as a file with no extension, so, for example 'faba' is returned
as 'faba.' with the zero-length extension explicitly specified.
For comparison purposes we have to trim that trailing dot, and
there is code to do that sprinkled throughout the test; we just
hadn't (until now) added it for a couple of the more recent tests.
Craig A. Berry [Sun, 25 Aug 2019 18:50:46 +0000 (13:50 -0500)]
Prepare VMS linker GSMATCH for 5.32.
GSMATCH in the linker options file tells the image activator
whether a dynamic library being loaded is compatible with what it
originally linked against. Ideally we would like to encode the
version number and all the options that can make a build binary
incompatible with another build of the same version, but there
are about 30 such options and only 8 bits (on Alpha) in which to
store both the version number and the options.
We've lived with only 3 bits reserved for 3 options, but as of
version 32 of Perl 5, we'll need 6 bits for the version number:
$ perl -e "$v = 31; printf('%b', $v);"
11111
$ perl -e "$v = 32; printf('%b', $v);"
100000
leaving us only 2 bits for options.
The code modified here only kicks in when PERLSHR_USE_GSMATCH is
defined in the environment.
Karl Williamson [Fri, 24 May 2019 15:01:46 +0000 (09:01 -0600)]
PATCH: [perl #134133] read beyond end of buffer
The code was using the wrong limit variable.
Karl Williamson [Thu, 22 Aug 2019 16:16:14 +0000 (10:16 -0600)]
regcomp.c: Fix wrong limit test
Spotted by Hugo van der Sanden in code reading.
Karl Williamson [Wed, 21 Aug 2019 18:52:23 +0000 (12:52 -0600)]
uni_keywords.h: Fix to work on EBCDIC
The table is collated in ASCII, so convert to that when looking things
up.
This change does not affect the binary of ASCII platform compilations
Karl Williamson [Wed, 21 Aug 2019 15:14:05 +0000 (09:14 -0600)]
inline.h: Return proper value on EBCDIC
The final step was missing in the conversion from UTF-EBCDIC to uv.
This adds a macro call that expands to its argument on non-EBCDIC
platforms, so this commit makes no changes to the compiled binary on
those systems.
James E Keenan [Sun, 18 Aug 2019 13:16:56 +0000 (13:16 +0000)]
Reset xxx_convert to empty string if none of 3 utilities is found
This will cause Configure to enter the WHOA block and default to using
sprintf.
Change Gconvert checkit() prototype for [perl #134371].
In the checkit() routine inside Configure, clang++ was taking the
if (strcmp(expect, got)) branch even though the 'expect' and 'got' strings
were identical. A first step in debugging this was to realize that
the checkit() function never returned a value, so relabel it as void.
With clang version 7.0.1-8 (tags/RELEASE_701/final) (Debian),
this change seems to work around the strcmp issue.
Further Configure gconvert probe cleanups for C++. As part of debugging
[perl #134375] and [perl #134371], try to eliminate warnings thrown by
clang++.
Karl Williamson [Thu, 4 Jul 2019 17:49:14 +0000 (11:49 -0600)]
I18N::Langinfo: Add doc heading
This resolves https://rt.perl.org/Ticket/Display.html?id=134234
Tom Hukins [Tue, 20 Aug 2019 15:20:27 +0000 (16:20 +0100)]
Bump version to 5.31.4 and update Module::Corelist
Tom Hukins [Tue, 20 Aug 2019 15:13:57 +0000 (16:13 +0100)]
New perldelta for 5.31.4
Tom Hukins [Tue, 20 Aug 2019 15:05:57 +0000 (16:05 +0100)]
Tick off 5.31.3
Tom Hukins [Tue, 20 Aug 2019 13:12:13 +0000 (13:12 +0000)]
5.31.3 today
Tom Hukins [Tue, 20 Aug 2019 11:37:32 +0000 (11:37 +0000)]
perldelta - module versions
Tom Hukins [Tue, 20 Aug 2019 11:31:44 +0000 (11:31 +0000)]
perldelta - acknowledgements
Tom Hukins [Tue, 20 Aug 2019 11:28:07 +0000 (11:28 +0000)]
Update Module::CoreList for 5.31.3
Tom Hukins [Tue, 20 Aug 2019 11:22:19 +0000 (11:22 +0000)]
perldelta - remove boilerplate
David Mitchell [Tue, 20 Aug 2019 12:03:58 +0000 (13:03 +0100)]
Perl_quadmath_format_single(): fix off-by-1 err
RT #134369
This function checks that a floating format string (%f, %e etc) on
-Dusequadmath builds has the 'Q' qualifier , and if not adds it.
However, the "adding" code allocates a new buffer that is one byte too
short, which this commit fixes.
In practice it doesn't matter, as in core, this function is only ever
called when the 'Q' is already present.
David Mitchell [Tue, 20 Aug 2019 07:43:48 +0000 (08:43 +0100)]
perldelta for
442d4b523eda1 (opslot)
Karl Williamson [Mon, 19 Aug 2019 20:43:30 +0000 (14:43 -0600)]
Fix utf8_to_uvchr_buf to match docs
It did so already except when passed a zero length input on
non-debugging builds. This caused test failures in Devel::PPPort, and
commit
4a5ab54a18679ab24ca03190884d326c2ca85288 was used to customize
that module in blead to get the tests to pass.
This commit avoids the possibility of having to bump the version again,
which is what that commit did.
James E Keenan [Mon, 19 Aug 2019 21:36:36 +0000 (17:36 -0400)]
Chad Granum [Mon, 19 Aug 2019 21:32:29 +0000 (17:32 -0400)]
Update Test-Simple to CPAN version 1.302166
1.302166 2019-08-15 10:37:01-07:00 America/Los_Angeles
- Fix context test on older perls
1.302165 2019-08-15 10:21:09-07:00 America/Los_Angeles
- Better diagnostics when a context is destroyed unexpectedly
- Add an event to notify when END phase starts
Karl Williamson [Mon, 19 Aug 2019 15:05:05 +0000 (09:05 -0600)]
utfebcdic.h: Fix EBCDIC compilation error
The #include needs to always be done, so remove the #ifdef. The
included file has the proper setup anyway for the variables that were
used.
Karl Williamson [Mon, 19 Aug 2019 15:02:56 +0000 (09:02 -0600)]
perldelta: Document I8N::LangTags noteworthy change
Karl Williamson [Mon, 19 Aug 2019 15:02:23 +0000 (09:02 -0600)]
perldelta: Fix typo
Tony Cook [Mon, 19 Aug 2019 05:49:35 +0000 (15:49 +1000)]
perldelta for
105c827d9a0f
though if anyone has a better description, please update it
Tony Cook [Thu, 28 Sep 2017 04:40:24 +0000 (14:40 +1000)]
(perl #124256) disallow \K in lookahead and lookbehind
\K can cause infinite loops in matching in these, and we're not sure
how it really should behave, so forbid it.
Chris 'BinGOs' Williams [Sat, 17 Aug 2019 17:38:54 +0000 (18:38 +0100)]
Revert "Update Scalar-List-Utils to CPAN version 1.51"
This reverts commit
96684a73b5f81ca2a88309182dbc2dca9ab1601a.
Failures with uselongdouble
Sawyer X [Sat, 17 Aug 2019 13:46:30 +0000 (16:46 +0300)]
Update release schdule, still missing some
Tony Cook [Thu, 15 Aug 2019 04:24:44 +0000 (14:24 +1000)]
perldelta for merge commit
17154110146f
Tony Cook [Thu, 15 Aug 2019 04:17:49 +0000 (14:17 +1000)]
Cleanup Time::HiRes
Tony Cook [Thu, 15 Aug 2019 04:16:19 +0000 (14:16 +1000)]
bump $Time::HiRes::VERSION
Tomasz Konojacki [Mon, 15 Jul 2019 23:42:07 +0000 (01:42 +0200)]
Time::HiRes: remove workaround for an ancient Devel::PPPort bug
It was fixed in Devel::PPPort 3.13_02.
[perl #134288]
Tomasz Konojacki [Mon, 15 Jul 2019 21:44:08 +0000 (23:44 +0200)]
Time::HiRes: remove the remains of MacOS classic support
Perl dropped MacOS classic support ages ago.
[perl #134288]
Tomasz Konojacki [Mon, 15 Jul 2019 21:36:40 +0000 (23:36 +0200)]
Time::HiRes: remove code for perls older than 5.6
Both Makefile.PL and HiRes.pm contain "use 5.006", so it was dead
code anyway.
[perl #134288]
Tomasz Konojacki [Mon, 15 Jul 2019 04:57:48 +0000 (06:57 +0200)]
Time::HiRes: normalize indentation
The indendation style now (roughly) matches what was specified
in the style guide in perlhack.
This commit doesn't contain any functional changes. If you're
seeing it in "git blame" output, try using -w switch, it will
hide whitespace-only changes.
[perl #134288]
James E Keenan [Thu, 15 Aug 2019 00:57:44 +0000 (20:57 -0400)]
Johan Vromans [Thu, 15 Aug 2019 00:55:34 +0000 (20:55 -0400)]
Getopt::Long: sync with CPAN version 2.51
Karl Williamson [Tue, 13 Aug 2019 01:14:30 +0000 (19:14 -0600)]
PATCH: [perl #134357] embed.fnc missing flag for docs
A check was recently added if a function had documentation that
embed.fnc accurately reflected that. Commit
c1a02ccad9a1ea91206b97e66056ee354ac761c1 missed this function
James E Keenan [Wed, 7 Aug 2019 13:39:56 +0000 (09:39 -0400)]
Run tests in ext/File-Find/t in series
For: RT # 133771
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 18:48:50 +0000 (19:48 +0100)]
Update IO-Compress to CPAN version 2.087
[DELTA]
2.087 10 August 2019
* IO::Uncompress::Unzip
nextStream not updating filehandle correctly
https://github.com/pmqs/IO-Compress/issues/3
25152f04f5b1bd9341502e42a5877c72eac3f291
* Added travis & appveyor files for CI in GitHub
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 18:47:03 +0000 (19:47 +0100)]
Update Compress-Raw-Bzip2 to CPAN version 2.087
[DELTA]
2.087 10 August 2019
* No Changes
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 18:45:34 +0000 (19:45 +0100)]
Update Compress-Raw-Zlib to CPAN version 2.087
[DELTA]
2.087 10 August 2019
* clang warning in ppport.h
update to latest ppport.h
https://github.com/pmqs/Compress-Raw-Zlib/issues/1
664a5fbacf778acdd4cfbcc571997f3df5ee43d3
Chris 'BinGOs' Williams [Mon, 12 Aug 2019 09:27:18 +0000 (10:27 +0100)]
Update Scalar-List-Utils to CPAN version 1.51
[DELTA]
1.51 -- 2019-08-08 14:31:32
[CHANGES]
* Add TO_JSON to List::Util::_Pair (thanks ilmari)
* Various minor docs fixes
[BUGFIXES]
* Don't segfault in subname() on deleted stashes (thanks ilmari)
* Fix uniqnum for large floats and numeric strings (thanks ilmari)
Karl Williamson [Fri, 9 Aug 2019 17:01:45 +0000 (11:01 -0600)]
perlapi: Document isALNUMC and variants
Karl Williamson [Mon, 5 Aug 2019 00:13:39 +0000 (18:13 -0600)]
perlapi: my_sprintf is a Miscellaneous function
Karl Williamson [Mon, 5 Aug 2019 00:06:07 +0000 (18:06 -0600)]
perlapi: sortsv_flags is an SV function
Karl Williamson [Mon, 5 Aug 2019 00:03:57 +0000 (18:03 -0600)]
perlapi: save_gp is a GV function
Karl Williamson [Mon, 5 Aug 2019 03:00:36 +0000 (21:00 -0600)]
perlapi: Reword some isFOO char classification docs
The input to these isn't restricted to a byte, and some minor
clarifications.
Karl Williamson [Sat, 3 Aug 2019 15:17:43 +0000 (09:17 -0600)]
perlapi: 5.30 promise not met; change to 5.32
We delayed this change, but I forgot to change this documentation
Karl Williamson [Thu, 27 Jun 2019 21:39:11 +0000 (15:39 -0600)]
regcomp.c: Don't read off the end of buffer
Until this commit, it was possible that \p{nv=3/} would cause the right
brace to be considered part of the property name.
Spotted by Hugo van der Sanden
David Mitchell [Fri, 9 Aug 2019 10:11:19 +0000 (11:11 +0100)]
fix size-miscalculation upgrading LISTOP TO LOOPOP
RT #134344
My recent commit v5.31.2-54-g8c47b5bce7 broke some CAN modules because
the code in Perl_newFOROP() wasn't accounting for the overhead in the
opslot struct when deciding whether an allocated LISTOP was large enough
to be upgraded in-place to a LOOPOP.
Tony Cook [Thu, 8 Aug 2019 05:56:58 +0000 (15:56 +1000)]
APIify and document several interpreter variables
Tony Cook [Thu, 8 Aug 2019 05:53:31 +0000 (15:53 +1000)]
PERL_DESTRUCT_LEVEL no longer requires a -DDEBUGGING build
Tony Cook [Thu, 31 Jan 2019 04:39:39 +0000 (15:39 +1100)]
(perl #132777) APIify and document PL_perl_destruct_level
This is documented in perlembed. It's only rarely used on CPAN
but it's pretty basic.
Tony Cook [Thu, 31 Jan 2019 04:25:05 +0000 (15:25 +1100)]
(perl #132777) document (sort of) and APIify PL_runops
This is documented in perlguts in such a way that it appears be
effectively API, so APIify it.
It's used on CPAN in a small number of modules.
Tony Cook [Thu, 31 Jan 2019 04:06:41 +0000 (15:06 +1100)]
(perl #132777) document and APIify PL_parser
Used in a few places on CPAN, either to check or modify the
compilation error count, or to do a little parsing via bufptr.
Tony Cook [Thu, 31 Jan 2019 03:52:14 +0000 (14:52 +1100)]
(perl #132777) document and APIify PL_defgv
This is used occasionally on CPAN, typically to access $_.
Tony Cook [Thu, 31 Jan 2019 03:35:52 +0000 (14:35 +1100)]
(perl #132777) APIify and document PL_curstash
per leont: I can't think of any reason not to make PL_curstash API,
it's both common, useful, simple, and highly unlikely to ever need
change.
Tony Cook [Thu, 31 Jan 2019 03:04:52 +0000 (14:04 +1100)]
(perl #132777) document and add PL_curcop to the API
PL_curcop is used fairly widely on CPAN, mostly to get the current
line number and file, to check lexical hints, or to check the
stash.
Tony Cook [Thu, 31 Jan 2019 02:37:44 +0000 (13:37 +1100)]
(perl #132777) document PL_exit_flags
PL_exit_flags is referred to in perlembed, perldiag and two
perldeltas, so APIify and document it.
Tony Cook [Thu, 8 Aug 2019 04:35:51 +0000 (14:35 +1000)]
perldelta for
933e3e630076
Tony Cook [Mon, 5 Aug 2019 05:23:45 +0000 (15:23 +1000)]
(perl #134266) make sure $@ is writable when we write to it
when unwinding.
Since except_sv might be ERRSV we try to preserve it's value,
if not the actual SV (which we have an extra refcount on if it is
except_sv).
Tony Cook [Thu, 8 Aug 2019 01:58:23 +0000 (11:58 +1000)]
bump $Storable::VERSION and update ChangeLog
Tony Cook [Tue, 6 Aug 2019 00:54:25 +0000 (10:54 +1000)]
minimally document the stacksize tool
Graham Knop [Sat, 20 Apr 2019 10:53:06 +0000 (12:53 +0200)]
move Storable CAN_FLOCK computation into XS
At build time, Storable would check if it could use flock based on some
Config values, and generate the final Storable.pm file using tha value.
This was done to avoid needing to load Config at runtime. This adds
complexity to the build process.
A simpler option is to build the constant in the XS code. This means
the build process can be entirely standard for XS.
Some slight adjustments to the code are needed to load the XS module at
BEGIN time, so that the contant is available in the rest of the file.
Graham Knop [Sat, 20 Apr 2019 10:44:52 +0000 (12:44 +0200)]
remove remains of Storable stack size detection
At build time, Storable used to detect the stack limits and store them.
This was removed in
2a0bbd31bbcc94c7c511f9575df619c5fdf3164c. That
removed the Limit module and the setup for building it, but left behind
the script used to detect the limits.
Clean up the script and some related bits in the Makefile.PL.
TonyC: retain stacksize, so end users can use it to choose limits
Tony Cook [Thu, 8 Aug 2019 01:18:38 +0000 (11:18 +1000)]
perldelta for
d1bc97feec1a
Hauke D [Fri, 30 Nov 2018 12:06:07 +0000 (13:06 +0100)]
(perl #133695) "0".."-1" should act like 0..-1
Previously, *any* string beginning with 0, including the string "0"
itself, would be subject to the magic string auto-increment, instead of
being treated like a number. This meant that "-2".."-1" was the same as
-2..-1 and "1".."-1" was the same as 1..-1, but "0".."-1" was the same
as "0".."99".
This patch fixes that inconsistency, while still allowing ranges like
"01".."31" to produce the strings "01", "02", ... "31", which is what
the "begins with 0" exception was intended for.
This patch also expands the documentation in perlop and states the rules
for the range operator in list context with both operands being strings
more explicitly.
See also #18165 and #18114.
Tony Cook [Thu, 8 Aug 2019 00:09:01 +0000 (10:09 +1000)]
bump $PerlIO::via::VERSION
Tony Cook [Wed, 7 Aug 2019 04:58:14 +0000 (14:58 +1000)]
PerlIO::Via: check arg is non-NULL before using it.
I can't find any code in core that ends up calling the _pushed handler
with arg == NULL, but PerlIO_push() is API, and there might be
CPAN or DarkPAN code out there that does, escpecially since there's
a check for arg being non-NULL further down.
CID 169261.
Tony Cook [Wed, 7 Aug 2019 01:13:53 +0000 (11:13 +1000)]
Storable: make count large enough
AvARRAY() could be very large, and we check for that at line 3807,
but int was (potentially) too small to make that comparison
meaningful.
CID 174681.
Karl Williamson [Wed, 7 Aug 2019 03:29:22 +0000 (21:29 -0600)]
locale.c: Stop Coverity warning
Coverity is right, so re-order these clauses. This code is executed
only if some very strange error occurs.
Tony Cook [Wed, 7 Aug 2019 00:45:52 +0000 (10:45 +1000)]
Revert "Revert "postpone perl_parse() exit(0) bugfix""
This reverts commit
2773b4f50f991900e38d33daace2b9c6a0902c6a.
I haven't made much progress in resolving the problems this produces
downstream, so rather than leaving it broken, I'll revert it until
they can be solved.
David Mitchell [Wed, 19 Jun 2019 12:03:22 +0000 (13:03 +0100)]
avoid use-after free in /(?{...})/
RT #134208
In something like
eval { sub { " " }->() =~ /(?{ die })/ }
When the match string gets aliased to $_, the SAVE_DEFSV is done after the
SAVEDESTRUCTOR_X(S_cleanup_regmatch_info_aux). So if croaking, the SV
gets SvREFCNT_dec()ed by the SAVE_DEFSV, then S_cleanup_regmatch_info_aux()
manipulates the SV's magic.
This doesn't cause a problem unless the match string is temporary, in
which case the only other reference keeping it alive will be removed
by the FREETMPs during the croak.
The fix is to make sure an extra ref to the sv is held.
David Mitchell [Tue, 6 Aug 2019 13:36:45 +0000 (14:36 +0100)]
include a trailing \0 in SVs holding trie info
RT #13427
TRIE_STORE_REVCHAR() was creating SvPV()s with no trailing '\0'. This
doesn't really matter given the specialised use these are put to, but
it upset valgrind et al when perl was run with -Drv which printf("%s")'s
the contents of the string.
Chris 'BinGOs' Williams [Tue, 6 Aug 2019 10:47:02 +0000 (11:47 +0100)]
Update Win32 to CPAN version 0.53
[DELTA]
0.53 [2019-08-05]
- improve Win32::GetOSDisplayName
- added Win2016/2019 detection and version information by
Richard Leach [PR/15]
- Include wchar.h to allow building with g++ by Tony Cook [rt#127836]
0.52_02 [2018-11-02] by Reini Urban
- added () usage croaks.
- Fixed a -Warray-bounds buffer overflow in LONGPATH,
- Fix various -Wunused warnings
and two -Wmaybe-uninitialized.
0.52_01 [2017-11-30]
- add missing const
David Mitchell [Mon, 5 Aug 2019 15:22:30 +0000 (16:22 +0100)]
op_dump(): display a wild parent pointer.
Normally the PARENT is displayed only for top-level ops: lower-level
ops have the obvious parent.
This commit adds a check that a lower-level op has a valid parent (i.e.
non-null, points to an op with OPf_KIDS and one of the kids is us).
If these checks fails, the raw content of op_sibparent is displayed.
David Cantrell [Thu, 11 Jul 2019 11:04:40 +0000 (12:04 +0100)]
I18N::LangTags: minor clarification
Don't imply that there are other undocumented env vars in play
David Cantrell [Thu, 11 Jul 2019 11:03:20 +0000 (12:03 +0100)]
I18N::LangTags: document IGNORE_WIN32_LOCALE
David Cantrell [Thu, 11 Jul 2019 11:35:58 +0000 (12:35 +0100)]
I18N::LangTags: bump version
David Mitchell [Mon, 5 Aug 2019 10:35:08 +0000 (11:35 +0100)]
[MERGE] slim down opslot structure.
When OPs are allocated from a slab (the normal case), what are actually
allocated from the slab are opslot structs, which consist of an OP plus
two pointers.
The branch reduces those two pointers to two U16s, which saves 8 bytes
per op on a 64-bit system.
A further 8 bytes could be saved if those two U16s were included as
extra fields in the OP structure (and the opslot struct disposed of),
but unfortunately too much code does things like Zero(o) or Copy(o1,o2)
which would obliterate the allocation info contained in those two U16s.
David Mitchell [Tue, 16 Jul 2019 15:30:42 +0000 (16:30 +0100)]
Perl_opslab_force_free() adjust loop test
Formerly, slots were allocated within a slab, but leaving the very top
word in the slab as a NULL pointer which appeared as a fake slot so that
a 'while (slot->opslot_next)' loop would stop. Since opslot_next has
been eradicated and the NULL is no longer allocated, the loop condition
for scanning all slots can be simplified slightly (with no change in
functionality).
David Mitchell [Tue, 16 Jul 2019 15:14:58 +0000 (16:14 +0100)]
OPSLOT: replace opslot_next with opslot_size
Currently, each allocated opslot has a pointer to the opslot that was
allocated immediately above it. Replace this with a U16 opslot_size field
giving the size of the opslot. The next opslot can then be found by
adding slot->opslot_size * sizeof(void*) to slot.
This saves space.
David Mitchell [Mon, 15 Jul 2019 10:55:27 +0000 (11:55 +0100)]
struct opslot: document a field better
David Mitchell [Sat, 13 Jul 2019 19:27:45 +0000 (20:27 +0100)]
opslabs: change opslab_first to opslab_free_space
Currently a OPSLAB maintains a pointer to the lowest allocated OPSLOT
within the slab (slots are allocated downwards). Replace this pointer
with a U16 indicating how many pointer-sized words are free below the
lowest allocated slot.
David Mitchell [Sat, 13 Jul 2019 17:53:08 +0000 (18:53 +0100)]
OPSLAB: always have opslab_size field
Currently this struct only has the opslab_size field on debugging
builds. Change it so that this field is always present. This will make
it easier to not need a fake partial OPSLOT at the end of the slab with
a NULL opslot_next field, which will in turn simplify converting
opslot_next into U16 size field shortly.
David Mitchell [Sat, 13 Jul 2019 17:43:30 +0000 (18:43 +0100)]
make opslot_slab an offset in current slab
Each OPSLOT allocated within an OPSLAB contains a pointer, opslot_slab,
which points back to the first (head) slab of the slab chain (i.e. not
necessarily to the slab which the op is contained in).
This commit changes the pointer to be a 16-bit offset from the start of
the current slab, and adds a pointer at the start of each slab which
points back to the head slab.
The mapping from an op to the head slab is now a two-step process: use
the op's slot's opslot_offset field to find the start of the current
slab, then use that slab's new opslab_head pointer to find the head
slab.
The advantage of this is that it reduces the storage per op. (It
probably doesn't make any practical difference yet, due to alignment
issues, but that will will be sorted shortly in this branch.)
David Mitchell [Sat, 13 Jul 2019 16:52:51 +0000 (17:52 +0100)]
Perl_Slab_Alloc(): rename 'slab' to 'head_slab'
Rename this local var to better identify that it always points to the
first slab in the slab chain, rather than to the current slab.
Karl Williamson [Wed, 31 Jul 2019 19:35:55 +0000 (13:35 -0600)]
autodoc.pl: Forget heuristics, we have a flag
We know if something is a macro because of the 'm' flag. Don't use the
fallible heuristics to try to determine this.
Karl Williamson [Wed, 31 Jul 2019 19:33:19 +0000 (13:33 -0600)]
autodoc.pl: Warn if entry missing d flag but has docs
If you have documention, you're supposed to say so, so that the tools
will work properly.
Karl Williamson [Wed, 31 Jul 2019 19:26:13 +0000 (13:26 -0600)]
embed.fnc: Note functions that have documentation
A bunch of functions actually were documented, but this fact was omitted
in embed.fnc.
Karl Williamson [Wed, 31 Jul 2019 19:20:51 +0000 (13:20 -0600)]
numeric.c: Fix typo in pod
Karl Williamson [Wed, 31 Jul 2019 19:19:15 +0000 (13:19 -0600)]
embed.fnc: Fix typo in comment
Karl Williamson [Wed, 31 Jul 2019 19:16:03 +0000 (13:16 -0600)]
pad.h: Parameters to many functions are ptrs
The apidoc entries for 22 functions forgot that the parameters were
pointers to the type. Since these are macros, this error wasn't caught
until Devel::PPPort tried to generate a test case for them.
Karl Williamson [Wed, 31 Jul 2019 19:37:09 +0000 (13:37 -0600)]
autodoc.pl: Fix typo in comment
Dagfinn Ilmari Mannsåker [Wed, 31 Jul 2019 15:41:10 +0000 (16:41 +0100)]
Fix typo in STORE_LC_NUMERIC_SET_TO_NEEDED_IN docs
Hugo van der Sanden [Wed, 31 Jul 2019 12:29:49 +0000 (13:29 +0100)]
[perl #134172] perldelta