./textproc/guile-json, JSON module for Guile

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.7.3, Package name: guile-json-4.7.3, Maintainer: nikita

guile-json is a JSON module for Guile. It supports parsing
and building JSON documents according to
the http://json.org specification.

* Complies with http://json.org specification.
* Builds JSON documents programmatically using scheme data types.
* Allows JSON pretty printing.


Required to run:
[lang/guile30]

Master sites:

Filesize: 160.599 KB

Version history: (Expand)


CVS history: (Expand)


   2022-11-12 08:42:17 by Nikita | Files touched by this commit (2) | Package updated
Log message:
textproc/guile-json: update to 4.7.2

Changelog:

    record: also fix nested record for vectors

    bump version to 4.7.2

    record: don't call scm->record if value is *unspecified* in
    (define-json-type)

    Given the following example:

       (define-json-type <account>
         (id)
         (username)
         (omitted "omitted" <omitted>)
         (boolean))

       (define-json-type <omitted>
         (name))

    If `omitted` is *unspecified* there's no need to keep going through
    that field.

    This also rolls back part of commit 029212e.

    Fixes #78
   2022-05-09 10:45:39 by Nikita | Files touched by this commit (2)
Log message:
guile-json: Update to 4.7.1

Changelog (adapted from ChangeLog file):

4.7.1:
  records: allow optional nested records
  json/record.scm: Fix spelling of "Additionally".
   2022-03-14 16:21:39 by Nikita | Files touched by this commit (2)
Log message:
guile-json: build with guile30
   2022-01-21 17:34:59 by Nikita | Files touched by this commit (2)
Log message:
guile-json: Update to 4.7.0

Changelog:

No Changelog.
   2021-12-17 15:07:09 by Nikita | Files touched by this commit (3)
Log message:
textproc/guile-json: Update to 4.5.2

ChangeLog (from NEWS):

* Version 4.5.2 (Feb 3, 2021)
  - Add missing modules to record.scm.

* Version 4.5.1 (Jan 11, 2020)
  - Allow false values in JSON mappings.
    (Fixes #70)

* Version 4.5.0 (Jan 3, 2020)
  - Introduce (define-json-type) a much simpler way to define JSON
    objects and record mappings. It makes use of the existing
    (define-json-mapping).

* Version 4.4.1 (Nov 29, 2020)
  - Fixed a few parsing issues from JSON Parsing Test Suite
    (https://github.com/nst/JSONTestSuite).
    (Fixes #67)

* Version 4.4.0 (Oct 22, 2020)
  - Record-JSON mapping now can define another optional procedure
    record->scm to convert a record to an alist.  (Fixes #63)

  - Record-JSON mapping now allows using *unspecified* values to
    indicate a field record should not be serialized.  (Fixes #61)

  - Improve pretty printing.
    (thanks to Jonas Schürmann)

* Version 4.3.2 (Jul 23, 2020)
  - Fix unicode for values from E000 and upwards.
    (thanks again to pkill9 and RhodiumToad from #guile)

* Version 4.3.1 (Jul 22, 2020)
  - Fix unicode codepoint with surrogate pairs.
    (thanks to pkill9 and RhodiumToad from #guile)

* Version 4.3.0 (Jul 3, 2020)
  - Make RECORD->JSON optional in (define-json-mapping).

* Version 4.2.0 (Jun 30, 2020)
  - Introduce (define-json-mapping) which allows converting a JSON
    object into a record type and vice versa. The initial code for
    this feature was copied from the GNU Guix project.
   2021-10-26 13:23:42 by Nia Alarie | Files touched by this commit (1161)
Log message:
textproc: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Unfetchable distfiles (fetched conditionally?):
./textproc/convertlit/distinfo clit18src.zip
   2021-10-07 17:02:49 by Nia Alarie | Files touched by this commit (1162)
Log message:
textproc: Remove SHA1 hashes for distfiles
   2020-06-22 10:01:49 by Nikita | Files touched by this commit (2)
Log message:
textproc/guile-json: Update to 4.1.0

* Version 4.1.0 (Jun 6, 2020)

  - Speed up number parsing by a 2x factor by avoiding using textual ports.

  - Simplify unicode string builder.

  - Improve string builder performance by not going back and forth with lists,
    strings and characters.

* Version 4.0.1 (May 17, 2020)

  - (scm->json-string) #:validate keyword argument should default to true as
    stated in the documentation.

* Version 4.0.0 (May 16, 2020)

Breaking changes:

  - (scm->json) and (scm->json-string) #:espace keyword argument has been
    renamed to #:solidus.

  - JSON null now defaults to the null symbol. This can be changed in all
    public functions with the #:null keyword argument.

Bug fixes and improvements:

  - Fix parsing of invalid numbers (e.g. "-").

  - Go back to using (cond) instead of (match) since (match) reduces
    performance.

  - The json-parser record type has been removed as the record only contained
    the port. Removing the need to access records also had a slight
    performance increase.

  - Use a plain list to read strings which brings significant speed
    improvements.

  - Replace `display` with `put-string` on JSON builder.

  - Don't use map to parse expected string, simply use (string-ref).
    (thanks to Linus Björnstam)

  - Build array list with (cons) and (reverse). Big performance increase.
    (suggested by Linus Björnstam)

  - Check (eof-object?) last instead of first. This avoids unnecessary checks
    which is the regular use-case.
    (suggested by Linus Björnstam)

  - Use string ports to parse numbers.
    (suggested by Linus Björnstam)

  - Don't need to use character-sets to detect whitespaces. JSON only defines
    four possible types of whitespaces: space, linefeed, carriage return and
    horizontal tab.
    (suggested by Linus Björnstam)

* Version 3.5.0 (Apr 21, 2020)

  - Simplify parser by using `match`. Idea taken from Chickadee's JSON parser
    (https://dthompson.us/projects/chickadee.html). This also made it easier
    to clean up some functions.

  - Better handling of invalid numbers.

  - Improve handling of EOF. Most parsing functions were not taking care of
    it.

  - Fix error when parsing objects with commas and no following elements are
    found.

* Version 3.4.0 (Apr 11, 2020)

  - Fix parsing 0 with an exponent.
    (Fixes #55)

  - Fix cross compilation.
    (thanks to Jan Nieuwenhuizen)