| Age | Commit message (Collapse) | Author | Lines |
|
[stable] 1.44 release
This includes a release notes update as usual and a backport of #72767.
r? @ghost
|
|
|
|
encoded build artifacts.
Fix #70924.
|
|
Such splits arise from metadata refs into libstd.
This way, we can (in a follow on commit) continue to emit the virtual name into
things like the like the StableSourceFileId that ends up in incremetnal build
artifacts, while still using the devirtualized file path when we want to access
the file.
Note that this commit is intended to be a refactoring; the actual fix to the bug
in question is in a follow-on commit.
|
|
(and I want to discourage further use of it if possible.)
|
|
|
|
[beta] Rollup backports
This includes:
* Fail if I/O error occurs during testing #72089
* Fix hang in lexical_region_resolve #72087
* Fix E0284 to not use incorrect wording #71960
* Bump pulldown-cmark #71682
|
|
(cherry picked from commit a5ba75283e279205dd96d402dfde42041ac53fb4)
|
|
(cherry picked from commit e7b02046a0b34ec6d114a7ba5549db8457684ec4)
|
|
Fix #71584, fix #69683.
(cherry picked from commit a7b03ad4eddb65abede497dbc408244f23c36256)
|
|
(cherry picked from commit 1776de948cc26652b8e4fd383bb8fbf05d0ab727)
|
|
[beta] backports
This backport rollup includes the following:
* [beta] Update cargo #71967
* Backport 1.43.1 release notes to master #71914
* Update the `cc` crate #71882
* resolve: Relax fresh binding disambiguation slightly to fix regression #71846
* Do not try to find binop method on RHS `TyErr` #71810
* Quick and dirty fix of the unused_braces lint #71517
* Update stdarch submodule #71495
* normalize field projection ty to fix broken MIR issue #71488
* Update openssl-src to 1.1.1g #71430
* fix error code in E0751.md #71426
* Don't fuse Chain in its second iterator #71404
* Remove some `Vec` allocations to improve performance #71268
* [CI] Use the latest Python available on Windows #71995
It also switches the bootstrap compiler to 1.43.1.
|
|
|
|
This commit changes our Windows CI to always use the latest Python
interpreter available in the GHA tool cache instead of hardcoding Python
3.7.6. This is needed because occasionally GitHub bumps the installed
version, deleting the previous one.
|
|
|
|
|
|
|
|
|
|
Only the "first" iterator is actually set `None` when exhausted,
depending on whether you iterate forward or backward. This restores
behavior similar to the former `ChainState`, where it would transition
from `Both` to `Front`/`Back` and only continue from that side.
However, if you mix directions, then this may still set both sides to
`None`, totally fusing the iterator.
|
|
|
|
Fixes CVE-2020-1967.
|
|
|
|
|
|
|
|
Adresses #70814
|
|
Fix #71798.
|
|
|
|
Pulls in updated MSVC detection logic landed in alexcrichton/cc-rs#488
|
|
|
|
|
|
|
|
[beta] fix failing const validation
This is the **beta branch fix** for https://github.com/rust-lang/rust/issues/71353, by reverting https://github.com/rust-lang/rust/pull/70566.
r? @oli-obk
Not sure if there is any extra process for the beta part. This is not a backport; we intend to "properly" fix this on master but for beta a revert is faster and less risky.
|
|
|
|
This reverts commit 99492e41b60f21f2f461e8131605e054020d328e.
|
|
[beta] Switch to dev-static bootstrap
Finishes master to beta promotion.
|
|
|
|
This presumably "accidentally" never actually got triggered in the past, but
since we don't actually require shipping miri on beta or stable, this should be
fine.
|
|
|
|
Make Box<dyn FnOnce> respect self alignment
Closes #68304
r? @eddyb @nikomatsakis
|
|
r=nagisa
attempt to recover perf by removing `exports_all_green`
attempt to recover perf by removing `exports_all_green` flag.
cc #71248
(My hypothesis is that my use of this flag was an overly conservative generalization of PR #67020.)
|
|
Rollup of 4 pull requests
Successful merges:
- #69362 (Stabilize most common subset of alloc_layout_extras)
- #71174 (Check that main/start is not async)
- #71285 (MIR: use HirId instead of NodeId to avoid cycles while inlining)
- #71346 (Do not build tools if user do not want them)
Failed merges:
r? @ghost
|
|
Do not build tools if user do not want them
Fixes https://github.com/rust-lang/rust/issues/71307
|
|
r=ecstatic-morse
MIR: use HirId instead of NodeId to avoid cycles while inlining
I wanted to see if I could limit the number of uses of `NodeId` when `HirId` is available and I saw that some of the MIR `Inliner` code could use `Span` instead of `NodeId`, not unlike in https://github.com/rust-lang/rust/pull/71197.
~If I'm understanding the reason for not calling `optimized_mir` in incremental builds here correctly, this change could also allow us to do so.~
This change could affect performance, so if this approach makes sense, a perf run is probably a good idea.
|
|
Check that main/start is not async
* Add new error code E0752
* Add span to hir::IsAsync::Yes
* Emit an error if main or the start function is marked as async
* Add two regression tests
This PR fixes #68523.
|
|
Stabilize most common subset of alloc_layout_extras
Tracking issue: https://github.com/rust-lang/rust/issues/55724
Specifically, this stabilizes:
```rust
pub fn Layout::align_to(&self, align: usize) -> Result<Layout, LayoutErr>;
pub fn Layout::pad_to_align(&self) -> Layout;
pub fn Layout::extend(&self, next: Layout) -> Result<(Layout, usize), LayoutErr>;
pub fn Layout::array<T>(n: usize) -> Result<Layout, LayoutErr>;
```
Methods that are tracked by #55724 but are not stabilized here:
```rust
pub fn Layout::padding_needed_for(&self, align: usize) -> usize;
pub fn Layout::repeat(&self, n: usize) -> Result<(Layout, usize), LayoutErr>;
pub fn Layout::repeat_packed(&self, n: usize) -> Result<Layout, LayoutErr>;
pub fn Layout::extend_packed(&self, next: Layout) -> Result<Layout, LayoutErr>;
```
Combined, these stabilized functions allow code to construct and manipulate `repr(C)` layouts while letting the standard library handle correctness in the face of edge cases. For example use cases, consider the usage in [hashbrown](https://github.com/Amanieu/hashbrown/blob/2f2af1d/src/raw/mod.rs#L143), [crossbeam-skiplist](https://github.com/crossbeam-rs/crossbeam-skiplist/blob/master/src/base.rs#L99), [pointer-utils/slice-dst](https://github.com/CAD97/pointer-utils/blob/92aeefeed9399f28d1b1654b63f8dcbe1242d8d4/crates/slice-dst/src/layout_polyfill.rs), and of course the standard library itself.
Providing a higher-level API such as `Layout::repr_c<const N: usize>(fields: [Layout; N]) -> Result<(Layout, [usize; N]), LayoutErr>` is blocked on const generics, which are a ways off. Providing an API that doesn't provide offsets would be quite suboptimal, as the reason for calculating the layout like this rather than `Layout::new` is to get the field offsets.
The primary issue with the current API is having to call `.pad_to_align()` to match the layout of a `repr(C)` struct. However, I think this is not just a (failing? limitation?) of the API, but rather intrinsic complexity. While all Rust-defined types have size==stride, and probably will for the foreseeable future, there is no inherent reason why this is a limitation of all allocations. As such, the `Layout` manipulation APIs shouldn't impose this limitation, and instead the higher level api of `repr_c` (or just plain old using `Layout::new`) can make keeping it simple.
cc @matklad r? @rust-lang/libs
|
|
Rollup of 5 pull requests
Successful merges:
- #71250 (Replace big JS dict with JSON parsing)
- #71270 (Fix `has_no_input_arg` check and rename it to `has_only_self_parameter`)
- #71284 (fix -Zast-json to output correct JSON form)
- #71328 (Stabilize PathBuf capacity methods)
- #71334 (Update pattern docs.)
Failed merges:
r? @ghost
|
|
|
|
|
|
Co-Authored-By: Amanieu d'Antras <amanieu@gmail.com>
|
|
Update pattern docs.
A few changes to help clarify string pattern usage:
* Add some examples and stability information in the `pattern` module.
* Fixes the links at https://doc.rust-lang.org/std/str/pattern/ because intra-doc-links don't work with re-exported modules (#65983 I think?).
* Consistently use the same phrasing for `str` methods taking a pattern.
* Also mention that array of `char` is also accepted.
When `Pattern` is stabilized, the phrasing in the `str` methods can be updated to be more general to reflect the exact behavior. I'm reluctant to do this now because the stability story for `Pattern` is uncertain. It may perhaps look something like:
> The pattern can be any type that implements the [`Pattern`] trait. Notable examples are `&str`, [`char`], arrays of [`char`], or functions or closures that determines if a character matches. Additional libraries might provide more complex patterns like regular expressions.
This is complicated because methods like `trim_matches` have bounds, which for example don't support `str`, so those methods may need more elaboration.
|