Revision history for Perl module CBOR::Free 0.32 4 March 2022 - Fix compatibility with big-endian systems. - Add Test::Pod requirement for testing. - Internal: Use Easy XS for boilerplate. 0.31 2 May 2020 - Fix 5.10.0 compatibility. 0.30 28 April 2020 - BUG FIX: The decoder no longer leaks an extra reference on indirect values. - BUG FIX: The decoder no longer leaks a scalar on indefinite-length strings. - BUG FIX: The decoder no longer leaks arrays or hashes on errant input. - Add new sequence decoder module. - Add new character encoding/decoding options. - Remove experimental “text_keys” mode. (The new encoding options should satisfy all needs that this served.) - Decoder: make hash key storage a bit more efficient if the key is encoded as an indefinite-length string. 0.23 8 April 2020 - Fix encoding of “magical” scalars and hashes. (Thanks to ATOOMIC for identifying the issue!) - Silence a few inconsequential compiler warnings. - Remove CI files from MANIFEST. 0.22 11 Feb 2020 - Fix compilation on Perl 5.10.0. (i.e., supply missing HeUTF8 macro) - Fix out-of-range error reporting on pre-5.24 64-bit Windows perls. 0.21 6 Feb 2020 - Make tests ignore inconsistent Inf detection in pre-5.22 perls on Linux 5.4+. 0.20 31 Jan 2020 - Update test requirements to avoid dev release of Test::Class::Tiny. 0.19 30 Jan 2020 - BUG FIX: Properly validate UTF-8 map keys when decoding. - InvalidUTF8 errors now correctly handle NULs in the invalid string. 0.18 19 Jan 2020 - BREAKING CHANGE: Encode UTF8-flagged hash keys as CBOR text. - BUG FIX: Properly decoded hash keys that contain code points 128-255 were previously mangled. This release fixes that. - BUG FIX: Decode CBOR text strings as UTF8-flaged Perl strings. This is an admittedly-imperfect attempt to preserve distinctly-typed text strings in Perl (a language that, by design, doesn’t distinguish text vs. binary). The POD has described this behavior for some time; it just was never implemented correctly until now. - Add (EXPERIMENTAL) “text_keys” encode mode, which causes all CBOR map keys to be text. This requires proper character decoding! - Add native_utf8() decode mode, which skips UTF-8 validation in decoding. - Build fix: Require a reasonably recent ExtUtils::MakeMaker. 0.17 17 Jan 2020 - Make documentation more accurate regarding Perl strings. 0.16 19 Nov 2019 - Make tests accommodate floating-point bug in pre-5.24 Windows perls. 0.15 18 Nov 2019 - BUG FIX: Several memory leaks on error conditions are fixed. - Add optional preserve/shared references support. - Speed up “canonical” ordering. 0.14 9 Nov 2019 - BREAKING CHANGE: The encoder now requires a flag to encode scalar references. (The decoder still handles them all the time.) - Accommodate quadmath builds in tests, and mention them in documentation regarding rounding. 0.13 8 Nov 2019 - Add (automatic) support for the “indirection” tag. 0.12 30 Jun 2019 - BREAKING CHANGE (minor): Unrecognized tagged values now prompt a warning. This means that decode() will warn() on every tagged value. - Fix bug in parsing arguments to encode(). - Create CBOR::Free::Decoder class, which allows configurable parsing of tagged values. - Refactor C code to be more modular and maintainable. 0.11 20 Jun 2019 - BREAKING CHANGE: $CBOR::Free::true and $CBOR::Free::false no longer exist. - Lighten memory usage significantly by deferring load of Types::Serialiser until it’s needed. - Tweak documentation a bit for accuracy. 0.10 14 Jun 2019 - Fix test & number stringification on 32-bit Perls (broken in 0.09). 0.09 14 Jun 2019 - Further optimizations. - Test fixes (obscure MSWin32?) - Always encode Inf, -Inf, and NaN to half-precision. - Fix off-by-one in error message when trying to decode -(~0). 0.08 10 May 2019 - Further decoding speed-ups. 0.07 9 May 2019 - Dramatic speed-up in both encode and decode. - Decode now accepts only integers or strings as map keys. 0.06 3 May 2019 - Relax Test::More version requirement a bit. - Add a few more tests. - Remove a stray script and some unused debugging logic. 0.05 2 May 2019 - POD touch-ups. - Remove heap allocation logic to avoid potential memory leaks. 0.04 28 Apr 2019 - Make decoder reject true, false, null, and undefined as map keys. 0.03 28 Apr 2019 - Fix segfault when true/false are encoded as CBOR map keys. - Reject negatives that exceed what a 64-bit signed integer can store. - Accommodate 32-bit perls as best as can happen. 0.02 27 Apr 2019 - Fix older Perls that don’t define true/false booleans in C. - Use memcmp rather than bcmp. 0.01 27 Apr 2019 - Initial release