15 years agoperltoc.pod depends on perldelta.pod.
Craig A. Berry [Sat, 25 Apr 2009 23:14:23 +0000]
perltoc.pod depends on perldelta.pod.

15 years agoMake time64 use NV for time_t, I32 for year, not Quad_t.
Craig A. Berry [Sat, 25 Apr 2009 22:51:38 +0000]
Make time64 use NV for time_t, I32 for year, not Quad_t.

This means it should run on anything that does not have a 64-bit
integer type available but does have a double.  Presumably this
includes platforms that define PERL_MICRO, so we now use the
same extended time implementation for everything that runs Perl.

15 years agomake the File::Copy permission change from 2.15 onwards (to allow for a
David Mitchell [Sat, 25 Apr 2009 19:36:19 +0000]
make the File::Copy permission change from 2.15 onwards (to allow for a
maint-5.10 2.14 release)

15 years ago[perl #56644] TODO was too severe. Only :unix :stdio were failing
David Mitchell [Sat, 25 Apr 2009 19:32:26 +0000]
[perl #56644] TODO was too severe. Only :unix :stdio were failing

15 years agoFlag that perltoc.pod should be omitted from perltoc.pod.
Nicholas Clark [Sat, 25 Apr 2009 15:29:16 +0000]
Flag that perltoc.pod should be omitted from perltoc.pod.

15 years agoClean up pod/buildtoc so it will run on VMS.
Craig A. Berry [Fri, 24 Apr 2009 17:44:29 +0000]
Clean up pod/buildtoc so it will run on VMS.

It still doesn't handle case-levelled extension names properly and
it still tries to index perltoc.pod while it has it open for write,
but at least it doesn't hang now.

15 years agoRun buildtoc on VMS.
Craig A. Berry [Fri, 24 Apr 2009 14:34:37 +0000]
Run buildtoc on VMS.

15 years agoUse %Module::CoreList::bug_tracker to print out upstream bug tracker URLs.
Nicholas Clark [Thu, 23 Apr 2009 20:39:03 +0000]
Use %Module::CoreList::bug_tracker to print out upstream bug tracker URLs.

Where the user names a module that their bug report is about, and we know the
URL for its upstream bug tracker, provide a message to the user explaining
that the core copies the CPAN version directly, and provide the URL for
reporting the bug directly to upstream.

15 years agoAdd %upstream and %bug_tracker data to Module::CoreList.
Nicholas Clark [Thu, 23 Apr 2009 20:38:19 +0000]
Add %upstream and %bug_tracker data to Module::CoreList.

15 years agoUse files_to_modules() and a CPAN mirror to map modules to bug tracker URLs.
Nicholas Clark [Thu, 23 Apr 2009 20:35:26 +0000]
Use files_to_modules() and a CPAN mirror to map modules to bug tracker URLs.

Output two hashes, ready for inclusion in Module::CoreList. %upstream maps
module names to the UPSTREAM status in Porting/Maintainers.pl. %bug_tracker
maps module names to the URL of the bug tracker, or undef if explict bug
tracker is not known for a module known to be dual life.

15 years agoBreak out the logic that maps file names to modules into files_to_modules().
Nicholas Clark [Thu, 23 Apr 2009 20:33:46 +0000]
Break out the logic that maps file names to modules into files_to_modules().

15 years agoqr_gc.t is only TODO on 5.11.x+
David Mitchell [Thu, 23 Apr 2009 17:13:08 +0000]
qr_gc.t is only TODO on 5.11.x+

15 years agoAdd an idea to perltodo
Steve Peters [Thu, 23 Apr 2009 17:13:00 +0000]
Add an idea to perltodo

15 years agoSpace between target and colon is not optional in VMS description files.
Craig A. Berry [Thu, 23 Apr 2009 01:41:08 +0000]
Space between target and colon is not optional in VMS description files.

Follow-up to 7eb47696deb9a7343fb4847f7342919a6df59e21.

15 years agoSean would like to pass on his maintainership of I18N::LangTags modules.
Nicholas Clark [Wed, 22 Apr 2009 22:07:16 +0000]
Sean would like to pass on his maintainership of I18N::LangTags modules.
For now, consider them to be maintained by p5p.

15 years ago7eb47696deb9a7343fb4847f7342919a6df59e21 should be $(ext) rather than ext.
Nicholas Clark [Tue, 21 Apr 2009 12:38:55 +0000]
7eb47696deb9a7343fb4847f7342919a6df59e21 should be $(ext) rather than ext.

15 years agoFix reference to perlvms.pod after move to new location.
Craig A. Berry [Tue, 21 Apr 2009 12:36:41 +0000]
Fix reference to perlvms.pod after move to new location.

15 years agoWe need $(MINIPERL_EXE) before we can run autodoc.pl. Remove the duplicated -I
Nicholas Clark [Tue, 21 Apr 2009 09:51:29 +0000]
We need $(MINIPERL_EXE) before we can run autodoc.pl. Remove the duplicated -I

15 years agoBuild perltoc.pod, rather than shipping it. This way it can't get out of date.
Nicholas Clark [Tue, 21 Apr 2009 09:49:10 +0000]
Build perltoc.pod, rather than shipping it. This way it can't get out of date.

15 years agoTweak corelist.pl's heuristics to cope with the renamed directoriess in ext/
Nicholas Clark [Mon, 20 Apr 2009 22:01:18 +0000]
Tweak corelist.pl's heuristics to cope with the renamed directoriess in ext/

15 years agoIn corelist.pl, refactor to avoid repeating the final output formatting string.
Nicholas Clark [Mon, 20 Apr 2009 21:32:45 +0000]
In corelist.pl, refactor to avoid repeating the final output formatting string.

15 years agoFix calling of autodoc.pl in Win32 nmake Makefile
Steve Hay [Mon, 20 Apr 2009 11:45:29 +0000]
Fix calling of autodoc.pl in Win32 nmake Makefile

Change cd09325492c136b431317b9dee7455475831ae5b broke the nmake Makefile. Presumably Max uses the dmake makefile.mk ;-)

15 years agoRemove leftover copying of perlvms.pod on Win32
Steve Hay [Mon, 20 Apr 2009 11:37:32 +0000]
Remove leftover copying of perlvms.pod on Win32

Change dd0cfdaa8f18412a5bea90a5dd33b46569dea1c5 left these two copy commands by mistake.

15 years agoClarify PERL_SYS_INIT3() usage.
Niko Tyni [Thu, 2 Apr 2009 17:54:10 +0000]
Clarify PERL_SYS_INIT3() usage.

As seen in [perl #64326] and <http://bugs.debian.org/522099>, the
PERL_SYS_INIT3() documentation in perlembed.pod could be clearer about
the macro arguments.

15 years agoMove vms/perlvms.pod to pod/ and update the Makfiles and Makefile generators.
Nicholas Clark [Mon, 20 Apr 2009 09:01:15 +0000]
Move vms/perlvms.pod to pod/ and update the Makfiles and Makefile generators.

15 years agoMake h2ph's generated preamble require-able when empty.
Craig A. Berry [Sun, 19 Apr 2009 22:08:55 +0000]
Make h2ph's generated preamble require-able when empty.

$Config{ccsymbols} and friends are currently empty on Win32 and
undefined on VMS.

15 years agoMake lib/h2ph.t use t/test.pl.
Craig A. Berry [Sun, 19 Apr 2009 21:59:47 +0000]
Make lib/h2ph.t use t/test.pl.

This gives the Perl one-liners some chance of being portable.

15 years agoIn the Makefile, no need to change into pod/ to create symlinks to READMEs etc.
Nicholas Clark [Sun, 19 Apr 2009 19:49:38 +0000]
In the Makefile, no need to change into pod/ to create symlinks to READMEs etc.

15 years agoSimpify logic in Perl_pad_free(): SvIsCOW() has the same semantics in all cases.
Nicholas Clark [Sun, 19 Apr 2009 19:05:43 +0000]
Simpify logic in Perl_pad_free(): SvIsCOW() has the same semantics in all cases.

15 years agoIn the context of PERL_OLD_COPY_ON_WRITE, remove comments about global mutexes.
Nicholas Clark [Sun, 19 Apr 2009 19:04:09 +0000]
In the context of PERL_OLD_COPY_ON_WRITE, remove comments about global mutexes.
These would only have been relevant if running under 5005 threads, which is long
dead.

15 years agoMove the symlink fo perl51110delta.pod to perldelta.pod to a top level rule.
Nicholas Clark [Sun, 19 Apr 2009 15:51:50 +0000]
Move the symlink fo perl51110delta.pod to perldelta.pod to a top level rule.
Add perldelta.pod to the generated_pods macro so that it is deleted still.

15 years agoIn buildtoc, refactor all the duplicated checking logic into a subroutine.
Nicholas Clark [Sun, 19 Apr 2009 14:58:30 +0000]
In buildtoc, refactor all the duplicated checking logic into a subroutine.

15 years agoFor Win32, add the generated files to the delete list generated by buildtoc.
Nicholas Clark [Sun, 19 Apr 2009 11:13:51 +0000]
For Win32, add the generated files to the delete list generated by buildtoc.

15 years agoFor VMS, generate the delete rules for generated and copied files in buildtoc.
Nicholas Clark [Sun, 19 Apr 2009 11:08:25 +0000]
For VMS, generate the delete rules for generated and copied files in buildtoc.

15 years agoRemove ExtUtils::MM_Haiku
Rafael Garcia-Suarez [Sat, 18 Apr 2009 21:14:10 +0000]
Remove ExtUtils::MM_Haiku

It's no longer in the official MakeMaker, and is incorporated
in MM_BeOS.

15 years agoMake autodoc.pl accept the root dir in @ARGV
Max Maischein [Sat, 18 Apr 2009 16:36:28 +0000]
Make autodoc.pl accept the root dir in @ARGV

15 years agoautodoc.pl needs -Ilib. I had been testing with a perl that was also installed.
Nicholas Clark [Sat, 18 Apr 2009 17:36:59 +0000]
autodoc.pl needs -Ilib. I had been testing with a perl that was also installed.

15 years agoHere are some patches for QNX6 against 5.10.x. Unpatched and patched
H.Merijn Brand [Sat, 18 Apr 2009 14:55:34 +0000]
Here are some patches for QNX6 against 5.10.x. Unpatched and patched
smoke reports also attached.

From: Sean Boudreau <seanb@qnx.com>
Date: Sun, 12 Apr 2009 10:18:39 -0400
Message-ID: <20090412141839.GA27971644@qnx.com>

15 years agofix trivial typo in MANIFEST
David Mitchell [Sat, 18 Apr 2009 14:39:14 +0000]
fix trivial typo in MANIFEST

15 years agoAs autodoc.pl no longer rebuilds repository files, no need to use regen_lib.pl
Nicholas Clark [Sat, 18 Apr 2009 12:21:05 +0000]
As autodoc.pl no longer rebuilds repository files, no need to use regen_lib.pl
Refactor the duplicated logic for opening, generating and closing files into
a single output() subroutine.

15 years agogrep then sort, as it's more efficient to sort a shorter list.
Nicholas Clark [Sat, 18 Apr 2009 11:26:16 +0000]
grep then sort, as it's more efficient to sort a shorter list.

15 years agoAdd a --quiet option, to suppress all the routine warnings when scanning for pod
Nicholas Clark [Sat, 18 Apr 2009 11:24:18 +0000]
Add a --quiet option, to suppress all the routine warnings when scanning for pod

15 years agoGenerate perlapi.pod and perlintern.pod at build time, instead of shipping them.
Nicholas Clark [Sat, 18 Apr 2009 11:19:57 +0000]
Generate perlapi.pod and perlintern.pod at build time, instead of shipping them.

15 years agoFix failing Time-Piece tests on Win32
Steve Hay [Fri, 17 Apr 2009 11:09:54 +0000]
Fix failing Time-Piece tests on Win32

This fix was suggested by Rob May here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-04/msg00251.html

15 years agoIn autodoc.pl, inline and hence eliminate walk_table().
Nicholas Clark [Fri, 17 Apr 2009 09:37:01 +0000]
In autodoc.pl, inline and hence eliminate walk_table().
This simplifies the code considerably, as walk_table() was relying on its &
prototype to cause the block after it to be co-erced to a passed in subroutine.

15 years agoIn autodoc.pl, remove the unused parameters and functionality from walk_table().
Nicholas Clark [Fri, 17 Apr 2009 09:15:42 +0000]
In autodoc.pl, remove the unused parameters and functionality from walk_table().
It seems that walk_table() was a direct copy from embed.pl back when autodoc.pl
was created by commit 94bdecf9800c3bee967274854f7adf2933ffd42b, and the "bonus
bits" were never refactored out.

15 years agoAdd reference to MS KB article describing leak in putenv()
Steve Hay [Fri, 17 Apr 2009 08:40:00 +0000]
Add reference to MS KB article describing leak in putenv()

Subject: Re: /ext/Time-Piece/t/02core.t
From: Rob May <rob@themayfamily.me.uk>
Date: Thu, 16 Apr 2009 10:32:53 +0100
Message-ID: <54bdc7510904160232m1ae4142dw3566bf27b4fd2818@mail.gmail.com>

15 years agoRemove last vestiges of USE_WIN32_RTL_ENV
Steve Hay [Fri, 17 Apr 2009 08:37:47 +0000]
Remove last vestiges of USE_WIN32_RTL_ENV

That was removed long ago by #8916, but some leftovers remained. See:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-04/msg00156.html

15 years agoIgnore some autogenerated makefiles
Rafael Garcia-Suarez [Thu, 16 Apr 2009 22:50:39 +0000]
Ignore some autogenerated makefiles

15 years agoAvoid loading Config, as we don't need to distinguish between NetWare and Win32.
Nicholas Clark [Thu, 16 Apr 2009 21:57:05 +0000]
Avoid loading Config, as we don't need to distinguish between NetWare and Win32.
Eliminate $Is_W32 $Is_OS2 $Is_Cygwin $Is_NetWare, and simply set $Needs_Write
directly from $^O.

As far as I can tell, these were all added in 36bb303b6ac55df9c2780b48d374c505
but never actually used for anything.

15 years agoIgnore attributes.pm in lib since it's now an XS module
Rafael Garcia-Suarez [Thu, 16 Apr 2009 22:00:43 +0000]
Ignore attributes.pm in lib since it's now an XS module

15 years agoBump VERSION of Data::Dumper
Rafael Garcia-Suarez [Thu, 16 Apr 2009 21:41:53 +0000]
Bump VERSION of Data::Dumper

15 years agoData::Dumper hash iterator needs to be reset on all hashrefs (fixes #64744)
Alex Vandiver [Wed, 15 Apr 2009 17:04:23 +0000]
Data::Dumper hash iterator needs to be reset on all hashrefs (fixes #64744)

15 years agoSquelch 'Constant subroutine ... undefined' warnings from .ph files
Niko Tyni [Tue, 14 Apr 2009 19:55:34 +0000]
Squelch 'Constant subroutine ... undefined' warnings from .ph files

As reported by Christopher Zimmermann in <http://bugs.debian.org/379757>,
code generated from simple #undef directives by h2ph can cause
'Constant subroutine ... undefined' warnings if the undefined
function was eligible for inlining.

15 years agoAdd tests to verify that h2ph output compiles and is warning free
Niko Tyni [Tue, 14 Apr 2009 19:55:33 +0000]
Add tests to verify that h2ph output compiles and is warning free

The #include directives are #ifdef'd out so that running the
resulting code does not actually need the headers. We still
get the same effect from comparing with the expected h2ph output.

15 years agoBuild bzip2 witha C++ compiler
Paul Marquess [Thu, 16 Apr 2009 08:55:53 +0000]
Build bzip2 witha C++ compiler

15 years agoUpdate CPANPLUS::Dist::Build to 0.22
Chris 'BinGOs' Williams [Thu, 16 Apr 2009 20:55:52 +0000]
Update CPANPLUS::Dist::Build to 0.22

15 years agoDocumentation Patch: perlxs.pod
Tom Hukins [Tue, 14 Apr 2009 15:21:24 +0000]
Documentation Patch: perlxs.pod

Porters,

Please find attached a small patch to the perlxstut.pod document.

The first part of the patch makes a link more precise.  The
second, more useful, part of the patch fixes some confused English
that doesn't make sense.

Thanks for your efforts,
Tom

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>

15 years agoAdd file missed in previous commit.
Steve Peters [Tue, 14 Apr 2009 05:21:05 +0000]
Add file missed in previous commit.

15 years ago[PATCH] Update CPAN.pm to 1.93_52
Andreas J. Koenig [Mon, 13 Apr 2009 21:35:16 +0000]
[PATCH] Update CPAN.pm to 1.93_52

15 years agoMerge branch 'blead' of ssh://stevep@perl5.git.perl.org/gitroot/perl into blead
Steve Peters [Mon, 13 Apr 2009 13:57:14 +0000]
Merge branch 'blead' of ssh://stevep@perl5.git.perl.org/gitroot/perl into blead

15 years agoUpgrade to CGI.pm-3.43
Steve Peters [Mon, 13 Apr 2009 13:56:36 +0000]
Upgrade to CGI.pm-3.43

15 years agoRemove an unnecessary use Config;
Nicholas Clark [Mon, 13 Apr 2009 13:38:42 +0000]
Remove an unnecessary use Config;

15 years agoRemove Makefile.PLs that make_ext.pl can automatically generate.
Nicholas Clark [Mon, 13 Apr 2009 13:37:19 +0000]
Remove Makefile.PLs that make_ext.pl can automatically generate.
(For core modules, or where the dual life module on CPAN has a Makefile.PL that
is not the same. AUTHOR is only used for the ppm target, which the core doesn't
need.)

15 years ago[PATCH] Compress-Raw-Bzip2 2.018 (was RE: Compress-Raw-Bzip2 fails for g++)
Paul Marquess [Mon, 13 Apr 2009 13:23:28 +0000]
[PATCH] Compress-Raw-Bzip2 2.018 (was RE: Compress-Raw-Bzip2 fails for g++)

15 years agoRestore prototypes to XS code in attributes, accidentally lost by change 48462a7
Nicholas Clark [Mon, 13 Apr 2009 12:09:43 +0000]
Restore prototypes to XS code in attributes, accidentally lost by change 48462a7

15 years agoTODO tests for deparsing strict, warnings as strings, and my $x if 0;
Nicholas Clark [Mon, 13 Apr 2009 11:13:19 +0000]
TODO tests for deparsing strict, warnings as strings, and my $x if 0;

15 years agoour $TODO should be local $::TODO, revealing a bug in the de-commenting regexp.
Nicholas Clark [Mon, 13 Apr 2009 10:47:15 +0000]
our $TODO should be local $::TODO, revealing a bug in the de-commenting regexp.
Remove some orphaned trailing quotes from TODO message that are no longer
conditional code.

15 years agoCorrect two other tests that apparently should be TODOs rather than SKIPs.
Nicholas Clark [Mon, 13 Apr 2009 10:22:11 +0000]
Correct two other tests that apparently should be TODOs rather than SKIPs.

15 years agoA perl-version portable fix for B coping with CVf_LOCKED being removed in 5.11.
Nicholas Clark [Mon, 13 Apr 2009 09:51:20 +0000]
A perl-version portable fix for B coping with CVf_LOCKED being removed in 5.11.

15 years agoTweak t/lib/common.pl to use test.pl's (better) tempfile() function.
Nicholas Clark [Mon, 13 Apr 2009 09:31:49 +0000]
Tweak t/lib/common.pl to use test.pl's (better) tempfile() function.

15 years agoPropagate the upgraded TODO/SKIP parser from ext/B/t/deparse.t
Nicholas Clark [Mon, 13 Apr 2009 09:26:00 +0000]
Propagate the upgraded TODO/SKIP parser from ext/B/t/deparse.t

15 years agoRefactor the SKIP parser to also handle TODOs. TODO 3 tests that were wrongly
Nicholas Clark [Mon, 13 Apr 2009 09:25:01 +0000]
Refactor the SKIP parser to also handle TODOs. TODO 3 tests that were wrongly
SKIPs.

15 years agoRemove CVf_LOCKED and CvLOCKED*(), now that nothing sets that flag bit.
Nicholas Clark [Mon, 13 Apr 2009 08:00:51 +0000]
Remove CVf_LOCKED and CvLOCKED*(), now that nothing sets that flag bit.

15 years agoGvUNIQUE* have been defined as 0 since 2005/06/30 - high time to remove them.
Nicholas Clark [Mon, 13 Apr 2009 07:43:30 +0000]
GvUNIQUE* have been defined as 0 since 2005/06/30 - high time to remove them.

15 years agoRemove a link to the attrs pragma, which has now been removed.
Nicholas Clark [Sun, 12 Apr 2009 16:23:32 +0000]
Remove a link to the attrs pragma, which has now been removed.

15 years agos/locked/lvalue/ in the examples, and remove mention of the deprecated :unique.
Nicholas Clark [Sun, 12 Apr 2009 16:06:31 +0000]
s/locked/lvalue/ in the examples, and remove mention of the deprecated :unique.
(Which was actually a dangling cross reference, as what it pointed to in
perlfunc had already been deleted.)

15 years agoDeprecate using "unique" with the attributes pragma.
Nicholas Clark [Sun, 12 Apr 2009 15:28:49 +0000]
Deprecate using "unique" with the attributes pragma.

15 years agoDeprecate using "locked" with the attributes pragma.
Nicholas Clark [Sun, 12 Apr 2009 14:50:16 +0000]
Deprecate using "locked" with the attributes pragma.

15 years agoConvert xsutils.c and lib/attributes.pm to a regular XS extension.
Nicholas Clark [Sun, 12 Apr 2009 14:05:04 +0000]
Convert xsutils.c and lib/attributes.pm to a regular XS extension.

15 years agoRemove #ifdef CVf_LVALUE/#endif - LVALUE subs aren't conditionally compiled.
Nicholas Clark [Sun, 12 Apr 2009 13:05:51 +0000]
Remove #ifdef CVf_LVALUE/#endif - LVALUE subs aren't conditionally compiled.

15 years agoDeprecate use of the attribute :locked on subroutines.
Nicholas Clark [Sun, 12 Apr 2009 11:47:27 +0000]
Deprecate use of the attribute :locked on subroutines.

15 years agoEliminate "Old Perl threads tutorial", which describes 5005 threads.
Nicholas Clark [Sun, 12 Apr 2009 09:56:37 +0000]
Eliminate "Old Perl threads tutorial", which describes 5005 threads.
pod/perlthrtut.pod is the same material reworked for ithreads.

15 years agoRebuild pod/perltoc.pod.
Nicholas Clark [Sun, 12 Apr 2009 09:47:47 +0000]
Rebuild pod/perltoc.pod.

15 years agoSort the MANIFEST.
Nicholas Clark [Sun, 12 Apr 2009 09:47:36 +0000]
Sort the MANIFEST.

15 years agoRemove attrs, which has been deprecated since 1999/10/02.
Nicholas Clark [Sun, 12 Apr 2009 09:17:24 +0000]
Remove attrs, which has been deprecated since 1999/10/02.

15 years agoUpgrade to NEXT-0.63.
Florian Ragwitz [Fri, 10 Apr 2009 15:29:05 +0000]
Upgrade to NEXT-0.63.

15 years agoDon't SEGV while warning about redefining the format STDOUT. Fixes RT #64562.
Nicholas Clark [Thu, 9 Apr 2009 18:25:37 +0000]
Don't SEGV while warning about redefining the format STDOUT. Fixes RT #64562.

15 years agoFix declaration-after-statement in ext/Socket/Socket.xs
Andy Dougherty [Thu, 9 Apr 2009 15:41:34 +0000]
Fix declaration-after-statement in ext/Socket/Socket.xs

This trivial patch lets C89-ish compilers compile Socket.c again.

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>

15 years agoUpdate CPANPLUS::Dist::Build to 0.20
Chris Williams [Thu, 9 Apr 2009 12:01:41 +0000]
Update CPANPLUS::Dist::Build to 0.20

15 years agoMerge commit 'rafl/blead' into blead
Rafael Garcia-Suarez [Thu, 9 Apr 2009 07:56:39 +0000]
Merge commit 'rafl/blead' into blead

15 years agoNet::hostent fails make test if can't resolve localhost
David Cantrell [Wed, 8 Apr 2009 12:49:14 +0000]
Net::hostent fails make test if can't resolve localhost

This happens on boxes which otherwise work Just Fine and whose resolvers
work Just Fine if they don't have /etc/hosts. This patch fixes the test
file by making it skip if localhost can't be resolved and /etc/hosts
doesn't exist.

Message-ID: <20090330205715.GA29690@bytemark.barnyard.co.uk>

15 years agoUse of freed comppad array during clear_yystack()
Marcus Holland-Moritz [Wed, 8 Apr 2009 07:49:19 +0000]
Use of freed comppad array during clear_yystack()

Message-ID: <20081026231720.34258457@r2d2>

Patch description from the original email :

I tried to make tests pass on a perl built with -DPERL_POISON,
as some tests were dying with segfaults. They all originated
from the same source: clear_yystack() after a compile error. [...]
As far as I can see, after croaking the newly
created CV is destroyed and its pad is undef'd. [...]

This will SvREFCNT_dec PL_comppad and set PL_comppad to NULL.
However, later, in clear_yystack(), when the ops are freed, the
old PL_comppad is restored by PAD_RESTORE_LOCAL, as a reference
is still in ps->comppad. But now the pad AV is already dead.

Normally (i.e. without PERL_POISON), the dead AV will have
AvARRAY(av) set to NULL by av_undef(). So PAD_RESTORE_LOCAL will
actually set PL_curpad to NULL, and thus pad_free() will not
attempt to do anything.

But with PERL_POISON, the storage for AvARRAY(av) (i.e. sv_u)
will be reused for chaining the free SV heads in the arena
(as opposed to SvANY(sv) in case of !PERL_POISON). This means
that PAD_RESTORE_LOCAL will find AvARRAY(av) non-NULL and will
set PL_curpad to that value, finally causing the segfault in
pad_free().

While I think I understand what's going on, I don't have the
slightest clue how to properly fix this. Given that it's not
a problem only under PERL_POISON, but always (as dead SV heads
are being used), I think it should ultimately be fixed.

The only thing I can offer right now is a patch to make it
work with PERL_POISON as good (or as bad) as without by
making PAD_RESTORE_LOCAL explicitly check if the pad passed
in is already dead and refusing to use it if it is.

15 years agoh2xs incorrectly treats enum values like macros
Niko Tyni [Sun, 19 Oct 2008 20:25:10 +0000]
h2xs incorrectly treats enum values like macros

Patch and description by Rainer Weikusat, forwarded from
http://bugs.debian.org/502297 :

 The h2xs program scans C headers for 'constants' either defined
 as preprocessor macros or via enum and builds a sorted list of names
 containing the macros and enum values found in this way. This list
 is then passed to ExtUtils::Constant::WriteConstants, which generates
 the corresponding const-c.inc and const-xs.inc files when perl Makefile.PL
 is executed. By default, ie when just processing a constant name, this
 function assumes that the name refers to a preprocessor macro and
 the generated C-code in const-c.inc contains conditional compilation
 directives to either return the macro value or Perl_constant_NOTDEF,
 depending on the defined'ness of the macro. This causes constants
 defined as enumeration values to never be available to module users,
 because they are not visible to the preprocessor.

 Instead of passing just a name to the WriteConstants-routine, a
 hashref (members documented in ExtUtils::Constant::Base(3perl))
 can be used to specify more details regarding what code
 should be generated for a particular constant. For an enumeration
 value, a hashref constructed as

     { name => <name of the constant>, macro => 1 }

 could be used to get rid of the inappropriate preprocessor
 directives.

( Another version of the same fix was also submitted by Daniel Burr in
  http://bugs.debian.org/320286 )

15 years agoUpgrade to NEXT-0.62.
Florian Ragwitz [Wed, 8 Apr 2009 01:37:43 +0000]
Upgrade to NEXT-0.62.

15 years agoDocs: Fixed a couple of [my] typos
Michael Witten [Tue, 7 Apr 2009 22:46:00 +0000]
Docs: Fixed a couple of [my] typos

I read through each my patches again and came across a typo,
a slight incorrectness, and a repeated word. Sorry.

Signed-off-by: Michael Witten <mfwitten@gmail.com>

15 years agoDocs: Update summary and add copyright
Michael Witten [Tue, 7 Apr 2009 19:59:32 +0000]
Docs: Update summary and add copyright

Yeah, well, I wrote some new stuff.

15 years agoDocs: Expanded treatment of adding instance variables
Michael Witten [Tue, 7 Apr 2009 19:59:31 +0000]
Docs: Expanded treatment of adding instance variables

Signed-off-by: Michael Witten <mfwitten@gmail.com>

15 years agoDocs: Clarify that a class is not an instance
Michael Witten [Tue, 7 Apr 2009 19:59:30 +0000]
Docs: Clarify that a class is not an instance

Signed-off-by: Michael Witten <mfwitten@gmail.com>

15 years agoDocs: Minor modifications to discussion of constructor
Michael Witten [Tue, 7 Apr 2009 19:59:29 +0000]
Docs: Minor modifications to discussion of constructor

Signed-off-by: Michael Witten <mfwitten@gmail.com>