Commit graph

1052 commits

Author SHA1 Message Date
Matthias Krüger
66f46655c3
Rollup merge of #119248 - lukas-code:purge-unused-outlives-test, r=cjgillot
remove dead inferred outlives testing code

The `test_inferred_outlives` function was never run, because the code that's actually used for the tests was part of the `inferred_outlives_of` query, which ran before `test_inferred_outlives` during type collecting. This PR separates the test code from the query and moves it inside the dedicated function.
2023-12-23 16:23:56 +01:00
Lukas Markeffsky
49103dc553 move rustc_outlives test code from query to dedicated function 2023-12-23 13:59:10 +01:00
Takashi Idobe
c20bdf247b fix some typos found scrolling through the docs 2023-12-22 18:28:19 -05:00
Nadrieril
63c5b008e1 Make the crate compile on stable 2023-12-15 16:58:38 +01:00
Jubilee
b62511fd9d
Rollup merge of #118943 - lqd:update-deps2, r=michaelwoerister
update `measureme` to 10.1.2 to deduplicate `parking_lot`

This PR updates `measureme` to the latest release to remove the last duplicates of `parking_lot` 0.11 we had in our dependency tree.

```console
Updating measureme v10.1.1 -> v10.1.2
Removing parking_lot v0.11.2
Removing parking_lot_core v0.8.6
```

Also removes `instant` from the allowed list of dependencies, as it's no longer used.

r? `@michaelwoerister` (Thanks for the release in the first place 🙏)
2023-12-14 16:07:48 -08:00
bors
740cea81d6 Auto merge of #118375 - ouz-a:add_emit_stable_mir_tests, r=celinval
Add -Zunpretty=stable-mir output test

As strongly suggested here https://github.com/rust-lang/rust/pull/118364#issuecomment-1827974148 this adds output test for `-Zunpretty=stable-mir`, added test shows almost all the functionality of the current printer.

r? `@compiler-errors`
2023-12-14 19:17:52 +00:00
Rémy Rakic
05b64a84a3 remove instant from allowed dependencies 2023-12-14 16:05:46 +00:00
ouz-a
82ee18c4ea add stable_mir output test 2023-12-14 18:10:38 +03:00
bors
1aa6aefdc9 Auto merge of #118566 - klensy:cstr-new, r=WaffleLapkin
use c literals in compiler and library

Relands refreshed https://github.com/rust-lang/rust/pull/111647
2023-12-14 11:14:03 +00:00
Matthias Krüger
ffdb471872
Rollup merge of #117914 - estebank:issue-85843, r=wesleywiser
On borrow return type, suggest borrowing from arg or owned return type

When we encounter a function with a return type that has an anonymous lifetime with no argument to borrow from, besides suggesting the `'static` lifetime we now also suggest changing the arguments to be borrows or changing the return type to be an owned type.

```
error[E0106]: missing lifetime specifier
  --> $DIR/variadic-ffi-6.rs:7:6
   |
LL | ) -> &usize {
   |      ^ expected named lifetime parameter
   |
   = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
   |
LL | ) -> &'static usize {
   |       +++++++
help: instead, you are more likely to want to change one of the arguments to be borrowed...
   |
LL |     x: &usize,
   |        +
help: ...or alternatively, to want to return an owned value
   |
LL - ) -> &usize {
LL + ) -> usize {
   |
```

Fix #85843.
2023-12-12 17:40:53 +01:00
Matthias Krüger
dfc5ffacd3
Rollup merge of #118756 - jyn514:colors, r=estebank
use bold magenta instead of bold white for highlighting

according to a poll of gay people in my phone, purple is the most popular color to use for highlighting

| color      | percentage |
| ---------- | ---------- |
| bold white | 6%         |
| blue       | 14%        |
| cyan       | 26%        |
| purple     | 37%        |
| magenta    | 17%        |

unfortunately, purple is not supported by 16-color terminals, which rustc apparently wants to support for some reason.
until we require support for full 256-color terms (e.g. by doing the same feature detection as we currently do for urls), we can't use it.

instead, i have collapsed the purple votes into magenta on the theory that they're close, and also because magenta is pretty.

before:
![image](https://github.com/rust-lang/rust/assets/23638587/9a89eee2-8b89-422e-8554-812827bb2a23)

after:
![image](https://github.com/rust-lang/rust/assets/23638587/5bf3a917-8a20-4afd-af3e-f9491d0d57f5)

other colors for comparison:
blue: ![image](https://github.com/rust-lang/rust/assets/23638587/6f199c7b-d598-4009-8ffc-6b7b1d0d1f8c)
cyan: ![image](https://github.com/rust-lang/rust/assets/23638587/a77e4fe3-563e-4aa5-ae92-745bb67287d1)
purple: ![image](https://github.com/rust-lang/rust/assets/23638587/ffe603fb-d811-4106-95a9-4dd4c955924c)
magenta without bolding: ![image](https://github.com/rust-lang/rust/assets/23638587/cf927e5f-8b25-4dc2-b8e7-32905a11a459)

r? ``@estebank``
2023-12-12 06:52:49 +01:00
jyn
96b027f35d use magenta instead of bold for highlighting
according to a poll of gay people in my phone, purple is the most popular color to use for highlighting

| color      | percentage |
| ---------- | ---------- |
| bold white | 6%         |
| blue       | 14%        |
| cyan       | 26%        |
| purple     | 37%        |
| magenta    | 17%        |

unfortunately, purple is not supported by 16-color terminals, which rustc apparently wants to support for some reason.
until we require support for full 256-color terms (e.g. by doing the same feature detection as we currently do for urls), we can't use it.

instead, i have collapsed the purple votes into magenta on the theory that they're close, and also because magenta is pretty.
2023-12-08 14:30:48 -05:00
Nicholas Nethercote
5d16c5423c Extend tidy alphabetical checking to tests/.
This is desired for #118702.
2023-12-08 21:02:22 +11:00
bors
84a554cda9 Auto merge of #117072 - betrusted-io:unwinding-crate-support, r=cuviper
Use `unwinding` crate for unwinding on Xous platform

This patch adds support for using [unwinding](https://github.com/nbdd0121/unwinding) on platforms where libunwinding isn't viable. An example of such a platform is `riscv32imac-unknown-xous-elf`.

### Background

The Rust project maintains a fork of llvm at [llvm-project](https://github.com/rust-lang/llvm-project/) where it applies patches on top of the llvm project. This mostly seems to be to get unwinding support for the SGX project, and there may be other patches that I'm unaware of.

There is a lot of machinery in the build system to support compiling `libunwind` on other platforms, and I needed to add additional patches to llvm in order to add support for Xous.

Rather than continuing down this path, it seemed much easier to use a Rust-based library. The `unwinding` crate by `@nbdd0121` fits this description perfectly.

### Future work

This could potentially replace the custom patches for `libunwind` on other platforms such as SGX, and could enable unwinding support on many more exotic platforms.

### Anti-goals

This is not designed to replace `libunwind` on tier-one platforms or those where unwinding support already exists. There is already a well-established approach for unwinding there. Instead, this aims to enable unwinding on new platforms where C++ code may be difficult to compile.
2023-12-06 02:23:01 +00:00
Sean Cross
0773afc968 tidy: add unwinding as an allowed dependency
Add `unwinding` as a permitted dependency of rustc, as it is now used as
part of panic unwinding within platforms such as Xous.

Signed-off-by: Sean Cross <sean@xobs.io>
2023-12-06 09:07:07 +08:00
klensy
26e69a8816 compiler: replace cstr macro with c str literals in compiler and few other c str replacements 2023-12-03 14:54:09 +03:00
Ralf Jung
c0c0b5b5a6 allow zerocopy license 2023-12-02 19:38:50 +01:00
Ralf Jung
253d61714d move packed-struct tests into packed/ folder 2023-12-02 14:48:07 +01:00
Laurențiu Nicola
d036daadda Remove instant from EXCEPTIONS_RUST_ANALYZER 2023-11-27 12:54:24 +02:00
Weihang Lo
9b013bb3b8
Update cargo
This removes the check to ensure that `rustfix` between

* src/tools/cargo
* src/tools/compiletest

has the same version,
since `rust-lang/rustfix` has migrated to under `rust-lang/cargo`.
2023-11-24 23:13:45 -05:00
Esteban Küber
b7a23bc08b On borrow return type, suggest borrowing from arg or owned return type
When we encounter a function with a return type that has an anonymous
lifetime with no argument to borrow from, besides suggesting the
`'static` lifetime we now also suggest changing the arguments to be
borrows or changing the return type to be an owned type.

```
error[E0106]: missing lifetime specifier
  --> $DIR/variadic-ffi-6.rs:7:6
   |
LL | ) -> &usize {
   |      ^ expected named lifetime parameter
   |
   = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
   |
LL | ) -> &'static usize {
   |       +++++++
help: instead, you are more likely to want to change one of the arguments to be borrowed...
   |
LL |     x: &usize,
   |        +
help: ...or alternatively, to want to return an owned value
   |
LL - ) -> &usize {
LL + ) -> usize {
   |
```

Fix #85843.
2023-11-20 23:44:36 +00:00
Matthias Krüger
00ba7fc007
Rollup merge of #116244 - estebank:issue-73497, r=b-naber
Apply structured suggestion that allows test to work since 1.64

Close #73497.
2023-11-14 21:50:37 +01:00
bors
49b27f4efb Auto merge of #117701 - lnicola:sync-from-ra, r=onur-ozkan,HKalbasi
Subtree update of `rust-analyzer`

r? `@HKalbasi`
2023-11-14 18:43:27 +00:00
Weihang Lo
8a2bee415c
Update cargo 2023-11-10 18:18:37 -05:00
Laurențiu Nicola
89a3fd4992 Drop anymap license exception 2023-11-10 15:09:52 +02:00
klensy
7142c8d83c bump few ICU4X leftover deps
implements https://github.com/rust-lang/rust/pull/117632#issuecomment-1795027801 suggestion
2023-11-09 14:53:21 +03:00
bors
287ae4db75 Auto merge of #117632 - Nilstrieb:icup, r=davidtwco
Update ICU4X

This updates all ICU4X crates and regenerates rustc_baked_icu_data.

Since the new unicode license under which they are licensed does not have an SPDX identifier yet, we define some exceptions. The license has to be reviewed to make sure it is still fine to use here, but I assume that is the case.

I also added an exception for rustc_icu_data to the unexplained ignore doctest tidy lint. This is a bit hacky but the whole style.rs in tidy is a mess so I didn't want to touch it more than this small hack.

part of #112865

r? `@davidtwco` `@wesleywiser` `@Manishearth`
2023-11-09 09:00:57 +00:00
klensy
eed89185bb bump some deps
drop num_cpus from rust-installer as not used
update rayon, rayon-core, which drops it's deps on num_cpus and crossbeam-channel (for bootstrap too) (https://github.com/rayon-rs/rayon/blob/v1.8.0/RELEASES.md)
update erro, which drops errno-dragonfly (5341791935/CHANGELOG.md)
2023-11-07 15:33:59 +03:00
Esteban Küber
aae391cf68 Apply structured suggestion that allows test to work since 1.64
Close #73497.
2023-11-07 01:54:00 +00:00
Nilstrieb
ffffc2038f Update ICU4X
This updates all ICU4X crates and regenerates rustc_baked_icu_data.

Since the new unicode license under which they are licensed does not
have an SPDX identifier yet, we define some exceptions. The license has
to be reviewed to make sure it is still fine to use here, but I assume
that is the case.

I also added an exception for rustc_icu_data to the unexplained ignore
doctest tidy lint. This is a bit hacky but the whole style.rs in tidy is
a mess so I didn't want to touch it more than this small hack.
2023-11-06 13:42:20 +00:00
bors
f9b644636f Auto merge of #117435 - SparrowLii:nightly_parallel, r=oli-obk,davidtwco
enable parallel rustc front end in nightly builds

Refers to the [MCP](https://github.com/rust-lang/compiler-team/issues/681), this pr does:
1. Enable the parallel front end in nightly builds, and keep the default number of threads as 1. Then users can use the parallel rustc front end via -Z threads=n option.

2. Set it up to serial front end for beta/stable builds via bootstrap.

3. Switch over the alt builders from parallel rustc to serial, so we have artifacts without parallel to test against the artifacts with parallel.

r? `@oli-obk`

cc `@cjgillot` `@nnethercote` `@bjorn3` `@Kobzol`
2023-11-06 07:41:22 +00:00
SparrowLii
f2a40e99ff use portable AtomicU64 for powerPC and MIPS 2023-11-06 09:58:51 +08:00
bors
2db26d3d55 Auto merge of #117566 - weihanglo:update-cargo, r=weihanglo
Update cargo

8 commits in b4d18d4bd3db6d872892f6c87c51a02999b80802..65e297d1ec0dee1a74800efe600b8dc163bcf5db
2023-10-31 18:19:10 +0000 to 2023-11-03 20:56:31 +0000
- fix(cli): Clarify --test is for targets, not test functions (rust-lang/cargo#12915)
- Updating "features" documentation to add a note about the new limit on number of features (rust-lang/cargo#12913)
- fix: merge `trim-paths` from different profiles (rust-lang/cargo#12908)
- Add regression test for issue 6915: features and transitive dev deps (rust-lang/cargo#12907)
- chore(deps): update rust crate gix to 0.55.2 (rust-lang/cargo#12906)
- chore(deps): update compatible (rust-lang/cargo#12905)
- docs(ref): Fix open-semver-range issue link (rust-lang/cargo#12904)
- docs(ref): Highlight commands to answer dep resolution questions (rust-lang/cargo#12903)

r? ghost
2023-11-04 06:22:05 +00:00
Weihang Lo
f3587204c8
Update cargo
Remove license exception of `byteyarn` as it is no longer used
2023-11-04 00:02:24 -04:00
bors
3aaa0f57b7 Auto merge of #115274 - bjorn3:tidy_improvements, r=davidtwco
Run tidy license checker on more workspaces

The license checker didn't run on several workspaces before this PR. The same applied to the "external package sources" check. There were also two missing lockfiles which I have added now.
2023-11-04 02:28:17 +00:00
Zalathar
a9e1e43b56 Add UI tests for values accepted by -C symbol-mangling-version 2023-11-02 18:20:42 +11:00
Michael Goulet
de83057ac4 Use derivative for Clone 2023-10-31 13:16:37 +00:00
bors
e5cfc55477 Auto merge of #117149 - nnethercote:tidy-alphabetical-unit-tests, r=Nilstrieb
tidy: add unit tests for alphabetical checks

I discovered there aren't any tests while working on #117068.

r? `@Nilstrieb`
2023-10-28 21:34:27 +00:00
bjorn3
af85d3169f Disable tidy dep check for a couple more unvendored project 2023-10-28 08:47:40 +00:00
Nicholas Nethercote
a0b0ace061 tidy: add unit tests for alphabetical markers.
This requires introducing `tidy_error_ext!` as an alternative to
`tidy_error!`. It is passed a closure that is called for an error. This
lets tests capture tidy error messages in a buffer instead of printing
them to stderr.

It also requires pulling part of `check` out into a new function
`check_lines`, so that tests can pass in an iterator over some strings
instead of a file.
2023-10-25 10:55:12 +11:00
Nicholas Nethercote
a79a2c729d tidy: some minor improvements.
- Tweak some comments.
- No need to do the `concat!` trick on `START_MARKER` because it's
  immediately followed by `END_MARKER`.
- Fix an off-by-one error in the line number for an error message.
- When a second start marker is found without an intervening end marker,
  after giving an error, treat it as though it ends the section. It's
  hard to know exactly what to do in this case, but it makes unit
  testing this case a little simpler (in the next commit).
- If an end marker occurs without a preceding start marker, issue an
  error.
2023-10-25 10:52:05 +11:00
Nicholas Nethercote
40797eef5e tidy: skip lines starting with # in alphabetical check.
These are comment lines in `Cargo.toml` files.

But exclude lines starting with `#!` from the skipping, because we want
to check them. (Rust `#![feature(...)]` lines.)

Also allow empty lines, which are occasionally useful.
2023-10-25 07:56:43 +11:00
Nicholas Nethercote
b7bea6e46f Fix a bug in tidy's alphabetical checking.
Currently, if a `tidy-alphabetical-end` marker appears on the last line
of a file, tidy will erroneously issue a "reach end of file expecting
`tidy-alphabetical-end`" error. This is because it uses `take_while`
within `check_section`, which consumes the line with the end marker, and
then after `check_section` returns `check` peeks for at least one more
line, which won't be there is the marker was on the last line.

This commit fixes the problem, by removing the use of `take_while`, and
doing the "reached end of file" test within `check_section` without
using `peek`.

It also renames `{START,END}_COMMENT` as `{START,END}_MARKER`, which is
a more appropriate name.
2023-10-25 07:56:41 +11:00
Zalathar
f83f7966f5 coverage: Add UI tests for values accepted by -Cinstrument-coverage 2023-10-23 17:41:40 +11:00
Camille GILLOT
4ff03cd1a4 Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
bors
c07693c160 Auto merge of #116477 - nnethercote:tidy-alpha-deps, r=wesleywiser
Use tidy to enforce alphabetical dependency ordering

I get annoyed when dependencies in `Cargo.toml` files are not in alphabetical order. The [style guide](https://github.com/rust-lang/rust/blob/master/src/doc/style-guide/src/cargo.md) agrees with me.

There are ongoing efforts to provide linting/formatting of `Cargo.toml` files, e.g. https://github.com/rust-lang/rustfmt/pull/5240, https://crates.io/crates/cargo-toml-lint, and https://github.com/TimonPost/cargo-toml-format. But it's far from clear what's the right approach.

So this PR does something very simple: it uses the order checking already present in tidy. This allows incremental application of ordering, starting right now, and avoiding the need for any kind of all-at-once conversion.

If we do end up using some more comprehensive `Cargo.toml` linting/formatting solution in the future, the `tidy-alphabetical` lines will be easy to remove.

r? `@wesleywiser`
2023-10-17 02:48:03 +00:00
Nicholas Nethercote
d284c8a2d7 Rename ACTIVE_FEATURES as UNSTABLE_FEATURES.
It's a better name, and lets "active features" refer to the features
that are active in a particular program, due to being declared or
enabled by the edition.

The commit also renames `Features::enabled` as `Features::active` to
match this; I changed my mind and have decided that "active" is a little
better thatn "enabled" for this, particularly because a number of
pre-existing comments use "active" in this way.

Finally, the commit renames `Status::Stable` as `Status::Accepted`, to
match `ACCEPTED_FEATURES`.
2023-10-16 08:17:23 +11:00
bjorn3
f6ce2e6d4a Update license for notify 2023-10-10 13:48:33 +00:00
bjorn3
0d79348d47 Update status for the backtrace and stdarch exceptions 2023-10-10 13:48:30 +00:00
bjorn3
d2054db3eb Disable tidy license checker for cg_gcc until it's deps are vendored 2023-10-10 12:47:26 +00:00