Bug#974143: libencode-arabic-perl: autopkgtest regression with Perl 5.32: Useless use of /d modifier in transliteration operator
Niko Tyni
ntyni at debian.org
Tue Nov 10 15:26:43 GMT 2020
Package: libencode-arabic-perl
Version: 14.2-1
Severity: serious
User: debian-perl at lists.debian.org
Usertags: perl-5.32-transition
Control: block 968912 with -1
Control: affects -1 libelixirfm-perl
It looks like Perl 5.32 caused a regression in the libencode-arabic-perl
(and transitively libelixirfm-perl) autopkgtest checks. The failure
boils down to this:
# perl -we 'use Encode::Arabic'
Useless use of /d modifier in transliteration operator at (eval 5) line 6.
Useless use of /d modifier in transliteration operator at (eval 7) line 6.
Useless use of /d modifier in transliteration operator at (eval 9) line 6.
Running with 'perl -d' shows these come from
Useless use of /d modifier in transliteration operator at (eval 10)[/usr/share/perl5/Encode/Arabic/Habash.pm:163] line 6.
Useless use of /d modifier in transliteration operator at (eval 8)[/usr/share/perl5/Encode/Arabic/Parkinson.pm:157] line 6.
Useless use of /d modifier in transliteration operator at (eval 6)[/usr/share/perl5/Encode/Arabic/Buckwalter.pm:161] line 6.
Quoting https://perldoc.perl.org/perldiag#Useless-use-of-/d-modifier-in-transliteration-operator
(W misc) You have used the /d modifier where the searchlist has the same length as the replacelist.
The difference between Perl versions seems to be that 5.32 has become
smarter about non-ASCII character ranges, as seen with
# perl -we '$0 =~ tr/\x{0626}-\x{0628}/abc/d'
which warns with 5.32 but not with 5.30.
I'm guessing this changed somewhere around
https://github.com/Perl/perl5/commits/f34acfecc286f2eff2450db713da005d888a7317
and it looks to me like this is not a regression in Perl and
Encode::Arabic needs to adapt.
Given the transliteration lists are built dynamically in the code, maybe
the thing to do is just to insert some "no warnings 'misc'" declarations
to suppress the warnings.
Alternatively, disabling the autopkgtest check would lower the severity
of this (but note that at least libelixirfm-perl would also need to
be changed.)
The autopkgtest regression makes this a blocker for Perl 5.32 transition.
--
Niko Tyni ntyni at debian.org
More information about the pkg-perl-maintainers
mailing list