perl.git
33 hours agoRevert "use a specific define for 64 bit hashing" blead
Yves Orton [Sun, 23 Apr 2017 09:59:34 +0000 (11:59 +0200)] 
Revert "use a specific define for 64 bit hashing"

This reverts commit a4283faf7092ec370914ee3e4e7afeddd0115689.

Accidental push. Sorry.

33 hours agoRevert "Tweak our hash bucket splitting rules"
Yves Orton [Sun, 23 Apr 2017 09:58:24 +0000 (11:58 +0200)] 
Revert "Tweak our hash bucket splitting rules"

This reverts commit 05f97de032fe95cabe8c9f6d6c0a5897b1616194.

Accidentally pushed while waiting for blead-unfreeze.

33 hours agomake fix for #131190 EBCDIC safe
Yves Orton [Sun, 23 Apr 2017 09:53:00 +0000 (11:53 +0200)] 
make fix for #131190 EBCDIC safe

33 hours agoRevert "Add new hashing and "hash with state" infrastructure"
Yves Orton [Sun, 23 Apr 2017 09:47:13 +0000 (11:47 +0200)] 
Revert "Add new hashing and "hash with state" infrastructure"

This reverts commit a3bf60fbb1f05cd2c69d4ff0a2ef99537afdaba7.

Accidentally pushed work pending unfreeze.

33 hours agoRevert "Move utility macros to their own file"
Yves Orton [Sun, 23 Apr 2017 09:47:10 +0000 (11:47 +0200)] 
Revert "Move utility macros to their own file"

This reverts commit 259e968485f855f70472c8be9267efceca42b0fb.

Accidentally pushed work pending unfreeze.

33 hours agoRevert "get rid of USE_HASH_SEED_EXPLICIT"
Yves Orton [Sun, 23 Apr 2017 09:47:04 +0000 (11:47 +0200)] 
Revert "get rid of USE_HASH_SEED_EXPLICIT"

This reverts commit dd1b95f812312c85390f487887cdd55282fcd6ce.

Accidentally pushed work pending unfreeze.

33 hours agoRevert "improve and update hash algorithm configuration docs in INSTALL"
Yves Orton [Sun, 23 Apr 2017 09:46:52 +0000 (11:46 +0200)] 
Revert "improve and update hash algorithm configuration docs in INSTALL"

This reverts commit e7e07d980872d020fd93a43cda96f72c8013af20.

Accidentally pushed work pending unfreeze.

33 hours agoRevert "remove dead comment"
Yves Orton [Sun, 23 Apr 2017 09:46:32 +0000 (11:46 +0200)] 
Revert "remove dead comment"

This reverts commit c25b844905729021ec43dcc6c244d99330d7260a.

Accidentally pushed work pending un-freeze.

33 hours agoFix #131190 - UTF8 code improperly casting negative integer to U8 in comparison
Yves Orton [Sun, 23 Apr 2017 09:44:10 +0000 (11:44 +0200)] 
Fix #131190 - UTF8 code improperly casting negative integer to U8 in comparison

33 hours agoremove dead comment
Yves Orton [Thu, 23 Mar 2017 12:38:37 +0000 (13:38 +0100)] 
remove dead comment

33 hours agoimprove and update hash algorithm configuration docs in INSTALL
Yves Orton [Thu, 23 Mar 2017 10:57:36 +0000 (11:57 +0100)] 
improve and update hash algorithm configuration docs in INSTALL

Updated to reflect new hash functions, along with some wordsmithing
tweaks to make things read more smoothly (hopefully).

33 hours agoget rid of USE_HASH_SEED_EXPLICIT
Yves Orton [Thu, 23 Mar 2017 10:54:43 +0000 (11:54 +0100)] 
get rid of USE_HASH_SEED_EXPLICIT

I think this has been outright broken for a long time, and it
doesnt make any sense to since mandatory randomization anyway,
so simply remove it.

33 hours agoMove utility macros to their own file
Yves Orton [Thu, 23 Mar 2017 10:06:13 +0000 (11:06 +0100)] 
Move utility macros to their own file

so that hv_func is left with only logic relating to selecting
and configuring the hash function we use, not the macros our
hash functions use.

33 hours agoAdd new hashing and "hash with state" infrastructure
Yves Orton [Wed, 22 Mar 2017 15:40:28 +0000 (16:40 +0100)] 
Add new hashing and "hash with state" infrastructure

This adds support for three new hash functions: StadtX, Zaphod32 and SBOX,
and reworks some of our hash internals infrastructure to do so.

SBOX is special in that it is designed to be used in conjuction with any
other hash function for hashing short strings very efficiently and very
securely. It features compile time options on how much memory and startup
time are traded off to control the length of keys that SBOX hashes.

This also adds support for caching the hash values of single byte characters
which can be used in conjuction with any other hash, including SBOX, although
SBOX itself is as fast as the lookup cache, so typically you wouldnt use both
at the same time.

This also *removes* support for Jenkins One-At-A-Time. It has served us
well, but it's day is done.

This patch adds three new files: zaphod32_hash.h, stadtx_hash.h,
sbox32_hash.h

33 hours agoTweak our hash bucket splitting rules
Yves Orton [Wed, 22 Mar 2017 14:59:31 +0000 (15:59 +0100)] 
Tweak our hash bucket splitting rules

Prior to this patch we resized hashes when after inserting a key
the load factor of the hash reached 1 (load factor= keys / buckets).

This patch makes two subtle changes to this logic:

1. We split only after inserting a key into an utilized bucket,
2. and the maximum load factor exceeds 0.667

The intent and effect of this change is to increase our hash tables
efficiency. Reducing the maximum load factor 0.667 means that we should
have much less keys in collision overall, at the cost of some unutilized
space (2/3rds was chosen as it is easier to calculate than 0.7). On the
other hand, only splitting after a collision means in theory that we execute
the "final split" less often. Additionally, insertin a key into an unused
bucket increases the efficiency of the hash, without changing the worst
case.[1] In other words without increasing collisions we use the space
in our hashes more efficiently.

A side effect of this hash is that the size of a hash is more sensitive
to key insert order. A set of keys with some collisions might be one
size if those collisions were encountered early, or another if they were
encountered later. Assuming random distribution of hash values about
50% of hashes should be smaller than they would be without this rule.

The two changes complement each other, as changing the maximum load
factor decreases the chance of a collision, but changing to only split
after a collision means that we won't waste as much of that space we
might.

[1] Since I personally didnt find this obvious at first here is my
explanation:

The old behavior was that we doubled the number of buckets when the
number of keys in the hash matched that of buckets. So on inserting
the Kth key into a K bucket hash, we would double the number of
buckets.  Thus the worse case prior to this patch was a hash
containing K-1 keys which all hash into a single  bucket, and the post
split worst case behavior would be having K items in a single bucket
of a hash with 2*K buckets total.

The new behavior says that we double the size of the hash once inserting
an item into an occupied bucket and after doing so we exceeed the maximum
load factor (leave aside the change in maximum load factor in this patch).
If we insert into an occupied bucket (including the worse case bucket) then
we trigger a key split, and we have exactly the same cases as before.
If we insert into an empty bucket then we now have a worst case of K-1 items
in one bucket, and 1 item in another, in a hash with K buckets, thus the
worst case has not changed.

33 hours agouse a specific define for 64 bit hashing
Yves Orton [Wed, 15 Mar 2017 14:03:42 +0000 (15:03 +0100)] 
use a specific define for 64 bit hashing

3 days agoLink to epigraph
Sawyer X [Fri, 21 Apr 2017 10:35:54 +0000 (12:35 +0200)] 
Link to epigraph

3 days agoMerge branch 'blead' of ssh://perl5.git.perl.org/perl into blead
Sawyer X [Thu, 20 Apr 2017 22:49:39 +0000 (00:49 +0200)] 
Merge branch 'blead' of ssh://perl5.git.perl.org/perl into blead

3 days agoBump version: 5.25.12 -> 5.26.0
Sawyer X [Thu, 20 Apr 2017 22:48:59 +0000 (00:48 +0200)] 
Bump version: 5.25.12 -> 5.26.0

3 days agoBump Module::CoreList version
Sawyer X [Thu, 20 Apr 2017 22:48:48 +0000 (00:48 +0200)] 
Bump Module::CoreList version

3 days agoCorelist Morelist
Chris 'BinGOs' Williams [Thu, 20 Apr 2017 22:21:28 +0000 (23:21 +0100)] 
Corelist Morelist

3 days agoFix empty link problem
Sawyer X [Thu, 20 Apr 2017 21:16:05 +0000 (23:16 +0200)] 
Fix empty link problem

3 days agoTick off
Sawyer X [Thu, 20 Apr 2017 21:00:03 +0000 (23:00 +0200)] 
Tick off

3 days agoAdd epigraph, minus the link
Sawyer X [Thu, 20 Apr 2017 20:59:26 +0000 (22:59 +0200)] 
Add epigraph, minus the link

3 days agoMerge branch 'release-5.25.12' into blead
Sawyer X [Thu, 20 Apr 2017 19:56:51 +0000 (21:56 +0200)] 
Merge branch 'release-5.25.12' into blead

4 days agoRemove refs to bare ?RE? in pods v5.25.12
Karl Williamson [Thu, 20 Apr 2017 16:11:41 +0000 (10:11 -0600)] 
Remove refs to bare ?RE? in pods

4 days agoRemove refs to bare ?RE? in pods
Karl Williamson [Thu, 20 Apr 2017 16:11:41 +0000 (10:11 -0600)] 
Remove refs to bare ?RE? in pods

4 days agoadd new release to perlhist
Sawyer X [Thu, 20 Apr 2017 15:14:26 +0000 (17:14 +0200)] 
add new release to perlhist

4 days agoFinalizing perldelta
Sawyer X [Thu, 20 Apr 2017 14:36:45 +0000 (16:36 +0200)] 
Finalizing perldelta

4 days agoFix perldelta and perldiag
Sawyer X [Thu, 20 Apr 2017 13:13:49 +0000 (15:13 +0200)] 
Fix perldelta and perldiag

4 days agoUpdate Module::CoreList for 5.25.12
Sawyer X [Thu, 20 Apr 2017 12:14:29 +0000 (14:14 +0200)] 
Update Module::CoreList for 5.25.12

4 days agoPreparing perldelta
Sawyer X [Thu, 20 Apr 2017 12:05:57 +0000 (14:05 +0200)] 
Preparing perldelta

4 days agoDocument 1c99110 in the right place
Sawyer X [Thu, 20 Apr 2017 09:12:47 +0000 (11:12 +0200)] 
Document 1c99110 in the right place

5 days agoRegenerate opcodes (regen/opcode.pl)
Sawyer X [Wed, 19 Apr 2017 14:55:29 +0000 (16:55 +0200)] 
Regenerate opcodes (regen/opcode.pl)

5 days agoRegen uconfig.sh
Sawyer X [Wed, 19 Apr 2017 14:30:28 +0000 (16:30 +0200)] 
Regen uconfig.sh

5 days agoSet Module::CoreList back to 5.25.12
Sawyer X [Wed, 19 Apr 2017 14:30:20 +0000 (16:30 +0200)] 
Set Module::CoreList back to 5.25.12

5 days agoMark as unstable
Sawyer X [Wed, 19 Apr 2017 14:23:17 +0000 (16:23 +0200)] 
Mark as unstable

5 days agoVersion debump: 5.26.0 -> 5.25.12
Sawyer X [Wed, 19 Apr 2017 14:22:20 +0000 (16:22 +0200)] 
Version debump: 5.26.0 -> 5.25.12

5 days agoAnother dev release...
Sawyer X [Wed, 19 Apr 2017 13:54:30 +0000 (15:54 +0200)] 
Another dev release...

6 days ago[MERGE] fix require's croak message
David Mitchell [Tue, 18 Apr 2017 12:14:10 +0000 (13:14 +0100)] 
[MERGE] fix require's croak message

RT #131098

This branch fixes two issues with the message produced when
require croaks.

First it mentioned @INC even when @INC wasn't scanned, and second it
emitted the "you may need to install Foo::Bar module" hint even when the
failed-to-load pathname wasn't reverse-mappable to a module name.

6 days agoemit require module name err hint only when valid
David Mitchell [Sun, 16 Apr 2017 08:50:04 +0000 (09:50 +0100)] 
emit require module name err hint only when valid

RT #131098

The helpful "you may need to install" hint which 'require' sometimes
includes in its error message these days (split across multiple lines for
clarity):

    $ perl -e'require Foo::Bar'
    Can't locate Foo/Bar.pm in @INC
        (you may need to install the Foo::Bar module)
        (@INC contains: ... ) at ...

is a bit over-enthusiastic when the pathname hasn't actually been derived
from a module name:

    $ perl -e'require "Foo.+/%#Bar.pm"'
    Can't locate Foo.+%#Bar.pm in @INC
        (you may need to install the Foo.+::%#Bar module)
        (@INC contains: ... ) at ...

This commit changes things so that the hint message is only emitted if the
reverse-mapped module name is legal as a bareword:

    $ perl -e'require "Foo.+/%#Bar.pm"'
    Can't locate Foo.+%#Bar.pm in @INC
        (@INC contains: ... ) at ...

6 days agorequire die msg: only mention @INC if used
David Mitchell [Thu, 13 Apr 2017 11:23:59 +0000 (12:23 +0100)] 
require die msg: only mention @INC if used

RT #131098

5.8.0 introduced a change which as an inadvertent side-effect caused
this @INC-related require croak message:

    Can't locate foo in @INC (@INC contains: ...) at ...

to be emitted even when foo is a non-searchable pathname (like /foo or
./foo) and @INC isn't used.

This commit reverts the error message in these cases to be the simple

    Can't locate foo at ...

6 days agoS_require_file() : simplify an else if block
David Mitchell [Thu, 13 Apr 2017 10:53:35 +0000 (11:53 +0100)] 
S_require_file() : simplify an else if block

change

    if (...) {
        ...
    }
    else {
      if (...) {
        ...
      }
    }
to

    if (...) {
        ...
    }
    else if (...) {
        ...
    }

Should make no functional difference

6 days agobetter comment require() source.
David Mitchell [Thu, 13 Apr 2017 10:50:39 +0000 (11:50 +0100)] 
better comment require() source.

Add code more comments to S_require_file() and its helpder functions to
better understand what's going on.

6 days agoadd PERL_UTIL_H_ to util.h, not util.h
David Mitchell [Tue, 18 Apr 2017 08:21:17 +0000 (09:21 +0100)] 
add PERL_UTIL_H_ to util.h, not util.h

With v5.25.11-59-g7335cb8 I added an include guard. PERL_UTIL_H_,
but added it to util.c rather than util.h.

I am not a smart man....

6 days agoWorkaround for GNU Autoconf unescaped left brace
Karl Williamson [Mon, 10 Apr 2017 16:41:40 +0000 (10:41 -0600)] 
Workaround for GNU Autoconf unescaped left brace

See [perl #130497]

GNU Autoconf depends on Perl, and will not work on Blead (and the
forthcoming Perl 5.26), due to a single unescaped '{', that has
previously been deprecated and is now fatal.  A patch for it has been in
the Autoconf repository since early 2013, but there has not been a
release since before then.

Because this is depended on by so much code, and because it is simpler
than trying to revert to making the fatality merely deprecated, this
patch simply changes perl to not die when compiled with the exact
pattern that trips up Autoconf.  Thus Autoconf can continue to work, but
any other patterns that use the now illegal construct will continue to
die.  If other code uses the exact pattern, they too will not die, but
the deprecation message continues to get raised.  The use of the left
brace in this particular pattern is not one where we envision using the
construct to mean something else, so a deprecation is suitable for the
foreseeable future.

7 days agoNet-Ping udp not allowed in AIX or IRIX, either.
Jarkko Hietaniemi [Mon, 17 Apr 2017 13:57:51 +0000 (16:57 +0300)] 
Net-Ping udp not allowed in AIX or IRIX, either.

7 days agoUpdate CPAN.pm to ANDK/CPAN-2.18-TRIAL.tar.gz
David Mitchell [Sun, 16 Apr 2017 20:04:01 +0000 (21:04 +0100)] 
Update CPAN.pm to ANDK/CPAN-2.18-TRIAL.tar.gz

RT #131141

CPAN-2.17-TRIAL tried to narrow the scope to the phases prepare, make,
and test, but after some testing evidence took shape that
PERL_USE_UNSAFE_INC=1 is also needed for the install phase.

2.18 provides this change. The second issue fixed in 2.18 addresses
RT #120781, an ugly bug with a trivial fix.

7 days agoadd include guard to util.h
David Mitchell [Sun, 16 Apr 2017 19:49:45 +0000 (20:49 +0100)] 
add include guard to util.h

see RT #131110 for the bikeshedding on what name to use.

Based on an original patch by Jim Schneider

10 days agothreads::shared: alloc arenas with correct context
David Mitchell [Fri, 14 Apr 2017 09:51:56 +0000 (10:51 +0100)] 
threads::shared: alloc arenas with correct context

RT #131124

In a couple of places in shared.xs, it calls sv_newmortal() with
a perl context different from that currently set by PERL_SET_CONTEXT().
If sv_newmortal() happens to trigger the malloc of a new SV HEAD arena,
then under PERL_TRACK_MEMPOOL, this will cause panics when the arena is
freed or realloced.

11 days agofix perldiag entry for do '.' warning
David Mitchell [Thu, 13 Apr 2017 09:12:31 +0000 (10:12 +0100)] 
fix perldiag entry for do '.' warning

Its an enabled-by-default deprecation warning

11 days agomore tweaks to 'do's pod
David Mitchell [Mon, 10 Apr 2017 11:43:02 +0000 (12:43 +0100)] 
more tweaks to 'do's pod

Make it clear that both ./ and ../ are special-cased.

12 days agoperlunicode: Update text about malformed UTF-8
Karl Williamson [Tue, 11 Apr 2017 19:31:20 +0000 (13:31 -0600)] 
perlunicode: Update text about malformed UTF-8

13 days agoPATCH: [perl #130801] perlapi: Clarify SvIV/SvUV/SvNV behavior
Pali [Sun, 5 Mar 2017 10:35:51 +0000 (11:35 +0100)] 
PATCH: [perl #130801] perlapi: Clarify SvIV/SvUV/SvNV behavior

[The committer made a few changes for improved readability]

2 weeks agoperlunicode: Add link
Karl Williamson [Sat, 8 Apr 2017 18:52:05 +0000 (12:52 -0600)] 
perlunicode: Add link

2 weeks agoPATCH: [perl #121292] wrong perlunicode BOM claims
Karl Williamson [Sat, 8 Apr 2017 18:36:32 +0000 (12:36 -0600)] 
PATCH: [perl #121292] wrong perlunicode BOM claims

A BOM at the beginning of a UTF-8 file is ignored, and doesn't otherwise
do anything.

2 weeks agoSpelling corrections only.
James E Keenan [Fri, 7 Apr 2017 15:09:22 +0000 (11:09 -0400)] 
Spelling corrections only.

2 weeks ago[MERGE] make tests run without '.' in @INC
David Mitchell [Fri, 7 Apr 2017 13:55:37 +0000 (14:55 +0100)] 
[MERGE] make tests run without '.' in @INC

Update TestInuit.pm etc so that tests are no longer invoked with
'.' in @INC. Then fix up all the tests that break because of this.
Then fix up some bad usage of 'do' that's not detected by tests.

2 weeks agoSafe.pm: document rdo()'s usage of @INC
David Mitchell [Fri, 7 Apr 2017 11:51:19 +0000 (12:51 +0100)] 
Safe.pm: document rdo()'s usage of @INC

2 weeks agofix and test execution of non-empty .bs files
David Mitchell [Fri, 7 Apr 2017 11:39:53 +0000 (12:39 +0100)] 
fix and test execution of non-empty .bs files

During the build of XS modules, an empty Foo.bs file is normally created
for each Foo.so file. If a Foo_BS file is present, instead this triggers
the auto-generatation of a .bs file which may have executable perl
content.

However, nothing in core currently generates a non-empty .bs file.  So add
a test that this mechanism works, and fix up the three dynamic lib loaders
which implement the 'do $bs if -s $bs' mechanism to not rely on the
process having '.' present in @INC.

As it happens this already works currently, because the name of the
.bs file to load will usually be something like

    ../../lib/auto/Foo/Foo.bs

and the presence of the leading '..' causes 'do' to load the file directly
rather than via @INC.  But locally fix up @INC anyway, in case '../' isn't
always the case.

2 weeks agodist/Unicode-Normalize/Makefile.PL: fix 'do'
David Mitchell [Fri, 7 Apr 2017 11:05:34 +0000 (12:05 +0100)] 
dist/Unicode-Normalize/Makefile.PL: fix 'do'

It 'do's a file in the current directory, which fails without '.' in @INC.
This doesn't matter in core at the moment, but CPAN releases should be
fixed.

2 weeks agofix cases where 'do file' should be 'do ./file'.
James E Keenan [Mon, 27 Mar 2017 23:31:34 +0000 (19:31 -0400)] 
fix cases where 'do file' should be 'do ./file'.

These are some cases which weren't picked up by the test suite
[ This is a subset of a set of fixes originally submitted by James as
2 commits - DAPM]

2 weeks agoutils/libnetcfg: fix 'do' without '.' in @INC
David Mitchell [Mon, 3 Apr 2017 16:32:58 +0000 (17:32 +0100)] 
utils/libnetcfg: fix 'do' without '.' in @INC

Note that this isn't normally executed during build, so it wasn't spotted
earlier.

2 weeks agoPorting/bench.pl: fix 'do' without '.' in @INC
David Mitchell [Mon, 3 Apr 2017 16:03:42 +0000 (17:03 +0100)] 
Porting/bench.pl: fix 'do' without '.' in @INC

The --benchfile arg (default t/perf/benchmarks) is supposed to be loaded
via 'do'. With '.' no longer in @INC by default, it doesn't find files
with relative paths.

2 weeks agofixup regen/regcharclass.pl for no '.'in @INC
David Mitchell [Mon, 3 Apr 2017 15:20:22 +0000 (16:20 +0100)] 
fixup regen/regcharclass.pl for no '.'in @INC

Note that this isn't normally executed during build, so it wasn't spotted
earlier.

2 weeks agofix dist/Safe/t/*.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 10:41:25 +0000 (11:41 +0100)] 
fix dist/Safe/t/*.t that assumed '.' in @INC

2 weeks agofix dist/Time-HiRes/t/*.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 10:24:33 +0000 (11:24 +0100)] 
fix dist/Time-HiRes/t/*.t that assumed '.' in @INC

2 weeks agofix ExtUtils-ParseXS/t/*.t that needed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 10:18:22 +0000 (11:18 +0100)] 
fix ExtUtils-ParseXS/t/*.t that needed '.' in @INC

2 weeks agofix dist/base/t/*.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 10:14:24 +0000 (11:14 +0100)] 
fix dist/base/t/*.t that assumed '.' in @INC

2 weeks agofix lib/B/Deparse.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 10:12:22 +0000 (11:12 +0100)] 
fix lib/B/Deparse.t that assumed '.' in @INC

2 weeks agofix ext/Pod-Html/t/*.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 08:57:12 +0000 (09:57 +0100)] 
fix ext/Pod-Html/t/*.t that assumed '.' in @INC

2 weeks agofix ext/arybase/t/*.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 08:45:10 +0000 (09:45 +0100)] 
fix ext/arybase/t/*.t that assumed '.' in @INC

2 weeks agofix ext/XS-APItest/t/*.t that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 08:42:37 +0000 (09:42 +0100)] 
fix ext/XS-APItest/t/*.t that assumed '.' in @INC

2 weeks agofixup tests under t/ that assumed '.' in @INC
David Mitchell [Fri, 7 Apr 2017 08:32:01 +0000 (09:32 +0100)] 
fixup tests under t/ that assumed '.' in @INC

2 weeks agostop passing '.' in @INC to tests
David Mitchell [Fri, 7 Apr 2017 07:46:13 +0000 (08:46 +0100)] 
stop passing '.' in @INC to tests

Currently TestInit.pm adds '.' to @INC (except if running under taint).
Since *all* tests run from the perl core are invoked as

    perl -MTestInit[=arg,arg,..] some/test.t

this means that all test scripts (including those under cpan/ etc) are
excuted with dot present, regardless of the settings of
$PERL_USE_UNSAFE_INC and -Ddefault_inc_excludes_dot.

This commit changes it so that:

1) TestInit.pm transparently passes though a trailing dot in @INC
if present (so it now honours $PERL_USE_UNSAFE_INC and
-Ddefault_inc_excludes_dot)
2) Adds a 'DOT' arg (e.g. -MTestInit=DOT) which unconditionally adds '.';
3) Updates t/TEST so that it (and t/harness which requires t/TEST)
have a whitelist of cpan/ modules which need '.'; test scripts for these
are invoked with -MTestInit=DOT.
4) Removes the $PERL_USE_UNSAFE_INC unsetting in t/TEST and t/harness;
now that environmant variable is passed unchanged to all perl processes
involved in running the test suite.

As of this commit, lots of tests will fail on a dotless perl build; the
next few commits will fix up any tests scripts and non cpan/ distributions
which relied on dot being present.

2 weeks agopods: Add L<> for links missing them; a couple nits
Karl Williamson [Fri, 31 Mar 2017 04:10:46 +0000 (22:10 -0600)] 
pods: Add L<> for links missing them; a couple nits

3 weeks agoperlfunc: 'do' synopsis: clarify when @INC used
David Mitchell [Mon, 3 Apr 2017 07:25:02 +0000 (08:25 +0100)] 
perlfunc: 'do' synopsis: clarify when @INC used

3 weeks agovec(): defer lvalue out-of-range croaking
David Mitchell [Fri, 31 Mar 2017 12:44:58 +0000 (13:44 +0100)] 
vec(): defer lvalue out-of-range croaking

RT #131083

Recent commits v5.25.10-81-gd69c430 and v5.25.10-82-g67dd6f3 added
out-of-range/overflow checks for the offset arg of vec().  However in
lvalue context, these croaks now happen before the SVt_PVLV was created,
rather than when its set magic was called. This means that something like

    sub f { $x = $_[0] }
    f(vec($s, -1, 8))

now croaks even though the out-of-range value never ended up getting used
in lvalue context.

This commit fixes things by, in pp_vec(), rather than croaking, just set
flag bits in LvFLAGS() to indicate that the offset is -Ve / out-of-range.

Then in Perl_magic_getvec(), return 0 if these flags are set, and in
Perl_magic_setvec() croak with a suitable error.

3 weeks agoMerge branch 'sawyerx/rmg-make-minitest' into blead
Sawyer X [Fri, 31 Mar 2017 10:02:29 +0000 (12:02 +0200)] 
Merge branch 'sawyerx/rmg-make-minitest' into blead

3 weeks agoAlso check minitest when preparing the tarball:
Sawyer X [Fri, 31 Mar 2017 09:42:42 +0000 (11:42 +0200)] 
Also check minitest when preparing the tarball:

This was noted by Jarkko was a missing instruction for something
that tends to fail but we usually don't notice. ("We" here excludes
Jarkko who randomly finds this broken without us noticing.)

I wasn't sure where to put this, but preparing the tarball seems
like an appropriate time.

3 weeks agofix perldiag entry for CORE::dump()
David Mitchell [Fri, 31 Mar 2017 08:18:48 +0000 (09:18 +0100)] 
fix perldiag entry for  CORE::dump()

the bare form wasn't deprecated in 5.30

3 weeks agotweak 'do "%s" failed' message
David Mitchell [Fri, 31 Mar 2017 08:13:33 +0000 (09:13 +0100)] 
tweak 'do "%s" failed' message

The warning

    do "%s" failed, '.' is no longer in @INC

was added in  the previous devel release; this commit enhances it to say

    do "%s" failed, '.' is no longer in @INC; did you mean do "./%s"

and updates the relevant docs.

See http://nntp.perl.org/group/perl.perl5.porters/243788.

4 weeks agoFix wrong text in Module-CoreList is_core test
Chris 'BinGOs' Williams [Sat, 25 Mar 2017 20:06:53 +0000 (20:06 +0000)] 
Fix wrong text in Module-CoreList is_core test

4 weeks agoSlight comment enhancement.
Jarkko Hietaniemi [Sat, 25 Mar 2017 13:14:24 +0000 (09:14 -0400)] 
Slight comment enhancement.

4 weeks agoInclude 'sh' in Configure invocations in INSTALL
Dagfinn Ilmari Mannsåker [Sat, 25 Mar 2017 09:40:06 +0000 (09:40 +0000)] 
Include 'sh' in Configure invocations in INSTALL

Most invocation examples included it, but some were missing.
Add them for consistency.

4 weeks agoUse -Udefault_inc_excludes_dot in Configure example
Dagfinn Ilmari Mannsåker [Sat, 25 Mar 2017 09:37:56 +0000 (09:37 +0000)] 
Use -Udefault_inc_excludes_dot in Configure example

While equivalent to to the -D…=n form, the -U form is more common.

4 weeks ago[MERGE] Test and document PERL_USE_UNSAFE_INC
Dagfinn Ilmari Mannsåker [Sat, 25 Mar 2017 09:35:25 +0000 (09:35 +0000)] 
[MERGE] Test and document PERL_USE_UNSAFE_INC

Also remove it from the test environment in case it's set by the user.

4 weeks agoDocument PERL_USE_UNSAFE_INC in perlrun.pod
Dagfinn Ilmari Mannsåker [Tue, 21 Mar 2017 17:12:04 +0000 (17:12 +0000)] 
Document PERL_USE_UNSAFE_INC in perlrun.pod

4 weeks agoTest PERL_USE_UNSAFE_INC
Dagfinn Ilmari Mannsåker [Tue, 21 Mar 2017 15:54:08 +0000 (15:54 +0000)] 
Test PERL_USE_UNSAFE_INC

4 weeks agoDelete PERL_USE_UNSAFE_INC from test environment
Dagfinn Ilmari Mannsåker [Tue, 21 Mar 2017 15:53:32 +0000 (15:53 +0000)] 
Delete PERL_USE_UNSAFE_INC from test environment

It intereferes with tests of @INC contents, and all core tests must work
without it.

4 weeks agoINSTALL: add entry for -Ddefault_inc_excludes_dot
David Mitchell [Fri, 24 Mar 2017 08:48:32 +0000 (08:48 +0000)] 
INSTALL: add entry for -Ddefault_inc_excludes_dot

4 weeks agobump base.pm $VERSION and un-CUSTOMISE
David Mitchell [Fri, 24 Mar 2017 08:30:26 +0000 (08:30 +0000)] 
bump base.pm $VERSION and un-CUSTOMISE

follow-up to the previous commit's reverting of base.pm @INC changes.

4 weeks agoRevert base.pm's dot-in-INC changes.
David Mitchell [Fri, 24 Mar 2017 08:10:12 +0000 (08:10 +0000)] 
Revert base.pm's dot-in-INC changes.

This reverts:
    458470f62360040dcd4b5a55c8ba07503e1af5fc
    362f3f748cb84934a072fadbfb8b51090e2f9afe
    bca552795994a553e07b38a6f82a233533919926
and the base.pm part of
    8901ddee94b1bc3764b4278d1cb26bed30bc2605

This commit removes all the recent stuff that made base.pm localise
@INC and remove a trailing '.'.

This is because perl 5.26.0 will be released with  '.' in @INC disabled by
default.

See RT #128769.

4 weeks agoSkip %Config test under minitest.
Jarkko Hietaniemi [Wed, 22 Mar 2017 11:14:43 +0000 (07:14 -0400)] 
Skip %Config test under minitest.

4 weeks agoskip an op/range.t test under -Dusemallocwrap=no
David Mitchell [Wed, 22 Mar 2017 08:35:33 +0000 (08:35 +0000)] 
skip an op/range.t test under -Dusemallocwrap=no

RT #131033

A recently added test checked for a memory wrap condition, which won't
happen if memory wrap checking is disabled.

4 weeks agoAdd link to epigraph
Sawyer X [Tue, 21 Mar 2017 17:26:54 +0000 (18:26 +0100)] 
Add link to epigraph

4 weeks agoRegen opcodes
Chris 'BinGOs' Williams [Tue, 21 Mar 2017 13:06:31 +0000 (13:06 +0000)] 
Regen opcodes

Ran regen/opcode.pl to regenerate

4 weeks agoFix uconfig errors
Chris 'BinGOs' Williams [Tue, 21 Mar 2017 13:04:44 +0000 (13:04 +0000)] 
Fix uconfig errors

Ran regen/uconfig_h.pl to regenerate

4 weeks agoRegen META.json for 5.26.0 - it is stable
Sawyer X [Tue, 21 Mar 2017 07:16:41 +0000 (08:16 +0100)] 
Regen META.json for 5.26.0 - it is stable

4 weeks agoUpdate Module::CoreList for 5.26.0
Sawyer X [Tue, 21 Mar 2017 07:16:28 +0000 (08:16 +0100)] 
Update Module::CoreList for 5.26.0