Um, yeah, when BrowserUk says "not for win32" a lot of the time he says "its not on ppm" cause the version that is on ppm is very old and/or not available to everyone

Not so:

C:\perl64\packages\Sereal-Decoder-3.005>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/Sereal/Performance.pm blib\lib\Sereal\Performance.pm cp lib/Sereal/Decoder/Constants.pm blib\lib\Sereal\Decoder\Constants.p +m cp lib/Sereal/Decoder.pm blib\lib\Sereal\Decoder.pm C:\Perl64\bin\perl.exe C:\perl64\site\lib\ExtUtils\xsubpp -ty +pemap C:\Perl64\lib\ExtUtils\typemap -typemap typemap Decoder.xs > D +ecoder.xsc && C:\Perl64\bin\perl.exe -MExtUtils::Command -e mv -- Dec +oder.xsc Decoder.c cl -c -I. -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN3 +2 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZ +E -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -Ox -GL -fp:precise -DVE +RSION=\"3.005\" -DXS_VERSION=\"3.005\" "-IC:\Perl64\lib\CORE" -DND +EBUG Decoder.c Decoder.c Decoder.xs(311) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(312) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(313) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(314) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(315) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(316) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(317) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(318) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(319) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(320) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(321) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(322) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(323) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Decoder.xs(390) : warning C4996: 'sprintf': This function or variable +may be unsafe. Consider using sprintf_s instead. To disable deprecati +on, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(366) : see declaration of 'sprintf' Decoder.xs(397) : warning C4996: 'sprintf': This function or variable +may be unsafe. Consider using sprintf_s instead. To disable deprecati +on, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(366) : see declaration of 'sprintf' cl -c -I. -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN3 +2 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZ +E -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -Ox -GL -fp:precise -DVE +RSION=\"3.005\" -DXS_VERSION=\"3.005\" "-IC:\Perl64\lib\CORE" -DND +EBUG srl_decoder.c srl_decoder.c c:\perl64\packages\sereal-decoder-3.005\snappy\csnappy.h(19) : fatal e +rror C1083: Cannot open include file: 'stdint.h': No such file or dir +ectory NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual S +tudio 9.0\VC\Bin\amd64\cl.EXE"' : return code '0x2' Stop. C:\perl64\packages\Sereal-Encoder-3.005>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/Sereal/Encoder.pm blib\lib\Sereal\Encoder.pm cp lib/Sereal/Encoder/Constants.pm blib\lib\Sereal\Encoder\Constants.p +m C:\Perl64\bin\perl.exe C:\perl64\site\lib\ExtUtils\xsubpp -ty +pemap C:\Perl64\lib\ExtUtils\typemap -typemap typemap Encoder.xs > E +ncoder.xsc && C:\Perl64\bin\perl.exe -MExtUtils::Command -e mv -- Enc +oder.xsc Encoder.c cl -c -I. -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN3 +2 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZ +E -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -Ox -GL -fp:precise -DVE +RSION=\"3.005\" -DXS_VERSION=\"3.005\" "-IC:\Perl64\lib\CORE" -DND +EBUG Encoder.c Encoder.c Encoder.xs(153) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(154) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(155) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(156) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(157) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(158) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(159) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(160) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(161) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(162) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(163) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(164) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(165) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(166) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(167) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(168) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(169) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(170) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(171) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(172) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data Encoder.xs(173) : warning C4244: 'initializing' : conversion from 'UV' + to 'U32', possible loss of data cl -c -I. -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN3 +2 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZ +E -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -Ox -GL -fp:precise -DVE +RSION=\"3.005\" -DXS_VERSION=\"3.005\" "-IC:\Perl64\lib\CORE" -DND +EBUG srl_encoder.c srl_encoder.c c:\perl64\packages\sereal-encoder-3.005\snappy\csnappy.h(19) : fatal e +rror C1083: Cannot open include file: 'stdint.h': No such file or dir +ectory NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual S +tudio 9.0\VC\Bin\amd64\cl.EXE"' : return code '0x2' Stop.

And if I edit both copies of snappy.h and comment out the #include stdint.h:

C:\perl64\packages\Sereal-Decoder-3.005>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -I. -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN3 +2 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZ +E -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -Ox -GL -fp:precise -DVE +RSION=\"3.005\" -DXS_VERSION=\"3.005\" "-IC:\Perl64\lib\CORE" -DND +EBUG srl_decoder.c srl_decoder.c c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(68 +) : warning C4244: 'return' : conversion from '__int64' to 'int', pos +sible loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(24 +5) : warning C4244: '-=' : conversion from '__int64' to 'int', possib +le loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(26 +9) : warning C4244: 'initializing' : conversion from '__int64' to 'co +nst int', possible loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(28 +7) : warning C4244: 'initializing' : conversion from '__int64' to 'co +nst int', possible loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(30 +0) : warning C4244: 'initializing' : conversion from '__int64' to 'co +nst int', possible loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(34 +4) : warning C4244: '=' : conversion from '__int64' to 'int', possibl +e loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(35 +7) : warning C4244: '=' : conversion from '__int64' to 'int', possibl +e loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(36 +0) : warning C4244: '=' : conversion from '__int64' to 'int', possibl +e loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(36 +5) : warning C4244: '=' : conversion from '__int64' to 'int', possibl +e loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(37 +2) : warning C4244: '=' : conversion from '__int64' to 'int', possibl +e loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(38 +0) : warning C4244: '=' : conversion from '__int64' to 'int', possibl +e loss of data c:\perl64\packages\sereal-decoder-3.005\snappy/csnappy_decompress.c(38 +5) : warning C4244: '=' : conversion from '__int64' to 'uint32_t', po +ssible loss of data srl_decoder.c(294) : warning C4244: 'function' : conversion from 'IV' +to 'I32', possible loss of data srl_decoder.c(430) : warning C4267: 'function' : conversion from 'size +_t' to 'uint32_t', possible loss of data srl_decoder.c(442) : warning C4267: 'function' : conversion from 'size +_t' to 'uint32_t', possible loss of data srl_decoder.c(473) : warning C4267: '=' : conversion from 'size_t' to +'mz_ulong', possible loss of data srl_decoder.c(479) : warning C4267: 'function' : conversion from 'size +_t' to 'mz_ulong', possible loss of data srl_decoder.c(1053) : warning C4244: 'initializing' : conversion from +'IV' to 'U32', possible loss of data srl_decoder.c(1127) : warning C4146: unary minus operator applied to u +nsigned type, result still unsigned srl_decoder.c(1236) : warning C4244: 'function' : conversion from 'UV' + to 'I32', possible loss of data srl_decoder.c(1309) : warning C4244: '=' : conversion from 'IV' to 'I3 +2', possible loss of data srl_decoder.c(1313) : warning C4244: '=' : conversion from 'IV' to 'I3 +2', possible loss of data srl_decoder.c(1369) : error C2143: syntax error : missing ';' before ' +type' srl_decoder.c(1370) : error C2065: 'tag' : undeclared identifier srl_decoder.c(1374) : error C2065: 'tag' : undeclared identifier srl_decoder.c(1388) : error C2065: 'tag' : undeclared identifier srl_decoder.c(1390) : error C2065: 'tag' : undeclared identifier srl_decoder.c(1398) : error C2065: 'tag' : undeclared identifier srl_decoder.c(1401) : error C2065: 'tag' : undeclared identifier srl_decoder.c(1543) : warning C4244: '=' : conversion from 'UV' to 'U3 +2', possible loss of data srl_decoder.c(1550) : warning C4244: '=' : conversion from 'UV' to 'U3 +2', possible loss of data TRANSITION_REGEXP NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual S +tudio 9.0\VC\Bin\amd64\cl.EXE"' : return code '0x2' Stop. C:\perl64\packages\Sereal-Encoder-3.005>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -I. -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN3 +2 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZ +E -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -Ox -GL -fp:precise -DVE +RSION=\"3.005\" -DXS_VERSION=\"3.005\" "-IC:\Perl64\lib\CORE" -DND +EBUG srl_encoder.c srl_encoder.c c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(447) + : warning C4244: 'return' : conversion from 'uint64_t' to 'uint32_t' +, possible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(501) + : warning C4334: '<<' : result of 32-bit shift implicitly converted +to 64 bits (was 64-bit shift intended?) c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(550) + : warning C4244: '=' : conversion from '__int64' to 'uint16_t', poss +ible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(560) + : warning C4244: 'function' : conversion from '__int64' to 'int', po +ssible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(581) + : warning C4244: 'function' : conversion from '__int64' to 'int', po +ssible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(589) + : warning C4244: '=' : conversion from '__int64' to 'uint16_t', poss +ible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(593) + : warning C4244: '=' : conversion from '__int64' to 'uint16_t', poss +ible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(603) + : warning C4244: 'function' : conversion from '__int64' to 'int', po +ssible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(634) + : warning C4244: '+=' : conversion from '__int64' to 'uint32_t', pos +sible loss of data c:\perl64\packages\sereal-encoder-3.005\snappy/csnappy_compress.c(650) + : warning C4244: '+=' : conversion from '__int64' to 'uint32_t', pos +sible loss of data c:\perl64\packages\sereal-encoder-3.005\srl_compress.h(61) : warning C +4244: '=' : conversion from 'UV' to 'unsigned char', possible loss of + data c:\perl64\packages\sereal-encoder-3.005\srl_compress.h(143) : warning +C4267: 'function' : conversion from 'size_t' to 'uint32_t', possible +loss of data c:\perl64\packages\sereal-encoder-3.005\srl_compress.h(144) : warning +C4267: 'function' : conversion from 'size_t' to 'mz_ulong', possible +loss of data srl_encoder.c(405) : warning C4244: '=' : conversion from 'UV' to 'U32 +', possible loss of data srl_encoder.c(439) : warning C4244: '=' : conversion from 'IV' to 'int +', possible loss of data srl_encoder.c(904) : error C2143: syntax error : missing ';' before 'c +onst' srl_encoder.c(906) : error C2065: 'compress_flags' : undeclared identi +fier srl_encoder.c(913) : error C2065: 'compress_flags' : undeclared identi +fier srl_encoder.c(927) : error C2065: 'compress_flags' : undeclared identi +fier srl_encoder.c(927) : warning C4244: 'function' : conversion from 'IV' +to 'const int', possible loss of data srl_encoder.c(936) : error C2065: 'compress_flags' : undeclared identi +fier srl_encoder.c(948) : error C2143: syntax error : missing '{' before '* +' srl_encoder.c(950) : error C2371: 'srl_dump_data_structure_mortal_sv' +: redefinition; different basic types c:\perl64\packages\sereal-encoder-3.005\srl_encoder.h(61) : se +e declaration of 'srl_dump_data_structure_mortal_sv' srl_encoder.c(965) : warning C4133: 'return' : incompatible types - fr +om 'SV *' to 'int *' srl_encoder.c(968) : warning C4133: 'return' : incompatible types - fr +om 'SV *' to 'int *' srl_encoder.c(1057) : warning C4244: 'function' : conversion from 'UV' + to 'const char', possible loss of data srl_encoder.c(1068) : warning C4244: 'function' : conversion from 'UV' + to 'I32', possible loss of data srl_encoder.c(1069) : error C2143: syntax error : missing ';' before ' +type' srl_encoder.c(1069) : error C2065: 'svt' : undeclared identifier srl_encoder.c(1076) : error C2143: syntax error : missing ';' before ' +type' srl_encoder.c(1076) : error C2065: 'svt' : undeclared identifier srl_encoder.c(1096) : warning C4267: '=' : conversion from 'size_t' to + 'int', possible loss of data srl_encoder.c(1132) : warning C4244: 'function' : conversion from 'UV' + to 'const char', possible loss of data srl_encoder.c(1176) : error C2143: syntax error : missing ';' before ' +type' srl_encoder.c(1176) : error C2065: 'svt' : undeclared identifier srl_encoder.c(1185) : error C2143: syntax error : missing ';' before ' +type' srl_encoder.c(1185) : error C2065: 'svt' : undeclared identifier srl_encoder.c(1198) : warning C4244: 'function' : conversion from 'UV' + to 'const char', possible loss of data srl_encoder.c(1210) : error C2143: syntax error : missing ';' before ' +type' srl_encoder.c(1210) : error C2065: 'svt' : undeclared identifier srl_encoder.c(1519) : warning C4244: 'function' : conversion from 'UV' + to 'U32', possible loss of data srl_encoder.c(1523) : warning C4244: 'function' : conversion from 'UV' + to 'U32', possible loss of data NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual S +tudio 9.0\VC\Bin\amd64\cl.EXE"' : return code '0x2' Stop.

And investigating the first ERRORs in both cases shows:

srl_decoder.c(1369) : error C2143: syntax error : missing ';' before ' +type' srl_decoder.c(1370) : error C2065: 'tag' : undeclared identifier srl_read_refn(pTHX_ srl_decoder_t *dec, SV* into) { SV *referent; ASSERT_BUF_SPACE(dec, 1, " while reading REFN referent"); U8 tag= *(dec->pos); /* Look ahead for special vars. */

And:

srl_encoder.c(904) : error C2143: syntax error : missing ';' before 'c +onst' srl_encoder.c(906) : error C2065: 'compress_flags' : undeclared identi +fier srl_dump_data_structure(pTHX_ srl_encoder_t *enc, SV *src, SV *user_he +ader_src) { enc = srl_prepare_encoder(aTHX_ enc); const U32 compress_flags= SRL_ENC_HAVE_OPTION(enc, SRL_F_COMPRESS_ +FLAGS_MASK);

Basically, the source files are not C language compliant: You cannot have declarations after executable statements within a block.

It seems that gcc allows this, but I don't use gcc, so.

(I'd also say that having been forced to inspect the code; I see no reason to trust this code more than Storable, and quite a few reasons to trust it less. IMO: Any C programmer who ignores that many warnings, is like a Perl programmer who doesn't use strict or warnings.)


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I'm with torvalds on this
In the absence of evidence, opinion is indistinguishable from prejudice. Agile (and TDD) debunked

In reply to Re^10: (Do you trust a C programmer who ignores warnings; any more than you trust a Perl programmer who does?) by BrowserUk
in thread Is there a way to reduce Data::Dumper's output size? by tkguifan

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.