Commit Graph

207939 Commits

Author SHA1 Message Date
Nicholas Nethercote
ca2561a07b Avoid cloning RenderOptions.
By moving `RenderOptions` out of `Option`, because the two structs' uses
are almost entirely separate.

The only complication is that `unstable_features` is needed in both
structs, but it's a tiny `Copy` type so its duplication seems fine.
2022-10-19 08:09:40 +11:00
Nicholas Nethercote
38988e62bc Use interface::run_compiler for markdown::render.
It turns out `markdown::render` is more complex than it first appears,
because it can invoke `doctest::make_test`, which requires session
globals and a thread pool.

So this commit changes it to use `interface::run_compiler`. Three of the
four paths in `main_args` now use `interface::run_compiler`.
2022-10-19 08:09:40 +11:00
Nicholas Nethercote
63db9e540c Replace a spawn_unchecked with spawn_scoped. 2022-10-19 08:09:40 +11:00
Nicholas Nethercote
ec409f95bf Apply Lrc later to sess and codegen_backend.
This avoids the need for a degenerate `Lrc::get_mut` call.
2022-10-19 08:09:40 +11:00
Nicholas Nethercote
b6ae1453cb Inline and remove create_compiler_and_run.
It has a single call site.
2022-10-19 08:09:36 +11:00
Nicholas Nethercote
dcc194e4bf Reduce visibility of some functions. 2022-10-19 07:23:14 +11:00
Nicholas Nethercote
134e9d36ce Inline and remove scoped_thread.
It has a single call site, and removing it slightly improves the
confusing tangle of nested closures present at startup.
2022-10-19 07:23:14 +11:00
Nicholas Nethercote
2a62c92b25 Merge main_options into main_args.
There is no longer any need for them to be separate.
2022-10-19 07:23:14 +11:00
Nicholas Nethercote
021d1fbd00 Clean up rustdoc startup.
rustc's startup has several layers, including:
- `interface::run_compiler` passes a closure, `f`, to
  `run_in_thread_pool_with_globals`, which creates a thread pool, sets
  up session globals, and passes `f` to `create_compiler_and_run`.
- `create_compiler_and_run` creates a `Session`, a `Compiler`, sets the
  source map, and calls `f`.

rustdoc is a bit different.
- `main_args` calls `main_options` via
  `run_in_thread_pool_with_globals`, which (again) creates a thread pool
  (hardcoded to a single thread!) and sets up session globals.
- `main_options` has four different paths.
  - The second one calls `interface::run_compiler`, which redoes the
    `run_in_thread_pool_with_globals`! This is bad.
  - The fourth one calls `interface::create_compiler_and_run`, which is
    reasonable.
  - The first and third ones don't do anything of note involving the
    above functions, except for some symbol interning which requires
    session globals.

In other words, rustdoc calls into `rustc_interface` at three different
levels. It's a bit confused, and feels like code where functionality has
been added by different people at different times without fully
understanding how the globally accessible stuff is set up.

This commit tidies things up. It removes the
`run_in_thread_pool_with_globals` call in `main_args`, and adjust the
four paths in `main_options` as follows.
- `markdown::test` calls `test::test_main`, which provides its own
  parallelism and so doesn't need a thread pool. It had one small use of
  symbol interning, which required session globals, but the commit
  removes this.
- `doctest::run` already calls `interface::run_compiler`, so it doesn't
  need further adjustment.
- `markdown::render` is simple but needs session globals for interning
  (which can't easily be removed), so it's now wrapped in
  `create_session_globals_then`.
- The fourth path now uses `interface::run_compiler`, which is
  equivalent to the old `run_in_thread_pool_with_globals` +
  `create_compiler_and_run` pairing.
2022-10-19 07:23:14 +11:00
bors
a24a020e6d Auto merge of #102418 - citrus-it:illumos-strip-debug, r=nagisa
The illumos linker does not support --strip-debug

When building and testing rust 1.64.0 on illumos, we saw a large number of failing tests associated with:

```
   = note: ld: fatal: unrecognized option '--strip-debug'
           ld: fatal: use the -z help option for usage information
           collect2: error: ld returned 1 exit status
```

The illumos linker does not support the `--strip-debug` option (although it does support `--strip-all`).
2022-10-18 16:32:41 +00:00
bors
e94827e5b0 Auto merge of #103188 - JohnTitor:rollup-pwilam1, r=JohnTitor
Rollup of 6 pull requests

Successful merges:

 - #103023 (Adding `fuchsia-ignore` and `needs-unwind` to compiler test cases)
 - #103142 (Make diagnostic for unsatisfied `Termination` bounds more precise)
 - #103154 (Fix typo in `ReverseSearcher` docs)
 - #103159 (Remove the redundant `Some(try_opt!(..))` in `checked_pow`)
 - #103163 (Remove all uses of array_assume_init)
 - #103168 (Stabilize asm_sym)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-18 13:35:43 +00:00
Yuki Okushi
6e7d206a7b
Rollup merge of #103168 - Amanieu:stable_asm_sym, r=davidtwco
Stabilize asm_sym

Tracking issue #93333

Reference PR: https://github.com/rust-lang/reference/pull/1270
2022-10-18 21:21:32 +09:00
Yuki Okushi
b411b8861c
Rollup merge of #103163 - SUPERCILEX:uninit-array-assume2, r=scottmcm
Remove all uses of array_assume_init

See https://github.com/rust-lang/rust/pull/103134#discussion_r997462733

r? `@scottmcm`
2022-10-18 21:21:32 +09:00
Yuki Okushi
e04bbcb9b1
Rollup merge of #103159 - cuviper:check_pow-final-try_opt, r=Mark-Simulacrum
Remove the redundant `Some(try_opt!(..))` in `checked_pow`

The final return value doesn't need to be tried at all -- we can just
return the checked option directly. The optimizer can probably figure
this out anyway, but there's no need to make it work here.
2022-10-18 21:21:31 +09:00
Yuki Okushi
ba643786b8
Rollup merge of #103154 - H4x5:reverse-searcher-typo, r=Mark-Simulacrum
Fix typo in `ReverseSearcher` docs
2022-10-18 21:21:31 +09:00
Yuki Okushi
472a8742a6
Rollup merge of #103142 - fmease:fix-103052, r=oli-obk
Make diagnostic for unsatisfied `Termination` bounds more precise

Don't blindly emit a diagnostic claiming that “*`main` has an invalid return type*” if we encounter a type that should but doesn't implement `std::process::Termination` and isn't actually the return type of the program entry `main`.

Fixes #103052.

``@rustbot`` label A-diagnostics T-compiler T-libs
r? diagnostics
2022-10-18 21:21:30 +09:00
Yuki Okushi
56e412382e
Rollup merge of #103023 - andrewpollack:i-fuchsia-finals, r=tmandry
Adding `fuchsia-ignore` and `needs-unwind` to compiler test cases

Final tests covering missing privileges

r? ``@tmandry``

cc. ``@djkoloski``
2022-10-18 21:21:29 +09:00
bors
21b246587c Auto merge of #103075 - SUPERCILEX:miri-metadata, r=thomcc
Support DirEntry metadata calls in miri

This should work as it uses lstat64 which is supported here: ~d9ad25ee4b/src/shims/unix/macos/foreign_items.rs (L42~) just noticed that's macos, linux would be using statx: 86f0e63b21/src/shims/unix/linux/foreign_items.rs (L112)

The failing syscall is `dirfd`, so maybe that should actually be added to the shims?
2022-10-18 10:54:53 +00:00
bors
e0f8e60ddd Auto merge of #103177 - lnicola:rust-analyzer-2022-10-18, r=lnicola
⬆️ rust-analyzer

r? `@ghost`
2022-10-18 07:46:49 +00:00
Laurențiu Nicola
cb8fdff56d ⬆️ rust-analyzer 2022-10-18 09:12:49 +03:00
bors
a03ca01f47 Auto merge of #102992 - nnethercote:rm-RunCompiler-emitter, r=bjorn3
Remove `RunCompiler::emitter`.

It's no longer used.

r? `@bjorn3`
2022-10-18 05:06:04 +00:00
bors
98a5ac269c Auto merge of #102543 - daym:patch-1, r=joshtriplett
Remove "execute" bit from lock file permissions

Previously, flock would set the "execute" bit on Rust lock files. That makes no sense.

This patch clears the "execute" bit on Rust lock files.

See issue #102531.
2022-10-18 02:04:24 +00:00
bors
194140bef5 Auto merge of #103165 - matthiaskrgr:rollup-guw8oh6, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #103152 (Use named arguments to make GUI test more clear)
 - #103160 (rustdoc: factor JS mobile scroll lock into its own function)
 - #103161 (rustdoc: remove redundant CSS on `#copy-path`)
 - #103162 (rustdoc: remove redundant CSS `#crate-search { border-radius }`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-17 23:16:57 +00:00
Nicholas Nethercote
641f8249f9 Remove RunCompiler::emitter.
It's no longer used.
2022-10-18 08:48:58 +11:00
Amanieu d'Antras
430bd6200d Stabilize asm_sym 2022-10-17 22:38:37 +01:00
Matthias Krüger
8a467c3215
Rollup merge of #103162 - notriddle:notriddle/crate-search, r=GuillaumeGomez
rustdoc: remove redundant CSS `#crate-search { border-radius }`

This is the same border-radius that's always set on that ID:

a9d1cafa87/src/librustdoc/html/static/css/rustdoc.css (L825-L836)
2022-10-17 23:09:08 +02:00
Matthias Krüger
1e7b6ece88
Rollup merge of #103161 - notriddle:notriddle/copy-path-settings-help-button, r=GuillaumeGomez
rustdoc: remove redundant CSS on `#copy-path`

The border and background were removed in 5d004c1e20, but not all the CSS was.
2022-10-17 23:09:07 +02:00
Matthias Krüger
0a19575591
Rollup merge of #103160 - notriddle:notriddle/js-mobile-scroll, r=GuillaumeGomez
rustdoc: factor JS mobile scroll lock into its own function

https://github.com/rust-lang/rust/pull/98775#issuecomment-1172728308
2022-10-17 23:09:07 +02:00
Matthias Krüger
245b12e26e
Rollup merge of #103152 - GuillaumeGomez:named-arguments, r=notriddle
Use named arguments to make GUI test more clear

As you suggested `@notriddle.` The result looks like this.

r? `@notriddle`
2022-10-17 23:09:06 +02:00
Alex Saveau
55d71c61b8
Remove all uses of array_assume_init
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2022-10-17 13:03:54 -07:00
bors
06f049a355 Auto merge of #101837 - scottmcm:box-array-from-vec, r=m-ou-se
Add `Box<[T; N]>: TryFrom<Vec<T>>`

We have `[T; N]: TryFrom<Vec<T>>` (#76310) and `Box<[T; N]>: TryFrom<Box<[T]>>`, but not this combination.

`vec.into_boxed_slice().try_into()` isn't quite a replacement for this, as that'll reallocate unnecessarily in the error case.

**Insta-stable, so needs an FCP**

(I tried to make this work with `, A`, but that's disallowed because of `#[fundamental]` https://github.com/rust-lang/rust/issues/29635#issuecomment-1247598385)
2022-10-17 19:46:04 +00:00
Michael Howell
642bb0d54f rustdoc: remove redundant CSS #crate-search { border-radius }
This is the same border-radius that's always set on that ID:

a9d1cafa87/src/librustdoc/html/static/css/rustdoc.css (L825-L836)
2022-10-17 12:16:40 -07:00
Danny Milosavljevic
e07e5104fe Remove execute bit from lock file permissions 2022-10-17 21:10:46 +02:00
Michael Howell
3aa3b8be4e rustdoc: remove redundant CSS on #copy-path
The border and background were removed in
5d004c1e20, but not all the CSS was.
2022-10-17 11:59:01 -07:00
Michael Howell
3932b2c21d rustdoc: factor JS mobile scroll lock into its own function
https://github.com/rust-lang/rust/pull/98775#issuecomment-1172728308
2022-10-17 11:44:02 -07:00
Josh Stone
d7fd1d57ec Remove the redundant Some(try_opt!(..)) in checked_pow
The final return value doesn't need to be tried at all -- we can just
return the checked option directly. The optimizer can probably figure
this out anyway, but there's no need to make it work here.
2022-10-17 11:21:50 -07:00
Sky
9a7e527e28
Fix typo in ReverseSearcher docs 2022-10-17 13:14:15 -04:00
bors
9c2797de22 Auto merge of #103151 - matthiaskrgr:rollup-t3mmnsg, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #102454 (Suggest parentheses for possible range method calling)
 - #102466 (only allow `ConstEquate` with `feature(gce)`)
 - #102945 (Do not register placeholder `RegionOutlives` obligations when `considering_regions` is false)
 - #103091 (rustdoc: remove unused HTML class `sidebar-title`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-17 17:05:17 +00:00
Guillaume Gomez
885d69093f Use named arguments to make test clearer 2022-10-17 18:08:53 +02:00
Guillaume Gomez
a3eab0ba67 Update browser-ui-test version to 0.12.6 2022-10-17 18:08:40 +02:00
Matthias Krüger
e1d72a485a
Rollup merge of #103091 - notriddle:notriddle/sidebar-title, r=GuillaumeGomez
rustdoc: remove unused HTML class `sidebar-title`

Since 6a5f8b1aef, this class is no longer styled.
2022-10-17 17:15:51 +02:00
Matthias Krüger
d02a221d31
Rollup merge of #102945 - compiler-errors:placeholder-region-outlives, r=lcnr
Do not register placeholder `RegionOutlives` obligations when `considering_regions` is false

**NOTE:** I'm kinda just putting this up for discussion. I'm not certain this is correct...?

This was introduced in [`608625d`](608625dae9 (diff-6e54b18681342ec725d75591dbf384ad08cd73df29db00485fe51b4e90f76ff7R361)).

Interestingly, we only check `data.has_placeholders()` for `RegionOutlives`, and not for `TypeOutlives`... why? For the record, that different treatment between `RegionOutlives` and `TypeOutlives` is why the fix "The compiling succeeds when all `'a : 'b` are replaced with `&'a () : 'b`" in #100689 _"works"_, but it seems like an implementation detail considering this.

Also, why do we care about placeholder regions being registered if `considering_regions` is false? It doesn't seem to affect any UI tests, for example.

r? `@lcnr`

Fixes #102899
Fixes #100689
2022-10-17 17:15:50 +02:00
Matthias Krüger
e91fd0b514
Rollup merge of #102466 - lcnr:const-equate-uwu, r=BoxyUwU
only allow `ConstEquate` with `feature(gce)`
2022-10-17 17:15:50 +02:00
Matthias Krüger
66de34b035
Rollup merge of #102454 - chenyukang:fix-102396-missing-parentheses, r=lcnr
Suggest parentheses for possible range method calling

Fixes #102396
2022-10-17 17:15:49 +02:00
bors
a9d1cafa87 Auto merge of #102355 - lcnr:bye-bye-type-traversal, r=oli-obk
remove type traversal for mir constants

r? `@oli-obk` cc `@b-naber`
2022-10-17 14:19:28 +00:00
bors
abd7744101 Auto merge of #103145 - matthiaskrgr:rollup-mxwsysv, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #102962 (remote-test-server: Show command line arguments)
 - #103129 (rustdoc: remove unused `.sub-logo-container` DOM on non-source pages)
 - #103136 (Fix types in documentation for `Alignment::as_usize` and `Alignmnet::as_nonzero`)
 - #103139 (Duplicate comment in mod.rs)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-17 11:33:40 +00:00
Matthias Krüger
bb3f60b847
Rollup merge of #103139 - smoelius:patch-2, r=Dylan-DPC
Duplicate comment in mod.rs
2022-10-17 13:11:08 +02:00
Matthias Krüger
0c2017ff54
Rollup merge of #103136 - tmccombs:alignment-doc-fixes, r=Dylan-DPC
Fix types in documentation for `Alignment::as_usize` and `Alignmnet::as_nonzero`
2022-10-17 13:11:07 +02:00
Matthias Krüger
81ea72b38e
Rollup merge of #103129 - notriddle:notriddle/sub-logo-container, r=GuillaumeGomez
rustdoc: remove unused `.sub-logo-container` DOM on non-source pages
2022-10-17 13:11:07 +02:00
Matthias Krüger
9a615fd4e4
Rollup merge of #102962 - flba-eb:remote_test_server_help, r=pietroalbini
remote-test-server: Show command line arguments

The user of remote-test-server should get at least some minimal command line help as this is often started manually.

r? `@pietroalbini`
2022-10-17 13:11:07 +02:00