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