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


Message #189 received at 53878 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>
To: Philip McGrath <philip <at> philipmcgrath.com>, 53878 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Attila Lendvai <attila <at> lendvai.name>, Malte Gerdes <malte.f.gerdes <at> gmail.com>,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: [PATCH v2 08/15] gnu: chez-scheme: Explicitly package bootstrap
 bootfiles.
Date: Fri, 18 Feb 2022 08:08:46 +0100
Am Donnerstag, dem 17.02.2022 um 15:50 -0500 schrieb Philip McGrath:
> +(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
This TODO might be moved one line up, since you wouldn't be able to do
cross-compilation with just copy-build-system, would you?
> +    (arguments
> +     (list #:install-plan
> +           #~`(("boot/" "lib/chez-scheme-bootfiles"))))
> +    (supported-systems
> +     ;; Upstream only distributes pre-built bootfiles for
> +     ;; arm32le and t?(i3|a6)(le|nt|osx)
> +     (filter (lambda (system)
> +               (let ((machine (and=> (nix-system->chez-machine
> system)
> +                                     chez-machine->nonthreaded)))
> +                 (or (equal? "arm32le" machine)
> +                     (and machine
> +                          (member (substring machine 0 2) '("i3"
> "a6"))
> +                          (or-map (cut string-suffix? <> machine)
> +                                  '("le" "nt" "osx"))))))
> +             %supported-systems))
> +    (synopsis "Chez Scheme bootfiles (binary seed)")
> +    (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.)
> +
> +This package provides bootstrap bootfiles for upstream Chez Scheme.
> +Currently, it simply packages the binaries checked in to the upsream
> +repository.  Hopefully we can eventually adapt Racket's @code{cs-
> bootstrap} to
> +work with upstream Chez Scheme so that we can bootstrap these files
> from
> +source.")))
> +
Now to explain the difference between my suggestion and what you
implemented.  Mine would be to 
(define-public (chez-scheme-bootstrap-bootfiles chez-scheme)
  ...)
where ... is the code you already have.  This would not only work for
other chez-schemes than the one we have packaged, but might also make
it possible to cross module boundaries, i.e. keep chez-scheme in
chez.scm.  WDYT?




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.