Subject: [bug#43119] [PATCH] gnu: Add guile-srfi-180.

From: Martin Becze <[email-masked]>
Date: Mon, 31 Aug 2020 04:11:15 -0500

>> Do you think they could be fixed?

Fixed in the attached patch.

 > Even though this description is a copy of the SRFI abstract, it seems a
 > bit vague. I would change "describes" to "implements" or "provides". The
 > affirmation "JSON bigger than memory" could also be expanded I think.

I tried to spruce it up a bit. Thanks for the feedback!

On 8/31/20 3:14 AM, Mathieu Othacehe wrote:
> 
> Hey,
> 
>>> * gnu/packages/guile-xyz.scm (guile-srfi-180): New variable.
> 
> I'm getting a whole bunch of warnings when building srfi/180/body.scm,
> such as:
> 
> --8<---------------cut here---------------start------------->8---
> srfi/180/body.scm:237:11: warning: possibly unbound variable `textual-port?'
> srfi/180/body.scm:198:4: warning: possibly unbound variable `eof-object'
> srfi/180/body.scm:195:2: warning: possibly unbound variable `assume'
> srfi/180/body.scm:191:23: warning: possibly unbound variable `make-json-error'
> srfi/180/body.scm:190:29: warning: possibly unbound variable `make-json-error'
> srfi/180/body.scm:186:16: warning: possibly unbound variable `valid-number?'
> srfi/180/body.scm:167:29: warning: possibly unbound variable `make-json-error'
> srfi/180/body.scm:146:59: warning: possibly unbound variable `bitwise-ior'
> srfi/180/body.scm:111:15: warning: possibly unbound variable `make-json-error'
> srfi/180/body.scm:106:15: warning: possibly unbound variable `make-json-error'
> --8<---------------cut here---------------end--------------->8---
> 
> Do you think they could be fixed?
> 
>>> +       "This library describes a JavaScript Object Notation (JSON) parser and printer.
>>> +It supports JSON that may be bigger than memory.")
> 
> Even though this description is a copy of the SRFI abstract, it seems a
> bit vague. I would change "describes" to "implements" or "provides". The
> affirmation "JSON bigger than memory" could also be expanded I think.
> 
> Thanks,
> 
> Mathieu
> 
>From 8a32d9184911b6fb615cf42c5e54ae5c63e939e8 Mon Sep 17 00:00:00 2001
From: Martin Becze <[email-masked]>
Date: Sun, 30 Aug 2020 13:06:14 -0500
Subject: [PATCH v2] gnu: Add guile-srfi-180.

* gnu/packages/guile-xyz.scm (guile-srfi-180): New variable.
---
 gnu/packages/guile-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index fd16304f3f..a21b14eb59 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2888,6 +2888,46 @@ formatting combinators specified by
 more expressive and flexible than the traditional @code{format} procedure.")
       (license license:bsd-3))))
 
+(define-public guile-srfi-180
+  (let ((commit "9188bf9724c6d320ef804579d222e855b007b193")
+        (revision "0")
+        (url "https://github.com/scheme-requests-for-implementation/srfi-180.git"))
+    (package
+      (name "guile-srfi-180")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (commit commit)
+               (url url)))
+         (sha256
+          (base32
+           "08lf70rsak8mwfij55xc37pg9zg7c87fizmhz7ln46skzj68sl3y"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             (delete-file-recursively "srfi/files")
+             (delete-file "srfi/run-r7rs-checks.guile.scm")
+             (delete-file "srfi/run-r7rs-checks.scm")
+             (delete-file "srfi/check.scm")
+             #t))
+         (file-name (git-file-name name version))))
+      (build-system guile-build-system)
+      (arguments
+       '(#:not-compiled-file-regexp "body\\.scm$"))
+      (native-inputs
+       `(("guile" ,guile-3.0)))
+      (propagated-inputs
+       `(("guile-srfi-145" ,guile-srfi-145)))
+      (home-page "https://srfi.schemers.org/srfi-180/")
+      (synopsis "JSON parser and printer for Guile")
+      (description
+       "This library implements a JavaScript Object Notation (JSON) parser and printer.
+It also supports parsing JSON objects that may be bigger than memory with a streaming
+API.")
+      (license license:expat))))
+
 (define-public emacsy
   (package
     (name "emacsy")
-- 
2.28.0