Setting ${^ENCODE} will be fatal by 5.28.
authorAbigail <abigail@abigail.be>
Wed, 16 Nov 2016 18:07:32 +0000 (19:07 +0100)
committerAbigail <abigail@abigail.be>
Mon, 16 Jan 2017 18:18:11 +0000 (19:18 +0100)
Hence, we adapted the warning, to mention the version in which it
will become a fatal error.

handy.h
mg.c
pod/perldeprecation.pod
pod/perldiag.pod
t/lib/warnings/gv
t/lib/warnings/mg

diff --git a/handy.h b/handy.h
index 041d1c4..4d2f4bc 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -2480,6 +2480,9 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
 #  define deprecate_disappears_in(when,message) \
               Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),    \
                                message ", and will disappear in Perl " when)
+#  define deprecate_fatal_in(when,message) \
+              Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),    \
+                               message ". Its use will be fatal in Perl " when)
 #endif
 
 /* Internal macros to deal with gids and uids */
diff --git a/mg.c b/mg.c
index e945658..1bcfc4f 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -2709,8 +2709,8 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
        else {
             if (strEQ(mg->mg_ptr + 1, "NCODING") && SvOK(sv))
                         if (PL_localizing != 2) {
-                            Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                                    "${^ENCODING} is no longer supported");
+                            deprecate_fatal_in("5.28",
+                               "${^ENCODING} is no longer supported");
                         }
         }
        break;
index 422dc1b..8effa9f 100644 (file)
@@ -44,6 +44,16 @@ then result in a syntax error. Since the attributes do not do anything,
 removing them from your code fixes the deprecation warning; and removing
 them will not influence the behaviour of your code.
 
+
+=head3 ${^ENCODING} is no longer supported.
+
+The special variable C<${^ENCODING}> was used to implement
+the C<encoding> pragma. Setting this variable to anything other
+than C<undef> was deprecated in Perl 5.22. Full deprecation
+of the variable happened in Perl 5.25.3.
+
+Setting this variable will become a fatal error in Perl 5.28.
+
 =head2 Perl 5.24
 
 =head3 Use of C<< *glob{FILEHANDLE} >>
index 8296717..2d475b0 100644 (file)
@@ -2109,11 +2109,13 @@ unlikely to be what you want.
 described in L<perlunicode> and L<perlre>.  You used C<\p> or C<\P> in
 a regular expression without specifying the property name.
 
-=item ${^ENCODING} is no longer supported
+=item ${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28
 
 (D deprecated) The special variable C<${^ENCODING}>, formerly used to implement
 the C<encoding> pragma, is no longer supported as of Perl 5.26.0.
 
+Setting this variable will become a fatal error in Perl 5.28.
+
 =item entering effective %s failed
 
 (F) While under the C<use filetest> pragma, switching the real and
index ddc4c97..1c407df 100644 (file)
@@ -64,7 +64,7 @@ $a = ${^E_NCODING};
 ${^ENCODING} = 1;
 ${^E_NCODING} = 1; # We pretend this variable never existed.
 EXPECT
-${^ENCODING} is no longer supported at - line 4.
+${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28 at - line 4.
 ########
 # gv.c
 use warnings 'syntax' ;
index 5fe2a88..a4231bf 100644 (file)
@@ -110,5 +110,5 @@ ${^ENCODING} = 42;
 ${^ENCODING} = undef;
 { local ${^ENCODING} = 37; }
 EXPECT
-${^ENCODING} is no longer supported at - line 1.
-${^ENCODING} is no longer supported at - line 4.
+${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28 at - line 1.
+${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28 at - line 4.