This is a live mirror of the Perl 5 development currently hosted at
11 years agoUpdate core_prototype’s docs
Father Chrysostomos [Tue, 9 Aug 2011 13:02:39 +0000 (06:02 -0700)]
Update core_prototype’s docs

11 years agoMove pp_-specific code out of core_prototype
Father Chrysostomos [Tue, 9 Aug 2011 06:57:01 +0000 (23:57 -0700)]
Move pp_-specific code out of core_prototype

Commit b8c38f0a2a65 refactored pp_prototype by moving much of its
code to a new function in op.c, called core_prototype.  This served
two purposes: (1) to allow the code to be simplified, which required
the use of static functions in op.c, and (2) to allow the &CORE::subs
feature to share the same code.

But some code was moved to core_prototype which, in hindsight, did not
need to be moved, such as the ‘Can’t find an opnumber’ message.

This commit moves that code back to pp_prototype, resulting in a sim-
pler (and possibly faster, at least for &CORE::subs) core_prototype.

11 years agoChange core_prototype to take a keyword num
Father Chrysostomos [Tue, 9 Aug 2011 06:38:14 +0000 (23:38 -0700)]
Change core_prototype to take a keyword num

This refactoring requires the caller to provide the keyword
number to core_prototype.  Consequently, it speeds up the code in
gv.c:gv_fetchpvn_flags by allowing it to avoid an extra call to

This takes the place of the len parameter, which is no longer used.
It used to be used only as an argument to keyword().  Since the code
that uses strEQ is only reached if the keyword has already been veri-
fied by keyword(), the name simply cannot have embedded nulls, so len
is not necessary.

11 years agoAdd tests for precedence of CORE:: subs
Father Chrysostomos [Sun, 14 Aug 2011 13:40:06 +0000 (06:40 -0700)]
Add tests for precedence of CORE:: subs

11 years agoAdd inlinable &CORE::functions
Father Chrysostomos [Sat, 6 Aug 2011 07:20:06 +0000 (00:20 -0700)]
Add inlinable &CORE::functions

This commit allows this to work:

  BEGIN { *entangle = \&CORE::tie };
  entangle $foo, $package;

And the entangle call gets inlined as a tie op, the resulting op tree
being indistinguishable.

These subs are not yet callable via &foo syntax or through a refer-
ence.  That will come later, except for some functions, like sort(),
which will probably never support it.

Almost all overridable functions are supported.  These few are not:

  - infix operators
  - not and getprotobynumber (can’t get the precedence right yet;
    prototype problem)
  - dump

Subsequent commits (hopefully!) will deal with those.

How this works:

gv_fetchpvn_flags is extended with hooks to create subs inside the
CORE package.  Those subs are XSUBs (whose C function dies with an
error, for now at least) with a call checker that blows away the
entersub op and replaces it with whatever op the sub represents.

This is slightly inefficient right now, as gv_fetchpvn_flags calls
keyword(), only to have core_prototype call it again.  That will
be fixed in a future refactoring.

11 years agoMake core_prototype provide the op number as well
Father Chrysostomos [Tue, 2 Aug 2011 22:04:47 +0000 (15:04 -0700)]
Make core_prototype provide the op number as well

Since it has to calculate it, it might as well provide it, so callers
do not have to go through that while(i < MAXO) loop yet again.

(The &CORE::foo feature will use this.)

11 years agoMake sure the CORE package is always called CORE
Father Chrysostomos [Tue, 2 Aug 2011 21:46:17 +0000 (14:46 -0700)]
Make sure the CORE package is always called CORE

And not ::CORE or main::CORE or *CORE, etc.

Since the CORE package’s magic for autovivifying CORE subs
will be based on the package name, we can’t have code like
&::CORE::foo breaking the entire package.

Making a more general change to gv_fetchpvn_flags causes
problems for autoloaded SUPER methods and strangely-named
packages like main::::foo, so this patch is CORE-specific.

11 years agoRemove select’s prototype
Father Chrysostomos [Fri, 12 Aug 2011 19:29:07 +0000 (12:29 -0700)]
Remove select’s prototype

select has a prototype of (;*), which is incorrect, as it implied that
it has high precedence.  It also fails to account for the four-argu-
ment form.  While removing all incorrect prototypes is counterproduc-
tive, I think this one is wrong enough it deserves to go.  (And the
precedence problem is a good argument against it, as there is cur-
rently no other way to set precedence.)

11 years agoB::Terse and B::Xref were missing some documentation.
Reini Urban [Sat, 13 Aug 2011 10:43:02 +0000 (12:43 +0200)]
B::Terse and B::Xref were missing some documentation.

11 years agoremove the rest of pod/perlcompile.pod
Reini Urban [Sat, 13 Aug 2011 10:28:36 +0000 (12:28 +0200)]
remove the rest of pod/perlcompile.pod

perlcompile.pod is now maintained with B::C, and much more complete there.

[Subsequent build and test fixes by the committer]

11 years agoIn, use %Config to avoid hardcoding the DLL version number.
Nicholas Clark [Thu, 11 Aug 2011 12:35:02 +0000 (14:35 +0200)]
In, use %Config to avoid hardcoding the DLL version number.

11 years agoInitial attempt at putting podcheck.t on a diet.
Craig A. Berry [Sat, 13 Aug 2011 15:35:12 +0000 (10:35 -0500)]
Initial attempt at putting podcheck.t on a diet.

The current design of this test is to scan *every* file in a dirty
build directory to see if it contains POD, excluding only a short
list of files and file types that it knows about.  This means that
on most platforms it was scanning executable code, object code,
object libraries, dynamic libraries, and many other build products
too numerous to mention.

The present commit expands the exclusion list considerably and
makes that list slightly more cross-platform, but it's probably
still quite incomplete.  Whether that list is even worth
maintaining or the test should be based on an inclusion list
rather than an exclusion list is a question worth asking.

On my system, the present austerity measures, despite the addition
of Config, reduce memory consumption by 14% (but it's still a pig,
gulping something like 160MB).  Physical I/O is reduced by 105%
and elapsed time by 25%.

11 years agoTrim trailing dots on VMS in podcheck.t.
Craig A. Berry [Sat, 13 Aug 2011 15:19:08 +0000 (10:19 -0500)]
Trim trailing dots on VMS in podcheck.t.

readdir() and thus File::Find return files having zero-length
extensions as 'foo.' which doesn't match entries like 'foo' in
the known problems database.  Trimming that trailing dot reduces
the number of failures on VMS to a handful.  They are primarily
due to:

1.)  The test attempts to exclude .PL files, but on VMS, case is
not preserved by default, so these appear as .pl and are not
excluded, confusing a number of the tests.

2.)  Utilities and scripts are built with a .com extension on VMS,
but the corresponding entries in the known problems database have
no extension, so they don't match.

11 years agoCheck more than just the first word of the "Inconsistent C3" error message.
Nicholas Clark [Sat, 13 Aug 2011 12:05:40 +0000 (14:05 +0200)]
Check more than just the first word of the "Inconsistent C3" error message.

11 years agoperldelta for __FILE__()
Father Chrysostomos [Fri, 12 Aug 2011 19:29:07 +0000 (12:29 -0700)]
perldelta for __FILE__()

11 years agoTest __FILE__() syntax
Father Chrysostomos [Fri, 12 Aug 2011 16:10:04 +0000 (09:10 -0700)]
Test __FILE__() syntax

11 years agoAdd __FILE__ and its minions to perlfunc
Father Chrysostomos [Mon, 8 Aug 2011 15:46:22 +0000 (08:46 -0700)]
Add __FILE__ and its minions to perlfunc

This takes the place of documenting __FILE__() syntax.  By adding
these to perlfunc, they are covered by the description of the syntax
at the top of perlfunc.  Hopefully this will appease those who think
we should not be teaching it to new bees.

11 years ago[perl #95546] Allow () after __FILE__, etc.
Father Chrysostomos [Mon, 8 Aug 2011 15:40:44 +0000 (08:40 -0700)]
[perl #95546] Allow () after __FILE__, etc.

This commit makes the __FILE__, __LINE__ and __PACKAGE__ token parse
the same way as nullary functions.

It adds two extra rules to perly.y to allow the op to be created in
toke.c, instead of directly inside the parser.

11 years agoClean up MANIFEST before creating a new one.
Craig A. Berry [Fri, 12 Aug 2011 14:09:30 +0000 (09:09 -0500)]
Clean up MANIFEST before creating a new one.

This is a follow-up to e4ac890e26c, which changed behavior from
appending to an existing MANIFEST to creating a new one.  On VMS,
that would give us multiple versions, which probably wouldn't
matter except that the tests insist that there is one and only
one copy of every file they've created and they only clean up the
highest version.

The easiest way to handle this is to make sure we clean up first
before creating a new MANIFEST file.

11 years agoRevert "Oops! Update B::Deparse for the (l)stat proto change"
Father Chrysostomos [Fri, 12 Aug 2011 13:24:56 +0000 (06:24 -0700)]
Revert "Oops! Update B::Deparse for the (l)stat proto change"

This reverts commit db147d7ee1c1aca547b1d63ef7141e56821a3ae2.

This is no longer necessary, as of this commit’s grandparent.

11 years agoChange (l)stat’s prototype from * to ;*
Father Chrysostomos [Fri, 12 Aug 2011 05:19:50 +0000 (22:19 -0700)]
Change (l)stat’s prototype from * to ;*

Since the argument is optional, we need a semicolon.

This commit accomplishes that by setting the OA_OPTIONAL flag for the
appropriate  entries in PL_opargs.  This should not affect anything
else, as ck_ftst (the check routine for [l]stat) doesn’t even look at

It also has to tweak the prototype-generation logic slightly, because
PL_opargs also has OA_DEFGV set.

I think this is insignificant enough not to warrant a delta entry.

11 years agoRevert "[perl #95550] Remove prototypes from (l)stat"
Father Chrysostomos [Fri, 12 Aug 2011 05:15:05 +0000 (22:15 -0700)]
Revert "[perl #95550] Remove prototypes from (l)stat"

It turns out this problem is more knotty than I initially realised.
stat had a prototype of (*), even though it could be called with no
arguments.  Since the (*) prototype does not parse its argument the
same way that stat parses *its* argument, I thought that changing (*)
to (;*) would be no better, since it’s still not correct.  So I simply
set the prototype to undef.

My thinking was faulty, for two reasons:

• The prototype serves to indicate the precedence, not just the types
  of arguments.  An undefined prototype on an overridable prefix func-
  tion implies that it takes a list.  So this causes problems for the
  imminent &CORE::subs feature, as there is not yet a clean mechanism
  for CVs to parse their arguments.
• The (*) prototype character does not parse the same way as *any*
  built-in function with that character in its prototype.  So stat is
  no worse than any other built-in.  It doesn’t make sense to remove
  the prototype from stat without removing it from about 40 other
  built-in functions; and that’s where pedantry conflicts with

This commit restores the (*) prototype to stat and lstat.  The next
commit will give it a (;*) prototype, as that matches it more closely.
It’s not perfect, but it’s no worse that other built-ins with a * in
their prototypes.

11 years agoBetter st_ino_size probe in
Craig A. Berry [Fri, 12 Aug 2011 12:51:10 +0000 (07:51 -0500)]
Better st_ino_size probe in

Follow-up to adf2bd2837.  This is being used for compile-time
comparisons; sizeof may be compile-time, but is apparently not
available before macro substitution, leading to problems like:

%CC-I-IGNOREEXTRA, Spurious token(s) ignored on preprocessor directive line.
at line number 2837 in file MDA0:[SMOKE.blead]pp_sys.c;1

11 years agoMove bareword checking from the peephole optimizer to finalize_optree. Fixes [perl...
Gerard Goossen [Tue, 9 Aug 2011 18:35:06 +0000 (20:35 +0200)]
Move bareword checking from the peephole optimizer to finalize_optree. Fixes [perl #95998]

The bareword checking is moved from the peephole optimizer to finalize_optree.
newRANGE needs additional bareword checking because the constants may
be optimized away by 'gen_constant_list'.
The OPpCONST_STRICT flag is removed after giving an error about a
bareword to prevent giving multiple errors about the same bareword.

11 years agoMove context propagation and finalize_optree from do_eval to newPROG
Gerard Goossen [Thu, 11 Aug 2011 07:34:32 +0000 (09:34 +0200)]
Move context propagation and finalize_optree from do_eval to newPROG

Aborting after errors found by finalize_optree in do_eval wasn't done
properly and would cause memory problems.
This patch moves the context propagation and finalize_optree to
newPROG such that the normal error handling is done.
The eval context blk_gimme is used to communicate the context.

11 years agoAPI to explicitly select to export XSUB symbols or not
Steffen Mueller [Thu, 11 Aug 2011 11:21:05 +0000 (13:21 +0200)]
API to explicitly select to export XSUB symbols or not

This adds a few additional macros to XSUB.h:
XS_INTERNAL and XS_EXTERNAL are versions of the XS macro
that explicitly use internal (static) linking or not.
XSPROTO_INTERNAL and XSPROTO_EXTERNAL are the obvious equivalents
for XSPROTO (which is apparently not public yet we support its
use in SWIG...).

The XS and XSPROTO macros themselves are not defined to not
use STATIC, but this may (should?) be changed in the future.

11 years agoExtUtils::ParseXS: Check that an XSUB with CODE&RETVAL has an OUTPUT
Steffen Mueller [Thu, 11 Aug 2011 09:33:11 +0000 (11:33 +0200)]
ExtUtils::ParseXS: Check that an XSUB with CODE&RETVAL has an OUTPUT

If an XS paragraph/function definition that has a CODE section using
RETVAL, then we need an OUTPUT section or else things will go sour.

This adds a check for that condition and produces a friendly error

See CPAN RT #69536.

11 years agoSimplify embedvar.h, removing a level of macro indirection for PL_* variables.
Nicholas Clark [Sun, 7 Aug 2011 19:09:03 +0000 (21:09 +0200)]
Simplify embedvar.h, removing a level of macro indirection for PL_* variables.

For the default (non-multiplicity) configuration, PERLVAR*() macros now
directly expand their arguments to tokens such as C<PL_defgv>, instead of
expanding to C<PL_Idefgv>. This removes over 350 lines from F<embedvar.h>,
which defined macros to map from C<PL_Idefgv> to C<PL_defgv> and so forth.

11 years agoSynchronise for Storable and version
Chris 'BinGOs' Williams [Thu, 11 Aug 2011 09:07:10 +0000 (10:07 +0100)]
Synchronise for Storable and version

11 years agoworkaround a type handling bug in SystemTap Dtrace 1.2
Tony Cook [Tue, 9 Aug 2011 10:31:24 +0000 (20:31 +1000)]
workaround a type handling bug in SystemTap Dtrace 1.2

It uses a construct similar to:

  __typeof__((func)) x = func;

but hek_key is a char[1] so the above becomes:

  char arg1[1] = func;

which is invalid.

Using a temporary allows an implicit conversion to const char * and
avoids possible bugs that might be hidden by an explicit cast.

11 years agoExtUtils::ParseXS version bump: release 3.03
Steffen Mueller [Thu, 11 Aug 2011 06:26:37 +0000 (08:26 +0200)]
ExtUtils::ParseXS version bump: release 3.03

11 years agoRewrap some verbatim pod in Math::BigInt
Father Chrysostomos [Wed, 10 Aug 2011 19:23:51 +0000 (12:23 -0700)]
Rewrap some verbatim pod in Math::BigInt

I started to make Math::BigInt’s pod fit within 79 columns, but
soon petered out.  At least this is better than nothing.

11 years agoKeep verbatim pod in various dist/* pods within 79 cols
Father Chrysostomos [Wed, 10 Aug 2011 03:22:36 +0000 (20:22 -0700)]
Keep verbatim pod in various dist/* pods within 79 cols

11 years agoKeep verbatim pod in I18N:LT and within 80 cols
Father Chrysostomos [Wed, 10 Aug 2011 01:06:38 +0000 (18:06 -0700)]
Keep verbatim pod in I18N:LT and within 80 cols

11 years agoKeep verbatim pod in ExtUtils::Typemaps::OutputMap within 80 cols
Father Chrysostomos [Wed, 10 Aug 2011 00:56:07 +0000 (17:56 -0700)]
Keep verbatim pod in ExtUtils::Typemaps::OutputMap within 80 cols

11 years agoAdd perldelta for /aa and \b commit
Karl Williamson [Sat, 30 Jul 2011 18:33:31 +0000 (12:33 -0600)]
Add perldelta for /aa and \b commit

This adds an entry for commit f2e96b5ddb6396417bc2fb71915c5025215060d6

11 years agoFix trivial test failure from dbef30a62b2ca0b186
Steffen Mueller [Wed, 10 Aug 2011 13:49:34 +0000 (15:49 +0200)]
Fix trivial test failure from dbef30a62b2ca0b186

For the record: This was my (Steffen's) fault, not Mike's!

11 years agoAdd Mike Sheldrake to AUTHORS
Steffen Mueller [Wed, 10 Aug 2011 13:26:01 +0000 (15:26 +0200)]
Add Mike Sheldrake to AUTHORS

11 years agoExtUtils::ParseXS: Test All @INC Derived typemap Locations
Mike Sheldrake [Wed, 10 Aug 2011 06:15:15 +0000 (08:15 +0200)]
ExtUtils::ParseXS: Test All @INC Derived typemap Locations

The ExtUtils::ParseXS tests would sometime fail to locate some
core Perl typemaps in @INC. This fixes CPAN RT #70047.

Patch slightly modified by Steffen Mueller.
Includes the mandatory version bump to a development version.

11 years output to fit in 79 columns
Karl Williamson [Wed, 10 Aug 2011 04:08:07 +0000 (22:08 -0600)] output to fit in 79 columns

11 years agopodcheck.t: Change verbatim line length max to 79
Karl Williamson [Mon, 8 Aug 2011 17:32:48 +0000 (11:32 -0600)]
podcheck.t: Change verbatim line length max to 79

Some pagers reserve a column for their own use.  This patch has
podcheck.t warn if a verbatim line will wrap when such a pager is used
in an 80 column terminal window.  This effectively restores the
situation to what it was before commit
2cd46bfd6d03cd8826c5e968efdd36416191bc8f, but the message is now honest
about the situation, i.e., that 79 colummns are effectively the max
without a warning.

The point of this is to give a number to shoot for, 79, that will work
almost always (I believe though that there are pagers that reserve 2
columns in some cases), but of course the data file is continued to be
used to silence the warning if it isn't desired to get down to 79.

11 years agoKeep verbatim pod in ExtUtils::Typemaps within 80 cols
Father Chrysostomos [Tue, 9 Aug 2011 23:13:42 +0000 (16:13 -0700)]
Keep verbatim pod in ExtUtils::Typemaps within 80 cols

11 years agoIgnore another editor droppink
Father Chrysostomos [Tue, 9 Aug 2011 15:33:56 +0000 (08:33 -0700)]
Ignore another editor droppink

11 years agoKeep verbatim pod in ExtUtils::Installed within 80 cols
Father Chrysostomos [Tue, 9 Aug 2011 13:30:00 +0000 (06:30 -0700)]
Keep verbatim pod in ExtUtils::Installed within 80 cols

11 years agoKeep verbatim pod in Data::Dumper within 80 cols
Father Chrysostomos [Tue, 9 Aug 2011 13:26:31 +0000 (06:26 -0700)]
Keep verbatim pod in Data::Dumper within 80 cols

11 years agoKeep verbatim pod in File::VMS/Win32 within 80 cols
Father Chrysostomos [Tue, 9 Aug 2011 13:23:10 +0000 (06:23 -0700)]
Keep verbatim pod in File::VMS/Win32 within 80 cols

11 years agoKeep verbatim pod in File::Mac/Unix within 80 cols
Father Chrysostomos [Tue, 9 Aug 2011 13:19:50 +0000 (06:19 -0700)]
Keep verbatim pod in File::Mac/Unix within 80 cols

11 years agoKeep verbatim pod in File::Spec within 80 cols
Father Chrysostomos [Tue, 9 Aug 2011 13:05:58 +0000 (06:05 -0700)]
Keep verbatim pod in File::Spec within 80 cols

11 years agoUpdate Encode to CPAN version 2.44
Chris 'BinGOs' Williams [Tue, 9 Aug 2011 09:02:28 +0000 (10:02 +0100)]
Update Encode to CPAN version 2.44


  $Revision: 2.44 $ $Date: 2011/08/09 07:49:44 $
  ! Unicode/Unicode.xs
    Addressed the following:
      Date: Fri, 22 Jul 2011 13:58:43 +0200
      From: Robert Zacek <>
      Subject: Unicode.xs!decode_xs n-byte heap-overflow
  ! lib/Encode/ lib/Encode/ lib/Encode/
    Applied: RT#69735: patch for use constant DEBUG =>

11 years agoRefactor Porting/, simplifying the control flow.
Nicholas Clark [Tue, 9 Aug 2011 10:13:56 +0000 (12:13 +0200)]
Refactor Porting/, simplifying the control flow.

11 years agoIn, eliminate the file-scope lexical %lst.
Nicholas Clark [Tue, 9 Aug 2011 10:06:08 +0000 (12:06 +0200)]
In, eliminate the file-scope lexical %lst.

11 years agoIn, eliminate the file-scope lexical %MASTER_CFG.
Nicholas Clark [Tue, 9 Aug 2011 09:47:50 +0000 (11:47 +0200)]
In, eliminate the file-scope lexical %MASTER_CFG.

11 years agoIn, inline and eliminate read_file() and config_h_SH_reader().
Nicholas Clark [Tue, 9 Aug 2011 09:30:35 +0000 (11:30 +0200)]
In, inline and eliminate read_file() and config_h_SH_reader().

config_h_SH_reader() was called once in one place, to generate a closure
passed to read_file(). In turn, read_file()'s use of a callback to process
lines of the file that it opened concealed the near-linear flow of control.

use autodie; to simplify the error handling.

11 years agoIn, inline check_cfg() into its only caller.
Nicholas Clark [Tue, 9 Aug 2011 08:51:09 +0000 (10:51 +0200)]
In, inline check_cfg() into its only caller.

11 years agowork around a bug in dtrace - it strips const from function parameters
Tony Cook [Wed, 20 Jul 2011 10:23:15 +0000 (20:23 +1000)]
work around a bug in dtrace - it strips const from function parameters

With usedtrace this caused:

- build failures under g++ (OS X)

- const qualification warnings with gcc (OS X)

The workaround simply adds const to char * parameters if not already

The bug in dtrace was apparently reported to Sun in 2006:

Mozilla ran into the same problem:

11 years agoRemove 5.8.x VOS specific code from Porting/
Nicholas Clark [Tue, 9 Aug 2011 07:44:54 +0000 (09:44 +0200)]
Remove 5.8.x VOS specific code from Porting/

Commit 3fd80bd61943d0f8 in 2002 removed vos/config.{alpha,gf}.def from
blead, but they were still present in maint-5.8, so the logic to process
them was retained, to minimise the differences in the Porting/* scripts.
maint-5.8 is EOL now, so these can be removed.

11 years agoAdd defaults for st_ino size/sign probes to
Nicholas Clark [Tue, 9 Aug 2011 07:25:07 +0000 (09:25 +0200)]
Add defaults for st_ino size/sign probes to

These were not added in 668fdbe135fd76c7 because Porting/ was
not aware that needed testing.

11 years agoAdd to the list of files that Porting/ checks.
Nicholas Clark [Tue, 9 Aug 2011 07:24:20 +0000 (09:24 +0200)]
Add to the list of files that Porting/ checks.

11 years agoMake prototype("CORE::CORE") die once more.
Father Chrysostomos [Tue, 9 Aug 2011 05:15:52 +0000 (22:15 -0700)]
Make prototype("CORE::CORE") die once more.

Commit b8c38f0a2a65 accidentally made prototype("CORE::CORE") return
undef instead of dying. This is the only case that reached the line
with the ‘Should not happen...’ comment.

This commit changes it to be handled earlier and also adds an asser-
tion to make sure that unreachable code really is unreachable (which
it should be now, I think, I hope...).

11 years agoOnly warn about "Statement unlikely to be reached" after an exec if exec is a statement.
Gerard Goossen [Mon, 8 Aug 2011 20:18:03 +0000 (22:18 +0200)]
Only warn about "Statement unlikely to be reached" after an exec if exec is a statement.

Moving the OP_EXEC check to finalize_optree changed that it would also
warn if 'exec' is part of an expression. This patch changes the
behaviour to only warn if 'exec' is the whole statement, which
appears to be the behaviour before moving the check to finalize_optree.

11 years agoChange aassign_common_vars to check using the optree without using the linked list.
Gerard Goossen [Sat, 6 Aug 2011 15:50:40 +0000 (17:50 +0200)]
Change aassign_common_vars to check using the optree without using the linked list.

Besides no longer depending on the op chain this also solves a bug
where the common vars where not detected because of logical operators.

11 years agoMove aassign common var detection to a separate function.
Gerard Goossen [Sat, 6 Aug 2011 15:23:03 +0000 (17:23 +0200)]
Move aassign common var detection to a separate function.

11 years agoAASSIGN_COMMON var detection bug with logical operators, TODO test
Gerard Goossen [Sat, 6 Aug 2011 16:24:12 +0000 (18:24 +0200)]
AASSIGN_COMMON var detection bug with logical operators, TODO test

11 years agoUpgrade bignum to version 0.29
Florian Ragwitz [Mon, 8 Aug 2011 14:37:33 +0000 (16:37 +0200)]
Upgrade bignum to version 0.29

11 years agoFix porting check for dots in directory names.
Craig A. Berry [Sun, 7 Aug 2011 16:05:40 +0000 (11:05 -0500)]
Fix porting check for dots in directory names.

The existing check conflated two different potential problems,
multiple dots in a filename and dots in a directory name.

Multiple dots in a filename can cause various kinds of trouble,
depending on the VMS filesystem in use, but there are workarounds
for older filesystems and this problem is unlikely to cause a
build failure, so it's probably too stringent to make a test
fail when we find them (and there are lots of examples already
in the repository).

*Any* dots in a directory name are problematic because dot is the
directory delimiter.  Newer (ODS-5) filesystems can handle these
if escaping is done but older (ODS-2) filesystems can't and the
manifest checker in can't.  In other words, the
build falls down hard in this case.

The existing test was checking for multiple dots in a directory
name but not checking the filename at all.  I've changed it to
check for any dots in a directory name.

11 years agoExtUtils::Manifest 1.59 just made it to CPAN
Florian Ragwitz [Mon, 8 Aug 2011 13:53:59 +0000 (15:53 +0200)]
ExtUtils::Manifest 1.59 just made it to CPAN

11 years agoUpdate Params-Check to CPAN version 0.32
Chris 'BinGOs' Williams [Mon, 8 Aug 2011 10:02:50 +0000 (11:02 +0100)]
Update Params-Check to CPAN version 0.32


  Changes for 0.32    Mon Aug  8 10:53:36 2011
  * Removed unnecessary use Data::Dumper

11 years agoGNU gcc-4.6.1 revealed a broken system header on HP-UX 11.00
H.Merijn Brand [Mon, 8 Aug 2011 10:06:45 +0000 (12:06 +0200)]
GNU gcc-4.6.1 revealed a broken system header on HP-UX 11.00

11 years ago[perl #96228] perlop misdocuments ${ qr/x/ } as undef
Chas. Owens [Sun, 7 Aug 2011 19:37:10 +0000 (12:37 -0700)]
[perl #96228] perlop misdocuments ${ qr/x/ } as undef

11 years agoIn, inline hide() and bincompat_var() into their only call point.
Nicholas Clark [Sun, 7 Aug 2011 14:16:00 +0000 (16:16 +0200)]
In, inline hide() and bincompat_var() into their only call point.

hide() has only been used by bincompat_var() since commit acfe0abcedaf592f
in 2001, and bincompat_var() only used in one place at the top level since
commit 87b9e16005b9e39b in 2010.

11 years agoIn, refactor readvars() to return a sorted list.
Nicholas Clark [Sun, 7 Aug 2011 14:04:26 +0000 (16:04 +0200)]
In, refactor readvars() to return a sorted list.

Previously it would assign to the hash reference passed to it. However, the
rest of the code only ever used the keys of that hash, in sorted order, so it
is simpler to change readvars() to return that list directly.

Also move the declaration of the lexical $sym down to its first point of use.

11 years agoIn, remove unused parameter $keep_pre from readvars().
Nicholas Clark [Sun, 7 Aug 2011 13:46:09 +0000 (15:46 +0200)]
In, remove unused parameter $keep_pre from readvars().

$keep_pre was added by commit c6af7a1aaf1f569e in 1998, and the last user
removed by commit 51371543ca1a75ed in 1999.

11 years agoUpdate CPAN to CPAN version 1.9800
Chris 'BinGOs' Williams [Sun, 7 Aug 2011 09:56:50 +0000 (10:56 +0100)]
Update CPAN to CPAN version 1.9800


  2011-08-07  Andreas J. Koenig  <>

  * release 1.9800

  * RT #69463: fix memory leak in CacheMgr (Serguei Trouchelle)

  2011-06-27  Andreas J. Koenig  <>

  * release 1.97_51

  * address #68835: Changed read_meta to ignore dynamic_config (David Golden)

  * bugfix: refuse to store_persistent if the own build_dir is not
  available (Andreas Koenig)

  * cosmetics: remove "Going to" from the beginning of user-visible
  strings (Jesse Vincent)

  * flock adjustments for Win32 from activestate (Christian Walde)

11 years agoUpdate DB_File to CPAN version 1.824
Chris 'BinGOs' Williams [Sat, 6 Aug 2011 21:38:29 +0000 (22:38 +0100)]
Update DB_File to CPAN version 1.824


  1.824 6 Aug 2011

   * Amendments to tests to work in blead
     [RT #70108]

11 years agoUpdate DB_File to CPAN version 1.823
Chris 'BinGOs' Williams [Sat, 6 Aug 2011 16:38:01 +0000 (17:38 +0100)]
Update DB_File to CPAN version 1.823


  1.823 6 Aug 2011

   * croak if attempt to freeze/thaw DB_File object
     [RT #69985]

11 years agoprevent mixing non-native and native newlines in manifest files
Sandy Andy [Sat, 6 Aug 2011 06:09:22 +0000 (08:09 +0200)]
prevent mixing non-native and native newlines in manifest files

11 years agoRemove comment from ck_glob that is no longer relevant
Father Chrysostomos [Sat, 6 Aug 2011 12:55:57 +0000 (05:55 -0700)]
Remove comment from ck_glob that is no longer relevant

This code was made more failsafe by commit 4984aa345.

11 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.59
Chris 'BinGOs' Williams [Fri, 5 Aug 2011 17:38:51 +0000 (18:38 +0100)]
Update ExtUtils-MakeMaker to CPAN version 6.59


  6.59  Fri Aug  5 12:09:00 BST
    No changes since 6.58_01

  6.58_01  Wed Aug  3 21:12:00 BST
    Doc Fixes
    * Corrected the repository location [chorny]

    Bug Fixes
    * Removed the %INC check from _has_cpan_meta and updated the CPAN::Meta
      bundled with EUMM to one that doesn't set $VERSION in a begin block
      so it can't appear to be loaded, thus causing us to mistakenly try
      and call methods on CPAN::Meta modules - this is due to older versions
      in site_perl shadowing our installation of other bundled modules.
      [ 69465] [ 69900] [MSTROUT]

11 years agoRT #96354: \h \H \v and \V didn't check for EOL
David Mitchell [Fri, 5 Aug 2011 16:46:46 +0000 (17:46 +0100)]
RT #96354: \h \H \v and \V didn't check for EOL

The HORIZWS and similar regexp ops didn't check that the end of the string
had been reached; therefore they would blithely compare against the \0 at
the end of the string, or beyond.

11 years agoDon't use [.lib.pods] staging directory in VMS builds.
Craig A. Berry [Fri, 5 Aug 2011 14:12:25 +0000 (09:12 -0500)]
Don't use [.lib.pods] staging directory in VMS builds.

It's arduous to maintain all the dependency rules, and since
7eb47696de, which removed the only reference to $(pod), we don't
even *run* any of those rules, i.e., the directory does not even
get populated during the build.  Its existence appears to be a
carryover from a time before installperl copied [.pods] in the
build directory to [.lib.pods] in the install directory.

Reducing the size of vms/descrip_mms.template by 44% probably
won't cause too many tears to be shed, either.

11 years agoDon't install twice.
Craig A. Berry [Fri, 5 Aug 2011 14:01:39 +0000 (09:01 -0500)]
Don't install twice.

It gets built and installed in [.utils], so there's no reason to
copy it into [.lib.pods], from whence it gets installed a second
time.  Putting it in [.lib.pods] was introduced way back in
97abc6adff, well before installperl was even working on VMS.

11 years agoNo dots in directory names, please.
Craig A. Berry [Fri, 5 Aug 2011 13:25:37 +0000 (08:25 -0500)]
No dots in directory names, please.

Dot is the directory delimiter on VMS, so it's awkward at best to use
it in directory names.  4eb81ef279, "Update Module-Metadata to CPAN
version 1.000005" introduced two new directories with dots in the
name, which confused the manifest checker and broke the build on VMS.

11 years agoFix typos in pod/perlgit.pod
brian greenfield [Fri, 29 Jul 2011 12:55:10 +0000 (13:55 +0100)]
Fix typos in pod/perlgit.pod

11 years agoAnother ExtUtils::ParseXS version upgrade necessary
Steffen Mueller [Thu, 4 Aug 2011 18:12:21 +0000 (20:12 +0200)]
Another ExtUtils::ParseXS version upgrade necessary

This is ExtUtils::ParseXS 3.02. Nothing to see here.

11 years agoPromote ExtUtils::ParseXS to a stable release
Steffen Mueller [Thu, 4 Aug 2011 15:52:18 +0000 (17:52 +0200)]
Promote ExtUtils::ParseXS to a stable release

11 years agoSkip the hanging eintr.t test on GNU/kFreeBSD too
Niko Tyni [Thu, 4 Aug 2011 15:33:39 +0000 (08:33 -0700)]
Skip the hanging eintr.t test on GNU/kFreeBSD too

As we're still using a list of hanging operating systems,
include 'gnukfreebsd' by matching for 'freebsd' anywhere in $^O.

11 years agoSupport gcc-4.x on HP-UX PA-RISC/64
H.Merijn Brand [Thu, 4 Aug 2011 07:20:32 +0000 (09:20 +0200)]
Support gcc-4.x on HP-UX PA-RISC/64

Correct the socketsize. Probably due to big-endian versus
little-endian, this has always worked on Intel CPUs. This
is a very very old problem,  and it has been the reason I
never used gcc-4 on PA-RISC,  because perl would not pass
the test suite in 64bitall.

Noticeable effects of wrong "$socksizetype" are return codes
of 0 (pass) from functions like getpeername (),  but invalid
(or none) data in the returned structures or a return length
of 0 or 256. In the latter case, the length is stored in the
second part of the 64bit long and the 32bit first part is 0.
This might be true on Intel-like machines too, but the tests
will pass, as the significant part of the returned length is
in the first 32bits and a pointer to int will still see that
correct.  Mind that in that case the 32bits after that might
have been overridden => can of worms.

11 years agoUpdate Module-Metadata to CPAN version 1.000005
Chris 'BinGOs' Williams [Wed, 3 Aug 2011 08:28:11 +0000 (09:28 +0100)]
Update Module-Metadata to CPAN version 1.000005


  1.0.5 2011-08-02 09:45:00

  - Localize $package::VERSION during version discovery (MIYAGAWA)
  - Fix references to Module::Build::ModuleInfo [RT #66133] (DAGOLDEN)
  - Added 'new_from_handle()' method [RT #68875] (DAGOLDEN)
  - Improved documentation (SYNOPSIS, broke out class/object method, and
    other minor edits) (DAGOLDEN)

11 years agoUpdate CPAN-Meta to CPAN version 2.112150
Chris 'BinGOs' Williams [Wed, 3 Aug 2011 08:17:26 +0000 (09:17 +0100)]
Update CPAN-Meta to CPAN version 2.112150


  2.112150  2011-08-02 22:25:41 America/New_York


  - Stringify any objects encountered during conversion. (RT #67295)

  - Fixed some broken URLs in documentation and for LGPL in legacy
    conversion (RT #68738)

  - Fixed invalid private Pod in CPAN::Meta::Validator (RT #65925)


  - Clarified that file paths in the 'provides' section must be in
    Unix-style (i.e. forward slashes) (RT #69045)

  - Replaced examples using Module::Build::ModuleInfo with Module::Metadata
    (RT #66135)

11 years agoAdd the correct PL_sig_ignoring skip for VMS in
Craig A. Berry [Wed, 3 Aug 2011 00:06:41 +0000 (19:06 -0500)]
Add the correct PL_sig_ignoring skip for VMS in

This only exists when FAKE_PERSISTENT_SIGNAL_HANDLERS is defined,
and that's only defined when HAS_SIGACTION is false.

The problem was exposed by ed76ea85d1, which fixed a typo introduced
in aadb217dbe, but that typo introduced code that was a noop on all
platforms, including VMS, where $^O is 'VMS', not 'vms'.

TODO: The existence of PL_sig_defaulting and PL_sig_handlers_initted
depends on the definedness of FAKE_DEFAULT_SIGNAL_HANDLERS, which
depends on KILL_BY_SIGPRC, which is written directly to config.h
without being recorded in and is thus not visible in Config.
So there's no good way to know when these symbols should be skipped.

KILL_BY_SIGPRC currently gets defined on all VMS versions and platforms,
so it's a breakage-in-waiting but does not actually fall down (yet).

11 years agoRemove Perl_mod
Father Chrysostomos [Tue, 2 Aug 2011 21:41:58 +0000 (14:41 -0700)]
Remove Perl_mod

After mod was renamed to op_lvalue, this stub was added temporarily
to provide a smoother transition for the compilers.  The compiler
maintainer is happy with its extirpation at this stage.  See
ticket #78908.

11 years agoIncrease $diagnostics::VERSION from 1.23 to 1.24
Father Chrysostomos [Tue, 2 Aug 2011 21:33:25 +0000 (14:33 -0700)]
Increase $diagnostics::VERSION from 1.23 to 1.24

11 years agoRT #94988 - Support for %u in's printf()-format parser
Matthew Horsfall (alh) [Mon, 1 Aug 2011 02:42:22 +0000 (22:42 -0400)]
RT #94988 - Support for %u in's printf()-format parser

11 years agoFix typos in pod/perlexperiment.pod
Keith Thompson [Tue, 2 Aug 2011 20:58:09 +0000 (13:58 -0700)]
Fix typos in pod/perlexperiment.pod

11 years agoA few tweaks to the new perlexperiment.pod
Father Chrysostomos [Tue, 2 Aug 2011 19:36:32 +0000 (12:36 -0700)]
A few tweaks to the new perlexperiment.pod

• The :unique attribute has been deprecated already.
• The fields pragma has never been experimental and still exists.
• Grammar

11 years agoFix typos in several pod/perl*.pod files
Keith Thompson [Sat, 30 Jul 2011 00:17:00 +0000 (17:17 -0700)]
Fix typos in several pod/perl*.pod files

11 years agoMake verbatim pod in fit in 80 columns
Father Chrysostomos [Tue, 2 Aug 2011 15:39:56 +0000 (08:39 -0700)]
Make verbatim pod in fit in 80 columns

11 years agoAdd perlexperiment to detail experimental features
brian d foy [Mon, 25 Oct 2010 05:10:06 +0000 (00:10 -0500)]
Add perlexperiment to detail experimental features

nearly all this work merged from brian d foy's briandfoy/perlexperiment branch,
tidied up and squished by rjbs

11 years agoSvREFCNT_dec already checks if the SV is non-NULL
Vincent Pit [Tue, 2 Aug 2011 10:17:47 +0000 (12:17 +0200)]
SvREFCNT_dec already checks if the SV is non-NULL

11 years agoUpdate Module-Load to version 0.20
Chris 'BinGOs' Williams [Mon, 1 Aug 2011 19:17:54 +0000 (20:17 +0100)]
Update Module-Load to version 0.20


  Changes for 0.20    Mon Aug  1 19:13:44 2011
  * Resolve [rt #69886] reported by Laurent Dami,
    trailing '::' silently ignored