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