summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes127
-rw-r--r--embed.h1
-rw-r--r--ext/DynaLoader/DynaLoader.pm12
-rw-r--r--global.sym1
-rw-r--r--gv.c66
-rw-r--r--lib/CGI.pm11
-rw-r--r--lib/ExtUtils/Command.pm2
-rw-r--r--lib/Text/ParseWords.pm10
-rw-r--r--lib/autouse.pm2
-rw-r--r--patchlevel.h2
-rw-r--r--plan9/buildinfo2
-rw-r--r--pod/Makefile37
-rw-r--r--pod/perldelta.pod54
-rw-r--r--pod/perldiag.pod48
-rw-r--r--pod/perlfaq8.pod2
-rw-r--r--pod/perlfunc.pod28
-rw-r--r--pod/perlguts.pod30
-rw-r--r--pod/perlop.pod2
-rw-r--r--pod/perltoc.pod54
-rw-r--r--pod/perltrap.pod4
-rw-r--r--proto.h1
-rwxr-xr-xt/op/method.t5
-rw-r--r--universal.c15
-rw-r--r--vms/config.vms2
-rw-r--r--vms/descrip.mms2
-rw-r--r--win32/VC-2.0/modules.mak8
-rw-r--r--win32/VC-2.0/perl.mak66
-rw-r--r--win32/VC-2.0/perldll.mak6
-rw-r--r--win32/perl.mak15
29 files changed, 401 insertions, 214 deletions
diff --git a/Changes b/Changes
index d27be4af20..38c3e0aee7 100644
--- 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 fdda81a6d8..f77bfb42fe 100644
--- a/embed.h
+++ b/embed.h
@@ -227,6 +227,7 @@
#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
diff --git a/ext/DynaLoader/DynaLoader.pm b/ext/DynaLoader/DynaLoader.pm
index 3cb06cc4db..84881448c7 100644
--- a/ext/DynaLoader/DynaLoader.pm
+++ b/ext/DynaLoader/DynaLoader.pm
@@ -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;
diff --git a/global.sym b/global.sym
index 60c3836a36..1524c035cc 100644
--- a/global.sym
+++ b/global.sym
@@ -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 fccecf3f4b..98526ca91e 100644
--- 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))),
diff --git a/lib/CGI.pm b/lib/CGI.pm
index 3ddd4d999b..4651e138a3 100644
--- a/lib/CGI.pm
+++ b/lib/CGI.pm
@@ -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
diff --git a/lib/ExtUtils/Command.pm b/lib/ExtUtils/Command.pm
index 7bdbea9dd7..bdf32d4218 100644
--- a/lib/ExtUtils/Command.pm
+++ b/lib/ExtUtils/Command.pm
@@ -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
diff --git a/lib/Text/ParseWords.pm b/lib/Text/ParseWords.pm
index ce6f0009fc..bd95b4f204 100644
--- a/lib/Text/ParseWords.pm
+++ b/lib/Text/ParseWords.pm
@@ -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
diff --git a/lib/autouse.pm b/lib/autouse.pm
index e2ef580392..b3adc34549 100644
--- a/lib/autouse.pm
+++ b/lib/autouse.pm
@@ -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};
diff --git a/patchlevel.h b/patchlevel.h
index 2c1672de4c..75b45f0d53 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -1,5 +1,5 @@
#define PATCHLEVEL 3
-#define SUBVERSION 96
+#define SUBVERSION 97
/*
local_patches -- list of locally applied less-than-subversion patches.
diff --git a/plan9/buildinfo b/plan9/buildinfo
index fedbafc6ee..ea502c0781 100644
--- a/plan9/buildinfo
+++ b/plan9/buildinfo
@@ -1 +1 @@
-p9pvers = 5.003_96
+p9pvers = 5.003_97
diff --git a/pod/Makefile b/pod/Makefile
index 0ec08f992a..273786489c 100644
--- a/pod/Makefile
+++ b/pod/Makefile
@@ -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
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index ddd29c46d6..2e293419d0 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -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
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index a138bc6645..49eb22e2e2 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -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
diff --git a/pod/perlfaq8.pod b/pod/perlfaq8.pod
index bc8412bf6f..fba9a249aa 100644
--- a/pod/perlfaq8.pod
+++ b/pod/perlfaq8.pod
@@ -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?
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 25c684af2e..be75e8711c 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -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
diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index c14e17d0bd..382c6c2e00 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -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
diff --git a/pod/perlop.pod b/pod/perlop.pod
index 4817aaf5fe..8555b6cb46 100644
--- a/pod/perlop.pod
+++ b/pod/perlop.pod
@@ -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/
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 9a103bfaeb..20465c5e22 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -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
diff --git a/pod/perltrap.pod b/pod/perltrap.pod
index fd41f2ef4d..d5aeafc3f2 100644
--- a/pod/perltrap.pod
+++ b/pod/perltrap.pod
@@ -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 defccecbce..9e4f6be835 100644
--- 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));
diff --git a/t/op/method.t b/t/op/method.t
index e957d825ff..bdbc8a9673 100755
--- a/t/op/method.t
+++ b/t/op/method.t
@@ -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;
diff --git a/universal.c b/universal.c
index 938538f2a6..b082da67ff 100644
--- a/universal.c
+++ b/universal.c
@@ -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;
diff --git a/vms/config.vms b/vms/config.vms
index e7bb57a0f9..c60239618d 100644
--- a/vms/config.vms
+++ b/vms/config.vms
@@ -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:
diff --git a/vms/descrip.mms b/vms/descrip.mms
index 7ebdde4c27..db33be3e00 100644
--- a/vms/descrip.mms
+++ b/vms/descrip.mms
@@ -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)]
diff --git a/win32/VC-2.0/modules.mak b/win32/VC-2.0/modules.mak
index 4340285530..2039986d51 100644
--- a/win32/VC-2.0/modules.mak
+++ b/win32/VC-2.0/modules.mak
@@ -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=.\.
diff --git a/win32/VC-2.0/perl.mak b/win32/VC-2.0/perl.mak
index 7e10283b2c..48602f330d 100644
--- a/win32/VC-2.0/perl.mak
+++ b/win32/VC-2.0/perl.mak
@@ -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)"
diff --git a/win32/VC-2.0/perldll.mak b/win32/VC-2.0/perldll.mak
index c7fc5a676c..2daf219bca 100644
--- a/win32/VC-2.0/perldll.mak
+++ b/win32/VC-2.0/perldll.mak
@@ -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)
<<
diff --git a/win32/perl.mak b/win32/perl.mak
index 6cc231d4d7..55c2689397 100644
--- a/win32/perl.mak
+++ b/win32/perl.mak
@@ -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
################################################################################