This is a live mirror of the Perl 5 development currently hosted at
9 years agoperldelta for Safe changes
Peter Martini [Wed, 20 Aug 2014 04:53:26 +0000 (00:53 -0400)]
perldelta for Safe changes

Safe was bumped to 2.38 after a mechanism to replace subs was
discovered and fixed.

9 years agoperldelta for 57d69a4
Peter Martini [Wed, 20 Aug 2014 04:33:49 +0000 (00:33 -0400)]
perldelta for 57d69a4

HTTP::Tiny version bump

9 years agoperldelta for f4ef132
Peter Martini [Wed, 20 Aug 2014 04:31:07 +0000 (00:31 -0400)]
perldelta for f4ef132

defined(AASSIGN) is not fatalized

9 years agoperldelta for 60df683
Peter Martini [Wed, 20 Aug 2014 04:16:34 +0000 (00:16 -0400)]
perldelta for 60df683

Config::Perl::V version bump

9 years agoperldelta for 5f8324b
Peter Martini [Wed, 20 Aug 2014 04:14:32 +0000 (00:14 -0400)]
perldelta for 5f8324b

CPAN::Meta version bump

9 years agoperldelta for 54b7cb3
Peter Martini [Wed, 20 Aug 2014 04:13:22 +0000 (00:13 -0400)]
perldelta for 54b7cb3

Delta for CPAN::Meta::Requirements version bump

9 years agoperldelta for 438f0014a812, revised
Peter Martini [Wed, 20 Aug 2014 03:59:06 +0000 (23:59 -0400)]
perldelta for 438f0014a812, revised

It was actually 1.19 to 1.21, missed the earlier one.

9 years agoperldelta for 438f0014a812
Peter Martini [Wed, 20 Aug 2014 03:55:46 +0000 (23:55 -0400)]
perldelta for 438f0014a812

9 years agoperldelta for jhi double/float work
Peter Martini [Wed, 20 Aug 2014 03:48:48 +0000 (23:48 -0400)]
perldelta for jhi double/float work

9 years agoperldelta for 4cedf205aa6e
Peter Martini [Wed, 20 Aug 2014 02:58:33 +0000 (22:58 -0400)]
perldelta for 4cedf205aa6e

9 years agoperldelta for 3699825258c
Peter Martini [Wed, 20 Aug 2014 02:40:08 +0000 (22:40 -0400)]
perldelta for 3699825258c

9 years agoperldelta typo fix: change a ',' to a '.'
Peter Martini [Wed, 20 Aug 2014 02:16:52 +0000 (22:16 -0400)]
perldelta typo fix: change a ',' to a '.'

9 years agoRevert Test::Builder changes in prep for 5.21.3
Peter Martini [Wed, 20 Aug 2014 01:23:39 +0000 (21:23 -0400)]
Revert Test::Builder changes in prep for 5.21.3

This reverts commit 6bdb88770f849c47b5c09e733ac460ce3e9dbc97
and commit 59c96aebdd56baf5d1979103046b1c6d4e308aa2, which
are causing the test suite to run much slower and which are
failing on some platforms. has
further details, with RT 122538 being the ticket number.

9 years agospelling: till -> until
Karen Etheridge [Wed, 20 Aug 2014 00:21:09 +0000 (17:21 -0700)]
spelling: till -> until

9 years agodocument what version \K was added in
Karen Etheridge [Wed, 20 Aug 2014 00:20:01 +0000 (17:20 -0700)]
document what version \K was added in

9 years agoWhen cross-compiling, copy cpan/Module-Metadata/
Brian Fraser [Tue, 29 Jul 2014 18:30:44 +0000 (20:30 +0200)]
When cross-compiling, copy cpan/Module-Metadata/

cpan/Module-Metadata/t/encoding.t needs some files in the
distribution to pass.

9 years agoFix finite/finitel/isfinite in
Craig A. Berry [Tue, 19 Aug 2014 11:53:42 +0000 (06:53 -0500)]
Fix finite/finitel/isfinite in

VMS has had these for a very long time but we haven't been
admitting it.  Spotted by Jarkko.

9 years agoUpdate blead to Test::Builder alpha 40
Chad Granum [Mon, 18 Aug 2014 21:04:14 +0000 (14:04 -0700)]
Update blead to Test::Builder alpha 40

Fixes performance issues
Fixes a test failure specific to certain utf8 conditions
Fixes a broken win32+fork test

Committer's notes: 2nd Test-Simple patch applied;
corresponds to $Test::Simple::VERSION 1.301001_040

9 years agoperldelta for b5b6210a9/#46947
Father Chrysostomos [Mon, 18 Aug 2014 00:26:47 +0000 (17:26 -0700)]
perldelta for b5b6210a9/#46947

9 years agoInclude longdblkind in perl -V output.
Jarkko Hietaniemi [Sun, 17 Aug 2014 20:47:01 +0000 (16:47 -0400)]
Include longdblkind in perl -V output.

9 years agoComment tweaks.
Jarkko Hietaniemi [Sun, 17 Aug 2014 17:51:01 +0000 (13:51 -0400)]
Comment tweaks.

9 years agoLittle-endian double-double detection was wrong.
Jarkko Hietaniemi [Sun, 17 Aug 2014 17:50:08 +0000 (13:50 -0400)]
Little-endian double-double detection was wrong.

9 years agoAdd quadruple precision tests, verified by Craig Berry.
Jarkko Hietaniemi [Sun, 17 Aug 2014 14:00:06 +0000 (10:00 -0400)]
Add quadruple precision tests, verified by Craig Berry.

Also tentatively adding double-double tests, but those are probably bogus.

Also comment tweaks.

9 years agoSeparate the extraction of hex values.
Jarkko Hietaniemi [Sat, 16 Aug 2014 15:27:52 +0000 (11:27 -0400)]
Separate the extraction of hex values.

This way we can call it twice: first to count the size of output (and
sanity check the extraction indices), and the second time to actually
extract.  Otherwise with bad extraction code we will smash the stack.

Furthermore, this makes for cleaner code since the large #ifdef forest
(about differing long double formats, and different uv/nv/quad sizes)
is moved within the helper function.

Furthermore: IEEE 754 128-bit extraction was extracting wrong:
we need only the mantissa bits, and in the right nybble order.

Last but not least, handle the 'implicit bit' of IEEE 754 quadruple
and double-double (but which is explicitly *not* in the 80-bit format).
(If we handled the standard 64-bit format by explicit byte extraction,
instead of frexp+ldexp the hidden bit would be needed there, too.)

9 years agoUpdate to include latest Test::Builder alpha
Chad Granum [Fri, 15 Aug 2014 15:40:10 +0000 (08:40 -0700)]
Update to include latest Test::Builder alpha

Also updated some tests that the new builder broke

9 years agoUpdate exp_name in toke.c, following b5b6210a976
Father Chrysostomos [Sat, 16 Aug 2014 04:52:12 +0000 (21:52 -0700)]
Update exp_name in toke.c, following b5b6210a976


$  ./miniperl -DT -e 'undef'
### <== UNIOP(ival=op_undef)

### 1:LEX_NORMAL/XNumber too long ";"  <------ Look here!
### <== ';'

### Tokener got EOF
### <== EOF


9 years agoSocket 2.015
Jarkko Hietaniemi [Sat, 16 Aug 2014 01:54:48 +0000 (21:54 -0400)]
Socket 2.015

9 years agoreg_posixcc.t: display chr(\\xXX) should be chr(0xXX)
Karl Williamson [Fri, 15 Aug 2014 16:34:53 +0000 (10:34 -0600)]
reg_posixcc.t: display chr(\\xXX) should be chr(0xXX)

The test name was misleading.  The operand to chr should be an ord.

9 years agoperldelta: Add entry for sync_locale()
Karl Williamson [Fri, 15 Aug 2014 15:05:28 +0000 (09:05 -0600)]
perldelta: Add entry for sync_locale()

9 years agoMake a wild guess at how to handle double-double.
Jarkko Hietaniemi [Fri, 15 Aug 2014 13:50:03 +0000 (09:50 -0400)]
Make a wild guess at how to handle double-double.

9 years agoLimit testing with 80-bit doubles.
Jarkko Hietaniemi [Fri, 15 Aug 2014 13:25:37 +0000 (09:25 -0400)]
Limit testing with 80-bit doubles.

(The test data would be wrong for 128-bit doubles.)

9 years ago80-bit big-endian extraction was also wrong.
Jarkko Hietaniemi [Fri, 15 Aug 2014 11:47:49 +0000 (07:47 -0400)]
80-bit big-endian extraction was also wrong.

Not that this format probably ever happens.

9 years agoTry preparing for weird UVSIZE or NV_MANT_DIG.
Jarkko Hietaniemi [Fri, 15 Aug 2014 02:20:16 +0000 (22:20 -0400)]
Try preparing for weird UVSIZE or NV_MANT_DIG.

(UVSIZE=4 and no quad, or NV_MANT_DIG=106, where quad would not help.)

9 years agoIn frexp+ldexp path simply prefer Uquad_t to UV.
Jarkko Hietaniemi [Fri, 15 Aug 2014 01:44:44 +0000 (21:44 -0400)]
In frexp+ldexp path simply prefer Uquad_t to UV.

9 years agoBig endian frexp+ldexp byte extraction was wrong.
Jarkko Hietaniemi [Fri, 15 Aug 2014 01:42:39 +0000 (21:42 -0400)]
Big endian frexp+ldexp byte extraction was wrong.

9 years agoOn literal hexadecimal floats use uquad, not UV.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:43:06 +0000 (16:43 -0400)]
On literal hexadecimal floats use uquad, not UV.

Since it is possible to have quads but not use64bitint.

9 years agoComment tweaks.
Jarkko Hietaniemi [Fri, 15 Aug 2014 01:06:06 +0000 (21:06 -0400)]
Comment tweaks.

9 years agoUse XDIGIT_VALUE().
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:25:31 +0000 (16:25 -0400)]

9 years agoZero is better longdblkind for "no long double" than -1.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:13:11 +0000 (16:13 -0400)]
Zero is better longdblkind for "no long double" than -1.

(zero = long double is double, -1 = unknown long double)

9 years agoWhitespace only: line breaks before elses.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:11:10 +0000 (16:11 -0400)]
Whitespace only: line breaks before elses.

9 years agoAdjust need size for locale radix.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:03:27 +0000 (16:03 -0400)]
Adjust need size for locale radix.

9 years agoperldelta for 5c45bbe050f6
Tony Cook [Fri, 15 Aug 2014 01:30:47 +0000 (11:30 +1000)]
perldelta for 5c45bbe050f6

9 years ago[perl #122476] use a hash instead of a ptr_table
Tony Cook [Mon, 11 Aug 2014 06:47:51 +0000 (16:47 +1000)]
[perl #122476] use a hash instead of a ptr_table

Perl will duplicate the hash on ithread creation, so this will be

9 years ago[perl #122476] TODO test for isfoo() crash on Win32 with threads
Tony Cook [Mon, 11 Aug 2014 06:31:32 +0000 (16:31 +1000)]
[perl #122476] TODO test for isfoo() crash on Win32 with threads

9 years agoperldelta for 496f5ba57a43
Tony Cook [Fri, 15 Aug 2014 01:04:03 +0000 (11:04 +1000)]
perldelta for 496f5ba57a43

9 years agofix debugger y command scope level
Tony Cook [Fri, 15 Aug 2014 00:45:57 +0000 (10:45 +1000)]
fix debugger y command scope level

5c2b78e73d3 moved handling of the y command into its own function,
but did not adjust the provided scope level to account for the extra

9 years agoAdd sync_locale()
Karl Williamson [Thu, 14 Aug 2014 17:56:03 +0000 (11:56 -0600)]
Add sync_locale()

This trivial function is to be used by XS code when it changes the
program's locale.  It hides the details from that code of what needs to
be done, which could change in the future.

9 years agoperldata: Fix too long verbatim lines
Karl Williamson [Thu, 14 Aug 2014 17:37:23 +0000 (11:37 -0600)]
perldata: Fix too long verbatim lines

9 years agoHexadecimal float literals, for perl #122219
Jarkko Hietaniemi [Tue, 12 Aug 2014 12:39:40 +0000 (08:39 -0400)]
Hexadecimal float literals, for perl #122219

Do not use system strtod/strtold since its C99 (which we do not require).

If we can fit the mantissa bits of a NV to a UV (which is the case for
the most common format, 64-bit IEEE 754 double, which has 52 mantissa bits)
we will use that, and only in the end convert to NV.  If we cannot fit
the bits, accumulate the bits incrementally to a NV.

9 years agoHexadecimal float sprintf, for perl #122219
Jarkko Hietaniemi [Tue, 12 Aug 2014 12:30:56 +0000 (08:30 -0400)]
Hexadecimal float sprintf, for perl #122219

Do not use the system sprintf since %a/%A is C99 (which we do not
require), and even if we did, there is room for interpretation
(for example whether to print trailing zeros or not) which means
that existing implementations will inevitably differ.

For the most common case, 64-bit doubles of IEEE 754, use first
frexp to extract the exponent, and then ldexp to scale the result
to a 64-bit unsigned integer.

For long doubles (80-bit or 128-bit) we look directly at the mantissa
(also known as fraction, or significand) bytes, and their 4-bit nybbles,
and extract them in correct order.

Since we bypass system printf, we need to do our own aligning, filling,
rounding, and other printf logic.

9 years agoPerl_ldexp is one of ldexpl, scalbnl, or ldexp
Jarkko Hietaniemi [Mon, 11 Aug 2014 15:58:27 +0000 (11:58 -0400)]
Perl_ldexp is one of ldexpl, scalbnl, or ldexp

9 years agoConfigure scan for ldexpl
Jarkko Hietaniemi [Mon, 11 Aug 2014 15:55:01 +0000 (11:55 -0400)]
Configure scan for ldexpl

9 years agoConfigure scan for the kind of long double we have
Jarkko Hietaniemi [Sun, 10 Aug 2014 23:46:12 +0000 (19:46 -0400)]
Configure scan for the kind of long double we have

(Somewhat like quadkind, but for the format of the long double)

9 years agoStop defined(aassign) from being an error
Father Chrysostomos [Thu, 14 Aug 2014 00:59:32 +0000 (17:59 -0700)]
Stop defined(aassign) from being an error

(See the thread starting at

This commit changed the message 'defined(@...) is deprecated' into
a hard error:

commit e35475dec7197e291306173beba241d4e43bd5b2
Author: Karl Williamson <>
Date:   Mon Jun 16 18:56:44 2014 -0600

    Fatalize defined(@) and defined{%)

As I pointed out a couple of years (?) ago, this warning was also
showing up in places that did not involve checking the definedness of
an array; namely, defined(any list assignment):

$ perl -we '$_ = defined(my($a,$b)=3)'
defined(@array) is deprecated at -e line 1.
        (Maybe you should just omit the defined()?)

While checking that a list assignment evaluated in scalar context is
useless, as the result (a number) will always be defined, there is no
reason why this code should be any more invalid than ‘rand() > -1’ or
‘defined(time)’.  But now it has inadvertently become a hard error.

This commit simply removes the error for defined(aassign), under the
possibly false assumption that such a mistake will be rare, so it is
not worth clutting up perl itself with a special case for it.  Whether
that assumption is true remains to be seen.  In any case, in the
absence of any data, smaller is better, is it not?

9 years agolocale.c: Clarify comment
Karl Williamson [Wed, 13 Aug 2014 22:04:52 +0000 (16:04 -0600)]
locale.c: Clarify comment

9 years agolocale.c: Use PERL_UNUSED_RESULT
Karl Williamson [Wed, 13 Aug 2014 22:02:00 +0000 (16:02 -0600)]

The previous way to suppress messages wasn't working for all gcc
versions.  Spotted by Jarkko Hietaniemi.

9 years agoRemove compiler warning spam on dos-djgpp
Chris 'BinGOs' Williams [Wed, 13 Aug 2014 21:39:19 +0000 (22:39 +0100)]
Remove compiler warning spam on dos-djgpp

9 years agoFor older clang versions put back -Wno-unused-value.
Jarkko Hietaniemi [Mon, 11 Aug 2014 16:47:22 +0000 (12:47 -0400)]
For older clang versions put back -Wno-unused-value.

Logical revert of b679cac0, but redone.

Apple versions only for now; situation on Linux side unknown.

9 years ago[perl #46947] Parse method-BLOCK arguments as a term
Father Chrysostomos [Mon, 11 Aug 2014 16:51:34 +0000 (09:51 -0700)]
[perl #46947] Parse method-BLOCK arguments as a term

(C.f. bug #114222 and commit 52d0e95b, which did the same thing
for ‘use’.)

When parsing the arguments following a method name and a block (for
‘method { $obj } LIST‘ syntax), the lexer was using heuristics to
determine whether an opening brace was a hash constructor or a block,
as it does at the beginning of a statement.  In every case in which it
determined it was a block, the parser would them throw a syntax error.

In this case, the lexer should not be trying to guess, since we *know*
it can only be a hash here.

This was the result:

$ perl -e 'method {$obj} {$foo=>undef}'
syntax error at -e line 1, near "} {"
Execution of -e aborted due to compilation errors.

Now we get this:

$ ./miniperl -e 'method {$obj} {$foo=>undef}'
Can't call method "method" on an undefined value at -e line 1.

as expected.

9 years agofix fix for stat.t on win32
David Mitchell [Tue, 12 Aug 2014 15:09:46 +0000 (16:09 +0100)]
fix fix for stat.t on win32

My previous commit made a test open a file, then delete it. It should of
course have closed the file before deleting it. On Linux this is just bad
manners, but on Win32 it actively fails.

9 years agoop/.stat.t: fix race condition
David Mitchell [Tue, 12 Aug 2014 10:44:35 +0000 (11:44 +0100)]
op/.stat.t: fix race condition

A test was checking that stat on FILEHANDLE and lstat on *FILEHANDLE{IO}
gave the same results. It was using STDOUT as the filehandle, but since
this can be modified by other processes during parallel testing, a race
condition is possible.

Open a file instead to get reliability.

9 years agot/run/locale.t: Improve skip message
Karl Williamson [Mon, 11 Aug 2014 16:20:43 +0000 (10:20 -0600)]
t/run/locale.t: Improve skip message

Better wording uggested by H.Merijn Brand

9 years agoPATCH: [perl #121930] Bleadperl breaks MDOOTSON/Wx
Karl Williamson [Mon, 4 Aug 2014 22:29:12 +0000 (16:29 -0600)]
PATCH: [perl #121930] Bleadperl breaks MDOOTSON/Wx

The root cause of this issue is that XS code or the libraries it calls
is changing the locale behind Perl's back so that the decimal point
character is not a dot.  Version number parsing relies on it being a

This patch fixes the problem by retrieving the current locale just
before version number parsing, and updating Perl's records if the locale
has changed away from what is expected.  Given accurate records, the
pre-existing call to the STORE_NUMERIC_LOCAL_SET_STANDARD macro will
do what it's supposed to do, and change the locale so that the dot is
the radix character for the version number parsing.

After the parsing is done, the pre-existing call to the
RESTORE_NUMERIC_LOCAL macro will restore properly, but see below

This patch should be suitable for both 5.20.1 and 5.21 (though the SHA-1
value in the porting/customize.dat will have to be adjusted because the
files aren't otherwise identical).  But there is a fundamental
difference between the releases.  In 5.20.X, Perl does not attempt to
keep the radix character a dot at almost all times (though it
initializes things so it is a dot, overriding any environmental settings
to the contrary).  This leads to known non-regression bugs in 5.20
because very little XS code can cope with a non-dot.  To fix this, Perl
has changed the macros in 5.21 so that the result after the
RESTORE_NUMERIC_LOCAL is that the current locale will have a dot.  This
will fix those long-standing bugs where XS code expecting a dot fails
should it be mashed up with modules that change it to something else.
But this will break the relatively few modules that want it the other
way.  So it has been done early in 5.21 to give things a chance to
settle down.

The extra {} braces around the code that calls the macros is because
STORE_NUMERIC_LOCAL_SET_STANDARD declares a variable, and so must be
within the declarations area of a block for C89 compilers.  (I myself
would not write a macro that does this without indicating so in its

9 years agoperldelta for 2806bfd899e5, 3969ff3f8e4b
Tony Cook [Sun, 10 Aug 2014 23:53:39 +0000 (09:53 +1000)]
perldelta for 2806bfd899e53969ff3f8e4b

9 years ago[perl #122107] ensure that BEGIN blocks with errors don't remain named subs
Tony Cook [Mon, 14 Jul 2014 00:40:47 +0000 (10:40 +1000)]
[perl #122107] ensure that BEGIN blocks with errors don't remain named subs

9 years ago[perl #122107] test that BEGIN blocks with errors don't remain named subs
Tony Cook [Thu, 10 Jul 2014 01:37:39 +0000 (11:37 +1000)]
[perl #122107] test that BEGIN blocks with errors don't remain named subs

9 years ago[perl #122498] Odd error message from m/(?(??{}))/
Father Chrysostomos [Sun, 10 Aug 2014 05:39:43 +0000 (22:39 -0700)]
[perl #122498] Odd error message from m/(?(??{}))/

I know this code is invalid, but the error message makes no sense:

$ perl5.14.4 -e 'm/(?(??{}))/'
Sequence (? incomplete in regex; marked by <-- HERE in m/(? <-- HERE (??{}))/ at -e line 1.

Not exactly logical, but close....

$ perl5.18.2 -e 'm/(?(??{}))/'
The regex_sets feature is experimental in regex; marked by <-- HERE in m/(?( <-- HERE ??{}))/ at -e line 1.
Syntax error in (?[...]) in regex m/(?(??{}))/ at -e line 1.

As of 5.18, it makes no sense at all.

It should probably say ‘Unknown switch condition’.

This commit makes it do that.  The problem was unintentional fall-
through to the wrong switch condition.

In fact, it could get quite confused:

$  ./miniperl -Ilib -e  'm/(?(? [a] ])/'
The regex_sets feature is experimental in regex; marked by <-- HERE in m/(?( <-- HERE ? [a] ])/ at -e line 1.
Unexpected character in regex; marked by <-- HERE in m/(?(? <-- HERE  [a] ])/ at -e line 1.

Because it was assuming that the character after the first ? was [
and then trying to parse an extended charclass from the second ques-
tion mark.

9 years agoMake ‘require $tied_undef’ behave consistently
Father Chrysostomos [Sun, 10 Aug 2014 05:09:17 +0000 (22:09 -0700)]
Make ‘require $tied_undef’ behave consistently

As of f04d2c345 perl does not give uninitialized warnings for ‘require
undef’.  But the check was not happening soon enough, causing tied
variables to behave erratically:

$ ./perl -Ilib -we 'sub TIESCALAR{bless[]}sub FETCH{undef}sub STORE{}tie $x,""; $x="a"; require $x'
Use of uninitialized value $x in require at -e line 1.
Missing or undefined argument to require at -e line 1.

(Uninit warning where muggle variables lack one.)

$ ./perl -Ilib -we 'sub TIESCALAR{bless[]}sub FETCH{undef}sub STORE{}tie $x,""; $x=3; require $x'
Invalid version format (non-numeric data) at -e line 1.

(undef being treated as a version string.)

We have to call get-magic on the argument before we check its

9 years agoAlphabetise perldiag
Father Chrysostomos [Sun, 10 Aug 2014 01:34:22 +0000 (18:34 -0700)]
Alphabetise perldiag

9 years agoperldiag: rewrap for better splain output; clarifications
Father Chrysostomos [Sun, 10 Aug 2014 01:30:28 +0000 (18:30 -0700)]
perldiag: rewrap for better splain output; clarifications

9 years agoExtUtils::CBuilder: On Android, link to both -lperl and $Config{perllibs}
Brian Fraser [Sat, 9 Aug 2014 10:43:01 +0000 (12:43 +0200)]
ExtUtils::CBuilder: On Android, link to both -lperl and $Config{perllibs}

This is done because quite a bit of CPAN assumes that
if links to something, then you'll get those
functions for free, but that is not the case on

9 years agoRemove dead VMS code from ext/Sys-Hostname/Hostname.xs.
Craig A. Berry [Fri, 8 Aug 2014 22:40:56 +0000 (17:40 -0500)]
Remove dead VMS code from ext/Sys-Hostname/Hostname.xs.

We haven't supported VMS versions prior to 7.0 for quite some
time now, so this code can go.

9 years agoregcomp.c: White space only
Karl Williamson [Fri, 8 Aug 2014 18:30:56 +0000 (12:30 -0600)]
regcomp.c: White space only

Update line to coding standards so that the "{" is in the proper

9 years agoPATCH: [perl #122460] Regression with (?{})(?=...) and pos
Karl Williamson [Thu, 7 Aug 2014 16:45:21 +0000 (10:45 -0600)]
PATCH: [perl #122460] Regression with (?{})(?=...) and pos

The commit that really broke this was
a0dd42312a1f26356d2fdf49656e45b77c2cefb5.  The blamed commit fixed some
typos that kept the earlier bad commit from having an effect.

Zero-length assertions, such as (?=...) obviously can match an empty
string.  The bad commit wrongly removed a setting of a flag to that
effect.  I didn't realize the implications at the time, thinking that
the newly-corrected AND logical operations would correctly set things
up, and that the previous code had been a workaround for the buggy AND.
The problem is that there is an overriding context such that whatever
the AND result, since this is in a 0-length assertion, the result will
match the empty string.  Thus it now differs from the pre-bad-commit
code which set to match the empty string only sometimes.  I'm pretty
sure it should be 'always'.  If I'm wrong, it doesn't mean a bug, but
only that an optimisation that could take place won't.

9 years agoReverse order of environ tables under bash on VMS.
Craig A. Berry [Fri, 8 Aug 2014 14:20:23 +0000 (09:20 -0500)]
Reverse order of environ tables under bash on VMS.

The default for populating %ENV on VMS is from logical names
first and the CRTL environ array second unless overridden by
setting PERL_ENV_TABLES. That's a reasonable default for DCL,
but not quite right when running under bash as exports under bash
might end up hidden behind logical names.  So reverse the default
order when GNV$UNIX_SHELL is set.

Also stop mentioning that setenv() may not be present in the CRTL
since it is present for VMS versions 7.0 and later and those are
the only ones we support.

9 years agoUpdate ExtUtils-Manifest to CPAN version 1.65
Chris 'BinGOs' Williams [Fri, 8 Aug 2014 11:18:57 +0000 (12:18 +0100)]
Update ExtUtils-Manifest to CPAN version 1.65


1.65  Fri, Aug  8, 2014
  - Support perls < v5.8.3 once again
  - Don't generate MANIFESTs with CRLFs on Windows

9 years agoMove ExtUtils-Install to cpan/
Chris 'BinGOs' Williams [Fri, 8 Aug 2014 09:13:17 +0000 (10:13 +0100)]
Move ExtUtils-Install to cpan/

The Perl Toolchain Gang has agreed to maintain this.

9 years agogetenv() failed lookup need not set errno on VMS.
Craig A. Berry [Fri, 8 Aug 2014 02:29:14 +0000 (21:29 -0500)]
getenv() failed lookup need not set errno on VMS.

The standard does not indicate any errno values set when getenv()
simply doesn't find the requested value, which is a pretty common
occurrence.  The VMS-specific implementation of getenv() has been
setting errno in this case, which means there is often an errno
value hanging around for later unsuspecting operations.  It
particularly tends to bite people who don't read the documentation
to die() and/or don't understand how errno works (only valid after
a failed syscall).

So we now stop setting errno in this case, but leave it for a few
serious errors that should be extremely rare.

9 years agoMove ExtUtils-Manifest to cpan/
Chris 'BinGOs' Williams [Thu, 7 Aug 2014 10:09:22 +0000 (11:09 +0100)]
Move ExtUtils-Manifest to cpan/

Maintained by the Perl Toolchain Gang now

9 years agoMove ExtUtils-Command to cpan/
Chris 'BinGOs' Williams [Thu, 7 Aug 2014 09:32:26 +0000 (10:32 +0100)]
Move ExtUtils-Command to cpan/

Maintained by the Perl Toolchain Gang now

9 years agoDocumentation typo fix
Rafael Garcia-Suarez [Wed, 6 Aug 2014 20:15:24 +0000 (22:15 +0200)]
Documentation typo fix

9 years agoAdd MurmurHash64A and MurmurHash64B to hv_func.h
Yves Orton [Wed, 6 Aug 2014 09:42:33 +0000 (11:42 +0200)]
Add MurmurHash64A and MurmurHash64B to hv_func.h

Both of these hash functions are by Austin Appleby and are in the public domain.

The 64A variant is designed for 64 bit machines.

The 64B variant is designed for 32 bit machines.

Both use unaligned loads, so are unsuitable for platforms with strict alignment requirements.

Both have been converted to use Perls hash function calling conventions,
and to return a 32 bit hash instead of a 64 bit hash (low 32 bits)

9 years agoSun c99 needs -Xa for many system interfaces.
Jarkko Hietaniemi [Tue, 5 Aug 2014 15:47:51 +0000 (11:47 -0400)]
Sun c99 needs -Xa for many system interfaces.

9 years agoSun c99 doesn't like bare -O.
Jarkko Hietaniemi [Tue, 5 Aug 2014 14:49:31 +0000 (10:49 -0400)]
Sun c99 doesn't like bare -O.

9 years agoSun c99 ccversion.
Jarkko Hietaniemi [Tue, 5 Aug 2014 14:42:41 +0000 (10:42 -0400)]
Sun c99 ccversion.

9 years agoNewer Sun C compilers are not 'SUNwspro', but 'solstudio'.
Jarkko Hietaniemi [Tue, 5 Aug 2014 13:49:01 +0000 (09:49 -0400)]
Newer Sun C compilers are not 'SUNwspro', but 'solstudio'.

9 years agot/run/locale.t: Skip environment test on Win32
Karl Williamson [Mon, 4 Aug 2014 18:57:43 +0000 (12:57 -0600)]
t/run/locale.t: Skip environment test on Win32

This test is to make sure that without environment overrides, that the
decimal point character is a dot.  However in Windows machines, the
default locale can be set via administration regardless of environment
overrides, so this test is invalid on that platform.

Spotted by Steve Hay.

9 years agoUpdate B-Debug to CPAN version 1.21
Chris 'BinGOs' Williams [Tue, 5 Aug 2014 14:14:01 +0000 (15:14 +0100)]
Update B-Debug to CPAN version 1.21

9 years agoAdd syber to AUTHORS
Rafael Garcia-Suarez [Tue, 5 Aug 2014 08:15:58 +0000 (10:15 +0200)]
Add syber to AUTHORS

9 years agoRegenerate local Safe MANIFEST
Rafael Garcia-Suarez [Tue, 5 Aug 2014 08:02:09 +0000 (10:02 +0200)]
Regenerate local Safe MANIFEST

9 years agoFix MANIFEST and Safe's changelog
Rafael Garcia-Suarez [Tue, 5 Aug 2014 07:27:29 +0000 (09:27 +0200)]
Fix MANIFEST and Safe's changelog

9 years agoCritical bugfix in module Safe (Opcode). Version increased, changelog and test added.
syber [Mon, 4 Aug 2014 19:47:23 +0000 (23:47 +0400)]
Critical bugfix in module Safe (Opcode). Version increased, changelog and test added.

This example hacks outside environment:

package My::Controller;
use strict;

sub jopa { return "jopa\n"; }

package main;
use Safe;

my $s = new Safe;

my $ok = $s->reval(q{
    package My::Controller;
    sub jopa { return "hacked\n"; }


print My::Controller->jopa();

9 years ago[perl #121404] tied hashes are different
Tony Cook [Tue, 5 Aug 2014 05:18:25 +0000 (15:18 +1000)]
[perl #121404] tied hashes are different

9 years agoFix hint typo: No leading underscore in PERL_USE_SAFE_PUTENV
Andy Dougherty [Mon, 4 Aug 2014 14:38:48 +0000 (10:38 -0400)]
Fix hint typo: No leading underscore in PERL_USE_SAFE_PUTENV

hints/ generates a config.over script intended to add
PERL_USE_SAFE_PUTENV to ccflags, if it is not already present.  An extra
leading underscore in the check meant that the test always failed and
PERL_USE_SAFE_PUTENV always got added.

9 years agoUpdate perlfaq to CPAN version 5.0150045
Chris 'BinGOs' Williams [Mon, 4 Aug 2014 11:47:34 +0000 (12:47 +0100)]
Update perlfaq to CPAN version 5.0150045


5.0150045 Sun 3 Aug 2014 18:16:06 +0100
  * Improve example, use File::Spec (Brian Fraser)
  * Typo in perlfaq7 (Rares Aioanei, via shlomif)
  * Typo in perlfaq1 (Xaerxess)

9 years agoUpdate B-Debug to CPAN version 1.20
Aaron Crane [Sun, 3 Aug 2014 16:33:02 +0000 (17:33 +0100)]
Update B-Debug to CPAN version 1.20

    1.20 2014-08-03 rurban
      * avoid exists on an array element (aaron crane)

9 years agoUpdate Config::Perl::V to version 0.22
H.Merijn Brand [Sat, 2 Aug 2014 11:09:16 +0000 (13:09 +0200)]
Update Config::Perl::V to version 0.22

9 years agoregcomp.c: Don't read outside array bound
Karl Williamson [Fri, 1 Aug 2014 17:19:06 +0000 (11:19 -0600)]
regcomp.c: Don't read outside array bound

This code is only in DEBUGGING builds had an off-by-one error
that would read beyond the end of the array.  This commit also removes
a redundant test

9 years agoFix bug in inlining some CORE::* subs
Aaron Crane [Tue, 15 Jul 2014 17:28:42 +0000 (18:28 +0100)]
Fix bug in inlining some CORE::* subs

As of 4aaa475724fbbc4ab2427743fa4d07a12e6ce0d9, when Perl compiles code like

    BEGIN { *entangle = \&CORE::tie }
    entangle $foo, $package

the apparent call to "entangle" is replaced with an inlined invocation of
the "tie" builtin.

For unary ops, the OPf_SPECIAL flag was set on the generated inlined op iff
the op's argument was surrounded by parens. But that's incorrect for ops
which have their own interpretation of OPf_SPECIAL. In particular:

  keys, values, each
    OPf_SPECIAL is set for lvalue usage; this shows up when the compile-time
    argument is a reference to be subjected to the autoderef feature, and
    the run-time argument is an array ref. The existing tests didn't execute
    the code (and didn't combine inlining with array autoderefs), so didn't
    catch this case.

  delete, exists
    OPf_SPECIAL is set when the argument is an array element rather than a
    hash element; this doesn't directly cause any obvious problems, because
    pp_delete and pp_exists consider OPf_SPECIAL only when they've already
    determined that their argument is an array element, but it did break
    deparsing (because B::Deparse considers OPf_SPECIAL in all cases): the
    hash element argument got deparsed as an array element. Further, the
    inlining tests themselves rely on deparsing to ensure that the op was
    inlined. The existing inlining tests happened to use array elements, so
    didn't catch this problem.

This commit fixes those cases, by avoiding setting OPf_SPECIAL when inlining
an invocation of one of those ops. The list of op types is hard-coded; this
seems a little icky, but I don't see a better alternative.

I believe that no other ops are affected by this issue, but my confidence in
that statement isn't as high as it might be; it seems hard to work out
exactly which ops use OPf_SPECIAL.

9 years agot/op/coresubs.t: factor out an internal routine
Aaron Crane [Tue, 15 Jul 2014 17:25:22 +0000 (18:25 +0100)]
t/op/coresubs.t: factor out an internal routine

This routine will be used in the next commit. I believe that the behaviour
of the tests remains unchanged after this commit.