Skip to content

Commit b9245bd

Browse files
Merge branch 'rust-lang:master' into fix-questionmark-linking
2 parents 9c3b53d + 9a7e19f commit b9245bd

File tree

18,445 files changed

+874253
-328655
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

18,445 files changed

+874253
-328655
lines changed

.editorconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ end_of_line = lf
99
charset = utf-8
1010
trim_trailing_whitespace = true
1111
insert_final_newline = true
12+
13+
[!src/llvm-project]
1214
indent_style = space
1315
indent_size = 4
1416

.git-blame-ignore-revs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ ec2cc761bc7067712ecc7734502f703fe3b024c8
2929
99cb0c6bc399fb94a0ddde7e9b38e9c00d523bad
3030
# reformat with rustfmt edition 2024
3131
c682aa162b0d41e21cc6748f4fecfe01efb69d1f
32+
# reformat with updated edition 2024
33+
1fcae03369abb4c2cc180cd5a49e1f4440a81300
34+
# Breaking up of compiletest runtest.rs
35+
60600a6fa403216bfd66e04f948b1822f6450af7

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*.h rust
66
*.rs rust diff=rust
77
*.fixed linguist-language=Rust
8+
*.pp linguist-language=Rust
89
*.mir linguist-language=Rust
910
src/etc/installer/gfx/* binary
1011
src/vendor/** -text

.github/ISSUE_TEMPLATE/bootstrap.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
name: Bootstrap (Rust Build System) Report
3+
about: Issues encountered on bootstrap build system
4+
labels: C-bug, T-bootstrap
5+
---
6+
7+
<!--
8+
Thank you for submitting a bootstrap report! Please provide detailed information to help us reproduce and diagnose the issue.
9+
-->
10+
11+
### Summary
12+
13+
<!--
14+
Provide a brief description of the problem you are experiencing.
15+
-->
16+
17+
### Command used
18+
19+
```sh
20+
<command>
21+
```
22+
23+
### Expected behaviour
24+
25+
<!--
26+
Describe what you expected to happen.
27+
-->
28+
29+
### Actual behaviour
30+
31+
<!--
32+
Describe what actually happened.
33+
-->
34+
35+
### Bootstrap configuration (bootstrap.toml)
36+
```toml
37+
<config>
38+
```
39+
40+
### Operating system
41+
42+
<!--
43+
e.g., Ubuntu 22.04, macOS 12, Windows 10
44+
-->
45+
46+
### HEAD
47+
48+
<!--
49+
Output of `git rev-parse HEAD` command, or content of the `git-commit-hash` file if using a tarball source.
50+
-->
51+
52+
### Additional context
53+
<!--
54+
Include any other relevant information (e.g., if you have custom patches or modifications on the project).
55+
-->
56+
57+
58+
<!--
59+
Include the complete build log in the section below.
60+
Enable backtrace and verbose mode if possible for more detailed information e.g., with `RUST_BACKTRACE=1 ./x build -v`.
61+
-->
62+
<details><summary>Build Log</summary>
63+
<p>
64+
65+
```txt
66+
<log>
67+
```
68+
69+
</p>
70+
</details>

.github/ISSUE_TEMPLATE/library_tracking_issue.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Library Tracking Issue
33
about: A tracking issue for an unstable library feature.
44
title: Tracking Issue for XXX
5-
labels: C-tracking-issue, T-libs-api
5+
labels: C-tracking-issue, T-libs-api, S-tracking-unimplemented
66
---
77
<!--
88
Thank you for creating a tracking issue!
@@ -49,6 +49,8 @@ For larger features, more steps might be involved.
4949
If the feature is changed later, please add those PRs here as well.
5050
-->
5151

52+
(Remember to update the `S-tracking-*` label when checking boxes.)
53+
5254
- [ ] Implementation: #...
5355
- [ ] Final comment period (FCP)[^1]
5456
- [ ] Stabilization PR

.github/ISSUE_TEMPLATE/tracking_issue.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ for larger features an implementation could be broken up into multiple PRs.
4141
- [ ] Implement the RFC (cc @rust-lang/XXX -- can anyone write up mentoring
4242
instructions?)
4343
- [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide])
44-
- [ ] Formatting for new syntax has been added to the [Style Guide] ([nightly-style-procedure])
44+
- [ ] Style updates for any new syntax ([nightly-style-procedure])
45+
- [ ] Style team decision on new formatting
46+
- [ ] Formatting for new syntax has been added to the [Style Guide]
47+
- [ ] (non-blocking) Formatting has been implemented in `rustfmt`
4548
- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])
4649

4750
[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr

.github/pull_request_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ tracking issue or there are none, feel free to ignore this.
77
This PR will get automatically assigned to a reviewer. In case you would like
88
a specific user to review your work, you can assign it to them by using
99
10-
r\? <reviewer name> (with the `\` removed)
10+
r? <reviewer name>
1111
-->
1212
<!-- homu-ignore:end -->

.github/workflows/ci.yml

Lines changed: 85 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file defines our primary CI workflow that runs on pull requests
22
# and also on pushes to special branches (auto, try).
33
#
4-
# The actual definition of the executed jobs is calculated by a Python
5-
# script located at src/ci/github-actions/calculate-job-matrix.py, which
4+
# The actual definition of the executed jobs is calculated by the
5+
# `src/ci/citool` crate, which
66
# uses job definition data from src/ci/github-actions/jobs.yml.
77
# You should primarily modify the `jobs.yml` file if you want to modify
88
# what jobs are executed in CI.
@@ -53,48 +53,54 @@ jobs:
5353
steps:
5454
- name: Checkout the source code
5555
uses: actions/checkout@v4
56+
# Cache citool to make its build faster, as it's in the critical path.
57+
# The rust-cache doesn't bleed into the main `job`, so it should not affect any other
58+
# Rust compilation.
59+
- name: Cache citool
60+
uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
61+
with:
62+
workspaces: src/ci/citool
5663
- name: Calculate the CI job matrix
5764
env:
5865
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
59-
run: python3 src/ci/github-actions/calculate-job-matrix.py >> $GITHUB_OUTPUT
66+
run: |
67+
cd src/ci/citool
68+
CARGO_INCREMENTAL=0 cargo test
69+
CARGO_INCREMENTAL=0 cargo run calculate-job-matrix >> $GITHUB_OUTPUT
6070
id: jobs
6171
job:
62-
name: ${{ matrix.name }}
72+
name: ${{ matrix.full_name }}
6373
needs: [ calculate_matrix ]
6474
runs-on: "${{ matrix.os }}"
65-
defaults:
66-
run:
67-
shell: ${{ contains(matrix.os, 'windows') && 'msys2 {0}' || 'bash' }}
6875
timeout-minutes: 360
6976
env:
70-
CI_JOB_NAME: ${{ matrix.image }}
77+
CI_JOB_NAME: ${{ matrix.name }}
78+
CI_JOB_DOC_URL: ${{ matrix.doc_url }}
79+
GITHUB_WORKFLOW_RUN_ID: ${{ github.run_id }}
80+
GITHUB_REPOSITORY: ${{ github.repository }}
7181
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
7282
# commit of PR sha or commit sha. `GITHUB_SHA` is not accurate for PRs.
7383
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
7484
DOCKER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7585
SCCACHE_BUCKET: rust-lang-ci-sccache2
86+
SCCACHE_REGION: us-west-1
7687
CACHE_DOMAIN: ci-caches.rust-lang.org
7788
continue-on-error: ${{ matrix.continue_on_error || false }}
7889
strategy:
7990
matrix:
8091
# Check the `calculate_matrix` job to see how is the matrix defined.
8192
include: ${{ fromJSON(needs.calculate_matrix.outputs.jobs) }}
8293
steps:
83-
- if: contains(matrix.os, 'windows')
84-
uses: msys2/setup-msys2@v2.22.0
85-
with:
86-
# i686 jobs use mingw32. x86_64 and cross-compile jobs use mingw64.
87-
msystem: ${{ contains(matrix.name, 'i686') && 'mingw32' || 'mingw64' }}
88-
# don't try to download updates for already installed packages
89-
update: false
90-
# don't try to use the msys that comes built-in to the github runner,
91-
# so we can control what is installed (i.e. not python)
92-
release: true
93-
# Inherit the full path from the Windows environment, with MSYS2's */bin/
94-
# dirs placed in front. This lets us run Windows-native Python etc.
95-
path-type: inherit
96-
install: >
97-
make
94+
- name: Install cargo in AWS CodeBuild
95+
if: matrix.codebuild
96+
run: |
97+
# Check if cargo is installed
98+
if ! command -v cargo &> /dev/null; then
99+
echo "Cargo not found, installing Rust..."
100+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal
101+
# Make cargo available in PATH
102+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
103+
fi
98104
99105
- name: disable git crlf conversion
100106
run: git config --global core.autocrlf false
@@ -109,7 +115,7 @@ jobs:
109115
# intensive jobs to run on free runners, which however also have
110116
# less disk space.
111117
- name: free up disk space
112-
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
118+
run: src/ci/scripts/free-disk-space.sh
113119
if: matrix.free_disk
114120

115121
# Rust Log Analyzer can't currently detect the PR number of a GitHub
@@ -130,9 +136,6 @@ jobs:
130136
# which then uses log commands to actually set them.
131137
EXTRA_VARIABLES: ${{ toJson(matrix.env) }}
132138

133-
- name: setup upstream remote
134-
run: src/ci/scripts/setup-upstream-remote.sh
135-
136139
- name: ensure the channel matches the target branch
137140
run: src/ci/scripts/verify-channel.sh
138141

@@ -173,6 +176,8 @@ jobs:
173176
run: src/ci/scripts/install-ninja.sh
174177

175178
- name: enable ipv6 on Docker
179+
# Don't run on codebuild because systemctl is not available
180+
if: ${{ !matrix.codebuild }}
176181
run: src/ci/scripts/enable-docker-ipv6.sh
177182

178183
# Disable automatic line ending conversion (again). On Windows, when we're
@@ -192,9 +197,33 @@ jobs:
192197
- name: ensure the stable version number is correct
193198
run: src/ci/scripts/verify-stable-version-number.sh
194199

200+
# Show the environment just before we run the build
201+
# This makes it easier to diagnose problems with the above install scripts.
202+
- name: show the current environment
203+
run: src/ci/scripts/dump-environment.sh
204+
205+
# Pre-build citool before the following step uninstalls rustup
206+
# Build it into the build directory, to avoid modifying sources
207+
- name: build citool
208+
run: |
209+
cd src/ci/citool
210+
CARGO_INCREMENTAL=0 CARGO_TARGET_DIR=../../../build/citool cargo build
211+
195212
- name: run the build
196-
# Redirect stderr to stdout to avoid reordering the two streams in the GHA logs.
197-
run: src/ci/scripts/run-build-from-ci.sh 2>&1
213+
run: |
214+
set +e
215+
# Redirect stderr to stdout to avoid reordering the two streams in the GHA logs.
216+
src/ci/scripts/run-build-from-ci.sh 2>&1
217+
STATUS=$?
218+
set -e
219+
220+
if [[ "$STATUS" -ne 0 && -n "$CI_JOB_DOC_URL" ]]; then
221+
echo "****************************************************************************"
222+
echo "To find more information about this job, visit the following URL:"
223+
echo "$CI_JOB_DOC_URL"
224+
echo "****************************************************************************"
225+
fi
226+
exit ${STATUS}
198227
env:
199228
AWS_ACCESS_KEY_ID: ${{ env.CACHES_AWS_ACCESS_KEY_ID }}
200229
AWS_SECRET_ACCESS_KEY: ${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}
@@ -228,16 +257,37 @@ jobs:
228257
# erroring about invalid credentials instead.
229258
if: github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1'
230259

260+
- name: postprocess metrics into the summary
261+
# This step is not critical, and if some I/O problem happens, we don't want
262+
# to cancel the build.
263+
continue-on-error: true
264+
run: |
265+
if [ -f build/metrics.json ]; then
266+
METRICS=build/metrics.json
267+
elif [ -f obj/build/metrics.json ]; then
268+
METRICS=obj/build/metrics.json
269+
else
270+
echo "No metrics.json found"
271+
exit 0
272+
fi
273+
274+
# Get closest bors merge commit
275+
PARENT_COMMIT=`git rev-list --author='bors <bors@rust-lang.org>' -n1 --first-parent HEAD^1`
276+
277+
./build/citool/debug/citool postprocess-metrics \
278+
--job-name ${CI_JOB_NAME} \
279+
--parent ${PARENT_COMMIT} \
280+
${METRICS} >> ${GITHUB_STEP_SUMMARY}
281+
231282
- name: upload job metrics to DataDog
283+
# This step is not critical, and if some I/O problem happens, we don't want
284+
# to cancel the build.
285+
continue-on-error: true
232286
if: needs.calculate_matrix.outputs.run_type != 'pr'
233287
env:
234-
DATADOG_SITE: datadoghq.com
235288
DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}
236-
DD_GITHUB_JOB_NAME: ${{ matrix.name }}
237-
run: |
238-
cd src/ci
239-
npm ci
240-
python3 scripts/upload-build-metrics.py ../../build/cpu-usage.csv
289+
DD_GITHUB_JOB_NAME: ${{ matrix.full_name }}
290+
run: ./build/citool/debug/citool upload-build-metrics build/cpu-usage.csv
241291

242292
# This job isused to tell bors the final status of the build, as there is no practical way to detect
243293
# when a workflow is successful listening to webhooks only in our current bors implementation (homu).

0 commit comments

Comments
 (0)