summaryrefslogtreecommitdiff
path: root/gnu/packages/chez.scm
diff options
context:
space:
mode:
authorPhilip McGrath <philip@philipmcgrath.com>2022-05-09 02:02:50 -0400
committerLudovic Courtès <ludo@gnu.org>2022-05-12 10:30:08 +0200
commit3547bb6a66c32eb1deac46a98b40e2e051689ed3 (patch)
tree548375fe5cc84a4c006d5bc55883c9a17bbac123 /gnu/packages/chez.scm
parent4c0ac41ba4072677ed5876dacb8e17a7671f20d5 (diff)
downloadguix-patches-3547bb6a66c32eb1deac46a98b40e2e051689ed3.tar
guix-patches-3547bb6a66c32eb1deac46a98b40e2e051689ed3.tar.gz
gnu: chez-scheme-for-system: Adjust for bytecode backend.
Change 'chez-scheme-for-system' to return 'chez-scheme-for-racket' in two cases when it previously returned 'chez-scheme': 1. When 'chez-scheme' is not distributed with bootstrap bootfiles, since we can only cross-compile 'chez-scheme' for those systems; and 2. When neither 'chez-scheme' nor 'chez-scheme-for-racket' supports native code generation, since we will be able to use the ``portable bytecode'' backends of 'chez-scheme-for-racket' as soon as the issues in <https://racket.discourse.group/t/950> are resolved. * gnu/packages/chez.scm (chez-scheme-for-racket): Change condition. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/chez.scm')
-rw-r--r--gnu/packages/chez.scm19
1 files changed, 11 insertions, 8 deletions
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index cae17580f8..7e6273f26a 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -69,14 +69,17 @@
(define* (chez-scheme-for-system #:optional
(system (or (%current-target-system)
(%current-system))))
- "Return 'chez-scheme' unless only 'chez-scheme-for-racket' supports SYSTEM,
-including support for native threads."
- (if (or
- ;; full support upstream
- (and=> (chez-upstream-features-for-system system)
- (cut memq 'threads <>))
- ;; no support anywhere
- (not (nix-system->chez-machine system)))
+ "Return 'chez-scheme' if it fully supports SYSTEM, including support for
+bootstrapping and native threads. Otherwise, return
+'chez-scheme-for-racket'."
+ (if (and=> (chez-upstream-features-for-system system)
+ (lambda (features)
+ (every (cut memq <> features)
+ '(threads
+ ;; We can cross-compile for platforms without
+ ;; bootstrap bootfiles, but we can't self-host
+ ;; on them short of adding more binary seeds.
+ bootstrap-bootfiles))))
chez-scheme
chez-scheme-for-racket))