diff mbox series

[bug#53878,v3,14/15] gnu: chez-and-racket-bootstrap: Add 'chez-scheme-for-system'.

Message ID 20220219064228.246917-15-philip@philipmcgrath.com
State Accepted
Headers show
Series Update Racket to 8.4. Adjust Chez Scheme packages. | 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

Philip McGrath Feb. 19, 2022, 6:42 a.m. UTC
* gnu/packages/chez-and-racket-bootstrap.scm (chez-scheme-for-system): New
procedure.
* gnu/packages/loko.scm (loko-scheme): Use 'chez-scheme-for-system'.
* gnu/packages/emacs-xyz.scm (emacs-geiser-chez): Likewise
* gnu/packages/chez.scm (chez-srfi):
(chez-web):
(chez-sockets):
(chez-matchable):
(chez-irregex):
(chez-fmt):
(chez-mit):
(chez-scmutils): Likewise.
---
 gnu/packages/chez-and-racket-bootstrap.scm | 14 +++++++++++++-
 gnu/packages/chez.scm                      | 16 ++++++++--------
 gnu/packages/emacs-xyz.scm                 |  2 +-
 gnu/packages/loko.scm                      |  2 +-
 4 files changed, 23 insertions(+), 11 deletions(-)

Comments

Liliana Marie Prikler Feb. 19, 2022, 8 p.m. UTC | #1
Am Samstag, dem 19.02.2022 um 01:42 -0500 schrieb Philip McGrath:
> +(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 (and (nix-system->chez-machine system)
> +           (not (and=> (chez-upstream-features-for-system system)
> +                       (cut memq 'threads <>))))
> +      chez-scheme-for-racket
> +      chez-scheme))
Given your previous explanation this series looks clean enough so far,
but this looks like a bug.  You probably want
(if (and (nix-system->chez-machine system)
    (and=> (chez-upstream-features-for-system system)
           (cut memq 'threads <>)))
    chez-scheme
    chez-scheme-for-racket)
This variant would in particular use chez-scheme-for-racket if nix-
system->chez-machine returns #f.

I can make that adjustment for you assuming I interpreted this
correctly.
diff mbox series

Patch

diff --git a/gnu/packages/chez-and-racket-bootstrap.scm b/gnu/packages/chez-and-racket-bootstrap.scm
index 458645f037..51032fc68f 100644
--- a/gnu/packages/chez-and-racket-bootstrap.scm
+++ b/gnu/packages/chez-and-racket-bootstrap.scm
@@ -46,7 +46,8 @@  (define-module (gnu packages chez-and-racket-bootstrap)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses)
                 #:prefix license:)
-  #:export (%racket-version
+  #:export (chez-scheme-for-system
+            %racket-version
             %racket-origin))
 
 ;; Commentary:
@@ -199,6 +200,17 @@  (define-module (gnu packages chez-and-racket-bootstrap)
 ;;
 ;; Code:
 
+(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 (and (nix-system->chez-machine system)
+           (not (and=> (chez-upstream-features-for-system system)
+                       (cut memq 'threads <>))))
+      chez-scheme-for-racket
+      chez-scheme))
+
 (define (chez-machine->nonthreaded machine)
   "Given a string MACHINE naming a Chez Scheme machine type, returns a string
 naming the nonthreaded machine type for the same architecture and OS as
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index be251798c3..d5007e0cfd 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -74,7 +74,7 @@  (define-public chez-srfi
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (arguments
      (list #:make-flags (chez-make-flags name version)
            #:test-target "test"
@@ -105,7 +105,7 @@  (define-public chez-web
           (base32 "1dq25qygyncbfq4kwwqqgyyakfqjwhp5q23vrf3bff1p66nyfl3b"))))
       (build-system gnu-build-system)
       (native-inputs
-       (list chez-scheme
+       (list (chez-scheme-for-system)
              ghostscript
              ;; FIXME: This package fails to build with the error:
              ;;     mktexpk: don't know how to create bitmap font for bchr8r
@@ -170,7 +170,7 @@  (define-public chez-sockets
           (base32 "1n5fbwwz51fdzvjackgmnsgh363g9inyxv7kmzi0469cwavwcx5m"))))
       (build-system gnu-build-system)
       (native-inputs
-       (list chez-scheme
+       (list (chez-scheme-for-system)
              chez-web
              (texlive-updmap.cfg (list texlive-pdftex))))
       (arguments
@@ -256,7 +256,7 @@  (define-public chez-matchable
     (inputs
      (list chez-srfi)) ; for tests
     (native-inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (arguments
      (list #:make-flags (chez-make-flags name version)
            #:test-target "test"
@@ -288,7 +288,7 @@  (define-public chez-irregex
     (propagated-inputs
      (list chez-srfi)) ; for irregex-utils
     (native-inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (arguments
      (list #:make-flags (chez-make-flags name version)
            #:test-target "test"
@@ -319,7 +319,7 @@  (define-public chez-fmt
     (propagated-inputs
      (list chez-srfi)) ; for irregex-utils
     (native-inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (arguments
      (list #:make-flags (chez-make-flags name version)
            #:test-target "chez-check"
@@ -382,7 +382,7 @@  (define string->uninterned-symbol
     (inputs
      (list chez-srfi))       ; for tests
     (native-inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (arguments
      (list #:make-flags (chez-make-flags name version)
            #:test-target "test"
@@ -413,7 +413,7 @@  (define-public chez-scmutils
     (inputs
      (list chez-srfi))       ; for tests
     (native-inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (propagated-inputs
      (list chez-mit chez-srfi))
     (arguments
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index cb7d4425af..24f5b1e9c1 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -450,7 +450,7 @@  (define-public emacs-geiser-chez
                 (string-append
                  "(eval-after-load 'geiser-impl '" all ")"))))))))
     (inputs
-     (list chez-scheme))
+     (list (chez-scheme-for-system)))
     (propagated-inputs
      (list emacs-geiser))
     (home-page "https://nongnu.org/geiser/")
diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm
index 74a649b8a1..a7ab12a0c4 100644
--- a/gnu/packages/loko.scm
+++ b/gnu/packages/loko.scm
@@ -71,7 +71,7 @@  (define-public loko-scheme
              #t)))))
     (native-inputs
      `(("akku" ,akku)
-       ("chez-scheme" ,chez-scheme)
+       ("chez-scheme" ,(chez-scheme-for-system))
        ("struct" ,guile-struct-pack)
        ("laesare" ,guile-laesare)
        ("pfds" ,guile-pfds)