rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
96.62k stars 12.48k forks source link

[rustc] Tolerate spaces and blanks inside @response files #116068

Open fangism opened 11 months ago

fangism commented 11 months ago

We have build tooling that generates rust command-line arguments inside response files, passed like rustc @args.rsp. In some cases, the tool emits response files with empty lines, or lines that contain only a single space.

Case (second line is a single space):

foo.rs

diagnostic:

error: multiple input filenames provided (first two filenames are `foo.rs` and ` `)

Case (second line is blank):

foo.rs

diagnostic:

error: multiple input filenames provided (first two filenames are `foo.rs` and ``)

Could the rustc compiler be updated to ignore space-only and blank lines in response files?

Noratrieb commented 11 months ago

Sounds reasonable to me, feel free to send in a PR. The PR would need an FCP from the compiler team because this is stable behavior. A compiler major change proposal is probably not needed because this is so small.

fangism commented 11 months ago

Case: leading and trailing spaces

 foo.rs
bar.rs 

(one space after bar.rs)

diagnostic:

error: multiple input filenames provided (first two filenames are ` foo.rs` and `bar.rs `)
jsgf commented 10 months ago

Rustc args files are intended to contain verbatim command line args, one per line. If you're generating spurious spaces or blank lines, you're not generating valid args files. So stripping out blank lines or "extra" whitespace is explicitly not a valid operation to perform on args files.

Can't you just update the generator to generate valid args files in the first place? What's the generator in this case?