Change 'chez-scheme-for-system' to return 'chez-scheme-for-racket' in
two cases when it previously returned 'chez-scheme':
1. When 'chez-scheme' is not distributed with bootstrap bootfiles,
since we can only cross-compile 'chez-scheme' for those systems; and
2. When neither 'chez-scheme' nor 'chez-scheme-for-racket' supports
native code generation, since we will be able to use the ``portable
bytecode'' backends of 'chez-scheme-for-racket' as soon as the
issues in <https://racket.discourse.group/t/950> are resolved.
* gnu/packages/chez.scm (chez-scheme-for-racket): Change condition.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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>
This commit is a follow-up to b8fc916951.
While that commit fixed a breaking build, this one begins to address the
faulty assumptions that lead to the failure: see also
<https://issues.guix.gnu.org/54292#6>.
In this commit, we reimplement 'chez-upstream-features-for-system' using
the new '%chez-features-table', which explicitly specifies platform
support for both 'chez-scheme' and 'chez-scheme-for-racket', rather than
assuming a non-false result from 'nix-system->chez-machine' means that
the system is supported.
The remaining uses of 'nix-system->chez-machine' still make that
incorrect assumption and must be repaired in a future commit.
* gnu/packages/chez.scm (%nix-arch-to-chez-alist,
%nix-os-to-chez-alist): Replace with ...
(target-chez-arch, target-chez-os): ... these new variables.
(nix-system->chez-machine): Rewrite using them.
(%chez-features-table): New variable.
(chez-upstream-features-for-system): Rewrite using it.
(chez-scheme)[supported-systems]: Update armhf-linux comment.
(chez-scheme-bootstrap-bootfiles)[supported-systems]: Use
'chez-upstream-features-for-system'.
(chez-machine->nonthreaded, chez-machine->threaded,
chez-machine->nix-system): Remove unused functions.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Move Chez-specific logic into '#:configure-flags' and a new
'configure-environment-variables' phase, leaving the 'configure' phase
as just a variant of the one from 'gnu-build-system' (including support
for '#:out-of-source?') that doesn't add implicit Autoconf-style flags.
In the process, do the right thing for "--threads", rather than assuming
the only nonthreaded platform is broken.
* gnu/packages/chez.scm (chez-scheme)[arguments]: Set configure flags in
'#:configure-flags' and separate 'configure-environment-variables' from
the residual 'configure' phase. More closely follow 'gnu-build-system'.
Use 'chez-upstream-features-for-system' for "--threads".
(chez-scheme-for-racket)[arguments]<#:configure-flags>: Add "--threads"
unconditionally.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Patches merged in both upstream Chez Scheme and Racket's variant will
soon let us replace the 'install-docs' phase with just
'make install-docs'. Separating the 'link-doc-pdfs' phase (which won't
change) leaves us well-prepared for the transition, regardless of
whether Chez Scheme 9.5.10 or Racket 8.6 is released first.
* gnu/packages/chez.scm (chez-scheme)[arguments]: Split 'install-doc'
phase into 'install-docs' (matching the future 'make' target) and
'link-doc-pdfs'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/terminals.scm (beep): Update to 1.4.12.
[arguments]: Set $(CC) #:make-flag.
Manually substitute the correct value of make check's $(PWD). (!)
* gnu/packages/version-control.scm (libgit2): Update to 1.4.3.
[source]: Adjust snippet to comment out the "10 years ago" test, which
was changed in 1.4.3 but is still problematic.
[arguments]: Add "-DUSE_SSH=ON". Remove 'fix-hardcoded-paths' phase.
Adjust 'check' phase for new executable name.
(libgit2-1.3): New variable.
(libgit2-1.1): Inherit from 'libgit2-1.3'; inherit from its origin too.
* gnu/packages/crates-io.scm (rust-git2-0.13)[inputs]: Use LIBGIT2-1.3.
* gnu/packages/python-xyz.scm (python-pygit2)[propagated-inputs]: Likewise.
Co-authored-by: Maxime Devos <maximedevos@telenet.be>
* gnu/packages/crates-io.scm (rust-proc-macro-error-1)[arguments]: Move
code relaxing version requirements from custom phase ...
[source]: ... to a snippet.
This allows the changes to propagate through the cargo-build-system.
* gnu/packages/crates-io.scm (rust-parking-lot-core-0.8)[source]: Add
snippet to relax version dependencies.
[arguments]: Remove 'relax-dependencies phase.