Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 13 pull requests #93736

Closed
wants to merge 36 commits into from
Closed

Conversation

m-ou-se
Copy link
Member

@m-ou-se m-ou-se commented Feb 7, 2022

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

jyn514 and others added 30 commits August 24, 2021 19:55
This should make it substantially less annoying, and hopefully more
people will find it useful. In particular, it will no longer run tidy
each time you run `git commit --amend` or rebase a branch.

This also warns if you have the old script in pre-commit; see the HACK
comment for details.
Performing UTF-8 decode outside the JSON module makes more sense in almost all cases.
This was only used for the inclusion of 'current' dates into our manpages, but
it is not clear that this is practically necessary. The manpage is essentially
never updated, and so we can likely afford to keep a manual date in these files.
It also seems possible to just omit it, but that may cause other tools trouble,
so avoid doing that for now.
Also adjust CSS so this doesn't produce excess padding/margin.
It previously pointed to rust-lang#57563, the conglomerate issue for
`const fn` (presumably under the feature gate `const_fn`).
`const_fn_trait_bounds` weren't mentioned here, so this commit changes
its tracking issue to a new one.
…strap.py

I missed this in rust-lang#89757; it made
`x.py test src/bootstrap` very slow.
Previously, rustbuild would give strange errors if you tried to reuse the same build directory under two names:

```
$ mkdir tmp && cd tmp
$ ../x.py check
Building rustbuild
    Finished dev [unoptimized] target(s) in 35.27s
Checking stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
^C
$ cd ..
$ mv tmp/build build
$ ./x.py check
Building rustbuild
   Compiling bootstrap v0.0.0 (/home/jnelson/rust-lang/rust/src/bootstrap)
    Finished dev [unoptimized] target(s) in 11.18s

failed to execute command: "/home/jnelson/rust-lang/rust/tmp/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" "--target" "x86_64-unknown-linux-gnu" "--print" "target-libdir"
error: No such file or directory (os error 2)
```

This fixes the error. Reusing the same build directory is useful if you want to test path-things in
bootstrap itself, without having to recompile it each time.

For good measure, this also reruns the build script when PATH changes.
Make the pre-commit script pre-push instead

This should make it substantially less annoying, and hopefully more
people will find it useful. In particular, it will no longer run tidy
each time you run `git commit --amend` or rebase a branch.

This also warns if you have the old script in pre-commit; see the HACK
comment for details.

r? ```@Mark-Simulacrum``` cc ```@caass```
… r=camelid

Suggest 1-tuple parentheses on exprs without existing parens

A follow-on from rust-lang#86116, split out from rust-lang#90677.

This alters the suggestion to add a trailing comma to create a 1-tuple - previously we would only apply this if the relevant expression was parenthesised. We now make the suggestion regardless of parentheses, which reduces the fragility of the check (w.r.t formatting).

e.g.
```rust
let a: Option<(i32,)> = Some(3);
```

gets the below suggestion:

```rust
let a: Option<(i32,)> = Some((3,));
//                           ^ ^^
```

This change also improves the suggestion in other ways, such as by only making the suggestion if the types would match after the suggestion is applied and making the suggestion a multipart suggestion.
Cleanup c_str.rs

Some code cleanups in `c_str.rs`.
No functional changes.

ref: bytecodealliance/rustix#163
…l, r=m-ou-se

Impl {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}Assign<$t> for Wrapping<$t> for rust 1.60.0

Tracking issue rust-lang#93204

This is about adding basic integer operations to the `Wrapping` type:

```rust
let mut value = Wrapping(2u8);
value += 3u8;
value -= 1u8;
value *= 2u8;
value /= 2u8;
value %= 2u8;
value ^= 255u8;
value |= 123u8;
value &= 2u8;
```

Because this adds stable impls on a stable type, it runs into the following issue if an `#[unstable(...)]` attribute is used:

```
an `#[unstable]` annotation here has no effect
note: see issue rust-lang#55436 <rust-lang#55436> for more information
```

This means - if I understood this correctly - the new impls have to be stabilized instantly.
Which in turn means, this PR has to kick of an FCP on the tracking issue as well?

This impl is analog to 1c0dc18 rust-lang#92356 for the `Saturating` type `@dtolnay`  `@Mark-Simulacrum`
Don't allow {} to refer to implicit captures in format_args.

Fixes rust-lang#93378
…etup, r=Mark-Simulacrum

Fix linking stage1 toolchain in `./x.py setup`

Closes [92319](rust-lang#92319)

Fix linking stage1 toolchain in `./x.py setup`. I guess this can be considered a follow up to rust-lang#89212 by ````@Sl1mb0.````

We create 2 directories and 1 file that are required by rustup to [link a custom toolchain from path](https://github.com/rust-lang/rustup/blob/5225e87a5d974ab5f1626bcb2a7b43f76ab883f0/src/toolchain.rs#L479-L497).

cc ````@jyn514```` and ````@Mark-Simulacrum```` as they were active in rust-lang#89206
…illaumeGomez

Linkify sidebar headings for sibling items

Also adjust CSS so this doesn't produce excess padding/margin.

Note: I tried and failed to write a test with browser-UI-test. First I tried to `assert-property: (".block.mod h3 a", {"href": "index.html#macros"})`. But the `href` that gets read out is the fully-quallified URL, starting with `file:///`. That URL will differ depending on what path the test is run from, so that doesn't work.

Next I tried clicking on the appropriate sidebar link, and verifying that the appropriate heading on the next page is highlighted with the right background color. However, that also didn't work: according to browser-UI-test, the targeted heading was plain white. However, running with no-headless, I could see that it actually was yellow. I suspect this is a bug in the older version of Chromium used with browser-UI-test's bundled puppeteer, since it doesn't reproduce on latest Chrome.

Fixes rust-lang#92957

Demo: https://rustdoc.crud.net/jsha/linkify-sidebar-headings/std/string/trait.ToString.html

r? `@GuillaumeGomez`
…=bjorn3

Drop json::from_reader

Just a small cleanup -- this was essentially unused; the one use site is better suited to reading from &str regardless.
…s-const_fn_trait_bound, r=oli-obk

Update tracking issue for `const_fn_trait_bound`

It previously pointed to rust-lang#57563, the conglomerate issue for `const fn` (presumably under the feature gate `const_fn`). This tracking issue doesn't mention anything about `const_fn_trait_bound`(the only occurrence of "trait bound" is for the now-removed `?const Trait` syntax), which can be confusing to people who want to find out more about trait bounds on `const fn`s. This pull request changes the tracking issue to one meant specifically for `const_fn_trait_bound`, rust-lang#93706, which can help collect information on this feature's stabilization and point users towards `const_trait_impl` if they're looking for const-in-const-contexts trait bounds.

Fixes rust-lang#93679.

````@rustbot```` modify labels +A-const-fn +F-const_trait_impl
…albini

Drop time dependency from bootstrap

This was only used for the inclusion of 'current' dates into our manpages, but
it is not clear that this is practically necessary. The manpage is essentially
never updated, and so we can likely afford to keep a manual date in these files.
It also seems possible to just omit it, but that may cause other tools trouble,
so avoid doing that for now.

This is largely done to reduce bootstrap complexity; the time crate is not particularly
small and in rust-lang#92480 would have started pulling in num-threads, which does runtime
thread count detection. I would prefer to avoid that, so filing this to just drop the nearly
unused dependency entirely.

r? `@pietroalbini`
…rk-Simulacrum

Use shallow clones for submodules managed by rustbuild, not just bootstrap.py

I missed this in rust-lang#89757; it made
`x.py test src/bootstrap` very slow.
…ulacrum

Rerun bootstrap's build script when RUSTC changes

Previously, rustbuild would give strange errors if you tried to reuse the same build directory under two names:

```
$ mkdir tmp && cd tmp
$ ../x.py check
Building rustbuild
    Finished dev [unoptimized] target(s) in 35.27s
Checking stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
^C
$ cd ..
$ mv tmp/build build
$ ./x.py check
Building rustbuild
   Compiling bootstrap v0.0.0 (/home/jnelson/rust-lang/rust/src/bootstrap)
    Finished dev [unoptimized] target(s) in 11.18s

failed to execute command: "/home/jnelson/rust-lang/rust/tmp/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" "--target" "x86_64-unknown-linux-gnu" "--print" "target-libdir"
error: No such file or directory (os error 2)
```

This fixes the error. Reusing the same build directory is useful if you want to test path-related things in
bootstrap itself, without having to recompile it each time.

For good measure, this also reruns the build script when PATH changes.
@rustbot rustbot added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Feb 7, 2022
@m-ou-se
Copy link
Member Author

m-ou-se commented Feb 7, 2022

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Feb 7, 2022

📌 Commit 14ffdd2 has been approved by m-ou-se

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Feb 7, 2022
@bors
Copy link
Contributor

bors commented Feb 7, 2022

⌛ Testing commit 14ffdd2 with merge ad656085d6b32eae130b7f20399e88835b3dffa3...

@bors
Copy link
Contributor

bors commented Feb 7, 2022

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 7, 2022
@rust-log-analyzer
Copy link
Collaborator

The job dist-aarch64-msvc failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling same-file v1.0.6
   Compiling walkdir v2.3.1
   Compiling ignore v0.4.17
   Compiling toml v0.5.7
error[E0432]: unresolved import `winapi::um::timezoneapi`
   --> src\bootstrap\bin/rustc.rs:236:48
    |
236 |     use winapi::um::{processthreadsapi, psapi, timezoneapi};
    |                                                ^^^^^^^^^^^ no `timezoneapi` in `um`
For more information about this error, try `rustc --explain E0432`.
error: could not compile `bootstrap` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed
---
D:\a\rust\rust\src\bootstrap\bootstrap.py:5: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.version
Building rustbuild
   Compiling bootstrap v0.0.0 (D:\a\rust\rust\src\bootstrap)
error[E0432]: unresolved import `winapi::um::timezoneapi`
   --> src\bootstrap\bin/rustc.rs:236:48
    |
236 |     use winapi::um::{processthreadsapi, psapi, timezoneapi};
    |                                                ^^^^^^^^^^^ no `timezoneapi` in `um`
For more information about this error, try `rustc --explain E0432`.
error: could not compile `bootstrap` due to previous error
failed to run: D:\a\rust\rust\build\x86_64-pc-windows-msvc\stage0\bin\cargo.exe build --manifest-path D:\a\rust\rust\src/bootstrap/Cargo.toml --locked
Build completed unsuccessfully in 0:00:00
Build completed unsuccessfully in 0:00:00
make: *** [Makefile:60: prepare] Error 1
Command failed. Attempt 3/5:
D:\a\rust\rust\src\bootstrap\bootstrap.py:5: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.version
Building rustbuild
   Compiling bootstrap v0.0.0 (D:\a\rust\rust\src\bootstrap)
error[E0432]: unresolved import `winapi::um::timezoneapi`
   --> src\bootstrap\bin/rustc.rs:236:48
    |
236 |     use winapi::um::{processthreadsapi, psapi, timezoneapi};
    |                                                ^^^^^^^^^^^ no `timezoneapi` in `um`
For more information about this error, try `rustc --explain E0432`.
error: could not compile `bootstrap` due to previous error
failed to run: D:\a\rust\rust\build\x86_64-pc-windows-msvc\stage0\bin\cargo.exe build --manifest-path D:\a\rust\rust\src/bootstrap/Cargo.toml --locked
Build completed unsuccessfully in 0:00:00
Build completed unsuccessfully in 0:00:00
make: *** [Makefile:60: prepare] Error 1
Command failed. Attempt 4/5:
D:\a\rust\rust\src\bootstrap\bootstrap.py:5: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.version
Building rustbuild
   Compiling bootstrap v0.0.0 (D:\a\rust\rust\src\bootstrap)
error[E0432]: unresolved import `winapi::um::timezoneapi`
   --> src\bootstrap\bin/rustc.rs:236:48
    |
236 |     use winapi::um::{processthreadsapi, psapi, timezoneapi};
    |                                                ^^^^^^^^^^^ no `timezoneapi` in `um`
For more information about this error, try `rustc --explain E0432`.
error: could not compile `bootstrap` due to previous error
failed to run: D:\a\rust\rust\build\x86_64-pc-windows-msvc\stage0\bin\cargo.exe build --manifest-path D:\a\rust\rust\src/bootstrap/Cargo.toml --locked
Build completed unsuccessfully in 0:00:00
Build completed unsuccessfully in 0:00:00
make: *** [Makefile:60: prepare] Error 1
Command failed. Attempt 5/5:
D:\a\rust\rust\src\bootstrap\bootstrap.py:5: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.version
Building rustbuild
   Compiling bootstrap v0.0.0 (D:\a\rust\rust\src\bootstrap)
error[E0432]: unresolved import `winapi::um::timezoneapi`
   --> src\bootstrap\bin/rustc.rs:236:48
    |
236 |     use winapi::um::{processthreadsapi, psapi, timezoneapi};
    |                                                ^^^^^^^^^^^ no `timezoneapi` in `um`
For more information about this error, try `rustc --explain E0432`.
error: could not compile `bootstrap` due to previous error
failed to run: D:\a\rust\rust\build\x86_64-pc-windows-msvc\stage0\bin\cargo.exe build --manifest-path D:\a\rust\rust\src/bootstrap/Cargo.toml --locked
Build completed unsuccessfully in 0:00:00

@m-ou-se m-ou-se closed this Feb 7, 2022
@m-ou-se m-ou-se deleted the rollup-6vodanx branch February 7, 2022 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.