Rollup of 22 pull requests - #161638
Conversation
Redundant struct with only one usecase in a single place while keeping the actual implementation of `Debug` in `CStore` empty.
I've added the expected stderr (computed using the fixed version of the code). As of *this* commit, the last line causes an ICE.
The right symbol is already available as `var`, extracted post macro expansion; just use that directly. I have also restructured the `expand_env()` control flow now that there is less shared code, reducing indentation. The primary change there is to use `var` instead of `*symbol`. `var` contains the unescaped name (whereas `symbol` used to store the contents of the original string literal), so `.escape_debug()` is used to re-escape it. The escaping no longer depends on the exact string literal used in the user input, which is quite nice IMO. This required storing `String`s in the diagnostics instead of `Symbol`s. I have added a FIXME to note the accidental double macro expansion occurring in `expand_env()`. It is not a problem, per se, just something that could be cleaned up in the future.
Record the current CLI and DAP behavior for interpreter errors and post-exit commands before changing the debugger lifecycle semantics. Temporarily relax the expected process exit status for fixtures whose pre-change behavior lets Miri termination escape the debugger: UB fixtures exit with Miri's error status, and the nonzero-exit fixture exits before returning to the prompt. The implementation commit removes this relaxation after Priroda turns those cases into clean debugger states.
Record normal program termination as debugger state instead of letting the Miri termination escape the session. This lets CLI commands after exit report the saved code and lets the nonzero-exit fixture return through the prompt without relaxing the process status.
Report non-exit interpreter errors as debugger stops instead of terminating the Priroda session. Execution commands may still be issued after an exception stop. They ask Miri to advance again and report the resulting stop, which can be another exception at the same location.
[Priroda] Handle interpreter errors and program exit
With this, we get C dep remap for free when building in rustc bootstrap: See * rust-lang#161049 * rust-lang/cargo#17309 * rust-lang/cc-rs#1794
chore: update to cc@1.4.3
Record the current CLI behavior before adding the `next` command.
Add stack-depth based source step-over support and expose it through the CLI `next` command. The CLI fixture now shows `next` being accepted instead of rejected. DAP keeps the baseline behavior until a later commit wires the same helper into the DAP frontend.
Add CLI fixtures for same-line `next` behavior and for the unsupported `out` command before source step-out is implemented. The same-line fixture keeps its physical line layout with `rustfmt::skip` because that layout is the behavior under test.
Add source step-out support and expose it through the CLI `out` command. The command runs until execution reaches a source location in a shallower stack frame.
Record the current DAP behavior before wiring `next` to source step-over.
Route DAP `next` through the source step-over helper and keep `stepIn` on the source step-in path. The fixture now shows DAP `next` stopping after the call instead of inside the callee.
Record the current DAP behavior before supporting `stepOut` requests.
Route DAP `stepOut` through the source step-out helper. The fixture now shows `stepOut` returning from the callee to the caller instead of being rejected as unsupported.
Add DAP coverage for `next` stepping over a call and CLI coverage for running `next` from a source breakpoint on a call line. The CLI fixture records the old repeated-breakpoint behavior before the following fix changes stepping breakpoint handling.
Suppress the source breakpoint a stepping command started from while that command is leaving the line. The CLI breakpoint fixture now shows `next` stopping on the following source line instead of reporting the same breakpoint again.
Record repeated DAP `next` stops around a call followed by a same-line helper.
Keep source `next` moving when a same-frame return span points back to an earlier line in the same file. The repeated DAP `next` fixture now stops after the same-line helper instead of stopping on the `main` function header.
Record DAP `stepOut` from the entry user frame before changing step-out to use user frames. The fixture shows the current raw-stack behavior stopping in Rust runtime code.
Track source step-out using user-relevant frame depth instead of raw interpreter stack depth. DAP stepOut from the entry user frame now returns an error and leaves the selected frame unchanged, while step-out from a callee still returns to the caller.
Document that source step-in only enters calls with distinct displayed source positions, and that stepOut operates on user frames.
rust does not emit `byval` here (also not for normal structs) while clang does.
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 da51146 (parent) -> 04a3cad (this PR) Test differencesShow 61 test diffsStage 1
Stage 2
Additionally, 20 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 04a3cad16c522be4fd15ca76d3c119c14be68954 --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:
parent commit: da5114692c In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (04a3cad): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (secondary 8.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -0.7%, secondary 2.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 469.244s -> 480.128s (2.32%) |
Successful merges:
Complex<T>layout tests for straightforward targets #161187 (addComplex<T>layout tests for straightforward targets)tests/rustdoc-gui/search-result-display.goml#161524 (Put backtests/rustdoc-gui/search-result-display.goml)tests/rustdoc-gui/headers-color.goml#161602 (Fix flakyness issue fortests/rustdoc-gui/headers-color.goml)symlink_dirto create junctions on Windows instead of trying to use symbolic links incopy_link_internal#152433 (Usesymlink_dirto create junctions on Windows instead of trying to use symbolic links incopy_link_internal)CrateDumpwith the Debug impl fromCStore#158695 (ReplaceCrateDumpwith the Debug impl fromCStore)unreachable!()s inexpand_[option_]env()#159940 (Eliminate some buggyunreachable!()s inexpand_[option_]env())pretty-stdon windows #161573 (re-blesspretty-stdon windows)llvm-configexecutable path #161598 ([Bootstrap] Pass exact CIllvm-configexecutable path)r? @ghost
Create a similar rollup