feat: implement InPlaceWrite<T> for &'static mut MaybeUninit<T>
#365
Workflow file for this run
This file contains hidden or 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
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [main, kernel, next] | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '7 7 * * *' | |
| name: CI | |
| jobs: | |
| fmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rustfmt | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: git rebase --exec 'cargo fmt --check --all' --root | |
| readme: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - run: cargo install cargo-rdme | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: git rebase --exec 'cargo rdme --check' --root | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: git rebase --exec 'cargo doc --all-features --no-deps' --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: clippy | |
| - run: cargo install cargo-hack | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| # examples and tests require `alloc`, since they make extensive use of `Box` etc. | |
| - run: | | |
| echo '#!/bin/bash | |
| set -e | |
| cargo hack \ | |
| --clean-per-run \ | |
| --feature-powerset \ | |
| clippy \ | |
| --all-targets \ | |
| --locked \ | |
| --features alloc | |
| cargo clean' > exec.sh | |
| git rebase --exec 'bash exec.sh' --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| # the core lib does not, so also check that without the alloc feature. | |
| - run: | | |
| echo '#!/bin/bash | |
| set -e | |
| cargo hack \ | |
| --clean-per-run \ | |
| --feature-powerset \ | |
| clippy \ | |
| --lib \ | |
| --locked | |
| cargo clean' > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| ui-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - run: cargo install cargo-expand | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: git rebase --exec 'cargo test ui_ --locked --all-targets' --root | |
| env: | |
| RUSTFLAGS: > | |
| -Dwarnings | |
| --cfg UI_TESTS | |
| nightly: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| kind: | |
| - "check --all-targets" | |
| - "test --all-targets" | |
| # doctests are strangely not included in --all-targets | |
| - "--features default test --doc" | |
| name: "nightly/${{matrix.kind}}" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - run: cargo install cargo-expand | |
| - run: cargo install cargo-hack | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: | | |
| echo '#!/bin/bash | |
| set -e | |
| cargo hack \ | |
| --clean-per-run \ | |
| --feature-powerset \ | |
| ${{matrix.kind}} \ | |
| --locked | |
| cargo clean' > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| beta: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| kind: | |
| - "check --all-targets" | |
| - "test --all-targets" | |
| # doctests are strangely not included in --all-targets | |
| - "--features default test --doc" | |
| name: "beta/${{matrix.kind}}" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@beta | |
| with: | |
| components: rust-src | |
| - run: cargo install cargo-expand | |
| - run: cargo install cargo-hack | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: | | |
| echo '#!/bin/bash | |
| set -e | |
| cargo hack \ | |
| --clean-per-run \ | |
| --feature-powerset \ | |
| ${{matrix.kind}} \ | |
| --locked | |
| cargo clean' > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| RUSTC_BOOTSTRAP: 1 | |
| miri: | |
| runs-on: ubuntu-latest | |
| name: "miri (${{matrix.MIRIFLAGS}})" | |
| strategy: | |
| matrix: | |
| MIRIFLAGS: | |
| - "" | |
| - "-Zmiri-tree-borrows" | |
| - "-Zmiri-strict-provenance" | |
| - "-Zmiri-tree-borrows -Zmiri-strict-provenance" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - run: | | |
| echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV | |
| - name: Install ${{env.NIGHTLY}} | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{env.NIGHTLY}} | |
| components: miri, rust-src | |
| - run: cargo install cargo-expand | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: git rebase --exec 'cargo miri test --locked --all-targets' --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| MIRIFLAGS: ${{matrix.MIRIFLAGS}} | |
| # doctests are strangely not included in --all-targets | |
| - run: git rebase --exec 'cargo miri test --locked --doc' --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| MIRIFLAGS: ${{matrix.MIRIFLAGS}} | |
| sanitizers: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| targets: ["--doc", "--all-targets"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - name: enable debug symbols | |
| run: | | |
| sudo apt install llvm | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| # sed because of https://github.com/japaric/rust-san#unrealiable-leaksanitizer | |
| - run: | | |
| echo "#!/bin/bash | |
| set -e | |
| sed -i '/\[features\]/i [profile.dev]' Cargo.toml \ | |
| && sed -i '/profile.dev/a opt-level = 1' Cargo.toml \ | |
| && cargo test --lib --tests --target x86_64-unknown-linux-gnu \ | |
| && git restore Cargo.toml" > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0" | |
| RUSTFLAGS: > | |
| --cfg NO_ALLOC_FAIL_TESTS | |
| -Z sanitizer=address | |
| -Dwarnings | |
| # sed because of https://github.com/japaric/rust-san#unrealiable-leaksanitizer | |
| # doctests are strangely not included in --all-targets | |
| - run: | | |
| echo "#!/bin/bash | |
| set -e | |
| sed -i '/\[features\]/i [profile.dev]' Cargo.toml \ | |
| && sed -i '/profile.dev/a opt-level = 1' Cargo.toml \ | |
| && cargo test --doc --target x86_64-unknown-linux-gnu \ | |
| && git restore Cargo.toml" > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0" | |
| RUSTFLAGS: > | |
| --cfg NO_ALLOC_FAIL_TESTS | |
| -Z sanitizer=address | |
| -Dwarnings | |
| - run: | | |
| git rebase --exec \ | |
| 'cargo test --all-targets --target x86_64-unknown-linux-gnu' \ | |
| --root | |
| env: | |
| RUSTFLAGS: > | |
| --cfg NO_ALLOC_FAIL_TESTS | |
| -Z sanitizer=leak | |
| -Dwarnings | |
| # doctests are strangely not included in --all-targets | |
| - run: | | |
| git rebase --exec \ | |
| 'cargo test --doc --target x86_64-unknown-linux-gnu' \ | |
| --root | |
| env: | |
| RUSTFLAGS: > | |
| --cfg NO_ALLOC_FAIL_TESTS | |
| -Z sanitizer=leak | |
| -Dwarnings | |
| msrv: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| kind: ["check", "test"] | |
| name: "msrv/${{matrix.kind}}" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cargo install cargo-hack | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: | | |
| echo '#!/bin/bash | |
| set -e | |
| cargo hack \ | |
| --clean-per-run \ | |
| --feature-powerset \ | |
| --exclude-features alloc \ | |
| --exclude-features unsafe-pinned \ | |
| --exclude-features default \ | |
| --version-range 1.82.. \ | |
| --clean-per-version \ | |
| ${{matrix.kind}} \ | |
| --locked \ | |
| --all-targets | |
| cargo clean' > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| nightly-msrv: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rust-src | |
| - run: cargo install cargo-hack | |
| - run: cargo install cargo-expand | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: | | |
| echo '#!/bin/bash | |
| set -e | |
| cargo hack \ | |
| --clean-per-run \ | |
| --feature-powerset \ | |
| --version-range 1.78.. \ | |
| --clean-per-version \ | |
| check \ | |
| --locked \ | |
| --all-targets | |
| cargo clean' > exec.sh | |
| git rebase --exec "bash exec.sh" --root | |
| env: | |
| RUSTC_BOOTSTRAP: 1 | |
| RUSTFLAGS: "-Dwarnings" | |
| os-check: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest] | |
| runs-on: ${{matrix.os}} | |
| name: "os-check (${{matrix.os}})" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - run: cargo install cargo-expand | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: git rebase --exec 'cargo test --all-targets --locked' --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| # doctests are strangely not included in --all-targets | |
| - run: git rebase --exec 'cargo test --doc --locked' --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| signed-off-by: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: | | |
| git rebase --exec \ | |
| 'git log --no-merges -1 --pretty=format:%B | grep -q "^Signed-off-by:"' \ | |
| --root | |
| apply: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: Rust-for-Linux/linux | |
| path: "kernel" | |
| ref: pin-init-next | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: "pin-init" | |
| fetch-depth: 0 | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - run: | | |
| pushd kernel | |
| git config user.name "github-runner" && git config user.email "<>" | |
| popd # kernel | |
| pushd pin-init | |
| git config user.name "github-runner" && git config user.email "<>" | |
| git fetch | |
| if [ "$(git rev-parse HEAD)" = "$(git rev-parse origin/next)" ]; then | |
| # when there are no new commits, we can succeed directly | |
| exit 0 | |
| fi | |
| if ! yes | bash ./to-kernel.sh ../kernel origin/next; then | |
| if ! git am --3way; then | |
| git am --show-current-patch=diff | |
| false | |
| fi | |
| false | |
| fi | |
| link-heartbeat: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: ${{github.event.pull_request.commits}} | |
| ref: ${{github.event.pull_request.head.sha}} | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - run: sudo apt-get install -y linkchecker | |
| - run: git config user.name "github-runner" && git config user.email "<>" | |
| - run: | | |
| git rebase --exec \ | |
| 'cargo doc --all-features --no-deps && linkchecker target/doc/*/*.html' \ | |
| --root | |
| env: | |
| RUSTFLAGS: "-Dwarnings" | |
| update: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rust-src | |
| - run: cargo install cargo-expand | |
| - run: cargo update | |
| - run: cargo test --locked | |
| env: | |
| RUSTFLAGS: "-Ddeprecated -Dwarnings" |