diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 47864d822c4..42f77b5cbc0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -168,11 +168,15 @@ to `.vscode/settings.json` in your local Miri clone: "./cargo-miri/Cargo.toml" ], "rust-analyzer.checkOnSave.overrideCommand": [ + "env", + "MIRI_AUTO_OPS=no", "./miri", "check", "--message-format=json" ], "rust-analyzer.buildScripts.overrideCommand": [ + "env", + "MIRI_AUTO_OPS=no", "./miri", "check", "--message-format=json", diff --git a/README.md b/README.md index d1dde153c47..2214bcf4c59 100644 --- a/README.md +++ b/README.md @@ -393,6 +393,9 @@ Some native rustc `-Z` flags are also very relevant for Miri: Moreover, Miri recognizes some environment variables: +* `MIRI_AUTO_OPS` indicates whether the automatic execution of rustfmt, clippy and rustup-toolchain + should be skipped. If it is set to any value, they are skipped. This is used for avoiding + infinite recursion in `./miri` and to allow automated IDE actions to avoid the auto ops. * `MIRI_LOG`, `MIRI_BACKTRACE` control logging and backtrace printing during Miri executions, also [see "Testing the Miri driver" in `CONTRIBUTING.md`][testing-miri]. * `MIRIFLAGS` (recognized by `cargo miri` and the test suite) defines extra diff --git a/miri b/miri index 38f8e546aec..463e4607bae 100755 --- a/miri +++ b/miri @@ -53,8 +53,8 @@ EOF MIRIDIR=$(python3 -c 'import os, sys; print(os.path.dirname(os.path.realpath(sys.argv[1])))' "$0") ## Run the auto-things. -if [ -z "$AUTO_OPS" ]; then - export AUTO_OPS=42 +if [ -z "$MIRI_AUTO_OPS" ]; then + export MIRI_AUTO_OPS=42 # Run this first, so that the toolchain doesn't change after # other code has run.