Skip Menu |

This queue is for tickets about the Encode CPAN distribution.

Report information
The Basics
Id: 69736
Status: open
Priority: 0/
Queue: Encode

People
Owner: Nobody in particular
Requestors:
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 2.43
Fixed in: (no value)



Subject: find_encoding(q[cp1252]) fails if Storable is loaded
find_encoding(q[cp1252]) fails if Storable is loaded, it doesn't matter which is loaded first $ perl -le " require Encode; print Encode::find_encoding(q[cp1252]) " Encode::XS=SCALAR(0xa3f02c) $ perl -le " require Storable; require Encode; print Encode::find_encoding(q[cp1252]) " $ pmvers Storable Encode Storable: 2.30 Encode: 2.43 If I turn on PERL_ENCODE_DEBUG I see $ perl -le " require Encode; print Encode::find_encoding(q[cp1252]) delete $Alias{C} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{ascii} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{cyrillic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{arabic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{greek} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{hebrew} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{thai} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. Encode::utf8 XS on at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode.pm line 299. eval "cp$1" at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 32. eval "\L$1" at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 32. find_alias(Encode, cp1252)->name = at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 75. delete $Alias{adobestandardencoding} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macarabic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{maccentraleurroman} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{maccroatian} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{maccyrillic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macfarsi} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macgreek} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{machebrew} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macicelandic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macroman} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macromanian} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macrumanian} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macsami} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macthai} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macturkish} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{macukrainian} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. cp1252 => cp1252 at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 63. find_alias(Encode, cp1252)->name = cp1252 at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 75. Encode::XS=SCALAR(0xa4b8bc) $ perl -le " require Storable; require Encode; print Encode::find_encoding(q[cp1252]) delete $Alias{C} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{ascii} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{cyrillic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{arabic} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{greek} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{hebrew} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. delete $Alias{thai} at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 100. Encode::utf8 XS on at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode.pm line 299. eval "cp$1" at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 32. eval "\L$1" at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 32. find_alias(Encode, cp1252)->name = at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 75. cp1252 => cp1252 at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 63. find_alias(Encode, cp1252)->name = at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Encode/Alias.pm line 75. Thanks for your time Summary of my perl5 (revision 5 version 14 subversion 1) configuration: Commit id: cc92ef02098c000d945bcf93c92bdb2a0a05fa97 Platform: osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields', optimize='-s -O2', cppflags='-DWIN32' ccversion='', gccversion='4.5.2', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long long', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-static-libgcc -static-libstdc++ -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE" -L"C:\MinGW\lib"' libpth=C:\MinGW\lib libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 libc=, so=dll, useshrplib=true, libperl=libperl514.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -static-libgcc -static-libstdc++ -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE" -L"C:\MinGW\lib"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF Built under MSWin32 Compiled at Jul 22 2011 00:38:35 @INC: C:/perl/site/5.14.1/lib/MSWin32-x86-multi-thread C:/perl/site/5.14.1/lib C:/perl/5.14.1/lib/MSWin32-x86-multi-thread C:/perl/5.14.1/lib .
Some more insight $ perl -le " require Encode::Locale; require Encode; require Storable; print Encode::find_encoding(q[cp1252]) " Can't load 'C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/auto/Storable/Storable.dll' for module Storable: load_file:Invalid access to memory location at C:/perl/site/5.14.1/lib/MSWin32-x86-multi-thread/XSLoader.pm line 71. at C:/perl/5.14.1/lib/MSWin32-x86-multi-thread/Storable.pm line 72 Compilation failed in require at -e line 1. A google yields http://www.nntp.perl.org/group/perl.perl5.porters/2010/03/msg158091.html where Reini Urban thinks its a typical stdc++ problem probably not perl related at all hmmm