diff options
-rw-r--r-- | Changes | 127 | ||||
-rw-r--r-- | embed.h | 1 | ||||
-rw-r--r-- | ext/DynaLoader/DynaLoader.pm | 12 | ||||
-rw-r--r-- | global.sym | 1 | ||||
-rw-r--r-- | gv.c | 66 | ||||
-rw-r--r-- | lib/CGI.pm | 11 | ||||
-rw-r--r-- | lib/ExtUtils/Command.pm | 2 | ||||
-rw-r--r-- | lib/Text/ParseWords.pm | 10 | ||||
-rw-r--r-- | lib/autouse.pm | 2 | ||||
-rw-r--r-- | patchlevel.h | 2 | ||||
-rw-r--r-- | plan9/buildinfo | 2 | ||||
-rw-r--r-- | pod/Makefile | 37 | ||||
-rw-r--r-- | pod/perldelta.pod | 54 | ||||
-rw-r--r-- | pod/perldiag.pod | 48 | ||||
-rw-r--r-- | pod/perlfaq8.pod | 2 | ||||
-rw-r--r-- | pod/perlfunc.pod | 28 | ||||
-rw-r--r-- | pod/perlguts.pod | 30 | ||||
-rw-r--r-- | pod/perlop.pod | 2 | ||||
-rw-r--r-- | pod/perltoc.pod | 54 | ||||
-rw-r--r-- | pod/perltrap.pod | 4 | ||||
-rw-r--r-- | proto.h | 1 | ||||
-rwxr-xr-x | t/op/method.t | 5 | ||||
-rw-r--r-- | universal.c | 15 | ||||
-rw-r--r-- | vms/config.vms | 2 | ||||
-rw-r--r-- | vms/descrip.mms | 2 | ||||
-rw-r--r-- | win32/VC-2.0/modules.mak | 8 | ||||
-rw-r--r-- | win32/VC-2.0/perl.mak | 66 | ||||
-rw-r--r-- | win32/VC-2.0/perldll.mak | 6 | ||||
-rw-r--r-- | win32/perl.mak | 15 |
29 files changed, 401 insertions, 214 deletions
@@ -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 @@ -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 @@ -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 @@ -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 ################################################################################ |