gnu: lokke: Build with Guile 3.0.8.
* gnu/packages/guile.scm (guile-3.0-for-lokke): Remove. * gnu/packages/patches/guile-3.0.7-psyntax-nil.patch: Remove. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/guile-xyz.scm (lokke)[native-inputs]: Replace GUILE-3.0-FOR-LOKKE by GUILE-3.0-LATEST.
This commit is contained in:
parent
076e825dc5
commit
2b57d6b6bb
4 changed files with 4 additions and 76 deletions
|
@ -1239,7 +1239,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/guile-3.0-relocatable.patch \
|
%D%/packages/patches/guile-3.0-relocatable.patch \
|
||||||
%D%/packages/patches/guile-linux-syscalls.patch \
|
%D%/packages/patches/guile-linux-syscalls.patch \
|
||||||
%D%/packages/patches/guile-3.0-linux-syscalls.patch \
|
%D%/packages/patches/guile-3.0-linux-syscalls.patch \
|
||||||
%D%/packages/patches/guile-3.0.7-psyntax-nil.patch \
|
|
||||||
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
|
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
|
||||||
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
|
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
|
||||||
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
|
||||||
|
|
|
@ -5011,7 +5011,10 @@ (define-public lokke
|
||||||
libtool
|
libtool
|
||||||
gnu-gettext
|
gnu-gettext
|
||||||
pkg-config
|
pkg-config
|
||||||
guile-3.0-for-lokke))
|
|
||||||
|
;; Use Guile >= 3.0.8 to work around
|
||||||
|
;; <https://bugs.gnu.org/49305>.
|
||||||
|
guile-3.0-latest))
|
||||||
(inputs
|
(inputs
|
||||||
(list pcre2))
|
(list pcre2))
|
||||||
(synopsis "Clojure implementation in Guile")
|
(synopsis "Clojure implementation in Guile")
|
||||||
|
|
|
@ -405,17 +405,6 @@ (define-public guile-3.0-latest
|
||||||
;; its multi-stage build process for cross-module inlining.
|
;; its multi-stage build process for cross-module inlining.
|
||||||
((#:parallel-build? _ #f) #t)))))
|
((#:parallel-build? _ #f) #t)))))
|
||||||
|
|
||||||
(define-public guile-3.0-for-lokke
|
|
||||||
;; Work around a bug in 3.0.7 regarding #nil handling by psyntax:
|
|
||||||
;; <https://bugs.gnu.org/49305>. TODO: Replace by 3.0.8 when it's out.
|
|
||||||
(hidden-package
|
|
||||||
(package/inherit guile-3.0
|
|
||||||
(version (string-append (package-version guile-3.0) ".1"))
|
|
||||||
(source (origin
|
|
||||||
(inherit (package-source guile-3.0))
|
|
||||||
(patches (cons (search-patch "guile-3.0.7-psyntax-nil.patch")
|
|
||||||
(origin-patches (package-source guile-3.0)))))))))
|
|
||||||
|
|
||||||
(define-public guile-3.0/fixed
|
(define-public guile-3.0/fixed
|
||||||
;; A package of Guile that's rarely changed. It is the one used in the
|
;; A package of Guile that's rarely changed. It is the one used in the
|
||||||
;; `base' module, and thus changing it entails a full rebuild.
|
;; `base' module, and thus changing it entails a full rebuild.
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
commit d79a226359d28f4a1dc5df136e5544d699903a96
|
|
||||||
Author: Rob Browning <rlb@defaultvalue.org>
|
|
||||||
Date: Sat Jul 3 14:01:12 2021 -0500
|
|
||||||
|
|
||||||
Fix crash on #nil in syntaxes
|
|
||||||
|
|
||||||
In 3.0.7 (after 0cc799185576712d69f11fc794454f2f5447bef7 "Ensure
|
|
||||||
that (syntax ()) results in ("), the use of #nil in syntax-rules
|
|
||||||
expansions like this:
|
|
||||||
|
|
||||||
(define-syntax foo
|
|
||||||
(syntax-rules ()
|
|
||||||
((_ x) (eq? #nil x))))
|
|
||||||
|
|
||||||
(foo #t)
|
|
||||||
|
|
||||||
could cause a crash that looks like this:
|
|
||||||
|
|
||||||
ice-9/psyntax.scm:2795:12: In procedure syntax-violation:
|
|
||||||
Syntax error:
|
|
||||||
unknown location: unexpected syntax in form ()
|
|
||||||
|
|
||||||
To fix it, add another special case (the commit mentioned above
|
|
||||||
special-cased the empty list) to preserve #nil
|
|
||||||
|
|
||||||
* module/ice-9/psyntax.scm (gen-syntax): Preserve #nil.
|
|
||||||
* test-suite/tests/syntax.test: Test #nil in syntax expansions.
|
|
||||||
|
|
||||||
Closes: 49305
|
|
||||||
|
|
||||||
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
|
|
||||||
index 663d9275a..bd4bd6723 100644
|
|
||||||
--- a/module/ice-9/psyntax.scm
|
|
||||||
+++ b/module/ice-9/psyntax.scm
|
|
||||||
@@ -2157,6 +2157,7 @@
|
|
||||||
(lambda ()
|
|
||||||
(gen-syntax src #'(e1 e2 ...) r maps ellipsis? mod))
|
|
||||||
(lambda (e maps) (values (gen-vector e) maps))))
|
|
||||||
+ (x (eq? (syntax->datum #'x) #nil) (values '(quote #nil) maps))
|
|
||||||
(() (values '(quote ()) maps))
|
|
||||||
(_ (values `(quote ,e) maps))))))
|
|
||||||
|
|
||||||
diff --git a/test-suite/tests/syntax.test b/test-suite/tests/syntax.test
|
|
||||||
index a2999ac43..510e7104d 100644
|
|
||||||
--- a/test-suite/tests/syntax.test
|
|
||||||
+++ b/test-suite/tests/syntax.test
|
|
||||||
@@ -1684,6 +1684,16 @@
|
|
||||||
(hash interpreted most-positive-fixnum)
|
|
||||||
(hash compiled most-positive-fixnum))))
|
|
||||||
|
|
||||||
+(with-test-prefix "#nil in syntaxes"
|
|
||||||
+ (pass-if-equal "does not crash"
|
|
||||||
+ 42
|
|
||||||
+ (let ()
|
|
||||||
+ (define-syntax foo
|
|
||||||
+ (syntax-rules ()
|
|
||||||
+ ;; In 3.0.7 this would crash with
|
|
||||||
+ ;; unknown location: unexpected syntax in form ()
|
|
||||||
+ ((_ x) (when (eq? x #nil) 42))))
|
|
||||||
+ (foo #nil))))
|
|
||||||
|
|
||||||
;;; Local Variables:
|
|
||||||
;;; eval: (put 'pass-if-syntax-error 'scheme-indent-function 1)
|
|
Loading…
Reference in a new issue