Git Product home page Git Product logo

msgpack-perl's Introduction

MessagePack

MessagePack is an efficient binary serialization format. It's like JSON. but fast and small.

This repository manages specification of MessagePack format. See Spec for the specification.

Implementation projects have each own repository. See msgpack.org website to find implementations and their documents.

If you'd like to show your msgpack implementation to the msgpack.org website, please follow the website document.

msgpack-perl's People

Contributors

advect avatar bketelsen avatar cho45 avatar dsteinbrunner avatar firewood avatar frsyuki avatar gfx avatar hayamiz avatar hideyuki avatar kazuho avatar kazuki avatar kjim avatar kuenishi avatar kzk avatar makamaka avatar methane avatar mishin avatar moriyoshi avatar muga avatar mzp avatar nicolasdespres avatar perlover avatar repeatedly avatar robinsmidsrod avatar skaji avatar syohex avatar tanakh avatar tokuhirom avatar watabiki avatar xerial avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

msgpack-perl's Issues

Can't install under strawberry perl 5.30.0

cpanm (App::cpanminus) 1.7044 on perl 5.030000 built for MSWin32-x64-multi-thread
Work directory is C:\Users\zdm\AppData\Local\Temp\.cpanm/work/1558802524.364
You have make D:\devel\perl\c\bin\gmake.exe
You have LWP 6.39
You have C:\WINDOWS\system32\tar.exe, D:\devel\msys2\usr\bin\gzip.exe and D:\devel\msys2\usr\bin\bzip2.exe
Searching Data::MessagePack on mirror https://cpan.metacpan.org ...
Downloading index file https://cpan.metacpan.org/modules/02packages.details.txt.gz ...
--> Working on Data::MessagePack
Fetching https://cpan.metacpan.org/authors/id/S/SY/SYOHEX/Data-MessagePack-1.00.tar.gz ... OK
Unpacking Data-MessagePack-1.00.tar.gz
x Data-MessagePack-1.00/
x Data-MessagePack-1.00/benchmark/
x Data-MessagePack-1.00/benchmark/serialize.pl
x Data-MessagePack-1.00/benchmark/data.pl
x Data-MessagePack-1.00/benchmark/size.pl
x Data-MessagePack-1.00/benchmark/deserialize.pl
x Data-MessagePack-1.00/include/
x Data-MessagePack-1.00/include/msgpack/
x Data-MessagePack-1.00/include/msgpack/pack_define.h
x Data-MessagePack-1.00/include/msgpack/unpack_define.h
x Data-MessagePack-1.00/include/msgpack/sysdep.h
x Data-MessagePack-1.00/include/msgpack/unpack.h
x Data-MessagePack-1.00/include/msgpack/pack.h
x Data-MessagePack-1.00/include/msgpack/predef.h
x Data-MessagePack-1.00/include/msgpack/pack_template.h
x Data-MessagePack-1.00/include/msgpack/predef/
x Data-MessagePack-1.00/include/msgpack/predef/os/
x Data-MessagePack-1.00/include/msgpack/predef/os/android.h
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd.h
x Data-MessagePack-1.00/include/msgpack/predef/os/ios.h
x Data-MessagePack-1.00/include/msgpack/predef/os/hpux.h
x Data-MessagePack-1.00/include/msgpack/predef/os/unix.h
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd/
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd/open.h
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd/free.h
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd/dragonfly.h
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd/bsdi.h
x Data-MessagePack-1.00/include/msgpack/predef/os/bsd/net.h
x Data-MessagePack-1.00/include/msgpack/predef/os/beos.h
x Data-MessagePack-1.00/include/msgpack/predef/os/vms.h
x Data-MessagePack-1.00/include/msgpack/predef/os/irix.h
x Data-MessagePack-1.00/include/msgpack/predef/os/haiku.h
x Data-MessagePack-1.00/include/msgpack/predef/os/macos.h
x Data-MessagePack-1.00/include/msgpack/predef/os/aix.h
x Data-MessagePack-1.00/include/msgpack/predef/os/qnxnto.h
x Data-MessagePack-1.00/include/msgpack/predef/os/cygwin.h
x Data-MessagePack-1.00/include/msgpack/predef/os/amigaos.h
x Data-MessagePack-1.00/include/msgpack/predef/os/os400.h
x Data-MessagePack-1.00/include/msgpack/predef/os/windows.h
x Data-MessagePack-1.00/include/msgpack/predef/os/linux.h
x Data-MessagePack-1.00/include/msgpack/predef/os/solaris.h
x Data-MessagePack-1.00/include/msgpack/predef/version_number.h
x Data-MessagePack-1.00/include/msgpack/predef/library/
x Data-MessagePack-1.00/include/msgpack/predef/library/c.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std.h
x Data-MessagePack-1.00/include/msgpack/predef/library/c/
x Data-MessagePack-1.00/include/msgpack/predef/library/c/gnu.h
x Data-MessagePack-1.00/include/msgpack/predef/library/c/vms.h
x Data-MessagePack-1.00/include/msgpack/predef/library/c/zos.h
x Data-MessagePack-1.00/include/msgpack/predef/library/c/_prefix.h
x Data-MessagePack-1.00/include/msgpack/predef/library/c/uc.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/
x Data-MessagePack-1.00/include/msgpack/predef/library/std/sgi.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/dinkumware.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/roguewave.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/stdcpp3.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/_prefix.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/libcomo.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/vacpp.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/modena.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/stlport.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/msl.h
x Data-MessagePack-1.00/include/msgpack/predef/library/std/cxx.h
x Data-MessagePack-1.00/include/msgpack/predef/version.h
x Data-MessagePack-1.00/include/msgpack/predef/platform.h
x Data-MessagePack-1.00/include/msgpack/predef/language/
x Data-MessagePack-1.00/include/msgpack/predef/language/objc.h
x Data-MessagePack-1.00/include/msgpack/predef/language/stdc.h
x Data-MessagePack-1.00/include/msgpack/predef/language/stdcpp.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/
x Data-MessagePack-1.00/include/msgpack/predef/compiler/sunpro.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/digitalmars.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/gcc.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/iar.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/sgi_mipspro.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/greenhills.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/diab.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/gcc_xml.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/borland.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/microtec.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/watcom.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/compaq.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/mpw.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/pgi.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/ibm.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/kai.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/dignus.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/palm.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/metaware.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/comeau.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/intel.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/llvm.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/edg.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/ekopath.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/tendra.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/visualc.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/hp_acc.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/metrowerks.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler/clang.h
x Data-MessagePack-1.00/include/msgpack/predef/compiler.h
x Data-MessagePack-1.00/include/msgpack/predef/language.h
x Data-MessagePack-1.00/include/msgpack/predef/make.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/
x Data-MessagePack-1.00/include/msgpack/predef/architecture/pyramid.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/sys370.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/sys390.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/z.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/mips.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/x86.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/rs6k.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/parisc.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/ia64.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/sparc.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/x86/
x Data-MessagePack-1.00/include/msgpack/predef/architecture/x86/64.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/x86/32.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/blackfin.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/superh.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/alpha.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/ppc.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/m68k.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/convex.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture/arm.h
x Data-MessagePack-1.00/include/msgpack/predef/other/
x Data-MessagePack-1.00/include/msgpack/predef/other/endian.h
x Data-MessagePack-1.00/include/msgpack/predef/other.h
x Data-MessagePack-1.00/include/msgpack/predef/os.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/
x Data-MessagePack-1.00/include/msgpack/predef/detail/endian_compat.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/os_detected.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/test.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/_exception.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/_cassert.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/comp_detected.h
x Data-MessagePack-1.00/include/msgpack/predef/detail/platform_detected.h
x Data-MessagePack-1.00/include/msgpack/predef/architecture.h
x Data-MessagePack-1.00/include/msgpack/predef/library.h
x Data-MessagePack-1.00/include/msgpack/predef/platform/
x Data-MessagePack-1.00/include/msgpack/predef/platform/windows_store.h
x Data-MessagePack-1.00/include/msgpack/predef/platform/mingw.h
x Data-MessagePack-1.00/include/msgpack/predef/platform/windows_desktop.h
x Data-MessagePack-1.00/include/msgpack/predef/platform/windows_runtime.h
x Data-MessagePack-1.00/include/msgpack/predef/platform/windows_phone.h
x Data-MessagePack-1.00/include/msgpack/unpack_template.h
x Data-MessagePack-1.00/include/msgpack.h
x Data-MessagePack-1.00/xshelper.h
x Data-MessagePack-1.00/inc/
x Data-MessagePack-1.00/inc/Module/
x Data-MessagePack-1.00/inc/Module/Install/
x Data-MessagePack-1.00/inc/Module/Install/Base.pm
x Data-MessagePack-1.00/inc/Module/Install/AuthorTests.pm
x Data-MessagePack-1.00/inc/Module/Install/Fetch.pm
x Data-MessagePack-1.00/inc/Module/Install/Can.pm
x Data-MessagePack-1.00/inc/Module/Install/WriteAll.pm
x Data-MessagePack-1.00/inc/Module/Install/Win32.pm
x Data-MessagePack-1.00/inc/Module/Install/Makefile.pm
x Data-MessagePack-1.00/inc/Module/Install/XSUtil.pm
x Data-MessagePack-1.00/inc/Module/Install/Metadata.pm
x Data-MessagePack-1.00/inc/Module/Install.pm
x Data-MessagePack-1.00/README
x Data-MessagePack-1.00/lib/
x Data-MessagePack-1.00/lib/Data/
x Data-MessagePack-1.00/lib/Data/MessagePack/
x Data-MessagePack-1.00/lib/Data/MessagePack/Unpacker.pod
x Data-MessagePack-1.00/lib/Data/MessagePack/Boolean.pm
x Data-MessagePack-1.00/lib/Data/MessagePack/PP.pm
x Data-MessagePack-1.00/lib/Data/MessagePack.pm
x Data-MessagePack-1.00/.travis.yml
x Data-MessagePack-1.00/t/
x Data-MessagePack-1.00/t/09_stddata.t
x Data-MessagePack-1.00/t/11_stream_unpack3.t
x Data-MessagePack-1.00/t/03_stream_unpack.t
x Data-MessagePack-1.00/t/20_de.t
x Data-MessagePack-1.00/t/16_unpacker_for_larges.t
x Data-MessagePack-1.00/t/10_splitted_bytes.t
x Data-MessagePack-1.00/t/02_unpack.t
x Data-MessagePack-1.00/t/19_utf8_property.t
x Data-MessagePack-1.00/t/17_canonical.t
x Data-MessagePack-1.00/t/21_dirty_float.t
x Data-MessagePack-1.00/t/06_stream_unpack2.t
x Data-MessagePack-1.00/t/04_invert.t
x Data-MessagePack-1.00/t/14_invalid_data.t
x Data-MessagePack-1.00/t/23-empty-key.t
x Data-MessagePack-1.00/t/data.pl
x Data-MessagePack-1.00/t/std/
x Data-MessagePack-1.00/t/std/cases.mpac
x Data-MessagePack-1.00/t/std/cases_compact.mpac
x Data-MessagePack-1.00/t/50_leaktrace.t
x Data-MessagePack-1.00/t/01_pack.t
x Data-MessagePack-1.00/t/00_compile.t
x Data-MessagePack-1.00/t/18_new_interface.t
x Data-MessagePack-1.00/t/Util.pm
x Data-MessagePack-1.00/t/13_booleans.t
x Data-MessagePack-1.00/t/22_pid_pack_unpack.t
x Data-MessagePack-1.00/t/24_tied.t
x Data-MessagePack-1.00/t/15_utf8.t
x Data-MessagePack-1.00/t/05_preferred_int.t
x Data-MessagePack-1.00/t/07_break.t
x Data-MessagePack-1.00/t/08_cycle.t
x Data-MessagePack-1.00/t/40_threads.t
x Data-MessagePack-1.00/t/12_stream_unpack4.t
x Data-MessagePack-1.00/META.yml
x Data-MessagePack-1.00/Changes
x Data-MessagePack-1.00/xt/
x Data-MessagePack-1.00/xt/leaks/
x Data-MessagePack-1.00/xt/leaks/stream.t
x Data-MessagePack-1.00/xt/leaks/normal.t
x Data-MessagePack-1.00/xt/99_pod.t
x Data-MessagePack-1.00/.gitmodules
x Data-MessagePack-1.00/xs-src/
x Data-MessagePack-1.00/xs-src/unpack.c
x Data-MessagePack-1.00/xs-src/pack.c
x Data-MessagePack-1.00/xs-src/MessagePack.xs
x Data-MessagePack-1.00/MANIFEST
x Data-MessagePack-1.00/Makefile.PL
x Data-MessagePack-1.00/LICENSE
Entering Data-MessagePack-1.00
Checking configure dependencies from META.yml
Checking if you have ExtUtils::ParseXS 3.18 ... Yes (3.40)
Checking if you have Devel::PPPort 3.19 ... Yes (3.52)
Checking if you have File::Copy::Recursive 0 ... Yes (0.44)
Checking if you have ExtUtils::MakeMaker 6.59 ... Yes (7.36)
Running Makefile.PL
Configuring Data-MessagePack-1.00 ... Writing ppport.h
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for Data::MessagePack
Writing MYMETA.yml and MYMETA.json
OK
Checking dependencies from MYMETA.json ...
Checking if you have File::Copy::Recursive 0 ... Yes (0.44)
Checking if you have Devel::PPPort 3.19 ... Yes (3.52)
Checking if you have Test::More 0.94 ... Yes (1.302164)
Checking if you have ExtUtils::ParseXS 3.18 ... Yes (3.40)
Checking if you have XSLoader 0.02 ... Yes (0.30)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.36)
Checking if you have Test::Requires 0 ... Yes (0.10)
Building and testing Data-MessagePack-1.00 ... cp lib/Data/MessagePack/Unpacker.pod blib\lib\Data\MessagePack\Unpacker.pod
cp lib/Data/MessagePack.pm blib\lib\Data\MessagePack.pm
cp lib/Data/MessagePack/Boolean.pm blib\lib\Data\MessagePack\Boolean.pm
cp lib/Data/MessagePack/PP.pm blib\lib\Data\MessagePack\PP.pm
Running Mkbootstrap for MessagePack ()
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command -e chmod -- 644 "MessagePack.bs"
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command::MM -e cp_nonempty -- MessagePack.bs blib\arch\auto\Data\MessagePack\MessagePack.bs 644
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" "D:\devel\perl\perl\lib\ExtUtils/xsubpp"  -typemap D:\devel\perl\perl\lib\ExtUtils\typemap  xs-src/MessagePack.xs > xs-src/MessagePack.xsc
Please specify prototyping behavior for MessagePack.xs (see perlxs manual)
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command -e mv -- xs-src/MessagePack.xsc xs-src/MessagePack.c
gcc -c  "-I." "-Iinclude" "-I." -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -Wall -W -Wno-comment -s -O2   -DVERSION=\"1.00\" -DXS_VERSION=\"1.00\" -o xs-src/MessagePack.o  "-ID:\devel\perl\perl\lib\CORE"  -DUSE_PPPORT xs-src/MessagePack.c
gcc -c  "-I." "-Iinclude" "-I." -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -Wall -W -Wno-comment -s -O2   -DVERSION=\"1.00\" -DXS_VERSION=\"1.00\" -o xs-src/pack.o  "-ID:\devel\perl\perl\lib\CORE"  -DUSE_PPPORT xs-src/pack.c
gcc -c  "-I." "-Iinclude" "-I." -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -Wall -W -Wno-comment -s -O2   -DVERSION=\"1.00\" -DXS_VERSION=\"1.00\" -o xs-src/unpack.o  "-ID:\devel\perl\perl\lib\CORE"  -DUSE_PPPORT xs-src/unpack.c
xs-src/unpack.c: In function 'template_callback_root':
xs-src/unpack.c:105:55: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE SV* template_callback_root(unpack_user* u PERL_UNUSED_DECL)
                                          ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_UV':
xs-src/unpack.c:166:53: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_UV(unpack_user* u PERL_UNUSED_DECL, UV const d, SV** o)
                                        ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_IV':
xs-src/unpack.c:175:53: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_IV(unpack_user* u PERL_UNUSED_DECL, IV const d, SV** o)
                                        ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_double':
xs-src/unpack.c:196:57: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_double(unpack_user* u PERL_UNUSED_DECL, double d, SV** o)
                                            ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_nil':
xs-src/unpack.c:204:54: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_nil(unpack_user* u PERL_UNUSED_DECL, SV** o)
                                         ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_true':
xs-src/unpack.c:211:55: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_true(unpack_user* u PERL_UNUSED_DECL, SV** o)
                                          ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_false':
xs-src/unpack.c:217:56: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_false(unpack_user* u PERL_UNUSED_DECL, SV** o)
                                           ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_array':
xs-src/unpack.c:223:56: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_array(unpack_user* u PERL_UNUSED_DECL, unsigned int n, SV** o)
                                           ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_array_item':
xs-src/unpack.c:232:61: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_array_item(unpack_user* u PERL_UNUSED_DECL, SV** c, SV* o)
                                                ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_map':
xs-src/unpack.c:241:54: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_map(unpack_user* u PERL_UNUSED_DECL, unsigned int n, SV** o)
                                         ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_map_item':
xs-src/unpack.c:250:59: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_map_item(unpack_user* u PERL_UNUSED_DECL, SV** c, SV* k, SV* v)
                                              ~~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_str':
xs-src/unpack.c:260:54: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_str(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p, unsigned int l, SV** o)
                                         ~~~~~~~~~~~~~^
xs-src/unpack.c:260:86: warning: unused parameter 'b' [-Wunused-parameter]
 STATIC_INLINE int template_callback_str(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p, unsigned int l, SV** o)
                                                                          ~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_bin':
xs-src/unpack.c:269:86: warning: unused parameter 'b' [-Wunused-parameter]
 STATIC_INLINE int template_callback_bin(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p, unsigned int l, SV** o)
                                                                          ~~~~~~~~~~~~^
xs-src/unpack.c: In function 'template_callback_ext':
xs-src/unpack.c:279:54: warning: unused parameter 'u' [-Wunused-parameter]
 STATIC_INLINE int template_callback_ext(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p PERL_UNUSED_DECL,
                                         ~~~~~~~~~~~~~^
xs-src/unpack.c:279:86: warning: unused parameter 'b' [-Wunused-parameter]
 STATIC_INLINE int template_callback_ext(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p PERL_UNUSED_DECL,
                                                                          ~~~~~~~~~~~~^
xs-src/unpack.c:279:118: warning: unused parameter 'p' [-Wunused-parameter]
 STATIC_INLINE int template_callback_ext(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p PERL_UNUSED_DECL,
                                                                                                          ~~~~~~~~~~~~^
xs-src/unpack.c:280:54: warning: unused parameter 'l' [-Wunused-parameter]
                                         unsigned int l PERL_UNUSED_DECL, SV** o PERL_UNUSED_DECL)
                                         ~~~~~~~~~~~~~^
xs-src/unpack.c:280:79: warning: unused parameter 'o' [-Wunused-parameter]
                                         unsigned int l PERL_UNUSED_DECL, SV** o PERL_UNUSED_DECL)
                                                                          ~~~~~^
In file included from xs-src/unpack.c:286:
include/msgpack/unpack_template.h: In function 'template_execute':
include/msgpack/unpack_template.h:250:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++p;
                 ^~~
include/msgpack/unpack_template.h:252:13: note: here
             default:
             ^~~~~~~
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=>\"Data::MessagePack\", 'DLBASE' => 'MessagePack', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
g++.exe MessagePack.def -o blib\arch\auto\Data\MessagePack\MessagePack.xs.dll -mdll -s -L"D:\devel\perl\perl\lib\CORE" -L"D:\devel\perl\c\lib" xs-src/MessagePack.o xs-src/pack.o xs-src/unpack.o   "D:\devel\perl\perl\lib\CORE\libperl530.a" -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 -Wl,--enable-auto-image-base
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command -e chmod -- 755 blib\arch\auto\Data\MessagePack\MessagePack.xs.dll
"D:\devel\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command::MM -e cp_nonempty -- MessagePack.bs blib\arch\auto\Data\MessagePack\MessagePack.bs 644
"D:\devel\perl\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/00_compile.t .............. # Testing Data::MessagePack/1.00 (XS)
# byteoder: 12345678, ivsize=8
t/00_compile.t .............. ok
t/01_pack.t ................. ok
t/02_unpack.t ............... ok
t/03_stream_unpack.t ........ ok
t/04_invert.t ............... ok
t/05_preferred_int.t ........ 1/30
#   Failed test 'dump (?^:^(c4 15 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 30 33 34|c4 18 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 30 33 34)$)'
#   at t/05_preferred_int.t line 23.
#                   'c4 14 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34'
#     doesn't match '(?^:^(c4 15 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 30 33 34|c4 18 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 30 33 34)$)'

#   Failed test 'dump (?^:^(c4 16 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 30 33 35|c4 19 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 30 33 35))'
#   at t/05_preferred_int.t line 23.
#                   'c4 15 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35'
#     doesn't match '(?^:^(c4 16 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 30 33 35|c4 19 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 30 33 35))'

#   Failed test 'dump (?^:^(b5 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 30 33 34|b8 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 30 33 34)$)'
#   at t/05_preferred_int.t line 32.
#                   'b4 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34'
#     doesn't match '(?^:^(b5 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 30 33 34|b8 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 30 33 34)$)'

#   Failed test 'dump (?^:^(b6 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 30 33 35|b9 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 30 33 35))'
#   at t/05_preferred_int.t line 32.
#                   'b5 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35'
#     doesn't match '(?^:^(b6 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 30 33 35|b9 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 30 33 35))'
# Looks like you failed 4 tests of 30.
t/05_preferred_int.t ........ Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/30 subtests
t/06_stream_unpack2.t ....... ok
t/07_break.t ................ ok
t/08_cycle.t ................ ok
t/09_stddata.t .............. ok
t/10_splitted_bytes.t ....... ok
t/11_stream_unpack3.t ....... ok
t/12_stream_unpack4.t ....... ok
t/13_booleans.t ............. ok
t/14_invalid_data.t ......... ok
t/15_utf8.t ................. ok
t/16_unpacker_for_larges.t .. ok
t/17_canonical.t ............ ok
t/18_new_interface.t ........ ok
t/19_utf8_property.t ........ ok
t/20_de.t ................... ok
t/21_dirty_float.t .......... ok
t/22_pid_pack_unpack.t ...... ok
t/23-empty-key.t ............ ok
t/24_tied.t ................. ok
t/40_threads.t .............. ok
t/50_leaktrace.t ............ ok

Test Summary Report
-------------------
t/05_preferred_int.t      (Wstat: 1024 Tests: 30 Failed: 4)
  Failed tests:  13, 18, 23, 26
  Non-zero exit status: 4
t/23-empty-key.t          (Wstat: 0 Tests: 3 Failed: 0)
  TODO passed:   1-2
Files=27, Tests=575, 18 wallclock secs ( 0.42 usr +  0.17 sys =  0.59 CPU)
Result: FAIL
Failed 1/27 test programs. 4/575 subtests failed.
gmake: *** [Makefile:989: test_dynamic] Error 255
FAIL
! Installing Data::MessagePack failed. See C:\Users\zdm\AppData\Local\Temp\.cpanm\work\1558802524.364\build.log for details. Retry with --force to force install it.

Problem parsing incoming data from Metasploit

The following hexdump of the data that comes in from Metasploit:

   00000000  82 C4 06 72 65 73 75 6C - 74 C4 07 73 75 63 63 65  ...result..succe
   00000010  73 73 C4 05 74 6F 6B 65 - 6E C4 20 54 45 4D 50 31  ss..token. TEMP1
   00000020  53 42 49 6B 6B 33 6F 77 - 6A 54 58 6E 66 39 50 55  SBIkk3owjTXnf9PU
   00000030  79 70 4D 36 65 31 57 51 - 56 56 6A                 ypM6e1WQVVj

Is not parseable by the module and returns this error:

   Data::MessagePack->unpack: parse error at metasploit_rpc.pl line 59.

I cannot find the problem in the above data set, not locate the bug inside PP.pm

I also saw that to use this as the data I send to the server:

   my @hash = ["auth.login", "user", "pass"];
   my $request = Data::MessagePack->pack(\@hash);

I would need to trim the first byte of the request:

   $request = substr($request, 1);

Or the server won't be able to parse the information

I think it is somehow related

I am running this on Ubuntu 15.04 LTS, perl 5.20.2

Potential issue in casting numbers

I've noticed some odd behavior, which may simply be the way Perl works, but which could be useful for msgpack-perl to take into account.

Also, once again I would ask that we have some handling for lower-precision floats. It doesn't matter that Perl doesn't separate a double from a float, what matters is how much space the msgpack representation takes. Spending 9 bytes for 1.0 is a waste.

use Data::MessagePack;
use Test::More;
use Scalar::Util qw/looks_like_number/;

sub toNumber {
  if (!looks_like_number($_[0])) {
    return $_[0];
  }

  return $_[0] + 0;
}

my $mp = Data::MessagePack->new();
$mp->prefer_integer();

my $numThatShouldBeInt = "-1.000000";

$converted = toNumber($numThatShouldBeInt);

$packed = $mp->pack($converted);
ok(length($packed) == 1, "Perl does something bizarre when returning numbers from subs");

# Something is very weird
$packed = $mp->pack($numThatShouldBeInt+ 0);
ok(length($packed) == 9, "The string $numThatShouldBeInt takes 9 bytes in msgpack when cast to number, as expected");

# Note that this doesn't occur with a positive number
$packed = $mp->pack("1.000000" + 0);
ok(length($packed) == 9, "The string 1.000000 takes 9 bytes in msgpack when cast to number, as expected");


$packed = $mp->pack(CORE::int($numThatShouldBeInt));
ok(length($packed) == 1, "The string $numThatShouldBeInt takes 1 bytes when cast as int, as expected");

New Str encoding broke compatibility with 0.49 decoding

Since ada320e the Bin encoding has been added.
So from this commit, utf8 strings are encoded using Str (old Raw) format and others with Bin one.
It appears that one can not choose to disable this new encoding and stay with the old Raw (Str) one.
It is problematic in a client/server environment, where Data::MessagePack versions are not necessarily the same at a given time, on both side...
I encounter this case (server sends binary non-utf8 strings using 0.50 and client uses 0.49), so unless a "str_as_bin" (or something like that) option is added, one have to stay with 0.49 version in such cases and not upgrade any more.

trying to unpack MessagePack from C failing with "extra bytes (length should be 145)" message

Hi,

I'm trying to unpack MessagePack created from latest MessagePack C library, but it fails with the following error message:

Data::MessagePack->unpack: extra bytes (length should be 145) at test.pl line 19

Here is the test.pl script (working with Pure Perl implementation):


use strict;
use Data::MessagePack;

my $dump_file_name = shift;

die "Can't file file: $dump_file_name" if (!-e $dump_file_name);

open DUMP_FILE, "<$dump_file_name"
or die "Can't open dump $dump_file_name: $!";

my $dump_content = do {local $/; <DUMP_FILE>};
close DUMP_FILE;

if (!Data::MessagePack->unpack($dump_content)) {
die "Can't unpack dump.";
}

At the same time, Python's bindings work just fine.

Any clue?

Thanks in advance.

Fails Makefile.PL with no '.' in @INC

On current bleadperl with PERL_USE_UNSAFE_INC=0:

Output from '/home/cpan4/install/bin/perl Makefile.PL':

Can't locate inc/Module/Install.pm in @INC (you may need to install the inc::Module::Install module) (@INC contains: /tmp/CPAN-Reporter-lib-gmvn /home/cpan4/install/lib/perl5/site_perl/5.26.0/x86_64-linux-thread-multi-ld /home/cpan4/install/lib/perl5/site_perl/5.26.0 /home/cpan4/install/lib/perl5/5.26.0/x86_64-linux-thread-multi-ld /home/cpan4/install/lib/perl5/5.26.0) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

configure_requires:

    Module                Need Have
    --------------------- ---- ----
    Devel::PPPort         3.19 3.35
    ExtUtils::MakeMaker   6.59 7.24
    ExtUtils::ParseXS     3.18 3.34
    File::Copy::Recursive 0    0.38


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    HARNESS_OPTIONS = j3
    LANG = en_US.UTF-8
    PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    PERL = /home/cpan4/install/bin/perl
    PERL5LIB = 
    PERL5OPT = -I/tmp/CPAN-Reporter-lib-gmvn -MDevel::Autoflush
    PERL5_CPANPLUS_IS_RUNNING = 6395
    PERL5_CPAN_IS_EXECUTING = /home/cpan4/.cpan/build/Data-MessagePack-1.00-0/Makefile.PL
    PERL5_CPAN_IS_RUNNING = 6395
    PERL5_CPAN_IS_RUNNING_IN_RECURSION = 18389,6395
    PERL_AUTOINSTALL = --defaultdeps
    PERL_CR_SMOKER_CURRENT = Novel-Robot-Parser-0.27
    PERL_CR_SMOKER_RUNONCE = 1
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_MM_USE_DEFAULT = 1
    PERL_USE_UNSAFE_INC = 0
    SHELL = /bin/bash
    TERM = putty-256color

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /home/cpan4/install/bin/perl
    $UID/$EUID = 1005 / 1005
    $GID = 1005 1005
    $EGID = 1005 1005

Perl module toolchain versions installed:

    Module              Have      
    ------------------- ----------
    CPAN                2.18      
    CPAN::Meta          2.150010  
    Cwd                 3.67      
    ExtUtils::CBuilder  0.280225  
    ExtUtils::Command   7.24      
    ExtUtils::Install   2.04      
    ExtUtils::MakeMaker 7.24      
    ExtUtils::Manifest  1.70      
    ExtUtils::ParseXS   3.34      
    File::Spec          3.67      
    JSON                n/a       
    JSON::PP            2.27400_02
    Module::Build       0.4222    
    Module::Signature   n/a       
    Parse::CPAN::Meta   2.150010  
    Test::Harness       3.38      
    Test::More          1.302073  
    YAML                n/a       
    YAML::Syck          1.29      
    version             0.9917    


--

Summary of my perl5 (revision 5 version 26 subversion 0) configuration:
  Commit id: 1b92e6949b737e92f61827f9c92afce9218e30ba
  Platform:
    osname=linux
    osvers=3.16.0-4-amd64
    archname=x86_64-linux-thread-multi-ld
    uname='linux digitalis 3.16.0-4-amd64 #1 smp debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 gnulinux '
    config_args='-Dusedevel -DDEBUGGING -Dusethreads -Duselongdouble -Duse64bitall -Doptimize=-O3 -Dprefix=/home/cpan4/install -Uversiononly -Uman1dir -Uman3dir -des'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=define
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O3 -g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='4.9.2'
    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='long double'
    nvsize=16
    Off_t='off_t'
    lseeksize=8
    alignbytes=16
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.19.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.19'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O3 -g -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    DEBUGGING
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_IMPLICIT_CONTEXT
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_TRACK_MEMPOOL
    PERL_USE_DEVEL
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_LONG_DOUBLE
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
  Built under linux
  Compiled at Mar 31 2017 23:44:13
  %ENV:
    PERL="/home/cpan4/install/bin/perl"
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="6395"
    PERL5_CPAN_IS_EXECUTING="/home/cpan4/.cpan/build/Data-MessagePack-1.00-0/Makefile.PL"
    PERL5_CPAN_IS_RUNNING="6395"
    PERL5_CPAN_IS_RUNNING_IN_RECURSION="18389,6395"
    PERL_AUTOINSTALL="--defaultdeps"
    PERL_CR_SMOKER_CURRENT="Novel-Robot-Parser-0.27"
    PERL_CR_SMOKER_RUNONCE="1"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_MM_USE_DEFAULT="1"
    PERL_USE_UNSAFE_INC="0"
  @INC:
    /home/cpan4/install/lib/perl5/site_perl/5.26.0/x86_64-linux-thread-multi-ld
    /home/cpan4/install/lib/perl5/site_perl/5.26.0
    /home/cpan4/install/lib/perl5/5.26.0/x86_64-linux-thread-multi-ld
    /home/cpan4/install/lib/perl5/5.26.0

Use Types::Serialiser::Boolean for true/false

Could Types::Serialiser::Boolean be used rather than defining Data::MessagePack::Boolean internally? Using and checking for that during conversion would make interoperability with other serialization formats a lot easier. In particular, it would be a big win to be able to convert from JSON text to Perl data and then into MessagePack, and vice versa, without having to account for the boolean types manually.

Support IEEE 754

Single precision floats defined in msgpack spec, doesn't seem to be implemented here, except during decoding stage.

This would save a significant amount of data for our team ~40% of ~80G per database.

Should prefer IV when both IV and NV are OK

Hello,

After a lot of digging, I finally managed to understand why this module in my test script was always assuming that integers were huge float64's. Here's my discovery:

use Devel::Peek;
use Data::MessagePack;
my $mp = new Data::MessagePack;
$mp->prefer_integer(1);

my $a = [ 30000, 123, 300, 1000, 1000, 500, 500 ];

print 'Clean: ', unpack('H*', $mp->pack($a)), "\n";
#print Dump($a);
my $b = pack('wwwwwww', @{ $a });
#print Dump($a);
print 'After pack(): ', unpack('H*', $mp->pack($a)), "\n";

This outputs:

Clean: 97cd75307bcd012ccd03e8cd03e8cd01f4cd01f4
After pack(): 97cb40dd4c0000000000cb405ec00000000000cb4072c00000000000cb408f400000000000cb408f400000000000cb407f400000000000cb407f400000000000

Using Devel::Peek's Dump() I finally figured out that pack() does its reading in a way which triggers Perl to add an NV in addition to the original IV. Before pack() the first value is:

SV = IV(0x17d32b0) at 0x17d32c0
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 30000

But after pack() reads it, it becomes:

SV = PVNV(0x1934710) at 0x17d32c0
  REFCNT = 1
  FLAGS = (PADMY,IOK,NOK,pIOK,pNOK)
  IV = 30000
  NV = 30000
  PV = 0

My understanding is that the integer version of the value is still usable, but MessagePack prioritizes the float version. My first attempt at fixing that (PP.pm#274 and pack.c#193) broke test 21 "dirty float" so there seems to be more to Perl's IOK/NOK than meets my eye.

I'll experiment further and hopefully come up with a pull request. I figure there must be an efficient way to determine whether the IV loses precision vs the NV. If it doesn't then IV wins, if it does then NV wins.

FAIL under -Dusequadmath

This is perl 5, version 32, subversion 1 (v5.32.1) built for x86_64-linux-thread-multi-quadmath
t/00_compile.t .............. 1/1 # Testing Data::MessagePack/1.01 (PP)
# byteoder: 12345678, ivsize=8
t/00_compile.t .............. ok
t/01_pack.t ................. ok
t/02_unpack.t ............... ok
t/03_stream_unpack.t ........ ok
t/04_invert.t ............... ok
t/05_preferred_int.t ........ 1/30
#   Failed test 'dump (?^:^(c4 14 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34|c4 17 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 33 34)$)'
#   at t/05_preferred_int.t line 23.
#                   'c4 26 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 30 35 36 34 38 37 39 34 31 32 36 37 35 32 31 35 65 2b 33 34'
#     doesn't match '(?^:^(c4 14 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34|c4 17 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 33 34)$)'

#   Failed test 'dump (?^:^(c4 15 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35|c4 18 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 33 35))'
#   at t/05_preferred_int.t line 23.
#                   'c4 27 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 34 35 31 39 30 33 35 33 30 31 34 30 31 37 32 65 2b 33 35'
#     doesn't match '(?^:^(c4 15 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35|c4 18 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 33 35))'

#   Failed test 'dump (?^:^(b4 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34|b7 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 33 34)$)'
#   at t/05_preferred_int.t line 32.
#                   'd9 26 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 30 35 36 34 38 37 39 34 31 32 36 37 35 32 31 35 65 2b 33 34'
#     doesn't match '(?^:^(b4 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34|b7 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 33 34)$)'

#   Failed test 'dump (?^:^(b5 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35|b8 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 33 35))'
#   at t/05_preferred_int.t line 32.
#                   'd9 27 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 34 35 31 39 30 33 35 33 30 31 34 30 31 37 32 65 2b 33 35'
#     doesn't match '(?^:^(b5 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35|b8 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 33 35))'
# Looks like you failed 4 tests of 30.
t/05_preferred_int.t ........ Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/30 subtests
t/06_stream_unpack2.t ....... ok
t/07_break.t ................ ok
t/08_cycle.t ................ ok
t/09_stddata.t .............. ok
t/10_splitted_bytes.t ....... ok
t/11_stream_unpack3.t ....... ok
t/12_stream_unpack4.t ....... ok
t/13_booleans.t ............. ok
t/14_invalid_data.t ......... ok
t/15_utf8.t ................. ok
t/16_unpacker_for_larges.t .. ok
t/17_canonical.t ............ ok
t/18_new_interface.t ........ ok
t/19_utf8_property.t ........ ok
t/20_de.t ................... skipped: long double is not supported
t/21_dirty_float.t .......... skipped: long double is not supported
t/22_pid_pack_unpack.t ...... ok
t/23-empty-key.t ............ ok
t/24_tied.t ................. ok
t/40_threads.t .............. ok
t/50_leaktrace.t ............ skipped: disabled in PP

Test Summary Report
-------------------
t/05_preferred_int.t      (Wstat: 1024 Tests: 30 Failed: 4)
  Failed tests:  13, 18, 23, 26
  Non-zero exit status: 4
Files=27, Tests=561,  5 wallclock secs ( 0.27 usr  0.05 sys +  4.48 cusr  0.52 csys =  5.32 CPU)
Result: FAIL
Failed 1/27 test programs. 4/561 subtests failed.

Minimal Perl version supported

Hi,

could you please, confirm what's the minimal Perl version supported? I seems like have some random issues with Pure Perl version running on CentOS 5 with Perl 5.8 - is it supposed to work there?

Kind regards,
Alexander.

Invalid type 'Q' in pack at <...>

Hi,

are there any suggestions (how to get rid of) of any plans to get rid of the following warning:

Invalid type 'Q' in pack at <...>MessagePack/PP.pm line 20.

at 32bit platforms?

I understand the reason for this warning, but what about catching it inside SIG{'WARN'} inside the same BEGIN block, to avoid false issue reporting? Or there is some special reason not to do this?

Thanks,
Alexander.

unpack with "extra bytes"

I want to parse a "blob" of data which actually just starts with a msgpack but contains more data after that. The unpack function of Data::MessagePack is (totally legit) croaking about this, as there are more bytes as expected. I would like to have the possibility to call this function without this croaking. I tried todo it with calling _unpack, but i can't do that like ... yeah its not good that way and warnings and stuff ;). Generally I think it would be nice to have a version of this function that allows this blockwise parsing of msgpack informations inside a stream of data. I would have made a pull request as its simple to "bend" the functions, but I thought it might be more wise to actually discuss how it should be implemented. I would be totally fine with an extra function (as it probably might would need another API anyway to make it more effective).

failed test with perl5.19.1?

does anyone reproduce it?

cp lib/Data/MessagePack/Boolean.pm blib/lib/Data/MessagePack/Boolean.pm
cp lib/Data/MessagePack/Unpacker.pod blib/lib/Data/MessagePack/Unpacker.pod
cp lib/Data/MessagePack/PP.pm blib/lib/Data/MessagePack/PP.pm
cp lib/Data/MessagePack.pm blib/lib/Data/MessagePack.pm
/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/bin/perl5.19.1 "-Iinc" /Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1/ExtUtils/xsubpp  -typemap /Users/yoshimin
/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1/ExtUtils/typemap  xs-src/MessagePack.xs > xs-src/MessagePack.xsc && mv xs-src/MessagePack.xsc xs-src/MessagePack.c
Please specify prototyping behavior for MessagePack.xs (see perlxs manual)
cc -c  "-I." "-Iinclude" "-I." -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -Wall -W -Wno-comment -O3   -DVERSION=\"0.47\" -DX
S_VERSION=\"0.47\" -o xs-src/MessagePack.o  "-I/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1/darwin-2level/CORE"  -DUSE_PPPORT xs-src/MessagePack.c
xs-src/MessagePack.c:206:17: warning: unused variable 'file' [-Wunused-variable]
    const char* file = __FILE__;
                ^
1 warning generated.
cc -c  "-I." "-Iinclude" "-I." -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -Wall -W -Wno-comment -O3   -DVERSION=\"0.47\" -DX
S_VERSION=\"0.47\" -o xs-src/pack.o  "-I/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1/darwin-2level/CORE"  -DUSE_PPPORT xs-src/pack.c
cc -c  "-I." "-Iinclude" "-I." -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -Wall -W -Wno-comment -O3   -DVERSION=\"0.47\" -DX
S_VERSION=\"0.47\" -o xs-src/unpack.o  "-I/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1/darwin-2level/CORE"  -DUSE_PPPORT xs-src/unpack.c
Running Mkbootstrap for Data::MessagePack ()
chmod 644 MessagePack.bs
rm -f blib/arch/auto/Data/MessagePack/MessagePack.bundle
env MACOSX_DEPLOYMENT_TARGET=10.3 cc  -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector xs-src/MessagePack.o xs-src/pack.o xs-src/unpack.o  -o blib/arch/a
uto/Data/MessagePack/MessagePack.bundle         \
                \
chmod 755 blib/arch/auto/Data/MessagePack/MessagePack.bundle
cp MessagePack.bs blib/arch/auto/Data/MessagePack/MessagePack.bs
chmod 644 blib/arch/auto/Data/MessagePack/MessagePack.bs
PERL_DL_NONLAZY=1 /Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/bin/perl5.19.1 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t xt/*
.t xt/leaks/*.t
t/00_compile.t .............. 1/1 # Testing Data::MessagePack/0.47 (XS)
# byteoder: 12345678, ivsize=8
t/00_compile.t .............. ok
t/01_pack.t ................. 1/43
#   Failed test 'dump a1 33'
#   at t/01_pack.t line 13.
#          got: 'cb 40 08 00 00 00 00 00 00'
#     expected: 'a1 33'
# Looks like you failed 1 test of 43.
t/01_pack.t ................. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/43 subtests
t/02_unpack.t ............... ok
t/03_stream_unpack.t ........ ok
t/04_invert.t ............... ok
t/05_preferred_int.t ........ ok
t/06_stream_unpack2.t ....... ok
t/07_break.t ................ ok
t/08_cycle.t ................ ok
t/09_stddata.t .............. ok
t/10_splitted_bytes.t ....... ok
t/11_stream_unpack3.t ....... ok
t/12_stream_unpack4.t ....... ok
t/13_booleans.t ............. ok
t/14_invalid_data.t ......... ok
t/15_utf8.t ................. ok
t/16_unpacker_for_larges.t .. ok
t/17_canonical.t ............ ok
t/18_new_interface.t ........ ok
t/19_utf8_property.t ........ ok
t/20_de.t ................... ok
t/21_dirty_float.t .......... ok
t/22_pid_pack_unpack.t ...... ok
t/23-empty-key.t ............ ok
t/24_tied.t ................. ok
t/40_threads.t .............. skipped: no threads
t/50_leaktrace.t ............ skipped: Test requires module 'Test::LeakTrace' but it's not found
xt/99_pod.t ................. skipped: Test::Pod 1.00 required for testing POD
xt/leaks/normal.t ........... skipped: $ENV{LEAK_TEST} is required
xt/leaks/stream.t ........... skipped: $ENV{LEAK_TEST} is required
perl -V
Summary of my perl5 (revision 5 version 19 subversion 1) configuration:

  Platform:
    osname=darwin, osvers=12.4.0, archname=darwin-2level
    uname='darwin xxxx.local 12.4.0 darwin kernel version 12.4.0: wed may 1 17:57:12 pdt 2013; root:xnu-2050.24.15~1release_x86_64 x86_64 '
    config_args='-de -Dprefix=/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1 -Dusedevel -Aeval:scriptdir=/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    optimize='-O3',
    cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-lgdbm -ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'

Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
                        PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT
                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
                        USE_PERL_ATOF
  Built under darwin
  Compiled at Jun 22 2013 21:03:29
  %ENV:
    PERLBREW_BASHRC_VERSION="0.64"
    PERLBREW_HOME="/Users/yoshimin/.perlbrew"
    PERLBREW_MANPATH="/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/man"
    PERLBREW_PATH="/Users/yoshimin/perl5/perlbrew/bin:/Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/bin"
    PERLBREW_PERL="perl-5.19.1"
    PERLBREW_ROOT="/Users/yoshimin/perl5/perlbrew"
    PERLBREW_VERSION="0.64"
  @INC:
    /Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/site_perl/5.19.1/darwin-2level
    /Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/site_perl/5.19.1
    /Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1/darwin-2level
    /Users/yoshimin/perl5/perlbrew/perls/perl-5.19.1/lib/5.19.1

I also tried to build with perl5.18.0. It does not cause failing test.

Hook for blessed variables

Hi.
Is it possible to add hoot for blessed vars, like in CBOR::XS and JSON::XS?
If variable if blessed and have method "TO_MSGPACK" it should be called and result should be serialized.

No msgpack in alpine

I was installing Amon2 in an alpine based docker image.. Failing because of missing Data::MessagePack

MessagePack working in a weird way.

Hi All,

I am facing a weird issue when I am trying to use pack on a data similar to the one below:

$VAR1 = [
          [],
          [
            1,
            [
              [],
              [
                1,
                'SomeText'
              ],
              [
                2,
                'SomeText'
              ]
            ]
          ],
          [
            2,
            'SomeText'
          ],
          [
            3,
            [
              [],
              [
                1,
                bless( do{\(my $o = 1)}, 'Data::MessagePack::Boolean' )
              ],
              [
                2,
                $VAR1->[3][1][1][1]
              ]
            ]
          ]
        ];

So when I use pack on the above data in my unit test case setup it produces below after unpacking which is expected.

Unpacked data : $VAR1 = [
          [],
          [
            1,
            [
              [],
              [
                1,
                'SomeText'
              ],
              [
                2,
                'SomeText'
              ]
            ]
          ],
          [
            2,
            'SomeText'
          ],
          [
            3,
            [
              [],
              [
                1,
                bless( do{\(my $o = 1)}, 'Data::MessagePack::Boolean' )
              ],
              [
                2,
                $VAR1->[3][1][1][1]
              ]
            ]
          ]
        ];

While when I run my integration test case, I get below data after I unpack.

Unpacked data : $VAR1 = [
          [],
          [
            1,
            [
              [],
              [
                '1',
                'SomeText'
              ],
              [
                '2',
                'SomeText'
              ]
            ]
          ],
          [
            2,
            'SomeText'
          ],
          [
            3,
            [
              [],
              [
                '1',
                bless( do{\(my $o = 1)}, 'Data::MessagePack::Boolean' )
              ],
              [
                '2',
                $VAR1->[3][1][1][1]
              ]
            ]
          ]
        ];

I have checked everything the setup is completely the same in opinion, I have checked everything. Still couldn't figure our what was the issue.

Can anyone help me what was I might be missing? And what should I do to resolve the issue?

Thanks in advance.

Cannot communicate with a Haskell based MsgPack RPC server

I have a Haskell server set up as:

import Network.MessagePackRpc.Server

echo :: String -> Method String
echo = return

main :: IO ()
main = serve 4423 [("echo", toMethod echo)]

If I call this from Python, it works fine:

>>> import msgpackrpc
>>> client = msgpackrpc.Client(msgpackrpc.Address('localhost', 4423))
>>> client.call('echo', 'Hi GitHub!')
'Hi GitHub!'

However, if I try and call it from Perl it doesn't work:

$ cat client.pl 
use strict;
use warnings;
use AnyEvent::MPRPC;

my $client = mprpc_client '127.0.0.1', '4423';
my $d = $client->call('echo', 'Bob');

print $d->recv;

$ perl client.pl 
Client got error: Broken pipe at /home/ollie/perl5/perlbrew/perls/perl-5.10.1/lib/site_perl/5.10.1/i686-linux/AnyEvent/Handle.pm line 629.

My Haskell server also emits an error:

<interactive>: ParseError {errorContexts = [], errorMessage = "Failed reading: invalid array tag: 0xA3", errorPosition = 1:10}

This makes me think that the Perl client isn't sending the correct msgpack data.

Test failing on Mac with perl 5.22.0

Fresh compile of perl 5.22.0 on OS 10.11 (El Capitan)

I keep getting the following test failing (I've tried msgpack 0.39 through 0.48):

t/05_preferred_int.t ........ 1/22 
#   Failed test 'dump d2 80 00 00 00'
#   at t/05_preferred_int.t line 18.
#          got: 'ce 80 00 00 00'
#     expected: 'd2 80 00 00 00'
# Looks like you failed 1 test of 22.

Here's a summary of my perl5 environment:

# local/perl5/bin/perl -Ilib -V
Summary of my perl5 (revision 5 version 22 subversion 0) configuration:

  Platform:
    osname=darwin, osvers=15.0.0, archname=darwin-2level
    uname='darwin mmucklo.somewhere 15.0.0 darwin kernel version 15.0.0: wed aug 26 16:57:32 pdt 2015; root:xnu-3247.1.106~1release_x86_64 x86_64 '
    config_args='-des -Dprefix=/Users/mmucklo/somewhere/local/perl5 -Dlibpth=/Users/mmucklo/somewhere/local/lib -Dldflags=-L/Users/mmucklo/somewhere/local/lib -Dccflags=-I/Users/mmucklo/somewhere/local/include'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-I/Users/mmucklo/somewhere/local/include -fno-common -DPERL_DARWIN -mmacosx-version-min=10.11 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include',
    optimize='-O3',
    cppflags='-I/Users/mmucklo/somewhere/local/include -fno-common -DPERL_DARWIN -mmacosx-version-min=10.11 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)', 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='cc', ldflags ='-L/Users/mmucklo/somewhere/local/lib -mmacosx-version-min=10.11 -fstack-protector-strong -L/usr/local/lib'
    libpth=/Users/mmucklo/somewhere/local/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib
    libs=-lpthread -ldbm -ldb -ldl -lm -lutil -lc
    perllibs=-lpthread -ldl -lm -lutil -lc
    libc=, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-L/Users/mmucklo/somewhere/local/lib -mmacosx-version-min=10.11 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_NEW_COPY_ON_WRITE 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
  Built under darwin
  Compiled at Oct 28 2015 18:25:48
  @INC:
    lib
    /Users/mmucklo/somewhere/local/perl5/lib/site_perl/5.22.0/darwin-2level
    /Users/mmucklo/somewhere/local/perl5/lib/site_perl/5.22.0
    /Users/mmucklo/somewhere/local/perl5/lib/5.22.0/darwin-2level
    /Users/mmucklo/somewhere/local/perl5/lib/5.22.0
    .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.