This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
James E Keenan [Mon, 3 Sep 2018 22:05:27 +0000 (18:05 -0400)]
Correct typo in comment.
James E Keenan [Mon, 3 Sep 2018 17:58:27 +0000 (13:58 -0400)]
There is no getpw() function in User::grent.
Documentation should refer to getgr(), per report from Elizabeth
Mattijsen.
Increment $VERSION.
For: RT 133217
James E Keenan [Mon, 3 Sep 2018 17:54:10 +0000 (13:54 -0400)]
Remove superfluous variable $gr_mem.
Per recommendation by Elizabeth Mattijsen.
For: RT 133217
James E Keenan [Mon, 3 Sep 2018 17:52:38 +0000 (13:52 -0400)]
Correct typo reported by Elizabeth Mattijsen
For: RT 133217
Karl Williamson [Sun, 2 Sep 2018 13:59:45 +0000 (07:59 -0600)]
PATCH: [perl #133488] Fix grammer in perlfunc sysread()
Spotted by Axel Beckert
H.Merijn Brand [Sun, 2 Sep 2018 09:00:16 +0000 (11:00 +0200)]
Add gcc-8 and gcc-9 for FORTIFY_SOURCE
Andy Dougherty [Thu, 30 Aug 2018 16:02:22 +0000 (12:02 -0400)]
[perl #133468] Silence compiler warning
Commit
1a69c9a77a no longer uses S_invlist_set_len in ext/re/re_comp.c,
but didn't adjust embed.fnc accordingly. This patch moves that function
into the #ifndef PERL_EXT_RE_BUILD block in embed.fnc. It also
includes regenerated embed.h and proto.h files.
Chris 'BinGOs' Williams [Thu, 30 Aug 2018 07:56:51 +0000 (08:56 +0100)]
Can't sing a song that's never been sung
Tony Cook [Thu, 30 Aug 2018 05:35:13 +0000 (15:35 +1000)]
perldelta for
2460a4968c37
Tony Cook [Wed, 21 Feb 2018 05:24:08 +0000 (16:24 +1100)]
(perl #132683) don't try to convert PL_sv_placeholder into a CV
Constant folding sets PL_warnhook to PERL_WARNHOOK_FATAL, which is
&PL_sv_placeholder, an undef SV.
If warn() is called while constant folding, invoke_exception_hook()
attempts to use the value of a non-NULL PL_warnhook as a CV, which
caused an undefined value warning.
invoke_exception_hook() now treats a PL_warnhook of PERL_WARNHOOK_FATAL
the same as NULL, falling back to the normal warning handling which
throws an exception to abort constant folding.
David Mitchell [Wed, 29 Aug 2018 13:32:24 +0000 (14:32 +0100)]
multiconcat: mutator not seen in (lex = ...) .= ...
RT #133441
TL;DR:
(($lex = expr1.expr2) .= expr3) was being misinterpreted as
(expr1 . expr2 . expr3) when the ($lex = expr1) subtree had had the
assign op optimised away by the OPpTARGET_MY optimisation.
Full details.
S_maybe_multiconcat() looks for suitable chains of OP_CONCAT to convert
into a single OP_MULTICONCAT.
Part of the code needs to distinguish between (expr . expr) and
(expr .= expr). This didn't used to be easy, as both are just OP_CONCAT
ops, but with the OPf_STACKED set on the second one. But...
perl also used to optimise ($a . $b . $c) into ($a . $b) .= $c, to
reuse the padtmp returned by the $a.$b concat. This meant that an
OP_CONCAT could have the OPf_STACKED flag on even when it was a '.'
rather than a '.='.
I disambiguated these cases by seeing whether the top op in the LHS
expression had the OPf_MOD flag set too - if so, it implies '.='.
This fails in the specific case where the LHS expression is a
sub-expression which is assigned to a lexical variable, e.g.
($lex = $a+$b) .= $c.
Initially the top node in the LHS expression above is OP_SASSIGN, with
OPf_MOD set due to the enclosing '.='. Then the OPpTARGET_MY
optimisation kicks in, and the ($lex = $a + $b) part of the optree is
converted from
sassign sKPRMS
add[t4] sK
padsv[a$] s
padsv[$b] s
padsv[$lex] s
to
add[$lex] sK/TARGMY
padsv[a$] s
padsv[$b] s
which is all fine and dandy, except that the top node of that optree no
longer has the OPf_MOD flag set, which trips up S_maybe_multiconcat into
no longer spotting that the outer concat is a '.=' rather than a '.'.
Whether the OPpTARGET_MY optimising code should copy the OPf_MOD from
the being-removed sassign op to its successor is an issue I won't
address here. But in the meantime, the good news is that for 5.28.0
I added the OPpCONCAT_NESTED private flag, which is set whenever
($a . $b . $c) is optimised into ($a . $b) .= $c. This means that it's
no longer necessary to inspect the OPf_MOD flag of the first child to
disambiguate the two cases. So the fix is trivial.
Sawyer X [Mon, 27 Aug 2018 20:32:06 +0000 (23:32 +0300)]
Bumping PathTools from 3.74 to 3.75
Graham Knop [Mon, 27 Aug 2018 09:12:05 +0000 (11:12 +0200)]
fix mkpath call to be compatible with older File::Path
mkpath can be called multiple ways, but most aren't supported by very
old versions of File::Path. A prerequisite could be added on a newer
version of the module that that supports the new call signature, but
this introduces a circular dependency. While theoretically this
dependency should be resolvable, since the File::Spec prereq listed in
File::Path is version 0, some toolchains (in particular older CPAN.pm)
will fail to do so.
There isn't any particular advantage to using the new call signature, so
a simple solution is to adjust the test to use the older style.
Tony Cook [Tue, 7 Aug 2018 05:34:06 +0000 (15:34 +1000)]
(perl #133326) fix and clarify handling of recurs_sv.
There were a few problems:
- the purpose of recur_sv wasn't clear, I believe I understand it
now from looking at where recur_sv was actually being used.
Frankly the logic of the code itself was hard to follow, apparently
only counting a level if the recur_sv was equal to the current
SV.
Fixed by adding some documentation to recur_sv in the context
structure. The logic has been re-worked (see below) to hopefully
make it more understandable.
- the conditional checks for inc/decrementing recur_depth didn't
match between the beginnings and ends of the store_array() and
store_hash() handlers didn't match, since recur_sv was both
explicitly modified by those functions and implicitly modified
in their recursive calls to process elements.
Fixing by storing the starting value of cxt->recur_sv locally
testing against that instead of against the value that might be
modified recursively.
- the checks in store_ref(), store_array(), store_l?hash() were
over complex, obscuring their purpose.
Fixed by:
- always count a recursion level in store_ref() and store the
RV in recur_sv
- only count a recursion level in the array/hash handlers if
the SV didn't match.
- skip the check against cxt->entry, if we're in this code
we could be recursing, so we want to detect it.
- (after the other changes) the recursion checks in store_hash()/
store_lhash() only checked the limit if the SV didn't match the
recur_sv, which horribly broke things.
Fixed by:
- Now only make the depth increment conditional, and always
check against the limit if one is set.
David Mitchell [Sun, 26 Aug 2018 20:10:16 +0000 (21:10 +0100)]
[MERGE] various regex capture fixups
Improve the code and macros in S_regmatch() to make opening and closing
captures (groups) more consistent and simpler.
Shouldn't make any changes to behaviour apart from improved debugging
output.
David Mitchell [Sun, 19 Aug 2018 12:55:30 +0000 (13:55 +0100)]
Improve docs for lastparen, lastcloseparen
There's lots of confusion here, especially about lastparen - some of
the docs are just plain wrong.
David Mitchell [Sat, 18 Aug 2018 12:21:31 +0000 (13:21 +0100)]
S_regmatch: add debugging to UNWIND_PAREN()
(and tweak the debugging output of CLOSE_CAPTURE())
David Mitchell [Sat, 18 Aug 2018 11:49:12 +0000 (12:49 +0100)]
S_rematch(): CLOSE_CAPTURE(): set last(close)paren
Every use of the CLOSE_CAPTURE() macro is followed by the setting of
lastparen and lastcloseparen, so include these actions in the macro
itself.
David Mitchell [Sat, 18 Aug 2018 11:40:08 +0000 (12:40 +0100)]
S_regmatch(): use CLOSE_CAPTURE() macro more
This macro includes debugging output, so by using it rather than
setting rex->offs[paren].start/end directly, you get better debugging.
David Mitchell [Sat, 18 Aug 2018 11:28:31 +0000 (12:28 +0100)]
S_regmatch(): parameterise CLOSE_CAPTURE macro
Make its index and start+end values into parameters. This will shortly
allow its use in other places, bringing consistent code and debug logging
to the whole of S_regmatch().
David Mitchell [Sat, 18 Aug 2018 11:19:16 +0000 (12:19 +0100)]
S_regmatch(): move CLOSE_CAPTURE macro definition
Move this macro to earlier in the file to be with the other functions
and macros which deal with setting and restoring captures.
No changes (functional or textual) apart from the physical moving of the
13 lines.
David Mitchell [Thu, 16 Aug 2018 19:07:43 +0000 (20:07 +0100)]
S_regmatch(): handle GOSUB within (.)* specially
The (?n) mechanism allows you to 'gosub' to a subpattern delineated by
capture n. For 1-char-width repeats, such as a+, \w*?, (\d)*, then
currently the code checks whether it's in a gosub each time it attempts
to start executing the B part of A*B, regardless of whether the A is
in a capture.
This commit moves the GOSUB check to within the capture-only variant
(CURLYN), which then directly just looks for one instance of A and
returns. This moves the check away from more frequently called code
paths.
David Mitchell [Thu, 16 Aug 2018 18:24:23 +0000 (19:24 +0100)]
add more /(?1)/ tests
specifically, the code path wasn't being exercised where the gosub
goes to a capture which is a 1-char wide *non-greedy* repeat, such as
/ ... (\d)*? ... (?1) ... /
David Mitchell [Wed, 15 Aug 2018 17:02:53 +0000 (18:02 +0100)]
S_regmatch(): combine CURLY_B_min/_known states
There are currently two similar backtracking states for simple
non-greedy pattern repeats:
CURLY_B_min
CURLY_B_min_known
the latter is a variant of the former for when the character which must
follow the repeat is known, e.g. /(...)*?X.../, which allows quick
skipping to the next viable position.
The code for the two cases:
case CURLY_B_min_fail:
case CURLY_B_min_known_fail:
share a lot of similarities. This commit merges the two states into a
single CURLY_B_min state, with an associated single CURLY_B_min_fail
fail state.
That one code block can handle both types, with a single
if (ST.c1 == CHRTEST_VOID) ...
test to choose between the two variant parts of the code.
This makes the code smaller and more maintainable, at the cost of one
extra test per backtrack.
Sawyer X [Sun, 26 Aug 2018 12:13:14 +0000 (15:13 +0300)]
5.29.2 was released
Eugen Konkov [Sat, 25 Aug 2018 16:52:49 +0000 (10:52 -0600)]
perlsyn: Be more explicit about what is faster
This paragraph can lead to ambiguity because it uses at example `for`
keyword but then says: Perl executes a foreach statement more rapidly
than it would the equivalent **for** loop.
Steve Hay [Fri, 24 Aug 2018 14:52:17 +0000 (15:52 +0100)]
Steve Hay [Fri, 24 Aug 2018 14:38:01 +0000 (15:38 +0100)]
Tidy up Windows makefiles' handling of CCTYPE=SDK2003SP1
As noted in the comments at the top of each makefile, and again in the
README.win32, we only intended to support the 64-bit compiler, which was
the earliest MSVC x64 compiler available since neither VC6 nor VC7 had one.
Steve Hay [Fri, 24 Aug 2018 13:55:45 +0000 (14:55 +0100)]
Fix Windows build with CCTYPE=SDK2003SP1
The Platform SDK 2003 SP1 x64 compiler has _MSC_VER 1400 like MSVC80, but
doesn't define _configthreadlocale() in the /MD (MSVCRT.DLL) version of
the CRT used by perl. (Compare C:\Program Files\Microsoft Platform SDK for
Windows Server 2003 R2\src\crt\setlocal.c with C:\Program Files (x86)\
Microsoft Visual Studio 8\VC\crt\src\setlocal.c. The latter always defines
_configthreadlocale(), but the former only does so when _MT is defined.)
Karl Williamson [Thu, 23 Aug 2018 23:36:50 +0000 (17:36 -0600)]
PATCH: [perl #133468] Silence compiler warning
This inline function is no longer called from re_comp.c, so doesn't need
to be compiled there, as don't the surrounding functions
James E Keenan [Thu, 23 Aug 2018 15:01:33 +0000 (11:01 -0400)]
Remove duplicate of commented-out test.
Karl Williamson [Thu, 23 Aug 2018 15:00:13 +0000 (09:00 -0600)]
perldelta for Locale::Codes removal
Karl Williamson [Thu, 23 Aug 2018 14:59:31 +0000 (08:59 -0600)]
__Storable__.pm: Bump version to 3.13
Graham Knop [Mon, 7 May 2018 11:50:53 +0000 (13:50 +0200)]
fix Storable rethrowing refs when Log::Agent is installed
Storable rethrows errors from its hooks, STORABLE_freeze, STORABLE_thaw,
and STORABLE_attach. If those errors are refs, they should be preserved
in their original form. Tests were added to ensure this in 06f586d.
However, when Log::Agent is installed, Storable uses it rather than just
calling Carp::croak. Log::Agent's logcroak function always stringifies
the errors it gets when it throws them. This causes test failures in
many cases when the dual life dist is installed from CPAN.
This is a bug in Log::Agent, but since it is long standing behavior in a
non-core module, it's reasonable to work around it in Storable.
A simple workaround is to trap the error thrown by Log::Agent, and throw
the original arguments given to our logcroak.
Sawyer X [Wed, 8 Aug 2018 16:34:30 +0000 (19:34 +0300)]
Fix Devel::PPPort with Visual Studio by quoting $0:
The following was raised by A. Sinan Unur on p5p:
Recent versions of Devel::PPPort on Windows with Visual Studio built
`perl` fail tests in t\mess.t because $0 is interpolated into regex
patterns without the use of quotemeta[1].
In this case, $0 contains `\` as directory separators.
This is necessary, because nmake tries to interpret part of a filename
as a command line argument if it contains `/` characters.
An easy fix is to use \Q$0\E instead of plain $0 in patterns.
Here's a test report:
http://www.cpantesters.org/cpan/report/
e484fd2f-6c51-1014-9811-
fe131a8368d1
HTH,
-- Sinan
[1]: https://www.nu42.com/2014/11/youve-gotta-quotemeta.html
Link: http://nntp.perl.org/group/perl.perl5.porters/250734
James E Keenan [Sun, 19 Aug 2018 03:08:34 +0000 (23:08 -0400)]
Make porting tests pass after Locale::Codes removal
And remove references to it. This consists of:
1. Run ./perl -Ilib regen/lib_cleanup.pl.
2. Add links to Locale::Codes for podcheck
This distribution is now removed from the core, so podcheck can't
determine if they are valid or not without being told to do so.
This was accomplished by:
perl porting/podcheck.t --add_link Locale::Language
perl porting/podcheck.t --add_link Locale::Country
3. t/TEST: Remove Locale::Codes reference as it is no longer in core
4. Porting/corelist-perldelta.pl: Remove Locale::Codes, as it is no
longer in core
Sullivan Beck [Sun, 19 Aug 2018 02:12:56 +0000 (22:12 -0400)]
Remove Locale-Codes from Perl 5 core distribution.
For: RT 133458
Karl Williamson [Wed, 22 Aug 2018 02:54:48 +0000 (20:54 -0600)]
perlobj: Recommend perlreftut over perlref
This change was recommended by Ovid in 2018 TPCig
Karl Williamson [Wed, 15 Aug 2018 22:26:00 +0000 (16:26 -0600)]
regcomp.c: Silence compiler warning
This may actually be a problem at times. We need to cast to a boolean.
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 21:54:54 +0000 (22:54 +0100)]
Update epigraphs with v5.29.2
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 21:42:59 +0000 (22:42 +0100)]
Update Module::CoreList for 5.29.3
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 21:38:31 +0000 (22:38 +0100)]
Bump the perl version in various places for 5.29.3
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 21:23:53 +0000 (22:23 +0100)]
new perldelta for 5.29.3
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 21:16:25 +0000 (22:16 +0100)]
Merge branch 'release-5.29.2' into blead
Dagfinn Ilmari Mannsåker [Mon, 20 Aug 2018 19:52:16 +0000 (20:52 +0100)]
Fix missing space in perlguts C<< >> POD directive
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 19:11:35 +0000 (20:11 +0100)]
add new release to perlhist
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 19:06:57 +0000 (20:06 +0100)]
Update Module-CoreList for v5.29.2
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 19:01:06 +0000 (20:01 +0100)]
Finalise perldelta
Karl Williamson [Wed, 15 Aug 2018 21:22:03 +0000 (15:22 -0600)]
Make sv_setsv_flags accept an inversion list src
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
Karl Williamson [Wed, 15 Aug 2018 21:14:53 +0000 (15:14 -0600)]
Allow invlist_clone to accept a destination SV
This will allow it to clone into an existing SV instead of always
creating a new one.
Karl Williamson [Wed, 15 Aug 2018 21:07:20 +0000 (15:07 -0600)]
Make static function non-static
This is in preparation for it to be called from outside this file
Karl Williamson [Wed, 15 Aug 2018 20:32:31 +0000 (14:32 -0600)]
regcomp.c: Add second parameter to static function
This parameter can only be NULL until a future commit
Karl Williamson [Wed, 15 Aug 2018 20:02:57 +0000 (14:02 -0600)]
regcomp.c: Extract code into separate function
This is in preparation for it to be called from a second place
Karl Williamson [Wed, 15 Aug 2018 19:49:55 +0000 (13:49 -0600)]
regcomp.c: Replace code with fcn that does the same thing
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
Karl Williamson [Mon, 20 Aug 2018 04:36:32 +0000 (22:36 -0600)]
utf8.h: Update outmoded comment
Karl Williamson [Mon, 20 Aug 2018 04:35:29 +0000 (22:35 -0600)]
utf8.c: Rename macro and move to utf8.h, and use it in regcomp.c
This hides an internal detail
Karl Williamson [Mon, 20 Aug 2018 04:05:04 +0000 (22:05 -0600)]
invlist_inline.h: Two symbols no longer needed in utf8.c
This is because the code using them has been moved to regcomp.c
in
cef721997e14497f2fbc4be17ab736ad7ddfda29
Karl Williamson [Mon, 20 Aug 2018 04:01:09 +0000 (22:01 -0600)]
Add inline function to hide implementation details
Karl Williamson [Mon, 6 Aug 2018 23:12:08 +0000 (17:12 -0600)]
t/re/regexp_unicode_prop.t: Add tests for run-time
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.
Karl Williamson [Mon, 6 Aug 2018 22:57:20 +0000 (16:57 -0600)]
t/re/regexp_unicode_prop.t: Reorder a few tests
This is based on knowledge of how the code works, to stress it a little
more.
Karl Williamson [Mon, 6 Aug 2018 22:53:23 +0000 (16:53 -0600)]
t/re/regexp_unicode_prop.t: Avoid a TEST crash if failure
This changes the logic to not do a 'like' unless we know that the
operand is a valid pattern.
Karl Williamson [Mon, 6 Aug 2018 22:47:59 +0000 (16:47 -0600)]
t/re/regexp_unicode_prop.t: Add check no warnings generated
Karl Williamson [Mon, 6 Aug 2018 22:46:37 +0000 (16:46 -0600)]
t/re/regexp_unicode_prop.t: Extract code into a function
This is in preparation for it to be called from a 2nd place
Karl Williamson [Mon, 6 Aug 2018 22:37:32 +0000 (16:37 -0600)]
t/re/regexp_unicode_prop.t: White-space only
Indent some lines that a future commit will surround with a block,
and outdent others where a block will be removed
Karl Williamson [Tue, 31 Jul 2018 04:11:52 +0000 (22:11 -0600)]
regcomp.c: Use isFOO_A instead of isFOO
They evaluate to the same thing, but this change emphasizes that only
ASCII characters can pass.
Karl Williamson [Tue, 31 Jul 2018 03:26:32 +0000 (21:26 -0600)]
regcomp.c: Change parameter name
This makes it clearer what variable this length is for
Karl Williamson [Mon, 9 Jul 2018 21:59:16 +0000 (15:59 -0600)]
inline.h: Use 'do {} while' instead of 'while {}'
Karl Williamson [Wed, 15 Aug 2018 19:55:43 +0000 (13:55 -0600)]
t/re/regexp_unicode_prop.t: Make sure returns true
Karl Williamson [Wed, 15 Aug 2018 22:33:58 +0000 (16:33 -0600)]
Handle 3 digit exponents in \p{nv=%e}
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.
Karl Williamson [Wed, 15 Aug 2018 21:18:06 +0000 (15:18 -0600)]
mktables: Handle platforms with 3 digit exponents
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.
Chris 'BinGOs' Williams [Mon, 20 Aug 2018 10:15:20 +0000 (11:15 +0100)]
Update Time-Piece to CPAN version 1.33
[DELTA]
1.33 2018-08-18
- Allow objects in overloaded methods
James E Keenan [Sat, 18 Aug 2018 00:19:49 +0000 (20:19 -0400)]
Chad Granum [Sat, 18 Aug 2018 00:02:40 +0000 (20:02 -0400)]
Synch with CPAN Test-Simple 1.302140.
Addressing RT 133382.
Karl Williamson [Thu, 16 Aug 2018 22:48:05 +0000 (16:48 -0600)]
perlre: Add some clarifying script run documentation
Karl Williamson [Thu, 16 Aug 2018 22:27:52 +0000 (16:27 -0600)]
perlre, perlrecharclass: Add examples
This adds more concrete cases of how mixed script digits can be
hazardous.
Karl Williamson [Thu, 16 Aug 2018 22:14:01 +0000 (16:14 -0600)]
Fix script run bug '1' followed by Thai digit
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.
Karl Williamson [Thu, 16 Aug 2018 21:08:27 +0000 (15:08 -0600)]
regexec.c: Use a macro for clarity
This commit #defines a macro and uses it, which makes the code easier to
understand.
Karl Williamson [Thu, 16 Aug 2018 20:54:23 +0000 (14:54 -0600)]
regexec.c: Fix UNLIKELY() scope
The expression as a whole is unlikely to be true, not just the portion
that was marked so.
Sawyer X [Sat, 11 Aug 2018 19:24:51 +0000 (22:24 +0300)]
Releaser for 5.29.2
sisyphus [Wed, 1 Aug 2018 12:33:38 +0000 (22:33 +1000)]
PATCH: [perl #41202] text->float gives wrong answer
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.
sisyphus [Wed, 1 Aug 2018 12:32:00 +0000 (22:32 +1000)]
perl.h - mingw-w64 builds use __mingw_strtold instead of strtold
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.
sisyphus [Wed, 1 Aug 2018 12:29:57 +0000 (22:29 +1000)]
lib/locale.t - no longer special case quadmath builds
The previous commit now has these respect locale
Karl Williamson [Wed, 8 Aug 2018 17:23:31 +0000 (11:23 -0600)]
numeric.c: Move some code around
For readability, this changes
if (f00) { MANY LINES } else { FEW LINES }
to
if (! f00) { FEW LINES } else { MANY LINES }
Karl Williamson [Wed, 8 Aug 2018 17:22:09 +0000 (11:22 -0600)]
numeric.c: White-space only
Remove trailing blanks, add a few blank lines
Karl Williamson [Wed, 8 Aug 2018 17:20:01 +0000 (11:20 -0600)]
numeric.c: Quadmath now honors LC_numeric
Previously the code compiled under quadmath did not bother to check for
locale. Fixing this was a simple matter of a little rearrangement.
Tony Cook [Wed, 8 Aug 2018 04:21:33 +0000 (14:21 +1000)]
(perl #133422) handle Off_t smaller than size_t
David Mitchell [Fri, 27 Apr 2018 11:43:44 +0000 (12:43 +0100)]
time::HiRes: don't truncate nanosec utime
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
Steve Hay [Wed, 8 Aug 2018 13:04:52 +0000 (14:04 +0100)]
Upgrade HTTP::Tiny from version 0.070 to 0.076
Steve Hay [Wed, 8 Aug 2018 13:02:38 +0000 (14:02 +0100)]
Upgrade Filter::Util::Call from version 1.58 to 1.59
H.Merijn Brand [Wed, 8 Aug 2018 13:58:07 +0000 (15:58 +0200)]
PA-RISC is obsolted
Itanium in not "new". It is newer than PA-RISC though, and PA-RISC is
getting rarer
H.Merijn Brand [Wed, 8 Aug 2018 12:51:25 +0000 (14:51 +0200)]
Update HP-UX readme
• Porting center released 5.28.0 :)
• EOL matrix link was dead
David Mitchell [Tue, 7 Aug 2018 11:26:31 +0000 (12:26 +0100)]
Time-HiRes/t/itimer.t: avoid race condition.
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.
Karl Williamson [Mon, 6 Aug 2018 15:58:46 +0000 (09:58 -0600)]
dump.c: Fix space before tabs
These generate git warnings
Karl Williamson [Sun, 5 Aug 2018 12:41:05 +0000 (06:41 -0600)]
Use sv_catpvs where appropriate vs sv_catpv
This moves calculations definitely to compile time; some optimizing
compilers may already do this, but some may not.
Karl Williamson [Sat, 4 Aug 2018 19:19:58 +0000 (13:19 -0600)]
perlapi: Fix up pod for utf8n_to_uvchr_error()
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
Karl Williamson [Sat, 4 Aug 2018 19:15:58 +0000 (13:15 -0600)]
perlapi: Fix up SV handling pod
The pod for this has gotten screwed up over the releases, with a section
entitled SV-Body Allocation containing a bunch of SV manipulation
functions, and another section with that name containing still more with
no real rhyme or reason as to why one would be in one vs the other. And
one function was in both places. This commit consolidates all these
into one section entitled "SV Manipulation Functions"
Karl Williamson [Sat, 4 Aug 2018 19:13:32 +0000 (13:13 -0600)]
perlapi: Clarify sv_insert()
Karl Williamson [Sat, 4 Aug 2018 19:11:52 +0000 (13:11 -0600)]
regcomp.c: Add comments
Karl Williamson [Sat, 4 Aug 2018 19:09:43 +0000 (13:09 -0600)]
perlunicode: Clarifiy user-defined props
Karl Williamson [Fri, 3 Aug 2018 19:27:47 +0000 (13:27 -0600)]
perl.h: Use TAINT_get, instead of PL_tainting.
The former is designed to be compilable out.