Change 20028 by [EMAIL PROTECTED] on 2003/07/06 08:35:50

        Integrate:
        [ 20016]
        OpenBSD sometimes gets -0, probably due to fp fuzziness..
        
        [ 20017]
        Subject: [PATCH] fix for ext/threads/t/problems.t failures
        From: Dave Mitchell <[EMAIL PROTECTED]>
        Date: Sat, 5 Jul 2003 19:12:51 +0100
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 20018]
        Add PerlIOBuf_close to makedef.pl as pointed out by
        Vadim Konovalov; add also PerlIOBuf_dup; sort and remove
        duplicates.
        
        [ 20019]
        Make a read from a write-only fh to set errno
        (found by Gisle)
        
        [ 20020]
        Upgrade to Digest::MD5 2.25.
        
        [ 20021]
        Reintroduce changes #19723 and #19723 that were not
        in Net::Ping 2.31; needed for Windows.
        
        [ 20022]
        Subject: [PATCH] ExtUtils::MakeMaker 6.10_07
        From: Michael G Schwern <[EMAIL PROTECTED]>
        Date: Sat, 5 Jul 2003 16:59:49 -0700
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 20023]
        Subject: Re: maint @ 19975 [PATCH lib/Test/Harness.pm]
        From: Michael G Schwern <[EMAIL PROTECTED]>
        Date: Sat, 5 Jul 2003 13:34:37 -0700
        Message-ID: <[EMAIL PROTECTED]>
        
        Print out the "ok" messages only once every second,
        this should make output much less and therefore testing
        much faster, especially on slower connections.
        
        [ 20024]
        The change #20022 didn't work for Command.t.
        
        [ 20025]
        Make the 'slow ok' feature optional.
        
        [ 20026]
        FreeBSD: if someone *really* wants to use the system malloc.

Affected files ...

... //depot/maint-5.8/perl/MANIFEST#69 integrate
... //depot/maint-5.8/perl/ext/Digest/MD5/Changes#6 integrate
... //depot/maint-5.8/perl/ext/Digest/MD5/MD5.pm#6 integrate
... //depot/maint-5.8/perl/ext/Digest/MD5/MD5.xs#7 integrate
... //depot/maint-5.8/perl/ext/Digest/MD5/t/badfile.t#2 integrate
... //depot/maint-5.8/perl/ext/Digest/MD5/t/clone.t#1 branch
... //depot/maint-5.8/perl/ext/Digest/MD5/t/files.t#9 integrate
... //depot/maint-5.8/perl/ext/threads/t/problems.t#3 integrate
... //depot/maint-5.8/perl/hints/freebsd.sh#5 integrate
... //depot/maint-5.8/perl/lib/Benchmark.t#4 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/Changes#6 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/META.yml#4 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/MM_Unix.pm#10 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/MM_VMS.pm#9 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/MM_Win32.pm#4 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/MakeMaker/FAQ.pod#6 integrate
... //depot/maint-5.8/perl/lib/ExtUtils/t/Command.t#4 integrate
... //depot/maint-5.8/perl/lib/Net/Ping/t/250_ping_hires.t#4 integrate
... //depot/maint-5.8/perl/lib/Net/Ping/t/450_service.t#7 integrate
... //depot/maint-5.8/perl/lib/Test/Harness.pm#6 integrate
... //depot/maint-5.8/perl/makedef.pl#10 integrate
... //depot/maint-5.8/perl/perlio.c#26 integrate

Differences ...

==== //depot/maint-5.8/perl/MANIFEST#69 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#68~20013~     Sat Jul  5 06:58:18 2003
+++ perl/MANIFEST       Sun Jul  6 01:35:50 2003
@@ -186,6 +186,7 @@
 ext/Digest/MD5/README          Digest::MD5 extension Readme
 ext/Digest/MD5/t/align.t       See if Digest::MD5 extension works
 ext/Digest/MD5/t/badfile.t     See if Digest::MD5 extension works
+ext/Digest/MD5/t/clone.t       See if Digest::MD5 extension works
 ext/Digest/MD5/t/files.t       See if Digest::MD5 extension works
 ext/Digest/MD5/t/md5-aaa.t     See if Digest::MD5 extension works
 ext/Digest/MD5/t/utf8.t                See if Digest::MD5 extension works

==== //depot/maint-5.8/perl/ext/Digest/MD5/Changes#6 (text) ====
Index: perl/ext/Digest/MD5/Changes
--- perl/ext/Digest/MD5/Changes#5~19991~        Fri Jul  4 06:54:33 2003
+++ perl/ext/Digest/MD5/Changes Sun Jul  6 01:35:50 2003
@@ -1,3 +1,19 @@
+2003-07-04   Gisle Aas <[EMAIL PROTECTED]>
+
+   Release 2.25
+
+   The $md5->addfile method now croaks if it discovers
+   errors on the handle after reading from it.  This should
+   make it more difficult to end up with the wrong digest
+   just because you are to lazy to check the error status
+   on your file handles after reading from them.
+
+   Improved documentation.
+
+   Sync up with bleadperl; even safer patchlevel include.
+
+
+
 2003-03-09   Gisle Aas <[EMAIL PROTECTED]>
 
    Release 2.24

==== //depot/maint-5.8/perl/ext/Digest/MD5/MD5.pm#6 (text) ====
Index: perl/ext/Digest/MD5/MD5.pm
--- perl/ext/Digest/MD5/MD5.pm#5~19991~ Fri Jul  4 06:54:33 2003
+++ perl/ext/Digest/MD5/MD5.pm  Sun Jul  6 01:35:50 2003
@@ -3,7 +3,7 @@
 use strict;
 use vars qw($VERSION @ISA @EXPORT_OK);
 
-$VERSION = '2.24';  # $Date: 2003/03/09 15:23:10 $
+$VERSION = '2.25';  # $Date: 2003/07/05 05:25:37 $
 
 require Exporter;
 *import = \&Exporter::import;
@@ -43,7 +43,7 @@
 =head1 SYNOPSIS
 
  # Functional style
- use Digest::MD5  qw(md5 md5_hex md5_base64);
+ use Digest::MD5 qw(md5 md5_hex md5_base64);
 
  $digest = md5($data);
  $digest = md5_hex($data);
@@ -72,80 +72,111 @@
 use, as well as an object oriented interface that can handle messages
 of arbitrary length and which can read files directly.
 
-A binary digest will be 16 bytes long.  A hex digest will be 32
-characters long.  A base64 digest will be 22 characters long.
-
 =head1 FUNCTIONS
 
-The following functions can be exported from the C<Digest::MD5>
-module.  No functions are exported by default.
+The following functions are provided by the C<Digest::MD5> module.
+None of these functions are exported by default.
 
 =over 4
 
 =item md5($data,...)
 
 This function will concatenate all arguments, calculate the MD5 digest
-of this "message", and return it in binary form.
+of this "message", and return it in binary form.  The returned string
+will be 16 bytes long.
+
+The result of md5("a", "b", "c") will be exactly the same as the
+result of md5("abc").
 
 =item md5_hex($data,...)
 
-Same as md5(), but will return the digest in hexadecimal form.
+Same as md5(), but will return the digest in hexadecimal form. The
+length of the returned string will be 32 and it will only contain
+characters from this set: '0'..'9' and 'a'..'f'.
 
 =item md5_base64($data,...)
 
 Same as md5(), but will return the digest as a base64 encoded string.
-
-The base64 encoded string returned is not padded to be a multiple of 4
-bytes long.  If you want interoperability with other base64 encoded
-md5 digests you might want to append the string "==" to the result.
+The length of the returned string will be 22 and it will only contain
+characters from this set: 'A'..'Z', 'a'..'z', '0'..'9', '+' and
+'/'.
+
+Note that the base64 encoded string returned is not padded to be a
+multiple of 4 bytes long.  If you want interoperability with other
+base64 encoded md5 digests you might want to append the redundant
+string redundant "==" to the result.
 
 =back
 
 =head1 METHODS
 
-The following methods are available:
+The object oriented interface to C<Digest::MD5> is described in this
+section.  After a C<Digest::MD5> object has been created, you will add
+data to it and finally ask for the digest in a suitable format.  A
+single object can be used to calculate multiple digests.
+
+The following methods are provided:
 
 =over 4
 
 =item $md5 = Digest::MD5->new
 
 The constructor returns a new C<Digest::MD5> object which encapsulate
-the state of the MD5 message-digest algorithm.  You can add data to
-the object and finally ask for the digest.
+the state of the MD5 message-digest algorithm.
 
 If called as an instance method (i.e. $md5->new) it will just reset the
 state the object to the state of a newly created object.  No new
 object is created in this case.
 
-=item $md5->clone
-
-This is a copy constructor returning a clone of the $md5 object. It is
-useful when you do not want to destroy the digests state, but need an
-intermediate value of the digest, e.g. when calculating digests
-iteratively on a continuous data stream in order to obtain a copy which
-may be destroyed.
-
 =item $md5->reset
 
 This is just an alias for $md5->new.
 
+=item $md5->clone
+
+This a copy of the $md5 object. It is useful when you do not want to
+destroy the digests state, but need an intermediate value of the
+digest, e.g. when calculating digests iteratively on a continuous data
+stream.  Example:
+
+    my $md5 = Digest::MD5->new;
+    while (<>) {
+       $md5->add($_);
+       print "Line $.: ", $md5->clone->hexdigest, "\n";
+    }
+
 =item $md5->add($data,...)
 
 The $data provided as argument are appended to the message we
 calculate the digest for.  The return value is the $md5 object itself.
 
+All these lines will have the same effect on the state of the $md5
+object:
+
+    $md5->add("a"); $md5->add("b"); $md5->add("c");
+    $md5->add("a")->add("b")->add("c");
+    $md5->add("a", "b", "c");
+    $md5->add("abc");
+
 =item $md5->addfile($io_handle)
 
-The $io_handle is read until EOF and the content is appended to the
+The $io_handle will be read until EOF and its content appended to the
 message we calculate the digest for.  The return value is the $md5
 object itself.
 
-In most cases you want to make sure that the $io_handle is set up to
-be in binmode().
+The addfile() method will croak() if it fails reading data for some
+reason.  If it croaks it is unpredictable what the state of the $md5
+object will be in. The addfile() method might have been able to read
+the file partially before it failed.  It is probably wise to discard
+or reset the $md5 object if this occurs.
+
+In most cases you want to make sure that the $io_handle is in
+C<binmode> before you pass it as argument to the addfile() method.
 
 =item $md5->digest
 
-Return the binary digest for the message.
+Return the binary digest for the message.  The returned string will be
+16 bytes long.
 
 Note that the C<digest> operation is effectively a destructive,
 read-once operation. Once it has been performed, the C<Digest::MD5>
@@ -155,12 +186,17 @@
 
 =item $md5->hexdigest
 
-Same as $md5->digest, but will return the digest in hexadecimal form.
+Same as $md5->digest, but will return the digest in hexadecimal
+form. The length of the returned string will be 32 and it will only
+contain characters from this set: '0'..'9' and 'a'..'f'.
 
 =item $md5->b64digest
 
 Same as $md5->digest, but will return the digest as a base64 encoded
-string.
+string.  The length of the returned string will be 22 and it will only
+contain characters from this set: 'A'..'Z', 'a'..'z', '0'..'9', '+'
+and '/'.
+
 
 The base64 encoded string returned is not padded to be a multiple of 4
 bytes long.  If you want interoperability with other base64 encoded
@@ -177,12 +213,11 @@
     use Digest::MD5 qw(md5_hex);
     print "Digest is ", md5_hex("foobarbaz"), "\n";
 
-The above example would print out the message
+The above example would print out the message:
 
     Digest is 6df23dc03f9b54cc38a0fc1483df6e21
 
-provided that the implementation is working correctly.  The same
-checksum can also be calculated in OO style:
+The same checksum can also be calculated in OO style:
 
     use Digest::MD5;
     
@@ -266,9 +301,9 @@
  Copyright 1995-1996 Neil Winton.
  Copyright 1991-1992 RSA Data Security, Inc.
 
-The MD5 algorithm is defined in RFC 1321. The basic C code
-implementing the algorithm is derived from that in the RFC and is
-covered by the following copyright:
+The MD5 algorithm is defined in RFC 1321. This implementation is
+derived from the reference C code in RFC 1321 which is covered by
+the following copyright statement:
 
 =over 4
 
@@ -303,9 +338,9 @@
 
 =head1 AUTHORS
 
-The original MD5 interface was written by Neil Winton
+The original C<MD5> interface was written by Neil Winton
 (C<[EMAIL PROTECTED]>).
 
-This release was made by Gisle Aas <[EMAIL PROTECTED]>
+The C<Digest::MD5> module is written by Gisle Aas <[EMAIL PROTECTED]>.
 
 =cut

==== //depot/maint-5.8/perl/ext/Digest/MD5/MD5.xs#7 (text) ====
Index: perl/ext/Digest/MD5/MD5.xs
--- perl/ext/Digest/MD5/MD5.xs#6~19996~ Fri Jul  4 07:41:18 2003
+++ perl/ext/Digest/MD5/MD5.xs  Sun Jul  6 01:35:50 2003
@@ -1,4 +1,4 @@
-/* $Id: MD5.xs,v 1.37 2003/03/09 15:20:43 gisle Exp $ */
+/* $Id: MD5.xs,v 1.39 2003/07/05 05:25:37 gisle Exp $ */
 
 /* 
  * This library is free software; you can redistribute it and/or
@@ -636,10 +636,17 @@
                    XSRETURN(1);  /* self */
            }
 
-           /* Process blocks until EOF */
+           /* Process blocks until EOF or error */
             while ( (n = PerlIO_read(fh, buffer, sizeof(buffer)))) {
                MD5Update(context, buffer, n);
            }
+
+           if (PerlIO_error(fh)) {
+               croak("Reading from filehandle failed");
+           }
+       }
+       else {
+           croak("No filehandle passed");
        }
        XSRETURN(1);  /* self */
 

==== //depot/maint-5.8/perl/ext/Digest/MD5/t/badfile.t#2 (text) ====
Index: perl/ext/Digest/MD5/t/badfile.t
--- perl/ext/Digest/MD5/t/badfile.t#1~17645~    Fri Jul 19 12:29:57 2002
+++ perl/ext/Digest/MD5/t/badfile.t     Sun Jul  6 01:35:50 2003
@@ -1,7 +1,7 @@
 # Digest::MD5 2.07 and older used to trigger a core dump when
 # passed an illegal file handle that failed to open.
 
-print "1..2\n";
+print "1..3\n";
 
 use Digest::MD5 ();
 
@@ -11,11 +11,22 @@
    use vars qw(*FOO);
    $md5->addfile(*FOO);
 };
-print "not " unless $@ =~ /^Bad filehandle: FOO/;
+print "not " unless $@ =~ /^Bad filehandle: FOO at/;
 print "ok 1\n";
 
-open(BAR, "none-existing-file.$$");
-$md5->addfile(*BAR);
-
-print "not " unless $md5->hexdigest eq "d41d8cd98f00b204e9800998ecf8427e";
+open(BAR, "no-existing-file.$$");
+eval {
+    $md5->addfile(*BAR);
+};
+print "not " unless $@ =~ /^No filehandle passed at/;
 print "ok 2\n";
+
+open(BAR, ">no-existing-file.$$") || die;
+eval {
+    $md5->addfile(*BAR);
+};
+print "not " unless $@ =~ /^Reading from filehandle failed at/;
+print "ok 3\n";
+
+close(BAR);
+unlink("no-existing-file.$$");

==== //depot/maint-5.8/perl/ext/Digest/MD5/t/clone.t#1 (text) ====
Index: perl/ext/Digest/MD5/t/clone.t
--- /dev/null   Tue May  5 13:32:27 1998
+++ perl/ext/Digest/MD5/t/clone.t       Sun Jul  6 01:35:50 2003
@@ -0,0 +1,41 @@
+#!perl -w
+
+print "1..6\n";
+
+use strict;
+use Digest::MD5 qw(md5_hex);
+
+my $a = Digest::MD5->new;
+$a->add("a");
+my $b = $a->clone;
+
+print "not " unless $b->clone->hexdigest eq md5_hex("a");
+print "ok 1\n";
+
+$a->add("a");
+print "not " unless $a->hexdigest eq md5_hex("aa");
+print "ok 2\n";
+
+print "not " unless $a->hexdigest eq md5_hex("");
+print "ok 3\n";
+
+$b->add("b");
+print "not " unless $b->clone->hexdigest eq md5_hex("ab");
+print "ok 4\n";
+
+$b->add("c");
+print "not " unless $b->clone->hexdigest eq md5_hex("abc");
+print "ok 5\n";
+
+# Test that cloning picks up the correct class for subclasses.
+{
+   package MD5;
+   @MD5::ISA = qw(Digest::MD5);
+}
+
+$a = MD5->new;
+$a->add("a");
+$b = $a->clone;
+
+print "not " unless ref($b) eq "MD5" && $b->add("b")->hexdigest eq md5_hex("ab");
+print "ok 6\n";

==== //depot/maint-5.8/perl/ext/Digest/MD5/t/files.t#9 (text) ====
Index: perl/ext/Digest/MD5/t/files.t
--- perl/ext/Digest/MD5/t/files.t#8~19996~      Fri Jul  4 07:41:18 2003
+++ perl/ext/Digest/MD5/t/files.t       Sun Jul  6 01:35:50 2003
@@ -20,27 +20,27 @@
 my $EXPECT;
 if (ord "A" == 193) { # EBCDIC
     $EXPECT = <<EOT;
-4ee4091bda2bb74fb2416c2fdb0c4d4a  Changes
+fcc48d6bb88ca8065bf9ddfcb9e7483e  Changes
 0565ec21b15c0f23f4c51fb327c8926d  README
-b00637894d2bd395ffda2fa84adefdfd  MD5.pm
-69a111069b0948dc9344f73e6524317a  MD5.xs
+1965beb0e48253b694220fbb5d6230f5  MD5.pm
+5b3c24da3f70f3c0938cc7c205a28ab7  MD5.xs
 276da0aa4e9a08b7fe09430c9c5690aa  rfc1321.txt
 EOT
 } elsif ("\n" eq "\015") { # MacOS
     $EXPECT = <<EOT;
-0b95218ddeca76d2ccd6362b8e7c05a4  Changes
+f161f474603c54a0093ad2f6f93be33b  Changes
 6c950a0211a5a28f023bb482037698cd  README
-f854bd4984ad0e73c483a49a28893c74  MD5.pm
-810dbca708183e3402f3354e5bbf8401  MD5.xs
+18178c90bc13d6824f6c96973b6e9433  MD5.pm
+2c7fdb2ffa3840dc4f8dcdcf13241015  MD5.xs
 754b9db19f79dbc4992f7166eb0f37ce  rfc1321.txt
 EOT
 } else {
     # This is the output of: 'md5sum Changes README MD5.pm MD5.xs rfc1321.txt'
     $EXPECT = <<EOT;
-d7b1bf11283114d1b765f433a5d7b447  Changes
+029fa5059ba0b2175cee09ab5d9b7b73  Changes
 6c950a0211a5a28f023bb482037698cd  README
-f854bd4984ad0e73c483a49a28893c74  MD5.pm
-810dbca708183e3402f3354e5bbf8401  MD5.xs
+18178c90bc13d6824f6c96973b6e9433  MD5.pm
+2c7fdb2ffa3840dc4f8dcdcf13241015  MD5.xs
 754b9db19f79dbc4992f7166eb0f37ce  rfc1321.txt
 EOT
 }

==== //depot/maint-5.8/perl/ext/threads/t/problems.t#3 (text) ====
Index: perl/ext/threads/t/problems.t
--- perl/ext/threads/t/problems.t#2~19722~      Mon Jun  9 10:52:25 2003
+++ perl/ext/threads/t/problems.t       Sun Jul  6 01:35:50 2003
@@ -9,11 +9,29 @@
     }
 }
 
-use ExtUtils::testlib;
+use warnings;
 use strict;
 use threads;
 use threads::shared;
-use Test::More tests => 4;
+
+# Note that we can't use  Test::More here, as we would need to
+# call is() from within the DESTROY() function at global destruction time,
+# and parts of Test::* may have already been freed by then
+
+print "1..4\n";
+
+my $test : shared = 1;
+
+sub is($$$) {
+    my ($got, $want, $desc) = @_;
+    unless ($got eq $want) {
+       print "# EXPECTED: $want\n";
+       print "# GOT:      got\n";
+       print "not ";
+    }
+    print "ok $test - $desc\n";
+    $test++;
+}
 
 
 #
@@ -24,32 +42,21 @@
 #########################
 
 $|++;
-use Devel::Peek;
-
 
 { 
-
     sub Foo::DESTROY { 
        my $self = shift;
        my ($package, $file, $line) = caller;
-       is(threads->tid(),$self->{tid}, "In destroy it should be correct too" )
+       is(threads->tid(),$self->{tid},
+               "In destroy[$self->{tid}] it should be correct too" )
     }
     my $foo;
     $foo = bless {tid => 0}, 'Foo';                      
     my $bar = threads->create(sub { 
-       is(threads->tid(),1, "And tid be 10 here");
+       is(threads->tid(),1, "And tid be 1 here");
        $foo->{tid} = 1;
        return $foo;
     })->join();
     $bar->{tid} = 0;
-
-
 }
 1;
-
-
-
-
-
-
-

==== //depot/maint-5.8/perl/hints/freebsd.sh#5 (text) ====
Index: perl/hints/freebsd.sh
--- perl/hints/freebsd.sh#4~19791~      Sun Jun 15 10:57:06 2003
+++ perl/hints/freebsd.sh       Sun Jul  6 01:35:50 2003
@@ -95,9 +95,15 @@
 4.*)   # In FreeBSD 4 and 5 the system malloc is performance-wise
        # VERY bad for Perl-- we are talking of differences of not
        # one, but TWO magnitudes.
-       usemymalloc=y
+       case "$usemymalloc" in
+       "") usemymalloc='y'
+           ;;
+       esac
        ;;
-5.*)   usemymalloc=y
+5.*)   case "$usemymalloc" in
+       "") usemymalloc='y'
+           ;;
+       esac
        ;;
 *)     usevfork='true'
        case "$usemymalloc" in

==== //depot/maint-5.8/perl/lib/Benchmark.t#4 (text) ====
Index: perl/lib/Benchmark.t
--- perl/lib/Benchmark.t#3~19193~       Sat Apr 12 11:46:31 2003
+++ perl/lib/Benchmark.t        Sun Jul  6 01:35:50 2003
@@ -305,10 +305,12 @@
         $all_passed
           &= is ($slowrate, $fastrate,
                  "slow rate isn't less than fast rate, so should be the same");
+       # In OpenBSD the $slowfast is sometimes a really, really, really
+       # small number less than zero, and this gets stringified as -0.
         $all_passed
-          &= is ($slowfast, 0, "slowfast should be zero");
+          &= like ($slowfast, qr/^-?0$/, "slowfast should be zero");
         $all_passed
-          &= is ($fastslow, 0, "fastslow should be zero");
+          &= like ($fastslow, qr/^-?0$/, "fastslow should be zero");
     }
     return $all_passed;
 }

==== //depot/maint-5.8/perl/lib/ExtUtils/Changes#6 (text) ====
Index: perl/lib/ExtUtils/Changes
--- perl/lib/ExtUtils/Changes#5~19722~  Mon Jun  9 10:52:25 2003
+++ perl/lib/ExtUtils/Changes   Sun Jul  6 01:35:50 2003
@@ -1,3 +1,12 @@
+6.10_07
+    - Sun's make treats escaped newlines oddly.  Switching oneliner() back
+      to using multiple -e's.
+    * Bug in libscan() meant that any .pm containing RCS or CVS or SCCS
+      in its name (for example, RCS.pm) would be skipped.
+    - Command.t was getting confused in the core because it was reading
+      files from the core t/ directory, not MakeMaker's t/ directry.
+    - MM_OS2 PERL_ARCHIVE_AFTER test wrong for a.out systems (Ilya)
+
 6.10_06 Sat Jun  7 00:55:29 PDT 2003
     - Whoops, Liblist.t busted on VMS after I turned strict on in
       ExtUtils::Liblist::Kid.  Merely a test bug, not a real bug.

==== //depot/maint-5.8/perl/lib/ExtUtils/META.yml#4 (text) ====
Index: perl/lib/ExtUtils/META.yml
--- perl/lib/ExtUtils/META.yml#3~19722~ Mon Jun  9 10:52:25 2003
+++ perl/lib/ExtUtils/META.yml  Sun Jul  6 01:35:50 2003
@@ -1,6 +1,6 @@
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         ExtUtils-MakeMaker
-version:      6.10_06
+version:      6.10_07
 version_from: lib/ExtUtils/MakeMaker.pm
 installdirs:  perl
 requires:
@@ -10,4 +10,4 @@
     Pod::Man:                      0
 
 distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.10_06
+generated_by: ExtUtils::MakeMaker version 6.10_07

==== //depot/maint-5.8/perl/lib/ExtUtils/MM_Unix.pm#10 (text) ====
Index: perl/lib/ExtUtils/MM_Unix.pm
--- perl/lib/ExtUtils/MM_Unix.pm#9~19823~       Thu Jun 19 07:51:22 2003
+++ perl/lib/ExtUtils/MM_Unix.pm        Sun Jul  6 01:35:50 2003
@@ -20,7 +20,7 @@
 
 use ExtUtils::MakeMaker qw($Verbose neatvalue);
 
-$VERSION = '1.36';
+$VERSION = '1.37';
 
 require ExtUtils::MM_Any;
 @ISA = qw(ExtUtils::MM_Any);
@@ -1418,7 +1418,7 @@
 sub init_dirscan {     # --- File and Directory Lists (.xs .pm .pod etc)
     my($self) = @_;
     my($name, %dir, %xs, %c, %h, %ignore, %pl_files, %manifypods);
-    local(%pm); #the sub in find() has to see this hash
+    my %pm;
 
     @ignore{qw(Makefile.PL test.pl t)} = (1,1,1);
 
@@ -1875,7 +1875,7 @@
 Initializes EXTRALIBS, BSLOADLIBS, LDLOADLIBS, LIBS, LD_RUN_PATH,
 OBJECT, BOOTDEP, PERLMAINCC, LDFROM, LINKTYPE, SHELL, NOOP,
 FIRST_MAKEFILE, MAKEFILE_OLD, NOECHO, RM_F, RM_RF, TEST_F,
-TOUCH, CP, MV, CHMOD, UMASK_NULL
+TOUCH, CP, MV, CHMOD, UMASK_NULL, ECHO, ECHO_N
 
 =cut
 
@@ -1936,6 +1936,7 @@
     $self->{SHELL}              ||= $Config{sh} || '/bin/sh';
 
     $self->{ECHO}       ||= 'echo';
+    $self->{ECHO_N}     ||= 'echo -n';
     $self->{RM_F}       ||= "rm -f";
     $self->{RM_RF}      ||= "rm -rf";
     $self->{TOUCH}      ||= "touch";
@@ -2527,26 +2528,26 @@
                >> }.$self->catfile('$(INSTALLARCHLIB)','perllocal.pod').q{
 
 doc_site_install ::
-       $(NOECHO) $(ECHO) Appending installation info to 
$(INSTALLSITEARCH)/perllocal.pod
-       -$(NOECHO) $(MKPATH) $(INSTALLSITEARCH)
+       $(NOECHO) $(ECHO) Appending installation info to 
$(INSTALLARCHLIB)/perllocal.pod
+       -$(NOECHO) $(MKPATH) $(INSTALLARCHLIB)
        -$(NOECHO) $(DOC_INSTALL) \
                "Module" "$(NAME)" \
                "installed into" "$(INSTALLSITELIB)" \
                LINKTYPE "$(LINKTYPE)" \
                VERSION "$(VERSION)" \
                EXE_FILES "$(EXE_FILES)" \
-               >> }.$self->catfile('$(INSTALLSITEARCH)','perllocal.pod').q{
+               >> }.$self->catfile('$(INSTALLARCHLIB)','perllocal.pod').q{
 
 doc_vendor_install ::
-       $(NOECHO) $(ECHO) Appending installation info to 
$(INSTALLVENDORARCH)/perllocal.pod
-       -$(NOECHO) $(MKPATH) $(INSTALLVENDORARCH)
+       $(NOECHO) $(ECHO) Appending installation info to 
$(INSTALLARCHLIB)/perllocal.pod
+       -$(NOECHO) $(MKPATH) $(INSTALLARCHLIB)
        -$(NOECHO) $(DOC_INSTALL) \
                "Module" "$(NAME)" \
                "installed into" "$(INSTALLVENDORLIB)" \
                LINKTYPE "$(LINKTYPE)" \
                VERSION "$(VERSION)" \
                EXE_FILES "$(EXE_FILES)" \
-               >> }.$self->catfile('$(INSTALLVENDORARCH)','perllocal.pod').q{
+               >> }.$self->catfile('$(INSTALLARCHLIB)','perllocal.pod').q{
 
 };
 
@@ -2930,7 +2931,7 @@
 ' if $self->{OBJECT};
 
     push @m, q{
-# We take a very conservative approach here, but it\'s worth it.
+# We take a very conservative approach here, but it's worth it.
 # We move Makefile to Makefile.old here to avoid gnu make looping.
 $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
        $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
@@ -3888,7 +3889,8 @@
     my @m;
 
     for my $tool (qw{ SHELL CHMOD CP MV NOOP NOECHO RM_F RM_RF TEST_F TOUCH 
-                      UMASK_NULL DEV_NULL MKPATH EQUALIZE_TIMESTAMP ECHO
+                      UMASK_NULL DEV_NULL MKPATH EQUALIZE_TIMESTAMP 
+                      ECHO ECHO_N
                       UNINST VERBINST
                       MOD_INSTALL DOC_INSTALL UNINSTALL
                       WARN_IF_OLD_PACKLIST

==== //depot/maint-5.8/perl/lib/ExtUtils/MM_VMS.pm#9 (text) ====
Index: perl/lib/ExtUtils/MM_VMS.pm
--- perl/lib/ExtUtils/MM_VMS.pm#8~20013~        Sat Jul  5 06:58:18 2003
+++ perl/lib/ExtUtils/MM_VMS.pm Sun Jul  6 01:35:50 2003
@@ -20,8 +20,8 @@
 
 use File::Basename;
 use vars qw($Revision @ISA $VERSION);
-($VERSION) = '5.67';
-($Revision) = q$Revision: 1.97 $ =~ /Revision:\s+(\S+)/;
+($VERSION) = '5.68';
+($Revision) = q$Revision: 1.101 $ =~ /Revision:\s+(\S+)/;
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
@@ -381,6 +381,7 @@
     $self->{MAKEFILE_OLD}       ||= '$(FIRST_MAKEFILE)_old';
 
     $self->{ECHO}     ||= '$(PERLRUN) -le "print [EMAIL PROTECTED]"';
+    $self->{ECHO_N}   ||= '$(PERLRUN) -e  "print [EMAIL PROTECTED]"';
     $self->{TOUCH}    ||= '$(PERLRUN) "-MExtUtils::Command" -e touch';
     $self->{CHMOD}    ||= '$(PERLRUN) "-MExtUtils::Command" -e chmod'; 
     $self->{RM_F}     ||= '$(PERLRUN) "-MExtUtils::Command" -e rm_f';
@@ -1531,12 +1532,12 @@
 pure_perl_install ::
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read 
'.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').' '" >.MM_tmp
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write 
'.File::Spec->catfile('$(INSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').' '" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_LIB) $(INSTALLPRIVLIB) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_ARCHLIB) $(INSTALLARCHLIB) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_BIN) $(INSTALLBIN) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_SCRIPT) $(INSTALLSCRIPT) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_MAN1DIR) $(INSTALLMAN1DIR) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_MAN3DIR) $(INSTALLMAN3DIR) ';" >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_LIB) $(INSTALLPRIVLIB) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB) $(INSTALLARCHLIB) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_BIN) $(INSTALLBIN) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_SCRIPT) $(INSTALLSCRIPT) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(INSTALLMAN1DIR) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR) $(INSTALLMAN3DIR) " >>.MM_tmp
        $(NOECHO) $(MOD_INSTALL) <.MM_tmp
        $(NOECHO) $(RM_F) .MM_tmp
        $(NOECHO) $(WARN_IF_OLD_PACKLIST) 
].$self->catfile($self->{SITEARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[
@@ -1545,12 +1546,12 @@
 pure_site_install ::
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read 
'.File::Spec->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').' '" >.MM_tmp
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write 
'.File::Spec->catfile('$(INSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').' '" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_LIB) $(INSTALLSITELIB) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_ARCHLIB) $(INSTALLSITEARCH) ';" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_BIN) $(INSTALLSITEBIN) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_SCRIPT) $(INSTALLSCRIPT) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_MAN1DIR) $(INSTALLSITEMAN1DIR) ';" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_MAN3DIR) $(INSTALLSITEMAN3DIR) ';" 
>>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_LIB) $(INSTALLSITELIB) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB) $(INSTALLSITEARCH) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_BIN) $(INSTALLSITEBIN) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_SCRIPT) $(INSTALLSCRIPT) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(INSTALLSITEMAN1DIR) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR) $(INSTALLSITEMAN3DIR) " >>.MM_tmp
        $(NOECHO) $(MOD_INSTALL) <.MM_tmp
        $(NOECHO) $(RM_F) .MM_tmp
        $(NOECHO) $(WARN_IF_OLD_PACKLIST) 
].$self->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q[
@@ -1558,12 +1559,12 @@
 pure_vendor_install ::
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read 
'.File::Spec->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').' '" >.MM_tmp
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write 
'.File::Spec->catfile('$(INSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').' '" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_LIB) $(INSTALLVENDORLIB) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_ARCHLIB) $(INSTALLVENDORARCH) ';" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_BIN) $(INSTALLVENDORBIN) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_SCRIPT) $(INSTALLSCRIPT) ';" >>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_MAN1DIR) $(INSTALLVENDORMAN1DIR) ';" 
>>.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print '$(INST_MAN3DIR) $(INSTALLVENDORMAN3DIR) ';" 
>>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_LIB) $(INSTALLVENDORLIB) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB) $(INSTALLVENDORARCH) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_BIN) $(INSTALLVENDORBIN) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_SCRIPT) $(INSTALLSCRIPT) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(INSTALLVENDORMAN1DIR) " >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR) $(INSTALLVENDORMAN3DIR) " >>.MM_tmp
        $(NOECHO) $(MOD_INSTALL) <.MM_tmp
        $(NOECHO) $(RM_F) .MM_tmp
 
@@ -1571,29 +1572,29 @@
 doc_perl_install ::
        $(NOECHO) $(ECHO) "Appending installation info to 
].$self->catfile($self->{INSTALLARCHLIB}, 'perllocal.pod').q["
        $(NOECHO) $(MKPATH) $(INSTALLARCHLIB)
-       $(NOECHO) $(PERLRUN) -e "print 'installed into|$(INSTALLPRIVLIB)|';" >.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print 
'LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) ';" >>.MM_tmp
+       $(NOECHO) $(ECHO_N) "installed into|$(INSTALLPRIVLIB)|" >.MM_tmp
+       $(NOECHO) $(ECHO_N) 
"LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) " >>.MM_tmp
 ],@exe_files,
 q[     $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp 
>>].$self->catfile($self->{INSTALLARCHLIB},'perllocal.pod').q[
        $(NOECHO) $(RM_F) .MM_tmp
 
 # And again
 doc_site_install ::
-       $(NOECHO) $(ECHO) "Appending installation info to 
].$self->catfile($self->{INSTALLSITEARCH}, 'perllocal.pod').q["
-       $(NOECHO) $(MKPATH) $(INSTALLSITEARCH)
-       $(NOECHO) $(PERLRUN) -e "print 'installed into|$(INSTALLSITELIB)|';" >.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print 
'LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) ';" >>.MM_tmp
+       $(NOECHO) $(ECHO) "Appending installation info to 
].$self->catfile($self->{INSTALLARCHLIB}, 'perllocal.pod').q["
+       $(NOECHO) $(MKPATH) $(INSTALLARCHLIB)
+       $(NOECHO) $(ECHO_N) "installed into|$(INSTALLSITELIB)|" >.MM_tmp
+       $(NOECHO) $(ECHO_N) 
"LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) " >>.MM_tmp
 ],@exe_files,
-q[     $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp 
>>].$self->catfile($self->{INSTALLSITEARCH},'perllocal.pod').q[
+q[     $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp 
>>].$self->catfile($self->{INSTALLARCHLIB},'perllocal.pod').q[
        $(NOECHO) $(RM_F) .MM_tmp
 
 doc_vendor_install ::
-       $(NOECHO) $(ECHO) "Appending installation info to 
].$self->catfile($self->{INSTALLVENDORARCH}, 'perllocal.pod').q["
-       $(NOECHO) $(MKPATH) $(INSTALLVENDORARCH)
-       $(NOECHO) $(PERLRUN) -e "print 'installed into|$(INSTALLVENDORLIB)|';" >.MM_tmp
-       $(NOECHO) $(PERLRUN) -e "print 
'LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) ';" >>.MM_tmp
+       $(NOECHO) $(ECHO) "Appending installation info to 
].$self->catfile($self->{INSTALLARCHLIB}, 'perllocal.pod').q["
+       $(NOECHO) $(MKPATH) $(INSTALLARCHLIB)
+       $(NOECHO) $(ECHO_N) "installed into|$(INSTALLVENDORLIB)|" >.MM_tmp
+       $(NOECHO) $(ECHO_N) 
"LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) " >>.MM_tmp
 ],@exe_files,
-q[     $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp 
>>].$self->catfile($self->{INSTALLVENDORARCH},'perllocal.pod').q[
+q[     $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp 
>>].$self->catfile($self->{INSTALLARCHLIB},'perllocal.pod').q[
        $(NOECHO) $(RM_F) .MM_tmp
 
 ];
@@ -1704,7 +1705,7 @@
 ] if $self->{OBJECT};
 
     push @m,q[
-# We take a very conservative approach here, but it\'s worth it.
+# We take a very conservative approach here, but it's worth it.
 # We move $(FIRST_MAKEFILE) to $(MAKEFILE_OLD) here to avoid gnu make looping.
 $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
        $(NOECHO) $(ECHO) "$(FIRST_MAKEFILE) out-of-date with respect to 
$(MMS$SOURCE_LIST)"
@@ -2012,6 +2013,7 @@
     push @m, q[
 # Still more from the 255-char line length limit
 doc_inst_perl :
+       $(NOECHO) $(MKPATH) $(INSTALLARCHLIB)
        $(NOECHO) $(ECHO) "Perl binary $(MAP_TARGET)|" >.MM_tmp
        $(NOECHO) $(ECHO) "MAP_STATIC|$(MAP_STATIC)|" >>.MM_tmp
        $(NOECHO) $(PERL) -pl040 -e " " 
].$self->catfile('$(INST_ARCHAUTODIR)','extralibs.all'),q[ >>.MM_tmp

==== //depot/maint-5.8/perl/lib/ExtUtils/MM_Win32.pm#4 (text) ====
Index: perl/lib/ExtUtils/MM_Win32.pm
--- perl/lib/ExtUtils/MM_Win32.pm#3~19165~      Tue Apr  8 10:43:04 2003
+++ perl/lib/ExtUtils/MM_Win32.pm       Sun Jul  6 01:35:50 2003
@@ -29,7 +29,7 @@
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '1.07';
+$VERSION = '1.08';
 
 $ENV{EMXSHELL} = 'sh'; # to run `commands`
 
@@ -169,6 +169,7 @@
 
     # Used in favor of echo because echo won't strip quotes. :(
     $self->{ECHO}     ||= $self->oneliner('print [EMAIL PROTECTED]', ['-l']);
+    $self->{ECHO_N}   ||= $self->oneliner('print [EMAIL PROTECTED]');
 
     $self->{TOUCH}    ||= '$(PERLRUN) -MExtUtils::Command -e touch';
     $self->{CHMOD}    ||= '$(PERLRUN) -MExtUtils::Command -e chmod'; 

==== //depot/maint-5.8/perl/lib/ExtUtils/MakeMaker/FAQ.pod#6 (text) ====
Index: perl/lib/ExtUtils/MakeMaker/FAQ.pod
--- perl/lib/ExtUtils/MakeMaker/FAQ.pod#5~19919~        Tue Jul  1 14:28:15 2003
+++ perl/lib/ExtUtils/MakeMaker/FAQ.pod Sun Jul  6 01:35:50 2003
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::FAQ;
 
-(our $VERSION) = sprintf "%03d", q$Revision: 1.7 $ =~ /Revision:\s+(\S+)/;
+(our $VERSION) = sprintf "%03d", q$Revision: 1.8 $ =~ /Revision:\s+(\S+)/;
 
 1;
 __END__
@@ -61,9 +61,7 @@
 
 =over 4
 
-=item
-
-How do I keep my $VERSION up to date without resetting it manually?
+=item How do I keep my $VERSION up to date without resetting it manually?
 
 Often you want to manually set the $VERSION in the main module
 distribution because this is the version that everybody sees on CPAN
@@ -77,12 +75,7 @@
 
 In CVS and RCS you use $Z<>Revision$ writing it like so:
 
-    $VERSION = sprintf "%d.%03d", q$Revision$ =~ /(\d+)/g;
-
-On your next check in, $Z<>Revision$ will magically be expanded to contain
-the current revision #.
-
-    $VERSION = sprintf "%d.%03d", q$Revision: 1.7 $ =~ /(\d+)/g;
+    $VERSION = sprintf "%d.%03d", q$Revision: 1.8 $ =~ /(\d+)/g;
 
 Every time the file is checked in the $Z<>Revision$ will be updated,
 updating your $VERSION.
@@ -95,11 +88,9 @@
 complicated.
 
     # must be all on one line or MakeMaker will get confused.
-    $VERSION = do { my @r = (q$Revision$ =~ /\d+/g); sprintf "%d."."%03d" x $#r, @r };
+    $VERSION = do { my @r = (q$Revision: 1.5.3.4 $ =~ /\d+/g); sprintf "%d."."%03d" x 
$#r, @r };
 
-=item
-
-What's this F<META.yml> thing and how did it get in my F<MANIFEST>?!
+=item What's this F<META.yml> thing and how did it get in my F<MANIFEST>?!
 
 F<META.yml> is a module meta-data file pioneered by Module::Build and
 automatically generated as part of the 'distdir' target (and thus
@@ -113,10 +104,7 @@
 
 =over 4
 
-=item
-
-How to I prevent "object version X.XX does not match bootstrap parameter Y.YY"
-errors?
+=item How to I prevent "object version X.XX does not match bootstrap parameter Y.YY" 
errors?
 
 XS code is very sensitive to the module version number and will
 complain if the version number in your Perl module doesn't match.  If
@@ -131,9 +119,7 @@
     depend => { '$(FIRST_MAKEFILE)' => '$(VERSION_FROM)' }
 
 
-=item
-
-How do I make two or more XS files coexist in the same directory?
+=item How do I make two or more XS files coexist in the same directory?
 
 Sometimes you need to have two and more XS files in the same package.
 One way to go is to put them into separate directories, but sometimes

==== //depot/maint-5.8/perl/lib/Net/Ping/t/250_ping_hires.t#4 (text) ====
Index: perl/lib/Net/Ping/t/250_ping_hires.t
--- perl/lib/Net/Ping/t/250_ping_hires.t#3~19991~       Fri Jul  4 06:54:33 2003
+++ perl/lib/Net/Ping/t/250_ping_hires.t        Sun Jul  6 01:35:50 2003
@@ -57,5 +57,7 @@
 ok $ret;
 
 # It is extremely likely that the duration contains a decimal
-# point if Time::HiRes is functioning properly.
-ok $duration =~ /\./;
+# point if Time::HiRes is functioning properly, except when it
+# it is fast enough to be "zero".
+print "# duration=[$duration]\n";
+ok $duration =~ /\.|^0$/;

==== //depot/maint-5.8/perl/lib/Net/Ping/t/450_service.t#7 (text) ====
Index: perl/lib/Net/Ping/t/450_service.t
--- perl/lib/Net/Ping/t/450_service.t#6~19991~  Fri Jul  4 06:54:33 2003
+++ perl/lib/Net/Ping/t/450_service.t   Sun Jul  6 01:35:50 2003
@@ -19,7 +19,7 @@
 # for the TCP Server stuff instead of doing
 # all that direct socket() junk manually.
 
-plan tests => 26;
+plan tests => 26, ($^O eq 'MSWin32' ? (todo => [18]) : ());
 
 # Everything loaded fine
 ok 1;

==== //depot/maint-5.8/perl/lib/Test/Harness.pm#6 (text) ====
Index: perl/lib/Test/Harness.pm
--- perl/lib/Test/Harness.pm#5~19891~   Mon Jun 30 02:39:29 2003
+++ perl/lib/Test/Harness.pm    Sun Jul  6 01:35:50 2003
@@ -13,12 +13,12 @@
 
 use vars qw($VERSION $Verbose $Switches $Have_Devel_Corestack $Curtest
             $Columns $verbose $switches $ML $Strap
-            @ISA @EXPORT @EXPORT_OK
+            @ISA @EXPORT @EXPORT_OK $Last_ML_Print
            );
 
 # Backwards compatibility for exportable variable names.
-*verbose  = \$Verbose;
-*switches = \$Switches;
+*verbose  = *Verbose;
+*switches = *Switches;
 
 $Have_Devel_Corestack = 0;
 
@@ -36,6 +36,8 @@
 
 my $Files_In_Dir = $ENV{HARNESS_FILELEAK_IN_DIR};
 
+my $Ok_Slow = $ENV{HARNESS_OK_SLOW};
+
 $Strap = Test::Harness::Straps->new;
 
 @ISA = ('Exporter');
@@ -449,7 +451,7 @@
 
     my $width = _leader_width(@tests);
     foreach my $tfile (@tests) {
-
+        $Last_ML_Print = 0;  # so each test prints at least once
         my($leader, $ml) = _mk_leader($tfile, $width);
         local $ML = $ml;
         print $leader;
@@ -706,7 +708,7 @@
     my $detail = $totals->{details}[-1];
 
     if( $detail->{ok} ) {
-        _print_ml("ok $curr/$max");
+        _print_ml_less("ok $curr/$max");
 
         if( $detail->{type} eq 'skip' ) {
             $totals->{skip_reason} = $detail->{reason}
@@ -742,6 +744,15 @@
 }
 
 
+# For slow connections, we save lots of bandwidth by printing only once
+# per second.
+sub _print_ml_less {
+    if( !$Ok_Slow || $Last_ML_Print != time ) {
+        _print_ml(@_);
+        $Last_ML_Print = time;
+    }
+}
+
 sub _bonusmsg {
     my($tot) = @_;
 
@@ -1038,6 +1049,12 @@
 output more frequent progress messages using carriage returns.  Some
 consoles may not handle carriage returns properly (which results in a
 somewhat messy output).
+
+=item C<HARNESS_OK_SLOW>
+
+If true, the C<ok> messages are printed out only every second.
+This reduces output and therefore may for example help testing
+over slow connections.
 
 =item C<HARNESS_PERL_SWITCHES>
 

==== //depot/maint-5.8/perl/makedef.pl#10 (text) ====
Index: perl/makedef.pl
--- perl/makedef.pl#9~19791~    Sun Jun 15 10:57:06 2003
+++ perl/makedef.pl     Sun Jul  6 01:35:50 2003
@@ -769,75 +769,72 @@
 # These are in _addition to_ the public face of the abstraction
 # and need to be exported to allow XS modules to implement layers
 my @layer_syms = qw(
-                        PerlIOBase_clearerr
-                        PerlIOBase_close
-                        PerlIOBase_dup
-                        PerlIOBase_eof
-                        PerlIOBase_error
-                        PerlIOBase_fileno
-                        PerlIOBase_pushed
-                        PerlIOBase_binmode
-                        PerlIOBase_popped
-                        PerlIOBase_read
-                        PerlIOBase_setlinebuf
-                        PerlIOBase_unread
-                        PerlIOBase_noop_ok
-                        PerlIOBase_noop_fail
-                        PerlIOBuf_bufsiz
-                        PerlIOBuf_fill
-                        PerlIOBuf_flush
-                        PerlIOBuf_get_base
-                        PerlIOBuf_get_cnt
-                        PerlIOBuf_get_ptr
-                        PerlIOBuf_open
-                        PerlIOBuf_pushed
-                        PerlIOBuf_popped
-                        PerlIOBuf_read
-                        PerlIOBuf_seek
-                        PerlIOBuf_set_ptrcnt
-                        PerlIOBuf_tell
-                        PerlIOBuf_unread
-                        PerlIOBuf_write
-                        PerlIO_debug
-                        PerlIO_allocate
-                        PerlIO_apply_layera
-                        PerlIO_apply_layers
-                        PerlIO_arg_fetch
-                        PerlIO_define_layer
-                        PerlIO_modestr
-                        PerlIO_parse_layers
-                        PerlIO_layer_fetch
-                        PerlIO_list_free
-                        PerlIO_apply_layera
-                        PerlIO_pending
-                        PerlIO_push
-                        PerlIO_pop
-                        PerlIO_sv_dup
-                        PerlIO_perlio
-
-Perl_PerlIO_clearerr
-Perl_PerlIO_close
-Perl_PerlIO_eof
-Perl_PerlIO_error
-Perl_PerlIO_fileno
-Perl_PerlIO_fill
-Perl_PerlIO_flush
-Perl_PerlIO_get_base
-Perl_PerlIO_get_bufsiz
-Perl_PerlIO_get_cnt
-Perl_PerlIO_get_ptr
-Perl_PerlIO_read
-Perl_PerlIO_seek
-Perl_PerlIO_set_cnt
-Perl_PerlIO_set_ptrcnt
-Perl_PerlIO_setlinebuf
-Perl_PerlIO_stderr
-Perl_PerlIO_stdin
-Perl_PerlIO_stdout
-Perl_PerlIO_tell
-Perl_PerlIO_unread
-Perl_PerlIO_write
-
+                   PerlIOBase_binmode
+                   PerlIOBase_clearerr
+                   PerlIOBase_close
+                   PerlIOBase_dup
+                   PerlIOBase_eof
+                   PerlIOBase_error
+                   PerlIOBase_fileno
+                   PerlIOBase_noop_fail
+                   PerlIOBase_noop_ok
+                   PerlIOBase_popped
+                   PerlIOBase_read
+                   PerlIOBase_setlinebuf
+                   PerlIOBase_unread
+                   PerlIOBuf_bufsiz
+                   PerlIOBuf_close
+                   PerlIOBuf_dup
+                   PerlIOBuf_fill
+                   PerlIOBuf_flush
+                   PerlIOBuf_get_base
+                   PerlIOBuf_get_cnt
+                   PerlIOBuf_get_ptr
+                   PerlIOBuf_open
+                   PerlIOBuf_popped
+                   PerlIOBuf_pushed
+                   PerlIOBuf_read
+                   PerlIOBuf_seek
+                   PerlIOBuf_set_ptrcnt
+                   PerlIOBuf_tell
+                   PerlIOBuf_unread
+                   PerlIOBuf_write
+                   PerlIO_allocate
+                   PerlIO_apply_layers
+                   PerlIO_arg_fetch
+                   PerlIO_debug
+                   PerlIO_define_layer
+                   PerlIO_layer_fetch
+                   PerlIO_list_free
+                   PerlIO_modestr
+                   PerlIO_parse_layers
+                   PerlIO_pending
+                   PerlIO_perlio
+                   PerlIO_pop
+                   PerlIO_push
+                   PerlIO_sv_dup
+                   Perl_PerlIO_clearerr
+                   Perl_PerlIO_close
+                   Perl_PerlIO_eof
+                   Perl_PerlIO_error
+                   Perl_PerlIO_fileno
+                   Perl_PerlIO_fill
+                   Perl_PerlIO_flush
+                   Perl_PerlIO_get_base
+                   Perl_PerlIO_get_bufsiz
+                   Perl_PerlIO_get_cnt
+                   Perl_PerlIO_get_ptr
+                   Perl_PerlIO_read
+                   Perl_PerlIO_seek
+                   Perl_PerlIO_set_cnt
+                   Perl_PerlIO_set_ptrcnt
+                   Perl_PerlIO_setlinebuf
+                   Perl_PerlIO_stderr
+                   Perl_PerlIO_stdin
+                   Perl_PerlIO_stdout
+                   Perl_PerlIO_tell
+                   Perl_PerlIO_unread
+                   Perl_PerlIO_write
 );
 if ($PLATFORM eq 'netware') {
     push(@layer_syms,'PL_def_layerlist','PL_known_layers','PL_perlio');

==== //depot/maint-5.8/perl/perlio.c#26 (text) ====
Index: perl/perlio.c
--- perl/perlio.c#25~19759~     Fri Jun 13 00:22:57 2003
+++ perl/perlio.c       Sun Jul  6 01:35:50 2003
@@ -2033,8 +2033,11 @@
 {
     STDCHAR *buf = (STDCHAR *) vbuf;
     if (f) {
-       if (!(PerlIOBase(f)->flags & PERLIO_F_CANREAD))
+        if (!(PerlIOBase(f)->flags & PERLIO_F_CANREAD)) {
+           PerlIOBase(f)->flags |= PERLIO_F_ERROR;
+           SETERRNO(EBADF, SS_IVCHAN);
            return 0;
+       }
        while (count > 0) {
            SSize_t avail = PerlIO_get_cnt(f);
            SSize_t take = 0;
End of Patch.

Reply via email to