-
Notifications
You must be signed in to change notification settings - Fork 153
Add support for building rustc-perf and running the collector on Windows #865
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
It looks like CI is failing non-spuriously here - it'll currently fail even on master due to syn incremental being broken in rustc itself, though, so you won't get it fully green :) Before we land this we should likely add a windows builder to CI to make sure we don't accidentally break support; at least just basic building (e.g. cargo check), but maybe something more involved would work too. I don't think we can use Otherwise I think this approach looks really good to me - some duplication and expansion for sure, but nothing too surprising or unacceptable I think :) Thanks! |
let target_dir = Component::Normal(OsStr::new("target")); | ||
|
||
// Don't touch files in `target/`, since they're likely generated by build scripts and might be from a dependency. | ||
if path.components().any(|component| component == target_dir) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would break if any subfolder is named target
no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that's only true if the subfolder actually needs touching; I'm not sure that will happen in practice. Realistically we can likely get away with touching the crate "roots" only, but those are a bit annoying to identify.
Hey @wesleywiser -- I noticed this is still marked as [WIP] but wondering if that's no longer actually the case? |
|
I believe this is ready for a final review. I've updated the title and description of the PR to match the current state and I've tested running a basic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
This PR implements the first two parts of #834: basic support for building the code on Windows and support for profiling using
-Zself-profile
.Currently, running all tests works, other than a number of benchmarks that fail to build on my machine due to missing native dependencies (such as
webrender
).The general strategy I took was to rewrite in Rust whenever convenient, otherwise falling back to a Windows equivalent of the unix-y tool.
Part of #834