OK, I have a patch along the lines of my previous email. I will try to convince darcs to let me pass it on. It passes tests on ACL 8.2 SBCL 1.1 CCL 1.8 clisp 2.49 ABCL 1.0.1 [but I had to fix ARNESI, see below, or the tests wouldn't run] It *FAILS* the tests on ECL, seemingly because of problems with floating point comparisons: JSON-NUMBER []: (DECODE-JSON-FROM-STRING "-2.3e3") evaluated to -2300.0002, which is not = to -2300.0.. -------------------------------- -------------------------------- JSON-NUMBER []: (DECODE-JSON-FROM-STRING "-3e4") evaluated to -30000.004, which is not = to -30000.0.. -------------------------------- -------------------------------- JSON-NUMBER []: (DECODE-JSON-FROM-STRING "3e4") evaluated to 30000.004, which is not = to 30000.0.. -------------------------------- -------------------------------- JSON-NUMBER []: (DECODE-JSON-FROM-STRING "2e40") evaluated to 2.0000000000000315e40, which is not = to 2.e40.. -------------------------------- -------------------------------- JSON-NUMBER []: (WITH-FP-OVERFLOW-HANDLER (INVOKE-RESTART 'BIGNUMBER-STRING "BIG:") (DECODE-JSON-FROM-STRING "2e444")) evaluated to #.ext::single-float-positive-infinity, which is not EQUALP to "BIG:2e444".. -------------------------------- -------------------------------- JSON-NUMBER []: Unexpected Error: #<a ARITHMETIC-ERROR> #<a ARITHMETIC-ERROR>.. I do not know how to fix these. I need to check and see if these tests pass under the current version of CL-JSON with ECL, or if the failures are independent of my modifications. * I was not able to test on ABCL because the matcher function definition in ARNESI (which is used by FiveAM), cannot be compiled in ABCL: (defstruct (match-state (:conc-name ||)) target bindings matched) Changing the :CONC-NAME to "" fixed the problem. I don't know if this is a bug in ABCL or ARNESI.