| Age | Commit message (Collapse) | Author | Lines |
|
|
|
This adds
- (ex) for regions whose origin is existential,
- (p) for regoins whose origin is a placeholder, and
- (p for <name>) if the originating placeholder is named.
This has helped _my_ debugging and it doesn't create too bad clutter, I feel.
The change is ridiculously small, but I turned it into a separate PR so we can bikeshed the format.
|
|
When I first tried contributing to clippy,
I encountered the problem that a lot of lint suggestions overlapped with
existing lints, so I would spend a bunch of time implementing something
only to figure out it wasn't actually needed.
The "comparison with existing lints" field should hopefully reduce this
somewhat, while not incresing the burden of
requesting a new lint too much due to not being mandatory.
changelog: none
|
|
Update to LLVM 21
Timeline: LLVM 21.1.0 is scheduled to release on Aug 26th. Rust 1.90 branches on Aug 1st and releases September 18.
Depends on:
* [x] https://github.com/llvm/llvm-project/issues/147781
* [x] https://github.com/llvm/llvm-project/issues/147935
* [x] https://github.com/llvm/llvm-project/issues/139443
* [x] https://github.com/llvm/llvm-project/pull/148207
* [x] https://github.com/llvm/llvm-project/pull/148607
* [x] https://github.com/llvm/llvm-project/pull/149046
* [x] https://github.com/llvm/llvm-project/issues/149097
* [x] https://github.com/rust-lang/rust/pull/144116
r? `@ghost`
|
|
More consistency.
|
|
I find these name clearer, and starting them all with `print_` makes
things more consistent.
|
|
This makes it possible to bless the snapshot files used by `diff()` in
newly-created run-make tests, without having to create the files manually
beforehand.
|
|
It's not used in `Printer`.
|
|
These details took me some time to work out.
|
|
This fixes a few intrinsic docs that had a link directly to itself
instead of to the correct function in the `mem` module.
|
|
|
|
Fixes rust-lang/rust-clippy#15412
changelog: [`wildcard_imports`]: do not lint code coming from an
external macro
|
|
Inspired by https://github.com/rust-lang/rust/issues/123883 .
|
|
directories
Inspired by https://github.com/rust-lang/rust/issues/123883 .
|
|
fix external docs for exported macros
|
|
Currently we run the `rustc` from the `RUSTC` environment variable to
figure out whether or not to enable `f16` and `f128`, based on the
`target_has_reliable_{f16,f128}` config. However, this does not know
about the codegen backend used, and the backend isn't trivial to check
in a build script (usually it gets set via `RUSTFLAGS`).
It turns out we don't actually need to run `rustc` here: Cargo
unconditionally emits all config from the relevant compiler as
`CARGO_CFG_*` variables, regardless of whether or not they are known
options. Switch to checking these for setting config rather than
invoking `rustc`.
As an added advantage, this will work with target.json files without any
special handling.
Fixes: ed17b95715dd ("Use the compiler to determine whether or not to enable `f16` and `f128`")
|
|
Update installation.md
|
|
add test
|
|
file, not an extension
|
|
libs-api has agreed to rename these functions to
`isolate_highest_one`/`isolate_lowest_one`
|
|
|
|
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
|
|
|
|
|
|
Simplify dead code lint
This PR scratches a few itches I had when looking at that code.
The perf improvement comes from keeping the `scanned` set through several marking phases. This pretty much divides by 2 the number of HIR traversals.
|
|
Like its signed counterpart, this function does not panic. Also, fix the
examples to document how it returns Some/None.
|
|
Create a private module to hold the bootstrap code needed enable LSE
at startup on aarch64-*-linux-* targets when rust implements the
intrinsics.
This is a bit more heavyweight than compiler-rt's LSE initialization,
but has the benefit of initializing the aarch64 cpu feature detection
for other uses.
Using the rust initialization code does use some atomic operations,
that's OK. Mixing LSE and non-LSE operations should work while the
update flag propagates.
|
|
Add dynamic support for aarch64 LSE atomic ops on linux targets
when optimized-compiler-builtins is not enabled.
A hook, __enable_rust_lse, is provided for the runtime to enable
them if available. A future patch will use this to enable them
if available.
The resulting asm should exactly match that of LLVM's compiler-rt
builtins, though the symbol naming for the support function and
global does not.
|
|
Add assignment type analysis for ide-completion
|
|
|
|
|
|
|
|
changelog: none
Signed-off-by: Zihan <zihanli0822@gmail.com>
|
|
The project build for compiler-rt is deprecated.
The runtimes build will use the just-built clang. As such, we
also need to pass --gcc-toolchain to the runtimes build, so that
it can find the GCC installation.
|
|
unicode-table-generator panicked while populating distinct_indices
because of duplicated indices. This was introduced by swapping the
order of canonical_words.push(...) and canonical_words.len().
|
|
|
|
|
|
|
|
|
|
|
|
(#15416)
The `unnecessary_sort_by` lint displays different method names in
message and suggestion, which is a bit confusing.
Also got a question about `UNNECESSARY_SORT_BY` lint definition. Should
we extend its message to also cover *_unstable_* methods?
changelog: [`unnecessary-sort-by`]: sort method consistency in message
and suggestion
|
|
report-in-deps
|
|
|
|
changelog: [`cognitive_complexity`]: move the lint from `nursery` to the
`restriction`
r? @flip1995
|
|
|
|
Removes the pop-in of the element on page load
changelog: none
|
|
|
|
Consolidate staging for `rustc_private` tools
This PR continues bootstrap refactoring, this time by consolidating staging for `Mode::ToolRustc` tools. This refactoring was in the critical path of refactoring `test`/`dist`/`clippy`/`doc` steps, and getting rid of the rmeta/rlib sysroot copy, because tools are pervasive and they are being used for a lot of things in bootstrap.
The main idea is to explicitly model the fact that a stage N `Mode::ToolRustc` tool always works with two different compilers:
- Stage N-1 rustc (`build_compiler`) builds stage N rustc (`target_compiler`)
- Rlib artifacts from stage N rustc are copied to the sysroot of stage N-1 rustc
- Stage N-1 rustc builds the (stage N) tool itself, the tool links to the rlib artifacts of the stage N rustc
Before, the code often used `compiler`, which meant sometimes the build compiler, sometimes the target compiler, and sometimes neither (looking at you, `download-rustc`). This is especially annoying when you get to a situation where you have an install step that invokes a dist step that invokes a tool build step, where *some* compiler is being propagated through, without it being clear what does that compiler represent. This refactoring hopefully makes that clearer and more explicit. It also gets rid of a few `builder.ensure(Rustc(...))` calls within bootstrap, which is always nice.
`Rustdoc` needs to be handled a bit specially, because it acts as a compiler itself, I documented that in the changes.
It wasn't practical to do these refactorings in multiple PRs, so I did it all in one PR. The meat of the change is 9ee6d1c1ed112c3dcfb5684b33772b136df0dca3.
I tested manually that `x build rustdoc` and `x build miri` still works even with `download-rustc`, although I cannot promise any extra support for `download-rustc`, IMO we will just have to reimplement it from scratch in a different way.
As usually, I did some drive-by refactorings to bootstrap, trying to document and clarify things, add more step metadata and tests.
Since these changes broke Cargo, which was incorrectly using `Mode::ToolRustc`, I also changed cargo to `ToolTarget` in this PR.
Best reviewed commit-by-commit (note that I renamed `link_compiler` to `target_compiler`, in accordance to the rest of bootstrap, in the last commit).
r? `@jieyouxu`
try-job: x86_64-gnu-aux
try-job: x86_64-msvc-ext1
|
|
`intrinsic-test`: use `IntoIterator` for the `add_flags` methods
|
|
|