index
:
guix
koszko
koszko-scripts
about
summary
refs
log
tree
commit
diff
log msg
author
committer
range
;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2021-2024 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages chez) #:use-module (gnu packages) #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3 expat public-domain)) #:use-module (guix packages) #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix gexp) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system copy) #:use-module (gnu packages compression) #:use-module (gnu packages ncurses) #:use-module (gnu packages ghostscript) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages netpbm) #:use-module (gnu packages racket) #:use-module (gnu packages tex) #:use-module (gnu packages compression) #:use-module (gnu packages image) #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (chez-scheme-for-system nix-system->native-chez-machine-type nix-system->pbarch-machine-type unpack-nanopass)) ;; Commentary: ;; ;; The bootstrapping paths for Chez Scheme and Racket are closely ;; entwined. See "Bootstrapping Racket" in the commentary on "racket.scm" for ;; details on the Racket portion of Chez Scheme's bootstrapping path. ;; ;; Chez Scheme is a self-hosting compiler. A small kernel implemented in C ;; loads "boot files" (in a custom object file format) compiled from the parts ;; of the system implemented in Chez Scheme. (While Chez Scheme generates ;; native machine code, it implements its own linker and loader.) ;; ;; As of Chez Scheme 10.0.0 (and the pre-release versions that preceded it on ;; the Racket branch), there are several ways to obtain boot files: ;; ;; 1. The Racket package "cs-bootstrap" (in the "racket/src/rktboot/" ;; directory of the main Racket Git repository) simulates enough of Chez ;; Scheme to load the Chez Scheme compiler purely from source into Racket ;; and apply the compiler to itself, producing the needed boot files ;; (albeit very slowly). ;; Any variant of Racket since version 7.1 can run the simulation. Using ;; the older Racket BC implementation, which does not depend on Chez ;; Scheme, breaks the dependency cycle. ;; However, the simulation relies on implementation details of Chez ;; Scheme, so a given version of Chez Scheme can only be bootstrapped by ;; the corresponding version of the "cs-bootstrap" package. ;; ;; 2. The Chez Scheme makefile provides a "re.boot" target for bootstrapping ;; via a different version of Chez Scheme (9.5.4 or later). ;; This path manages potential differences in implementation details ;; acro