From: Philip McGrath <philip@philipmcgrath.com>
To: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>,
55248@debbugs.gnu.org
Cc: Maxime Devos <maximedevos@telenet.be>,
Liliana Marie Prikler <liliana.prikler@gmail.com>
Subject: [bug#55248] [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems.
Date: Mon, 9 May 2022 03:55:15 -0400 [thread overview]
Message-ID: <7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com> (raw)
In-Reply-To: <1e7cf69aa12c81effaf2eb1ceff0997faca1cab2.camel@ist.tugraz.at>
Hi,
On 5/9/22 02:34, Liliana Marie Prikler wrote:
> Am Montag, dem 09.05.2022 um 02:02 -0400 schrieb Philip McGrath:
>> Once the issues in <https://racket.discourse.group/t/950> are
>> resolved, 'chez-scheme-for-racket' and 'racket-vm-cs' will be able to
>> run even on systems for which native code generation is not
>> supported. It's not clear what behavior would be useful from 'nix-
>> system->chez-machine': since the current implementation is flawed and
>> easy to misuse, we remove it for now, replacing the remaining uses
>> with 'racket-cs-native-supported-system?'.
> I think you're again making a wrong assumption here. nix-system->chez-
> scheme has purposes outside of solving supported-system.
>
Concretely, there are no other uses in Guix.
I do not know a robust, correct way to use
'nix-system->chez-machine'---certainly not without it growing many
additional features, like maybe computing endianness for pbarch backends
when we are able to build them. For example, if we continued using it as
we did in 'stex', you couldn't build a package graph for nonthreaded
Chez simply by applying a package transformation to remove '--threads'
from its '#:configure-flags', because that would change the machine type
without updating the uses of 'nix-system->chez-machine'.
>> +(define* (racket-cs-native-supported-system? #:optional
>> + (system
>> + (or (%current-target-
>> system)
>> + (%current-
>> system))))
>> + "Can Racket's variant of Chez Scheme generate native code for
>> SYSTEM?
>> +Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
>> + (let ((chez-arch (target-chez-arch system))
>> + (chez-os (target-chez-os system)))
>> + (and (and=> (assoc-ref %chez-features-table chez-os)
>> + ;; NOT assoc-ref: supported even if cdr is #f
>> + (cut assoc chez-arch <>))
>> + #t)))
> I think this should rather be explicit in %chez-features-table. You
> can prefix features that only work inside racket with 'racket-. Then,
> this can be solved with memq just as with chez-scheme's supported-
> systems in 7/9.
>
I don't understand this.
The presence of an entry in '%chez-features-table' explicitly means that
'chez-scheme-for-racket' can generate native code.
The idea is that the "portable bytecode" backends should work, including
thread support, on any system with a reasonably capable C compiler.
There are no other "features" that vary among systems for
'chez-scheme-for-racket'. It doesn't rely on pre-built bootfiles for
bootstrapping. Since the initial fork at the beginning of 2017, when
support for new systems has been added, native threads have been
supported immediately. Racket regularly merges all changes from upstream
Chez (which has not added any supported systems during that time---not
even the systems added already in Racket's variant). These conditions
are documented in the comments on '%chez-features-table'. If they ever
ceased to hold, it would mean that the relationship between
'chez-scheme-for-racket' and upstream 'chez-scheme' had changed
significantly, and we would probably need to reevaluate more broadly
which variant to use where.
-Philip
next prev parent reply other threads:[~2022-05-09 7:56 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-03 18:31 [bug#55248] [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8 Philip McGrath
2022-05-03 18:33 ` [bug#55248] [PATCH 1/7] gnu: racket: Update to 8.5 Philip McGrath
2022-05-04 6:53 ` Liliana Marie Prikler
2022-05-05 21:49 ` Philip McGrath
2022-05-06 6:37 ` Liliana Marie Prikler
2022-05-07 18:39 ` Philip McGrath
2022-05-07 20:01 ` Maxime Devos
2022-05-03 18:33 ` [bug#55248] [PATCH 2/7] gnu: racket: Fix out-of-source build Philip McGrath
2022-05-04 9:29 ` Maxime Devos
2022-05-05 18:53 ` Philip McGrath
2022-05-05 19:52 ` Liliana Marie Prikler
2022-05-05 20:36 ` Maxime Devos
2022-05-05 20:33 ` Maxime Devos
2022-05-05 21:55 ` Philip McGrath
2022-05-03 18:33 ` [bug#55248] [PATCH 3/7] gnu: chez-scheme: Update to 9.5.8 Philip McGrath
2022-05-03 18:33 ` [bug#55248] [PATCH 4/7] gnu: chez-scheme: Refactor documentation phases Philip McGrath
2022-05-03 18:33 ` [bug#55248] [PATCH 5/7] gnu: chez-scheme: Refactor configure phase and fix '--threads' Philip McGrath
2022-05-03 18:33 ` [bug#55248] [PATCH 6/7] gnu: stex: Get machine type dynamically Philip McGrath
2022-05-04 6:58 ` Liliana Marie Prikler
2022-05-05 19:39 ` Philip McGrath
2022-05-03 18:33 ` [bug#55248] [PATCH 7/7] gnu: chez-scheme-for-system: Adjust support logic Philip McGrath
2022-05-04 7:21 ` Liliana Marie Prikler
2022-05-05 20:42 ` Philip McGrath
2022-05-06 7:08 ` Liliana Marie Prikler
2022-05-07 19:18 ` Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 0/9] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8 Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 1/9] gnu: racket: Update to 8.5 Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 2/9] gnu: racket: Fix out-of-source build Philip McGrath
2022-05-09 3:54 ` Liliana Marie Prikler
2022-05-09 6:02 ` [bug#55248] [PATCH v3 0/9] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8 Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 1/9] gnu: racket: Update to 8.5 Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 2/9] gnu: racket: Fix out-of-source build Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 3/9] gnu: chez-scheme: Update to 9.5.8 Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 4/9] gnu: chez-scheme: Refactor documentation phases Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 5/9] gnu: chez-scheme: Refactor configure phase and fix '--threads' Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 6/9] gnu: stex: Get machine type dynamically Philip McGrath
2022-05-09 6:02 ` [bug#55248] [PATCH v3 7/9] gnu: chez-upstream-features-for-system: Improve implementation Philip McGrath
2022-05-09 6:21 ` Liliana Marie Prikler
2022-05-09 7:20 ` Philip McGrath
2022-05-09 7:41 ` Liliana Marie Prikler
2022-05-09 6:02 ` [bug#55248] [PATCH v3 8/9] gnu: chez-scheme-for-racket: Fix supported systems Philip McGrath
2022-05-09 6:34 ` Liliana Marie Prikler
2022-05-09 7:55 ` Philip McGrath [this message]
2022-05-09 9:36 ` Liliana Marie Prikler
2022-05-12 5:26 ` Philip McGrath
2022-05-12 8:04 ` Liliana Marie Prikler
2022-05-09 6:02 ` [bug#55248] [PATCH v3 9/9] gnu: chez-scheme-for-system: Adjust for bytecode backend Philip McGrath
2022-05-09 9:44 ` [bug#55248] [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8 Ludovic Courtès
2022-05-12 3:50 ` Philip McGrath
2022-05-12 3:59 ` [bug#55248] [PATCH v4 1/9] gnu: racket: Update to 8.5 Philip McGrath
2022-05-12 10:32 ` bug#55248: [PATCH 0/7] gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8 Ludovic Courtès
2022-05-08 20:07 ` [bug#55248] [PATCH v2 3/9] gnu: chez-scheme: Update " Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 4/9] gnu: chez-scheme: Refactor documentation phases Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 5/9] gnu: chez-scheme: Refactor configure phase and fix '--threads' Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 6/9] gnu: stex: Get machine type dynamically Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 7/9] gnu: chez-upstream-features-for-system: Improve implementation Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 8/9] gnu: chez-scheme-for-racket: Fix supported systems Philip McGrath
2022-05-08 20:07 ` [bug#55248] [PATCH v2 9/9] gnu: chez-scheme-for-system: Adjust for bytecode backend Philip McGrath
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7e8f385e-d2b5-6f38-fe4b-030748519574@philipmcgrath.com \
--to=philip@philipmcgrath.com \
--cc=55248@debbugs.gnu.org \
--cc=liliana.prikler@gmail.com \
--cc=liliana.prikler@ist.tugraz.at \
--cc=maximedevos@telenet.be \
/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 external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.