summary refs log tree commit diff
path: root/gnu/packages/racket.scm
AgeCommit message (Collapse)Author
2021-07-31gnu: racket-minimal: Bootstrap from C.Philip McGrath
This commit bootstraps the Racket compiler and runtime system from source, including Racket CS as well as both variants of Racket BC. (One remaining limitation is discussed in comments added to gnu/packages/racket.scm.) In the process, it moves to building minimal Racket from the Git repository, rather than the packaged source tarballs. The Git repository is slightly better as the ``corresponding source'': 1. A few packages especially closely tied to the Racket core implementation (like "compiler-lib", "base", and "racket-doc") are developed in the same Git repository. Having them use the same Guix origin, too, will help to keep them in sync. 2. The top-level Makefile in the Git repository is an important ``script[] used to control compilation and installation.'' In particular, it cooperates with the "distro-build" package to create the source tarballs and installers for a Racket distribution. (Racket supports a notion of custom distributions.) 3. It is ``the preferred form ... for making modifications'' to the core Racket implementation. Racket releases are tagged in the Git repository (e.g. "v8.1"). At the beginning of each release cycle, a branch is created to stabilizer a version for extra testing. Active development happens on the "master" branch. * gnu/packages/racket-minimal-sh-via-rktio.patch: Adjust for extra directory layer. * gnu/local/racket.scm (cfg-flag:sh-for-rktio, cfg-flag:enable-lt, cfg-flag:enable-racket, unpack-nanopass+stex, %main-repo-main-distribution-pkgs): New private variables. * gnu/local/racket.scm (racket-minimal)[source]: Use Git. [source](snippet): Unbundle nanopass, stex, and libffi. [native-inputs]: Use racket-bootstrap-chez-bootfiles, plus its dependencies (for Chez, plus a Racket for bootstrap pig). [arguments]: Revise extensively. * gnu/local/racket.scm (racket-minimal-bc-3m, racket-minimal-bc-cgc): New packages, hidden at least for now. (racket-bootstrap-chez-bootfiles): Another new package, but this one is especially likely to stay hidden. * gnu/local/racket.scm (racket)[origin](snippet): Unbundle packages developed in the main Git repository, but leave their links.rktd and pkgs.rktd entries in place. [native-inputs]: Add the main Racket Git repository. [arguments](#:phases): Adjust 'unpack-packages to also unpack package sources from the main Racket Git repository. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-31gnu: racket: Unbundle racket-minimal.Philip McGrath
This change takes advantage of improved support for layered and tethered installations in Racket 8.2. * gnu/packages/racket.scm (extend-layer): New private variable. This is a script for configuring a new config-tethered layer chaining to an existing Racket installation. * gnu/packages/racket.scm (racket)[source](snippet): Unbundle `racket-minimal`. [inputs]: Remove inputs that properly belong to `racket-minimal`. [native-inputs]: Add `racket-minimal` and `extend-layer`. [arguments]: Stop inheriting from `racket-minimal`. Add phase 'unpack-packages to move the sources and links file into place. Replace 'configure phase using `extend-layer`. Replace 'build phase using `raco setup`. Delete 'install phase. * gnu/packages/patches/racket-sh-via-rktio.patch: Rename to ... * gnu/packages/patches/racket-minimal-sh-via-rktio.patch: ... this file to placate `guix lint`. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (racket-minimal)[source]: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-31gnu: racket: Update to 8.2.Philip McGrath
* gnu/packages/racket.scm (racket-minimal, racket): Update to 8.2. * gnu/packages/racket.scm (racket-minimal)[#:arguments]: Fix patch-config.rktd-lib-search-dirs phase. When a config.rktd file doesn't contain an entry for `lib-search-dirs`, the default is equivalent to `'(#f)`, not `'()`. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-29gnu: Break up import loop between (gnu packages racket) and (gnu packages chez).raingloom
* gnu/packages/racket.scm: Remove (gnu packages chez) import. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-23gnu: Fix erroneous uses of 'package/inherit'.Marius Bakke
These packages use a different source/version from the inherited package, and thus should not inherit replacements. * gnu/packages/check.scm (googletest-1.8, python-pytest-runner-2): Use record inheritance instead of PACKAGE/INHERIT. * gnu/packages/crates-io.scm (rust-bindgen-0.49, rust-bytes-0.4, rust-colored-1.9.1, rust-difference-1, rust-docopt-0.8, rust-html5ever-0.23, rust-http-0.1, rust-http-body-0.1, rust-loom-0.2, rust-loom-0.1, rust-pulldown-cmark-0.0.8, rust-ring-0.13, rust-rustls-0.12, rust-sct-0.3, rust-term-0.2, rust-untrusted-0.6, rust-webpki-0.18, rust-webpki-roots-0.17, rust-webpki-roots-0.14): Likewise. * gnu/packages/emacs.scm (emacs-next, emacs-next-pgtk, guile-emacs): Likewise. * gnu/packages/guile.scm (guile-2.2.4): Likewise. * gnu/packages/maths.scm (hdf5-1.10, hdf5-1.12): Likewise. * gnu/packages/protobuf.scm (protobuf-3.6, protobuf-3.5, python-protobuf-3.6): Likewise. * gnu/packages/python-web.scm (python2-html2text): Likewise. * gnu/packages/python-xyz.scm (python-pygments/fixed, python2-numpy, python2-urwid, python2-markdown, python2-fonttools): Likewise. * gnu/packages/racket.scm (racket): Likewise. * gnu/packages/sequoia.scm (sequoia4pEp): Likewise.
2021-05-10gnu: racket: Update to 8.1.Philip McGrath
* gnu/packages/racket.scm (racket-minimal): Update to 8.1. [arguments](#:phases): Remove 'patch-chez-configure: fixes applied upstream. (racket): Update to 8.1. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-05-05gnu: racket: Add aditional mirrors.Philip McGrath
* gnu/packages/racket.scm (racket-minimal, racket)[source](uri): Lift base urls into a new internal variable, '%installer-mirrors'. Add mirrors at the University of Utah, Northwestern University, the University of Waterloo, and Vrije Universiteit Brussel (Infogroep). Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-05gnu: racket: Racket inherits racket-minimal, not vice versa.Philip McGrath
By design, the `racket` package is equivalent to 'racket-minimal' plus 'raco pkg install -i main-distribution'. This switch brings the Guix packages a small step closer to that goal. * gnu/packages/racket.scm (racket-minimal, racket): Change 'racket-minimal' to be the base package and 'racket' to inherit from it. Move 'version', 'patches', 'home-page', 'build-system', 'arguments', and 'license' to 'racket-minimal'. * gnu/packages/racket.scm (racket)[inputs]: Rather than copy and pasting, use '(package-inputs racket-minimal)'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-05gnu: racket: Remove obsolete patch.Philip McGrath
* gnu/packages/racket.scm (racket)[source](patches): Remove "racket-store-checksum-override.patch", which is no longer needed since we stopped injecting store paths into Racket files in commit 834aa48: see <https://issues.guix.gnu.org/47180>. * gnu/packages/patches/racket-store-checksum-override.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-05gnu: racket: Move to (gnu packages racket).Philip McGrath
* gnu/packages/scheme.scm (racket,racket-minimal): Move to ... * gnu/packages/racket.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/racket.scm (racket)[synopsis]: Tweak. Signed-off-by: Ludovic Courtès <ludo@gnu.org>