Changes for version 7.001

  • Read protocol versions 1 through 7. Decode portable little-endian v7 floats, including IEEE binary128 on Perl builds without quadmath, converting values to the local NV type.
  • Validate v7 native long-double declarations and reject known format, byte-order and size mismatches. Add allow_unknown_long_double for explicitly trusted same-build reads of unidentified layouts; storage sizes must still match.
  • Preserve native floating-point behavior for protocol v1-v6 input. Add legacy_float_byteorder for older data with a known source byte order.
  • Include protocol v6 v-string and negative-integer support, keyed SipHash verification, checksum keys, modes, policies and defaults. Add prepare_checksum_key(), get_sereal_checksum() and validate_sereal_checksum().
  • Restore regexp character-set modifiers, /n and /xx, and report the required Perl version for unsupported modifiers.
  • Harden malformed-input and object handling. Retain Decoder handles across callbacks, and run output DESTROY callbacks before capturing input on Perl 5.24.
  • Restore older-Perl builds, avoid read-only regexp buffer corruption on Perl 5.14, and correct 32-bit size handling and allocation diagnostics.
  • Fix bundled Snappy builds on Haiku and hobodecoder compatibility with BusyBox od. Improve optional-dependency diagnostics.
  • Extend independent wire-format and stored corpus coverage, including real Fedora s390x producer captures. Add a floating-point corpus collector and named declarations in diagnostics and hobodecoder. Thanks to pghmcfc for the report and corpus (issue #337).
  • Ship the shared SECURITY policy and clarify security, checksum and floating-point interoperability documentation.

Documentation

Compare encoder traversal time and peak memory

Modules

Fast, compact, powerful binary deserialization
Getting the most out of the Perl-Sereal implementation

Provides

in lib/Sereal/Decoder/Constants.pm