summary refs log tree commit diff
path: root/gnu/packages/clojure.scm
diff options
context:
space:
mode:
authorr0man <roman@burningswell.com>2022-07-16 20:24:29 +0200
committerLudovic Courtès <ludo@gnu.org>2022-07-23 00:39:57 +0200
commit666f12f125d3fd5b36d84ab20271f0a5519e53a5 (patch)
tree8233bfd6154cddbe9b51b72007d54d114eddebf1 /gnu/packages/clojure.scm
parentf65270c799e4897ae1785b7dacb1fc9ac07d3358 (diff)
downloadguix-666f12f125d3fd5b36d84ab20271f0a5519e53a5.tar.gz
gnu: clojure-instaparse: Update to 1.4.12.
This patch updates clojure-instaparse to 1.4.12. Due to the following AOT
related error I disabled AOT compilation for this package.

```
starting phase `build'
Execution error (IllegalArgumentException) at instaparse.auto-flatten-seq/fn$G (auto_flatten_seq.cljc:7).
No implementation of method: :conj-flat of protocol: #'instaparse.auto-flatten-seq/ConjFlat found for class: instaparse.auto_flatten_seq.AutoFlattenSeq
```

This seems to be a known issue with AOT compilation. The issue has been
discussed [1] and seems to be still an open issue.

[1] https://github.com/Engelberg/instaparse/issues/85

* gnu/packages/clojure.scm (clojure-instaparse): Update to 1.4.12.
[arguments]: Add 'fix-import' phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/clojure.scm')
-rw-r--r--gnu/packages/clojure.scm22
1 files changed, 17 insertions, 5 deletions
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index f2e08eb539..9876192f5f 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -411,8 +411,7 @@ lazy - should allow parsing and emitting of large XML documents")
     (license license:epl1.0)))
 
 (define-public clojure-instaparse
-  (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
-        (version "1.4.9")) ; upstream forget to tag this release
+  (let ((version "1.4.12"))
     (package
       (name "clojure-instaparse")
       (version version)
@@ -420,14 +419,27 @@ lazy - should allow parsing and emitting of large XML documents")
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/Engelberg/instaparse")
-                      (commit commit)))
+                      (commit (string-append "v" version))))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "002mrgin4z3dqy88r1lak7smd0m7x8d22vmliw0m6w6mh5pa17lk"))))
+                  "1xdiwsv1dc8mvrmvgs4xdqk3z6ddsammc6brhcb771yhimx8jjcr"))))
       (build-system clojure-build-system)
       (arguments
-       '(#:doc-dirs '("docs/")))
+       '(;; Disabled AOT, because of failing test: No implementation of
+         ;; method: :conj-flat of protocol:
+         ;; #'instaparse.auto-flatten-seq/ConjFlat found for class:
+         ;; instaparse.auto_flatten_seq.AutoFlattenSeq
+         #:aot-exclude '(#:all)
+         #:doc-dirs '("docs/")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-import
+             (lambda _
+               (substitute*
+                   "test/instaparse/defparser_test.cljc"
+                 (("AssertionError")
+                  "Exception")))))))
       (synopsis "No grammar left behind")
       (description
        "Instaparse aims to be the simplest way to build parsers in Clojure.