Cpanel-JSON-XS
view release on metacpan or search on metacpan
- 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
interpretation of the spec. Use relaxed for backcompat if you want to
allow duplicate keys.
- De-fragilize t/96_mojo.t false test to "". It mostly is.
3.0234 2017-07-27 (rurban)
- Fix and unify utf8 handling with 5.6.2
and improve many utf8 tests. (pali #88)
- Add tests for boolean sv_yes and sv_no (pali #88)
- Check for correct module in %INC (Patrick Cronin #89)
- Fix appveyor smoke with latest strawberry, use $Config{make} (pali #91)
- Fix inf/nan for strawberry 5.26
3.0233 2017-05-01 (rurban)
- 5.6 test fixes, silence some cc warnings,
add coverage and release targets, fix appveyor
3.0232 2017-04-30 (rurban)
- Fix for MSVC 2015/14.0 and newer with changed nan/inf. #85
- Added appveyor CI
- Silence 32bit debugging format warning
- stabilize decode_hv hook (Coverity)
- ignore sv_utf8_downgrade errors (Coverity)
3.0231 2017-03-29 (rurban)
- Fix need() overallocation (#84 Matthew Horsfall) and missing
need() calls.
3.0230 2017-03-12 (rurban)
- Relax -Werror=declaration-after-statement for older gcc < 4.2
3.0229 2017-03-10 (rurban)
- fix minor gcc compilation warnings.
- Add some core compat. warnings for gcc/clang compat. compilers.
3.0228 2017-03-08 (rurban)
- fix decode_prefix offset when the string was re-allocated.
rather return the offset not the pointer to the old start. (#82 PaulGWebster)
3.0227 2017-02-13 (rurban)
- fix CLONE and END, broken with 3.0226 (#80 y).
These methods are usually called with arguments, which we ignore.
3.0226 2017-02-11 (rurban)
- relax longdouble Gconvert test on ppc64le and aarch64-linux-ld,
with apparent HW quadmath without USE_QUADMATH (older perls).
(detected by dgolden)
- Fixed 2 uninit warnings in the XS
3.0225 2016-11-23 (rurban)
- decode utf8 security fixes for perl 5.6.
added extra detection code for overflows and non-continuations.
This broke one 5.6 test with an overlong multi-byte character,
which previously worked accidently.
i.e. decode "\ud801\udc02\x{10204}"
- Added tests for ill-formed utf8 sequences from Encode.
3.0224 2016-11-20 (rurban)
- fixes for g++-6, stricter -fpermissive and -Wc++11-compat
3.0223 2016-11-16 (rurban)
- fixed decode bignum with a string prefix. #76, patch by GilmarSantosJr.
3.0222 2016-10-30 (rurban)
- enable decode_bom for multibyte encodings UTF16 and UTF32.
encode internally to UTF-8.
3.0221 2016-10-30 (rurban)
- fixed documentation of decode for unicode noncharacters.
added correct code to warn as in core.
no replacement, ignore warnings when in relaxed mode.
We used a wrong range also, but the wrong code from 3.02220
was never executed because of an coding error. #73, #74
- Fixed a perl 5.6 compilation regression from 3.0220.
- Improve decode_bom for multibyte encoding, but not yet enabled.
refcount error.
- Add 5.24 to travis tests
3.0220 2016-10-28 (rurban)
- add comprehensive JSON decode spectests from
http://seriot.ch/parsing_json.html. #72
- decode with BOM (UTF-8, UTF-16, or UTF-32). For now only UTF-8,
the others error.
- fixed detection of final \0 as illegal non-whitespace garbage. Fixes
spectest 'n_number_then_00'. #72
- changed decode of unicode noncharacters between U+FFFD and U+10FFFF
to the recommended U+FFFD REPLACEMENT CHARACTER, when not in the binary
or relaxed mode.
- fail decode of non-unicode raw characters above U+10FFFF
when not in relaxed mode.
3.0219 2016-10-26 (rurban)
- workaround mingw 4.0 modfl() bug [perl #125924]
3.0218 2016-10-13 (rurban)
- no changes
3.0217_06 2016-10-08 (rurban)
- fix DPPP_dummy_PL_parser warnings
3.0217_05 2016-10-07 (rurban)
- fix t/gh70-asan.t for older perls < 5.14
3.0217_04 2016-10-07 (rurban)
- fix and document wrong strEQc usage in new(). #70 (ilmari)
3.0217_03 2016-10-06 (rurban)
- expect_false() macro fix for MSVC
- fix av and hv length types: protect from security sensitive overflows,
add HVMAX_T and RITER_T
- add new "Hash key too large" error. perl5 silently truncates it, we
prefer errors, cperl 5.25.1 does error also.
- fix broken 5.8.1 SvPOK_only, i.e. assert_not_ROK
3.0217_02 2016-10-04 (rurban)
- Use faster strEQc macros from cperl with constant strings.
- prefer memEQ for systems without memcmp, to use bcmp there.
- add more expect_false() to inf/nan branches.
3.0217_01 2016-10-04 (rurban)
- Detect INF/NAN: ?/++/-?/--- on HP-UX (#56)
- New stringify_infnan(3) infnan_mode. Easy to detect platform
independent "inf", "-inf" or "nan" strings with double quotes,
with qnan, snan or negative nan unified to "nan".
3.0217 2016-06-18 (rurban)
- Improve test t/20_unknown.t for older JSON::PP (Christopher J. Madsen)
3.0216 2016-06-12 (rurban)
- Fix wrong test 117 for 5.10.0 (pghmcfc)
3.0215 2016-06-03 (rurban)
- Fix wrong test 117 (pghmcfc)
- TODO the fragile mojo boolean interop test.
- Improve error message with class based method calls,
when forgetting ->new. #66
3.0214 2016-06-02 (rurban)
- Fix a off-by-one IV_MIN -> NV overflow in decode_json. #67 (xdg)
- Avoid encode_sv SEGV with -Dusequadmath #62
Fix quadmath NV stringification.
3.0213_02 2016-04-13 (rurban)
- Remove author-only Pod::Usage dependency (karenetheridge).
3.0213_01 2016-04-11 (rurban)
- Preserve numbers as numbers, enforce an added .0 (dagolden).
Also note that 42+"bar" will result >=5.10 in numbers not integers,
=> 42.0
- 5.6 compilation fixes
- add yaml-tiny formats to cpanel_json_xs
3.0213 2016-03-02 (rurban)
- silence JSON::PP::Boolean redefine warnings #60
3.0212 2016-02-27 (rurban)
- merge with JSON-XS-3.02:
- docs: add some INTEROP, stricter nonref RFC 7159 and
TAGGED VALUE SYNTAX AND STANDARD JSON EN/DECODERS paragraphs
- use 7159 nonref detection from JSON-XS: json_nonref()
- add some SAVESTACK_POS calls
- add -f cbor decode option (via CBOR::XS) to cpanel_json_xs
- fixed many spelling errors in the new docs
- fixed errors with threaded perls
- improved code quality in new merged code and fixed
new warnings found with gcc-5
- add -f and -t yaml-xs and yaml-syck options to cpanel_json_xs
3.0211 2016-01-10 (rurban)
- relax Mojo interop test strictness ('' or 0 for false)
- t/z_pod.t as author test (Ether)
- t/z_kwalitee.t accepts now RELEASE_TESTING
- fix mingw64 inf/nan with uselongdouble, strawberry 5.22.1. #57
3.0210 2015-12-03 (rurban)
- improve cpanel_json_xs: more input and output formats
- improved various spellings and add test
- much faster t/99_binary.t test
3.0209 2015-12-03 (rurban)
- Fix nasty regression bug with allow_singlequote or relaxed,
hanging with single quotes in normal strings. #54
(reported by Quim Rovira)
3.0208 2015-12-02 (rurban)
- Fix regression for is_bool([]), with unblessed references. #53
(reported by Gregory Oschwald)
3.0207 2015-12-02 (rurban)
- Fix regression decoding big strings (>16384). #50 (reported by Dan Book)
- Ignore allow_barekey if we detect quotes. #51 (Fixed by Quim Rovira)
- Skip some unicode tests with 5.6
3.0206 2015-11-30 (rurban)
- Add support for escape_slash from JSON::PP. #47
- Map sort_by to canonical from JSON::PP. #47
reverse sort or sort by custom keys not yet possible/silently ignored.
- Add support for allow_singlequote from JSON::PP. #47
- Add support for allow_barekey from JSON::PP. #47
- Add support for allow_bignum from JSON::PP. #47
- relaxed uses now also allow_singlequote and allow_barekey.
- Fixed t/20_unknown.t: SKIP when JSON is not available. #45
- Fixed t/55_modifiable.t: Broaden the is check of true <5.12 #45
(both reported by Paul Howarth)
- Add t/zero-mojibake.t from JSON::PP testing all supported decoding
options: none, utf8, ascii, latin1, binary.
3.0205 2015-11-29 (rurban)
- Add t/20_unknown.t tests from JSON::PP, extended.
- Fix convert_blessed, disallow invalid JSON. #46 (reported by Dan Book)
convert_blessed returns now always a string, even for numbers.
- Fix encountered GLOB error message (still in JSON::XS, and JSON::PP took
over the wrong message also).
- Fixed regression of immediate raw values for null/true/false to be
modifiable again. #45. Broken with 3.0201 - 3.0204.
(reported by Thomas Sibley and Karen Etheridge)
This caused failues in Test::JSON and App::RecordStream.
3.0204 2015-11-26 (rurban)
- Fix is_bool with JSON::XS >3.0 interop. #44 (Graham Knop)
3.0203 2015-11-26 (rurban)
- New optional decode_json() argument to set allow_nonref as in
RFC 7159 and PHP. Before 3.02 JSON::XS and Cpanel::JSON::XS always
allowed nonref values for decode_json due to an interal bug.
3.0202 2015-11-26 (rurban)
- New feature: convert_blessed for encode.
Stringify overloaded perl objects and with allow_blessed even without
string overload (#37)
3.0201 2015-11-26 (rurban)
- Simplify handling of references, removing all the complicated
work-around for reblessing. Breaks overloaded values, but fixes
serialising refs to readonly values. #21 (Gianni Ceccarelli)
new test t/53_readonly.t
schmorp thinks that overloading is broken with this patch,
but reblessing and breaking readonly is worse.
- Stabilize Test::Kwalitee with missing XS dependencies
- suggests common::sense, not recommend. #36 (mst)
- Boolean interop: use only JSON::PP::Boolean. #40
Remove our own JSON::XS::Boolean, and solely use
JSON::PP::Boolean and accept Mojo::JSON::_Bool and
Types::Serialiser::Boolean, which is aliased to JSON::PP::Boolean.
JSON::YAJL::Parser just produces an unbless IV (0|1).
fix overload of our bools.
stringify true to "true", false to "0"
- accept Mojo::JSON::_Bool (#37)
Mojo does not store their booleans as JSON::PP::Boolean
as everybody else does.
- accept is_bool as method call also.
- implement native encode_sv of the internal sv_yes/sv_no values (#39)
when can we finally have utf-8 in pod???
- add ->incr_reset method.
2.2 2008-04-16 20:37:25
- lifted the log2 rounding restriction of max_depth and max_size.
- make booleans mutable by creating a copy instead of handing out
the same scalar (reported by pasha sadri).
- added support for incremental json parsing (still EXPERIMENTAL).
- implemented and added a json_xs command line utility that can convert
from/to a number of serialisation formats - tell me if you need more.
- implement allow_unknown/get_allow_unknown methods.
- fixed documentation of max_depth w.r.t. higher and equal.
- moved down =encoding directive a bit, too much breaks if it's the first
pod directive :/.
- removed documentation section on other modules, it became somewhat
outdated and is nowadays mostly of historical interest.
2.1 2008-03-19 23:23:18
- update documentation here and there: add a large section
about utf8/latin1/ascii flags, add a security consideration
and extend and clarify the JSON and YAML section.
- medium speed enhancements when encoding/decoding non-ascii chars.
- minor speedup in number encoding case.
- extend and clarify the section on incompatibilities
between YAML and JSON.
- switch to static inline from just inline when using gcc.
- add =encoding utf-8 to the manpage, now that perl 5.10 supports it.
- fix some issues with UV to JSON conversion of unknown impact.
- published the yahoo locals search result used in benchmarks as the
original url changes so comparison is impossible.
2.01 2007-12-05 11:40:28
- INCOMPATIBLE API CHANGE: to_json and from_json have been
renamed to encode_json/decode_json for JSON.pm compatibility.
The old functions croak and might be replaced by JSON.pm
comaptible versions in some later release.
2.0 2007-12-04 11:30:46
- this is supposed to be the first version of JSON::XS
compatible with version 2.0+ of the JSON module.
Using the JSON module as frontend to JSON::XS should be
as fast as using JSON::XS directly, so consider using it
instead.
- added get_* methods for all "simple" options.
- make JSON::XS subclassable.
1.53 2007-11-13 23:58:33
- minor doc clarifications.
- fixed many doc typos (patch by Thomas L. Shinnick).
1.52 2007-10-15 03:22:06
- remove =encoding pod directive again, it confuses too many pod
parsers :/.
1.51 2007-10-13 03:55:56
- encode empty arrays/hashes in a compact way when pretty is enabled.
- apparently JSON::XS was used to find some bugs in the
JSON_checker testsuite, so add (the corrected) JSON_checker tests to
the testsuite.
- quite a bit of doc updates/extension.
- require 5.8.2, as this seems to be the first unicode-stable version.
1.5 2007-08-28 04:05:38
- add support for tied hashes, based on ideas and testcase by
Marcus Holland-Moritz.
- implemented relaxed parsing mode where some extensions are being
accepted. generation is still JSON-only.
1.44 2007-08-22 01:02:44
- very experimental process-emulation support, slowing everything down.
the horribly broken perl threads are still not supported - YMMV.
1.43 2007-07-26 13:26:37
- convert big json numbers exclusively consisting of digits to NV
only when there is no loss of precision, otherwise to string.
1.42 2007-07-24 00:51:18
- fix a crash caused by not handling missing array elements
(report and testcase by Jay Kuri).
1.41 2007-07-10 18:21:44
- fix compilation with NDEBUG (assert side-effect),
affects convert_blessed only.
- fix a bug in decode filters calling ENTER; SAVETMPS;
one time too often.
- catch a typical error in TO_JSON methods.
- antique-ised XS.xs again to work with outdated
C compilers (windows...).
1.4 2007-07-02 10:06:30
- add convert_blessed setting.
- encode did not catch all blessed objects, encoding their
contents in most cases. This has been fixed by introducing
the allow_blessed setting.
- added filter_json_object and filter_json_single_key_object
settings that specify a callback to be called when
all/specific json objects are encountered.
- assume that most object keys are simple ascii words and
optimise this case, penalising the general case. This can
speed up decoding by 30% in typical cases and gives
a smaller and faster perl hash.
- implemented simpleminded, optional resource size checking
in decode_json.
- remove objToJson/jsonToObj aliases, as the next version
of JSON will not have them either.
- bit the bullet and converted the very simple json object
into a more complex one.
- work around a bug where perl wrongly claims an integer
is not an integer.
- unbundle JSON::XS::Boolean into own pm file so Storable
and similar modules can resolve the overloading when thawing.
1.3 2007-06-24 01:55:02
- make JSON::XS::true and false special overloaded objects
and return those instead of 1 and 0 for those json atoms
(JSON::PP compatibility is NOT achieved yet).
- add JSON::XS::is_bool predicate to test for those special
values.
- add a reference to
http://jpsykes.com/47/practical-csrf-and-json-security.
- removed require 5.8.8 again, it is just not very expert-friendly.
Also try to be more compatible with slightly older versions,
which are not recommended (because they are buggy).
1.24 2007-06-11 05:40:49
- added informative section on JSON-as-YAML.
- get rid of some c99-isms again.
- localise dec->cur in decode_str, speeding up
string decoding considerably (>15% on my amd64 + gcc).
- increased SHORT_STRING_LEN to 16kb: stack space is
usually plenty, and this actually saves memory
when !shrinking as short strings will fit perfectly.
1.23 2007-06-06 20:13:06
- greatly improved small integer encoding and decoding speed.
- implement a number of µ-optimisations.
- updated benchmarks.
1.22 2007-05-24 00:07:25
- require 5.8.8 explicitly as older perls do not seem to offer
the required macros.
- possibly made it compile on so-called C compilers by microsoft.
1.21 2007-05-09 18:40:32
- character offset reported for trailing garbage was random.
1.2 2007-05-09 18:35:01
- decode did not work with magical scalars (doh!).
- added latin1 flag to produce JSON texts in the latin1 subset
of unicode.
- flag trailing garbage as error.
- new decode_prefix method that returns the number
of characters consumed by a decode.
- max octets/char in perls UTF-X is actually 13, not 11,
as pointed out by Glenn Linderman.
- fixed typoe reported by YAMASHINA Hio.
1.11 2007-04-09 07:05:49
- properly 0-terminate sv's returned by encode to help
C libraries that expect that 0 to be there.
- partially "port" JSON from C to microsofts fucking broken
pseudo-C. They should be burned to the ground for pissing
on standards. And I should be stoned for even trying to
support this filthy excuse for a c compiler.
1.1 2007-04-04 01:45:00
- clarify documentation (pointed out by Quinn Weaver).
- decode_utf8 sometimes did not correctly flag errors,
leading to segfaults.
- further reduced default nesting depth to 512 due to the test
failure by that anonymous "chris" whose e-mail address seems
to be impossible to get. Tests on other freebsd systems indicate
that this is likely a problem in his/her configuration and not this
module.
- renamed json => JSON in error messages.
- corrected the character offset in some error messages.
1.01 2007-03-31 16:15:40
- do not segfault when from_json/decode gets passed
a non-string object (reported by Florian Ragwitz).
This has no effect on normal operation.
1.0 2007-03-29 04:43:34
- the long awaited (by me) 1.0 version.
- add \0 (JSON::XS::false) and \1 (JSON::XS::true) mappings to JSON
true and false.
- add some more notes to shrink, as suggested by Alex Efros.
- improve testsuite.
- halve the default nesting depth limit, to hopefully make it
work on Freebsd (unfortunately, the cpan tester did not
send me his report, so I cannot ask about the stack limit on fbsd).
0.8 2007-03-26 00:10:48
- fix a memleak when decoding hashes.
- export jsonToBj and objToJson as aliases
to to_json and from_json, to reduce incompatibilities
between JSON/JSON::PC and JSON::XS. (experimental).
- implement a maximum nesting depth for both en- and de-coding.
- added a security considerations sections.
0.7 2007-03-25 01:46:30
- code cleanup.
- fix a memory overflow bug when indenting.
- pretty-printing now up to 15% faster.
- improve decoding speed of strings by
up to 50% by specialcasing short strings.
- further decoding speedups for strings using
lots of \u escapes.
- improve utf8 decoding speed for U+80 .. U+7FF.
0.5 2007-03-24 20:41:51
- added the UTF-16 encoding example hinted at in previous
versions.
- minor documentation fixes.
- fix a bug in and optimise canonicalising fastpath
(reported by Craig Manley).
- remove a subtest that breaks with bleadperl (reported
by Andreas König).
0.31 2007-03-24 02:14:34
- documentation updates.
- do some casting to hopefully fix Andreas' problem.
- nuke bogus json rpc stuff.
0.3 2007-03-23 19:33:21
- remove spurious PApp::Util reference (John McNamara).
- adapted lots of tests from other json modules
(idea by Chris Carline).
- documented mapping from json to perl and vice versa.
- improved the documentation by adding more examples.
- added short escaping forms, reducing the created
json texts a bit.
- added shrink flag.
- when flag methods are called without enable argument
they will by default enable their flag.
- considerably improved string encoding speed (at least
with gcc 4).
- added a test that covers lots of different characters.
- clarified some error messages.
- error messages now use correct character offset
with F_UTF8.
- improve the "no bytes" and "no warnings" hacks in
case the called functions do... stuff.
- croak when encoding to ascii and an out-of-range
(non-unicode) codepoint is encountered.
0.2 2007-03-23 00:23:34
- the "could not sleep without debugging release".
it should basically work now, with many bugs as
no production tests have been run yet.
- added more testcases.
- the expected shitload of bugfixes.
- handle utf8 flag correctly in decode.
- fix segfault in decoder.
- utf8n_to_uvuni sets retlen to -1, but retlen is an
unsigned types (argh).
- fix decoding of utf-8 strings.
- improved error diagnostics.
- fix decoding of 'null'.
- fix parsing of empty array/hashes
- silence warnings when we prepare the croak message.
0.1 2007-03-22 22:13:43
- first release, very untested, basically just to claim
the namespace.
0.01 2007-03-22 06:08:12
- original version; cloned from Convert-Scalar
( run in 0.822 second using v1.01-cache-2.11-cpan-2398b32b56e )