From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: Philip McGrath <philip@philipmcgrath.com>, 57050@debbugs.gnu.org
Cc: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>,
"\(" <paren@disroot.org>, Maxime Devos <maximedevos@telenet.be>,
Efraim Flashner <efraim@flashner.co.il>,
Thiago Jung Bauermann <bauermann@kolabnow.com>
Subject: [bug#57050] [PATCH v3 12/14] gnu: chez-scheme-for-racket: Suport all systems.
Date: Thu, 25 Aug 2022 11:24:31 +0200 [thread overview]
Message-ID: <ed5522d2ee3fcf41c2029e92c178988d7751883c.camel@gmail.com> (raw)
In-Reply-To: <7c5ee85372e4682282dc6a543c99a3620abf2cd5.1661416343.git.philip@philipmcgrath.com>
Should be "Support all systems".
Am Donnerstag, dem 25.08.2022 um 04:54 -0400 schrieb Philip McGrath:
> On systems for which Racket's variant of Chez Scheme cannot generate
> native code, it can use a 'pbarch' machine type: a variant of the
> ``portable bytecode'' backend specialized to word size and endianness.
> This allows Racket CS to replace Racket BC on those systems while
> maintaining comparable performance. (Racket BC lacks JIT support for
> those systems anyway.) It also lets us provide a Chez Scheme package on
> all systems Guix supports.
>
> This patch adds 'pbarch' support to both 'chez-scheme-for-racket' and
> 'racket-vm-cs', but it does not change the Racket VM implementation
> used
> for the 'racket' and 'racket-minimal' packages.
>
> * gnu/packages/chez.scm (nix-system->pbarch-machine-type): New
> variable.
> (chez-scheme-for-racket)[inputs]: Use 'libffi' for non-native systems.
> [arguments]<#:configure-flags>: Always supply '-m='. Add applicable
> flags for non-native systems.
> [supported-systems]: Use '%supported-systems'.
> [description]: Update.
> (chez-scheme-for-racket-bootstrap-bootfiles)[arguments]<#:phases>:
> Adapt
> 'build' phase for non-native systems.
> * gnu/packages/racket.scm (racket-vm-bc)[description]: Update.
> (racket-vm-cs)[description]: Likewise.
> [inputs]: Use 'libffi' for non-native systems.
> [arguments]<#:configure-flags>: Add applicable flags for non-native
> systems.
> ---
> gnu/packages/chez.scm | 76 ++++++++++++++++++++++++++++++-----------
> gnu/packages/racket.scm | 26 +++++++++-----
> 2 files changed, 74 insertions(+), 28 deletions(-)
>
> diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
> index 26f653ea9d..5d152b3db5 100644
> --- a/gnu/packages/chez.scm
> +++ b/gnu/packages/chez.scm
> @@ -37,6 +37,7 @@ (define-module (gnu packages chez)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages ncurses)
> #:use-module (gnu packages ghostscript)
> + #:use-module (gnu packages libffi)
> #:use-module (gnu packages linux)
> #:use-module (gnu packages netpbm)
> #:use-module (gnu packages racket)
> @@ -49,6 +50,7 @@ (define-module (gnu packages chez)
> #:use-module (srfi srfi-26)
> #:export (chez-scheme-for-system
> racket-cs-native-supported-system?
> + nix-system->pbarch-machine-type
> unpack-nanopass+stex))
>
> ;; Commentary:
> @@ -231,6 +233,28 @@ (define* (chez-upstream-features-for-system
> #:optional
> (and=> (assoc-ref %chez-features-table chez-os)
> (cut assoc-ref <> chez-arch))))
>
> +(define* (nix-system->pbarch-machine-type #:optional
> + (system
> + (or (%current-target-
> system)
> + (%current-system)))
> + #:key (threads? #t))
> + "Return a string naming the pseudo–machine type used by Racket's
> variant of
> +Chez Scheme to represent the appropriate ``pbarch'' backend for
> SYSTEM: that
> +is, the ``portable bytecode'' backend specialized for SYSTEM's word
> size and
> +endianness. The result will name the threaded machine type unless
> THREADS? is
> +provided and is #f."
> + (string-append (if threads?
> + "t"
> + "")
> + "pb"
> + (if (target-64bit? system)
> + "64"
> + "32")
> + ;; missing (guix utils) predicate target-little-
> endian?
> + (if (target-ppc32? system)
> + "b"
> + "l")))
> +
Don't we already have a function that does something similar? Can't we
add a #:portable-bytecode? keyword to that one?
> (define* (racket-cs-native-supported-system? #:optional
> (system
> (or (%current-target-
> system)
> @@ -449,10 +473,14 @@ (define-public chez-scheme-for-racket
> ;; When updating, remember to also update %racket-version in
> racket.scm.
> (source #f) ; avoid problematic cycle with racket.scm
> (inputs
> - (modify-inputs (package-inputs chez-scheme)
> - (delete "libx11" "util-linux:lib")
> - (replace "chez-scheme-bootstrap-bootfiles"
> - chez-scheme-for-racket-bootstrap-bootfiles)))
> + (let ((inputs (modify-inputs (package-inputs chez-scheme)
> + (replace "chez-scheme-bootstrap-bootfiles"
> + chez-scheme-for-racket-bootstrap-bootfiles)
> + (delete "libx11" "util-linux:lib"))))
> + (if (racket-cs-native-supported-system?)
> + inputs
> + (modify-inputs inputs
> + (prepend libffi)))))
> (native-inputs
> (let ((native-inputs (modify-inputs (package-native-inputs chez-
> scheme)
> (prepend zuo))))
> @@ -473,10 +501,16 @@ (define-public chez-scheme-for-racket
> ((#:configure-flags cfg-flags #~'())
> #~`("--disable-x11"
> "--threads" ;; ok to potentially duplicate
> - #$@(if (%current-target-system)
> - (list (string-append "-m="
> - (racket-cs-native-supported-
> system?)))
> - '())
> + #$(string-append "-m=" (or (racket-cs-native-supported-
> system?)
> + (nix-system->pbarch-machine-
> type)))
> + ;; ^ could skip -m= for non-cross non-pbarch builds
> + #$@(if (racket-cs-native-supported-system?)
> + #~()
> + ;; not inferred on non-native platforms: see
> + ;; https://racket.discourse.group/t/950/9
> + #~("--enable-libffi"
> + "CFLAGS=-g -O2 -D_REENTRANT -pthread"
> + "LIBS=-lm -ldl -lrt -lffi -lncurses"))
> #$@(if (%current-target-system)
> (list (string-append "--toolprefix="
> (%current-target-system)
> @@ -543,10 +577,7 @@ (define-public chez-scheme-for-racket
> (add-after 'unpack 'chdir
> (lambda args
> (chdir "racket/src/ChezScheme"))))))))
> - ;; TODO: How to build pbarch/pbchunks for other systems?
> - ;; See https://racket.discourse.group/t/950
> - (supported-systems (filter racket-cs-native-supported-system?
> - %supported-systems))
> + (supported-systems %supported-systems)
I don't think this needs to be specified, does it?
See the definition in guix/packages.scm:
(supported-systems package-supported-systems ; list of strings
(default %supported-systems))
Cheers
next prev parent reply other threads:[~2022-08-25 9:26 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-08 6:06 [bug#57050] [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo Philip McGrath
2022-08-08 6:10 ` [bug#57050] [PATCH 1/6] gnu: stex: Update to 1.2.2-2.afa6075 Philip McGrath
2022-08-08 6:10 ` [bug#57050] [PATCH 2/6] gnu: stex: Fix read-only gifs and math directories Philip McGrath
2022-08-08 6:10 ` [bug#57050] [PATCH 3/6] gnu: chez-scheme: Fix use of "/bin/sh" Philip McGrath
2022-08-08 8:53 ` Liliana Marie Prikler
2022-08-09 20:25 ` Philip McGrath
2022-08-09 21:24 ` Maxime Devos
2022-08-09 21:38 ` ( via Guix-patches via
2022-08-09 21:58 ` Philip McGrath
2022-08-09 22:09 ` ( via Guix-patches via
2022-08-10 11:46 ` Maxime Devos
2022-08-08 6:10 ` [bug#57050] [PATCH 4/6] gnu: Update Racket to 8.6. Add Zuo Philip McGrath
2022-08-08 9:01 ` Liliana Marie Prikler
2022-08-09 20:56 ` Philip McGrath
2022-08-10 7:34 ` Liliana Marie Prikler
2022-08-08 6:10 ` [bug#57050] [PATCH 5/6] gnu: racket: Use Racket CS on all systems Philip McGrath
2022-08-08 9:10 ` Liliana Marie Prikler
2022-08-08 6:10 ` [bug#57050] [PATCH 6/6] gnu: chez-scheme-for-racket: Suport " Philip McGrath
2022-08-08 9:15 ` Liliana Marie Prikler
2022-08-10 15:30 ` [bug#57050] [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo Thiago Jung Bauermann via Guix-patches via
2022-08-11 4:00 ` Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 00/13] " Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 01/13] gnu: stex: Update to 1.2.2-2.afa6075 Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 02/13] gnu: stex: Fix read-only gifs and math directories Philip McGrath
2022-08-11 11:13 ` Liliana Marie Prikler
2022-08-11 11:08 ` [bug#57050] [PATCH v2 03/13] gnu: chez-scheme: Fix use of "/bin/sh" Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 04/13] gnu: Add Zuo Philip McGrath
2022-08-11 11:31 ` Liliana Marie Prikler
2022-08-11 14:00 ` Philip McGrath
2022-08-11 15:34 ` Liliana Marie Prikler
2022-08-11 23:32 ` Philip McGrath
2022-08-16 14:47 ` Maxime Devos
2022-08-23 1:40 ` Philip McGrath
2022-08-23 9:11 ` Maxime Devos
2022-08-23 23:24 ` Philip McGrath
2022-08-23 9:20 ` Maxime Devos
2022-08-24 0:27 ` Philip McGrath
2022-08-24 5:42 ` Liliana Marie Prikler
2022-08-24 5:47 ` Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 00/14] gnu: Update Racket to 8.6. " Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 01/14] gnu: stex: Update to 1.2.2-2.afa6075 Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 02/14] gnu: stex: Fix read-only gifs and math directories Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 03/14] etc: teams: Add racket team Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 04/14] etc: teams: Add entry for Philip McGrath Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 05/14] gnu: racket: Adjust patch for "/bin/sh" in rktio Philip McGrath
2022-08-25 9:09 ` Liliana Marie Prikler
2022-08-25 19:16 ` Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 06/14] gnu: chez-scheme: Fix use of "/bin/sh" Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 07/14] gnu: Add Zuo Philip McGrath
2022-08-25 9:12 ` Liliana Marie Prikler
2022-08-25 10:30 ` Efraim Flashner
2022-08-25 20:04 ` Philip McGrath
2022-08-26 12:01 ` Liliana Marie Prikler
2022-08-27 18:08 ` Philip McGrath
2022-08-27 18:58 ` Liliana Marie Prikler
2022-08-27 19:54 ` Philip McGrath
2022-08-27 21:18 ` Liliana Marie Prikler
2022-08-27 21:28 ` Philip McGrath
2022-08-27 22:26 ` Liliana Marie Prikler
2022-08-25 8:54 ` [bug#57050] [PATCH v3 08/14] gnu: racket: Update to 8.6 Philip McGrath
2022-08-25 9:14 ` Liliana Marie Prikler
2022-08-25 10:39 ` Efraim Flashner
2022-08-25 8:54 ` [bug#57050] [PATCH v3 09/14] gnu: chez-scheme: Make bootfiles regular inputs Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 10/14] gnu: chez-scheme-for-racket: Support cross-compilation Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 11/14] gnu: racket: Support cross-compiling the VM packages Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 12/14] gnu: chez-scheme-for-racket: Suport all systems Philip McGrath
2022-08-25 9:24 ` Liliana Marie Prikler [this message]
2022-08-25 10:50 ` Efraim Flashner
2022-08-25 20:17 ` Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 13/14] gnu: racket-vm-bc: Add workaround for ppc64le Philip McGrath
2022-08-25 8:54 ` [bug#57050] [PATCH v3 14/14] gnu: racket: Use Racket CS on all systems Philip McGrath
2022-08-25 9:17 ` Liliana Marie Prikler
2022-08-26 21:15 ` [bug#57050] [PATCH v3 00/14] gnu: Update Racket to 8.6. Add Zuo Thiago Jung Bauermann via Guix-patches via
2022-08-27 18:55 ` [bug#57050] [PATCH v4 " Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 01/14] gnu: stex: Update to 1.2.2-2.afa6075 Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 02/14] gnu: stex: Fix read-only gifs and math directories Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 03/14] etc: teams: Add racket team Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 04/14] etc: teams: Add entry for Philip McGrath Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 05/14] gnu: racket: Adjust patch for "/bin/sh" in rktio Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 06/14] gnu: chez-scheme: Fix use of "/bin/sh" Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 07/14] gnu: Add Zuo Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 08/14] gnu: racket: Update to 8.6 Philip McGrath
2022-08-27 19:21 ` Liliana Marie Prikler
2022-08-27 20:30 ` Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 09/14] gnu: chez-scheme: Make bootfiles regular inputs Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 10/14] gnu: chez-scheme-for-racket: Support cross-compilation Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 11/14] gnu: racket: Support cross-compiling the VM packages Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 12/14] gnu: chez-scheme-for-racket: Support all systems Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 13/14] gnu: racket-vm-bc: Add workaround for ppc64le Philip McGrath
2022-08-27 18:55 ` [bug#57050] [PATCH v4 14/14] gnu: racket: Use Racket CS on all systems Philip McGrath
2022-09-04 20:53 ` bug#57050: [PATCH 0/6] gnu: Update Racket to 8.6. Add Zuo Ludovic Courtès
2022-08-11 11:08 ` [bug#57050] [PATCH v2 05/13] gnu: racket: Update to 8.6 Philip McGrath
2022-08-11 11:44 ` Liliana Marie Prikler
2022-08-11 22:40 ` Philip McGrath
2022-08-12 6:34 ` Liliana Marie Prikler
2022-08-22 8:41 ` Efraim Flashner
2022-08-22 18:56 ` Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 06/13] gnu: chez-scheme: Bootfiles should not be native inputs Philip McGrath
2022-08-11 11:47 ` Liliana Marie Prikler
2022-08-11 22:45 ` Philip McGrath
2022-08-12 4:21 ` Liliana Marie Prikler
2022-08-11 11:08 ` [bug#57050] [PATCH v2 07/13] gnu: chez-scheme-for-racket: Support cross-compilation Philip McGrath
2022-08-11 11:56 ` Liliana Marie Prikler
2022-08-11 22:49 ` Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 08/13] gnu: racket: Support cross-compiling the VM packages Philip McGrath
2022-08-11 11:58 ` Liliana Marie Prikler
2022-08-11 23:23 ` Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 09/13] gnu: chez-scheme-for-racket: Suport all systems Philip McGrath
2022-08-11 12:02 ` Liliana Marie Prikler
2022-08-11 23:25 ` Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 10/13] gnu: racket-vm-bc: Add workaround for ppc64le Philip McGrath
2022-08-11 11:08 ` [bug#57050] [PATCH v2 11/13] gnu: racket: Use Racket CS on all systems Philip McGrath
2022-08-11 12:03 ` Liliana Marie Prikler
2022-08-11 11:08 ` [bug#57050] [PATCH v2 12/13] etc: teams: Add racket team Philip McGrath
2022-08-11 12:11 ` Liliana Marie Prikler
2022-08-11 11:08 ` [bug#57050] [PATCH v2 13/13] etc: teams: Add entry for Philip McGrath Philip McGrath
2022-08-13 17:43 ` [bug#57050] [PATCH v2 00/13] gnu: Update Racket to 8.6. Add Zuo Thiago Jung Bauermann via Guix-patches via
2022-08-15 5:47 ` [bug#57050] [RFC PATCH] gnu: racket-vm-cs: Avoid 'configure' bug with '--enable-racket' Philip McGrath
2022-08-15 6:12 ` Philip McGrath
2022-08-15 19:54 ` [bug#57050] [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le Philip McGrath
2022-08-19 0:51 ` Thiago Jung Bauermann via Guix-patches via
2022-08-19 10:10 ` Maxime Devos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ed5522d2ee3fcf41c2029e92c178988d7751883c.camel@gmail.com \
--to=liliana.prikler@gmail.com \
--cc=57050@debbugs.gnu.org \
--cc=bauermann@kolabnow.com \
--cc=efraim@flashner.co.il \
--cc=liliana.prikler@ist.tugraz.at \
--cc=maximedevos@telenet.be \
--cc=paren@disroot.org \
--cc=philip@philipmcgrath.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).