| Age | Commit message (Collapse) | Author | Lines |
|
[stable] 1.52.1 release
Note that this may not be the version we end up going with. However, in the interests of having the artifacts available should we choose to use them, this PR will prepare a set of artifacts which:
* Disables incremental compilation unless the user has explicitly opted in (via an environment variable, for ease of setting it globally)
* Adds the improved error message which tells the user how to workaround the breakage, intended for users who do explicitly re-enable incremental
Note that the release notes mark Monday as the release date; I think it is likely that if we choose to go down this path we should indeed release on Monday, and potentially follow up in a week or two (e.g., May 20th) with a 1.52.2 if we have confidence in some collection of fixes. I think this will be unlikely, though.
Please also note that this PR breaks normal policy by landing commits/work **only** on the stable branch. It is my intent to follow up with PRs toward beta and master, as well, but in the interests of making sure we have artifacts as early as possible I am posting this first. It will also let us provide an ask for testing, via the dev-static bucket, sooner rather than later.
|
|
|
|
|
|
This bumps the stable version number and adds corresponding release notes.
|
|
This disables incremental (i.e., -Cincremental) taking effect unless an
environment variable, RUSTC_FORCE_INCREMENTAL, is set to 1 in the environment of
the running rustc. Currently incremental causes errors for many users, and we do
not have an expectation of being able to quickly fix these errors in a
backportable way - so, for now, disable incremental entirely. The user can still
opt-in, but this way the majority of users merely get slower builds, not broken
builds.
|
|
[stable] 1.52.0 release
This includes the release notes (#84183) as well as cherry-picked commits from:
* [beta] revert PR #77885 #84710
* [beta] remove assert_matches #84759
* Revert PR 81473 to resolve (on beta) issues 81626 and 81658. #83171
* [beta] rustdoc revert deref recur #84868
* Fix ICE of for-loop mut borrowck where no suggestions are available #83401
Additionally in "fresh work" we're also:
* reverting: directly expose copy and copy_nonoverlapping intrinsics #81238 to avoid https://github.com/rust-lang/rust/issues/84297 on 1.52
|
|
|
|
|
|
|
|
|
|
This reverts commit 1a806352e41fcba5eac91784476fc6dfa6ee05b7.
|
|
This reverts commit 18d12ad171384a82736a88b879540bf464161063.
|
|
|
|
|
|
adapted from 513756bb55a0dbc6e74d0043afd1727bd3c73aae
|
|
Revert "Add missing brace"
This reverts commit 85ad773049536d7fed9a94ae0ac74f97135c8655.
Revert "Simplify base_expr"
This reverts commit 899aae465eb4ef295dc1eeb2603f744568e0768c.
Revert "Warn write-only fields"
This reverts commit d3c69a4c0dd98af2611b7553d1a65afef6a6ccb0.
|
|
|
|
|
|
This reverts commit 0a8e401188062f0c60c989978352663b1e25e70e.
|
|
This reverts commit eb18746bc6c6c5c710ad674873438cbad5894f06.
|
|
|
|
(I recreated it by hand because the result of the cherry-pick wasn't worth
trying to salvage.)
|
|
|
|
|
|
r=Mark-Simulacrum
backport: move new c abi abort behavior behind feature gate
This is a backport of PR #84158 to the beta branch.
The original T-compiler plan was to revert PR #76570 in its entirety, as was attempted in PR #84672. But the revert did not go smoothly (details below).
Therefore, we are backporting PR #84158 instead, which was our established backup plan if a revert did not go smoothly.
I have manually confirmed that this backport fixes the luajit issue described on issue #83541
<details>
<summary>Click for details as to why revert of PR #76570 did not go smoothly.</summary>
It turns out that Miri had been subsequently updated to reflect changes to `rustc_target` that landed in PR #76570. This meant that the attempt to land PR #84672 broke Miri builds.
Normally we allow tools to break when landing PR's (and just expect follow-up PR's to fix the tools), but we don't allow it for tools in the run-up to a release.
(We shouldn't be using that uniform policy for all tools. Miri should be allow to break during the week before a release; but currently we cannot express that, due to issue #74709.)
Therefore, its a lot of pain to try to revert PR #76570. And we're going with the backup plan.
</details>
Original commit message follows:
----
*Background*
In #76570, new ABI strings including `C-unwind` were introduced. Their behavior is specified in RFC 2945 <sup>[1]</sup>.
However, it was reported in the #ffi-unwind stream of the Rust community Zulip that this had altered the way that `extern "C"` functions behaved even when the `c_unwind` feature gate was not active. <sup>[2]</sup>
*Overview*
This makes a small patch to `rustc_mir_build::build::should_abort_on_panic`, so that the same behavior from before is in place when the `c_unwind` gate is not active.
`rustc_middle::ty::layout::fn_can_unwind` is not touched, as the visible behavior should not differ before/after #76570. <sup>[3]</sup>
### Footnotes
1.: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
2.: https://rust-lang.zulipchat.com/#narrow/stream/210922-project-ffi-unwind/topic/Is.20unwinding.20through.20extern.20C.20UB.3F/near/230112325
3.: https://github.com/rust-lang/rust/pull/76570/files#diff-b0320c2b8868f325d83c027fc5d71732636e9763551e35895488f30fe057c6e9L2599-R2617
[1]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
[2]: https://rust-lang.zulipchat.com/#narrow/stream/210922-project-ffi-unwind/topic/Is.20unwinding.20through.20extern.20C.20UB.3F/near/230112325
[3]: https://github.com/rust-lang/rust/pull/76570/files#diff-b0320c2b8868f325d83c027fc5d71732636e9763551e35895488f30fe057c6e9L2599-R2617
|
|
### Background
In #76570, new ABI strings including `C-unwind` were introduced.
Their behavior is specified in RFC 2945 [1].
However, it was reported in the #ffi-unwind stream of the Rust
community Zulip that this had altered the way that `extern "C"`
functions behaved even when the `c_unwind` feature gate was not
active. [2]
### Overview
This makes a small patch to
`rustc_mir_build::build::should_abort_on_panic`, so that the same
behavior from before is in place when the `c_unwind` gate is not
active.
`rustc_middle::ty::layout::fn_can_unwind` is not touched, as the
visible behavior should not differ before/after #76570. [3]
### Footnotes
[1]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
[2]: https://rust-lang.zulipchat.com/#narrow/stream/210922-project-ffi-unwind/topic/Is.20unwinding.20through.20extern.20C.20UB.3F/near/230112325
[3]: https://github.com/rust-lang/rust/pull/76570/files#diff-b0320c2b8868f325d83c027fc5d71732636e9763551e35895488f30fe057c6e9L2599-R2617
|
|
[beta] backports
This backports two beta-accepted PRs, fixing CVE-2020-36323 and CVE-2021-31162.
- Fixes API soundness issue in `join()` #81728
- Fix double-drop in `Vec::from_iter(vec.into_iter())` specialization when items drop during panic #83629
|
|
(cherry picked from commit 421f5d282a51e130d3ca7c4524d8ad6753437da9)
|
|
(cherry picked from commit fa89c0fbcfa8f4d44f153b1195ec5a305540ffc4)
|
|
(cherry picked from commit 26a62701e42d10c03ce5f2f911e7d5edeefa2f0f)
|
|
(cherry picked from commit 6d43225bfb08ec91f7476b76c7fec632c4a096ef)
|
|
[beta] Bump LLVM to a upstream 12.0 release
Currently the `beta` branch utilizes a release candidate of LLVM 12.0. Since then a large number of issues have been fixed upstream, including those that are known to affect Rust code.
It would be unfortunate if we released a stable Rust with all of those issues when we have the fixes in the actual LLVM release and/or our backports of commits that didn't make the release cut on top of it.
cc `@cuviper` / `@nikic`
|
|
[beta] Beta rollups
- Upgrade expat dependency in riscv64 to newer version. #84394
- Fix Self keyword doc URL conflict on case insensitive file systems (until definitely fixed on rustdoc) #83678
- Cargo:
- Backport "Don't give a hard error when the end-user specifies RUSTC_BOOTSTRAP=crate_name" (rust-lang/cargo#9385)
- [beta] Revert rust-lang/cargo#9133, moving to git HEAD dependencies by default (rust-lang/cargo#9383)
|
|
Fix Self keyword doc URL conflict on case insensitive file systems (until definitely fixed on rustdoc)
This is just a hack to allow rustup to work on macOS and windows again to distribute std documentation (hopefully once https://github.com/rust-lang/rfcs/pull/3097 or an equivalent is merged).
Fixes https://github.com/rust-lang/rust/issues/80504. Prevents https://github.com/rust-lang/rust/issues/83154 and https://github.com/rust-lang/rustup/issues/2694 in future releases.
cc ``@kinnison``
r? ``@jyn514``
|
|
Upgrade `expat` dependency in riscv64 to newer version.
The old version was renamed to `expat-2.2.6-RENAMED-VULNERABLE-PLEASE-USE-2.3.0-INSTEAD`. :)
r? `@Mark-Simulacrum`
|
|
|
|
|
|
[beta] Update cargo
2 commits in 90691f2bfe9a50291a98983b1ed2feab51d5ca55..d70308ef052397c7d16f881c2d973a8c5b4c23d9
2021-03-16 21:36:55 +0000 to 2021-04-06 17:32:27 +0000
- beta: revert rust-lang/cargo#8640 - rustdoc versioning checks (rust-lang/cargo#9332)
- [beta] Fix publication of packages with metadata and resolver (rust-lang/cargo#9304)
|
|
|
|
[beta] backports
Initial round of beta backports, with 1 PR:
* SplitInclusive is public API #83372
This also includes a bump to the released stable compiler.
r? `@Mark-Simulacrum`
|
|
|
|
|
|
[beta] 1.52.0 branch off
r? `@Mark-Simulacrum`
|
|
|
|
|
|
|
|
|
|
Debug-print result when an unstable fingerprint is detected
Helps with issues like #83311
I had previously tried to do this in https://github.com/rust-lang/rust/pull/80692, but it had a significant performance impact (even though the code was never actually run). Hopefully, this will be better now that https://github.com/rust-lang/rust/pull/79100 has been merged.
|
|
Add simd_neg platform intrinsic
Stdarch needs to add simd_neg to support the implementation of vneg neon instructions. Look [here](https://github.com/rust-lang/stdarch/pull/1087)
|
|
Stabilize `assoc_char_funcs` and `assoc_char_consts`
Stabilizes the following associated items on `char`:
* [`char::MAX`](https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.MAX)
* [`char::REPLACEMENT_CHARACTER`](https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.REPLACEMENT_CHARACTER)
* [`char::UNICODE_VERSION`](https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.UNICODE_VERSION)
* [`char::decode_utf16`](https://doc.rust-lang.org/std/primitive.char.html#method.decode_utf16)
* [`char::from_u32`](https://doc.rust-lang.org/std/primitive.char.html#method.from_u32)
* [`char::from_u32_unchecked`](https://doc.rust-lang.org/std/primitive.char.html#method.from_u32_unchecked)
* [`char::from_digit`](https://doc.rust-lang.org/std/primitive.char.html#method.from_digit)
Closes #71763.
|