aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/racket.scm
Commit message (Collapse)AuthorAge
* gnu: chez-scheme: Bootstrap from source.Philip McGrath2024-04-11
| | | | | | | | | | | | | | | | | | | * gnu/packages/chez.scm (chez-scheme)[source]<snippet>: Also unbundle pre-built boot files. (chez-scheme-bootstrap-bootfiles): Stop inheriting from 'chez-scheme'. [native-inputs]: Add 'zuo', 'chez-nanopass-bootstrap', and either 'chez-scheme-for-racket' or, for cross builds, 'chez-scheme'. [build-system]: Change to gnu-build-system. [arguments]: Change to run 'configure' and then bootstrap via `make re.boot` or, for cross builds, `make cross.boot` [synopsis, description]: Update accordingly. (chez-scheme-for-racket-bootstrap-bootfiles)[synopsis]: Write "boot files" as two words in prose. [description]: Likewise. * gnu/packages/racket.scm: Update comments. Change-Id: I55d9b57090ecaca0aa2ab19c2c3ebae2243a9173 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: chez-scheme: Update and simplify machine-type handling.Philip McGrath2024-04-11
| | | | | | | | | | | | | | | | | | | | | | | | Since Chez Scheme 10.0.0 supports all of the backends added in Racket's branch, the complexity of '%chez-features-table' is no longer needed. Ideally, even more of this logic could be maintained upstream, but this change will simplify maintenance in the mean time. * gnu/packages/chez.scm (target-chez-arch): Recognize loongarch64. (chez-upsteam-features-for-system): Remove function. (%chez-features-table): Replace with ... (define-machine-types, %machine-types): ... this new macro and variable, using the list copied directly from the Chez Scheme source code. (nix-system->pbarch-machine-type): Update docstring, since pbarch machine types are supported upstream as of Chez Scheme 10.0.0. (racket-cs-native-supported-system?): Replace with ... (nix-system->native-chez-machine-type): ... this new function, implemented using '%machine-types'. (chez-scheme-for-racket): Update accordingly. (chez-scheme-for-racket-bootstrap-bootfiles): Likewise. * gnu/packages/racket.scm (racket-vm-cs): Likewise. Change-Id: I46efebaf48cce388075ab4873c16a6f5f9692bb7 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Update to 8.12.Philip McGrath2024-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All of Racket's changes to Chez Scheme have been merged upstream. They are the basis for the Chez Scheme 10.0.0 release. For the forseeable future, Racket will continue to depend on a specific pre-release version of Chez Scheme as part of Racket's "ABI": see upstream discussion at <https://racket.discourse.group/t/2739/3>. * gnu/packages/chez.scm (chez-configure): Change to define a phase to run the Chez Scheme configure script, renaming the old definition to ... (configure-chezschemelibdirs): ... this new variable. (chez-srfi, chez-matchable, chez-irregex, chez-fmt, chez-mit) (chez-scmutils)[arguments]<#:phases>: Update accordingly. (unpack-nanopass+stex): Replace with ... (unpack-nanopass): ... this new variable. (chez-scheme)[arguments]<#:phases>: Inline old definition of 'unpack-nanopass+stex' to facilitate transition. (chez-scheme-for-racket): Stop inheriting from 'chez-scheme'. [version]: Update to 9.9.9-pre-release.23. [outputs]: Add "debug" output. [native-inputs]: Add 'texlive-enumitem' for native builds. For cross builds, omit TeX-related inputs and add this-package:doc. [inputs, native-search-paths, home-page]: Rewrite without inheritance. [arguments]: Likewise, and adjust for upstream changes. [synopsis, description]: Rewrite to reflect upstreaming of Racket's changes to Chez Scheme. (chez-scheme-for-racket-bootstrap-bootfiles): Stop inheriting from 'chez-scheme-bootstrap-bootfiles'. [arguments]: Rewrite without inheritance. Use `make cross.boot` instead of broken experimental script for cross builds. [home-page]: Use bootstrapping Racket package instead of archived Git repository. [description]: Rewrite to reflect upstreaming of Racket's changes to Chez Scheme. * gnu/packages/patches/racket-backport-8.11-layered-docs.patch: Delete file. * gnu/packages/patches/racket-backport-8.12-chez-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (%racket-origin)[patches]: Likewise. [snippet]: Also unbundle Zuo and potential pre-built boot files. (%racket-version): Update to 8.12. (racket-vm-cs)[arguments]<#:phases>: Use 'unpack-nanopass' instead of 'unpack-nanopass+stex'. (racket)[inputs]<data, deinprogramm, drracket, gui, htdp, net-cookies> <pict, plot, rackunit, redex, scribble, typed-racket, string-constants> <web-server>: Update hashes. <quickscript>: Likewise, and remove obsolete snippet. Change-Id: I11e7f44be37c60c91b03d246a50e75e418bd0672 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: zuo: Update to 1.9.Philip McGrath2024-04-11
| | | | | | | | | | | | | | | | | | Zuo now has tagged releases independent of the Racket release cycle. * gnu/packages/patches/racket-zuo-bin-sh.patch: Move to ... * gnu/packages/patches/zuo-bin-sh.patch: ... this file, and refresh it. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket/scm (%racket-origin)[patches]: Likewise. * gnu/packages/patches/racket-chez-scheme-bin-sh.patch: Refresh patch. * gnu/packages/patches/racket-rktio-bin-sh.patch: Likewise. * gnu/packages/racket/scm (%zuo-version): Move to ... (zuo)[version]: ... this field, and update to 1.9. [source]: Change to the repository where Zuo releases are tagged. [arguments]: Stop supplying '#:phases'. Change-Id: Ia82c0f7a8e4696ae08e30965e3f4ec85673b86e5 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Update to 8.11.1.Philip McGrath2023-12-13
| | | | | | | | | | | | | | | | | * gnu/packages/patches/racket-backport-8.10-rktboot.patch: Delete file. * gnu/packages/patches/racket-backport-8.11-layered-docs.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket/scm (%racket-origin)[patches]: Likewise. (%racket-version): Update to 8.11.1. (%zuo-version): Update to 1.7. (racket)[inputs]<deinprogramm, draw, drracket, games, gui, htdp> <parser-tools, plot, rackunit, redex, scribble, slideshow, typed-racket> <srfi, string-constants, syntax-color, web-server, xrepl>: Update hashes. <quickscript>: Likewise, and add snippet. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.9.9-pre-release.18. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Declare OpenSSL search paths.Philip McGrath2023-09-08
| | | | | | | | | | | | Otherwise, OpenSSL used via Racket fails to find certificates, e.g. when attempting to run 'raco pkg install'. Fixes <https://racket.discourse.group/t/2206/8>. * gnu/packages/racket.scm (racket-minimal)[native-search-paths]: Add $SSL_CERT_DIR and $SSL_CERT_FILE. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* gnu: racket: Update to 8.10.Philip McGrath2023-09-08
| | | | | | | | | | | | | | | | | * gnu/packages/patches/racket-rktboot-riscv64-support.patch: Move to ... * gnu/packages/patches/racket-backport-8.10-rktboot.patch: ... this file, together with a related upstreamed patch. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket/scm (%racket-origin)[patches]: Likewise. (%racket-version): Update to 8.10. (racket)[inputs]<data, deinprogramm, drracket, gui, htdp, math> <net-cookies, pict, plot, racklog, redex, scribble, slideshow, snip> <typed-racket, string-constants, syntax-color, web-server>: Update hashes. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.9.9-pre-release.17. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* chez-sheme-for-racket: Fix building on riscv64-linux.Efraim Flashner2023-07-21
| | | | | | * gnu/packages/racket.scm (%racket-origin): Add patch. * gnu/packages/patches/racket-rktboot-riscv64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
* gnu: racket: Update to 8.9.Philip McGrath2023-07-14
| | | | | | | | | | | | * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.9.9-pre-release.16. * gnu/packages/racket.scm (%racket-version): Update to 8.9. (racket)[inputs]<deinprogramm, draw, drracket, future-visualizer, gui> <htdp, macro-debugger, math, pict, plot, rackunit, redex, scribble> <slideshow, snip, typed-racket, srfi, swindle, syntax-color> <web-server>: Update checksums. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Update to 8.8.Philip McGrath2023-02-19
| | | | | | | | | | | | | | | * gnu/packages/patches/racket-backport-8.7-pkg-strip.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Delete it. * gnu/packages/racket.scm (%racket-origin)[patches]: Likewise. (%racket-version): Update to 8.8. (%zuo-version): Update to 1.6. (racket)[inputs]<algol60, cext-lib, deinprogramm, draw, drracket> <expeditor, gui, htdp, math, pict, r5rs, redex, sasl, scribble> <typed-racket, string-constants, syntax-color>: Update checksums. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.9.9-pre-release.14. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* gnu: Remove unneeded module imports.Efraim Flashner2023-02-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/packages/abiword.scm, * gnu/packages/ada.scm, * gnu/packages/agda.scm, * gnu/packages/backup.scm, * gnu/packages/barrier.scm, * gnu/packages/bioinformatics.scm, * gnu/packages/bootstrap.scm, * gnu/packages/bqn.scm, * gnu/packages/c.scm, * gnu/packages/chemistry.scm, * gnu/packages/coq.scm, * gnu/packages/cross-base.scm, * gnu/packages/databases.scm, * gnu/packages/emacs-xyz.scm, * gnu/packages/enlightenment.scm, * gnu/packages/games.scm, * gnu/packages/geo.scm, * gnu/packages/ghostscript.scm, * gnu/packages/gl.scm, * gnu/packages/golang.scm, * gnu/packages/jami.scm, * gnu/packages/java-maths.scm, * gnu/packages/kde-frameworks.scm, * gnu/packages/kde-plasma.scm, * gnu/packages/language.scm, * gnu/packages/libreoffice.scm, * gnu/packages/linphone.scm, * gnu/packages/lisp.scm, * gnu/packages/llvm.scm, * gnu/packages/machine-learning.scm, * gnu/packages/minetest.scm, * gnu/packages/monitoring.scm, * gnu/packages/nfs.scm, * gnu/packages/ocr.scm, * gnu/packages/opencl.scm, * gnu/packages/pdf.scm, * gnu/packages/python-xyz.scm, * gnu/packages/racket.scm, * gnu/packages/rust.scm, * gnu/packages/syncthing.scm, * gnu/packages/syndication.scm, * gnu/packages/telegram.scm, * gnu/packages/vulkan.scm, * gnu/packages/web-browsers.scm, * gnu/packages/web.scm, * gnu/packages/webkit.scm: Remove some unecessary module imports.
* gnu: racket-vm-cs: Avoid duplicate work.Philip McGrath2022-11-20
| | | | | | | | | | | | Only configure with '--enable-racket' for cross-compilation: otherwise, it effectively overrides '--enable-scheme' and bootstraps Chez Scheme again. This change saves a couple minutes of build time. See upstream discussion at <https://github.com/racket/racket/issues/4492>. * gnu/packages/racket.scm (racket-vm-cs)[native-inputs]: Only supply a Racket VM when cross-compiling. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* gnu: racket: Update to 8.7.Philip McGrath2022-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, update 'chez-scheme-for-racket' to 9.5.9.8. Note that racket-backport-8.6-cross-install.patch, racket-backport-8.6-docindex-write.patch, and racket-backport-8.6-hurd.patch were missing from dist_patch_DATA. * gnu/packages/patches/racket-backport-8.6-cross-install.patch, gnu/packages/patches/racket-backport-8.6-docindex-write.patch, gnu/packages/patches/racket-backport-8.6-hurd.patch, gnu/packages/patches/racket-backport-8.6-zuo.patch: Remove patches. * gnu/packages/patches/racket-backport-8.7-pkg-strip.patch: New patch. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (%racket-origin)[patches]: Likewise. (%racket-version): Update to 8.7. (racket)[inputs]: Add 'scheme-doc' source package from '%racket-origin'. (racket)[inputs]<compatibility, db, deinprogramm, draw, drracket> <eopl, errortrace, gui, htdp, mzscheme, parser-tools, pict, plai, plot> <r6rs, redex, scribble, slideshow, snip, typed-racket, srfi> <string-constants>: Update checksums. * gnu/packages/chez.scm (chez-scheme-for-racket): Update to 9.5.9.8. [arguments]: Enable tests. [description]: Update. (chez-scheme-for-racket-bootstrap-bootfiles)[arguments]: Update path to 'rktboot'. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* gnu: zuo: Use English in description.Liliana Marie Prikler2022-09-08
| | | | * gnu/packages/racket.scm (zuo)[description]: Use English.
* gnu: racket: Use Racket CS on all systems.Philip McGrath2022-09-04
| | | | | | | | | | | This patch uses the 'pbarch' support added to 'racket-vm-cs' to make it the default Racket VM implementation on all systems. * gnu/packages/racket.scm (racket-vm-for-system): Remove. (racket-minimal, racket)[inputs]: Replace '(racket-vm-for-system)' with 'racket-vm-cs'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket-vm-bc: Add workaround for ppc64le.Philip McGrath2022-09-04
| | | | | | | | | | | | | This is an attempt to avoid a problem with Racket BC on ppc64 reported in <https://issues.guix.gnu.org/57050#19> that was exposed by attempting to use Racket BC to bootstrap Chez Scheme. Thanks to Matthew Flatt for the workaround: <https://racket.discourse.group/t/950/30>. * gnu/packages/racket.scm (racket-vm-bc)[arguments]<#:configure-flags>: Increase the number of bytes that should be available on the stack for "safety" when checking for stack overflow. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: chez-scheme-for-racket: Support all systems.Philip McGrath2022-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On systems for which Racket's variant of Chez Scheme cannot generate native code, it can use a 'pbarch' machine type: a variant of the ``portable bytecode'' backend specialized to word size and endianness. This allows Racket CS to replace Racket BC on those systems while maintaining comparable performance. (Racket BC lacks JIT support for those systems anyway.) It also lets us provide a Chez Scheme package on all systems Guix supports. This patch adds 'pbarch' support to both 'chez-scheme-for-racket' and 'racket-vm-cs', but it does not change the Racket VM implementation used for the 'racket' and 'racket-minimal' packages. * gnu/packages/chez.scm (nix-system->pbarch-machine-type): New variable. (chez-scheme-for-racket)[inputs]: Use 'libffi' for non-native systems. [arguments]<#:configure-flags>: Always supply '-m='. Add applicable flags for non-native systems. [supported-systems]: Use '%supported-systems'. [description]: Update. (chez-scheme-for-racket-bootstrap-bootfiles)[arguments]<#:phases>: Adapt 'build' phase for non-native systems. * gnu/packages/racket.scm (racket-vm-bc)[description]: Update. (racket-vm-cs)[description]: Likewise. [inputs]: Use 'libffi' for non-native systems. [arguments]<#:configure-flags>: Add applicable flags for non-native systems. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Support cross-compiling the VM packages.Philip McGrath2022-09-04
| | | | | | | | | | | | | | | | | | | Cross-compilation works for 'racket-vm-cgc', 'racket-vm-bc', and 'racket-vm-cs'. These changes are not enough to cross-compile 'racket-minimal' or 'racket': that would require building and loading cross-compilation pluggins for 'racket-vm-cs', which will be much easier once we can build the package 'raco-cross'. * gnu/packages/racket.scm (racket-vm-cgc): Add 'this-package' when cross-compiling. (racket-vm-bc)[native-inputs]: Adjust accordingly. (racket-vm-cs)[native-inputs]: Use 'racket-vm-cs' instead of 'racket-vm-bc' when cross-compiling. Adapt to changes to 'racket-vm-cgc'. [arguments]<#:configure-flags>: Fix '--enable-scheme' for cross-compilation. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Update to 8.6.Philip McGrath2022-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, update 'chez-scheme-for-racket' to 9.5.9.2. * gnu/packages/patches/racket-chez-scheme-bin-sh.patch: Refresh patch. * gnu/packages/patches/racket-backport-8.6-cross-install.patch, gnu/packages/patches/racket-backport-8.6-docindex-write.patch, gnu/packages/patches/racket-backport-8.6-hurd.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/racket.scm (%racket-origin)[patches]: Use them and the patches for Zuo. (%racket-version): Update to 8.6. (zuo)[version]: Refer to '%racket-version'. [origin]: Use '%racket-origin'. (racket-vm-cgc)[native-inputs]: Add 'zuo'. [arguments]<#:make-flags>: Use 'zuo' from 'native-inputs'. (racket)[inputs]<data, db, deinprogramm, draw, drracket, errortrace, gui, htdp, math, option-contract, parser-tools, pict, rackunit, realm, redex, scribble, typed-racket, string-constants, swindle, syntax-color, web-server>: Update checksums. * gnu/packages/chez.scm (target-chez-os): Handle Hurd and QNX. (%chez-features-table): Likewise. (chez-scheme-for-racket): Update to 9.5.9.2. [native-inputs]: Add 'zuo'. [arguments]<#:out-of-source?>: Use out-of-source build. <#:tests?>: Skip them due to ongoing problems. <#:configure-flags>: Add '--install-csug=' and '--installreleasenotes='. <#:make-flags>: Use 'zuo' from 'native-inputs'. Supply 'STEXLIB=' here, rather than in a phase. <#:phases>: Replace 'install-docs' using new 'make' target. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: Add Zuo.Philip McGrath2022-09-04
| | | | | | | | | | * gnu/packages/patches/racket-backport-8.6-zuo.patch, gnu/packages/patches/racket-zuo-bin-sh.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/racket.scm (%zuo-version): New variable. (zuo): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: chez-scheme: Fix use of "/bin/sh".Philip McGrath2022-09-04
| | | | | | | | | | | | | | | The unsuccessful attempt to execute "/bin/sh" by Chez Scheme's 'process' function seems to have caused parts of the Chez Scheme test suite to have been silently skipped. The issue was exposed by the upcoming changes to Racket's build system. * gnu/packages/patches/chez-scheme-bin-sh.patch, gnu/packages/patches/racket-chez-scheme-bin-sh.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/racket.scm (%racket-origin)[patches]: Update accordingly. * gnu/packages/chez.scm (chez-scheme)[origin]<patches>: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Adjust patch for "/bin/sh" in rktio.Philip McGrath2022-09-04
| | | | | | | | | | | | | | | | | | | Use '_PATH_BSHELL' instead of a custom preprocessor macro. This may not be The Right Thing in the long term, but it at least avoids a proliferation of 'CPPFLAGS'. * gnu/packages/patches/racket-minimal-sh-via-rktio.patch: Rename to ... * gnu/packages/patches/racket-rktio-bin-sh.patch: ... this, and change to use '_PATH_BSHELL'. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (%racket-origin)[patches]: Likewise. (racket-vm-common-configure-flags): Stop setting 'CPPFLAGS'. Change to a constant instead of a function, since we no longer need the delay. (racket-vm-cgc, racket-vm-bc, racket-vm-cs)[arguments]<#:configure-flags>: Update accordingly. [inputs]: Remove 'bash-minimal'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: racket: Avoid use of (ice-9 exceptions).Ludovic Courtès2022-06-13
| | | | | | | | | 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).
* gnu: racket-vm-cs: Fix typo in description.Tobias Geerinckx-Rice2022-05-22
| | | | | * gnu/packages/racket.scm (racket-vm-cs)[description]: Fix ‘implemetation’ typo.
* gnu: chez-scheme-for-racket: Fix supported systems.Philip McGrath2022-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* gnu: racket: Fix out-of-source build.Philip McGrath2022-05-12
| | | | | | | | * 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>
* gnu: racket: Update to 8.5.Philip McGrath2022-05-12
| | | | | | | | | | | | | | | | | * 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>
* gnu: racket-vm-cs: Build with "--enable-scheme".Philip McGrath2022-03-04
| | | | | | | | | * 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>
* gnu: Add chez-scheme-for-racket.Philip McGrath2022-03-04
| | | | | | | | | | | | 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>
* gnu: Add chez-nanopass.Philip McGrath2022-03-04
| | | | | | | | | | | | | | | | * 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>
* gnu: chez-scheme: Use new package style.Philip McGrath2022-03-04
| | | | | | | | | | | | * 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>
* gnu: racket: Add 'racket-vm-for-system'.Philip McGrath2022-03-04
| | | | | | | * 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>
* gnu: racket: Move Chez bootfiles to (gnu packages chez).Philip McGrath2022-03-04
| | | | | | | | | | | * 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>
* gnu: racket-minimal: Separate from the Racket VM.Philip McGrath2022-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* gnu: configure-layer.rkt: Adjust indentation.Philip McGrath2022-03-04
| | | | | | | * 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>
* gnu: racket-minimal: Add "debug" output.Philip McGrath2022-03-04
| | | | | | | * 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>
* gnu: racket-minimal: Adjust indentation.Philip McGrath2022-03-04
| | | | | | | | * 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>
* gnu: racket-minimal: Change inheritance to follow bootstrapping.Philip McGrath2022-03-04
| | | | | | | | | | | | | | | | | | | 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>
* gnu: racket-minimal: Don't configure non-existant catalogs.Philip McGrath2022-03-04
| | | | | | | | * 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>
* gnu: racket-minimal: Use new package style.Philip McGrath2022-03-04
| | | | | | | | | | | | | | | | | | | | | | | * 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>
* gnu: racket: Use Git origins for Racket packages.Philip McGrath2022-03-04
| | | | | | | | | | | | | | | | | | | | | * 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>
* gnu: racket: Update to 8.4.Philip McGrath2022-03-04
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
* gnu: Use license prefix in (gnu packages racket).Philip McGrath2022-03-04
| | | | | | | * 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>
* gnu: Simplify package inputs.Ludovic Courtès2021-12-13
| | | | | | | | This commit was obtained by running: ./pre-inst-env guix style without any additional argument.
* gnu: racket: Remove article from the beginning of the synopsis.Arun Isaac2021-11-25
| | | | | * gnu/packages/racket.scm (racket)[synopsis]: Remove article from the beginning.
* gnu: racket: Update to 8.3.jgart2021-11-24
| | | | | | | | | | * 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>
* gnu: racket: suppress build stampPhilip McGrath2021-09-10
| | | | | | | | | | | 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>
* gnu: racket: fix `raco exe` with non-minimal RacketPhilip McGrath2021-09-10
| | | | | | | | | | | | | | | | | | | 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>
* gnu: racket-minimal: Remove top-level reference to 'chez-scheme'.Ludovic Courtès2021-09-07
| | | | | | | | | | | | 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.
* gnu: racket-minimal: Bootstrap from C.Philip McGrath2021-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>