about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-02-15Restrict DerefPure for Cow<T> impl to T = impl Clone, [impl Clone], str.Zachary S-1/+11
2025-02-15Auto merge of #137057 - weihanglo:update-cargo, r=weihanglobors-0/+1
Update cargo 13 commits in 2928e32734b04925ee51e1ae88bea9a83d2fd451..ce948f4616e3d4277e30c75c8bb01e094910df39 2025-02-07 16:50:22 +0000 to 2025-02-14 20:32:07 +0000 - util: provide a better error message for invalid SSH URLs (rust-lang/cargo#15185) - Fix the description of the `"root"` field of the `cargo metadata`'s output (rust-lang/cargo#15182) - refactor: Consolidate creation of SourceId from manifest path (rust-lang/cargo#15172) - docs(embedded): Note the shebang deviation (rust-lang/cargo#15173) - refactor(embedded): Integrate cargo-script logic into main parser (rust-lang/cargo#15168) - feat: implement workspace feature unification (rust-lang/cargo#15157) - Fix race condition in panic_abort_tests (rust-lang/cargo#15169) - Update all dependencies (rust-lang/cargo#15166) - Update curl from 8.9.0 to 8.12.0 (rust-lang/cargo#15162) - Update annotate-snippets from 0.11.4 to 0.11.5 (rust-lang/cargo#15165) - Update deny.toml (rust-lang/cargo#15164) - Update rusqlite from 0.32.1 to 0.33.0 (rust-lang/cargo#15163) - fix: align first line of unordered list with following (rust-lang/cargo#15161)
2025-02-15Auto merge of #137066 - onur-ozkan:137034-blocker, r=jieyouxubors-12/+15
check if CI-LLVM is enabled before testing it Blocker for #137034
2025-02-15Auto merge of #136828 - yotamofek:pr/rustdoc/more-laziness, ↵bors-95/+157
r=GuillaumeGomez,aDotInTheVoid Do more lazy-formatting in `librustdoc` 🦥 Modify some formatting to be lazy, i.e. to not allocate interim strings that are later formatted into different strings. Commits are small and stand on their own, and should mostly compile separately. (The first one doesn't compile due to `dead_code` because all it does is introduce a helper used in later commits) Really excited about this one, local perf results are really good. I'd love a perf run to see how this looks on CI. This is the comparison of `instructions:u` count between master and this PR, on my computer: # Summary | | Range | Mean | Count | |:---:|:---:|:---:|:---:| | Regressions | - | 0.00% | 0 | | Improvements | -8.03%, -0.40% | -2.93% | 5 | | All | -8.03%, -0.40% | -2.93% | 5 | # Primary benchmarks | Benchmark | Profile | Scenario | % Change | Significance Factor | |:---:|:---:|:---:|:---:|:---:| | typenum-1.17.0 | doc | full | -8.03% | 40.16x | | nalgebra-0.33.0 | doc | full | -4.19% | 20.97x | | stm32f4-0.14.0 | doc | full | -1.35% | 6.73x | | libc-0.2.124 | doc | full | -0.67% | 3.33x | | cranelift-codegen-0.82.1 | doc | full | -0.40% | 1.99x |
2025-02-15check if CI-LLVM is enabled before testing itonur-ozkan-12/+15
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-15Auto merge of #137065 - jhpratt:rollup-ree9mej, r=jhprattbors-2855/+2982
Rollup of 9 pull requests Successful merges: - #135687 (re-export `FromCoroutine` from `core::iter`) - #135813 (CI: split i686-mingw job to three free runners) - #136749 (Implement Extend<AsciiChar> for String) - #136879 (Add safe new() to NotAllOnes) - #136978 (Windows: Update generated bindings) - #137028 (mir_build: Clarify some code for lowering `hir::PatExpr` to THIR) - #137029 (Remove unnecessary check code in unused_delims) - #137056 (made check_argument_compat public for use in miri) - #137062 (Forward all default methods for I/O impls) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-15Rollup merge of #137062 - thaliaarchi:io-optional-methods/write, ↵Jacob Pratt-0/+62
r=workingjubilee Forward all default methods for I/O impls Forward all default methods for `&mut T` and `Box<T>` to the inner `io::Read`, `io::Write`, `io::Seek`, and `io::BufRead` types.
2025-02-15Rollup merge of #137056 - geetanshjuneja:pub, r=RalfJungJacob Pratt-1/+2
made check_argument_compat public for use in miri Links to [issue](https://github.com/rust-lang/miri/issues/3842) and it's [PR](https://github.com/rust-lang/miri/pull/4185#issuecomment-2657554989) in miri.
2025-02-15Rollup merge of #137029 - chenyukang:yukang-fix-unused-check, ↵Jacob Pratt-24/+0
r=jieyouxu,compiler-errors Remove unnecessary check code in unused_delims After PR #108297, we make sure there is no unmatched delims in early lint check.
2025-02-15Rollup merge of #137028 - Zalathar:thir-pat-expr, r=compiler-errorsJacob Pratt-38/+44
mir_build: Clarify some code for lowering `hir::PatExpr` to THIR A few loosely-related improvements to the code that lowers certain parts of HIR patterns to THIR. I was originally deferring this until after #136529, but that PR probably won't happen, whereas these changes should hopefully be uncontroversial. r? Nadrieril or reroll
2025-02-15Rollup merge of #136978 - ChrisDenton:windows-bindgen, r=AmanieuJacob Pratt-2750/+2774
Windows: Update generated bindings Update to windows-bindgen 0.59. This update is aimed at reducing churn in the future, but means a bit more churn now: - `bindings.txt` no longer needs us to write the namespace for each item. This is good because it means in the future we won't need to change them if the namespace changes. However, there are a few where we still need to disambiguate due to duplicate items (this is a bug in the upstream metadata). - The output in `windows-sys.rs` is now sorted. It was mostly sorted before but not intentionally. This should mean future changes are less noisy. The actual code changes are minimal here. A few types are now `bool` instead of `BOOLEAN`, which is more convenient.
2025-02-15Rollup merge of #136879 - kornelski:non1, r=NoratriebJacob Pratt-29/+24
Add safe new() to NotAllOnes Replaces duplicated `unsafe` code with a single, easier to verify implementation.
2025-02-15Rollup merge of #136749 - mzeitlin11:extend-asciichar, r=scottmcmJacob Pratt-0/+39
Implement Extend<AsciiChar> for String Implement `Extend<AsciiChar>` for `String` as suggested in https://github.com/rust-lang/rust/issues/110998#issuecomment-2590122968. Also implements `Extend<&AsciiChar>` since there's an analogous impl for `Extend<&char>`, but happy to remove if not thought useful. r? `@scottmcm` since you requested it, but no pressure to review!
2025-02-15Rollup merge of #135813 - marcoieni:free-runner-i686-mingw, r=jdnoJacob Pratt-9/+33
CI: split i686-mingw job to three free runners try-job: i686-mingw-1 try-job: i686-mingw-2 try-job: i686-mingw-3 try-job: x86_64-mingw-1
2025-02-15Rollup merge of #135687 - joseluis:feat-reexport_from_coroutine, r=scottmcmJacob Pratt-4/+4
re-export `FromCoroutine` from `core::iter` tracking issue: https://github.com/rust-lang/rust/issues/43122 fixes: #135686
2025-02-15add a doc commentRalf Jung-0/+1
2025-02-14Forward all default methods for I/O implsThalia Archibald-0/+62
2025-02-15Auto merge of #136324 - GrigorenkoPV:erf, r=tgross35bors-0/+295
Implement `f{16,32,64,128}::{erf,erfc}` (`#![feature(float_erf)]`) Tracking issue: #136321 try-job: x86_64-gnu-aux
2025-02-14Update cargoWeihang Lo-0/+1
Also add Zlib to Cargo's license exception
2025-02-15made check_argument_compat publicgeetanshjuneja-1/+1
2025-02-15Auto merge of #137046 - workingjubilee:rollup-u56aw1m, r=workingjubileebors-217/+471
Rollup of 10 pull requests Successful merges: - #133312 (triagebot: automatically add more rustdoc related labels) - #134016 (Stabilize `const_is_char_boundary` and `const_str_split_at`.) - #136971 (Add a new check-pass UI test for returning `impl Fn(T) -> impl Trait`) - #136983 (Prepare standard library for Rust 2024 migration) - #137002 (Fix early lint check desc in query) - #137006 (borrowck diagnostics cleanup: remove an unused and a barely-used field) - #137032 (Decode metadata buffer in one go) - #137035 (Normalize closure instance before eagerly monomorphizing it) - #137037 (add x86-sse2 (32bit) ABI that requires SSE2 target feature) - #137038 (llvm: Tolerate captures in tests) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-15Remove unnecessary check code in unused_delimsyukang-24/+0
2025-02-14Rollup merge of #137038 - maurer:tolerate-captures, r=nikicJubilee-1/+1
llvm: Tolerate captures in tests llvm/llvm-project@7e3735d1a1b85cea48feb45cb7c2b5d8eaa216ae introduces `captures` annotations. Adjust regexes to be tolerant of these. `@rustbot` label:+llvm-main
2025-02-14Rollup merge of #137037 - RalfJung:x86-sse2-abi, r=workingjubileeJubilee-20/+96
add x86-sse2 (32bit) ABI that requires SSE2 target feature This is the first commit of https://github.com/rust-lang/rust/pull/135408: The primary goal of this is to make SSE2 required for our i686 targets (at least for the ones that use Pentium 4 as their baseline), to ensure they cannot be affected by https://github.com/rust-lang/rust/issues/114479. This has been MCPd in https://github.com/rust-lang/compiler-team/issues/808, and is tracked in https://github.com/rust-lang/rust/issues/133611. We do this by defining a new ABI that these targets select, and making SSE2 required by the ABI (that's the first commit). That's kind of a hack, but it is the easiest way to make a target feature required via the target spec. In a follow-up change (https://github.com/rust-lang/rust/pull/135408), we can actually make use of SSE2 for the ABI, but that is running into some infrastructure issues. r? `@workingjubilee` try-job: aarch64-apple try-job: aarch64-gnu try-job: aarch64-gnu-debug try-job: test-various try-job: x86_64-gnu-nopt try-job: dist-i586-gnu-i586-i686-musl
2025-02-14Rollup merge of #137035 - compiler-errors:eagerly-mono-closures-after-norm, ↵Jubilee-0/+26
r=saethlin Normalize closure instance before eagerly monomorphizing it We were monomorphizing two versions of the closure (or in the original issue, coroutine) -- one with normalized captures and one with unnormalized captures. This led to a symbol collision. Fixes #137009 r? `@saethlin` or reassign
2025-02-14Rollup merge of #137032 - oli-obk:push-ptvssqnomkpo, r=the8472Jubilee-4/+1
Decode metadata buffer in one go Not sure if this is perf relevant at all, but it was a bit odd before r? ``@the8472``
2025-02-14Rollup merge of #137006 - dianne:remove-errci-fields, r=compiler-errorsJubilee-29/+11
borrowck diagnostics cleanup: remove an unused and a barely-used field This removes the fields `fr_is_local` and `outlived_fr_is_local` from the struct `ErrorConstraintInfo`. `fr_is_local` was fully unused, but wasn't caught by dead-code analysis. For symmetry, and since `outlived_fr_is_local` was used only once and is easy to recompute, I've removed it too. That makes its one use a bit longer, but constructing/destructuring an `ErrorConsraintInfo` now fits on one line.
2025-02-14Rollup merge of #137002 - chenyukang:fix-early-lint-check-desc, ↵Jubilee-1/+1
r=compiler-errors Fix early lint check desc in query When I debugging this issue: https://github.com/rust-lang/rust/pull/136906#discussion_r1954151036 I found early lint checking is performed after [macro expansion](https://github.com/chenyukang/rust/blob/37520e6d89eeea96b966ab281a7adf1775f7e207/compiler/rustc_interface/src/passes.rs#L267), but [prior to AST lowering](https://github.com/chenyukang/rust/blob/37520e6d89eeea96b966ab281a7adf1775f7e207/compiler/rustc_ast_lowering/src/lib.rs#L427). r? ``@cjgillot``
2025-02-14Rollup merge of #136983 - ehuss:misc-2024-prep, r=tgross35Jubilee-157/+256
Prepare standard library for Rust 2024 migration This includes a variety of commits preparing the standard library for migration to Rust 2024. The actual migration is blocked on a few things, so I wanted to get this out of the way in a relatively digestable PR.
2025-02-14Rollup merge of #136971 - HypheX:patch1, r=WaffleLapkinJubilee-0/+37
Add a new check-pass UI test for returning `impl Fn(T) -> impl Trait` This PR closes #107883 by adding a ui test.
2025-02-14Rollup merge of #134016 - zachs18:stable-const-str-split_at, r=AmanieuJubilee-5/+5
Stabilize `const_is_char_boundary` and `const_str_split_at`. Tracking issues: #131516, #131518 Stabilized const API: ```rs // in `core` impl str { // const_is_char_boundary feature const fn is_char_boundary(&self, index: usize) -> bool; // const_str_split_at feature, depends on const_is_char_boundary const fn split_at(&self, mid: usize) -> (&str, &str); const fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str); const fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>; const fn split_at_mut_checked(&mut self, mid: usize) -> Option<(&mut str, &mut str)>; } ``` This will allow safely splitting string slices during const-eval. Closes #131516, Closes #131518 This will need FCP. r? libs-api IIUC these do not use any new const language features (i.e. they are implementable manually on stable 1.83.0 using `unsafe`: [playground link](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3679632cd1041084796241b7ac8edfbd)). Cc ``@rust-lang/wg-const-eval`` (I don't know if I have the permissions for this ping; if not, someone else please ping wg-const-eval if it is necessary)
2025-02-14Rollup merge of #133312 - lolbinarycat:triagebot-rustdoc-labels, ↵Jubilee-0/+37
r=GuillaumeGomez triagebot: automatically add more rustdoc related labels [inspired by zulip discussion](https://rust-lang.zulipchat.com/#narrow/channel/242269-t-release.2Ftriage/topic/auto-adding.20team.20labels.20based.20on.20certain.20other.20labels)
2025-02-14Auto merge of #137041 - ChrisDenton:mysql, r=Kobzolbors-5/+0
Don't remove mysql in CI I think this works around the issue? r? `@Kobzol`
2025-02-14Don't error if stopping mysql fails in CIChris Denton-5/+0
2025-02-14Normalize closure instance before eagerly monomorphizing itMichael Goulet-0/+26
2025-02-14llvm: Tolerate captures in testsMatthew Maurer-1/+1
llvm/llvm-project@7e3735d1a1b85cea48feb45cb7c2b5d8eaa216ae introduces `captures` annotations. Adjust regexes to be tolerant of these.
2025-02-14add x86-sse2 (32bit) ABI that requires SSE2 target featureRalf Jung-20/+96
2025-02-14Auto merge of #137030 - matthiaskrgr:rollup-267aumr, r=matthiaskrgrbors-1104/+1068
Rollup of 9 pull requests Successful merges: - #135778 (account for `c_enum_min_bits` in `multiple-reprs` UI test) - #136052 (Correct comment for FreeBSD and DragonFly BSD in unix/thread) - #136886 (Remove the common prelude module) - #136956 (add vendor directory to .gitignore) - #136958 (Fix presentation of purely "additive" replacement suggestion parts) - #136967 (Use `slice::fill` in `io::Repeat` implementation) - #136976 (alloc boxed: docs: use MaybeUninit::write instead of as_mut_ptr) - #137007 (Emit MIR for each bit with on `dont_reset_cast_kind_without_updating_operand`) - #137008 (Move code into `rustc_mir_transform`) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-14Decode metadata buffer in one goOli Scherer-4/+1
2025-02-14miri: shims for `erf` & friendsPavel Grigorenko-0/+15
2025-02-14Rollup merge of #137008 - nnethercote:mv-code-into-rustc_mir_transform, ↵Matthias Krüger-78/+77
r=oli-obk Move code into `rustc_mir_transform` I found two modules in other crates that are better placed in `rustc_mir_transform`, because that's the only crate that uses them. r? ``@matthewjasper``
2025-02-14Rollup merge of #137007 - pvdrz:fix-aarch64-alloc-layout, r=compiler-errorsMatthias Krüger-0/+269
Emit MIR for each bit with on `dont_reset_cast_kind_without_updating_operand` PR #136450 introduced a diff that includes a pointer-sized alloc. This doesn't cause any problems on the compiler test suite but it affects the test suite that ferrocene has for `aarch64-unknown-none` as the snapshot of the diff only includes a 32-bit alloc even though this should be a 64-bit alloc on `aarch64-unknown-none`. r? ``@compiler-errors``
2025-02-14Rollup merge of #136976 - jedbrown:jed/doc-boxed-deferred-init, r=tgross35Matthias Krüger-84/+44
alloc boxed: docs: use MaybeUninit::write instead of as_mut_ptr In the deferred initialization pattern, the docs were needlessly going through `as_mut_ptr().write()` to initialize, which is unnecessary use of a pointer, needs to be inside an `unsafe` block, and may weaken alias analysis.
2025-02-14Rollup merge of #136967 - DaniPopes:io-repeat-fill, r=joboetMatthias Krüger-18/+11
Use `slice::fill` in `io::Repeat` implementation Use the existing `fill` methods on slices instead of manually writing the fill loop.
2025-02-14Rollup merge of #136958 - compiler-errors:additive-replacmeent, r=estebankMatthias Krüger-897/+640
Fix presentation of purely "additive" replacement suggestion parts #127541 changes replacement suggestions to use the "diff" view always, which I think is really verbose in cases where a replacement snippet is a "superset" of the snippet that is being replaced. Consider: ``` LL - Self::Baz: Clone, LL + Self::Baz: Clone, T: std::clone::Clone ``` In this code, we suggest replacing `", "` with `", T: std::clone::Clone"`. This is a consequence of how the snippet is constructed. I believe that since the string that is being replaced is a subset of the replacement string, it's not providing much value to present this as a diff. Users should be able to clearly understand what's being suggested here using the `~` underline view we've been suggesting for some time now. Given that this affects ~100 tests out of the ~1000 UI tests affected, I expect this to be a pretty meaningful improvement of the fallout of #127541. --- In the last commit, this PR also "trims" replacement parts so that they are turned into their purely additive subset, if possible. See the diff for what this means. --- r? estebank
2025-02-14Rollup merge of #136956 - jyn514:ignore-vendor, r=NoratriebMatthias Krüger-0/+2
add vendor directory to .gitignore
2025-02-14Rollup merge of #136886 - ehuss:remove-prelude-common, r=jhprattMatthias Krüger-25/+13
Remove the common prelude module This fixes the issues described in https://github.com/rust-lang/rust/issues/136102. Primarily, this resolves some issues with how the documentation for the prelude is generated: - It avoids showing "unstable" for macros in the prelude that are actually stable. - Avoids duplication of some pages due to the previous lack of `doc(no_inline)`. - Makes the different edition preludes consistent, and sets a pattern that can be used by future editions. We may need to rearrange these modules in the future if we decide to remove anything from the prelude again. If we do, I think we should look into a different solution that avoids the documentation problems. Closes https://github.com/rust-lang/rust/issues/136102
2025-02-14Rollup merge of #136052 - no1wudi:fix, r=workingjubileeMatthias Krüger-1/+1
Correct comment for FreeBSD and DragonFly BSD in unix/thread
2025-02-14Rollup merge of #135778 - ferrocene:ja-gh135777, r=workingjubileeMatthias Krüger-1/+11
account for `c_enum_min_bits` in `multiple-reprs` UI test fixes #135777
2025-02-14librustdoc: lazily format "read more" link in `document_short`Yotam Ofek-6/+15