Skip to content
  1. Nov 18, 2012
    • Henrik Hjelte's avatar
      version 0.5.0 · db462282
      Henrik Hjelte authored
      Ignore-this: aa3a3b933a4c89e2ee1f911a7d817509
      
      darcs-hash:f4113722f0acc0f3ab7f60d9e880a8d19ca0292c
      db462282
  2. Nov 04, 2012
    • rpgoldman's avatar
      remove-read-from-string-from-parse-number · 63f7a7e8
      rpgoldman authored
      Ignore-this: 61d7e8213b5e0fc764ebfbe7cc199c66
      
      PARSE-NUMBER used to use READ-FROM-STRING.  This was causing problems with
      some application-building systems. We replace use of the reader (through
      read-from-string) by PARSE-NUMBER.
      
      darcs-hash:83714c5dde3da6e58d17766ea6311529e4bda293
      63f7a7e8
  3. Jun 25, 2011
  4. Jun 24, 2011
  5. Jun 23, 2011
  6. Jun 22, 2011
  7. Jan 15, 2010
  8. Jan 14, 2010
    • rpgoldman's avatar
      add-json-rpc-2.0-support · e1121307
      rpgoldman authored
      A large number of changes that provide json-rpc-2.0 support to
      cl-json.  Tests are included.
      
      darcs-hash:79170f123f878bab89580228742102860b5930a9
      e1121307
    • rpgoldman's avatar
      record-function-names-not-functions · b21341a9
      rpgoldman authored
        Originally, when one defined a function to be exported as a json-rpc
        function, the function object was cached in a hash table.  This made it
        very difficult to debug with the CL tracer, since the trace-encapsulated
        function wouldn't make it onto the function table.  However, this problem
        goes away with this patch, which caches the function /name/ (a symbol)
        instead of the function itself.  Since json-rpc functions are invoked
        with APPLY, nothing else need change.  Slightly less efficient, but
        JSON-RPC is never going to be that efficient anyway.
      
      darcs-hash:6cbf64e6a3c7c2f1a6a3d0ef3c62f01b4294bb0f
      b21341a9
  9. Jan 13, 2010
  10. Jan 10, 2010
    • rpgoldman's avatar
      reorganized-json-rpc-encoding · fb268b55
      rpgoldman authored
      Reorganized JSON-RPC result encoding, using CLOS, to make it more flexible,
      along lines discussed on the mailing list.
      
      Also added /partial/ support for JSON-RPC 2.0.
      
      This support is not yet tested in the test suite.
      
      darcs-hash:9e5c2e2612459c486253c91b20feea833f866b75
      fb268b55
    • rpgoldman's avatar
      fixed-allegro-reader-error · 64dbb25f
      rpgoldman authored
      darcs-hash:8f1e9fa6f270ca341a9f3998952836bd356d624d
      64dbb25f
  11. Jan 05, 2010
    • rpgoldman's avatar
      catch-read-numeric-overflow-on-allegro · 34680276
      rpgoldman authored
      On Allegro Common Lisp, when there's a numeric overflow in the reader,
      they don't signal a reader-error, but a simple-error (I have reported this
      and they may fix it in the future).  This patch makes use of information
      about that simple-error to catch the case in parse-number and treat it
      the way parse-number overflows are handled on other lisps.
      
      darcs-hash:699f0644f511321c9970c997685f78c64a1ec573
      34680276
  12. Dec 30, 2009
    • rpgoldman's avatar
      json-rpc-handle-notifications · 7a362e8b
      rpgoldman authored
      A couple of modifications to hande JSON-RPC notifications (like normal requests, but they
      don't expect a response).
      
      Also made it possible to invoke a helper function of invoke-json with the pieces of the
      request.  This is necessary because you can't use the standard invoke-rpc if you've
      already parsed the JSON message from the client.
      
      darcs-hash:291c0ac880ce33534006a5c633c08f7d6fb9dc94
      7a362e8b
  13. Jan 06, 2010
  14. Jan 02, 2010
    • rpgoldman's avatar
      trap-acl-overflow-on-read · 86221e84
      rpgoldman authored
      Allegro just raises a simple-error when it reads a floating point
      number that's too big.  So we have to catch simple errors when
      in parse-number on allegro.
      
      darcs-hash:1c9f3f52d57e5b20a063e9e396b299420ffa01aa
      86221e84
  15. Oct 09, 2009
  16. Aug 10, 2009
    • Henrik Hjelte's avatar
      simplified-camel-case by Leslie P. Polzer · b8cc7954
      Henrik Hjelte authored
      Ignore-this: 8d2d1d112d69b0abfe2194010da5cc35
      
      darcs-hash:02f255d6976f67f250d774166242f70fbcc175bf
      b8cc7954
    • Henrik Hjelte's avatar
      safe-json-intern a version that does not intern. · fe5f2b1a
      Henrik Hjelte authored
      Ignore-this: 44ab030099e2258d7acb37b647911fe4
      The default json-intern is not safe (spotted by Red Daly). Interns of
      many unique symbols could potentially use a lot of memory.  An attack
      could exploit this by submitting something that is passed through
      cl-json that has many very large, unique symbols. This version is safe
      in that respect because it only allows symbols that already exists.
      
      darcs-hash:03353858e9fcb248ba6e6252e4198a85ca3dbc4a
      fe5f2b1a
    • Henrik Hjelte's avatar
      From Red Daly, *identifier-name-to-key* · 11bf0c4b
      Henrik Hjelte authored
      Ignore-this: a4a08ed5960fb2417c584d6a86277291
      
      darcs-hash:f018ff31ccb1722268e520858ee8d3eb00f48b84
      11bf0c4b
  17. May 02, 2009
    • Boris Smilga's avatar
      Optimized string decoding. · f7602ba9
      Boris Smilga authored
      1) Through the use of string-stream accumulators.
      2) By compiling escape char lookup as a CASE construction.
      
      darcs-hash:e45e27051c13fd4bccf1c3e605db8f28ba3cc6af
      f7602ba9
  18. Apr 20, 2009
  19. Mar 21, 2009
  20. Mar 13, 2009
  21. Feb 23, 2009
    • Boris Smilga's avatar
      Removed symboltojs.lisp, as the functionality of SYMBOL-TO-JS is subsumed by... · 0a58de72
      Boris Smilga authored
      Removed symboltojs.lisp, as the functionality of SYMBOL-TO-JS is subsumed by LISP-TO-CAMEL-CASE.  Fixed conflicts which the patches of Dec. 8, 2008 were causing with more recent ones.
      
      darcs-hash:92ef305aa1ff60d80190adab53abc5b9bbd0390e
      0a58de72
    • Boris Smilga's avatar
      Improvements and clarifications of code in light of the new documentation. · bacd9b86
      Boris Smilga authored
      * Improved error handling: several ostensibly exceptional
        situations which were previously handled inconsistently (or not
        handled at all) are now reified as condition types and
        restarts, among them new ones: UNENCODABLE-VALUE-ERROR,
        SUBSTITUTE-PRINTED-REPRESENTATION, BIGNUMBER-STRING,
        RATIONAL-APPROXIMATION, PLACEHOLDER.
      
      * Added function DECODE-JSON-FROM-SOURCE.
      
      * Encoding and decoding operations shall henceforth have their
        own default streams, *JSON-OUTPUT* and *JSON-INPUT*.
      
      * It is now permissible to use strings as prototypes.  (String
        prototype is interpreted as the name of the class, interned in
        the current *JSON-SYMBOLS-PACKAGE*.)
      
      * Fixed some bugs (and sources of compiler warnings).
      
      * Fixed some documentation strings, argument naming and
        passing conventions, and return values.
      
      * Fixed some copyright notices.
      
      * Improved implementation of JSON-BIND.
      
      * Put CLOS semantics under conditional compilation guards.
      
      * Advanced the version number to 0.4.0.
      
      darcs-hash:64cf95786ab3b66ac3531570ba62f46e3fa69d08
      bacd9b86
  22. Jan 24, 2009
  23. Jan 22, 2009
    • Boris Smilga's avatar
      Modified the way objects are decoded to CLOS objects in the absence of prototypes. · 684124aa
      Boris Smilga authored
      Originally, an anonymous singleton class was created for each unprototyped
      object received by the decoder.  It turned out that this approach can lead to
      strong degradation of performance.  E. g., OpenMCL employs an optimization
      technique which includes caching methods of generic function based on the
      classes of their arguments.  If classes proliferate beyond measure, the effect
      of caching is the opposite of intended.
      
      The new approach is to keep a table of classes (mapping from lists of classes
      such as prototyped lispSuperclasses to anonymous fluid classes).  For every
      received unprototyped object we either create a new entry or, if a class with
      exactly the same list of superclasses is already in the table, update it to
      include the new slots.  Anyway, a typical remote party (such as a web app)
      can be expected to have only a few different object configurations.
      
      The code is now much cleaner and includes a rounded-up interface to fluid
      classes.  A lot of docstrings has been added as well.
      
      darcs-hash:f8c70831cdf301fc2608a0dece1df2062dad2dbe
      684124aa
    • Boris Smilga's avatar
      Made *JSON-ARRAY-TYPE* a custom variable and assigned specific values for the two simple semantics. · 0eca00fb
      Boris Smilga authored
      darcs-hash:49bef834d27b3694c15202a172f631932ff93328
      0eca00fb
    • Boris Smilga's avatar
      Updated export list of the package JSON. · 88488c63
      Boris Smilga authored
      darcs-hash:84edff4234aacc57ba7b9d85a2e9e0abab9d66bf
      88488c63