about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-01-03Update cargoWeihang Lo-0/+0
2025-01-03Auto merge of #135034 - Noratrieb:strip-correctly, r=jieyouxubors-18/+57
Pass objcopy args for stripping on OSX When `-Cstrip` was changed in #131405 to use the bundled rust-objcopy instead of /usr/bin/strip on OSX, strip-like arguments were preserved. But strip and objcopy are, while being the same binary, different, they have different defaults depending on which binary they are. Notably, strip strips everything by default, and objcopy doesn't strip anything by default. Additionally, `-S` actually means `--strip-all`, so debuginfo stripped everything and symbols didn't strip anything. We now correctly pass `--strip-debug` and `--strip-all`. fixes #135028 try-job: aarch64-apple try-job: dist-aarch64-apple
2025-01-03Auto merge of #135063 - pietroalbini:pa-bump-version, r=pietroalbinibors-1/+1
Bump version to 1.86.0 Part of the release process. r? `@ghost`
2025-01-03bump versionPietro Albini-1/+1
2025-01-03Auto merge of #135059 - matthiaskrgr:rollup-0ka9o3h, r=matthiaskrgrbors-106/+200
Rollup of 4 pull requests Successful merges: - #131729 (Make the `test` cfg a userspace check-cfg) - #134241 (more concrete source url of std docs [V2]) - #135042 (taint fcx on selection errors during unsizing) - #135049 (Remove unused fields from RepeatElementCopy obligation) r? `@ghost` `@rustbot` modify labels: rollup
2025-01-03Rollup merge of #135049 - cramertj:rmunused, r=compiler-errorsMatthias Krüger-25/+7
Remove unused fields from RepeatElementCopy obligation
2025-01-03Rollup merge of #135042 - lukas-code:taint-dyn-incompat, r=compiler-errorsMatthias Krüger-14/+119
taint fcx on selection errors during unsizing With `feature(dyn_compatible_for_dispatch)` we only check for dyn-compatibility by checking the `T: Unsize<dyn Trait>` predicate during the unsizing coercions checks. If the predicate doesn't hold, we emit an error, but pretend the coercion succeeded to prevent further errors. To prevent const eval from attempting to actually perform this coercion, we need to taint the fcx after reporting the trait errors in the coercion check. fixes https://github.com/rust-lang/rust/issues/135021 fixes https://github.com/rust-lang/rust/issues/130521
2025-01-03Rollup merge of #134241 - liigo:patch-16, r=dtolnayMatthias Krüger-1/+1
more concrete source url of std docs [V2] r? jhpratt since you have reivewed https://github.com/rust-lang/rust/pull/134193 > If someone is looking to contribute, they will want the repository as a whole, not the lib.rs for std. Now the repository url is reserved, I just add another concrete url as an example, to help people finding target page more quickly&easily.
2025-01-03Rollup merge of #131729 - Urgau:check-cfg-test-userspace, r=petrochenkovMatthias Krüger-66/+73
Make the `test` cfg a userspace check-cfg This PR implements MCP https://github.com/rust-lang/compiler-team/issues/785, which makes the `test` cfg a "userspace" check-cfg, i.e. no longer included in the well known cfg list. Things to do: - [x] Accept the MCP (https://github.com/rust-lang/compiler-team/issues/785#issuecomment-2424121886) - [x] Mark `test` in Cargo (https://github.com/rust-lang/cargo/pull/14963) `@rustbot` labels +S-waiting-on-MCP +F-check_cfg r? `@petrochenkov`
2025-01-03Auto merge of #134692 - GrigorenkoPV:sync_poision, r=tgross35bors-37/+141
Move some things to `std::sync::poison` and reexport them in `std::sync` Tracking issue: #134646 r? `@tgross35` I've used `sync_poison_mod` feature flag instead, because `sync_poison` had already been used back in 1.2. try-job: x86_64-msvc
2025-01-03Auto merge of #135053 - workingjubilee:backtrace-without-ruzstd, ↵bors-0/+0
r=workingjubilee Bump backtrace to rust-lang/backtrace-rs@4d7906b Compare: https://github.com/rust-lang/backtrace-rs/compare/230570f...4d7906b Mostly cleanups and enabling backtraces for the RTEMS target. r? `@ghost`
2025-01-02Bump backtrace to rust-lang/backtrace-rs@4d7906bJubilee Young-0/+0
Compare: https://github.com/rust-lang/backtrace-rs/compare/230570f...4d7906b Mostly cleanups and enabling backtraces for the RTEMS target.
2025-01-02Remove unused fields from RepeatElementCopy obligationTaylor Cramer-25/+7
2025-01-02Auto merge of #122565 - Zoxc:atomic-panic-msg, r=the8472bors-20/+153
Try to write the panic message with a single `write_all` call This writes the panic message to a buffer before writing to stderr. This allows it to be printed with a single `write_all` call, preventing it from being interleaved with other outputs. It also adds newlines before and after the message ensuring that only the panic message will have its own lines. Before: ``` thread 'thread 'thread 'thread 'thread '<unnamed>thread 'thread 'thread 'thread '<unnamed><unnamed>thread '<unnamed>' panicked at ' panicked at <unnamed><unnamed><unnamed><unnamed><unnamed>' panicked at <unnamed>' panicked at src\heap.rssrc\heap.rs' panicked at ' panicked at ' panicked at ' panicked at ' panicked at src\heap.rs' panicked at src\heap.rs::src\heap.rssrc\heap.rssrc\heap.rssrc\heap.rssrc\heap.rs:src\heap.rs:455455:::::455:455::455455455455455:455:99:::::9:9: : 999: 999: assertion failed: size <= (*queue).block_size: : assertion failed: size <= (*queue).block_size: assertion failed: size <= (*queue).block_size: : : assertion failed: size <= (*queue).block_sizeassertion failed: size <= (*queue).block_sizeassertion failed: size <= (*queue).block_size assertion failed: size <= (*queue).block_size assertion failed: size <= (*queue).block_sizeassertion failed: size <= (*queue).block_sizeerror: process didn't exit successfully: `target\debug\direct_test.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN) ``` After: ``` thread '<unnamed>' panicked at src\heap.rs:455:9: assertion failed: size <= (*queue).block_size thread '<unnamed>' panicked at src\heap.rs:455:9: assertion failed: size <= (*queue).block_size thread '<unnamed>' panicked at src\heap.rs:455:9: assertion failed: size <= (*queue).block_size error: process didn't exit successfully: `target\debug\direct_test.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN) ``` --- try-jobs: x86_64-gnu-llvm-18
2025-01-02Pass objcopy args for stripping on OSXNoratrieb-18/+57
When `-Cstrip` was changed to use the bundled rust-objcopy instead of /usr/bin/strip on OSX, strip-like arguments were preserved. But strip and objcopy are, while being the same binary, different, they have different defaults depending on which binary they are. Notably, strip strips everything by default, and objcopy doesn't strip anything by default. Additionally, `-S` actually means `--strip-all`, so debuginfo stripped everything and symbols didn't strip anything. We now correctly pass `--strip-debug` and `--strip-all`.
2025-01-02Auto merge of #135040 - matthiaskrgr:rollup-34vsa8n, r=matthiaskrgrbors-29/+51
Rollup of 5 pull requests Successful merges: - #135016 (Ping me for rustc-dev-guide subtree changes on this repo) - #135027 (Remove range-metadata amdgpu workaround) - #135029 (Update mailmap) - #135033 (try to dedup me in the mailmap) - #135035 (Fix formatting command) r? `@ghost` `@rustbot` modify labels: rollup
2025-01-02taint fcx on selection errors during unsizingLukas Markeffsky-14/+119
2025-01-02Rollup merge of #135035 - Noratrieb:fixfmt, r=jieyouxuMatthias Krüger-20/+45
Fix formatting command The formatting command previously had two issues: - if rustfmt failed, it would print the command invocation. this is unnecessarily noisy - there was a race condition that lead to orphan rustfmts that would print their output after bootstrap exited We fix this by - removing the printing, it's not really useful - threading failure through properly instead of just yoloing exit(1)
2025-01-02Rollup merge of #135033 - Eh2406:Eh2406-mailmap, r=jieyouxuMatthias Krüger-0/+3
try to dedup me in the mailmap I have a few more aliases than appeared in the mail map. Perhaps that is why I have been duplicated.
2025-01-02Rollup merge of #135029 - weihanglo:mailmap, r=jieyouxuMatthias Krüger-0/+2
Update mailmap Saw this Zulip thread: https://rust-lang.zulipchat.com/#narrow/channel/122651-general/topic/Changes.20to.20thanks.2Erust-lang.2Eorg and decided to add myself to mailmap
2025-01-02Rollup merge of #135027 - Flakebi:remove-range-workaround, r=compiler-errorsMatthias Krüger-8/+0
Remove range-metadata amdgpu workaround Range metadata was disabled for amdgpu due to a backend bug. I did not encounter any problems when removing the workaround to enable range metadata (tried compiling `core` and `alloc`), so I assume this has been fixed in LLVM in the last years. Remove the workaround to re-enable range metadata. Tracking issue: #135024
2025-01-02Rollup merge of #135016 - jieyouxu:dev-guide-ping-list, r=KobzolMatthias Krüger-1/+1
Ping me for rustc-dev-guide subtree changes on this repo r? `@Kobzol`
2025-01-02Fix formatting commandNoratrieb-20/+45
The formatting command previously had two issues: - if rustfmt failed, it would print the command invocation. this is unnecessarily noisy - there was a race condition that lead to orphan rustfmts that would print their output after bootstrap exited We fix this by - removing the printing, it's not really useful - threading failure through properly instead of just yoloing exit(1)
2025-01-02Auto merge of #135014 - Zalathar:tool-build-step, r=jieyouxubors-113/+135
bootstrap: Overhaul and simplify the `tool_extended!` macro Similar to #134950, but for the macro that declares build steps for some tools. The main changes are: - Removing some functionality that isn't needed by any of the tools currently using the macro - Moving some code out of the macro and into ordinary helper functions - Switching to one macro invocation per tool, and struct-like syntax so that rustfmt will format them There should be no functional change.
2025-01-02Temporarily make the `test` cfg a well known bootstrap cfgUrgau-0/+4
2025-01-02Make the `test` cfg a "userspace" check-cfgUrgau-66/+69
2025-01-02try to dedup me in the mailmapJacob Finkelman-0/+3
2025-01-02Update mailmapWeihang Lo-0/+2
2025-01-02Remove range-metadata amdgpu workaroundFlakebi-8/+0
Range metadata was disabled for amdgpu due to a backend bug. I did not encounter any problems when removing the workaround to enable range metadata (tried compiling `core` and `alloc`), so I assume this has been fixed in LLVM in the last years. Remove the workaround to re-enable range metadata.
2025-01-02path in detailLiigo Zhuang-1/+1
2025-01-02Auto merge of #135023 - jieyouxu:boop, r=onur-ozkanbors-1/+5
bootstrap: flip `compile::Rustc` vs `compile::Assemble` The `PathSet` prefix matching unfortunately also has implications for `./x build compiler --stage 0`, because the path filter `"compiler"` gets consumed by `compile::Rustc` step first after `PathSet` prefix matching, whereas before `PathSet` prefix matching, `compile::Rustc` would not have consumed `"compiler"`. This merely papers over #134970 to unblock contributors from using `./x build compiler --stage 0`. The `PathSet` prefix matching behavior is tracked in #135022. Closes #134970.
2025-01-02bootstrap: temporarily flip `compile::Rustc` vs `compile::Assemble`许杰友 Jieyou Xu (Joe)-1/+5
The PathSet prefix matching unfortunately also has implications for `./x build compiler`, because the path filter `"compiler"` gets consumed by `compile::Rustc` step first after PathSet prefix matching, whereas before PathSet prefix matching, the later-registered `compile::Assemble` step would've consumed the `"compiler"` path filter. This merely papers over the issue with PathSet prefix handling to unblock contributors for using `./x build compiler`.
2025-01-02Move some things to `std::sync::poison` and reexport them in `std::sync`Pavel Grigorenko-37/+141
2025-01-02Ping me for rustc-dev-guide changes on r-l/r许杰友 Jieyou Xu (Joe)-1/+1
2025-01-02Move most of `Step::should_run` out of `tool_extended!`Zalathar-15/+30
2025-01-02Use struct-like syntax in `tool_extended!`Zalathar-18/+36
Using struct-like syntax allows rustfmt to format macro invocations, instead of giving up and ignoring them. Using a separate macro invocation per tool makes the macro slightly simpler, and isolates syntax errors to individual invocations.
2025-01-02Move most of `Step::run` out of `tool_extended!`Zalathar-30/+48
2025-01-02Auto merge of #135009 - DiuDiu777:box-doc, r=jhprattbors-0/+3
Fix doc for missing Box allocator consistency ### Description: This PR addresses missing document regarding consistency of `Box::from_raw` and `Box::from_raw_in`. - [from_raw](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.from_raw): The document now misses the raw pointer passed to `Box::from_raw` must point to a block of memory allocated by the `Global Allocator` (specified in source code). - [from_raw_in](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.from_raw_in): The safety conditions don't include the allocator consistency. Besides, [Boxed Memory Layout](https://doc.rust-lang.org/nightly/std/boxed/index.html#memory-layout) doesn't explicitly cover the allocator consistency issue. This change builds upon the improvements made in [PR #134496](https://github.com/rust-lang/rust/pull/134496).
2025-01-02Don't pass `(self, builder)` identifiers to `tool_extended!`Zalathar-14/+15
2025-01-02Remove two unused parameters from `tool_extended!`Zalathar-4/+2
2025-01-02Remove the unused `extra_features` field from `tool_extended!`Zalathar-46/+18
This field was introduced in #48097 to support the "clippy" feature of RLS.
2025-01-02fix doc for missing Box allocator consistencyLemonJ-0/+3
2025-01-02Auto merge of #134907 - Kobzol:rustc-dev-guide-josh, r=ehussbors-40/+348506
Turn rustc-dev-guide into a Josh subtree Discussed on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/196385-t-compiler.2Fwg-rustc-dev-guide/topic/a.20move.20to.20main.20repo.20.28rust-lang.2Frust.29). Accompanying rustc-dev-guide PR: https://github.com/rust-lang/rustc-dev-guide/pull/2183 I didn't create a bootstrap step for rustc-dev-guide yet, because the rustc-dev-guide version that we currently use in this repo doesn't have linkcheck enabled and that fails tests. The subtree starts with commit [ad93c5f1c49f2aeb45f7a4954017b1e607df9f5e](https://github.com/rust-lang/rustc-dev-guide/commit/ad93c5f1c49f2aeb45f7a4954017b1e607df9f5e). What I did: ``` export DIR=src/doc/rustc-dev-guide # Remove submodule git submodule status ${DIR} git submodule deinit ${DIR} git rm -r --cached ${DIR} rm -rf ${DIR} # Remove rustc-dev-guide from .gitmodules git commit -m"Removed `${DIR}` submodule" # Import history with josh git fetch https://github.com/rust-lang/rustc-dev-guide ad93c5f1c49f2aeb45f7a4954017b1e607df9f5e josh-filter ':prefix=src/doc/rustc-dev-guide' FETCH_HEAD git merge --allow-unrelated FILTERED_HEAD # A few follow-up cleanup commits ``` r? ehuss
2025-01-02Auto merge of #130060 - EnzymeAD:enzyme-cg-llvm, r=oli-obkbors-28/+610
Autodiff Upstreaming - rustc_codegen_llvm changes Now that the autodiff/Enzyme backend is merged, this is an upstream PR for the `rustc_codegen_llvm` changes. It also includes small changes to three files under `compiler/rustc_ast`, which overlap with my frontend PR (https://github.com/rust-lang/rust/pull/129458). Here I only include minimal definitions of structs and enums to be able to build this backend code. The same goes for minimal changes to `compiler/rustc_codegen_ssa`, the majority of changes there will be in another PR, once either this or the frontend gets merged. We currently have 68 files left to merge, 19 in the frontend PR, 21 (+3 from the frontend) in this PR, and then ~30 in the middle-end. This PR is large because it includes two of my three large files (~800 loc each). I could also first only upstream enzyme_ffi.rs, but I think people might want to see some use of these bindings in the same PR? To already highlight the things which reviewers might want to discuss: 1) `enzyme_ffi.rs`: I do have a fallback module to make sure that we don't link rustc against Enzyme when we build rustc without autodiff support. 2) `add_panic_msg_to_global` was a pain to write and I currently can't even use it. Enzyme writes gradients into shadow memory. Pass in one float scalar? We'll allocate and return an extra float telling you how this float affected the output. Pass in a slice of floats? We'll let you allocate the vector and pass in a mutable reference to a float slice, we'll then write the gradient into that slice. It should be at least as large as your original slice, so we check that and panic if not. Currently we panic silently, but I already generate a nicer panic message with this function. I just don't know how to print it to the user. yet. I discussed this with a few rustc devs and the best we could come up with (for now), was to look for mangled panic calls in the IR and pick one, which works surprisingly reliably. If someone knows a good way to clean this up and print the panic message I'm all in, otherwise I can remove the code that writes the nicer panic message and keep the silent panic, since it's enough for soundness. Especially since this PR is already a bit larger. 3) `SanitizeHWAddress`: When differentiating C++, Enzyme can use TBAA to "understand" enums/unions, but for Rust we don't have this information. LLVM might to speculative loads which (without TBAA) confuse Enzyme, so we disable those with this attribute. This attribute is only set during the first opt run before Enzyme differentiates code. We then remove it again once we are done with autodiff and run the opt pipeline a second time. Since enums are everywhere in Rust, support for them is crucial, but if this looks too cursed I can remove these ~100 lines and keep them in my fork for now, we can then discuss them separately to make this PR simpler? 4) Duplicated llvm-opt runs: Differentiating already optimized code (and being able to do additional optimizations on the fly, e.g. for GPU code) is _the_ reason why Enzyme is so fast, so the compile time is acceptable for autodiff users: https://enzyme.mit.edu/talks/Publications/ (There are also algorithmic issues in Enzyme core which are more serious than running opt twice). 5) I assume that if we merge these minimal cg_ssa changes here already, I also need to fix the other backends (GCC and cliff) to have dummy implementations, correct? 6) *I'm happy to split this PR up further if reviewers have recommendations on how to.* For the full implementation, see: https://github.com/rust-lang/rust/pull/129175 Tracking: - https://github.com/rust-lang/rust/issues/124509
2025-01-01Auto merge of #135005 - matthiaskrgr:rollup-5ubuitt, r=matthiaskrgrbors-109/+129
Rollup of 5 pull requests Successful merges: - #134967 (handle submodules automatically on `doc` steps) - #134973 (Fix typos) - #134984 (`ObligationCause` construction tweaks in typeck) - #134985 (Remove qualification of `std::cmp::Ordering` in `Ord` doc) - #135000 (Fix ICE when opaque captures a duplicated/invalid lifetime) r? `@ghost` `@rustbot` modify labels: rollup
2025-01-01Rollup merge of #135000 - compiler-errors:opaque-captures-dupe, r=lqdMatthias Krüger-27/+53
Fix ICE when opaque captures a duplicated/invalid lifetime See description on test. Fixes #132766 Fixes #133693 Fixes #134780
2025-01-01Rollup merge of #134985 - ↵Matthias Krüger-1/+1
mgsloan:remove-unnecessary-qualification-in-Ord-trait-docs, r=Noratrieb Remove qualification of `std::cmp::Ordering` in `Ord` doc
2025-01-01Rollup merge of #134984 - compiler-errors:obligation-tweaks, r=lqdMatthias Krüger-42/+28
`ObligationCause` construction tweaks in typeck Mostly just consolidating the way we construct obligations in `FnCtxt`.
2025-01-01Rollup merge of #134973 - ericlehong:fix-typo, r=GuillaumeGomezMatthias Krüger-7/+7
Fix typos This PR fixes typos errors in comments and docs. Thank you very much.
2025-01-01Rollup merge of #134967 - onur-ozkan:auto-submodule-handler, r=jieyouxuMatthias Krüger-32/+40
handle submodules automatically on `doc` steps Helps to make `doc` macros less complicated.