This is a live mirror of the Perl 5 development currently hosted at
13 years agoAdd Zefram as our release manager victim for 20 December
Jesse Vincent [Tue, 31 Aug 2010 18:11:23 +0000 (14:11 -0400)]
Add Zefram as our release manager victim for 20 December

13 years agoAdd two missing break in Perl_magic_set's big switch
Vincent Pit [Tue, 31 Aug 2010 11:10:26 +0000 (13:10 +0200)]
Add two missing break in Perl_magic_set's big switch

This fixes $^A being reset when $1..$2 are localized before any regexp match

13 years agoRemove unneeded use of INT2PTR() in the XS for Tie::Hash::NamedCapture.
Nicholas Clark [Mon, 30 Aug 2010 17:51:25 +0000 (18:51 +0100)]
Remove unneeded use of INT2PTR() in the XS for Tie::Hash::NamedCapture.

13 years agoStart perl5135delta
Florian Ragwitz [Tue, 31 Aug 2010 01:59:10 +0000 (03:59 +0200)]
Start perl5135delta

13 years agoModule::CoreList updates for 5.12.2
Jesse Vincent [Tue, 31 Aug 2010 01:43:01 +0000 (21:43 -0400)]
Module::CoreList updates for 5.12.2

13 years agoAvoid needless use of UTF8=1 format [RT#56336]
Eric Brine [Sun, 22 Aug 2010 05:17:26 +0000 (22:17 -0700)]
Avoid needless use of UTF8=1 format [RT#56336]

Some literals (e.g. q'abc') don't set the UTF8 flag for pure ASCII literals.
Others (e.g. -abc) do. This should be consistent.

13 years agoTODO tests for avoid needless use of UTF8=1 format [RT#56336]
Eric Brine [Sun, 22 Aug 2010 03:14:08 +0000 (20:14 -0700)]
TODO tests for avoid needless use of UTF8=1 format [RT#56336]

Some literals (e.g. q'abc') don't set the UTF8 flag for pure ASCII literals.
Others (e.g. -abc) do. This should be consistent.

13 years agoadd more tests to lib/mauve.t so it tests also that mauve::reftype can return "LVALUE"
Zsbán Ambrus [Mon, 30 Aug 2010 17:24:18 +0000 (19:24 +0200)]
add more tests to lib/mauve.t so it tests also that mauve::reftype can return "LVALUE"

13 years agouse more efficient sv_reftype_len() interface
Yves Orton [Mon, 30 Aug 2010 17:05:27 +0000 (19:05 +0200)]
use more efficient sv_reftype_len() interface

13 years agofix the AIX skip to only skip on AIX
Tony Cook [Mon, 30 Aug 2010 14:43:20 +0000 (00:43 +1000)]
fix the AIX skip to only skip on AIX

13 years agort77432: sigaction would crash/assert with a replaced %SIG
Tony Cook [Mon, 30 Aug 2010 14:34:19 +0000 (00:34 +1000)]
rt77432: sigaction would crash/assert with a replaced %SIG

13 years agomauve.t needs access to %Config, make sure it's available
Tony Cook [Mon, 30 Aug 2010 04:59:34 +0000 (14:59 +1000)]
mauve.t needs access to %Config, make sure it's available

13 years agocreate the "mauve" temporary namespace for things like reftype
Yves Orton [Sun, 29 Aug 2010 22:41:09 +0000 (00:41 +0200)]
create the "mauve" temporary namespace for things like reftype

Scalar::Util::reftype(), refaddr() and blessed() are all a bit
less useful than they could be as they all return C<undef> when
their argument is not a reference. While this is logical, it also
means that using these routines has to be guarded, and normally
guarded in such a way that the internal logic is called twice.

Additionally these routines are quite commonly used and having to
load an additional DLL and XS code every program is inefficient.

Therefore we introduce the "mauve" namespace for to hold the "fixed"
equivalents, this namespace is /always/ loaded (like the 're' or 'utf8'
namespaces), and thus these routines can be accessed easily at any time.
We also provide a new module wrapper in t/lib which allows these
routines to be exported into other namespaces if the user so chooses.

At Jesse's request I have included weaken() and as it seemed logical to
do so I have also added isweak().

Once we have a good name for the namespace we can s/mauve/whatever/g

13 years agoadd sv_reftype_len() and make sv_reftype() be a wrapper for it
Yves Orton [Sun, 29 Aug 2010 18:47:16 +0000 (20:47 +0200)]
add sv_reftype_len() and make sv_reftype() be a wrapper for it

sv_reftype() mostly returns strings whose length is known at compile
time, so we can avoid a strlen() call if we return the length.

Additionally, the non-length interface is potentially buggy in the
face of class names which contain "\0", therefore providing a way
to obtain the true length allows us to avoid any trickyness.

13 years agowhen building under git, test that MANIFEST and git ls-files match up properly
Yves Orton [Sun, 29 Aug 2010 18:45:26 +0000 (20:45 +0200)]
when building under git, test that MANIFEST and git ls-files match up properly

13 years agoUpdate Unicode-Collate to CPAN version 0.58
Chris 'BinGOs' Williams [Sun, 29 Aug 2010 21:55:52 +0000 (22:55 +0100)]
Update Unicode-Collate to CPAN version 0.58


  0.58  Sun Aug 29 19:56:50 2010
    - U::C::Locale newly supports locales: af, cy, da, fo, haw, is, kl, sw.

13 years agoFix a typo in the PL_keyword_plugin docs
Florian Ragwitz [Sat, 28 Aug 2010 20:47:46 +0000 (22:47 +0200)]
Fix a typo in the PL_keyword_plugin docs

13 years agoMake PerlIOUnix_open honor default permissions on VMS.
Craig A. Berry [Sat, 28 Aug 2010 16:37:33 +0000 (11:37 -0500)]
Make PerlIOUnix_open honor default permissions on VMS.

When perlio became the default and unixio became the default bottom
layer, the most common path for creating files from Perl became
PerlIOUnix_open, which has always explicitly used 0666 as the
permission mask.  This has the following undesireable effects on

1.) The execute bit is lost regardless of whether it's in the default

2.) Delete permission (which doesn't exist in the Unix permission mask) is
    copied from write permission, so granting write permission also grants
    delete even if it's not in the default permission mask.  This can result
    in an inadvertent widening of permissions.

3.) System permissions (which don't exist in the Unix permission mask) are
    copied from owner permissions, so any distinction between system and
    owner is lost.

4.) ACLs are not inherited.  For example, setting a default_protection ACE
    on a directory such that all world access is disallowed will be ignored;
    world will have the intersection of RWD (the final 6 in 0666) and whatever
    the default permissions are regardless of what the ACL says.  Thus not
    inheriting ACLs can result in the inadvertent widening of permissions.

The way to avoid all of this is to pass 0777 as the permissions to open().
In the VMS CRTL, 0777 has a special meaning over and above intersecting
with the current umask; specifically, it allows Unix syscalls to preserve
native default permissions.  Details currently documented at:

13 years agoRemove OA_RETINTEGER, unused since 2002 (commit e7311069df54baa6)
Nicholas Clark [Sat, 28 Aug 2010 14:35:57 +0000 (15:35 +0100)]
Remove OA_RETINTEGER, unused since 2002 (commit e7311069df54baa6)

This returns us to 8 flag bits, and restores OCSHIFT and OASHIFT to 8 and 12
Previously these were 9 and 13, and effectively PL_opargs[] was using 33 of
32 bits, relying on the ugly hack that no 5 argument builtin had an optional
5th argument, hence the (13 + 5 * 4)th bit was always zero.
is effectively 33 bits.

13 years agosilence APItest deprecation warning
Robin Barker [Mon, 23 Aug 2010 14:32:45 +0000 (15:32 +0100)]
silence APItest deprecation warning

13 years agomktables: Silence common build warning
Karl Williamson [Mon, 23 Aug 2010 15:43:59 +0000 (09:43 -0600)]
mktables: Silence common build warning

The first time mktables is run on a clean directory, mktables.lst is
non-existent.  Rather than warn on this common occurrence, just assume
it is ok, and continue.  The point of the warning was to point out a
potential problem.  But it occurs so often that people have gotten
inured (habituated) to it, and it has lost all effectiveness.  Better to
not output it, and have any problems show up as repeated rebuilds that
will annoy enough to be dealt with.

13 years agoSilence g++ compatibility warning
Robin Barker [Tue, 3 Aug 2010 21:50:18 +0000 (22:50 +0100)]
Silence g++ compatibility warning

13 years agoremove much dead code from
Zefram [Mon, 23 Aug 2010 20:36:59 +0000 (21:36 +0100)]
remove much dead code from

13 years agoavoid unnecessarily changing timestamp on perly.h
Zefram [Mon, 23 Aug 2010 20:35:50 +0000 (21:35 +0100)]
avoid unnecessarily changing timestamp on perly.h

Make use rename_if_different() to avoid overwriting files
that aren't actually changing.

13 years agoPeephole optimise adjacent pairs of nextstate ops.
Nicholas Clark [Fri, 27 Aug 2010 20:48:55 +0000 (21:48 +0100)]
Peephole optimise adjacent pairs of nextstate ops.

Previously, in code such as

    use constant DEBUG=>0;

    sub GAK {
        warn if DEBUG;
        print "stuff\n";

the ops for C<warn if DEBUG;> would be folded to a null op (ex-const), but
the nextstate op would remain, resulting in a runtime op dispatch of nextstate,
nextstate, ...

The execution of a sequence of nexstate ops is indistinguishable from just the
last nextstate op, so teach the peephole optimiser to eliminate the first of a
pair of nextstate ops. (Except where the first carries a label, as labels
mustn't be eliminated by the optimiser, and label usage isn't conclusively
known at compile time.)

13 years agoMerge branch 'blead' of ssh:// into blead
Steve Peters [Fri, 27 Aug 2010 12:40:51 +0000 (07:40 -0500)]
Merge branch 'blead' of ssh:// into blead

13 years agoTypo fix in perlfork
Steve Peters [Fri, 27 Aug 2010 12:40:03 +0000 (07:40 -0500)]
Typo fix in perlfork

13 years agoRemove a useless hardcoding of the current Perl version in README.AIX
Jesse Vincent [Thu, 26 Aug 2010 22:06:48 +0000 (18:06 -0400)]
Remove a useless hardcoding of the current Perl version in README.AIX

13 years agoFirst pass of CoreList update for 5.12.2
Jesse Vincent [Wed, 25 Aug 2010 18:12:17 +0000 (14:12 -0400)]
First pass of CoreList update for 5.12.2

13 years agoIn mktables, disable string overloading when de-duping lists.
Nicholas Clark [Thu, 26 Aug 2010 19:57:00 +0000 (21:57 +0200)]
In mktables, disable string overloading when de-duping lists.

As the unique() function is called with either a list of strings or a list of
objects, and all objects stringify to distinct values, there is no behaviour
difference between using object stringification and object address for a
"seen" hash. There is, however, an 8% run time difference :-)

Devel::NYTProf strikes again.

13 years agoConvert mktables to assign lexicals via do { no overloading; ... }; blocks.
Nicholas Clark [Thu, 26 Aug 2010 13:39:27 +0000 (15:39 +0200)]
Convert mktables to assign lexicals via do { no overloading; ... }; blocks.

This avoids repeating the lexical's name, whilst retaining the tight scope of
no overloading.

13 years agoChange mktables to use pack 'J', $addr; to key its inside-out objects.
Nicholas Clark [Thu, 26 Aug 2010 13:19:42 +0000 (15:19 +0200)]
Change mktables to use pack 'J', $addr; to key its inside-out objects.

Using pack 'J', $addr; instead of 0 + $addr; reduces run time by about 1%,
according to my benchmarking.

13 years agoIn lib/unicore/mktables tweaks to tidy the file writing code.
Nicholas Clark [Thu, 26 Aug 2010 12:56:08 +0000 (14:56 +0200)]
In lib/unicore/mktables tweaks to tidy the file writing code.

In write(), don't concatenate all the lines to one scalar to print them, as
it takes fewer ops and less memory to pass print a list of values.
die if the print or close return errors, and don't print the success message
until the file is successfully closed.

Refactor make_property_test_script() to use write().

13 years agoIn lib/unicore/mktables minor tidying of the numifciation code.
Nicholas Clark [Thu, 26 Aug 2010 12:16:43 +0000 (14:16 +0200)]
In lib/unicore/mktables minor tidying of the numifciation code.

In the inside-out object lookup code, strive for consistency, by always writing
0 + $ref with no spaces. No need to use 0+$ref as the arguments to == as it
will force numeric context.

13 years agomake recursive part of peephole optimiser hookable
Zefram [Mon, 16 Aug 2010 19:22:42 +0000 (20:22 +0100)]
make recursive part of peephole optimiser hookable

New variable PL_rpeepp makes it possible for extensions to hook
the per-op-chain part of the peephole optimiser (which recurses into
side chains).  The existing variable PL_peepp still allows hooking the
per-sub part of the peephole optimiser, maintaining perfect backward

13 years agoeliminate unneeded code, and explain why the code was not needed
Yves Orton [Thu, 26 Aug 2010 11:53:07 +0000 (13:53 +0200)]
eliminate unneeded code, and explain why the code was not needed

The commit message for v5.13.4-47-gd1c771f contained some misleading language
which I only noticed after I pushed. This change puts the comment in the
code and hopefully clarifies things properly.

In simple words: VERBS should *never* be included in the JUMPABLE condition.

13 years agoVERB nodes in the regex engine should NOT be marked as JUMPABLE.
Bram [Thu, 26 Aug 2010 11:27:24 +0000 (13:27 +0200)]
VERB nodes in the regex engine should NOT be marked as JUMPABLE.

JUMPABLE nodes can be ignored during certain phases of regex execution,
including ones where backtracking is affected. This change disables this
behviour so that the VERBS can perform their desired results.

Committer has taken the liberty of modifying the patch so that all
VERBS are jumped, thus making the JUMPABLE expression a little simpler.
I have left Bram's change to JUMPABLE intact, but inside of a comment
for now.

See discussion in thread for [perl #71942] *COMMIT bypasses optimisation
for futher details.

There appears to be room for futher optimisation here
by moving the JUMPABLE logic to regex-compile time. Currently
it is arguable that the "optimisation" this patch seeks to avoid
is actually not an optimisation at all, as it happens OVER AND OVER
during execution of a match, thus the extra effort might actually
outweight the benefit, especially on large strings.

13 years agofix description of -DJ in perlrun
David Mitchell [Wed, 25 Aug 2010 19:55:30 +0000 (20:55 +0100)]
fix description of -DJ in perlrun

The description of the J debugging flag was logically the reverse of what
it should be; i.e. -DJ enables, rather than suppresses, output in debugger

13 years agoprevent Devel::Peek::Dump from lieing to us about evil class names
Yves Orton [Wed, 25 Aug 2010 18:05:58 +0000 (20:05 +0200)]
prevent Devel::Peek::Dump from lieing to us about evil class names

While one certainly can argue the merits of using a class name like "\0", it is legal
so lets avoid it confusing our primary debugging tool.

13 years agoFix escaping in opcode.h generation
Dagfinn Ilmari Mannsåker (via RT) [Mon, 23 Aug 2010 23:05:48 +0000 (16:05 -0700)]
Fix escaping in opcode.h generation

The op list has no escapes, so there's no need check for already-escaped
characters, and the existing regex breaks any run of consecutive
backslashes, escaped or not.

13 years agoperlunicode.pod: Fix misleading info, expand
Karl Williamson [Wed, 25 Aug 2010 17:16:25 +0000 (18:16 +0100)]
perlunicode.pod: Fix misleading info, expand

There was some misleading, or uncharitably, wrong text in this pod about
user-defined casing.  And, it jumped the gun, presuming that 5.14 would
fix something for which there has not been a patch submitted yet.

And, I realized there was a way around having to figure out the utf8 for
a character.

13 years agomktables: Clarify comment output in files
Karl Williamson [Wed, 25 Aug 2010 17:15:34 +0000 (18:15 +0100)]
mktables: Clarify comment output in files

I never understood this comment until it bit me.  Based on my new-found
experience, I've expanded it.

13 years agoAdd tests for commit 1b0124a7c19a5499714e57a00a3d30b2f2647b1f
Bram (via RT) [Mon, 23 Aug 2010 19:22:28 +0000 (12:22 -0700)]
Add tests for commit 1b0124a7c19a5499714e57a00a3d30b2f2647b1f

[perl #77392]

Make sure that the stack is not popped when there is nothing on the stack.

13 years agoFix -Wwrite-string warnings in cygwin.c
Jerry D. Hedden" (via RT) [Mon, 23 Aug 2010 15:37:07 +0000 (08:37 -0700)]
Fix -Wwrite-string warnings in cygwin.c

[perl #77376]
Fix the following build warnings that are now being
generated because -Wwrite-string has been turned on:

cygwin.c: In function `do_aspawn':
cygwin.c:69: warning: assignment discards qualifiers from pointer target type
cygwin.c: In function `do_spawn':
cygwin.c:91: warning: initialization discards qualifiers from pointer
target type
cygwin.c: In function `init_os_extras':
cygwin.c:544: warning: initialization discards qualifiers from pointer
target type

13 years agoTests for bug 77414
Abigail [Wed, 25 Aug 2010 15:36:45 +0000 (17:36 +0200)]
Tests for bug 77414

13 years agoMark regcurly as experimental
karl williamson (via RT) [Wed, 18 Aug 2010 18:33:36 +0000 (11:33 -0700)]
Mark regcurly as experimental

Even though it isn't in the public API, some worry that we shouldn't
change it, as it's currently public, but may be made into an in-line
function known only to the two .c files that should call it.

13 years agoupdate AUTHORS
David Mitchell [Wed, 25 Aug 2010 13:20:46 +0000 (14:20 +0100)]
update AUTHORS

13 years report perl path in version conflict.
alex [Wed, 25 Aug 2010 12:38:28 +0000 (13:38 +0100)] report perl path in version conflict.

When dies with a perl/library version mismatch error, include
the path of the perl executable in the error message.

This helps avoid confusion during perl build when a cc wrapper written in
perl is used (such as colorgcc)

13 years agoexclude from pod checks
David Mitchell [Wed, 25 Aug 2010 13:16:26 +0000 (14:16 +0100)]
exclude from pod checks

This script contains snippets of pod in here-doc sections which
gives false positives

13 years agoperlpod.api: improve the prose
David Mitchell [Wed, 25 Aug 2010 12:10:45 +0000 (13:10 +0100)]
perlpod.api: improve the prose

Tweak the text of the previous commit that describes the status of
undocumented functions in the public API.

13 years Clarify use of undocumented fcns
Karl Williamson [Wed, 25 Aug 2010 11:58:34 +0000 (12:58 +0100)] Clarify use of undocumented fcns

perlapi.pod was changed to list all the undocumented functions.  The
introductory text was not updated at that time.  Now every public API
function is at least listed in this pod.  Clarify that functions not
listed are not public and should not be used, and add a plea for
documenting the ones which are missing theirs.

13 years agodon't taint $DB::sub
David Mitchell [Wed, 25 Aug 2010 11:15:41 +0000 (12:15 +0100)]
don't taint $DB::sub

[perl #76872] showed a case where code like the following, run under -d,
would cause $DB::sub to get set:

    $tainted_expression && func()

The tainted expression sets PL_tainted, so calling func() under -d, which
sets $DB::sub, causes it to get tainted.

Consequently any further sub calls would set PL_tainted while getting the
old value of $DB::sub (and cause the new value to be tainted too), and if
the sub was XS, then its code would be executed with PL_tainted set.
It isn't an issue with perl subs as the first nextstate op resets

13 years agodetaint paths added by
David Mitchell [Tue, 24 Aug 2010 22:55:58 +0000 (23:55 +0100)]
detaint paths added by

13 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.57_01
Chris 'BinGOs' Williams [Tue, 24 Aug 2010 18:21:23 +0000 (19:21 +0100)]
Update ExtUtils-MakeMaker to CPAN version 6.57_01


  6.57_01  Tue Aug 24 01:36:20 PDT 2010
    * parse_abstract() is more robust supporting "" and multiple
      dashes and spaces. [ 74438]

    Bug Fixes
    * Recognize .so files in AIX. [ 41360] (Jens Rehsack)
    * Remove manual image-base generation on Win32/gcc [ 47138]
      (Yasuhiro Matsumoto)
    * Use the bundled versions of our dependencies if they're not installed.
    * Eliminate use of foreach qw() which will be deprecated in 5.14.
      [ 57124] (Zefram)

    Test Fixes
    * Guard against old versions of YAML::Tiny that worked differently.
      [ 55500]

13 years agoIgnore more editor droppings
Dagfinn Ilmari Mannsåker [Tue, 24 Aug 2010 06:58:32 +0000 (08:58 +0200)]
Ignore more editor droppings

13 years agoUpdate Unicode-Collate to CPAN version 0.57
Chris 'BinGOs' Williams [Mon, 23 Aug 2010 16:07:51 +0000 (17:07 +0100)]
Update Unicode-Collate to CPAN version 0.57


  0.57  Sun Aug 22 22:39:58 2010
    - Unicode::Collate::Locale newly supports locales: ca, et, fi, lv, sk, sl.

13 years agoIn bodies_by_type in sv.c, no need to store for values for HEs.
Nicholas Clark [Mon, 23 Aug 2010 15:46:32 +0000 (16:46 +0100)]
In bodies_by_type in sv.c, no need to store for values for HEs.

HEs use 0th root for their arenas, as SVt_NULL doesn't need an arena. But no
code in sv.c needs to know the size details for HEs, because values are all
passed in explicitly from S_new_he() in hv.c

13 years agotypo in perlport
Philippe Bruhat (BooK) [Mon, 23 Aug 2010 13:28:18 +0000 (15:28 +0200)]
typo in perlport

13 years agofix rt75680 - when working with utf8 strings one must always use s+=UTF8SKIP(s) to...
Yves Orton [Mon, 23 Aug 2010 12:36:37 +0000 (14:36 +0200)]
fix rt75680 - when working with utf8 strings one must always use s+=UTF8SKIP(s) to move to the next char

Most of the regex code where do the two types of increments are wrapped up in macros.

Unfortunately these macros arent suitable in this case because we use goto to jump
inside the loop under some situations, and since this is a one-off case I figured the
modest C&P associated was better than creating a new macro just for this case.

There is still a possible bug here marked by an XXX, which will need to be fixed
once I find out the correct way to simulate strptr--. Additionally I havent found
a test case that actually exposes this form of the bug.

Moral of the story, utf8 makes string scanning awkward... And slow...

13 years agodocument several optree construction functions
Zefram [Sun, 22 Aug 2010 20:55:36 +0000 (21:55 +0100)]
document several optree construction functions

13 years agoIn, remove a redundant check for MULTIPLICITY.
Nicholas Clark [Mon, 23 Aug 2010 09:14:09 +0000 (10:14 +0100)]
In, remove a redundant check for MULTIPLICITY.

Originally the else block was taken when MULTIPLICITY was defined, the if block
being taken for PERL_OBJECT. 6f4183fe04888927 (change 4878) made the if true
for PERL_OBJECT or MULTIPLICITY, rendering this check for MULTIPLICITY

13 years agoAdd vaproto and charbits entries to win32/config.gc64(nox)?
Curtis Jewell [Sun, 22 Aug 2010 18:43:26 +0000 (12:43 -0600)]
Add vaproto and charbits entries to win32/config.gc64(nox)?

Signed-off-by: H.Merijn Brand <>
13 years agoMake win32/config.gc64(nox)? match win32/config.gc.
Curtis Jewell [Sat, 21 Aug 2010 22:31:28 +0000 (16:31 -0600)]
Make win32/config.gc64(nox)? match win32/config.gc.

Signed-off-by: H.Merijn Brand <>
13 years agoEnlighten Porting/ about win32/config.gc64(nox)? files
Curtis Jewell [Sun, 22 Aug 2010 10:18:18 +0000 (04:18 -0600)]
Enlighten Porting/ about win32/config.gc64(nox)? files

Signed-off-by: H.Merijn Brand <>
13 years agoAdd missing space in perltrap
Florian Ragwitz [Sun, 22 Aug 2010 03:52:56 +0000 (05:52 +0200)]
Add missing space in perltrap

It looks as though a space was inadvertently removed. The example makes no sense
without it.

13 years agoadd lex_stuff_pvs()
Zefram [Sun, 15 Aug 2010 20:36:11 +0000 (21:36 +0100)]
add lex_stuff_pvs()

New macro lex_stuff_pvs(), wrapping lex_stuff_pvn() for literal strings.

13 years agoStop installing manpages for XS::APItest*
Florian Ragwitz [Sat, 21 Aug 2010 08:27:28 +0000 (10:27 +0200)]
Stop installing manpages for XS::APItest*

We don't install the modules anyway, so there's no need to have confusing docs
installed for them.

13 years agoRemove CALL_FPTR and CPERLscope.
Ben Morrow [Sat, 14 Aug 2010 01:07:09 +0000 (02:07 +0100)]
Remove CALL_FPTR and CPERLscope.

These are left from PERL_OBJECT, which was an implementation of
multiplicity using C++ objects. PERL_OBJECT was removed in 5.8, but the
macros seem to have been cargo-culted all over the core (including in
places where they would have been inappropriate originally). Since they
now do exactly nothing, it's cleaner to remove them.

I have left the definitions in perl.h, under #ifndef PERL_CORE, since
some CPAN XS code uses them (also often incorrectly). I have also left
STATIC alone, since it seems potentially more useful and is much more

The only appearance of these macros this patch doesn't touch is in
Devel-PPPort, because that's a CPAN module.

13 years agoFix my $x = 3; $x = length(undef);.
Ben Morrow [Fri, 20 Aug 2010 17:35:58 +0000 (18:35 +0100)]
Fix my $x = 3; $x = length(undef);.

Assignment of length() to a lexical is optimized by passing the
assigned-to variable as TARG, avoiding a pp_padsv and pp_sassign.
9f621b which changed length(undef) to return undef didn't take this into
account, and used SETs (which doesn't set TARG), so the code above left
$x == 3.

13 years agoMove the declaration for more_bodies outside of an #if defined(PERL_IN_SV_C)
Nicholas Clark [Fri, 20 Aug 2010 19:44:39 +0000 (20:44 +0100)]
Move the declaration for more_bodies outside of an #if defined(PERL_IN_SV_C)

It used to be a static function, hence the location, and I failed to spot that
I needed to move it, when I edited it to be non-static.

Problem spotted by Jerry D. Hedden.

13 years agowhile_readdir.t needs a private directory to run in.
Nicholas Clark [Fri, 20 Aug 2010 19:22:45 +0000 (21:22 +0200)]
while_readdir.t needs a private directory to run in.

It assumes that it can read the contents twice and get the same result.
It's running in parallel with tests which do sometimes write in t/ so if it
runs at that level, it will sometimes fail due to race conditions.

13 years agoIn sv.c, tidy up body allocation code.
Nicholas Clark [Fri, 20 Aug 2010 16:05:12 +0000 (17:05 +0100)]
In sv.c, tidy up body allocation code.

Move the definition of del_body() closer to where it is used.
Inline del_body_allocated() into its only remaining user, del_XPVGV().
Coalesce adjacent C comments.

13 years agoInline S_get_arena() into Perl_more_bodies(), its only caller.
Nicholas Clark [Fri, 20 Aug 2010 14:54:28 +0000 (15:54 +0100)]
Inline S_get_arena() into Perl_more_bodies(), its only caller.

13 years agoExpose more_bodies(), and use it to replace S_more_he().
Nicholas Clark [Fri, 20 Aug 2010 14:31:42 +0000 (15:31 +0100)]
Expose more_bodies(), and use it to replace S_more_he().

Convert get_arena() to be static, as now its only user is Perl_more_bodies().

Perl_get_arena() was not in the public API, and neither Google codesearch
nor an upacked CPAN show anything to be using it.

13 years agoIn sv.c, pass in values to S_more_bodies, instead of using bodies_by_type.
Nicholas Clark [Fri, 20 Aug 2010 13:14:34 +0000 (14:14 +0100)]
In sv.c, pass in values to S_more_bodies, instead of using bodies_by_type.

Also fix one value passed to the debugging *_printf() in the #else block.

13 years agoRefactor the loop of S_more_bodies() to be (hopefully) clearer.
Nicholas Clark [Fri, 20 Aug 2010 10:25:50 +0000 (11:25 +0100)]
Refactor the loop of S_more_bodies() to be (hopefully) clearer.

13 years agoCorrect the size calculations for FIT_ARENA for SVt_REGEXP.
Nicholas Clark [Fri, 20 Aug 2010 09:44:40 +0000 (10:44 +0100)]
Correct the size calculations for FIT_ARENA for SVt_REGEXP.

This should have been done as part of commit 601dfd0af0604fa7. Its omission
did not cause bugs; it merely resulted in slightly less effective arena sizing.

13 years ago Bump the version of Module-CoreList in
Florian Ragwitz [Fri, 20 Aug 2010 16:30:54 +0000 (18:30 +0200)]
 Bump the version of Module-CoreList in

13 years agoMention Florian under THE KEEPERS OF THE PUMPKIN
Abigail [Fri, 20 Aug 2010 16:23:21 +0000 (18:23 +0200)]
Mention Florian under THE KEEPERS OF THE PUMPKIN

13 years agoupdate TOC and perldelta references
Florian Ragwitz [Wed, 18 Aug 2010 02:17:01 +0000 (04:17 +0200)]
update TOC and perldelta references

13 years agoretitle perl5134delta.pod
Florian Ragwitz [Wed, 18 Aug 2010 02:08:09 +0000 (04:08 +0200)]
retitle perl5134delta.pod

13 years agocreate perl5135delta.pod
Florian Ragwitz [Wed, 18 Aug 2010 02:13:35 +0000 (04:13 +0200)]
create perl5135delta.pod

13 years agoAdd 5.13.4 epigraph
Florian Ragwitz [Mon, 16 Aug 2010 22:00:36 +0000 (00:00 +0200)]
Add 5.13.4 epigraph

13 years agoDisable regeneration of regcharclass.h on win32 v5.13.4
Florian Ragwitz [Fri, 20 Aug 2010 04:13:06 +0000 (06:13 +0200)]
Disable regeneration of regcharclass.h on win32

There's really no need to do this on the user side, as regcharclass.h is a real
file in the repository. Having this rule, while maybe handy for regexp
developers working on win32, otherwise only causes trouble if
changes in a way that doesn't require regcharclass.h to change.

13 years agoAdd 5.13.4 to perlhist
Florian Ragwitz [Tue, 17 Aug 2010 02:02:41 +0000 (04:02 +0200)]
Add 5.13.4 to perlhist

13 years agoUpdate Module::Corelist for 5.13.4
Florian Ragwitz [Wed, 18 Aug 2010 22:49:00 +0000 (00:49 +0200)]
Update Module::Corelist for 5.13.4

13 years agoUpdate Changes for 5.13.4
Florian Ragwitz [Tue, 17 Aug 2010 01:15:27 +0000 (03:15 +0200)]
Update Changes for 5.13.4

13 years agoBump the perl version to 5.13.4
Florian Ragwitz [Tue, 17 Aug 2010 01:15:07 +0000 (03:15 +0200)]
Bump the perl version to 5.13.4

13 years agoImprove perldelta formatting
Florian Ragwitz [Fri, 20 Aug 2010 01:53:52 +0000 (03:53 +0200)]
Improve perldelta formatting

13 years agoFinish up perl5134delta
Florian Ragwitz [Wed, 18 Aug 2010 02:33:11 +0000 (04:33 +0200)]
Finish up perl5134delta

13 years agoFix stack corruption by unsupported filetests
Jan Dubois [Fri, 20 Aug 2010 01:43:59 +0000 (18:43 -0700)]
Fix stack corruption by unsupported filetests

Commit c410dd6ad7 indiscriminately pops elements from the stack
even when nothing has been pushed: file tests without arguments
(testing $_) and stacked filetests don't have anything on the
stack that needs to be removed.

The general idea is that we need to have the same side effects
as if we had called my_stat_flags(), so we shall only call POPs
under the same conditions as the code in my_stat_flags().

13 years agoWe break Switch
Florian Ragwitz [Fri, 20 Aug 2010 01:30:41 +0000 (03:30 +0200)]
We break Switch

13 years agoHTML::Parser is fixed already
Florian Ragwitz [Thu, 19 Aug 2010 23:54:16 +0000 (01:54 +0200)]
HTML::Parser is fixed already

13 years agoperldelta t/re/overload.t
Florian Ragwitz [Thu, 19 Aug 2010 23:47:55 +0000 (01:47 +0200)]
perldelta t/re/overload.t

13 years agoAdd t/re/overload.t to MANIFEST
Florian Ragwitz [Thu, 19 Aug 2010 23:46:19 +0000 (01:46 +0200)]
Add t/re/overload.t to MANIFEST

13 years ago*.t and don't need to be executable
Florian Ragwitz [Thu, 19 Aug 2010 21:24:24 +0000 (23:24 +0200)]
*.t and don't need to be executable

13 years agoTest for +x bits for all the files in exec-bit.txt
Florian Ragwitz [Thu, 19 Aug 2010 21:23:29 +0000 (23:23 +0200)]
Test for +x bits for all the files in exec-bit.txt

The globbing only works when done in the right directory.

13 years agoMake everything exec-bit.txt lists executable
Florian Ragwitz [Thu, 19 Aug 2010 21:20:52 +0000 (23:20 +0200)]
Make everything exec-bit.txt lists executable

All these files used to be executable in the release tarballs. Apparently things
also work without that in the repository, but I'd rather add this possibly
unecessary change to blead instead of breaking the upcoming release. This should
probably be looked into again afterwards.

13 years agoSilence a warning in time64.c. Need to downgrade a const char *
Steve Peters [Thu, 19 Aug 2010 19:47:41 +0000 (14:47 -0500)]
Silence a warning in time64.c.  Need to downgrade a const char *
to a char *.

13 years agoMoved prototype check to XS code, allowing the .pm file change from yesterday
Steve Peters [Thu, 19 Aug 2010 18:20:59 +0000 (13:20 -0500)]
Moved prototype check to XS code, allowing the .pm file change from yesterday
to be removed.  Thanks to Rafael for pointing out prototypes in XS.