Add a --build-dir
flag to rustbuild
#98745
Merged
+11
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds an optional
--build-dir <path>
flag to rustbuild (to both the python and rust code in src/bootstrap). If provided, it overrides build directory from the config file (if any was provided).My reason for wanting this is that I often will make a change, save, and then go run
x.py check
orx.py test
(or something). Because I've saved, vscode will start doing its thing in the background, but this will take the file lock, preventingx.py
from running until vscode finishes whatever it's doing (since the manually invoked x.py won't be able to acquire said file lock). This is annoying, because I'd rather the command I explicitly invoke not wait for r-a to complete, as r-a's check is conceptually a background task (and one which can take quite some time to complete).Anyway, while there are likely other ways this could be handled, if you have the disk space an easy way is to just have vscode be configured to use a different build directory, and then they never have to block each-other.
This can currently be arranged without this patch, by maintaining two
config.toml
s, one of which has a different build dir, and just exists to be passed into the overridden check command in vscode.Unfortunately, this has the downside of requiring I maintain two
config.toml
s and keep them (at least somewhat) in sync, aside from the build dir. I dislike for several reasons, not the least of which because I know myself well enough to know that these will inevitably get out of sync and confuse me in the future (perhaps this case would be different since I've thought about it enough to write this patch? Who knows, I'd rather not find out).Either way, it would be much easier for me to have a way for only the build directory to differ, which this patch provides by way of a new flag. I suggested this to @jyn514 who indicated it sounded reasonable so long as it didn't add too much complexity, which I think I've achieved, but he can be the judge.
Anyway, with this patch I can just use something like
["python3", "x.py", "check", "--build-dir", "build-vscode", "--json-output"]
as the overridden check command to rust-analyzer, and do not need to futz with any additionalconfig.toml
s. Which is very nice!I've tested this manually, and can confirm that it works. I'm not sure if it needs automated tests, or where I should add them if so.
r? @jyn514 (who has had to put up with my complaints about this... many times. <3)