This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 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.

6 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

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

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

6 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

6 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

6 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.

6 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
definedness.

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

6 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

6 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 libperl.so links to something, then you'll get those
functions for free, but that is not the case on
Android.

6 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.

6 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
position

6 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.

6 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.

6 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

  [DELTA]

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

6 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.

6 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.

6 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

6 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

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

6 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)

6 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.

6 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.

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

6 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'.

6 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.

6 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

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

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

6 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

6 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"; }

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

print My::Controller->jopa();

6 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

6 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/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.

6 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

  [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)

6 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

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

6 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

6 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

6 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.

6 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.

6 years agoTest file had been renamed. remove old cruft
H.Merijn Brand [Fri, 1 Aug 2014 11:49:11 +0000 (13:49 +0200)]
Test file had been renamed. remove old cruft

6 years agoSync Config::Perl::V to version 0.21
H.Merijn Brand [Fri, 1 Aug 2014 11:14:09 +0000 (13:14 +0200)]
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

6 years agoadd --help to Porting/sync-with-cpan
H.Merijn Brand [Fri, 1 Aug 2014 10:39:06 +0000 (12:39 +0200)]
add --help to Porting/sync-with-cpan

6 years agoUpdate CPAN-Meta-Requirements to CPAN version 2.126
Chris 'BinGOs' Williams [Fri, 1 Aug 2014 08:28:53 +0000 (09:28 +0100)]
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

6 years agoCorrect double mention of winpid_to_pid.
James E Keenan [Wed, 30 Jul 2014 11:45:40 +0000 (07:45 -0400)]
Correct double mention of winpid_to_pid.

As reported by graham at wdlabs dot com.

For: RT #122430

6 years agoAvoid pack/unpack to produce the binary form of a utf8 string
Rafael Garcia-Suarez [Wed, 30 Jul 2014 14:40:46 +0000 (16:40 +0200)]
Avoid pack/unpack to produce the binary form of a utf8 string

6 years agoFix tabs in MANIFEST
Rafael Garcia-Suarez [Wed, 30 Jul 2014 14:13:20 +0000 (16:13 +0200)]
Fix tabs in MANIFEST

6 years agomake "require" handle no argument more gracefully, and add tests
Yves Orton [Wed, 30 Jul 2014 13:44:44 +0000 (15:44 +0200)]
make "require" handle no argument more gracefully, and add tests

in Perl 5.14 the following segfaults:

    *CORE::GLOBAL::require = sub { }; eval "require";

in Perl 5.18

    perl -wle'eval "require";'

produces a spurious warning:

    Use of uninitialized value $_ in require at (eval 1) line 1.

In other perls:

    perl -e 'eval q/require $this/ or print $@'

produces:

    Null filename used at (eval 1) line 1.

The error message is crappy, totally unfit for a perl audience,
and the spurious warning is just confusing. There is no $_ in use
here, why do we warn about it.

It looks like 9e3fb20c fixed the segfault (by accident), and also
somehow meant that the "Null filename" error would not ever be
produced.

So this patch ditches the crappy error and replaces it with something
meaningful and informative, and tests that we do not regress and start
segfaulting again.

6 years agoUpdate HTTP-Tiny to CPAN version 0.047
Chris 'BinGOs' Williams [Wed, 30 Jul 2014 08:12:58 +0000 (09:12 +0100)]
Update HTTP-Tiny to CPAN version 0.047

  [DELTA]

0.047     2014-07-29 14:09:05-04:00 America/New_York

    [CHANGED]

    - Updated Mozilla::CA module recommendation version to 20130114

    [FIXED]

    - Fixed t/00-report-prereqs.t when CPAN::Meta is not installed

0.046     2014-07-21 10:32:32-04:00 America/New_York

    [FIXED]

    - Empty header fields are now allowed; headers with the 'undef' value
      will be rendered as an empty header.

    [DOCUMENTED]

    - Updated HTTP/1.1 spec description from RFC 2616 to RFC 7230-7235

0.045     2014-07-19 23:17:28-04:00 America/New_York (TRIAL RELEASE)

    [FIXED]

    - Fixed t/002_croakage.t for various operating systems.

6 years agoUpdate CPAN-Meta to CPAN version 2.142060
Chris 'BinGOs' Williams [Wed, 30 Jul 2014 08:05:06 +0000 (09:05 +0100)]
Update CPAN-Meta to CPAN version 2.142060

  [DELTA]

2.142060  2014-07-25 13:30:06-04:00 America/New_York

  [ADDED]

  - CPAN::Meta::Merge is a new class for merging two possibly overlapping
    instances of metadata. It will accept both CPAN::Meta objects and
    (possibly incomplete) hashrefs of metadata.

6 years agoSync Module-CoreList version after CPAN release
Chris 'BinGOs' Williams [Wed, 30 Jul 2014 07:57:06 +0000 (08:57 +0100)]
Sync Module-CoreList version after CPAN release

6 years agoMention sv_gets as the Perl-ish fgets-ish API.
Jarkko Hietaniemi [Tue, 29 Jul 2014 02:10:47 +0000 (22:10 -0400)]
Mention sv_gets as the Perl-ish fgets-ish API.

6 years agoAdd atol, atoll, strtoq to avoidables.
Jarkko Hietaniemi [Tue, 29 Jul 2014 02:36:44 +0000 (22:36 -0400)]
Add atol, atoll, strtoq to avoidables.

6 years agoAdd system to avoidables.
Jarkko Hietaniemi [Tue, 29 Jul 2014 02:09:34 +0000 (22:09 -0400)]
Add system to avoidables.

6 years agogrok_atou() is UV now, not Size_t.
Jarkko Hietaniemi [Tue, 29 Jul 2014 02:06:08 +0000 (22:06 -0400)]
grok_atou() is UV now, not Size_t.

6 years agoMove return false out of switch default.
Jarkko Hietaniemi [Tue, 29 Jul 2014 11:54:57 +0000 (07:54 -0400)]
Move return false out of switch default.

6 years agoNOTREACHED goes at/in the unreachable, not after it.
Jarkko Hietaniemi [Tue, 29 Jul 2014 01:02:21 +0000 (21:02 -0400)]
NOTREACHED goes at/in the unreachable, not after it.

6 years agoNegatives as UVs: sign-extension intentional, add cast.
Jarkko Hietaniemi [Tue, 29 Jul 2014 00:55:31 +0000 (20:55 -0400)]
Negatives as UVs: sign-extension intentional, add cast.

6 years agoRevert part of b844a53a to fix ./perl -Ilib t/io/fs.t
Jarkko Hietaniemi [Mon, 28 Jul 2014 23:30:13 +0000 (19:30 -0400)]
Revert part of b844a53a to fix ./perl -Ilib t/io/fs.t

The temps are created in t, but $ENV{PWD} points to root.

The change was made for Android support, but is now obsoleted
by newer code for Android, just below.

6 years agoSkip ext/GDBM_File/t/fatal.t in Darwin, too flaky.
Jarkko Hietaniemi [Mon, 28 Jul 2014 19:52:56 +0000 (15:52 -0400)]
Skip ext/GDBM_File/t/fatal.t in Darwin, too flaky.

(random crashes at destruction time)

See https://rt.perl.org/Public/Bug/Display.html?id=117967
and jhi ran into this in OS 10.9.4 + blead + gdbm 1.11
(gdbm via macports, but shouldn't matter much: flaky is flaky).

6 years agoavoid passing large backreference numbers back as negative numbers
Tony Cook [Mon, 28 Jul 2014 06:40:49 +0000 (16:40 +1000)]
avoid passing large backreference numbers back as negative numbers

6 years agospell "SSize_t" correctly
Tony Cook [Mon, 28 Jul 2014 01:46:19 +0000 (11:46 +1000)]
spell "SSize_t" correctly

the same as the other place in that patch

6 years agoreadlink() result buffer is not zero-terminated.
Jarkko Hietaniemi [Sat, 26 Jul 2014 13:42:30 +0000 (09:42 -0400)]
readlink() result buffer is not zero-terminated.

Therefore, as an extra paranoia step, zero-terminate
the readlink result buffer even before the result SV is created.

Also, readlink returns SSize_t, not int.

6 years agoPOSIX.pod: Document correct redirect for 'atexit'.
Lukas Mai [Sun, 27 Jul 2014 13:09:50 +0000 (09:09 -0400)]
POSIX.pod: Document correct redirect for 'atexit'.

For: RT #122412

6 years agoSimplify cppsym dash problem
H.Merijn Brand [Sat, 26 Jul 2014 19:43:54 +0000 (21:43 +0200)]
Simplify cppsym dash problem

6 years agoutf8.c: Use slightly more efficient macro
Karl Williamson [Fri, 25 Jul 2014 20:57:33 +0000 (14:57 -0600)]
utf8.c: Use slightly more efficient macro

Lowercasing a Latin-1 range character results in a latin-1 range
character, so we can use the more restrictive macros that is slightly
more efficient than the general ones.  (This difference only is
applicable on EBCDIC platforms, as the macros all expand to nothing on
ASCII ones.

6 years agoperlop: Update to reflect 5.20 changes
Karl Williamson [Fri, 25 Jul 2014 20:56:46 +0000 (14:56 -0600)]
perlop: Update to reflect 5.20 changes

Some deprecations have become fatal in v5.20

6 years agoperlop: Nits
Karl Williamson [Fri, 25 Jul 2014 20:44:46 +0000 (14:44 -0600)]
perlop: Nits

6 years agoperlop: Update text to reflect code changes
Karl Williamson [Fri, 25 Jul 2014 17:31:26 +0000 (11:31 -0600)]
perlop: Update text to reflect code changes

The warning message is no longer misleading, so no need to point out
anything about it.

6 years agoOnly use setenv() on Solaris if it is available.
Andy Dougherty [Fri, 25 Jul 2014 17:55:32 +0000 (13:55 -0400)]
Only use setenv() on Solaris if it is available.

This is a followup to 07ad9e0e19891ec129e1a78e40a66ca19b51302d.
util.c:Perl_my_setenv() unconditionally used setenv() if #defined(__sun).
Solaris 8 had neither setenv() nor unsetenv(), so it failed.  Configure
does not currently check for setenv(), but the check for unsetenv()
is sufficient here since Solaris 9 and later have both.

6 years agoConfigure: Handle hyphens when searching cpp symbols
Brian Fraser [Fri, 25 Jul 2014 17:46:41 +0000 (19:46 +0200)]
Configure: Handle hyphens when searching cpp symbols

This is really just for Android, which in Configure is
known as linux-android; the hyphen is passes as-is to
the preprocessor, which handles it as a minus.

So don't do that.

6 years agoConfigure: Discard errors when testing for less -R
Brian Fraser [Fri, 25 Jul 2014 17:13:26 +0000 (19:13 +0200)]
Configure: Discard errors when testing for less -R

When we try replacing 'less' with 'less -R', it's possible
that less will output errors if the option is not supported;
this happens, for example, in busybox's less.

6 years agot/op/taint.t: Accommodate for systems without an inbuilt echo (android, blackberry)
Brian Fraser [Fri, 25 Jul 2014 16:34:03 +0000 (18:34 +0200)]
t/op/taint.t: Accommodate for systems without an inbuilt echo (android, blackberry)

6 years agoMakefile.SH: Add missing files for make test on cross builds
Brian Fraser [Thu, 24 Jul 2014 13:54:30 +0000 (15:54 +0200)]
Makefile.SH: Add missing files for make test on cross builds

6 years agoMakefile.SH: Fix cross builds with -Uhostgenerate
Brian Fraser [Thu, 24 Jul 2014 13:53:52 +0000 (15:53 +0200)]
Makefile.SH: Fix cross builds with -Uhostgenerate

6 years agot/re/subst.t: Proper skip for systems without locale
Brian Fraser [Thu, 24 Jul 2014 13:53:17 +0000 (15:53 +0200)]
t/re/subst.t: Proper skip for systems without locale

6 years agopp.c: Fixed a quotemeta bug on perls built without locale.
Brian Fraser [Thu, 24 Jul 2014 13:51:35 +0000 (15:51 +0200)]
pp.c: Fixed a quotemeta bug on perls built without locale.

This was causing quotemeta("\N{U+D7}") to not be quoted, as well as
some other codepoints in the latin1 range.

6 years agoMake PERL_GLOBAL_STRUCT_PRIVATE visible in -V.
Jarkko Hietaniemi [Fri, 25 Jul 2014 00:20:56 +0000 (20:20 -0400)]
Make PERL_GLOBAL_STRUCT_PRIVATE visible in -V.

6 years agoUnused dVARs found by g++ -DPERL_GLOBAL_STRUCT_PRIVATE.
Jarkko Hietaniemi [Thu, 24 Jul 2014 23:31:04 +0000 (19:31 -0400)]
Unused dVARs found by g++ -DPERL_GLOBAL_STRUCT_PRIVATE.

6 years agoShare common constants as file statics.
Jarkko Hietaniemi [Thu, 24 Jul 2014 02:32:45 +0000 (22:32 -0400)]
Share common constants as file statics.

6 years agoUse UV instead of Size_t.
Jarkko Hietaniemi [Wed, 23 Jul 2014 14:38:50 +0000 (10:38 -0400)]
Use UV instead of Size_t.

A strong reason for using UV are the promised custom codepoints,
they go beyond 32-bit.

The overflow logic didn't work if Size_t was 32-bit but the UV was 64-bit.
Steal the battle-proven logic from grok_number_flags().

The numeric.xs or grok.t were not right in 32-bit, either.

Add comments.

6 years agoRemove flagging OP_READLINE with OPf_SPECIAL
Rafael Garcia-Suarez [Thu, 24 Jul 2014 11:26:10 +0000 (13:26 +0200)]
Remove flagging OP_READLINE with OPf_SPECIAL

This was used to distinguish forms <FILE> from <$file>, but doesn't
seem to be used anymore by anything.

6 years agoapidoc fixes, comment tweaks.
Jarkko Hietaniemi [Wed, 23 Jul 2014 14:01:08 +0000 (10:01 -0400)]
apidoc fixes, comment tweaks.

6 years agoVladimir Marek is now a perl author
Tony Cook [Wed, 23 Jul 2014 07:11:42 +0000 (17:11 +1000)]
Vladimir Marek is now a perl author

6 years agouse setenv() on Solaris
Vladimir Marek [Wed, 23 Jul 2014 07:05:59 +0000 (17:05 +1000)]
use setenv() on Solaris

6 years agobump $XS::APItest::VERSION for the grok_atou() merge
Tony Cook [Wed, 23 Jul 2014 04:21:42 +0000 (14:21 +1000)]
bump $XS::APItest::VERSION for the grok_atou() merge

6 years agoChad Granum is now a perl author
Tony Cook [Wed, 23 Jul 2014 03:51:30 +0000 (13:51 +1000)]
Chad Granum is now a perl author

6 years agoFix ok() that should be a like()
Chad Granum [Wed, 16 Jul 2014 06:10:37 +0000 (23:10 -0700)]
Fix ok() that should be a like()

6 years agoDelay loading Test::More
Chad Granum [Wed, 16 Jul 2014 06:10:20 +0000 (23:10 -0700)]
Delay loading Test::More

6 years agoFix legacy VMS feature checking status.
Craig A. Berry [Wed, 23 Jul 2014 01:38:29 +0000 (20:38 -0500)]
Fix legacy VMS feature checking status.

Back in 8dc9d3390b257b I consolidated two routines that were
almost identical -- except for their return values.  The routine
I kept returns the length of the equivalence name after logical
name translation, but some uses of it were checking it to see if
it was a successful VMS condition value.  Which means an odd length
(such as from "1") was successful but an even length (such as from
"ENABLE", the value recommended in the documentation) failed. So
fix those uses to check for a non-zero from simple_trnlnm.

For most features this only affected pre-7.3 systems, i.e., VMS
releases more than thirteen years old.  However, it also affected
features such as PERL_VMS_POSIX_EXIT that we have made up on our
own and are not tracking a CRTL feature.

6 years agoIntroduce maxend for paranoia. Also, comments.
Jarkko Hietaniemi [Tue, 22 Jul 2014 11:46:26 +0000 (07:46 -0400)]
Introduce maxend for paranoia.  Also, comments.

6 years agoAtol can be strtol in disguise, so grok_atou.
Jarkko Hietaniemi [Tue, 22 Jul 2014 01:29:22 +0000 (21:29 -0400)]
Atol can be strtol in disguise, so grok_atou.

6 years agoAdd strtoul and strtol to avoidables.
Jarkko Hietaniemi [Mon, 21 Jul 2014 19:16:33 +0000 (15:16 -0400)]
Add strtoul and strtol to avoidables.

6 years agoDocument grok_atou as strtoul replacement.
Jarkko Hietaniemi [Mon, 21 Jul 2014 19:15:42 +0000 (15:15 -0400)]
Document grok_atou as strtoul replacement.

6 years agoUse grok_atou instead of strtoul (no explicit strtol uses).
Jarkko Hietaniemi [Mon, 21 Jul 2014 18:59:58 +0000 (14:59 -0400)]
Use grok_atou instead of strtoul (no explicit strtol uses).

6 years agoAdvertise grok_atou.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:56:49 +0000 (10:56 -0400)]
Advertise grok_atou.

6 years agoAdd atoi to avoidables.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:53:10 +0000 (10:53 -0400)]
Add atoi to avoidables.

6 years agoAdd tests for grok_atou.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:07:05 +0000 (10:07 -0400)]
Add tests for grok_atou.

6 years agoUse grok_atou instead of atoi.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:50:54 +0000 (10:50 -0400)]
Use grok_atou instead of atoi.

Remaining atoi() uses include at least:
ext/DynaLoader/dl_aix.xs, os2/os2.c, vms/vms.c

6 years agoImplement grok_atou as safe/strict atoi replacement.
Jarkko Hietaniemi [Mon, 21 Jul 2014 14:41:20 +0000 (10:41 -0400)]
Implement grok_atou as safe/strict atoi replacement.

For earlier discussion, see:
http://www.nntp.perl.org/group/perl.perl5.porters/2013/10/msg208680.html
https://rt.perl.org/Public/Bug/Display.html?id=116118#txn-1250187

grok_atou is completely new code, instead of trying to bolt
new parameters/flags to grok_number.  This makes it easier to
be extremely strict, and not worry about breaking grok_number.