Revision history for Perl extension Sereal-Encoder

* Warning: For a seamless upgrade, upgrade to version 2
*          of the decoder before upgrading to version 2 of the
*          encoder!

2.01 Tue Dec 31 08:15 2013 (AMS time)
  - Promoting changes from 0.37 to 2.00_03 to a stable release.
    (This being the first protocol v2 stable release.)
  - Minor performance tweaks.

2.00_03 Sun Dec 29 10:33 2013 (AMS time)
  - FREEZE/THAW hooks for object serialization.
  - Test improvements (allowing for partial parallel run)
  - Minor optimizations.

2.00_02 Mon Oct 28 19:32 2013 (AMS time)
  - Sereal::Encoder now requires Sereal::Decoder for better testing.
  - Fix Test::Warn dependency problem of 2.00_01.

2.00_01 tue Oct 1 07:34 2013 (AMS time)
  - NEW PROTOCOL VERSION: V2
  - User-data in header functionality: You may embed arbitrary
    Sereal-serializable data in a document header. The document
    header isn't compressed, so this is ideal for retrieving
    small chunks of meta-data (eg. routing information) without
    having to deserialize the entire document.
  - Relocatable Sereal document bodies
  - Encoder never emits non-incremental Snappy encoding for V2
  - Offsets now 1-based in relocatable format, not 0
  - Fixed VERY obscure (and rare) memory leak.
  - Improved error messages
  - Remove warning about Sereal not being production-grade
    (because it IS).
  - Detect when the Snappy compression was net negative in size
    and back out
  - C89/Windows fixes (bulk88)
  - 5.18 compat: Skip test failing due to hash-randomization (Zefram)

0.37 Mon Sep 2 07:40 2013 (AMS time)
  - Windows and C89 fixes
  - Band-aid: Skip test failing due to hash-randomization [Zefram]

0.36 Tue May 7 12:00 2013 (AMS time)
  [changelog for encoder and decoder both]
  - Add "incremental" option to decoder for easier decoding of
    multiple sereal documents in one buffer.
  - Make snappy and snappy_incr options mutually exclusive.
  - Feature: Implement aliasing for deduping (aliased_dedupe_strings)

0.35 Mon Apr 1 11:50 2013 (AMS time)
  - Add new no_bless_objects option from Simon Bertrang.

0.34 Sat Mar 23 18:59:18 2013 (AMS time)
  - Fixup Manifest

0.33 Sun Feb 17 17:26 2013 (AMS time)
  - Fix problem with hv_backrefs (Issue #27)

0.32 Sun Feb 17 15:06 2013 (AMS time)
  - Add "dedupe_strings" option, which will make
    the encoder do extra work to dedupe string values
    in the serialized output.

0.31 Sun Feb 17 15:06 2013 (AMS time)
  - Daniel Dragan <bulk88@hotmail.com> spent a bunch of time
    digging into the weird problems we were having with Snappy
    encoded data on Windows on certain builds. Turned out that
    it was right broken, and worked sometimes purely by chance.
    He kindly provided a patch.

0.30 Wed Feb 13 06:21 2013 (AMS time)
  - Found a work around for VC6 Windows 32 bit builds
    Compile was "optimizing" float comparisons to use 80 bit precision
    regardless of type, this release uses a workaround of marking the
    relevant vars "volatile".

0.29 Sat Feb 09 18:09 2013 (AMS time)
  - Dummy release to keep Encoder in sync with Decoder.

0.28 Sat Feb 09 16:20 2013 (AMS time)
  - More fixups for building on Win32/C89 compilers
  - Eliminate unnecessary use of strlen.

0.27 Sat Feb 09 12:58 2013 (AMS time)
  - Various fixups to improve building on Win32
  - Fix C89 violations

0.26 Sun Feb 03 13:45 2013
  - Compatibility with perl 5.17.6 (5.18-to-be) regarding regular
    expression encoding.
  - Fixed Changelog order (why would I ever have listed oldest first?)

0.25 Tue Jan 22 18:00 2013
  - Various compatibility fixes with old versions of Perl.
    Specifically, fixes to regular expression handling that should help
    with 5.10 support, as well as fixes that should improve the status
    quo on 5.8.
  - Potential fix for a leak wrt. regular expression support.
  - Fewer compiler warnings on 32bit/gcc.

0.24 - unreleased

0.23 Tue Jan 08 07:23 2013
  * Important bug fix release *
  * Warning *
    Before using the incremental Snappy mode described below, you must
    upgrade the Sereal::Decoder to version 0.23 or higher!
  - Support for the 'snappy_incr' option, which uses a new Snappy
    compression format that is suitable for parsing multiple Sereal
    documents from a large buffer. A bug in the previous implementation
    of Snappy-compression resulted in the Decoder failing if the
    buffer (Perl input string) extended beyond the length of the
    Snappy-compressed Sereal document.
    If this confuses you, then:
      => If you're not using Snappy compression, move on.
      => If you are, but you're not extracting Sereal documents
         from larger strings, consider upgrading or move on.
      => If you're using Snappy compression and might want to extract
         Sereal documents from larger strings, then please:
         1) Upgrade Sereal::Decoder and Sereal::Encoder everywhere.
         2) Then swap the "snappy" option of the encoder for the
            "snappy_incr" option.
  - Support for the 'sort_keys' option, which outputs hash keys in
    consistent order (but see gotchas in documentation).

0.22 - unreleased
0.21 - unreleased

0.20  Fri Nov 23 15:35 2012
  - Configurable recursion limit for the Encoder.
  - Fix hard-crash issue with weak-refs to certain data structures
    (issue #11 on github). Thanks to Andrew Yates for helping us debug
    the problem!
    => Regression tests still pending.

0.19 - unreleased

0.18  Wed Nov 14 07:30 2012
  * This release contains critical bug fixes *
  - Fix output data corruption in encoder when serializing an incompatible
    data structure with refcount > 1 with the "stringify_unknown" option.

0.17  Mon Oct 29 12:00 2012
  * This release contains critical bug fixes *
  - Fix pointer-stashing-broken-by-realloc-from-under-it problem by
    using offsets instead.
    This bug could cause you Perl to segfault.

0.16  Thu Oct 25 12:00 2012
  - Re-entrancy fix for obscure cases like calling into Sereal from
    $SIG{__DIE__} if the exception was thrown from within Sereal.
    (A bit of a "don't do that" case)

0.15  Wed Oct 17 13:00 2012
  - Thread-safety fix on Perls >= 5.8.7. Sereal is still not thread-safe
    on older Perls 

0.14  Wed Oct 10 11:11 2012
  - The 'warn_unknown' option now optionally does NOT emit a warning
    if the unsupported item is a blessed object with string overloading.

0.13 - unreleased

0.12  Wed Sep 19 08:00 2012
  * Important bug fix *
  - Under certain circumstances, an encoder object could be left
    in an unclean state when an encoding operation failed via
    an exception.

0.11  Tue Sep 18 13:00 2012
  - 5.8.5 fixes.
  - Fixes to other languages' reference data output.

0.10  Mon Sep 17 14:00 2012
  - Perl 5.10 regular-expression-related build fixes.

0.09  Fri Sep 14 10:00 2012
  - Export functions by default when loaded from one liner
  - More liberal set of decoder versions that we can run full tests against

0.08  Thu Sep 13 17:00 2012
  - 'snappy_threshold' option which controls at which minimum packet size
    we start compressing with Snappy at all (if Snappy enabled)
  - More tests.

0.07  Tue Sep 11 14:00 2012
  - "undef_unknown" option will cause unsupported Perl types to be
    encoded as "undef" instead of throwing an exception.
  - Similarly, "stringify_unknown" will make those unsupported types
    be stringified instead. The two options are mutually exclusive.
  - "warn_unknown" option (only meaningful if "stringify_unknown" or
    "undef_unknown" are active) will cause a warning to be issued when
    an unsupported type is encoded as a string or as undef.
  - Bug fixes for encoding the contents of tied hashes (the tiedness
    itself is not preserved by design).
  - Solaris build fix.
  - Test fixes for threaded perls (likely working around a bug in Perl
  - Improved documentation.

0.06  Mon Sep 10 11:00 2012
  - First public release (CPAN).
  - Beta quality software.

0.05  Fri Sep  7 14:00 2012
  - internal release.

0.04  Thu Sep  6 16:00 2012
  - internal release.

0.03  Tue Sep  4 17:09 2012
  - internal release.

0.02  Tue Aug  8 17:09 2012
  - internal release.

0.01  Tue Aug  8 17:09 2012
  - original version; internal release.