3.02 Fri Feb 26 22:45:20 CET 2016
- allow_nonref now affects booleans (\1, $Types::Serialiser::Boolean)
as well (reported by Alex Efros).
- allow literal tabs in strings in relaxed mode (patch by
lubo.rintel@gooddata.com).
- support "cbor" format in json_xs tool.
- support (and fix) calling encode and decode in list context
(reported by Вадим Власов).
- work around a bug in older perls crashing when presented
with shared hash keys (Reini Urban).
- use stability canary.
Problems found with existing distfile:
distfiles/libiconv-1.13-cp932.patch.gz
No changes made to the libiconv distinfo file.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
3.01 Tue Oct 29 16:55:15 CET 2013
- backport to perls < 5.18 (reported by Paul Howarth).
3.0 Tue Oct 29 01:35:37 CET 2013
- implemented an object tagging extension (using the
Types::Serialiser serialisation protocol).
- reworked the documentation regarding object serialisation,
add a new OBJECT SERIALISATION section that explains the
whole process.
- new setting: allow_tags.
- switch to Types::Serialiser booleans.
- remove to_json/from_json.
- other minor improvements to the documentation.
from 2.330nb2 (upstream: 2.33) to 2.340 (upstream: 2.34).
Upstream changes from 2.33:
2.34 Thu May 23 11:30:34 CEST 2013
- work around bugs in perl 5.18 breaking more than 100
widely used modules, without a fix in sight because
p5pers don't care about CPAN anymore.
- when canonicalising, only allocate up to 64 hash key
pointers on the stack. for larger hashes, use the heap,
to avoid using too much stackspace.
- discuss the problem with setlocale (reported by a few victims).
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
Upstream change:
2.33 Wed Aug 1 21:03:52 CEST 2012
- internal encode/decode XS wrappers did not expect stack
moves caused by callbacks (analyzed and testcase by Jesse Luehrs).
- add bencode as to/from option in bin/json_xs.
- add -e option to json_xs, and none and string in/out formats.
* don't accumulate initial whitespace in the incremental buffer
(this can be useful to allow whitespace-keepalive on a tcp
connection without triggering the max_size limit).
* properly croak on some invalid inputs that are not strings
(e.g. undef) when trying to decode a json text
Upstream changes:
2.3 Wed Aug 18 01:26:47 CEST 2010
- make sure decoder doesn't change the decoding in the incremental
parser (testcase provided by Hendrik Schumacher).
- applied patch by DaTa for Data::Dumper support in json_xs.
- added -t dump support to json_xs, using Data::Dump.
- added -f eval support to json_xs.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
version 2.29).
Pkgsrc changes:
- Canonical MASTER_SITES
Upstream changes:
2.29 Wed Mar 17 02:39:12 CET 2010
- fix a memory leak when callbacks set using filter_json_object
or filter_json_single_key_object were called (great testcase
by Eric Wilhelm).
Upstream changes:
2.28 Thu Mar 11 20:30:46 CET 2010
- implement our own atof function - perl's can be orders of
magnitudes slower than even the system one. on the positive
side, ours seems to be more exact in general than perl's.
(testcase provided by Tim Meadowcroft).
- clarify floating point conversion issues a bit.
- update jpsykes csrf article url.
- updated benchmark section - JSON::PP became much faster!
ChangeLog:
2.26 Sat Oct 10 03:26:19 CEST 2009
- big integers could become truncated (based on patch
by Strobl Anton).
- output format change: indent now adds a final newline, which is
more expected and more true to the documentation.
pkgsrc changes:
- Adding dependency to devel/p5-common-sense
Upstream changes since 2.24:
2.25 Sat Aug 8 12:04:41 CEST 2009
- the perl debugger completely breaks lvalue subs - try to work
around the issue.
- ignore RMAGICAL hashes w.r.t. CANONICAL.
- try to work around a possible char signedness issue on aix.
- require common sense.
- Updating package of p5 module JSON::XS from 2.232 to 2.240 (module
version 2.24)
- Setting license to ${PERL5_LICENSE} according to COPYING
Upstream changes:
2.24 Sat May 30 08:25:45 CEST 2009
- the incremental parser did not update its parse offset
pointer correctly when parsing utf8-strings (nicely
debugged by Martin Evans).
- appending a non-utf8-string to the incremental parser
in utf8 mode failed to upgrade the string.
- wording of parse error messages has been improved.
Upstream changes:
2.232 Sun Feb 22 11:12:25 CET 2009
- use an exponential algorithm to extend strings, to
help platforms with bad or abysmal==windows memory
allocater performance, at the expense of some memory
wastage (use shrink to recover this extra memory).
(nicely analysed by Dmitry Karasik).
2.2311 Thu Feb 19 02:12:54 CET 2009
- add a section "JSON and ECMAscript" to explain some
incompatibilities between the two (problem was noted by
various people).
- add t/20_faihu.t.
Upstream changes:
2.231 Thu Nov 20 04:59:08 CET 2008
- work around 5.10.0 magic bugs where manipulating magic values
(such as $1) would permanently damage them as perl would
ignore the magicalness, by making a full copy of the string,
reported by Dmitry Karasik.
- work around spurious wanrings under older perl 5.8's.
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
Upstream changes:
2.23 Mon Sep 29 05:08:29 CEST 2008
- fix a compilation problem when perl is not using char * as, well,
char *.
- use PL_hexdigit in favour of rolling our own.
Pkgsrc changes:
o Use JSON/ subdir on master site instead of author dir.
o Use 2.22.22 as version number instead of 2.2222.
Upstream changes:
2.2222 Sun Jul 20 18:49:00 CEST 2008
- same game again, broken 5.10 finds yet another assertion
failure, and the workaround causes additional runtime warnings.
Work around the next assertion AND the warning. 5.10 seriously
needs to adjust it's attitude against working code.
2.222 Sat Jul 19 06:15:34 CEST 2008
- you work around one -DDEBUGGING assertion bug in perl 5.10
just to hit the next one. work around this one, too.
2.22 Tue Jul 15 13:26:51 CEST 2008
- allow higher nesting levels in incremental parser.
- error out earlier in some cases in the incremental parser
(as suggested by Yuval Kogman).
- improve incr-parser test (Yuval Kogman).
While here, marked as DESTDIR ready.
2.21 Tue Jun 3 08:43:23 CEST 2008
- (hopefully) work around a perl 5.10 bug with -DDEBUGGING.
- remove the experimental status of the incremental parser interface.
- move =encoding around again, to avoid bugs with search.cpan.org.
when can we finally have utf-8 in pod???
- add ->incr_reset method.
2.2 Wed Apr 16 20:37:25 CEST 2008
- 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 Wed Mar 19 23:23:18 CET 2008
- 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.
Changes:
2.01 Wed Dec 5 11:40:28 CET 2007
- 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 Tue Dec 4 11:30:46 CET 2007
- 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 Tue Nov 13 23:58:33 CET 2007
- minor doc clarifications.
- fixed many doc typos (patch by Thomas L. Shinnick).
1.52 Mon Oct 15 03:22:06 CEST 2007
- remove =encoding pod directive again, it confuses too many pod
parsers :/.
1.51 Sat Oct 13 03:55:56 CEST 2007
- 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.
This module converts Perl data structures to JSON and vice versa.
Its primary goal is to be correct and its secondary goal is to be
fast. To reach the latter goal it was written in C.
As this is the n-th-something JSON module on CPAN, what was the
reason to write yet another JSON module? While it seems there are
many JSON modules, none of them correctly handle all corner cases,
and in most cases their maintainers are unresponsive, gone missing,
or not listening to bug reports for other reasons.