2 hours agoperldelta for 438f0014a812, revised blead
Peter Martini [Wed, 20 Aug 2014 03:59:06 +0000]
perldelta for 438f0014a812, revised

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

2 hours agoperldelta for 438f0014a812
Peter Martini [Wed, 20 Aug 2014 03:55:46 +0000]
perldelta for 438f0014a812

3 hours agoperldelta for jhi double/float work
Peter Martini [Wed, 20 Aug 2014 03:48:48 +0000]
perldelta for jhi double/float work

3 hours agoperldelta for 4cedf205aa6e
Peter Martini [Wed, 20 Aug 2014 02:58:33 +0000]
perldelta for 4cedf205aa6e

4 hours agoperldelta for 3699825258c
Peter Martini [Wed, 20 Aug 2014 02:40:08 +0000]
perldelta for 3699825258c

4 hours agoperldelta typo fix: change a ',' to a '.'
Peter Martini [Wed, 20 Aug 2014 02:16:52 +0000]
perldelta typo fix: change a ',' to a '.'

4 hours agoRevert Test::Builder changes in prep for 5.21.3
Peter Martini [Wed, 20 Aug 2014 01:23:39 +0000]
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.

http://nntp.perl.org/group/perl.perl5.porters/218678 has
further details, with RT 122538 being the ticket number.

5 hours agospelling: till -> until
Karen Etheridge [Wed, 20 Aug 2014 00:21:09 +0000]
spelling: till -> until

5 hours agodocument what version \K was added in
Karen Etheridge [Wed, 20 Aug 2014 00:20:01 +0000]
document what version \K was added in

12 hours agoWhen cross-compiling, copy cpan/Module-Metadata/
Brian Fraser [Tue, 29 Jul 2014 18:30:44 +0000]
When cross-compiling, copy cpan/Module-Metadata/

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

18 hours agoFix finite/finitel/isfinite in configure.com.
Craig A. Berry [Tue, 19 Aug 2014 11:53:42 +0000]
Fix finite/finitel/isfinite in configure.com.

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

28 hours agoUpdate blead to Test::Builder alpha 40
Chad Granum [Mon, 18 Aug 2014 21:04:14 +0000]
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

2 days agoperldelta for b5b6210a9/#46947
Father Chrysostomos [Mon, 18 Aug 2014 00:26:47 +0000]
perldelta for b5b6210a9/#46947

2 days agoInclude longdblkind in perl -V output.
Jarkko Hietaniemi [Sun, 17 Aug 2014 20:47:01 +0000]
Include longdblkind in perl -V output.

2 days agoComment tweaks.
Jarkko Hietaniemi [Sun, 17 Aug 2014 17:51:01 +0000]
Comment tweaks.

2 days agoLittle-endian double-double detection was wrong.
Jarkko Hietaniemi [Sun, 17 Aug 2014 17:50:08 +0000]
Little-endian double-double detection was wrong.

2 days agoAdd quadruple precision tests, verified by Craig Berry.
Jarkko Hietaniemi [Sun, 17 Aug 2014 14:00:06 +0000]
Add quadruple precision tests, verified by Craig Berry.

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

Also comment tweaks.

2 days agoSeparate the extraction of hex values.
Jarkko Hietaniemi [Sat, 16 Aug 2014 15:27:52 +0000]
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.)

3 days agoUpdate to include latest Test::Builder alpha
Chad Granum [Fri, 15 Aug 2014 15:40:10 +0000]
Update to include latest Test::Builder alpha

Also updated some tests that the new builder broke

4 days agoUpdate exp_name in toke.c, following b5b6210a976
Father Chrysostomos [Sat, 16 Aug 2014 04:52:12 +0000]
Update exp_name in toke.c, following b5b6210a976

Ooops.

$  ./miniperl -DT -e 'undef'
### 0:LEX_NORMAL/XSTATE "\n"
### <== UNIOP(ival=op_undef)

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

### 1:LEX_NORMAL/XSTATE ""
### Tokener got EOF
### <== EOF

EXECUTING...

4 days agoSocket 2.015
Jarkko Hietaniemi [Sat, 16 Aug 2014 01:54:48 +0000]
Socket 2.015

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

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

4 days agoperldelta: Add entry for sync_locale()
Karl Williamson [Fri, 15 Aug 2014 15:05:28 +0000]
perldelta: Add entry for sync_locale()

4 days agoMake a wild guess at how to handle double-double.
Jarkko Hietaniemi [Fri, 15 Aug 2014 13:50:03 +0000]
Make a wild guess at how to handle double-double.

4 days agoLimit testing with 80-bit doubles.
Jarkko Hietaniemi [Fri, 15 Aug 2014 13:25:37 +0000]
Limit testing with 80-bit doubles.

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

4 days ago80-bit big-endian extraction was also wrong.
Jarkko Hietaniemi [Fri, 15 Aug 2014 11:47:49 +0000]
80-bit big-endian extraction was also wrong.

Not that this format probably ever happens.

5 days agoTry preparing for weird UVSIZE or NV_MANT_DIG.
Jarkko Hietaniemi [Fri, 15 Aug 2014 02:20:16 +0000]
Try preparing for weird UVSIZE or NV_MANT_DIG.

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

5 days agoIn frexp+ldexp path simply prefer Uquad_t to UV.
Jarkko Hietaniemi [Fri, 15 Aug 2014 01:44:44 +0000]
In frexp+ldexp path simply prefer Uquad_t to UV.

5 days agoBig endian frexp+ldexp byte extraction was wrong.
Jarkko Hietaniemi [Fri, 15 Aug 2014 01:42:39 +0000]
Big endian frexp+ldexp byte extraction was wrong.

5 days agoOn literal hexadecimal floats use uquad, not UV.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:43:06 +0000]
On literal hexadecimal floats use uquad, not UV.

Since it is possible to have quads but not use64bitint.

5 days agoComment tweaks.
Jarkko Hietaniemi [Fri, 15 Aug 2014 01:06:06 +0000]
Comment tweaks.

5 days agoUse XDIGIT_VALUE().
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:25:31 +0000]
Use XDIGIT_VALUE().

5 days agoZero is better longdblkind for "no long double" than -1.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:13:11 +0000]
Zero is better longdblkind for "no long double" than -1.

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

5 days agoWhitespace only: line breaks before elses.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:11:10 +0000]
Whitespace only: line breaks before elses.

5 days agoAdjust need size for locale radix.
Jarkko Hietaniemi [Thu, 14 Aug 2014 20:03:27 +0000]
Adjust need size for locale radix.

5 days agoperldelta for 5c45bbe050f6
Tony Cook [Fri, 15 Aug 2014 01:30:47 +0000]
perldelta for 5c45bbe050f6

5 days ago[perl #122476] use a hash instead of a ptr_table
Tony Cook [Mon, 11 Aug 2014 06:47:51 +0000]
[perl #122476] use a hash instead of a ptr_table

Perl will duplicate the hash on ithread creation, so this will be
thread-safe.

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

5 days agoperldelta for 496f5ba57a43
Tony Cook [Fri, 15 Aug 2014 01:04:03 +0000]
perldelta for 496f5ba57a43

5 days agofix debugger y command scope level
Tony Cook [Fri, 15 Aug 2014 00:45:57 +0000]
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
scope.

5 days agoAdd sync_locale()
Karl Williamson [Thu, 14 Aug 2014 17:56:03 +0000]
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.

5 days agoperldata: Fix too long verbatim lines
Karl Williamson [Thu, 14 Aug 2014 17:37:23 +0000]
perldata: Fix too long verbatim lines

6 days agoHexadecimal float literals, for perl #122219
Jarkko Hietaniemi [Tue, 12 Aug 2014 12:39:40 +0000]
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.

6 days agoHexadecimal float sprintf, for perl #122219
Jarkko Hietaniemi [Tue, 12 Aug 2014 12:30:56 +0000]
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.

6 days agoPerl_ldexp is one of ldexpl, scalbnl, or ldexp
Jarkko Hietaniemi [Mon, 11 Aug 2014 15:58:27 +0000]
Perl_ldexp is one of ldexpl, scalbnl, or ldexp

6 days agoConfigure scan for ldexpl
Jarkko Hietaniemi [Mon, 11 Aug 2014 15:55:01 +0000]
Configure scan for ldexpl

6 days agoConfigure scan for the kind of long double we have
Jarkko Hietaniemi [Sun, 10 Aug 2014 23:46:12 +0000]
Configure scan for the kind of long double we have

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

6 days agoStop defined(aassign) from being an error
Father Chrysostomos [Thu, 14 Aug 2014 00:59:32 +0000]
Stop defined(aassign) from being an error

(See the thread starting at
<20140813010036.15038.qmail@lists-nntp.develooper.com>.)

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

commit e35475dec7197e291306173beba241d4e43bd5b2
Author: Karl Williamson <khw@cpan.org>
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?

6 days agolocale.c: Clarify comment
Karl Williamson [Wed, 13 Aug 2014 22:04:52 +0000]
locale.c: Clarify comment

6 days agolocale.c: Use PERL_UNUSED_RESULT
Karl Williamson [Wed, 13 Aug 2014 22:02:00 +0000]
locale.c: Use PERL_UNUSED_RESULT

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

6 days agoRemove compiler warning spam on dos-djgpp
Chris 'BinGOs' Williams [Wed, 13 Aug 2014 21:39:19 +0000]
Remove compiler warning spam on dos-djgpp

7 days agoFor older clang versions put back -Wno-unused-value.
Jarkko Hietaniemi [Mon, 11 Aug 2014 16:47:22 +0000]
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.

7 days ago[perl #46947] Parse method-BLOCK arguments as a term
Father Chrysostomos [Mon, 11 Aug 2014 16:51:34 +0000]
[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.

7 days agofix fix for stat.t on win32
David Mitchell [Tue, 12 Aug 2014 15:09:46 +0000]
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.

7 days agoop/.stat.t: fix race condition
David Mitchell [Tue, 12 Aug 2014 10:44:35 +0000]
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.

8 days agot/run/locale.t: Improve skip message
Karl Williamson [Mon, 11 Aug 2014 16:20:43 +0000]
t/run/locale.t: Improve skip message

Better wording uggested by H.Merijn Brand

8 days agoPATCH: [perl #121930] Bleadperl breaks MDOOTSON/Wx
Karl Williamson [Mon, 4 Aug 2014 22:29:12 +0000]
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
dot.

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
name.)

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

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

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

10 days ago[perl #122498] Odd error message from m/(?(??{}))/
Father Chrysostomos [Sun, 10 Aug 2014 05:39:43 +0000]
[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.

10 days agoMake ‘require $tied_undef’ behave consistently
Father Chrysostomos [Sun, 10 Aug 2014 05:09:17 +0000]
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
definedness.

10 days agoAlphabetise perldiag
Father Chrysostomos [Sun, 10 Aug 2014 01:34:22 +0000]
Alphabetise perldiag

10 days agoperldiag: rewrap for better splain output; clarifications
Father Chrysostomos [Sun, 10 Aug 2014 01:30:28 +0000]
perldiag: rewrap for better splain output; clarifications

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

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

11 days agoRemove dead VMS code from ext/Sys-Hostname/Hostname.xs.
Craig A. Berry [Fri, 8 Aug 2014 22:40:56 +0000]
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.

11 days agoregcomp.c: White space only
Karl Williamson [Fri, 8 Aug 2014 18:30:56 +0000]
regcomp.c: White space only

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

11 days agoPATCH: [perl #122460] Regression with (?{})(?=...) and pos
Karl Williamson [Thu, 7 Aug 2014 16:45:21 +0000]
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.

11 days agoReverse order of environ tables under bash on VMS.
Craig A. Berry [Fri, 8 Aug 2014 14:20:23 +0000]
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.

11 days agoUpdate ExtUtils-Manifest to CPAN version 1.65
Chris 'BinGOs' Williams [Fri, 8 Aug 2014 11:18:57 +0000]
Update ExtUtils-Manifest to CPAN version 1.65

  [DELTA]

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

11 days agoMove ExtUtils-Install to cpan/
Chris 'BinGOs' Williams [Fri, 8 Aug 2014 09:13:17 +0000]
Move ExtUtils-Install to cpan/

The Perl Toolchain Gang has agreed to maintain this.

12 days agogetenv() failed lookup need not set errno on VMS.
Craig A. Berry [Fri, 8 Aug 2014 02:29:14 +0000]
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.

12 days agoMove ExtUtils-Manifest to cpan/
Chris 'BinGOs' Williams [Thu, 7 Aug 2014 10:09:22 +0000]
Move ExtUtils-Manifest to cpan/

Maintained by the Perl Toolchain Gang now

12 days agoMove ExtUtils-Command to cpan/
Chris 'BinGOs' Williams [Thu, 7 Aug 2014 09:32:26 +0000]
Move ExtUtils-Command to cpan/

Maintained by the Perl Toolchain Gang now

13 days agoDocumentation typo fix
Rafael Garcia-Suarez [Wed, 6 Aug 2014 20:15:24 +0000]
Documentation typo fix

13 days agoAdd MurmurHash64A and MurmurHash64B to hv_func.h
Yves Orton [Wed, 6 Aug 2014 09:42:33 +0000]
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)

2 weeks agoSun c99 needs -Xa for many system interfaces.
Jarkko Hietaniemi [Tue, 5 Aug 2014 15:47:51 +0000]
Sun c99 needs -Xa for many system interfaces.

2 weeks agoSun c99 doesn't like bare -O.
Jarkko Hietaniemi [Tue, 5 Aug 2014 14:49:31 +0000]
Sun c99 doesn't like bare -O.

2 weeks agoSun c99 ccversion.
Jarkko Hietaniemi [Tue, 5 Aug 2014 14:42:41 +0000]
Sun c99 ccversion.

2 weeks agoNewer Sun C compilers are not 'SUNwspro', but 'solstudio'.
Jarkko Hietaniemi [Tue, 5 Aug 2014 13:49:01 +0000]
Newer Sun C compilers are not 'SUNwspro', but 'solstudio'.

2 weeks agot/run/locale.t: Skip environment test on Win32
Karl Williamson [Mon, 4 Aug 2014 18:57:43 +0000]
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.

2 weeks agoUpdate B-Debug to CPAN version 1.21
Chris 'BinGOs' Williams [Tue, 5 Aug 2014 14:14:01 +0000]
Update B-Debug to CPAN version 1.21

2 weeks agoAdd syber to AUTHORS
Rafael Garcia-Suarez [Tue, 5 Aug 2014 08:15:58 +0000]
Add syber to AUTHORS

2 weeks agoRegenerate local Safe MANIFEST
Rafael Garcia-Suarez [Tue, 5 Aug 2014 08:02:09 +0000]
Regenerate local Safe MANIFEST

2 weeks agoFix MANIFEST and Safe's changelog
Rafael Garcia-Suarez [Tue, 5 Aug 2014 07:27:29 +0000]
Fix MANIFEST and Safe's changelog

2 weeks agoCritical bugfix in module Safe (Opcode). Version increased, changelog and test added.
syber [Mon, 4 Aug 2014 19:47:23 +0000]
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"; }

    My::Controller->jopa();
});

print My::Controller->jopa();

2 weeks ago[perl #121404] tied hashes are different
Tony Cook [Tue, 5 Aug 2014 05:18:25 +0000]
[perl #121404] tied hashes are different

2 weeks agoFix hint typo: No leading underscore in PERL_USE_SAFE_PUTENV
Andy Dougherty [Mon, 4 Aug 2014 14:38:48 +0000]
Fix hint typo: No leading underscore in PERL_USE_SAFE_PUTENV

hints/solaris_2.sh 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.

2 weeks agoUpdate perlfaq to CPAN version 5.0150045
Chris 'BinGOs' Williams [Mon, 4 Aug 2014 11:47:34 +0000]
Update perlfaq to CPAN version 5.0150045

  [DELTA]

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)

2 weeks agoUpdate B-Debug to CPAN version 1.20
Aaron Crane [Sun, 3 Aug 2014 16:33:02 +0000]
Update B-Debug to CPAN version 1.20

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

2 weeks agoUpdate Config::Perl::V to version 0.22
H.Merijn Brand [Sat, 2 Aug 2014 11:09:16 +0000]
Update Config::Perl::V to version 0.22

2 weeks agoregcomp.c: Don't read outside array bound
Karl Williamson [Fri, 1 Aug 2014 17:19:06 +0000]
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

2 weeks agoFix bug in inlining some CORE::* subs
Aaron Crane [Tue, 15 Jul 2014 17:28:42 +0000]
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.

2 weeks agot/op/coresubs.t: factor out an internal routine
Aaron Crane [Tue, 15 Jul 2014 17:25:22 +0000]
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.

2 weeks agoTest file had been renamed. remove old cruft
H.Merijn Brand [Fri, 1 Aug 2014 11:49:11 +0000]
Test file had been renamed. remove old cruft

2 weeks agoSync Config::Perl::V to version 0.21
H.Merijn Brand [Fri, 1 Aug 2014 11:14:09 +0000]
Sync Config::Perl::V to version 0.21

 * Add tests for each major distribution since 5.6.2
 * Better detect build times
 * Sync with 5.20.1

2 weeks agoadd --help to Porting/sync-with-cpan
H.Merijn Brand [Fri, 1 Aug 2014 10:39:06 +0000]
add --help to Porting/sync-with-cpan

2 weeks agoUpdate CPAN-Meta-Requirements to CPAN version 2.126
Chris 'BinGOs' Williams [Fri, 1 Aug 2014 08:28:53 +0000]
Update CPAN-Meta-Requirements to CPAN version 2.126

  [DELTA]

2.126     2014-07-30 16:26:29-04:00 America/New_York

    [FIXED]

    - Fixed compatibility with version.pm 0.77

    [DOCUMENTED]

    - Minor documentation fixes

    [CHANGED]

    - Modernized distribution meta files

2 weeks agoCorrect double mention of winpid_to_pid.
James E Keenan [Wed, 30 Jul 2014 11:45:40 +0000]
Correct double mention of winpid_to_pid.

As reported by graham at wdlabs dot com.

For: RT #122430

2 weeks agoAvoid pack/unpack to produce the binary form of a utf8 string
Rafael Garcia-Suarez [Wed, 30 Jul 2014 14:40:46 +0000]
Avoid pack/unpack to produce the binary form of a utf8 string