Automated pull from upstream HEAD#2402
Conversation
This updates the rust-version file to 029c9e1.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@029c9e1 Filtered ref: rust-lang/rust-analyzer@912b3ed Upstream diff: rust-lang/rust@43a4909...029c9e1 This merge was created using https://github.com/rust-lang/josh-sync.
Adopt uv's AI policy
Rustc pull update
…d-for-pattern, r=Mark-Simulacrum perf: use `get_unchecked` for `TwoWaySearcher` ## What is this PR? *This is related to rust-lang/rust#27721.* This PR is a proposal for a performance improvement in `std::pattern`. Profiling of [https://github.com/quickwit-oss/quickwit](https://github.com/quickwit-oss/quickwit) in production shows that `TwoWaySearcher::next` is one of the most CPU-time-consuming functions, so I thought I would give it a look. I read the [contribution guide](https://std-dev-guide.rust-lang.org/development/perf-benchmarking.html) and this seems to be a fitting proposal. It seems like `TwoWaySearcher::next` and `TwoWaySearcher::next_back` could be made faster by using `get_unchecked` in the inner loop comparisons instead of regular indexing, which is safe in the conditions where it would be done (indices are within bounds by construction). I added some `SAFETY` comments in the code to explain why this is safe, as I believe is customary in those cases (and according to [this page as well](https://std-dev-guide.rust-lang.org/policy/safety-comments.html)). ### Benchmarks I ran the existing bencharmks before/after the changes (only on my laptop, I can run them in other places if that's necessary). ``` ./x.py bench library/coretests -- pattern:: ``` We seem to be getting a ~7.5-12% performance improvement at a very low cost, which sounds worthwhile to me. But this is the first time I'm proposing a change in Rust, so I'm looking forward to feedback on this. ``` BEFORE CHANGES pattern::ends_with_char 3398.91ns/iter +/- 526.28 pattern::ends_with_str 3545.04ns/iter +/- 1108.76 pattern::starts_with_char 3348.31ns/iter +/- 352.38 pattern::starts_with_str 3710.59ns/iter +/- 435.57 AFTER CHANGES pattern::ends_with_char 3125.99ns/iter +/- 567.09 (-8.03%) pattern::ends_with_str 3106.43ns/iter +/- 258.33 (-12.38%) pattern::starts_with_char 3094.55ns/iter +/- 595.42 (-7.59%) pattern::starts_with_str 3365.75ns/iter +/- 268.88 (-9.29%) ``` System info for the benchmarks run <details> ``` Based on commit 8317fef rustc 1.96.0-dev binary: rustc commit-hash: unknown commit-date: unknown host: aarch64-apple-darwin release: 1.96.0-dev LLVM version: 22.1.2 Apple M4 Max 16 64 GB ProductName: macOS ProductVersion: 26.3 BuildVersion: 25D125 (this was run on AC and without any heavy load from other apps or whatnot) ``` </details>
`rust-analyzer` subtree update Subtree update of `rust-analyzer` to rust-lang/rust-analyzer@57116fa. Created using https://github.com/rust-lang/josh-sync. r? @ghost
Use alternate means of detecting enums in `is_udt` This fixes a small regression from rust-lang/rust#155336 Flat enums are excluded from `is_udt` since LLDB natively handles them correctly. The previous logic (`SBType.IsScopedEnumerationType()`) behaved correctly for non-msvc targets, but for some reason on msvc enums don't count as scoped enumerations? The new logic checks the type returned by `SBType.GetEnumerationIntegerType()`. If the queried type isn't an enum, the returned type is invalid. This behaves correctly on both msvc and non-msvc targets, and its behavior doesn't conflict with sum-type enums. As always, testing on msvc isn't really possible atm. That should change soon though =) --- try-job: aarch64-apple
…henkov Staticlib hide internal symbols According to issue rust-lang/rust#104707, when building a staticlib, all Rust internal symbols — mangled symbols, `#[rustc_std_internal_symbol]` items, allocator shims, etc. — leak out of the static archive. In contrast, cdylib correctly exports only `#[no_mangle]` symbols via a linker version script. `-Zstaticlib-hide-internal-symbols` directly post-processes ELF object files in the archive: parsing the `SHT_SYMTAB` sections and setting `STV_HIDDEN` visibility on any `GLOBAL/WEAK` defined symbol that is not in the exported symbol set, without changing the binding. This is an in-place modification (only writing the st_other byte per matching entry), with zero overhead. Supported on ELF targets (Linux, BSD, etc.) and Apple targets (macOS, iOS, etc.). On unsupported targets (Windows), a warning is emitted and the flag has no effect. **Update**: The rename counterpart (`-Zstaticlib-rename-internal-symbols`) is in rust-lang/rust#156950. The test code are as follows: 1.a std rust staticlib: ```rust use std::collections::HashMap; use std::panic::{catch_unwind, AssertUnwindSafe}; #[no_mangle] pub extern "C" fn my_add(a: i32, b: i32) -> i32 { a + b } #[no_mangle] pub extern "C" fn my_hash_lookup(key: u64) -> u64 { let mut map = HashMap::new(); for i in 0..100u64 { map.insert(i, i.wrapping_mul(2654435761)); } *map.get(&key).unwrap_or(&0) } pub fn internal_reverse(s: &str) -> String { s.chars().rev().collect() } #[no_mangle] pub extern "C" fn my_format_number(n: i32) -> i32 { let s = format!("number: {}", n); s.len() as i32 } #[no_mangle] pub extern "C" fn my_safe_div(a: i32, b: i32) -> i32 { match catch_unwind(AssertUnwindSafe(|| { if b == 0 { panic!("division by zero!"); } a / b })) { Ok(result) => result, Err(_) => -1, } } #[no_mangle] pub extern "C" fn my_uncaught_panic() { panic!("uncaught panic across FFI"); } ``` 1.b downstream c program: ```c extern int my_add(int a, int b); extern unsigned long my_hash_lookup(unsigned long key); extern int my_format_number(int n); extern int my_safe_div(int a, int b); extern void my_uncaught_panic(void); int main() { int failures = 0; if (my_add(10, 20) != 30) failures++; if (my_hash_lookup(5) != 5UL * 2654435761UL) failures++; if (my_format_number(42) != 10) failures++; if (my_safe_div(100, 5) != 20) failures++; if (my_safe_div(100, 0) != -1) failures++; pid_t pid = fork(); if (pid == 0) { alarm(5); my_uncaught_panic(); _exit(0); } else { waitpid(pid, &status, 0); } return failures; } ``` The test results with different compiler flags(which might cause binary size reduction) are as follows: 1.c result with `-Zstaticlib-hide-internal-symbols` ``` settings OFF ON -Zsave ALL OFF.dynsym ON.dynsym ------------------------------------------------------------------------ default 1.7M 1.5M 204K (12%) 1735 5 1730 lto_thin 616K 584K 33K (5%) 246 5 241 lto_fat 525K 525K 0 (0%) 6 5 1 opt_s 1.7M 1.5M 204K (12%) 1735 5 1730 opt_z 1.7M 1.5M 204K (12%) 1735 5 1730 lto_thin_z 602K 570K 32K (5%) 246 5 241 lto_fat_z 514K 514K 0 (0%) 6 5 1 full 514K 514K 0 (0%) 6 5 1 ``` 1.d result with `-Zstaticlib-hide-internal-symbols + -Zstaticlib-rename-internal-symbols` ``` settings OFF ON -Zsave ALL OFF.dynsym ON.dynsym ------------------------------------------------------------------------ default 1.7M 1.5M 162K (9%) 1735 5 1730 lto_thin 616K 599K 18K (2%) 246 5 241 lto_fat 525K 535K -1% (-1%) 6 5 1 opt_s 1.7M 1.5M 162K (9%) 1735 5 1730 opt_z 1.7M 1.5M 162K (9%) 1735 5 1730 lto_thin_z 602K 585K 18K (2%) 246 5 241 lto_fat_z 514K 524K -1% (-1%) 6 5 1 full 514K 523K -1% (-1%) 6 5 1 ``` 2.a no_std rust staticlib ```rust #![no_std] #![feature(core_intrinsics)] use core::panic::PanicInfo; #[panic_handler] fn panic(_info: &PanicInfo) -> ! { loop {} } #[no_mangle] pub extern "C" fn embedded_add(a: i32, b: i32) -> i32 { a.wrapping_add(b) } #[no_mangle] pub extern "C" fn embedded_checksum(data: *const u8, len: usize) -> u8 { if data.is_null() { return 0; } let slice = unsafe { core::slice::from_raw_parts(data, len) }; let mut sum: u8 = 0; for &byte in slice { sum = sum.wrapping_add(byte); } sum } fn internal_helper() -> i32 { 42 } #[no_mangle] pub extern "C" fn call_internal() -> i32 { internal_helper() } #[no_mangle] pub extern "C" fn embedded_trigger_abort() { core::intrinsics::abort(); } ``` 2.b downstream c program ```c extern int embedded_add(int a, int b); extern unsigned char embedded_checksum(const unsigned char *data, unsigned long len); extern int call_internal(void); extern void embedded_trigger_abort(void); int main() { int failures = 0; if (embedded_add(10, 20) != 30) failures++; unsigned char data[] = {1, 2, 3}; if (embedded_checksum(data, 3) != 6) failures++; if (call_internal() != 42) failures++; pid_t pid = fork(); if (pid == 0) { embedded_trigger_abort(); _exit(0); } else { waitpid(pid, &status, 0); } return failures; } ``` The test results with different compiler flags(which might cause binary size reduction) are as follows: 2.c result with `-Zstaticlib-hide-internal-symbols` ``` settings OFF ON -Zsave ALL OFF.dynsym ON.dynsym ------------------------------------------------------------------------ default 485K 429K 56K (11%) 490 4 486 lto_thin 180K 180K 0 (0%) 4 4 0 lto_fat 179K 179K 0 (0%) 4 4 0 opt_s 485K 429K 56K (11%) 490 4 486 opt_z 485K 429K 56K (11%) 490 4 486 lto_thin_z 180K 180K 0 (0%) 4 4 0 lto_fat_z 179K 179K 0 (0%) 4 4 0 full 179K 179K 0 (0%) 4 4 0 ``` 2.d result with `-Zstaticlib-hide-internal-symbols + -Zstaticlib-rename-internal-symbols` ``` settings OFF ON -Zsave ALL OFF.dynsym ON.dynsym ------------------------------------------------------------------------ default 485K 447K 39K (7%) 490 4 486 lto_thin 180K 189K -5% (-5%) 4 4 0 lto_fat 179K 189K -5% (-5%) 4 4 0 opt_s 485K 448K 38K (7%) 490 4 486 opt_z 485K 448K 38K (7%) 490 4 486 lto_thin_z 180K 189K -5% (-5%) 4 4 0 lto_fat_z 179K 189K -5% (-5%) 4 4 0 full 179K 189K -5% (-5%) 4 4 0 ``` Test results show that this compiler option is beneficial for scenarios where LTO cannot be enabled. r? @bjorn3 @petrochenkov
Implement feature `integer_casts` Tracking issue: rust-lang/rust#157388
Fix WASI links
…thanBrouwer Rename `errors.rs` file to `diagnostics.rs` (2/N) Follow-up of rust-lang/rust#157485. r? @JonathanBrouwer
Rename `errors.rs` file to `diagnostics.rs` (3/N) Follow-up of rust-lang/rust#157485. r? @JonathanBrouwer
Use `mul nuw nsw` in `intrinsics::copy` Essentially the same as rust-lang/rust#157560, just for `copy` instead of `copy_nonoverlapping`. > Yeah, in fact both copy and copy_nonoverlapping could use this since we know the result must be at most isize::MAX else it cannot be inbounds. > ~ rust-lang/rust#157560 (comment) r? saethlin
…anBrouwer Suggest comma multiple Following from rust-lang/rust#157545 If there are multiple missing comma's, suggest fixing all of them in one step to avoid error cascade. For example: ``` error: attribute items not separated with `,` | LL | name = "name" | ^ help: try adding `,` here ``` followed by ``` error: attribute items not separated with `,` | LL | kind = "static" | ^ help: try adding `,` here ``` after adding the comma. Now this becomes one error: ``` error: attribute items not separated with `,` --> $DIR/attr-missing-comma.rs:10:18 | LL | name = "name" | ^ | help: try adding `,` here | LL | name = "name", | + help: try adding `,` here | LL | kind = "static", | + ```
Letting `lower_lifetime` check `tcx.named_bound_var` & call `re_infer` just means we now end up passing `lifetime.ident.span` to `re_infer` instead of the `span` of the trait object type. However, 1. in the case of `LifetimeKind::ImplicitObjectLifetimeDefault` `lifetime.ident.span` is actually equal to said span. 2. in the case of `LifetimeKind::Infer` the span now makes more sense; consider `dyn Trait + '_` where the span now just contains the `'_` not the entire type which is just better.
…nfer` This makes it really obvious that we're computing object region bounds for `Infer`, too, not just for `ImplicitObjectLifetimeDefault` which was really hard to see beforehand. It's unclear to me whether this was intentional or not, needs investigation. Introduce method `lower_trait_object_lifetime` to allow usage of early returns to make the control flow clearer compared to the `unwrap_or_else`.
…nce Option calling `.cloned()` or `.copied()` on `Option<T>` where `T` is an owned type emitted "`Option<T>` is not an iterator" with a suggestion to prepend `.into_iter()`. the suggested code still did not compile: `Option<T>::into_iter()` yields `T` by value not `&T`, so `.cloned()`/`.copied()` failed again for the same reason. `Option<T>` implements `IntoIterator`, which is why the `impl_into_iterator_should_be_iterator` branch fires. added a guard before it: when the method is `cloned`/`copied`, the receiver is `Option<T>`, and `T` is a concrete non-reference type, emit a targeted label pointing at the correct form (`Option<&T>`) and suggest removing the call instead.
…y 'unused' size_of calls
…uwer Rollup of 9 pull requests Successful merges: - rust-lang/rust#157599 (`rust-analyzer` subtree update) - rust-lang/rust#157298 (Use alternate means of detecting enums in `is_udt`) - rust-lang/rust#155338 (Staticlib hide internal symbols) - rust-lang/rust#157402 (Implement feature `integer_casts`) - rust-lang/rust#157452 (Fix WASI links) - rust-lang/rust#157535 (Rename `errors.rs` file to `diagnostics.rs` (2/N)) - rust-lang/rust#157585 (Rename `errors.rs` file to `diagnostics.rs` (3/N)) - rust-lang/rust#157588 (Use `mul nuw nsw` in `intrinsics::copy`) - rust-lang/rust#157592 (Suggest comma multiple)
Inconsistency happens when subdiagnostic pads the main diagnostic with an empty source line (aka "|"). Meanwhile the parallel frontend might bunch subdiagnostics on a single primary diagnostic, removing padding from some other one. Revert "Update reproducibly failing tests when parallel frontend is enabled" This reverts commit f582193. Apply a test directive format suggested by a reviewer Bless thine tests
…d in comptime fn
…rgetted at what it does
|
bors try |
tryBuild failed: |
|
bors retry |
tryBuild failed: |
|
(maybe) flaky ci... |
tryBuild failed: |
|
bors retry |
tryBuild failed: |
82fd475 to
c7296c3
Compare
|
bors try |
jyn514
left a comment
There was a problem hiding this comment.
you have a bunch of additions to the subset here. are those additions intentional? why were they necessary?
There was a problem hiding this comment.
not a big deal, but seems weird this was necessary ... it only moves the directory around.
There was a problem hiding this comment.
I suspect reuse (licensing tool) re-orgs things when it should not
| span | ||
| }); | ||
| let errors = ocx.evaluate_obligations_error_on_ambiguity(); | ||
| let errors = ocx.try_evaluate_obligations(); |
There was a problem hiding this comment.
can you explain more about why this change was made? what was the ICE? why does the new API avoid it?
There was a problem hiding this comment.
using evaluate_obligations_error_on_ambiguity results in a non-empty container containing ScrubbedTraitError::Ambiguity variant, and I don't know what further action to take on that (while try_evaluate_obligations returns an empty container)
just a note that this test was missed because it was in crashes/, and it only triggers the ice now because it now lives in ui/
| - run: | ||
| name: Install AWSCLIv2 | ||
| command: brew install awscli -y | ||
| command: brew install awscli |
There was a problem hiding this comment.
noting explicitly that we added -y because circleCI upgraded to brew v6, which requires it when running non-interactively, and we're reverting it because they downgraded back to v5.
it's mostly
|
This also reverts commit 97502d7
| // Ferrocene note: | ||
| // We get an ICE when ferrocene::unvalidated lint looks at this test, hence ignore-test. | ||
| // The test also fails when check-pass directive is changed to build-pass. | ||
| //@ ignore-test | ||
|
|
||
| //@ check-pass |
There was a problem hiding this comment.
let's open an upstream issue for this.
x.pycompletions. Please run./x run generate-completionsafter fixing the merge conflicts.x.pyhelp file. Please run./x run generate-helpafter fixing the merge conflicts.This PR pulls the following changes from the upstream repository:
157794: Rollup of 24 pull requests157768: codegen_ssa: peel trans. wrappers on scalable vecs157763: Move unused target expression error to appropriate place and rename it157746: supports_c_variadic_definitions: extend checklist for new targets157737: Reorganizetests/ui/issues[7/N]157733: Remove old FIXMEs about nocapture attribute157725: Keep generic suggestion for macro-expanded missing-type items157723: Move uninhabited unreachable code lint to rustc_mir_transform157722: Move create_scope_map to rustc_codegen_ssa.157713: resolve: Remove exported imports frommaybe_unused_trait_imports157699: Arg splat experiment - hir FnDecl impl157698: Remove an unnecessary cloning157658: UnsafeCell: mention shared-ref-to-interior case, fix aliasing model inaccuracy157459: rustc_target: callconv: powerpc64: Remove unreachable fallback code path157366: Add a regression test for an unconstrained TransmuteFrom ICE157342: Reduce verbosity of cycle errors when possible156212: Additionally gate negative bounds behind new-Zinternal-testing-features155113: Ensure Send/Sync impl for std::process::CommandArgs149749: MakeBorrowedBufandBorrowedCursorgeneric over the data157667: Rename typing modes to better describe real usage157626: Autogenerate unstable compiler flag stubs for unstable-book157612: Add a test where subtyping inhibits coercion.155299: make repr_transparent_non_zst_fields a hard error149793: Add inline asm support for amdgpu157716: update Enzyme, June'26157760: Update cargo submodule157319: Build the dep-graph reverse index lazily, per DepKind157739: Rollup of 31 pull requests157703: Fix doc link to Instant sub in saturating caveat157700: Renameerrors.rsfile todiagnostics.rs(5/N)157691: Move symbol hiding code to a new file157670: Renameerrors.rsfile todiagnostics.rs(4/N)157577: Fix parser error recovery treating 'dyn' as a strict keyword in Rust 2015 when used indyn + dyn157355: Addor_try_*variants forHashMapandBTreeMapEntry APIs157350: compiletest: ignore SVGyoffset in by-lines comparison157330: removeIsTypeConstfromhir::TraitItemKind157288: platform support: add SNaN erratum to MIPS targets157230: borrowck: avoid ICE describing fields on generic params157196: Only suggest reborrowing a moved value where the reborrow is valid157013: Ensure inferred let pattern types are well-formed156583: Support defaults for static EIIs156497: fix-155516: Don't suggest wrong unwrap expect155323: refactorTypeRelativePath::AssocItemto useAliasTerm155198: fix(mgca): Allow specifying generic args (of enum) on enum itself in unit & tuple variant constructions in (direct) const args155153: Ensure Send/Sync is not implemented for std::env::Vars{,Os}157719: resolve: Partially revert "Remove a special case for dummy imports"157647: Start using comptime for reflection intrinsics and their wrapper functions157646: Keep rename-imported main alive in dead-code analysis under--test157645: Windows TLS - Only register theatexithook whencleanupcan be unloaded157620: Add a strategy FnMut to inject behavior into the flush cycle157611: Updatebrowser-ui-testversion to0.24.0157601: Emit error for unused target expression in glob and list delegations157352: Make the retained dep graph deterministic under the parallel frontend157282: Fix post-monomorphization error note race in the parallel frontend157280: traits: Allow escaping self types in ExistentialTraitRef::with_self_ty156629: Stabilizecore::range::{legacy, RangeFull, RangeTo}155527: Replace printables table withunicode_data.rstables154853: mgca: RegisterConstArgHasTypewhen normalizing projection consts141030: Expand free alias types during variance computation157480: Set !captures metadata for store of &Freeze157683: Rollup of 17 pull requests157668: Add test for matches inrustc_must_match_exhaustively157661: Update to ar_archive_writer v0.5.2157652: fix doc for unicode normalization faq oncasefoldAPIs157642: Report duplicate relaxed bounds during ast lowering157633: Reorderimplrestriction rendering and add bottom margin157630: Add multibyte JSON diagnostic regression test157605: Arg splat experiment - syntax impl157410: Implement rustc_public::CrateDef{,Type} for FieldDef157338: MakeLiteral::byte_character_valuework with bytes as well156399: fix improper ctypes in Znext solver156067: Fix async drop glue for Box153847: Fix marker trait winnowing depending on impl order148183: rustdoc: Test & documenttest_harnesscode block attribute157571: Remove ProcMacro enum from proc macro ABI157503: Disabletests/debuginfo/pretty-std.rsOsStringcdb check157335: bootstrap: Handle dotted table keys when parsing bootstrap.toml157166: Change type of async context parameter after state transform.129543: Make trait refs & assoc ty paths properly induce trait object lifetime defaults156187: obligations_for_self_ty: skip irrelevant goals (recompute sub_root from stalled_vars)157557: Link LLVM dynamically on x86_64-apple157631: Rollup of 4 pull requests157623: rustc_resolve: point the label span at the segment that could not be resolved157591: Simplify the HIR ty lowering of trait object lifetime bounds157549: Remove comments already covered by rustdoc157547: Reorganizetests/ui/issues[6/N]157628: Rollup of 5 pull requests157624: Move AttributeTemplate from rustc_feature to rustc_attr_parsing157603: Fixed Doc Comment Typo in Linewritershim157542: Reject#[repr(packed)]on#[pin_v2]types157476: Adopt to LLVM 23 CfiFunctionIndex change154543: Fix deref field pattern suggestions and improve error messages157252: Rewriterustc_span::symbol::Internerto avoid double hashing157616: Rollup of 13 pull requests157602: rustdoc: Remove unnecessary fast path157596: test: remove ineffective link-extern-crate-with-drop-type test157587: explain that the size_of constant also serves to avoid optimizing away 'unused' size_of calls157578: Fix diagnostics for non-exhaustive destructuring assignments (#157553)157413: fix: don't suggest .into_iter() for .cloned()/.copied() on non-reference Option157383: tests: codegen-llvm: Ignore BPF targets in c-variadic-opt157300: Relax test requirements for consistency156762: xfs support intest_rename_directory_to_non_empty_directory154608: Add_valueAPI for number literals in proc-macro143511: Improve TLS codegen by marking the panic/init path as cold157299: Fix unstable diagnostics in tests148820: Add very basic "comptime" fn implementation147302: asm! support for the Xtensa architecture157374: remove UnevaluatedConstKind::def_id157600: Rollup of 9 pull requests157592: Suggest comma multiple157588: Usemul nuw nswinintrinsics::copy157585: Renameerrors.rsfile todiagnostics.rs(3/N)157535: Renameerrors.rsfile todiagnostics.rs(2/N)157452: Fix WASI links157402: Implement featureinteger_casts155338: Staticlib hide internal symbols157298: Use alternate means of detecting enums inis_udt157599:rust-analyzersubtree update155607: perf: useget_uncheckedforTwoWaySearcher157586: Rollup of 25 pull requests157581: Test fixup157580: Importing suggestion reported twice when reporting privacy error157560: Incopy_nonoverlapping, usemul nuw nswto compute the byte size157559: chore: Update annotate-snippets to 0.12.16157545: Suggest using comma to separate valid attribute list items157500: Improve documentation ofalign_ofandAlignment.157399: Silence llbc's output by default to prevent rustc's linker output warning157370: Clarify MaybeUninit::zeroed padding docs157323: Document Repeat::last panic behavior157169: triagebot: Update messages to direct changes to appropriate repositories157129: ci: update download-artifact action to v8157078: Document equivalence ofhighest_oneandilog2methods on integers156666: Clarify meaning of ranges in pointer offset docs156188: riscv: promote d, e, and f target_features to CfgStableToggleUnstable156155: macros: report unbound metavariables directly155797: LineWriter: cap write_vectored newline scan to avoid quadratic write_all_vectored153513: Syntactically reject equality predicates157543: Reorganizetests/ui/issues[5/N]157444: Couple of work product cleanups157540: Cleanup and optimizerender_impls157289: Add infallible primitive type lookups to template arg resolver157224: Manually unroll loop instr::floor_char_boundary156119: Further optimizeSliceIndex<str>impl forRange<usize>145108: Resolver: Batched Import Resolution157447: Move cross crate tests into the appropriate folder147250: Optimizechecked_ilogandpowwhenbaseis a power of two157558: Rollup of 25 pull requests157556: AddBTree::append()change to 1.96.0 relnotes157531: ci: bump x86_64-gnu base image to 26.04157526: std tests: skip a slow test on Miri157494: ConvertQueryRegionConstraintinto a struct157485: Renameerrors.rsfile todiagnostics.rs(1/N)157471: Debug assert that parsed attributes are in theBUILTIN_ATTRIBUTE_MAP157380: clarify compiler_fence (and fence) docs157365: Revert "LLVM 23: Run AssignGUIDPass in some places"156936: Remove FIXME about impl PinCoerceUnsized for UnsafePinned156840: StabilizePathBuf::into_string156783: docs: makeRc::into_rawclickable inRc::increment_strong_countdoc156573: Add unwinder_private_data_size for wasm64 target156136: Move tests box157521: RenameSyncView::{as_pin => as_pin_ref}157509: remove solaris implementation for File::lock, it has the wrong semantics157488: compiletest: inject#![windows_subsystem = "windows"]to debuginfo tests on Windows157483: fix windows-gnu TLS leak157386: Parse deprecated note links separately in rustc_resolve157264: diagnostics: Fix ICE building a trait ref in method suggestions157016: addextern "tail"calling convention156222: StabilizeResult::map_or_defaultandOption::map_or_default155144: mir_build: Add an extra intermediate step in MIR building for patterns154742: Add APIs for case folding to the standard library157533: Subtree sync for rustc_codegen_cranelift157251:rust-analyzersubtree update157275: interpret: add per-interpreter layout cache157504: Rollup of 12 pull requests157486: Remove unused attributes from issue-29485.rs.157479: Warn when#[macro_use]or#[macro_escape]is used on the crate root157475: Add a smoke test for the optimize attribute.157474: Forbid optimize(none) with inline(always) or inline.157470: Avoid ICE when emitting TargetMachine config errors157396: Add @aapoalas to libs review rotation157190: Silence recursive RUSTC_LOG_FORMAT_JSON messages157450: markEncode,Decode,Markimpls as#[inline]157438: rustdoc: don't link doc(hidden) associated type projections156798: delegation: do not always generate first argument155453: apply Cortex-A53 errata 843419 mitigation to the AArch64 Linux targets157467: stdarch subtree update143328: Avoid loading HIR for check_well_formed on type declarations157473: Rollup of 7 pull requests157443: Make distinction between crate-level attributes that are warned vs errored157418: NVPTX: Add @kulst to the target maintainers157360: Document error conditions forCommand::{spawn, output, status}157135: fix armv7a-none-eabihf tier doc156892: Suppress E0621 perpetual borrow suggestion157442: Create non-exhaustiveproc_macro::EscapeErrorenum mirrorringrustc-literal-escaper's150453: Dont bail in error predicate unless self ty is error in new solver157417: Windows TLS: avoid atexit call in Miri157448: Rollup of 3 pull requests157435: Introduce -Zdisable-incr-comp-backend-caching157429: Add regression test for unreachable_code with try operator156414: std/sys/net/xous: read NetError code from byte 4 in recv/accept paths157440: Rollup of 8 pull requests157423: Refactor/expand rustc_attr_parsing docs157140: rustc_target: Use rustc_abi instead of cfg_abi to detect powerpcspe156956: Support generic params inLift_Generic156417: Fix an ICE in the vtable iteration for a trait reference in const eval when a supertrait is not implemented156266: Don't ICE in has_self_borrows when coroutine captures-by-ref ty is still inferred148713: rustc_borrowck: fix async closure error note to report AsyncFn rather than Fn157305: Eagerly decide whether relaxed bounds are allowed or not156281: Emit nofree attribute157433: Rollup of 5 pull requests157426: rustc-dev-guide subtree update157249: tests: codegen-llvm: Update bpf-alu32 with the new LLVM attributes156171: Fix a coroutine UI test which is missing#[coroutine]157296: delegation: split resolution and lowering154586: Record failed tests with--record, and rerun them with--rerun157421: Rollup of 4 pull requests157400: Add regression test for late-bound type param in nestedimpl Trait157138: Add doc comment toVec::clone157377: Add target checking to#[register_tool]157297: Add more tests for theoptimizeattribute157274: Add experimentalunnamed_enum_variantsfeature gate157404: Rollup of 3 pull requests157391: Reorganizetests/ui/issues[4/N]157317: Fix ICE when wrong intra-doc link on type alias156210: Emit retags in codegen to support BorrowSanitizer (part 2)