| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Inversion lists are a type of SV, but aren't really convertible to other
types, nor has there been a need to. But it makes things more
convenient for a future commit to allow one to just clobber whatever is
in an SV and replace it with an inversion list.
Even after this commit, there are restrictions to what the SV can have
that gets clobbered. But this is a step towards more generality
|
|
|
|
|
| |
This will allow it to clone into an existing SV instead of always
creating a new one.
|
|
|
|
| |
This is in preparation for it to be called from outside this file
|
|
|
|
| |
This parameter can only be NULL until a future commit
|
|
|
|
| |
This is in preparation for it to be called from a second place
|
|
|
|
|
| |
This makes one less place that has to know certain details. Since the
function is inline, there should be no change in the compiled code
|
| |
|
|
|
|
| |
This hides an internal detail
|
|
|
|
|
| |
This is because the code using them has been moved to regcomp.c
in cef721997e14497f2fbc4be17ab736ad7ddfda29
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
User-defined \p{} properties can be referred to in a regex pattern
compilation before their definition is encountered. This is supposed to
work, and their definitions get compiled when needed at run-time. But
there was only one test that this worked. This commit restructures
things so that every user-defined property is compiled into a pattern
before its definition is known, and also into another pattern after its
definition is known.
This removes the need to special case the earlier single one that did
this test.
|
|
|
|
|
| |
This is based on knowledge of how the code works, to stress it a little
more.
|
|
|
|
|
| |
This changes the logic to not do a 'like' unless we know that the
operand is a valid pattern.
|
| |
|
|
|
|
| |
This is in preparation for it to be called from a 2nd place
|
|
|
|
|
| |
Indent some lines that a future commit will surround with a block,
and outdent others where a block will be removed
|
|
|
|
|
| |
They evaluate to the same thing, but this change emphasizes that only
ASCII characters can pass.
|
|
|
|
| |
This makes it clearer what variable this length is for
|
| |
|
| |
|
|
|
|
|
|
| |
Prior to this commit, Windows machines which format %e to have a minimum
of 3 digits would fail in looking up the Numeric value properties, and
would revert to the old swash method of doing it.
|
|
|
|
|
|
|
| |
C99 says there shouldn't be more than 2 digits in an exponent unless
needed. But Windows uses three. This messes some stuff up that is
expecting two. Change to remove leading zeros so that only two digits
are used. This allows mktables to properly operate on Windows.
|
|
|
|
|
|
|
| |
[DELTA]
1.33 2018-08-18
- Allow objects in overloaded methods
|
| |
|
|
|
|
| |
Addressing RT 133382.
|
| |
|
|
|
|
|
| |
This adds more concrete cases of how mixed script digits can be
hazardous.
|
|
|
|
|
|
|
|
| |
This does not have a ticket, but was pointed out in
http://nntp.perl.org/group/perl.perl5.porters/251870
The logic for deciding if it was needed to check if a character is a
digit was flawed.
|
|
|
|
|
| |
This commit #defines a macro and uses it, which makes the code easier to
understand.
|
|
|
|
|
| |
The expression as a whole is unlikely to be true, not just the portion
that was marked so.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes to use Perl_strtod() when available, and that turns out to
be the key to fixing this bug.
S_mulexp10() is removed from embed.fnc to avoid repeating the
complicated prerequisites for defining Perl_strtod(). This works
because this static function already was defined before use in
numeric.c, and always called in full form without using a macro.
James Keenan fixed a file permissions problem originally introduced by
this commit, but the fix has been squashed into it.
|
|
|
|
|
|
|
| |
There are bugs in strtold().
James Keenan fixed a file permissions problem originally introduced by
this commit, but the fix has been squashed into it.
|
|
|
|
| |
The previous commit now has these respect locale
|
|
|
|
|
|
|
|
|
|
| |
For readability, this changes
if (f00) { MANY LINES } else { FEW LINES }
to
if (! f00) { FEW LINES } else { MANY LINES }
|
|
|
|
| |
Remove trailing blanks, add a few blank lines
|
|
|
|
|
| |
Previously the code compiled under quadmath did not bother to check for
locale. Fixing this was a simple matter of a little rearrangement.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When passed a floating point atime/mtime value, T::HR::utime()
was converting it into two longs: secs and nsec. But the nanosec value
was calculated using a final NV to long cast, which truncates any
fractional part rather than rounding to nearest. Use a 0.5 addition to
force rounding.
This was manifesting as a test in lib/File/Copy.t failing to preserve
the same mtime after a couple of round trips with utime() and stat().
In particular, the test was attempting to set an mtime to the literal
floating-point value
1000000000.12345
This value can't be represented exactly as an NV, so was actually
(under -Dquadmath)
1000000000.1234499999999999999999999568211720247320
which was (using truncation) being converted into the two sec/nsec
longs:
1000000000, 123449999
After this commit, it instead correctly gets converted to
1000000000, 123450000
|
| |
|
| |
|
|
|
|
|
| |
Itanium in not "new". It is newer than PA-RISC though, and PA-RISC is
getting rarer
|
|
|
|
|
| |
• Porting center released 5.28.0 :)
• EOL matrix link was dead
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test script sets a repeating interval timer going, and after 4
'ticks' (SIGVTALRM), disables the timer (by setting it to zero).
The main loop which does CPU burning, does a getitmer() every now and
again, and when the value is zero, assumes the signal handler has
disabled the timer, and so finishes.
The trouble was that it was checking the 'time left', which can reach
zero because the interval timer has counted down to zero, and the signal
handler is about to be called, but the interval hasn't been reset back
to 0.4s yet.
i.e. the code doesn't distinguish between "timer disabled" and "timer
just reached zero".
In that scenario, the cleanup code in the test script disables the
SIGVTALRM handler while the timer is still active, and so the process
gets killed if another signal is raised.
This commit changes the test to check the second value returned by
getitmer() for being zero rather than the first - the second being the
repeat interval, whichb is always 0.4 until the timer is disabled.
|
|
|
|
| |
These generate git warnings
|
|
|
|
|
| |
This moves calculations definitely to compile time; some optimizing
compilers may already do this, but some may not.
|
|
|
|
|
|
| |
There are two return flags signalling that the input UTF-8 was malformed
by being too short. This commit adds detail comparing and contrasting
the meanings of the two
|