* gnu/packages/rust.scm (rust-1.30)[supported-systems]: Instead of hard-coding
this to just "x86_64-linux", calculate the supported systems by deleting
"i686-linux" from %supported-systems.
By only testing the final Rust in the bootstrap chain, the total build time is
reduced by approximately 30%, from about 11 hours to 8 hours on a fast
machine. Combined with commit df93fc21a4, the total Rust bootstrap chain
build time should have been halved.
* gnu/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch:
Delete file.
* gnu/local.mk (dist_patch_DATA): De-register it.
* gnu/packages/rust.scm (rust-1.29): Do not apply the above patch.
(rust-1.30): Remove the "doc" output. Disable tests.
[phases]{set-env}: Do not set CFG_DISABLE_CROSS_TESTS.
{relax-gdb-auto-load-safe-path, patch-tests, patch-cargo-index-update}
{patch-aarch64-test, remove-unsupported-tests, disable-amd64-avx-test}
{patch-cargo-tests, patch-cargo-env-shebang}
{ignore-cargo-package-tests}: Remove phases.
{configure}: Remove the doc and gdb bindings and their respective
configuration entries in the generated config.toml file.
{check}: Remove phase.
[native-inputs]{bison, flex, gdb, procps}: Remove inputs.
{python-2}: Replace by python-wrapper.
{rust-1.29}: Do not export variable.
{rust-1.30}: Likewise.
(rust-1.31): Likewise.
[arguments]: Remove field.
(rust-1.32): Do not export variable.
[source]: Remove patch.
[phases]{override-jemalloc}: Order following 'configure.
{remove-flaky-test, patch-aarch64-test}: Remove deletions.
(rust-1.33): Do not export variable.
[arguments]: Remove field.
(rust-1.34): Do not export variable.
(rust-1.35): Likewise.
(rust-1.36): Likewise.
[arguments]: Remove field.
(rust-1.37): Do not export variable.
(rust-1.38): Do not export variable.
[arguments]: Likewise.
(rust-1.39): Do not export variable.
(rust-1.40): Do not export variable.
[phases]: Do not alter the #:phases argument.
(rust-1.41, rust-1.42, rust-1.43): Do not export variables.
(rust-1.44): Likewise.
[arguments]: Remove field.
(rust-1.45): Do not export variable.
[phases]{skip-shebang-tests, skip-networking-test}: Remove phases.
(rust-1.46): Do not export variable.
(rust-1.47): Do not export variable.
[arguments]: Remove field.
(rust-1.48): Do not export variable.
[arguments]: Remove field.
(rust-1.49): Rename to...
(rust): ... this.
[outputs]: Add a "doc" output.
[phases]{enable-docs, add-gdb-to-config}
{relax-gdb-auto-load-safe-path, patch-cargo-env-shebang}
{disable-tests-requiring-git, disable-interrupt-tests}
{patch-command-exec-tests, patch-command-uid-gid-test}
{skip-shebang-tests, patch-process-tests}: New phases.
[native-inputs]{gdb-9.2, procps}: New inputs.
This reduced bootstrap reduces the complete Rust bootstrap chain build time by
approximately 30% compared to the original (about 11 hours instead of 16
hours, on a fast machine).
* gnu/packages/patches/rust-1.45-linker-locale.patch: Delete file.
* gnu/packages/patches/rust-1.48-linker-locale.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): De-register deleted files.
* gnu/packages/rust.scm (%mrustc-source): New variable.
(rust-1.29): New variable. It is bootstrapped from mrust 0.9, which is used
in source form.
(rust-1.30): New variable.
(rust-1.31)[phases]{patch-command-exec-tests-phase}: Rewrite so that it
doesn't need to be redefined later when the file is moved.
{enable-docs}: New phase.
(rust-1.32): Disable tests.
[inputs]: Remove field.
[phases]{override-jemalloc}: Reorder after the configure phase.
(rust-1.33): Enable tests.
[phases]{disable-codegen-tests}: New phase.
(rust-1.34)[phases]{disable-codegen-tests}: Delete phase.
(rust-1.35)[arguments]: Remove field. The disable-tidy-bins-check phase is
now defined in rust-1.30.
(rust-1.38)[phases]{patch-command-exec-tests-phase}: Remove.
{patch-command-uid-gid-test}: Do not worry about the Tidy lint test, which is disabled.
(rust-1.40)[phases]: Move #:validate-runpath? inside the use of
'substitute-keyword-arguments'.
{neuter-tidy}: Delete.
{patch-command-uid-gid-test}: Make the regexp more precise. Remove the TODO
comment, which has been addressed.
(rust-1.44)[inputs]: Replace python2 by python-wrapper.
[phases]{use-python3}: New phase.
(rust-1.45)[source]: Remove field. The linker locale fix is now made via ...
[phases]{set-linker-locale-to-utf8}: ... this phase.
(rust-1.46)[phases]{build, check}: Allow parallel execution. Add comments.
{delete-install-logs}: Delete phase; it's now done in rust-1.30.
(rust-1.47)[phases]{patch-cargo-checksums}: Do not reorder phase. The
initial ordering of the phase has been fixed with in the rust-1.30 package.
(rust-1.48)[source]: Remove field.
This commit is not atomic and is not functional by itself; this is done so to
make the next set of changes more comprehensible.
* gnu/packages/patches/rust-1.19-mrustc.patch: Delete file.
* gnu/packages/patches/rust-1.30-gdb-llvm.patch: Likewise.
* gnu/packages/patches/rust-bootstrap-stage0-test.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): Un-register files.
* gnu/packages/rust.scm (mrustc): Delete variable.
(rust-1.19, rust-1.20, rust-1.21 rust-1.22, rust-1.23, rust-1.24)
(rust-1.25, rust-1.26, rust-1.27, rust-1.28, rust-1.29)
(rust-1.30): Delete variables.
(rust-1.31 through rust-1.49): Fix indentation and do other cosmetic changes.
(rust): Define as rust-1.49.
* gnu/packages/rust.scm (rust-1.45): New variable.
* gnu/packages/patches/rust-1.45-linker-locale.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add the patch to the list.
All packages are still built with rustc 1.37, but users will see rustc
1.38 in their profiles, and packages that require newer compiler
versions will be possible to add.
* gnu/packages/rust.scm (rust-1.31): Factor out the
patch-command-exec-tests phase to a separate procedure.
(patch-command-exec-tests-phase): New procedure.
(rust): Rename to rust-1.37, make rust an alias.
(rust-1.38): New variable.