This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
8 years agoref.t: To-do test for retvals of folded ops
Father Chrysostomos [Sat, 15 Jun 2013 18:57:56 +0000 (11:57 -0700)]
ref.t: To-do test for retvals of folded ops

8 years agosub.t: To-do test for recursive shared-hash-keys TARGs
Father Chrysostomos [Sat, 15 Jun 2013 18:41:57 +0000 (11:41 -0700)]
sub.t: To-do test for recursive shared-hash-keys TARGs

This is only buggy under ithreads.

sub a {
  for (${\""}.${\""}) {
    $_ = $_[0] || __PACKAGE__;
    print "$_\n";
    a("road") unless $_[0];
    print "$_\n";
  }
}
a();

The outer call sets the scalar returned by ${\""}.${\""} to the cur-
rent package name.

The inner call sets it to "road".

Each call prints it twice, the outer call surrounding the inner call.
The output in 5.10-5.18 is:

main
road
road
road

because the inner call is clobbering the same scalar.  If __PACKAGE__
is changed to "main", it works, and prints

main
road
road
main

(as the script above also prints in 5.8.8).

8 years agoperldelta for d7d11da6a3
Tony Cook [Fri, 26 Jul 2013 01:17:02 +0000 (11:17 +1000)]
perldelta for d7d11da6a3

8 years ago[perl #39739] Exporter::Heavy ignores custom $SIG{__WARN__} handlers
Tony Cook [Fri, 26 Jul 2013 01:09:11 +0000 (11:09 +1000)]
[perl #39739] Exporter::Heavy ignores custom $SIG{__WARN__} handlers

8 years agobump $Exporter::VERSION (and hence $Exporter::Heavy::VERSION)
Tony Cook [Fri, 26 Jul 2013 01:00:23 +0000 (11:00 +1000)]
bump $Exporter::VERSION (and hence $Exporter::Heavy::VERSION)

8 years ago[perl #39739] Exporter::Heavy ignores custom $SIG{__WARN__} handlers
Tony Cook [Thu, 18 Jul 2013 06:03:19 +0000 (16:03 +1000)]
[perl #39739] Exporter::Heavy ignores custom $SIG{__WARN__} handlers

8 years ago[perl #39739] TODO test for Exporter respecting warning handlers
Tony Cook [Thu, 18 Jul 2013 06:02:29 +0000 (16:02 +1000)]
[perl #39739] TODO test for Exporter respecting warning handlers

8 years agolet Porting/cmpVERSION.pl know Exporter was moved to dist/
Tony Cook [Fri, 26 Jul 2013 00:54:13 +0000 (10:54 +1000)]
let Porting/cmpVERSION.pl know Exporter was moved to dist/

8 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.72
Chris 'BinGOs' Williams [Wed, 24 Jul 2013 20:31:18 +0000 (21:31 +0100)]
Update ExtUtils-MakeMaker to CPAN version 6.72

  [DELTA]

6.72 Wed Jul 24 18:38:19 BST 2013
    No changes from 6.71_01

6.71_01 Wed Jul 24 09:31:07 BST 2013
    Bug Fixes:
    * Resolved more regressions in parse_version code

8 years agoUpdate Module-CoreList MANIFEST to include Utils.pm
Chris 'BinGOs' Williams [Wed, 24 Jul 2013 20:28:34 +0000 (21:28 +0100)]
Update Module-CoreList MANIFEST to include Utils.pm

8 years agoperlopentut: Fit verbatim lines into 79 columns
Karl Williamson [Wed, 24 Jul 2013 15:15:01 +0000 (09:15 -0600)]
perlopentut: Fit verbatim lines into 79 columns

8 years agoperlvar.pod: add a separate section on $& et al
David Mitchell [Wed, 24 Jul 2013 14:20:22 +0000 (15:20 +0100)]
perlvar.pod: add a separate section on $& et al

Add a new separate section explaining the performance issues of $`, $&
and $'; plus descriptions of the various workarounds like @-, /p and COW,
and which perl version they were each introduced in.

Then in the entries for each individual var, strip out any commentary
about performance, and just include a link to the new performance
section.

8 years agoEnglish.pm: update perl version where perf fixed
David Mitchell [Wed, 24 Jul 2013 13:18:22 +0000 (14:18 +0100)]
English.pm: update perl version where perf fixed

It still said that the performance of $`, $&, $' was fixed in 5.18.
Update that to 5.20, since COW wasn't enabled by default in 5.18.

8 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.70
Chris 'BinGOs' Williams [Wed, 24 Jul 2013 07:04:25 +0000 (08:04 +0100)]
Update ExtUtils-MakeMaker to CPAN version 6.70

  [DELTA]

6.70 Tue Jul 23 21:55:23 BST 2013
    No changes from 6.69_09

6.69_09 Sun Jul 21 09:22:40 BST 2013
    Bug Fixes:
    * RT#86976 Fix version parsing bug introduced in 6.69_05
      Part Deux :)

6.69_08 Wed Jul 17 00:36:28 BST 2013
    Bug Fixes:
    * RT#86976 Fix version parsing bug introduced in 6.69_05

6.69_07 Tue Jul 16 15:32:25 BST 2013
    New features:
    * RT#4550 report the file created after make dist

    Bug Fixes:
    * RT#66113 strip control characters from ABSTRACT
    * RT#20662 Don't check for config.h if it doesn't exist

6.69_06 Fri Jul 12 14:49:32 BST 2013
    Bug Fixes:
    * RT#64163 clean_subdirs infinite loop if subdir already gone
    * RT#79348 doesn't support miniperl in installation paths

    Doc Fixes:
    * Fix META_MERGE example
    * RT#31053 Mention configure_requires in PREREQ_FATAL documentation
    * RT#14680 Document TEST_FILES usage with 'make test'
    * RT#21285 Document 'make veryclean'

6.69_05 Thu Jul 11 22:10:10 BST 2013
    Bug Fixes:
    * Resolve RT#9452 regression with
      parse_version() (Victor Efimov)
    * RT#28632 use LD and OPTIMIZE in recursive Makefile.PL
      invocations (Niko Tyni)

6.69_04 Wed Jul 10 11:48:22 BST 2013
    Cygwin Fixes:
    * Revert RT#54703 and apply patch from RT#69401 to
      resolve /cygdrive issues (Reini Urban)

6.69_03 Tue Jul  9 22:39:54 BST 2013
    Bug Fixes:
    * RT#61419 Avoid invisible interactive question when
      rebuilding Makefile (Slaven Rezic)
    * VERSION also now really handles v-strings correctly.

    Cygwin Fixes:
    * RT#54703 - Don't hardcode /cygdrive (Jerry Hedden)

    Misc:
    * Install into site when 5.12 or above

6.69_02 Tue Jul  2 13:12:51 BST 2013
    Bug Fixes:
    * [RT#86609] VERSION_FROM now handles v-strings correctly.
    * VERSION also now handles v-strings correctly.

    Misc:
    * Updated bundled CPAN::Meta and removed Version::Requirements

6.69_01 Thu Jun 20 12:49:45 BST 2013
    Win32 Fixes:
    * resolve regression on Win32 introduced in 6.67_01
      (bingos)

8 years agoMerge work automating generation of lib/.gitignore and lib/ subdir cleanup.
Nicholas Clark [Wed, 24 Jul 2013 07:36:18 +0000 (09:36 +0200)]
Merge work automating generation of lib/.gitignore and lib/ subdir cleanup.

This makes no changes to any installed code.

8 years agoGenerate the lib/ cleanup rules in the Win32 Makefiles from MANIFEST.
Nicholas Clark [Tue, 23 Jul 2013 08:16:08 +0000 (10:16 +0200)]
Generate the lib/ cleanup rules in the Win32 Makefiles from MANIFEST.

8 years agoGenerate the lib/ cleanup rules in Makefile.SH automatically from MANIFEST.
Nicholas Clark [Mon, 22 Jul 2013 20:10:09 +0000 (22:10 +0200)]
Generate the lib/ cleanup rules in Makefile.SH automatically from MANIFEST.

8 years agoRe-order clean-up rules to give a line for regen/lib_cleanup.pl to key off.
Nicholas Clark [Sat, 20 Jul 2013 19:18:05 +0000 (21:18 +0200)]
Re-order clean-up rules to give a line for regen/lib_cleanup.pl to key off.

The Win32 line C<-del /f *.def *.map> and the start of the Unix line
C<rm -f so_locations> are unlikely to change.

8 years agoRemove the EXTUTILSDIR macro from the Win32 makefiles.
Nicholas Clark [Sat, 20 Jul 2013 19:04:16 +0000 (21:04 +0200)]
Remove the EXTUTILSDIR macro from the Win32 makefiles.

It hasn't been used since commit e3160748789c8366 in Sept 2009 eliminated
the XSUBPP macro.

8 years agoDelete obsolete clean rules from Makefile.SH
Nicholas Clark [Sat, 20 Jul 2013 19:02:56 +0000 (21:02 +0200)]
Delete obsolete clean rules from Makefile.SH

Rules to clean lib/ExtUtils/CBuilder/t and lib/ExtUtils/ParseXS/t haven't
been needed since the modules were moved to cpan/ and dist/

8 years agoMove process() from Porting/pod_rules.pl to Porting/pod_lib.pl
Nicholas Clark [Mon, 22 Jul 2013 19:23:11 +0000 (21:23 +0200)]
Move process() from Porting/pod_rules.pl to Porting/pod_lib.pl

And document it.

8 years agoSome tidying of Porting/pod_rules.pl
Nicholas Clark [Sat, 20 Jul 2013 20:46:34 +0000 (22:46 +0200)]
Some tidying of Porting/pod_rules.pl

Iterate over the files in sorted order, instead of hash iteration order.
This means that in TAP mode test failures will have consistent numbers.
Provide a description for the first test when outputting TAP.
Use clearer variable names in process(), and avoid using // as this code will
soon be exposed to pre-5.10

8 years agoExtract the main processing loop of Porting/pod_rules/pl into process().
Nicholas Clark [Sat, 20 Jul 2013 20:08:37 +0000 (22:08 +0200)]
Extract the main processing loop of Porting/pod_rules/pl into process().

8 years agoMove verify_contiguous() from Porting/pod_rules.pl to Porting/pod_lib.pl
Nicholas Clark [Sat, 20 Jul 2013 14:55:37 +0000 (16:55 +0200)]
Move verify_contiguous() from Porting/pod_rules.pl to Porting/pod_lib.pl

And document it.

8 years agoRefactor the use of verify_contiguous() in pod_rules.pl
Nicholas Clark [Sat, 20 Jul 2013 14:46:02 +0000 (16:46 +0200)]
Refactor the use of verify_contiguous() in pod_rules.pl

Move the substitution from the callers in into verify_contiguous().
Pass in a regex object for the substitution.
Return the modified file contents from verify_contiguous().
Load Carp when verify_contiguous() is called, instead of at compile time.

8 years agoRemove 3 redundant lines from .gitignore
Nicholas Clark [Sat, 20 Jul 2013 12:08:41 +0000 (14:08 +0200)]
Remove 3 redundant lines from .gitignore

These test files are no longer generated in directories beneath lib/

8 years agoGenerate lib/.gitignore from MANIFEST.
Nicholas Clark [Sat, 20 Jul 2013 10:50:21 +0000 (12:50 +0200)]
Generate lib/.gitignore from MANIFEST.

It's possible to programmatically determine almost all the files and
directories which will be created in lib/ by building the extensions.
Hence add a new script regen/lib_cleanup.pl to do this.

This saves having to manually update lib/.gitignore to reflect changes in
the build products of extensions, which has become a small but reoccurring
instance of scut-work.

8 years agoOn failure, regen_lib.pl now generates diagnostics, not just "not ok".
Nicholas Clark [Mon, 22 Jul 2013 07:26:24 +0000 (09:26 +0200)]
On failure, regen_lib.pl now generates diagnostics, not just "not ok".

We have to stop using File::Compare's compare(), as it doesn't return
diagnostics about what went wrong.

8 years agoMove all the "special case" build products from lib/.gitignore to .gitignore
Nicholas Clark [Sat, 20 Jul 2013 09:08:53 +0000 (11:08 +0200)]
Move all the "special case" build products from lib/.gitignore to .gitignore

These are all the build products that we can't programmatically infer will be
generated from extensions in ext, dist and cpan.

8 years agoMake .gitignore and lib/.gitignore more consistent.
Nicholas Clark [Sat, 20 Jul 2013 08:33:00 +0000 (10:33 +0200)]
Make .gitignore and lib/.gitignore more consistent.

Move the ignore of lib/App/, lib/mro.pm, lib/TAP/, lib/Test/Harness.pm,
lib/File/DosGlob.pm, lib/inc/, Win32.pm, Win32API/ and Win32Core.pm from
.gitignore to lib/.gitignore, where they more logically belong.
Consistently use trailing / for ignored directories.
Add a leading / to the ignore of unicore/TestProp.pl
(The line was added by commit 3df51b85ce4a5664 in Nov 2009, and it's not
clear why it did not have a leading / from the start.)

Re-sort lib/.gitignore lexically.

8 years agoPrune some .gitignore files.
Nicholas Clark [Sat, 20 Jul 2013 08:10:12 +0000 (10:10 +0200)]
Prune some .gitignore files.

Class::ISA was removed by 3df51b85ce4a5664 in April 2010.
Module::Pluggable was removed by commit 482cac4d574f8c6c in May 2013.
Module/Build/ConfigData.pm was moved from lib/ to cpan/ by commit
0b93a7997e668a67 in Nov 2009.
Pod::Plainer was removed by commit afbe215fcafe7a92 in April 2010.
Shell was removed by commit a1e75797c204ade8 in June 2011.
Switch was removed by commit 75108aefc8b50fcf in April 2010.

8 years agoperldelta for ea382fac4c7
Tony Cook [Wed, 24 Jul 2013 07:31:03 +0000 (17:31 +1000)]
perldelta for ea382fac4c7

The versioning for dist/bignum was a little confused, hopefully I've
unconfused it

8 years ago[perl #118995] Fix bigrat's $MBI configuration
Tony Cook [Wed, 24 Jul 2013 07:25:42 +0000 (17:25 +1000)]
[perl #118995] Fix bigrat's $MBI configuration

8 years ago[perl #118955] bump $bignum::VERSION to 0.36
Tony Cook [Wed, 24 Jul 2013 07:16:13 +0000 (17:16 +1000)]
[perl #118955] bump $bignum::VERSION to 0.36

set all other modules in dist/bignum to 0.36 too, the CPAN dist has
them all at the same version

8 years agoInitialize BigInt's $MBI correctly with "use bigrat lib => '...'".
Nathan Trapuzzano [Wed, 24 Jul 2013 00:34:16 +0000 (20:34 -0400)]
Initialize BigInt's $MBI correctly with "use bigrat lib => '...'".

8 years agoRefactor t/porting/regen.t to check everything (and the return values!).
Nicholas Clark [Thu, 18 Jul 2013 14:57:00 +0000 (16:57 +0200)]
Refactor t/porting/regen.t to check everything (and the return values!).

Previously it was fire-and-forget for the 3 programs it ran (and for the
programs that regen.pl ran). Now we die if any program fails to return 0.

Also regen.t had an explicit list of programs to test. It turned out that it
was not testing regen/mk_invlists.pl. Now regen.t has a skip list of what
not to test, and everything not skipped it tested. This way any new
additions will not get missed.

This was implemented by refactoring regen.pl to read the list of programs it
runs from <DATA>, so that regen.t can open regen.pl to extract the same
list.

8 years agoSyntax check regen/uconfig_h.pl using t/porting/utils.t
Nicholas Clark [Thu, 18 Jul 2013 13:10:29 +0000 (15:10 +0200)]
Syntax check regen/uconfig_h.pl using t/porting/utils.t

It's the only regen script that we can't run as part of the tests (because it
requires a Unix shell), but can syntax check (because it only uses core
modules).

In theory we could make it skip with --tap if $Config{sh} is not what we
expect, but to be robust this looks to be a problem. Firstly, $Config{sh}
can be undef, or something "non-Unix". To be useful a whitelist needs to be
(at least) (?:/usr)?/bin/sh, and potentially also ksh. But the output is not
valid TAP:

$ ./perl -Ilib regen/uconfig_h.pl --tap
Extracting uconfig.h-new (with variable substitutions)
ok - regen/uconfig_h.pl uconfig.h

and t/TEST would choke, so we'd need to capture it or otherwise comment out
that "Extracting" line which just adds both complexity and fragility.

So the right trade off appears to be just to syntax check it.

8 years agoMissed this when updating Module-Build
Chris 'BinGOs' Williams [Wed, 24 Jul 2013 06:55:36 +0000 (07:55 +0100)]
Missed this when updating Module-Build

8 years agoperldelta for ab5c89ab2
Tony Cook [Wed, 24 Jul 2013 06:08:48 +0000 (16:08 +1000)]
perldelta for ab5c89ab2

8 years ago[perl #118907] Do not call DESTROY on empty objects with STORABLE_attach
Tony Cook [Wed, 24 Jul 2013 06:00:45 +0000 (16:00 +1000)]
[perl #118907] Do not call DESTROY on empty objects with STORABLE_attach

avoids creating temporary objects for STORABLE_attach when they aren't
needed.

8 years ago[perl #118907] bump $Storable::VERSION
Tony Cook [Wed, 24 Jul 2013 05:58:46 +0000 (15:58 +1000)]
[perl #118907] bump $Storable::VERSION

8 years ago[perl #118907] fix some issues with patch
Tony Cook [Mon, 15 Jul 2013 04:17:25 +0000 (14:17 +1000)]
[perl #118907] fix some issues with patch

8 years agoRestore Storable speed after previous fix.
Vladimir Timofeev [Fri, 12 Jul 2013 20:40:23 +0000 (00:40 +0400)]
Restore Storable speed after previous fix.

Pull out getting stash by name from macro BLESS and SEEN.
So results of gv_stashpv may be reused by calling side. This allow
to not evaluate same things twice in retrieve_hook.

8 years agoDo not call DESTROY for empty objects
Vladimir Timofeev [Thu, 11 Jul 2013 23:14:19 +0000 (03:14 +0400)]
Do not call DESTROY for empty objects

Before this fix, deserialization process for object with STORABLE_attach
hook looks like:
1. create SV of needed type
2. lookup classname
3. bless SV to class
4. lookup for STORABLE_attach
5. destroy SV
6. return result of STORABLE_attach call
As a result DESTROY method of target class was called with empty, not
initialized object. This behaviour very bad especially for non
hash-based XS objects.

Fix it, by move blessing temprorary SV after STORABLE_attach hook check.

This commit slowdown deserialization of other objects (with
STORABLE_thaw hook). It will be fixed later.

8 years ago[perl #118923] Add some edge cases to join.t
Tony Cook [Wed, 24 Jul 2013 05:39:46 +0000 (15:39 +1000)]
[perl #118923] Add some edge cases to join.t

8 years agojoin() with an empty list and undef separator may not warn in the future
Tony Cook [Wed, 24 Jul 2013 05:37:37 +0000 (15:37 +1000)]
join() with an empty list and undef separator may not warn in the future

but keep the test to avoid it changing by accident

8 years agoadd Victor Efimov to AUTHORS
Tony Cook [Wed, 24 Jul 2013 05:36:42 +0000 (15:36 +1000)]
add Victor Efimov to AUTHORS

8 years agoAdd some edge cases to join.t test
Victor Efimov [Tue, 16 Jul 2013 16:39:12 +0000 (20:39 +0400)]
Add some edge cases to join.t test

test what join return if called with empty LIST, also
test that it produce warning if separator is undef

8 years agoperldelta: note the perlopentut rewrite
Ricardo Signes [Wed, 24 Jul 2013 04:37:32 +0000 (21:37 -0700)]
perldelta: note the perlopentut rewrite

8 years agoMerge branch 'perlopentut' into blead
Ricardo Signes [Wed, 24 Jul 2013 04:34:36 +0000 (21:34 -0700)]
Merge branch 'perlopentut' into blead

8 years agoperlopentut: standardize on no newline in die
Ricardo Signes [Wed, 24 Jul 2013 04:25:07 +0000 (21:25 -0700)]
perlopentut: standardize on no newline in die

it is nice to know from where an error originates!

8 years agoperlopentut: Spelling and stylistic improvements only.
James E Keenan [Fri, 12 Jul 2013 15:35:42 +0000 (17:35 +0200)]
perlopentut: Spelling and stylistic improvements only.

8 years agoperlopentut: add copyright/author, remove history
Ricardo Signes [Fri, 12 Jul 2013 14:55:59 +0000 (10:55 -0400)]
perlopentut: add copyright/author, remove history

8 years agoperlopentut: correct perlfaq links
Ricardo Signes [Fri, 12 Jul 2013 14:42:06 +0000 (10:42 -0400)]
perlopentut: correct perlfaq links

thanks to David Golden for pointing this out

8 years agoDon't patch perlopentut: rewrite it completely
Tom Christiansen [Fri, 12 Jul 2013 14:20:36 +0000 (10:20 -0400)]
Don't patch perlopentut: rewrite it completely

Patch made by rjbs, from <10107.1361064602@chthon>

> Nearly [all of perlopentut] is non-simple. That is not a tutorial,
> and it is not just about open.  It is more like "FMTEYEWTK About
> open() and I/O in Perl". If the goal is to create a document that
> teaches people how to use open() for the simple cases, then there
> is no hope for perlopentut.  It cannot be turned into that,
> because that is not what it is.  You have to start over.

8 years agoRevert "Remove the non-inline function S_croak_memory_wrap from inline.h."
Tony Cook [Tue, 23 Jul 2013 01:36:01 +0000 (11:36 +1000)]
Revert "Remove the non-inline function S_croak_memory_wrap from inline.h."

This reverts commit 43387ee1abcd83c3c7586b7f7aa86e838d239aac.

Which reverted parts of f019c49e380f764c1ead36fe3602184804292711, but that
reversion may no longer be necessary.

See [perl #116989]

8 years agoFor changelogs suggest name it Changes and follow CPAN::Changes::Spec
Neil Bowers [Sun, 21 Jul 2013 19:59:20 +0000 (20:59 +0100)]
For changelogs suggest name it Changes and follow CPAN::Changes::Spec

8 years agoRevert "perl5180delta: typo"
Father Chrysostomos [Wed, 24 Jul 2013 01:01:35 +0000 (18:01 -0700)]
Revert "perl5180delta: typo"

This reverts commit cbd5ead563d5a5df04e771f407468c0d3bcdb9f7.

Tony Cook pointed out in
<20130724003722.GA12260@mars.tony.develop-help.com> that I have no
idea what I am talking about.

(I did mean gigabyte.)

8 years agopos.t: test something I almost broke
Father Chrysostomos [Tue, 23 Jul 2013 21:38:30 +0000 (14:38 -0700)]
pos.t: test something I almost broke

8 years agofix typo in sv.c apidocs
Father Chrysostomos [Tue, 23 Jul 2013 21:37:29 +0000 (14:37 -0700)]
fix typo in sv.c apidocs

sv_pos_u2b_flags has no offsetp parameter.  This was copied from
sv_pos_u2b.

8 years agosv.c: Remove overflow check in utf8 length cache
Father Chrysostomos [Sun, 21 Jul 2013 13:56:07 +0000 (06:56 -0700)]
sv.c: Remove overflow check in utf8 length cache

In order to make large values of pos() possible, the previous commit
enlarged the mg_len field of the magic struct.  That field is also
used for cached utf8 length values.  Since it is now large enough to
store any length the OS/compiler supports, the overflow never happens.

8 years ago[perl #72766] Allow huge pos() settings
Father Chrysostomos [Sun, 21 Jul 2013 07:38:28 +0000 (00:38 -0700)]
[perl #72766] Allow huge pos() settings

This is part of #116907, too.  It also fixes #72924 as a side effect;
the next commit will explain.

The value of pos($foo) was being stored as an I32, not allowing values
above I32_MAX.  Change it to SSize_t (the signed equivalent of size_t,
representing the maximum string length the OS/compiler supports).

This is accomplished by changing the size of the entry in the magic
struct, which is the simplest fix.

Other parts of the code base can benefit from this, too.

We actually cast the pos value to STRLEN (size_t) when reading
it, to allow *very* long strings.  Only the value -1 is special,
meaning there is no pos.  So the maximum supported offset is
2**sizeof(size_t)-2.

The regexp engine itself still cannot handle large strings, so being
able to set pos to large values is useless right now.  This is but one
piece in a larger puzzle.

Changing the size of mg->mg_len also requires that
Perl_hv_placeholders_p change its type.  This function
should in fact not be in the API, since it exists
solely to implement the HvPLACEHOLDERS macro.  See
<https://rt.perl.org/rt3/Ticket/Display.html?id=116907#txn-1237043>.

8 years agoAdd sv_pos_b2u_flags
Father Chrysostomos [Sun, 21 Jul 2013 07:30:20 +0000 (00:30 -0700)]
Add sv_pos_b2u_flags

This, similar to sv_pos_u2b_flags, is a more friendly variant of
sv_pos_u2b that works with 2GB strings and actually returns a
value instead of modifying a passed-in value in place through
a pointer.

The next commit will use this.

8 years agoperl5180delta: typo
Father Chrysostomos [Sun, 21 Jul 2013 02:02:13 +0000 (19:02 -0700)]
perl5180delta: typo

8 years ago_invlist_intersection() didn't work for NULL first param
Karl Williamson [Tue, 23 Jul 2013 16:40:07 +0000 (10:40 -0600)]
_invlist_intersection() didn't work for NULL first param

It is supposed to accept a NULL first parameter (one of the operands to
the intersection).  This adds a special case for it.

8 years agosv.c: Remove duplicate dups
Karl Williamson [Tue, 23 Jul 2013 15:42:25 +0000 (09:42 -0600)]
sv.c: Remove duplicate dups

These dupes of two tinterpreter variables were already done a few lines
above; also move a third, related, dupe to where the others are done.

8 years agoRemove useless assignments
Karl Williamson [Sun, 21 Jul 2013 16:49:05 +0000 (10:49 -0600)]
Remove useless assignments

These aren't used after setting.  They came from blindly copying code to
this.

8 years agoregcomp.c: Fix #define
Karl Williamson [Sat, 20 Jul 2013 19:21:14 +0000 (13:21 -0600)]
regcomp.c: Fix #define

cl_init_zero should not be defined as S_cl_init, just 'cl_init'.  The S_
prefix is wrong should cl_init be changed to have a pTHX_.

8 years agoregcomp.c: Remove wrong/obsolete line
Karl Williamson [Sat, 20 Jul 2013 19:16:55 +0000 (13:16 -0600)]
regcomp.c: Remove wrong/obsolete line

This line was made obsolete and wrong by commit
a0316a6cd4a14261beb22d95530d5763e8b6756b, which changed the format of
inversion lists.  This hasn't caused problems because the code currently
is #ifdef'd out.

8 years agoregcomp.c: Add some asserts()
Karl Williamson [Tue, 23 Jul 2013 15:25:36 +0000 (09:25 -0600)]
regcomp.c: Add some asserts()

Now that inversion lists are their own scalar types, we can verify that
the parameters to their manipulation functions are indeed inversion
lists.  This adds such assertions to the bottom level code that deals
with the bare metal of the scalars.  Functions that call these (even if
only in other asserts) didn't have asserts added to them, as they call
these anyway.

8 years agoMerge the install_lib.pl/installman/installperl refactoring into blead.
Nicholas Clark [Tue, 23 Jul 2013 12:36:03 +0000 (14:36 +0200)]
Merge the install_lib.pl/installman/installperl refactoring into blead.

8 years agoinstall_lib.pl's samepath() should not warn if $p1 does not exist.
Nicholas Clark [Sun, 14 Jul 2013 09:44:20 +0000 (11:44 +0200)]
install_lib.pl's samepath() should not warn if $p1 does not exist.

If $p1 is a non-existent path, then the two paths can't be the same, so
samepath() should promptly return false.

8 years agoIn install_lib.pl, no need to Config->import for the relocatableinc setup.
Nicholas Clark [Sun, 14 Jul 2013 09:12:17 +0000 (11:12 +0200)]
In install_lib.pl, no need to Config->import for the relocatableinc setup.

require Config; within the BEGIN block instead of using it outside it to
save creating one implicit BEGIN block, and running its import twice.

Remove the require 5.004; as the require of Config will fail if running
with anything other than the version about to be installed.

Note in installperl and installman that install_lib.pl imports Config.

8 years agoMove the wrapper for File::Path::mkpath() to install_lib.pl
Nicholas Clark [Sat, 13 Jul 2013 18:50:44 +0000 (20:50 +0200)]
Move the wrapper for File::Path::mkpath() to install_lib.pl

installperl and installman call File::Path::mkpath with identical arguments
and options, so move the repeated code into a single place.

8 years agoMove {safe_,}rename() from install{man,perl} into install_lib.pl
Nicholas Clark [Sat, 13 Jul 2013 16:33:53 +0000 (18:33 +0200)]
Move {safe_,}rename() from install{man,perl} into install_lib.pl

installman's rename() was identical to installperl's safe_rename() in all
but name (and whitespace), so de-duplicate by moving the code to
install_lib.pl

8 years ago[perl #74798] fix the build for -Duseithreads
Tony Cook [Tue, 23 Jul 2013 01:48:54 +0000 (11:48 +1000)]
[perl #74798] fix the build for -Duseithreads

8 years agoFix missing single quote in a sed in hints/aix.sh
Peter Martini [Sun, 21 Jul 2013 22:45:45 +0000 (18:45 -0400)]
Fix missing single quote in a sed in hints/aix.sh

8 years agoepigraphs.pod: Fix too long verbatim lines
Karl Williamson [Tue, 23 Jul 2013 00:01:30 +0000 (18:01 -0600)]
epigraphs.pod: Fix too long verbatim lines

The new 5.19.2 epigraph is prose, so it can just be block-quoted
instead of verbatim.

This commit also fixes the 5.13.11 epigraph, which already had some long
lines wrapped.

8 years agoperldelta for 1d5bb6ba43b89
Tony Cook [Tue, 23 Jul 2013 00:38:57 +0000 (10:38 +1000)]
perldelta for 1d5bb6ba43b89

8 years ago[perl #116190] -F implies -a, either implies -n
Tony Cook [Tue, 23 Jul 2013 00:24:45 +0000 (10:24 +1000)]
[perl #116190] -F implies -a, either implies -n

Previously -F without -a was a no-op, and -a without -n or -p was a
no-op, with this change, if you supply -F then both -a and -n are
implied (you can still use -p for its extra behaviour), and if you
supply -a then -n is implied.

8 years ago[perl #116190] feed an empty stdin to run_multiple_progs() programs
Tony Cook [Tue, 16 Jul 2013 04:57:20 +0000 (14:57 +1000)]
[perl #116190] feed an empty stdin to run_multiple_progs() programs

Two tests for -a were attempting to read stdin and blocking with the -a
implies -n change.

8 years ago[perl #116190] -F and -a now imply -n
Tony Cook [Tue, 16 Jul 2013 02:11:55 +0000 (12:11 +1000)]
[perl #116190] -F and -a now imply -n

8 years ago[perl #116190] use the true and trusted fresh_perl_is()
Tony Cook [Tue, 16 Jul 2013 02:00:41 +0000 (12:00 +1000)]
[perl #116190] use the true and trusted fresh_perl_is()

instead of re-inventing it yet again

8 years agoMake the -F switch imply -a
Aristotle Pagaltzis [Wed, 9 Jan 2013 10:26:56 +0000 (11:26 +0100)]
Make the -F switch imply -a

8 years agoperldelta for 059639d5cdd
Tony Cook [Mon, 22 Jul 2013 23:52:29 +0000 (09:52 +1000)]
perldelta for 059639d5cdd

8 years agobump version for Data-Dumper
Tony Cook [Mon, 22 Jul 2013 23:46:55 +0000 (09:46 +1000)]
bump version for Data-Dumper

I had a stray 5.19.2 tag (possibly from testing a few weeks back) that
allowed cmp_version.t to pass

8 years ago[perl #74798] improved useqq compatibility with the pure perl version
Tony Cook [Mon, 22 Jul 2013 23:18:41 +0000 (09:18 +1000)]
[perl #74798] improved useqq compatibility with the pure perl version

Currently for non-useqq, the pure perl and XS output for numbers like
these is different, but XS useqq is new, so try to remain vaguely
compatible.

8 years agoAvoid read-after-free in S_scan_heredoc() if the terminator line has no "\n".
Nicholas Clark [Thu, 27 Jun 2013 16:09:32 +0000 (18:09 +0200)]
Avoid read-after-free in S_scan_heredoc() if the terminator line has no "\n".

The code added by commit 112d128413206514 to fix RT #65838 (Allow here-doc
with no final newline) could in some rare cases cause a read of free()d
memory during parsing. The code itself is only run if the Perl program
ends with a heredoc (which is an unusual structure), and if the last line of
the file on disk has no terminating newline character (which is also unusual,
as many editors default to adding a final newline). The bug would be
triggered if the fixup code in S_scan_heredoc() triggered a reallocation of
the buffer in PL_linestr when adding a newline to it.

8 years agoModule-CoreList is 2.94 on CPAN now
Chris 'BinGOs' Williams [Mon, 22 Jul 2013 10:55:23 +0000 (11:55 +0100)]
Module-CoreList is 2.94 on CPAN now

8 years agoUpdate Module-Build to CPAN version 4.007
Chris 'BinGOs' Williams [Mon, 22 Jul 2013 08:41:01 +0000 (09:41 +0100)]
Update Module-Build to CPAN version 4.007

  [DELTA]

0.4007 - Fri Jul 19 13:44:39 CEST 2013

  [BUG FIXES]

  - Removed undeclared test dependency on parent.pm [Leon Timmermans]

  - Declared dependency on Pod::Man 2.17 for utf8 support [Leon Timmermans]

  - Force generation of man pages in manify_with_utf8.t [Leon Timmermans]

0.4006 - Thu Jul 18 14:19:49 CEST 2013

  [ENHANCEMENTS]

  - Significantly sped up some tests by not forcing HTML docs to be
    built when the user's config doesn't ask for them anyway.
    [Ken Williams]

  - The Module::Metadata package was split out from this distro back
    in 2010.  Removed its regression tests. [Ken Williams]

  - Removed dependence on IO::File, replacing it with safe invocations
    of open(). [Sven Dowideit]

  - Added an 'extra_manify_args' parameter to facilitate man pages
    containing Unicode. [Joenio Costa]

  - Added an '--html_links 0' argument for the 'html' action, which
    can hugely speed things up.  The main effect is speeding up the
    M::B tests themselves. [Ken Williams]

  [BUG FIXES]

  - Fix hash argument parsing in subclasses [Graham Ollis]

  - Revised detildification on VMS [Craig Berry]

  - Fix run_test_harness for case when $Switches is an empty string
    [Victor Efimov, Ken Williams]

8 years agoUpdate IPC-SysV to CPAN version 2.04
Chris 'BinGOs' Williams [Mon, 22 Jul 2013 08:28:39 +0000 (09:28 +0100)]
Update IPC-SysV to CPAN version 2.04

  [DELTA]

  2.04 - 2013-07-20

    * CPAN #72458: Add 'all' export
      (thanks to Milan Kocian for providing a patch)
    * CPAN #79821: Install to 'site' for perl 5.11+
      (thanks to Robert Sedlacek for providing a patch)
    * CPAN #86736: Fix spelling of IPC_CREAT
    * CPAN #78882: Document SIZE parameter of IPC::SharedMem->new()
    * CPAN #78927: Fix spelling of 'nattch'

8 years agoMerge the work which improves test diagnostics from run_multiple_progs().
Nicholas Clark [Mon, 22 Jul 2013 08:09:50 +0000 (10:09 +0200)]
Merge the work which improves test diagnostics from run_multiple_progs().

8 years agoReport useful file names and line numbers from run_multiple_progs().
Nicholas Clark [Mon, 15 Jul 2013 09:27:22 +0000 (11:27 +0200)]
Report useful file names and line numbers from run_multiple_progs().

Previously if tests in run_multiple_progs() failed the report gave the file
name and line number of the ok() call in run_multiple_progs(). Now, where
possible, report the file and line of the actual test program. If this
information isn't available, report the error at the file and line which
called run_multiple_progs().

This will improve error reporting from lib/charnames.t, lib/feature.t,
lib/strict.t, lib/subs.t, lib/warnings.t and t/lib/croak.t

8 years agoRemove a duplicate test separator "########\n" line from the pp_sys tests.
Nicholas Clark [Mon, 15 Jul 2013 09:13:48 +0000 (11:13 +0200)]
Remove a duplicate test separator "########\n" line from the pp_sys tests.

The existing parser using split includes the second "########\n" as part of
the extracted test program, which the Perl interpreter treats as a comment
line. The parser refactoring in the next commit no longer adds the line to
the extracted test program, causing the line numbers for the warnings to
differ by one.

The extra "########\n" was added as part of commit c521cf7c8af1697e in Dec
2010, along with the test program which follows it, and the (now) incorrect
line number expectations.

8 years agoMerge the file parsing code for run_multiple_progs() into _setup_one_file().
Nicholas Clark [Sun, 14 Jul 2013 18:44:50 +0000 (20:44 +0200)]
Merge the file parsing code for run_multiple_progs() into _setup_one_file().

setup_multiple_progs() calls _setup_one_file() to parse each file in turn,
and run_multiple_progs() calls it once if passed a file handle.

8 years agoMove file parsing code from t/lib/common.pl to t/test.pl
Nicholas Clark [Sun, 14 Jul 2013 16:58:58 +0000 (18:58 +0200)]
Move file parsing code from t/lib/common.pl to t/test.pl

Move the code that prepares input to run_multiple_progs() by parsing files
into a subroutine setup_multiple_progs(). This will enable the parsing code
in run_multiple_progs() to be merged, and the combined code to be altered to
give improved diagnostics on test failure.

8 years agoRefactor the setup code in t/lib/common.pl
Nicholas Clark [Sun, 14 Jul 2013 15:29:59 +0000 (17:29 +0200)]
Refactor the setup code in t/lib/common.pl

Eliminate the variable $line which has never been used.
(The code was added by commit bd4dea8e97f4a8f5 in June 2001.)
Use a non-capturing group in a regex.
Check the return value of close and die if there is an error.
Explicitly count the tests found.
Avoid indirect object syntax for a method call.

8 years agolib/warnings.t should actually run the test in t/lib/warnings/doop
Nicholas Clark [Mon, 15 Jul 2013 07:48:02 +0000 (09:48 +0200)]
lib/warnings.t should actually run the test in t/lib/warnings/doop

The file containing a single test for a warning in doop.c was added by
commit 0453d815b8a74697 in June 1999. However, as the file does not contain
an __END__ marker, the parser skips the entire contents of the file looking
for the __END__, and then assumes that the file contains no tests. This has
been true since the parser code was first implemented (in t/pragma/warning.t)
in commit 8ebc5c0145d2e355 in Jan 1997.

The simplest fix is to add an __END__ to the start of t/lib/warnings/doop
Also add some sanity checking to ensure that this doesn't happen again.

8 years agosimplify README.macosx instructions
Aristotle Pagaltzis [Mon, 22 Jul 2013 07:38:58 +0000 (09:38 +0200)]
simplify README.macosx instructions

This also removes a repeating version bumping bug.

8 years agofix my stupid perlhist typo
Aristotle Pagaltzis [Mon, 22 Jul 2013 07:28:12 +0000 (09:28 +0200)]
fix my stupid perlhist typo