[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#53878] [PATCH v5 00/22] Update Racket to 8.4. Adjust Chez Scheme pa
From: |
Philip McGrath |
Subject: |
[bug#53878] [PATCH v5 00/22] Update Racket to 8.4. Adjust Chez Scheme packages. |
Date: |
Sat, 26 Feb 2022 08:02:32 -0500 |
Hi,
I've been ruminating for a while on Liliana's comment
from <https://issues.guix.gnu.org/53878#118>:
On Wednesday, February 23, 2022 3:31:34 PM EST Liliana Marie Prikler wrote:
> [...] there are some things that still
> don't feel right for me – for instance the fact, that seemingly
> unrelated modules now have to pull in racket bootstrap sounds like a
> recipe for trouble. The final patch in the series also still does too
> much for me to wrap my head around, which makes it difficult to audit.
>
> Therefore, one question I have w.r.t. updating Racket is whether we
> could theoretically bump the version while keeping the old bootstrap,
> and then adjust the bootstrap by adding all the packages you've made.
> It does seem to be an all or nothing deal when doing the bootstrap
> first, but that need not necessarily hold for bootstrap second.
>
> Also, accepting for a moment that we might have to move chez-scheme and
> other important things into chez-scheme-and-racket-bootstrap (even
> though I'm not really content with it), I still wonder if we could
> introduce chez-scheme-for-system first (defined as simply chez-scheme
> initially) and adjust the callers, then move chez-scheme while keeping
> the function in chez.scm and finally do the magic with making it either
> chez or racket.
>
It struck me that the core of the dependency cycle (at least, from one
perspective) is that 'chez-scheme-for-racket' wants to 'inherit' from
'chez-scheme' but use '%racket-origin' for its 'source', and neither of those
are thunked fields.
I realized that, if we just pass the origin some other way than as the
'source' field, we can avoid adding the "chez-and-racket-bootstrap.scm" file
altogether: patch v5 10/22 does the core of that.
I also managed to split up the update to Racket 8.4 (patch v4 15/15) into a
number of smaller steps (or, more precisely, rewrite it now that I knew what
the end result would be). I now have the 'racket-minimal*' packages gradually
evolve into the corresponding 'racket-vm-*' packages (rather than adding the
'racket-vm-*' stack in parallel), then split the new 'racket-minimal' package
out of 'racket'. Hopefully this might be somewhat easier to review. The
downside is there are now 22 patches, rather than 15.
So, here is v5!
-Philip
P.S.: I've also posted this series
at <https://gitlab.com/philip1/guix-patches/-/tags/guix-issue-53878-v5>.
Philip McGrath (22):
gnu: Use license prefix in (gnu packages racket).
gnu: racket: Update to 8.4.
gnu: racket: Use Git origins for Racket packages.
gnu: racket-minimal: Use new package style.
gnu: racket-minimal: Don't configure non-existant catalogs.
gnu: racket-minimal: Change inheritance to follow bootstrapping.
gnu: racket-minimal: Add "debug" output.
gnu: make-installation-layer.rkt: Adjust indentation.
gnu: racket-minimal: Separate from the Racket VM.
gnu: racket: Move Chez bootfiles to (gnu packages chez).
gnu: chez: Add utilities for Chez machine types.
gnu: racket: Add 'racket-vm-for-system'.
gnu: chez-scheme: Use "lib/chez-scheme" for search path.
gnu: chez-scheme: Use shared zlib and lz4.
gnu: chez-scheme: Use new package style.
gnu: Add stex.
gnu: Add chez-nanopass.
gnu: chez-scheme: Explicitly package bootstrap bootfiles.
gnu: chez-mit: Support chez-scheme-for-racket.
gnu: Add chez-scheme-for-racket.
gnu: chez: Add 'chez-scheme-for-system'.
gnu: racket-vm-cs: Build with "--enable-scheme".
gnu/local.mk | 4 +-
gnu/packages/chez.scm | 1264 +++++++----
gnu/packages/emacs-xyz.scm | 2 +-
gnu/packages/loko.scm | 2 +-
.../racket-enable-scheme-backport.patch | 465 ++++
...acket-gui-tethered-launcher-backport.patch | 26 +
gnu/packages/racket.scm | 1866 ++++++++++++-----
7 files changed, 2774 insertions(+), 855 deletions(-)
create mode 100644 gnu/packages/patches/racket-enable-scheme-backport.patch
create mode 100644
gnu/packages/patches/racket-gui-tethered-launcher-backport.patch
--
2.32.0
- [bug#53878] [PATCH v4 08/15] gnu: chez-scheme: Explicitly package bootstrap bootfiles., (continued)
- [bug#53878] [PATCH v4 09/15] gnu: Add racket-vm-cgc., Philip McGrath, 2022/02/20
- [bug#53878] [PATCH v4 13/15] gnu: chez-mit: Support chez-scheme-for-racket., Philip McGrath, 2022/02/20
- [bug#53878] [PATCH v4 12/15] gnu: Add racket-vm-cs., Philip McGrath, 2022/02/20
- [bug#53878] [PATCH v4 14/15] gnu: chez-and-racket-bootstrap: Add 'chez-scheme-for-system'., Philip McGrath, 2022/02/20
- [bug#53878] [PATCH v4 11/15] gnu: Add chez-scheme-for-racket., Philip McGrath, 2022/02/20
- [bug#53878] [PATCH v5 00/22] Update Racket to 8.4. Adjust Chez Scheme packages.,
Philip McGrath <=
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Philip McGrath, 2022/02/26
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Liliana Marie Prikler, 2022/02/26
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Philip McGrath, 2022/02/26
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Liliana Marie Prikler, 2022/02/26
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Philip McGrath, 2022/02/26
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Liliana Marie Prikler, 2022/02/26
- [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages., Philip McGrath, 2022/02/26