This is a live mirror of the Perl 5 development currently hosted at
12 years agoOne more missing address
Abigail [Fri, 22 Jul 2011 00:30:42 +0000 (02:30 +0200)]
One more missing address

12 years agoMerge branch 'blead' of ssh:// into blead
Abigail [Fri, 22 Jul 2011 00:17:23 +0000 (02:17 +0200)]
Merge branch 'blead' of ssh:// into blead

12 years agoChange Shlomi Fish's E-mail Address in AUTHORS file
Shlomi Fish [Thu, 21 Jul 2011 23:54:04 +0000 (02:54 +0300)]
Change Shlomi Fish's E-mail Address in AUTHORS file

This patch updates my address. is now defunct and is active and should be kept so into the future.


Shlomi Fish

Signed-off-by: Abigail <>
12 years agoChange Shlomi Fish's E-mail Address in AUTHORS file
Shlomi Fish [Thu, 21 Jul 2011 23:54:04 +0000 (02:54 +0300)]
Change Shlomi Fish's E-mail Address in AUTHORS file

This patch updates my address. is now defunct and is active and should be kept so into the future.


Shlomi Fish

Signed-off-by: Abigail <>
12 years agoUpdate Module::Build to 0.39_01
David Golden [Thu, 21 Jul 2011 21:06:48 +0000 (17:06 -0400)]
Update Module::Build to 0.39_01

0.39_01 - Thu Jul 21 16:48:48 EDT 2011


  - Fixed bug with a nested directory named 'share' inside a ShareDir
    (RT#68585) [David Golden]

  - Fixed failing tilde.t when run under UID without passwd entry
    (RT#67893) [Dominic Hargreaves]


  - Fixed typo in Module::Build (RT#67008) [David Golden]


  - Pod to HTML internals changed to support new Pod::Html work
    in the Perl core

12 years agoperldiag: Add missing variant of proto warning
Father Chrysostomos [Thu, 21 Jul 2011 16:37:42 +0000 (09:37 -0700)]
perldiag: Add missing variant of proto warning

This is already listed, but without the ‘after '_'’ bit, so splain
couldn’t find it.

12 years agoUpdate Term-ANSIColor to CPAN version 3.01
Chris 'BinGOs' Williams [Thu, 21 Jul 2011 10:52:47 +0000 (11:52 +0100)]
Update Term-ANSIColor to CPAN version 3.01


  2011-07-20  Russ Allbery  <>

  * Version 3.01 released.

  * Makefile.PL: Change the DISTNAME to Term-ANSIColor.

  * (colored): Only interpret an initial array
  reference as a list of colors, not any initial reference, allowing
  the colored function to work properly on objects with
  stringification defined.  Thanks, Revilo Reegiles.
  * t/stringify.t: New test for proper behavior with non-array
  references in colored.

  2011-03-13  Russ Allbery  <>

  * Fix two syntax errors in the SYNOPSIS.  Thanks,
  Jan Hartung.

  2010-10-08  Russ Allbery  <>

  * Warn in the documentation that attributes are not
  supported in and will not work with Perl formats.

  2010-04-11  Russ Allbery  <>

  * Update the URL for ECMA-048 in the documentation.

12 years agoUpdate Porting/ after commit 6410892abe3d820a.
Nicholas Clark [Thu, 21 Jul 2011 10:28:14 +0000 (12:28 +0200)]
Update Porting/ after commit 6410892abe3d820a.

This resolves the failure in t/porting/authors.t.

12 years agoold work email address is no longer valid - I've updated the file with
Spiros Denaxas [Thu, 21 Jul 2011 10:17:54 +0000 (12:17 +0200)]
old work email address is no longer valid - I've updated the file with
a working one.

12 years agoAdd "clean build and test" as a step in the release manager's guide.
Nicholas Clark [Thu, 21 Jul 2011 09:29:01 +0000 (11:29 +0200)]
Add "clean build and test" as a step in the release manager's guide.

Some of the post-release steps can cause test failures (and hence black
smoke) if not addressed at the time.

12 years agoIn perldelta.pod, fix a spelling error.
Nicholas Clark [Thu, 21 Jul 2011 09:11:44 +0000 (11:11 +0200)]
In perldelta.pod, fix a spelling error.

12 years agoIncrease $PerlIO::via::VERSION following commit d477ab3eb4369a52.
Nicholas Clark [Thu, 21 Jul 2011 09:03:22 +0000 (11:03 +0200)]
Increase $PerlIO::via::VERSION following commit d477ab3eb4369a52.

12 years agos/bellow/below/ in PerlIO::via docs
Eric Brine [Thu, 21 Jul 2011 07:36:51 +0000 (00:36 -0700)]
s/bellow/below/ in PerlIO::via docs

Signed-off-by: Abigail <>
12 years agoCorrect lock’s prototype
Father Chrysostomos [Thu, 21 Jul 2011 07:07:05 +0000 (00:07 -0700)]
Correct lock’s prototype

As of commit f4df43b5, lock is parsed the same way as tied.  Before
that, the prototype was effectively \[$@%&*], but only because
it was buggy (an lvalue sub itself would be passed to the function,
instead of its return value).  Yet its prototype was set to \$, which
was just wrong.

This fixes part of #94980.

12 years agoDocument lock’s retval
Father Chrysostomos [Thu, 21 Jul 2011 06:57:04 +0000 (23:57 -0700)]
Document lock’s retval

12 years ago[perl #81290] assertion failure with lock &lvsub
Father Chrysostomos [Thu, 21 Jul 2011 06:52:57 +0000 (23:52 -0700)]
[perl #81290] assertion failure with lock &lvsub

With this commit, locking an lvalue subroutine no longer tries to lock
the subroutine itself (triggering an assertion in pp_lock).  Instead,
the &foo syntax is treated as a scalar lvalue expression, as with tie,
so the return value gets locked.  Non-lvalue sub calls still produce a
‘Can't modify’ error, as they are not modifiable.

This also stops lock from trying to return a sub as though it were a
scalar, thereby breaking this JAPH I’ve just written:-)

sub _:lvalue{$x}for(lock&_){$_
="Just another Perl hacker,\n"}

12 years agooverload.t: Remove a bug workarond
Father Chrysostomos [Thu, 21 Jul 2011 06:18:07 +0000 (23:18 -0700)]
overload.t: Remove a bug workarond

That bug was fixed in 5.14

12 years agoTests for overload errors
Father Chrysostomos [Thu, 21 Jul 2011 06:05:56 +0000 (23:05 -0700)]
Tests for overload errors

12 years agopodcheck.t: fix up known issues in new perldelta
David Golden [Thu, 21 Jul 2011 01:17:14 +0000 (21:17 -0400)]
podcheck.t: fix up known issues in new perldelta

12 years agoAdds 'skip_cwd' parameter to ExtUtils::Installed.
David Golden [Wed, 20 Jul 2011 23:49:43 +0000 (19:49 -0400)]
Adds 'skip_cwd' parameter to ExtUtils::Installed.

With this new parameter, the current directory is not included in the
installed module search.  This avoids finding modules from other perls
which happen to be below the current directory.

12 years agoperldelta: document perlivp changes
David Golden [Wed, 20 Jul 2011 23:57:22 +0000 (19:57 -0400)]
perldelta: document perlivp changes

12 years agoRemove .ph tests from perlivp
David Golden [Wed, 20 Jul 2011 23:20:51 +0000 (19:20 -0400)]
Remove .ph tests from perlivp

These tests were made optional in 2005 in commit 2a36bdc27 and
refer to files which are no longer generated during install.

To avoid confusion, the tests for these files have been removed.

12 years agoAdd test labels to perlivp
David Golden [Wed, 20 Jul 2011 22:27:16 +0000 (18:27 -0400)]
Add test labels to perlivp

12 years agoMake perlivp ignore PERL5LIB and current directory
David Golden [Wed, 20 Jul 2011 22:14:03 +0000 (18:14 -0400)]
Make perlivp ignore PERL5LIB and current directory

12 years agoepigraph for 5.15.1
Zefram [Wed, 20 Jul 2011 21:49:50 +0000 (22:49 +0100)]
epigraph for 5.15.1

12 years agomark perldelta Ack generation instruction with XXX
Zefram [Wed, 20 Jul 2011 21:48:15 +0000 (22:48 +0100)]
mark perldelta Ack generation instruction with XXX

12 years agonew perldelta for 5.15.2
Zefram [Wed, 20 Jul 2011 21:47:11 +0000 (22:47 +0100)]
new perldelta for 5.15.2

12 years agocorrect name of 7-Zip Debian package in RMG
Zefram [Wed, 20 Jul 2011 21:38:38 +0000 (22:38 +0100)]
correct name of 7-Zip Debian package in RMG

12 years agoskip perlfaq pseudo-module in installation test v5.15.1
Zefram [Wed, 20 Jul 2011 19:58:56 +0000 (20:58 +0100)]
skip perlfaq pseudo-module in installation test

12 years agoadd 5.15.1 to perlhist
Zefram [Wed, 20 Jul 2011 19:14:15 +0000 (20:14 +0100)]
add 5.15.1 to perlhist

12 years agoremove note about now-automated aspect of CoreList
Zefram [Wed, 20 Jul 2011 19:11:41 +0000 (20:11 +0100)]
remove note about now-automated aspect of CoreList

12 years agoupdate Module::CoreList for 5.15.1
Zefram [Wed, 20 Jul 2011 19:10:07 +0000 (20:10 +0100)]
update Module::CoreList for 5.15.1

12 years agopod markup fix in perldelta
Zefram [Wed, 20 Jul 2011 18:51:33 +0000 (19:51 +0100)]
pod markup fix in perldelta

12 years agoacknowledgements in perldelta
Zefram [Wed, 20 Jul 2011 18:47:06 +0000 (19:47 +0100)]
acknowledgements in perldelta

12 years agoregen known_pod_issues.dat for perldelta edits
Zefram [Wed, 20 Jul 2011 18:41:59 +0000 (19:41 +0100)]
regen known_pod_issues.dat for perldelta edits

12 years agobump perl version number to 5.15.1
Zefram [Wed, 20 Jul 2011 18:36:45 +0000 (19:36 +0100)]
bump perl version number to 5.15.1

12 years agoexempt a couple more files from version bumping
Zefram [Wed, 20 Jul 2011 17:57:40 +0000 (18:57 +0100)]
exempt a couple more files from version bumping

12 years agocopyedit perldelta
Zefram [Wed, 20 Jul 2011 17:47:23 +0000 (18:47 +0100)]
copyedit perldelta

12 years agoperldelta entry for 64eff8b7
Zefram [Wed, 20 Jul 2011 17:25:49 +0000 (18:25 +0100)]
perldelta entry for 64eff8b7

12 years agomake assign to $^A update FmLINES
David Mitchell [Wed, 20 Jul 2011 13:39:20 +0000 (14:39 +0100)]
make assign to $^A update FmLINES

Currently assigning to $^A updates the string in
PL_bodytarget, but doesn't update FmLINES(PL_bodytarget).

This can cause later writes to get confused about how many
lines have been output, and was causing write.t to fail test 418
under miniperl. (Only under miniperl, because skipping some tests under
miniperl affected how $^A's content and line count got messed up).

Fix this by updating FmLINES(PL_bodytarget) when $^A is set.

(Also fixes a TODO test which was failing due to 'local $^A' in earlier

12 years agoSort the VMS specific PL_bincompat_options in alphabetic order.
Nicholas Clark [Tue, 19 Jul 2011 09:11:49 +0000 (11:11 +0200)]
Sort the VMS specific PL_bincompat_options in alphabetic order.

12 years agoRemove an erroneous space from PL_bincompat_options for HAVE_INTERP_INTERN.
Nicholas Clark [Tue, 19 Jul 2011 08:50:57 +0000 (10:50 +0200)]
Remove an erroneous space from PL_bincompat_options for HAVE_INTERP_INTERN.

This was inadvertently added as part of eba804b9d4475c6d, but only causes
t/porting/bincompat.t to fail on those platforms that define
HAVE_INTERP_INTERN. It's always the really subtle things that catch you out.

12 years agopodcheck: regen after perldelta changes
Karl Williamson [Wed, 20 Jul 2011 02:55:49 +0000 (20:55 -0600)]
podcheck: regen after perldelta changes

12 years agoremove most placeholders from perldelta
Zefram [Tue, 19 Jul 2011 21:36:10 +0000 (22:36 +0100)]
remove most placeholders from perldelta

12 years agoupdate perldelta and correct one dubious entry
Zefram [Tue, 19 Jul 2011 21:18:21 +0000 (22:18 +0100)]
update perldelta and correct one dubious entry

12 years agobump $VERSION to reflect doc changes
Zefram [Tue, 19 Jul 2011 20:01:42 +0000 (21:01 +0100)]
bump $VERSION to reflect doc changes

12 years agoCorrect test count in win32/runenv.t
Father Chrysostomos [Tue, 19 Jul 2011 15:22:00 +0000 (08:22 -0700)]
Correct test count in win32/runenv.t

Not having any way to test this, I hope it works.

This is based on smoke reports and my own counting of the is()
calls in the test script.

12 years agoUse a switch in pp_prototype for compactness
Father Chrysostomos [Tue, 19 Jul 2011 05:46:13 +0000 (22:46 -0700)]
Use a switch in pp_prototype for compactness

12 years ago[perl #94984] Remove prototypes for infix ops
Father Chrysostomos [Tue, 19 Jul 2011 05:30:52 +0000 (22:30 -0700)]
[perl #94984] Remove prototypes for infix ops

This commit makes prototype("CORE::$_") return undef for these
infix ops, instead of the prototype (or error) shown here:

and ()
cmp Error: Cannot find an op number for cmp
eq  ($$)
ge  ($$)
gt  ($$)
le  ($$)
lt  ($$)
ne  ($$)
or  ()
x   Error: Cannot find an op number for x
xor ($$)

Those prototypes are not actually correct, and dying for what are real
Perl keywords is just mean.

12 years agoperlapi.pod Enhancements
Shlomi Fish [Tue, 19 Jul 2011 05:07:28 +0000 (22:07 -0700)]
perlapi.pod Enhancements

This is a patch to enhance perlapi.pod by providing Perl equivalents and
clarifying documentation where appropriate.

12 years agoFixes to allow win32 Perl to properly handle PERL5LIB.
Phil Monsen [Tue, 19 Jul 2011 03:16:55 +0000 (22:16 -0500)]
Fixes to allow win32 Perl to properly handle PERL5LIB.

On Windows Vista, 7 and 2008, the win32 API call
GetEnvironmentVariableA() does not return environment values
with string length of greater than 32766, even though
such variables are supported in the environment.

This consequently caused @INC not to be populated for
such values of PERL5LIB on those OSes, as reported in
RT #87322.

This commit reworks the code so that GetEnvironmentStrings()
is called if GetEnvironmentVariableA() indicates the requested
value is set in the environmtn.  The old fallback of consulting
the registry for variables beginning with "PERL" is retained, but
as a last-ditch fallback rather than the only recourse.

A new test file, t/win32/runenv.t has been added to validate
that the new behavior is working properly, as well as that
general environment variable handling is in accordance with
expectations, since t/run/runenv.t does not run on Win* platforms.
The new test file is essentially a non-forking clone of
t/run/runenv.t, with modifications to test cases to run properly
on Win* platforms, and with a new test case to test the new behavior.

12 years agoTransform the loop in rpeep that handles the undeferred ops
Vincent Pit [Mon, 18 Jul 2011 22:22:31 +0000 (00:22 +0200)]
Transform the loop in rpeep that handles the undeferred ops

Following commit f11ca51e41e898a77f1fd33b9e0371e69b1be73a, it is possible
to rewrite this loop to make it slightly more readable.

There should be no functional changes.

12 years agoTest for [perl #87726] (warning from under -w)
Father Chrysostomos [Wed, 6 Apr 2011 01:00:14 +0000 (18:00 -0700)]
Test for [perl #87726] (warning from under -w)

12 years agoUpgraded HTTP-Tiny to CPAN version 0.013
David Golden [Mon, 18 Jul 2011 20:54:59 +0000 (16:54 -0400)]
Upgraded HTTP-Tiny to CPAN version 0.013

0.013     2011-07-17 23:14:22 America/New_York


  - $ENV{http_proxy} support added [Claes Jakobsson]


  - Internal/private errors converted from "croak" to "die" as internal
    errors are caught by "eval"

12 years agoPerl_rpeep: undo tail recursion optimisation
David Mitchell [Mon, 18 Jul 2011 19:14:10 +0000 (20:14 +0100)]
Perl_rpeep: undo tail recursion optimisation

commit 3c78429c102e0fe2ad30c60dfe52636b6071ef19 reduced the depth
of recursion in rpeep(), by deferring recursion into branches until a bit
later (so that the recursive call to rpeep was then likely to be shallow).
However, it went one step further: when the chain of op_next's had been
exhausted in the main loop, it processed any remaining deferrred branches
in the main loop rather than recursing. All nice and efficient, but it
broke the expectation that someone who had hooked into rpeep could follow
the chain of op_nexts in each call and visit *all* ops.

This commit removes that optimisation and restores the rpeep hook
expectancy. This shouldn't have any major effect on the depth of
recursion, and its minor inefficiency doesn't really matter for a
one-time compilation-time pass.

12 years agoPL_bincompat_options was missing options that affect the interpreter struct.
Nicholas Clark [Mon, 18 Jul 2011 15:26:09 +0000 (17:26 +0200)]
PL_bincompat_options was missing options that affect the interpreter struct.

It had most, but not all, C pre-processor options that change the size of the
interpreter struct.

12 years agoIn intrpvar.h, move all the USE_LOCALE_NUMERIC variables together.
Nicholas Clark [Mon, 18 Jul 2011 11:35:33 +0000 (13:35 +0200)]
In intrpvar.h, move all the USE_LOCALE_NUMERIC variables together.

a453c1697467fe60 added PL_numeric_radix_sv at the end of the interpreter struct
to avoid breaking binary compatibility. However, as we now explicitly no longer
guarantee compatibility across major releases, there's no reason not to move it
next to the other variables related to it.

12 years agoMake Porting/ fetch gzipped 02packages.details.txt from CPAN
Leon Brocard [Mon, 18 Jul 2011 11:13:20 +0000 (12:13 +0100)]
Make Porting/ fetch gzipped 02packages.details.txt from CPAN

12 years agoMove Porting/ from LWP::Simple/curl/wget to HTTP::Tiny
Leon Brocard [Mon, 18 Jul 2011 10:56:18 +0000 (11:56 +0100)]
Move Porting/ from LWP::Simple/curl/wget to HTTP::Tiny

12 years agoEnable autodie in Porting/
Leon Brocard [Mon, 18 Jul 2011 10:45:26 +0000 (11:45 +0100)]
Enable autodie in Porting/

12 years agoActually test cop_*_label
Reini Urban [Mon, 18 Jul 2011 05:50:06 +0000 (22:50 -0700)]
Actually test cop_*_label

12 years agoFix a wrong length in APItest.xs:test_coplabel
Father Chrysostomos [Mon, 18 Jul 2011 06:02:11 +0000 (23:02 -0700)]
Fix a wrong length in APItest.xs:test_coplabel

12 years agoBring cop label testing in line with intentions.
Craig A. Berry [Sun, 17 Jul 2011 15:36:31 +0000 (10:36 -0500)]
Bring cop label testing in line with intentions.

8375c93eec supplied tests for a newly exported API but the type
declarations for the arguments and return values didn't match the
types of the API being tested.

aebc0cbee0 renamed the functions without updating the calls to
those functions in the test.

Either of these could have been easily spotted by building with
g++ (or other readily available tools) before pushing.

This aside from the controversy over whether this particular API
is the one that should be publicly exported, so this all may be
reverted and replaced before 5.16.0, but hopefully it will unbreak
the build for now.

12 years agoperlrecharclass: Nits
Karl Williamson [Sun, 17 Jul 2011 00:14:46 +0000 (18:14 -0600)]
perlrecharclass: Nits

One nit is that the only difference between [\h\v] and \s is VT; it's
not just one difference.

Another nit is that the synonyms in the table may be to either
the ASCII or full-range depending on various things.

12 years agoperlre: Nits
Karl Williamson [Sat, 16 Jul 2011 20:49:33 +0000 (14:49 -0600)]
perlre: Nits

12 years agoDual-life Search::Dict
Florian Ragwitz [Sun, 17 Jul 2011 11:57:18 +0000 (13:57 +0200)]
Dual-life Search::Dict

12 years agoUpdate Pod-Simple to CPAN version 3.18
Chris 'BinGOs' Williams [Sun, 17 Jul 2011 09:17:39 +0000 (10:17 +0100)]
Update Pod-Simple to CPAN version 3.18


  2011-07-16   David E. Wheeler <>
        * Release 3.18

        Pod::Simple now properly parses Pod files using Mac OS Classic line-
        endings (\r). Marc Green/Google Summer of Code.

        Fixed test failure in 't/search50.t when the test finds a .pod but
        the module is in a .pm. Thanks to the cpan-testers who reported
        this when the test searched for Capture::Tiny.

12 years agore-indent some tests for readability
Father Chrysostomos [Sun, 17 Jul 2011 05:26:05 +0000 (22:26 -0700)]
re-indent some tests for readability

This makes it easier to see when the skip count needs to
be updated.

12 years agoSkip tests sub_lval.t when cannot load
Father Chrysostomos [Sun, 17 Jul 2011 05:13:54 +0000 (22:13 -0700)]
Skip tests sub_lval.t when cannot load

(e.g., under miniperl)

12 years agoCorrect skip count in perlio.t
Father Chrysostomos [Sun, 17 Jul 2011 05:09:46 +0000 (22:09 -0700)]
Correct skip count in perlio.t

This makes it pass under miniperl again.

12 years agoperldelta update
Father Chrysostomos [Sun, 17 Jul 2011 04:11:01 +0000 (21:11 -0700)]
perldelta update

12 years agoporting/rmg: Expand on CoreList version bump
Father Chrysostomos [Sun, 17 Jul 2011 02:14:23 +0000 (19:14 -0700)]
porting/rmg: Expand on CoreList version bump

12 years agoRename store/fetch_cop_label as cop_*
Father Chrysostomos [Sun, 17 Jul 2011 01:42:59 +0000 (18:42 -0700)]
Rename store/fetch_cop_label as cop_*

This makes them consistent with other functions that put the basic
datum type first (like hv_*, sv_*, cophh_*).

Since fetch_cop_label is marked as experimental (M), this change
should be OK.

12 years agoExport store_cop_label for the perl compiler
Reini Urban [Tue, 21 Jun 2011 12:55:56 +0000 (07:55 -0500)]
Export store_cop_label for the perl compiler

12 years agoClean up magic_methcall docs
Father Chrysostomos [Sat, 16 Jul 2011 21:33:27 +0000 (14:33 -0700)]
Clean up magic_methcall docs

This is rather unsightly, don’t you think?

        Invoke a magic method (like FETCH).
        * sv and mg are the tied thingy and the tie magic; * meth is
        the name of the method to call; * argc is the number of args
        (in addition to $self) to pass to the method;
               the args themselves are any values following the argc
        argument.  * flags:
            G_DISCARD:     invoke method with G_DISCARD flag and don’t
        return a value
            G_UNDEF_FILL:  fill the stack with argc pointers to
        Returns the SV (if any) returned by the method, or NULL on

(That’s the ‘rendered’ nroff output.)

I would have used =over/=item/=back, but doesn’t seem to
like those.

12 years agoperlos2: Fix some link issues
Karl Williamson [Sat, 16 Jul 2011 19:46:48 +0000 (13:46 -0600)]
perlos2: Fix some link issues

The link to emxbind needs some explanation.  Perhaps on an os/2 system,
this command exists, but any link to it is using cpan's search which
doesn't find it

12 years agoperl5123delta: should have NAME perl5123delta
Karl Williamson [Sat, 16 Jul 2011 19:28:38 +0000 (13:28 -0600)]
perl5123delta: should have NAME perl5123delta

12 years agobasename: Change C<> to L<>
Karl Williamson [Sat, 16 Jul 2011 19:20:29 +0000 (13:20 -0600)]
basename: Change C<> to L<>

12 years agoperlbeos: change some C<>'s into F<>'s
Karl Williamson [Sat, 16 Jul 2011 18:43:28 +0000 (12:43 -0600)]
perlbeos: change some C<>'s into F<>'s

12 years agoREADME.bs2000: lowercase perlBS200 to unbreak links
Karl Williamson [Sat, 16 Jul 2011 18:31:15 +0000 (12:31 -0600)]
README.bs2000: lowercase perlBS200 to unbreak links

12 years agoperlport: remove perlapollo link
Karl Williamson [Sat, 16 Jul 2011 18:22:08 +0000 (12:22 -0600)]
perlport: remove perlapollo link

12 years agopodcheck.t: Reword instructions slightly
Karl Williamson [Wed, 6 Jul 2011 03:05:45 +0000 (21:05 -0600)]
podcheck.t: Reword instructions slightly

This is to emphasize that things may be false positives, and
instead of jumping through hoops to shut it up, all you have
to do is --regen things.

12 years agoMore apidoc entries need \n\n before =cut
Father Chrysostomos [Sat, 16 Jul 2011 19:49:47 +0000 (12:49 -0700)]
More apidoc entries need \n\n before =cut

12 years agoImprove wrapping of arguments in perlintern.pod
Father Chrysostomos [Sat, 16 Jul 2011 19:45:04 +0000 (12:45 -0700)]
Improve wrapping of arguments in perlintern.pod

Commit dee6204dc made a huge improvement to the formatting of argument
lists in perlapi (except for one pesky little entry, namely caller_cx,
that is 81 columns).

But I forgot to look through perlintern.

This just looks comical:

                       struct refcounted_he * refcounted_he_new_pv(struct refcounted_he *parent,
                                                                   const char *key,
                                                                   U32 hash,
                                                                   SV *value,
                                                                   U32 flags)

On an eighty-column terminal that wraps like this:

                       struct refcounted_he * refcounted_he_new_pv(struct refcoun
ted_he *parent,
                                                                   const char *k
                                                                   U32 hash,
                                                                   SV *value,
                                                                   U32 flags)


So, for entries with individual arguments that don’t fit, this commit
wraps them like this:

                       struct refcounted_he * refcounted_he_new_pv(
                                                  struct refcounted_he *parent,
                                                  const char *key, U32 hash,
                                                  SV *value, U32 flags

12 years agore_eval: clear lexicals in the right pad
David Mitchell [Sat, 16 Jul 2011 10:45:53 +0000 (11:45 +0100)]
re_eval: clear lexicals in the right pad

(?{...}) deliberately doesn't introduce a new scope (so that the affects of
local() can accumulate across multiple calls to the code). This also means
that the SAVEt_CLEARSVs pushed onto the save stack by lexical declarations
(i.e. (?{ my $x; ... }) also accumulate, and are only processed en-mass at
the end, on exit from the regex. Currently they are usually processed in
the wrong pad (the caller of the pattern, rather than the pads of the
individual code block(s)), leading to random misbehaviour and SEGVs.

Hence the long-standing advice to avoid lexical declarations within

We fix this by wrapping a pair of SAVECOMPPADs around each call to a code
block. Eventually the save stack will be a long accumulation of
SAVEt_CLEARSV's interspersed with SAVEt_COMPPAD's, that when popped
en-mass should unwind in the right order with the right pad at the right

The price to pay for this is two extra additions to the save stack (which
accumulate) for each code call.

A few TODO tests in reg_eval_scope.t now pass, so I'm probably doing the
right thing ;-)

12 years agoav.c: Add blank line before =cut
Father Chrysostomos [Sat, 16 Jul 2011 05:08:25 +0000 (22:08 -0700)]
av.c: Add blank line before =cut

to fix the generated pod

12 years agoWrap argument lists in perl{api,intern}.pod
Father Chrysostomos [Sat, 16 Jul 2011 05:06:49 +0000 (22:06 -0700)]
Wrap argument lists in perl{api,intern}.pod

12 years agoAdd PL_valid_types_{IVX,NVX,PVX,RV,IV_set,NV_set} into globar.sym.
Nicholas Clark [Fri, 15 Jul 2011 18:25:48 +0000 (20:25 +0200)]
Add PL_valid_types_{IVX,NVX,PVX,RV,IV_set,NV_set} into globar.sym.

f1fb874192252653 added these 6 new global variables, but omitted to add them
to the list of exported symbols.

12 years agoSort globvar.sym lexically.
Nicholas Clark [Fri, 15 Jul 2011 18:05:04 +0000 (20:05 +0200)]
Sort globvar.sym lexically.

12 years agoreplace many SvTYPE assertions with lookup tables
David Mitchell [Fri, 15 Jul 2011 15:45:34 +0000 (16:45 +0100)]
replace many SvTYPE assertions with lookup tables

Under a DEBUGGING build, this reduces the size of the perl binary by about
10%, and reduces the time to run the test suite by about 10-20%% (!)

12 years agoUpdate CPANPLUS to CPAN version 0.9108
Chris 'BinGOs' Williams [Fri, 15 Jul 2011 15:08:44 +0000 (16:08 +0100)]
Update CPANPLUS to CPAN version 0.9108


  Changes for 0.9108      Fri Jul 15 15:15:06 2011
  * Always use INSTALLER_MM for Module-Build

12 years agoensure SVs_PADTMP and SVs_PADTMP not both on
David Mitchell [Fri, 15 Jul 2011 13:46:46 +0000 (14:46 +0100)]
ensure SVs_PADTMP and SVs_PADTMP not both on

There's no reason for these two flags to ever both be on.
Fix the one place that was doing this, and assert that this never happens.

If this doesn't break anything, it opens the door to freeing a bit in
SvFLAGS. (woo hoo!)

12 years agoChange sv_eq_pvn_flags()'s parameter pvlen from I32 to STRLEN.
Nicholas Clark [Fri, 15 Jul 2011 12:46:30 +0000 (14:46 +0200)]
Change sv_eq_pvn_flags()'s parameter pvlen from I32 to STRLEN.

Change its return type to bool from I32, as it only returns truth or falsehood.

12 years agoChange was_lvalue_sub back to X; spell out the only use of it
Father Chrysostomos [Fri, 15 Jul 2011 04:49:08 +0000 (21:49 -0700)]
Change was_lvalue_sub back to X; spell out the only use of it

OK, now I understand what’s happening.

If there is a public macro (PUSHSUB) that contains a call to a pri-
vate function (was_lvalue_sub), that function has to be exported, so
that non-core code can call it.  But if it is marked X, there is no
was_lvalue_sub shorthand macro visible to non-core code, so when the
PUSHSUB macro is expanded in such code, the was_lvalue_sub(...) bit
becomes a call to the function literally named was_lvalue_sub, as
opposed to Perl_lvalue_sub (and is compiled that way on forgiving
platforms).  Making it A makes that macro available to non-core code,
but also implies that it is available for direct use by extensions,
which is not the case with was_lvalue_sub.

So, this commit makes it X again, but spells it out in PUSHSUB, so
there is no need for the function’s macro to be available when
PUSHSUB is expanded.

Hence, there is no need for the was_lvalue_sub macro to exist, so this
commit also removes it.

See also these three commits:


12 years agoA typemap is a file, not a directory.
Craig A. Berry [Thu, 14 Jul 2011 22:20:41 +0000 (17:20 -0500)]
A typemap is a file, not a directory.

12 years agoPerldelta for Dave's short-circuit optimization
Steffen Mueller [Thu, 14 Jul 2011 17:25:02 +0000 (19:25 +0200)]
Perldelta for Dave's short-circuit optimization

12 years agofully short-circuit &&, ||, //
David Mitchell [Thu, 14 Jul 2011 15:35:26 +0000 (16:35 +0100)]
fully short-circuit &&, ||, //

Currently in an expression like (A || B || C || D), if A is true, then
B, C and D aren't evaluated, but the 2nd, 3rd and 4th OR ops are *still*
executed. Use the peephole optimiser to bypass them.

i.e. change the op tree from

    - A - OR - OR - OR - X---
            \ /  \ /  \ /
             B    C    D
    - A - OR --------------------X---
            \                   /
             B - OR -----------/
           \          /
    C - OR --/
          \ /

With this, the following code's execution time reduces from 1.6s to 0.9s
approx on my system:

    my $a = 1; my $b = 0; my $x = 0;
    for (1..10_000_000) {
if ($a || $b || $b || $b || $b || $b) {

12 years agoMake prototypes and declarations for Perl_pad_add_name_{pv,pvn,sv} agree.
Nicholas Clark [Thu, 14 Jul 2011 16:02:55 +0000 (18:02 +0200)]
Make prototypes and declarations for Perl_pad_add_name_{pv,pvn,sv} agree.

cc76b5cc1552a605 added all 3 functions to the API, but declared prototypes
with const U32 flags, whilst the definitions had that parameter non-const.
Some compilers issue warnings about this inconsistency.

12 years agoAdd Porting/ to generate perldelta acknowledgements
Leon Brocard [Thu, 14 Jul 2011 14:00:07 +0000 (15:00 +0100)]
Add Porting/ to generate perldelta acknowledgements

12 years agoreduce size of threads.t test
David Mitchell [Thu, 14 Jul 2011 12:51:58 +0000 (13:51 +0100)]
reduce size of threads.t test

Commit 3c78429c102e0fe2ad30c60dfe52636b6071ef19 introduced a new test
that constructed and then evaled a very long string. Make that string less
long, as evaling it was consuming 100Mb on my debugging build, and a
smaller string still exercises the behaviour (i.e. fails on older perls).