* of the decoder before upgrading to version 2 of the
* encoder!
+2.12 Sun May 11 23:30
+ - Synchronization release with Decoder changes.
+
2.11 Sun Apr 13 23:04
- Work around regression in Perl 5.16.3 - 5.17.0
As of 8ae39f603f0f5778c160e18e08df60 while each
author_tools/bench.pl
+author_tools/different_sereal_docs.sh
author_tools/freeze_thaw_timing.pl
author_tools/hobodecoder.pl
author_tools/numeric_str_length.c
"Steffen Mueller <smueller@cpan.org>, Yves Orton <yves@cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "ExtUtils::MakeMaker version 6.9, CPAN::Meta::Converter version 2.120351",
"license" : [
"perl_5"
],
"url" : "git://github.com/Sereal/Sereal.git"
}
},
- "version" : "2.11"
+ "version" : "2.12"
}
configure_requires:
ExtUtils::MakeMaker: 0
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921'
+generated_by: 'ExtUtils::MakeMaker version 6.9, CPAN::Meta::Converter version 2.120351'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
resources:
bugtracker: https://github.com/Sereal/Sereal/issues
repository: git://github.com/Sereal/Sereal.git
-version: 2.11
+version: 2.12
--- /dev/null
+#!/bin/sh -e
+
+# This emits all possible types of Sereal docs, for testing the patch
+# to file(1) to detect the various types
+
+rm -v /tmp/sereal-*.srl
+
+perl -MSereal::Encoder=encode_sereal -we 'print encode_sereal("foo" x 8, {use_protocol_v1 => 1})' >/tmp/sereal-v1-plain.srl
+hexdump -C /tmp/sereal-v1-plain.srl
+sha1sum /tmp/sereal-v1-plain.srl
+echo
+
+perl -MSereal::Encoder=encode_sereal -we 'print encode_sereal("foo" x 8, {})' >/tmp/sereal-v2-plain.srl
+hexdump -C /tmp/sereal-v2-plain.srl
+sha1sum /tmp/sereal-v2-plain.srl
+echo
+
+perl -MSereal::Encoder=encode_sereal -we 'print encode_sereal("foo" x 8, {use_protocol_v1 => 1, snappy => 1, snappy_incr => 0, snappy_threshold => 0})' >/tmp/sereal-v1-snappy-nonincr.srl
+hexdump -C /tmp/sereal-v1-snappy-nonincr.srl
+sha1sum /tmp/sereal-v1-snappy-nonincr.srl
+echo
+
+perl -MSereal::Encoder=encode_sereal -we 'print encode_sereal("foo" x 8, {use_protocol_v1 => 1, snappy => 0, snappy_incr => 1, snappy_threshold => 0})' >/tmp/sereal-v1-snappy-incr.srl
+hexdump -C /tmp/sereal-v1-snappy-incr.srl
+sha1sum /tmp/sereal-v1-snappy-incr.srl
+echo
+
+# The non-incremental option doesn't do anything under v2
+perl -MSereal::Encoder=encode_sereal -we 'print encode_sereal("foo" x 8, {use_protocol_v1 => 0, snappy => 1, snappy_incr => 0, snappy_threshold => 0})' >/tmp/sereal-v2-snappy-nonincr.srl
+hexdump -C /tmp/sereal-v2-snappy-nonincr.srl
+sha1sum /tmp/sereal-v2-snappy-nonincr.srl
+echo
+
+perl -MSereal::Encoder=encode_sereal -we 'print encode_sereal("foo" x 8, {use_protocol_v1 => 0, snappy => 0, snappy_incr => 1, snappy_threshold => 0})' >/tmp/sereal-v2-snappy-incr.srl
+hexdump -C /tmp/sereal-v2-snappy-incr.srl
+sha1sum /tmp/sereal-v2-snappy-incr.srl
+echo
+
Regenerate these constant functions by feeding this entire source file to
perl -x
-#!/home/yorton/perl5/perlbrew/perls/perl-5.18.2/bin/perl -w
+#!/usr/bin/perl -w
use ExtUtils::Constant qw (constant_types C_constant XS_constant);
my $types = {map {($_, 1)} qw(IV)};
use Carp qw/croak/;
use XSLoader;
-our $VERSION = '2.11'; # Don't forget to update the TestCompat set for testing against installed decoders!
+our $VERSION = '2.12'; # Don't forget to update the TestCompat set for testing against installed decoders!
our $XS_VERSION = $VERSION; $VERSION= eval $VERSION;
# not for public consumption, just for testing.
tags which, in its simplest form, reads I<REF, ARRAY $array_length TAG1 TAG2 ...>.
The separation of "REF" and "ARRAY" is necessary to properly implement all of
Perl's referencing and aliasing semantics correctly. Quite frequently, however,
-your array is only reference once and plainly so. If it's also at most 15 elements
+your array is only referenced once and plainly so. If it's also at most 15 elements
long, Sereal optimizes all of the "REF" and "ARRAY" tags, as well as the length
into a special one byte ARRAYREF tag. This is a very significant optimization
for common cases. This, however, does mean that most arrays up to 15 elements