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