diff mbox series

[bug#53317] Add guile-srfi-189.

Message ID 20220117132006.21710-1-attila@lendvai.name
State Accepted
Headers show
Series [bug#53317] Add guile-srfi-189. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Attila Lendvai Jan. 17, 2022, 1:20 p.m. UTC
* gnu/packages/guile-xyz.scm (guile-srfi-189): New variable.
---

this is mimicing guile-srfi-180.

please note that there's quite an anomaly among the guile-srfi packages,
including which guile they depend on, and the use of native-inputs vs.
inputs. it may be worth cleaning that up for someone with a better
overview of what's going on here.

 gnu/packages/guile-xyz.scm | 45 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

Comments

Attila Lendvai Jan. 17, 2022, 1:49 p.m. UTC | #1
you can test it using:

```
$ ./pre-inst-env guix shell guile guile-srfi-189 -- guile
GNU Guile 3.0.7

[...]

scheme@(guile-user)> (use-modules (srfi srfi-189))
scheme@(guile-user)> (nothing)
$1 = #<<nothing>>
scheme@(guile-user)>
```
jgart Jan. 17, 2022, 11:13 p.m. UTC | #2
Hi Attila,

I added this package to Guix 'R Us as a pre-release:

https://git.sr.ht/~whereiseveryone/guixrus/commit/983d105cc22b81b2fe009360f0977510afb69cc2

Great stuff! Thanks!

all best,

jgart

gemini://whereiseveryone.srht.site/
https://whereiseveryone.srht.site/
Ludovic Courtès Jan. 18, 2022, 9:44 p.m. UTC | #3
Hi,

Attila Lendvai <attila@lendvai.name> skribis:

> * gnu/packages/guile-xyz.scm (guile-srfi-189): New variable.
> ---
>
> this is mimicing guile-srfi-180.
>
> please note that there's quite an anomaly among the guile-srfi packages,
> including which guile they depend on, and the use of native-inputs vs.
> inputs. it may be worth cleaning that up for someone with a better
> overview of what's going on here.

I think it’s fine.

Applied, thanks!

Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 74567830e6..6e46a8f376 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3173,6 +3173,51 @@  (define-public guile-srfi-180
 API.")
       (license license:expat))))
 
+(define-public guile-srfi-189
+  (let ((commit "a0e3786702956c9e510d92746474ac988c2010ec")
+        (revision "0"))
+    (package
+      (name "guile-srfi-189")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               ;; This is a fork of:
+               ;; (url "https://github.com/scheme-requests-for-implementation/srfi-189")
+               ;; Upstream merge requested at:
+               ;; https://github.com/scheme-requests-for-implementation/srfi-189/pull/21
+               ;; TODO switch over to the official repo when the PR gets merged
+               (url "https://github.com/attila-lendvai-patches/srfi-189")
+               (commit commit)))
+         (sha256
+          (base32
+           "0iqv4sjwbp4k87r9l9abzbs5yjcljm69m91kb1ypb03b0rx7napy"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             (delete-file "test-syntax.scm")
+             (delete-file "test.scm")))
+         (file-name (git-file-name name version))))
+      (build-system guile-build-system)
+      (arguments
+       '(#:not-compiled-file-regexp "srfi/189\\.scm$")) ; it's INCLUDE'd
+      (native-inputs
+       (list guile-3.0))
+      (propagated-inputs
+       (list guile-srfi-145))
+      (home-page "https://srfi.schemers.org/srfi-189/")
+      (synopsis "Scheme SRFI implementation of Maybe and Either")
+      (description
+       "This SRFI defines two disjoint immutable container types known as
+Maybe and Either, both of which can contain objects collectively known
+as their payload.  A Maybe object is either a Just object or the unique
+object Nothing (which has no payload); an Either object is either a Right
+object or a Left object.  Maybe represents the concept of optional values;
+Either represents the concept of values which are either correct (Right)
+or errors (Left).")
+      (license license:expat))))
+
 (define-public emacsy
   (package
     (name "emacsy")