Change 19951 by [EMAIL PROTECTED] on 2003/07/03 08:47:35
Integrate:
(most of #18302 was already part of #18791)
[ 18302]
Subject: Proper fix for CvOUTSIDE weak refcounting
From: Dave Mitchell <[EMAIL PROTECTED]>
Date: Tue, 10 Dec 2002 01:26:44 +0000
Message-ID: <[EMAIL PROTECTED]>
[ 19924]
Fix from Enache Adrian for the magic.t failure in
FreeBSD: setproctitle() cannot get rid of the " (perl)".
[ 19925]
FreeBSD $0 dance.
[ 19926]
Getting the whitespace right.
[ 19927]
...and getting the comma right, too.
[ 19928]
Darwin: -Dprefix=$HOME/Perl tried to install to /Library.
[ 19929]
Better links.
[ 19930]
Let the perldelta iteration begin.
[ 19931]
Fix for [perl #22759 insufficient format string checking];
using ewix makes no sense, assuming evix was intended,
no old tests fail; add the test case.
[ 19932]
Subject: Re: maint @ 19923
From: Jim Cromie <[EMAIL PROTECTED]>
Date: Wed, 02 Jul 2003 05:35:06 -0600
Message-ID: <[EMAIL PROTECTED]>
[ 19933]
Subject: Re: maint @ 19923
From: Ronald J Kimball <[EMAIL PROTECTED]>
Date: Wed, 2 Jul 2003 11:43:05 -0400
Message-ID: <[EMAIL PROTECTED]>
[ 19934]
Subject: [PATCH] line numbers are given % 64k
From: James Jurach <[EMAIL PROTECTED]>
Date: Wed, 2 Jul 2003 13:31:05 -0500
Message-ID: <[EMAIL PROTECTED]>
[ 19935]
It would seem that in Linux 2.2 there is no way
we can do the right thing to make ps(1) see $0
our way. Also amend the $0 documentation a bit.
[ 19936]
Subject: Re: perldelta for 5.8.1
From: Dave Mitchell <[EMAIL PROTECTED]>
Date: Wed, 2 Jul 2003 17:46:32 +0100
Message-ID: <[EMAIL PROTECTED]>
[ 19937]
Decomplexing by Jim Cromie.
[ 19938]
Subject: Perldelta 5.8.1 typos
From: Simon Glover <[EMAIL PROTECTED]>
Date: Wed, 2 Jul 2003 13:42:58 -0400 (EDT)
Message-ID: <[EMAIL PROTECTED]>
[ 19939]
Subject: [PATCH] various Deparse fixes
From: Dave Mitchell <[EMAIL PROTECTED]>
Date: Wed, 2 Jul 2003 18:10:45 +0100
Message-ID: <[EMAIL PROTECTED]>
[ 19940]
Skip a socketpair test on SCO OSR
[ 19941]
Minor test adjustments :
- test name correction in op/concat.t by Yitzchak Scott-Thoennes
- prototypes added to some public functions in t/test.pl,
as suggested by Enache Adrian
[ 19942]
Nicer options for Porting/Modules.
[ 19943]
Subject: [PATCH] Re: ext/List/Util/t/weak.t panic
From: Dave Mitchell <[EMAIL PROTECTED]>
Date: Thu, 3 Jul 2003 01:32:11 +0100
Message-ID: <[EMAIL PROTECTED]>
[ 19944]
Subject: [PATCH] "without parens" vs "without parentheses"
From: Iain Truskett <[EMAIL PROTECTED]>
Date: Thu, 3 Jul 2003 12:40:42 +1000
Message-ID: <[EMAIL PROTECTED]>
[ 19945]
Subject: Re: perldelta for 5.8.1
From: Nicholas Clark <[EMAIL PROTECTED]>
Date: Wed, 2 Jul 2003 23:08:26 +0100
Message-ID: <[EMAIL PROTECTED]>
[ 19946]
Pod::LaTeX has been updated (from tjenness).
[ 19947]
Apply Schwern's suggested warning code from
[perl #22209] Test::Harness::Straps vs. $Config{path_sep}
[ 19948]
Underline the fact that XSLoader is not DynaLoader
([perl #21974] dl_load_flags not honored by XSLoader)
[ 19949]
No fancy binmode() if no perlio.
[ 19950]
Mention Modules in AUTHORS.
Affected files ...
... //depot/maint-5.8/perl/AUTHORS#4 integrate
... //depot/maint-5.8/perl/MANIFEST#65 integrate
... //depot/maint-5.8/perl/Porting/Modules#2 integrate
... //depot/maint-5.8/perl/bytecode.pl#5 integrate
... //depot/maint-5.8/perl/cv.h#9 integrate
... //depot/maint-5.8/perl/dump.c#21 integrate
... //depot/maint-5.8/perl/embed.fnc#33 integrate
... //depot/maint-5.8/perl/ext/B/B/Asmdata.pm#3 integrate
... //depot/maint-5.8/perl/ext/B/B/Concise.pm#10 integrate
... //depot/maint-5.8/perl/ext/B/B/Debug.pm#6 integrate
... //depot/maint-5.8/perl/ext/B/B/Deparse.pm#8 integrate
... //depot/maint-5.8/perl/ext/B/defsubs_h.PL#4 integrate
... //depot/maint-5.8/perl/ext/ByteLoader/byterun.c#3 integrate
... //depot/maint-5.8/perl/ext/Devel/Peek/Peek.t#10 integrate
... //depot/maint-5.8/perl/ext/DynaLoader/XSLoader_pm.PL#2 integrate
... //depot/maint-5.8/perl/ext/IO/lib/IO/t/io_sock.t#5 integrate
... //depot/maint-5.8/perl/ext/Socket/socketpair.t#4 integrate
... //depot/maint-5.8/perl/handy.h#11 integrate
... //depot/maint-5.8/perl/hints/darwin.sh#13 integrate
... //depot/maint-5.8/perl/lib/Test/Harness/Straps.pm#4 integrate
... //depot/maint-5.8/perl/mg.c#22 integrate
... //depot/maint-5.8/perl/op.c#33 integrate
... //depot/maint-5.8/perl/pad.c#8 integrate
... //depot/maint-5.8/perl/pod/perlapi.pod#14 integrate
... //depot/maint-5.8/perl/pod/perlfunc.pod#26 integrate
... //depot/maint-5.8/perl/pod/perlintern.pod#7 integrate
... //depot/maint-5.8/perl/pod/perlipc.pod#7 integrate
... //depot/maint-5.8/perl/pod/perlrun.pod#23 integrate
... //depot/maint-5.8/perl/pod/perlvar.pod#16 integrate
... //depot/maint-5.8/perl/pp_ctl.c#30 integrate
... //depot/maint-5.8/perl/scope.h#9 integrate
... //depot/maint-5.8/perl/sv.c#56 integrate
... //depot/maint-5.8/perl/t/TEST#2 integrate
... //depot/maint-5.8/perl/t/lib/warnings/toke#3 integrate
... //depot/maint-5.8/perl/t/op/closure.t#5 integrate
... //depot/maint-5.8/perl/t/op/concat.t#4 integrate
... //depot/maint-5.8/perl/t/op/magic.t#15 integrate
... //depot/maint-5.8/perl/t/op/ord.t#2 integrate
... //depot/maint-5.8/perl/t/op/sprintf.t#7 integrate
... //depot/maint-5.8/perl/t/test.pl#4 integrate
... //depot/maint-5.8/perl/toke.c#21 integrate
Differences ...
==== //depot/maint-5.8/perl/AUTHORS#4 (text) ====
Index: perl/AUTHORS
--- perl/AUTHORS#3~18567~ Wed Jan 22 10:37:55 2003
+++ perl/AUTHORS Thu Jul 3 01:47:35 2003
@@ -10,6 +10,9 @@
# The use of this database for anything else than Perl development
# is strictly forbidden. (Passive distribution with the Perl source
# code kit is, of course, allowed.)
+#
+# If you want to know who is maintaining which module,
+# see the Porting/Modules script.
--
A. C. Yardley <[EMAIL PROTECTED]>
Aaron B. Dossett <[EMAIL PROTECTED]>
==== //depot/maint-5.8/perl/MANIFEST#65 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#64~19919~ Tue Jul 1 14:28:15 2003
+++ perl/MANIFEST Thu Jul 3 01:47:35 2003
@@ -2380,7 +2380,7 @@
Porting/Glossary Glossary of config.sh variables
Porting/makerel Release making utility
Porting/manicheck Check against MANIFEST
-Porting/Modules List which files belong to which CPAN modules
+Porting/Modules Information about modules and their maintainers
Porting/p4d2p Generate patch from p4 diff
Porting/p4genpatch Generate patch from p4 change in repository (obsoletes p4desc)
Porting/patching.pod How to report changes made to Perl
==== //depot/maint-5.8/perl/Porting/Modules#2 (text) ====
Index: perl/Porting/Modules
--- perl/Porting/Modules#1~19919~ Tue Jul 1 14:28:15 2003
+++ perl/Porting/Modules Thu Jul 3 01:47:35 2003
@@ -1,5 +1,9 @@
#!/usr/bin/perl -w
+#
+# Modules - show information about modules and their maintainers
+#
+
use strict;
use vars qw($Maintainers $Modules);
@@ -26,8 +30,9 @@
'pmarquess' => 'Paul Marquess <[EMAIL PROTECTED]>',
'sadahiro' => 'SADAHIRO Tomoyuki <[EMAIL PROTECTED]>',
'sburke' => 'Sean Burke <[EMAIL PROTECTED]>',
+ 'smcc' => 'Stephen McCamant <[EMAIL PROTECTED]>',
'schwern' => 'Michael Schwern <[EMAIL PROTECTED]>',
- 'tels' => 'Tels a t bloodgate.com',
+ 'tels' => 'Tels a-t bloodgate.com',
'tjenness' => 'Tim Jenness <[EMAIL PROTECTED]>'
};
@@ -40,6 +45,12 @@
q[lib/Attribute/Handlers.pm lib/Attribute/Handlers],
},
+ 'B::Concise' =>
+ {
+ 'MAINTAINER' => 'smcc',
+ 'FILES' => q[ext/B/B/Concise.pm ext/B/t/concise.t],
+ },
+
'bignum' =>
{
'MAINTAINER' => 'tels',
@@ -161,7 +172,7 @@
'Locale::Codes' =>
{
'MAINTAINER' => 'neilb',
- 'FILES' => q[lib/Locale/{Country,Currency,Language}],
+ 'FILES' =>
q[lib/Locale/{Codes,Constants,Country,Currency,Language,Script}*],
},
'Locale::Maketext' =>
@@ -313,114 +324,192 @@
'FILES' => q[ext/Unicode/Normalize],
},
- };
+ 'warnings' =>
+ {
+ 'MAINTAINER' => 'pmarquess',
+ 'FILES' =>
+ q[warnings.pl lib/warnings.{pm,t}
+ lib/warnings t/lib/warnings],
+ },
-# Sanity check.
+ };
use Getopt::Long;
use File::Find;
-my $All;
-my $Maintainer;
-my $Module;
-my %ModuleByFile;
-my %FilesByModule;
-
sub usage {
print <<__EOF__;
-$0: Usage: $0 [--all|--maintainer M|--module M|file ...]
-$0 --all lists all the modules and their files
-$0 --maintainer M lists all the modules of maintainer
-$0 --module M lists all the files of the modules
-The matching of maintainer names is done both on the short name
-and the full name.
+$0: Usage: $0 [[--maintainer M --module M --files]|file ...]
+$0 --maintainer M list all maintainers matching M
+$0 --module M list all modules matching M
+$0 --files list all files of the module
+Matching is case-ignoring regexp, author matching is both by
+the short id and by the full name and email.
+$0 file ... list the module and maintainer
__EOF__
exit(0);
}
-usage() unless
+my $Maintainer;
+my $Module;
+my $Files;
+
+usage()
+ unless
GetOptions(
- 'all' => \$All,
'maintainer=s' => \$Maintainer,
'module=s' => \$Module,
- );
+ 'files' => \$Files,
+ );
+
+my @Files = @ARGV;
+
+usage() if @Files && ($Maintainer || $Module || $Files);
+
+for my $mean ($Maintainer, $Module) {
+ warn "$0: Did you mean '$0 $mean'?\n"
+ if $mean && -e $mean && $mean ne '.';
+}
+
+warn "$0: Did you mean '$0 -mo $Maintainer'?\n"
+ if defined $Maintainer && exists $Modules->{$Maintainer};
+
+warn "$0: Did you mean '$0 -ma $Module'?\n"
+ if defined $Module && exists $Maintainers->{$Module};
+
+sub get_module_pat {
+ my $m = shift;
+ split ' ', $Modules->{$m}->{FILES};
+}
+
+sub get_module_files {
+ my $m = shift;
+ sort { lc $a cmp lc $b }
+ map {
+ -f $_ ? # Files as-is.
+ $_ :
+ -d _ ? # Recurse into directories.
+ do {
+ my @files;
+ find(
+ sub {
+ push @files, $File::Find::name
+ if -f $_;
+ }, $_);
+ @files;
+ }
+ : glob($_) # The rest are globbable patterns.
+ } get_module_pat($m);
+}
+
+sub get_maintainer_modules {
+ my $m = shift;
+ sort { lc $a cmp lc $b }
+ grep { $Modules->{$_}->{MAINTAINER} eq $m }
+ keys %$Modules;
+}
-if (defined $Maintainer) {
- unless (exists $Maintainers->{$Maintainer}) {
- my @m;
- for my $m (sort keys %$Maintainers) {
- if ($m =~ /$Maintainer/i ||
- $Maintainers->{$m} =~ /$Maintainer/i) {
- push @m, $m;
+if ($Maintainer) {
+ for my $m (sort keys %$Maintainers) {
+ if ($m =~ /$Maintainer/io) {
+ my @modules = get_maintainer_modules($m);
+ if ($Module) {
+ @modules = grep { /$Module/io } @modules;
+ }
+ if ($Files) {
+ my @files;
+ for my $module (@modules) {
+ push @files, get_module_files($module);
+ }
+ printf "%-15s @files\n", $m;
+ } else {
+ if ($Module) {
+ printf "%-15s @modules\n", $m;
+ } else {
+ printf "%-15s $Maintainers->{$m}\n", $m;
+ }
}
}
- if (@m) {
- if (@m == 1) {
- $Maintainer = $m[0];
+ }
+} elsif ($Module) {
+ for my $m (sort { lc $a cmp lc $b } keys %$Modules) {
+ if ($m =~ /$Module/io) {
+ if ($Files) {
+ my @files = get_module_files($m);
+ printf "%-15s @files\n", $m;
} else {
- die "$0: more than one match for '$Maintainer': @m\n";
+ printf "%-15s $Modules->{$m}->{MAINTAINER}\n", $m;
}
- } else {
- die "$0: no matches for maintainer '$Maintainer'\n";
}
}
-}
+} elsif (@Files) {
+ my %ModuleByFile;
-print "$0: maintainer '$Maintainers->{$Maintainer}'\n" if defined $Maintainer;
+ @[EMAIL PROTECTED] = ();
-my @Files = @ARGV;
+ # First try fast match.
+
+ my %ModuleByPat;
+ for my $module (keys %$Modules) {
+ for my $pat (get_module_pat($module)) {
+ $ModuleByPat{$pat} = $module;
+ }
+ }
+ # Expand any globs.
+ my %ExpModuleByPat;
+ for my $pat (keys %ModuleByPat) {
+ if (-e $pat) {
+ $ExpModuleByPat{$pat} = $ModuleByPat{$pat};
+ } else {
+ for my $exp (glob($pat)) {
+ $ExpModuleByPat{$exp} = $ModuleByPat{$pat};
+ }
+ }
+ }
+ %ModuleByPat = %ExpModuleByPat;
+ for my $file (@Files) {
+ $ModuleByFile{$file} = $ModuleByPat{$file}
+ if exists $ModuleByPat{$file};
+ }
-usage() unless @Files || $All || $Maintainer || $Module;
+ # If still unresolved files..
+ if (my @ToDo = grep { !defined $ModuleByFile{$_} } keys %ModuleByFile) {
-for my $module (sort { lc $a cmp lc $b } keys %$Modules) {
- next if defined $Module && $Module ne $module;
- warn "$0: Module '$module' missing MAINTAINER\n"
- unless exists $Modules->{$module}->{MAINTAINER};
- my $maintainer = $Modules->{$module}->{MAINTAINER};
- next if defined $Maintainer && $Maintainer ne $maintainer;
- warn "$0: Module '$module' missing FILES\n"
- unless exists $Modules->{$module}->{FILES};
- my $files = $Modules->{$module}->{FILES};
- warn "$0: Module '$module' maintainer '$maintainer' unknown\n"
- unless exists $Maintainers->{$maintainer};
- my @files =
- sort { lc $a cmp lc $b }
- map { -d $_ ?
- do { my @files;
- find(sub{ push @files, $File::Find::name if -f $_ },
- $_); @files } :
- -f $_ ? $_ : glob($_)
- } split(' ', $files);
- $FilesByModule{$module} = [ @files ];
- $ModuleByFile{$_} = $module for @files;
- print "$module\n" if $Maintainer;
- print "$module @files\n" if $All || $Module;
-}
+ # Cannot match what isn't there.
+ @ToDo = grep { -e $_ } @ToDo;
-if (@Files) {
- for my $file (@Files) {
- my $module;
- if (-f $file) {
- $module =
- [ exists $ModuleByFile{$file} ? $ModuleByFile{$file} : '-' ];
- } elsif (-d $file) {
- # Show the modules that have the most matches.
- my %m;
- for my $module (keys %$Modules) {
- my @m = grep { m:^$file/:i } @{$FilesByModule{$module}};
- $m{$module} = @m;
- }
- my @m = sort { $m{$b} <=> $m{$a} } keys %m;
- if ($m{$m[0]}) {
- $module = [ shift @m ];
- push @$module, shift @m
- while @m && $m{$m[0]} == $m{$module->[0]};
+ if (@ToDo) {
+ # Try prefix matching.
+
+ # Remove trailing slashes.
+ for (@ToDo) { s|/$|| }
+
+ my %ToDo;
+ @[EMAIL PROTECTED] = ();
+
+ for my $pat (keys %ModuleByPat) {
+ last unless keys %ToDo;
+ if (-d $pat) {
+ my @Done;
+ for my $file (keys %ToDo) {
+ if ($file =~ m|^$pat|i) {
+ $ModuleByFile{$file} = $ModuleByPat{$pat};
+ push @Done, $file;
+ }
+ }
+ delete @[EMAIL PROTECTED];
+ }
}
}
- if (defined $module) {
- print "$file @$module\n";
+ }
+
+ for my $file (@Files) {
+ if (defined $ModuleByFile{$file}) {
+ my $module = $ModuleByFile{$file};
+ my $maintainer = $Modules->{$ModuleByFile{$file}}->{MAINTAINER};
+ printf "%-15s $module $maintainer $Maintainers->{$maintainer}\n", $file;
} else {
- warn "$0: no module matches for file '$file'\n";
+ printf "%-15s ?\n", $file;
}
}
}
==== //depot/maint-5.8/perl/bytecode.pl#5 (text) ====
Index: perl/bytecode.pl
--- perl/bytecode.pl#4~19040~ Thu Mar 20 21:00:59 2003
+++ perl/bytecode.pl Thu Jul 3 01:47:35 2003
@@ -5,8 +5,8 @@
use strict;
my %alias_to = (
U32 => [qw(PADOFFSET STRLEN)],
- I32 => [qw(SSize_t long)],
- U16 => [qw(OPCODE line_t short)],
+ I32 => [qw(SSize_t line_t long)],
+ U16 => [qw(OPCODE short)],
U8 => [qw(char)],
);
==== //depot/maint-5.8/perl/ext/B/B/Asmdata.pm#3 (text+w) ====
Index: perl/ext/B/B/Asmdata.pm
--- perl/ext/B/B/Asmdata.pm#2~19040~ Thu Mar 20 21:00:59 2003
+++ perl/ext/B/B/Asmdata.pm Thu Jul 3 01:47:35 2003
@@ -104,7 +104,7 @@
$insn_data{gp_io} = [78, \&PUT_svindex, "GET_svindex"];
$insn_data{gp_form} = [79, \&PUT_svindex, "GET_svindex"];
$insn_data{gp_cvgen} = [80, \&PUT_U32, "GET_U32"];
-$insn_data{gp_line} = [81, \&PUT_U16, "GET_U16"];
+$insn_data{gp_line} = [81, \&PUT_U32, "GET_U32"];
$insn_data{gp_share} = [82, \&PUT_svindex, "GET_svindex"];
$insn_data{xgv_flags} = [83, \&PUT_U8, "GET_U8"];
$insn_data{op_next} = [84, \&PUT_opindex, "GET_opindex"];
@@ -137,7 +137,7 @@
$insn_data{cop_file} = [111, \&PUT_pvindex, "GET_pvindex"];
$insn_data{cop_seq} = [112, \&PUT_U32, "GET_U32"];
$insn_data{cop_arybase} = [113, \&PUT_I32, "GET_I32"];
-$insn_data{cop_line} = [114, \&PUT_U16, "GET_U16"];
+$insn_data{cop_line} = [114, \&PUT_U32, "GET_U32"];
$insn_data{cop_warnings} = [115, \&PUT_svindex, "GET_svindex"];
$insn_data{main_start} = [116, \&PUT_opindex, "GET_opindex"];
$insn_data{main_root} = [117, \&PUT_opindex, "GET_opindex"];
==== //depot/maint-5.8/perl/ext/B/B/Concise.pm#10 (text) ====
Index: perl/ext/B/B/Concise.pm
--- perl/ext/B/B/Concise.pm#9~19611~ Sat May 24 00:50:43 2003
+++ perl/ext/B/B/Concise.pm Thu Jul 3 01:47:35 2003
@@ -14,7 +14,7 @@
concise_cv concise_main);
use B qw(class ppname main_start main_root main_cv cstring svref_2object
- SVf_IOK SVf_NOK SVf_POK SVf_IVisUV OPf_KIDS);
+ SVf_IOK SVf_NOK SVf_POK SVf_IVisUV SVf_FAKE OPf_KIDS CVf_ANON);
my %style =
("terse" =>
@@ -437,10 +437,19 @@
my $padname = (($curcv->PADLIST->ARRAY)[0]->ARRAY)[$h{targ}];
if (defined $padname and class($padname) ne "SPECIAL") {
$h{targarg} = $padname->PVX;
- my $intro = $padname->NVX - $cop_seq_base;
- my $finish = int($padname->IVX) - $cop_seq_base;
- $finish = "end" if $finish == 999999999 - $cop_seq_base;
- $h{targarglife} = "$h{targarg}:$intro,$finish";
+ if ($padname->FLAGS & SVf_FAKE) {
+ my $fake = '';
+ $fake .= 'a' if $padname->IVX & 1; # PAD_FAKELEX_ANON
+ $fake .= 'm' if $padname->IVX & 2; # PAD_FAKELEX_MULTI
+ $fake .= ':' . $padname->NVX if $curcv->CvFLAGS & CVf_ANON;
+ $h{targarglife} = "$h{targarg}:FAKE:$fake";
+ }
+ else {
+ my $intro = $padname->NVX - $cop_seq_base;
+ my $finish = int($padname->IVX) - $cop_seq_base;
+ $finish = "end" if $finish == 999999999 - $cop_seq_base;
+ $h{targarglife} = "$h{targarg}:$intro,$finish";
+ }
} else {
$h{targarglife} = $h{targarg} = "t" . $h{targ};
}
==== //depot/maint-5.8/perl/ext/B/B/Debug.pm#6 (text) ====
Index: perl/ext/B/B/Debug.pm
--- perl/ext/B/B/Debug.pm#5~19919~ Tue Jul 1 14:28:15 2003
+++ perl/ext/B/B/Debug.pm Thu Jul 3 01:47:35 2003
@@ -73,7 +73,7 @@
my ($op) = @_;
$op->B::OP::debug();
my $cop_io = class($op->io) eq 'SPECIAL' ? '' : $op->io->as_string;
- printf <<'EOT', $op->label, $op->stashpv, $op->file, $op->seq, $op->arybase,
$op->line, ${$op->warnings}, cstring($cop_io);
+ printf <<'EOT', $op->label, $op->stashpv, $op->file, $op->cop_seq, $op->arybase,
$op->line, ${$op->warnings}, cstring($cop_io);
cop_label %s
cop_stashpv %s
cop_file %s
==== //depot/maint-5.8/perl/ext/B/B/Deparse.pm#8 (text) ====
Index: perl/ext/B/B/Deparse.pm
--- perl/ext/B/B/Deparse.pm#7~19682~ Tue Jun 3 22:22:46 2003
+++ perl/ext/B/B/Deparse.pm Thu Jul 3 01:47:35 2003
@@ -15,7 +15,7 @@
OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
OPpCONST_ARYBASE OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER
OPpSORT_REVERSE
- SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE
+ SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG
CVf_METHOD CVf_LOCKED CVf_LVALUE
PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE PMf_SKIPWHITE
PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED);
@@ -289,7 +289,17 @@
my $file = $gv->FILE;
$l = "\n\f#line $line \"$file\"\n";
}
- return "${l}sub $name " . $self->deparse_sub($cv);
+ my $p = '';
+ if (class($cv->STASH) ne "SPECIAL") {
+ my $stash = $cv->STASH->NAME;
+ if ($stash ne $self->{'curstash'}) {
+ $p = "package $stash;\n";
+ $name = "$self->{'curstash'}::$name" unless $name =~ /::/;
+ $self->{'curstash'} = $stash;
+ }
+ $name =~ s/^\Q$stash\E:://;
+ }
+ return "${p}${l}sub $name " . $self->deparse_sub($cv);
}
}
@@ -585,6 +595,8 @@
my $laststash = defined $self->{'curcop'}
? $self->{'curcop'}->stash->NAME : $self->{'curstash'};
if (defined *{$laststash."::DATA"}{IO}) {
+ print "package $laststash;\n"
+ unless $laststash eq $self->{'curstash'};
print "__DATA__\n";
print readline(*{$laststash."::DATA"});
}
@@ -1602,7 +1614,7 @@
{
# The @a in \(@a) isn't in ref context, but only when the
# parens are there.
- return "\\(" . $self->deparse($kid->sibling, 1) . ")";
+ return "\\(" . $self->pp_list($op->first) . ")";
} elsif ($sib_name eq 'entersub') {
my $text = $self->deparse($kid->sibling, 1);
# Always show parens for \(&func()), but only with -p otherwise
@@ -2593,7 +2605,14 @@
my $kid = $op->first;
if ($kid->name eq "const") { # constant list
my $av = $self->const_sv($kid);
- return "(" . join(", ", map(const($_), $av->ARRAY)) . ")";
+ my @a = map const($_), $av->ARRAY;
+ if ( @a > 2 and !grep(!/^-?\d+$/, @a)) {
+ # collapse (-1,0,1,2) into (-1..2)
+ my ($s, $e) = @a[0,-1];
+ my $i = $s;
+ return "($s..$e)" unless grep $i++ != $_, @a;
+ }
+ return "(" . join(", ", @a) . ")";
} else {
return $self->maybe_local($op, $cx, $self->rv2x($op, $cx, "\@"));
}
@@ -3192,7 +3211,15 @@
return ('undef', '1', '(!1)')[$$sv-1]; # sv_undef, sv_yes, sv_no
} elsif (class($sv) eq "NULL") {
return 'undef';
- } elsif ($sv->FLAGS & SVf_IOK) {
+ }
+ # convert a version object into the "v1.2.3" string in its V magic
+ if ($sv->FLAGS & SVs_RMG) {
+ for (my $mg = $sv->MAGIC; $mg; $mg = $mg->MOREMAGIC) {
+ return $mg->PTR if $mg->TYPE eq 'V';
+ }
+ }
+
+ if ($sv->FLAGS & SVf_IOK) {
return $sv->int_value;
} elsif ($sv->FLAGS & SVf_NOK) {
# try the default stringification
==== //depot/maint-5.8/perl/ext/B/defsubs_h.PL#4 (text) ====
Index: perl/ext/B/defsubs_h.PL
--- perl/ext/B/defsubs_h.PL#3~19919~ Tue Jul 1 14:28:15 2003
+++ perl/ext/B/defsubs_h.PL Thu Jul 3 01:47:35 2003
@@ -18,9 +18,11 @@
SVf_READONLY SVTYPEMASK
GVf_IMPORTED_AV GVf_IMPORTED_HV
GVf_IMPORTED_SV GVf_IMPORTED_CV
- CVf_METHOD CVf_LOCKED CVf_LVALUE CVf_CONST
+ CVf_CLONE CVf_CLONED CVf_ANON CVf_OLDSTYLE
+ CVf_UNIQUE CVf_NODEBUG CVf_METHOD CVf_LOCKED
+ CVf_LVALUE CVf_CONST CVf_WEAKOUTSIDE
SVpad_OUR SVf_FAKE SVf_IOK SVf_IVisUV SVf_NOK SVf_POK
- SVf_ROK SVp_IOK SVp_POK SVp_NOK SVt_PVGV SVt_PVHV
+ SVf_ROK SVp_IOK SVp_POK SVp_NOK SVt_PVGV SVt_PVHV SVs_RMG
))
{
doconst($const);
==== //depot/maint-5.8/perl/ext/ByteLoader/byterun.c#3 (text+w) ====
Index: perl/ext/ByteLoader/byterun.c
--- perl/ext/ByteLoader/byterun.c#2~19040~ Thu Mar 20 21:00:59 2003
+++ perl/ext/ByteLoader/byterun.c Thu Jul 3 01:47:35 2003
@@ -624,7 +624,7 @@
case INSN_GP_LINE: /* 81 */
{
line_t arg;
- BGET_U16(arg);
+ BGET_U32(arg);
GvLINE(bstate->bs_sv) = arg;
break;
}
@@ -855,7 +855,7 @@
case INSN_COP_LINE: /* 114 */
{
line_t arg;
- BGET_U16(arg);
+ BGET_U32(arg);
BSET_cop_line(cCOP, arg);
break;
}
==== //depot/maint-5.8/perl/ext/DynaLoader/XSLoader_pm.PL#2 (text) ====
Index: perl/ext/DynaLoader/XSLoader_pm.PL
--- perl/ext/DynaLoader/XSLoader_pm.PL#1~17645~ Fri Jul 19 12:29:57 2002
+++ perl/ext/DynaLoader/XSLoader_pm.PL Thu Jul 3 01:47:35 2003
@@ -156,7 +156,9 @@
linking mechanisms available on many platforms. Its primary purpose is
to implement cheap automatic dynamic loading of Perl modules.
-For more complicated interface see L<DynaLoader>.
+For more complicated interface see L<DynaLoader>. Many (most)
+features of DynaLoader are not implemented in XSLoader, like for
+example the dl_load_flags is not honored by XSLoader.
=head1 AUTHOR
==== //depot/maint-5.8/perl/ext/IO/lib/IO/t/io_sock.t#5 (xtext) ====
Index: perl/ext/IO/lib/IO/t/io_sock.t
--- perl/ext/IO/lib/IO/t/io_sock.t#4~19919~ Tue Jul 1 14:28:15 2003
+++ perl/ext/IO/lib/IO/t/io_sock.t Thu Jul 3 01:47:35 2003
@@ -356,7 +356,7 @@
last SERVER_LOOP unless $sock = $listen->accept;
# Do not print ok/not ok for this binmode() since there's
# a race condition with our client, just die if we fail.
- binmode($sock, ":utf8") or die;
+ if ($has_perlio) { binmode($sock, ":utf8") or die }
while (<$sock>) {
last SERVER_LOOP if /^quit/;
last if /^done/;
==== //depot/maint-5.8/perl/ext/Socket/socketpair.t#4 (text) ====
Index: perl/ext/Socket/socketpair.t
--- perl/ext/Socket/socketpair.t#3~19515~ Tue May 13 10:51:05 2003
+++ perl/ext/Socket/socketpair.t Thu Jul 3 01:47:35 2003
@@ -115,7 +115,7 @@
# This will hang forever if eof is buggy, and alarm doesn't interrupt system
# Calls. Hence the child process minder.
SKIP: {
- skip "SCO OpenUNIX has a bug with shutdown", 2 if $^O =~ /^svr/;
+ skip "SCO Unixware / OSR have a bug with shutdown",2 if $^O =~ /^(?:svr|sco)/;
local $SIG{ALRM} = sub { warn "EOF on right took over 3 seconds" };
local $TODO = "Known problems with unix sockets on $^O"
if $^O eq 'hpux' || $^O eq 'super-ux';
==== //depot/maint-5.8/perl/handy.h#11 (text) ====
Index: perl/handy.h
--- perl/handy.h#10~19791~ Sun Jun 15 10:57:06 2003
+++ perl/handy.h Thu Jul 3 01:47:35 2003
@@ -512,12 +512,12 @@
# define toCTRL(c) (toUPPER(c) ^ 64)
#endif
-/* Line numbers are unsigned, 16 bits. */
-typedef U16 line_t;
+/* Line numbers are unsigned, 32 bits. */
+typedef U32 line_t;
#ifdef lint
#define NOLINE ((line_t)0)
#else
-#define NOLINE ((line_t) 65535)
+#define NOLINE ((line_t) 4294967295UL)
#endif
==== //depot/maint-5.8/perl/hints/darwin.sh#13 (text) ====
Index: perl/hints/darwin.sh
--- perl/hints/darwin.sh#12~19771~ Fri Jun 13 21:40:49 2003
+++ perl/hints/darwin.sh Thu Jul 3 01:47:35 2003
@@ -35,6 +35,18 @@
sitelib="/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also
vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules
;;
+
+ *)
+ # Anything else; use non-system directories
+ # prefix=$prefix; # Built-in perl uses /usr
+ siteprefix=$prefix;
+ vendorprefix='/usr'; usevendorprefix='define';
+
+ # Where to put modules.
+ sitelib=$prefix/lib/perl5/site_perl/${version}
+ vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules
+ ;;
+
esac
# 4BSD uses ${prefix}/share/man, not ${prefix}/man.
==== //depot/maint-5.8/perl/lib/Test/Harness/Straps.pm#4 (text) ====
Index: perl/lib/Test/Harness/Straps.pm
--- perl/lib/Test/Harness/Straps.pm#3~19331~ Fri Apr 25 07:51:16 2003
+++ perl/lib/Test/Harness/Straps.pm Thu Jul 3 01:47:35 2003
@@ -358,7 +358,13 @@
$self->{_old5lib} = $ENV{PERL5LIB};
- return join $Config{path_sep}, $self->_filtered_INC;
+ my @filtered_inc = $self->_filtered_INC;
+ my @clean_inc = grep !/\Q$Config{path_sep}/, @filtered_inc;
+ my @naughty_inc = grep /\Q$Config{path_sep}/, @filtered_inc;
+ warn "Test::Harness can't handle [EMAIL PROTECTED] directories with ".
+ "'$Config{path_sep}': @naughty_inc\n" if @naughty_inc;
+
+ return join $Config{path_sep}, @clean_inc;
}
=item B<_filtered_INC>
==== //depot/maint-5.8/perl/mg.c#22 (text) ====
Index: perl/mg.c
--- perl/mg.c#21~19891~ Mon Jun 30 02:39:29 2003
+++ perl/mg.c Thu Jul 3 01:47:35 2003
@@ -1888,6 +1888,7 @@
}
i--;
}
+ SvREFCNT_dec(av); /* remove extra count added by sv_add_backref() */
return 0;
}
==== //depot/maint-5.8/perl/pod/perlfunc.pod#26 (text) ====
Index: perl/pod/perlfunc.pod
--- perl/pod/perlfunc.pod#25~19855~ Wed Jun 25 22:36:41 2003
+++ perl/pod/perlfunc.pod Thu Jul 3 01:47:35 2003
@@ -1271,8 +1271,7 @@
guaranteed to be in the same order as either the C<keys> or C<values>
function would produce on the same (unmodified) hash. Since Perl
5.8.1 the ordering is different even between different runs of Perl
-because of security reasons (see L<perlsec/"Algorithmic Complexity
-Attacks".)
+for security reasons (see L<perlsec/"Algorithmic Complexity Attacks">).
When the hash is entirely read, a null array is returned in list context
(which when assigned produces a false (C<0>) value), and C<undef> in
@@ -2323,10 +2322,10 @@
The keys are returned in an apparently random order. The actual
random order is subject to change in future versions of perl, but it
is guaranteed to be the same order as either the C<values> or C<each>
-function produces (given that the hash has not been modified).
-Since Perl 5.8.1 the ordering is different even between different
-runs of Perl because of security reasons (see L<perlsec/"Algorithmic
-Complexity Attacks".)
+function produces (given that the hash has not been modified). Since
+Perl 5.8.1 the ordering is different even between different runs of
+Perl for security reasons (see L<perlsec/"Algorithmic Complexity
+Attacks">).
As a side effect, calling keys() resets the HASH's internal iterator,
see L</each>.
@@ -6223,8 +6222,7 @@
is guaranteed to be the same order as either the C<keys> or C<each>
function would produce on the same (unmodified) hash. Since Perl
5.8.1 the ordering is different even between different runs of Perl
-because of security reasons (see L<perlsec/"Algorithmic Complexity
-Attacks".)
+for security reasons (see L<perlsec/"Algorithmic Complexity Attacks">).
As a side effect, calling values() resets the HASH's internal iterator,
see L</each>.
==== //depot/maint-5.8/perl/pod/perlipc.pod#7 (text) ====
Index: perl/pod/perlipc.pod
--- perl/pod/perlipc.pod#6~19165~ Tue Apr 8 10:43:04 2003
+++ perl/pod/perlipc.pod Thu Jul 3 01:47:35 2003
@@ -35,7 +35,7 @@
libraries are not re-entrant; particularly, memory allocation and I/O
routines are not. That meant that doing nearly I<anything> in your
handler could in theory trigger a memory fault and subsequent core
-dump - see L<Deferred Signals> below.
+dump - see L</Deferred Signals (Safe Signals)> below.
The names of the signals are the ones listed out by C<kill -l> on your
system, or you can retrieve them from the Config module. Set up an
==== //depot/maint-5.8/perl/pod/perlrun.pod#23 (text) ====
Index: perl/pod/perlrun.pod
--- perl/pod/perlrun.pod#22~19891~ Mon Jun 30 02:39:29 2003
+++ perl/pod/perlrun.pod Thu Jul 3 01:47:35 2003
@@ -1135,7 +1135,8 @@
In Perls 5.8.1 and later. If set to C<unsafe> the pre-Perl-5.8.0
signals behaviour (immediate but unsafe) is restored. If set to
-C<safe> the safe (or deferred) signals are used. See L<perlipc>.
+C<safe> the safe (or deferred) signals are used.
+See L<perlipc/"Deferred Signals (Safe signals)">.
=item PERL_UNICODE
==== //depot/maint-5.8/perl/pod/perlvar.pod#16 (text) ====
Index: perl/pod/perlvar.pod
--- perl/pod/perlvar.pod#15~19891~ Mon Jun 30 02:39:29 2003
+++ perl/pod/perlvar.pod Thu Jul 3 01:47:35 2003
@@ -858,25 +858,33 @@
=item $0
-Contains the name of the program being executed. On some (read: not
-all) operating systems assigning to C<$0> modifies the argument area
-that the C<ps> program sees. On some platforms you may have to use
-special C<ps> options or a different C<ps> to see the changes.
-Modifying the $0 is more useful as a way of indicating thecurrent
-program state than it is for hiding the program you're running.
-(Mnemonic: same as B<sh> and B<ksh>.)
+Contains the name of the program being executed.
+
+On some (read: not all) operating systems assigning to C<$0> modifies
+the argument area that the C<ps> program sees. On some platforms you
+may have to use special C<ps> options or a different C<ps> to see the
+changes. Modifying the $0 is more useful as a way of indicating the
+current program state than it is for hiding the program you're
+running. (Mnemonic: same as B<sh> and B<ksh>.)
Note that there are platform specific limitations on the the maximum
length of C<$0>. In the most extreme case it may be limited to the
space occupied by the original C<$0>.
+In some platforms there may be arbitrary amount of padding, for
+example space characters, after the modified name as shown by C<ps>.
+
Note for BSD users: setting C<$0> does not completely remove "perl"
-from the ps(1) output. For example, setting C<$0> to C<"foobar"> will
-result in C<"perl: foobar (perl)">. This is an operating system feature.
+from the ps(1) output. For example, setting C<$0> to C<"foobar"> may
+result in C<"perl: foobar (perl)"> (whether both the C<"perl: "> prefix
+and the " (perl)" suffix are shown depends on your exact BSD variant
+and version). This is an operating system feature, Perl cannot help it.
In multithreaded scripts Perl coordinates the threads so that any
thread may modify its copy of the C<$0> and the change becomes visible
-to ps(1) (assuming the operating system plays along).
+to ps(1) (assuming the operating system plays along). Note that the
+the view of C<$0> the other threads have will not change since they
+have their own copies of it.
=item $[
==== //depot/maint-5.8/perl/pp_ctl.c#30 (text) ====
Index: perl/pp_ctl.c
--- perl/pp_ctl.c#29~19855~ Wed Jun 25 22:36:41 2003
+++ perl/pp_ctl.c Thu Jul 3 01:47:35 2003
@@ -22,7 +22,7 @@
#include "perl.h"
#ifndef WORD_ALIGN
-#define WORD_ALIGN sizeof(U16)
+#define WORD_ALIGN sizeof(U32)
#endif
#define DOCATCH(o) ((CATCH_GET == TRUE) ? docatch(o) : (o))
@@ -322,7 +322,7 @@
{
dSP; dMARK; dORIGMARK;
register SV *tmpForm = *++MARK;
- register U16 *fpc;
+ register U32 *fpc;
register char *t;
register char *f;
register char *s;
@@ -362,7 +362,7 @@
/* need to jump to the next word */
s = f + len + WORD_ALIGN - SvCUR(tmpForm) % WORD_ALIGN;
- fpc = (U16*)s;
+ fpc = (U32*)s;
for (;;) {
DEBUG_f( {
@@ -3545,9 +3545,9 @@
bool noblank = FALSE;
bool repeat = FALSE;
bool postspace = FALSE;
- U16 *fops;
- register U16 *fpc;
- U16 *linepc = 0;
+ U32 *fops;
+ register U32 *fpc;
+ U32 *linepc = 0;
register I32 arg;
bool ischop;
int maxops = 2; /* FF_LINEMARK + FF_END) */
@@ -3563,7 +3563,7 @@
s = base;
base = Nullch;
- New(804, fops, maxops, U16);
+ New(804, fops, maxops, U32);
fpc = fops;
if (s < send) {
@@ -3731,10 +3731,10 @@
{ /* need to jump to the next word */
int z;
z = WORD_ALIGN - SvCUR(sv) % WORD_ALIGN;
- SvGROW(sv, SvCUR(sv) + z + arg * sizeof(U16) + 4);
+ SvGROW(sv, SvCUR(sv) + z + arg * sizeof(U32) + 4);
s = SvPVX(sv) + SvCUR(sv) + z;
}
- Copy(fops, s, arg, U16);
+ Copy(fops, s, arg, U32);
Safefree(fops);
sv_magic(sv, Nullsv, PERL_MAGIC_fm, Nullch, 0);
SvCOMPILED_on(sv);
==== //depot/maint-5.8/perl/scope.h#9 (text) ====
Index: perl/scope.h
--- perl/scope.h#8~19891~ Mon Jun 30 02:39:29 2003
+++ perl/scope.h Thu Jul 3 01:47:35 2003
@@ -179,7 +179,7 @@
# define SAVECOPFILE_FREE(c) SAVEGENERICSV(CopFILEGV(c))
#endif
-#define SAVECOPLINE(c) SAVEI16(CopLINE(c))
+#define SAVECOPLINE(c) SAVEI32(CopLINE(c))
/* SSNEW() temporarily allocates a specified number of bytes of data on the
* savestack. It returns an integer index into the savestack, because a
==== //depot/maint-5.8/perl/sv.c#56 (text) ====
Index: perl/sv.c
--- perl/sv.c#55~19855~ Wed Jun 25 22:36:41 2003
+++ perl/sv.c Thu Jul 3 01:47:35 2003
@@ -4852,7 +4852,9 @@
else {
av = newAV();
sv_magic(tsv, (SV*)av, PERL_MAGIC_backref, NULL, 0);
- SvREFCNT_dec(av); /* for sv_magic */
+ /* av now has a refcnt of 2, which avoids it getting freed
+ * before us during global cleanup. The extra ref is removed
+ * by magic_killbackrefs() when tsv is being freed */
}
if (AvFILLp(av) >= AvMAX(av)) {
SV **svp = AvARRAY(av);
@@ -8377,7 +8379,7 @@
vecsv = va_arg(*args, SV*);
else
vecsv = (evix ? evix <= svmax : svix < svmax) ?
- svargs[ewix ? ewix-1 : svix++] : &PL_sv_undef;
+ svargs[evix ? evix-1 : svix++] : &PL_sv_undef;
dotstr = SvPVx(vecsv, dotstrlen);
if (DO_UTF8(vecsv))
is_utf8 = TRUE;
==== //depot/maint-5.8/perl/t/TEST#2 (xtext) ====
Index: perl/t/TEST
--- perl/t/TEST#1~17645~ Fri Jul 19 12:29:57 2002
+++ perl/t/TEST Thu Jul 3 01:47:35 2003
@@ -228,7 +228,7 @@
my $testswitch = '-I. -MTestInit'; # -T will strict . from @INC
if ($type eq 'deparse') {
my $deparse =
- "./perl $testswitch $switch -I../lib -MO=-qq,Deparse,".
+ "./perl $testswitch $switch -I../lib -MO=-qq,Deparse,-sv1.,".
"-l$deparse_opts$file_opts ".
"$test > $test.dp ".
"&& ./perl $testswitch $switch -I../lib $test.dp |";
==== //depot/maint-5.8/perl/t/lib/warnings/toke#3 (text) ====
Index: perl/t/lib/warnings/toke
--- perl/t/lib/warnings/toke#2~18080~ Sun Nov 3 21:23:04 2002
+++ perl/t/lib/warnings/toke Thu Jul 3 01:47:35 2003
@@ -570,7 +570,7 @@
# toke.c
my $a = rand + 4 ;
EXPECT
-Warning: Use of "rand" without parens is ambiguous at - line 2.
+Warning: Use of "rand" without parentheses is ambiguous at - line 2.
########
# toke.c
$^W = 0 ;
@@ -583,9 +583,9 @@
}
$a = rand + 4 ;
EXPECT
-Warning: Use of "rand" without parens is ambiguous at - line 3.
-Warning: Use of "rand" without parens is ambiguous at - line 8.
-Warning: Use of "rand" without parens is ambiguous at - line 10.
+Warning: Use of "rand" without parentheses is ambiguous at - line 3.
+Warning: Use of "rand" without parentheses is ambiguous at - line 8.
+Warning: Use of "rand" without parentheses is ambiguous at - line 10.
########
# toke.c
sub fred {};
==== //depot/maint-5.8/perl/t/op/concat.t#4 (text) ====
Index: perl/t/op/concat.t
--- perl/t/op/concat.t#3~19844~ Sun Jun 22 12:38:58 2003
+++ perl/t/op/concat.t Thu Jul 3 01:47:35 2003
@@ -107,5 +107,5 @@
{
my $a; ($a .= 5) . 6;
- ok($a == 5, "($a .= 5) . 6 - present since 5.000");
+ ok($a == 5, '($a .= 5) . 6 - present since 5.000');
}
==== //depot/maint-5.8/perl/t/op/magic.t#15 (xtext) ====
Index: perl/t/op/magic.t
--- perl/t/op/magic.t#14~19922~ Tue Jul 1 22:43:27 2003
+++ perl/t/op/magic.t Thu Jul 3 01:47:35 2003
@@ -299,8 +299,19 @@
$ps;
};
my $ps = $mydollarzero->("x");
- ok(!$ps || # we allow that something goes wrong with the ps command
- $ps eq "x", 'altering $0 is effective (testing with `ps`)');
+ ok(!$ps # we allow that something goes wrong with the ps command
+ # In Linux 2.4 we would get an exact match ($ps eq 'x') but
+ # in Linux 2.2 there seems to be something funny going on:
+ # it seems as if the original length of the argv[] would
+ # be stored in the proc struct and then used by ps(1),
+ # no matter what characters we use to pad the argv[].
+ # (And if we use \0:s, they are shown as spaces.) Sigh.
+ || $ps =~ /^x\s*$/
+ # FreeBSD cannot get rid of both the leading "perl :"
+ # and the trailing " (perl)": some FreeBSD versions
+ # can get rid of the first one.
+ || ($^O eq 'freebsd' && $ps =~ m/^(?:perl: )?x(?: \(perl\))?$/),
+ 'altering $0 is effective (testing with `ps`)');
} else {
skip("\$0 check only on Linux and FreeBSD") for 0, 1;
}
==== //depot/maint-5.8/perl/t/op/ord.t#2 (xtext) ====
Index: perl/t/op/ord.t
--- perl/t/op/ord.t#1~17645~ Fri Jul 19 12:29:57 2002
+++ perl/t/op/ord.t Thu Jul 3 01:47:35 2003
@@ -2,7 +2,7 @@
BEGIN {
chdir 't' if -d 't';
- @INC = qw(.);
+ @INC = qw(. ../lib); # ../lib needed for test.deparse
require "test.pl";
}
==== //depot/maint-5.8/perl/t/op/sprintf.t#7 (xtext) ====
Index: perl/t/op/sprintf.t
--- perl/t/op/sprintf.t#6~18946~ Tue Mar 11 22:13:00 2003
+++ perl/t/op/sprintf.t Thu Jul 3 01:47:35 2003
@@ -380,3 +380,4 @@
>%*.*K %d< >[13, 29, 76]< >%*.*K 13 INVALID<
>%4$K %d< >[45, 67]< >%4$K 45 INVALID<
>%d %K %d< >[23, 45]< >23 %K 45 INVALID<
+>%*v*999\$d %d %d< >[11, 22, 33]< >%*v*999\$d 11 22 INVALID<
==== //depot/maint-5.8/perl/t/test.pl#4 (text) ====
Index: perl/t/test.pl
--- perl/t/test.pl#3~19515~ Tue May 13 10:51:05 2003
+++ perl/t/test.pl Thu Jul 3 01:47:35 2003
@@ -81,7 +81,7 @@
}
# DON'T use this for matches. Use like() instead.
-sub ok {
+sub ok ($@) {
my ($pass, $name, @mess) = @_;
_ok($pass, _where(), $name, @mess);
}
@@ -131,7 +131,7 @@
return @result;
}
-sub is {
+sub is ($$@) {
my ($got, $expected, $name, @mess) = @_;
my $pass;
@@ -150,7 +150,7 @@
_ok($pass, _where(), $name, @mess);
}
-sub isnt {
+sub isnt ($$@) {
my ($got, $isnt, $name, @mess) = @_;
my $pass;
@@ -169,7 +169,7 @@
_ok($pass, _where(), $name, @mess);
}
-sub cmp_ok {
+sub cmp_ok ($$$@) {
my($got, $type, $expected, $name, @mess) = @_;
my $pass;
@@ -202,7 +202,7 @@
# otherwise $range is a fractional error.
# Here $range must be numeric, >= 0
# Non numeric ranges might be a useful future extension. (eg %)
-sub within {
+sub within ($$$@) {
my ($got, $expected, $range, $name, @mess) = @_;
my $pass;
if (!defined $got or !defined $expected or !defined $range) {
@@ -234,7 +234,7 @@
}
# Note: this isn't quite as fancy as Test::More::like().
-sub like {
+sub like ($$@) {
my ($got, $expected, $name, @mess) = @_;
my $pass;
if (ref $expected eq 'Regexp') {
@@ -320,7 +320,7 @@
!$fail;
}
-sub require_ok {
+sub require_ok ($) {
my ($require) = @_;
eval <<REQUIRE_OK;
require $require;
@@ -328,7 +328,7 @@
_ok(!$@, _where(), "require $require");
}
-sub use_ok {
+sub use_ok ($) {
my ($use) = @_;
eval <<USE_OK;
use $use;
==== //depot/maint-5.8/perl/toke.c#21 (text) ====
Index: perl/toke.c
--- perl/toke.c#20~19704~ Fri Jun 6 22:24:27 2003
+++ perl/toke.c Thu Jul 3 01:47:35 2003
@@ -676,7 +676,7 @@
char ch = *s;
*s = '\0';
Perl_warner(aTHX_ packWARN(WARN_AMBIGUOUS),
- "Warning: Use of \"%s\" without parens is ambiguous",
+ "Warning: Use of \"%s\" without parentheses is ambiguous",
PL_last_uni);
*s = ch;
}
End of Patch.