Rollup of 18 pull requests#152156
Conversation
This makes rustc simply return an exit code from main rather than calling `std::process::exit` with an exit code. This means that drops run normally and the process exits cleanly. Also instead of hard coding success and failure codes this uses `ExitCode::SUCCESS` and `ExitCode::FAILURE`, which in turn effectively uses `libc::EXIT_SUCCESS` and `libc::EXIT_FAILURE` (via std). These are `0` and `1` respectively for all currently supported host platforms so it doesn't actually change the exit code.
There don't appear to be any trait impls relying on this default body.
Hexagon Linux targets (hexagon-unknown-linux-musl) use in-tree llvm-libunwind for stack unwinding. However, hexagon-unknown-qurt uses libc_eh from the Hexagon SDK instead.
`get_resident_set_size` computed RSS by multiplying the number of pages from `/proc/self/statm` with a hard-coded 4096-byte page size. This produces incorrect results on systems where the runtime page size is not 4 KiB. Use `sysconf(_SC_PAGESIZE)` to determine the actual page size at runtime so the RSS reported in `-Z time-passes` output is accurate across platforms.
After http://github.com/llvm/llvm-project/pull/178977, the and + icmp are folded to trunc.
Also remove mentions of removed `rustc_dirty`
It's a tiny module with one trait and a default impl. It's not used in `rustc_query_system`; all uses and non-default impls are in `rustc_middle` and `rustc_query_impl`. This commit moves it into `rustc_middle`, which makes things simpler overall.
It's a better place for it, because it relates to queries.
They are defined in `rustc_query_system` but used in `rustc_query_impl`. This is very much *not* how things are supposed to be done; I suspect someone got lazy and took a shortcut at some point. This commit moves the errors into `rustc_query_impl`. This requires more lines of code to give `rustc_query_impl` an errors module, but it's worthwhile to do things in the normal way instead of a weird exceptional way.
It's unused. And it's nice to remove this function that didn't behave like normal `clear` does, as the comment explained.
Return `ExitCode` from `rustc_driver::main` instead of calling `process::exit` This makes rustc simply return an exit code from main rather than calling `std::process::exit` with an exit code. This means that drops run normally and the process exits cleanly. This is similar to what happens when an ICE occurs (due to being a panic that's caught by std's `lang_start`). Also instead of hard coding success and failure codes this uses `ExitCode::SUCCESS` and `ExitCode::FAILURE`, which in turn effectively uses `libc::EXIT_SUCCESS` and `libc::EXIT_FAILURE` (via std). These are `0` and `1` respectively for all currently supported host platforms so it doesn't actually change the exit code.
Rename trait `DepNodeParams` to `DepNodeKey` In query system plumbing, we usually refer to a query's explicit argument value as a “key”. The first few commits do some preliminary cleanup that would conflict with the rename; the rename itself is in the final commit. r? nnethercote (or compiler)
…, r=GuillaumeGomez Convert to inline diagnostics in `rustc_hir_typeck` For rust-lang#151366 r? @GuillaumeGomez
|
@bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 9f4b56a (parent) -> 0a13b43 (this PR) Test differencesShow 1165 test diffsStage 0
Stage 1
(and 1033 additional test diffs) Additionally, 32 doctest diffs were found. These are ignored, as they are noisy. Job group index Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 0a13b4361264236cb40afebea97973e6dc366de3 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
📌 Perf builds for each rolled up PR:
previous master: 9f4b56a5ae In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (0a13b43): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -1.5%, secondary -2.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -1.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 474.797s -> 474.495s (-0.06%) |
|
what |
|
Probably the inline diagnostics PRs? That's crazy, wasn't expecting that. Im guessing: The old code parsed ALL ftl files at rustc startup, the new code parses messages on-demand (and at compile time for validation), the improved benchmarks are all relatively fast already so procentually this is a significant speedup |
|
maybe yeah. benchmarks exercising diagnostics code paths noticeably is somewhat suboptimal lol |
Successful merges:
ExitCodefromrustc_driver::maininstead of callingprocess::exit#150379 (ReturnExitCodefromrustc_driver::maininstead of callingprocess::exit)DepNodeParamstoDepNodeKey#152033 (Rename traitDepNodeParamstoDepNodeKey)rustc_hir_typeck#152142 (Convert to inline diagnostics inrustc_hir_typeck)oneshot::recv_timeout_before_send#152145 (Disable flaky testoneshot::recv_timeout_before_send)rustc_query_systemcleanups #152023 (Somerustc_query_systemcleanups)rustc_resolve#152068 (Convert to inline diagnostics inrustc_resolve)rustc_ast_lowering#152105 (Convert to inline diagnostics inrustc_ast_lowering)rustc_expand#152108 (Convert to inline diagnostics inrustc_expand)rustc_mir_transform#152114 (Convert to inline diagnostics inrustc_mir_transform)rustc_metadata#152115 (Convert to inline diagnostics inrustc_metadata)rustc_codegen_ssa#152118 (Convert to inline diagnostics inrustc_codegen_ssa)Failed merges:
rustc_pattern_analysis#152070 (Convert to inline diagnostics inrustc_pattern_analysis)rustc_ast_passes#152106 (Convert to inline diagnostics inrustc_ast_passes)rustc_errors#152109 (Convert to inline diagnostics inrustc_errors)rustc_trait_selection#152117 (Convert to inline diagnostics inrustc_trait_selection)rustc_middle#152119 (Convert to inline diagnostics inrustc_middle)rustc_mir_build#152126 (Convert to inline diagnostics inrustc_mir_build)r? @ghost
Create a similar rollup