-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 4bdac26
Showing
77 changed files
with
2,898 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
[alias] | ||
xtask = "run --package xtask --" | ||
|
||
[profile.show-asm] | ||
inherits = "release" | ||
# more determinism | ||
codegen-units=1 | ||
# Values other than "thin" and "fat" cause the assembly to change in an undesirable way. It makes functions that have the same assembly link to eachother via ".set". | ||
lto = "thin" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
on: | ||
push: | ||
branches: [ "master" ] | ||
pull_request: | ||
branches: [ "master" ] | ||
|
||
jobs: | ||
# We intentionally hardcode the stable/current version for the following reasons: | ||
# | ||
# - It makes it less likely that CI starts failing in the future despite the project not changing. | ||
# - It makes us independent of the default Rust version that the Github runner comes with. | ||
check_stable: | ||
runs-on: ubuntu-24.04 | ||
steps: | ||
- run: sudo apt-get -qq install gcc-multilib qemu-user | ||
- run: | | ||
rustup --quiet toolchain uninstall stable | ||
rustup --quiet toolchain install 1.82 --profile=default | ||
rustup --quiet default 1.82 | ||
- run: cargo install --quiet cargo-show-asm | ||
- uses: actions/checkout@v4 | ||
- run: cargo fmt --check | ||
- run: cargo fetch --quiet --locked | ||
- run: cargo clippy --quiet --workspace --all-targets -- --D=warnings | ||
- run: cargo test --quiet --workspace | ||
- run: cargo build --quiet --package xtask | ||
- run: target/debug/xtask all | ||
- name: Detect changes in generated assembly | ||
run: | | ||
echo a > "generated assembly/b" | ||
if git status --porcelain -- "generated assembly" | grep ^; then | ||
echo Generated assembly has changed but the changes were not committed. | ||
git diff -- "generated assembly" | ||
exit 1 | ||
fi | ||
# For the MSRV we only care about the code compiling. | ||
check_minimum_supported_rust_version: | ||
runs-on: ubuntu-24.04 | ||
steps: | ||
- run: sudo apt-get -qq install gcc-multilib | ||
- run: | | ||
rustup --quiet toolchain uninstall stable | ||
rustup --quiet toolchain install 1.82 --profile=default | ||
rustup --quiet toolchain install 1.71 --profile=minimal | ||
rustup --quiet default 1.71 | ||
- uses: actions/checkout@v4 | ||
- run: cargo fetch --quiet --locked | ||
# xtask does not use MSRV because we don't publish it. xtask's internal cargo calls use the default rustup pipeline, which is the MSRV. Note that we cannot run xtask through cargo because that forces the toolchain version for building xtask to be the same as the toolchain version for xtask's internal cargo calls through the RUSTUP_TOOLCHAIN environment variable. | ||
- run: cargo +1.82 build --quiet --package xtask | ||
- run: target/debug/xtask check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/target |
Oops, something went wrong.