This is a live mirror of the Perl 5 development currently hosted at
12 years agoCorrect the flags for 3 functions that don't actually have documentation.
Nicholas Clark [Tue, 17 Nov 2009 16:36:10 +0000 (16:36 +0000)]
Correct the flags for 3 functions that don't actually have documentation.

12 years agoRemove dead preprocessor code from toke.c
Jan Dubois [Mon, 16 Nov 2009 23:01:26 +0000 (15:01 -0800)]
Remove dead preprocessor code from toke.c

The symbol FTELL_FOR_PIPE_IS_BROKEN is no longer being used
and should have been removed with the commit 4c84d7f2, which
removed the -P option.

12 years agoFix crash in refactored lexer internals
Jan Dubois [Mon, 16 Nov 2009 22:43:20 +0000 (14:43 -0800)]
Fix crash in refactored lexer internals

Commit f0e67a1d29102aa9905aecf2b0f98449697d5af3 changed the control
flow so that PerlIO_tell(PL_rsfp) could be called when PL_rsfp was
NULL, which produces a crash at least on Windows with the MSVCRT

This change moves the detection if PL_rsfp is NULL or not closer to
the location where is is actually tested, which gets rid of the
crashes.  I however have *not* verified if the changes in control
flow in f0e67a1d are otherwise correct or not.

12 years agoadd op class assertions to newXXXOP functions
Gerard Goossen [Fri, 13 Nov 2009 11:57:39 +0000 (12:57 +0100)]
add op class assertions to newXXXOP functions

12 years agoDocument SIGPIPE when printing to closed socket
David Golden [Mon, 16 Nov 2009 16:26:53 +0000 (11:26 -0500)]
Document SIGPIPE when printing to closed socket

12 years agoPatches to Encode 2.38 to match current test layout
Jesse Vincent [Mon, 16 Nov 2009 16:13:22 +0000 (11:13 -0500)]
Patches to Encode 2.38 to match current test layout

12 years agoUpdated Encode to CPAN release 2.38
Jesse Vincent [Mon, 16 Nov 2009 15:20:27 +0000 (10:20 -0500)]
Updated Encode to CPAN release 2.38

12 years agoUpdate CPANPLUS::Dist::Build to cpan version 0.42
Chris Williams [Sun, 15 Nov 2009 22:51:27 +0000 (22:51 +0000)]
Update CPANPLUS::Dist::Build to cpan version 0.42

12 years agoUpdate IPC::Cmd to cpan version 0.54
Chris Williams [Sun, 15 Nov 2009 22:08:12 +0000 (22:08 +0000)]
Update IPC::Cmd to cpan version 0.54

  Changes for 0.54    Sun Nov 15 21:43:51 GMT 2009
  * Fixed issues on older perls requiring Time::HiRes

12 years agoInline PL_no_symref_sv into its users. Deprecate the visible global variable.
Nicholas Clark [Sun, 15 Nov 2009 16:29:16 +0000 (16:29 +0000)]
Inline PL_no_symref_sv into its users. Deprecate the visible global variable.

As the core no longer needs this fixed string outside of pp.c, it seems daft to
make it public just in case any module wants to use it. Modules that do should
provide their own inline copy in future.

Also restore the visible global PL_no_symref_sv back to the original format
specificiation (of 5.10.0 and earlier).

12 years agoInline PL_no_symref into pp_entersub. Deprecate the visible global variable.
Nicholas Clark [Sun, 15 Nov 2009 15:41:02 +0000 (15:41 +0000)]
Inline PL_no_symref into pp_entersub. Deprecate the visible global variable.

As the core no longer needs this fixed string in more than one place, it seems
daft to go to the overhead (and cost) of making it public in case any module
wants to use it. Modules that do want to use it should provide their own inline
copy in future.

Also restore the visible global PL_no_symref back to the original format
specification (of 5.10.0 and earlier), as an extra %s has the potential to
cause SEGVs or worse if not spotted at compile time.

12 years agolexer API
Zefram [Sun, 15 Nov 2009 13:25:50 +0000 (14:25 +0100)]
lexer API

Attached is a patch that adds a public API for the lowest layers of
lexing.  This is meant to provide a solid foundation for the parsing that
Devel::Declare and similar modules do, and it complements the pluggable
keyword mechanism.  The API consists of some existing variables combined
with some new functions, all marked as experimental (which making them
public certainly is).

12 years agoMake the style of pad_add_name's flags consistent with pad_new's and pad_tidy's.
Nicholas Clark [Sun, 15 Nov 2009 10:15:43 +0000 (10:15 +0000)]
Make the style of pad_add_name's flags consistent with pad_new's and pad_tidy's.

12 years agoChange S_pad_check_dup()'s arguments from char*/STRLEN to SV *.
Nicholas Clark [Sat, 14 Nov 2009 21:01:21 +0000 (21:01 +0000)]
Change S_pad_check_dup()'s arguments from char*/STRLEN to SV *.

Within the function, use sv_eq() rather than strcmp().

12 years agoConvert pad_check_dup() to static linkage, and call it from Perl_pad_add_name().
Nicholas Clark [Sat, 14 Nov 2009 20:18:39 +0000 (20:18 +0000)]
Convert pad_check_dup() to static linkage, and call it from Perl_pad_add_name().

Provide a flag option to Perl_pad_add_name(), pad_add_NO_DUP_CHECK, to supress
the call.

12 years agoRefactor common code paths from Perl_pad_add_name() into S_pad_add_name_sv().
Nicholas Clark [Sat, 14 Nov 2009 19:36:21 +0000 (19:36 +0000)]
Refactor common code paths from Perl_pad_add_name() into S_pad_add_name_sv().

The only user of the pad_add_FAKE flag was S_pad_findlex(), so move the relevant
code there from Perl_pad_add_name(), and have S_pad_findlex() call
S_pad_add_name_sv() directly. This eliminates the pad_add_FAKE flag completely.

12 years agoChange perl -v version format
David Golden [Thu, 12 Nov 2009 15:46:30 +0000 (10:46 -0500)]
Change perl -v version format

New format:

  This is perl 5, version 11, subversion 1 (v5.11.1) ...

The rationale for this change is that the Perl 5 interpreter will never
increment PERL_REVISION from 5 to 6, so we want people to start focusing
on the PERL_VERSION number as most significant and PERL_SUBVERSION as
equivalent to a "release number".  In other words, "perl 5" is a
language, this is the 11th version of it, and the second release of that
version (counting from zero).  Among other things, this makes the
output of -v and -V more consistent.

The old v-string style is included for familiarity and usage in code.
For builds from git, it will include the same extended format as it
did before, e.g. "(v5.11.1-176-gaf24cc9*)"

12 years agoPerformance optimisation in assert, suggested by Tim Bunce
Rafael Garcia-Suarez [Sun, 15 Nov 2009 00:34:03 +0000 (01:34 +0100)]
Performance optimisation in assert, suggested by Tim Bunce

Most compilers will store only a single copy of identical literal
strings. So changing that assert to check the pointer first would
significantly reduce the cost.

12 years agoTeach B::Deparse about in-place reverse
Vincent Pit [Sun, 15 Nov 2009 00:16:44 +0000 (01:16 +0100)]
Teach B::Deparse about in-place reverse

And bump the $VERSION.

12 years agoUpdated File::Fetch to cpan version 0.22
Chris Williams [Sat, 14 Nov 2009 23:22:32 +0000 (23:22 +0000)]
Updated File::Fetch to cpan version 0.22

  Changes for 0.22        Sat Nov 14 23:13:16 2009
  * Bumped to stable version

12 years agoInclude legacy.t in the maintainance list
Rafael Garcia-Suarez [Sat, 14 Nov 2009 22:54:51 +0000 (23:54 +0100)]
Include legacy.t in the maintainance list

12 years agoPOD fixes and typos
Rafael Garcia-Suarez [Sat, 14 Nov 2009 22:44:31 +0000 (23:44 +0100)]
POD fixes and typos

12 years agoadd code for Unicode semantics for non-utf8 latin1 chars
Karl Williamson [Fri, 13 Nov 2009 05:40:21 +0000 (22:40 -0700)]
add code for Unicode semantics for non-utf8 latin1 chars

12 years agoUpdate to Scalar-List-Utils-1.22 from CPAN
Graham Barr [Sat, 14 Nov 2009 15:40:15 +0000 (09:40 -0600)]
Update to Scalar-List-Utils-1.22 from CPAN

12 years agoRevert core fixes for IO-Compress following IO-Compress update
Steve Hay [Sat, 14 Nov 2009 00:17:00 +0000 (00:17 +0000)]
Revert core fixes for IO-Compress following IO-Compress update

With commit 1725f55ba78fb58489ea39e2bc0cc1faffd32275 IO-Compress now puts
its .pm files in lib rather than archlib for perls later than 5.11.1, so
the core can now do likewise given that blead will next be released as
5.11.2, i.e. revert the Configure part of 4cc80fc4cbbd82e20f7b14b68abb53d552076022
and revert f4a6a713802da1b781d7108503156fa3a0fe219e.

This change should not be merged into 5.10.x because IO-Compress will
continue to put its .pm files into archlib for the sake of anyone upgrading
a 5.10.x installation in-place.

12 years ago[PATCH] IO-Compress 2.022
Paul Marquess [Fri, 9 Oct 2009 21:51:37 +0000 (22:51 +0100)]
[PATCH] IO-Compress 2.022

Message-ID: <>

12 years agoSupport $! stringification of socket error codes on Windows.
Jan Dubois [Fri, 13 Nov 2009 19:45:46 +0000 (11:45 -0800)]
Support $! stringification of socket error codes on Windows.

The winsock error codes from WSAGetLastError() are stored by
Perl in errno, and there is some code in win32_strerror() that
would stringify them, but that code is never called when Perl
is built with the default WIN32IO_IS_STDIO setting.

This patch enables the win32_strerror() override unconditionally
and also fixes a potential memory corruption issue by using
the FORMAT_MESSAGE_IGNORE_INSERTS flag to ignore any parameter
substitution codes that may be embedded in the error message.

This now works as expected:

C:\git\perl>perl -Ilib -MPOSIX -E "$!=POSIX::EWOULDBLOCK; say $!"
A non-blocking socket operation could not be completed immediately.

12 years agoFix compiler warning:
Jerry D. Hedden [Fri, 13 Nov 2009 14:07:24 +0000 (09:07 -0500)]
Fix compiler warning:

p.c: In function `Perl_newATTRSUB':
op.c:5778: warning: cast from pointer to integer of different size

12 years agoFix compiler warnings:
Jerry D. Hedden [Fri, 13 Nov 2009 13:59:20 +0000 (08:59 -0500)]
Fix compiler warnings:

pp_sys.c: In function `Perl_pp_tie':
pp_sys.c:788: warning: 'gv' might be used uninitialized in this function
pp_sys.c: In function `Perl_pp_dbmopen':
pp_sys.c:936: warning: 'gv' might be used uninitialized in this function
pp_sys.c: In function `Perl_pp_enterwrite':
pp_sys.c:1274: warning: 'cv' might be used uninitialized in this function
pp_sys.c: In function `Perl_pp_ghostent':
pp_sys.c:4711: warning: 'hent' might be used uninitialized in this function

12 years agoFix compiler warnings:
Jerry D. Hedden [Fri, 13 Nov 2009 13:57:22 +0000 (08:57 -0500)]
Fix compiler warnings:

pp_ctl.c: In function `Perl_pp_return':
pp_ctl.c:2092: warning: 'retop' might be used uninitialized in this function
pp_ctl.c: In function `Perl_pp_last':
pp_ctl.c:2214: warning: 'nextop' might be used uninitialized in this function

12 years agoFix compiler warning:
Jerry D. Hedden [Fri, 13 Nov 2009 13:55:20 +0000 (08:55 -0500)]
Fix compiler warning:

scope.c:96:8: warning: extra tokens at end of #endif directive

12 years agoFix compiler warning:
Jerry D. Hedden [Fri, 13 Nov 2009 13:54:11 +0000 (08:54 -0500)]
Fix compiler warning:

pp.c: In function `Perl_pp_delete':
pp.c:4297: warning: 'sv' might be used uninitialized in this function

12 years agoUpdated IPC::Cmd to cpan release 0.52
Chris Williams [Fri, 13 Nov 2009 16:19:53 +0000 (16:19 +0000)]
Updated IPC::Cmd to cpan release 0.52

  Changes for 0.52    Fri Nov 13 16:15:11 GMT 2009
  * Added documentation for run_forked()

12 years agoTest for a bug in sort where the elements are freed in the sort block.
Gerard Goossen [Tue, 10 Nov 2009 12:37:38 +0000 (13:37 +0100)]
Test for a bug in sort where the elements are freed in the sort block.

12 years agoRefactor and expand unshift.t
Daniel Frederick Crisman [Fri, 13 Nov 2009 08:49:41 +0000 (03:49 -0500)]
Refactor and expand unshift.t

12 years ago[perl #70337] perldiag: localtime(...) too large
Father Chrysostomos [Fri, 13 Nov 2009 09:19:59 +0000 (10:19 +0100)]
[perl #70337] perldiag: localtime(...) too large

The message ‘localtime(...) too large’ is not documented in perldiag.
The attached patch adds it. I know it’s technically ‘%s(%.0f) too
large’, but it’s easier for users to find it under ‘localtime’ and
‘gmtime’. I also had to modify to support %.0f, and I
added a test, but I used a hack with STDERR that would make debugging
very difficult to anyone else adding tests.

12 years agoflock() on Windows should set proper errno numbers.
Jan Dubois [Fri, 13 Nov 2009 02:38:08 +0000 (18:38 -0800)]
flock() on Windows should set proper errno numbers.

It used to set errno to GetLastError(), which is from an
incompatible set of error codes.  That doesn't make any
sense, especially since the GetLastError() value is also
available at the Perl level via $^E.

It is important for that flock() will set
$! to WSAWOULDBLOCK when GetLastError() returns
ERROR_LOCK_VIOLATION because that is the value
now returns for POSIX::EWOULDBLOCK.

12 years agoflock() should return EWOULDBLOCK instead of EAGAIN.
Jan Dubois [Fri, 13 Nov 2009 01:14:59 +0000 (17:14 -0800)]
flock() should return EWOULDBLOCK instead of EAGAIN.

POSIX requires fcntl() to return EAGAIN or EACCES, whereas BSD
requires flock() to return EWOULDBLOCK.  On most systems EAGAIN
and EWOULDBLOCK use the same number, but on some (e.g. Linux on
PA-RISC) they do not.

12 years agoPL_scopestack_name needs to be copied in perl_clone()
Jan Dubois [Fri, 13 Nov 2009 01:03:56 +0000 (17:03 -0800)]
PL_scopestack_name needs to be copied in perl_clone()

12 years agoMake win32_start_child responsible for cleaning all the scopes.
Gerard Goossen [Thu, 12 Nov 2009 18:00:13 +0000 (19:00 +0100)]
Make win32_start_child responsible for cleaning all the scopes.

12 years ago1 is a magic number to C's exit() and Perl_my_exit().
Craig A. Berry [Thu, 12 Nov 2009 23:55:00 +0000 (17:55 -0600)]
1 is a magic number to C's exit() and Perl_my_exit().

Its real name is EXIT_FAILURE and it comes out of the wash somewhat
differently on VMS than elsewhere.

12 years agoUpdated CPANPLUS to cpan version 0.89_09
Chris Williams [Thu, 12 Nov 2009 22:31:19 +0000 (22:31 +0000)]
Updated CPANPLUS to cpan version 0.89_09

  Changes for 0.89_09     Thu Nov 12 21:54:01 2009
  * Only look for missing prereqs in the output of the last
    set of tests that were run. This resolves RT #51408,
    reported by Andreas Koenig

12 years agoBring Pod::Simple up to 3.10
David E. Wheeler [Thu, 12 Nov 2009 19:13:06 +0000 (11:13 -0800)]
Bring Pod::Simple up to 3.10

This is the same as the version just released to CPAN. Notable changes
are skipping failing tests on VMS and fixing nested definition lists in
the XHTML formatter.

12 years agoPL_scopestack_name is only defined in DEBUGGING perl
Jan Dubois [Thu, 12 Nov 2009 19:06:00 +0000 (11:06 -0800)]
PL_scopestack_name is only defined in DEBUGGING perl

12 years agoAs our $_; is forced into main::, it should warn as a redeclaration.
Nicholas Clark [Thu, 12 Nov 2009 17:19:48 +0000 (17:19 +0000)]
As our $_; is forced into main::, it should warn as a redeclaration.

12 years agoExplicitly check that our $_; is special, and forced to main::
Nicholas Clark [Thu, 12 Nov 2009 16:43:27 +0000 (16:43 +0000)]
Explicitly check that our $_; is special, and forced to main::

12 years agoSorry, missed a "
H.Merijn Brand [Thu, 12 Nov 2009 16:37:26 +0000 (17:37 +0100)]
Sorry, missed a "

12 years agoHP-UX does not accept UTC0UTC, because there is no valid DST rule
H.Merijn Brand [Thu, 12 Nov 2009 16:24:49 +0000 (17:24 +0100)]
HP-UX does not accept UTC0UTC, because there is no valid DST rule

12 years agoAdd line information to jumplevel debug information
Gerard Goossen [Thu, 12 Nov 2009 15:52:45 +0000 (16:52 +0100)]
Add line information to jumplevel debug information

Add information about where in the C code the jumplevel poping/setting up was done.


From 7b95a19d6fbd3615a034cea79fa087b80e4a9555 Mon Sep 17 00:00:00 2001
From: Gerard Goossen <>
Date: Thu, 12 Nov 2009 16:50:13 +0100
Subject: [PATCH] Add line information to jumplevel debug information provided when using -Dl

Signed-off-by: H.Merijn Brand <>
12 years agoAdd missing LEAVE to universal.c sv_does
Gerard Goossen [Thu, 12 Nov 2009 13:36:44 +0000 (14:36 +0100)]
Add missing LEAVE to universal.c sv_does

12 years agoAdd missing LEAVE to POSIX.xs sigaction
Gerard Goossen [Thu, 12 Nov 2009 13:36:30 +0000 (14:36 +0100)]
Add missing LEAVE to POSIX.xs sigaction

12 years agoAdd ENTER_with_name and LEAVE_with_name to automaticly check for matching ENTER/LEAVE...
Gerard Goossen [Thu, 12 Nov 2009 13:31:43 +0000 (14:31 +0100)]
Add ENTER_with_name and LEAVE_with_name to automaticly check for matching ENTER/LEAVE when debugging is enabled

12 years agoUpdated File::Fetch to cpan version 0.21_02
Chris Williams [Thu, 12 Nov 2009 13:37:53 +0000 (13:37 +0000)]
Updated File::Fetch to cpan version 0.21_02

  Changes for 0.21_02     Thu Nov 12 12:55:57 2009
  * Additional checks for the iosock retriever

12 years agoGrow zero length scalars
Karl Williamson [Thu, 12 Nov 2009 00:46:31 +0000 (17:46 -0700)]
Grow zero length scalars

12 years agoUpdate File::Fetch to cpan version 0.21_01
Chris Williams [Wed, 11 Nov 2009 23:52:00 +0000 (23:52 +0000)]
Update File::Fetch to cpan version 0.21_01

  Changes for 0.21_01     Wed Nov 11 23:38:27 2009
  * Added a simple IO::Socket/IO::Select based http retriever,
    based on code suggested by Paul 'Leonerd' Evans

12 years agoMap winsock error codes to POSIX errno values
Jan Dubois [Wed, 11 Nov 2009 23:29:39 +0000 (15:29 -0800)]
Map winsock error codes to POSIX errno values

12 years agoSome de-cruftification of README.vms.
Craig A. Berry [Wed, 11 Nov 2009 17:08:47 +0000 (11:08 -0600)]
Some de-cruftification of README.vms.

12 years agoreaddir() reports file type on VMS, even if zero length.
Craig A. Berry [Wed, 11 Nov 2009 16:31:54 +0000 (10:31 -0600)]
readdir() reports file type on VMS, even if zero length.

12 years agorefactoring of flip.t
Gerard Goossen [Wed, 11 Nov 2009 11:09:55 +0000 (12:09 +0100)]
refactoring of flip.t

12 years agoMake diag.t skip the warning I just fixed
Vincent Pit [Wed, 11 Nov 2009 10:55:43 +0000 (11:55 +0100)]
Make diag.t skip the warning I just fixed

It's just for MAD anyway.

12 years agoUpdate CPANPLUS to cpan version 0.89_08
Chris Williams [Wed, 11 Nov 2009 00:49:53 +0000 (00:49 +0000)]
Update CPANPLUS to cpan version 0.89_08

  Changes for 0.89_08     Tue Nov 10 23:29:06 2009
  * Make the default config prefer Build.PL if perl version is
    greater than or equal to 5.10.1
  * Fix a problem with parse_module() where it would not
    resolve some edge-case distributions, addresses

  Changes for 0.89_07     Thu Nov  5 14:05:11 2009
  * MYMETA.yml support added from Jos' branch

12 years agoClarify and complete documentation for in-place reverse
Vincent Pit [Tue, 10 Nov 2009 22:50:06 +0000 (23:50 +0100)]
Clarify and complete documentation for in-place reverse

12 years agoFix misformed UVxf format in op.c
Vincent Pit [Tue, 10 Nov 2009 22:26:44 +0000 (23:26 +0100)]
Fix misformed UVxf format in op.c

12 years agoOptimize reversing an array in-place
Vincent Pit [Tue, 10 Nov 2009 21:33:29 +0000 (22:33 +0100)]
Optimize reversing an array in-place

12 years agoPort t/op/reverse.t to
Vincent Pit [Tue, 10 Nov 2009 21:32:48 +0000 (22:32 +0100)]
Port t/op/reverse.t to

12 years agoAdd EXISTS and DELETE methods to
Vincent Pit [Tue, 10 Nov 2009 21:29:07 +0000 (22:29 +0100)]
Add EXISTS and DELETE methods to

12 years agoFactor the "is this an in-place array operator construct" logic into a new is_inplace...
Vincent Pit [Tue, 10 Nov 2009 16:38:43 +0000 (17:38 +0100)]
Factor the "is this an in-place array operator construct" logic into a new is_inplace_av()

12 years agoAdd mingw64 support
Sisyphus [Tue, 10 Nov 2009 03:56:14 +0000 (22:56 -0500)]
Add mingw64 support


Using the attached patch to the blead source (as of a few hours ago), I can
build perl with the following OS/compiler/make combos.

On 32-bit XP:
MSVC++ 7.0 / dmake (uses win32/
MSVC++ 7.0 / nmake (uses win32/Makefile)
Borland C++ 5.5.1 / dmake's gcc-4.3.0 / dmake's gcc-3.4.5 / dmake
mingw-w64.sf's 32-bit gcc-4.4.3 / dmake

(There's a bug with that last compiler on XP.
The perl it builds on XP hangs on XP, but runs ok if copied across to Vista.
I think this is unrelated to the patches - probably even unrelated to perl.
Without these patches perl will not even build using that last compiler.)

On 64-bit Vista:
32-bit MSVC++ 7.0 / nmake (uses win32/Makefile)
32-bit MSVC++ 7.0 / dmake (uses win32/
32-bit Borland C++ 5.5.1 / dmake's 32-bit gcc-4.4.0 / dmake's 32-bit gcc-3.4.5 / dmake
mingw-w64.sf's 32-bit gcc-4.4.3 / dmake
mingw-w64.sf's 64-bit gcc-4.4.3 / dmake
mingw-w64.sf's 64-bit x86_64-w64-mingw32-gcc-4.4.3 / dmake
64-bit MicrosoftPlatform SDK for Windows Server 2003 R2 / dmake (uses
64-bit MicrosoftPlatform SDK for Windows Server 2003 R2 / nmake (uses

Not all of those builds pass all tests - but where the removal of the
patches still permits perl to build, the same tests still fail. That is,
*nothing* is lost by including these patches - but there are significant

Each of the above builds was done according to the normal win32
configuration parameters - ie multi-threaded, non debug. No unusual config
settings were applied. (I did build one debug perl on Vista using
mingw-w64.sf's 32-bit gcc-4.4.3 and it built fine.)

Please feel free to apply these patches (with or without modification) -
and, yes, you're more than welcome to blame me if they cause any breakages

Of course, some of those compilers (Borland, Microsoft, and the compilers
from already build perl *without* having to apply any patches.
It's just the other compilers that need the patches. The purpose of testing
with Borland, Microsoft, and the compilers is just to check that
these patches don't break them.

As a final check, I've done a build on my aging linux (mandrake-9.1) box,
gcc-3.2.2. I built with '-des -Duselongdouble -Duse64bitint -Dusedevel'. No
problem with that, either.

If there's additional testing requirements please let me know, and I'll try
to oblige.

I believe the patch applied successfully for me - see below my sig for the


Rob@desktop2 ~/GIT/blead
$ patch -p0 <blead_diff.diff
patching file dist/threads/threads.xs
patching file handy.h
patching file cpan/ExtUtils-MakeMaker/lib/ExtUtils/
patching file op.c
Hunk #1 succeeded at 5774 (offset 47 lines).
patching file pp_pack.c
patching file util.c
Hunk #1 succeeded at 5366 (offset -28 lines).
patching file win32/
patching file win32/perlhost.h
patching file win32/win32.c
patching file win32/win32.h
patching file README.win32
patching file XSUB.h

12 years agoAdd length and flags arguments to Perl_pad_add_name().
Nicholas Clark [Sun, 8 Nov 2009 23:10:37 +0000 (23:10 +0000)]
Add length and flags arguments to Perl_pad_add_name().

Currently only pad_add_STATE and pad_add_FAKE are used. The length is cross-
checked against strlen() on the pointer, but the intent is to re-work the entire
pad API to be UTF-8 aware, from the current situation of char * pointers only.

12 years agoAdd length and flags arguments to Perl_pad_check_dup().
Nicholas Clark [Sun, 8 Nov 2009 22:23:07 +0000 (22:23 +0000)]
Add length and flags arguments to Perl_pad_check_dup().

Currently only pad_add_OUR is used. The length is cross-checked against
strlen() on the pointer, but the intent is to re-work the entire pad API to
be UTF-8 aware, from the current situation of char * pointers only.

12 years agoAdd length and flags arguments to Perl_allocmy().
Nicholas Clark [Sun, 8 Nov 2009 10:18:02 +0000 (10:18 +0000)]
Add length and flags arguments to Perl_allocmy().

Currently no flags bits are used, and the length is cross-checked against
strlen() on the pointer, but the intent is to re-work the entire pad API to
be UTF-8 aware, from the current situation of char * pointers only.

12 years agoFix warnings from win32 gcc compilers
Sisyphus [Mon, 9 Nov 2009 16:08:47 +0000 (11:08 -0500)]
Fix warnings from win32 gcc compilers

12 years agoMore cleanup of utfebcdic.h and utf8.h
karl williamson [Mon, 9 Nov 2009 15:42:17 +0000 (08:42 -0700)]
More cleanup of utfebcdic.h and utf8.h

Attached is a patch that removes from utfebcdic.h most definitions that
are common to it and utf8.h, and moves them to the common area of
utf8.h.  The duplicate ones that are retained are each an integral part
of a larger related set that do differ between the headers.

Some of the definitions had started to drift, so this brings them back
into line, with a lowered possibility of future drift.  In particular
the ones for the 'lazy' macros did not do quite as intended, especially
in the EBCDIC case.  The bugs were a small performance hit only, in that
the macro was not quite as lazy as expected, and so loaded
possibly unnecessarily.  In examining these, I noted that the utf8.h
definition of the start byte of a utf8 encoded string accepts invalid
start bytes 0xC0 and 0xC1.  These are invalid because they are for
overlong encodings of ASCII code points.  One is not supposed to allow
these, and there have been security attacks, according to Wikipedia,
against code that does.  But I don't know all the ramifications for Perl
of changing to exclude these, so I left it alone, but added a comment
(and an item on my personal todo list to check into it).

I made some comment clarifications, and removed some definitions marked
as obsolete in utf8.h that are in fact no longer used.

I added some synonyms for existing macros that more clearly reflect the
use that I intend to put them to in future patches.

From ba581aa4db767e5531ec0c0efdea5de4e9b09921 Mon Sep 17 00:00:00 2001
From: Karl Williamson <khw@khw-desktop.(none)>
Date: Mon, 9 Nov 2009 08:38:24 -0700
Subject: [PATCH] Clean up utf headers

Signed-off-by: H.Merijn Brand <>
12 years agoperl.exp was not built in time on systems that required it (AIX, ...)
H.Merijn Brand [Mon, 9 Nov 2009 15:24:24 +0000 (16:24 +0100)]
perl.exp was not built in time on systems that required it (AIX, ...)
and it always needed that, but re-ordering of targets has exposed that

12 years agoIn Perl_pad_check_dup(), use sv rather than name for diagnostics.
Nicholas Clark [Mon, 9 Nov 2009 15:08:53 +0000 (15:08 +0000)]
In Perl_pad_check_dup(), use sv rather than name for diagnostics.

It already knows its length, and it will be UTF-8 clean in the future.

12 years agoMANIFEST was missing two files
Jesse Vincent [Mon, 9 Nov 2009 14:55:45 +0000 (09:55 -0500)]
MANIFEST was missing two files

12 years agoUpdate IPC::Cmd to cpan version 0.51_01
Chris Williams [Sun, 8 Nov 2009 23:27:37 +0000 (23:27 +0000)]
Update IPC::Cmd to cpan version 0.51_01

  Changes for 0.51_01 Sun Nov  8 22:36:33 GMT 2009
  * Apply patch from Petya Kohts, RT #50398, which adds

12 years agoTweak the GV downgrading of f7461760 to avoid free or nearly freed GVs.
Nicholas Clark [Sun, 8 Nov 2009 22:04:10 +0000 (22:04 +0000)]
Tweak the GV downgrading of f7461760 to avoid free or nearly freed GVs.

It's possible during global destruction that the GV is freed before the
optree. Whilst the SvREFCNT_inc is happy to bump from 0 to 1 on a freed SV,
the corresponding SvREFCNT_dec from 1 to 0 will trigger an assertion
failure, because the entry to sv_clear checks that the scalar is not already
freed.  A check of for !SvIS_FREED(gv) turns out to be invalid, because
during global destruction the reference count can be forced down to zero
(with SVf_BREAK set).  In which case raising to 1 and then dropping to 0
triggers cleanup before it should happen.  I *think* that this might
actually be a general, systematic, weakness of the whole idea of SVf_BREAK,
in that code *is* allowed to raise and lower references during global
destruction, so any *valid* code that happens to do this during global
destruction might well trigger premature cleanup.

12 years agoSvREFCNT_inc already checks if the SV is non-NULL
Vincent Pit [Sun, 8 Nov 2009 15:13:22 +0000 (16:13 +0100)]
SvREFCNT_inc already checks if the SV is non-NULL

12 years agoSvREFCNT_dec already checks if the SV is non-NULL (continued)
Vincent Pit [Sun, 8 Nov 2009 14:48:07 +0000 (15:48 +0100)]
SvREFCNT_dec already checks if the SV is non-NULL (continued)

12 years ago'use strict' and 'use warnings' in test generated by h2xs
Harmen [Thu, 5 Nov 2009 22:09:13 +0000 (23:09 +0100)]
'use strict' and 'use warnings' in test generated by h2xs

12 years agoBareword sub lookups
Zefram [Sun, 8 Nov 2009 14:03:45 +0000 (15:03 +0100)]
Bareword sub lookups

Attached is a patch that changes how the tokeniser looks up subroutines,
when they're referenced by a bareword, for prototype and const-sub
purposes.  Formerly, it has looked up bareword subs directly in the
package, which is contrary to the way the generated op tree looks up
the sub, via an rv2cv op.  The patch makes the tokeniser generate the
rv2cv op earlier, and dig around in that.

The motivation for this is to allow modules to hook the rv2cv op
creation, to affect the name->subroutine lookup process.  Currently,
such hooking affects op execution as intended, but everything goes wrong
with a bareword ref where the tokeniser looks at some unrelated CV,
or a blank space, in the package.  With the patch in place, an rv2cv
hook correctly affects the tokeniser and therefore the prototype-based
aspects of parsing.

The patch also changes ck_subr (which applies the argument context and
checking parts of prototype behaviour) to handle subs referenced by an
RV const op inside the rv2cv, where formerly it would only handle a gv
op inside the rv2cv.  This is to support the most likely kind of
modified rv2cv op.

The attached patch is the resulting revised version of the bareword
sub patch.  It incorporates the original patch (allowing rv2cv op
hookers to control prototype processing), the GV-downgrading addition,
and a mention in perldelta.

12 years agoMake my_exit behave the same as the Perl exit. And add tests for it
Gerard Goossen [Wed, 4 Nov 2009 11:36:30 +0000 (12:36 +0100)]
Make my_exit behave the same as the Perl exit. And add tests for it

Rationale: This makes the behaviour of my_exit consistent, so it no
longer depends on whether a subroutine was called using call_sv or as a
normal using an entersub op. Previously, the exit code was sometimes
converted to an exception.

12 years agoAdd assertions about there being no leftover scopes when enter perl_destruct.
Gerard Goossen [Mon, 2 Nov 2009 15:27:42 +0000 (16:27 +0100)]
Add assertions about there being no leftover scopes when enter perl_destruct.

12 years agopad_findmy APIification
Zefram [Sun, 8 Nov 2009 13:25:38 +0000 (14:25 +0100)]
pad_findmy APIification

Since Nicholas made pad_findmy() part of the public API
(f8f98e0a8bdbde83a9cdc3573d818f69d0a64c78), here's a consequential
change to XS::APItest::KeywordRPN.

12 years agoCorrectly document export of I18N::Langinfo
Kevin Ryde [Sun, 8 Nov 2009 11:36:03 +0000 (12:36 +0100)]
Correctly document export of I18N::Langinfo

[perl #70303] I18N::Langinfo docs "nothing exported"

12 years agoMerge branch 'blead' of ssh:// into blead
Steffen Mueller [Sun, 8 Nov 2009 11:36:15 +0000 (12:36 +0100)]
Merge branch 'blead' of ssh:// into blead

12 years agos/AvLEN/AvMAX/ in perlguts
Eric Brine [Sun, 8 Nov 2009 04:53:38 +0000 (20:53 -0800)]
s/AvLEN/AvMAX/ in perlguts

12 years agos/AvLEN/AvMAX/ in perlguts
Eric Brine [Sun, 8 Nov 2009 04:53:38 +0000 (20:53 -0800)]
s/AvLEN/AvMAX/ in perlguts

12 years agoDefine specially handled chars; and clean-up ebcdic vs unicode
Karl Williamson [Sun, 8 Nov 2009 00:36:55 +0000 (17:36 -0700)]
Define specially handled chars; and clean-up ebcdic vs unicode

12 years agoAdd mingw-w64 non-crosscompiling config files
David Golden [Sun, 8 Nov 2009 03:02:41 +0000 (22:02 -0500)]
Add mingw-w64 non-crosscompiling config files

Files provided by Sisyphus with this comment: "Attached are the 2
addtional files that we need in the win32 folder. (I did a dos2unix on
them so, hopefully the line endings will be right.) These files are
needed to accommodate the particular 64-bit mingw compiler that
Strawberry Perl will be using. They'll actually be used as the default
64-bit mingw templates."

12 years agoSkip some Pod::Simple tests on VMS that think case is always preserved.
Craig A. Berry [Sat, 7 Nov 2009 04:13:22 +0000 (22:13 -0600)]
Skip some Pod::Simple tests on VMS that think case is always preserved.

Already in the upstream queue at:

12 years agonote that release engineers need to make sure graham is aware of them
Jesse Vincent [Sat, 7 Nov 2009 20:01:41 +0000 (15:01 -0500)]
note that release engineers need to make sure graham is aware of them

12 years agoAdd length and flags arguments to Perl_pad_findmy(), moving it to the public API.
Nicholas Clark [Sat, 7 Nov 2009 13:37:12 +0000 (13:37 +0000)]
Add length and flags arguments to Perl_pad_findmy(), moving it to the public API.

Currently no flags bits are used, and the length is cross-checked against
strlen() on the pointer, but the intent is to re-work the entire pad API to be
UTF-8 aware, from the current situation of char * pointers only.

12 years agoPlacate a warning from Borland's compiler.
Nicholas Clark [Sat, 7 Nov 2009 11:11:27 +0000 (11:11 +0000)]
Placate a warning from Borland's compiler.

12 years agoMerge commit 'origin/blead' into blead
Steve Hay [Sat, 7 Nov 2009 15:03:56 +0000 (15:03 +0000)]
Merge commit 'origin/blead' into blead

12 years agoAvoid circularity in $(LIBBASEFILES) definition in Win32 dmake makefile
Steve Hay [Sat, 7 Nov 2009 14:51:44 +0000 (14:51 +0000)]
Avoid circularity in $(LIBBASEFILES) definition in Win32 dmake makefile

12 years agoC++ fail with KeywordRPN
Zefram [Sat, 7 Nov 2009 13:02:33 +0000 (13:02 +0000)]
C++ fail with KeywordRPN

A smoke using g++ has revealed:

>KeywordRPN.c: In function 'void XS_XS__APItest__KeywordRPN_import(CV*)':
>KeywordRPN.c:320: error: expected unqualified-id before 'class'
>KeywordRPN.c:320: error: expected initializer before 'class'
>KeywordRPN.c: In function 'void XS_XS__APItest__KeywordRPN_unimport(CV*)':
>KeywordRPN.c:357: error: expected unqualified-id before 'class'
>KeywordRPN.c:357: error: expected initializer before 'class'
>make[1]: *** [KeywordRPN.o] Error 1
>Unsuccessful make(ext/XS-APItest-KeywordRPN): code=512 at line 449.
>make: *** [lib/auto/XS/APItest/KeywordRPN/] Error 25

I used "class" as a variable name, but in C++ it's a keyword.  Patch
attached.  Someone should also add a note about C++ compatibility to


Signed-off-by: H.Merijn Brand <>
12 years agorefine Carp caller() fix and add tests
David Golden [Sat, 7 Nov 2009 04:38:27 +0000 (23:38 -0500)]
refine Carp caller() fix and add tests

12 years agoAdd to Maintainers
Rafael Garcia-Suarez [Fri, 6 Nov 2009 23:19:11 +0000 (00:19 +0100)]
Add to Maintainers