@@ -6,66 +6,46 @@ please see the Encoder and Decoder changelogs:
* https://github.com/Sereal/Sereal/blob/master/Perl/Decoder/Changes
* https://github.com/Sereal/Sereal/blob/master/Perl/Encoder/Changes
-
-2.021 Tue Jan 7 20:10 2014 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-2.020 Mon Jan 6 15:00 2014 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-2.011 Wed Jan 1 11:07 2014 (AMS time)
- - Fixup dependencies of previous release.
-
-2.010 Tue Dec 31 09:30 2013 (AMS time)
- - New MAJOR decoder/encoder release, dependency version change.
-
-0.370 Mon Sep 2 07:47 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.360 May 2013
- - New decoder/encoder release, dependency version change.
-
-0.350 Mon Apr 1 11:50 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.340 Sat Mar 23 18:59:18 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.330 Sun Mar 23 17:26 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.320 Sun Mar 23 15:28 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.310 Sun Feb 17 15:06 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.300 Sat Feb 09 18:09 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.290 Sat Feb 09 18:09 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.280 Sat Feb 09 16:20 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.270 Sat Feb 09 12:58 2013 (AMS time)
- - New decoder/encoder release, dependency version change.
-
-0.260 Sun Feb 03 13:47 2013
- - New encoder release, dependency version change.
-
-0.250 Tue Jan 22 18:00 2013
- - New encoder and decoder releases, dependency version change.
-
-0.230 Tue Jan 08 07:38 2013
- - New encoder and decoder releases, dependency version change.
-
-0.210 Wed Jan 02 09:00 2013
- - New decoder release, dependency version change.
-
-0.201 Wed Dec 19 19:00 2012
- - Fix dependencies on encoder and decoder (duh!)
-
-0.20 Mon Dec 17 19:00 2012
- - original version
+3.003 Oct 19 2014
+ * Niko Tyni fixed the 64-bit big endian Sereal bug! (Yay Niko!)
+ * Setup META.yml correctly so that certain dependencies are
+ marked as being test dependencies and not build or run-time
+ dependencies.
+ * Allow one to build against an externally supplied version
+ of csnappy or miniz. Thanks to Petr Písař <ppisar@redhat.com>
+
+3.002 Aug 20 2014
+ Summary of changes from 3.001 - 3.002
+ - Encoder: Introduce "canonical" option to encoder
+ - Encoder: Introduce "canonical_refs" option to encoder
+ - Decoder: Introduce "set_readonly" option to decoder
+ - Decooder: Introduce "set_readonly_scalars" option to decoder
+
+ * Decoder Bug fixes
+ - Fix assertion fails in DEBUG perls (Brian Fraser)
+ - Fix segfault with "into" interface when decoding references and
+ strings into the same target SV. See new test t/550_decode_into.t
+
+ * Test Infra Changes
+ - Split up bulk tests to speed up testing and make it easier
+ to see when a failure is restricted to a specific option.
+
+ * Big-Endian Support
+ - Improved support for Big-Endian machines. We now build and pass test
+ on Sparc and HP-UX and other platforms with big-endian or strict
+ alignedness requirements. Much thanks to Jarkko Hietaniemi,
+ Gregor Herrmann, and H. Merijn Brand for for their assistance with
+ this.
+ - We still have issues with s390x (Z/Os) with Sereal. If someone wants
+ to help it would be appreciated.
+
+3.001
+ - Production release 1 of protocol version 3
+ - Zlib support
+ - CANONICAL_UNDEF,
+ - new magic header to make it easier to detect
+ UTF8 encoded data.
+ - Minor changes to how scalar values are serialized
+ to favour more compact representations.
+
+Full change history available at https://github.com/Sereal/Sereal
@@ -4,7 +4,7 @@
"Steffen Mueller <smueller@cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.142060",
"license" : [
"perl_5"
],
@@ -22,9 +22,7 @@
"prereqs" : {
"build" : {
"requires" : {
- "Sereal::Decoder" : "2.03",
- "Sereal::Encoder" : "2.03",
- "Test::More" : "0.88"
+ "ExtUtils::MakeMaker" : "0"
}
},
"configure" : {
@@ -34,10 +32,17 @@
},
"runtime" : {
"requires" : {
- "Sereal::Decoder" : "2.03",
- "Sereal::Encoder" : "2.03",
+ "Sereal::Decoder" : "3.003",
+ "Sereal::Encoder" : "3.003",
"perl" : "5.008"
}
+ },
+ "test" : {
+ "requires" : {
+ "Sereal::Decoder" : "3.003",
+ "Sereal::Encoder" : "3.003",
+ "Test::More" : "0.88"
+ }
}
},
"release_status" : "stable",
@@ -46,8 +51,9 @@
"web" : "https://github.com/Sereal/Sereal/issues"
},
"repository" : {
+ "type" : "git",
"url" : "git://github.com/Sereal/Sereal.git"
}
},
- "version" : "2.030"
+ "version" : "3.003"
}
@@ -3,27 +3,28 @@ abstract: 'Fast, compact, powerful binary (de-)serialization'
author:
- 'Steffen Mueller <smueller@cpan.org>'
build_requires:
- Sereal::Decoder: 2.03
- Sereal::Encoder: 2.03
- Test::More: 0.88
+ ExtUtils::MakeMaker: '0'
+ Sereal::Decoder: '3.003'
+ Sereal::Encoder: '3.003'
+ Test::More: '0.88'
configure_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Sereal
no_index:
directory:
- t
- inc
requires:
- Sereal::Decoder: 2.03
- Sereal::Encoder: 2.03
- perl: 5.008
+ Sereal::Decoder: '3.003'
+ Sereal::Encoder: '3.003'
+ perl: '5.008'
resources:
bugtracker: https://github.com/Sereal/Sereal/issues
repository: git://github.com/Sereal/Sereal.git
-version: 2.030
+version: '3.003'
@@ -4,7 +4,7 @@ use warnings;
use ExtUtils::MakeMaker;
-our $VERSION = '2.03';
+our $VERSION = '3.003';
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
@@ -12,11 +12,16 @@ WriteMakefile1(
MIN_PERL_VERSION => '5.008',
META_MERGE => {
resources => {
- repository => 'git://github.com/Sereal/Sereal.git',
- bugtracker => 'https://github.com/Sereal/Sereal/issues',
+ repository => {
+ url => 'git://github.com/Sereal/Sereal.git',
+ },
+ bugtracker => {
+ web => 'https://github.com/Sereal/Sereal/issues',
+ },
},
+ 'meta-spec' => { version => 2 },
},
- BUILD_REQUIRES => {
+ TEST_REQUIRES => {
'Test::More' => 0.88,
'Sereal::Encoder' => $VERSION,
'Sereal::Decoder' => $VERSION,
@@ -38,6 +43,10 @@ sub WriteMakefile1 { #Written by Alexandr Ciornii, version 0.20. Added by eumm-
$eumm_version=eval $eumm_version;
die "EXTRA_META is deprecated" if exists $params{EXTRA_META};
die "License not specified" if not exists $params{LICENSE};
+ if ($params{TEST_REQUIRES} and $eumm_version < 6.6303) {
+ $params{BUILD_REQUIRES}={ %{$params{BUILD_REQUIRES} || {}} , %{$params{TEST_REQUIRES}} };
+ delete $params{TEST_REQUIRES};
+ }
if ($params{BUILD_REQUIRES} and $eumm_version < 6.5503) {
#EUMM 6.5502 has problems with BUILD_REQUIRES
$params{PREREQ_PM}={ %{$params{PREREQ_PM} || {}} , %{$params{BUILD_REQUIRES}} };
@@ -2,12 +2,18 @@ package Sereal;
use 5.008;
use strict;
use warnings;
-our $VERSION = '2.030';
-use Sereal::Encoder 2.03 qw(encode_sereal);
-use Sereal::Decoder 2.03 qw(decode_sereal looks_like_sereal);
+our $VERSION = '3.003';
+our $XS_VERSION = $VERSION; $VERSION= eval $VERSION;
+use Sereal::Encoder 3.003 qw(encode_sereal sereal_encode_with_object);
+use Sereal::Decoder 3.003 qw(decode_sereal looks_like_sereal sereal_decode_with_object);
use Exporter 'import';
-our @EXPORT_OK = qw(encode_sereal decode_sereal looks_like_sereal);
+our @EXPORT_OK = qw(
+ encode_sereal decode_sereal
+ looks_like_sereal
+ sereal_encode_with_object
+ sereal_decode_with_object
+);
our %EXPORT_TAGS = (all => \@EXPORT_OK);
# export by default if run from command line
our @EXPORT = ((caller())[1] eq '-e' ? @EXPORT_OK : ());
@@ -24,8 +30,15 @@ Sereal - Fast, compact, powerful binary (de-)serialization
=head1 SYNOPSIS
- use Sereal qw(encode_sereal decode_sereal looks_like_sereal);
-
+ use Sereal qw(encode_sereal decode_sereal
+ sereal_encode_with_object
+ sereal_decode_with_object
+ looks_like_sereal);
+ # Note: For performance reasons, you should prefer the OO interface,
+ # or sereal_(en|de)code_with_object over the stateless
+ # encode_sereal/decode_sereal functions.
+ # See the Sereal::Performance documentation for details.
+
=head1 DESCRIPTION
I<Sereal> is an efficient, compact-output, binary and feature-rich
@@ -54,12 +67,16 @@ L<https://github.com/Sereal/Sereal/wiki/Sereal-Comparison-Graphs>.
It is recommended to use the object-oriented interface of
C<Sereal::Encoder> and C<Sereal::Decoder> if you care about
-performance.
+performance. For detailed performance considerations,
+see L<Sereal::Performance>.
-You can optionally import three functions from C<Sereal>.
+You can optionally import five functions from C<Sereal>.
C<encode_sereal> is the same function as L<Sereal::Encoder>'s
C<encode_sereal> function. C<decode_sereal> and C<looks_like_sereal>
are the same as L<Sereal::Decoder>'s functions of the same names.
+Finally, you can import the advanced functional interface
+C<sereal_encode_with_object> and C<sereal_decode_with_object>.
+Again, see L<Sereal::Performance> for information about those.
After loading the C<Sereal> module, both C<Sereal::Encoder> and
C<Sereal::Decoder> are guaranteed to be loaded, so you can use
@@ -6,6 +6,6 @@ use Sereal;
use Test::More tests => 3;
my $s = Sereal::encode_sereal("foo");
ok(defined $s);
-ok(Sereal::looks_like_sereal($s));
+ok(Sereal::looks_like_sereal($s)) or diag $s;
is(Sereal::decode_sereal($s), "foo");