Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d24ab2d
prove: arch::pci (x86)
Marsman1996 Aug 12, 2026
fffd335
prove: io
Marsman1996 Aug 13, 2026
18d72c5
prove: port allocation and access
Marsman1996 Aug 13, 2026
7a6192b
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Aug 20, 2026
e4775af
refactor: move x86 I/O port specs to vstd_extra
Marsman1996 Aug 25, 2026
6be1aeb
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 2, 2026
6750b28
refactor: replace state machine macros with ghost tokens
Marsman1996 Sep 2, 2026
0eb7a36
prove: derive io_mem window ordering from the boot builder
Marsman1996 Sep 2, 2026
27f3c68
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 2, 2026
bc3bf00
refactor: add specifications for bitmap-backed ID allocator and updat…
Marsman1996 Sep 2, 2026
2dc5398
refine
Marsman1996 Sep 2, 2026
7874955
prove: assume
Marsman1996 Sep 2, 2026
d3b93b1
refine
Marsman1996 Sep 2, 2026
3cd8955
chore: add comments for modified exec code
Marsman1996 Sep 2, 2026
87875fe
fmt
Marsman1996 Sep 3, 2026
4049dee
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 11, 2026
b120162
prove: drop id-alloc assume_specifications, wire io_port to the prove…
Marsman1996 Sep 12, 2026
ea38da8
refine: according to the review skill
Marsman1996 Sep 12, 2026
2310096
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 14, 2026
e3b0444
ci: refactor ci workflow (#766)
Marsman1996 Sep 14, 2026
2059bce
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 15, 2026
c7e0549
chore: remove unused lemmas and remove `level` in `NodeOwner` (#767)
rikosellic Sep 15, 2026
987e810
sync: ostd/src/io/io_port to 0.18.1
Marsman1996 Sep 15, 2026
15e0bb7
chore: fix `PartialSpec` for `Frame` (#768)
rikosellic Sep 15, 2026
16058e2
refine: replace `obeys_pio_model` with `valid_io_port_access` in I/O …
Marsman1996 Sep 15, 2026
53fd897
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 15, 2026
56c7f3f
refactor: rebase `Atomicdatawithowner` and `OnceImpl` on `ResourceInv…
rikosellic Sep 16, 2026
25b51b4
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 16, 2026
04aaba3
ci: skip jobs on cancelled runs (#771)
Marsman1996 Sep 16, 2026
662ee6f
chore: update with `OnceImpl` update
Marsman1996 Sep 16, 2026
21346a5
fix: simplify `Range::clone` spec (#772)
rikosellic Sep 16, 2026
038fe48
refine: carry PIO allocator's ghost token via the lock's ResourceInva…
Marsman1996 Sep 16, 2026
afdbf44
refine: remove modeled id alloc wrapper
Marsman1996 Sep 16, 2026
9cec4be
docs(coding-guidelines): add avoid-redundant-as-int-casts guideline (…
Marsman1996 Sep 16, 2026
8213680
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 16, 2026
4f8df10
refine
Marsman1996 Sep 16, 2026
a7a57fa
Fix irc11 verus upgrade (#774)
hiroki-chen Sep 16, 2026
c032fc6
refine: according to the review skill
Marsman1996 Sep 17, 2026
ba8fa15
Merge remote-tracking branch 'origin/main' into prove-arch_pci
Marsman1996 Sep 17, 2026
e13a92b
refine: xinyi
Marsman1996 Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions .github/actions/setup-verus/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Set up Verus toolchain and caches
description: >-
Shared CI setup: system dependencies, the Rust toolchain and cargo caches,
the dv build cache, and (optionally) the tools/verus cache with a
bootstrap-if-miss step. Expects a repository checkout (with submodules) in
the working directory.

inputs:
verus:
description: Cache and bootstrap tools/verus ('true' or 'false')
default: 'true'
install-verusfmt:
description: Install verusfmt via its installer if missing ('true' or 'false')
default: 'false'
dv-cache:
description: "'save' (restore + save) or 'restore' (restore only) for dv/target"
default: 'save'

outputs:
rust-version:
description: Rust toolchain channel from rust-toolchain.toml
value: ${{ steps.rust.outputs.rust-version }}
dv-commit:
description: dv submodule commit
value: ${{ steps.commits.outputs.dv-commit }}
verus-commit:
description: Upstream Verus commit used for the tools/verus cache key
value: ${{ steps.commits.outputs.verus-commit }}
verus-cache-hit:
description: Exact-match hit for the tools/verus cache ('true' or empty)
value: ${{ steps.verus-cache.outputs.cache-hit }}

runs:
using: composite
steps:
- name: Install dependencies (Linux)
if: runner.os == 'Linux'
shell: bash
run: |
sudo apt update -qq
sudo apt install -y build-essential unzip pkg-config libssl-dev llvm

- name: Get Rust toolchain version
id: rust
shell: bash
run: |
RUST_VERSION=$(sed -nE 's/^channel = "([^"]+)"/\1/p' rust-toolchain.toml)
if [[ -z "$RUST_VERSION" ]]; then
echo "Failed to extract the Rust version from rust-toolchain.toml" >&2
exit 1
fi
echo "rust-version=$RUST_VERSION" >> "$GITHUB_OUTPUT"
echo "RUST_VERSION=$RUST_VERSION" >> "$GITHUB_ENV"
echo "Rust version: $RUST_VERSION"

- name: Cache Rust toolchain
uses: actions/cache@v6
with:
path: |
~/.rustup/toolchains
~/.rustup/update-hashes
~/.rustup/tmp
key: ${{ runner.os }}-rust-toolchain-${{ steps.rust.outputs.rust-version }}

# Must run before tools/verus exists, or hashFiles sees it and the key
# becomes nondeterministic.
- name: Cache Cargo dependencies
uses: actions/cache@v6
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-

- name: Resolve dv and Verus commits
id: commits
shell: bash
run: |
DV_COMMIT=$(git rev-parse HEAD:dv)
echo "dv-commit=$DV_COMMIT" >> "$GITHUB_OUTPUT"
echo "DV_COMMIT=$DV_COMMIT" >> "$GITHUB_ENV"
echo "Using dv commit: $DV_COMMIT"
if [[ "${{ inputs.verus }}" == "true" ]]; then
VERUS_COMMIT=$(git ls-remote https://github.com/asterinas/verus HEAD | cut -f1)
echo "verus-commit=$VERUS_COMMIT" >> "$GITHUB_OUTPUT"
echo "VERUS_COMMIT=$VERUS_COMMIT" >> "$GITHUB_ENV"
echo "Using Verus commit: $VERUS_COMMIT"
fi

- name: Cache dv build artifacts
if: inputs.dv-cache == 'save'
uses: actions/cache@v6
with:
path: dv/target
key: ${{ runner.os }}-dv-${{ steps.commits.outputs.dv-commit }}

- name: Restore dv build artifacts
if: inputs.dv-cache == 'restore'
uses: actions/cache/restore@v6
with:
path: dv/target
key: ${{ runner.os }}-dv-${{ steps.commits.outputs.dv-commit }}

- name: Cache Verus
id: verus-cache
if: inputs.verus == 'true'
uses: actions/cache@v6
with:
# Only needed when rebuilding from scratch, which re-clones anyway.
# Excluding them roughly halves the entry size.
path: |
tools/verus
!tools/verus/.git
!tools/verus/.git/**
!tools/verus/source/target
!tools/verus/source/target/**
key: ${{ runner.os }}-verus-${{ steps.commits.outputs.verus-commit }}

- name: Bootstrap Verus (if needed)
if: inputs.verus == 'true'
shell: bash
run: |
if [[ "${{ steps.verus-cache.outputs.cache-hit }}" == "true" ]] &&
[[ -x tools/verus/source/target-verus/release/cargo-verus ]] &&
[[ -f tools/verus/source/z3 ]]; then
echo "Using cached Verus (${{ steps.commits.outputs.verus-commit }})"
else
echo "Cache miss - bootstrapping Verus..."
rm -rf tools/verus
cargo dv bootstrap
fi

- name: Install verusfmt (if needed)
if: inputs.install-verusfmt == 'true'
shell: bash
run: |
if ! command -v verusfmt >/dev/null 2>&1; then
echo "verusfmt not found, installing via its installer..."
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/verus-lang/verusfmt/releases/latest/download/verusfmt-installer.sh | sh
fi
verusfmt --version
2 changes: 1 addition & 1 deletion .github/workflows/ci-irc11.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
env:
CARGO_TERM_COLOR: always
VERUS_REPOSITORY: https://github.com/asterinas/verus.git
VERUS_BASE_COMMIT: 38f659b0e97a003d4fed73e083c71e786c6a3523
VERUS_BASE_COMMIT: fb2386ecea5a45810420577de3e312ded4f84b12
VERUS_IRC11_PATCH: tools/patches/verus-irc11.patch
VERUS_COMPAT_PATCH: tools/patches/verus-irc11-vstd.patch

Expand Down
Loading