about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-01-03Merge pull request #4120 from rust-lang/rustup-2025-01-03Ben Kimock-1369/+351703
Automatic Rustup
2025-01-03Merge from rustcThe Miri Cronjob Bot-1368/+351702
2025-01-08Move `mod cargo` below the import statementsonur-ozkan-2/+2
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-03Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
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-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-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-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-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-02Merge pull request #4106 from shamb0/generalize-callback-miri-concurrencyRalf Jung-131/+171
Concurrency: Generalize UnblockCallback to MachineCallback
2025-01-02tweak docs a littleRalf Jung-35/+19
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.
2025-01-01upstream rustc_codegen_llvm changes for enzyme/autodiffManuel Drehwald-28/+610
2025-01-01Fix ICE when opaque captures a duplicated/invalid lifetimeMichael Goulet-27/+53
2025-01-01Auto merge of #134080 - kleisauke:avoid-lfs64-emscripten, r=Noratriebbors-17/+3
Avoid use of LFS64 symbols on Emscripten Since Emscripten uses musl libc internally. Non-functional change: all LFS64 symbols were aliased to their non-LFS64 counterparts in rust-lang/libc@7c952dceaad4cdc35e00884fcb12a713d41a87e0.
2025-01-01Auto merge of #134964 - Kobzol:tidy-full-check, r=onur-ozkanbors-3/+13
Run Python formatting check in tidy on CI I don't think that there's a reason why we should ignore Python formatting on CI, when we already check Python lints and C++ formatting. r? `@onur-ozkan`
2025-01-01Remove mention of rustc-dev-guide from toolstateJakub Beránek-4/+1
2025-01-01Modify rustc-dev-guide triagebot ping listJakub Beránek-1/+1
2025-01-01Remove obsolete `RustcGuide` bootstrap stepJakub Beránek-30/+0
It was not working for a long time.
2025-01-01Fix source code path in commentJakub Beránek-1/+1
2025-01-01Add rustc-dev-guide as a josh subtreeJakub Beránek-0/+348503
2025-01-01Removed `rustc-dev-guide` as a submoduleJakub Beránek-4/+0
2025-01-01Try to write the panic message with a single `write_all` callJohn Kåre Alsaker-20/+153
2025-01-01std::fs::DirEntry.metadata(): prefer use of lstat() on EmscriptenKleis Auke Wolthuizen-8/+1
Align it with musl, which also prefers using lstat() here.
2025-01-01Avoid use of LFS64 symbols on EmscriptenKleis Auke Wolthuizen-9/+2
Since Emscripten uses musl libc internally. Non-functional change: all LFS64 symbols were aliased to their non-LFS64 counterparts in rust-lang/libc@7c952dceaad4cdc35e00884fcb12a713d41a87e0.