Blame Changes

Packit Service 35af39
Revision history for Perl extension JSON::XS
Packit Service 35af39
Packit Service 35af39
TODO: maybe detetc and croak on more invalid inputs (e.g. +-inf/nan)
Packit Service 35af39
TODO: maybe avoid the reblessing and better support readonly objects.
Packit Service 35af39
TODO: http://stevehanov.ca/blog/index.php?id=104 compression
Packit Service 35af39
TODO: how to cope with tagged values and standard json decoders
Packit Service 35af39
TODO: investigate magic (Eric Brine)
Packit Service 35af39
TODO: rfc7464
Packit Service 35af39
TODO: Victor Efimov
Packit Service 35af39
TODO: move json_xs to types::serialiser
Packit Service 35af39
Packit Service 35af39
3.04 Thu Aug 17 04:30:47 CEST 2017
Packit Service 35af39
	- change exponential realloc algorithm on encoding and string decoding to be
Packit Service 35af39
          really exponential (this helps slow/debugging allocators such as libumem)
Packit Service 35af39
          (reported by Matthew Horsfall).
Packit Service 35af39
        - string encoding would needlessly overallocate output space
Packit Service 35af39
          (testcase by Matthew Horsfall).
Packit Service 35af39
        - be very paranoid about extending buffer lengths and croak if buffers get too large,
Packit Service 35af39
          which might (or might not) improve security.
Packit Service 35af39
	- add cbor-packed type to json_xs.
Packit Service 35af39
        - switch from YAML to YAML::XS in json_xs, as YAML is way too buggy and outdated.
Packit Service 35af39
Packit Service 35af39
3.03 Wed Nov 16 20:20:59 CET 2016
Packit Service 35af39
	- fix a bug introduced by a perl bug workaround that would cause
Packit Service 35af39
          incremental parsing to fail with a sv_chop panic.
Packit Service 35af39
	- json_xs: toformat failure error message fixed.
Packit Service 35af39
        - json_xs: allow cyclic data structures in CBOR.
Packit Service 35af39
Packit Service 35af39
3.02 Fri Feb 26 22:45:20 CET 2016
Packit Service 35af39
	- allow_nonref now affects booleans (\1, $Types::Serialiser::Boolean)
Packit Service 35af39
          as well (reported by Alex Efros).
Packit Service 35af39
	- allow literal tabs in strings in relaxed mode (patch by
Packit Service 35af39
          lubo.rintel@gooddata.com).
Packit Service 35af39
	- support "cbor" format in json_xs tool.
Packit Service 35af39
	- support (and fix) calling encode and decode in list context
Packit Service 35af39
          (reported by Вадим Власов).
Packit Service 35af39
        - work around a bug in older perls crashing when presented
Packit Service 35af39
          with shared hash keys (Reini Urban).
Packit Service 35af39
        - use stability canary.
Packit Service 35af39
Packit Service 35af39
3.01 Tue Oct 29 16:55:15 CET 2013
Packit Service 35af39
	- backport to perls < 5.18 (reported by Paul Howarth).
Packit Service 35af39
Packit Service 35af39
3.0  Tue Oct 29 01:35:37 CET 2013
Packit Service 35af39
        - implemented an object tagging extension (using the
Packit Service 35af39
          Types::Serialiser serialisation protocol).
Packit Service 35af39
        - reworked the documentation regarding object serialisation,
Packit Service 35af39
          add a new OBJECT SERIALISATION section that explains th
Packit Service 35af39
          whole process.
Packit Service 35af39
        - new setting: allow_tags.
Packit Service 35af39
	- switch to Types::Serialiser booleans.
Packit Service 35af39
	- remove to_json/from_json.
Packit Service 35af39
        - other minor improvements to the documentation.
Packit Service 35af39
Packit Service 35af39
2.34 Thu May 23 11:30:34 CEST 2013
Packit Service 35af39
	- work around bugs in perl 5.18 breaking more than 100
Packit Service 35af39
          widely used modules, without a fix in sight because
Packit Service 35af39
          p5pers don't care about CPAN anymore.
Packit Service 35af39
	- when canonicalising, only allocate up to 64 hash key
Packit Service 35af39
          pointers on the stack. for larger hashes, use the heap,
Packit Service 35af39
          to avoid using too much stackspace.
Packit Service 35af39
        - discuss the problem with setlocale (reported by a few victims).
Packit Service 35af39
Packit Service 35af39
2.33 Wed Aug  1 21:03:52 CEST 2012
Packit Service 35af39
	- internal encode/decode XS wrappers did not expect stack
Packit Service 35af39
          moves caused by callbacks (analyzed and testcase by Jesse Luehrs).
Packit Service 35af39
	- add bencode as to/from option in bin/json_xs.
Packit Service 35af39
        - add -e option to json_xs, and none and string in/out formats.
Packit Service 35af39
Packit Service 35af39
2.32 Thu Aug 11 19:06:38 CEST 2011
Packit Service 35af39
	- fix a bug in the initial whitespace accumulation.
Packit Service 35af39
Packit Service 35af39
2.31 Wed Jul 27 17:53:05 CEST 2011
Packit Service 35af39
	- don't accumulate initial whitespace in the incremental buffer
Packit Service 35af39
          (this can be useful to allow whitespace-keepalive on a tcp
Packit Service 35af39
          connection without triggering the max_size limit).
Packit Service 35af39
	- properly croak on some invalid inputs that are not strings
Packit Service 35af39
          (e.g. undef) when trying to decode a json text (reported
Packit Service 35af39
          and analyzed by Goro Fuji).
Packit Service 35af39
Packit Service 35af39
2.3   Wed Aug 18 01:26:47 CEST 2010
Packit Service 35af39
	- make sure decoder doesn't change the decoding in the incremental
Packit Service 35af39
          parser (testcase provided by Hendrik Schumacher).
Packit Service 35af39
	- applied patch by DaTa for Data::Dumper support in json_xs.
Packit Service 35af39
        - added -t dump support to json_xs, using Data::Dump.
Packit Service 35af39
        - added -f eval support to json_xs.
Packit Service 35af39
Packit Service 35af39
2.29  Wed Mar 17 02:39:12 CET 2010
Packit Service 35af39
	- fix a memory leak when callbacks set using filter_json_object
Packit Service 35af39
          or filter_json_single_key_object were called (great testcase
Packit Service 35af39
          by Eric Wilhelm).
Packit Service 35af39
Packit Service 35af39
2.28  Thu Mar 11 20:30:46 CET 2010
Packit Service 35af39
	- implement our own atof function - perl's can be orders of
Packit Service 35af39
          magnitudes slower than even the system one. on the positive
Packit Service 35af39
          side, ours seems to be more exact in general than perl's.
Packit Service 35af39
          (testcase provided by Tim Meadowcroft).
Packit Service 35af39
        - clarify floating point conversion issues a bit.
Packit Service 35af39
	- update jpsykes csrf article url.
Packit Service 35af39
        - updated benchmark section - JSON::PP became much faster!
Packit Service 35af39
Packit Service 35af39
2.27  Thu Jan  7 07:35:08 CET 2010
Packit Service 35af39
	- support relaxed option inside the incremental parser
Packit Service 35af39
          (testcase provided by IKEGAMI via Makamaka).
Packit Service 35af39
Packit Service 35af39
2.26  Sat Oct 10 03:26:19 CEST 2009
Packit Service 35af39
	- big integers could become truncated (based on patch
Packit Service 35af39
          by Strobl Anton).
Packit Service 35af39
	- output format change: indent now adds a final newline, which is
Packit Service 35af39
          more expected and more true to the documentation.
Packit Service 35af39
Packit Service 35af39
2.25  Sat Aug  8 12:04:41 CEST 2009
Packit Service 35af39
	- the perl debugger completely breaks lvalue subs - try to work
Packit Service 35af39
          around the issue.
Packit Service 35af39
	- ignore RMAGICAL hashes w.r.t. CANONICAL.
Packit Service 35af39
	- try to work around a possible char signedness issue on aix.
Packit Service 35af39
        - require common sense.
Packit Service 35af39
Packit Service 35af39
2.24  Sat May 30 08:25:45 CEST 2009
Packit Service 35af39
	- the incremental parser did not update its parse offset
Packit Service 35af39
          pointer correctly when parsing utf8-strings (nicely
Packit Service 35af39
          debugged by Martin Evans).
Packit Service 35af39
	- appending a non-utf8-string to the incremental parser
Packit Service 35af39
          in utf8 mode failed to upgrade the string.
Packit Service 35af39
        - wording of parse error messages has been improved.
Packit Service 35af39
Packit Service 35af39
2.232 Sun Feb 22 11:12:25 CET 2009
Packit Service 35af39
	- use an exponential algorithm to extend strings, to
Packit Service 35af39
          help platforms with bad or abysmal==windows memory
Packit Service 35af39
          allocater performance, at the expense of some memory
Packit Service 35af39
          wastage (use shrink to recover this extra memory).
Packit Service 35af39
          (nicely analysed by Dmitry Karasik).
Packit Service 35af39
Packit Service 35af39
2.2311 Thu Feb 19 02:12:54 CET 2009
Packit Service 35af39
        - add a section "JSON and ECMAscript" to explain some
Packit Service 35af39
          incompatibilities between the two (problem was noted by
Packit Service 35af39
          various people).
Packit Service 35af39
	- add t/20_faihu.t.
Packit Service 35af39
Packit Service 35af39
2.231 Thu Nov 20 04:59:08 CET 2008
Packit Service 35af39
	- work around 5.10.0 magic bugs where manipulating magic values
Packit Service 35af39
          (such as $1) would permanently damage them as perl would
Packit Service 35af39
          ignore the magicalness, by making a full copy of the string,
Packit Service 35af39
          reported by Dmitry Karasik.
Packit Service 35af39
        - work around spurious warnings under older perl 5.8's.
Packit Service 35af39
Packit Service 35af39
2.23 Mon Sep 29 05:08:29 CEST 2008
Packit Service 35af39
	- fix a compilation problem when perl is not using char * as, well,
Packit Service 35af39
          char *.
Packit Service 35af39
	- use PL_hexdigit in favour of rolling our own.
Packit Service 35af39
Packit Service 35af39
2.2222 Sun Jul 20 18:49:00 CEST 2008
Packit Service 35af39
	- same game again, broken 5.10 finds yet another assertion
Packit Service 35af39
          failure, and the workaround causes additional runtime warnings.
Packit Service 35af39
          Work around the next assertion AND the warning. 5.10 seriously
Packit Service 35af39
          needs to adjust it's attitude against working code.
Packit Service 35af39
Packit Service 35af39
2.222 Sat Jul 19 06:15:34 CEST 2008
Packit Service 35af39
	- you work around one -DDEBUGGING assertion bug in perl 5.10
Packit Service 35af39
          just to hit the next one. work around this one, too.
Packit Service 35af39
Packit Service 35af39
2.22 Tue Jul 15 13:26:51 CEST 2008
Packit Service 35af39
	- allow higher nesting levels in incremental parser.
Packit Service 35af39
        - error out earlier in some cases in the incremental parser
Packit Service 35af39
          (as suggested by Yuval Kogman).
Packit Service 35af39
        - improve incr-parser test (Yuval Kogman).
Packit Service 35af39
Packit Service 35af39
2.21 Tue Jun  3 08:43:23 CEST 2008
Packit Service 35af39
	- (hopefully) work around a perl 5.10 bug with -DDEBUGGING.
Packit Service 35af39
	- remove the experimental status of the incremental parser interface.
Packit Service 35af39
	- move =encoding around again, to avoid bugs with search.cpan.org.
Packit Service 35af39
          when can we finally have utf-8 in pod???
Packit Service 35af39
        - add ->incr_reset method.
Packit Service 35af39
Packit Service 35af39
2.2  Wed Apr 16 20:37:25 CEST 2008
Packit Service 35af39
	- lifted the log2 rounding restriction of max_depth and max_size.
Packit Service 35af39
	- make booleans mutable by creating a copy instead of handing out
Packit Service 35af39
          the same scalar (reported by pasha sadri).
Packit Service 35af39
	- added support for incremental json parsing (still EXPERIMENTAL).
Packit Service 35af39
	- implemented and added a json_xs command line utility that can convert
Packit Service 35af39
          from/to a number of serialisation formats - tell me if you need more.
Packit Service 35af39
        - implement allow_unknown/get_allow_unknown methods.
Packit Service 35af39
        - fixed documentation of max_depth w.r.t. higher and equal.
Packit Service 35af39
	- moved down =encoding directive a bit, too much breaks if it's the first
Packit Service 35af39
          pod directive :/.
Packit Service 35af39
        - removed documentation section on other modules, it became somewhat
Packit Service 35af39
          outdated and is nowadays mostly of historical interest.
Packit Service 35af39
Packit Service 35af39
2.1  Wed Mar 19 23:23:18 CET 2008
Packit Service 35af39
        - update documentation here and there: add a large section
Packit Service 35af39
          about utf8/latin1/ascii flags, add a security consideration
Packit Service 35af39
          and extend and clarify the JSON and YAML section.
Packit Service 35af39
        - medium speed enhancements when encoding/decoding non-ascii chars.
Packit Service 35af39
        - minor speedup in number encoding case.
Packit Service 35af39
	- extend and clarify the section on incompatibilities
Packit Service 35af39
          between YAML and JSON.
Packit Service 35af39
        - switch to static inline from just inline when using gcc.
Packit Service 35af39
        - add =encoding utf-8 to the manpage, now that perl 5.10 supports it.
Packit Service 35af39
        - fix some issues with UV to JSON conversion of unknown impact.
Packit Service 35af39
        - published the yahoo locals search result used in benchmarks as the
Packit Service 35af39
          original url changes so comparison is impossible.
Packit Service 35af39
Packit Service 35af39
2.01 Wed Dec  5 11:40:28 CET 2007
Packit Service 35af39
	- INCOMPATIBLE API CHANGE: to_json and from_json have been
Packit Service 35af39
          renamed to encode_json/decode_json for JSON.pm compatibility.
Packit Service 35af39
          The old functions croak and might be replaced by JSON.pm
Packit Service 35af39
          comaptible versions in some later release.
Packit Service 35af39
Packit Service 35af39
2.0  Tue Dec  4 11:30:46 CET 2007
Packit Service 35af39
	- this is supposed to be the first version of JSON::XS
Packit Service 35af39
          compatible with version 2.0+ of the JSON module.
Packit Service 35af39
          Using the JSON module as frontend to JSON::XS should be
Packit Service 35af39
          as fast as using JSON::XS directly, so consider using it
Packit Service 35af39
          instead.
Packit Service 35af39
	- added get_* methods for all "simple" options.
Packit Service 35af39
        - make JSON::XS subclassable.
Packit Service 35af39
Packit Service 35af39
1.53 Tue Nov 13 23:58:33 CET 2007
Packit Service 35af39
	- minor doc clarifications.
Packit Service 35af39
        - fixed many doc typos (patch by Thomas L. Shinnick).
Packit Service 35af39
Packit Service 35af39
1.52 Mon Oct 15 03:22:06 CEST 2007
Packit Service 35af39
	- remove =encoding pod directive again, it confuses too many pod
Packit Service 35af39
          parsers :/.
Packit Service 35af39
Packit Service 35af39
1.51 Sat Oct 13 03:55:56 CEST 2007
Packit Service 35af39
	- encode empty arrays/hashes in a compact way when pretty is enabled.
Packit Service 35af39
	- apparently JSON::XS was used to find some bugs in the
Packit Service 35af39
          JSON_checker testsuite, so add (the corrected) JSON_checker tests to
Packit Service 35af39
          the testsuite.
Packit Service 35af39
        - quite a bit of doc updates/extension.
Packit Service 35af39
        - require 5.8.2, as this seems to be the first unicode-stable version.
Packit Service 35af39
Packit Service 35af39
1.5  Tue Aug 28 04:05:38 CEST 2007
Packit Service 35af39
	- add support for tied hashes, based on ideas and testcase by
Packit Service 35af39
          Marcus Holland-Moritz.
Packit Service 35af39
        - implemented relaxed parsing mode where some extensions are being
Packit Service 35af39
          accepted. generation is still JSON-only.
Packit Service 35af39
Packit Service 35af39
1.44 Wed Aug 22 01:02:44 CEST 2007
Packit Service 35af39
	- very experimental process-emulation support, slowing everything down.
Packit Service 35af39
          the horribly broken perl threads are still not supported - YMMV.
Packit Service 35af39
Packit Service 35af39
1.43 Thu Jul 26 13:26:37 CEST 2007
Packit Service 35af39
	- convert big json numbers exclusively consisting of digits to NV
Packit Service 35af39
          only when there is no loss of precision, otherwise to string.
Packit Service 35af39
Packit Service 35af39
1.42 Tue Jul 24 00:51:18 CEST 2007
Packit Service 35af39
	- fix a crash caused by not handling missing array elements
Packit Service 35af39
          (report and testcase by Jay Kuri).
Packit Service 35af39
Packit Service 35af39
1.41 Tue Jul 10 18:21:44 CEST 2007
Packit Service 35af39
	- fix compilation with NDEBUG (assert side-effect),
Packit Service 35af39
          affects convert_blessed only.
Packit Service 35af39
	- fix a bug in decode filters calling ENTER; SAVETMPS;
Packit Service 35af39
          one time too often.
Packit Service 35af39
        - catch a typical error in TO_JSON methods.
Packit Service 35af39
	- antique-ised XS.xs again to work with outdated
Packit Service 35af39
          C compilers (windows...).
Packit Service 35af39
Packit Service 35af39
1.4  Mon Jul  2 10:06:30 CEST 2007
Packit Service 35af39
	- add convert_blessed setting.
Packit Service 35af39
        - encode did not catch all blessed objects, encoding their
Packit Service 35af39
          contents in most cases. This has been fixed by introducing
Packit Service 35af39
          the allow_blessed setting.
Packit Service 35af39
        - added filter_json_object and filter_json_single_key_object
Packit Service 35af39
          settings that specify a callback to be called when
Packit Service 35af39
          all/specific json objects are encountered.
Packit Service 35af39
        - assume that most object keys are simple ascii words and
Packit Service 35af39
          optimise this case, penalising the general case. This can
Packit Service 35af39
          speed up decoding by 30% in typical cases and gives
Packit Service 35af39
          a smaller and faster perl hash.
Packit Service 35af39
        - implemented simpleminded, optional resource size checking
Packit Service 35af39
          in decode_json.
Packit Service 35af39
        - remove objToJson/jsonToObj aliases, as the next version
Packit Service 35af39
          of JSON will not have them either.
Packit Service 35af39
        - bit the bullet and converted the very simple json object
Packit Service 35af39
          into a more complex one.
Packit Service 35af39
        - work around a bug where perl wrongly claims an integer
Packit Service 35af39
          is not an integer.
Packit Service 35af39
        - unbundle JSON::XS::Boolean into own pm file so Storable
Packit Service 35af39
          and similar modules can resolve the overloading when thawing.
Packit Service 35af39
Packit Service 35af39
1.3  Sun Jun 24 01:55:02 CEST 2007
Packit Service 35af39
        - make JSON::XS::true and false special overloaded objects
Packit Service 35af39
          and return those instead of 1 and 0 for those json atoms
Packit Service 35af39
          (JSON::PP compatibility is NOT achieved yet).
Packit Service 35af39
        - add JSON::XS::is_bool predicate to test for those special
Packit Service 35af39
          values.
Packit Service 35af39
	- add a reference to
Packit Service 35af39
          http://jpsykes.com/47/practical-csrf-and-json-security.
Packit Service 35af39
        - removed require 5.8.8 again, it is just not very expert-friendly.
Packit Service 35af39
          Also try to be more compatible with slightly older versions,
Packit Service 35af39
          which are not recommended (because they are buggy).
Packit Service 35af39
Packit Service 35af39
1.24 Mon Jun 11 05:40:49 CEST 2007
Packit Service 35af39
	- added informative section on JSON-as-YAML.
Packit Service 35af39
        - get rid of some c99-isms again.
Packit Service 35af39
        - localise dec->cur in decode_str, speeding up
Packit Service 35af39
          string decoding considerably (>15% on my amd64 + gcc).
Packit Service 35af39
        - increased SHORT_STRING_LEN to 16kb: stack space is
Packit Service 35af39
          usually plenty, and this actually saves memory
Packit Service 35af39
          when !shrinking as short strings will fit perfectly.
Packit Service 35af39
Packit Service 35af39
1.23 Wed Jun  6 20:13:06 CEST 2007
Packit Service 35af39
	- greatly improved small integer encoding and decoding speed.
Packit Service 35af39
	- implement a number of µ-optimisations.
Packit Service 35af39
        - updated benchmarks.
Packit Service 35af39
Packit Service 35af39
1.22 Thu May 24 00:07:25 CEST 2007
Packit Service 35af39
	- require 5.8.8 explicitly as older perls do not seem to offer
Packit Service 35af39
          the required macros.
Packit Service 35af39
        - possibly made it compile on so-called C compilers by microsoft.
Packit Service 35af39
Packit Service 35af39
1.21 Wed May  9 18:40:32 CEST 2007
Packit Service 35af39
	- character offset reported for trailing garbage was random.
Packit Service 35af39
Packit Service 35af39
1.2  Wed May  9 18:35:01 CEST 2007
Packit Service 35af39
        - decode did not work with magical scalars (doh!).
Packit Service 35af39
        - added latin1 flag to produce JSON texts in the latin1 subset
Packit Service 35af39
          of unicode.
Packit Service 35af39
        - flag trailing garbage as error.
Packit Service 35af39
        - new decode_prefix method that returns the number
Packit Service 35af39
          of characters consumed by a decode.
Packit Service 35af39
        - max octets/char in perls UTF-X is actually 13, not 11,
Packit Service 35af39
          as pointed out by Glenn Linderman.
Packit Service 35af39
	- fixed typoe reported by YAMASHINA Hio.
Packit Service 35af39
Packit Service 35af39
1.11 Mon Apr  9 07:05:49 CEST 2007
Packit Service 35af39
	- properly 0-terminate sv's returned by encode to help
Packit Service 35af39
          C libraries that expect that 0 to be there.
Packit Service 35af39
	- partially "port" JSON from C to microsofts fucking broken
Packit Service 35af39
          pseudo-C. They should be burned to the ground for pissing
Packit Service 35af39
          on standards. And I should be stoned for even trying to
Packit Service 35af39
          support this filthy excuse for a c compiler.
Packit Service 35af39
Packit Service 35af39
1.1  Wed Apr  4 01:45:00 CEST 2007
Packit Service 35af39
	- clarify documentation (pointed out by Quinn Weaver).
Packit Service 35af39
        - decode_utf8 sometimes did not correctly flag errors,
Packit Service 35af39
          leading to segfaults.
Packit Service 35af39
        - further reduced default nesting depth to 512 due to the test
Packit Service 35af39
          failure by that anonymous "chris" whose e-mail address seems
Packit Service 35af39
          to be impossible to get. Tests on other freebsd systems indicate
Packit Service 35af39
          that this is likely a problem in his/her configuration and not this
Packit Service 35af39
          module.
Packit Service 35af39
        - renamed json => JSON in error messages.
Packit Service 35af39
        - corrected the character offset in some error messages.
Packit Service 35af39
Packit Service 35af39
1.01 Sat Mar 31 16:15:40 CEST 2007
Packit Service 35af39
	- do not segfault when from_json/decode gets passed
Packit Service 35af39
          a non-string object (reported by Florian Ragwitz).
Packit Service 35af39
          This has no effect on normal operation.
Packit Service 35af39
Packit Service 35af39
1.0  Thu Mar 29 04:43:34 CEST 2007
Packit Service 35af39
	- the long awaited (by me) 1.0 version.
Packit Service 35af39
        - add \0 (JSON::XS::false) and \1 (JSON::XS::true) mappings to JSON
Packit Service 35af39
          true and false.
Packit Service 35af39
	- add some more notes to shrink, as suggested by Alex Efros.
Packit Service 35af39
        - improve testsuite.
Packit Service 35af39
        - halve the default nesting depth limit, to hopefully make it
Packit Service 35af39
          work on Freebsd (unfortunately, the cpan tester did not
Packit Service 35af39
          send me his report, so I cannot ask about the stack limit on fbsd).
Packit Service 35af39
Packit Service 35af39
0.8  Mon Mar 26 00:10:48 CEST 2007
Packit Service 35af39
	- fix a memleak when decoding hashes.
Packit Service 35af39
	- export jsonToBj and objToJson as aliases
Packit Service 35af39
          to to_json and from_json, to reduce incompatibilities
Packit Service 35af39
          between JSON/JSON::PC and JSON::XS. (experimental).
Packit Service 35af39
        - implement a maximum nesting depth for both en- and de-coding.
Packit Service 35af39
        - added a security considerations sections.
Packit Service 35af39
Packit Service 35af39
0.7  Sun Mar 25 01:46:30 CET 2007
Packit Service 35af39
	- code cleanup.
Packit Service 35af39
	- fix a memory overflow bug when indenting.
Packit Service 35af39
        - pretty-printing now up to 15% faster.
Packit Service 35af39
        - improve decoding speed of strings by
Packit Service 35af39
          up to 50% by specialcasing short strings.
Packit Service 35af39
        - further decoding speedups for strings using
Packit Service 35af39
          lots of \u escapes.
Packit Service 35af39
        - improve utf8 decoding speed for U+80 .. U+7FF.
Packit Service 35af39
Packit Service 35af39
0.5  Sat Mar 24 20:41:51 CET 2007
Packit Service 35af39
	- added the UTF-16 encoding example hinted at in previous
Packit Service 35af39
          versions.
Packit Service 35af39
        - minor documentation fixes.
Packit Service 35af39
        - fix a bug in and optimise canonicalising fastpath
Packit Service 35af39
          (reported by Craig Manley).
Packit Service 35af39
        - remove a subtest that breaks with bleadperl (reported
Packit Service 35af39
          by Andreas König).
Packit Service 35af39
Packit Service 35af39
0.31 Sat Mar 24 02:14:34 CET 2007
Packit Service 35af39
	- documentation updates.
Packit Service 35af39
        - do some casting to hopefully fix Andreas' problem.
Packit Service 35af39
        - nuke bogus json rpc stuff.
Packit Service 35af39
Packit Service 35af39
0.3  Fri Mar 23 19:33:21 CET 2007
Packit Service 35af39
	- remove spurious PApp::Util reference (John McNamara).
Packit Service 35af39
	- adapted lots of tests from other json modules
Packit Service 35af39
          (idea by Chris Carline).
Packit Service 35af39
        - documented mapping from json to perl and vice versa.
Packit Service 35af39
        - improved the documentation by adding more examples.
Packit Service 35af39
        - added short escaping forms, reducing the created
Packit Service 35af39
          json texts a bit.
Packit Service 35af39
        - added shrink flag.
Packit Service 35af39
        - when flag methods are called without enable argument
Packit Service 35af39
          they will by default enable their flag.
Packit Service 35af39
        - considerably improved string encoding speed (at least
Packit Service 35af39
          with gcc 4).
Packit Service 35af39
        - added a test that covers lots of different characters.
Packit Service 35af39
        - clarified some error messages.
Packit Service 35af39
        - error messages now use correct character offset
Packit Service 35af39
          with F_UTF8.
Packit Service 35af39
        - improve the "no bytes" and "no warnings" hacks in
Packit Service 35af39
          case the called functions do... stuff.
Packit Service 35af39
        - croak when encoding to ascii and an out-of-range
Packit Service 35af39
          (non-unicode) codepoint is encountered.
Packit Service 35af39
Packit Service 35af39
0.2  Fri Mar 23 00:23:34 CET 2007
Packit Service 35af39
	- the "could not sleep without debugging release".
Packit Service 35af39
          it should basically work now, with many bugs as
Packit Service 35af39
          no production tests have been run yet.
Packit Service 35af39
	- added more testcases.
Packit Service 35af39
	- the expected shitload of bugfixes.
Packit Service 35af39
	- handle utf8 flag correctly in decode.
Packit Service 35af39
        - fix segfault in decoder.
Packit Service 35af39
        - utf8n_to_uvuni sets retlen to -1, but retlen is an
Packit Service 35af39
          unsigned types (argh).
Packit Service 35af39
        - fix decoding of utf-8 strings.
Packit Service 35af39
        - improved error diagnostics.
Packit Service 35af39
        - fix decoding of 'null'.
Packit Service 35af39
        - fix parsing of empty array/hashes
Packit Service 35af39
        - silence warnings when we prepare the croak message.
Packit Service 35af39
Packit Service 35af39
0.1   Thu Mar 22 22:13:43 CET 2007
Packit Service 35af39
	- first release, very untested, basically just to claim
Packit Service 35af39
          the namespace.
Packit Service 35af39
 
Packit Service 35af39
0.01  Thu Mar 22 06:08:12 CET 2007
Packit Service 35af39
	- original version; cloned from Convert-Scalar
Packit Service 35af39