| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The previous commit added a convenient place to create a symbol to
indicate that the UTF-8 on this platform includes Perl's nearly-double
length extension. The platforms this isn't needed on are 32-bit ASCII
ones. This symbol allows removing one place where EBCDIC need
be considered, and future commits will use it as well.
|
|
|
|
|
|
| |
The previous commit removed a macro that the comments for this refer to
in explaining its derivation. So use an alternative, that is actually
clearer.
|
|
|
|
|
|
|
| |
Now that previous commits have made it fast to find the position of the
first set bit in a word, we can use a forumla to find how many bytes the
UTF-8 of that will occupy. This allows for simplification of this
macro, removing several conditionals
|
|
|
|
|
|
|
|
|
|
| |
This macro will calculate at compile time, if passed a compile-time
constant, how many UTF-8 bytes are required to represent the parameter.
The macro is a helper which works fine except for edge cases, which a
wrapper is needed to handle.
The commit changes one instance to use this new macro
|
|
|
|
|
|
|
| |
This moves a #define into the common code for ASCII and EBCDIC machines.
It adds a bunch of comments about the value that I wish I hadn't had to
figure out for myself.
|
|
|
|
|
|
| |
This macro has a corresponding, older, name for the non-UTF-8 case. It
makes sense to use the same paradigm, and move the definitions together
so that the comments for one don't have to be repeated for the other.
|
|
|
|
|
| |
A symbol introduced in a previous commit allows this internal macro to
only need a single version, suitable for either EBCDIC or ASCII.
|
|
|
|
| |
This is then used in regcomp.c to avoid an #ifdef EBCDIC
|
|
|
|
|
| |
This info is needed in one other place; doing it here means only
specifying it once.
|
|
|
|
|
| |
This is more clearly named for various uses in this file. It has an
unwieldy length, but is unlikely to be used outside it.
|
|
|
|
|
|
|
|
| |
A slight change to this very low level macro (hence called a lot)
removes the need for a conditional, and causes it to work on single-byte
UTF-8 characters on ASCII platforms.
The definition is also moved to a more logical place in the file
|
|
|
|
| |
This is now defined before first use
|
|
|
|
|
|
| |
Future commits would otherwise make the expansion of this macro too
complicated for some C compilers. Use a less general internal helper
function to avoid that.
|
|
|
|
|
|
|
|
|
|
|
| |
A couple of commits ago improved the generated output of this script.
This builds on that. The improvements were to try a transform that
could lead to fewer conditionals, as bytes were greouped in fewer
ranges.
But that introduced a useless transformation for the single element
ranges that remain. This commit removes the transformation if not
needed.
|
|
|
|
| |
This is in preparation for a future commit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UTF-8 has some desirable characteristics not shared by UTF-EBCDIC. One
example is all the continuation bytes are in a single range.
By transforming a UTF-EBCDIC byte into I8 (similar to UTF-8), we gain
those characteristics, and may be able to save a conditional or three.
This commit creates a 2nd pass over the bytes that are to be matched,
transforming them into I8. If that pass results in fewer conditionals
than the traditional, native, generated code, use the fewer result.
This saves quite a bit in some of the generated code, enabling the
quotemeta macro to be represented in a single part; previously it had to
be split to avoid compiler macro size limits.
|
|
|
|
| |
A future commit will put a block around this; indent now.
|
|
|
|
| |
These will be used in a future commit
|
|
|
|
|
|
|
| |
A future commit will pass this function data that shouldn't be
translated into a mnemonic, like 'f' for the letter f. The reason is
that that code will potentially be executed on a machine with a
different character set than what the mnemonic would be valid for.
|
|
|
|
| |
A future commit will use this differently than the current name implies
|
|
|
|
|
| |
This moves a loop earlier in the execution path. This will be useful in
a later commit
|
| |
|
| |
|
|
|
|
|
| |
We can short circuit some work by moving the test earlier. This does
not change the generated file.
|
| |
|
|
|
|
| |
This will make future commits read better.
|
| |
|
|
|
|
|
| |
We can save another conditional by adding a default: case to the switch
statement created by the previous commit.
|
|
|
|
|
| |
By using a switch statement this function can be cut in half, with fewer
conditionals executed.
|
| |
|
| |
|
|
|
|
|
| |
By converting to a switch statement with fall through, some
redundancies can be removed and conditionals avoided.
|
| |
|
| |
|
|\ |
|
|/
|
|
|
|
| |
Add test cases for gethost.
For: https://github.com/Perl/perl5/issues/19017
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From upstream CHANGELOG:
* Explicitly declared strictures and warnings everywhere (to support
-Dusedefaultstrict perls)
* Makefile.PL fixes
* Unicode support on all supported versions of Perl
* Full strict and warnings cleanliness
* Packaging cleanups
* Removal of reference benchmark from test suite (moved to xt/bench)
Committer: Manual verification of the procedure Aristotle used in
https://github.com/Perl/perl5/pull/19026.
|
|
|
|
|
|
| |
Because (i) the CPAN contributor who is releasing this distribution
upstream and (ii) the EXCLUDED condition has changed, we need to
manually edit this file before running Porting/sync-with-cpan.
|
|\
| |
| |
| | |
For: https://github.com/Perl/perl5/pull/19025
|
| |\
|/ /
| |
| | |
https://github.com/ap-contrib/perl5 into ap-contrib-sync-with-cpan-weird-distnames
|
| |
| |
| |
| |
| |
| | |
This was failing to map new Text::Tabs releases properly because its
distname is Text-Tabs+Wrap and interpolating it into a pattern without
quoting causes the `+` to be misinterpreted as a quantifier.
|
|/
|
|
|
|
|
|
|
|
| |
Previously, the shared interpreter would be recreated every time the
bootstrap was run, in the assumption that the bootstrap would only be
run once. This assumption isn't necessarily true if multiple non-cloned
interpreters exist.
Theoretically there's still a race condition around initialization, but
I'm not particularly worried about that.
|
|
|
|
|
|
| |
Casting (unsigned) long value to 'double' might cause unnecessary
loss of precision if double's significand is not enough wide to preserve
(unsigned) long and NV is configured to be wider than double.
|
|
|
|
|
|
|
| |
This was causing smokes to fail:
$ PERLIO=stdio ./perl -Ilib cpan/Text-Tabs/t/dnsparks.t
-T and -B not implemented on filehandles at cpan/Text-Tabs/t/dnsparks.t line 130
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It turns out gcc wasn't warning on this code, but older gcc (as
included in debian buster) *does* warn on the switch which it
doesn't recognise.
Newer gcc does recognise the -Wstring-compare switch, but it controls
warning on a different construct, so there's no reason to present it
to gcc.
|
|\ |
|
| | |
|
| | |
|