Cpanel-JSON-XS

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

        - 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)

Changes  view on Meta::CPAN

          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.872 second using v1.01-cache-2.11-cpan-df04353d9ac )