summary refs log tree commit diff
path: root/gnu/packages/racket.scm
AgeCommit message (Collapse)Author
2022-06-13gnu: racket: Avoid use of (ice-9 exceptions).Ludovic Courtès
Fixes <https://issues.guix.gnu.org/54546>. Reported by Giovanni Biscuolo <g@xelera.eu> and Michael Chirillo <michael.a.chirillo@gmail.com>. * gnu/packages/racket.scm (racket): Rewrite in terms of SRFI-34/35 instead of (ice-9 exceptions).
2022-05-22gnu: racket-vm-cs: Fix typo in description.Tobias Geerinckx-Rice
* gnu/packages/racket.scm (racket-vm-cs)[description]: Fix ‘implemetation’ typo.
2022-05-12gnu: chez-scheme-for-racket: Fix supported systems.Philip McGrath
This commit fixes the treatment of systems like "powerpc-w64-mingw32", where the combination of architecture and kernel is not supported, even though both are supported in other combinations. The build failure fixed in b8fc9169515ef1a6d6037c84e30ad308e5418b6f highlighted this problem: see also <https://issues.guix.gnu.org/54292#6>. The correct support status is specified by '%chez-features-table', which was added to improve 'chez-upstream-features-for-system': this commit uses it to fix the repair. Once the issues in <https://racket.discourse.group/t/950> are resolved, 'chez-scheme-for-racket' and 'racket-vm-cs' will be able to run even on systems for which native code generation is not supported. It's not clear what behavior would be useful from 'nix-system->chez-machine': since the current implementation is flawed and easy to misuse, we remove it for now, replacing the remaining uses with 'racket-cs-native-supported-system?'. * gnu/packages/chez.scm (nix-system->chez-machine): Remove it. (racket-cs-native-supported-system?): New variable. (chez-scheme-for-racket)[supported-systems]: Use it. * gnu/packages/racket.scm (racket-vm-for-system): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-12gnu: racket: Fix out-of-source build.Philip McGrath
* gnu/packages/racket.scm (racket-vm-cgc)[arguments]: Supply '#:out-of-source? #t'. Wrap 'install-license-files' to work around limitation. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-12gnu: racket: Update to 8.5.Philip McGrath
* gnu/packages/patches/racket-gui-tethered-launcher-backport.patch, gnu/packages/patches/racket-enable-scheme-backport.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.7.6. * gnu/packages/racket.scm (%racket-version): Update to 8.5. (%racket-origin)[patches]: Remove obsolete patches. (racket-vm-common-configure-flags): Correct comment. (racket)[inputs]<2d, datalog, deinprogramm, draw, drracket, expeditor, htdp, pict, plot, quickscript, racklog, rackunit, redex, scribble, typed-racket, string-constants, syntax-color, web-server, xrepl>: Update checksums. <gui, srfi>: Likewise, and remove obsolete backports. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-04gnu: racket-vm-cs: Build with "--enable-scheme".Philip McGrath
* gnu/packages/racket.scm (racket-vm-cs)[native-inputs]: Replace 'chez-scheme-for-racket-bootstrap-bootfiles' with 'chez-scheme-for-racket'. [arguments]<#:phases>: Delete 'unpack-bootfiles'. <#:configure-flags>: Add "--enable-scheme". Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: Add chez-scheme-for-racket.Philip McGrath
The Racket variant of Chez Scheme can be used to support platforms that are not yet supported by upstream Chez Scheme. * gnu/packages/chez.scm (chez-scheme-for-racket): New variable. (chez-scheme-for-racket-bootstrap-bootfiles)[version] [supported-systems]: Derive from 'chez-scheme-for-racket'. * gnu/packages/racket.scm (%racket-version): Update comment. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: Add chez-nanopass.Philip McGrath
* gnu/packages/chez.scm (nanopass): Rename to ... (chez-nanopass-bootstrap): ... this new variable, and promote it from an origin to a package. (chez-nanopass): New variable. (unpack-nanopass+stex): New variable using 'chez-nanopass-bootstrap'. (chez-scheme-for-racket-bootstrap-bootfiles) (chez-scheme)[native-inputs]: Add 'chez-nanopass-bootstrap'. [arguments]<#:phases>: Adapt 'unpack-nanopass+stex' phase to use the new variable. * gnu/packages/racket.scm (racket-vm-cs): Likewise. (make-unpack-nanopass+stex): Remove it. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: chez-scheme: Use new package style.Philip McGrath
* gnu/packages/chez.scm (chez-scheme)[inputs]: Remove labels. [native-inputs]: Likewise. [arguments]: Use G-expressions. <#:phases>: Use 'search-input-file' instead of 'assoc-ref'. (nanopass): Make public as a temporary workaround for Racket. * gnu/packages/racket.scm (make-unpack-nanopass+stex): Update accordingly. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket: Add 'racket-vm-for-system'.Philip McGrath
* gnu/packages/racket.scm (racket-vm-for-system): New procedure. (racket-minimal, racket)[inputs]: Use it. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket: Move Chez bootfiles to (gnu packages chez).Philip McGrath
* 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>
2022-03-04gnu: racket-minimal: Separate from the Racket VM.Philip McGrath
For consistency with other Racket distributions, 'racket-minimal' should have the "racket-lib" Racket package installed: see <https://github.com/racket/racket/issues/3851#issuecomment-942368947>. Happily, this gives us a clean boundary between the core Racket VM and compiler, with all of the bootstrapping involved, and building Racket packages and installation layers, which can be handled in a nice, uniform way and eventually turned into a 'racket-build-system'. Building the VM layer as an "in-place" installation should help us use it with other Racket tools. * gnu/packages/racket.scm (racket-vm-common-configure-flags): Add "--enable-origtree" and --prefix. Adapt "--enable-racket=" accordingly. (racket-minimal-bc-cgc): Rename to ... (racket-vm-cgc): ... this new variable. [inputs]: Move 'openssl' and 'sqlite' to new 'racket-minimal'. [arguments]<#:strip-directories>: Use "opt/racket-vm/" prefix. <#:phases>: Adapt 'initialize-config.rktd' for removal of 'openssl' and 'sqlite'. [description]: Tweak. (racket-minimal-bc-3m): Rename to ... (racket-vm-bc): ... this new variable. [synopsis, description]: Tweak. (racket-vm-cs): New variable, adapted from the old 'racket-minimal'. (chez-scheme-for-racket-bootstrap-bootfiles)[arguments]<#:phhases>: Adapt to the "opt/racket-vm/" prefix. (racket-minimal): Rewrite like 'racket' using 'racket-vm-cs'. (racket): Inherit from 'racket-minimal'. [inputs]: Add 'racket-vm-cs'. Move "racket-lib" and "base" to 'racket-minimal'. [arguments]<#:make-flags, #:configure-flags>: Override from 'racket-minimal'. (configure-layer.rkt): Adapt to support in-place VM build with possible intermediate layer. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: configure-layer.rkt: Adjust indentation.Philip McGrath
* gnu/packages/racket.scm (configure-layer.rkt): Wrap 'command-line' in 'define-values' to reduce rightward drift. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket-minimal: Add "debug" output.Philip McGrath
* gnu/packages/racket.scm (racket-minimal-bc-cgc)[outputs]: Add "debug". (racket-vm-common-configure-flags): Add "--disable-strip". Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket-minimal: Adjust indentation.Philip McGrath
* gnu/packages/racket.scm (racket-minimal-bc-cgc): Use 'hidden-package' rather than 'properties'. (racket-minimal-bc-3m): Remove redundant 'hidden-package' wrapper. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket-minimal: Change inheritance to follow bootstrapping.Philip McGrath
Having the package inheritance chain go in the same direction as the bootstrapping chain, rather than the opposite, is less confusing. In some cases, it can also help to avoid unnecessary rebuilds. * gnu/packages/racket.scm (racket-minimal-bc-cgc): Change to be the root of the package inheritance chain. [version, source, inputs, native-inputs, build-system, arguments] [home-page, license]: Inline formerly inherited values. (racket-minimal-bc-3m): Inherit from 'racket-minimal-bc-cgc' rather than 'racket-minimal'. [inputs, native-inputs, arguments, license]: Adjust accordingly. (racket-minimal): Inherit from 'racket-minimal-bc-3m'. [inputs, native-inputs, arguments, license]: Adjust accordingly. [properties]: Override effect of 'hidden-package'. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket-minimal: Don't configure non-existant catalogs.Philip McGrath
* gnu/packages/racket.scm (racket-minimal)[arguments]<#:phases>: Change 'initialize-config.rktd' to only add a release catalog when the package version is a release version. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket-minimal: Use new package style.Philip McGrath
* gnu/packages/racket.scm (cfg-flag:sh-for-rktio, cfg-flag:enable-lt) (cfg-flag:enable-racket): Change to G-expressions and combine in ... (racket-vm-common-configure-flags): ... this new thunk. (unpack-nanopass+stex): Change to G-expression and move to ... (make-unpack-nanopass+stex): ... this new thunk. (racket-bootstrap-chez-bootfiles): Rename to ... (chez-scheme-for-racket-bootstrap-bootfiles): ... this new variable, and stop inheriting from 'racket-minimal'. [native-inputs]: Remove labels. [build-system]: Use 'copy-build-system'. [arguments]: Use G-expressions. Install under "lib". (racket-minimal)[inputs, native-inputs]: Remove labels. [arguments]: Use G-expressions. Avoid 'assoc-ref'. Adapt to changes in 'chez-scheme-for-racket-bootstrap-bootfiles'. (racket-minimal-bc-3m)[native-inputs]: Remove labels. [arguments]: Use G-expressions. (racket-minimal-bc-cgc)[native-inputs]: Remove labels. [arguments]: Use G-expressions. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket: Use Git origins for Racket packages.Philip McGrath
* gnu/packages/patches/racket-gui-tethered-launcher-backport.patch: Adjust path. * gnu/packages/racket.scm (racket-packages-origin) (simple-racket-origin): New procedures. (extend-layer): Rename to ... (configure-layer.rkt): ... this variable. Tweak command-line arguments. Adapt to 'config-tethered-apps-dir'. (racket): Stop inheriting from 'racket-minimal'. [version]: Use '%racket-version'. [source]: Stop using bundled tarball. [inputs]: Remove labels. Add 'racket-minimal' and package sources. [native-inputs]: Reduce to racket-minimal. Untested, as cross-compilation doesn't work yet. [arguments]: Rewrite to use G-expressions, package sources from 'inputs', an explicit 'install' phase, and the revised 'configure-layer.rkt'. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: racket: Update to 8.4.Philip McGrath
* gnu/packages/patches/racket-enable-scheme-backport.patch, gnu/packages/patches/racket-gui-tethered-launcher-backport.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/racket.scm (%racket-version, %racket-commit) (%racket-origin): New variables. [patches]: Add "racket-enable-scheme-backport.patch". (racket-minimal): Update to 8.4. [version]: Use '%racket-version'. [source]: Use '%racket-origin'. [inputs]: Add 'ncurses'. Remove 'zlib:static' and 'lz4:static'. (racket-minimal-bc-3m)[inputs]: Adjust accordingly. (racket-bootstrap-chez-bootfiles)[version]: Use Chez Scheme's '(scheme-fork-version-number)'. (racket)[version]: Use '%racket-version'. [native-inputs]: Use '%racket-origin'. [source]: Update to 8.4. <patches>: Use "racket-gui-tethered-launcher-backport.patch". <snippet>: Remove "srfi-doc-nonfree". Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-03-04gnu: Use license prefix in (gnu packages racket).Philip McGrath
* gnu/packages/racket.scm (racket-minimal, racket-minimal-bc-3m) (racket-bootstrap-chez-bootfiles): Use license prefix. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2021-12-13gnu: Simplify package inputs.Ludovic Courtès
This commit was obtained by running: ./pre-inst-env guix style without any additional argument.
2021-11-25gnu: racket: Remove article from the beginning of the synopsis.Arun Isaac
* gnu/packages/racket.scm (racket)[synopsis]: Remove article from the beginning.
2021-11-24gnu: racket: Update to 8.3.jgart
* gnu/packages/racket.scm (racket-minimal, racket): Update to 8.3. * gnu/packages/racket.scm (racket-minimal)[source]: Remove racket-minimal-backport-1629887.patch from patches. * gnu/packages/patches/racket-minimal-backport-1629887.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Unregister it. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2021-09-10gnu: racket: suppress build stampPhilip McGrath
The `build-stamp` configuration key should generally be set to an empty string for a release build. The automatically inferred build stamp is especially unhelpful with Guix, since it ends up being the Unix epoch. * gnu/packages/racket.scm (racket-minimal)[arguments]: Adjust the 'initialize-config.rktd phase to set 'build-stamp to "". Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-10gnu: racket: fix `raco exe` with non-minimal RacketPhilip McGrath
This commit backports an upstream repair for a bug exposed by Guix's change in Racket 8.2 to make the `racket` package a layered/tethered installation that chains to the `racket-minimal` package. When using a layered/tethered installation, the `setup/variant` library would fail to recognize the default Racet variant (CS, 3M, or CGC), leading to confusing failures from `raco exe`, `create-embedding-executable`, and other clients. For further details, see <https://issues.guix.gnu.org/50118> and <https://github.com/racket/racket/issues/3969>. * gnu/packages/patches/racket-minimal-backport-1629887.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/racket.scm (racket-minimal)[source]: Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07gnu: racket-minimal: Remove top-level reference to 'chez-scheme'.Ludovic Courtès
This could cause build errors; for instance, doing: make && touch gnu/packages/chez.scm && make would trigger a "chez-scheme: unbound variable" error. * gnu/packages/racket.scm (racket-minimal)[source]: Add 'modules' field. In 'snippet', remove top-level reference to CHEZ-SCHEME, which could cause build errors. Simplify snippet.
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>