This is a live mirror of the Perl 5 development currently hosted at
11 years agodefsubs_h.PL: Use correct variable in error msg
Karl Williamson [Mon, 19 Jul 2010 23:15:51 +0000 (17:15 -0600)]
defsubs_h.PL: Use correct variable in error msg

11 years agoregexp.h: Add some comments
Karl Williamson [Mon, 19 Jul 2010 19:06:19 +0000 (13:06 -0600)]
regexp.h: Add some comments

11 years agoop.h: Fix comments in #defines that cross lines
Karl Williamson [Mon, 19 Jul 2010 18:22:16 +0000 (12:22 -0600)]
op.h: Fix comments in #defines that cross lines

It is not good form to have comments in a #define continue onto the next
line, especially not with a \ ending each continuation line.  People
preferred that the comment be placed before the #define

11 years agoMake srand() return "0 but true" for 0, for backwards compatible behaviour.
Nicholas Clark [Wed, 28 Jul 2010 10:01:51 +0000 (11:01 +0100)]
Make srand() return "0 but true" for 0, for backwards compatible behaviour.

11 years agoAdd a test for srand's return value
Rafael Garcia-Suarez [Wed, 28 Jul 2010 08:25:47 +0000 (10:25 +0200)]
Add a test for srand's return value

11 years agosrand: change to return its seed
Karl Williamson [Tue, 27 Jul 2010 14:18:25 +0000 (08:18 -0600)]
srand: change to return its seed

This commit changes srand to to return the seed instead of always
returning 1.  The motivation behind this is to allow applications to not
have to come up with their own pseudo-random generator if they want
repeatable results.

The previous return behavior has never been documented.  Note that it is
possible, but very unlikely, for the seed to end up being 0, which means
that if someone were relying on the undocumented previous behavior of
srand returning true, that in very rare instances it would return 0,
failing, and the next time they ran it, it would succeed, possibly
leading to puzzlement and very rare unexplained failures.

11 years agoremove misleading comment about CXINC; it's fine
Chip Salzenberg [Wed, 28 Jul 2010 06:42:49 +0000 (23:42 -0700)]
remove misleading comment about CXINC; it's fine

11 years agoRevert "Fix off-by-one: avoid allocating an extra context"
Chip Salzenberg [Wed, 28 Jul 2010 06:40:56 +0000 (23:40 -0700)]
Revert "Fix off-by-one: avoid allocating an extra context"
This reverts commit 395b8e2d02eadc9b0639534410c39c530bc8a33d.
The fencepost error is coming from inside the programmer!

11 years agoFix off-by-one: avoid allocating an extra context
Chip Salzenberg [Wed, 28 Jul 2010 03:45:41 +0000 (20:45 -0700)]
Fix off-by-one: avoid allocating an extra context
(patch req by Nicholas)

11 years agoBump $ExtUtils::ParseXS::VERSION to non-dev version
Florian Ragwitz [Tue, 27 Jul 2010 12:05:42 +0000 (14:05 +0200)]
Bump $ExtUtils::ParseXS::VERSION to non-dev version

It's upstream => blead now.

11 years agoMove ExtUtils::ParseXS from cpan/ to dist/
Florian Ragwitz [Tue, 27 Jul 2010 12:02:15 +0000 (14:02 +0200)]
Move ExtUtils::ParseXS from cpan/ to dist/

Both Ken and David agree with this.

11 years agoDocument in perldelta Karl's work I just merged
Rafael Garcia-Suarez [Tue, 27 Jul 2010 08:42:29 +0000 (10:42 +0200)]
Document in perldelta Karl's work I just merged

The original branch was putting this paragraph in perl5133delta.pod.

11 years agoMerge remote branch 'khwilliamson/ncharnames' into blead
Rafael Garcia-Suarez [Tue, 27 Jul 2010 08:31:34 +0000 (10:31 +0200)]
Merge remote branch 'khwilliamson/ncharnames' into blead


11 years agoChange function signature of grok_bslash_o
Karl Williamson [Sun, 25 Jul 2010 19:13:10 +0000 (13:13 -0600)]
Change function signature of grok_bslash_o

The previous return value where NULL meant OK is outside-the-norm.

11 years agoCorrect pod in numeric.c
Karl Williamson [Sun, 25 Jul 2010 17:48:05 +0000 (11:48 -0600)]
Correct pod in numeric.c

11 years agoCorrect comment in toke.c
Karl Williamson [Sun, 25 Jul 2010 17:46:45 +0000 (11:46 -0600)]
Correct comment in toke.c

11 years agoembed.fnc: correct comments
Karl Williamson [Sun, 25 Jul 2010 17:18:39 +0000 (11:18 -0600)]
embed.fnc: correct comments

11 years agoMark grok_bslash functions as intfce changeable
Karl Williamson [Sun, 25 Jul 2010 17:15:56 +0000 (11:15 -0600)]
Mark grok_bslash functions as intfce changeable

11 years agoKeep test output pretty by actually using skip_all()'s message...
George Greer [Tue, 27 Jul 2010 03:11:42 +0000 (23:11 -0400)]
Keep test output pretty by actually using skip_all()'s message...

11 years agoMSWin32's "-x" checks file extension, so it isn't useful for exec-bit.t
George Greer [Tue, 27 Jul 2010 03:02:40 +0000 (23:02 -0400)]
MSWin32's "-x" checks file extension, so it isn't useful for exec-bit.t

11 years agoAdd filename with spurious +x bit to diag in t/porting/exec-bit.t
George Greer [Tue, 27 Jul 2010 02:56:44 +0000 (22:56 -0400)]
Add filename with spurious +x bit to diag in t/porting/exec-bit.t

This is for the benefit of smoke logs where the "not ok" aren't
shown but the diag() output is.

11 years agoBump $ExtUtils::ParseXS::VERSION
Florian Ragwitz [Mon, 26 Jul 2010 20:42:37 +0000 (22:42 +0200)]
Bump $ExtUtils::ParseXS::VERSION

11 years agoMove B::Lint from cpan/ to dist/
Florian Ragwitz [Mon, 26 Jul 2010 17:20:47 +0000 (19:20 +0200)]
Move B::Lint from cpan/ to dist/

Josh confirmed that blead should be upstream.

11 years agoperldelta up to d6fa5a34
Florian Ragwitz [Mon, 26 Jul 2010 15:43:02 +0000 (17:43 +0200)]
perldelta up to d6fa5a34

11 years agoResort MANIFEST.
Nicholas Clark [Mon, 26 Jul 2010 14:35:43 +0000 (15:35 +0100)]

11 years agoRestore errno if signal handler changes it
Lubomir Rintel [Mon, 26 Jul 2010 14:05:05 +0000 (16:05 +0200)]
Restore errno if signal handler changes it

It's way too easy to forget to "local $!" in signal handlers and
changing $! when signal hits between two ops is probably never useful.

11 years agoCheck API compatibility when loading xs modules
Florian Ragwitz [Tue, 20 Jul 2010 20:58:24 +0000 (22:58 +0200)]
Check API compatibility when loading xs modules

This adds PL_apiversion, allowing the API version of a running interpreter to be
introspected. It is used in the new XS_APIVERSION_BOOTCHECK macro, which is
added to the _boot function of every XS module, to compare it against the API
version the module has been compiled against. If the versions do not match, an
exception is thrown.

This doesn't fully prevent binary incompatible extensions to be loaded. It
merely compares PERL_API_* between compile- and runtime, and does not attempt to
solve the problem of identifying binary incompatible perls with the same API
version (i.e. the same perl version configured with and without DEBUGGING).

11 years agoUpdate AUTHORS
Florian Ragwitz [Mon, 26 Jul 2010 13:47:43 +0000 (15:47 +0200)]

11 years agoMore perldelta
Florian Ragwitz [Mon, 26 Jul 2010 13:02:03 +0000 (15:02 +0200)]
More perldelta

11 years agoclarify how to enable -DPERL_USE_SAFE_PUTENV
Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 [Wed, 21 Jul 2010 08:53:50 +0000 (10:53 +0200)]
clarify how to enable -DPERL_USE_SAFE_PUTENV

11 years agoperlhack: Add -Dusedevel to gcov Configure line
Ævar Arnfjörð Bjarmason) (via RT [Sun, 25 Jul 2010 13:13:11 +0000 (06:13 -0700)]
perlhack: Add -Dusedevel to gcov Configure line

# New Ticket Created by  (Ævar Arnfjörð Bjarmason)
# Please include the string:  [perl #76710]
# in the subject line of all future correspondence about this issue.
# <URL: >

Building blead doesn't work without -Dusedevel most of the time.

11 years agogitignore: Ignore gcov files
Ævar Arnfjörð Bjarmason) (via RT [Sun, 25 Jul 2010 13:13:13 +0000 (06:13 -0700)]
gitignore: Ignore gcov files

# New Ticket Created by  (Ævar Arnfjörð Bjarmason)
# Please include the string:  [perl #76712]
# in the subject line of all future correspondence about this issue.
# <URL: >

Ignore the gcov files that are generated when following "GCC gcov
Profiling" in perlhack.

11 years agoUpdated Archive-Tar to CPAN version 1.66
Chris 'BinGOs' Williams [Mon, 26 Jul 2010 09:59:37 +0000 (10:59 +0100)]
Updated Archive-Tar to CPAN version 1.66


  * important changes in version 1.66 26/07/2010
  - Applied a patch from Alexandr Ciornii [RT#59699] to Makefile.PL which produces better META.yml
  - Apply a patch from Alexandr Ciornii to ptar [RT#59700]:

    Adds option -C to allow archives created with ptar to be uploaded to
    PAUSE in case of Windows or world +w permissions on unix.

11 years agoAdd ext/XS-APItest/t/peep.t to MANIFEST
Florian Ragwitz [Mon, 26 Jul 2010 09:36:32 +0000 (11:36 +0200)]
Add ext/XS-APItest/t/peep.t to MANIFEST

11 years agoRT#75762: In CURLYX->CURLYM optimization, check before removing parentheses.
George Greer [Sun, 4 Jul 2010 23:15:06 +0000 (19:15 -0400)]
RT#75762: In CURLYX->CURLYM optimization, check before removing parentheses.

11 years ago[perl #75656] lvalue subs don't copy on write
Father Chrysostomos [Mon, 26 Jul 2010 08:52:48 +0000 (10:52 +0200)]
[perl #75656] lvalue subs don't copy on write

The attached patch teaches pp_leavesublv about kine.

For the record, a binary search points its digit at:

From: Nicholas Clark <>
Date: Mon, 6 Jun 2005 09:08:45 +0000 (+0000)
Subject: Shared hash key scalars can be safely copied as shared hash key scalars

Shared hash key scalars can be safely copied as shared hash key scalars all the time.

11 years agoFix for RT#1804: Anonymous glob breaks when assigned through
Father Chrysostomos [Sat, 10 Jul 2010 19:09:51 +0000 (15:09 -0400)]
Fix for RT#1804: Anonymous glob breaks when assigned through

The problem here is that globs are scalars and the = operator can only
distinguish between scalar and glob assignments by the flags on the
glob. It only sees the return value of *{}, not the *{} itself. We can
fix this by having the pp_sassign look for a rv2gv (*{}) on its LHS,
to decide what type of assignment to do.

11 years agoMake the success and failure messages of t/porting/diag.t more clear, and add comments
James Mastros [Thu, 8 Jul 2010 21:07:48 +0000 (22:07 +0100)]
Make the success and failure messages of t/porting/diag.t more clear, and add comments

11 years agoRemove "at - line 3" from the end of a perldiag entry.
James Mastros [Thu, 8 Jul 2010 20:41:27 +0000 (21:41 +0100)]
Remove "at - line 3" from the end of a perldiag entry.

11 years agoDocument "Ambiguous use of -%s resolved as -&%s()"
James Mastros [Wed, 2 Jun 2010 17:32:19 +0000 (18:32 +0100)]
Document "Ambiguous use of -%s resolved as -&%s()"

11 years agoDocument "Ambiguous use of %c{%s%s} resolved to %c%s%s"
James Mastros [Wed, 2 Jun 2010 17:27:48 +0000 (18:27 +0100)]
Document "Ambiguous use of %c{%s%s} resolved to %c%s%s"

11 years agoDocument "Ambiguous use of %c{%s} resolved to %c%s"
James Mastros [Wed, 2 Jun 2010 16:44:45 +0000 (17:44 +0100)]
Document "Ambiguous use of %c{%s} resolved to %c%s"

11 years agoDocument "Ambiguous use of %c resolved as operator %c"
James Mastros [Wed, 2 Jun 2010 16:35:22 +0000 (17:35 +0100)]
Document "Ambiguous use of %c resolved as operator %c"

11 years agoStick a comment in t/porting/diag.t begging people not to abuse the ignore list
James Mastros [Wed, 2 Jun 2010 16:22:59 +0000 (17:22 +0100)]
Stick a comment in t/porting/diag.t begging people not to abuse the ignore list

11 years agoNormalize formatting of "Ambiguous call resolved as CORE::%s(), qualify as such or...
James Mastros [Wed, 2 Jun 2010 16:22:36 +0000 (17:22 +0100)]
Normalize formatting of "Ambiguous call resolved as CORE::%s(), qualify as such or use &" in toke.c, so t/porting/diag.t can find it.

11 years agoperlop.pod: Reword escapes that have ordinals
Karl Williamson [Mon, 26 Jul 2010 07:59:02 +0000 (09:59 +0200)]
perlop.pod: Reword escapes that have ordinals

11 years Silence perl compiler warnings
Karl Williamson [Sat, 24 Jul 2010 16:46:45 +0000 (10:46 -0600)] Silence perl compiler warnings was trying to read two beyond the end of an array.

11 years agoadd print.t with testing of implicit printing of $_
Gerard Goossen [Thu, 19 Nov 2009 10:21:52 +0000 (11:21 +0100)]
add print.t with testing of implicit printing of $_

11 years agoAdd more advantages of a perl.def file.
Reini Urban [Sat, 24 Jul 2010 13:26:52 +0000 (15:26 +0200)]
Add more advantages of a perl.def file.

11 years agoUnbreak cherrymaint for actions other than vote
Florian Ragwitz [Sun, 25 Jul 2010 18:33:12 +0000 (20:33 +0200)]
Unbreak cherrymaint for actions other than vote

11 years agoMake address for Porting/cherrymaint configurable
Florian Ragwitz [Sun, 25 Jul 2010 18:23:38 +0000 (20:23 +0200)]
Make address for Porting/cherrymaint configurable

Still defaults to localhost:3000, but can now be overwritten on the cli and with
`git config cherrymaint.address host:port'.

11 years agoPod formatting fix for perl5132delta
Florian Ragwitz [Sun, 25 Jul 2010 17:49:00 +0000 (19:49 +0200)]
Pod formatting fix for perl5132delta

11 years agoperldelta up to 65bfe90c
Florian Ragwitz [Sun, 25 Jul 2010 17:03:29 +0000 (19:03 +0200)]
perldelta up to 65bfe90c

11 years agoMake the peep recurse via PL_peepp
Florian Ragwitz [Fri, 23 Jul 2010 06:38:13 +0000 (08:38 +0200)]
Make the peep recurse via PL_peepp

Also allows extensions, when delegating to Perl_peep, to specify what function
it should use when recursing into a part of the op tree.

The usecase for this are extensions like namespace::alias, which need to hook
into the peep to do their thing. With this change they can stop copying the
whole peep only to add tiny bits of new behaviour to it, allowing them to work
easier on a large variety of perls, without having to maintain one peep which
works on all of them (which is HARD!).

11 years agoperldelta up to 34edcf0c
Florian Ragwitz [Sun, 25 Jul 2010 12:37:29 +0000 (14:37 +0200)]
perldelta up to 34edcf0c

11 years agoIgnore some more test byproducts
Florian Ragwitz [Sun, 25 Jul 2010 12:30:03 +0000 (14:30 +0200)]
Ignore some more test byproducts

11 years agoUpdate B-Lint from version 1.11 to 1.12
Florian Ragwitz [Sun, 25 Jul 2010 12:01:47 +0000 (14:01 +0200)]
Update B-Lint from version 1.11 to 1.12

11 years agoPort dual-life.t to VMS.
Craig A. Berry [Sat, 24 Jul 2010 15:25:20 +0000 (10:25 -0500)]
Port dual-life.t to VMS.

The utils have a .com extension and filename case may not be

11 years agoCompress::Raw::{Bzip2,Zlib} have CPAN as upstream
Florian Ragwitz [Sat, 24 Jul 2010 15:53:53 +0000 (17:53 +0200)]
Compress::Raw::{Bzip2,Zlib} have CPAN as upstream

11 years agoperldelta up to a095c4ee
Florian Ragwitz [Sat, 24 Jul 2010 15:24:49 +0000 (17:24 +0200)]
perldelta up to a095c4ee

11 years agoUpdate for the Compress modules
Florian Ragwitz [Sat, 24 Jul 2010 14:55:58 +0000 (16:55 +0200)]
Update for the Compress modules

11 years agoCompress 2.030
Paul [Sat, 24 Jul 2010 12:07:29 +0000 (13:07 +0100)]
Compress 2.030

11 years agosmall code tweak in Perl_gv_init
David Mitchell [Sat, 24 Jul 2010 15:11:12 +0000 (16:11 +0100)]
small code tweak in Perl_gv_init

(follow-up to previous commit, fix for #76540)

11 years ago[perl #76540] "print CONSTANT," gives double-free
David Mitchell [Sat, 24 Jul 2010 14:41:19 +0000 (15:41 +0100)]
[perl #76540] "print CONSTANT," gives double-free

gv_init() has name and len args, but newCONSTSUB() (which it calls)
doesn't have a len arg, so any trailing garbage in name gets used by

In the test case, this means that we end up attaching the const CV
to both the "FOO" and qq{FOO, "\\n";\n} GVs. So it gets freed twice.

11 years agoSkip epigraphs.pod when bumping the version
Florian Ragwitz [Sat, 24 Jul 2010 13:35:24 +0000 (15:35 +0200)]
Skip epigraphs.pod when bumping the version

11 years agoGlobal executable bit cleanup
David Golden [Sat, 24 Jul 2010 07:44:40 +0000 (00:44 -0700)]
Global executable bit cleanup

When porting/makerel runs, all files copied into the directory for the
tarball have the executable bit stripped and then only a specific set of
files have the executable bit restored.

There are many files in the repo that have the executable bit set in the
repo that will be stripped.  So that the state of files in the repo is
as close as possible to the state of files in the release tarball, the
executable bit has been stripped from such files.

In one recent case, a file added from a dual-life module needed the
executable bit set.  Because it had the bit in the repo but was
not listed in makerel to get an executable bit, tests using it
passed in the repo and failed in the tarball.

This commit refactors the list into a new file, Porting/exec-bit.txt
and add tests to detect a mismatch between files listed there
and actual executable bits in the repo.

11 years agoMove PathTools from cpan/ to dist/
Florian Ragwitz [Sat, 24 Jul 2010 06:12:56 +0000 (08:12 +0200)]
Move PathTools from cpan/ to dist/

11 years ago[perl #76478] silence compiler warning
David Mitchell [Fri, 23 Jul 2010 22:24:11 +0000 (23:24 +0100)]
[perl #76478] silence compiler warning

Intel's icc compiler is too clever for its own good.
Silence a false positive 'may be used undefined' warning.

11 years agoClarify core module directories for UPSTREAM => undef modules
Florian Ragwitz [Fri, 23 Jul 2010 13:56:08 +0000 (15:56 +0200)]
Clarify core module directories for UPSTREAM => undef modules

11 years agoperldelta up to 2ea2ea91
Florian Ragwitz [Wed, 21 Jul 2010 02:11:45 +0000 (04:11 +0200)]
perldelta up to 2ea2ea91

11 years agoBump API subversion
Florian Ragwitz [Thu, 22 Jul 2010 15:37:21 +0000 (17:37 +0200)]
Bump API subversion

11 years agoFor blead, bump-perl-version should consider SUBVERSION as API_SUBVERSION
Florian Ragwitz [Thu, 22 Jul 2010 15:37:20 +0000 (17:37 +0200)]
For blead, bump-perl-version should consider SUBVERSION as API_SUBVERSION

This makes the API version of a blead release equivalent to its full version
number. For example, for 5.13.3, the API version was 5.13.0 before, and is
5.13.0 now.

This does not change anything for stable releases. The API version of 5.14.1
will still be 5.14.0.

Blead releases don't guarantee API stability. While they don't introduce API
breakage on every release, they do so often enough to want to err on the safe
side instead of making false claims in PERL_API_*.

11 years agoFix POD formatting in perlrepository.pod
Florian Ragwitz [Fri, 23 Jul 2010 02:46:13 +0000 (04:46 +0200)]
Fix POD formatting in perlrepository.pod

=for is just for one paragraph, not until the next command or anything like

11 years agoBump the version of Module-CoreList in
Chris 'BinGOs' Williams [Fri, 23 Jul 2010 08:58:02 +0000 (09:58 +0100)]
Bump the version of Module-CoreList in

11 years agoIgnore *.i
Florian Ragwitz [Fri, 23 Jul 2010 08:53:06 +0000 (10:53 +0200)]
Ignore *.i

These files are generated, upon request, by the macro expansion targets.

11 years agoBump File::Spec version.
Craig A. Berry [Fri, 23 Jul 2010 00:18:20 +0000 (19:18 -0500)]
Bump File::Spec version.

11 years agoAssorted File::Spec::VMS fixes.
Craig A. Berry [Thu, 22 Jul 2010 23:32:01 +0000 (18:32 -0500)]
Assorted File::Spec::VMS fixes.

  - Make catpath return an empty directory rather than the current
    directory if the directory name is empty.  This allows catpath
    to play nice with non-rooted logical names, as in

       catpath('sys$login:', '', '');

  - Fix abs2rel bug in handling a Unix-style input.

  - Assorted clarification and simplification of the documentation.

Also submitted upstream at:


11 years agoColon delimiter and escaped delimiters for File::Spec::VMS.
Craig A. Berry [Thu, 22 Jul 2010 20:31:02 +0000 (15:31 -0500)]
Colon delimiter and escaped delimiters for File::Spec::VMS.

Still awaiting upstream integration after 15 months at:


11 years agoUpdate debugger changelog
Josh ben Jore [Thu, 22 Jul 2010 16:46:03 +0000 (09:46 -0700)]
Update debugger changelog

11 years agoDebugger prints lines to the remote port when it forks and openes a new port
Josh ben Jore [Thu, 22 Jul 2010 16:42:00 +0000 (09:42 -0700)]
Debugger prints lines to the remote port when it forks and openes a new port

11 years agoAdd static inline config variables to VMS
Andy Dougherty [Thu, 22 Jul 2010 16:20:14 +0000 (12:20 -0400)]
Add static inline config variables to VMS
This assumes all VMS compilers that build perl will
support 'static inline'.

11 years agoUpdate "canned" files for static inline.
Andy Dougherty [Thu, 22 Jul 2010 16:00:51 +0000 (12:00 -0400)]
Update "canned" files for static inline.
Unless the file explicitly lists a gcc version I know
to work, I picked safe default values for the new
d_static_inline and perl_static_inline variables.

11 years agoAdd a Configure probe for static inline.
Andy Dougherty [Thu, 22 Jul 2010 15:14:47 +0000 (11:14 -0400)]
Add a Configure probe for static inline.

This patch enables Configure to probe for C99-style 'static inline'.
(That is, functions may be inlined, but will not be externally visible.)
The initial idea is that some common code in messy macros inside headers
might be simplified using inline functions.  If the compiler does not
support 'static inline', then a plain 'static' is used instead, along
with the consequent implications of a function call (though the compiler
may optimize away the function call and inline the function anyway).
In either case, you simply use  PERL_STATIC_INLINE.

This patch does not *use* this facility at all yet.  It is merely a
Configure patch to make the facility availble for others to experiment

VMS and Windows files will still need to be manually updated.

Finally, before actually converting anything to inline functions, please
try to carefully evaluate the performance implications of any proposed
changes.  Compilers vary in what they will and will not convert to inline
functions, so it's worth proceeding slowly and carefully.

This patch results from a single new metaconfig unit, d_static_inline.U,
which I will separately upload to the metaconfig repository.

11 years agoLooser filename matching for new Carp.t tests.
Craig A. Berry [Thu, 22 Jul 2010 13:27:40 +0000 (08:27 -0500)]
Looser filename matching for new Carp.t tests.

11 years agoFix leaks in XS_VERSION_BOOTCHECK
Florian Ragwitz [Thu, 22 Jul 2010 04:27:04 +0000 (06:27 +0200)]

The SV holding XS_VERSION, and the version object created from it were
leaked. Also, if the version from perl space wasn't a version object already,
the one that got created leaked.

Additionally, in case of an error, the two SVs returned by vstringify were

11 years agoIn Carp, if @DB::args still contains our sentinel, reset it.
Nicholas Clark [Thu, 22 Jul 2010 08:44:27 +0000 (09:44 +0100)]
In Carp, if @DB::args still contains our sentinel, reset it.

This ensures that nothing outside our routine can unintentionally get the
address of our sentinel.

11 years agoGet rid of PERL_POLLUTE
Jan Dubois [Thu, 22 Jul 2010 01:28:33 +0000 (18:28 -0700)]

PERL_POLLUTE was added (but undefined by default) in 5.6 to optionally
expose older 5.005 symbols for backwards compatibility.  It's use was
always discouraged, and MakeMaker contains a more specific escape hatch:

    perl Makefile.PL POLLUTE=1

This can be used for modules that have not been upgraded to 5.6 naming
conventions (and really should be completely obsolete by now).

11 years agoDon't pretend to support really old VC++ compilers
Jan Dubois [Thu, 22 Jul 2010 01:15:54 +0000 (18:15 -0700)]
Don't pretend to support really old VC++ compilers

The oldest supported Visual C++ compiler is VC6 (released in 1998),
and we already jump through some hoops for it by inlining newer
API definitions in win32/win32.c.  It is desirable to keep supporting
VC6 because it is the last MSVC release that links against MSVCRT.dll
and not against a compiler specific runtime library.

11 years agoGet rid of obsolete PerlCRT.dll support
Jan Dubois [Thu, 22 Jul 2010 01:00:07 +0000 (18:00 -0700)]
Get rid of obsolete PerlCRT.dll support

PerlCRT.dll was a patched version of MSVCRT.dll that fixed/worked
around a few known issues with Microsoft's C runtime library.
These issues have long been fixed by updates to MSVCRT.dll, and
AFAIK nobody has used PerlCRT.dll in almost 10 years now.

11 years agoAdd CCTYPE value for Windows Server 2003 SP1 compilers
Jan Dubois [Thu, 22 Jul 2010 00:46:00 +0000 (17:46 -0700)]
Add CCTYPE value for Windows Server 2003 SP1 compilers

The SDK2003SP1 compiler is special because it needs to link in
an additional bufferoverflow.obj file, which does not exist for
the other 64-bit MSVC compilers.  This change un-breaks the
Makefle for all these other compilers (e.g. VS2008).

11 years agoRemove deprecated -Wp64 compiler option
Jan Dubois [Thu, 22 Jul 2010 00:21:05 +0000 (17:21 -0700)]
Remove deprecated -Wp64 compiler option

The option seems to have been cargo-culted, as it is not
relevant to the Perl sources, and would really be useful
for 32-bit compiles only anyways (it detects certain
potential 64-bit compatibility issues in 32-bit compiles;
the 64-bit compilers always report these issues by default).

11 years agoIn Carp, if B is loaded use it to get the name of the bad caller override.
Nicholas Clark [Wed, 21 Jul 2010 19:54:39 +0000 (20:54 +0100)]
In Carp, if B is loaded use it to get the name of the bad caller override.

11 years agoDetect incomplete caller overrides in Carp, and avoid using bogus @DB::args.
Nicholas Clark [Wed, 21 Jul 2010 19:17:47 +0000 (20:17 +0100)]
Detect incomplete caller overrides in Carp, and avoid using bogus @DB::args.

To get arguments into its backtraces, Carp relies on caller setting @DB::args
when called from package DB. @DB::args isn't refcounted (and can't be). Not
all overriders of &CORE::GLOBAL::caller set @DB::args properly, with the result
that @DB::arg can become "stale", with strange errors, at a distance.

However, it is possible to detect that @DB::args has not been updated, and take
evasive action. This is preferable to presenting the user (or logfile) with
silently wrong backtraces, and much preferable to the occasional "Bizarre copy"

11 years agoFix error in 5b235299a82969c3, which gcc didn't spot, but g++ did.
Nicholas Clark [Wed, 21 Jul 2010 14:00:03 +0000 (15:00 +0100)]
Fix error in 5b235299a82969c3, which gcc didn't spot, but g++ did.

C, of course, is happy enough without a function prototype.

11 years agoIn Carp, minimise the amount of code running in package DB.
Nicholas Clark [Wed, 21 Jul 2010 12:56:53 +0000 (13:56 +0100)]
In Carp, minimise the amount of code running in package DB.

Use a block to limit it to just the invocation of caller.

11 years agoAdd Perl_init_dbargs(), to set up @DB::args without losing SV references.
Nicholas Clark [Wed, 21 Jul 2010 12:41:44 +0000 (13:41 +0100)]
Add Perl_init_dbargs(), to set up @DB::args without losing SV references.

11 years agoC++ compiler fix for util.c
George Greer [Wed, 21 Jul 2010 08:11:51 +0000 (10:11 +0200)]
C++ compiler fix for util.c

Even with all of the changes, we still die on a strchr() call now
because glibc provides "correct" strchr prototypes rather than the
C ones.

  char *strchr(const char *s, int c)
  const char *strchr(const char *s, int c)
  char *strchr(      char *s, int c)

and of course C++ doesn't let you convert a 'const char *' to a
'char *' so boom on util.c:3972 in Perl_grok_bslash_o (due to 'e').

11 years agoalarm() on Windows cannot interrupt blocking I/O
Jan Dubois [Wed, 21 Jul 2010 01:48:59 +0000 (18:48 -0700)]
alarm() on Windows cannot interrupt blocking I/O

11 years agoRemove spurious ')'
Jan Dubois [Wed, 21 Jul 2010 00:57:21 +0000 (17:57 -0700)]
Remove spurious ')'

11 years agoUse .\ instead of ./ on Windows
Jan Dubois [Wed, 21 Jul 2010 00:50:46 +0000 (17:50 -0700)]
Use .\ instead of ./ on Windows