This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
20 months agot/op/tr_latin1.t: Skip ASCII-centric tests on EBCDIC
Karl Williamson [Thu, 3 Oct 2019 02:54:57 +0000 (20:54 -0600)]
t/op/tr_latin1.t: Skip ASCII-centric tests on EBCDIC

20 months agodist/Data-Dumper/t/dumper.t: Skip ASCII-centric tests on EBCDIC
Karl Williamson [Thu, 3 Oct 2019 02:54:12 +0000 (20:54 -0600)]
dist/Data-Dumper/t/dumper.t: Skip ASCII-centric tests on EBCDIC

20 months agolib/ExtUtils/t/Embed.t: Skip on EBCDIC
Karl Williamson [Thu, 3 Oct 2019 03:17:23 +0000 (21:17 -0600)]
lib/ExtUtils/t/Embed.t: Skip on EBCDIC

This is not currently implemented for EBCDIC

20 months agodist/Storable/t/regexp.t: Mark some tests as ASCII-only
Karl Williamson [Thu, 3 Oct 2019 03:12:24 +0000 (21:12 -0600)]
dist/Storable/t/regexp.t: Mark some tests as ASCII-only

These tests are ASCII centric

20 months agot/op/qr.t: Don't use fancy apostrophe
Karl Williamson [Thu, 3 Oct 2019 03:08:46 +0000 (21:08 -0600)]
t/op/qr.t: Don't use fancy apostrophe

when the ASCII one will do.

20 months agot/op/threads-dirh.t: Add ability to skip on memory constrained
Karl Williamson [Thu, 3 Oct 2019 03:07:50 +0000 (21:07 -0600)]
t/op/threads-dirh.t: Add ability to skip on memory constrained

This ran out of memory on a very limited smoker; add a check for
environment variable PERL_SKIP_BIG_MEM_TESTS being non-zero to skip
it.

20 months agot/re/bigfuzzy_not_utf8.t: Add ability to skip on memory constrained
Karl Williamson [Thu, 3 Oct 2019 03:06:50 +0000 (21:06 -0600)]
t/re/bigfuzzy_not_utf8.t: Add ability to skip on memory constrained

This test blew the memory on a very limited smoker; add a check
for environment variable PERL_SKIP_BIG_MEM_TESTS being non-zero to skip
these.

20 months agot/re/pat.t: Add ability to skip on memory constrained
Karl Williamson [Thu, 3 Oct 2019 03:05:02 +0000 (21:05 -0600)]
t/re/pat.t: Add ability to skip on memory constrained

A few tests were blowin the memory on a very limited smoker; add a check
for environment variable PERL_SKIP_BIG_MEM_TESTS being non-zero to skip
these.

20 months agot/re/re_tests: Skip ASCII-centric test for EBCDIC
Karl Williamson [Thu, 3 Oct 2019 03:03:54 +0000 (21:03 -0600)]
t/re/re_tests: Skip ASCII-centric test for EBCDIC

Add a similar one for EBCDIC

20 months agol1_char_class_tab.h: Remove some special EBCDIC cases
Karl Williamson [Thu, 3 Oct 2019 02:43:49 +0000 (20:43 -0600)]
l1_char_class_tab.h: Remove some special EBCDIC cases

These are no longer needed.

20 months agoutfebcdic.h: Move some #defines
Karl Williamson [Thu, 3 Oct 2019 02:42:19 +0000 (20:42 -0600)]
utfebcdic.h: Move some #defines

20 months agoAdd UTF8_CHK_SKIP() macro
Karl Williamson [Wed, 9 Oct 2019 16:02:31 +0000 (10:02 -0600)]
Add UTF8_CHK_SKIP() macro

This is a safer version of UTF8SKIP for use when the input could be
possibly malformed.  It uses strnlen() to not read past a NUL in the
input.  Since Perl adds NULs to the end of SV's, this will likely
prevent reading beyond the end of a buffer.

A still safer version could be written that doesn't look for just a NUL,
but any unexpected byte, and stops just before that.  I suspect that is
overkill, and since strnlen() can be very fast, I went with this
approach instead.  Nothing precludes adding another version that does
this full checking

20 months agoDocument UTF8_SKIP()
Karl Williamson [Wed, 9 Oct 2019 16:01:32 +0000 (10:01 -0600)]
Document UTF8_SKIP()

20 months agoFix pod entry for toLOWER_utf8
Karl Williamson [Wed, 9 Oct 2019 15:39:27 +0000 (09:39 -0600)]
Fix pod entry for toLOWER_utf8

It was missing a parameter

20 months agoperldelta for merge commit b8c77730539d8
Tony Cook [Tue, 8 Oct 2019 05:10:59 +0000 (16:10 +1100)]
perldelta for merge commit b8c77730539d8

20 months agoDisable use of U32_ALIGNMENT_REQUIRED
Tony Cook [Tue, 8 Oct 2019 04:55:36 +0000 (15:55 +1100)]
Disable use of U32_ALIGNMENT_REQUIRED

Always assume unaligned access is unsafe.

We now always define U32_ALIGNMENT_REQUIRED so that darkpan code
that depended on it will use the safer path.

20 months agoDigest::MD5 is customized origin/tonyc/133495-digest-md5
Tony Cook [Tue, 8 Oct 2019 00:18:43 +0000 (11:18 +1100)]
Digest::MD5 is customized

20 months agoMatt Turner is now a perl author
Tony Cook [Tue, 8 Oct 2019 00:10:04 +0000 (11:10 +1100)]
Matt Turner is now a perl author

20 months ago(perl #133495) remove probing for d_u32align
Tony Cook [Mon, 7 Oct 2019 23:41:46 +0000 (10:41 +1100)]
(perl #133495) remove probing for d_u32align

Compiler optimisation meant the could return the wrong result in some
cases.

This wasn't a problem on x86, but on platforms where alignment is
required it caused problems.

Strangely enough d_u32align is "define" in the win32 config files,
on any x64 system (the probe only checked on 32-bit systems), on
ARM and on the one i386 build I checked.

This should have little to no effect on performance, for example,
building:

typedef unsigned long U64;

U64 b64little(unsigned char *p) {
    return *p | ((U64)p[1] << 8) | ((U64)p[2] << 16) | ((U64)p[3] << 24)
         | ((U64)p[4] << 32) | ((U64)p[5] << 40) | ((U64)p[6] << 48) | ((U64)p[7] << 56);
}

U64 b64big(unsigned char *p) {
    return ((U64)*p << 56) | ((U64)p[1] << 48) | ((U64)p[2] << 40) | ((U64)p[3] << 32)
         | ((U64)p[4] << 24) | ((U64)p[5] << 16) | ((U64)p[6] << 8) | ((U64)p[7]);
}

unsigned b32little(unsigned char *p) {
    return *p | ((unsigned)p[1] << 8) | ((unsigned)p[2] << 16) | ((unsigned)p[3] << 24);
}

unsigned b32big(unsigned char *p) {
    return ((unsigned)p[0] << 24) | ((unsigned)p[1] << 16) | ((unsigned)p[2] << 8) | p[3];
}

with:

gcc -O2 -S test.c

produces:

.file "test.c"
.text
.p2align 4,,15
.globl b64little
.type b64little, @function
b64little:
.LFB0:
.cfi_startproc
movq (%rdi), %rax
ret
.cfi_endproc
.LFE0:
.size b64little, .-b64little
.p2align 4,,15
.globl b64big
.type b64big, @function
b64big:
.LFB1:
.cfi_startproc
movq (%rdi), %rax
bswap %rax
ret
.cfi_endproc
.LFE1:
.size b64big, .-b64big
.p2align 4,,15
.globl b32little
.type b32little, @function
b32little:
.LFB2:
.cfi_startproc
movl (%rdi), %eax
ret
.cfi_endproc
.LFE2:
.size b32little, .-b32little
.p2align 4,,15
.globl b32big
.type b32big, @function
b32big:
.LFB3:
.cfi_startproc
movl (%rdi), %eax
bswap %eax
ret
.cfi_endproc
.LFE3:
.size b32big, .-b32big
.ident "GCC: (Debian 6.3.0-18+deb9u1) 6.3.0 20170516"
.section .note.GNU-stack,"",@progbits

so the compiler is smart enough to recognize the unaligned access code
and optimize it on platforms that support it.

MSVC doesn't seem to optimize this, but since Win32 has been built
with d_u32align=define since 2005, this change will make no
difference.

20 months agoClean up U8TO*_LE macro implementations
Matt Turner [Thu, 5 Sep 2019 04:48:56 +0000 (21:48 -0700)]
Clean up U8TO*_LE macro implementations

The code guarded by #ifndef U32_ALIGNMENT_REQUIRED attempts to optimize
byte-swapping by doing unaligned loads, but accessing data through
unaligned pointers is undefined behavior in C. Moreover, compilers are
more than capable of recognizing these open-coded byte-swap patterns and
emitting a bswap instruction, or an unaligned load instruction, or a
combined load, etc. There's no need for multiple paths to attain the
desired result.

See https://rt.perl.org/Ticket/Display.html?id=133495

20 months agoDigest-MD5: Consolidate byte-swapping paths
Matt Turner [Thu, 5 Sep 2019 04:04:47 +0000 (21:04 -0700)]
Digest-MD5: Consolidate byte-swapping paths

The code guarded by #ifndef U32_ALIGNMENT_REQUIRED attempts to optimize
byte-swapping by doing unaligned loads, but accessing data through
unaligned pointers is undefined behavior in C. Moreover, compilers are
more than capable of recognizing these open-coded byte-swap patterns and
emitting a bswap instruction, or an unaligned load instruction, or a
combined load, etc. There's no need for multiple paths to attain the
desired result.

See https://rt.perl.org/Ticket/Display.html?id=133495

20 months agoMerge branch 'Remove EBCDCIC special handling' into blead
Karl Williamson [Sun, 6 Oct 2019 17:08:40 +0000 (11:08 -0600)]
Merge branch 'Remove EBCDCIC special handling' into blead

It turns out that only a single number is needed to distinguish between
basic UTF-8 and UTF-EBCDIC.  And that is the number of bits of
real information are in each continuation byte.  In UTF-8 it is 6 (2
bits reserved for syntax); In UTF-EBCDIC it is 5.

Everything else stems from reasonable decisions based on this
fundamental difference.  So all the other constants can be common
between the two systems, using compile-time shifts and masks.

For Perl's extended UTF-8-like encoding, another constant is needed,
which is the number of continuation bytes appended when the start byte
is 8 bits.  For both systems, that number is the minimum required to be
able to encode a 64-bit integer. (There are other ways to extend the
encoding, including some that are infinitely so.  But Perl chose to just
append a fixed number of bytes, so it isn't extensible.  But it has the
advantage of needing to rely only on the first byte to know how many
more are coming.)

This commit consolidates various constants that differed between the
two systems, but were unnecessarily so.  There are other constants that
remain that differ between the two files; these are for convenience .

20 months agoMake defn of UTF_IS_CONTINUED common
Karl Williamson [Sun, 6 Oct 2019 16:50:49 +0000 (10:50 -0600)]
Make defn of UTF_IS_CONTINUED common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UVCHR_IS_INVARIANT common
Karl Williamson [Thu, 3 Oct 2019 02:37:17 +0000 (20:37 -0600)]
Make defn of UVCHR_IS_INVARIANT common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of OFFUNI_IS_INVARIANT common
Karl Williamson [Thu, 3 Oct 2019 00:08:32 +0000 (18:08 -0600)]
Make defn of OFFUNI_IS_INVARIANT common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UTF8_IS_DOWNGRADEABLE_START common
Karl Williamson [Thu, 3 Oct 2019 00:03:26 +0000 (18:03 -0600)]
Make defn of UTF8_IS_DOWNGRADEABLE_START common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UTF_IS_ABOVE_LATIN1 common
Karl Williamson [Wed, 2 Oct 2019 23:56:01 +0000 (17:56 -0600)]
Make defn of UTF_IS_ABOVE_LATIN1 common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UTF8_IS_START common
Karl Williamson [Sun, 6 Oct 2019 16:50:12 +0000 (10:50 -0600)]
Make defn of UTF8_IS_START common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UTF8_IS_CONTINUATION common
Karl Williamson [Wed, 2 Oct 2019 23:13:31 +0000 (17:13 -0600)]
Make defn of UTF8_IS_CONTINUATION common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UTF_CONTINUATION_MARK common
Karl Williamson [Wed, 2 Oct 2019 23:07:50 +0000 (17:07 -0600)]
Make defn of UTF_CONTINUATION_MARK common

This can be derived from other values, removing an EBCDIC dependency

20 months agoMake defn of UTF_IS_CONTINUATION_MASK common
Karl Williamson [Wed, 2 Oct 2019 22:48:38 +0000 (16:48 -0600)]
Make defn of UTF_IS_CONTINUATION_MASK common

This variable can be defined from the same base in both UTF-8 and
UTF-EBCDIC, and doing so eliminates an EBCDIC dependency.

20 months agoutf8.h: Add comment
Karl Williamson [Wed, 2 Oct 2019 22:43:50 +0000 (16:43 -0600)]
utf8.h: Add comment

20 months agoutf8.h: Remove redundant cast
Karl Williamson [Wed, 2 Oct 2019 22:40:44 +0000 (16:40 -0600)]
utf8.h: Remove redundant cast

The called macro does the cast already

20 months agoutf8.h: Make sure macros not called with a ptr
Karl Williamson [Wed, 2 Oct 2019 22:37:17 +0000 (16:37 -0600)]
utf8.h: Make sure macros not called with a ptr

By doing an '| 0' with a parameter in a macro expansion, a C syntax
error will be generated.  This is free protection.

20 months agot/TEST: Test most of CPAN on EBCDIC
Karl Williamson [Wed, 2 Oct 2019 22:23:39 +0000 (16:23 -0600)]
t/TEST: Test most of CPAN on EBCDIC

CPAN was mostly skipped before because so many distros raised errors,
but that is no longer true, so just skip about 10 that have big
problems, and test the rest

20 months agoSmall typo in README.os390 from 2001-01-08 09:53
H.Merijn Brand [Fri, 4 Oct 2019 06:58:59 +0000 (08:58 +0200)]
Small typo in README.os390 from 2001-01-08 09:53

0e06870bf080a38cda51c06c6612359afc2334e1

20 months agoRecent os390 experiences reflected in docs and hints
H.Merijn Brand [Thu, 3 Oct 2019 12:52:24 +0000 (14:52 +0200)]
Recent os390 experiences reflected in docs and hints

20 months agofix some signed/unsigned warnings
David Mitchell [Thu, 3 Oct 2019 13:13:14 +0000 (14:13 +0100)]
fix some signed/unsigned warnings

Note that utf8_distance returns IV, while STR_LEN is an unsigned value
of varying sizes.

20 months agoregen charclass_invlists.h
David Mitchell [Thu, 3 Oct 2019 12:24:39 +0000 (13:24 +0100)]
regen charclass_invlists.h

this was missed from the previous commit

Also, fix typo in regen/regcharclass.pl It was still referring to itself
as Porting/regcharclass.pl

20 months agoUse balanced delimiters for multi-line s///gxe
Dagfinn Ilmari Mannsåker [Thu, 3 Oct 2019 10:29:30 +0000 (11:29 +0100)]
Use balanced delimiters for multi-line s///gxe

20 months agolib/charnames.t: Fix Named Sequence test for EBCDIC
Karl Williamson [Wed, 2 Oct 2019 22:19:49 +0000 (16:19 -0600)]
lib/charnames.t: Fix Named Sequence test for EBCDIC

The file from Unicode needs to be translated to native

20 months agomktables: Fix Named Sequences for EBCDIC
Karl Williamson [Wed, 2 Oct 2019 22:13:31 +0000 (16:13 -0600)]
mktables: Fix Named Sequences for EBCDIC

This table wasn't being translated into native code points

20 months agoperldelta for 30fc7a2809e5
Tony Cook [Wed, 2 Oct 2019 05:42:00 +0000 (15:42 +1000)]
perldelta for 30fc7a2809e5

20 months agoEliminate modifiable variables in constants
James E Keenan [Sun, 26 May 2019 01:40:00 +0000 (21:40 -0400)]
Eliminate modifiable variables in constants

Transform previously deprecated cases into exceptions.

Update diagnostic; change D to F

remove now irrelevant code (TonyC)

For: RT 134138

20 months agoDocument the various stacks in perlguts.pod
Paul "LeoNerd" Evans [Wed, 18 Sep 2019 15:18:10 +0000 (16:18 +0100)]
Document the various stacks in perlguts.pod

20 months agomathoms: Restore fcns accidentally deleted
Karl Williamson [Mon, 30 Sep 2019 23:47:21 +0000 (17:47 -0600)]
mathoms: Restore fcns accidentally deleted

Commit x059703b088f44d5665f67fba0b9d80cad89085fd removed more code than
was intended.  This commit restores the missing functions.

This showed up in MSWin32 builds, I presume VMS as well.

Spotted by Tony Cook

20 months agoregcomp.c: Fix MSWin32 compilation error
Karl Williamson [Tue, 1 Oct 2019 03:50:09 +0000 (21:50 -0600)]
regcomp.c: Fix MSWin32 compilation error

On DEBUGGING builds, the asserts in the expansion of this macro build up
too large of literal strings for the Win32 compiler.  Solve this by
storing to an intermediary.

20 months agoRemove deprecated character classification/case changing macros
Karl Williamson [Sun, 29 Sep 2019 21:16:24 +0000 (15:16 -0600)]
Remove deprecated character classification/case changing macros

It has been deprecated since 5.26 to use various macros that deal with
UTF-8 inputs but don't have a parameter indicating the maximum length
beyond which we should not look.  This commit changes all such macros,
as threatened in existing documentation and warning messages, to have an
extra parameter giving the length.

This was originally scheduled to happen in 5.30, but was delayed because
it broke some CPAN modules, and there wasn't really a good way around
it.  But now that Devel::PPPort 3.54 is out, ppport.h has new facilities
for getting modules making these changes to work with older Perl
releases.

20 months agoAPItest: Remove use of macros about to be removed
Karl Williamson [Sun, 20 May 2018 19:11:02 +0000 (13:11 -0600)]
APItest: Remove use of macros about to be removed

The next commit removes some macros that this uses.  They have been
deprecated, and the uses here were to test those deprecations.

20 months agoperl.h: Silence warning when compiled with C++
Karl Williamson [Sat, 28 Sep 2019 20:01:41 +0000 (14:01 -0600)]
perl.h: Silence warning when compiled with C++

This silences a warning that the pragma it surrounds is not valid on
C++.  We don't need to know that, and it clutters the compilation
output.

20 months agoregex: Add LEXACT_ONLY8 node type
Karl Williamson [Sat, 28 Sep 2019 17:58:59 +0000 (11:58 -0600)]
regex: Add LEXACT_ONLY8 node type

This is like LEXACT, but it is known that only strings encoded in UTF-8
will match it, so don't even have to try if that condition isn't met.

20 months agoregex: Create and handle LEXACT nodes
Karl Williamson [Fri, 27 Sep 2019 03:38:46 +0000 (21:38 -0600)]
regex: Create and handle LEXACT nodes

See the previous commit for info on these.

I am not changing trie code to recognize these at this time.

20 months agoAdd regnode LEXACT, for long strings
Karl Williamson [Wed, 25 Sep 2019 16:12:32 +0000 (10:12 -0600)]
Add regnode LEXACT, for long strings

This commit adds a new regnode for strings that don't fit in a regular
one, and adds a structure for that regnode to use.  Actually using them
is deferred to the next commit.

This new regnode structure is needed because the previous structure only
allows for an 8 bit length field, 255 max bytes.  This commit puts the
length instead in a new field, the same place single-argument regnodes
put their argument.  Hence this long string is an extra 32 bits of
overhead, but at no string length is this node ever bigger than the
combination of the smaller nodes it replaces.

I also considered simply combining the original 8 bit length field
(which is now unused) with the first byte of the string field to get a
16 bit length, and have the actual string be offset by 1.  But I
rejected that because it would mean the string would usually not be
aligned, slowing down memory accesses.

This new LEXACT regnode can hold up to what 1024 regular EXACT ones hold,
using 4K fewer overhead bytes to do so.  That means it can handle
strings containing 262000 bytes.  The comments give ideas for expanding
that should it become necessary or desirable.

Besides the space advantage, any hardware acceleration in memcmp
can be done in much bigger chunks, and otherwise the memcmp inner loop
(often written in assembly) will run many more times in a row, and our
outer loop that calls it, correspondingly fewer.

20 months agoregcomp.c: Change handling of filled EXACT nodes
Karl Williamson [Sun, 22 Sep 2019 22:12:07 +0000 (16:12 -0600)]
regcomp.c: Change handling of filled EXACT nodes

This changes the detection mechanism to check just before writing to see
if if would be out of bounds, and if so, instead break out of the loop,
and go close out the node.  Prior to this commit space for a worst-case
scenario was reserved, and we didn't start a new character if we were in
that danger zone.  This left nodes left fully packed than they could
have been.

Thus this improves the packing of nodes, especially under /i, from the
previous mechanism.  But more importantly, it set things up so that we
can potentially increase the node size as we go along.

This also changes the handling of avoiding splitting a multi-character
fold across nodes under /i.  For example, take the sequence 'ffi',  We
wouldn't want to end a node with 'ff', when the first character in the
next node is an 'i', as U+FB03 folds to that sequence, and the code that
does pattern matching can't currently match across node boundaries.
Previously we backed off filling the node until the final character
wasn't one that could potentially cause such a break.  That is we didn't
look at the next character and see if it was an 'i' (or some other
potential multi-char fold.)  Now we do look at that next
character(s), and only back off if this actually would split a real
multi-char fold.

20 months agoregcomp.h: Add comments
Karl Williamson [Sun, 22 Sep 2019 21:26:03 +0000 (15:26 -0600)]
regcomp.h: Add comments

20 months agoregcomp.h: Remove obsolete macro
Karl Williamson [Sun, 22 Sep 2019 21:25:23 +0000 (15:25 -0600)]
regcomp.h: Remove obsolete macro

This is no longer used

20 months agoregcomp.c: Rename three variables
Karl Williamson [Sat, 21 Sep 2019 20:34:20 +0000 (14:34 -0600)]
regcomp.c: Rename three variables

One of the variables is misnamed,  the upper_fill indicates that the
node has to be left not completely filled.  Comments will be added in a
later commit.

The other two are renamed in preparation for future changes to more
accurately describe their new purposes.

20 months agoregcomp.c: White-space only, comments
Karl Williamson [Sat, 21 Sep 2019 19:31:37 +0000 (13:31 -0600)]
regcomp.c: White-space only, comments

Outdent a block that was doubly indented.  Change some other white space
and fix grammar in a comment

20 months agoregcomp: Use new set macro to store a value
Karl Williamson [Sat, 21 Sep 2019 19:24:33 +0000 (13:24 -0600)]
regcomp: Use new set macro to store a value

This is in preparation for the current mechanism in a later commit to
become a not legal lhs

20 months agoChange to primary email address for Paul Marquess
pmqs [Sat, 28 Sep 2019 19:09:44 +0000 (20:09 +0100)]
Change to primary email address for Paul Marquess

20 months agoDevel::PPPort Adjust manifest for next release
Nicolas R [Fri, 27 Sep 2019 23:43:28 +0000 (17:43 -0600)]
Devel::PPPort Adjust manifest for next release

20 months agoDevel::PPPort - fix podcheck issues
Nicolas R [Fri, 27 Sep 2019 23:37:39 +0000 (17:37 -0600)]
Devel::PPPort - fix podcheck issues

Fix issues noticed by porting/podcheck.t

20 months agoTurn the clock backward for Devel::PPPort 3.54
Nicolas R [Fri, 27 Sep 2019 23:08:49 +0000 (17:08 -0600)]
Turn the clock backward for Devel::PPPort 3.54

The last release version at this date is 3.52
turn the clock backward to 3.54 for now
so porting/cmp_version.t passes.

20 months agoDevel::PPPort: Fix commit d6d4687 vmess is already implemented
Pali [Tue, 14 May 2019 10:54:30 +0000 (12:54 +0200)]
Devel::PPPort: Fix commit d6d4687 vmess is already implemented

Fixes GH #61 aka RT 134101

(cherry picked from commit 935b7556e54d4bd3c18fdfef2f072b674afb7051)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoDevel::PPPort - Reconciliate changes with GitHub 26a6a909
Nicolas R [Fri, 27 Sep 2019 22:42:45 +0000 (16:42 -0600)]
Devel::PPPort - Reconciliate changes with GitHub 26a6a909

20 months agoUpdate parts/base,todo files
Karl Williamson [Sat, 14 Sep 2019 21:31:01 +0000 (15:31 -0600)]
Update parts/base,todo files

This is updated to the latest blead.

(cherry picked from commit e7398cda98d95e464aefd3b7ab8a052bdf19c896)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoWe don't provide GCC_BRACE_GROUPS_FORBIDDEND
Karl Williamson [Fri, 9 Aug 2019 16:03:43 +0000 (10:03 -0600)]
We don't provide GCC_BRACE_GROUPS_FORBIDDEND

So, don't use our macro that indicates we do provide it.

(cherry picked from commit 36672207f64165e8e58251a2a4cb4569984dadcd)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoBackport start_subparse
Karl Williamson [Mon, 15 Jul 2019 20:45:58 +0000 (14:45 -0600)]
Backport start_subparse

(cherry picked from commit 59c0a72a7f36c9f3e2c0779f5affc420499252b8)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoBackport rsync_locale, switch_to_global_locale
Karl Williamson [Fri, 12 Jul 2019 18:51:32 +0000 (12:51 -0600)]
Backport rsync_locale, switch_to_global_locale

Before these existed, they should be no-ops

(cherry picked from commit fbde8074e56bf0da478eb424c4bc9329ee48210b)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoBackport UVCHR_SKIP
Karl Williamson [Fri, 12 Jul 2019 18:42:26 +0000 (12:42 -0600)]
Backport UVCHR_SKIP

(cherry picked from commit bfe660f9f9775fc1cbbf1c5fd7ed809b3e4dd369)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoBackport UTF8_IS_INVARIANT, UVCHR_IS_INVARIANT
Karl Williamson [Fri, 12 Jul 2019 18:33:08 +0000 (12:33 -0600)]
Backport UTF8_IS_INVARIANT, UVCHR_IS_INVARIANT

(cherry picked from commit ad7eb4eca683a879c64475969870e5333e034e87)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/misc: Use parameters in #defines
Karl Williamson [Tue, 6 Aug 2019 22:40:12 +0000 (16:40 -0600)]
parts/inc/misc: Use parameters in #defines

Aliasing just the macro name does work, but saying
    #define FOO(c) BAR(c)
instead of
    #define FOO BAR

makes it easier for D:P to calculate the lowest release it provides
support for for these macros

(cherry picked from commit 71933851d906d58786a409f028f182c88d5812d9)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/misc: Comment, white-space only
Karl Williamson [Mon, 15 Jul 2019 18:14:46 +0000 (12:14 -0600)]
parts/inc/misc: Comment, white-space only

(cherry picked from commit e28c70d049c63a8d4272ea2bf5b8b22344a1d395)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoBackport isFOO_L1 macros
Karl Williamson [Fri, 12 Jul 2019 17:58:42 +0000 (11:58 -0600)]
Backport isFOO_L1 macros

These were already in handy.h

(cherry picked from commit a4b5164b07382058fbad34a3648e50691368c9d7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoBackport NATIVE_TO_LATIN1, and vice-versa
Karl Williamson [Fri, 12 Jul 2019 17:32:03 +0000 (11:32 -0600)]
Backport NATIVE_TO_LATIN1, and vice-versa

These are more accurate names than the original NATIVE_TO_ASCII, so
backport only these versions, to encourage their use.

Support only ASCII platforms in versions earlier than NATIVE_TO_ASCII
appeared in.

(cherry picked from commit 162b3fa5d025248e16c129ba4a4430567d7f4adf)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoMake sure newCONSTSUB gets included on early perls
Karl Williamson [Mon, 15 Jul 2019 21:23:20 +0000 (15:23 -0600)]
Make sure newCONSTSUB gets included on early perls

Otherwise functions that rely on it won't work.

(cherry picked from commit e139cb6c3b33fee6e7f100c55ab27223cf260c42)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/threads: Add hints
Karl Williamson [Tue, 6 Aug 2019 04:47:11 +0000 (22:47 -0600)]
parts/inc/threads: Add hints

(cherry picked from commit 5bc28160c8a5ea859054713667f051e47e46802d)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/mess: Don't 'provide' a porting test macro
Karl Williamson [Tue, 6 Aug 2019 04:49:01 +0000 (22:49 -0600)]
parts/inc/mess: Don't 'provide' a porting test macro

This macro is not for public consumptions, but only for porting tests.
Change so this file doesn't cause D:P to provide it.

(cherry picked from commit fdb67922468b8439f47c1c80bba2ad557bec5dc3)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/mess: Adjust prototype to match blead
Karl Williamson [Fri, 12 Jul 2019 17:22:40 +0000 (11:22 -0600)]
parts/inc/mess: Adjust prototype to match blead

(cherry picked from commit 129ae046bd633f28af9e86ab704b11d7342e2137)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/magic: Fix to run on early perls
Karl Williamson [Thu, 18 Jul 2019 18:38:15 +0000 (12:38 -0600)]
parts/inc/magic: Fix to run on early perls

No for postfix modifier; use numeric comparison for $]

(cherry picked from commit c0b235db11fc135c6da5f5b2890fa44bc1aad10c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/magic: Adjust prototype to match blead
Karl Williamson [Fri, 12 Jul 2019 17:22:12 +0000 (11:22 -0600)]
parts/inc/magic: Adjust prototype to match blead

(cherry picked from commit 692ec66c0bf83f43232d8a5b52d582346a6948d7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/variables: Grammar in comment
Karl Williamson [Thu, 4 Jul 2019 20:22:24 +0000 (14:22 -0600)]
parts/inc/variables: Grammar in comment

(cherry picked from commit b38f592c79e9cb96807bf04e902d04f5004a7914)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/uv: Adjust prototype to match blead
Karl Williamson [Fri, 12 Jul 2019 17:09:44 +0000 (11:09 -0600)]
parts/inc/uv: Adjust prototype to match blead

(cherry picked from commit b0b2502b166d7e41040ad14b557335014ded7f7c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/uv: Use > to compare $]
Karl Williamson [Tue, 9 Jul 2019 16:46:32 +0000 (10:46 -0600)]
parts/inc/uv: Use > to compare $]

(cherry picked from commit a54aebf6bde1ad7510f02a2e83b35658973c8994)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Symbols are not really for external use
Karl Williamson [Tue, 6 Aug 2019 22:53:37 +0000 (16:53 -0600)]
parts/inc/utf8: Symbols are not really for external use

This used __UNDEFINED__ to define a bunch of constants.  However, there
is nothing backported that allows the user to specify any of these, so
there is no need for them to be publicly accessible.  And, if something
is important enough to be backported, it ought to be documented.  These
symbols should not be documented, so __UNDEFINED__ is not the proper way
to deal with them.

(cherry picked from commit 359209af4e95548cbd7291128549ce2071e8e555)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Add hint for utf8_to_uvchr()
Karl Williamson [Sun, 21 Jul 2019 18:17:58 +0000 (12:17 -0600)]
parts/inc/utf8: Add hint for utf8_to_uvchr()

And a Replace pragma

(cherry picked from commit 56f6e61be8269a8a7959eae3e75dd8fbd2976aa6)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Fix typo in comment
Karl Williamson [Sat, 20 Jul 2019 20:22:59 +0000 (14:22 -0600)]
parts/inc/utf8: Fix typo in comment

(cherry picked from commit d93ef4febe6f8e62de50dfe22f0b9c80b47ec967)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Fix hints for is_ascii_string
Karl Williamson [Sat, 20 Jul 2019 20:19:48 +0000 (14:19 -0600)]
parts/inc/utf8: Fix hints for is_ascii_string

This hint was the wrong thing.  We really want it to come out for the
API functions we want to caution about.

(cherry picked from commit 4931fb4d1f76616701bcb786949827409cde1e09)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Use numeric comparisons with $]
Karl Williamson [Wed, 10 Jul 2019 04:25:58 +0000 (22:25 -0600)]
parts/inc/utf8: Use numeric comparisons with $]

The string ones failed on 5.4.3

(cherry picked from commit 961d99e3be46e3bca016afb899440028e7e734e6)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Fix for loops to work on early perls
Karl Williamson [Wed, 10 Jul 2019 04:23:59 +0000 (22:23 -0600)]
parts/inc/utf8: Fix for loops to work on early perls

You can't use a for statement modifier, nor declare a variable as part
of the for statement.

(cherry picked from commit 5ebfad4758132f28a11b3a5c1e58c9c0c8bc3a30)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Fix utf8_to_uvchr_buf for 5.7.0
Karl Williamson [Tue, 9 Jul 2019 22:56:21 +0000 (16:56 -0600)]
parts/inc/utf8: Fix utf8_to_uvchr_buf for 5.7.0

It turns out that 5.6.1 is more advanced than 5.7.0.  So this commit
uses a further check to decide if it can use a substitute function that
provides decent error checking, or if it has to fall back to one that
doesn't.

(cherry picked from commit 8e3920d656441ef0ba0a5dcef98c1064aab26412)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: make sure var is def'd before using
Karl Williamson [Tue, 9 Jul 2019 22:54:08 +0000 (16:54 -0600)]
parts/inc/utf8: make sure var is def'd before using

I'm not sure that this makes a difference, but it's cleaner to not

 #define foo bar

if bar isn't defined.

(cherry picked from commit 686eafa088d7b41bc630e6889cbe546a46e8b366)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/utf8: Wrap qr in string eval
Karl Williamson [Tue, 9 Jul 2019 17:09:24 +0000 (11:09 -0600)]
parts/inc/utf8: Wrap qr in string eval

Very early perls fail to compile this because qr doesn't exist and is
viewed as a syntax error, even though the tests don't get executed.

(cherry picked from commit 682fa53f57973b5a263c3b6742a54fa90d7995b6)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/sv_xpvf: Adjust prototype to match blead
Karl Williamson [Fri, 12 Jul 2019 17:08:24 +0000 (11:08 -0600)]
parts/inc/sv_xpvf: Adjust prototype to match blead

(cherry picked from commit b022731d60d59e7719049671ae04d798158205c9)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/Sv_set: Fix to work with early perls
Karl Williamson [Tue, 9 Jul 2019 17:53:32 +0000 (11:53 -0600)]
parts/inc/Sv_set: Fix to work with early perls

You can't have a for () modifier after a statement, and need to use
numeric comparisions with $]

(cherry picked from commit 4ab672ea5af5ec2a1e561d02941b4582d68dad6c)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/sprintf: Add Warning, Replace: pragma
Karl Williamson [Thu, 4 Jul 2019 20:24:15 +0000 (14:24 -0600)]
parts/inc/sprintf: Add Warning, Replace: pragma

This really shouldn't be used; instead snprintf()

(cherry picked from commit c36539f5e553c48412c1d4a770359097c3070f6e)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/shared_pv: Adjust prototype to match blead
Karl Williamson [Fri, 12 Jul 2019 17:07:46 +0000 (11:07 -0600)]
parts/inc/shared_pv: Adjust prototype to match blead

(cherry picked from commit 3346d69075fdaaa1344ececa15483c0ccb9ec170)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/misc: Remove extraneous ord() calls
Karl Williamson [Fri, 12 Jul 2019 17:44:58 +0000 (11:44 -0600)]
parts/inc/misc: Remove extraneous ord() calls

(cherry picked from commit 0257260a82e7924470d25bd227890d991a973fb5)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/misc: Shorten sub names
Karl Williamson [Thu, 11 Jul 2019 22:16:42 +0000 (16:16 -0600)]
parts/inc/misc: Shorten sub names

These all had an unnecessary prefix that was to prevent name space
collisions, but the infrastructure of D:P already took care of that.

(cherry picked from commit d8d82913b626ad2f6c5179d4a95b26fe52048a70)
Signed-off-by: Nicolas R <atoomic@cpan.org>
20 months agoparts/inc/misc: Can't use GCC brace groups before 5.4
Karl Williamson [Wed, 10 Jul 2019 04:19:27 +0000 (22:19 -0600)]
parts/inc/misc: Can't use GCC brace groups before 5.4

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