about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2023-03-16TB: document TB changes in READMENeven Villani-118/+218
2023-03-16TB: integrationNeven Villani-16/+54
2023-03-16TB: Reborrow policy and connection to the main machineNeven Villani-1/+608
2023-03-16TB: error and tree formattingNeven Villani-0/+592
2023-03-16TB: tree traversalNeven Villani-0/+339
2023-03-16TB: public interface to permissionsNeven Villani-0/+93
2023-03-16TB: Tree structureNeven Villani-0/+215
2023-03-16TB: Util: an efficient mapping for permissionsNeven Villani-0/+304
2023-03-16TB: encoding of the underlying state machineNeven Villani-0/+214
+ properties about the transitions
2023-03-15Auto merge of #2806 - saethlin:better-install, r=RalfJungbors-17/+15
Install binaries to the miri toolchain's sysroot The default install produces this behavior: ``` $ cargo +miri miri --version miri 0.1.0 (0ba1f4a0 2023-03-05) $ cargo +nightly miri --version miri 0.1.0 (0ba1f4a0 2023-03-05) ``` Which is not good. We've effectively erased the toolchain selection, and users may reasonably conclude that their rustup install is broken. After this change, we now get this: ``` $ cargo +miri miri --version miri 0.1.0 (0ba1f4a0 2023-03-05) $ cargo +nightly miri --version miri 0.1.0 (f63ccaf 2023-03-06) ``` Thanks `@jyn514` who all but wrote this for me.
2023-03-15use date-based cache keyRalf Jung-4/+4
2023-03-15Auto merge of #2815 - saethlin:rustup, r=oli-obkbors-9622/+23126
rustup
2023-03-14Merge from rustcBen Kimock-9621/+23125
2023-03-15Account for debuginfo on _0 without naming it.Camille GILLOT-6/+2
2023-03-14Preparing for merge from rustcBen Kimock-1/+1
2023-03-14Don't use CI caches from before this branchBen Kimock-4/+4
2023-03-14Update docs to matchBen Kimock-10/+7
Co-authored-by: Ralf Jung <post@ralfj.de>
2023-03-14Bless incremental test.Camille GILLOT-2/+2
2023-03-14ICE when checking LocalInfo on runtime MIR.Camille GILLOT-27/+27
2023-03-14Remove LocalKind::Var.Camille GILLOT-18/+17
2023-03-14Make is_block_tail a variant of LocalInfo.Camille GILLOT-39/+26
2023-03-14Wrap the whole LocalInfo in ClearCrossCrate.Camille GILLOT-142/+134
2023-03-14Auto merge of #106505 - Nilstrieb:format-args-string-literal-episode-2, ↵bors-63/+233
r=petrochenkov Properly allow macro expanded `format_args` invocations to uses captures Originally, this was kinda half-allowed. There were some primitive checks in place that looked at the span to see whether the input was likely a literal. These "source literal" checks are needed because the spans created during `format_args` parsing only make sense when it is indeed a literal that was written in the source code directly. This is orthogonal to the restriction that the first argument must be a "direct literal", not being exanpanded from macros. This restriction was imposed by [RFC 2795] on the basis of being too confusing. But this was only concerned with the argument of the invocation being a literal, not whether it was a source literal (maybe in spirit it meant it being a source literal, this is not clear to me). Since the original check only really cared about source literals (which is good enough to deny the `format_args!(concat!())` example), macros expanding to `format_args` invocations were able to use implicit captures if they spanned the string in a way that lead back to a source string. The "source literal" checks were not strict enough and caused ICEs in certain cases (see #106191). So I tightened it up in #106195 to really only work if it's a direct source literal. This caused the `indoc` crate to break. `indoc` transformed the source literal by removing whitespace, which made it not a "source literal" anymore (which is required to fix the ICE). But since `indoc` spanned the literal in ways that made the old check think that it's a literal, it was able to use implicit captures (which is useful and nice for the users of `indoc`). This commit properly seperates the previously introduced concepts of "source literal" and "direct literal" and therefore allows `indoc` invocations, which don't create "source literals" to use implicit captures again. Fixes #106191 [RFC 2795]: https://rust-lang.github.io/rfcs/2795-format-args-implicit-identifiers.html#macro-hygiene
2023-03-14Improve heuristics for format_args literal being suggestableNilstrieb-1/+35
Sometimes, we want to create subspans and point at code in the literal if possible. But this doesn't always make sense, sometimes the literal may come from macro expanded code and isn't actually there in the source. Then, we can't really make these suggestions. This now makes sure that the literal is actually there as we see it so that we will not run into ICEs on weird literal transformations.
2023-03-14Properly allow macro expanded `format_args` invocations to uses capturesNilstrieb-62/+198
Originally, this was kinda half-allowed. There were some primitive checks in place that looked at the span to see whether the input was likely a literal. These "source literal" checks are needed because the spans created during `format_args` parsing only make sense when it is indeed a literal that was written in the source code directly. This is orthogonal to the restriction that the first argument must be a "direct literal", not being exanpanded from macros. This restriction was imposed by [RFC 2795] on the basis of being too confusing. But this was only concerned with the argument of the invocation being a literal, not whether it was a source literal (maybe in spirit it meant it being a source literal, this is not clear to me). Since the original check only really cared about source literals (which is good enough to deny the `format_args!(concat!())` example), macros expanding to `format_args` invocations were able to use implicit captures if they spanned the string in a way that lead back to a source string. The "source literal" checks were not strict enough and caused ICEs in certain cases (see # 106191 (the space is intended to avoid spammy backreferences)). So I tightened it up in # 106195 to really only work if it's a direct source literal. This caused the `indoc` crate to break. `indoc` transformed the source literal by removing whitespace, which made it not a "source literal" anymore (which is required to fix the ICE). But since `indoc` spanned the literal in ways that made the old check think that it's a literal, it was able to use implicit captures (which is useful and nice for the users of `indoc`). This commit properly seperates the previously introduced concepts of "source literal" and "direct literal" and therefore allows `indoc` invocations, which don't create "source literals" to use implicit captures again. [RFC 2795]: https://rust-lang.github.io/rfcs/2795-format-args-implicit-identifiers.html#macro-hygiene
2023-03-14Auto merge of #104833 - Swatinem:async-identity-future, r=compiler-errorsbors-357/+145
Remove `identity_future` indirection This was previously needed because the indirection used to hide some unexplained lifetime errors, which it turned out were related to the `min_choice` algorithm. Removing the indirection also solves a couple of cycle errors, large moves and makes async blocks support the `#[track_caller]`annotation. Fixes https://github.com/rust-lang/rust/issues/104826.
2023-03-14Auto merge of #109057 - compiler-errors:rpitit-info-again, r=spastorinobors-23/+31
Don't `opt_rpitit_info` as a separate query ... another attempt to undo regressions r? `@ghost`
2023-03-14Auto merge of #108992 - petrochenkov:qcstore2, r=cjgillotbors-250/+169
resolve: Querify most cstore access methods (subset) A subset of https://github.com/rust-lang/rust/pull/108346 that is not on a hot path in any way.
2023-03-14Auto merge of #109097 - matthiaskrgr:rollup-6ydc4ri, r=matthiaskrgrbors-141/+451
Rollup of 9 pull requests Successful merges: - #108419 (Stabilize `atomic_as_ptr`) - #108507 (use `as_ptr` to determine the address of atomics) - #108607 (Don't use fd-lock on Solaris in bootstrap) - #108830 (Treat projections with infer as placeholder during fast reject in new solver) - #109055 (create `config::tests::detect_src_and_out` test for bootstrap) - #109058 (Document BinOp::is_checkable) - #109081 (simd-wide-sum test: adapt for LLVM 17 codegen change) - #109083 (Update books) - #109088 (Gracefully handle `#[target_feature]` on statics) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-03-13Rollup merge of #109088 - Nilstrieb:target-feature-on-statics-when, ↵Matthias Krüger-36/+139
r=compiler-errors Gracefully handle `#[target_feature]` on statics The was careful around not calling `fn_sig` on not-functions but well, it wasn't careful enough. This commit makes it a little more careful and also adds tests for a bunch more item kinds. I was sadly not able to fully bless the test locally because I'm on an aarch64 machine but I hope some manual editing made it work 😅 Fix #109079
2023-03-13Rollup merge of #109083 - rustbot:docs-update, r=ehussMatthias Krüger-0/+0
Update books ## rust-lang/nomicon 1 commits in 79b53665a7c61d171fb8c5ad0b73b371f9ee6ba7..1f3e4cd4fd88b5b5d45feb86a11b6d2f93e5a974 2023-03-12 21:51:29 UTC to 2023-03-12 21:51:29 UTC - Change incorrect reference to "above" in ffi.md (rust-lang/nomicon#404) ## rust-lang/reference 4 commits in a9afb04b47a84a6753e4dc657348c324c876102c..24c87f6663aed55b05d2cc286878f28f21918825 2023-03-11 13:53:24 UTC to 2023-02-28 16:07:20 UTC - Document movbe target feature (rust-lang/reference#1336) - fix typo (rust-lang/reference#1339) - fix: Typo/reference (rust-lang/reference#1338) - Document `cmpxchg16b` target feature (rust-lang/reference#1331) ## rust-lang/rustc-dev-guide 13 commits in b06dab84083390e0ee1e998f466545a8a1a76a9f..b1b6d693cd1461e53de4132c1b183ace31cd36e5 2023-03-13 02:42:00 UTC to 2023-03-03 11:12:51 UTC - Rename `config.toml.example` to `config.example.toml` (rust-lang/rustc-dev-guide#1641) - fix typo `SubstRef` to `SubstsRef` (rust-lang/rustc-dev-guide#1642) - tracing log along diff crates (rust-lang/rustc-dev-guide#1640) - Fix Rust Analyzer settings location (rust-lang/rustc-dev-guide#1637) - Reflect the changes in rust-lang/rust#67000 (rust-lang/rustc-dev-guide#1632) - improve capacity note (rust-lang/rustc-dev-guide#1634) - Remove mention to lexer/parser refactoring (rust-lang/rustc-dev-guide#1629) - Update date reference about infer context variables (rust-lang/rustc-dev-guide#1630) - Update explnation about `Body.basic_blocks` (rust-lang/rustc-dev-guide#1631) - Add detail to contributing guide (rust-lang/rustc-dev-guide#1628) - Making the sentence more clear (rust-lang/rustc-dev-guide#1624) - Fixed typing error (rust-lang/rustc-dev-guide#1623) - update error code docs to reflect recent changes (rust-lang/rustc-dev-guide#1625)
2023-03-13Rollup merge of #109081 - krasimirgg:llvm-17-simd-wide-sum, r=nikicMatthias Krüger-1/+1
simd-wide-sum test: adapt for LLVM 17 codegen change After https://github.com/llvm/llvm-project/commit/0d4a709bb876824a0afa5f86e138e8ffdcaf7661 LLVM becomes more clever and turns ```@wider_reduce_loop``` into an alias: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/17806#0186da6b-582c-46bf-a227-1565fa0859ac/743-766 This adapts the test to prevent this.
2023-03-13Rollup merge of #109058 - tmiasko:is-checkable, r=jackh726Matthias Krüger-0/+3
Document BinOp::is_checkable
2023-03-13Rollup merge of #109055 - ozkanonur:detect_src_and_out, r=albertlarsan68Matthias Krüger-2/+33
create `config::tests::detect_src_and_out` test for bootstrap Resolves one of the `FIXME` in bootstrap
2023-03-13Rollup merge of #108830 - compiler-errors:new-solver-fast-reject-faster, r=lcnrMatthias Krüger-83/+250
Treat projections with infer as placeholder during fast reject in new solver r? ``@lcnr`` Kind of a shame that we need to change all of the call sites for `for_each_relevant_impl`, etc. to pass an extra parameter. I guess I could have the "default" fn which calls a configurable fn?
2023-03-13Rollup merge of #108607 - psumbera:solaris-no-flock-bootstrap, r=albertlarsan68Matthias Krüger-8/+15
Don't use fd-lock on Solaris in bootstrap ...as Solaris is missing flock() fixes #103630
2023-03-13Rollup merge of #108507 - hermitcore:new, r=m-ou-seMatthias Krüger-4/+3
use `as_ptr` to determine the address of atomics The PR #107736 renamed atomic `as_mut_ptr` to `as_ptr`. Consequently, the futex implementation of the tier-3 platform `RutyHermit` has to use this new interface. In addition, this PR removes also an unused import.
2023-03-13Rollup merge of #108419 - tgross35:atomic-as-ptr, r=m-ou-seMatthias Krüger-7/+7
Stabilize `atomic_as_ptr` Fixes #66893 This stabilizes the `as_ptr` methods for atomics. The stabilization feature gate used here is `atomic_as_ptr` which supersedes `atomic_mut_ptr` to match the change in https://github.com/rust-lang/rust/pull/107736. This needs FCP. New stable API: ```rust impl AtomicBool { pub const fn as_ptr(&self) -> *mut bool; } impl AtomicI32 { pub const fn as_ptr(&self) -> *mut i32; } // Includes all other atomic types impl<T> AtomicPtr<T> { pub const fn as_ptr(&self) -> *mut *mut T; } ``` r? libs-api ``@rustbot`` label +needs-fcp
2023-03-13Auto merge of #109094 - Nilstrieb:no-thin-lto-on-windows, r=jyn514bors-2/+1
Revert "enable ThinLTO for rustc on x86_64-pc-windows-msvc dist builds" This lead to a miscompilation in at least `char::is_whitespace` and probably in more unknown places..... See #109067 This reverts commit 684663ed380d0e6a6e135aed9c6055ab4ba94ac8, PR #103591.
2023-03-13Revert "enable ThinLTO for rustc on x86_64-pc-windows-msvc dist builds"Nilstrieb-2/+1
This lead to a miscompilation in at least `char::is_whitespace` and probably in more unknown places..... This reverts commit 684663ed380d0e6a6e135aed9c6055ab4ba94ac8.
2023-03-13Gracefully handle `#[target_feature]` on staticsNilstrieb-36/+139
The was careful around not calling `fn_sig` on not-functions but well, it wasn't careful enough. This commit makes it a little more careful and also adds tests for a bunch more item kinds.
2023-03-13Don't opt_rpitit_info as a separate queryMichael Goulet-23/+31
2023-03-13Update booksrustbot-0/+0
2023-03-13Auto merge of #109069 - lnicola:rust-analyzer-2023-03-13, r=lnicolabors-3055/+12635
:arrow_up: `rust-analyzer` r? `@ghost`
2023-03-13Don't use fd-lock on Solaris in bootstrapPetr Sumbera-8/+15
...as Solaris is missing flock() fixes #103630
2023-03-13Better names?Michael Goulet-49/+55
2023-03-13Add a test that used to take forever to compileMichael Goulet-0/+43
2023-03-13Treat projections with infer as placeholder during fast reject in new solverMichael Goulet-68/+186
2023-03-13simd-wide-sum test: adapt for LLVM 17 codegen changeKrasimir Georgiev-1/+1
After https://github.com/llvm/llvm-project/commit/0d4a709bb876824a0afa5f86e138e8ffdcaf7661 LLVM becomes more clever and turns `@wider_reduce_loop` into an alias: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/17806#0186da6b-582c-46bf-a227-1565fa0859ac/743-766 This adapts the test to prevent this.
2023-03-13Auto merge of #108623 - scottmcm:try-different-as-slice-impl, r=the8472bors-42/+96
Move `Option::as_slice` to an always-sound implementation This approach depends on CSE to not have any branches or selects when the guessed offset is correct -- which it always will be right now -- but to also be *sound* (just less efficient) if the layout algorithms change such that the guess is incorrect. The codegen test confirms that CSE handles this as expected, leaving the optimal codegen. cc JakobDegen #108545