Commit graph

158544 commits

Author SHA1 Message Date
bors
02072b482a Auto merge of #92723 - pietroalbini:1.58.0, r=pietroalbini
[stable] Prepare Rust 1.58.0 release

Backported the release notes currently on master plus:

* https://github.com/rust-lang/rust/pull/92693
* https://github.com/rust-lang/rust/pull/92703

r? `@ghost`
cc `@rust-lang/release`
2022-01-11 11:18:00 +00:00
Pietro Albini
63608d0fa0
bump to stable channel 2022-01-10 13:47:43 +01:00
Pietro Albini
3a5c3a518d
backport release notes 2022-01-10 13:47:19 +01:00
bors
4aa9d237c7 Auto merge of #92592 - Mark-Simulacrum:beta-next, r=Mark-Simulacrum
[beta] backports

Backports these PRs:

* Fix HashStable implementation on InferTy #91892
* Revert setting a default for the MACOSX_DEPLOYMENT_TARGET env var for linking #91870
* Make rustdoc headings black, and markdown blue #91534
* Disable LLVM newPM by default #91190
* Deduplicate projection sub-obligations #90423
*  Sync portable-simd to remove autosplats #91484 by dropping portable_simd entirely (keeping the subtree, just from std/core)
*  Quote bat script command line #92208
* Fix failing tests #92201 (CI fix)

r? `@Mark-Simulacrum`
2022-01-08 01:43:16 +00:00
Chris Denton
e458615a76 Fix tests 2022-01-07 16:25:00 -05:00
Chris Denton
10f9a63f0b Quote bat script command line 2022-01-07 11:43:46 -05:00
Mark Rousskov
439efc1443 Remove portable_simd
Stand-in for a backport of "Sync portable-simd to remove autosplats #91484".
2022-01-05 18:27:54 -05:00
Aaron Hill
e9bb599c66 Combine drain_filter calls 2022-01-05 17:08:34 -05:00
Aaron Hill
478daa70cb Use SsoHashSet 2022-01-05 17:08:34 -05:00
Aaron Hill
2e491ae892 Deduplicate projection sub-obligations 2022-01-05 17:08:34 -05:00
Wesley Wiser
d632ce11b4 Add test with #[rustc_evaluate_where_clauses]
As suggested via reviewer feedback.
2022-01-05 15:22:56 -05:00
Wesley Wiser
fa59cdb291 Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE
Adds the minimial repro test case from #85360. The fix for #85360 was
supposed to be #85868 however the repro was resolved in the 2021-07-05
nightly while #85360 didn't land until 2021-09-03. The reason for that
is d34a3a401b **also** resolves that
issue.

To test if #85868 actually fixes #85360, I reverted
d34a3a401b and found that #85868 does
indeed resolve #85360.

With that question resolved, add a test case to our incremental test
suite for the original Ok(EvaluatedToOkModuloRegions) ICE.

Thanks to @lqd for helping track this down!
2022-01-05 15:22:56 -05:00
Simonas Kazlauskas
ce3d508f50 Disable LLVM newPM by default
cc #91128
2022-01-05 15:21:05 -05:00
Jacob Hoffman-Andrews
fb57c72571 Make rustdoc headings black, and markdown blue 2022-01-05 15:08:12 -05:00
Hans Kratz
12d5eb5d2f Revert "Set MACOSX_DEPLOYMENT_TARGET env var to default for linking if not set."
This reverts commit b376f5621b, which is
the main part of #90499, because it turns out that this causes a good
amount of breakage in crates relying on the old behavior.

Fixes #91372.
2022-01-05 15:07:58 -05:00
Michael Goulet
4068be82c0 Fix HashStable implementation on InferTy 2022-01-05 15:07:25 -05:00
bors
0e07bcb68b Auto merge of #91456 - Mark-Simulacrum:beta-next, r=Mark-Simulacrum
[beta] Bump bootstrap to released stable compiler

Finish release process.

r? `@Mark-Simulacrum`
2021-12-04 21:43:07 +00:00
Mark Rousskov
1b70699e15 Bump bootstrap to released stable compiler 2021-12-02 10:14:43 -05:00
bors
426b94d7df Auto merge of #91362 - Mark-Simulacrum:beta-next, r=Mark-Simulacrum
[beta] branch master to beta

Bumps channel and includes a backport of:

*  Don't treat unnormalized function arguments as well-formed #91243

r? `@Mark-Simulacrum`
2021-11-29 22:16:52 +00:00
jackh726
35c03b2323 Don't treat unnormalized function arguments as well-formed 2021-11-29 14:26:35 -05:00
Mark Rousskov
055e5bbd96 Bump channel to beta 2021-11-29 12:16:49 -05:00
bors
bbad745a68 Auto merge of #91269 - matthiaskrgr:rollup-jh8i8eh, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #90611 (Fix another ICE in rustdoc scrape_examples)
 - #91197 (rustdoc: Rename `Type::ResolvedPath` to `Type::Path` and don't re-export it)
 - #91223 (Fix headings indent)
 - #91240 (Saner formatting for UTF8_CHAR_WIDTH table)
 - #91248 (Bump compiler-builtins to 0.1.53)
 - #91252 (Fix bug where submodules wouldn't be updated when running x.py from a subdirectory)
 - #91259 (Remove `--display-doctest-warnings`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-11-27 00:42:30 +00:00
Matthias Krüger
092477d8c9
Rollup merge of #91259 - jyn514:doctest-warnings, r=GuillaumeGomez
Remove `--display-doctest-warnings`

`--display-doctest-warnings` can be replicated in full with other existing features, there's no
need to have a separate option for it. This removes the option and documents the combination of other features to replicate it.

This also fixes a bug where `--test-args=--show-output` had no effect.

cc `@ollie27,` https://github.com/rust-lang/rust/pull/73314#issuecomment-668317262
Fixes https://github.com/rust-lang/rust/issues/41574

r? `@GuillaumeGomez`
2021-11-26 22:41:44 +01:00
Matthias Krüger
404235e039
Rollup merge of #91252 - jyn514:relative-dir, r=Mark-Simulacrum
Fix bug where submodules wouldn't be updated when running x.py from a subdirectory

Previously, it would concatenate the relative path to the current
subdirectory, which looked at the wrong folder.

I tested this by checking out `1.56.1`, changing the current directory
to `src/`, and running `../x.py build`.

Fixes https://github.com/rust-lang/rust/issues/90481 (cc `@pnkfelix).`

r? `@Mark-Simulacrum`
2021-11-26 22:41:43 +01:00
Matthias Krüger
a92f867bf1
Rollup merge of #91248 - alessandrod:compiler-builtins-bump-bpf, r=Mark-Simulacrum
Bump compiler-builtins to 0.1.53

Fixes a LLVM crash with the bpf targets, see https://github.com/rust-lang/compiler-builtins/pull/440
2021-11-26 22:41:42 +01:00
Matthias Krüger
3bdf5fbbd8
Rollup merge of #91240 - dtolnay:utf8width, r=Mark-Simulacrum
Saner formatting for UTF8_CHAR_WIDTH table

The way these lines were currently wrapped definitely does not look like someone's intentional formatting. It's likely they got disfigured by rustfmt at some point.

This commit rearranges it to a rustfmt-compatible formatting that I find easier to read.
2021-11-26 22:41:41 +01:00
Matthias Krüger
330a558e42
Rollup merge of #91223 - GuillaumeGomez:headings-indent, r=jsha
Fix headings indent

Fixes #91200.

Screenshots with the fix:

![Screenshot from 2021-11-25 15-32-35](https://user-images.githubusercontent.com/3050060/143462481-f7e9ea13-72d5-46fe-90e0-9527e74599e3.png)
![Screenshot from 2021-11-25 15-32-49](https://user-images.githubusercontent.com/3050060/143462485-c010716a-0276-421b-a777-afff19c81c96.png)

If the first element of a top docblock is a heading, we still need to keep the indent, but only on this one (I added a test to check it). We need it because otherwise the anchor will go over the `[-]` toggle.

cc `@camelid`
r? `@jsha`
2021-11-26 22:41:40 +01:00
Matthias Krüger
fcbbdaf209
Rollup merge of #91197 - camelid:rename-resolvedpath, r=GuillaumeGomez,jyn514
rustdoc: Rename `Type::ResolvedPath` to `Type::Path` and don't re-export it

The new name is shorter, simpler, and consistent with `hir::Ty`. It can't be
re-exported since the name would conflict with the `clean::Path` struct. But
usually enum variants are referred to using their qualified names in Rust anyway
(and parts of rustdoc already do that with `clean::Type`), so this is also more
consistent with the language.

r? `@GuillaumeGomez`
cc `@jyn514`
2021-11-26 22:41:39 +01:00
Matthias Krüger
10743f0f68
Rollup merge of #90611 - fee1-dead:rustdoc-ice-fix, r=jyn514,willcrichton
Fix another ICE in rustdoc scrape_examples

This has occurred to me when documenting a crate with the arguments. Not sure what could have caused it.

r? `@willcrichton`
2021-11-26 22:41:39 +01:00
bors
ccce98535b Auto merge of #91246 - nnethercote:faster-layout-array, r=dtolnay
Faster `Layout::array`

`Layout::array` is called (indirectly) by `Vec::push()`, which is typically instantiated many times, and so making it smaller can help with compile times because less LLVM IR is generated.

r? `@ghost`
2021-11-26 21:35:53 +00:00
Joshua Nelson
7e4bf4bfc6 Remove --display-doctest-warnings
This can be replicated in full with other existing features, there's no
need to have a separate option for it.

This also fixes a bug where `--test-args=--show-output` had no effect,
and updates the documentation.
2021-11-26 16:18:16 -05:00
Noah Lev
79c718f1d5 Rename Type::ResolvedPath to Type::Path
At last! The new name is shorter, simpler, and consistent with
`hir::Ty`.
2021-11-26 12:40:27 -08:00
Guillaume Gomez
23427567b2 Update test for anchors and headings position 2021-11-26 21:03:45 +01:00
Guillaume Gomez
20eda22cbf Update the first heading indent rule so it is only applied on the first heading of the top doc block 2021-11-26 21:03:45 +01:00
Deadbeef
9c14d828ba
Reduce the ICE 2021-11-27 01:33:07 +08:00
bors
6d246f0c8d Auto merge of #91253 - matthiaskrgr:rollup-dnlcjmr, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #91169 (Change cg_ssa's get_param to borrow the builder mutably)
 - #91176 (If the thread does not get the lock in the short term, yield the CPU)
 - #91212 (Fix ICE due to out-of-bounds statement index when reporting borrowck error)
 - #91225 (Fix invalid scrollbar display on source code page)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-11-26 16:30:42 +00:00
Deadbeef
85c20698d4
Add ICE test 2021-11-27 00:26:22 +08:00
Deadbeef
c86da9b7b2
Add trace statements 2021-11-27 00:26:21 +08:00
Deadbeef
2d3d6bc5a2
Fix another ICE in rustdoc scrape_examples 2021-11-27 00:26:18 +08:00
Matthias Krüger
a9710deebc
Rollup merge of #91225 - GuillaumeGomez:source-page-scrollbar, r=jsha
Fix invalid scrollbar display on source code page

Fixes bug introduced in #90983:

![Screenshot from 2021-11-25 17-01-08](https://user-images.githubusercontent.com/3050060/143473753-c2e7c43c-ce3f-474d-9d2a-922e63189c51.png)
![Screenshot from 2021-11-25 17-07-08](https://user-images.githubusercontent.com/3050060/143473757-eecaaf2b-f4f0-49e0-a159-ab485e3f7122.png)

To fix it, I simply unset the `overflow-y` on the source code page so it's not displayed anymore.

r? ``@jsha``
2021-11-26 16:02:27 +01:00
Matthias Krüger
13c60669cc
Rollup merge of #91212 - compiler-errors:issue91206, r=oli-obk
Fix ICE due to out-of-bounds statement index when reporting borrowck error

Replace an `[index]` with a `.get` when `statement_index` points to a basic-block terminator (and is therefore out-of-bounds in the statements list).

Fixes #91206
Cc ``@camsteffen``
r? ``@oli-obk``
2021-11-26 16:02:26 +01:00
Matthias Krüger
fdc305d58d
Rollup merge of #91176 - hermitcore:spin, r=kennytm
If the thread does not get the lock in the short term, yield the CPU

Reduces on [RustyHermit](https://github.com/hermitcore/rusty-hermit) the amount of wasted processor cycles
2021-11-26 16:02:24 +01:00
Matthias Krüger
324b4bcb3c
Rollup merge of #91169 - RDambrosio016:master, r=bjorn3
Change cg_ssa's get_param to borrow the builder mutably

This is a small change to make `get_param` more flexible for codegens that may need to modify things when retrieving function parameters.

This will currently only be used by [rustc_codegen_nvvm](https://github.com/Rust-GPU/Rust-CUDA) (my own project), but may be useful to more codegens in the future.

This is needed because cg_nvvm needs to remap certain types to libnvvm-friendly types, such as `i128` -> `<2 x i64>`. Because cg_ssa does not give mutable access to the builder, i resorted to using a mutex:
```rs
    fn get_param(&self, index: usize) -> Self::Value {
        let val = llvm::get_param(self.llfn(), index as c_uint);
        trace!("Get param `{:?}`", val);
        unsafe {
            let llfnty = LLVMRustGetFunctionType(self.llfn());
            let map = self.remapped_integer_args.borrow();
            if let Some((_, key)) = map.get(llfnty) {
                if let Some((_, new_ty)) = key.iter().find(|t| t.0 == index) {
                    trace!("Casting irregular param {:?} to {:?}", val, new_ty);
                    return transmute_llval(
                        *self.llbuilder.lock().unwrap(),
                        &self.cx,
                        val,
                        *new_ty,
                    );
                }
            }
            val
        }
    }
```
However, i predict this is pretty bad for performance, considering how much builders are called during codegen, so i would greatly appreciate having a more flexible API for this.
2021-11-26 16:02:23 +01:00
Joshua Nelson
6e0e220804 Fix bug where submodules wouldn't be updated when running x.py from a subdirectory
Previously, it would concatenate the relative path to the current
subdirectory, which looked at the wrong folder.

I tested this by checking out `1.56.1`, changing the current directory
to `src/`, and running `../x.py build`.
2021-11-26 09:56:01 -05:00
bors
454cc5fb86 Auto merge of #91164 - Badel2:usefulness-stack-overflow, r=davidtwco
Fix stack overflow in `usefulness.rs`

Fix #88747

Applied the suggestion from `@nbdd0121,` not sure if this has any drawbacks. The first call to `ensure_sufficient_stack` is not needed to fix the test case, but I added it to be safe.
2021-11-26 13:42:35 +00:00
Alessandro Decina
1cf37189bc Bump compiler-builtins to 0.1.53
Fixes a LLVM crash with the bpf targets
2021-11-26 10:33:32 +00:00
bors
1e79d79dac Auto merge of #91205 - Aaron1011:visit_param_env, r=lcnr
Visit `param_env` field in Obligation's `TypeFoldable` impl

This oversight appears to have gone unnoticed for a long time
without causing issues, but it should still be fixed.
2021-11-26 09:55:06 +00:00
Nicholas Nethercote
dbfb91385f Add a unit test for zero-sized types in RawVec.
Because there's some subtle behaviour specific to zero-sized types and
it's currently not well tested.
2021-11-26 19:30:45 +11:00
Nicholas Nethercote
f3bda74d36 Optimize Layout::array.
The current implementation is much more conservative than it needs to
be, because it's dealing with the size and alignment of a given `T`,
which are more restricted than an arbitrary `Layout`.

For example, imagine a struct with a `u32` and a `u4`. You can safely
create a `Layout { size_: 5, align_: 4 }` by hand, but
`Layout:🆕:<T>` will give `Layout { size_: 8, align_: 4}`, where the
size already has padding that accounts for the alignment. (And the
existing `debug_assert_eq!` in `Layout::array` already demonstrates that
no additional padding is required.)
2021-11-26 19:30:35 +11:00
Nicholas Nethercote
026edbb4ef Use unchecked construction in Layout::pad_to_align.
Other, similar methods for `Layout` do likewise, and there's already an
`unwrap()` around the result demonstrating the safety.
2021-11-26 19:30:35 +11:00