Skip to content

Commit c36e67f

Browse files
author
The rustc-josh-sync Cronjob Bot
committed
Merge ref '91021ccc7904' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@91021cc Filtered ref: 3ea5559 Upstream diff: rust-lang/rust@1e21831...91021cc This merge was created using https://github.com/rust-lang/josh-sync.
2 parents 707c611 + 3ea5559 commit c36e67f

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

src/early-late-parameters.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33

44
> **NOTE**: This chapter largely talks about early/late bound as being solely relevant when discussing function item types/function definitions. This is potentially not completely true, async blocks and closures should likely be discussed somewhat in this chapter.
55
6+
See also these blog posts from when the distinction between early and late bound parameters was
7+
introduced: [Intermingled parameter lists] and [Intermingled parameter lists, take 2].
8+
9+
[Intermingled parameter lists]: https://smallcultfollowing.com/babysteps/blog/2013/10/29/intermingled-parameter-lists/
10+
[Intermingled parameter lists, take 2]: https://smallcultfollowing.com/babysteps/blog/2013/11/04/intermingled-parameter-lists/
11+
612
## What does it mean to be "early" bound or "late" bound
713

814
Every function definition has a corresponding ZST that implements the `Fn*` traits known as a [function item type][function_item_type]. This part of the chapter will talk a little bit about the "desugaring" of function item types as it is useful context for explaining the difference between early bound and late bound generic parameters.

src/tests/compiletest.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -836,3 +836,20 @@ In CI, compare modes are only used in one Linux builder, and only with the follo
836836
Note that compare modes are separate to [revisions](#revisions).
837837
All revisions are tested when running `./x test tests/ui`, however compare-modes must be
838838
manually run individually via the `--compare-mode` flag.
839+
840+
## Parallel frontend
841+
842+
Compiletest can be run with the `--parallel-frontend-threads` flag to run the compiler in parallel mode.
843+
This can be used to check that the compiler produces the same output in parallel mode as in non-parallel mode, and to check for any issues that might arise in parallel mode.
844+
845+
To run the tests in parallel mode, you need to pass the `--parallel-frontend-threads` CLI flag:
846+
847+
```bash
848+
./x test tests/ui -- --parallel-frontend-threads=N --iteration-count=M
849+
```
850+
851+
Where `N` is the number of threads to use for the parallel frontend, and `M` is the number of times to run each test in parallel mode (to increase the chances of catching any non-determinism).
852+
853+
Also, when running with `--parallel-frontend-threads`, the `compare-output-by-lines` directive would be implied for all tests, since the output from the parallel frontend can be non-deterministic in terms of the order of lines.
854+
855+
The parallel frontend is available in UI tests only at the moment, and is not currently supported in other test suites.

src/tests/directives.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ Some examples of `X` in `ignore-X` or `only-X`:
148148
- When [remote testing] is used: `remote`
149149
- When particular debuggers are being tested: `cdb`, `gdb`, `lldb`
150150
- When particular debugger versions are matched: `ignore-gdb-version`
151+
- When the [parallel frontend] is enabled: `ignore-parallel-frontend`
151152
- Specific [compare modes]: `compare-mode-polonius`, `compare-mode-chalk`,
152153
`compare-mode-split-dwarf`, `compare-mode-split-dwarf-single`
153154
- The two different test modes used by coverage tests:
@@ -233,6 +234,7 @@ The following directives will check LLVM support:
233234
See also [Debuginfo tests](compiletest.md#debuginfo-tests) for directives for ignoring debuggers.
234235

235236
[remote testing]: running.md#running-tests-on-a-remote-machine
237+
[parallel frontend]: compiletest.md#parallel-frontend
236238
[compare modes]: ui.md#compare-modes
237239
[`x86_64-gnu-debug`]: https://github.com/rust-lang/rust/blob/ab3dba92db355b8d97db915a2dca161a117e959c/src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile#L32
238240
[`aarch64-gnu-debug`]: https://github.com/rust-lang/rust/blob/20c909ff9cdd88d33768a4ddb8952927a675b0ad/src/ci/docker/host-aarch64/aarch64-gnu-debug/Dockerfile#L32

0 commit comments

Comments
 (0)