GNU bug report logs - #53878
[PATCH 00/11] Update Racket to 8.4. Adjust Chez Scheme

Previous Next

Package: guix-patches;

Reported by: Philip McGrath <philip <at> philipmcgrath.com>

Date: Tue, 8 Feb 2022 15:14:01 UTC

Severity: normal

Tags: patch

Merged with 53997

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Philip McGrath <philip <at> philipmcgrath.com>
To: 53878 <at> debbugs.gnu.org
Cc: Philip McGrath <philip <at> philipmcgrath.com>, zimoun <zimon.toutoune <at> gmail.com>, Ludovic Courtès <ludo <at> gnu.org>, Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>, Attila Lendvai <attila <at> lendvai.name>, Malte Gerdes <malte.f.gerdes <at> gmail.com>
Subject: [bug#53878] [PATCH v2 00/15] Update Racket to 8.4. Adjust Chez Scheme packages.
Date: Thu, 17 Feb 2022 15:50:33 -0500
Hi,

Here is a v2!

Liliana, I tried using a function to generate the bootfile packages as you
suggested, but I didn't like the result---though it is very possible I still
didn't properly understand what you had in mind. I hope what I've done in this
version addresses the concerns you raised about inverted inheritance and such
anyway: if you'd like to compare the two, in the repository
at <https://gitlab.com/philip1/guix-patches> I've tagged this series as
`guix-issue-53878-v2` and the alternate as
`guix-issue-53878-v2-bootfiles-proc`. I'll also include the diff below.

Other than that, I hope I've addressed all your comments.

> diff --git a/gnu/packages/chez-and-racket-bootstrap.scm b/gnu/packages/chez-and-racket-bootstrap.scm
> index 3e90a15d94..cbdddb1e98 100644
> --- a/gnu/packages/chez-and-racket-bootstrap.scm
> +++ b/gnu/packages/chez-and-racket-bootstrap.scm
> @@ -720,21 +720,18 @@ (define* (stex-make #:optional (suffix ""))
>  and 32-bit PowerPC architectures.")
>      (license license:asl2.0)))
>  
> -(define (bootfiles-for-chez chez)
> -  (package/inherit chez
> -    (outputs '("out"))
> +(define-public chez-scheme-bootstrap-bootfiles
> +  (package
> +    (inherit chez-scheme)
> +    (name "chez-scheme-bootstrap-bootfiles")
>      (inputs '())
>      (native-inputs '())
> +    (outputs '("out"))
>      (build-system copy-build-system)
>      ;; TODO: cross compilation
>      (arguments
>       (list #:install-plan
> -           #~`(("boot/" "lib/chez-scheme-bootfiles"))))))
> -
> -(define-public chez-scheme-bootstrap-bootfiles
> -  (package
> -    (inherit (bootfiles-for-chez chez-scheme))
> -    (name "chez-scheme-bootstrap-bootfiles")
> +           #~`(("boot/" "lib/chez-scheme-bootfiles"))))
>      (supported-systems
>       ;; Upstream only distributes pre-built bootfiles for
>       ;; arm32le and t?(i3|a6)(le|nt|osx)
> @@ -822,28 +819,34 @@ (define-public chez-scheme-for-racket
>      (license license:asl2.0)))
>  
>  (define-public chez-scheme-for-racket-bootstrap-bootfiles
> -  (let ((chez (bootfiles-for-chez chez-scheme-for-racket)))
> -    (package
> -      (inherit (bootfiles-for-chez chez))
> -      (name "chez-scheme-for-racket-bootstrap-bootfiles")
> -      (native-inputs (list chez-nanopass-bootstrap racket-vm-bc))
> -      (arguments
> -       (substitute-keyword-arguments (package-arguments chez)
> -         ((#:phases those-phases #~%standard-phases)
> -          #~(modify-phases #$those-phases
> -              (add-after 'unpack 'chdir
> -                (lambda args
> -                  (chdir "racket/src/ChezScheme")))
> -              (add-after 'chdir 'unpack-nanopass+stex
> -                (lambda args
> -                  #$unpack-nanopass+stex))
> -              (add-before 'install 'build
> -                (lambda* (#:key native-inputs inputs #:allow-other-keys)
> -                  (invoke (search-input-file (or native-inputs inputs)
> -                                             "/opt/racket-vm/bin/racket")
> -                          "rktboot/main.rkt")))))))
> -      (synopsis "Chez Scheme bootfiles bootstrapped by Racket")
> -      (description "Chez Scheme is a self-hosting compiler: building it
> +  (package
> +    (inherit chez-scheme-bootstrap-bootfiles)
> +    (name "chez-scheme-for-racket-bootstrap-bootfiles")
> +    (version (package-version chez-scheme-for-racket))
> +    (source (package-source chez-scheme-for-racket))
> +    (native-inputs (list chez-nanopass-bootstrap racket-vm-bc))
> +    (arguments
> +     (substitute-keyword-arguments
> +         (package-arguments chez-scheme-bootstrap-bootfiles)
> +       ((#:phases those-phases #~%standard-phases)
> +        #~(modify-phases #$those-phases
> +            (add-after 'unpack 'chdir
> +              (lambda args
> +                (chdir "racket/src/ChezScheme")))
> +            (add-after 'chdir 'unpack-nanopass+stex
> +              (lambda args
> +                #$unpack-nanopass+stex))
> +            (add-before 'install 'build
> +              (lambda* (#:key native-inputs inputs #:allow-other-keys)
> +                (invoke (search-input-file (or native-inputs inputs)
> +                                           "/opt/racket-vm/bin/racket")
> +                        "rktboot/main.rkt")))))))
> +    (home-page "https://github.com/racket/ChezScheme")
> +    ;; ^ This is downstream of https://github.com/racket/racket,
> +    ;; but it's designed to be a friendly landing place for people
> +    ;; who want a ChezScheme-shaped repositroy.
> +    (synopsis "Chez Scheme bootfiles bootstrapped by Racket")
> +    (description "Chez Scheme is a self-hosting compiler: building it
>  requires ``bootfiles'' containing the Scheme-implemented portions compiled for
>  the current platform.  (Chez can then cross-compile bootfiles for all other
>  supported platforms.)
> @@ -857,7 +860,7 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles
>  
>  Note that the generated bootfiles are specific to Racket's fork of Chez
>  Scheme, and @code{cs-bootstrap} does not currently support building upstream
> -Chez Scheme."))))
> +Chez Scheme.")))
>  
>  ;;
>  ;; Chez's bootstrap dependencies:

 -Philip

Philip McGrath (15):
  gnu: chez-scheme: Move to (gnu packages chez-and-racket-bootstrap).
  gnu: chez-scheme: Use "lib/chez-scheme" for search path.
  gnu: chez-scheme: Use shared zlib and lz4.
  gnu: chez-and-racket-bootstrap: Add utilities for Chez machine types.
  gnu: chez-scheme: Use new package style.
  gnu: Add stex.
  gnu: Add chez-nanopass.
  gnu: chez-scheme: Explicitly package bootstrap bootfiles.
  gnu: Add racket-vm-cgc.
  gnu: Add racket-vm-bc.
  gnu: Add chez-scheme-for-racket.
  gnu: Add racket-vm-cs.
  gnu: chez-mit: Support chez-scheme-for-racket.
  gnu: chez-and-racket-bootstrap: Add 'chez-scheme-for-system'.
  gnu: racket: Update to 8.4.

 gnu/local.mk                                  |    5 +-
 gnu/packages/chez-and-racket-bootstrap.scm    | 1070 ++++++++++++
 gnu/packages/chez.scm                         |  628 +++----
 gnu/packages/emacs-xyz.scm                    |    4 +-
 gnu/packages/loko.scm                         |    4 +-
 .../racket-enable-scheme-backport.patch       |  465 +++++
 ...acket-gui-tethered-launcher-backport.patch |   26 +
 gnu/packages/racket.scm                       | 1553 +++++++++++------
 8 files changed, 2813 insertions(+), 942 deletions(-)
 create mode 100644 gnu/packages/chez-and-racket-bootstrap.scm
 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





This bug report was last modified 2 years and 344 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.