| Age | Commit message (Collapse) | Author | Lines |
|
Before this commit, replace-version-placeholder hardcoded the path
defining CURRENT_RUSTC_VERSION (to avoid replacing it). After a refactor
moved the file defining it without changing the hardcoded path, the tool
started replacing the constant itself with the version number.
To avoid this from happening in the future, this changes the definition
of the constant to avoid the tool from ever matching it.
|
|
Merge the intrinsic and user tests for `select_unpredictable`
[1] mentions that having a single test with `-Zmerge-functions=disabled` is preferable to having two separate tests. Apply that to the new `select_unpredictable` test here.
[1]: https://github.com/rust-lang/rust/pull/133964#issuecomment-2569693325
|
|
Rollup of 6 pull requests
Successful merges:
- #135111 (Add doc aliases for `libm` and IEEE names)
- #135129 (triagebot: label `src/doc/rustc-dev-guide` changes with `A-rustc-dev-guide`)
- #135132 (dev guide ping group and set adhoc reviewers to compiler)
- #135145 (Mention `unnameable_types` in `unreachable_pub` documentation.)
- #135147 (A few borrowck tweaks to improve 2024 edition migration lints)
- #135150 (move footnote to ordinary comment)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
move footnote to ordinary comment
cc #135057
|
|
A few borrowck tweaks to improve 2024 edition migration lints
See first two commits' changes to test outputs. Test coverage in this area is kinda weak, but I think it affects more cases than this (like the craters that will begin to trigger the `tail_expr_drop_order` tests in #134523).
Third commit is a drive-by change that removes a deref hack from `UseSpans` which doesn't really improve diagnostics much.
|
|
Mention `unnameable_types` in `unreachable_pub` documentation.
This link makes sense because someone who wishes to avoid unusable `pub` is likely, but not guaranteed, to be interested in avoiding unnameable types.
Also fixed some grammar problems I noticed in the area.
Fixes #116604.
r? Urgau
|
|
dev guide ping group and set adhoc reviewers to compiler
r? ``@jieyouxu`` ``@Kobzol``
I added you both to the `cc` list since you're both also on the list of owners for `src/doc/rustc-dev-guide`
|
|
triagebot: label `src/doc/rustc-dev-guide` changes with `A-rustc-dev-guide`
Probably should also create a dev-guide reviewer pool for this repo 🤔
r? ``@Kobzol``
|
|
Add doc aliases for `libm` and IEEE names
Searching "fma" in the Rust documentation returns results for `intrinsics::fma*`, but does not point to the user-facing `mul_add`. Add aliases for `fma*` and the IEEE operation name `fusedMultiplyAdd`. Add the IEEE name to `sqrt` as well, `squareRoot`.
|
|
|
|
add m68k-unknown-none-elf target
r? `@workingjubilee`
The existing `m68k-unknown-linux-gnu` target builds `std` by default, requires atomics, and has a base cpu with an fpu. A smaller/more embedded target is desirable both to have a baseline target for the ISA, as well to make debugging easier for working on the llvm backend. Currently this target is using the `M68010` as the minimum CPU due, but as missing features are merged into the `M68k` llvm backend I am hoping to lower this further.
I have been able to build very small crates using a toolchain built against this target (together with a later version of `object`) using the configuration described in the target platform-support documentation, although getting anything of substantial complexity to build quickly hits errors in the llvm backend
|
|
It's not really necessary
|
|
|
|
|
|
Rollup of 3 pull requests
Successful merges:
- #135115 (cg_llvm: Use constants for DWARF opcodes, instead of FFI calls)
- #135118 (Clarified the documentation on `core::iter::from_fn` and `core::iter::successors`)
- #135121 (Mark `slice::reverse` unstably const)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
This link makes sense because someone who wishes to avoid unusable `pub`
is likely, but not guaranteed, to be interested in avoiding unnameable
types.
Also fixed some grammar problems I noticed in the area.
Fixes #116604.
|
|
Mark `slice::reverse` unstably const
Tracking issue #135120
This is unblocked by the stabilization of `const_swap`
|
|
Clarified the documentation on `core::iter::from_fn` and `core::iter::successors`
This PR clarifies the closure requirements for `core::iter::from_fn` and `core::iter::successors`.
`std::iter::successors` in particular is a bit difficult to understand if you are not already familiar with the signature of [`checked_mul`](https://docs.rs/num/latest/num/trait.CheckedMul.html) used in the example.
See https://github.com/rust-lang/rust/issues/135087
|
|
cg_llvm: Use constants for DWARF opcodes, instead of FFI calls
Split off from #134009 to incorporate feedback from https://github.com/rust-lang/rust/pull/134009#discussion_r1903133906.
Most of the constant values now come from gimli, which is already a compiler dependency.
I noticed that `DW_OP_LLVM_fragment` is an LLVM detail that is not defined by DWARF and could hypothetically change, so I added a static assertion on the C++ side to detect that if it ever happens.
r? workingjubilee
|
|
Add a notion of "some ABIs require certain target features"
I think I finally found the right shape for the data and checks that I recently added in https://github.com/rust-lang/rust/pull/133099, https://github.com/rust-lang/rust/pull/133417, https://github.com/rust-lang/rust/pull/134337: we have a notion of "this ABI requires the following list of target features, and it is incompatible with the following list of target features". Both `-Ctarget-feature` and `#[target_feature]` are updated to ensure we follow the rules of the ABI. This removes all the "toggleability" stuff introduced before, though we do keep the notion of a fully "forbidden" target feature -- this is needed to deal with target features that are actual ABI switches, and hence are needed to even compute the list of required target features.
We always explicitly (un)set all required and in-conflict features, just to avoid potential trouble caused by the default features of whatever the base CPU is. We do this *before* applying `-Ctarget-feature` to maintain backward compatibility; this poses a slight risk of missing some implicit feature dependencies in LLVM but has the advantage of not breaking users that deliberately toggle ABI-relevant target features. They get a warning but the feature does get toggled the way they requested.
For now, our logic supports x86, ARM, and RISC-V (just like the previous logic did). Unsurprisingly, RISC-V is the nicest. ;)
As a side-effect this also (unstably) allows *enabling* `x87` when that is harmless. I used the opportunity to mark SSE2 as required on x86-64, to better match the actual logic in LLVM and because all x86-64 chips do have SSE2. This infrastructure also prepares us for requiring SSE on x86-32 when we want to use that for our ABI (and for float semantics sanity), see https://github.com/rust-lang/rust/issues/133611, but no such change is happening in this PR.
r? `@workingjubilee`
|
|
rustc-dev-guide subtree update
This PR performs the first update of rustc-dev-guide code from its repository.
r? `@BoxyUwU`
|
|
|
|
|
|
|
|
Co-authored-by: Jubilee <workingjubilee@gmail.com>
|
|
Subtree sync for rustc_codegen_cranelift
Aside from a Cranelift update, nothing major this time.
r? `@ghost`
`@rustbot` label +A-codegen +A-cranelift +T-compiler
|
|
(#2192)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sync_cg_clif-2025-01-05
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The `gimli` crate is already a dependency of `thorin-dwp`, which is already a
dependency of `rustc_codegen_ssa`.
|
|
|
|
Weekly `cargo update`
Automation to keep dependencies in `Cargo.lock` current.
The following is the output from `cargo update`:
```txt
compiler & tools dependencies:
Locking 4 packages to latest compatible versions
Updating bstr v1.11.1 -> v1.11.3
Updating spdx v0.10.7 -> v0.10.8
Updating syn v2.0.93 -> v2.0.94
Updating tempfile v3.14.0 -> v3.15.0
note: pass `--verbose` to see 35 unchanged dependencies behind latest
library dependencies:
Locking 0 packages to latest compatible versions
note: pass `--verbose` to see 3 unchanged dependencies behind latest
rustbook dependencies:
Locking 5 packages to latest compatible versions
Updating bstr v1.11.1 -> v1.11.3
Updating cc v1.2.6 -> v1.2.7
Updating syn v2.0.93 -> v2.0.94
Updating tempfile v3.14.0 -> v3.15.0
Updating winnow v0.6.20 -> v0.6.22
```
|
|
|
|
For ZSTs there is no selection that needs to take place, so assert that
no `select` statement is emitted.
|
|
Target: Add mips mti baremetal support
Do the same thing as gcc, which use the vendor `mti` to mark the toolchain as MIPS32r2 default.
We support both big endian and little endian flavor:
mips-mti-none-elf
mipsel-mti-none-elf
|
|
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
|
|
|