Change 20947 by [EMAIL PROTECTED] on 2003/08/30 06:07:56
Integrate:
[ 20940]
Add a new test, to ensure that we don't unexpectedly change
prototypes of builtins.
[ 20941]
Subject: [patch sv.h api doc] SvTAINTED_on does its craft only under -T
From: Stas Bekman <[EMAIL PROTECTED]>
Date: Fri, 29 Aug 2003 17:11:41 -0700
Message-ID: <[EMAIL PROTECTED]>
[ 20942]
Subject: [PATCH: [EMAIL PROTECTED] fix File::Spec->abs2rel() to return
absolute $path more often for VMS
From: [EMAIL PROTECTED]
Date: Sat, 30 Aug 2003 00:57:28 -0400
Message-ID: <[EMAIL PROTECTED]>
[ 20943]
Missed from #20942.
[ 20944]
Subject: [PATCH] XSLoader nits and tests
From: Michael G Schwern <[EMAIL PROTECTED]>
Date: Fri, 29 Aug 2003 22:55:07 -0700
Message-ID: <[EMAIL PROTECTED]>
[ 20945]
Make XSLoader.t more robust (and sdbm.t more verbose)
[ 20946]
Tabify and re-sort MANIFEST.
Affected files ...
... //depot/maint-5.8/perl/MANIFEST#105 integrate
... //depot/maint-5.8/perl/ext/DynaLoader/XSLoader_pm.PL#4 integrate
... //depot/maint-5.8/perl/ext/DynaLoader/t/XSLoader.t#1 branch
... //depot/maint-5.8/perl/ext/SDBM_File/t/sdbm.t#2 integrate
... //depot/maint-5.8/perl/lib/File/Spec.pm#9 integrate
... //depot/maint-5.8/perl/lib/File/Spec/VMS.pm#8 integrate
... //depot/maint-5.8/perl/lib/File/Spec/t/Spec.t#6 integrate
... //depot/maint-5.8/perl/pod/perlapi.pod#19 integrate
... //depot/maint-5.8/perl/sv.h#18 integrate
... //depot/maint-5.8/perl/t/op/cproto.t#1 branch
Differences ...
==== //depot/maint-5.8/perl/MANIFEST#105 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#104~20926~ Thu Aug 28 09:45:10 2003
+++ perl/MANIFEST Fri Aug 29 23:07:56 2003
@@ -213,6 +213,7 @@
ext/DynaLoader/hints/openbsd.pl Hint for DynaLoader for named architecture
ext/DynaLoader/Makefile.PL Dynamic Loader makefile writer
ext/DynaLoader/README Dynamic Loader notes and intro
+ext/DynaLoader/t/XSLoader.t See if XSLoader works
ext/DynaLoader/XSLoader_pm.PL Simple XS Loader perl module
ext/Encode/AUTHORS List of authors
ext/Encode/bin/enc2xs Encode module generator
@@ -2685,6 +2686,7 @@
t/op/concat.t See if string concatenation works
t/op/cond.t See if conditional expressions work
t/op/context.t See if context propagation works
+t/op/cproto.t Check builtin prototypes
t/op/crypt.t See if crypt works
t/op/defins.t See if auto-insert of defined() works
t/op/delete.t See if delete works
==== //depot/maint-5.8/perl/ext/DynaLoader/XSLoader_pm.PL#4 (text) ====
Index: perl/ext/DynaLoader/XSLoader_pm.PL
--- perl/ext/DynaLoader/XSLoader_pm.PL#3~20636~ Tue Aug 12 01:58:28 2003
+++ perl/ext/DynaLoader/XSLoader_pm.PL Fri Aug 29 23:07:56 2003
@@ -14,19 +14,7 @@
package XSLoader;
-# And Gandalf said: 'Many folk like to know beforehand what is to
-# be set on the table; but those who have laboured to prepare the
-# feast like to keep their secret; for wonder makes the words of
-# praise louder.'
-
-# (Quote from Tolkien sugested by Anno Siegel.)
-#
-# See pod text at end of file for documentation.
-# See also ext/DynaLoader/README in source tree for other information.
-#
-# [EMAIL PROTECTED], August 1994
-
-$VERSION = "0.01"; # avoid typo warning
+$VERSION = "0.02";
# enable debug/trace messages from DynaLoader perl code
# $dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug;
@@ -45,14 +33,11 @@
!defined(&dl_error);
package XSLoader;
-1; # End of main code
-
-# The bootstrap function cannot be autoloaded (without complications)
-# so we define it here:
-
sub load {
package DynaLoader;
+ die q{XSLoader::load('Your::Module', $Your::Module::VERSION)} unless @_;
+
my($module) = $_[0];
# work with static linking too
@@ -137,6 +122,8 @@
goto &DynaLoader::bootstrap_inherit;
}
+1;
+
__END__
=head1 NAME
@@ -148,7 +135,7 @@
package YourPackage;
use XSLoader;
- XSLoader::load 'YourPackage', @args;
+ XSLoader::load 'YourPackage', $YourPackage::VERSION;
=head1 DESCRIPTION
==== //depot/maint-5.8/perl/ext/DynaLoader/t/XSLoader.t#1 (text) ====
Index: perl/ext/DynaLoader/t/XSLoader.t
--- /dev/null Tue May 5 13:32:27 1998
+++ perl/ext/DynaLoader/t/XSLoader.t Fri Aug 29 23:07:56 2003
@@ -0,0 +1,30 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+ chdir 't';
+ @INC = '../lib';
+ eval 'use Fcntl';
+ if ($@ =~ /dynamic loading not available/) {
+ print "1..0 # Skip: no dynamic loading\n";
+ exit;
+ }
+ require Config; import Config;
+ if (($Config{'extensions'} !~ /\bSDBM_File\b/) && ($^O ne 'VMS')){
+ print "1..0 # Skip: no SDBM_File\n";
+ exit 0;
+ }
+}
+
+use Test;
+plan tests => 4;
+
+use XSLoader;
+ok(1);
+ok( ref XSLoader->can('load') );
+
+eval { XSLoader::load(); };
+ok( $@ =~ /^XSLoader::load\('Your::Module', \$Your::Module::VERSION\)/ );
+
+package SDBM_File;
+XSLoader::load('SDBM_File');
+::ok( ref SDBM_File->can('TIEHASH') );
==== //depot/maint-5.8/perl/ext/SDBM_File/t/sdbm.t#2 (text) ====
Index: perl/ext/SDBM_File/t/sdbm.t
--- perl/ext/SDBM_File/t/sdbm.t#1~20271~ Mon Jul 28 08:18:57 2003
+++ perl/ext/SDBM_File/t/sdbm.t Fri Aug 29 23:07:56 2003
@@ -7,7 +7,7 @@
@INC = '../lib';
require Config; import Config;
if (($Config{'extensions'} !~ /\bSDBM_File\b/) && ($^O ne 'VMS')){
- print "1..0\n";
+ print "1..0 # Skip: no SDBM_File\n";
exit 0;
}
}
==== //depot/maint-5.8/perl/lib/File/Spec/VMS.pm#8 (text) ====
Index: perl/lib/File/Spec/VMS.pm
--- perl/lib/File/Spec/VMS.pm#7~20800~ Thu Aug 21 07:35:19 2003
+++ perl/lib/File/Spec/VMS.pm Fri Aug 29 23:07:56 2003
@@ -412,6 +412,21 @@
$base = $self->canonpath( $base ) ;
}
+ # Are we even starting $path on the same (node::)device as $base? Note that
+ # logical paths or nodename differences may be on the "same device"
+ # but the comparison that ignores device differences so as to concatenate
+ # [---] up directory specs is not even a good idea in cases where there is
+ # a logical path difference between $path and $base nodename and/or device.
+ # Hence we fall back to returning the absolute $path spec
+ # if there is a case blind device (or node) difference of any sort
+ # and we do not even try to call $parse() or consult %ENV for $trnlnm()
+ # (this module needs to run on non VMS platforms after all).
+ my $path_device = ($self->splitpath( $path, 1 ))[0];
+ my $base_device = ($self->splitpath( $base, 1 ))[0];
+ if ( lc( $path_device ) ne lc( $base_device ) ) {
+ return ( $path ) ;
+ }
+
# Split up paths
my ( $path_directories, $path_file ) =
($self->splitpath( $path, 1 ))[1,2] ;
==== //depot/maint-5.8/perl/lib/File/Spec/t/Spec.t#6 (text) ====
Index: perl/lib/File/Spec/t/Spec.t
--- perl/lib/File/Spec/t/Spec.t#5~20802~ Thu Aug 21 08:07:17 2003
+++ perl/lib/File/Spec/t/Spec.t Fri Aug 29 23:07:56 2003
@@ -304,8 +304,8 @@
[ "VMS->catdir('[.name]')", '[.name]'
],
[ "VMS->catdir('[.name]','[.name]')",
'[.name.name]'],
-[ "VMS->abs2rel('node::volume:[t1.t2.t3]','[t1.t2.t3]')", '' ],
-[ "VMS->abs2rel('node::volume:[t1.t2.t4]','[t1.t2.t3]')", '[-.t4]' ],
+[ "VMS->abs2rel('node::volume:[t1.t2.t3]','node::volume:[t1.t2.t3]')", ''
],
+[ "VMS->abs2rel('node::volume:[t1.t2.t4]','node::volume:[t1.t2.t3]')", '[-.t4]'
],
[ "VMS->abs2rel('[t1.t2.t3]','[t1.t2.t3]')", '' ],
[ "VMS->abs2rel('[t1.t2.t3]file','[t1.t2.t3]')", 'file' ],
[ "VMS->abs2rel('[t1.t2.t4]','[t1.t2.t3]')", '[-.t4]' ],
@@ -313,7 +313,7 @@
[ "VMS->abs2rel('[t1.t2.t3.t4]','[t1.t2.t3]')", '[t4]' ],
[ "VMS->abs2rel('[t4.t5.t6]','[t1.t2.t3]')", '[---.t4.t5.t6]' ],
[ "VMS->abs2rel('[000000]','[t1.t2.t3]')", '[---]' ],
-[ "VMS->abs2rel('a:[t1.t2.t4]','[t1.t2.t3]')", '[-.t4]' ],
+[ "VMS->abs2rel('a:[t1.t2.t4]','a:[t1.t2.t3]')", '[-.t4]' ],
[ "VMS->abs2rel('[a.-.b.c.-]','[t1.t2.t3]')", '[---.b]' ],
[ "VMS->rel2abs('[.t4]','[t1.t2.t3]')", '[t1.t2.t3.t4]' ],
==== //depot/maint-5.8/perl/pod/perlapi.pod#19 (text+w) ====
Index: perl/pod/perlapi.pod
--- perl/pod/perlapi.pod#18~20918~ Wed Aug 27 06:15:45 2003
+++ perl/pod/perlapi.pod Fri Aug 29 23:07:56 2003
@@ -3221,7 +3221,7 @@
=item SvTAINT
-Taints an SV if tainting is enabled
+Taints an SV if tainting is enabled.
void SvTAINT(SV* sv)
@@ -3254,7 +3254,7 @@
=item SvTAINTED_on
-Marks an SV as tainted.
+Marks an SV as tainted if tainting is enabled.
void SvTAINTED_on(SV* sv)
==== //depot/maint-5.8/perl/sv.h#18 (text) ====
Index: perl/sv.h
--- perl/sv.h#17~20606~ Sun Aug 10 13:43:47 2003
+++ perl/sv.h Fri Aug 29 23:07:56 2003
@@ -822,7 +822,7 @@
not.
=for apidoc Am|void|SvTAINTED_on|SV* sv
-Marks an SV as tainted.
+Marks an SV as tainted if tainting is enabled.
=for apidoc Am|void|SvTAINTED_off|SV* sv
Untaints an SV. Be I<very> careful with this routine, as it short-circuits
@@ -833,7 +833,7 @@
untainting variables.
=for apidoc Am|void|SvTAINT|SV* sv
-Taints an SV if tainting is enabled
+Taints an SV if tainting is enabled.
=cut
*/
==== //depot/maint-5.8/perl/t/op/cproto.t#1 (text) ====
Index: perl/t/op/cproto.t
--- /dev/null Tue May 5 13:32:27 1998
+++ perl/t/op/cproto.t Fri Aug 29 23:07:56 2003
@@ -0,0 +1,256 @@
+#!./perl
+# Tests to ensure that we don't unexpectedly change prototypes of builtins
+
+use Test::More tests => 234;
+while (<DATA>) {
+ chomp;
+ my ($keyword, $proto) = split;
+ if ($proto eq 'undef') {
+ ok( !defined prototype "CORE::".$keyword, $keyword );
+ }
+ elsif ($proto eq 'unknown') {
+ eval { prototype "CORE::".$keyword };
+ like( $@, qr/Can't find an opnumber for/, $keyword );
+ }
+ else {
+ is( "(".prototype("CORE::".$keyword).")", $proto, $keyword );
+ }
+}
+
+# the keyword list :
+
+__DATA__
+abs (;$)
+accept (**)
+alarm (;$)
+and ()
+atan2 ($$)
+bind (*$)
+binmode (*;$)
+bless ($;$)
+caller (;$)
+chdir (;$)
+chmod (@)
+chomp undef
+chop undef
+chown (@)
+chr (;$)
+chroot (;$)
+close (;*)
+closedir (*)
+cmp unknown
+connect (*$)
+continue unknown
+cos (;$)
+crypt ($$)
+dbmclose (\%)
+dbmopen (\%$$)
+defined undef
+delete undef
+die (@)
+do undef
+dump ()
+each (\%)
+else undef
+elsif undef
+endgrent ()
+endhostent ()
+endnetent ()
+endprotoent ()
+endpwent ()
+endservent ()
+eof (;*)
+eq ($$)
+err unknown
+eval undef
+exec undef
+exists undef
+exit (;$)
+exp (;$)
+fcntl (*$$)
+fileno (*)
+flock (*$)
+for undef
+foreach undef
+fork ()
+format undef
+formline ($@)
+ge ($$)
+getc (;*)
+getgrent ()
+getgrgid ($)
+getgrnam ($)
+gethostbyaddr ($$)
+gethostbyname ($)
+gethostent ()
+getlogin ()
+getnetbyaddr ($$)
+getnetbyname ($)
+getnetent ()
+getpeername (*)
+getpgrp (;$)
+getppid ()
+getpriority ($$)
+getprotobyname ($)
+getprotobynumber ($)
+getprotoent ()
+getpwent ()
+getpwnam ($)
+getpwuid ($)
+getservbyname ($$)
+getservbyport ($$)
+getservent ()
+getsockname (*)
+getsockopt (*$$)
+glob undef
+gmtime (;$)
+goto undef
+grep undef
+gt ($$)
+hex (;$)
+if undef
+index ($$;$)
+int (;$)
+ioctl (*$$)
+join ($@)
+keys (\%)
+kill (@)
+last undef
+lc (;$)
+lcfirst (;$)
+le ($$)
+length (;$)
+link ($$)
+listen (*$)
+local undef
+localtime (;$)
+lock (\$)
+log (;$)
+lstat (*)
+lt ($$)
+m undef
+map undef
+mkdir ($;$)
+msgctl ($$$)
+msgget ($$)
+msgrcv ($$$$$)
+msgsnd ($$$)
+my undef
+ne ($$)
+next undef
+no undef
+not ($)
+oct (;$)
+open (*;$@)
+opendir (*$)
+or ()
+ord (;$)
+our undef
+pack ($@)
+package undef
+pipe (**)
+pop (;\@)
+pos undef
+print undef
+printf undef
+prototype undef
+push (\@@)
+q undef
+qq undef
+qr undef
+quotemeta (;$)
+qw undef
+qx undef
+rand (;$)
+read (*\$$;$)
+readdir (*)
+readline (;*)
+readlink (;$)
+readpipe unknown
+recv (*\$$$)
+redo undef
+ref (;$)
+rename ($$)
+require undef
+reset (;$)
+return undef
+reverse (@)
+rewinddir (*)
+rindex ($$;$)
+rmdir (;$)
+s undef
+scalar undef
+seek (*$$)
+seekdir (*$)
+select (;*)
+semctl ($$$$)
+semget ($$$)
+semop ($$)
+send (*$$;$)
+setgrent ()
+sethostent ($)
+setnetent ($)
+setpgrp undef
+setpriority ($$$)
+setprotoent ($)
+setpwent ()
+setservent ($)
+setsockopt (*$$$)
+shift (;\@)
+shmctl ($$$)
+shmget ($$$)
+shmread ($$$$)
+shmwrite ($$$$)
+shutdown (*$)
+sin (;$)
+sleep (;$)
+socket (*$$$)
+socketpair (**$$$)
+sort undef
+splice (\@;$$@)
+split undef
+sprintf ($@)
+sqrt (;$)
+srand (;$)
+stat (*)
+study undef
+sub undef
+substr ($$;$$)
+symlink ($$)
+syscall ($@)
+sysopen (*$$;$)
+sysread (*\$$;$)
+sysseek (*$$)
+system undef
+syswrite (*$;$$)
+tell (;*)
+telldir (*)
+tie undef
+tied undef
+time ()
+times ()
+tr undef
+truncate ($$)
+uc (;$)
+ucfirst (;$)
+umask (;$)
+undef undef
+unless undef
+unlink (@)
+unpack ($;$)
+unshift (\@@)
+untie undef
+until undef
+use undef
+utime (@)
+values (\%)
+vec ($$$)
+wait ()
+waitpid ($$)
+wantarray ()
+warn (@)
+while undef
+write (;*)
+x unknown
+xor ($$)
+y undef
End of Patch.