[inseparable changes from match from perl-5.003_96 to perl-5.003_97]
Perl 5 Porters [Tue, 1 Apr 1997 00:01:35 +0000 (12:01 +1200)]
 CORE LANGUAGE CHANGES

Subject: Reenable but deprecate inherited AUTOLOAD for plain funcs
From: Chip Salzenberg <chip@perl.com>
Files: ext/DynaLoader/DynaLoader.pm gv.c lib/Text/ParseWords.pm pod/perldelta.pod pod/perldiag.pod t/op/method.t

 CORE PORTABILITY

Subject: Win32 update
Date: Wed, 02 Apr 1997 01:08:09 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: win32/VC-2.0/modules.mak win32/VC-2.0/perl.mak win32/VC- 2.0/perldll.mak win32/perl.mak
Msg-ID: 199704020608.BAA29538@aatma.engin.umich.edu

    (applied based on p5p patch as commit 8d0ff1118aaee510902477e928a660803304346c)

 DOCUMENTATION

Subject: Clean up some poddities, and make C<make html> work again
From: Chip Salzenberg <chip@perl.com>
Files: pod/Makefile pod/perldelta.pod pod/perldiag.pod pod/perlfaq8.pod pod/perlfunc.pod pod/perlop.pod pod/perltrap.pod

Subject: Eliminate pod warnings in libs
From: Chip Salzenberg <chip@perl.com>
Files: lib/CGI.pm lib/ExtUtils/Command.pm

 LIBRARY AND EXTENSIONS

Subject: Eliminate warning in CGI.pm
From: Chip Salzenberg <chip@perl.com>
Files: lib/CGI.pm

 OTHER CORE CHANGES

Subject: Introduce and use gv_fetchmethod_autoload()
From: Chip Salzenberg <chip@perl.com>
Files: global.sym gv.c pod/perlguts.pod proto.h universal.c

29 files changed:
Changes
embed.h
ext/DynaLoader/DynaLoader.pm
global.sym
gv.c
lib/CGI.pm
lib/ExtUtils/Command.pm
lib/Text/ParseWords.pm
lib/autouse.pm
patchlevel.h
plan9/buildinfo
pod/Makefile
pod/perldelta.pod
pod/perldiag.pod
pod/perlfaq8.pod
pod/perlfunc.pod
pod/perlguts.pod
pod/perlop.pod
pod/perltoc.pod
pod/perltrap.pod
proto.h
t/op/method.t
universal.c
vms/config.vms
vms/descrip.mms
win32/VC-2.0/modules.mak
win32/VC-2.0/perl.mak
win32/VC-2.0/perldll.mak
win32/perl.mak

diff --git a/Changes b/Changes
index d27be4a..38c3e0a 100644 (file)
--- a/Changes
+++ b/Changes
@@ -43,6 +43,129 @@ And the Keepers of the Patch Pumpkin:
 
 
 ------------------
+ Version 5.003_97
+------------------
+
+ CORE LANGUAGE CHANGES
+
+  Title:  "Reenable but deprecate inherited AUTOLOAD for plain funcs"
+   From:  Chip Salzenberg
+  Files:  ext/DynaLoader/DynaLoader.pm gv.c lib/Text/ParseWords.pm
+          pod/perldelta.pod pod/perldiag.pod t/op/method.t
+
+ CORE PORTABILITY
+
+  Title:  "Don't use setjmp() and longjmp() in complex exprs"
+   From:  Chip Salzenberg
+  Files:  perl.c pp_ctl.c scope.h
+
+  Title:  "Improve definition of Sock_size_t"
+   From:  Chip Salzenberg
+  Files:  doio.c pp_sys.c
+
+  Title:  "Don't use a completely empty macro parameter"
+   From:  Chip Salzenberg
+  Files:  sv.h
+
+  Title:  "Win32 update"
+   From:  Gurusamy Sarathy
+ Msg-ID:  <199704020608.BAA29538@aatma.engin.umich.edu>
+   Date:  Wed, 02 Apr 1997 01:08:09 -0500
+  Files:  win32/VC-2.0/modules.mak win32/VC-2.0/perl.mak win32/VC-
+          2.0/perldll.mak win32/perl.mak
+
+ OTHER CORE CHANGES
+
+  Title:  "Introduce and use gv_fetchmethod_autoload()"
+   From:  Chip Salzenberg
+  Files:  global.sym gv.c pod/perlguts.pod proto.h universal.c
+
+  Title:  "Reduce memory footprint of literal strings"
+   From:  ilya@math.ohio-state.edu (Ilya Zakharevich)
+ Msg-ID:  <1997Apr1.113438.1913905@hmivax.humgen.upenn.edu>
+   Date:  Tue, 01 Apr 1997 11:34:37 -0500 (EST)
+  Files:  toke.c
+
+ BUILD PROCESS
+
+  Title:  "Remove target before link() of perldiag.pod"
+   From:  Chip Salzenberg
+  Files:  installperl
+
+ LIBRARY AND EXTENSIONS
+
+  Title:  "Refresh CPAN to 1.24"
+   From:  Andreas Koenig
+  Files:  lib/CPAN.pm lib/CPAN/FirstTime.pm
+
+  Title:  "Refresh ExtUtils::Manifest to 1.33"
+   From:  Andreas Koenig
+  Files:  lib/ExtUtils/Manifest.pm
+
+  Title:  "Update $VERSION of ExtUtils::Embed to reflect reality"
+   From:  Chip Salzenberg
+  Files:  lib/ExtUtils/Embed.pm
+
+  Title:  "Fix POSIX::raise()"
+   From:  "Jens T. Berger Thielemann" <jensthi@ifi.uio.no>
+ Msg-ID:  <Pine.SUN.3.91.970401153125.8053A-100000@holmenkollen.ifi.uio
+   Date:  Tue, 1 Apr 1997 15:34:47 +0200 (MET DST)
+  Files:  ext/POSIX/POSIX.pm
+
+  Title:  "Eliminate warnings in File::Basename"
+   From:  Robin Barker <rmb1@cise.npl.co.uk>
+ Msg-ID:  <11173.9704011111@tempest.cise.npl.co.uk>
+   Date:  Tue, 1 Apr 97 12:11:43 BST
+  Files:  lib/File/Basename.pm t/lib/basename.t
+
+  Title:  "Eliminate warning in CGI.pm"
+   From:  Chip Salzenberg
+  Files:  lib/CGI.pm
+
+  Title:  "Tweaks to constant.pm"
+   From:  Tom Phoenix
+ Msg-ID:  <Pine.GSO.3.96.970331205519.16684I-100000@kelly.teleport.com>
+   Date:  Mon, 31 Mar 1997 21:10:14 -0800 (PST)
+  Files:  lib/constant.pm
+
+  Title:  "Document eval vs. sub in Benchmark"
+   From:  Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID:  <199704012231.XAA00225@crypt.compulink.co.uk>
+   Date:  Tue, 01 Apr 1997 23:31:55 +0100
+  Files:  lib/Benchmark.pm
+
+ TESTS
+
+   (no changes)
+
+ UTILITIES
+
+  Title:  "Improve heuristics for pod2man titles"
+   From:  Roderick Schertler
+ Msg-ID:  <pzn2ri9gto.fsf@eeyore.ibcinc.com>
+   Date:  01 Apr 1997 23:41:55 -0500
+  Files:  pod/pod2man.PL
+
+ DOCUMENTATION
+
+  Title:  "Clean up some poddities, and make C<make html> work again"
+   From:  Chip Salzenberg
+  Files:  pod/Makefile pod/perldelta.pod pod/perldiag.pod
+          pod/perlfaq8.pod pod/perlfunc.pod pod/perlop.pod
+          pod/perltrap.pod
+
+  Title:  "Fix MM doc's use of "SUPER::""
+   From:  avera@hal.com (Jim Avera)
+ Msg-ID:  <9704012235.AA07841@membrane.hal.com>
+   Date:  Tue, 1 Apr 1997 14:35:26 -0800 (PST)
+  Files:  lib/ExtUtils/MakeMaker.pm
+
+  Title:  "Eliminate pod warnings in libs"
+   From:  Chip Salzenberg
+  Files:  lib/CGI.pm lib/ExtUtils/Command.pm
+
+
+------------------
  Version 5.003_96
 ------------------
 
@@ -196,7 +319,7 @@ And the Keepers of the Patch Pumpkin:
           lib/CGI/Switch.pm
 
   Title:  "Fix C<print $_> in debugger"
-   From:  Ilya Zakharevich <ilya@math.ohio-state.edu>
+   From:  Ilya Zakharevich
  Msg-ID:  <199703312355.SAA01068@monk.mps.ohio-state.edu>
    Date:  Mon, 31 Mar 1997 18:55:55 -0500 (EST)
   Files:  lib/perl5db.pl
@@ -276,7 +399,7 @@ And the Keepers of the Patch Pumpkin:
   Files:  pod/perldelta.pod
 
   Title:  "Improve and update documentation of constant subs"
-   From:  Tom Phoenix <rootbeer@teleport.com>
+   From:  Tom Phoenix
  Msg-ID:  <Pine.GSO.3.96.970331122546.14185C-100000@kelly.teleport.com>
    Date:  Mon, 31 Mar 1997 13:05:54 -0800 (PST)
   Files:  pod/perlsub.pod
diff --git a/embed.h b/embed.h
index fdda81a..f77bfb4 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define gv_fetchfile           Perl_gv_fetchfile
 #define gv_fetchmeth           Perl_gv_fetchmeth
 #define gv_fetchmethod         Perl_gv_fetchmethod
+#define gv_fetchmethod_autoload        Perl_gv_fetchmethod_autoload
 #define gv_fetchpv             Perl_gv_fetchpv
 #define gv_fullname            Perl_gv_fullname
 #define gv_fullname3           Perl_gv_fullname3
index 3cb06cc..8488144 100644 (file)
@@ -12,17 +12,15 @@ package DynaLoader;
 #
 # Tim.Bunce@ig.co.uk, August 1994
 
-use vars qw($VERSION @ISA) ;
+use vars qw($VERSION);
+
+$VERSION = "1.02";
 
 require Carp;
 require Config;
-require AutoLoader;
-
-@ISA=qw(AutoLoader);
 
-$VERSION = "1.01" ;
-
-sub import { }         # override import inherited from AutoLoader
+require AutoLoader;
+*AUTOLOAD = \&AutoLoader::AUTOLOAD;
 
 # enable debug/trace messages from DynaLoader perl code
 $dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug;
index 60c3836..1524c03 100644 (file)
@@ -444,6 +444,7 @@ gv_efullname3
 gv_fetchfile
 gv_fetchmeth
 gv_fetchmethod
+gv_fetchmethod_autoload
 gv_fetchpv
 gv_fullname
 gv_fullname3
diff --git a/gv.c b/gv.c
index fccecf3..98526ca 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -212,8 +212,16 @@ I32 level;
            if (gv = gv_fetchmeth(lastchance, name, len,
                                  (level >= 0) ? level + 1 : level - 1)) {
          gotcha:
-               /* Use topgv for cache only if it has no synonyms */
-               if (topgv && GvREFCNT(topgv) == 1) {
+               /*
+                * Cache method in topgv if:
+                *  1. topgv has no synonyms (else inheritance crosses wires)
+                *  2. method isn't a stub (else AUTOLOAD fails spectacularly)
+                */
+               if (topgv &&
+                   GvREFCNT(topgv) == 1 &&
+                   (cv = GvCV(gv)) &&
+                   (CvROOT(cv) || CvXSUB(cv)))
+               {
                    if (cv = GvCV(topgv))
                        SvREFCNT_dec(cv);
                    GvCV(topgv) = (CV*)SvREFCNT_inc(GvCV(gv));
@@ -232,6 +240,15 @@ gv_fetchmethod(stash, name)
 HV* stash;
 char* name;
 {
+    return gv_fetchmethod_autoload(stash, name, TRUE);
+}
+
+GV *
+gv_fetchmethod_autoload(stash, name, autoload)
+HV* stash;
+char* name;
+I32 autoload;
+{
     register char *nend;
     char *nsplit = 0;
     GV* gv;
@@ -263,9 +280,17 @@ char* name;
     if (!gv) {
        if (strEQ(name,"import"))
            gv = (GV*)&sv_yes;
-       else
+       else if (autoload)
            gv = gv_autoload4(stash, name, nend - name, TRUE);
     }
+    else if (autoload) {
+       CV* cv = GvCV(gv);
+       if (!cv || (!CvROOT(cv) && !CvXSUB(cv))) {
+           GV* autogv = gv_autoload4(GvSTASH(gv), name, nend - name, TRUE);
+           if (autogv)
+               gv = autogv;
+       }
+    }
 
     return gv;
 }
@@ -287,16 +312,17 @@ I32 method;
 
     if (len == autolen && strnEQ(name, autoload, autolen))
        return Nullgv;
-    if (method) {
-       if (!(gv = gv_fetchmeth(stash, autoload, autolen, FALSE)))
-           return Nullgv;
-       cv = GvCV(gv);
-    }
-    else {
-       GV** gvp = (GV**)hv_fetch(stash, autoload, autolen, FALSE);
-       if (!gvp || !(gv = *gvp) || !(cv = GvCVu(gv)))
-           return Nullgv;
-    }
+    if (!(gv = gv_fetchmeth(stash, autoload, autolen, FALSE)))
+       return Nullgv;
+    cv = GvCV(gv);
+
+    /*
+     * Inheriting AUTOLOAD for non-methods works ... for now.
+     */
+    if (dowarn && !method && (GvCVGEN(gv) || GvSTASH(gv) != stash))
+       warn(
+         "Use of inherited AUTOLOAD for non-method %s::%.*s() is deprecated",
+            HvNAME(stash), (int)len, name);
 
     /*
      * Given &FOO::AUTOLOAD, set $FOO::AUTOLOAD to desired function name.
@@ -1037,11 +1063,10 @@ HV* stash;
                
                DEBUG_o( deb("Resolving method `%.256s' for overloaded `%s' in package `%.256s'\n", 
                             SvPV(GvSV(gv), na), cp, HvNAME(stash)) );
-               if (SvPOK(GvSV(gv)) 
-                   && (ngv = gv_fetchmethod(stash, SvPVX(GvSV(gv))))) {
-                   name = SvPVX(GvSV(gv));
-                   cv = GvCV(gv = ngv);
-               } else {
+               if (!SvPOK(GvSV(gv)) 
+                   || !(ngv = gv_fetchmethod_autoload(stash, SvPVX(GvSV(gv)),
+                                                      FALSE)))
+               {
                    /* Can be an import stub (created by `can'). */
                    if (GvCVGEN(gv)) {
                        croak("Stub found while resolving method `%.256s' overloading `%s' in package `%.256s'", 
@@ -1052,9 +1077,8 @@ HV* stash;
                              (SvPOK(GvSV(gv)) ?  SvPVX(GvSV(gv)) : "???" ),
                              cp, HvNAME(stash));
                }
-               /* If the sub is only a stub then we may have a gv to AUTOLOAD */
-               gv = (GV*)*hv_fetch(GvSTASH(gv), name, strlen(name), TRUE);
-               cv = GvCV(gv);
+               name = SvPVX(GvSV(gv));
+               cv = GvCV(gv = ngv);
            }
            DEBUG_o( deb("Overloading `%s' in package `%.256s' via `%.256s::%.256s' \n",
                         cp, HvNAME(stash), HvNAME(GvSTASH(CvGV(cv))),
index 3ddd4d9..4651e13 100644 (file)
@@ -29,7 +29,7 @@ $AUTOLOAD_DEBUG=0;
 $NPH=0;
 
 $CGI::revision = '$Id: CGI.pm,v 2.32 1997/3/19 10:10 lstein Exp $';
-$CGI::VERSION='2.32';
+$CGI::VERSION='2.3201';
 
 # OVERRIDE THE OS HERE IF CGI.pm GUESSES WRONG
 # $OS = 'UNIX';
@@ -87,7 +87,9 @@ $SL = {
 $NPH++ if defined($ENV{'SERVER_SOFTWARE'}) && $ENV{'SERVER_SOFTWARE'}=~/IIS/;
 
 # Turn on special checking for Doug MacEachern's modperl
-if ($MOD_PERL = $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-Perl/) {
+if (defined($MOD_PERL = $ENV{'GATEWAY_INTERFACE'}) &&
+    $MOD_PERL =~ /^CGI-Perl/)
+{
     $NPH++;
     $| = 1;
     $SEQNO = 1;
@@ -2697,6 +2699,11 @@ __END__
 
 CGI - Simple Common Gateway Interface Class
 
+=head1 SYNOPSIS
+
+  use CGI;
+  # the rest is too complicated for a synopsis; keep reading
+
 =head1 ABSTRACT
 
 This perl library uses perl5 objects to make it easy to create
index 7bdbea9..bdf32d4 100644 (file)
@@ -16,7 +16,7 @@ $VERSION = '1.00';
 
 ExtUtils::Command - utilities to replace common UNIX commands in Makefiles etc.
 
-=head1 SYNOPSYS
+=head1 SYNOPSIS
 
   perl -MExtUtils::command -e cat files... > destination
   perl -MExtUtils::command -e mv source... destination
index ce6f000..bd95b4f 100644 (file)
@@ -1,16 +1,16 @@
 package Text::ParseWords;
 
 require 5.000;
-require Exporter;
-require AutoLoader;
 use Carp;
 
-@ISA = qw(Exporter AutoLoader);
+require AutoLoader;
+*AUTOLOAD = \&AutoLoader::AUTOLOAD;
+
+require Exporter;
+@ISA = qw(Exporter);
 @EXPORT = qw(shellwords quotewords);
 @EXPORT_OK = qw(old_shellwords);
 
-*AUTOLOAD = *AutoLoader::AUTOLOAD;
-
 =head1 NAME
 
 Text::ParseWords - parse text into an array of tokens
index e2ef580..b3adc34 100644 (file)
@@ -3,7 +3,7 @@ package autouse;
 #use strict;           # debugging only
 use 5.003_90;          # ->can, for my $var
 
-$autouse::VERSION = '0.03';
+$autouse::VERSION = '1.00';
 
 my $DEBUG = $ENV{AUTOUSE_DEBUG};
 
index 2c1672d..75b45f0 100644 (file)
@@ -1,5 +1,5 @@
 #define PATCHLEVEL 3
-#define SUBVERSION 96
+#define SUBVERSION 97
 
 /*
        local_patches -- list of locally applied less-than-subversion patches.
index fedbafc..ea502c0 100644 (file)
@@ -1 +1 @@
-p9pvers = 5.003_96
+p9pvers = 5.003_97
index 0ec08f9..2737864 100644 (file)
@@ -1,6 +1,13 @@
 CONVERTERS = pod2html pod2latex pod2man pod2text checkpods
 
+HTMLROOT = /   # Change this to fix cross-references in HTML
+POD2HTML = pod2html \
+           --htmlroot=$(HTMLROOT) \
+           --podroot=.. --podpath=pod:lib:ext:vms \
+           --libpods=perlfunc:perlguts:perlvar:perlrun:perlop
+
 all: $(CONVERTERS) man
+
 PERL = ../miniperl
 
 POD = \
@@ -141,8 +148,8 @@ HTML = \
        perlfaq6.html   \
        perlfaq7.html   \
        perlfaq8.html   \
-       perlfaq9.html   \
-       perltoc.html
+       perlfaq9.html
+# not perltoc.html
 
 TEX = \
        perl.tex        \
@@ -191,19 +198,18 @@ TEX = \
        perlfaq9.tex    \
        perltoc.tex
 
-man:  pod2man $(MAN)
+man:   pod2man $(MAN)
 
-# pod2html normally runs on all the pods at once in order to build up
-# cross-references.
-html: pod2html
-       $(PERL) -I../lib pod2html $(POD)
+html:  pod2html $(HTML)
 
 tex:   pod2latex $(TEX)
 
 toc:
        $(PERL) -I../lib buildtoc >perltoc.pod
 
-.SUFFIXES: .pm .pod .man
+.SUFFIXES: .pm .pod
+
+.SUFFIXES: .man
 
 .pm.man:     pod2man
        $(PERL) -I../lib pod2man $*.pm >$*.man
@@ -211,24 +217,25 @@ toc:
 .pod.man:     pod2man
        $(PERL) -I../lib pod2man $*.pod >$*.man
 
-.SUFFIXES: .mp .pod .html
+.SUFFIXES: .html
 
 .pm.html:    pod2html
-       $(PERL) -I../lib pod2html $*.pod
+       $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
 
 .pod.html:    pod2html
-       $(PERL) -I../lib pod2html $*.pod
-
-.SUFFIXES: .pm .pod .tex
+       $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
 
-.pod.tex: pod2latex
-       $(PERL) -I../lib pod2latex $*.pod
+.SUFFIXES: .tex
 
 .pm.tex: pod2latex
+       $(PERL) -I../lib pod2latex $*.pm
+
+.pod.tex: pod2latex
        $(PERL) -I../lib pod2latex $*.pod
 
 clean:
        rm -f $(MAN) $(HTML) $(TEX)
+       rm -f pod2html-*cache
        rm -f *.aux *.log
 
 realclean:     clean
index ddd29c4..2e29341 100644 (file)
@@ -37,12 +37,29 @@ may only be used to set the following switches: B<-[DIMUdmw]>.
 
 =head2 More precise warnings
 
-If you removed the -w option from your Perl 5.003 scripts because it
+If you removed the B<-w> option from your Perl 5.003 scripts because it
 made Perl too verbose, we recommend that you try putting it back when
 you upgrade to Perl 5.004.  Each new perl version tends to remove some
 undesirable warnings, while adding new warnings that may catch bugs in
 your scripts.
 
+=head2 Deprecated: Inherited C<AUTOLOAD> for non-methods
+
+Before Perl 5.004, C<AUTOLOAD> functions were looked up as methods
+(using the C<@ISA> hierarchy), even when the function to be autoloaded
+was called as a plain function (e.g. C<Foo::bar()>), not a method
+(e.g. C<Foo->bar()> or C<$obj->bar()>).
+
+Perl 5.005 will use method lookup only for methods' C<AUTOLOAD>s.
+However, there is a significant base of existing code that may be using
+the old behavior.  So, as an interim step, Perl 5.004 issues an optional
+warning when a non-method uses an inherited C<AUTOLOAD>.
+
+The simple rule is:  Inheritance will not work when autoloading
+non-methods.  The simple fix for old code is:  In any module that used to
+depend on inheriting C<AUTOLOAD> for non-methods from a base class named
+C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during startup.
+
 =head2 Subroutine arguments created only when they're modified
 
 In Perl 5.004, nonexistent array and hash elements used as subroutine
@@ -67,19 +84,6 @@ After this code executes in Perl 5.004, $a{b} exists but $a[2] does
 not.  In Perl 5.002 and 5.003, both $a{b} and $a[2] would have existed
 (but $a[2]'s value would have been undefined).
 
-=head2 Simple functions' C<AUTOLOAD> not looked up as method
-
-Before Perl 5.004, C<AUTOLOAD> functions were looked up as methods
-(using the C<@ISA> hierarchy), even when the function to be autoloaded
-was called as a plain function (e.g. C<Foo::bar()>), not a method.
-Perl 5.004 no longer uses method lookup for C<AUTOLOAD>s of plain
-functions.
-
-The simple rule is: Inheritance does not work when autoloading plain
-functions.  The simple fix for old code is: In any module that used to
-depend on inheriting C<AUTOLOAD> from a base class named C<BaseClass>,
-execute C<*AUTOLOAD = *BaseClass::AUTOLOAD>.
-
 =head2 Fixed parsing of $$<digit>, &$<digit>, etc.
 
 A bug in previous versions of Perl 5.0 prevented proper parsing of
@@ -272,7 +276,7 @@ which have changed in incompatible ways from older versions of Perl.
 If the VERSION argument is present between Module and LIST, then the
 C<use> will call the VERSION method in class Module with the given
 version as an argument.  The default VERSION method, inherited from
-the Universal class, croaks if the given version is larger than the
+the UNIVERSAL class, croaks if the given version is larger than the
 value of the variable $Module::VERSION.  (Note that there is not a
 comma after VERSION!)
 
@@ -938,7 +942,7 @@ name (as opposed to a subroutine reference).
 =item Constant subroutine %s redefined
 
 (S) You redefined a subroutine which had previously been eligible for
-inlining.  See L<perlsub/"Constant Functions"for commentary and
+inlining.  See L<perlsub/"Constant Functions"> for commentary and
 workarounds.
 
 =item Constant subroutine %s undefined
@@ -1184,7 +1188,7 @@ version of Perl, and this should not happen anyway.
 
 =item Malformed PERLLIB_PREFIX
 
-(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form
+(F) An error peculiar to OS/2.  PERLLIB_PREFIX should be of the form
 
     prefix1;prefix2
 
@@ -1192,21 +1196,23 @@ or
 
     prefix1 prefix2
 
-with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix of
-a builtin library search path, prefix2 is substituted. The error may appear
-if components are not found, or are too long. See L<perlos2/"PERLLIB_PREFIX">.
+with nonempty prefix1 and prefix2.  If C<prefix1> is indeed a prefix
+of a builtin library search path, prefix2 is substituted.  The error
+may appear if components are not found, or are too long.  See
+"PERLLIB_PREFIX" in F<README.os2>.
 
 =item PERL_SH_DIR too long
 
 (F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
-C<sh>-shell in. See L<perlos2/"PERL_SH_DIR">.
+C<sh>-shell in.  See "PERL_SH_DIR" in F<README.os2>.
 
 =item Process terminated by SIG%s
 
 (W) This is a standard message issued by OS/2 applications, while *nix
-applications die in silence. It is considered a feature of the OS/2
-port. One can easily disable this by appropriate sighandlers, see
-L<perlipc/"Signals">.  See L<perlos2/"Process terminated by SIGTERM/SIGINT">.
+applications die in silence.  It is considered a feature of the OS/2
+port.  One can easily disable this by appropriate sighandlers, see
+L<perlipc/"Signals">.  See also "Process terminated by SIGTERM/SIGINT"
+in F<README.os2>.
 
 =back
 
index a138bc6..49eb22e 100644 (file)
@@ -2464,12 +2464,6 @@ action-at-a-distance effects of C<$*>.
 (F) You attempted to use a feature of printf that is accessible from
 only C.  This usually means there's a better way to do it in Perl.
 
-=item Use of %s is deprecated
-
-(D) The construct indicated is no longer recommended for use, generally
-because there's a better way to do it, and also because the old way has
-bad side effects.
-
 =item Use of bare E<lt>E<lt> to mean E<lt>E<lt>"" is deprecated
 
 (D) You are now encouraged to use the explicitly quoted form if you
@@ -2481,6 +2475,30 @@ wish to use an empty line as the terminator of the here-document.
 subroutine's argument list, so it's better if you assign the results of
 a split() explicitly to an array (or list).
 
+=item Use of inherited AUTOLOAD for non-method %s() is deprecated
+
+As an (ahem) accidental feature, C<AUTOLOAD> subroutines are looked up
+as methods (using the C<@ISA> hierarchy) even when the subroutines to be
+autoloaded were called as plain functions (e.g. C<Foo::bar()>), not as
+methods (e.g. C<Foo->bar()> or C<$obj->bar()>).
+
+This bug will be rectified in Perl 5.005, which will use method lookup
+only for methods' C<AUTOLOAD>s.  However, there is a significant base
+of existing code that may be using the old behavior.  So, as an
+interim step, Perl 5.004 issues an optional warning when non-methods
+use inherited C<AUTOLOAD>s.
+
+The simple rule is:  Inheritance will not work when autoloading
+non-methods.  The simple fix for old code is:  In any module that used to
+depend on inheriting C<AUTOLOAD> for non-methods from a base class named
+C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during startup.
+
+=item Use of %s is deprecated
+
+(D) The construct indicated is no longer recommended for use, generally
+because there's a better way to do it, and also because the old way has
+bad side effects.
+
 =item Use of uninitialized value
 
 (W) An undefined value was used as if it were already defined.  It was
@@ -2703,7 +2721,7 @@ version of Perl, and this should not happen anyway.
 
 =item Malformed PERLLIB_PREFIX
 
-(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form
+(F) An error peculiar to OS/2.  PERLLIB_PREFIX should be of the form
 
     prefix1;prefix2
 
@@ -2711,21 +2729,23 @@ or
 
     prefix1 prefix2
 
-with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix of
-a builtin library search path, prefix2 is substituted. The error may appear
-if components are not found, or are too long. See L<perlos2/"PERLLIB_PREFIX">.
+with nonempty prefix1 and prefix2.  If C<prefix1> is indeed a prefix
+of a builtin library search path, prefix2 is substituted.  The error
+may appear if components are not found, or are too long.  See
+"PERLLIB_PREFIX" in F<README.os2>.
 
 =item PERL_SH_DIR too long
 
 (F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
-C<sh>-shell in. See L<perlos2/"PERL_SH_DIR">.
+C<sh>-shell in.  See "PERL_SH_DIR" in F<README.os2>.
 
 =item Process terminated by SIG%s
 
 (W) This is a standard message issued by OS/2 applications, while *nix
-applications die in silence. It is considered a feature of the OS/2
-port. One can easily disable this by appropriate sighandlers, see
-L<perlipc/"Signals">.  See L<perlos2/"Process terminated by SIGTERM/SIGINT">.
+applications die in silence.  It is considered a feature of the OS/2
+port.  One can easily disable this by appropriate sighandlers, see
+L<perlipc/"Signals">.  See also "Process terminated by SIGTERM/SIGINT"
+in F<README.os2>.
 
 =back
 
index bc8412b..fba9a24 100644 (file)
@@ -10,7 +10,7 @@ control over the user-interface (keyboard, screen and pointing
 devices), and most anything else not related to data manipulation.
 
 Read the FAQs and documentation specific to the port of perl to your
-operating system (eg, L<perlvms>, L<perlplan9>, ...).  These should
+operating system (eg, L<perlvms>, F<REAMDE.os2>, ...).  These should
 contain more detailed information on the vagaries of your perl.
 
 =head2 How do I find out which operating system I'm running under?
index 25c684a..be75e87 100644 (file)
@@ -410,13 +410,13 @@ to go back before the current one.
      $hasargs, $wantarray, $evaltext, $is_require) = caller($i);
 
 Here $subroutine may be C<"(eval)"> if the frame is not a subroutine
-call, but C<L<eval>>.  In such a case additional elements $evaltext and
-$is_require are set: $is_require is true if the frame is created by
-C<L<require>> or C<L<use>> statement, $evaltext contains the text of
-C<L<eval EXPR>> statement.  In particular, for C<L<eval BLOCK>>
-statement $filename is C<"(eval)">, but $evaltext is undefined. (Note
-also that C<L<use>> statement creates a C<L<require>> frame inside
-an C<L<eval EXPR>>) frame.
+call, but an C<eval>.  In such a case additional elements $evaltext and
+$is_require are set: $is_require is true if the frame is created by a
+C<require> or C<use> statement, $evaltext contains the text of the
+C<eval EXPR> statement.  In particular, for a C<eval BLOCK> statement,
+$filename is C<"(eval)">, but $evaltext is undefined.  (Note also that
+each C<use> statement creates a C<require> frame inside an C<eval EXPR>)
+frame.
 
 Furthermore, when called from within the DB package, caller returns more
 detailed information: it sets the list variable @DB::args to be the
@@ -434,7 +434,7 @@ Changes the permissions of a list of files.  The first element of the
 list must be the numerical mode, which should probably be an octal
 number, and which definitely should I<not> a string of octal digits:
 C<0644> is okay, C<'0644'> is not.  Returns the number of files
-successfully changed.  See also L<oct>, if all you have is a string.
+successfully changed.  See also L</oct>, if all you have is a string.
 
     $cnt = chmod 0755, 'foo', 'bar';
     chmod 0755, @executables;
@@ -532,7 +532,7 @@ restrictions may be relaxed, but this is not a portable assumption.
 =item chr
 
 Returns the character represented by that NUMBER in the character set.
-For example, C<chr(65)> is "A" in ASCII.  For the reverse, use L<ord>.
+For example, C<chr(65)> is "A" in ASCII.  For the reverse, use L</ord>.
 
 If NUMBER is omitted, uses $_.
 
@@ -697,7 +697,7 @@ is not guaranteed to produce intuitive results, and should probably be
 avoided.
 
 When used on a hash element, it tells you whether the value is defined,
-not whether the key exists in the hash.  Use L<exists> for the latter
+not whether the key exists in the hash.  Use L</exists> for the latter
 purpose.
 
 Examples:
@@ -741,7 +741,7 @@ again to have memory already ready to be filled.
 This counterintuitive behaviour of defined() on aggregates may be
 changed, fixed, or broken in a future release of Perl.
 
-See also L<undef>, L<exists>, L<ref>.
+See also L</undef>, L</exists>, L</ref>.
 
 =item delete EXPR
 
@@ -1530,7 +1530,7 @@ actually modifies the element in the original list.
 
 Interprets EXPR as a hex string and returns the corresponding
 value.  (To convert strings that might start with either 0 or 0x
-see L<oct>.)  If EXPR is omitted, uses $_.
+see L</oct>.)  If EXPR is omitted, uses $_.
 
     print hex '0xAf'; # prints '175'
     print hex 'aF';   # same
@@ -2078,7 +2078,7 @@ DIRHANDLEs have their own namespace separate from FILEHANDLEs.
 =item ord
 
 Returns the numeric ascii value of the first character of EXPR.  If
-EXPR is omitted, uses $_.  For the reverse, see L<chr>.
+EXPR is omitted, uses $_.  For the reverse, see L</chr>.
 
 =item pack TEMPLATE,LIST
 
@@ -3526,7 +3526,7 @@ If EXPR is omitted, uses $_.
 Sets the umask for the process to EXPR and returns the previous value.
 If EXPR is omitted, merely returns the current umask.  Remember that a
 umask is a number, usually given in octal; it is I<not> a string of octal
-digits.  See also L<oct>, if all you have is a string.
+digits.  See also L</oct>, if all you have is a string.
 
 =item undef EXPR
 
index c14e17d..382c6c2 100644 (file)
@@ -1400,24 +1400,34 @@ method's CV, which can be obtained from the GV with the C<GvCV> macro.
 
 =item gv_fetchmethod
 
+=item gv_fetchmethod_autoload
+
 Returns the glob which contains the subroutine to call to invoke the
-method on the C<stash>. In fact in the presense of autoloading this may
-be the glob for "AUTOLOAD".  In this case the corresponing variable
+method on the C<stash>.  In fact in the presense of autoloading this may
+be the glob for "AUTOLOAD".  In this case the corresponding variable
 $AUTOLOAD is already setup.
 
-Note that if you want to keep this glob for a long time, you need to
-check for it being "AUTOLOAD", since at the later time the call
+The third parameter of C<gv_fetchmethod_autoload> determines whether AUTOLOAD
+lookup is performed if the given method is not present: non-zero means
+yes, look for AUTOLOAD; zero means no, don't look for AUTOLOAD.  Calling
+C<gv_fetchmethod> is equivalent to calling C<gv_fetchmethod_autoload> with a
+non-zero C<autoload> parameter.
+
+These functions grant C<"SUPER"> token as a prefix of the method name.
+
+Note that if you want to keep the returned glob for a long time, you
+need to check for it being "AUTOLOAD", since at the later time the call
 may load a different subroutine due to $AUTOLOAD changing its value.
 Use the glob created via a side effect to do this.
 
-This function grants C<"SUPER"> token as a prefix of the method name.
-
-Has the same side-effects and as C<gv_fetchmeth> with C<level==0>.
-C<name> should be writable if contains C<':'> or C<'\''>.
+These functions have the same side-effects and as C<gv_fetchmeth> with
+C<level==0>.  C<name> should be writable if contains C<':'> or C<'\''>.
 The warning against passing the GV returned by C<gv_fetchmeth> to
-C<perl_call_sv> apply equally to C<gv_fetchmethod>.
+C<perl_call_sv> apply equally to these functions.
 
         GV*     gv_fetchmethod _((HV* stash, char* name));
+        GV*     gv_fetchmethod_autoload _((HV* stash, char* name,
+                                           I32 autoload));
 
 =item gv_stashpv
 
@@ -2920,4 +2930,4 @@ API Listing by Dean Roehrich <F<roehrich@cray.com>>.
 
 =head1 DATE
 
-Version 31.4: 1997/3/30
+Version 31.5: 1997/4/1
index 4817aaf..8555b6c 100644 (file)
@@ -803,7 +803,7 @@ with $/ or $INPUT_RECORD_SEPARATOR).
 
     $today = qx{ date };
 
-See L<I/O Operators> for more discussion.
+See L<"I/O Operators"> for more discussion.
 
 =item qw/STRING/
 
index 9a103bf..20465c5 100644 (file)
@@ -829,9 +829,9 @@ file on another machine?
 
 =item More precise warnings
 
-=item Subroutine arguments created only when they're modified
+=item Deprecated: Inherited C<AUTOLOAD> for non-methods
 
-=item Simple functions' C<AUTOLOAD> not looked up as method
+=item Subroutine arguments created only when they're modified
 
 =item Fixed parsing of $$<digit>, &$<digit>, etc.
 
@@ -2318,27 +2318,27 @@ av_shift, av_store, av_undef, av_unshift, CLASS, Copy, croak, CvSTASH,
 DBsingle, DBsub, DBtrace, dMARK, dORIGMARK, dowarn, dSP, dXSARGS, dXSI32,
 dXSI32, ENTER, EXTEND, FREETMPS, G_ARRAY, G_DISCARD, G_EVAL, GIMME,
 GIMME_V, G_NOARGS, G_SCALAR, G_VOID, gv_fetchmeth, gv_fetchmethod,
-gv_stashpv, gv_stashsv, GvSV, HEf_SVKEY, HeHASH, HeKEY, HeKLEN, HePV,
-HeSVKEY, HeSVKEY_force, HeSVKEY_set, HeVAL, hv_clear, hv_delayfree_ent,
-hv_delete, hv_delete_ent, hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent,
-hv_free_ent, hv_iterinit, hv_iterkey, hv_iterkeysv, hv_iternext,
-hv_iternextsv, hv_iterval, hv_magic, HvNAME, hv_store, hv_store_ent,
-hv_undef, isALNUM, isALPHA, isDIGIT, isLOWER, isSPACE, isUPPER, items, ix,
-LEAVE, MARK, mg_clear, mg_copy, mg_find, mg_free, mg_get, mg_len,
-mg_magical, mg_set, Move, na, New, Newc, Newz, newAV, newHV, newRV_inc,
-newRV_noinc, newSV, newSViv, newSVnv, newSVpv, newSVrv, newSVsv, newXS,
-newXSproto, Nullav, Nullch, Nullcv, Nullhv, Nullsv, ORIGMARK, perl_alloc,
-perl_call_argv, perl_call_method, perl_call_pv, perl_call_sv,
-perl_construct, perl_destruct, perl_eval_sv, perl_free, perl_get_av,
-perl_get_cv, perl_get_hv, perl_get_sv, perl_parse, perl_require_pv,
-perl_run, POPi, POPl, POPp, POPn, POPs, PUSHMARK, PUSHi, PUSHn, PUSHp,
-PUSHs, PUTBACK, Renew, Renewc, RETVAL, safefree, safemalloc, saferealloc,
-savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE, strGT, strLE,
-strLT, strNE, strnEQ, strnNE, sv_2mortal, sv_bless, sv_catpv, sv_catpvn,
-sv_catsv, sv_cmp, sv_cmp, SvCUR, SvCUR_set, sv_dec, sv_dec, SvEND, sv_eq,
-SvGROW, sv_grow, sv_inc, SvIOK, SvIOK_off, SvIOK_on, SvIOK_only,
-SvIOK_only, SvIOKp, sv_isa, SvIV, sv_isobject, SvIVX, SvLEN, sv_len,
-sv_len, sv_magic, sv_mortalcopy, SvOK, sv_newmortal, sv_no, SvNIOK,
+gv_fetchmethod_autoload, gv_stashpv, gv_stashsv, GvSV, HEf_SVKEY, HeHASH,
+HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set, HeVAL, hv_clear,
+hv_delayfree_ent, hv_delete, hv_delete_ent, hv_exists, hv_exists_ent,
+hv_fetch, hv_fetch_ent, hv_free_ent, hv_iterinit, hv_iterkey, hv_iterkeysv,
+hv_iternext, hv_iternextsv, hv_iterval, hv_magic, HvNAME, hv_store,
+hv_store_ent, hv_undef, isALNUM, isALPHA, isDIGIT, isLOWER, isSPACE,
+isUPPER, items, ix, LEAVE, MARK, mg_clear, mg_copy, mg_find, mg_free,
+mg_get, mg_len, mg_magical, mg_set, Move, na, New, Newc, Newz, newAV,
+newHV, newRV_inc, newRV_noinc, newSV, newSViv, newSVnv, newSVpv, newSVrv,
+newSVsv, newXS, newXSproto, Nullav, Nullch, Nullcv, Nullhv, Nullsv,
+ORIGMARK, perl_alloc, perl_call_argv, perl_call_method, perl_call_pv,
+perl_call_sv, perl_construct, perl_destruct, perl_eval_sv, perl_free,
+perl_get_av, perl_get_cv, perl_get_hv, perl_get_sv, perl_parse,
+perl_require_pv, perl_run, POPi, POPl, POPp, POPn, POPs, PUSHMARK, PUSHi,
+PUSHn, PUSHp, PUSHs, PUTBACK, Renew, Renewc, RETVAL, safefree, safemalloc,
+saferealloc, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE,
+strGT, strLE, strLT, strNE, strnEQ, strnNE, sv_2mortal, sv_bless, sv_catpv,
+sv_catpvn, sv_catsv, sv_cmp, sv_cmp, SvCUR, SvCUR_set, sv_dec, sv_dec,
+SvEND, sv_eq, SvGROW, sv_grow, sv_inc, SvIOK, SvIOK_off, SvIOK_on,
+SvIOK_only, SvIOK_only, SvIOKp, sv_isa, SvIV, sv_isobject, SvIVX, SvLEN,
+sv_len, sv_len, sv_magic, sv_mortalcopy, SvOK, sv_newmortal, sv_no, SvNIOK,
 SvNIOK_off, SvNIOKp, SvNOK, SvNOK_off, SvNOK_on, SvNOK_only, SvNOK_only,
 SvNOKp, SvNV, SvNVX, SvPOK, SvPOK_off, SvPOK_on, SvPOK_only, SvPOK_only,
 SvPOKp, SvPV, SvPVX, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK,
@@ -2757,6 +2757,8 @@ clearcache ( COUNT ), clearallcache ( ), disablecache ( ), enablecache ( )
 
 =head2 CGI - Simple Common Gateway Interface Class
 
+=item SYNOPSIS
+
 =item ABSTRACT
 
 =item INSTALLATION:
@@ -3040,8 +3042,12 @@ distribution
 
 =item recompile
 
+=item The 4 Classes: Authors, Bundles, Modules, Distributions
+
 =item ProgrammerE<39>s interface
 
+expand($type,@things), Programming Examples
+
 =item Cache Manager
 
 =item Bundles
@@ -3290,7 +3296,7 @@ variables
 =head2 ExtUtils::Command - utilities to replace common UNIX commands in
 Makefiles etc.
 
-=item SYNOPSYS
+=item SYNOPSIS
 
 =item DESCRIPTION
 
index fd41f2e..d5aeafc 100644 (file)
@@ -688,8 +688,8 @@ Logical tests now return an null, instead of 0
     # perl4 prints: 0
     # perl5 prints:
 
-Also see the L<General Regular Expression Traps using s///, etc.>
-tests for another example of this new feature...
+Also see L<"General Regular Expression Traps using s///, etc.">
+for another example of this new feature...
 
 =back
 
diff --git a/proto.h b/proto.h
index defccec..9e4f6be 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -134,6 +134,7 @@ void        gv_efullname3 _((SV* sv, GV* gv, char* prefix));
 GV*    gv_fetchfile _((char* name));
 GV*    gv_fetchmeth _((HV* stash, char* name, STRLEN len, I32 level));
 GV*    gv_fetchmethod _((HV* stash, char* name));
+GV*    gv_fetchmethod_autoload _((HV* stash, char* name, I32 autoload));
 GV*    gv_fetchpv _((char* name, I32 add, I32 sv_type));
 void   gv_fullname _((SV* sv, GV* gv));
 void   gv_fullname3 _((SV* sv, GV* gv, char* prefix));
index e957d82..bdbc8a9 100755 (executable)
@@ -67,11 +67,8 @@ sub C::e;
 sub Y::f;
 $counter = 0;
 
-@Y::ISA = 'B';
-*Y::AUTOLOAD = *B::AUTOLOAD;
-
 @X::ISA = 'Y';
-*X::AUTOLOAD = *Y::AUTOLOAD;
+@Y::ISA = 'B';
 
 sub B::AUTOLOAD {
   my $c = ++$counter;
index 938538f..b082da6 100644 (file)
@@ -131,8 +131,6 @@ XS(XS_UNIVERSAL_can)
     SV   *sv;
     char *name;
     SV   *rv;
-    GV   *gv;
-    CV   *cvp;
     HV   *pkg = NULL;
 
     if (items != 2)
@@ -152,16 +150,9 @@ XS(XS_UNIVERSAL_can)
     }
 
     if (pkg) {
-        gv = gv_fetchmethod(pkg, name);
-
-        if(gv && GvCV(gv)) {
-            /* If the sub is only a stub then we may have a gv to AUTOLOAD */
-            GV **gvp = (GV**)hv_fetch(GvSTASH(gv), name, strlen(name), TRUE);
-            if(gvp && (cvp = GvCV(*gvp))) {
-                rv = sv_newmortal();
-                sv_setsv(rv, newRV((SV*)cvp));
-            }
-        }
+        GV *gv = gv_fetchmethod_autoload(pkg, name, FALSE);
+        if (gv && isGV(gv))
+           rv = sv_2mortal(newRV((SV*)GvCV(gv)));
     }
 
     ST(0) = rv;
index e7bb57a..c602396 100644 (file)
@@ -76,7 +76,7 @@
  * when Perl is built.  Please do not change it by hand; make
  * any changes to FndVers.Com instead.
  */
-#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00396"  /**/
+#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00397"  /**/
 #define ARCHLIB ARCHLIB_EXP    /*config-skip*/
 
 /* ARCHNAME:
index 7ebdde4..db33be3 100644 (file)
@@ -65,7 +65,7 @@ OBJVAL = $(MMS$TARGET_NAME)$(O)
 .endif
 
 # Updated by fndvers.com -- do not edit by hand
-PERL_VERSION = 5_00396#
+PERL_VERSION = 5_00397#
 
 
 ARCHDIR =  [.lib.$(ARCH).$(PERL_VERSION)]
index 4340285..2039986 100644 (file)
@@ -59,9 +59,9 @@ CLEAN :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
 # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /O2 /I ".\include" /I "." /I ".." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "MSDOS" /YX /c
+# ADD CPP /nologo /MT /W3 /O2 /I ".\include" /I "." /I ".." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PERLDLL" /YX /c
 CPP_PROJ=/nologo /MT /W3 /O2 /I ".\include" /I "." /I ".." /D "NDEBUG" /D\
- "WIN32" /D "_WINDOWS" /D "MSDOS" /Fp"$(INTDIR)/modules.pch" /YX /Fo"$(INTDIR)/"\
+ "WIN32" /D "_WINDOWS" /D "PERLDLL" /Fp"$(INTDIR)/modules.pch" /YX /Fo"$(INTDIR)/"\
  /c 
 CPP_OBJS=.\Release/
 CPP_SBRS=.\.
@@ -108,9 +108,9 @@ CLEAN :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
 # ADD BASE CPP /nologo /W3 /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /Z7 /Od /I ".\include" /I "." /I ".." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "MSDOS" /YX /c
+# ADD CPP /nologo /MT /W3 /Z7 /Od /I ".\include" /I "." /I ".." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PERLDLL" /YX /c
 CPP_PROJ=/nologo /MT /W3 /Z7 /Od /I ".\include" /I "." /I ".." /D "_DEBUG"\
- /D "WIN32" /D "_WINDOWS" /D "MSDOS" /Fp"$(INTDIR)/modules.pch" /YX\
+ /D "WIN32" /D "_WINDOWS" /D "PERLDLL" /Fp"$(INTDIR)/modules.pch" /YX\
  /Fo"$(INTDIR)/" /c 
 CPP_OBJS=.\Debug/
 CPP_SBRS=.\.
index 7e10283..48602f3 100644 (file)
@@ -1,4 +1,4 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
+# Microsoft Developer Studio Generated NMAKE File, Format Version 4.00
 # ** DO NOT EDIT **
 
 # TARGTYPE "Win32 (x86) Console Application" 0x0103
@@ -49,12 +49,13 @@ RSC=rc.exe
 OUTDIR=.\Release
 INTDIR=.\Release
 
-ALL : "..\_perl.exe"
+ALL : "$(OUTDIR)\_perl.exe"
 
 CLEAN : 
-       -@erase "$(INTDIR)\perlmain.obj"
-       -@erase "$(INTDIR)\win32io.obj"
        -@erase "..\_perl.exe"
+       -@erase ".\Release\perlmain.obj"
+       -@erase ".\Release\win32io.obj"
+       -@erase ".\Release\perl.res"
 
 "$(OUTDIR)" :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
@@ -64,15 +65,15 @@ CLEAN :
 CPP_PROJ=/nologo /MT /W3 /O2 /I "." /I ".\include" /I ".." /D "WIN32" /D\
  "NDEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/perl.pch" /YX /Fo"$(INTDIR)/" /c 
 CPP_OBJS=.\Release/
-CPP_SBRS=.\.
+CPP_SBRS=
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /d "NDEBUG"
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)/perl.res" /d "NDEBUG" 
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32_FLAGS=/nologo /o"$(OUTDIR)/perl.bsc" 
-BSC32_SBRS= \
-       
+BSC32_SBRS=
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:I386
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib setargv.obj /nologo /subsystem:console /machine:I386 /out:"../_perl.exe"
@@ -81,11 +82,11 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
  /subsystem:console /incremental:no /pdb:"$(OUTDIR)/_perl.pdb" /machine:I386\
  /out:"../_perl.exe" 
 LINK32_OBJS= \
-       "$(INTDIR)\perlmain.obj" \
-       "$(INTDIR)\win32io.obj" \
+       "$(INTDIR)/perlmain.obj" \
+       "$(INTDIR)/win32io.obj" \
        "..\perl.lib"
 
-"..\_perl.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+"$(OUTDIR)\_perl.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
@@ -105,35 +106,33 @@ LINK32_OBJS= \
 OUTDIR=.\Debug
 INTDIR=.\Debug
 
-ALL : "..\_perl.exe"
+ALL : "$(OUTDIR)\_perl.exe"
 
 CLEAN : 
-       -@erase "$(INTDIR)\perlmain.obj"
-       -@erase "$(INTDIR)\vc40.idb"
-       -@erase "$(INTDIR)\vc40.pdb"
-       -@erase "$(INTDIR)\win32io.obj"
-       -@erase "$(OUTDIR)\_perl.pdb"
        -@erase "..\_perl.exe"
+       -@erase ".\Debug\perlmain.obj"
+       -@erase ".\Debug\win32io.obj"
+       -@erase ".\Debug\perl.res"
        -@erase "..\_perl.ilk"
+       -@erase ".\Debug\_perl.pdb"
 
 "$(OUTDIR)" :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
 # ADD BASE CPP /nologo /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MT /W3 /Zi /Od /I "." /I ".\include" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MT /W3 /Zi /Od /I "." /I ".\include" /I ".." /D\
- "WIN32" /D "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/perl.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c 
+# ADD CPP /nologo /MT /W3 /Z7 /Od /I "." /I ".\include" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+CPP_PROJ=/nologo /MT /W3 /Z7 /Od /I "." /I ".\include" /I ".." /D "WIN32" /D\
+ "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/perl.pch" /YX /Fo"$(INTDIR)/" /c 
 CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
+CPP_SBRS=
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /d "_DEBUG"
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)/perl.res" /d "_DEBUG" 
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 BSC32_FLAGS=/nologo /o"$(OUTDIR)/perl.bsc" 
-BSC32_SBRS= \
-       
+BSC32_SBRS=
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:I386
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib setargv.obj /nologo /subsystem:console /debug /machine:I386 /out:"../_perl.exe"
@@ -142,11 +141,11 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
  /subsystem:console /incremental:yes /pdb:"$(OUTDIR)/_perl.pdb" /debug\
  /machine:I386 /out:"../_perl.exe" 
 LINK32_OBJS= \
-       "$(INTDIR)\perlmain.obj" \
-       "$(INTDIR)\win32io.obj" \
+       "$(INTDIR)/perlmain.obj" \
+       "$(INTDIR)/win32io.obj" \
        "..\perl.lib"
 
-"..\_perl.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+"$(OUTDIR)\_perl.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
@@ -191,9 +190,20 @@ DEP_CPP_PERLM=\
        ".\win32io.h"\
        
 
+!IF  "$(CFG)" == "perl - Win32 Release"
+
+
 "$(INTDIR)\perlmain.obj" : $(SOURCE) $(DEP_CPP_PERLM) "$(INTDIR)"
 
 
+!ELSEIF  "$(CFG)" == "perl - Win32 Debug"
+
+
+"$(INTDIR)\perlmain.obj" : $(SOURCE) $(DEP_CPP_PERLM) "$(INTDIR)"
+
+
+!ENDIF 
+
 # End Source File
 ################################################################################
 # Begin Source File
@@ -215,8 +225,8 @@ DEP_CPP_WIN32=\
        ".\include\sys/socket.h"\
        ".\win32io.h"\
        ".\win32iop.h"\
-       "$(INCLUDE)\Sys\Stat.h"\
-       "$(INCLUDE)\Sys\Types.h"\
+       "$(INCLUDE)\sys\STAT.H"\
+       "$(INCLUDE)\sys\TYPES.H"\
        
 
 "$(INTDIR)\win32io.obj" : $(SOURCE) $(DEP_CPP_WIN32) "$(INTDIR)"
index c7fc5a6..2daf219 100644 (file)
@@ -123,10 +123,10 @@ LINK32_OBJS= \
 # PROP Output_Dir "debug"
 # PROP Intermediate_Dir "debug"
 # PROP Target_Dir ""
-OUTDIR=.\debug
+OUTDIR=.\..
 INTDIR=.\debug
 
-ALL : "..\perl.dll"
+ALL : "$(OUTDIR)\perl.dll"
 
 CLEAN : 
        -@erase "$(INTDIR)\perllib.obj"
@@ -182,7 +182,7 @@ LINK32_OBJS= \
        "..\libperl.lib" \
        ".\modules.lib"
 
-"..\perl.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+"$(OUTDIR)\perl.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
index 6cc231d..55c2689 100644 (file)
@@ -84,7 +84,6 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
 LINK32_OBJS= \
        "$(INTDIR)/perlmain.obj" \
        "$(INTDIR)/win32io.obj" \
-       "$(INTDIR)/perl.res" \
        "..\perl.lib"
 
 "$(OUTDIR)\_perl.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
@@ -144,7 +143,6 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
 LINK32_OBJS= \
        "$(INTDIR)/perlmain.obj" \
        "$(INTDIR)/win32io.obj" \
-       "$(INTDIR)/perl.res" \
        "..\perl.lib"
 
 "$(OUTDIR)\_perl.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
@@ -235,19 +233,6 @@ DEP_CPP_WIN32=\
 
 
 # End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\perl.rc
-DEP_RSC_PERL_=\
-       ".\camel.ico"\
-       
-
-"$(INTDIR)\perl.res" : $(SOURCE) $(DEP_RSC_PERL_) "$(INTDIR)"
-   $(RSC) $(RSC_PROJ) $(SOURCE)
-
-
-# End Source File
 # End Target
 # End Project
 ################################################################################