This is a live mirror of the Perl 5 development currently hosted at
11 years agoGlob.xs: Remove comment
Father Chrysostomos [Sat, 29 Oct 2011 07:51:42 +0000 (00:51 -0700)]
Glob.xs: Remove comment

This was obsoleted by commit f4cbf9907d.

11 years agoGlob.xs: consting
Father Chrysostomos [Sat, 29 Oct 2011 07:50:44 +0000 (00:50 -0700)]
Glob.xs: consting

11 years agoGlob.xs: Be more parsimonious with SVs
Father Chrysostomos [Sat, 29 Oct 2011 07:49:37 +0000 (00:49 -0700)]
Glob.xs: Be more parsimonious with SVs

Since this is XS code, we don’t have to store array references in
a hash.  We can just store the arrays themselves.

11 years agoGlob.xs: Remove comment
Father Chrysostomos [Sat, 29 Oct 2011 07:36:12 +0000 (00:36 -0700)]
Glob.xs: Remove comment

This not longer applies really, as I’ve significantly modified it.

11 years agoOops: Fix Glob.xs assertion failure
Father Chrysostomos [Sat, 29 Oct 2011 07:34:17 +0000 (00:34 -0700)]
Oops: Fix Glob.xs assertion failure

This happens under :bsd_glob when <>/glob is called in list context.

11 years agoGlob.xs: Eliminate x_GLOB_ITER
Father Chrysostomos [Sat, 29 Oct 2011 07:29:21 +0000 (00:29 -0700)]
Glob.xs: Eliminate x_GLOB_ITER

There is no need to keep a separate scalar to remember the number of
items in an array.  We can just use the array.

11 years agoDocument File::Glob’s :bsd_glob tag
Father Chrysostomos [Sat, 29 Oct 2011 07:19:25 +0000 (00:19 -0700)]
Document File::Glob’s :bsd_glob tag

11 years agoAdd :bsd_glob export tag to File::Glob [perl #96116]
Father Chrysostomos [Sat, 29 Oct 2011 07:02:01 +0000 (00:02 -0700)]
Add :bsd_glob export tag to File::Glob [perl #96116]

This is intended to replace the :glob export tag.  The problem with
:glob is that the glob export (File::Glob::glob) does not support ite-
ration, but tries to return a whole list each time; hence it causes
while(<*>) to loop endlessly, as it is repeatedly returning the last
file (scalar context).

Since there may be code relying on that, we cannot easily change it,
but we can supplant it.

Since bsd_glob is already documented as supporting spaces in patterns
(that match spaces in file names; i.e., that are not separators), this
commit adds a :bsd_glob export tag that only differs from :glob in
that the exported glob() function iterates in scalar context.

An imminent commit will add documentation.

11 years agoGlob.xs: Refactor iteration into separate function
Father Chrysostomos [Sat, 29 Oct 2011 05:47:20 +0000 (22:47 -0700)]
Glob.xs: Refactor iteration into separate function

Parsing of a glob pattern and iteration logic are now in separate
functions, so that another function (soon to be added) can share
the same iteration code.

11 years agoMove the do() test in Deparse’s core.t
Father Chrysostomos [Sat, 29 Oct 2011 05:10:58 +0000 (22:10 -0700)]
Move the do() test in Deparse’s core.t

It should be in the list of unary, not nullary, functions.

I’m surprised the tests passed on non-mad builds.

11 years agoRemove unnecessary cruft from the module example.
Michael G. Schwern [Sun, 23 Oct 2011 02:32:04 +0000 (19:32 -0700)]
Remove unnecessary cruft from the module example.

This makes it more like a real module would be written while retaining it's utility as a teaching boilerplate.

* require Exporter instead of use with no import
* Declare and initialize variables together.
* Eliminate archaic RCS/CVS versioning clutter.
* Explain what @ISA does.
* Remove archaic (and slower) &func syntax from exporting
* Remove %EXPORT_TAGS.  It's not explained and rarely used.
* Remove redundant @EXPORT_OK
* Use cleaner $priv_func->() syntax rather than &$priv_func.
* Eliminate prototypes, they're clutter, rarely used and dangerous.

TonyC: update known_pod_issues.dat

11 years agoproduce a properly sorted known_pod_issues.dat
Tony Cook [Sat, 29 Oct 2011 03:11:58 +0000 (14:11 +1100)]
produce a properly sorted known_pod_issues.dat

e08998bf6 changed the generated sort order but didn't regen the file.

11 years agoFixed dative inaccuracy in perlmod.pod.
chromatic [Sun, 23 Oct 2011 01:18:22 +0000 (18:18 -0700)]
Fixed dative inaccuracy in perlmod.pod.

11 years agoRemove unnecessary makefile fix-up code from
Nicholas Clark [Fri, 28 Oct 2011 14:13:18 +0000 (16:13 +0200)]
Remove unnecessary makefile fix-up code from

As it always uses blead's version of makedepend, there's no need to correct
makefile and x2p/makefile for mistakes left by earlier versions of makedepend.

11 years agoIn, patch older Configure to add -A
Nicholas Clark [Fri, 28 Oct 2011 13:56:00 +0000 (15:56 +0200)]
In, patch older Configure to add -A

Having -A to append to options is incredibly useful in some situations, and
working round it can be hard, or have other side effects.

Patching to backport it has only taken about twice the time cost (so far!)
from problems caused by not having -A.

11 years now patches another 5.004-era build busting bug.
Nicholas Clark [Fri, 28 Oct 2011 11:28:31 +0000 (13:28 +0200)] now patches another 5.004-era build busting bug.

A missing comma in perl.c breaks about 50 revisions between 2a92aaa05aa1acbf
and 8490252049bf42d3^.

11 years agoIn, make the code to report patching errors more robust.
Nicholas Clark [Fri, 28 Oct 2011 11:02:10 +0000 (13:02 +0200)]
In, make the code to report patching errors more robust.

Previously it was relying on matching an optional part of the patch to get
the name of the file. Now it matches a mandatory part of the patch to get it.

11 years agoIn, refactor the code to extract previous versions of files.
Nicholas Clark [Fri, 28 Oct 2011 10:35:29 +0000 (12:35 +0200)]
In, refactor the code to extract previous versions of files.

All code to execute variants of git show is now abstracted into subroutines.

11 years agoIn, refactor the code that applies and reverts commits.
Nicholas Clark [Fri, 28 Oct 2011 10:12:03 +0000 (12:12 +0200)]
In, refactor the code that applies and reverts commits.

This makes it clearer when it is applying or reverting entire commits from
git, distinct from arbitrary system calls, or arbitrary patches.

11 years agoIn, refactor the code that opens and closes file handles.
Nicholas Clark [Fri, 28 Oct 2011 08:42:28 +0000 (10:42 +0200)]
In, refactor the code that opens and closes file handles.

Can't use autodie, as this code needs to be able to run with the system perl
alone, and autodie wasn't added until 5.10.1. Also, the approach taken here
provides the filename in the error message for a failed close.

11 years agoallow for 2Gb+ memory allocations on 64-bit Win32 debug builds
Tony Cook [Fri, 28 Oct 2011 10:19:48 +0000 (21:19 +1100)]
allow for 2Gb+ memory allocations on 64-bit Win32 debug builds

long is 32-bit for the 64-bit Win32 memory model, so use the more
portable SSize_t.

Before the change:

C:\Users\tony\dev\perl\git\perl>perl -e "open my $f, 'dir |' or die; $x = ''; re
ad($f, $x, 4, 0x80000000)"
panic: realloc at -e line 1.

and after:

C:\Users\tony\dev\perl\git\perl>perl -e "open my $f, 'dir |' or die; $x = ''; re
ad($f, $x, 4, 0x80000000)"

C:\Users\tony\dev\perl\git\perl>git add util.c

11 years agoUpdate CPANPLUS-Dist-Build to CPAN version 0.60
Chris 'BinGOs' Williams [Thu, 27 Oct 2011 21:49:07 +0000 (22:49 +0100)]
Update CPANPLUS-Dist-Build to CPAN version 0.60


  0.60 Thu Oct 27 20:54:22 BST 2011
    - Eliminate the need to use 'perlwrapper' at all by using
      an equivalent one-liner.

11 years agoUpdate HTTP-Tiny to CPAN version 0.016
Chris 'BinGOs' Williams [Thu, 27 Oct 2011 21:45:21 +0000 (22:45 +0100)]
Update HTTP-Tiny to CPAN version 0.016


  0.016     2011-10-26 23:05:50 America/New_York


  - Fixed Perl 5.6 compatibility by emulating utf8::encode [David Golden]

11 years agoAdd Mark A. Stratman to AUTHORS
Father Chrysostomos [Thu, 27 Oct 2011 21:37:43 +0000 (14:37 -0700)]
Add Mark A. Stratman to AUTHORS

11 years agoperlootut.pod: Removed redundant sentence
Mark A. Stratman [Wed, 21 Sep 2011 19:46:28 +0000 (14:46 -0500)]
perlootut.pod: Removed redundant sentence

11 years agoStop csh_glob from reading past end of string
Father Chrysostomos [Thu, 27 Oct 2011 21:31:13 +0000 (14:31 -0700)]
Stop csh_glob from reading past end of string

It was reading one byte too far, and looking at the trailing null.
This happened only in the case of an unmatched quote.

11 years agoMake csh_glob remove quote-escaping backslashes
Father Chrysostomos [Thu, 27 Oct 2011 21:26:15 +0000 (14:26 -0700)]
Make csh_glob remove quote-escaping backslashes

This commit does not change the output on Unix.  On Windows, where the
globbing engine does not usually treat backslashes as escapes, this
restores the behaviour to what it was before commit 0b0e6d70, for
cases like glob('a\"b c\"d').

Before 0b0e6d70, the preprocessing done by csh_glob (which it out-
sourced to Text::ParseWords) would remove backslash escapes, so the
globbing engine got to see a"b and c"d.

Since 0b0e6d70, the backslash escapes were no longer removed (because
in most cases they needed to remain, to avoid backslashitis), so the
globbing engine got to see a\"b and c\"d.  On Unix that made no dif-
ference, as the globbing engine treats \ as an escape character.  But
on Windows it doesn’t usually, so the output changed and produced a
literal a\"b.

This commit strips out quote-escaping backslashes in the prepro-
cessing code.

11 years agoperlrebackslash: too grammer tweaks
Father Chrysostomos [Thu, 27 Oct 2011 20:36:45 +0000 (13:36 -0700)]
perlrebackslash: too grammer tweaks

11 years agoDeparse CORE::do
Father Chrysostomos [Thu, 27 Oct 2011 16:29:26 +0000 (09:29 -0700)]
Deparse CORE::do

11 years agoDeparse CORE::glob
Father Chrysostomos [Thu, 27 Oct 2011 16:27:19 +0000 (09:27 -0700)]
Deparse CORE::glob

11 years agoIncrease $B::Deparse::VERSION to 1.09
Father Chrysostomos [Thu, 27 Oct 2011 15:42:20 +0000 (08:42 -0700)]
Increase $B::Deparse::VERSION to 1.09

11 years agoPATCH: [perl #99928] Document that is not a bug
Karl Williamson [Thu, 27 Oct 2011 16:18:34 +0000 (10:18 -0600)]
PATCH: [perl #99928] Document that is not a bug

After consulting with Tom Christiansen, we decided that this is not a
bug.  The CR-LF sequence is considered a unit by Unicode, and so should
be inseperable, even when separating the two would cause a pattern to
match that otherwise fails.

11 years agoPATCH: [perl #101970] /[[:lower:]]/i matches upper case
Karl Williamson [Thu, 27 Oct 2011 15:39:11 +0000 (09:39 -0600)]
PATCH: [perl #101970] /[[:lower:]]/i matches upper case

This bug is a regression in 5.14, in which /[[:lower:]]/i and
/[[:upper:]]/i no longer matched the opposite case.

The fix is to have these use a different table under /i matching, that
includes the correct /i code points.  These tables were already
available, just unused.

11 years agoregcomp.c: Don't prefix posix props with Is
Karl Williamson [Thu, 27 Oct 2011 16:31:02 +0000 (10:31 -0600)]
regcomp.c: Don't prefix posix props with Is

When confronted with something like [[:alpha:]], regcomp.c adds
IsPosixAlpha to the list of properties for code points above 255 to
match against when executing the pattern.  The 'Is' is extraneous, and
future commits will not want it.

11 years agoMinor usability improvements to
Nicholas Clark [Thu, 27 Oct 2011 14:55:53 +0000 (16:55 +0200)]
Minor usability improvements to

* Canonicalise the start and end commit-ish to actual commits before changing
  what is checked out. This allows one to use HEAD for either.
* For git 1.6.6 and later, use git bisect reset HEAD to avoid one change of
  what is checked out
* Sanity test the end revision before the start revision (or the search for a
  start revision), as one compile of the end revision is likely to be faster
  than the search (particularly if the search fails), hence on average any
  problems will be reported earlier.

11 years needs to work around an OpenBSD/sparc compiler bug.
Nicholas Clark [Thu, 27 Oct 2011 14:18:17 +0000 (16:18 +0200)] needs to work around an OpenBSD/sparc compiler bug.

OpenBSD 4.6 has a sparc compiler bug that prevents building perl-5.8.0.
Work around this, as assumes that it can build all stable .0

11 years agoIn, add -L/usr/local/lib in a non-OS-specific way.
Nicholas Clark [Thu, 27 Oct 2011 14:14:23 +0000 (16:14 +0200)]
In, add -L/usr/local/lib in a non-OS-specific way.

It's not scalable to hack the hints file on an OS by OS basis to add
-L/usr/local/lib to ldflags, given that in reality any OS will need it, if
it happens to have "wanted" libraries installed in /usr/local. So apply
the relevant logic that deals with this in perl-5.001n's Configure to earlier
versions of Configure.

With this, we can remove the special case to add -L/usr/local/lib for
FreeBSD, and avoid writing similar code for OpenBSD.

11 years agoFile::Glob: short-circuit earlier for list cx
Father Chrysostomos [Thu, 27 Oct 2011 07:28:02 +0000 (00:28 -0700)]
File::Glob: short-circuit earlier for list cx

For <...> without spaces in list context, don’t even bother adding
file names returned by the glob engine to the cached array.  I origin-
ally added a short-circuit that would skip copying the file names from
the cached array on to the stack in that case, because the file names
are already there.  But we can also skip putting them in the array to
begin with, as the cached array is about to be deleted.

This should make things even faster.

11 years agoFile::Glob: Eliminate the doglob alias to bsd_glob
Father Chrysostomos [Thu, 27 Oct 2011 06:48:27 +0000 (23:48 -0700)]
File::Glob: Eliminate the doglob alias to bsd_glob

I’m referring here to CVs, not C functions.

Actually, bsd_glob is the alias to doglob.  doglob is no longer
called, as of commit 1bb8785ab1.  So this commit is actually renaming
doglob to bsd_glob and removing the alias.

11 years agoSkip <~> test on VMS
Father Chrysostomos [Thu, 27 Oct 2011 06:35:55 +0000 (23:35 -0700)]
Skip <~> test on VMS

11 years agoMake dual-life.t emit full paths
Father Chrysostomos [Thu, 27 Oct 2011 01:12:23 +0000 (18:12 -0700)]
Make dual-life.t emit full paths

When it fails, this makes it easier to see why.

11 years agoTweak dual-life.t’s exclusion list
Father Chrysostomos [Thu, 27 Oct 2011 01:10:25 +0000 (18:10 -0700)]
Tweak dual-life.t’s exclusion list

to ignore ../cpan/Module-Build/MB-gADHN4rt/Simple/bin/foo

(without a .PL extension)

11 years agoTest $x=wait under arybase
Father Chrysostomos [Thu, 27 Oct 2011 01:05:25 +0000 (18:05 -0700)]
Test $x=wait under arybase

11 years agoarybase.xs: Always check the op type in ck_*
Father Chrysostomos [Thu, 27 Oct 2011 01:02:58 +0000 (18:02 -0700)]
arybase.xs: Always check the op type in ck_*

Sometimes the previous check function will have replaced the op
with one of a different type.  In that case, the rest of arybase’s
check function does not apply and can even cause a crash for ops
with no children (e.g., $x=wait is optimised down to a simple wait
op with no children and with op_targ pointing to $x, if it is

11 years agoarybase.xs: Remove extraneous semicolon
Father Chrysostomos [Thu, 27 Oct 2011 00:56:32 +0000 (17:56 -0700)]
arybase.xs: Remove extraneous semicolon

11 years agoRemove arybase’s Makefile.PL
Father Chrysostomos [Wed, 26 Oct 2011 22:14:12 +0000 (15:14 -0700)]
Remove arybase’s Makefile.PL

It only existed to work around an ExtUtils::MakeMaker problem that is
now fixed

11 years agoFix CORE::glob
Father Chrysostomos [Wed, 26 Oct 2011 00:56:32 +0000 (17:56 -0700)]
Fix CORE::glob

This commit makes CORE::glob bypassing glob overrides.

A side effect of the fix is that, with the default glob implementa-
tion, undefining *CORE::GLOBAL::glob no longer results in an ‘unde-
fined subroutine’ error.

Another side effect is that compilation of a glob op no longer assumes
that the loading of File::Glob will create the *CORE::GLOB::glob type-
glob.  ‘++$INC{"File/"}; sub File::Glob::csh_glob; eval '<*>';’
used to crash.

This is accomplished using a mechanism similar to lock() and
threads::shared.  There is a new PL_globhook interpreter varia-
ble that pp_glob calls when there is no override present.  Thus,
File::Glob (which is supposed to be transparent, as it *is* the
built-in implementation) no longer interferes with the user mechanism
for overriding glob.

This removes one tier from the five or so hacks that constitute glob’s
implementation, and which work together to make it one of the buggiest
and most inconsistent areas of Perl.

11 years agoRewrite csh_glob in C; fix two quoting bugs
Father Chrysostomos [Tue, 25 Oct 2011 22:40:40 +0000 (15:40 -0700)]
Rewrite csh_glob in C; fix two quoting bugs

This commit rewrites File::Glob::csh_glob (which implements perl’s
default globbing behaviour) in C.

This fixes a problem introduced by 0b0e6d70f.  If there is an
unmatched quotation mark, all attempts to parse the pattern are
discarded and it is treated as a single token.  Prior to 0b0e6d70f,
whitespace was stripped from both ends in that case.  As of 0b0e6d70f,
it was only stripped from the beginning.  This commit restores the
pre-0b0e6d70f behaviour with unmatched quotes.  It doesn’t take
'a"b\ ' into account (where the space is escaped), but that wasn’t
handled properly before 0b0e6d70f, either.

This also finishes making csh_glob consistent with regard to quota-
tion marks.  Commit 0b0e6d70f attempted to do that, but did not strip
out medial quotation marks, as in a"b"c.  Text::ParseWords does not
provide an interface for stripping out quotation marks but leaving
backslashes, which I tried to work around, not fully understanding
the implications.  Anyway, this new C implementation doesn’t use

The latter fix caused a test failure, but that test was there to make
sure the behaviour didn’t change depending on whether File::Glob
was loaded before the first mention of glob().  (In 5.6, loading
File::Glob first would make perl revert to external csh glob, ironic-
ally enough.)  This commit modifies the test to test for sameness,
rather than exact output.  In fact, this change causes perl and
miniperl to be consistent, and probably also causes glob to be more
consistent across platforms (think of VMS).

Another effect of the translation to C is that the Unicode Bug is
fixed with regard to splitting patterns.  The C code effectively does
/\s/a now (which I believe is the only sane behaviour in this case),
instead of treating the string differently depending on the UTF8 flag.
The Unicode Bug is still present with regard to actual globbing.

This commit introduces one regression.  This code:

    undef %File::Glob::;

will no longer return anything, because csh_glob no longer holds a
reference count on the $File::Glob::DEFAULT_FLAGS glob.  Any code that
does that is beyond crazy.

The big advantage to this patch is speed.  Something like
‘@files = <*>’ is 18% faster in a folder of 300 files.  For smaller
folders there should be an even more notable difference.

11 years agoSpeed up csh_glob
Father Chrysostomos [Tue, 25 Oct 2011 05:27:48 +0000 (22:27 -0700)]
Speed up csh_glob

If it’s not going to be using the pattern at all (due to iteration),
there is absolutely no point in parsing it.

This will speed up CORE::glob and <...> as well, since they use
csh_glob by default.

11 years agoUpdate HTTP-Tiny to CPAN version 0.015
Chris 'BinGOs' Williams [Wed, 26 Oct 2011 20:50:55 +0000 (21:50 +0100)]
Update HTTP-Tiny to CPAN version 0.015


  0.015     2011-10-26 16:42:26 America/New_York


  - Make sure PERL_UNICODE doesn't affect PUT test data [Tony Cook]


  - Fixed typo

11 years can now build all revisions on sparc64 Linux.
Nicholas Clark [Wed, 26 Oct 2011 21:19:39 +0000 (23:19 +0200)] can now build all revisions on sparc64 Linux.

test_prep back to 5.001n, miniperl back to 5.000, for both 32 and 64 bit.
This requires backporting tweaks to the Linux hints file, and patching
early Configure to detect byteorder correctly as 87654321 when using
linker flags to build 64 bit.

11 years should patch unreliable C symbol detection code.
Nicholas Clark [Wed, 26 Oct 2011 21:17:58 +0000 (23:17 +0200)] should patch unreliable C symbol detection code.

Fix Configure's symbol detection to that of commit 373dfab3839ca168 if it's
any intermediate version 5129fff43c4fe08c or later, as the intermediate
versions don't work correctly on (at least) Sparc Linux.

11 years now patches several build-busting-bugs between 5.004 & 5.005
Nicholas Clark [Wed, 26 Oct 2011 21:08:28 +0000 (23:08 +0200)] now patches several build-busting-bugs between 5.004 & 5.005

This significantly reduces the number of "skip" revisions between 5.004 and
5.005, at worst speeding up bisects for problems which originate at this
time, at best permitting git bisect to locate the actual commit, instead of
a range of "skip"s.

11 years now copes when historical MANIFEST files list directories.
Nicholas Clark [Wed, 26 Oct 2011 21:02:06 +0000 (23:02 +0200)] now copes when historical MANIFEST files list directories.

It had assumed that MANIFEST only listed files, which caused its
'force-manifest' code to choke on revisions between 27332437a2ed1941 and
bf3d9ec563d25054^ inclusive, as manifest contains ext/Thread/Thread

11 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.63_01
Chris 'BinGOs' Williams [Wed, 26 Oct 2011 19:10:05 +0000 (20:10 +0100)]
Update ExtUtils-MakeMaker to CPAN version 6.63_01


  6.63_01  Sun Oct 23 16:57:24 PDT 2011
    Bug Fixes
    * Stray $ in the PPD and meta files (for example, from the ABSTRACT)
      are now escaped.  [ 71847]

    Possibly incompatible changes
    * echo() now escapes all dollar signs by default

    New Features
    * echo() has an option to allow make variable expansion.
    * echo() is now passed a hash of options (old style $appending flag
      still works for compatibility).
    * quote_literal() now escapes dollar signs, but allows make variables.
    * quote_literal() has an option to escape make variables.
    * escape_dollarsigns() to escape dollar signs but allow variables
    * escape_all_dollarsigns() to escape all dollar signs

    * The PPD VERSION is now derived from the VERSION variable in the Makefile
      rather than hard coded.

    Bundled Modules
    * Updated CPAN::Meta to 2.112621
    * Updated CPAN::Meta::YAML to 0.004
    * Updated JSON::PP to 2.27200

  6.62  Sun Oct 23 16:43:36 PDT 2011
    No changes from 6.61_01

11 years agoMake new basic.t glob tests work on Win & VMS
Father Chrysostomos [Tue, 25 Oct 2011 05:16:38 +0000 (22:16 -0700)]
Make new basic.t glob tests work on Win & VMS

I forgot about the default PERL_EXTERNAL_GLOB setting on VMS and the
special treatment of backslashes on Windows in bsd_glob.c.

11 years agoCorrect comment in
Father Chrysostomos [Mon, 24 Oct 2011 23:43:51 +0000 (16:43 -0700)]
Correct comment in

<...> is a double-quotish construct.

11 years agoRemove part of intrpvar.h comment
Father Chrysostomos [Mon, 24 Oct 2011 23:39:21 +0000 (16:39 -0700)]
Remove part of intrpvar.h comment

This second sentence is no longer true as of 87b9e160.

11 years agoMake File::Glob::csh_glob consisent wrt '"\
Father Chrysostomos [Mon, 24 Oct 2011 23:03:55 +0000 (16:03 -0700)]
Make File::Glob::csh_glob consisent wrt '"\

File::Glob::csh_glob, which is the routine implementing Perl’s own
glob function, is not consistent in its treatment of quotation marks
and backslashes.  It differs depending on whether there are white-
space characters in the pattern both preceded and followed by non-

Without whitespace, quotation marks are treated literally and back-
slashes are treated as escapes that cause metacharacters to be treated
literally.  So


looks for files with literal quotation marks in their name.

With whitespace, quotation marks are treated as word delimiters, so

    <"foo copy*">

will find file names matching /^foo copy/.  Backslash escapes are pro-
cessed twice, so one has to write

    glob '\\\** .\\\**'

to find files beginning with a literal ‘*’ or ‘.*’.  But simply

    glob '\**'

to find files beginning with ‘*’.  (Note that <> is a double-quotish
operator, so in <> those would have to be quadruple and double back-
slashes, respectively.)

There are two problems with the code:

1) Text::Parsewords is only used when there is whitespace present.  It
   should be used also for quotation marks, too, if they exist.
2) Text::Parsewords should not be removing backslash escapes.
3) Actually, there’s a third.  A final escaped space should also go
   through Text::ParseWords, instead of being stripped.

This commit fixes both things.

11 years agoIn, default to 'cc' not 'gcc'.
Nicholas Clark [Mon, 24 Oct 2011 16:01:45 +0000 (18:01 +0200)]
In, default to 'cc' not 'gcc'.

With this, can build on Solaris (at least x86 Solaris) back
to 5.000.

11 years agoMake <~> work again under miniperl
Father Chrysostomos [Mon, 24 Oct 2011 13:14:31 +0000 (06:14 -0700)]
Make <~> work again under miniperl

Commit a3342be368 localised %ENV before calling csh for glob.  But
that causes <~> to stop working.  So this commit clears out %ENV
*except* for $ENV{HOME}.

It relies on the way magic works:  Before localising the %ENV hash, it
retrieves its $ENV{HOME} element, which is a magical scalar.  It calls
get-magic to store the value in the scalar itself, localises %ENV, and
then calls set-magic on the element, to signal (deceitfully) that an assignment has just happened.  So the cached value in the magical sca-
lar is used and assigned to the env var.

11 years agoAdd unit tests for Socket::{pack,unpack}_ipv6_mreq
Paul \"LeoNerd\" Evans [Thu, 20 Oct 2011 11:30:51 +0000 (12:30 +0100)]
Add unit tests for Socket::{pack,unpack}_ipv6_mreq

TonyC: add new ipv6_mreq.t test script to MANIFEST

11 years agoWrap some IPv6 sockopt constants and ipv6_mreq structure
Paul \"LeoNerd\" Evans [Thu, 13 Oct 2011 14:42:17 +0000 (15:42 +0100)]
Wrap some IPv6 sockopt constants and ipv6_mreq structure

11 years agoAdd another e-mail address for Jim Meyering
Father Chrysostomos [Sun, 23 Oct 2011 23:45:51 +0000 (16:45 -0700)]
Add another e-mail address for Jim Meyering

11 years agodon't segfault given string repeat count larger than 2^31
Jim Meyering [Sun, 23 Oct 2011 23:04:11 +0000 (16:04 -0700)]
don't segfault given string repeat count larger than 2^31

E.g., this overflows INT_MAX and overruns heap memory:

    $ perl -le 'print "v"x(2**31+1)'
    [Exit 139 (SEGV)]

(Perl_repeatcpy): Use the same type for "count" as our sole
callers in pp.c: IV (long), not I32 (int).  Otherwise, passing
the wider value to a narrower "I32 count"

11 years agoignore extra build product from ext/arybase/
Tony Cook [Sun, 23 Oct 2011 23:17:15 +0000 (10:17 +1100)]
ignore extra build product from ext/arybase/

11 years agofix g++ build breakage introduced in 03d9f026ae25
Tony Cook [Sun, 23 Oct 2011 23:15:37 +0000 (10:15 +1100)]
fix g++ build breakage introduced in 03d9f026ae25

C++ requires a cast to convert from void * to other types.

11 years agoperlfunc: List readpipe with qx
Father Chrysostomos [Sun, 23 Oct 2011 21:16:08 +0000 (14:16 -0700)]
perlfunc: List readpipe with qx

11 years agoAdd Laurent Dami to AUTHORS
Father Chrysostomos [Sun, 23 Oct 2011 20:44:14 +0000 (13:44 -0700)]
Add Laurent Dami to AUTHORS

11 years agoTest with objects whose classes contain ‘=’
Father Chrysostomos [Sun, 23 Oct 2011 20:24:21 +0000 (13:24 -0700)]
Test with objects whose classes contain ‘=’

11 years agoExamining objects through the 'x' command in the perl debugger doesn't
Laurent Dami [Sun, 23 Oct 2011 20:23:44 +0000 (13:23 -0700)]
Examining objects through the 'x' command in the perl debugger doesn't
work if those objects are blessed into class names containing '='.

This is due to incorrect parsing through 'split' in line 165.

11 years agoSynchronise Module::CoreList version in with CPAN
Chris 'BinGOs' Williams [Sun, 23 Oct 2011 19:14:59 +0000 (20:14 +0100)]
Synchronise Module::CoreList version in with CPAN

11 years agoUpdate Unicode-Collate to CPAN version 0.81
Chris 'BinGOs' Williams [Sun, 23 Oct 2011 19:08:59 +0000 (20:08 +0100)]
Update Unicode-Collate to CPAN version 0.81


  0.81  Sun Oct 23 21:32:36 2011
    - U::C::Locale newly supports locales: ml, mr, or, pa.
    - added loc_ml.t, loc_mr.t, loc_or.t, loc_pa.t in t.
    - updated some locales to CLDR 2.0 : mk, mt, nb, nn, ro, ru.

11 years now builds test_prep on OpenBSD back to 5.002
Nicholas Clark [Sun, 23 Oct 2011 17:39:04 +0000 (18:39 +0100)] now builds test_prep on OpenBSD back to 5.002

The historical OpenBSD hints file needs tweaking for compiler and linker
flags, and needs to be provided for revisions before it was added to the
source tree. perl.h and pp_sys.c need patching with the current (i.e. post
1996) #ifdef forest for [gs]etpgrp() variants. perl.h needs to include
<unistd.h> on OpenBSD, else POSIX.xs won't build.

OpenBSD also requires all the parallel Makefile fixes, as its make builds
targets in reverse lexical order, which reveals a lot of assumptions about
build order. (Such as Cwd nearly always being built in time, because it
sorts lexically far ahead of other XS modules dependant on it.)

11 years must patch Makefile.SH to avoid parallel make problems.
Nicholas Clark [Sun, 23 Oct 2011 16:28:51 +0000 (17:28 +0100)] must patch Makefile.SH to avoid parallel make problems.

Patch in all 4 "extra_dep" rules for XS modules if any are needed as it
simplifies the implementation. It does no harm to have dependency rules for
XS modules "from the future", as they are ignored if the module is not
present. None were needed before Cwd was first converted to an XS module,
so use that as the test for applicability.

Remove a short-lived set of Makefile rules that attempted to run the regen
scripts if needed (commits 9fec149bb652b6e9 and 5bab1179608f81d8), as they
obscure whether correctly regenerated headers were checked in, and can cause
spurious rebuilds or timing-related parallel make failures.

Remove the code to explicitly set @INC in POSIX's Makefile.PL, as the @INC
it sets will cause build failures with if Cwd isn't built first,
whereas the @INC set by has no such issue.

11 years now runs the testcase for targets config.{sh,h}
Nicholas Clark [Sun, 23 Oct 2011 15:49:19 +0000 (16:49 +0100)] now runs the testcase for targets config.{sh,h}

Previously for these two targets it assumed --test-build if a --match
wasn't supplied, and never ran a test case if one was supplied. Now
--test-build must be specified explicitly, otherwise the test case will be
run. For example, this makes it easy to bisect using a testcase which greps or config.h. (Of course, one can do roughly this with the --match
option, but this will match against all generated files, which may generate
false positives.)

11 years ago[perl #101486] Make PL_curstash refcounted
Father Chrysostomos [Sat, 22 Oct 2011 18:06:35 +0000 (11:06 -0700)]
[perl #101486] Make PL_curstash refcounted

This stops PL_curstash from pointing to a freed-and-reused scalar in
cases like ‘package Foo; BEGIN {*Foo:: = *Bar::}’.

In such cases, another BEGIN block, or any subroutine definition,
would cause a crash.  Now it just happily proceeds.  newATTRSUB and
newXS have been modified not to call mro_method_changed_in in such
cases, as it doesn’t make sense.

11 years agoUpdate Archive-Extract to CPAN version 0.58
Chris 'BinGOs' Williams [Sat, 22 Oct 2011 20:22:59 +0000 (21:22 +0100)]
Update Archive-Extract to CPAN version 0.58


  Changes for 0.58    Sat Oct 22 20:25:00 2011
  * Apply patch from Craig A. Berry [rt#71846]
    make _untar_bin use Unix-syntax archive names
    on VMS

11 years agoregexp_unicode_prop.t: Add tests.
Karl Williamson [Sat, 22 Oct 2011 20:08:10 +0000 (14:08 -0600)]
regexp_unicode_prop.t: Add tests.

These tests make sure that a user-defined property may be included as
part of another user-defined property.

11 years agoperlunicode: Fix example.
Karl Williamson [Sat, 22 Oct 2011 20:03:47 +0000 (14:03 -0600)]
perlunicode: Fix example.

5.14 restricted the names of user-defined property subroutines to begin
with 'Is' and 'In', as has always been documented.  But the example
in that documentation didn't follow that restriction.

11 years agoUpdate perlfaq to CPAN version 5.0150036
Chris 'BinGOs' Williams [Sat, 22 Oct 2011 19:08:35 +0000 (20:08 +0100)]
Update perlfaq to CPAN version 5.0150036


  5.0150036 Sat 22 Oct 2011 16:20:34 +0100
    * Website moved from -> (ranguard)
    * Delete some questions/cleanup copy (ranguard)
    * Make perlfaq.pod shorter/cleaner (kablamo)
    * Many cleanups and corrections (shlomif)

11 years agoUpdate HTTP-Tiny to CPAN version 0.014
Chris 'BinGOs' Williams [Sat, 22 Oct 2011 19:03:12 +0000 (20:03 +0100)]
Update HTTP-Tiny to CPAN version 0.014


  0.014     2011-10-20 13:54:13 America/New_York


  - Adds additional shorthand methods for all common HTTP verbs
    (HEAD, PUT, POST, DELETE) [David Golden]

  - post_form() method for POST-ing x-www-form-urlencoded data
    [David Golden]

  - www_form_urlencode() utility method [David Golden]

11 years agoReimplement $[ as a module
Father Chrysostomos [Fri, 21 Oct 2011 12:58:40 +0000 (05:58 -0700)]
Reimplement $[ as a module

This commit reimplements $[ using PL_check hooks, custom pp func-
tions and ties.

Outside of its compile-time use, $[ is now parsed as a simple varia-
ble, so function calls like foo($[) are permitted, which was not the
case with the former implementation removed by e1dccc0.  I consider
that a bug fix.

The ‘That use of $[ is unsupported’ errors are out of necessity
deferred to run-time and implemented by a tied $[.

Indices between 0 and the array base are now treated consistently, as
are indices between a negative array base and zero.  That, too, is
a bug fix.

11 years agoperlrecharclass: Nit
Karl Williamson [Fri, 21 Oct 2011 01:22:35 +0000 (19:22 -0600)]
perlrecharclass: Nit

11 years agoFix a path in the release guide
Florian Ragwitz [Fri, 21 Oct 2011 01:28:36 +0000 (18:28 -0700)]
Fix a path in the release guide

11 years agoCreate a perldelta for 5.15.5
Florian Ragwitz [Fri, 21 Oct 2011 01:28:23 +0000 (18:28 -0700)]
Create a perldelta for 5.15.5

11 years agoAdd the 5.15.4 epigraph
Florian Ragwitz [Fri, 21 Oct 2011 01:10:56 +0000 (18:10 -0700)]
Add the 5.15.4 epigraph

11 years agoAdd a release announcement template to Porting
David Golden [Thu, 20 Oct 2011 23:13:59 +0000 (19:13 -0400)]
Add a release announcement template to Porting

This makes it just a little bit easier for release managers
and also fixes the perennial north-hemisphere bias in the future
release date.

11 years agoFix the installation of pod2html v5.15.4
Florian Ragwitz [Thu, 20 Oct 2011 20:25:54 +0000 (13:25 -0700)]
Fix the installation of pod2html

11 years agoAdd acknowledgements to the perldelta
Florian Ragwitz [Thu, 20 Oct 2011 17:22:27 +0000 (10:22 -0700)]
Add acknowledgements to the perldelta

11 years agoStop Porting/ from producing hatespace
Florian Ragwitz [Thu, 20 Oct 2011 17:22:07 +0000 (10:22 -0700)]
Stop Porting/ from producing hatespace

11 years agoAdd 5.15.4 to perlhist
Florian Ragwitz [Thu, 20 Oct 2011 03:37:12 +0000 (20:37 -0700)]
Add 5.15.4 to perlhist

11 years agoRemove the MANIFEST check from the release guide
Florian Ragwitz [Thu, 20 Oct 2011 03:35:07 +0000 (20:35 -0700)]
Remove the MANIFEST check from the release guide

We already have porting tests catching this. I really don't see how this could
end up being screwed or how it'd be more likely at this point during the release
process than at any other time.

11 years agoUpdate Module::CoreList for 5.14.4
Florian Ragwitz [Thu, 20 Oct 2011 03:20:22 +0000 (20:20 -0700)]
Update Module::CoreList for 5.14.4

11 years agoBump the perl version in various places for 5.15.4
Florian Ragwitz [Tue, 18 Oct 2011 18:21:09 +0000 (11:21 -0700)]
Bump the perl version in various places for 5.15.4

11 years agoGet perldelta into mostly finished state
Florian Ragwitz [Thu, 20 Oct 2011 15:58:47 +0000 (08:58 -0700)]
Get perldelta into mostly finished state

11 years agoDavid changelogged this
Florian Ragwitz [Thu, 20 Oct 2011 03:54:02 +0000 (20:54 -0700)]
David changelogged this

Thanks, David!

11 years ago[perl #101738] Make sv_sethek set the UTF8 flag correctly
Father Chrysostomos [Thu, 20 Oct 2011 06:54:57 +0000 (23:54 -0700)]
[perl #101738] Make sv_sethek set the UTF8 flag correctly

It was only ever turning it on, and not turning it off if the sv hap-
pened to have it on from its previous use.

This caused ref() (which uses sv_sethek(TARG,...)) to return a shared
scalar with the UTF8 flag on, even if it was supposed to be off.

For shared scalars, the UTF8 flag on ASCII strings does make a differ-
ence.  The pv *and* the flags are used in hash lookup, for speed.

So a scalar returned by ref() with the UTF8 flag on by mistake would
not work in hash lookups.  exists $classes{ref $foo} would return
false, even if there were an entry for that class.

11 years agoRemove untrue comment from t/op/ref.t
Father Chrysostomos [Thu, 20 Oct 2011 06:42:55 +0000 (23:42 -0700)]
Remove untrue comment from t/op/ref.t

This has been untrue since it was added in commit 6e592b3a.

11 years now builds test_prep on NetBSD back to 5.002
Nicholas Clark [Thu, 20 Oct 2011 07:26:33 +0000 (09:26 +0200)] now builds test_prep on NetBSD back to 5.002

The historical NetBSD hints need tweaking for dynamic linking flags, and
older versions of unixish.h needs tweaking to include <signal.h>