| Age | Commit message (Collapse) | Author | Lines |
|
Introduce `ReError`
CC #69314
r? `@nagisa`
|
|
Rollup of 6 pull requests
Successful merges:
- #107043 (Support `true` and `false` as boolean flag params)
- #107831 (Query refactoring)
- #107841 (Handled snap curl issue inside Rust)
- #107852 (rustdoc: remove unused fn parameter `tab`)
- #107861 (Sync release notes for 1.67.1)
- #107863 (Allow multiple candidates with same response in new solver)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
r=jackh726
Allow multiple candidates with same response in new solver
Treat >1 candidates as *not* ambiguous if they return the same response.
|
|
Sync release notes for 1.67.1
Closes #107859.
|
|
rustdoc: remove unused fn parameter `tab`
|
|
Handled snap curl issue inside Rust
|
|
Query refactoring
Just some cleanups I found when learning about the query system.
Best reviewed one commit at a time.
r? `@oli-obk`
|
|
Support `true` and `false` as boolean flag params
Implements [MCP 577](https://github.com/rust-lang/compiler-team/issues/577).
|
|
Fix implied outlives bounds logic for projections
The logic here is subtly wrong. I put a bit of an explanation in a767d7b5165cea8ee5cbe494a4a636c50ef67c9c.
TL;DR: we register outlives predicates to be proved, because wf code normalizes projections (from the unnormalized types) to type variables. This causes us to register those as constraints instead of implied. This was "fine", because we later added that implied bound in the normalized type, and delayed registering constraints. When I went to cleanup `free_region_relations` to *not* delay adding constraints, this bug was uncovered.
cc. `@aliemjay` because this caused your test failure in #99832 (I only realized as I was writing this)
r? `@nikomatsakis`
|
|
normalization
|
|
|
|
|
|
Add `-Z instrument-xray` flag
Implement MCP https://github.com/rust-lang/compiler-team/issues/561, adding `-Z instrument-xray` flag which enables XRay instrumentation in LLVM.
|
|
|
|
Rollup of 6 pull requests
Successful merges:
- #107648 (unused-lifetimes: don't warn about lifetimes originating from expanded code)
- #107655 (rustdoc: use the same URL escape rules for fragments as for examples)
- #107659 (test: snapshot for derive suggestion in diff files)
- #107786 (Implement some tweaks in the new solver)
- #107803 (Do not bring trait alias supertraits into scope)
- #107815 (Disqualify `auto trait` built-in impl in new solver if explicit `impl` exists)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Disqualify `auto trait` built-in impl in new solver if explicit `impl` exists
|
|
eggyal:do_not_bring_trait_alias_supertraits_into_scope, r=compiler-errors
Do not bring trait alias supertraits into scope
Fixes #107747
cc #41517
|
|
Implement some tweaks in the new solver
I've been testing the new solver on some small codebases, and these are a few small changes I've needed to make.
The most "controversial" here is implementing `trait_candidate_should_be_dropped_in_favor_of`, which I just implemented to always return false. This surprisingly allows some code to compile, without us having to actually decide on any semantics yet.
r? `@rust-lang/initiative-trait-system-refactor`
|
|
test: snapshot for derive suggestion in diff files
fixed #107649
|
|
rustdoc: use the same URL escape rules for fragments as for examples
Carries over improvements from #107284
|
|
unused-lifetimes: don't warn about lifetimes originating from expanded code
previously, we would warn like this:
````
warning: lifetime parameter `'s` never used
--> /tmp/unusedlif/code.rs:6:62
|
5 | #[derive(Clone)]
| - help: elide the unused lifetime
6 | struct ShimMethod4<T: Trait2 + 'static>(pub &'static dyn for<'s> Fn(&'s mut T::As));
| ^^
|
= note: requested on the command line with `-W unused-lifetimes`
````
Fixes #104432
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sync rustc_codegen_cranelift
* Couple of bugfixes
* A significant runtime perf improvement
* Implemented sym and const support for inline asm
* Improved self profile integration
r? `@ghost`
`@rustbot` label +A-codegen +A-cranelift +T-compiler
|
|
sync_cg_clif-2023-02-09
|
|
Rollup of 5 pull requests
Successful merges:
- #107446 (Migrate some of `rustc_parse` to derive diagnostics)
- #107752 (Specify dlltool prefix when generating import libs)
- #107808 (bootstrap.py: fix build-failure message)
- #107834 (create symlink for legacy rustfmt path)
- #107835 (use idiomatic formatting)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
|
|
|
|
CC #69314
|
|
|
|
use idiomatic formatting
Also, remove needless `else`
|
|
create symlink for legacy rustfmt path
Fixes #107547 .
Main change is in the `download.rs` file. Created a symlink for the legacy rustfmt path to the new rustfmt path. Other file changes are simply as a result of porting over the symlink_file function from the Build struct to the config Struct
|
|
bootstrap.py: fix build-failure message
A small mistake I did.
Corrects #107470, fixes #107804
r? `@albertlarsan68` (since you reviewed the last one)
|
|
Specify dlltool prefix when generating import libs
Ref: https://github.com/rust-lang/rust/pull/106610#issuecomment-1418221274
tl;dr: This PR adds an explicit dlltool temporary filename prefix. The prefix resolves a race condition by ensuring dlltool temporary files are siloed in an appropriate/unique Rust temporary directory.
---
GNU dlltool, as part of its import library generation logic, uses a bunch of temporary files on disk. In the interest of deterministic build runs, dlltool supports deterministic temporary filenames. The temporary filename prefix is automatically generated internally or can be explicitly specified via a `--temp-prefix` argument.
GNU dlltool **2.38** (that ships with `x86_64-12.2.0-release-posix-seh-rt_v10-rev0` [installed during CI](https://github.com/rust-lang/rust/blob/master/src/ci/scripts/install-mingw.sh)) generates a prefix based on the target library name ([source](https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=binutils/dlltool.c;h=d95bf3f5470b999fa3b30bc887791859f48d81d1;hb=20756b0fbe065a84710aa38f2457563b57546440#l3992)). The tool writes to files such as `target_dll_h.s` and `target_dll_s00203.o` in the current working directory.
This presents a problem when multiple instances of rustc_codegen_llvm are running to generate an import library (as part of the raw_dylib feature) for the same target library (e.g. kernel32) ([source](https://github.com/rust-lang/rust/blob/master/compiler/rustc_codegen_llvm/src/back/archive.rs#L185-L196)). That is, dlltool instances race and may overwrite or delete files belonging to each other.
GNU dlltool **2.39**+ (not used in Rust CI) generates a prefix based on the output library path ([source](https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=binutils/dlltool.c;h=e2af20847009945b4c61a6fef08268fbb4429715;hb=b51c2fec1da205ea3e7354cbb3e253018d64873c#l3992)). The tool, when invoked as part of rustc_codegen_llvm, writes to files at paths such as `C_Users_Foo_AppData_Local_Temp_rustcOFqhXZ_target_lib_h.s`. (The output library path is normalized and non-alphanumeric characters are replaced with underscores.)
|
|
Migrate some of `rustc_parse` to derive diagnostics
`@rustbot` label +A-translation
r? rust-lang/diagnostics
cc #100717
|
|
Also, remove needless else
|
|
legacy rustfmt path
|
|
Add missing normalization for union fields types
Overshadows https://github.com/rust-lang/rust/pull/106808.
From the experiment https://github.com/rust-lang/rust/pull/103985.
In short, it allows to use projections as a type for union's fields.
cc `@compiler-errors`
r? `@oli-obk`
|
|
There is a type `QueryCtxt`, which impls the trait `QueryContext`.
Confusingly, there is another type `QueryContext`. The latter is (like
`TyCtxt`) just a pointer to a `GlobalContext`. It's not used much, e.g.
its `impl` block has a single method.
This commit removes `QueryContext`, replacing its use with direct
`GlobalCtxt` use.
|
|
These are in places where a `tcx` is easily obtained.
|
|
|
|
|