Commit Graph

50 Commits

Author SHA1 Message Date
Philip McGrath
b5326763c7
gnu: racket: Update to 8.8.
* 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>
2023-02-19 08:16:47 +01:00
Efraim Flashner
672036c6df
gnu: Remove unneeded module imports.
* 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.
2023-02-16 22:41:03 +02:00
Philip McGrath
ac09fcb955
gnu: racket-vm-cs: Avoid duplicate work.
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>
2022-11-20 02:22:18 +01:00
Philip McGrath
fca5e1a507
gnu: racket: Update to 8.7.
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>
2022-11-20 02:22:18 +01:00
Liliana Marie Prikler
38e8373830
gnu: zuo: Use English in description.
* gnu/packages/racket.scm (zuo)[description]: Use English.
2022-09-08 15:50:39 +02:00
Philip McGrath
ed24d6b46c
gnu: racket: Use Racket CS on all systems.
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>
2022-09-04 23:10:12 +02:00
Philip McGrath
64a27e1678
gnu: racket-vm-bc: Add workaround for ppc64le.
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>
2022-09-04 23:10:12 +02:00
Philip McGrath
a15d72f8e1
gnu: chez-scheme-for-racket: Support all systems.
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>
2022-09-04 23:10:12 +02:00
Philip McGrath
cb0d106590
gnu: racket: Support cross-compiling the VM packages.
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>
2022-09-04 23:10:12 +02:00
Philip McGrath
9647296ce6
gnu: racket: Update to 8.6.
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>
2022-09-04 23:10:11 +02:00
Philip McGrath
07a8440f50
gnu: Add Zuo.
* 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>
2022-09-04 23:10:11 +02:00
Philip McGrath
5142fba364
gnu: chez-scheme: Fix use of "/bin/sh".
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>
2022-09-04 23:10:11 +02:00
Philip McGrath
911768b6d5
gnu: racket: Adjust patch for "/bin/sh" in rktio.
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>
2022-09-04 23:10:11 +02:00
Ludovic Courtès
8918ce6d16
gnu: racket: Avoid use of (ice-9 exceptions).
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-06-13 12:27:34 +02:00
Tobias Geerinckx-Rice
a504a446f0
gnu: racket-vm-cs: Fix typo in description.
* gnu/packages/racket.scm (racket-vm-cs)[description]:
Fix ‘implemetation’ typo.
2022-05-22 02:00:36 +02:00
Philip McGrath
4c0ac41ba4
gnu: chez-scheme-for-racket: Fix supported systems.
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 b8fc916951 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-12 10:30:08 +02:00
Philip McGrath
544fbdcc9e
gnu: racket: Fix out-of-source build.
* 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-12 10:30:07 +02:00
Philip McGrath
af375c6394
gnu: racket: Update to 8.5.
* 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-05-12 10:30:07 +02:00
Philip McGrath
992ed3b4ce
gnu: racket-vm-cs: Build with "--enable-scheme".
* 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-04 23:44:54 +01:00
Philip McGrath
61ca3d9a84
gnu: Add chez-scheme-for-racket.
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-04 23:44:41 +01:00
Philip McGrath
6bca38f282
gnu: Add chez-nanopass.
* 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-04 23:44:11 +01:00
Philip McGrath
75f9f9441f
gnu: chez-scheme: Use new package style.
* 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-04 23:43:43 +01:00
Philip McGrath
9b1bfc0ce9
gnu: racket: Add 'racket-vm-for-system'.
* 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-04 23:43:15 +01:00
Philip McGrath
df00c01d94
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>
2022-03-04 23:42:26 +01:00
Philip McGrath
035562b7b7
gnu: racket-minimal: Separate from the Racket VM.
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-04 23:38:52 +01:00
Philip McGrath
f6cd4279a0
gnu: configure-layer.rkt: Adjust indentation.
* 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-04 23:38:23 +01:00
Philip McGrath
049a27d8a8
gnu: racket-minimal: Add "debug" output.
* 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-04 23:38:13 +01:00
Philip McGrath
ec031b3cf3
gnu: racket-minimal: Adjust indentation.
* 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-04 23:38:09 +01:00
Philip McGrath
daa91a49b2
gnu: racket-minimal: Change inheritance to follow bootstrapping.
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-04 23:37:59 +01:00
Philip McGrath
9f8f785014
gnu: racket-minimal: Don't configure non-existant catalogs.
* 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-04 23:37:55 +01:00
Philip McGrath
9e5e413c81
gnu: racket-minimal: Use new package style.
* 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-04 23:37:42 +01:00
Philip McGrath
81e532ff19
gnu: racket: Use Git origins for Racket packages.
* 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-04 23:37:24 +01:00
Philip McGrath
56cf53fb7b
gnu: racket: Update to 8.4.
* 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-04 23:36:58 +01:00
Philip McGrath
0ff69fa1dd
gnu: Use license prefix in (gnu packages racket).
* 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>
2022-03-04 23:36:48 +01:00
Ludovic Courtès
8394619bac
gnu: Simplify package inputs.
This commit was obtained by running:

  ./pre-inst-env guix style

without any additional argument.
2021-12-13 17:48:25 +01:00
Arun Isaac
c47a45ca7e
gnu: racket: Remove article from the beginning of the synopsis.
* gnu/packages/racket.scm (racket)[synopsis]: Remove article from the
beginning.
2021-11-25 00:07:10 +05:30
jgart
6de284e832
gnu: racket: Update to 8.3.
* 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-11-24 23:59:37 +05:30
Philip McGrath
87da416308
gnu: racket: suppress build stamp
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-10 17:30:55 +02:00
Philip McGrath
fd22921490
gnu: racket: fix raco exe with non-minimal Racket
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-10 17:30:55 +02:00
Ludovic Courtès
96db2ff145
gnu: racket-minimal: Remove top-level reference to 'chez-scheme'.
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-09-07 15:59:34 +02:00
Philip McGrath
db2c7e70ad
gnu: racket-minimal: Bootstrap from C.
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-31 01:03:25 +02:00
Philip McGrath
65bad4d036
gnu: racket: Unbundle racket-minimal.
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-31 01:03:25 +02:00
Philip McGrath
1ae95ebcdd
gnu: racket: Update to 8.2.
* 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-07-31 01:03:24 +02:00
raingloom
c094e574f2
gnu: Break up import loop between (gnu packages racket) and (gnu packages chez).
* gnu/packages/racket.scm: Remove (gnu packages chez) import.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-29 22:12:48 +02:00
Marius Bakke
dbcf2b61b1
gnu: Fix erroneous uses of 'package/inherit'.
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-23 17:49:56 +02:00
Philip McGrath
b12bb7d297
gnu: racket: Update to 8.1.
* 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-10 15:51:48 +03:00
Philip McGrath
0ca37f3c7d
gnu: racket: Add aditional mirrors.
* 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-05 16:56:45 +02:00
Philip McGrath
93867cb3be
gnu: racket: Racket inherits racket-minimal, not vice versa.
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-05 16:56:45 +02:00
Philip McGrath
cd9454f6ed
gnu: racket: Remove obsolete patch.
* 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-05 16:56:44 +02:00
Philip McGrath
3df04eb09f
gnu: racket: Move to (gnu packages racket).
* 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>
2021-05-05 16:56:44 +02:00