This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
7 years agoUpdate Module::CoreList for 5.25.2
Matthew Horsfall [Mon, 20 Jun 2016 20:10:00 +0000 (16:10 -0400)]
Update Module::CoreList for 5.25.2

7 years agoAdd acknowledgements to perldelta
Matthew Horsfall [Mon, 20 Jun 2016 19:57:14 +0000 (15:57 -0400)]
Add acknowledgements to perldelta

7 years agoperldelta for 323565712651fc (RT #128200)
Lukas Mai [Mon, 20 Jun 2016 18:55:37 +0000 (20:55 +0200)]
perldelta for 323565712651fc (RT #128200)

7 years agoRemove references to USENET from ext/
Dan Collins [Wed, 8 Jun 2016 19:42:11 +0000 (15:42 -0400)]
Remove references to USENET from ext/

7 years agoRemove most references to USENET from docs
Dan Collins [Wed, 8 Jun 2016 19:41:34 +0000 (15:41 -0400)]
Remove most references to USENET from docs

7 years agoPrep perldelta for release
Matthew Horsfall [Mon, 20 Jun 2016 13:22:18 +0000 (09:22 -0400)]
Prep perldelta for release

7 years agoUpdate INSTALL to mention correct versions.
Matthew Horsfall [Mon, 20 Jun 2016 12:48:27 +0000 (08:48 -0400)]
Update INSTALL to mention correct versions.

7 years agot/harness: avoid tests outside the src tree
David Mitchell [Mon, 20 Jun 2016 10:48:35 +0000 (11:48 +0100)]
t/harness: avoid tests outside the src tree

[perl #124050] t/harness can mistakenly run tests outside of the perl
    source tree

cfa562529cf24 made t/harness prepend '../' to test filenames if such a
file existed. This allowed things like

    ./perl t/harness cpan/foo/t/foo.t

to work even after harness had done a chdir("t").  However, it was then
picking up a ../cpan/foo/t/foo.t file outside the src tree in preference
to the one inside.

Add belt-and-brace conditions: only modify the filename if the unmodified
file doesn't exist, and only only if it doesn't already start with ../.

Based on an earlier patch by Matthew Horsfall

7 years agoupdate AUTHORS
David Mitchell [Mon, 20 Jun 2016 07:20:12 +0000 (08:20 +0100)]
update AUTHORS

7 years agoTime::HiRes: fix Darwins with clock_gettime
Misty De Meo [Fri, 17 Jun 2016 19:49:44 +0000 (12:49 -0700)]
Time::HiRes: fix Darwins with clock_gettime

Not all of the Darwin time code was guarded by the same set of #ifdefs,
leading to bugs on Darwin platforms with clock_gettime where a struct
would not be defined but would still be used elsewhere.

7 years agoregexes, Slight refactor, but mostly fix comments,
Karl Williamson [Tue, 14 Jun 2016 20:05:49 +0000 (14:05 -0600)]
regexes, Slight refactor, but mostly fix comments,

Also some white space changes.

This reinstates some refactoring that was done in the reverted commit
c29dfc6a6c45f86648c51f961304254cc3c449b9.  This was the part of the
commit that didn't lead to problems.  Instead, it makes the code
slightly simpler, with fewer instructions needed (disregarding any
compiler optimizations).

But mostly this commit rewords and amplifies some comments.  I
discovered I didn't fully understand things (as the algorithm was taken
from a book), and wrote the comments to be wrong or at least misleading.

7 years agoperldelta entry for 0bac45c8ec730e2f
David Mitchell [Sun, 19 Jun 2016 19:57:51 +0000 (20:57 +0100)]
perldelta entry for 0bac45c8ec730e2f

7 years agoperldelta for 79409ac835 / #128260
Father Chrysostomos [Sun, 19 Jun 2016 07:46:15 +0000 (00:46 -0700)]
perldelta for 79409ac835 / #128260

7 years agoperldelta for e4fc70828
Father Chrysostomos [Sun, 19 Jun 2016 07:43:28 +0000 (00:43 -0700)]
perldelta for e4fc70828

7 years agoperldelta for e7127e21a1 / #128307
Father Chrysostomos [Sun, 19 Jun 2016 07:40:14 +0000 (00:40 -0700)]
perldelta for e7127e21a1 / #128307

7 years agoperldelta for 76734a3218e / #128204
Father Chrysostomos [Sun, 19 Jun 2016 07:36:27 +0000 (00:36 -0700)]
perldelta for 76734a3218e / #128204

7 years agoperldelta for ffd2521e4c1d
Father Chrysostomos [Sun, 19 Jun 2016 07:33:29 +0000 (00:33 -0700)]
perldelta for ffd2521e4c1d

7 years agoperldelta for a50cb9d2d (lex sub acceptance)
Father Chrysostomos [Sun, 19 Jun 2016 07:27:54 +0000 (00:27 -0700)]
perldelta for a50cb9d2d (lex sub acceptance)

mostly based on 1c2511e0acc.

7 years agoperldelta for a061ab0bf and 738155d2f
Father Chrysostomos [Sun, 19 Jun 2016 07:24:21 +0000 (00:24 -0700)]
perldelta for a061ab0bf and 738155d2f

7 years agoperldelta for a061ab0bf
Father Chrysostomos [Sun, 19 Jun 2016 07:19:36 +0000 (00:19 -0700)]
perldelta for a061ab0bf

7 years agoAdd tests for regex recursion
Dan Collins [Fri, 17 Jun 2016 23:40:57 +0000 (19:40 -0400)]
Add tests for regex recursion

d5a00e4af introduced a bug in reginsert that was fixed by da7cf1cc7,
originally documented in [perl #128109]. This patch adds two
regression tests for the testcase reported by Jan Goyvaerts in
[perl #128420].

7 years agoRevert "regcomp.c: Add shortcuts to some inversion list ops"
Karl Williamson [Fri, 17 Jun 2016 21:17:43 +0000 (15:17 -0600)]
Revert "regcomp.c: Add shortcuts to some inversion list ops"

This reverts commit c29dfc6a6c45f86648c51f961304254cc3c449b9.

But it also removes the XXX suggesting that the things that commit did
should be  done.  It turns out that I didn't fully understand this, that
the shortcuts weren't found as frequently as I expected, and in fact
happened when they shouldn't have, creating bugs.  The only bugs I found
had to do with displaying what the regex compiled into under -Dr, but I
imagine there are others out there.  I did try to create some test cases
that showed the bugs, based on understanding how the code works, but
various things prevented them from actually being bugs.

To correctly decide to take the shortcut requires adding tests inside a
loop, and the shortcut is just to possibly save some work after the
loop.  That isn't a good tradeoff.

7 years agoRegen podcheck.t db following perlmodlib fixes
Karl Williamson [Fri, 17 Jun 2016 18:02:13 +0000 (12:02 -0600)]
Regen podcheck.t db following perlmodlib fixes

Commit 9ed2d9d9590c246380663caa818775c693b29fb0 fixed some over-long
verbatime lines.

7 years agoAdd missing deprecation message for unescaped '{' in regexes
Karl Williamson [Fri, 10 Jun 2016 03:25:46 +0000 (21:25 -0600)]
Add missing deprecation message for unescaped '{' in regexes

The use of literal '{' without being escaped has been deprecated since
5.16, and warned on since 5.20.  In 5.24, this has been made illegal,
with a bunch of CPAN modules broken by it, in spite of the long
deprecation period.  See
https://rt.perl.org/Ticket/Display.html?id=128139

Unfortunately, I overlooked a code path, and not all instances that
should have warned did so in fact.  This was spotted by Tom Wyant in
https://rt.perl.org/Ticket/Display.html?id=128213

This commit adds that warning, and rewords the fatal one slightly, and
clarifies the whole thing in perldiag.

7 years agodiagnostics.pm; Enhance to accept nested lists
Karl Williamson [Wed, 15 Jun 2016 18:51:39 +0000 (12:51 -0600)]
diagnostics.pm; Enhance to accept nested lists

Prior to this patch, this module assumed every =item was for a
diagnostic.  Now it keeps track, and so a given diagnostic can have a
list within it.

7 years agoop/stat.t: Skip test if environment not suitable.
Karl Williamson [Fri, 10 Jun 2016 03:22:34 +0000 (21:22 -0600)]
op/stat.t: Skip test if environment not suitable.

Subtly, if this test is run in a directory containing a file named '2',
it will fail.  It's simplest to just skip the test for this rare event.

7 years agoMention 9ed2d9d9 in perldelta
Chris 'BinGOs' Williams [Fri, 17 Jun 2016 18:10:16 +0000 (19:10 +0100)]
Mention 9ed2d9d9 in perldelta

7 years agoSome perldelta updates for the upcoming release.
Matthew Horsfall [Fri, 17 Jun 2016 16:52:30 +0000 (12:52 -0400)]
Some perldelta updates for the upcoming release.

7 years agoperl.c: comment that it's also perlmini.c
David Mitchell [Fri, 17 Jun 2016 16:53:00 +0000 (17:53 +0100)]
perl.c: comment that it's also perlmini.c

7 years agobetter document Miniperl.pm, (mini)perlmain.c
David Mitchell [Fri, 17 Jun 2016 16:27:31 +0000 (17:27 +0100)]
better document Miniperl.pm, (mini)perlmain.c

ExtUtils::Miniperl is used to generate both miniperlmain.c and perlmain.c,
but in different ways (via regen and via make respectively).

Update the pod in Miniperl.pm to explain this more clearly, and
imporve the header comment it emits in miniperlmain.c and perlmain.c.

7 years agoMakefile.SH: -Ilib is already in $MINIPERL's defn
Ivan Pozdeev [Fri, 17 Jun 2016 15:11:34 +0000 (16:11 +0100)]
Makefile.SH: -Ilib is already in $MINIPERL's defn

So '$(MINIPERL) -Ilib' is redundant.

7 years agodocs: clarify flag constants in File::Glob
Ed Avis [Fri, 17 Jun 2016 14:01:06 +0000 (15:01 +0100)]
docs: clarify flag constants in File::Glob

See [perl #126239].

7 years agoperl -V: make configuration one per line
David Mitchell [Fri, 17 Jun 2016 12:28:11 +0000 (13:28 +0100)]
perl -V:  make configuration one per line

For improved readability, change:

  Platform:
    osname=linux, osvers=4.4.11-200.fc22.x86_64, archname=x86_64-linux-thread-multi
    ...

to

  Platform:
    osname=linux
    osvers=4.4.11-200.fc22.x86_64
    archname=x86_64-linux-thread-multi
    ....

7 years agoperl -V: make 'Compile-time options' one per line
David Mitchell [Fri, 17 Jun 2016 12:42:36 +0000 (13:42 +0100)]
perl -V:  make 'Compile-time options' one per line

For improved readability, change:

  Compile-time options: DEBUGGING MULTIPLICITY PERLIO_LAYERS
                        PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                        ...

To:

  Compile-time options:
    DEBUGGING
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
    ....

7 years agotweak code comment for PL_bincompat_options
David Mitchell [Fri, 17 Jun 2016 12:42:42 +0000 (13:42 +0100)]
tweak code comment for PL_bincompat_options

7 years ago[perl #128422] Refactor mirror list generation script
Chris 'BinGOs' Williams [Fri, 17 Jun 2016 12:21:37 +0000 (13:21 +0100)]
[perl #128422] Refactor mirror list generation script

As per [perl #128422] the mirror list in perlmodlib is out of date
with regards the master list.

The master list is no longer a text file so refactored generator to
parse JSON mirror list.

Updated perlmodlib in the process.

7 years agoperldiag: add "command not found" entries for bash/zsh
Lukas Mai [Thu, 16 Jun 2016 18:17:08 +0000 (20:17 +0200)]
perldiag: add "command not found" entries for bash/zsh

7 years agoUpdate Pod-Checker to CPAN version 1.73
Chris 'BinGOs' Williams [Thu, 16 Jun 2016 12:37:21 +0000 (13:37 +0100)]
Update Pod-Checker to CPAN version 1.73

  [DELTA]

 30-May-2016           Marek Rouchal                        <marekr@cpan.org>
 -----------------------------------------------------------------------------
 Version 1.73
 + CPAN#114623: Changes file gives wrong date for 1.72
   fix for typo in this file, do it right this time for 1.73
 + CPAN#113846: 1.71 broke core t/porting/podcheck.t
   removed spurious "use Data::Dumper"

7 years agoUpdate Pod-Usage to CPAN version 1.69
Chris 'BinGOs' Williams [Thu, 16 Jun 2016 12:33:45 +0000 (13:33 +0100)]
Update Pod-Usage to CPAN version 1.69

  [DELTA]

1.69 (marekr)
- CPAN#111313: Makefile creation issue with Pod-Usage-1.68
  thanks to H M Brand for the suggestion on how to create a more portable
  tar.gz distribution file
- CPAN#109830: Tests fail
  bundle some old Pod::Parser modules in the test so that there is no more
  dependency. This has to refactored one day to entirely get rid of that

7 years agoperldelta for 3f6b66c14467
Tony Cook [Thu, 16 Jun 2016 05:12:46 +0000 (15:12 +1000)]
perldelta for 3f6b66c14467

7 years ago(perl #128316) preserve errno from failed system calls origin/tonyc/128316-errno-sanity
Tony Cook [Thu, 16 Jun 2016 04:08:18 +0000 (14:08 +1000)]
(perl #128316) preserve errno from failed system calls

7 years ago[perl #127885] enhancements to bench.pl
Tony Cook [Wed, 15 Jun 2016 01:58:52 +0000 (11:58 +1000)]
[perl #127885] enhancements to bench.pl

7 years agoPorting/bench.pl --grindargs can be abused, usefully.
Jim Cromie [Tue, 12 Apr 2016 22:59:37 +0000 (16:59 -0600)]
Porting/bench.pl --grindargs can be abused, usefully.

Add an example where --grindargs='3>foobar' opens an extra file
descriptor for writing, and PERL_MEM_LOG=3 causes perl to log to the
file instead of STDERR, so that the output doesnt cause
parse_cachegrind() to choke, which would abort the test.

The example also demonstrates overriding default grind options, ie
--cachegrind-out-file=junk.$$.  This has no obvious utility at
present, and perhaps buries the lead.

7 years agoprovide per-PUT environment
Jim Cromie [Sun, 10 Apr 2016 22:43:46 +0000 (16:43 -0600)]
provide per-PUT environment

This patch lets user specify ENVAR=value pairs for individual PUTs,
thereby altering runtime behavior.  For some combination of module and
ENVAR, this should result in measurable benchmark differences.

This example benchmarks a PERL_MEM_LOG configured perl, 1st PUT with
PERL_MEM_LOG disabled, but enabled in the 2nd:

 $ perl Porting/bench.pl --jobs=2 \
   --verbose --debug --tests=/loop::for::pkg_/ \
   -- \
   perl5.23.9:+bare \
   perl5.23.9=+full:PERL_MEM_LOG=3mst,PERLIO=:stdio -MData::Dumper

this will run:

Command: PERL_HASH_SEED=0 PERLIO=:stdio PERL_MEM_LOG=3mst valgrind --tool=cachegrind  --branch-sim=yes --cachegrind-out-file=/dev/null  perl5.23.9  -MData::Dumper - 20 2>&1

Note that ':' is now a valid separator between the perl & label, but
not between ENVAR=value pairs, where a ',' is required.

7 years agoadd =+label feature, which appends the label to perl-name
Jim Cromie [Sun, 10 Apr 2016 17:58:11 +0000 (11:58 -0600)]
add =+label feature, which appends the label to perl-name

Using this reduces the burden of keeping each label unique,
simplifying the use of labels to name varying workloads created by
-Mfoo -M<something-heavy>

This enables an invocation like the following to run -DDEBUGGING
perls-A,B in bare mode, and heavily encumbered by -Dflag induced
overhead:

 $] perl Porting/bench.pl --jobs=2 \
    --tests=/loop::for::my/ \
    -- \
    perl-A=+bare perl-A=+workload -DpsltocPmfr \
    perl-B=+bare perl-B=+workload -DpsltocPmfr

Unfortunately, that example falls over, because the -D<blah> output
upsets cachegrind_parser.  That might be fixable by removing the
'2>&1' in the $cmd.  Nonetheless, workloads are constructible.

more prosaically:

 $] perl Porting/bench.pl --jobs=2 \
    --tests=/loop::for::my/ \
    -- perl5.18.2=+strict -Mstrict perl5.18.0=+dumper -MData::Dumper

yields:

Got eof for pid 11377 (loop::for::my_array4/perl5.18.0+dumper active/long loop)
...

loop::for::my_array4
empty for loop with my var and 4 integer array

       perl5.18.2+strict perl5.18.0+dumper
       ----------------- -----------------
    Ir            100.00            114.20
    Dr            100.00            119.35
    Dw            100.00            135.03
  COND            100.00             99.71
   IND            100.00            100.00

COND_m            100.00            119.64
 IND_m            100.00             92.31

 Ir_m1            100.00            100.00
 Dr_m1            100.00            100.00
 Dw_m1            100.00            100.00

 Ir_mm            100.00                 -
 Dr_mm            100.00                 -
 Dw_mm            100.00            100.00

AVERAGE

       perl5.18.2+strict perl5.18.0+dumper
       ----------------- -----------------
    Ir            100.00            114.56
    Dr            100.00            118.87
    Dw            100.00            133.30
  COND            100.00            100.41
   IND            100.00            100.00

COND_m            100.00             69.14
 IND_m            100.00             89.95

 Ir_m1            100.00            100.00
 Dr_m1            100.00            100.00
 Dw_m1            100.00            100.00

 Ir_mm            100.00            100.00
 Dr_mm            100.00            100.00
 Dw_mm            100.00            100.00

7 years agos/@results/@res_puts/ in process_puts
Jim Cromie [Sun, 10 Apr 2016 17:50:13 +0000 (11:50 -0600)]
s/@results/@res_puts/ in process_puts

7 years agoadd pod for PUT
Jim Cromie [Sun, 10 Apr 2016 13:46:40 +0000 (07:46 -0600)]
add pod for PUT

7 years agogrind_print: adjust for labels
Jim Cromie [Sun, 10 Apr 2016 06:15:31 +0000 (00:15 -0600)]
grind_print: adjust for labels

since HEAD~1, data is stored by the label, not the perlname.
simplify grind-print based upon this.

7 years agostore data using unique label, not perl-exe, which may be used 2x
Jim Cromie [Sun, 10 Apr 2016 06:06:50 +0000 (00:06 -0600)]
store data using unique label, not perl-exe, which may be used 2x

Since we want that a perl-name can be used in 2 separate PUTs, we
cannot use it alone to store PUT results.  Instead, use the PUTs
labels, which are enforced unique.

And use "$test/$label" instead of "$test/$perl" in debug msg, since
thats how we store it now.

This change has downstream data-indexing ramifications, which are not
fully understood yet, and which are NOT handled here.

7 years agoPorting/bench.pl: allow per-PUT (perl under test) options and modules
Jim Cromie [Sun, 10 Apr 2016 05:20:10 +0000 (23:20 -0600)]
Porting/bench.pl: allow per-PUT (perl under test) options and modules

Rework process_perls() to give a richer usage / API, allowing
additional command-line options, specific to each Perl-Under-Test.
For example:

  bench.pl -- perl=plain perl=slower -Mstrict -DmpMA

The above runs the same perl-exe for 2 different tests (PUTS), but
adds expensive debugging options to only the 2nd PUT.

Do this by changing strategy; we scan the list backwards, and
test/treat each item as a perlexe (ie qx/$perlexe -e 'print "ok"/).
Instead of dieing on a not-perl, they're collected and submitted as a
PUT once a $perlexe is found.

Added 'require_order' to terminate arg processing when '--' is
encountered on cmdline; without it the PUT options are in-validated by
GetOptions.

7 years agoPorting/bench.pl: protect against data loss
Jim Cromie [Sun, 10 Apr 2016 04:51:48 +0000 (22:51 -0600)]
Porting/bench.pl: protect against data loss

Due to %data storage using $perl_name (rather than $label),
blead silently loses data when running like so:

   perl Porting/bench.pl -- perl perl

patch complains about above, but allows following:

   perl Porting/bench.pl -- perl=FOO perl=BAR

With this 1/2 fix, we can further probe the underlying key probs,
evident in the results from above

   ...
   loop::for::lex_range4
   empty for loop with lexical var and 4 integer range

         BAR    BAR
      ------ ------
   Ir 100.00 100.00
   Dr 100.00 100.00

7 years agoprep grind-run to accept args from PUTs
Jim Cromie [Sun, 10 Apr 2016 04:45:25 +0000 (22:45 -0600)]
prep grind-run to accept args from PUTs

7 years agoPorting/bench.pl: --verbose assist on tests failure
Jim Cromie [Sun, 10 Apr 2016 04:33:10 +0000 (22:33 -0600)]
Porting/bench.pl: --verbose assist on tests failure

with --verbose, --tests=foo will fail loudly, so user can pick a test.

7 years ago(perl #128199) rmscopy() is VMS specific and not exported
Tony Cook [Wed, 15 Jun 2016 00:11:26 +0000 (10:11 +1000)]
(perl #128199) rmscopy() is VMS specific and not exported

The first is kind of implied by the text, but make it explicit.

Added minor punctuation fixes suggested by Reuben Thomas.

7 years agoFix customised for Encode
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 17:19:40 +0000 (18:19 +0100)]
Fix customised for Encode

7 years agoUpdate META.json after JSON-PP update
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:42:32 +0000 (17:42 +0100)]
Update META.json after JSON-PP update

7 years ago[PATCH] Bump Locale-Codes from 3.38 to 3.39
Sullivan Beck [Tue, 14 Jun 2016 16:33:26 +0000 (17:33 +0100)]
[PATCH] Bump Locale-Codes from 3.38 to 3.39

Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
7 years agoUpdate JSON-PP to CPAN version 2.27400
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:26:00 +0000 (17:26 +0100)]
Update JSON-PP to CPAN version 2.27400

  [DELTA]

2.27400  2016-04-23
  [JSON::PP] appleid and merged long term neglected patches & PRs.
             thanks to charsbar

  - document patches
    by AM909, leon[at]astray.com, dsteinbrunner, jwilk, alfiedotwtf
  - modified Makefile.PL to set UNINST=1 if needed on old perls
    by dagolden
  - decode decimals to Perl's internal NV type
    by dagolden

  see to https://github.com/makamaka/JSON-PP/commits/master

7 years agoUpdate HTTP-Tiny to CPAN version 0.058
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:24:30 +0000 (17:24 +0100)]
Update HTTP-Tiny to CPAN version 0.058

  [DELTA]

0.058     2016-05-03 11:29:57-04:00 America/New_York

    - No changes from 0.057

0.057     2016-04-18 10:17:00-04:00 America/New_York (TRIAL RELEASE)

    [ADDED]

    - Added support for the SSL_CERT_FILE environment variable.

    - Added 'peer' attribute to force a connection to a particular
      server.

    - Added 'connected' method to allow introspection of persistent
      connections.

    - An array reference of redirection result hash references is included
      in the final response hash reference (but only if redirects occur).

    [CHANGED]

    - Because folded headers are obsoleted in the revised RFCs, if CRLF is
      found in header values followed by one or more spaces, they are all
      replaced by a single space.

    [FIXED]

    - Per the RFC, control headers are now sent first before other headers
      (which are sent in arbitrary order).

    - Only well-known headers have their case canonicalized; all other
      headers are sent in the case provided by the user.

    - The 'keep_alive' option now also sets the SO_KEEPALIVE option
      on the underlying socket to help with long-lived, idle connections.

    - Request header field values are now validated against the RFC rules
      (i.e. empty or else space-or-tab separated tokens of printable
      characters).

7 years agoUpdate Getopt-Long to CPAN version 2.49
Chris 'BinGOs' Williams [Tue, 14 Jun 2016 16:22:41 +0000 (17:22 +0100)]
Update Getopt-Long to CPAN version 2.49

[DELTA]

Changes in version 2.49
-----------------------

* Fix bug https://rt.cpan.org/Ticket/Display.html?id=114999

  Thanks Roy Ivy III for finding and fixing this.

* Fix bug https://rt.cpan.org/Ticket/Display.html?id=113748

  Thanks Tom Wyant for finding and fixing this.

7 years agoAPItest.xs: silence compiler warning
David Mitchell [Tue, 14 Jun 2016 09:34:12 +0000 (10:34 +0100)]
APItest.xs: silence compiler warning

7 years agoperlio.c: silence a couple of warnings
David Mitchell [Tue, 14 Jun 2016 09:24:30 +0000 (10:24 +0100)]
perlio.c: silence a couple of warnings

7 years ago[perl #128313] test for memory leak in POSIX classes
Dan Collins [Wed, 8 Jun 2016 20:26:07 +0000 (16:26 -0400)]
[perl #128313] test for memory leak in POSIX classes

7 years agoPOSIX.xs: avoid "defined but not used" warning
David Mitchell [Mon, 13 Jun 2016 10:36:06 +0000 (11:36 +0100)]
POSIX.xs: avoid "defined but not used" warning

The static function not_here() is used for any methods that aren't
implemented. On Linux at least, *all* methods are implemented, so you get:

POSIX.xs:1639:1: warning: ‘not_here’ defined but not used [-Wunused-function]
 not_here(const char *s)

Ensure at least one use of this function to avoid that warning.
A bit hacky, but I couldn't think of a better way.

7 years agoperldelta for 31b6f23ed55c
Tony Cook [Mon, 13 Jun 2016 01:12:47 +0000 (11:12 +1000)]
perldelta for 31b6f23ed55c

7 years ago[perl #126710] only touch pm_to_blib if files are copied
Tony Cook [Tue, 1 Dec 2015 05:10:55 +0000 (16:10 +1100)]
[perl #126710] only touch pm_to_blib if files are copied

Add checks similar to what the Makefile would do: only copy the
files if the source file is newer than pm_to_blib

7 years ago[perl #128260] Fix \substr %h
Father Chrysostomos [Sun, 12 Jun 2016 13:19:47 +0000 (06:19 -0700)]
[perl #128260] Fix \substr %h

This is a follow-up to 79409ac8, which propagated substr’s own lvalue
context to the first argument only if it was one that would not croak
at compile time.

We can’t propagate OP_REFGEN lvalue context to the first argument,
as it causes the same bug for which #128260 was originally reported;
namely, that it prevents a hash or array from being flattened, causing
an unflattened aggregate to follow code paths that expect only sca-
lars, resulting in assertion failures:

$ ./perl -Ilib -e '%h=1..100; print ${\substr %h, 0}'
Assertion failed: (SvTYPE(sv) != SVt_PVAV && SvTYPE(sv) != SVt_PVHV && SvTYPE(sv) != SVt_PVFM), function Perl_sv_2pv_flags, file sv.c, line 2924.
Abort trap: 6
$ ./perl -Ilib -e '@h=1..100; print ${\vec @a, 0, 1}'
Assertion failed: (SvTYPE(sv) != SVt_PVAV && SvTYPE(sv) != SVt_PVHV && SvTYPE(sv) != SVt_PVFM), function Perl_sv_2pv_flags, file sv.c, line 2924.
Abort trap: 6

7 years agoUpdate the notes on Synology/DSM
H.Merijn Brand [Sun, 12 Jun 2016 09:37:03 +0000 (11:37 +0200)]
Update the notes on Synology/DSM

7 years ago[perl #128260] Fix lvalue cx for substr and vec
Father Chrysostomos [Sat, 11 Jun 2016 01:08:50 +0000 (18:08 -0700)]
[perl #128260] Fix lvalue cx for substr and vec

When lvalue context was applied to the substr and vec at compile time,
that context was propagated to the first argument.  That meant that

    substr %foo, 1, = 3;

would correctly die, but give the wrong op in the error message, say-
ing ‘in scalar assignment’ whereas ‘in substr’ is more appropriate.

Contrariwise,

    (substr %foo, 1) = 3;

would apply list lvalue context to %foo, which does not die at compile
time and prevents flattening (that’s what allows %foo=... to work).

The unflattened hash would be passed to internal functions that only
expect scalars, resulting in assertion failures.

The fix is to introduce two new types of scalar lvalue context, namely
OP_SUBSTR and OP_VEC, and apply those to the first argument, causing
both the examples above to die at compile time with ‘Can't modify hash
dereference in substr’.

If the surrounding context is only potential modifiable context (such
as \substr), then that same non-fatal context is applied to the
first argument.

7 years agoop.c: Factor out common code for potential lv cx
Father Chrysostomos [Fri, 10 Jun 2016 15:54:56 +0000 (08:54 -0700)]
op.c: Factor out common code for potential lv cx

7 years agoMake lv keys distinguish scalar/list cx properly
Father Chrysostomos [Fri, 10 Jun 2016 15:49:59 +0000 (08:49 -0700)]
Make lv keys distinguish scalar/list cx properly

keys(%h) was special in that it did not use the same code path as
other ops that distinguish between scalar and list lvalue context.
Consequently, some scalar lvalue contexts worked:

    keys %h = 3;
    ${\scalar keys %h} = 3;
    sub { $_[0] = 3 }->(scalar keys %h);
    foreach(scalar keys %h) { $_ = 3 }
    grep { $_ = 3 } scalar keys %h;
    substr keys %h, 0, = 3;

while others did not:

    keys %h .= 0;
    read FH, keys %h, 0;

Fixing other bugs in the same code paths without breaking keys (or
adding *more* exceptions) is harder to do if keys is not consistent.
So this commit allows .= and read to assign to keys, by using the same
internal code (scalar_mod_type) that determines whether %h assignment
is allowed.  The logic is reversed (since %h is list-only and keys %h
is scalar-only), so where %h is a valid lvalue keys %h is not, and
vice versa.

7 years agobisect-runner.pl: Correct --no-module-tests example
Father Chrysostomos [Thu, 9 Jun 2016 19:30:14 +0000 (12:30 -0700)]
bisect-runner.pl: Correct --no-module-tests example

Copy-&-paste strikes again!

7 years agopod/*: remove deprecated L<"section"> and L<section> syntax
Lukas Mai [Sat, 11 Jun 2016 10:40:42 +0000 (12:40 +0200)]
pod/*: remove deprecated L<"section"> and L<section> syntax

7 years agoREADME*: remove deprecated L<"section"> and L<section> syntax
Lukas Mai [Sat, 11 Jun 2016 10:39:18 +0000 (12:39 +0200)]
README*: remove deprecated L<"section"> and L<section> syntax

7 years agoperldeltas: remove deprecated L<"section"> and L<section> syntax
Lukas Mai [Sat, 11 Jun 2016 10:07:23 +0000 (12:07 +0200)]
perldeltas: remove deprecated L<"section"> and L<section> syntax

7 years agohandy.h: remove deprecated L<"section"> syntax
Lukas Mai [Sat, 11 Jun 2016 10:06:41 +0000 (12:06 +0200)]
handy.h: remove deprecated L<"section"> syntax

7 years agoperlsyn: remove deprecated L<"section"> syntax
Lukas Mai [Sat, 11 Jun 2016 09:42:46 +0000 (11:42 +0200)]
perlsyn: remove deprecated L<"section"> syntax

... and fix a typo.

7 years agofixup, guard av_top_index() for null RExC_warn_text
Yves Orton [Fri, 10 Jun 2016 11:34:37 +0000 (13:34 +0200)]
fixup, guard av_top_index() for null RExC_warn_text

7 years agomove warning text to RExC_state (via RExC_warn_text)
Yves Orton [Fri, 10 Jun 2016 10:20:20 +0000 (12:20 +0200)]
move warning text to RExC_state (via RExC_warn_text)

This way we reuse the same AV each time, and avoid various refcount bookkeeping issues, all at a relatively modest cost (IMO)

7 years agoUpdates CPAN.pm to ANDK/CPAN-2.14-TRIAL.tar.gz
Sandbox [Wed, 8 Jun 2016 21:15:41 +0000 (23:15 +0200)]
Updates CPAN.pm to ANDK/CPAN-2.14-TRIAL.tar.gz

7 years ago[perl #128313] Fix leak in perl 5.24 with strict and regex posix char classes
Yves Orton [Wed, 8 Jun 2016 16:42:30 +0000 (18:42 +0200)]
[perl #128313] Fix leak in perl 5.24 with strict and regex posix char classes

This patch is a refinement of one written by Dan Collins.

Any thanks for this patch should go to him.

7 years agoperldelta for the 79881ad71252 merge
Tony Cook [Wed, 8 Jun 2016 06:41:38 +0000 (16:41 +1000)]
perldelta for the 79881ad71252 merge

7 years agoOnly produce perlio debug output when the -Di switch is supplied
Tony Cook [Wed, 8 Jun 2016 05:12:37 +0000 (15:12 +1000)]
Only produce perlio debug output when the -Di switch is supplied

7 years ago(perl #127380) Update PERLIO_DEBUG documentation.
Craig A. Berry [Thu, 14 Apr 2016 19:23:52 +0000 (14:23 -0500)]
(perl #127380) Update PERLIO_DEBUG documentation.

Now defaults to stderr if unspecified, and requires -Di (and thus
-DDEBUGGING).

TonyC: modify a couple of verbatim lines to bring them under the limit
enforced by the new podcheck.t changes

7 years ago(perl #127380) default PERLIO_DEBUG/-Di to use STDERR
Tony Cook [Thu, 7 Apr 2016 05:35:42 +0000 (15:35 +1000)]
(perl #127380) default PERLIO_DEBUG/-Di to use STDERR

This includes under taint, just as other -D switches write to stderr
when taint is on.

7 years ago(perl #127380) add tests for -Di
Tony Cook [Tue, 3 May 2016 00:41:15 +0000 (10:41 +1000)]
(perl #127380) add tests for -Di

7 years ago(perl #127380) only trace to $PERLIO_DEBUG if -Di is supplied
Tony Cook [Mon, 28 Mar 2016 03:58:56 +0000 (14:58 +1100)]
(perl #127380) only trace to $PERLIO_DEBUG if -Di is supplied

7 years agoUpdate to Test-Simple 1.302026
Chad Granum [Tue, 7 Jun 2016 15:04:02 +0000 (08:04 -0700)]
Update to Test-Simple 1.302026

    - Fix SHM leak
    - Update Porting/Maintainers.pl

7 years agoPorting/todo.pod: refaliasing needs fixing still
Father Chrysostomos [Tue, 7 Jun 2016 21:36:58 +0000 (14:36 -0700)]
Porting/todo.pod: refaliasing needs fixing still

I don’t know when I’ll be able to get to this.  This seems like a good
place to jot down the ideas that existed only in my head till now.

7 years agoPorting/todo.pod: Suggest Deparse improvements
Father Chrysostomos [Tue, 7 Jun 2016 21:17:38 +0000 (14:17 -0700)]
Porting/todo.pod: Suggest Deparse improvements

7 years agoop/lex_assign.t: fix intermittent failures
David Mitchell [Tue, 7 Jun 2016 16:41:20 +0000 (17:41 +0100)]
op/lex_assign.t: fix intermittent failures

The bulk of this test script tests whether ops which are capable of
the OA_TARGLEX optimisation return the same results with lexical and
package var assignments, i.e.

    my $a;
    $a = OP;
    $b = OP;
    is($a,$b);

When OP is 'time', the two calls can return different times, resulting in
occasional intermittent failures. So move time into it's custom test which
can cope with a delta of 1.

Similarly if the op is <*>, parallel testing can result in temporary files
appearing in the current directory, resulting in different returns.
However, since glob doesn't actually have the 'T' (OA_TARGLEX) set in
regen/opcodes, this test is moot - so skip it.

If glob ever does ever get OA_TARGLEX, and so need to be tested, it may
require some subtlety, such as globbing for a pattern that won't match any
temporary files.

7 years agoFix Pod-Checker version
Chris 'BinGOs' Williams [Tue, 7 Jun 2016 14:49:51 +0000 (15:49 +0100)]
Fix Pod-Checker version

7 years agoPorting/todo.pod: Add note to ‘repack the optree’
Father Chrysostomos [Tue, 7 Jun 2016 05:30:17 +0000 (22:30 -0700)]
Porting/todo.pod: Add note to ‘repack the optree’

7 years agoPorting/todo.pod: Hey, we have refaliasing
Father Chrysostomos [Tue, 7 Jun 2016 05:26:11 +0000 (22:26 -0700)]
Porting/todo.pod: Hey, we have refaliasing

7 years agoPorting/todo.pod: Rmv ‘LVALUE functions for lists’
Father Chrysostomos [Tue, 7 Jun 2016 05:25:19 +0000 (22:25 -0700)]
Porting/todo.pod: Rmv ‘LVALUE functions for lists’

$ ./perl -Ilib -e 'sub foo :lvalue{@hash{"foo","bar"}} (foo) = (3,4); use Data::Dumper; warn Dumper \%hash'
$VAR1 = {
          'foo' => 3,
          'bar' => 4
        };
$ ./perl -Ilib -e 'sub foo :lvalue{@arr[1,2]} (foo) = (3,4); use Data::Dumper; warn Dumper \@arr'
$VAR1 = [
          undef,
          3,
          4
        ];

Apparently slices do work.

7 years agoPorting/todo.pod: Update file name in ‘truncate() prototype’
Father Chrysostomos [Tue, 7 Jun 2016 05:21:11 +0000 (22:21 -0700)]
Porting/todo.pod: Update file name in ‘truncate() prototype’

7 years agoPorting/todo.pod: Point out problem with readpipe(LIST)
Father Chrysostomos [Tue, 7 Jun 2016 05:19:46 +0000 (22:19 -0700)]
Porting/todo.pod: Point out problem with readpipe(LIST)

7 years agoPorting/todo.pod: Suggest documenting XS & lex subs
Father Chrysostomos [Tue, 7 Jun 2016 05:13:42 +0000 (22:13 -0700)]
Porting/todo.pod: Suggest documenting XS & lex subs

7 years agoPorting/todo.pod: Delete strcat/strcpy test entry
Father Chrysostomos [Tue, 7 Jun 2016 05:11:15 +0000 (22:11 -0700)]
Porting/todo.pod: Delete strcat/strcpy test entry

We have t/porting/libperl.t.

7 years agoperldelta for 0a44e30b028e99
Tony Cook [Tue, 7 Jun 2016 05:11:44 +0000 (15:11 +1000)]
perldelta for 0a44e30b028e99