Rollup of 6 pull requests#152701
Conversation
Assignments to a captured variable within a diverging closure should not be considered unused if the divergence is caught. This patch considers such assignments/captures to be used by diverging closures irrespective of whether the divergence is caught, but better a false negative unused lint than a false positive one (the latter having caused a stable-to-stable regression).
however `Drop` for `VaList` is not yet available in const fn
New float tests in core are failing on clif with issues like the
following:
Undefined symbols for architecture arm64:
"_coshf128", referenced from:
__RNvMNtCshY0fR2o0hOA_3std4f128C4f1284coshCs5TKtJxXQNGL_9coretests in coretests-e38519c0cc90db54.coretests.44b6247a565e10d1-cgu.10.rcgu.o
"_exp2f128", referenced from:
__RNvMNtCshY0fR2o0hOA_3std4f128C4f1284exp2Cs5TKtJxXQNGL_9coretests in coretests-e38519c0cc90db54.coretests.44b6247a565e10d1-cgu.10.rcgu.o
...
Disable f128 math unless the symbols are known to be available, which
for now is only glibc targets. This matches the LLVM backend.
…tgross35 Deduplicated float tests and unified in floats/mod.rs In this PR Float tests are deduplicated and are unified in floats/mod.rs, as discussed in rust-lang#141726. The moved float tests are: -> test_powf -> test_exp -> test_exp2 -> test_ln -> test_log_generic -> test_log2 -> test_log10 -> test_asinh -> test_acosh -> test_atanh -> test_gamma -> test_ln_gamma Closes: rust-lang#141726
…r=RalfJung support c-variadic functions in `rustc_const_eval` tracking issue: rust-lang#44930 The new `GlobalAlloc::VaList` is used to create an `AllocId` that represents the variable argument list of a frame. The allocation itself does not store any data, all we need is the unique identifier. The actual variable argument list is stored in `Memory`, and keyed by the `AllocId`. The `Frame` also stores this `AllocId`, so that when a frame is popped, it can deallocate the variable arguments. At "runtime" a `VaList` value stores a pointer to the global allocation in its first bytes. The provenance on this pointer can be used to retrieve its `AllocId`, and the offset of the pointer is used to store the index of the next argument to read from the variable argument list. Miri does not yet support `va_arg`, but I think that can be done separetely? r? @RalfJung cc @workingjubilee
…d, r=cjgillot Consider captures to be used by closures that unwind Assignments to a captured variable within a diverging closure should not be considered unused if the divergence is caught. This patch considers such assignments/captures to be used by diverging closures irrespective of whether the divergence is caught, but better a false negative unused lint than a false positive one (the latter having caused a stable-to-stable regression). Fixes rust-lang#152079 r? compiler
…ranteed, r=jonathanbrouwer Port `rust_nonnull_optimization_guaranteed` and `rustc_do_not_const_check` to the new attribute parser r? @JonathanBrouwer another two of them :)
…jhpratt Remove timing assertion from `oneshot::send_before_recv_timeout` This test regularly spuriously fails in CI, such as rust-lang#152632 (comment) We can just remove the assertion but I'd like to understand why, so I'm adding more information to the assert
bootstrap: Inline the `is_tool` check for setting `-Zforce-unstable-if-unmarked` `Mode::is_tool` is the sort of method that looks general-purpose, but is only actually used for a very specific purpose, to control the setting of `-Zforce-unstable-if-unmarked`. It is therefore clearer to inline the mode check, which makes it easier to see how the condition affects the result. I have tried to add some comments explaining why we set that flag, but they are based on my own recent investigations, so I'm not 100% confident that they're accurate.
|
@bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
|
📌 Perf builds for each rolled up PR:
previous master: fef627b1eb In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
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 fef627b (parent) -> 71e0027 (this PR) Test differencesShow 226 test diffsStage 1
Stage 2
(and 94 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 71e00273c0921e1bc850ae8cc4161fbb44cfa848 --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 |
|
Finished benchmarking commit (71e0027): comparison URL. Overall result: ❌ regressions - no action needed@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 (secondary 6.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -9.1%, secondary 0.1%)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: 481.396s -> 485.967s (0.95%) |
Successful merges:
rustc_const_eval#150601 (support c-variadic functions inrustc_const_eval)rust_nonnull_optimization_guaranteedandrustc_do_not_const_checkto the new attribute parser #152296 (Portrust_nonnull_optimization_guaranteedandrustc_do_not_const_checkto the new attribute parser)oneshot::send_before_recv_timeout#152648 (Remove timing assertion fromoneshot::send_before_recv_timeout)is_toolcheck for setting-Zforce-unstable-if-unmarked#152686 (bootstrap: Inline theis_toolcheck for setting-Zforce-unstable-if-unmarked)Failed merges:
float_exact_integer_constants#152512 (core: Implement featurefloat_exact_integer_constants)r? @ghost
Create a similar rollup