Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
cac5ef8
basic weak memory model
hiroki-chen Jun 1, 2026
553eba1
test snapshots and history for usize
hiroki-chen Jun 1, 2026
2399723
load semantics
hiroki-chen Jun 1, 2026
4645759
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 2, 2026
a6e190f
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 2, 2026
3753acd
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 2, 2026
1e3a29c
more atomics for the weak memory model
hiroki-chen Jun 2, 2026
29007e0
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 3, 2026
9d3c038
more rcu models
hiroki-chen Jun 3, 2026
74f8730
experiment with callbacks
hiroki-chen Jun 4, 2026
eb75203
more rcu stuff
hiroki-chen Jun 4, 2026
e48b554
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 8, 2026
067cc45
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 9, 2026
bc31ae5
experiment with sync
hiroki-chen Jun 9, 2026
dd24dc4
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 10, 2026
7c874a0
fix unsoundness when dealing with old messages
hiroki-chen Jun 10, 2026
e16147d
more
hiroki-chen Jun 11, 2026
9dc9329
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 12, 2026
3cbf462
test monitor
hiroki-chen Jun 12, 2026
208fea3
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 12, 2026
fc3f983
Update Cargo.lock
hiroki-chen Jun 15, 2026
34afe59
oMerge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jun 15, 2026
80ae11e
fix merge issues and vstd version
hiroki-chen Jun 15, 2026
7f62937
formatting
hiroki-chen Jun 15, 2026
eece4b8
tighten specs for monitor and align with upstream
hiroki-chen Jun 15, 2026
cab6e07
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 2, 2026
9507696
format and fix verus `map`
hiroki-chen Jul 2, 2026
7d2f1aa
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 3, 2026
9033604
add specs for scheduler for next steps
hiroki-chen Jul 3, 2026
2230edc
format
hiroki-chen Jul 3, 2026
35e5823
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 6, 2026
9c2a001
add netested preemption token for resource tracking
hiroki-chen Jul 6, 2026
0dfeb34
bridge the use of preempt guard
hiroki-chen Jul 7, 2026
e4cf68d
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 7, 2026
09b1af2
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 8, 2026
42bf40a
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 10, 2026
a664544
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 13, 2026
b139282
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 15, 2026
f3b0498
bridge the task scheduler and the task token
hiroki-chen Jul 15, 2026
bf736cd
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 16, 2026
dd5461c
add more tracked resources for the rcu and weak memory
hiroki-chen Jul 16, 2026
32f5179
add utility functions/specs for traversal
hiroki-chen Jul 16, 2026
d57bbd0
Wire weak-memory RCU reclamation
hiroki-chen Jul 16, 2026
12985ff
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 16, 2026
9b399ff
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 20, 2026
fd56d78
add thread management caps for the scheduler
hiroki-chen Jul 21, 2026
ccc8122
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 21, 2026
0e7f8b6
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 23, 2026
5170c40
Connect weak-memory RCU proofs
hiroki-chen Jul 23, 2026
88bc287
format
hiroki-chen Jul 23, 2026
9b8f0aa
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Jul 27, 2026
9e83e47
Move weak memory atomics to vstd_extra
hiroki-chen Jul 27, 2026
906c657
Add specs for expiration and loaded pointer into guard protection map
hiroki-chen Jul 27, 2026
e453ca6
Cpu local model (#672)
hiroki-chen Jul 28, 2026
81998f7
Modeling CPU core's local views
hiroki-chen Jul 31, 2026
d5ece8c
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Aug 3, 2026
62c86d9
WIP on weak-memory: 81998f7fc Modeling CPU core's local views
hiroki-chen Aug 3, 2026
3df1ede
update
hiroki-chen Aug 3, 2026
5a12446
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Aug 4, 2026
dbe42a6
Migrate weak memory proofs to native IRC11
hiroki-chen Aug 4, 2026
65ace23
Merge vostd/main into weak-memory
hiroki-chen Aug 4, 2026
3b8c492
format
hiroki-chen Aug 4, 2026
a20bdc6
Stabilize IRC11 CI toolchain
hiroki-chen Aug 4, 2026
5903d21
Fix pinned Verus checkout in CI
hiroki-chen Aug 4, 2026
4df2398
Fix IRC11 atomic ordering predicates
hiroki-chen Aug 4, 2026
97b630e
clean up weak memory and add glues
hiroki-chen Aug 5, 2026
c13a8e0
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Aug 5, 2026
176bcd9
fix merge
hiroki-chen Aug 5, 2026
c2c4f9b
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Aug 7, 2026
18391de
Verify linked-list RCU traversal reclamation
hiroki-chen Aug 7, 2026
9249f65
Remove RCU view projection axiom
hiroki-chen Aug 10, 2026
efaa6dd
Generalize native RCU link targets
hiroki-chen Aug 10, 2026
f76d20d
Merge vostd/main into weak-memory
hiroki-chen Aug 10, 2026
d30cd2f
Generalize registered RCU reclamation
hiroki-chen Aug 10, 2026
e3c620c
Add lease-retaining RCU read API
hiroki-chen Aug 11, 2026
c90ab27
Fix weak-memory CI bootstrap
hiroki-chen Aug 13, 2026
53cc117
Merge remote-tracking branch 'vostd/main' into weak-memory
hiroki-chen Aug 13, 2026
e47182c
Align Cargo lock with weak-memory Verus
hiroki-chen Aug 13, 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
34 changes: 27 additions & 7 deletions .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ jobs:
runs-on: macos-14
env:
CARGO_TERM_COLOR: always
VERUS_REPOSITORY: https://github.com/asterinas/verus.git
VERUS_BASE_COMMIT: bb61343fc97e4b3a97b1029f385ffb6bbb291da2
VERUS_IRC11_PATCH: tools/patches/verus-irc11.patch
VERUS_PATCH: tools/patches/verus-irc11-vstd.patch

steps:
- name: Checkout repository
Expand Down Expand Up @@ -52,13 +56,11 @@ jobs:
restore-keys: |
${{ runner.os }}-cargo-

- name: Get Verus commit
- name: Record toolchain revisions
id: verus
shell: bash
run: |
VERUS_COMMIT=$(git ls-remote https://github.com/asterinas/verus HEAD | cut -f1)
echo "VERUS_COMMIT=$VERUS_COMMIT" >> "$GITHUB_ENV"
echo "Using Verus commit: $VERUS_COMMIT"
echo "Using pinned Asterinas Verus base: $VERUS_BASE_COMMIT"
DV_COMMIT=$(git rev-parse HEAD:dv)
echo "DV_COMMIT=$DV_COMMIT" >> "$GITHUB_ENV"
echo "Using dv commit: $DV_COMMIT"
Expand All @@ -74,17 +76,35 @@ jobs:
uses: actions/cache@v6
with:
path: tools/verus
key: ${{ runner.os }}-verus-${{ env.VERUS_COMMIT }}
key: ${{ runner.os }}-verus-irc11-weak-memory-${{ env.VERUS_BASE_COMMIT }}-${{ hashFiles('tools/bootstrap-verus-irc11.sh', 'tools/patches/verus-irc11.patch', 'tools/patches/verus-irc11-vstd.patch') }}

- name: Bootstrap Verus (if needed)
shell: bash
run: |
if [ "${{ steps.cache-verus.outputs.cache-hit }}" = "true" ]; then
echo "Using cached Verus"
else
echo "Cache miss, bootstrapping Verus..."
echo "Cache miss, bootstrapping rebased Verus IRC11..."
rm -rf tools/verus
cargo dv bootstrap
git init tools/verus
git -C tools/verus remote add origin "$VERUS_REPOSITORY"
git -C tools/verus fetch --depth=1 origin "$VERUS_BASE_COMMIT"
git -C tools/verus checkout --detach FETCH_HEAD
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
bash tools/bootstrap-verus-irc11.sh
fi
test "$(git -C tools/verus rev-parse HEAD)" = "$VERUS_BASE_COMMIT"
test -f tools/verus/source/vstd/atomic_weak.rs
test -f tools/verus/source/vstd/thread_view.rs

- name: Enable IRC11 alongside existing SC atomics
shell: bash
run: |
if git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_PATCH"; then
echo "IRC11 compatibility patch is already applied"
else
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_PATCH"
fi

- name: Run verification
Expand Down
35 changes: 28 additions & 7 deletions .github/workflows/ci-upstream-verus.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Verify VOSTD (Main) with verus-lang/verus
name: Verify VOSTD with rebased Verus IRC11

on:
push:
Expand All @@ -23,6 +23,10 @@ jobs:
runs-on: ubuntu-24.04
env:
CARGO_TERM_COLOR: always
VERUS_REPOSITORY: https://github.com/asterinas/verus.git
VERUS_BASE_COMMIT: bb61343fc97e4b3a97b1029f385ffb6bbb291da2
VERUS_IRC11_PATCH: tools/patches/verus-irc11.patch
VERUS_PATCH: tools/patches/verus-irc11-vstd.patch

steps:
- name: Get PR head commit
Expand Down Expand Up @@ -53,7 +57,7 @@ jobs:
sha: '${{ steps.pr.outputs.head_sha }}',
state: 'pending',
context: 'ci/upstream-verus',
description: 'Upstream Verus verification is running',
description: 'Upstream Verus IRC11 verification is running',
target_url: runUrl,
});

Expand All @@ -68,10 +72,27 @@ jobs:
sudo apt update -qq
sudo apt install -y build-essential unzip pkg-config libssl-dev llvm

- name: Run dv bootstrap with upstream verus
run: cargo dv bootstrap --upstream-verus
- name: Bootstrap rebased Verus IRC11
run: |
rm -rf tools/verus
git init tools/verus
git -C tools/verus remote add origin "$VERUS_REPOSITORY"
git -C tools/verus fetch --depth=1 origin "$VERUS_BASE_COMMIT"
git -C tools/verus checkout --detach FETCH_HEAD
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
bash tools/bootstrap-verus-irc11.sh
test "$(git -C tools/verus rev-parse HEAD)" = "$VERUS_BASE_COMMIT"
git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"

- name: Enable IRC11 alongside existing SC atomics
run: |
if git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_PATCH"; then
echo "IRC11 compatibility patch is already applied"
else
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_PATCH"
fi

- name: Verify ostd with upstream verus
- name: Verify ostd with upstream Verus IRC11
run: make

- name: Report upstream Verus verification status
Expand All @@ -85,8 +106,8 @@ jobs:
const runUrl = `${context.serverUrl}/${owner}/${repo}/actions/runs/${context.runId}`;
const state = '${{ job.status }}' === 'success' ? 'success' : 'failure';
const description = state === 'success'
? 'Upstream Verus verification passed'
: 'Upstream Verus verification failed';
? 'Upstream Verus IRC11 verification passed'
: 'Upstream Verus IRC11 verification failed';

await github.rest.repos.createCommitStatus({
owner,
Expand Down
41 changes: 30 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ jobs:
runs-on: ubuntu-24.04
env:
CARGO_TERM_COLOR: always
VERUS_REPOSITORY: https://github.com/asterinas/verus.git
VERUS_BASE_COMMIT: bb61343fc97e4b3a97b1029f385ffb6bbb291da2
VERUS_IRC11_PATCH: tools/patches/verus-irc11.patch
VERUS_PATCH: tools/patches/verus-irc11-vstd.patch

steps:
- name: Checkout repository
Expand Down Expand Up @@ -61,12 +65,10 @@ jobs:
restore-keys: |
${{ runner.os }}-cargo-

- name: Get Verus commit
- name: Record toolchain revisions
id: verus
run: |
VERUS_COMMIT=$(git ls-remote https://github.com/asterinas/verus HEAD | cut -f1)
echo "VERUS_COMMIT=$VERUS_COMMIT" >> "$GITHUB_ENV"
echo "Using Verus commit: $VERUS_COMMIT"
echo "Using pinned Asterinas Verus base: $VERUS_BASE_COMMIT"
DV_COMMIT=$(git rev-parse HEAD:dv)
echo "DV_COMMIT=$DV_COMMIT" >> "$GITHUB_ENV"
echo "Using dv commit: $DV_COMMIT"
Expand All @@ -82,31 +84,48 @@ jobs:
uses: actions/cache@v6
with:
path: tools/verus
key: ${{ runner.os }}-verus-${{ env.VERUS_COMMIT }}
key: ${{ runner.os }}-verus-irc11-weak-memory-${{ env.VERUS_BASE_COMMIT }}-${{ hashFiles('tools/bootstrap-verus-irc11.sh', 'tools/patches/verus-irc11.patch', 'tools/patches/verus-irc11-vstd.patch') }}

- name: Cache verusfmt
id: cache-verusfmt
uses: actions/cache@v6
with:
path: ~/.cargo/bin/verusfmt
key: ${{ runner.os }}-verusfmt-${{ env.VERUS_COMMIT }}
key: ${{ runner.os }}-verusfmt-${{ env.VERUS_BASE_COMMIT }}

- name: Bootstrap Verus (if needed)
run: |
if [ "${{ steps.cache-verus.outputs.cache-hit }}" = "true" ]; then
echo "Using cached Verus"
else
echo "Cache miss, bootstrapping Verus..."
echo "Cache miss, bootstrapping rebased Verus IRC11..."
rm -rf tools/verus
cargo dv bootstrap
git init tools/verus
git -C tools/verus remote add origin "$VERUS_REPOSITORY"
git -C tools/verus fetch --depth=1 origin "$VERUS_BASE_COMMIT"
git -C tools/verus checkout --detach FETCH_HEAD
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
bash tools/bootstrap-verus-irc11.sh
fi

if ! command -v verusfmt >/dev/null 2>&1; then
echo "verusfmt not found, installing via cargo dv bootstrap..."
cargo dv bootstrap
echo "verusfmt not found, installing..."
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/verus-lang/verusfmt/releases/latest/download/verusfmt-installer.sh | sh
fi
test "$(git -C tools/verus rev-parse HEAD)" = "$VERUS_BASE_COMMIT"
test -f tools/verus/source/vstd/atomic_weak.rs
test -f tools/verus/source/vstd/thread_view.rs
verusfmt --version

- name: Enable IRC11 alongside existing SC atomics
run: |
if git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_PATCH"; then
echo "IRC11 compatibility patch is already applied"
else
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_PATCH"
fi

- name: Run verification
run: |
set -o pipefail
Expand Down Expand Up @@ -179,4 +198,4 @@ jobs:
else
echo "- Verification warnings: ✅ none"
fi
} >> "$GITHUB_STEP_SUMMARY"
} >> "$GITHUB_STEP_SUMMARY"
40 changes: 30 additions & 10 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ concurrency:
jobs:
build:
runs-on: ubuntu-latest
env:
VERUS_REPOSITORY: https://github.com/asterinas/verus.git
VERUS_BASE_COMMIT: bb61343fc97e4b3a97b1029f385ffb6bbb291da2
VERUS_IRC11_PATCH: tools/patches/verus-irc11.patch
VERUS_PATCH: tools/patches/verus-irc11-vstd.patch
steps:
- name: Checkout repository
uses: actions/checkout@v7
Expand Down Expand Up @@ -62,12 +67,10 @@ jobs:
restore-keys: |
${{ runner.os }}-cargo-

- name: Get Verus commit
- name: Record toolchain revisions
id: verus
run: |
VERUS_COMMIT=$(git ls-remote https://github.com/asterinas/verus HEAD | cut -f1)
echo "VERUS_COMMIT=$VERUS_COMMIT" >> "$GITHUB_ENV"
echo "Using Verus commit: $VERUS_COMMIT"
echo "Using pinned Asterinas Verus base: $VERUS_BASE_COMMIT"
DV_COMMIT=$(git rev-parse HEAD:dv)
echo "DV_COMMIT=$DV_COMMIT" >> "$GITHUB_ENV"
echo "Using dv commit: $DV_COMMIT"
Expand All @@ -83,31 +86,48 @@ jobs:
uses: actions/cache@v6
with:
path: tools/verus
key: ${{ runner.os }}-verus-${{ env.VERUS_COMMIT }}
key: ${{ runner.os }}-verus-irc11-weak-memory-${{ env.VERUS_BASE_COMMIT }}-${{ hashFiles('tools/bootstrap-verus-irc11.sh', 'tools/patches/verus-irc11.patch', 'tools/patches/verus-irc11-vstd.patch') }}

- name: Cache verusfmt
id: cache-verusfmt
uses: actions/cache@v6
with:
path: ~/.cargo/bin/verusfmt
key: ${{ runner.os }}-verusfmt-${{ env.VERUS_COMMIT }}
key: ${{ runner.os }}-verusfmt-${{ env.VERUS_BASE_COMMIT }}

- name: Bootstrap Verus (if needed)
run: |
if [ "${{ steps.cache-verus.outputs.cache-hit }}" = "true" ]; then
echo "Using cached Verus"
else
echo "Cache miss, bootstrapping Verus..."
echo "Cache miss, bootstrapping rebased Verus IRC11..."
rm -rf tools/verus
cargo dv bootstrap
git init tools/verus
git -C tools/verus remote add origin "$VERUS_REPOSITORY"
git -C tools/verus fetch --depth=1 origin "$VERUS_BASE_COMMIT"
git -C tools/verus checkout --detach FETCH_HEAD
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_IRC11_PATCH"
bash tools/bootstrap-verus-irc11.sh
fi

if ! command -v verusfmt >/dev/null 2>&1; then
echo "verusfmt not found, installing via cargo dv bootstrap..."
cargo dv bootstrap
echo "verusfmt not found, installing..."
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/verus-lang/verusfmt/releases/latest/download/verusfmt-installer.sh | sh
fi
test "$(git -C tools/verus rev-parse HEAD)" = "$VERUS_BASE_COMMIT"
test -f tools/verus/source/vstd/atomic_weak.rs
test -f tools/verus/source/vstd/thread_view.rs
verusfmt --version

- name: Enable IRC11 alongside existing SC atomics
run: |
if git -C tools/verus apply --reverse --check "$GITHUB_WORKSPACE/$VERUS_PATCH"; then
echo "IRC11 compatibility patch is already applied"
else
git -C tools/verus apply "$GITHUB_WORKSPACE/$VERUS_PATCH"
fi

- name: Build docs
run: make doc

Expand Down
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ codegen-units = 1

[workspace.dependencies]
# Verus
vstd = { path = "tools/verus/source/vstd", default-features = false, features = ["alloc"] }
vstd = { path = "tools/verus/source/vstd", default-features = false, features = ["alloc", "weak-memory"] }
Loading