perl5
perl5 copied to clipboard
run/locale.t test fails in 5.30.2 (Gentoo release, in preparation; same in 5.30.1)
While packaging 5.30.2 for Gentoo, I noticed failures of run/locale.t Rechecking 5.30.1, I now see identical failures there too.
Here are the corresponding log snippets.
# Failed test 35 - Radix print properly in locale scope, and without at ./test.pl line 1062
# got "1.5\n1.5"
# expected "1,5\n1.5"
# PROG:
# my $i = 1.5;
# {
# use locale;
# use POSIX;
# POSIX::setlocale(POSIX::LC_NUMERIC(),"de_DE.iso885915@euro");
# print $i, "
# ";
# }
# print $i, "
# ";
# STATUS: 0
^M===( 8210;1 0/? 1721/4216 91/92 36/? 93/137 4843/1642... )===# Failed test 36 - Can do math when radix is a comma at ./test.pl line 1062
# got "1.5\n2.5"
# expected "1,5\n2,5"
# PROG:
# my $i = 1.5; # Should be exactly representable as a base 2
# # fraction, so can use 'eq' below
# use locale;
# use POSIX;
# POSIX::setlocale(POSIX::LC_NUMERIC(),"de_DE.iso885915@euro");
# print $i, "
# ";
# $i += 1;
# print $i, "
# ";
# STATUS: 0
^M ^Mrun/fresh_perl.t ................................................... ok
^M===( 8216;1 0/? 1722/4216 37/? 94/137 4844/16421 0/... )===^M ^Mio/getcwd.t ........................................................ ok
^M===( 8219;1 0/? 1723/4216 37/? 95/137 4845/16421 0/... )===# Failed test 37 - POSIX::strtod() uses underlying locale at ./test.pl line 1062
# got "1"
# expected "1.5"
# PROG:
# use POSIX;
# POSIX::setlocale(POSIX::LC_NUMERIC(),"de_DE.iso885915@euro");
# my $one_point_5 = POSIX::strtod("1,5");
# $one_point_5 =~ s/0+$//; # Remove any trailing zeros
# print $one_point_5, "
# ";
# STATUS: 0
Perl configuration
(for my installed 5.30.1 which is built exactly the same way)
huettel@farino ~/Gentoo/gentoo/dev-lang/perl $ perl -V
Summary of my perl5 (revision 5 version 30 subversion 1) configuration:
Platform:
osname=linux
osvers=5.4.30-gentoo-ah1
archname=x86_64-linux
uname='linux farino 5.4.30-gentoo-ah1 #1 smp fri apr 3 15:46:25 eest 2020 x86_64 intel(r) core(tm) i5-8265u cpu @ 1.60ghz genuineintel gnulinux '
config_args='-des -Dinstallprefix=/usr -Dinstallusrbinperl=n -Ui_xlocale -Di_ndbm -Di_gdbm -Di_db -DDEBUGGING=none -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File -Duseshrplib -Darchname=x86_64-linux -Dcc=x86_64-pc-linux-gnu-gcc -Doptimize=-O2 -pipe -march=native -Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin -Dprivlib=/usr/lib64/perl5/5.30.1 -Darchlib=/usr/lib64/perl5/5.30.1/x86_64-linux -Dsitelib=/usr/local/lib64/perl5/5.30.1 -Dsitearch=/usr/local/lib64/perl5/5.30.1/x86_64-linux -Dvendorlib=/usr/lib64/perl5/vendor_perl/5.30.1 -Dvendorarch=/usr/lib64/perl5/vendor_perl/5.30.1/x86_64-linux -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dvendorman1dir=/usr/share/man/man1 -Dvendorman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3pm -Dlibperl=libperl.so.5.30.1 -Dlocincpth=/usr/include -Dglibpth=/lib64 /usr/lib64 -Duselargefiles -Dd_semctl_semun -Dcf_by=Gentoo -Dmyhostname=localhost -Dperladmin=root@localhost -Ud_csh -Dsh=/bin/sh -Dtargetsh=/bin/sh -Uusenm -Ui_xlocale -Di_ndbm -Di_gdbm -Di_db -DDEBUGGING=none -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dnoextensions=ODBM_File'
hint=recommended
useposix=true
d_sigaction=define
useithreads=undef
usemultiplicity=undef
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='x86_64-pc-linux-gnu-gcc'
ccflags ='-fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
optimize='-O2 -pipe -march=native'
cppflags='-fwrapv -fno-strict-aliasing -pipe'
ccversion=''
gccversion='9.2.0'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='x86_64-pc-linux-gnu-gcc'
ldflags ='-Wl,-O1 -Wl,--as-needed'
libpth=/usr/local/lib64 /lib64 /usr/lib64 /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include-fixed /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib
libs=-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-ldl -lm -lcrypt -lutil -lc
libc=libc-2.30.so
so=so
useshrplib=true
libperl=libperl.so.5.30.1
gnulibc_version='2.30'
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl,-E'
cccdlflags='-fPIC'
lddlflags='-shared -O2 -pipe -march=native -Wl,-O1 -Wl,--as-needed'
Characteristics of this binary (from libperl):
Compile-time options:
HAS_TIMES
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
USE_64_BIT_ALL
USE_64_BIT_INT
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
Locally applied patches:
gentoo/hints_hpux - Fix hpux hints
gentoo/aix_soname - aix gcc detection and shared library soname support
gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054 cpan/ExtUtils-MakeMaker: drop $PORTAGE_TMPDIR from LD_RUN_PATH
gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
gentoo/opensolaris_headers - Add headers for opensolaris
gentoo/patchlevel - List packaged patches for perl-5.30.1(#1) in patchlevel.h
gentoo/cleanup-paths - Cleanup PATH and shrpenv
gentoo/enc2xs - Tweak enc2xs to follow symlinks and ignore missing @INC directories.
gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 darwin: Use $CC to link
gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
gentoo/interix - Fix interix hints
gentoo/create_libperl_soname - https://bugs.gentoo.org/286840 Set libperl soname
gentoo/mod_paths - Add /etc/perl to @INC
gentoo/EUMM_perllocalpod - cpan/ExtUtils-MakeMaker: remove targets that generate perllocal.pod
gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557 Don't force -fstack-protector on everyone
gentoo/usr_local - Configure: Don't include sources in /usr/local/ for compiling perl
gentoo/D-SHA-CFLAGS - https://bugs.gentoo.org/506818 Do not set custom CFLAGS in cpan/Digest-SHA
gentoo/io_socket_ip_tests - cpan/IO-Socket-IP: Disable network tests
gentoo/tests - Fix EUMM podlocal tests
gentoo/no-nsl-cl.patch -
gentoo/no_porting_tests - Disable porting tests which create fun false-failures all over travis
gentoo/pathtools_enoent - Disable PathTools tests which fails under sandboxing
debian/cpan-missing-site-dirs - Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable
debian/makemaker-pasthru - Pass LD settings through to subdirectories
fixes/memoize_storable_nstore - [rt.cpan.org #77790] Memoize::Storable: respect 'nstore' option not respected
fixes/podman-pipe - Better errors for man pages from standard input
fixes/respect_umask - Respect umask during installation
fixes/net_smtp_docs - [rt.cpan.org #36038] Document the Net::SMTP 'Port' option
fixes/document_makemaker_ccflags - [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
fixes/parallel-manisort.patch - Fix parallel building
Built under linux
Compiled at Apr 4 2020 03:45:51
@INC:
/etc/perl
/usr/local/lib64/perl5/5.30.1/x86_64-linux
/usr/local/lib64/perl5/5.30.1
/usr/lib64/perl5/vendor_perl/5.30.1/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.30.1
/usr/lib64/perl5/5.30.1/x86_64-linux
/usr/lib64/perl5/5.30.1
huettel@farino ~/Gentoo/gentoo/dev-lang/perl $
In the past few years, these kinds of bugs have all been because of the operating system having locale bugs. What it appears to be here is that the locale is being set so that the radix character is a comma, but a dot is instead being printed. I suspect an OS bug because its just one OS that is having trouble. But I've been wrong before; to help me figure it out, run the following commands, capture and post the output.
cd t export PERL5OPT=-DLv ./perl -I../lib run/locale.t
In the past few years, these kinds of bugs have all been because of the operating system having locale bugs. What it appears to be here is that the locale is being set so that the radix character is a comma, but a dot is instead being printed. I suspect an OS bug because its just one OS that is having trouble. But I've been wrong before; to help me figure it out, run the following commands, capture and post the output.
cd t export PERL5OPT=-DLv ./perl -I../lib run/locale.t
@akhuettel, if this is still a problem for you, could you try out the suggestions made by @khwilliamson?
Thank you very much. Jim Keenan
In the past few years, these kinds of bugs have all been because of the operating system having locale bugs. What it appears to be here is that the locale is being set so that the radix character is a comma, but a dot is instead being printed. I suspect an OS bug because its just one OS that is having trouble. But I've been wrong before; to help me figure it out, run the following commands, capture and post the output. cd t export PERL5OPT=-DLv ./perl -I../lib run/locale.t
@akhuettel, if this is still a problem for you, could you try out the suggestions made by @khwilliamson?
@akhuettel, could you let us know how the suggestions by @khwilliamson have worked out? (Otherwise, we will soon close this Issue.)
In the past few years, these kinds of bugs have all been because of the operating system having locale bugs. What it appears to be here is that the locale is being set so that the radix character is a comma, but a dot is instead being printed. I suspect an OS bug because its just one OS that is having trouble. But I've been wrong before; to help me figure it out, run the following commands, capture and post the output. cd t export PERL5OPT=-DLv ./perl -I../lib run/locale.t
@akhuettel, if this is still a problem for you, could you try out the suggestions made by @khwilliamson?
@akhuettel, could you let us know how the suggestions by @khwilliamson have worked out? (Otherwise, we will soon close this Issue.)
I am self-assigning this ticket for the purpose of closing it within 7 days unless we hear back from the original poster.
No response from OP; closing as per schedule.
FYI I encountered the exact same problem today when running perlbrew install perl-5.38.0 on a Debian 12.2 system.
(same for perl-5.32.1, perl-5.34.1 and perl-5.36.1)