This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Experimentally cause 'use encoding' to fail.
authorKarl Williamson <khw@cpan.org>
Fri, 13 Jun 2014 17:18:01 +0000 (11:18 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 13 Jun 2014 17:26:23 +0000 (11:26 -0600)
This actually doesn't remove it, but causes any program that does use it
to die.  Its use has raised a (default-on) deprecation warning since
5.18, but its demise was omitted from the perldelta for v5.20.

This commit does the minimum necessary to flush out what might break by
its actual removal, while being easily revertable should that become
necessary.

18 files changed:
Porting/Maintainers.pl
cpan/Encode/encoding.pm
cpan/Encode/t/enc_data.t
cpan/Encode/t/enc_eucjp.t
cpan/Encode/t/enc_module.t
cpan/Encode/t/enc_utf8.t
cpan/Encode/t/encoding.t
cpan/Encode/t/jperl.t
pod/perldelta.pod
t/op/concat2.t
t/porting/customized.dat
t/uni/chr.t
t/uni/greek.t
t/uni/latin2.t
t/uni/tr_7jis.t
t/uni/tr_eucjp.t
t/uni/tr_sjis.t
t/uni/tr_utf8.t

index 8f2af6f..cc4387c 100755 (executable)
@@ -380,6 +380,14 @@ use File::Glob qw(:case);
     'Encode' => {
         'DISTRIBUTION' => 'DANKOGAI/Encode-2.62.tar.gz',
         'FILES'        => q[cpan/Encode],
+        'CUSTOMIZED'   => [
+                            'encoding.pm',
+                            't/enc_data.t',
+                            't/enc_eucjp.t',
+                            't/enc_utf8.t',
+                            't/encoding.t',
+                            't/jperl.t',
+                            ],
     },
 
     'encoding::warnings' => {
index c0bff08..a55fc8c 100644 (file)
@@ -102,6 +102,9 @@ sub _get_locale_encoding {
 }
 
 sub import {
+    if ($] >= 5.020) {
+        Carp::croak("encoding: pragma has been removed");
+    }
     if ($] >= 5.017) {
        warnings::warnif("deprecated",
                         "Use of the encoding pragma is deprecated")
index a0caf65..1a1cfde 100644 (file)
@@ -1,6 +1,8 @@
 # $Id: enc_data.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
 
 BEGIN {
+    print "1..0 # Skip: 'use encoding' has been removed\n";
+    exit 0;
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
index 7c78a68..96e466d 100644 (file)
@@ -2,6 +2,8 @@
 # This is the twin of enc_utf8.t .
 
 BEGIN {
+    print "1..0 # Skip: 'use encoding' has been removed\n";
+    exit 0;
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
index 05fc6c2..120b7ad 100644 (file)
@@ -1,6 +1,8 @@
 # $Id: enc_module.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
 # This file is in euc-jp
 BEGIN {
+    print "1..0 # Skip: 'use encoding' has been removed\n";
+    exit 0;
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
index 9c6caa3..ce24b1d 100644 (file)
@@ -2,6 +2,8 @@
 # This is the twin of enc_eucjp.t .
 
 BEGIN {
+    print "1..0 # Skip: 'use encoding' has been removed\n";
+    exit 0;
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
index 8c7f253..c49e423 100644 (file)
@@ -1,4 +1,6 @@
 BEGIN {
+    print "1..0 # Skip: 'use encoding' has been removed\n";
+    exit 0;
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
index 3abe86b..a47dddf 100644 (file)
@@ -4,6 +4,8 @@
 # This script is written in euc-jp
 
 BEGIN {
+    print "1..0 # Skip: 'use encoding' has been removed\n";
+    exit 0;
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
index 43a577b..aae8cd6 100644 (file)
@@ -81,6 +81,11 @@ XXX For a release on a stable branch, this section aspires to be:
     If any exist, they are bugs, and we request that you submit a
     report.  See L</Reporting Bugs> below.
 
+=head2 S<C<"use encoding">> now is a fatal error
+
+The C<encoding> pragma has been deprecated since v5.18, and its use now
+is a fatal error.
+
 =head2 C<\N{}> with a sequence of multiple spaces is now a fatal error.
 
 This has been deprecated since v5.18.
index 9dfcc5b..46ec02e 100644 (file)
@@ -14,6 +14,7 @@ BEGIN {
 plan 3;
 
 SKIP: {
+skip("XXX 'use encoding' is gone.  This test needs to be rewritten", 1);
 skip_if_miniperl("no dynamic loading on miniperl, no Encode", 1);
 fresh_perl_is <<'end', "ok\n", {},
     no warnings 'deprecated';
index 47d977b..9c52079 100644 (file)
@@ -18,3 +18,9 @@ podlators cpan/podlators/scripts/pod2text.PL b4693fcfe4a0a1b38a215cfb8985a65d5d0
 version cpan/version/lib/version.pm fa9931d4db05aff9a0a6ef558610b1a472d9306e
 version vutil.c abd88f59a6e0cfe7b4e45b1859f414042ea254aa
 version vxs.inc 9064aacbdfe42bb584a068f62b505dd11dbb4dc4
+Encode cpan/Encode/encoding.pm 156567bed188fd57e469915a58a3d09df020681c
+Encode cpan/Encode/t/enc_data.t 82e46d0908fdd381ab01b700240050034336a66d
+Encode cpan/Encode/t/enc_eucjp.t 9b386c1ef035f22798b124aa361bfecb833456c0
+Encode cpan/Encode/t/enc_utf8.t 3414490ad30b155241f07e3e3f2079743de16d40
+Encode cpan/Encode/t/encoding.t 4ac06c1f1c1b958c4e4b11304b8372bc94396c11
+Encode cpan/Encode/t/jperl.t 3c21d9c62d1a68dc6da7431f364f8aa4b3e9d040
index 9445d32..226f1b7 100644 (file)
@@ -2,6 +2,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
index 5326ab9..d911a75 100644 (file)
@@ -2,6 +2,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
index 6e7d980..06299db 100644 (file)
@@ -2,6 +2,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
index 2108319..918655b 100644 (file)
@@ -6,6 +6,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
index a317bb1..13ae4e1 100644 (file)
@@ -5,6 +5,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
index a82b35c..b172826 100644 (file)
@@ -5,6 +5,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();
index 2a566d9..01a26bc 100644 (file)
@@ -6,6 +6,7 @@
 
 BEGIN {
     require './test.pl';
+    skip_all("'use encoding' has been removed");
     skip_all_without_dynamic_extension('Encode');
     skip_all("EBCDIC") if $::IS_EBCDIC;
     skip_all_without_perlio();