Commit Graph

2980 Commits

Author SHA1 Message Date
Joshua Nelson b5019d6ec3 Give a better error for download-ci-llvm if .xz is not supported
Previously:

```
curl: (22) The requested URL returned error: 404
failed to run: curl -# -y 30 -Y 10 --connect-timeout 30 --retry 3 -Sf -o /tmp/tmp6ptXJV https://ci-artifacts.rust-lang.org/rustc-builds/99ad5a1a2824fea1ecf60068fd3636beae7ea2da/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.gz
```

Now:

```
error: XZ support is required to download LLVM
help: consider disabling `download-ci-llvm` or using a different version of python
Build completed unsuccessfully in 0:00:00
```
2021-01-01 10:41:56 -05:00
Dylan DPC 30c4e6da85 Rollup merge of #80532 - tmiasko:rm;, r=Mark-Simulacrum
remove unnecessary trailing semicolon from bootstrap
2020-12-31 22:20:56 +01:00
Pietro Albini 8e0ab0fb5e bootstrap: use the correct paths during ./x.py install 2020-12-31 11:38:32 +01:00
Pietro Albini 1fab57491d bootstrap: change the dist outputs to GeneratedTarball
The struct will allow to store more context on the generated tarballs.
2020-12-31 11:38:05 +01:00
Pietro Albini aac429ffd3 bootstrap: never delete the tarball temporary directory
Files in the temporary directory are used by ./x.py install.
2020-12-31 11:34:38 +01:00
bors f0073a59cf Auto merge of #80435 - pietroalbini:compression-formats, r=Mark-Simulacrum
Only produce .xz tarballs on CI

This PR adds a `./configure` option to choose which tarball compression formats to produce, and changes our CI configuration to only produce `.xz` tarballs. The release process will then recompress everything into `.gz` when producing a release.

This will drastically reduce our storage costs for CI artifacts, as we'd stop storing the same data twice. **Stable, beta and nightly releases will not be affected by this at all.**

Before landing this we'll need to increase the VM size of our release process, to recompress everything in a reasonable amount of time.
r? `@Mark-Simulacrum`
2020-12-31 00:23:13 +00:00
bors 9775ffef2a Auto merge of #80530 - m-ou-se:rollup-zit69ko, r=m-ou-se
Rollup of 9 pull requests

Successful merges:

 - #78934 (refactor: removing library/alloc/src/vec/mod.rs ignore-tidy-filelength)
 - #79479 (Add `Iterator::intersperse`)
 - #80128 (Edit rustc_ast::ast::FieldPat docs)
 - #80424 (Don't give an error when creating a file for the first time)
 - #80458 (Some Promotion Refactoring)
 - #80488 (Do not create dangling &T in Weak<T>::drop)
 - #80491 (Miri: make size/align_of_val work for dangling raw ptrs)
 - #80495 (Rename kw::Invalid -> kw::Empty)
 - #80513 (Add regression test for #80062)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2020-12-30 21:25:15 +00:00
Mara Bos 1975142c97 Rollup merge of #80424 - jyn514:bootstrap-cleanup, r=Mark-Simulacrum
Don't give an error when creating a file for the first time

Previously, `os.remove` would always give a FileNotFound error the first
time you called it, causing bootstrap to make unnecessary copies. This
now only calls `remove()` if the file exists, avoiding the unnecessary
error.

This is a pretty small cleanup but I think it's useful. Taken from https://github.com/rust-lang/rust/pull/79540.
2020-12-30 20:56:51 +00:00
Pietro Albini 5526d90250 bootstrap: extract from any compression algorithm during distcheck 2020-12-30 16:20:23 +01:00
Mark Rousskov fe031180d0 Bump bootstrap compiler to 1.50 beta 2020-12-30 09:27:19 -05:00
Yuki Okushi 7c57d51a9f Rollup merge of #80461 - rust-lang:tmandry-patch-1, r=Mark-Simulacrum
Add llvm-libunwind change to bootstrap CHANGELOG

From #77703.

This doesn't need a `changelog-seen` version bump because the old values aren't accepted anymore, meaning anyone who was using this had to change it already.

r? ``@Mark-Simulacrum``
2020-12-30 18:15:14 +09:00
Tomasz Miąsko 83322c067e remove unnecessary trailing semicolon from bootstrap 2020-12-30 00:00:00 +00:00
Vadim Petrochenkov 4d2d0bad4e Remove compile-fail test suite 2020-12-29 23:39:56 +03:00
Pietro Albini 0a2034dca4 bootstrap: add the dist.compression-formats option
The option allows to add or remove compression formats used while
producing dist tarballs.
2020-12-29 11:56:25 +01:00
Tyler Mandry 8041ccff2c Add llvm-libunwind change to bootstrap CHANGELOG
From #77703.
2020-12-28 15:57:53 -08:00
Dylan DPC a4a59a0f17 Rollup merge of #80434 - pietroalbini:tarball-temp-dir, r=Mark-Simulacrum
bootstrap: put the component name in the tarball temp dir path

This should not matter right now, but if we ever parallelize rustbuild this will avoid tarball contents being merged together.

r? `@Mark-Simulacrum`
2020-12-28 14:13:23 +01:00
Dylan DPC 18be436550 Rollup merge of #80362 - jyn514:rustc-macros, r=ehuss
Document rustc_macros on nightly-rustc

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

![image](https://user-images.githubusercontent.com/23638587/103113442-b7ba2d00-4628-11eb-8a4d-c542f2d170e1.png)
![image](https://user-images.githubusercontent.com/23638587/103113448-bc7ee100-4628-11eb-8657-2d72e88de656.png)

r? ``@ehuss``
2020-12-28 14:13:16 +01:00
Pietro Albini f994f1e884 bootstrap: put the component name in the tarball temp dir path
This should not matter right now, but if we ever parallelize rustbuild
this will avoid tarball contents being merged together.
2020-12-28 12:51:58 +01:00
bors aef92d44e4 Auto merge of #80397 - Mark-Simulacrum:fix-bare-tarball, r=pietroalbini
Use package name for top-level directory in bare tarballs

This fixes a bug introduced by #79788.

r? `@pietroalbini`
2020-12-28 08:29:02 +00:00
Joshua Nelson 7ac02bddc7 Don't give an error when creating a file for the first time
Previously, `os.remove` would always give a FileNotFound error the first
time you called it, causing bootstrap to make unnecessary copies. This
now only calls `remove()` if the file exists, avoiding the unnecessary
error.
2020-12-27 19:55:02 -05:00
bors 76188b6830 Auto merge of #80315 - tmiasko:ignore-proc-macros, r=Mark-Simulacrum
Ignore proc-macros when assembling rustc libdir

Fixes #80294.
2020-12-27 16:03:01 +00:00
Mark Rousskov fe52a65186 Use package name for top-level directory in bare tarballs
This fixes a bug introduced by #79788.
2020-12-26 17:15:20 -05:00
bors 1f5beec3b1 Auto merge of #80316 - ehuss:rustdoc-index, r=Mark-Simulacrum
Include rustdoc in the compiler docs index.

This should help ensure that the index page at https://doc.rust-lang.org/nightly/nightly-rustc/ includes a link to the rustdoc docs as well.

Fixes #80307
2020-12-26 09:29:56 +00:00
Joshua Nelson 82acbc8a49 Document rustc_macros on nightly-rustc 2020-12-24 20:25:40 -05:00
Pietro Albini 8736731f70 bootstrap: convert reproducible-artifacts to use Tarball 2020-12-23 19:40:45 +01:00
Pietro Albini 2c081769b0 bootstrap: use the normal compiler to build std 2020-12-23 19:35:22 +01:00
Pietro Albini ae12a0c200 bootstrap: avoid producing the rust tarball during dry runs 2020-12-23 19:35:22 +01:00
Pietro Albini f18335edb2 bootstrap: convert rustc-src to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 48924ab708 bootstrap: convert rust to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 1906c42962 bootstrap: convert rust-src to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 2e0a16cf0d bootstrap: convert rust-analyzer to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini cfb23e845e bootstrap: convert rls to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 2b54f0de37 bootstrap: convert rustfmt to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 2073ea5c07 bootstrap: convert miri to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 32afb3c436 bootstrap: simplify including licenses and readmes to tarballs 2020-12-23 19:35:22 +01:00
Pietro Albini 521b884913 bootstrap: convert clippy to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 8a711a00a7 bootstrap: convert cargo to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini c4aaff65f0 bootstrap: convert rust-analysis to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini c0cadc9eb7 bootstrap: convert rustc-dev to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 79f60fbd04 bootstrap: convert rust-std to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini fd4515cb3f bootstrap: refactor showing the "dist" info 2020-12-23 19:35:22 +01:00
Pietro Albini 0a2e1c5a2c bootstrap: convert rustc to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 82d9eaa54d bootstrap: convert rust-mingw to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 8ca46fc7a8 bootstrap: convert rustc-docs to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini c768ce1384 bootstrap: convert rust-docs to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini 7be85701cd bootstrap: convert llvm-tools to use Tarball 2020-12-23 19:35:22 +01:00
Pietro Albini ddf82636c6 bootstrap: convert build-manifest to use the new Tarball struct 2020-12-23 19:35:22 +01:00
bors 3ffea60dd5 Auto merge of #80262 - Mark-Simulacrum:pgo-rustc, r=pietroalbini
Utilize PGO for rustc linux dist builds

This implements support for applying PGO to the rustc compilation step (not
standard library or any tooling, including rustdoc). Expanding PGO to more tools
is not terribly difficult but will involve more work and greater CI time
commitment.

For the same reason of avoiding greater implementation time commitment,
implementing for platforms outside of x86_64-unknown-linux-gnu is skipped.
In practice it should be quite simple to extend over time to more platforms. The
initial implementation is intentionally minimal here to avoid too much work
investment before we start seeing wins for a subset of Rust users.

The choice of workloads to profile here is somewhat arbitrary, but the general
rationale was to aim for a small set that largely avoided time regressions on
perf.rust-lang.org's full suite of crates. The set chosen is libcore, cargo (and
its dependencies), and a few ad-hoc stress tests from perf.rlo. The stress tests
are arguably the most controversial, but they benefit those cases (avoiding
regressions) and do not really remove wins from other benchmarks.

The primary next step after this PR lands is to implement support for PGO in
LLVM. It is unclear whether we can afford a full LLVM rebuild in CI, though, so
the approach taken there may need to be more staggered. rustc-only PGO seems
well affordable on linux at least, giving us up to 20% wall time wins on some
crates for 15 minutes of extra CI time (1 hour with this PR, up from 45 minutes).

The PGO data is uploaded to allow others to reuse it if attempting to reproduce
the CI build or potentially, in the future, on other platforms where an
off-by-one strategy is used for dist builds at minimal performance cost.

r? `@michaelwoerister` (but tell me if you don't want to / don't feel comfortable approving and we can find others)
2020-12-23 12:54:56 +00:00
Eric Huss a6d377d565 Include rustdoc in the compiler docs index. 2020-12-22 16:33:36 -08:00
Tomasz Miąsko 32716814a2 Ignore proc-macros when assembling rustc libdir 2020-12-23 00:00:00 +00:00