From ede76c40d1f1d32e6e1536b1e08122debc52ab00 Mon Sep 17 00:00:00 2001 From: Tor Hovland Date: Sun, 7 Nov 2021 00:14:54 +0100 Subject: [PATCH] Made temps-dir an unstable option. --- compiler/rustc_driver/src/lib.rs | 7 ------- compiler/rustc_interface/src/interface.rs | 5 +++-- compiler/rustc_interface/src/tests.rs | 1 + compiler/rustc_session/src/config.rs | 1 - compiler/rustc_session/src/options.rs | 2 ++ src/doc/rustc/src/command-line-arguments.md | 9 --------- src/doc/unstable-book/src/compiler-flags/temps-dir.md | 10 ++++++++++ src/librustdoc/core.rs | 1 - src/librustdoc/doctest.rs | 1 - src/test/run-make-fulldeps/issue-19371/foo.rs | 1 - src/test/run-make/issue-10971-temps-dir/Makefile | 4 ++-- 11 files changed, 18 insertions(+), 24 deletions(-) create mode 100644 src/doc/unstable-book/src/compiler-flags/temps-dir.md diff --git a/compiler/rustc_driver/src/lib.rs b/compiler/rustc_driver/src/lib.rs index 6b3c65dd527..09fe3a552a0 100644 --- a/compiler/rustc_driver/src/lib.rs +++ b/compiler/rustc_driver/src/lib.rs @@ -215,7 +215,6 @@ fn run_compiler( let cfg = interface::parse_cfgspecs(matches.opt_strs("cfg")); let (odir, ofile) = make_output(&matches); - let temps_dir = make_temps_dir(&matches); let mut config = interface::Config { opts: sopts, crate_cfg: cfg, @@ -223,7 +222,6 @@ fn run_compiler( input_path: None, output_file: ofile, output_dir: odir, - temps_dir, file_loader, diagnostic_output, stderr: None, @@ -458,11 +456,6 @@ fn make_output(matches: &getopts::Matches) -> (Option, Option) (odir, ofile) } -// Extract temporary directory from matches. -fn make_temps_dir(matches: &getopts::Matches) -> Option { - matches.opt_str("temps-dir").map(|o| PathBuf::from(&o)) -} - // Extract input (string or file and optional path) from matches. fn make_input( error_format: ErrorOutputType, diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs index 7b235be48b3..2904b3f5b70 100644 --- a/compiler/rustc_interface/src/interface.rs +++ b/compiler/rustc_interface/src/interface.rs @@ -143,7 +143,6 @@ pub struct Config { pub input_path: Option, pub output_dir: Option, pub output_file: Option, - pub temps_dir: Option, pub file_loader: Option>, pub diagnostic_output: DiagnosticOutput, @@ -198,6 +197,8 @@ pub fn create_compiler_and_run(config: Config, f: impl FnOnce(&Compiler) -> R ); } + let temps_dir = sess.opts.debugging_opts.temps_dir.as_ref().map(|o| PathBuf::from(&o)); + let compiler = Compiler { sess, codegen_backend, @@ -205,7 +206,7 @@ pub fn create_compiler_and_run(config: Config, f: impl FnOnce(&Compiler) -> R input_path: config.input_path, output_dir: config.output_dir, output_file: config.output_file, - temps_dir: config.temps_dir, + temps_dir, register_lints: config.register_lints, override_queries: config.override_queries, }; diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs index 2d3cb52f5fd..eed2e07e890 100644 --- a/compiler/rustc_interface/src/tests.rs +++ b/compiler/rustc_interface/src/tests.rs @@ -685,6 +685,7 @@ macro_rules! untracked { untracked!(span_debug, true); untracked!(span_free_formats, true); untracked!(strip, Strip::Debuginfo); + untracked!(temps_dir, Some(String::from("abc"))); untracked!(terminal_width, Some(80)); untracked!(threads, 99); untracked!(time, true); diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs index 034aebe42c1..fe8a26a700e 100644 --- a/compiler/rustc_session/src/config.rs +++ b/compiler/rustc_session/src/config.rs @@ -1110,7 +1110,6 @@ pub fn rustc_short_optgroups() -> Vec { in ", "DIR", ), - opt::opt_s("", "temps-dir", "Write temporary output files to ", "DIR"), opt::opt_s( "", "explain", diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs index e894e46a301..77a993a28ca 100644 --- a/compiler/rustc_session/src/options.rs +++ b/compiler/rustc_session/src/options.rs @@ -1331,6 +1331,8 @@ mod parse { "which mangling version to use for symbol names ('legacy' (default) or 'v0')"), teach: bool = (false, parse_bool, [TRACKED], "show extended diagnostic help (default: no)"), + temps_dir: Option = (None, parse_opt_string, [UNTRACKED], + "the directory the intermediate files are written to"), terminal_width: Option = (None, parse_opt_number, [UNTRACKED], "set the current terminal width"), tune_cpu: Option = (None, parse_opt_string, [TRACKED], diff --git a/src/doc/rustc/src/command-line-arguments.md b/src/doc/rustc/src/command-line-arguments.md index 2d8aa3a4933..7f482f0f2b1 100644 --- a/src/doc/rustc/src/command-line-arguments.md +++ b/src/doc/rustc/src/command-line-arguments.md @@ -194,15 +194,6 @@ This flag controls the output filename. The outputted crate will be written to this directory. This flag is ignored if the [`-o` flag](#option-o-output) is used. - -## `--temps-dir`: directory to write the intermediate files in - -Intermediate files will be written to this directory. If not set, the output -directory is used. This option is useful if you are running more than one -instance of `rustc` (e.g. with different `--crate-type` settings), and you -need to make sure they are not overwriting each other's intermediate files. -No files are kept unless `-C save-temps=yes` is also set. - ## `--explain`: provide a detailed explanation of an error message diff --git a/src/doc/unstable-book/src/compiler-flags/temps-dir.md b/src/doc/unstable-book/src/compiler-flags/temps-dir.md new file mode 100644 index 00000000000..e25011f7119 --- /dev/null +++ b/src/doc/unstable-book/src/compiler-flags/temps-dir.md @@ -0,0 +1,10 @@ +# `temps-dir` + +-------------------- + +The `-Ztemps-dir` compiler flag specifies the directory to write the +intermediate files in. If not set, the output directory is used. This option is +useful if you are running more than one instance of `rustc` (e.g. with different +`--crate-type` settings), and you need to make sure they are not overwriting +each other's intermediate files. No files are kept unless `-C save-temps=yes` is +also set. diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 063c0bc20c6..b7251e8f571 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -259,7 +259,6 @@ impl<'tcx> DocContext<'tcx> { input_path: cpath, output_file: None, output_dir: None, - temps_dir: None, file_loader: None, diagnostic_output: DiagnosticOutput::Default, stderr: None, diff --git a/src/librustdoc/doctest.rs b/src/librustdoc/doctest.rs index 63eaded0320..9b32ad979e3 100644 --- a/src/librustdoc/doctest.rs +++ b/src/librustdoc/doctest.rs @@ -94,7 +94,6 @@ input_path: None, output_file: None, output_dir: None, - temps_dir: None, file_loader: None, diagnostic_output: DiagnosticOutput::Default, stderr: None, diff --git a/src/test/run-make-fulldeps/issue-19371/foo.rs b/src/test/run-make-fulldeps/issue-19371/foo.rs index 626f74a342e..4acabbb70ed 100644 --- a/src/test/run-make-fulldeps/issue-19371/foo.rs +++ b/src/test/run-make-fulldeps/issue-19371/foo.rs @@ -53,7 +53,6 @@ fn compile(code: String, output: PathBuf, sysroot: PathBuf) { input_path: None, output_file: Some(output), output_dir: None, - temps_dir: None, file_loader: None, diagnostic_output: DiagnosticOutput::Default, stderr: None, diff --git a/src/test/run-make/issue-10971-temps-dir/Makefile b/src/test/run-make/issue-10971-temps-dir/Makefile index d6b35cbfafd..28aa188c392 100644 --- a/src/test/run-make/issue-10971-temps-dir/Makefile +++ b/src/test/run-make/issue-10971-temps-dir/Makefile @@ -6,5 +6,5 @@ include ../../run-make-fulldeps/tools.mk all: touch $(TMPDIR)/lib.rs - $(RUSTC) --crate-type=lib --temps-dir=$(TMPDIR)/temp1 $(TMPDIR)/lib.rs & \ - $(RUSTC) --crate-type=cdylib --temps-dir=$(TMPDIR)/temp2 $(TMPDIR)/lib.rs + $(RUSTC) --crate-type=lib -Z temps-dir=$(TMPDIR)/temp1 $(TMPDIR)/lib.rs & \ + $(RUSTC) --crate-type=cdylib -Z temps-dir=$(TMPDIR)/temp2 $(TMPDIR)/lib.rs