The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changes 6343
META.json 713
META.yml 1011
Makefile.PL 413
lib/Sereal.pm 825
t/003_basic.t 11
6 files changed (This is a version diff) 93106
@@ -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");