A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.
All notable changes to bootstrap will be documented in this file.
The format is based on Keep a Changelog.
cargo vendor
manually, or
use the pre-vendored rustc-src
tarball.llvm-libunwind
now accepts in-tree
(formerly true), system
or no
(formerly false)
#77703infodir
, localstatedir
, and
gpg-password-file
are no longer allowed in config.toml.
Previously, they were ignored without warning. Note that
infodir
and localstatedir
are still accepted
by ./configure
, with a warning. #82451dist
commands to match the
component they generate. #90684build.fast-submodules
option has been removed. Fast
submodule checkouts are enabled unconditionally. Automatic submodule
handling can still be disabled with
build.submodules = false
../configure
options have been
removed: optimize
, parallel-compiler
. These
can still be enabled with --set
, although it isn’t
recommended.remote-test-server
’s verbose
argument has
been removed in favor of the --verbose
flagremote-test-server
’s remote
argument has
been removed in favor of the --bind
flag. Use
--bind 0.0.0.0:12345
to replicate the behavior of the
remote
argument.x.py fmt
now formats only files modified between the
merge-base of HEAD and the last commit in the master branch of the
rust-lang repository and the current working directory. To restore old
behaviour, use x.py fmt .
. The check mode is not affected
by this change. #105702llvm.version-check
config option has been removed.
Older versions were never supported. If you still need to support older
versions (e.g. you are applying custom patches), patch
check_llvm_version
in bootstrap to change the minimum
version. #108619rust.ignore-git
option has been renamed to
rust.omit-git-hash
. #110059--exclude
no longer accepts a Kind
as part
of a Step; instead it uses the top-level Kind of the subcommand. If this
matches how you were already using –exclude
(e.g. x test --exclude test::std
), simply remove the kind:
--exclude std
. If you were using a kind that did not match
the top-level subcommand, please open an issue explaining why you wanted
this feature.x.py check
needs opt-in to check tests (–all-targets)
#77473bootstrap/defaults/config.$PROFILE.toml
(previously they
were located at bootstrap/defaults/config.toml.$PROFILE
) #77558x.py
will now infer
the host target from the default rust toolchain. #78513overflow-checks-std
) and one for everything else
(overflow-checks
). Both default to false.enable-warnings
to have control on llvm
compilation warnings. Default to false.rpath
option in target
section to
support set rpath option for each target independently. #111242host
now defaults to the value of build
in
all cases
host
defaulted to an empty list when
target
was overridden, and to build
otherwisex.py setup
#76631download-ci-llvm = true
under
[llvm]
.
rustc-dev
#76856build-stage = N
,
doc-stage = N
, etc.debug-logging
could only be set with
debug-assertions
, slowing down the compiler more than
necessary.--keep-stage-std
, which behaves like
keep-stage
but allows the stage 0 compiler artifacts (i.e.,
stage1/bin/rustc) to be rebuilt if changed #77120.x.py
(e.g. when using
rust-analyzer
and x.py
at the same time). Note
that Solaris and possibly other non Unix and non Windows systems don’t
support it #108607. This
might possibly lead to build data corruption.This is the first changelog entry, and it does not attempt to be an exhaustive list of features in x.py. Instead, this documents the changes to bootstrap in the past 2 months.
x.py
#73964 (see blog
post for details)ninja = true
by default #74922x.py check
checks tests/examples/benches #76258rust.use-lld
when linker is not set #76326use-lld = true
was passed #76378