Cpanel-JSON-XS
view release on metacpan or search on metacpan
feature. (GH #168)
- TODO broken JSON::PP::Boolean versions 2.9x - 4.0 with threads::shared in
125_shared_boolean.t
4.20 2020-08-12 (rurban)
- New feature: sort tied hashes with canonical. (GH #167)
- Fix encode of threads::shared boolean (#166 Sam Bingner).
This was broken with 4.00.
- Fix some stringify overload cases via convert_blessed (GH #105)
- Fix a compat case with JSON::XS, when convert_blessed is set, but
allow_blessed not. (GH #105)
- Improve blessed and stringify tests
- Work on better inf/nan detection on AIX (#165 Peter Heuchert)
- Fix documentation for booleans and their types (#162 by Karen Etheridge)
4.19 2020-02-06 (rurban)
- Fix typed decode memory leak (#160 by Pali).
4.18 2019-12-13 (rurban)
- Add new method ->type_all_string (#156 by Pali).
When type_all_string is set then encode method produce stable deterministic
string types in result JSON.
This can be an alternative to Cpanel::JSON::XS::Type when having
deterministic output is required but string JSON types are enough for any
output.
- Move SvGETMAGIC() from encode_av() and encode_hv() to encode_sv()
(#156 by Pali)
- Add Math::BigInt and Math::BigFloat as recommended dependences
(#157 by Pali and Grinnz)
4.17 2019-11-04 (rurban)
- Add Changes tests and fixups (see #155)
4.16 2019-11-04 (rurban)
- Use Perl_strtod instead of self-made atof (via pow), to
minimize differences from core string-to-float conversions.
(#154). Fixes float representation regressions (in the 1e-6
to 1e-16 range) since 5.22.
4.15 2019-10-21 (rurban)
- Fix more tests for nvtype long double
4.14 2019-10-15 (rurban)
- Fix tests for nvtype long double (#153)
- Fix PREREQ's. E.g. CentOS 7 has not Test::More anymore. (#152 by Pali)
4.13 2019-10-14 (rurban)
- For JSON_TYPE_INT and JSON_TYPE_FLOAT allow to encode numeric values
above 2^64 in PV slot via Math::BigInt/Float (#145, #148, #149 by Pali)
- For JSON_TYPE_INT and JSON_TYPE_FLOAT encoder allow to pass Math::BigInt
and Math::BigFloat objects with allow_bignum. (#147 by Pali)
- Fix encoding floating point values above 2^64 in PV slot to JSON_TYPE_INT
(#148, #150 by Pali)
- Do not allow serializing objects when convert_blessed is not enabled.
(#146 by Pali)
4.12 2019-06-11 (rurban)
- Make encoder independent on Math::BigInt version (#140 by Pali)
- Rethrow error from eval_sv and eval_pv() (#138, #139 by Pali),
e.g. when Math::BigInt/BigFloat fails.
- Fix encoding Inf and NaN from PV and NV slots to JSON_TYPE_INT
(#137 by Pali)
- Fix memory corruption in sv_to_ivuv() function (#136 by Pali)
- Add new method ->require_types (#135 by Pali)
- Fix typed json encoder conversion from scalar's PV and NV slot to
JSON_TYPE_INT (#133, #134 by Pali)
- Fix inconsistency with warnings in typed json encoder (#131 by Pali)
- Fix Perl 5.8.0 support (#130 by Pali)
- Fixed minor pod typo (#129 by sheeit)
- Document invalid recursive callbacks or overloads (#128)
4.11 2019-03-26 (rurban)
- Fix unicode strings with BOM corrupt ->utf8 state (#125)
The BOM encoding effects only its very own decode call,
not its object.
4.10 2019-03-18 (rurban)
- Fix incr_text refcounts (#123)
- Add incr_rest testcase (#123)
- Fix encode_stringify string-overload refcnt problem (#124)
"Attempt to free unreferenced scalar" with convert_blessed and overload.
4.09 2019-02-15 (rurban)
- Add seperate allow_dupkeys property, in relaxed (#122)
- Fixed allow_dupkeys for the XS slow path
- Silence 2 -Wunused-value warnings
- Fix ->unblessed_bool to produce modifiable perl structures (PR #121 by Pali)
4.08 2018-11-28 (rurban)
- Add unblessed_bool property (PR #118 by Pali)
4.07 2018-11-02 (rurban)
- Silence Gconvert -Wunused-result.
gcvt returns a string, sprintf int, so suppress the retval
4.06 2018-08-22 (rurban)
- Fix overloaded eq/ne comparisons (GH #116 by demerphq, GH #117 by Graham Knopp):
detect strings, protect from endless recursion. false is now ne "True".
clarify eq/ne rules in the docs.
4.05 2018-08-19 (rurban)
- Set decoded type (PR #115 by Pali)
- Add json_type_weaken (PR #114 by Pali)
- Fix tests for 5.6 (rurban, pali)
4.04 2018-06-22 (rurban)
- Fix bignum NaN/inf handling (#78 reported by Slaven Rezic)
- Move author tests to xt/ as suggested in #106, added a make xtest target.
Fixes a test fail with ASAN.
4.03 2018-06-21 (rurban)
- Add sereal cpanel_json_xs type (#110 James Rouzier)
- Fix bencode/bdecode methods in cpanel_json_xs (#111 Fulvio Scapin)
- Overload ne operator for JSON::PP::Boolean (#107 tevfik1903)
- Add a missing semicolon to a documentation example (#104 E. Choroba)
4.02 2018-02-27 (rurban)
- Add encoder indent_length method (#103 rouzier), previously
hard-coded to 3.
4.01 2018-02-03 (rurban)
- Fix centos7 locale crash (#101 McA), fix required for all
threaded perl's < 5.22 with glibc.
4.00 2018-02-02 (rurban,pali)
- No changes
3.99_03 2018-01-30 (rurban,pali)
- Fix uselocale() code.
- Probe for uselocale and xlocale.h with <5.22 threaded.
3.99_02 2018-01-30 (rurban,pali)
- Avoid setlocale race in threads with non-C locales, where the threads differ
in the LC_NUMERIC locale. (#99 pali)
3.99_01 2018-01-30 (rurban,pali)
- Added Cpanel::JSON::XS::Type as 2nd optional encode argument. (#94 pali)
- Removed calling get magic hooks twice in encode.
3.0240 2017-12-17 (rurban)
- Simplify >allow_singlequote check, coverity cid #165321
- Deprecate UTF-16 or UTF-32 BOM's: RFC 8259.
3.0239 2017-08-28 (rurban)
- Fix compilation under windows. (#98 mauke)
3.0238 2017-08-25 (rurban)
- Make printing of numbers on perl's earlier than 5.22 locale
insensitive, to produce a dot as decimal sep. (#96)
3.0237 2017-07-28 (rurban)
- relax inf/nan tests as in t/op/infnan.t for windows.
we cannot know if msvcrt.dll or the new ucrt.dll is used.
try a list of valid values.
3.0236 2017-07-27 (rurban)
- Stringify true again as "1", not as "true" due to popular demand.
(haarg #87)
3.0235 2017-07-27 (rurban)
- Disallow duplicate keys by default, only allow them in relaxed
mode. (#75)
Analog to invalid unicode, which does error by default.
RFC 7159 section 4 says that "The names within an object should be unique."
So it's either i_ (undefined) or n_ (errors).
See http://seriot.ch/parsing_json.php#24
This is different to the other JSON modules, which do have a different
( run in 0.688 second using v1.01-cache-2.11-cpan-39bf76dae61 )