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