Change 11256 by jhi@alpha on 2001/07/10 13:45:12

        Subject: [PATCH] deprecate package with no arguments
        From: Robin Houston <[EMAIL PROTECTED]>
        Date: Tue, 10 Jul 2001 13:33:40 +0100
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/op.c#410 edit
... //depot/perl/pod/perldiag.pod#228 edit
... //depot/perl/pod/perlfunc.pod#248 edit
... //depot/perl/t/lib/warnings/op#3 edit

Differences ...

==== //depot/perl/op.c#410 (text) ====
Index: perl/op.c
--- perl/op.c.~1~       Tue Jul 10 08:00:05 2001
+++ perl/op.c   Tue Jul 10 08:00:05 2001
@@ -3197,6 +3197,7 @@
        op_free(o);
     }
     else {
+       deprecate("\"package\" with no arguments");
        sv_setpv(PL_curstname,"<none>");
        PL_curstash = Nullhv;
     }

==== //depot/perl/pod/perldiag.pod#228 (text) ====
Index: perl/pod/perldiag.pod
--- perl/pod/perldiag.pod.~1~   Tue Jul 10 08:00:05 2001
+++ perl/pod/perldiag.pod       Tue Jul 10 08:00:05 2001
@@ -3868,6 +3868,13 @@
 you should remove AutoLoader from @ISA and change C<use AutoLoader;> to
 C<use AutoLoader 'AUTOLOAD';>.
 
+=item Use of "package" with no arguments is deprecated
+
+(D deprecated) You used the C<package> keyword without specifying a package
+name. So no namespace is current at all. Using this can cause many
+otherwise reasonable constructs to fail in baffling ways. C<use strict;>
+instead.
+
 =item Use of %s in printf format not supported
 
 (F) You attempted to use a feature of printf that is accessible from

==== //depot/perl/pod/perlfunc.pod#248 (text) ====
Index: perl/pod/perlfunc.pod
--- perl/pod/perlfunc.pod.~1~   Tue Jul 10 08:00:05 2001
+++ perl/pod/perlfunc.pod       Tue Jul 10 08:00:05 2001
@@ -3404,8 +3404,10 @@
 still seen in older code).
 
 If NAMESPACE is omitted, then there is no current package, and all
-identifiers must be fully qualified or lexicals.  This is stricter
-than C<use strict>, since it also extends to function names.
+identifiers must be fully qualified or lexicals.  However, you are
+strongly advised not to make use of this feature. Its use can cause
+unexpected behaviour, even crashing some versions of Perl. It is
+deprecated, and will be removed from a future release.
 
 See L<perlmod/"Packages"> for more information about packages, modules,
 and classes.  See L<perlsub> for other scoping issues.

==== //depot/perl/t/lib/warnings/op#3 (text) ====
Index: perl/t/lib/warnings/op
--- perl/t/lib/warnings/op.~1~  Tue Jul 10 08:00:05 2001
+++ perl/t/lib/warnings/op      Tue Jul 10 08:00:05 2001
@@ -108,6 +108,9 @@
        mkdir "foo", 777;
        umask 222;
 
+     Use of "package" with no arguments is deprecated
+       package;
+
     Mandatory Warnings 
     ------------------
     Prototype mismatch:                [cv_ckproto]
@@ -958,3 +961,11 @@
 EXPECT
 Non-octal literal mode (777) specified at - line 3.
        (Did you mean 0777 instead?)
+########
+# op.c
+use warnings 'deprecated' ;
+package;
+no warnings 'deprecated' ;
+package;
+EXPECT
+Use of "package" with no arguments is deprecated at - line 3.
End of Patch.

Reply via email to