-
Notifications
You must be signed in to change notification settings - Fork 13.3k
perf.rust-lang.org test for syntex-syntax messed up #35855
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
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: