Commit graph

4834 commits

Author SHA1 Message Date
jyn
441972d18b Rename detail_exit_macro to exit
`detail` and `macro` weren't adding any info.
2023-07-13 03:24:08 -05:00
bors
1e6db3486d Auto merge of #113214 - GuillaumeGomez:try-run-fix, r=ozkanonur,jyn514
Don't fail early if `try_run` returns an error

Fixes https://github.com/rust-lang/rust/issues/113208.

Follow-up of #112962.

r? `@jyn514`
2023-07-12 13:58:10 +00:00
Jubilee
dc78cedd66
Rollup merge of #113579 - ekusiadadus:master, r=albertlarsan68
Revert "fix: 🐛 etc/bash_complettion -> src/etc/... to avoid copy …

## why

- [x] revert my broken PR

https://github.com/rust-lang/rust/pull/110906

This reverts commit 08ce68b6a6.
2023-07-11 21:00:29 -07:00
Jubilee
dff07259d0
Rollup merge of #113373 - jyn514:download-rustc-fixes, r=albertlarsan68
various download-rustc fixes

separated out from https://github.com/rust-lang/rust/pull/112143 because it keeps getting stuck in limbo.

best reviewed commit-by-commit
2023-07-11 21:00:27 -07:00
jyn
934e7e6c26 Move ci_rustc_dir to Config and use it consistently 2023-07-11 22:30:28 -05:00
ekusiadadus
05bc71cfaf Revert "fix: 🐛 etc/bash_complettion -> src/etc/... to avoid copy error"
This reverts commit 08ce68b6a6.
2023-07-12 00:54:27 +09:00
Guillaume Gomez
98336f8f6e Don't fail early if try_run returns an error 2023-07-11 17:01:35 +02:00
Matthias Krüger
40b1c5b716
Rollup merge of #113551 - jyn514:dry-run-exclude, r=ozkanonur
bootstrap: Don't print "Skipping" twice

Bootstrap executes itself twice: once with DryRun::SelfCheck and DryRun::Disabled. Change it not to print the "Skipping" message if SelfCheck is enabled.

See https://github.com/rust-lang/rust/actions/runs/5503931599/jobs/10029625567?pr=113514#step:24:772.
2023-07-11 00:58:18 +02:00
jyn
8c91c8fe84 Don't print "Skipping" twice
Bootstrap executes itself twice: once with DryRun::SelfCheck and DryRun::Disabled.
Change it not to print the "Skipping" message if SelfCheck is enabled.

See https://github.com/rust-lang/rust/actions/runs/5503931599/jobs/10029625567?pr=113514#step:24:772.
2023-07-10 15:19:54 -05:00
bors
1065d876cd Auto merge of #113341 - Kobzol:stage0-sysroot, r=Mark-Simulacrum
Copy stage0 `rustc` binaries to `stage0-sysroot`

This is basically a revival of https://github.com/rust-lang/rust/pull/101711 and https://github.com/rust-lang/rust/pull/107956, with an added check that the full sysroot will only be created if the original rustc comes from `stage0/bin`.

What is/should be tested:

- [x] `rustup toolchain link stage0` (new libstd is used correctly)
- [x]  `python3 x.py fmt dist --stage 0`
- [x] Custom rustc/cargo in `config.toml` (in this case this logic is ignored)
- [x]  Perfbot (try perf run has succeeded)
- [x] Real use case (https://github.com/rust-lang/backtrace-rs/pull/542)

(Hopefully) fixes: https://github.com/rust-lang/rust/issues/101691

This is not the "end all, be all" solution to this problem, but as long as it resolves the basic use-case, and doesn't break perfbot, I say ship it. This code will probably be nuked anyway Soon™ because of the stage redesign.
2023-07-09 18:41:32 +00:00
Matthias Krüger
a46589f76b
Rollup merge of #113273 - hi-rustin:rustin-patch-opt-level, r=Kobzol
Use String or Int to set the opt level

Address https://github.com/rust-lang/rust/pull/112756/files#r1249345725

Use String or Int to set the opt level.

r? ``@jyn514``
2023-07-09 16:33:36 +02:00
Jakub Beránek
91d2fb2e2b
Port PGO/LTO/BOLT optimized build pipeline to Rust 2023-07-09 08:39:50 +02:00
hi-rustin
92b5d0c4cb Use String or Int to set the opt level
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-09 13:53:26 +08:00
bors
d1389b9b48 Auto merge of #113484 - matthiaskrgr:rollup-goq2u0d, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #112931 (Enable zlib in LLVM on aarch64-apple-darwin)
 - #113158 (tests: unset `RUSTC_LOG_COLOR` in a test)
 - #113173 (CI: include workflow name in concurrency group)
 - #113335 (Reveal opaques in new solver)
 - #113390 (CGU formation tweaks)
 - #113399 (Structurally normalize again for byte string lit pat checking)
 - #113412 (Add basic types to SMIR)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-07-08 18:36:58 +00:00
Nilstrieb
c80333edfb Fail the build if clippy tests don't pass
This was removed in
https://github.com/rust-lang/rust/pull/113260/commits/de69d556eb5006a21f868b8c12d48f0ef1308a5a#diff-8479eab02701e686aedb15b567dc8fc31220c6e4efb9565ccc9d662b7fee2214
which caused CI to ignore clippy failures. This adds back the exit,
which should cause CI to fail again if a test is broken (like right
now, as clippy tests are broken on master).
2023-07-08 16:46:42 +02:00
Matthias Krüger
3e03a48c18
Rollup merge of #112931 - cbeuw:apple-zlib, r=Mark-Simulacrum
Enable zlib in LLVM on aarch64-apple-darwin

Works on macOS 13.4, Xcode version 14.3.1.0.1.1683849156

This was disabled in #75500 on Apple Silicon Developer Transition Kit, but Apple appears to have fixed their zlib now
2023-07-08 15:49:44 +02:00
fee1-dead
70e8f9d4c0
Rollup merge of #113371 - jyn514:submodule-with-tags, r=albertlarsan68
Fix submodule handling when the current branch is named after a tag

If:
1. The current branch has the same name as git tag, and
2. The current branch is set to track a remote other than `origin`, and
3. We try to update a submodule

then we'll get the following error:
```
; x c
Updating submodule src/doc/reference
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
fatal: 'personal' does not appear to be a git repository
fatal: Could not read from remote repository.
```

The problem is that 1. causes `git symbolic-ref --short HEAD` to try and disambiguate the branch from the tag using `heads/branch-name`, which breaks a previous workaround for a bug in `git submodule update` that uses the wrong remote.

Adapt the workaround to strip `heads/` from the output.
2023-07-06 09:20:34 +08:00
jyn
baae59eea3 allow mixing llvm.assertions and download-rustc
by using `rustc-builds-alt` if download-rustc is set

this also changes the download code to use a separate build/cache/ directory and .rustc-stamp stamp file depending on whether assertions are enabled.
2023-07-05 11:39:34 -05:00
jyn
1f0487faec fix x test --stage 0 core 2023-07-05 11:04:28 -05:00
jyn
32057b7ec3 check ci-rustc options 2023-07-05 11:04:28 -05:00
jyn
e153d82c76 Make --dry-run more useful when download-rustc is enabled
Previously, it would always treat download-rustc as set to false, which made bootstrap issues with
download-rustc hard to debug.
2023-07-05 10:59:33 -05:00
jyn
6c7017fa0a Fix submodule handling when the current branch is named after a tag
If:
1. The current branch has the same name as git tag, and
2. The current branch is set to track a remote other than `origin`, and
3. We try to update a submodule

then we'll get the following error:
```
; x c
Updating submodule src/doc/reference
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
fatal: 'personal' does not appear to be a git repository
fatal: Could not read from remote repository.
```

The problem is that 1. causes `git symbolic-ref --short HEAD` to try and disambiguate the branch
from the tag using `heads/branch-name`, which breaks a previous workaround for a bug in `git
submodule update` that uses the wrong remote.

Adapt the workaround to strip `heads/` from the output.
2023-07-05 10:56:41 -05:00
Michael Goulet
560136f15d
Rollup merge of #113356 - he32:netbsd-riscv64, r=oli-obk
Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd.
2023-07-05 08:45:46 -07:00
Michael Goulet
1cb958a225
Rollup merge of #113010 - klensy:ri-rls-fmt, r=ozkanonur
rust-installer & rls: remove exclusion from rustfmt & tidy

<strike>based on #112884</strike>

`rust-installer` and `rls` no longer submodules, but not removed from exclude list for rustfmt and tidy, preventing running fmt and lints on them.
2023-07-05 08:45:42 -07:00
Havard Eidnes
6cc37bbee0 Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd. 2023-07-05 13:49:01 +00:00
bors
6dab6dc5fc Auto merge of #112697 - tgross35:explain-markdown, r=oli-obk
Add simple markdown formatting to `rustc --explain` output

This is a second attempt at #104540, which is #63128 without dependencies.

This PR adds basic markdown formatting to `rustc --explain` output when available. Currently, the output just displays raw markdown: this works of course, but it really doesn't look very elegant. (output is `rustc --explain E0038`)

<img width="583" alt="image" src="https://github.com/rust-lang/rust/assets/13724985/ea418117-47af-455b-83c0-6fc59276efee">

After this patch, sample output from the same file:

<img width="693" alt="image" src="https://github.com/rust-lang/rust/assets/13724985/12f7bf9b-a3fe-4104-b74b-c3e5227f3de9">

This also obeys the `--color always/auto/never` command option. Behavior:

- If pager is available and supports color, print with formatting to the pager
- If pager is not available or fails print with formatting to stdout - otherwise without formatting
- Follow `--color always/never` if suppied
- If everything fails, just print plain text to stdout

r? `@oli-obk`
cc `@estebank`
(since the two of you were involved in the previous discussion)
2023-07-05 06:18:46 +00:00
Jakub Beránek
bb8c497566
Copy stage0 rustc binaries to stage0-sysroot 2023-07-04 22:53:45 +02:00
klensy
ab914cf9f7 bootstrap: rust-installer no loger subtree, so allow running lints over it 2023-07-04 19:19:50 +03:00
Michael Goulet
c6fcbaae0f Remove compare mode 2023-07-03 21:40:04 +00:00
Trevor Gross
6a1c10bd85 Add a simple markdown parser for formatting rustc --explain
Currently, the output of `rustc --explain foo` displays the raw markdown in a
pager. This is acceptable, but using actual formatting makes it easier to
understand.

This patch consists of three major components:

1.  A markdown parser. This is an extremely simple non-backtracking recursive
    implementation that requires normalization of the final token stream
2.  A utility to write the token stream to an output buffer
3.  Configuration within rustc_driver_impl to invoke this combination for
    `--explain`. Like the current implementation, it first attempts to print to
    a pager with a fallback colorized terminal, and standard print as a last
    resort.

    If color is disabled, or if the output does not support it, or if printing
    with color fails, it will write the raw markdown (which matches current
    behavior).

    Pagers known to support color are: `less` (with `-r`), `bat` (aka `catbat`),
    and `delta`.

The markdown parser does not support the entire markdown specification, but
should support the following with reasonable accuracy:

-   Headings, including formatting
-   Comments
-   Code, inline and fenced block (no indented block)
-   Strong, emphasis, and strikethrough formatted text
-   Links, anchor, inline, and reference-style
-   Horizontal rules
-   Unordered and ordered list items, including formatting

This parser and writer should be reusable by other systems if ever needed.
2023-07-03 16:04:18 -04:00
bors
32d81eccd6 Auto merge of #113260 - flip1995:clippyup, r=Manishearth
Update Clippy

r? `@Manishearth`

cc `@oli-obk` (for the ui-test changes in de69d556eb and the valtree fix in 0cbe963e51)

Fixes https://github.com/rust-lang/rust/issues/102093

This must've been the most involved Clippy sync ever.
2023-07-02 15:14:59 +00:00
Philipp Krones
de69d556eb
Fix compile-test tests to work with the new ui_test crate 2023-07-02 15:07:39 +02:00
Matthias Krüger
efd2739ac4
Rollup merge of #113244 - Kobzol:bootstrap-rust-analyzer-tests, r=jyn514
Make Rust Analyzer tests faster by compiling less code

This should bring down the test duration of RA significantly.
2023-07-02 10:27:22 +02:00
Matthias Krüger
a353cb0cd8
Rollup merge of #113234 - jyn514:revert-python-test-args, r=clubby789
Don't pass --test-args to `python -m unitest`

The args for unittest and cargo test are mutually incompatible. Suggest that people use `python -m unittest ...` manually instead.

This also changes `bootstrap_test.py` to be easier to run standalone; see the commit for details.

r? `@clubby789` cc https://github.com/rust-lang/rust/pull/112281#discussion_r1248849172
2023-07-02 10:27:22 +02:00
bors
be6e38c617 Auto merge of #112756 - hi-rustin:rustin-patch-bootstrap, r=clubby789
Use RustOptimize to set optimize

close https://github.com/rust-lang/rust/issues/112678

Use RustOptimize to set optimize.
2023-07-02 04:54:15 +00:00
hi-rustin
7cab8f7862 Fix broken tests
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-02 12:07:25 +08:00
Jakub Beránek
b9df85f6ed
Make Rust Analyzer tests faster by compiling less code 2023-07-01 21:07:28 +02:00
jyn
85372005e7 Don't pass --test-args to python -m unitest
The args for unittest and cargo test are mutually incompatible. Suggest that people use `python -m unittest ...` manually instead.

This also changes `bootstrap_test.py` to be easier to run standalone; see the commit for details.
2023-07-01 11:13:08 -05:00
hi-rustin
878eff1207 Add tests for RustOptimize
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-01 16:59:35 +08:00
hi-rustin
e6e2825bb0 Use RustOptimize to set optimize
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-01 16:03:42 +08:00
Rémy Rakic
a158053e35 msvc dist extended: rust-analyzer is optional
The windows tarballs and installers expect rust-analyzer to be present, but
it's not always the case. For example, in try builds.
2023-07-01 07:58:55 +00:00
Rémy Rakic
8a4a6f79dd msvc dist extended: clippy is optional
The windows tarballs and installers expect clippy to be present, but
it's not always the case. For example, in try builds.
2023-07-01 07:55:33 +00:00
Matthias Krüger
a2c18616e3
Rollup merge of #113185 - jyn514:dist-channel, r=ozkanonur
Set `channel = nightly` in dist profile

This avoids some channel-specific defaults leaking into local installs. It also makes it easier to set options for compiler/library/codegen profiles in the future, since they can be gated off `channel` instead of being duplicated between all three files.

Here are the exact things `channel` controls today:
68d458bb40/src/bootstrap/llvm.rs (L466-L470)
85c4ea0138/src/bootstrap/config.rs (L1374-L1375)
85c4ea0138/src/bootstrap/config.rs (L1464-L1465)
``@cuviper`` i expect you don't want any of those to be set in distro builds, right?
2023-07-01 00:35:05 +02:00
jyn
368f51743b Set channel = nightly in dist profile 2023-06-29 23:37:20 -05:00
Matthias Krüger
f00db43e97
Rollup merge of #112300 - Zalathar:run-coverage, r=wesleywiser
Convert `run-make/coverage-reports` tests to use a custom compiletest mode

I was frustrated by the fact that most of the coverage tests are glued together with makefiles and shell scripts, so I tried my hand at converting most of them over to a newly-implemented `run-coverage` mode/suite in compiletest.

This ~~*mostly*~~ resolves #85009, ~~though I've left a small number of the existing tests as-is because they would require more work to fix/support~~.

---

I had time to go back and add support for the more troublesome tests that I had initially skipped over, so this PR now manages to completely get rid of `run-make/coverage-reports`.

---

The patches are arranged as follows:

- Declare the new mode/suite in bootstrap
- Small changes to compiletest that will be used by the new mode
- Implement the new mode in compiletest
- Migrate most of the tests over
- Add more code to bootstrap and compiletest to support the remaining tests
- Migrate the remaining tests (with some temporary hacks to avoid re-blessing them)
- Remove the temporary hacks and re-bless the migrated tests
- Remove the unused remnants of `run-make/coverage-reports`
2023-06-29 16:36:31 +02:00
Matthias Krüger
93a97c7a2a
Rollup merge of #112234 - ozkanonur:hotfix, r=jyn514
refactor `tool_doc!`

resolves https://github.com/rust-lang/rust/pull/112211#discussion_r1215190510
2023-06-29 16:36:30 +02:00
ozkanonur
cde54ffc99 refactor tool_doc! so that it can accept additional arguments.
Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-06-29 12:37:48 +03:00
Takayuki Maeda
376c944bd2
Rollup merge of #113048 - psumbera:solaris-bootstrap-cfgs, r=ozkanonur
Fix build on Solaris where fd-lock cannot be used.

This fixes build regression after e7e584b7d9.

Resolves #113085
2023-06-29 03:29:32 +09:00
Dylan DPC
fa56e01b35
Rollup merge of #111571 - jhpratt:proc-macro-span, r=m-ou-se
Implement proposed API for `proc_macro_span`

As proposed in [#54725 (comment)](https://github.com/rust-lang/rust/issues/54725#issuecomment-1546918161). I have omitted the byte-level API as it's already available as [`Span::byte_range`](https://doc.rust-lang.org/nightly/proc_macro/struct.Span.html#method.byte_range).

`@rustbot` label +A-proc-macros

r? `@m-ou-se`
2023-06-28 18:28:46 +05:30
Zalathar
d05653cbe0 Declare a run-coverage-rustdoc suite for coverage tests that need rustdoc 2023-06-28 11:09:19 +10:00