Revision history for Perl extension JSON.

## JSON version 2.9 #####################################################

CAUTION!!!
INCOMPATIBLE CHANGE

JSON.pm had patched JSON::XS::Boolean and JSON::PP::Boolean internally
on loading time for making these modules inherit JSON::Boolean.
But since JSON::XS v3.0 it use Types::Serialiser as boolean class.
Then now JSON.pm breaks boolean classe overload features and
-support_by_pp if JSON::XS v3.0 or later is installed.

JSON::true and JSON::false returned JSON::Boolean objects.
For workaround, they return JSON::PP::Boolean objects in this version.

    isa_ok(JSON::true, 'JSON::PP::Boolean');

And it discards a feature:

    ok(JSON::true eq 'true');

In other word, JSON::PP::Boolean overload numeric only.

    ok( JSON::true == 1 );

##########################################################################

2.90  Wed Oct 30 19:48:43 2013

	**** Please see to the headline in this file. ****

	- workaround for JSON::XS version 3.0 or later installed case.

	  * the objects returned by JSON::true/false are JSON::PP::Boolean.
	  * they do not overload 'eq'.

	- changed test cases for this patch.

	   t/e02_bool.t
	   t/e03_bool2.t
	   t/x17_strange_overload.t
	   t/xe02_bool.t
	   t/xe03_bool2.t
	   t/xe12_boolean.t

	**** Please see to the headline in this file. ****


2.61  Thu Oct 17 19:38:55 2013
	- fixed return/or in _incr_parse
	  reported and patched by MAUKE, sprout and rjbs
	  https://rt.cpan.org/Public/Bug/Display.html?id=86948

2.60
	- $json->is_xs, $json->is_pp was completely broken.
	    pointed by rt#75867 and emceelam

2.59  Wed Jun  5 14:35:54 2013
	- PUREPERL_ONLY support was not supported...
	    and finally remove all PP options from Makefile.PL.
	- recommend JSON::XS instead of conditionally requiring it
	     patched by miyagaw
	  ( for example, $ cpanm --with-recommends JSON)
	- Hide more packages from PAUSE (and other stuff)
	     patched by miyagawa

2.58  Thu May 23 09:04:37 2013
	- support PUREPERL_ONLY install option. (rt#84876)
	   (PERL_ONLY and NO_XS are not yet removed)
	- stop installing JSON::XS automatically on Perl 5.18

2.57
	- t/x17_strage_overload.t didn't work correctly.

2.56  Sat Apr  6 09:58:32 2013
	- fixed t/x17_strage_overload.t (rt#84451 by Ricardo Signes)

2.55
	- update JSON::BackportPP version

2.54  Fri Apr  5 16:15:08 2013
	- fixed t/19_incr.t on perl >= 5.17.10 (wyant, rt#84154)
	    pathced by mbeijen and modified with demerphq's patch
	- Fixed some spelling (by briandfoy)
	- fixed sppeling (by Perlover)
	- enhanced documents (Thanks to Justin Hunter and Olof Johansson)
	- changed backend module loading for overloaded object behavior
	                                        (reported by tokuhirom)

2.53  Sun May 22 16:11:05 2011
	- made Makefile.PL skipping a installing XS question
            when set $ENV{PERL_ONLY} or $ENV{NO_XS} (rt#66820)

2.52  Sun May 22 15:05:49 2011
	- fixed to_json (pointed and patched by mmcleric in rt#68359)
	- backport JSON::PP 2.27200
            * fixed incr_parse docodeing string more correctly (rt#68032 by LCONS)

2.51  Tue Mar  8 16:03:34 2011
	- import JSON::PP 2.27105 as BackportPP
	- fixed documentations (pointed by Britton Kerin and rt#64738)

2.50  Mon Dec 20 14:56:42 2010
	[JSON]
	- stable release

2.49_01  Sat Nov 27 22:03:17 2010
	[JSON]
	- JSON::PP is split away JSON distributino for perl 5.14
	- JSON::backportPP is included in instead.

2.27  Sun Oct 31 20:32:46 2010
	[JSON::PP]
	- Some optimizations (gfx)
	[JSON::PP::5005]
	- added missing B module varibales (makamaka)

2.26  Tue Sep 28 17:41:37 2010
	[JSON::PP]
	- cleaned up code and enhanced sort option efficiency in encode.

2.25  Tue Sep 28 16:47:08 2010
	[JSON]
	- JSON::Backend::XS::Supportable always executed a needless process
	    with JSON::XS backend. This made encode/decode a bit slower.

2.24  Mon Sep 27 10:56:24 2010
	[JSON::PP]
	- tweaked code.
	- optimized code in hash object encoding.

2.23  Sun Sep 26 22:08:12 2010
	[JSON::PP]
	- modified tied object handling in encode. it made encoding speed faster.
	    pointed by https://rt.cpan.org/Ticket/Display.html?id=61604
	- modified t/e10_bignum.t
            for avoiding a warning in using Math::BigInt dev version

2.22  Wed Aug 25 12:46:13 2010
	[JSON]
	- added JSON::XS installing feature in Makefile.PL
	    with cpan or cpanm (some points suggested by gfx)
	- check that to_json and from_json are not called as methods (CHORNY)
	[JSON::PP]
	- modified for -Duse64bitall -Duselongdouble compiled perl.
	    11_pc_expo.t too. (these are patched by H.Merijn Brand)

2.21  Mon Apr  5 14:56:52 2010
	[JSON]
	- enhanced 'HOW DO I DECODE A DATA FROM OUTER AND ENCODE TO OUTER'
	- renamed eg/bench_pp_xs.pl to eg/bench_decode.pl
	- added eg/bench_encode.pl

2.20  Fri Apr  2 12:50:08 2010
	[JSON]
	- added eg/bench_pp_xs.pl for benchmark sample
	- updated 'INCREMENTAL PARSING' section
	[JSON::PP]
	- decode_prefix() didn't count a consumed text length properly.
	- enhanced XS compatibilty
	    in the case of decoding a white space garbaged text.

2.19  Tue Mar 30 13:40:24 2010
	[JSON]
	- fixed typo (rt#53535 by Angel Abad)
	- added a recommendation
              refering to (en|de)code_json to pod (suggested by tokuhirom)
	- added 'HOW DO I DECODE A DATA FROM OUTER AND ENCODE TO OUTER' to pod.

2.18  Tue Mar 23 15:18:10 2010
	[JSON]
	- updated document (compatible with JSON::XS 2.29)
	[JSON::PP]
	- fixed encode an overloaded 'eq' object bug (reported by Alexey A. Kiritchun)
	- enhanced an error message compatible to JSON::XS

2.17  Thu Jan  7 12:23:13 2010
	[JSON]
	- fixed a problem caused by JSON::XS backend and support_by_pp option
	  (rt#52842,  rt#52847 by ikegami)
	[JSON::PP]
	- made compatible with JSON::XS 2.27
	- patched decode for incr_parse (rt#52820 by ikegami)
	- relaxed option caused an infinite loop in some condition.

2.16  Fri Oct 16 15:07:37 2009
	[JSON][JSON::PP]
	- made compatible with JSON::XS 2.26
            *indent adds a final newline
	- corrected copyrights in JSON::PP58.

2.15  Tue Jun  2 16:36:42 2009
	[JSON]
	- made compatible with JSON::XS 2.24
	- corrected copyrights in some modules.
	[JSON::PP]
	 - modified incr_parse, pointed by Martin J. Evans (rt#46439)
	 - deleted a meaningless code

2.14  Tue Feb 24 11:20:24 2009
	[JSON]
	- the compatible XS version was miswritten in document.

2.13  Sat Feb 21 17:01:05 2009
	[JSON::PP]
	- decode() didn't upgrade unicode escaped charcters \u0080-\u00ff.
	  this problem was pointed by rt#43424 (Mika Raento)
	[JSON::PP::56]
	- fixed utf8::encode/decode emulators bugs.
	- defined a missing B module constant in Perl 5.6.0.
	  (reported by Clinton Pierce)
	[JSON::PP::5005]
	- _decode_unicode() returned a 0x80-0xff value as UTF8 encoded byte.
	[JSON]
	- added a refference to JSON::XS's document "JSON and ECMAscript".
	- fixed a typo in the document (pointed by Jim Cromie).

2.12  Wed Jul 16 11:14:35 2008
	[JSON]
	- made compatible with JSON::XS 2.22

	[JSON::PP]
	- fixed the incremental parser in negative nest level
	    (pointed and patched by Yuval Kogman)

2.11  Tue Jun 17 14:30:01 2008
	[JSON::PP]
	- fixed the decoding process which checks number.
	    regarded number like chars in Unicode (ex. U+FF11) as [\d].
	- enhanced error messages compatible to JSON::XS.

2.10  Tue Jun  3 18:42:11 2008
	[JSON]
	- made compatible with JSON::XS 2.21
	    * updated the document.
	- added an item pointed by rt#32361 to the doc.

	[JSON::PP] [JSON::PP58] [JSON::PP56] [JSON::PP5005]
	- made compatible with JSON::XS 2.21
	    * added incr_reset
	- removed useless codes.

2.09  Sun Apr 20 20:45:33 2008
	[JSON]
	- made compatible with JSON::XS 2.2
	- changed pod section totally.

	[JSON::PP] 2.20001
	- made compatible witg JSON::XS 2.2
	    * lifted the log2 rounding restriction of max_depth and max_size.
	    * incremental json parsing (EXPERIMENTAL).
	    * allow_unknown/get_allow_unknown methods.
	- the version format was changed.
	    X.YYZZZ =>  X.YY is the same as JSON::XS. ZZZ is the PP own version.
	- changed pod section totally.

2.08  Sat Apr 12 22:49:39 2008
	[JSON]
	- fixed JSON::Boolean inheritance mechanism.
            If the backend is XS with support_by_pp mode and using PP only
            support method, JSON::Boolean did not work correctly.
            Thanks to hg[at]apteryx's point.

	[JSON::PP] 2.07
	- Now split into JSON::PP58 for Perl 5.8 and lator.
	- enhanced an error message compatible to JSON::XS
            did not croak when TO_JSON method returns same object as passed.

	[JSON::PP58]
	- modified for Perls post 5.8.0 that don't have utf8::is_utf8.
	    Thanks to Andreas Koenig.

2.07  Sat Feb 16 15:52:29 2008
	[JSON]
	- experimentally added -convert_blessed_universally to define
	    UNIVERSAL::TO_JSON subroutine.

              use JSON -convert_blessed_universally;
              $json->convert_blessed->encode( $blessed );

	- and as_nonbleesed is obsoleted (not yet removed). OK?
	- fixed t/04_pretty.t.

2.06  Fri Feb  8 16:21:59 2008
	[JSON::PP] 2.06
	- enhanced the XS compatibility for pretty-printing
	    and the indent handling was broken!

2.05  Tue Feb  5 13:57:19 2008
	[JSON::PP] 2.05
	- enhanced some XS compatibilities for de/encode.
	- now decode_error can dump high (>127) chars.
	- enhanced the XS combatilbity of the decoding error.
	- fixed the utf8 checker while decoding (is_valid_utf8).
	- implemented utf8::downgrade in JSON::PP56.
	- enhanced utf8::encode in JSON::PP56.
	- made utf8::downgrade return a true in JSON::PP5005.

2.04  Sat Jan  5 16:10:01 2008
	[JSON]
	- fixed a document typo pointed by kawasaki@annocpan
	- make DATA handle closed for error mssages in support_by_pp mode.
	- switched JSON::Backend::XS::Supportable wrapper de/encode
             to changing symbolic tables for croak messages and speed.
	- fixed support_by_pp setting

	[JSON::PP] 2.04
	- enhanced the error message compatiblity to XS.

2.03  Fri Jan  4 14:10:58 2008
	[JSON]
	- fixed the description - Transition ways from 1.xx to 2.xx.
             $JSON::ConvBlessed compat => $json->allow_blessed->as_nonbleesed
	- support_by_pp supports 'as_nonbleesed' (experimental)
	- clean up the code for saving memory

	[JSON::PP] 2.03
	- Now the allo_bignum flag also affects the encoding process.
            encode() can convert Math::BigInt/Float objects into JSON numbers
	- added as_nonblessed option (experimental)
	- cleaned up internal function names (renamed camel case names)

2.02  Wed Dec 26 11:08:19 2007
	[JSON]
	- Now support_by_pp allows to use indent_length()

	[JSON::PP] 2.02
	- added get_indent_length

2.01  Thu Dec 20 11:30:59 2007
	[JSON]
	- made the object methods - jsonToObj and objToJson
          available for a while with warnings.

2.00  Wed Dec 19 11:48:04 2007
	[JSON]
	- new version!
	- modified Makefile.PL for broken Perls (when PERL_DL_NONLAZY = 1).

	[JSON::PP] 2.0104
	- clean up the document.
	- use 'subs' instead of CORE::GLOBAL for fixing join() in 5.8.0 - 5.8.2
	- enhanced decoding error messages for JSON::XS compatibility.
	- jsonToObj and objToJson warn.


1.99_05  Fri Dec 14 18:30:43 2007
	[JSON]
	- added a description about the Unicode handling to document.

	[JSON::PP] (2.0103)
	- Now the JSON::PP56 unicode handling does not require Unicode::String.
	- Now JSON::PP5005 can de/enocde properly within the Perl 5.005 world.
	- decode() always utf8::decode()ed to strings.
	- decode() returned a big integer as string though the integer is
          smaller than it is so.
	- a bad know how - added the join() wrapper for Perl 5.8.0 - 5.8.2 bug.
	- JSON::PP56 encode() did not handle Unicode properly.
	- added a section about the unicode handling on Perls to JSON::PP doc.

1.99_04  Mon Dec 10 14:28:15 2007
	[JSON]
	- modified the tests and source for Perl 5.005

	[JSON::PP] (2.0102)
	- modified some prototypes in JSON::PP5005.

1.99_03  Mon Dec 10 11:43:02 2007
	[JSON]
	- modified tests and document.
	   in Perl5.8.2 or earlier, decoding with utf8 is broken because of
           a Perl side problem. (join() had a bug.)
	- modified Makefile.PL for Perl 5.005.
	   in the version, 'require JSON' is fail....

	[JSON::PP] (2.0102)
	- modified string decode function.
	- enhanced error messages for compatibility to JSON::XS.
	- enhanced utf8::decode emulator and unpack emulator in JSON::PP56.

1.99_02  Sun Dec  9 05:06:19 2007
        [JSON::PP] (2.0101)
	- decoding with utf8 was broken in Perl 5.10
	    as the behaviour of unpack was changed.
	- added a fake in JSON::PP5005 (bytes.pm)
	- added the missing file JONS::PP::Boolean.pm

1.99_01  Sat Dec  8 12:01:43 2007
	[JSON]
	- released as version 2.0
	   this module is incompatible to 1.xx, so check the document.

        [JSON::PP] (2.01 from 0.97)
	- updated JSON::PP for compatible to JSON::XS 2.01
	- renamed from_json and to_json to decode_json and encode_json
	- added get_* to JSON::PP
	- deleted property() from JSON::PP
	- deleted strict() and added loose()
	- deleted disable_UTF8() and self_encode()
	- renamed singlequote to allow_singlequote
	- renamed allow_bigint to allow_bignum
	- max_depth and max_size round up their arguments.
	- added indent_length and sort_by


## JSON version 1.xx

1.15  Wed Nov 14 14:52:31 2007
	- 1.xx final version.

0.09  Sat Apr  9 15:27:47 2005
	- original version; created by h2xs 1.22 with options
		-XA -b 5.5.3 -n JSON