8000 Rollup of 14 pull requests by Zalathar · Pull Request #147019 · rust-lang/rust · GitHub
[go: up one dir, main page]

Skip to content

Conversation

Zalathar
Copy link
Contributor
@Zalathar Zalathar commented Sep 25, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

btj and others added 30 commits September 5, 2025 10:21
- RawVecInner::grow_exact causes UB if called with len and additional
  arguments such that len + additional is less than the current
  capacity.  Indeed, in that case it calls Allocator::grow with a
  new_layout that is smaller than old_layout, which violates a safety
  precondition.

- All RawVecInner methods for resizing the buffer cause UB
  if called with an elem_layout different from the one used to initially
  allocate the buffer, because in that case Allocator::grow/shrink is called with
  an old_layout that does not fit the allocated block, which violates a
  safety precondition.

- RawVecInner::current_memory might cause UB if called with an elem_layout
  different from the one used to initially allocate the buffer, because
  the unchecked_mul might overflow.

- Furthermore, these methods cause UB if called with an elem_layout
  where the size is not a multiple of the alignment. This is because
  Layout::repeat is used (in layout_array) to compute the allocation's
  layout when allocating, which includes padding to ensure alignment of
  array elements, but simple multiplication is used (in current_memory) to
  compute the old allocation's layout when resizing or deallocating, which
  would cause the layout used to resize or deallocate to not fit the
  allocated block, which violates a safety precondition.
Emit `#[rustc_allocator]` etc. attributes on the functions generated
by the `#[global_allocator]` macro, which will emit LLVM attributes
like `"alloc-family"`. If the module with the global allocator
participates in LTO, this ensures that the attributes typically
emitted on the allocator declarations are not lost if the
definition is imported.
LLVM change dfbd76bda01e removed separate remark support entirely, but
it turns out we can just drop the parameter and everything appears to
work fine.

Fixes 146912 as far as I can tell (the test passes.)

@rustbot label llvm-main
…monomorphization

Unify zero-length and oversized SIMD errors
Co-authored-by: Lewis McClelland <lewis@lewismcclelland.me>
Signed-off-by: Ding Xiang Fei <dingxiangfei2009@protonmail.ch>
Co-authored-by: Theemathas Chirananthavat <theemathas@gmail.com>
Co-authored-by: Ralf Jung <post@ralfj.de>
Although the examples below this list do imply that there's an impl of
`ToSocketAddrs` for `&[SocketAddr]`, it's not actually noted in the list
of default implementations.
On resource-constrained systems, it is vital to respect the value of
build.jobs, in order to avoid overwhelming the available memory.
RawVecInner: add missing `unsafe` to unsafe fns

Some (module-private) functions in `library/alloc/src/raw_vec/mod.rs` are unsafe (i.e. may cause UB when called from safe code) but are not marked `unsafe`. Specifically:
- `RawVecInner::grow_exact` causes UB if called with `len` and `additional` arguments such that `len + additional` is less than the current capacity. Indeed, in that case it calls [Allocator::grow](https://doc.rust-lang.org/std/alloc/trait.Allocator.html#method.grow) with a `new_layout` that is smaller than `old_layout`, which violates a safety precondition.
- The RawVecInner methods for resizing the buffer cause UB if called with an `elem_layout` different from the one used to initially allocate the buffer, because in that case `Allocator::grow` or `Allocator::shrink` are called with an `old_layout` that does not *fit* the allocated block, which violates a safety precondition.
- `RawVecInner::current_memory` might cause UB if called with an `elem_layout` different from the one used to initially allocate the buffer, because the `unchecked_mul` might overflow.
- Furthermore, these methods cause UB if called with an `elem_layout` where the size is not a multiple of the alignment. This is because `Layout::repeat` is used (in `layout_array`) to compute the allocation's layout when allocating, which includes padding to ensure alignment of array elements, but simple multiplication is used (in `current_memory`) to compute the old allocation's layout when resizing or deallocating, which would cause the layout used to resize or deallocate to not *fit* the allocated block, which violates a safety precondition.

I discovered these issues while performing formal verification of `library/alloc/src/raw_vec/mod.rs` per [Challenge 19](https://model-checking.github.io/verify-rust-std/challenges/0019-rawvec.html) of the [AWS Rust Standard Library Verification Contest](https://aws.amazon.com/blogs/opensource/verify-the-safety-of-the-rust-standard-library/).
…o-const, r=nnethercote

Do not materialise X in [X; 0] when X is unsizing a const

Fix rust-lang#143671

It turns out that MIR builder materialise `X` in `[X; 0]` into a temporary local when `X` is unsizing a `const`. This led to a confusing call to destructor of `X` when such a destructor is declared. [Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=8dfc933af89efeb89c881bc77498ba63)

This patch may miss out other cases that we should avoid materialisation in case of `[X; 0]`. Suggestions to include is most welcome!
Add `std` support for `armv7a-vex-v5`

This PR adds standard library support for the VEX V5 Brain (`armv7a-vex-v5` target). It is more-or-less an updated version of the library-side work done in rust-lang#131530.

This was a joint effort between me, `@lewisfm,` `@max-niederman,` `@Gavin-Niederman` and several other members of the [`vexide` project](https://github.com/vexide/).

## Background

VEXos is a fairly unconventional operating system, with user code running in a restricted enviornment with regards to I/O capabilities and whatnot. As such, several OS-dependent APIs are unsupported or have partial support (such as `std::net`, `std::process`, and most of `std::thread`). A more comprehensive list of what does or doesn't work is outlined in the [updated target documentation](https://github.com/vexide/rust/blob/vex-std/src/doc/rustc/src/platform-support/armv7a-vex-v5.md). Despite these limitations, we believe that `libstd` support on this target still has value to users, especially given the popular use of this hardware for educational purposes. For some previous discussion on this matter, see [this comment](rust-lang#131530 (comment)).

## SDK Linkage

VEXos doesn't really ship with an official `libc` or POSIX-style platform API (and though it does port newlib, these are stubbed on top of the underlying SDK). Instead, VEX provides their own SDK for calling platform APIs. Their official SDK is kept proprietary (with public headers), though open-source implementations exist. Following the precedent of the `armv6k-nintendo-3ds` team's work in rust-lang#95897, we've opted not to directly link `libstd` to any SDK with the expectation that users will provide their own with one of the following options:
-  [`vex-sdk-download`](https://github.com/vexide/vex-sdk/tree/main/packages/vex-sdk-download), which downloads an official proprietary SDK from VEX using a build script.
- [`vex-sdk-jumptable`](https://crates.io/crates/vex-sdk-jumptable), which is a compatible, open-source reimplementation of the SDK using firmware jumps.
- [`vex-sdk-pros`](https://github.com/vexide/vex-sdk/tree/main/packages/vex-sdk-pros), which uses the [PROS kernel](https://github.com/purduesigbots/pros) as a provider for SDK functions.
- Linking their own implementation or stubbing the functions required by libstd.

 The `vex-sdk` crate used in the VEXos PAL provides `libc`-style FFI bindings for any compatible system library, so any of these options *should* work fine. A functional demo project using `vex-sdk-download` can be found [here](https://github.com/vexide/armv7a-vex-v5-demo/tree/main).

## Future Work

This PR implements virtually everything we are currently able to implement given the current capabilities of the platform. The exception to this is file directory enumeration, though the implementation of that is sufficiently [gross enough](https://github.com/vexide/vexide/blob/c6c5bad11e035cf4e51d429dca7e427210185ed4/packages/vexide-core/src/fs/mod.rs#L987) to drive us away from supporting this officially.

Additionally, I have a working branch implementing the `panic_unwind` runtime for this target, which is something that would be nice to see in the future, though given the volume of compiler changes i've deemed it out-of-scope for this PR.
…, r=lcnr,RalfJung

Add an attribute to check the number of lanes in a SIMD vector after monomorphization

Allows std::simd to drop the `LaneCount<N>: SupportedLaneCount` trait and maintain good error messages.

Also, extends rust-lang#145967 by including spans in layout errors for all ADTs.

r? ``@RalfJung``

cc ``@workingjubilee`` ``@programmerjake``
…,RalfJung

unstably constify float mul_add methods

Tracking issue: rust-lang#146724
r? `@tgross35`
f16_f128: enable some more tests in Miri

For some reason, a bunch of tests were disabled in Miri that don't use any fancy intrinsics. Let's enable them.

I verified this with `./x miri library/core --no-doc -- float`.

r? `@tgross35`
…cote

Add attributes for #[global_allocator] functions

Emit `#[rustc_allocator]` etc. attributes on the functions generated by the `#[global_allocator]` macro, which will emit LLVM attributes like `"alloc-family"`. If the module with the global allocator participates in LTO, this ensures that the attributes typically emitted on the allocator declarations are not lost if the definition is imported.

There is a similar issue when the allocator shim is used, but I've opted not to fix that case in this PR, because doing that cleanly is somewhat gnarly.

Related to rust-lang#145995.
… r=nikic

llvm: update remarks support on LLVM 22

LLVM change dfbd76bda01e removed separate remark support entirely, but
it turns out we can just drop the parameter and everything appears to
work fine.

Fixes rust-lang#146912 as far as I can tell (the test passes.)
…=bjorn3

Remove erroneous normalization step in `tests/run-make/linker-warning`

Fixes rust-lang#146977.

r? bjorn3 or reassign
…leanup, r=jdonszelmann

Small string formatting cleanup

This PR is mostly useless. I was going through this file, saw that and corrected it. That's pretty much it. Feel free to close it if it's a bother.
5100
…oss35

Explicitly note `&[SocketAddr]` impl of `ToSocketAddrs`

Although the examples below this list do imply that there's an impl of `ToSocketAddrs` for `&[SocketAddr]`, it's not actually noted in the list of default implementations.
bootstrap.py: Respect build.jobs while building bootstrap tool

On resource-constrained systems, it is vital to respect the value of build.jobs, in order to avoid overwhelming the available memory.
@rustbot rustbot added T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. rollup A PR which is a rollup labels Sep 25, 2025
@Zalathar
Copy link
Contributor Author

Rollup of everything not in #147003.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator
bors commented Sep 25, 2025

📌 Commit 59866ef has been approved by Zalathar

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 25, 2025
@Zalathar
Copy link
Contributor Author

Queue is mildly backed-up, so let's do some early try jobs.

@bors try jobs=x86_64-msvc-1,test-various,armhf-gnu,aarch64-apple

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Sep 25, 2025
Rollup of 14 pull requests

try-job: x86_64-msvc-1
try-job: test-various
try-job: armhf-gnu
try-job: aarch64-apple
@rust-bors
Copy link
rust-bors bot commented Sep 25, 2025

☀️ Try build successful (CI)
Build commit: 3837317 (383731785fc0ca22ba0c50e0d6d192449a774523, parent: bbcbc7818ba27c951f9fd881fd3ec4cd5123b741)

@bors
Copy link
Collaborator
bors commented Sep 25, 2025

⌛ Testing commit 59866ef with merge 6f34f4e...

@bors
Copy link
Collaborator

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 6f34f4e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 25, 2025
@bors bors merged commit 6f34f4e into rust-lang:master Sep 25, 2025
12 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Sep 25, 2025
Copy link
Contributor
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 7cfd7d3 (parent) -> 6f34f4e (this PR)

Test differences

Show 510 test diffs

Stage 0

  • error::verify_middle_erroneous_constant_15: pass -> [missing] (J2)
  • error::verify_middle_erroneous_constant_17: [missing] -> pass (J2)
  • error::verify_middle_invalid_const_in_valtree_18: pass -> [missing] (J2)
  • error::verify_middle_invalid_const_in_valtree_20: [missing] -> pass (J2)
  • error::verify_middle_layout_cycle_13: pass -> [missing] (J2)
  • error::verify_middle_layout_cycle_15: [missing] -> pass (J2)
  • error::verify_middle_layout_normalization_failure_12: pass -> [missing] (J2)
  • error::verify_middle_layout_normalization_failure_14: [missing] -> pass (J2)
  • error::verify_middle_layout_references_error_14: pass -> [missing] (J2)
  • error::verify_middle_layout_references_error_16: [missing] -> pass (J2)
  • error::verify_middle_layout_simd_too_many_12: [missing] -> pass (J2)
  • error::verify_middle_layout_simd_zero_length_13: [missing] -> pass (J2)
  • error::verify_middle_max_num_nodes_in_valtree_17: pass -> [missing] (J2)
  • error::verify_middle_max_num_nodes_in_valtree_19: [missing] -> pass (J2)
  • error::verify_middle_type_length_limit_16: pass -> [missing] (J2)
  • error::verify_middle_type_length_limit_18: [missing] -> pass (J2)
  • errors::verify_ty_utils_impl_trait_duplicate_arg_3: [missing] -> pass (J2)
  • errors::verify_ty_utils_impl_trait_duplicate_arg_5: pass -> [missing] (J2)
  • errors::verify_ty_utils_impl_trait_not_param_4: [missing] -> pass (J2)
  • errors::verify_ty_utils_impl_trait_not_param_6: pass -> [missing] (J2)
  • errors::verify_ty_utils_non_primitive_simd_type_2: [missing] -> pass (J2)
  • errors::verify_ty_utils_non_primitive_simd_type_4: pass -> [missing] (J2)
  • errors::verify_ty_utils_oversized_simd_type_3: pass -> [missing] (J2)
  • errors::verify_ty_utils_zero_length_simd_type_2: pass -> [missing] (J2)

Stage 1

  • error::verify_middle_erroneous_constant_15: pass -> [missing] (J0)
  • error::verify_middle_erroneous_constant_17: [missing] -> pass (J0)
  • error::verify_middle_invalid_const_in_valtree_18: pass -> [missing] (J0)
  • error::verify_middle_invalid_const_in_valtree_20: [missing] -> pass (J0)
  • error::verify_middle_layout_cycle_13: pass -> [missing] (J0)
  • error::verify_middle_layout_cycle_15: [missing] -> pass (J0)
  • error::verify_middle_layout_normalization_failure_12: pass -> [missing] (J0)
  • error::verify_middle_layout_normalization_failure_14: [missing] -> pass (J0)
  • error::verify_middle_layout_references_error_14: pass -> [missing] (J0)
  • error::verify_middle_layout_references_error_16: [missing] -> pass (J0)
  • error::verify_middle_layout_simd_too_many_12: [missing] -> pass (J0)
  • error::verify_middle_layout_simd_zero_length_13: [missing] -> pass (J0)
  • error::verify_middle_max_num_nodes_in_valtree_17: pass -> [missing] (J0)
  • error::verify_middle_max_num_nodes_in_valtree_19: [missing] -> pass (J0)
  • error::verify_middle_type_length_limit_16: pass -> [missing] (J0)
  • error::verify_middle_type_length_limit_18: [missing] -> pass (J0)
  • errors::verify_ty_utils_impl_trait_duplicate_arg_3: [missing] -> pass (J0)
  • errors::verify_ty_utils_impl_trait_duplicate_arg_5: pass -> [missing] (J0)
  • errors::verify_ty_utils_impl_trait_not_param_4: [missing] -> pass (J0)
  • errors::verify_ty_utils_impl_trait_not_param_6: pass -> [missing] (J0)
  • errors::verify_ty_utils_non_primitive_simd_type_2: [missing] -> pass (J0)
  • errors::verify_ty_utils_non_primitive_simd_type_4: pass -> [missing] (J0)
  • errors::verify_ty_utils_oversized_simd_type_3: pass -> [missing] (J0)
  • errors::verify_ty_utils_zero_length_simd_type_2: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/global-allocator-attributes.rs: [missing] -> pass (J2)
  • [ui] tests/ui/coercion/no_local_for_coerced_const-issue-143671.rs: [missing] -> pass (J2)
  • [ui] tests/ui/simd/simd-lane-limit-err-npow2.rs: [missing] -> pass (J2)
  • [ui] tests/ui/simd/simd-lane-limit-err.rs: [missing] -> pass (J2)
  • [ui] tests/ui/simd/simd-lane-limit-ok.rs: [missing] -> pass (J2)
  • floats::f16::test_mul_add: pass -> [missing] (J7)
  • floats::f32::test_mul_add: pass -> [missing] (J7)
  • floats::f64::test_mul_add: pass -> [missing] (J7)
  • floats::mul_add::const_::test_f128: [missing] -> pass (J7)
  • floats::mul_add::const_::test_f16: [missing] -> pass (J7)
  • floats::mul_add::const_::test_f32: [missing] -> pass (J7)
  • floats::mul_add::const_::test_f64: [missing] -> pass (J7)
  • floats::mul_add::test_f128: [missing] -> pass (J7)
  • floats::mul_add::test_f16: [missing] -> pass (J7)
  • floats::mul_add::test_f32: [missing] -> pass (J7)
  • floats::mul_add::test_f64: [missing] -> pass (J7)

Stage 2

  • floats::f32::test_mul_add: pass -> [missing] (J1)
  • floats::f64::test_mul_add: pass -> [missing] (J1)
  • floats::mul_add::test_f128: [missing] -> pass (J1)
  • floats::mul_add::test_f16: [missing] -> pass (J1)
  • floats::mul_add::test_f32: [missing] -> pass (J1)
  • floats::mul_add::test_f64: [missing] -> pass (J1)
  • floats::mul_add::const_::test_f128: [missing] -> pass (J3)
  • floats::mul_add::const_::test_f16: [missing] -> pass (J3)
  • floats::mul_add::const_::test_f32: [missing] -> pass (J3)
  • floats::mul_add::const_::test_f64: [missing] -> pass (J3)
  • floats::sqrt_domain::test_f128: [missing] -> pass (J4)
  • floats::sqrt_domain::test_f16: [missing] -> pass (J4)
  • floats::total_cmp::test_f128: [missing] -> pass (J4)
  • floats::total_cmp::test_f16: [missing] -> pass (J4)
  • floats::total_cmp_s_nan::test_f128: [missing] -> pass (J4)
  • floats::total_cmp_s_nan::test_f16: [missing] -> pass (J4)
  • floats::f16::test_mul_add: pass -> [missing] (J5)
  • [ui] tests/ui/coercion/no_local_for_coerced_const-issue-143671.rs: [missing] -> pass (J6)
  • [ui] tests/ui/simd/simd-lane-limit-err-npow2.rs: [missing] -> pass (J6)
  • [ui] tests/ui/simd/simd-lane-limit-err.rs: [missing] -> pass (J6)
  • [ui] tests/ui/simd/simd-lane-limit-ok.rs: [missing] -> pass (J6)
  • floats::f32::test_mul_add: ignore -> [missing] (J8)
  • floats::f64::test_mul_add: ignore -> [missing] (J8)
  • floats::mul_add::test_f32: [missing] -> ignore (J8)
  • floats::mul_add::test_f64: [missing] -> ignore (J8)
  • floats::f128::test_mul_add: pass -> [missing] (J9)
  • [codegen] tests/codegen-llvm/global-allocator-attributes.rs: [missing] -> pass (J10)

Additionally, 419 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 6f34f4ee074ce0affc7bbf4e2c835f66cd576f13 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. aarch64-apple: 6382.7s -> 7594.2s (19.0%)
  2. dist-aarch64-msvc: 5719.7s -> 6666.6s (16.6%)
  3. pr-check-1: 1346.5s -> 1562.6s (16.0%)
  4. dist-apple-various: 4824.4s -> 4160.1s (-13.8%)
  5. dist-aarch64-windows-gnullvm: 5178.9s -> 4643.6s (-10.3%)
  6. dist-i686-msvc: 7616.7s -> 8361.5s (9.8%)
  7. x86_64-mingw-2: 7926.9s -> 7161.0s (-9.7%)
  8. aarch64-gnu: 6565.4s -> 7150.7s (8.9%)
  9. x86_64-msvc-ext2: 5457.7s -> 5897.5s (8.1%)
  10. tidy: 180.7s -> 194.5s (7.6%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#145067 RawVecInner: add missing unsafe to unsafe fns c1e258c64d8d5069f082763f61e3d75ddc1c8a13 (link)
#145277 Do not materialise X in [X; 0] when X is unsizing a const d7c9c1e068e51590507ce979d439e61c665280b0 (link)
#145973 Add std support for armv7a-vex-v5 0ed426ff218ff1c4e74bfbcc81657b2d7bd6108a (link)
#146667 Add an attribute to check the number of lanes in a SIMD vec… 1c9bfecebf1be9e7daeba4957368ca8ccf57b5a4 (link)
#146735 unstably constify float mul_add methods a1c55eb1c9dcc1c939e56c71a60f8d1b0acba5ae (link)
#146737 f16_f128: enable some more tests in Miri ddb3704ee413eb6eabedcb824ab98b747bec61cf (link)
#146766 Add attributes for #[global_allocator] functions 17427f8dbdd84fad71be4a0f7e7a7fcbe418be85 (link)
#146905 llvm: update remarks support on LLVM 22 452e8838523b498429f9a4e03b02c8329e80cf65 (link)
#146982 Remove erroneous normalization step in `tests/run-make/link… 7c2ff77c9674a54d61b9841b92af37dcd0917bac (link)
#147005 Small string formatting cleanup 5b12a410292fa54e0084276c20ab757fefaa54ee (link)
#147007 Explicitly note &[SocketAddr] impl of ToSocketAddrs 5856f6ff4412ffd34d6e691c609fe5d7f83e554f (link)
#147008 bootstrap.py: Respect build.jobs while building bootstrap t… fc6d39cf37b5e3b4480d2097f282e99c95b315e8 (link)
#147013 rustdoc: Fix documentation for --doctest-build-arg 9fee524ddc5934cbab371cca5db059377ae3155f (link)
#147015 Use LLVMDisposeTargetMachine f8906ed16a826e1b47e079648d75e832d0e4b6b3 (link)

previous master: 7cfd7d328b

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (6f34f4e): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.6% [-1.0%, -0.2%] 11
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.3%, secondary 0.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.8% [0.7%, 0.8%] 4
Improvements ✅
(primary)
-2.3% [-2.3%, -2.3%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.3% [-2.3%, -2.3%] 1

Cycles

Results (primary 2.7%, secondary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.7% [2.7%, 2.7%] 1
Regressions ❌
(secondary)
3.3% [1.7%, 6.6%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.1% [-3.8%, -2.3%] 4
All ❌✅ (primary) 2.7% [2.7%, 2.7%] 1

Binary size

Results (primary 0.0%, secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.0%] 1
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 1

Bootstrap: 469.935s -> 471.619s (0.36%)
Artifact size: 388.04 MiB -> 388.14 MiB (0.03%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-tidy Area: The tidy tool merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0