r54158 - in /trunk/libjson-xs-perl: Changes META.json META.yml README XS.pm XS.xs debian/changelog debian/copyright eg/bench
angelabad-guest at users.alioth.debian.org
angelabad-guest at users.alioth.debian.org
Fri Mar 12 09:47:09 UTC 2010
Author: angelabad-guest
Date: Fri Mar 12 09:47:02 2010
New Revision: 54158
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=54158
Log:
New upstream release 2.280
Modified:
trunk/libjson-xs-perl/Changes
trunk/libjson-xs-perl/META.json
trunk/libjson-xs-perl/META.yml
trunk/libjson-xs-perl/README
trunk/libjson-xs-perl/XS.pm
trunk/libjson-xs-perl/XS.xs
trunk/libjson-xs-perl/debian/changelog
trunk/libjson-xs-perl/debian/copyright
trunk/libjson-xs-perl/eg/bench
Modified: trunk/libjson-xs-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/Changes?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/Changes (original)
+++ trunk/libjson-xs-perl/Changes Fri Mar 12 09:47:02 2010
@@ -1,4 +1,13 @@
Revision history for Perl extension JSON::XS
+
+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!
2.27 Thu Jan 7 07:35:08 CET 2010
- support relaxed option inside the incremental parser
Modified: trunk/libjson-xs-perl/META.json
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/META.json?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/META.json (original)
+++ trunk/libjson-xs-perl/META.json Fri Mar 12 09:47:02 2010
@@ -1,1 +1,1 @@
-{"no_index":{"directory":["t","inc"]},"meta-spec":{"version":1.4,"url":"http://module-build.sourceforge.net/META-spec-v1.4.html"},"generated_by":"ExtUtils::MakeMaker version 6.54","distribution_type":"module","version":"2.27","name":"JSON-XS","author":[],"license":"unknown","build_requires":{"ExtUtils::MakeMaker":0},"requires":{"common::sense":0},"abstract":null,"configure_requires":{"ExtUtils::MakeMaker":0}}
+{"no_index":{"directory":["t","inc"]},"meta-spec":{"version":1.4,"url":"http://module-build.sourceforge.net/META-spec-v1.4.html"},"generated_by":"ExtUtils::MakeMaker version 6.54","distribution_type":"module","version":"2.28","name":"JSON-XS","author":[],"license":"unknown","build_requires":{"ExtUtils::MakeMaker":0},"requires":{"common::sense":0},"abstract":null,"configure_requires":{"ExtUtils::MakeMaker":0}}
Modified: trunk/libjson-xs-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/META.yml?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/META.yml (original)
+++ trunk/libjson-xs-perl/META.yml Fri Mar 12 09:47:02 2010
@@ -11,7 +11,7 @@
},
"generated_by" : "ExtUtils::MakeMaker version 6.54",
"distribution_type" : "module",
- "version" : "2.27",
+ "version" : "2.28",
"name" : "JSON-XS",
"author" : [],
"license" : "unknown",
Modified: trunk/libjson-xs-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/README?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/README (original)
+++ trunk/libjson-xs-perl/README Fri Mar 12 09:47:02 2010
@@ -58,10 +58,11 @@
* round-trip integrity
When you serialise a perl data structure using only data types
- supported by JSON, the deserialised data structure is identical on
- the Perl level. (e.g. the string "2.0" doesn't suddenly become "2"
- just because it looks like a number). There minor *are* exceptions
- to this, read the MAPPING section below to learn about those.
+ supported by JSON and Perl, the deserialised data structure is
+ identical on the Perl level. (e.g. the string "2.0" doesn't suddenly
+ become "2" just because it looks like a number). There *are* minor
+ exceptions to this, read the MAPPING section below to learn about
+ those.
* strict checking of JSON correctness
@@ -672,6 +673,11 @@
the scalar context case. Note that in this case, any
previously-parsed JSON texts will be lost.
+ Example: Parse some JSON arrays/objects in a given string and return
+ them.
+
+ my @objs = JSON::XS->new->incr_parse ("[5][7][1,2]");
+
$lvalue_string = $json->incr_text
This method returns the currently stored JSON fragment as an lvalue,
that is, you can manipulate it. This *only* works when a preceding
@@ -895,6 +901,11 @@
of precision (in which case you might lose perfect roundtripping
ability, but the JSON number will still be re-encoded as a JSON
number).
+
+ Note that precision is not accuracy - binary floating point values
+ cannot represent most decimal fractions exactly, and when converting
+ from and to floating point, JSON::XS only guarantees precision up to
+ but not including the leats significant bit.
true, false
These JSON atoms become "JSON::XS::true" and "JSON::XS::false",
@@ -981,6 +992,13 @@
Tell me if you need this capability (but don't forget to explain why
it's needed :).
+ Note that numerical precision has the same meaning as under Perl (so
+ binary to decimal conversion follows the same rules as in Perl,
+ which can differ to other languages). Also, your perl interpreter
+ might expose extensions to the floating point numbers of your
+ platform, such as infinities or NaN's - these cannot be represented
+ in JSON, and it is an error to pass those in.
+
ENCODING/CODESET FLAG NOTES
The interested reader might have seen a number of flags that signify
encodings or codesets - "utf8", "latin1" and "ascii". There seems to be
@@ -1203,49 +1221,48 @@
{"method": "handleMessage", "params": ["user1",
"we were just talking"], "id": null, "array":[1,11,234,-5,1e5,1e7,
- true, false]}
+ 1, 0]}
It shows the number of encodes/decodes per second (JSON::XS uses the
functional interface, while JSON::XS/2 uses the OO interface with
- pretty-printing and hashkey sorting enabled, JSON::XS/3 enables shrink).
- Higher is better:
-
- module | encode | decode |
- -----------|------------|------------|
- JSON 1.x | 4990.842 | 4088.813 |
- JSON::DWIW | 51653.990 | 71575.154 |
- JSON::PC | 65948.176 | 74631.744 |
- JSON::PP | 8931.652 | 3817.168 |
- JSON::Syck | 24877.248 | 27776.848 |
- JSON::XS | 388361.481 | 227951.304 |
- JSON::XS/2 | 227951.304 | 218453.333 |
- JSON::XS/3 | 338250.323 | 218453.333 |
- Storable | 16500.016 | 135300.129 |
- -----------+------------+------------+
-
- That is, JSON::XS is about five times faster than JSON::DWIW on
- encoding, about three times faster on decoding, and over forty times
- faster than JSON, even with pretty-printing and key sorting. It also
+ pretty-printing and hashkey sorting enabled, JSON::XS/3 enables shrink.
+ JSON::DWIW/DS uses the deserialise function, while JSON::DWIW::FJ uses
+ the from_json method). Higher is better:
+
+ module | encode | decode |
+ --------------|------------|------------|
+ JSON::DWIW/DS | 86302.551 | 102300.098 |
+ JSON::DWIW/FJ | 86302.551 | 75983.768 |
+ JSON::PP | 15827.562 | 6638.658 |
+ JSON::Syck | 63358.066 | 47662.545 |
+ JSON::XS | 511500.488 | 511500.488 |
+ JSON::XS/2 | 291271.111 | 388361.481 |
+ JSON::XS/3 | 361577.931 | 361577.931 |
+ Storable | 66788.280 | 265462.278 |
+ --------------+------------+------------+
+
+ That is, JSON::XS is almost six times faster than JSON::DWIW on
+ encoding, about five times faster on decoding, and over thirty to
+ seventy times faster than JSON's pure perl implementation. It also
compares favourably to Storable for small amounts of data.
Using a longer test string (roughly 18KB, generated from Yahoo! Locals
search API (<http://dist.schmorp.de/misc/json/long.json>).
- module | encode | decode |
- -----------|------------|------------|
- JSON 1.x | 55.260 | 34.971 |
- JSON::DWIW | 825.228 | 1082.513 |
- JSON::PC | 3571.444 | 2394.829 |
- JSON::PP | 210.987 | 32.574 |
- JSON::Syck | 552.551 | 787.544 |
- JSON::XS | 5780.463 | 4854.519 |
- JSON::XS/2 | 3869.998 | 4798.975 |
- JSON::XS/3 | 5862.880 | 4798.975 |
- Storable | 4445.002 | 5235.027 |
- -----------+------------+------------+
+ module | encode | decode |
+ --------------|------------|------------|
+ JSON::DWIW/DS | 1647.927 | 2673.916 |
+ JSON::DWIW/FJ | 1630.249 | 2596.128 |
+ JSON::PP | 400.640 | 62.311 |
+ JSON::Syck | 1481.040 | 1524.869 |
+ JSON::XS | 20661.596 | 9541.183 |
+ JSON::XS/2 | 10683.403 | 9416.938 |
+ JSON::XS/3 | 20661.596 | 9400.054 |
+ Storable | 19765.806 | 10000.725 |
+ --------------+------------+------------+
Again, JSON::XS leads by far (except for Storable which non-surprisingly
- decodes faster).
+ decodes a bit faster).
On large strings containing lots of high Unicode characters, some
modules (such as JSON::PC) seem to decode faster than JSON::XS, but the
@@ -1290,11 +1307,11 @@
If you are using JSON::XS to return packets to consumption by JavaScript
scripts in a browser you should have a look at
- <http://jpsykes.com/47/practical-csrf-and-json-security> to see whether
- you are vulnerable to some common attack vectors (which really are
- browser design bugs, but it is still you who will have to deal with it,
- as major browser developers care only for features, not about getting
- security right).
+ <http://blog.archive.jpsykes.com/47/practical-csrf-and-json-security/>
+ to see whether you are vulnerable to some common attack vectors (which
+ really are browser design bugs, but it is still you who will have to
+ deal with it, as major browser developers care only for features, not
+ about getting security right).
THREADS
This module is *not* guaranteed to be thread safe and there are no plans
Modified: trunk/libjson-xs-perl/XS.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/XS.pm?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/XS.pm (original)
+++ trunk/libjson-xs-perl/XS.pm Fri Mar 12 09:47:02 2010
@@ -66,10 +66,10 @@
=item * round-trip integrity
When you serialise a perl data structure using only data types supported
-by JSON, the deserialised data structure is identical on the Perl level.
-(e.g. the string "2.0" doesn't suddenly become "2" just because it looks
-like a number). There minor I<are> exceptions to this, read the MAPPING
-section below to learn about those.
+by JSON and Perl, the deserialised data structure is identical on the Perl
+level. (e.g. the string "2.0" doesn't suddenly become "2" just because
+it looks like a number). There I<are> minor exceptions to this, read the
+MAPPING section below to learn about those.
=item * strict checking of JSON correctness
@@ -103,7 +103,7 @@
use common::sense;
-our $VERSION = '2.27';
+our $VERSION = '2.28';
our @ISA = qw(Exporter);
our @EXPORT = qw(encode_json decode_json to_json from_json);
@@ -753,6 +753,11 @@
case. Note that in this case, any previously-parsed JSON texts will be
lost.
+Example: Parse some JSON arrays/objects in a given string and return
+them.
+
+ my @objs = JSON::XS->new->incr_parse ("[5][7][1,2]");
+
=item $lvalue_string = $json->incr_text
This method returns the currently stored JSON fragment as an lvalue, that
@@ -991,6 +996,11 @@
precision (in which case you might lose perfect roundtripping ability, but
the JSON number will still be re-encoded as a JSON number).
+Note that precision is not accuracy - binary floating point values cannot
+represent most decimal fractions exactly, and when converting from and to
+floating point, JSON::XS only guarantees precision up to but not including
+the leats significant bit.
+
=item true, false
These JSON atoms become C<JSON::XS::true> and C<JSON::XS::false>,
@@ -1087,6 +1097,13 @@
if you need this capability (but don't forget to explain why it's needed
:).
+Note that numerical precision has the same meaning as under Perl (so
+binary to decimal conversion follows the same rules as in Perl, which
+can differ to other languages). Also, your perl interpreter might expose
+extensions to the floating point numbers of your platform, such as
+infinities or NaN's - these cannot be represented in JSON, and it is an
+error to pass those in.
+
=back
@@ -1326,49 +1343,48 @@
{"method": "handleMessage", "params": ["user1",
"we were just talking"], "id": null, "array":[1,11,234,-5,1e5,1e7,
- true, false]}
+ 1, 0]}
It shows the number of encodes/decodes per second (JSON::XS uses
the functional interface, while JSON::XS/2 uses the OO interface
with pretty-printing and hashkey sorting enabled, JSON::XS/3 enables
-shrink). Higher is better:
-
- module | encode | decode |
- -----------|------------|------------|
- JSON 1.x | 4990.842 | 4088.813 |
- JSON::DWIW | 51653.990 | 71575.154 |
- JSON::PC | 65948.176 | 74631.744 |
- JSON::PP | 8931.652 | 3817.168 |
- JSON::Syck | 24877.248 | 27776.848 |
- JSON::XS | 388361.481 | 227951.304 |
- JSON::XS/2 | 227951.304 | 218453.333 |
- JSON::XS/3 | 338250.323 | 218453.333 |
- Storable | 16500.016 | 135300.129 |
- -----------+------------+------------+
-
-That is, JSON::XS is about five times faster than JSON::DWIW on encoding,
-about three times faster on decoding, and over forty times faster
-than JSON, even with pretty-printing and key sorting. It also compares
-favourably to Storable for small amounts of data.
+shrink. JSON::DWIW/DS uses the deserialise function, while JSON::DWIW::FJ
+uses the from_json method). Higher is better:
+
+ module | encode | decode |
+ --------------|------------|------------|
+ JSON::DWIW/DS | 86302.551 | 102300.098 |
+ JSON::DWIW/FJ | 86302.551 | 75983.768 |
+ JSON::PP | 15827.562 | 6638.658 |
+ JSON::Syck | 63358.066 | 47662.545 |
+ JSON::XS | 511500.488 | 511500.488 |
+ JSON::XS/2 | 291271.111 | 388361.481 |
+ JSON::XS/3 | 361577.931 | 361577.931 |
+ Storable | 66788.280 | 265462.278 |
+ --------------+------------+------------+
+
+That is, JSON::XS is almost six times faster than JSON::DWIW on encoding,
+about five times faster on decoding, and over thirty to seventy times
+faster than JSON's pure perl implementation. It also compares favourably
+to Storable for small amounts of data.
Using a longer test string (roughly 18KB, generated from Yahoo! Locals
search API (L<http://dist.schmorp.de/misc/json/long.json>).
- module | encode | decode |
- -----------|------------|------------|
- JSON 1.x | 55.260 | 34.971 |
- JSON::DWIW | 825.228 | 1082.513 |
- JSON::PC | 3571.444 | 2394.829 |
- JSON::PP | 210.987 | 32.574 |
- JSON::Syck | 552.551 | 787.544 |
- JSON::XS | 5780.463 | 4854.519 |
- JSON::XS/2 | 3869.998 | 4798.975 |
- JSON::XS/3 | 5862.880 | 4798.975 |
- Storable | 4445.002 | 5235.027 |
- -----------+------------+------------+
+ module | encode | decode |
+ --------------|------------|------------|
+ JSON::DWIW/DS | 1647.927 | 2673.916 |
+ JSON::DWIW/FJ | 1630.249 | 2596.128 |
+ JSON::PP | 400.640 | 62.311 |
+ JSON::Syck | 1481.040 | 1524.869 |
+ JSON::XS | 20661.596 | 9541.183 |
+ JSON::XS/2 | 10683.403 | 9416.938 |
+ JSON::XS/3 | 20661.596 | 9400.054 |
+ Storable | 19765.806 | 10000.725 |
+ --------------+------------+------------+
Again, JSON::XS leads by far (except for Storable which non-surprisingly
-decodes faster).
+decodes a bit faster).
On large strings containing lots of high Unicode characters, some modules
(such as JSON::PC) seem to decode faster than JSON::XS, but the result
@@ -1414,11 +1430,11 @@
If you are using JSON::XS to return packets to consumption
by JavaScript scripts in a browser you should have a look at
-L<http://jpsykes.com/47/practical-csrf-and-json-security> to see whether
-you are vulnerable to some common attack vectors (which really are browser
-design bugs, but it is still you who will have to deal with it, as major
-browser developers care only for features, not about getting security
-right).
+L<http://blog.archive.jpsykes.com/47/practical-csrf-and-json-security/> to
+see whether you are vulnerable to some common attack vectors (which really
+are browser design bugs, but it is still you who will have to deal with
+it, as major browser developers care only for features, not about getting
+security right).
=head1 THREADS
Modified: trunk/libjson-xs-perl/XS.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/XS.xs?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/XS.xs (original)
+++ trunk/libjson-xs-perl/XS.xs Fri Mar 12 09:47:02 2010
@@ -189,6 +189,100 @@
: offset - SvPVX (sv);
}
+/////////////////////////////////////////////////////////////////////////////
+// fp hell
+
+// scan a group of digits, and a trailing exponent
+static void
+json_atof_scan1 (const char *s, NV *accum, int *expo, int postdp, int maxdepth)
+{
+ UV uaccum = 0;
+ int eaccum = 0;
+
+ // if we recurse too deep, skip all remaining digits
+ // to avoid a stack overflow attack
+ if (expect_false (--maxdepth <= 0))
+ while (((U8)*s - '0') < 10)
+ ++s;
+
+ for (;;)
+ {
+ U8 dig = (U8)*s - '0';
+
+ if (expect_false (dig >= 10))
+ {
+ if (dig == (U8)((U8)'.' - (U8)'0'))
+ {
+ ++s;
+ json_atof_scan1 (s, accum, expo, 1, maxdepth);
+ }
+ else if ((dig | ' ') == 'e' - '0')
+ {
+ int exp2 = 0;
+ int neg = 0;
+
+ ++s;
+
+ if (*s == '-')
+ {
+ ++s;
+ neg = 1;
+ }
+ else if (*s == '+')
+ ++s;
+
+ while ((dig = (U8)*s - '0') < 10)
+ exp2 = exp2 * 10 + *s++ - '0';
+
+ *expo += neg ? -exp2 : exp2;
+ }
+
+ break;
+ }
+
+ ++s;
+
+ uaccum = uaccum * 10 + dig;
+ ++eaccum;
+
+ // if we have too many digits, then recurse for more
+ // we actually do this for rather few digits
+ if (uaccum >= (UV_MAX - 9) / 10)
+ {
+ if (postdp) *expo -= eaccum;
+ json_atof_scan1 (s, accum, expo, postdp, maxdepth);
+ if (postdp) *expo += eaccum;
+
+ break;
+ }
+ }
+
+ // this relies greatly on the quality of the pow ()
+ // implementation of the platform, but a good
+ // implementation is hard to beat.
+ if (postdp) *expo -= eaccum;
+ *accum += uaccum * Perl_pow (10., *expo);
+ *expo += eaccum;
+}
+
+static NV
+json_atof (const char *s)
+{
+ NV accum = 0.;
+ int expo = 0;
+ int neg = 0;
+
+ if (*s == '-')
+ {
+ ++s;
+ neg = 1;
+ }
+
+ // a recursion depth of ten gives us >>500 bits
+ json_atof_scan1 (s, &accum, &expo, 0, 10);
+
+ return neg ? -accum : accum;
+}
/////////////////////////////////////////////////////////////////////////////
// encoder
@@ -1121,20 +1215,16 @@
len -= *start == '-' ? 1 : 0;
// does not fit into IV or UV, try NV
- if ((sizeof (NV) == sizeof (double) && DBL_DIG >= len)
- #if defined (LDBL_DIG)
- || (sizeof (NV) == sizeof (long double) && LDBL_DIG >= len)
- #endif
- )
+ if (len <= NV_DIG)
// fits into NV without loss of precision
- return newSVnv (Atof (start));
+ return newSVnv (json_atof (start));
// everything else fails, convert it to a string
return newSVpvn (start, dec->cur - start);
}
// loss of precision here
- return newSVnv (Atof (start));
+ return newSVnv (json_atof (start));
fail:
return 0;
@@ -1965,4 +2055,3 @@
XPUSHs (decode_json (jsonstr, &json, 0));
}
-
Modified: trunk/libjson-xs-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/debian/changelog?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/debian/changelog (original)
+++ trunk/libjson-xs-perl/debian/changelog Fri Mar 12 09:47:02 2010
@@ -1,3 +1,9 @@
+libjson-xs-perl (2.280-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Angel Abad <angelabad at gmail.com> Fri, 12 Mar 2010 10:46:44 +0100
+
libjson-xs-perl (2.270-1) unstable; urgency=low
[ Jonathan Yu ]
Modified: trunk/libjson-xs-perl/debian/copyright
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/debian/copyright?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/debian/copyright (original)
+++ trunk/libjson-xs-perl/debian/copyright Fri Mar 12 09:47:02 2010
@@ -1,20 +1,20 @@
-Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=59
+Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135
Maintainer: Marc Lehmann <schmorp at schmorp.de>
Source: http://search.cpan.org/dist/JSON-XS/
Name: JSON-XS
Files: *
-Copyright: 2007-2009, Marc Lehmann <schmorp at schmorp.de>
+Copyright: 2007-2010, Marc Lehmann <schmorp at schmorp.de>
License: Artistic or GPL-1+
Files: debian/*
-Copyright: 2010, Jonathan Yu <jawnsy at cpan.org>
- 2008-2009, Angel Abad (Ikusnet SLL) <angel at grupoikusnet.com>
+Copyright: 2007, Ivan Kohler <ivan-debian at 420.am>
+ 2008-2010, Angel Abad <angelabad at gmail.com>
+ 2008, Niko Tyni <ntyni at debian.org>
+ 2008, gregor herrmann <gregoa at debian.org>
2009, Ansgar Burchardt <ansgar at 43-1.org>
2009, Ryan Niebur <ryanryan52 at gmail.com>
- 2008, Niko Tyni <ntyni at debian.org>
- 2008, gregor herrmann <gregoa at debian.org>
- 2007, Ivan Kohler <ivan-debian at 420.am>
+ 2010, Jonathan Yu <jawnsy at cpan.org>
License: Artistic or GPL-1+
License: Artistic
Modified: trunk/libjson-xs-perl/eg/bench
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjson-xs-perl/eg/bench?rev=54158&op=diff
==============================================================================
--- trunk/libjson-xs-perl/eg/bench (original)
+++ trunk/libjson-xs-perl/eg/bench Fri Mar 12 09:47:02 2010
@@ -5,10 +5,10 @@
# which modules to test (JSON::PP usually excluded because its so slow)
my %tst = (
# "JSON" => ['JSON::encode_json $perl' , 'JSON::decode_json $json'],
-# "JSON::PP" => ['$pp->encode ($perl)' , '$pp->decode ($json)'],
+ "JSON::PP" => ['$pp->encode ($perl)' , '$pp->decode ($json)'],
"JSON::DWIW/FJ" => ['$dwiw->to_json ($perl)' , '$dwiw->from_json ($json)'],
"JSON::DWIW/DS" => ['$dwiw->to_json ($perl)' , 'JSON::DWIW::deserialize $json'],
- "JSON::PC" => ['$pc->convert ($perl)' , '$pc->parse ($json)'],
+# "JSON::PC" => ['$pc->convert ($perl)' , '$pc->parse ($json)'],
"JSON::Syck" => ['JSON::Syck::Dump $perl' , 'JSON::Syck::Load $json'],
"JSON::XS" => ['encode_json $perl' , 'decode_json $json'],
"JSON::XS/2" => ['$xs2->encode ($perl)' , '$xs2->decode ($json)'],
More information about the Pkg-perl-cvs-commits
mailing list