From 930c797a83669d0a6ba7797673bdb535e2979bd6 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 11 Oct 2019 10:11:01 +0200 Subject: [PATCH 1/5] bump rustc and adjust for rustc-dev component (also sync AppVeyor with Travis: use stable cargo) --- .appveyor.yml | 2 +- .travis.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2ba95c228baf..2474657fd777 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -32,7 +32,7 @@ install: - rustup update # Install "master" toolchain - cargo install rustup-toolchain-install-master & exit 0 - - rustup-toolchain-install-master -f -n master %RUSTC_HASH% -c cargo -c rust-src + - rustup-toolchain-install-master -f -n master %RUSTC_HASH% -c rust-src -c rustc-dev - rustup default master - rustc --version - cargo --version diff --git a/.travis.yml b/.travis.yml index 51f02e76824b..bb38510e3934 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ before_script: - rustup update # Install "master" toolchain - cargo install rustup-toolchain-install-master || echo "rustup-toolchain-install-master already installed" -- travis_retry rustup-toolchain-install-master -f -n master $RUSTC_HASH -c rust-src +- travis_retry rustup-toolchain-install-master -f -n master $RUSTC_HASH -c rust-src -c rustc-dev - rustup default master - rustc --version - cargo --version From 557836b83e3511e645b3484d9d2286980319fd58 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 11 Oct 2019 10:13:26 +0200 Subject: [PATCH 2/5] adjust README for rustc-dev --- CONTRIBUTING.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83e2338552e9..d6436873938e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,8 +31,10 @@ Miri heavily relies on internal rustc interfaces to execute MIR. Still, some things (like adding support for a new intrinsic or a shim for an external function being called) can be done by working just on the Miri side. -To prepare, make sure you are using a nightly Rust compiler. Then you should be -able to just `cargo build` Miri. +To prepare, make sure you are using a nightly Rust compiler. You also need to +have the `rust-src` and `rustc-dev` components installed, which you can add via +`rustup component add rust-src rustc-dev`. Then you should be able to just +`cargo build` Miri. In case this fails, your nightly might be incompatible with Miri master. The `rust-version` file contains the commit hash of rustc that Miri is currently @@ -41,7 +43,7 @@ to wait for the next nightly to get released. You can also use [`rustup-toolchain-install-master`](https://github.com/kennytm/rustup-toolchain-install-master) to install that exact version of rustc as a toolchain: ``` -rustup-toolchain-install-master $(cat rust-version) -c rust-src +rustup-toolchain-install-master $(cat rust-version) -c rust-src -c rustc-dev ``` Another common problem is outdated dependencies: Miri does not come with a From 4872c5cbbe9a4f59c71a9ffde4d5e521c08e8ea0 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 12 Oct 2019 17:11:29 +0200 Subject: [PATCH 3/5] temporarily ignore cached rustup-toolchain-install-master --- .appveyor.yml | 2 +- .travis.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2474657fd777..3fe85fe14210 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -31,7 +31,7 @@ install: - rustup component remove rust-docs & exit 0 - rustup update # Install "master" toolchain - - cargo install rustup-toolchain-install-master & exit 0 + - cargo install rustup-toolchain-install-master -f - rustup-toolchain-install-master -f -n master %RUSTC_HASH% -c rust-src -c rustc-dev - rustup default master - rustc --version diff --git a/.travis.yml b/.travis.yml index bb38510e3934..e9df794b5940 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,7 @@ before_script: - rustup component remove rust-docs || echo "rust-docs already gone" - rustup update # Install "master" toolchain -- cargo install rustup-toolchain-install-master || echo "rustup-toolchain-install-master already installed" +- cargo install rustup-toolchain-install-master -f - travis_retry rustup-toolchain-install-master -f -n master $RUSTC_HASH -c rust-src -c rustc-dev - rustup default master - rustc --version From 55e1251886425492edac903bcbe7f7474d3a2c55 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 24 Oct 2019 13:12:26 +0200 Subject: [PATCH 4/5] rustc-dev landed; adjust rust version --- rust-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-version b/rust-version index 543d4e269d41..61a6353bb4d9 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -55e00631e5bc5b16d40232914e57deeea197a8e4 +8e0007f829661e57d008d2e908c95f6e84b04b25 From 39cdc35dd7b5362001e5987df1e85f375f2187c4 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 24 Oct 2019 15:44:35 +0200 Subject: [PATCH 5/5] add back '-c cargo' --- .appveyor.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 3fe85fe14210..c8ee04275c83 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -32,7 +32,9 @@ install: - rustup update # Install "master" toolchain - cargo install rustup-toolchain-install-master -f - - rustup-toolchain-install-master -f -n master %RUSTC_HASH% -c rust-src -c rustc-dev + # We need to install cargo here as well or else the DLL search path inside `cargo run` + # will be for the wrong toolchain. (On Unix, `./miri` takes care of this, but not here.) + - rustup-toolchain-install-master -f -n master %RUSTC_HASH% -c rust-src -c rustc-dev -c cargo - rustup default master - rustc --version - cargo --version