diff mbox series

[bug#48867] gnu: Add guile-define.

Message ID b1f9e67d6c0b16a07e4e90cbf49c463392d66390.1622973318.git.public@yoctocell.xyz
State Accepted
Headers show
Series [bug#48867] gnu: Add guile-define. | 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

Xinglu Chen June 6, 2021, 9:55 a.m. UTC
* gnu/packages/guile-xyz.scm (guile-define): New variable.
---
 gnu/packages/guile-xyz.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)


base-commit: 9caf7112ee50af26fbc4c1bd3c337f1f86b710af

Comments

Ludovic Courtès June 8, 2021, 9:26 p.m. UTC | #1
Hi,

Xinglu Chen <public@yoctocell.xyz> skribis:

> * gnu/packages/guile-xyz.scm (guile-define): New variable.

[...]

> +      (native-inputs
> +       `(("guile" ,guile-3.0)))
> +      (home-page "https://hg.sr.ht/~bjoli/guile-define")
> +      (synopsis "Definitions in expression contexts for Guile")
> +      (description "This package provides a utility macro to allow
> +@code{define}s in expression contexts of function bodies.")

This may have been useful with Guile 2.x but it’s useless with 3.0,
which already allows that:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (version)
$9 = "3.0.7"
scheme@(guile-user)> (define (divide-minus-one a b)
		       (when (= b 1) (error "We don't allow that here"))
		       (define b* (- b 1))
		       (/ a b*))
scheme@(guile-user)>
--8<---------------cut here---------------end--------------->8---

So either we make the package depend on 2.x, or we drop it.  Dropping it
is probably the best option if there are no dependents.

Thoughts?

Ludo’.
Xinglu Chen June 9, 2021, 11:15 a.m. UTC | #2
On Tue, Jun 08 2021, Ludovic Courtès wrote:

> Hi,
>
> Xinglu Chen <public@yoctocell.xyz> skribis:
>
>> * gnu/packages/guile-xyz.scm (guile-define): New variable.
>
> [...]
>
>> +      (native-inputs
>> +       `(("guile" ,guile-3.0)))
>> +      (home-page "https://hg.sr.ht/~bjoli/guile-define")
>> +      (synopsis "Definitions in expression contexts for Guile")
>> +      (description "This package provides a utility macro to allow
>> +@code{define}s in expression contexts of function bodies.")
>
> This may have been useful with Guile 2.x but it’s useless with 3.0,
> which already allows that:
>
> --8<---------------cut here---------------start------------->8---
> scheme@(guile-user)> (version)
> $9 = "3.0.7"
> scheme@(guile-user)> (define (divide-minus-one a b)
> 		       (when (= b 1) (error "We don't allow that here"))
> 		       (define b* (- b 1))
> 		       (/ a b*))
> scheme@(guile-user)>
> --8<---------------cut here---------------end--------------->8---
>
> So either we make the package depend on 2.x, or we drop it.  Dropping it
> is probably the best option if there are no dependents.
>
> Thoughts?

Oh, I didn’t know that, then I think it’s fine to drop the package.
diff mbox series

Patch

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 6db5134344..6a84e5e052 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1230,6 +1230,32 @@  using S-expressions.")
 tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
     (license license:gpl3+)))
 
+(define-public guile-define
+  (let ((changeset "76881ea2bb68")
+        (revision "0"))
+    (package
+      (name "guile-define")
+      (version (hg-version "0.0.0" revision changeset))
+      (source
+       (origin
+         (method hg-fetch)
+         (uri (hg-reference
+               (url "https://hg.sr.ht/~bjoli/guile-define")
+               (changeset changeset)))
+         (file-name (hg-file-name name version))
+         (sha256
+          (base32 "1ns8p1j88x0ms8xalagz3qxjkzzvcg3dppz4balfcnr5pzy8zm4p"))))
+      (build-system guile-build-system)
+      (arguments
+       `(#:scheme-file-regexp "define\\.scm$"))
+      (native-inputs
+       `(("guile" ,guile-3.0)))
+      (home-page "https://hg.sr.ht/~bjoli/guile-define")
+      (synopsis "Definitions in expression contexts for Guile")
+      (description "This package provides a utility macro to allow
+@code{define}s in expression contexts of function bodies.")
+      (license license:isc))))
+
 (define-public guile-email
   (package
     (name "guile-email")