Change 33922 by [EMAIL PROTECTED] on 2008/05/25 19:51:20
Integrate:
[ 33617]
Integrate:
[ 33260]
I've been maintaining Net::Ping for a while now.
[ 33295]
Make sure we only find the macro we were looking for,
not something that only starts with the same string.
[ 33303]
Jerry D. Hedden now maintains Thread::Semaphore on CPAN
[ 33352]
Subject: [patch] Porting/expand-macros.pl gets 'indent'ing
From: Jim Cromie <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Date: Thu, 07 Feb 2008 17:03:22 -0700
[ 33353]
Take advantage of the fact that we can use indent as a stdin/stdout
filter to reduce its workload (and ours) by only sending it the 3 or
so lines that we are interested in printing, not the preceding
bucket loads.
[ 33456]
Subject: checkAUTHORS.pl update for me
From: Michael G Schwern <[EMAIL PROTECTED]>
Date: Sun, 09 Mar 2008 00:35:48 +0100
Message-ID: <[EMAIL PROTECTED]>
[ 33731]
Integrate:
[ 33374]
Tidy up error messages
[ 33612]
Config.pm needs to be listed in Module::CoreList, too
[ 33646]
Run overload.pl from regen.pl, and check overload.c as well as
overload.h
[ 33711]
Subject: [perl #53000] Patch for featured TODO: make a reproducible
perlmodlib.PL
From: "James Bence" (via RT) <[EMAIL PROTECTED]>
Date: Wed, 16 Apr 2008 22:22:12 -0700
Message-ID: <[EMAIL PROTECTED]>
plus regen perlmodlib (from a clean source tree)
and remove perltodo note
[ 33879]
Integrate:
[ 33764]
Change of maintainer.
[ 33799]
Subject: Re: helping 5.8.9
From: Steffen Mueller <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Date: Sun, 04 May 2008 21:38:38 +0200
Affected files ...
... //depot/maint-5.8/perl/AUTHORS#51 integrate
... //depot/maint-5.8/perl/Porting/Maintainers.pl#40 integrate
... //depot/maint-5.8/perl/Porting/checkAUTHORS.pl#11 integrate
... //depot/maint-5.8/perl/Porting/corelist.pl#2 integrate
... //depot/maint-5.8/perl/Porting/expand-macro.pl#2 integrate
... //depot/maint-5.8/perl/pod/perlmodlib.PL#11 integrate
... //depot/maint-5.8/perl/pod/perltodo.pod#45 integrate
... //depot/maint-5.8/perl/regen.pl#5 integrate
Differences ...
==== //depot/maint-5.8/perl/AUTHORS#51 (text) ====
Index: perl/AUTHORS
--- perl/AUTHORS#50~33198~ 2008-02-02 09:34:10.000000000 -0800
+++ perl/AUTHORS 2008-05-25 12:51:20.000000000 -0700
@@ -117,6 +117,7 @@
Brooks D Boyd
Brian Callaghan <[EMAIL PROTECTED]>
Brian Clarke <[EMAIL PROTECTED]>
+brian d foy <[EMAIL PROTECTED]>
Brian Grossman
Brian Harrison <[EMAIL PROTECTED]>
Brian Ingerson <[EMAIL PROTECTED]>
@@ -233,7 +234,7 @@
David Manura <[EMAIL PROTECTED]>
David Mitchell <[EMAIL PROTECTED]>
David Muir Sharnoff <[EMAIL PROTECTED]>
-david nicol <[EMAIL PROTECTED]>
+David Nicol <[EMAIL PROTECTED]>
David R. Favor <[EMAIL PROTECTED]>
David Sparks <[EMAIL PROTECTED]>
David Starks-Browning <[EMAIL PROTECTED]>
@@ -286,6 +287,7 @@
Felix Gallo <[EMAIL PROTECTED]>
Fergal Daly <[EMAIL PROTECTED]>
Florent Guillaume
+Florian Ragwitz <[EMAIL PROTECTED]>
Frank Crawford
Frank Ridderbusch <[EMAIL PROTECTED]>
Frank Tobin <[EMAIL PROTECTED]>
==== //depot/maint-5.8/perl/Porting/Maintainers.pl#40 (text) ====
Index: perl/Porting/Maintainers.pl
--- perl/Porting/Maintainers.pl#39~33527~ 2008-03-14 03:46:20.000000000
-0700
+++ perl/Porting/Maintainers.pl 2008-05-25 12:51:20.000000000 -0700
@@ -17,7 +17,6 @@
'arandal' => 'Allison Randal <[EMAIL PROTECTED]>',
'audreyt' => 'Audrey Tang <[EMAIL PROTECTED]>',
'avar' => 'Ævar Arnfjörð Bjarmason <[EMAIL PROTECTED]>',
- 'bbb' => 'Rob Brown <[EMAIL PROTECTED]>',
'craig' => 'Craig Berry <[EMAIL PROTECTED]>',
'dankogai' => 'Dan Kogai <[EMAIL PROTECTED]>',
'dconway' => 'Damian Conway <[EMAIL PROTECTED]>',
@@ -69,12 +68,14 @@
'sburke' => 'Sean Burke <[EMAIL PROTECTED]>',
'mschwern' => 'Michael Schwern <[EMAIL PROTECTED]>',
'smccam' => 'Stephen McCamant <[EMAIL PROTECTED]>',
+ 'smpeters' => 'Steve Peters <[EMAIL PROTECTED]>',
'smueller' => 'Steffen Mueller <[EMAIL PROTECTED]>',
'tels' => 'Tels <[EMAIL PROTECTED]>',
'tomhughes' => 'Tom Hughes <[EMAIL PROTECTED]>',
'tjenness' => 'Tim Jenness <[EMAIL PROTECTED]>',
'tyemq' => 'Tye McQueen <[EMAIL PROTECTED]>',
'yves' => 'Yves Orton <[EMAIL PROTECTED]>',
+ 'zefram' => 'Andrew Main <[EMAIL PROTECTED]>',
);
# The FILES is either filenames, or glob patterns, or directory
@@ -473,7 +474,7 @@
'Math::Complex' =>
{
- 'MAINTAINER' => 'jhi',
+ 'MAINTAINER' => 'zefram',
'FILES' => q[lib/Math/Complex.pm lib/Math/Trig.pm],
'CPAN' => 1,
},
@@ -532,7 +533,7 @@
'Net::Ping' =>
{
- 'MAINTAINER' => 'bbb',
+ 'MAINTAINER' => 'smpeters',
'FILES' => q[lib/Net/Ping.pm lib/Net/Ping],
'CPAN' => 1,
},
@@ -834,7 +835,7 @@
'Time::HiRes' =>
{
- 'MAINTAINER' => 'jhi',
+ 'MAINTAINER' => 'zefram',
'FILES' => q[ext/Time/HiRes],
'CPAN' => 1,
},
==== //depot/maint-5.8/perl/Porting/checkAUTHORS.pl#11 (text) ====
Index: perl/Porting/checkAUTHORS.pl
--- perl/Porting/checkAUTHORS.pl#10~32298~ 2007-11-12 15:21:15.000000000
-0800
+++ perl/Porting/checkAUTHORS.pl 2008-05-25 12:51:20.000000000 -0700
@@ -51,6 +51,7 @@
"ammon\100rhythm.com",
"bah\100longitude.com",
"bbucklan\100jpl-devvax.jpl.nasa.gov",
+ "ben\100linuxgazette.net",
"bilbo\100ua.fm",
"bob\100starlabs.net",
"bonefish\100cs.tu-berlin.de",
@@ -66,10 +67,12 @@
"ilya\100juil.nonet",
"info\100lingo.kiev.ua",
"jms\100mathras.comcast.net",
+ "johnh\100isi.edu",
"kan\100dcit.cz",
"kaminsky\100math.huji.ac.il",
"knew-p5p\100pimb.org",
"kvr\100centrum.cz",
+ "lemkemch\100t-online.de",
"mauzo\100csv.warwick.ac.uk",
"merijnb\100ms.com",
"mlelstv\100serpens.de",
@@ -268,8 +271,10 @@
+ craig.berry\100metamorgs.com
+ craig.berry\100signaltreesolutions.com
+ craigberry\100mac.com
++ craig.a.berry\100gmail.com
davem davem\100fdgroup.com
+ davem\100iabyn.nospamdeletethisbit.com
++ davem\100iabyn.com
+ davem\100fdgroup.co.uk
+ davem\100fdisolutions.com
+ davem\100iabyn.com
@@ -320,12 +325,16 @@
+ dtr8sin02\100sneakemail.com
+ rt8363b02\100sneakemail.com
+ o6hhmk002\100sneakemail.com
++ smueller\100cpan.org
++ l2ot9pa02\100sneakemail.com
++ wyp3rlx02\100sneakemail.com
abe\100ztreet.demon.nl abeltje\100cpan.org
abigail\100abigail.be abigail\100foad.org
+ abigail\100abigail.nl
ajohnson\100nvidia.com ajohnson\100wischip.com
alexm\100netli.com alexm\100w-m.ru
+alex-p5p\100earth.li alex\100rcon.rog
alian\100cpan.org alian\100alianwebserver.com
allens\100cpan.org easmith\100beatrice.rutgers.edu
andreas.koenig\100anima.de andreas.koenig.gmwojprw\100franz.ak.mind.de
@@ -399,9 +408,8 @@
nospam-abuse\100bloodgate.com tels\100bloodgate.com
+ perl_dummy\100bloodgate.com
-nospam-abuse\100ilyaz.org ilya\100math.ohio-state.edu
-+ ilya\100math.berkeley.edu
-+ ilya\100math.berkeley.edu
+ilya\100math.berkeley.edu ilya\100math.ohio-state.edu
++ nospam-abuse\100ilyaz.org
p5-authors\100crystalflame.net perl\100crystalflame.net
+ rs\100crystalflame.net
@@ -425,17 +433,21 @@
+ richard.foley\100rfi.net
rick\100consumercontact.com rick\100bort.ca
+ rick.delaney\100rogers.com
++ rick\100bort.ca
rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org
rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu
+ rjk-perl-p5p\100tamias.net
rmgiroux\100acm.org rmgiroux\100hotmail.com
-robin.barker\100npl.co.uk rmb1\100cise.npl.co.uk
-+ rmbarker\100cpan.org
+rmbarker\100cpan.org rmb1\100cise.npl.co.uk
++ robin.barker\100npl.co.uk
rootbeer\100teleport.com rootbeer\100redcat.com
schubiger\100cpan.org steven\100accognoscere.org
+ sts\100accognoscere.org
schwern\100pobox.com schwern\100gmail.com
++ schwern\100athens.arena-i.com
++ schwern\100blackrider.aocn.com
++
schwern\100ool-18b93024.dyn.optonline.net
sebastien\100aperghis.net maddingue\100free.fr
+ saper\100cpan.org
simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk
@@ -444,7 +456,7 @@
+ simon\100cozens.net
+ simon\100netthink.co.uk
slaven\100rezic.de slaven.rezic\100berlin.de
-+ (srezic\100iconmobile.com)
++ srezic\100iconmobile.com
smcc\100mit.edu smcc\100ocf.berkeley.edu
+ smcc\100csua.berkeley.edu
spider\100orb.nashua.nh.us spider\100web.zk3.dec.com
==== //depot/maint-5.8/perl/Porting/corelist.pl#2 (text) ====
Index: perl/Porting/corelist.pl
--- perl/Porting/corelist.pl#1~32312~ 2007-11-14 10:09:03.000000000 -0800
+++ perl/Porting/corelist.pl 2008-05-25 12:51:20.000000000 -0700
@@ -36,6 +36,8 @@
$lines{sprintf "\t%-24s=> $version,\n", "'$module'"}++;
}, 'lib', 'ext', 'vms/ext', 'symbian/ext');
+-e 'configpm' and $lines{sprintf "\t%-24s=> undef,\n", "'Config'"}++;
+
if (open my $ucdv, "<", "lib/unicore/version") {
chomp (my $ucd = <$ucdv>);
$lines{sprintf "\t%-24s=> '$ucd',\n", "'Unicode'"}++;
==== //depot/maint-5.8/perl/Porting/expand-macro.pl#2 (text) ====
Index: perl/Porting/expand-macro.pl
--- perl/Porting/expand-macro.pl#1~33198~ 2008-02-02 09:34:10.000000000
-0800
+++ perl/Porting/expand-macro.pl 2008-05-25 12:51:20.000000000 -0700
@@ -1,16 +1,37 @@
#!perl -w
use strict;
+use Getopt::Std;
+
use vars qw($trysource $tryout $sentinel);
$trysource = "try.c";
$tryout = "try.i";
+getopts('fF:ekvI:', \my %opt) or usage();
+
+sub usage {
+ die<<EO_HELP;
[EMAIL PROTECTED];
+usage: $0 [options] <macro-name> [headers]
+options:
+ -f use 'indent' to format output
+ -F <tool> use <tool> to format output (instead of -f)
+ -e erase try.[ic] instead of failing when theyre present
(errdetect)
+ -k keep them after generating (for handy inspection)
+ -v verbose
+ -I <indent-opts> passed into indent
+EO_HELP
+}
+
my $macro = shift;
-die "$0 macro [headers]" unless defined $macro;
+usage "missing <macro-name>" unless defined $macro;
$sentinel = "$macro expands to";
+usage "-f and -F <tool> are exclusive\n" if $opt{f} and $opt{F};
+
foreach($trysource, $tryout) {
+ unlink $_ if $opt{e};
die "You already have a $_" if -e $_;
}
@@ -23,16 +44,20 @@
my $args = '';
+my $found_macro;
while (<>) {
- next unless /^#\s*define\s+$macro/;
+ next unless /^#\s*define\s+$macro\b/;
my ($def_args) = /^#\s*define\s+$macro\(([^)]*)\)/;
if (defined $def_args) {
my @args = split ',', $def_args;
+ print "# macro: $macro args: @args in $_\n" if $opt{v};
my $argname = "A0";
$args = '(' . join (', ', map {$argname++} [EMAIL PROTECTED]) . ')';
}
+ $found_macro++;
last;
}
+die "$macro not found\n" unless $found_macro;
open my $out, '>', $trysource or die "Can't open $trysource: $!";
@@ -45,14 +70,38 @@
close $out or die "Can't close $trysource: $!";
+print "doing: make $tryout\n" if $opt{v};
system "make $tryout" and die;
+# if user wants 'indent' formatting ..
+my $out_fh;
+
+if ($opt{f} || $opt{F}) {
+ # a: indent is a well behaved filter when given 0 arguments, reading from
+ # stdin and writing to stdout
+ # b: all our braces should be balanced, indented back to column 0, in the
+ # headers, hence everything before our #line directive can be ignored
+ #
+ # We can take advantage of this to reduce the work to indent.
+
+ my $indent_command = $opt{f} ? 'indent' : $opt{F};
+
+ if (defined $opt{I}) {
+ $indent_command .= " $opt{I}";
+ }
+ open $out_fh, '|-', $indent_command or die $?;
+} else {
+ $out_fh = \*STDOUT;
+}
+
open my $fh, '<', $tryout or die "Can't open $tryout: $!";
while (<$fh>) {
- print if /$sentinel/o .. 1;
+ print $out_fh $_ if /$sentinel/o .. 1;
}
-foreach($trysource, $tryout) {
- die "Can't unlink $_" unless unlink $_;
+unless ($opt{k}) {
+ foreach($trysource, $tryout) {
+ die "Can't unlink $_" unless unlink $_;
+ }
}
==== //depot/maint-5.8/perl/pod/perlmodlib.PL#11 (text) ====
Index: perl/pod/perlmodlib.PL
--- perl/pod/perlmodlib.PL#10~32387~ 2007-11-17 16:29:35.000000000 -0800
+++ perl/pod/perlmodlib.PL 2008-05-25 12:51:20.000000000 -0700
@@ -10,36 +10,57 @@
push @MANIFEST, 'lib/Config.pod', 'lib/Errno.pm', 'lib/lib.pm',
'lib/DynaLoader.pm', 'lib/XSLoader.pm';
--f "../lib/DynaLoader.pm" or die "Must be run from a source tree where perl
has been built\n";
+# If run in a clean source tree, these will be missing because they are
+# generated by the build.
+my %generated = (
+ 'encoding' => 'Allows you to write your script in non-ascii or non-utf8',
+ 'lib' => 'Manipulate @INC at compile time',
+ 'ops' => 'Restrict unsafe operations when compiling',
+ 'Config' => 'Access Perl configuration information',
+ 'DynaLoader' => 'Dynamically load C libraries into Perl code',
+ 'Errno' => 'System errno constants',
+ 'O' => 'Generic interface to Perl Compiler backends',
+ 'Safe' => 'Compile and execute code in restricted compartments',
+ 'XSLoader' => 'Dynamically load C libraries into Perl code',
+);
+
+# If run in a clean source tree, these should not be reported.
+# These are considered 'modules' by this script, but they really are not.
+my %suppressed = map {$_ => 1} qw(
+ B::O
+ Encode::encoding
+ Opcode::Safe
+ Opcode::ops
+);
for (@MANIFEST) {
- my $filename;
- next unless s|^lib/|| or m|^ext/|;
- my ($origfilename) = ($filename) = m|^(\S+)|;
- $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
- next unless $filename =~ m!\.p(m|od)$!;
- unless (open (MOD, "../lib/$filename")) {
- unless (open (MOD, "../$origfilename")) {
- warn "Couldn't open ../$origfilename: $!";
- next;
- }
- $filename = $origfilename;
- }
+ my $filename;
+ next unless s|^lib/|| or m|^ext/|;
+ my ($origfilename) = ($filename) = m|^(\S+)|;
+ $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
+ next unless $filename =~ m!\.p(m|od)$!;
+ unless (open (MOD, "../lib/$filename")) {
+ unless (open (MOD, "../$origfilename")) {
+ warn "Couldn't open ../$origfilename: $!";
+ next;
+ }
+ $filename = $origfilename;
+ }
my ($name, $thing);
my $foundit=0;
{
- local $/="";
- while (<MOD>) {
- next unless /^=head1 NAME/;
- $foundit++;
- last;
- }
+ local $/="";
+ while (<MOD>) {
+ next unless /^=head1 NAME/;
+ $foundit++;
+ last;
+ }
}
unless ($foundit) {
- warn "$filename missing =head1 NAME (okay if there is respective
.pod)\n";
- next;
+ warn "$filename missing =head1 NAME (OK if respective .pod exists)\n";
+ next;
}
my $title = <MOD>;
chomp($title);
@@ -57,11 +78,12 @@
($name, $thing) = split / --? /, $title, 2;
unless ($name and $thing) {
- warn "$filename missing name\n" unless $name;
- warn "$filename missing thing\n" unless $thing;
- next;
+ warn "$filename missing name\n" unless $name;
+ warn "$filename missing thing\n" unless $thing;
+ next;
}
+ next if $suppressed{$perlname};
$thing =~ s/^perl pragma to //i;
$thing = ucfirst($thing);
@@ -72,6 +94,17 @@
} else {
push @pragma, $title;
}
+
+ # if we find a generated one via the MANIFEST, no need to add later.
+ delete $generated{$perlname};
+}
+while (my ($name,$desc) = each %generated) {
+ my $title = "=item $name\n\n$desc\n\n";
+ if ($name =~ /[A-Z]/) {
+ push @mod, $title;
+ } else {
+ push @pragma, $title;
+ }
}
print OUT <<'EOF';
==== //depot/maint-5.8/perl/pod/perltodo.pod#45 (text) ====
Index: perl/pod/perltodo.pod
--- perl/pod/perltodo.pod#44~33805~ 2008-05-10 08:40:07.000000000 -0700
+++ perl/pod/perltodo.pod 2008-05-25 12:51:20.000000000 -0700
@@ -64,12 +64,6 @@
aren't found by podchecker. Add this check to podchecker, get rid of
checkpods and have C<make check> use podchecker.
-=head2 perlmodlib.PL rewrite
-
-Currently perlmodlib.PL needs to be run from a source directory where perl
-has been built, or some modules won't be found, and others will be
-skipped. Make it run from a clean perl source tree (so it's reproducible).
-
=head2 Parallel testing
(This probably impacts much more than the core: also the Test::Harness
==== //depot/maint-5.8/perl/regen.pl#5 (text) ====
Index: perl/regen.pl
--- perl/regen.pl#4~30057~ 2007-01-29 07:55:07.000000000 -0800
+++ perl/regen.pl 2008-05-25 12:51:20.000000000 -0700
@@ -28,7 +28,7 @@
'regcomp.pl' => [qw[regnodes.h]],
'warnings.pl' => [qw[warnings.h lib/warnings.pm]],
'reentr.pl' => [qw[reentr.c reentr.h]],
- 'overload.pl' => [qw[overload.h]],
+ 'overload.pl' => [qw[overload.c overload.h]],
);
sub do_cksum {
@@ -47,8 +47,7 @@
return %cksum;
}
-foreach my $pl (qw (keywords.pl opcode.pl embed.pl bytecode.pl
- regcomp.pl warnings.pl autodoc.pl reentr.pl)) {
+foreach my $pl (keys %gen) {
print "$^X $pl\n";
my %cksum0;
%cksum0 = do_cksum($pl) unless $pl eq 'warnings.pl'; # the files were removed
End of Patch.