summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip McGrath <philip@philipmcgrath.com>2022-02-27 16:29:17 -0500
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2022-03-04 23:44:33 +0100
commitb639b36de2addf1aa40e9b260f048288face3ce3 (patch)
tree35a9d845ec282500bca252db1537ee9c1bbb832f
parentf79049caae7d8676d95db0b40c0f186572e504fd (diff)
downloadguix-patches-b639b36de2addf1aa40e9b260f048288face3ce3.tar
guix-patches-b639b36de2addf1aa40e9b260f048288face3ce3.tar.gz
gnu: chez-mit: Support chez-scheme-for-racket.
Racket's variant of Chez Scheme defines 'string->uninterned-symbol', which conflicts with the definition from '(chez mit)'. See discussion at <https://github.com/racket/racket/issues/4151>. * gnu/packages/chez.scm (chez-mit)[origin]<snippet>: Add workaround for chez-scheme-for-racket. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r--gnu/packages/chez.scm24
1 files changed, 23 insertions, 1 deletions
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index da267d3616..5d5108a2b1 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -949,7 +949,29 @@ strings.")
(commit (string-append "v" version))))
(sha256
(base32 "0c7i3b6i90xk96nmxn1pc9272a4yal4v40dm1a4ybdi87x53zkk0"))
- (file-name (git-file-name name version))))
+ (file-name (git-file-name name version))
+ (snippet
+ ;; Workaround for chez-scheme-for-racket.
+ ;; See: https://github.com/racket/racket/issues/4151
+ #~(begin
+ (use-modules (guix build utils))
+ (substitute* "mit/core.sls"
+ (("[(]import ")
+ "(import (only (chezscheme) import)\n")
+ (("[(]define string->uninterned-symbol gensym[)]")
+ (format #f "~s"
+ '(begin
+ (import (only (chezscheme)
+ meta-cond
+ library-exports))
+ (meta-cond
+ ((memq 'string->uninterned-symbol
+ (library-exports '(chezscheme)))
+ (import (only (chezscheme)
+ string->uninterned-symbol)))
+ (else
+ (define string->uninterned-symbol
+ gensym)))))))))))
(build-system gnu-build-system)
(inputs
(list chez-srfi)) ; for tests