mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: racket: Move Chez bootfiles to (gnu packages chez).
* gnu/packages/racket.scm (chez-scheme-for-racket-bootstrap-bootfiles): Move to ... * gnu/packages/chez.scm (chez-scheme-for-racket-bootstrap-bootfiles): ... this new variable. [source]: Avoid problematic cycle with "racket.scm". [arguments]<#:phases>: Likewise. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
parent
035562b7b7
commit
df00c01d94
2 changed files with 62 additions and 52 deletions
|
@ -31,12 +31,14 @@
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix build-system copy)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages ghostscript)
|
#:use-module (gnu packages ghostscript)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages netpbm)
|
#:use-module (gnu packages netpbm)
|
||||||
|
#:use-module (gnu packages racket)
|
||||||
#:use-module (gnu packages tex)
|
#:use-module (gnu packages tex)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
|
@ -260,6 +262,66 @@ generates native code for each target processor, with support for x86, x86_64,
|
||||||
and 32-bit PowerPC architectures.")
|
and 32-bit PowerPC architectures.")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
|
(define-public chez-scheme-for-racket-bootstrap-bootfiles
|
||||||
|
(package
|
||||||
|
(name "chez-scheme-for-racket-bootstrap-bootfiles")
|
||||||
|
(version "9.5.7.3")
|
||||||
|
;; The version should match `(scheme-fork-version-number)`.
|
||||||
|
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
|
||||||
|
;; It will always be different than the upstream version!
|
||||||
|
;; When updating, remember to also update %racket-version in racket.scm.
|
||||||
|
(source #f) ; avoid problematic cycle with racket.scm
|
||||||
|
(inputs `())
|
||||||
|
(native-inputs (list racket-vm-bc))
|
||||||
|
(build-system copy-build-system)
|
||||||
|
;; TODO: cross compilation
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:install-plan
|
||||||
|
#~`(("boot/" "lib/chez-scheme-bootfiles"))
|
||||||
|
#:phases
|
||||||
|
#~(let ((unpack (assoc-ref %standard-phases 'unpack)))
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'unpack
|
||||||
|
(lambda args
|
||||||
|
(unpack #:source #$(or (package-source this-package)
|
||||||
|
(package-source racket-vm-bc)))))
|
||||||
|
(add-after 'unpack 'chdir
|
||||||
|
(lambda args
|
||||||
|
(chdir "racket/src/ChezScheme")))
|
||||||
|
(add-after 'chdir 'unpack-nanopass+stex
|
||||||
|
(lambda args
|
||||||
|
(copy-recursively
|
||||||
|
#$nanopass
|
||||||
|
"nanopass"
|
||||||
|
#:keep-mtime? #t)))
|
||||||
|
(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.)
|
||||||
|
|
||||||
|
The Racket package @code{cs-bootstrap} (part of the main Racket Git
|
||||||
|
repository) implements enough of a Chez Scheme simulation to load the Chez
|
||||||
|
Scheme compiler purely from source into Racket and apply the compiler to
|
||||||
|
itself, thus bootstrapping Chez Scheme. Bootstrapping takes about 10 times as
|
||||||
|
long as using an existing Chez Scheme, but @code{cs-bootstrap} supports Racket
|
||||||
|
7.1 and later, including the Racket BC variant.
|
||||||
|
|
||||||
|
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.")
|
||||||
|
(license (list asl2.0))))
|
||||||
|
|
||||||
(define-public chez-srfi
|
(define-public chez-srfi
|
||||||
(package
|
(package
|
||||||
(name "chez-srfi")
|
(name "chez-srfi")
|
||||||
|
|
|
@ -415,58 +415,6 @@ Using the Racket VM packages directly is not recommended: instead, install the
|
||||||
;; The LGPL components are only used by Racket BC.
|
;; The LGPL components are only used by Racket BC.
|
||||||
(license (list license:asl2.0 license:expat))))
|
(license (list license:asl2.0 license:expat))))
|
||||||
|
|
||||||
(define-public chez-scheme-for-racket-bootstrap-bootfiles
|
|
||||||
(package
|
|
||||||
(name "chez-scheme-for-racket-bootstrap-bootfiles")
|
|
||||||
(version "9.5.7.3")
|
|
||||||
;; The version should match `(scheme-fork-version-number)`.
|
|
||||||
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
|
|
||||||
;; It will always be different than the upstream version!
|
|
||||||
;; When updating, remember to also update %racket-version in racket.scm.
|
|
||||||
(source %racket-origin)
|
|
||||||
(inputs `())
|
|
||||||
(native-inputs (list racket-vm-bc))
|
|
||||||
(build-system copy-build-system)
|
|
||||||
;; TODO: cross compilation
|
|
||||||
(arguments
|
|
||||||
(list
|
|
||||||
#:install-plan
|
|
||||||
#~`(("boot/" "lib/chez-scheme-bootfiles"))
|
|
||||||
#:phases
|
|
||||||
#~(modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'chdir
|
|
||||||
(lambda args
|
|
||||||
(chdir "racket/src/ChezScheme")))
|
|
||||||
(add-after 'chdir 'unpack-nanopass+stex
|
|
||||||
(lambda args
|
|
||||||
#$(make-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.)
|
|
||||||
|
|
||||||
The Racket package @code{cs-bootstrap} (part of the main Racket Git
|
|
||||||
repository) implements enough of a Chez Scheme simulation to load the Chez
|
|
||||||
Scheme compiler purely from source into Racket and apply the compiler to
|
|
||||||
itself, thus bootstrapping Chez Scheme. Bootstrapping takes about 10 times as
|
|
||||||
long as using an existing Chez Scheme, but @code{cs-bootstrap} supports Racket
|
|
||||||
7.1 and later, including the Racket BC variant.
|
|
||||||
|
|
||||||
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.")
|
|
||||||
(license (list license:asl2.0))))
|
|
||||||
|
|
||||||
(define (racket-packages-origin name origin specs)
|
(define (racket-packages-origin name origin specs)
|
||||||
"Extract from ORIGIN the sources for the Racket packages specified by SPECS,
|
"Extract from ORIGIN the sources for the Racket packages specified by SPECS,
|
||||||
a non-empty list of package specifications. In the resulting file-like
|
a non-empty list of package specifications. In the resulting file-like
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue