-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
perf.rust-lang.org test for syntex-syntax messed up #35855
Comments
We probably should test that reuse between |
Added a fix to #35854. I did not add a test though -- the problem @nagisa is that, afaict, this is all pretty non-deterministic. Certainly the bug I fixed, which seems to fix the problem, is pre-existing (in fact, I had noticed it already); I think I was just getting lucky when I saw full re-use. I am reluctant to add a non-deterministic test into our code base -- I'd want to find a way to make it always fail or not fail. (Otherwise, random PRs get blamed for failures not related to them.) |
@nagisa hmm, that said, maybe the thing to do is to add some tests to perf.rust-lang.org, where we are testing the incremental compilation state! I think perf is better suited to these sorts of regressions. |
OK, I decided what I said doesn't make sense. We should add tests for this, of course...I'll try to isolate down the problem in any case. |
How come Either way, something in |
I believe @infinity0 was talking about finding non-determinism in metadata encoding - could this be related? |
The problem is fixed now, afaik, so I don't think it's related to that nondeterminism. |
This graph seems to suggest not fully fixed. I am investigating, but the output I see from running locally is as follows:
|
Better dump:
|
#36025 fixes quite a few things in the ICH. |
Indeed testing with a build #36025 seems to achieve full re-use. |
This seems to be fixed on the newest nightly |
It doesn't seem to be fixed on perf.rust-lang.org though. The e.g., see this graph |
(This btw is believed to be a problem with the perf.rust-lang.org setup.) |
The graph looks flat for the entire time, as far as I can tell. @nnethercote: You've worked closely with most of the benchmarks as far as I know, can you comment on this? |
I'm not at all familiar with incremental compilation and I'm not sure what question you're asking me. The only suggestion I can make is to ensure that the script is building the benchmark in exactly the way you expect. Here's the output of
|
Seems like we expect to pass |
You have to do that separately by setting CARGO_RUSTC_OPTS. That's what |
@nnethercote ok I mean that output looks fine. My point is just that I think that |
I was able to reproduce the strangely fast re-compilation by using an old Cargo version. Maybe it doesn't understand the |
I think my pending PRs will sidestep any problems and fix this infrastructure, which was quite flawed (I didn't understand how the tests worked): |
I'm going to close this issue, basically because all of perf is kind of messed up right now, though @Mark-Simulacrum has been making great progress here. |
For some reason, we are no longer achieving 100% re-use if you
cargo clean
, though we were at one point. Right now I see 3 out of 50 modules re-used :(. The output is all about cross-compilation metadata still. An excerpt:cc @michaelwoerister
The text was updated successfully, but these errors were encountered: