in reply to Release: JSON::SIMD

I'm interested to try this as process tonnes of 50MiB+ JSON files each day.

Using latest strawberry perl (perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread) on windows it fails to compile:

> cpan install JSON::SIMD Loading internal logger. Log::Log4perl recommended for better logging CPAN: CPAN::SQLite loaded ok (v0.219) Database was generated on Tue, 18 Apr 2023 23:25:30 GMT Running install for module 'JSON::SIMD' CPAN: Digest::SHA loaded ok (v6.02) CPAN: Compress::Zlib loaded ok (v2.1) Checksum for C:\STRAWB~1\cpan\sources\authors\id\P\PJ\PJUHASZ\JSON-SIM +D-1.03.tar.gz ok CPAN: Archive::Tar loaded ok (v2.38) CPAN: YAML::XS loaded ok (v0.82) CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v2.150010) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::CoreList loaded ok (v5.20210123) ---- Unsatisfied dependencies detected during ---- ---- PJUHASZ/JSON-SIMD-1.03.tar.gz ---- ExtUtils::CppGuess [build_requires] Running install for module 'ExtUtils::CppGuess' Checksum for C:\STRAWB~1\cpan\sources\authors\id\E\ET\ETJ\ExtUtils-Cpp +Guess-0.26.tar.gz ok Configuring E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a gmake-style Makefile Writing Makefile for ExtUtils::CppGuess Writing MYMETA.yml and MYMETA.json ETJ/ExtUtils-CppGuess-0.26.tar.gz C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK Running make for E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz cp lib/ExtUtils/CppGuess.pm blib\lib\ExtUtils\CppGuess.pm ETJ/ExtUtils-CppGuess-0.26.tar.gz C:\STRAWB~1\c\bin\gmake.exe -- OK Running make test for ETJ/ExtUtils-CppGuess-0.26.tar.gz "C:\Strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::H +arness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\l +ib', 'blib\arch')" t/*.t t/00-report-prereqs.t .. # # Versions for all modules listed in MYMETA.json (including optional o +nes): # # === Configure Requires === # # Module Want Have Where Howbig # ------------------- ---- ---- ---------------------- ------ # ExtUtils::MakeMaker any 7.58 C:/Strawberry/perl/lib 109336 # # === Build Requires === # # Module Want Have Where Howbig # ------------------- ---- ---- ---------------------- ------ # ExtUtils::MakeMaker any 7.58 C:/Strawberry/perl/lib 109336 # # === Test Requires === # # Module Want Have Where + Howbig # ------------------- -------- -------- -------------------------- +--- ------ # Capture::Tiny any 0.48 C:/Strawberry/perl/vendor/ +lib 29656 # Cwd any 3.78 C:/Strawberry/perl/lib + 21942 # ExtUtils::CBuilder 0.280231 0.280235 C:/Strawberry/perl/lib + 8883 # ExtUtils::MakeMaker any 7.58 C:/Strawberry/perl/lib + 109336 # ExtUtils::Manifest any 1.73 C:/Strawberry/perl/lib + 23491 # Fatal any 2.34 C:/Strawberry/perl/lib + 59085 # Module::Build any 0.4231 C:/Strawberry/perl/lib + 35409 # Test::More 0.88 1.302183 C:/Strawberry/perl/lib + 52697 # # === Runtime Requires === # # Module Want Have Where Howb +ig # ----------------- ---- ------ ----------------------------- ---- +-- # Capture::Tiny any 0.48 C:/Strawberry/perl/vendor/lib 296 +56 # ExtUtils::ParseXS 3.35 3.40 C:/Strawberry/perl/lib 668 +67 # File::Basename any 2.85 C:/Strawberry/perl/lib 111 +94 # File::Spec any 3.78 C:/Strawberry/perl/lib 105 +71 # File::Temp any 0.2311 C:/Strawberry/perl/lib 1188 +77 # t/00-report-prereqs.t .. ok t/001_load.t ........... 1/? # EUMM:{ # 'CC' => 'g++', # 'CCFLAGS' => ' -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEX +TMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLI +O -fwrapv -fno-strict-aliasing -mms-bitfields -xc++', # 'dynamic_lib' => { # 'OTHERLDFLAGS' => ' -lstdc++' # } # } # --- # MB:{ # 'config' => { # 'cc' => 'g++' # }, # 'extra_compiler_flags' => ' -xc++', # 'extra_linker_flags' => ' -lstdc++' # } # --- # Config:{ # 'byacc' => 'byacc', # 'cc' => 'gcc', # 'cccdlflags' => ' ', # 'ccdlflags' => ' ', # 'ccflags' => ' -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEX +TMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLI +O -fwrapv -fno-strict-aliasing -mms-bitfields', # 'ccflags_nolargefiles' => ' -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STD +IO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY +S -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields', # 'ccflags_uselargefiles' => '', # 'ccname' => 'gcc', # 'ccsymbols' => '', # 'ccversion' => '', # 'cppccsymbols' => '', # 'd_PRIEUldbl' => undef, # 'd_PRIFUldbl' => undef, # 'd_PRIGUldbl' => undef, # 'd_PRIeldbl' => undef, # 'd_PRIfldbl' => undef, # 'd_PRIgldbl' => undef, # 'd_SCNfldbl' => undef, # 'd_accept4' => undef, # 'd_access' => 'define', # 'd_accessx' => undef, # 'd_eaccess' => undef, # 'd_ldbl_dig' => 'define', # 'd_ldexpl' => 'define', # 'd_locconv' => 'define', # 'd_old_pthread_create_joinable' => undef, # 'd_oldpthreads' => undef, # 'd_oldsock' => undef, # 'd_pthread_yield' => undef, # 'd_sched_yield' => undef, # 'd_setlocale_accepts_any_locale_name' => undef, # 'd_strtold' => undef, # 'd_strtold_l' => undef, # 'd_telldir' => 'define', # 'd_telldirproto' => 'define', # 'gccansipedantic' => '', # 'gccosandvers' => '', # 'gccversion' => '8.3.0', # 'i_sysaccess' => undef, # 'installhtmldir' => '', # 'ld' => 'g++', # 'lddlflags' => '-mdll -s -L"C:\\STRAWB~1\\perl\\lib\\CORE" -L"C:\\ +STRAWB~1\\c\\lib"', # 'ldflags' => '-s -L"C:\\STRAWB~1\\perl\\lib\\CORE" -L"C:\\STRAWB~1 +\\c\\lib"', # 'ldflags_nolargefiles' => '-s -L"C:\\STRAWB~1\\perl\\lib\\CORE" -L +"C:\\STRAWB~1\\c\\lib"', # 'ldflags_uselargefiles' => '', # 'ldlibpthname' => '', # 'old_pthread_create_joinable' => '', # 'sPRIEUldbl' => '"LE"', # 'sPRIFUldbl' => '"LF"', # 'sPRIGUldbl' => '"LG"', # 'sPRIeldbl' => '"Le"', # 'sPRIfldbl' => '"Lf"', # 'sPRIgldbl' => '"Lg"', # 'sSCNfldbl' => '"Lf"', # 'sched_yield' => '', # 'yacc' => 'yacc', # 'yaccflags' => '' # } # Method: is_sunstudio = 0 # Method: is_msvc = undef # Method: is_gcc = 1 # Method: is_clang = 0 # Method: compiler_command = g++ -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_ST +DIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_S +YS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -xc++ # Method: linker_flags = -lstdc++ # Method: iostream_fname = iostream # Method: cpp_flavor_defs = # #define __INLINE_CPP_STANDARD_HEADERS 1 # #define __INLINE_CPP_NAMESPACE_STD 1 # t/001_load.t ........... ok t/002_icpp.t ........... ok t/003_standard_flag.t .. 1/? g++: error: unrecognized command line opt +ion '-std=c++unreal'; did you mean '-std=c++2a'? t/003_standard_flag.t .. ok t/004_env.t ............ 1/? # EUMM env:{ # 'CC' => 'czz', # 'CCFLAGS' => ' -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEX +TMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLI +O -fwrapv -fno-strict-aliasing -mms-bitfields -xc++', # 'dynamic_lib' => { # 'OTHERLDFLAGS' => ' -lstdc++' # } # } t/004_env.t ............ ok t/010_module_build.t ... # Module::Build version: 0.4231 # ExtUtils::CBuilder version: 0.280235 t/010_module_build.t ... ok t/011_makemaker.t ...... ok All tests successful. Files=7, Tests=20, 19 wallclock secs ( 0.03 usr + 0.08 sys = 0.11 CP +U) Result: PASS ETJ/ExtUtils-CppGuess-0.26.tar.gz C:\STRAWB~1\c\bin\gmake.exe test -- OK Running make install for ETJ/ExtUtils-CppGuess-0.26.tar.gz Installing C:\STRAWB~1\perl\site\lib\ExtUtils\CppGuess.pm Appending installation info to C:\STRAWB~1\perl\lib/perllocal.pod ETJ/ExtUtils-CppGuess-0.26.tar.gz C:\STRAWB~1\c\bin\gmake.exe install UNINST=1 -- OK PJUHASZ/JSON-SIMD-1.03.tar.gz Has already been unwrapped into directory C:\STRAWB~1\cpan\build\JSO +N-SIMD-1.03-1 Configuring P/PJ/PJUHASZ/JSON-SIMD-1.03.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a gmake-style Makefile Writing Makefile for JSON::SIMD Writing MYMETA.yml and MYMETA.json PJUHASZ/JSON-SIMD-1.03.tar.gz C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK Running make for P/PJ/PJUHASZ/JSON-SIMD-1.03.tar.gz cp SIMD.pm blib\lib\JSON\SIMD.pm cp SIMD/Boolean.pm blib\lib\JSON\SIMD\Boolean.pm Running Mkbootstrap for SIMD () "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 +"SIMD.bs" "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonemp +ty -- SIMD.bs blib\arch\auto\JSON\SIMD\SIMD.bs 644 "C:\Strawberry\perl\bin\perl.exe" "C:\Strawberry\perl\lib\ExtUtils/xsu +bpp" -typemap C:\STRAWB~1\perl\lib\ExtUtils\typemap -typemap C:\STRA +WB~1\cpan\build\JSON-SIMD-1.03-1\typemap SIMD.xs > SIMD.xsc "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- SIMD.xs +c SIMD.c gcc -c -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRI +PTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv +-fno-strict-aliasing -mms-bitfields -DSIMDJSON_EXCEPTIONS=0 -DNDEBUG +-O3 -DVERSION=\"1.03\" -DXS_VERSION=\"1.03\" "-IC:\STRAWB~1\perl\l +ib\CORE" SIMD.c SIMD.xs: In function 'decode_utf8': SIMD.xs:196:5: warning: 'Perl_utf8n_to_uvuni' is deprecated [-Wdepreca +ted-declarations] return utf8n_to_uvuni (s, len, clen, UTF8_CHECK_ONLY); ^~~~~~ In file included from C:\STRAWB~1\perl\lib\CORE/perl.h:5567, from SIMD.xs:2: C:\STRAWB~1\perl\lib\CORE/proto.h:3989:18: note: declared here PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen +, STRLEN *retlen, U32 flags) ^~~~~~~~~~~~~~~~~~~ gcc -c -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRI +PTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv +-fno-strict-aliasing -mms-bitfields -DSIMDJSON_EXCEPTIONS=0 -DNDEBUG +-O3 -DVERSION=\"1.03\" -DXS_VERSION=\"1.03\" "-IC:\STRAWB~1\perl\l +ib\CORE" simdjson.cpp C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s: Assembler messages: C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1501: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1503: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1505: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1507: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1509: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1511: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1513: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1515: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1517: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1519: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1521: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1523: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1525: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1527: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1529: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:1531: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:9047: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:9049: Error: invalid r +egister for .seh_savexmm C:\Users\<USER>\AppData\Local\Temp\1\ccPZqd5x.s:9051: Error: invalid r +egister for .seh_savexmm gmake: *** [Makefile:345: simdjson.o] Error 1 PJUHASZ/JSON-SIMD-1.03.tar.gz C:\STRAWB~1\c\bin\gmake.exe -- NOT OK Stopping: 'install' failed for 'P/PJ/PJUHASZ/JSON-SIMD-1.03.tar.gz'.

Replies are listed 'Best First'.
Re^2: Release: JSON::SIMD
by kikuchiyo (Hermit) on Apr 19, 2023 at 18:12 UTC

    Thanks for the report!

    This is somewhat strange, because I've seen successful builds on Windows with the same versions of Strawberry Perl (I've set up a bunch of automated tests in the github repo).

    Out of curiosity, what versions of as and gcc do you use, on what kind of machine?

    In any case, one can find some stackoverflow questions and even a gcc bug report for the error message, I'll try one of the workarounds mentioned there.

      Thanks,

      gcc version 8.3.0 (x86_64-posix-seh, Built by strawberryperl.com project)

      CPU is i5-1135G7, windows 10

      I'll try again with a fresh copy of everything as I think this install has had a lot of strawberryperl updates, hmmm

        If you add  -fno-asynchronous-unwind-tables to the end of CCFLAGS in Makefile.PL, does it fix the issue?