Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
191 commits
Select commit Hold shift + click to select a range
05bddf8
Update Verus toolchain to 2026-05-24 and patch HACL for clang 20
ziqiaozhou Jun 3, 2026
a38bf85
Make verismo compile with verus 2026-05-24 toolchain
Copilot Jun 3, 2026
91c0a89
Fix all in-code Verus deprecation warnings
ziqiaozhou Jun 3, 2026
40b8174
Switch to stable x86_64-unknown-none target for cargo verus --no-verify
ziqiaozhou Jun 4, 2026
37f4f2c
Restore allocator decreases clauses and broadcast use lemmas
ziqiaozhou Jun 4, 2026
238b04a
Verify allocator module: bridge spec_size and add proof annotations
ziqiaozhou Jun 4, 2026
27de65e
remove old verus config in build.rs
ziqiaozhou Jun 4, 2026
a28215c
Verify lock module: align snp() strip + bridge sec-byte size axiom
ziqiaozhou Jun 4, 2026
f62c311
spec_new: emit transparent struct literal + fix triggers
ziqiaozhou Jun 4, 2026
9f8f632
tspec_e::math::pow_e: add recursion decrease metric
ziqiaozhou Jun 4, 2026
e1cab09
vbox: add explicit Verus broadcasts
ziqiaozhou Jun 4, 2026
86e8356
vcell: verify with new Verus toolchain
ziqiaozhou Jun 4, 2026
116ec99
tspec::cast: restore proof broadcasts and bounds
ziqiaozhou Jun 4, 2026
fa79d0f
linkedlist: update proofs for Verus termination
ziqiaozhou Jun 4, 2026
a404191
global: verify with new Verus toolchain
ziqiaozhou Jun 4, 2026
8597331
rawmem_s: verify with new Verus toolchain
ziqiaozhou Jun 4, 2026
178915b
rawmem_p: verify with new Verus toolchain
ziqiaozhou Jun 4, 2026
7822bd9
tspec::math::bits_p: add explicit quantifier triggers
ziqiaozhou Jun 4, 2026
dfda552
rawmem_p2: verify with new Verus toolchain
ziqiaozhou Jun 4, 2026
d8c4e47
tspec_e::type_test: broadcast SecType axioms for defaults
ziqiaozhou Jun 4, 2026
a88a531
sectype: migrate Into→From; remove unused SpecInto trait
Jun 4, 2026
e8c96d2
tspec_e::array::array_utils: add loop decrease metrics
ziqiaozhou Jun 4, 2026
737f2c7
tspec_e::array::sort: add partition loop decrease metric
ziqiaozhou Jun 4, 2026
e1ee5d9
tspec_e::default: verify unchanged
ziqiaozhou Jun 4, 2026
b574c98
tspec_e::size_e: verify unchanged
ziqiaozhou Jun 4, 2026
cc70a51
tspec_e::math::minmax: verify unchanged
ziqiaozhou Jun 4, 2026
23722c1
tspec_e::array::array_t: verify unchanged
ziqiaozhou Jun 4, 2026
844f79b
tspec_e::array::array_s: verify unchanged
ziqiaozhou Jun 4, 2026
3aec7ba
tspec_e::array::array_e: verify unchanged
ziqiaozhou Jun 4, 2026
cb27a1b
tspec_e::array: verify aggregate module
ziqiaozhou Jun 4, 2026
d1dba17
Merge verify/tspec-base: cast.rs broadcasts + bits_p triggers
ziqiaozhou Jun 4, 2026
e53f6d2
Merge verify/tspec-e: pow_e/type_test/array/sort/utils proofs
ziqiaozhou Jun 4, 2026
eb2ebb9
sectype: order FromSpecImpl before From so trait postcondition resolves
ziqiaozhou Jun 4, 2026
7358fc6
registers::msr_perm_s: fix broadcast proof triggers
ziqiaozhou Jun 4, 2026
37fc3cb
Merge verify/registers: msr_perm_s broadcast triggers
ziqiaozhou Jun 4, 2026
2257ba7
Move 'global size_of usize == 8' to tspec::size_s
ziqiaozhou Jun 4, 2026
07d282d
sectype: migrate bops macro to AddSpecImpl + type_invariant pattern
ziqiaozhou Jun 4, 2026
de3a725
sectype: switch bops _req to explicit MIN..=MAX bounds
ziqiaozhou Jun 4, 2026
7347cd0
SecType usize add fails
ziqiaozhou Jun 4, 2026
2f5656a
sectype: add impl_exe_bops_for_stype_by_assume! workaround for usize add
ziqiaozhou Jun 4, 2026
80fa659
sectype: route u64 bitand through assume-workaround macro
ziqiaozhou Jun 4, 2026
e5c7d85
sectype: route u64 add/sub/bitand through assume-workaround macro
ziqiaozhou Jun 4, 2026
2763a98
sectype: fix Not trait impls with type-invariant surfacing + assume w…
ziqiaozhou Jun 4, 2026
ad27f7d
sectype: strengthen _is_constant and fix trigger warnings
ziqiaozhou Jun 4, 2026
f1a4be0
gitignore: ignore .worktrees for parallel verification workflow
ziqiaozhou Jun 4, 2026
d0a171f
fix security: surface size axiom for message offsets
ziqiaozhou Jun 4, 2026
498fd38
fix addr_e::addr_interface: prove secure address conversions
ziqiaozhou Jun 4, 2026
d18b205
fix tspec::map_lib: annotate quantifier triggers
ziqiaozhou Jun 4, 2026
57be4ff
fix addr_e::exe: justify secure page align down
ziqiaozhou Jun 4, 2026
7a20fd6
fix arch::addr_s::page: prove aligned memory disjointness
ziqiaozhou Jun 4, 2026
6b75a8b
fix tspec::range_set: annotate quantifier triggers
ziqiaozhou Jun 4, 2026
1a34c77
fix addr_e::range_interface: surface range proof facts
ziqiaozhou Jun 4, 2026
bf7ea86
fix arch::mem::mem_model1_p: expose page table model equality
ziqiaozhou Jun 4, 2026
b872d93
fix tspec::seqlib::seq_multiset: annotate quantifier trigger
ziqiaozhou Jun 4, 2026
bace4a1
fix arch::mem::mem_p: stabilize memory operation proofs
ziqiaozhou Jun 4, 2026
8aa124d
fix bsp::ap: justify AP wait loop verification
ziqiaozhou Jun 4, 2026
ef71243
fix arch::pgtable::memmap_p: stabilize identity map proofs
ziqiaozhou Jun 4, 2026
4399dd9
fix arch::ptram::ptram_p: expose RAM operation invariants
ziqiaozhou Jun 4, 2026
04b7c16
fix debug::ghcb_print: add loop variants and print proof facts
ziqiaozhou Jun 4, 2026
a96a381
fix debug::slice_print: justify slice print loop
ziqiaozhou Jun 4, 2026
e5e41c6
fix arch::ptram::ptram_p2: stabilize recursive PTE proof
ziqiaozhou Jun 4, 2026
c2a38d3
fix arch::ramdb::ram_p: expose raw write effects
ziqiaozhou Jun 4, 2026
882a11b
fix arch::rmp::access_p: expose RMP transition invariants
ziqiaozhou Jun 4, 2026
54fcfcb
fix pgtable_e::def: correct bit struct bounds
ziqiaozhou Jun 4, 2026
bfb390b
fix arch::rmp::db_p: expose RMP map invariants
ziqiaozhou Jun 4, 2026
80d9916
fix pgtable_e::pte: add page table proof facts
ziqiaozhou Jun 4, 2026
107002a
fix arch::vram::vram_p: stabilize VRAM write proofs
ziqiaozhou Jun 4, 2026
23ea8d2
fix arch::vram::vram_rmp_p: externalize RMP read invariants
ziqiaozhou Jun 4, 2026
a62b222
fix mshyper: prove derived printing and VTL input construction
ziqiaozhou Jun 4, 2026
75d7dd8
fix arch::x64::x64_p: externalize x64 op proofs
ziqiaozhou Jun 4, 2026
61a6975
fix boot::idt::def: stabilize VPrint derive
ziqiaozhou Jun 4, 2026
520bcd3
fix boot::idt::dummy: add IDT initialization proof facts
ziqiaozhou Jun 4, 2026
1ee570c
fix boot::init::e820_init: add validation loop proof facts
ziqiaozhou Jun 4, 2026
5b9aa7e
fix security::pcr: surface PCR lock invariants
ziqiaozhou Jun 4, 2026
893fa49
fix security::secret: surface size axiom and loop decrease
ziqiaozhou Jun 4, 2026
9151ef5
fix boot::init::e820_init_alloc: add allocation loop proof facts
ziqiaozhou Jun 4, 2026
833c2b7
fix snp::cpu::gdt: correct descriptor bit bounds
ziqiaozhou Jun 4, 2026
ac465e0
fix snp::cpu::vmsa: surface size axiom
ziqiaozhou Jun 4, 2026
d595fd0
fix snp::cpuid: surface size axiom and loop decrease
ziqiaozhou Jun 4, 2026
c62641d
fix boot::init::init_e: add initialization proof facts
ziqiaozhou Jun 4, 2026
e10460e
fix snp::ghcb::proto_e: surface GHCB protocol effects
ziqiaozhou Jun 4, 2026
b9927b0
fix snp::ghcb::proto_impl: add page-state loop measures
ziqiaozhou Jun 4, 2026
eb489e4
fix snp::ghcb::proto_impl::internal: surface size axiom
ziqiaozhou Jun 4, 2026
9a58c58
fix boot::init::mshv_alloc: add allocation proof facts
ziqiaozhou Jun 4, 2026
493fa40
merge verify-tspec: trigger annotations for tspec quantifiers
Jun 4, 2026
793d6c9
merge verify-core: fixes for addr_e, bsp, debug, pgtable_e, mshyper
Jun 4, 2026
fcc3860
merge verify-security: fixes for security/snp modules
Jun 4, 2026
4bf5dd4
merge verify-arch: fixes for arch/boot modules
Jun 4, 2026
f012be2
sectype_test: surface wf via use_type_invariant; simplify WellFormed
Jun 4, 2026
27ec51d
Move WellFormed for SecType + SecSeqByte axioms from primitives_e int…
Jun 4, 2026
289adb9
Extract tspec into verismo_tspec crate with auto-broadcast group
Jun 4, 2026
06e4bba
security: add mem loop decreases proofs
Jun 4, 2026
4f23a8b
Add monitor loop decreases clauses
Jun 4, 2026
b274b6d
Fix rmp_e verification annotations
Jun 4, 2026
0ffd3da
snp::mem: annotate page permission triggers
Jun 4, 2026
f42aa8b
Add monitor termination measures
Jun 4, 2026
7a87aa9
verismo_verus: auto-inject use_type_invariant for inputs
ziqiaozhou Jun 4, 2026
cdf4a92
verismo_tspec: fix test1, add WIP test_not scaffolding
ziqiaozhou Jun 4, 2026
1c115ae
Revert "fix arch::vram::vram_rmp_p: externalize RMP read invariants"
Jun 4, 2026
a9e659c
Revert "fix arch::vram::vram_p: stabilize VRAM write proofs"
Jun 4, 2026
e784baa
Revert "fix arch::x64::x64_p: externalize x64 op proofs"
Jun 4, 2026
a4a49cd
sectype: remove wf_value from is_constant; use type_invariant in cmp ops
Jun 4, 2026
998f92a
mem/rawmem_p: surface ext_eq_contains_except for lemma call
Jun 4, 2026
1211080
sectype: preserve view when casting secure values
Jun 4, 2026
52b6b5d
ptr/snp/snp_u: prove vmpl0_private postcondition for sw→hw direction
Jun 4, 2026
d410053
boot/init/mshv_fmt: add decreases clause for fmt loop
Jun 4, 2026
73b6878
boot/init/mshv_init: add decreases clause for init loop
Jun 4, 2026
2f9b19a
boot/linux: add decreases clauses for boot loops
Jun 4, 2026
e7eb50d
mshyper/hypercall: add decreases clause for retry loop
Jun 4, 2026
7728acc
mshyper/wakeup: add decreases clauses for wakeup loops
Jun 4, 2026
a3e8561
pgtable_e/pte: remove assumes from set_page_enc_dec
Jun 4, 2026
ba98edd
boot/e820: reduce validated range lemma rlimit
Jun 4, 2026
b46e01b
arch/ptram: remove assumes from write PTE proof
Jun 4, 2026
f9119a7
boot/e820: remove assumes from validate_e820; reduce rlimit to 100
Jun 4, 2026
431e051
tspec/math: refactor closure triggers to U64Predicate trait
Jun 4, 2026
c43a9af
boot/e820: reduce validate_e820 rlimit from 100 to 10
Jun 4, 2026
1504262
arch/ptram: reduce lemma_write_pte_inv_ppn rlimit from 100 to 1
Jun 4, 2026
e2890cc
bsp/ap_call: remove assumes; use default rlimit
Jun 4, 2026
f105f12
fmt: run cargo fmt across source
Jun 4, 2026
04f5c54
ci: use cargo verus focus for verification
Jun 4, 2026
831edcf
fmt: run verusfmt across source
Jun 5, 2026
07c7bec
rlimit: drop redundant rlimit(1) annotations
Jun 5, 2026
c6924ca
sectype: add broadcast axiom_uop_new_constant for cast-of-constant
Copilot Jun 5, 2026
98cdb95
sectype_test: drop redundant use_type_invariant; tighten trigger
Copilot Jun 5, 2026
bd8f154
install_verus: install verusfmt for prebuilt path too
Copilot Jun 5, 2026
db716c7
triggers: add explicit triggers across allocator/linkedlist/debug
Copilot Jun 5, 2026
2080b02
triggers: add explicit triggers in addr_e/pgtable_e
Copilot Jun 5, 2026
de65354
triggers: add explicit triggers across snp/security/ptr
Copilot Jun 5, 2026
8ac25f3
triggers: add explicit triggers across boot/*
Copilot Jun 5, 2026
c9359af
broadcast: add per-module groups + verismo umbrella
Jun 5, 2026
d81b9c8
broadcast: use _ type args in groups to silence hide/reveal warning
Jun 5, 2026
ac972df
triggers: add explicit triggers in mem/rawmem_p{,2}.rs
Copilot Jun 5, 2026
e150eff
boot: remove stale-broadcast assume() cheats
Jun 5, 2026
53f9899
pgtable_e: remove stale-broadcast assume() cheats
Jun 5, 2026
53ad20f
addr_e: remove stale-broadcast assume() cheats
Jun 5, 2026
c834427
arch: remove stale-broadcast assume() cheats
Jun 5, 2026
b3da048
debug: remove stale-broadcast assume() cheats
Jun 5, 2026
1084499
Merge rm-assumes/boot into enable-build-verus-source
Jun 5, 2026
d714dfe
Merge rm-assumes/pgtable into enable-build-verus-source
Jun 5, 2026
f69f110
Merge rm-assumes/addr into enable-build-verus-source
Jun 5, 2026
1df4223
Merge rm-assumes/arch into enable-build-verus-source
Jun 5, 2026
84926f1
Merge rm-assumes/debug into enable-build-verus-source
Jun 5, 2026
51337c9
Merge triggers/rest into enable-build-verus-source
Jun 5, 2026
831a595
Merge triggers/mem into enable-build-verus-source
Jun 5, 2026
eb63b3f
Merge triggers/boot into enable-build-verus-source
Jun 5, 2026
d9aa455
Merge triggers/addr into enable-build-verus-source
Jun 5, 2026
ce4b976
Merge triggers/snp-security into enable-build-verus-source
Jun 5, 2026
5356bd2
snp: remove stale-broadcast assume() cheats
Jun 5, 2026
d87f876
Merge rm-assumes/snp into enable-build-verus-source
Jun 5, 2026
d416c62
param_e: drop obsolete verus-bug assume
Jun 5, 2026
35eb79b
monitor: drop obsolete assume(wf_registered) in handle_register
Jun 5, 2026
045113f
addr_s/page: delete unused axiom_addr_type_dummy_holder
Jun 5, 2026
1253be2
fmt: cargo fmt sweep across source
Jun 5, 2026
2d5d7bb
ghcb_print: probe print_ensures_cs conjuncts
Jun 5, 2026
d3bab51
Revert "ghcb_print: probe print_ensures_cs conjuncts"
Jun 5, 2026
7c2d637
boot/snp/misc: drop redundant proof blocks superseded by broadcast group
Jun 5, 2026
4a2a400
tspec: drop redundant proof blocks superseded by broadcast group
Jun 5, 2026
ae361a4
ghcb_print: drop redundant proof blocks superseded by broadcast group
Jun 5, 2026
a5b5564
addr/arch: drop redundant proof blocks superseded by broadcast group
Jun 5, 2026
ce6753e
tspec/math: drop redundant proof blocks superseded by broadcast group
Jun 5, 2026
64166fd
Merge cleanup-misc: drop redundant proof blocks
Jun 5, 2026
81cb086
Merge cleanup-tspec-rest: drop redundant proof blocks
Jun 5, 2026
3765704
Merge cleanup-debug: drop redundant proof blocks
Jun 5, 2026
bbf7805
Merge cleanup-addr-arch: drop redundant proof blocks
Jun 5, 2026
15d27e0
Merge cleanup-tspec-math: drop redundant proof blocks
Jun 5, 2026
9feaeae
verusfmt
Jun 5, 2026
d038f3f
workflow: verify all crates
Jun 5, 2026
013504e
fmt: cargo fmt pass before reconciling with verusfmt
Jun 5, 2026
656b52c
fmt: reconcile cargo fmt with verusfmt outputs
Jun 5, 2026
ea878a9
remove code that is commented out but causes inconsistant verusfmt an…
Jun 6, 2026
368a76b
ci: Do not fmt before cargo build since cargo verus will generate som…
Jun 6, 2026
59f031b
update verusfmt to 0.7.1
Jun 6, 2026
d2b8aa1
sectype: remove VNot workaround assume and addr_interface unused $ptype
Jun 6, 2026
67db032
verismo_macro/bits: remove unnecessary assume in generated empty()
Jun 6, 2026
baf1477
verismo_macro/print: remove unnecessary assume in derived early_print2
Jun 6, 2026
5f5384d
subseq: delete dead proof_remove_keep with admit()
Jun 6, 2026
e25d1be
ghcb_print: replace assume with axiom_global_auto broadcast
Jun 6, 2026
2a11bc1
idt/dummy: drop stale comments and unnecessary let-ret rewrite
Jun 7, 2026
080a4b9
README: document tools/install_verus and renumber sections
Jun 7, 2026
d7de87a
addr_e: drop unnecessary let-ret rewrites and stale comments
Jun 7, 2026
99cb4d8
debug, mshyper: drop unnecessary let-ret/proof scaffolding
Jun 7, 2026
ae30ccb
page, db_p: drop verbose 'Required:' broadcast-use comments
Jun 7, 2026
6be3626
sectype: remove session-internal checkpoint references in comments
Jun 7, 2026
de26f0a
Revert unnecessary lock-handle let-bindings in pte.rs and bsp.rs
Jun 7, 2026
eb8d784
Drop unused ghost vars and stale lock-handle bindings in pte/lock/init
Jun 7, 2026
e821d33
range_interface: drop redundant proof-doc comments
Jun 8, 2026
7ab570c
Drop // Justification: proof-doc comments
Jun 8, 2026
f1b1d2f
revert target.json
Jun 8, 2026
6c9bb3c
update Makefile to use cargo verus
Jun 8, 2026
41ec73f
Add trace and time in CI
Jun 8, 2026
3df48ff
drop my branch in Cargo.toml
Jun 8, 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
32 changes: 7 additions & 25 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

env:
CARGO_TERM_COLOR: always
Expand All @@ -19,34 +20,12 @@ jobs:
with:
submodules: recursive

- name: Install specified rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2023-12-22
target: x86_64-unknown-none
profile: minimal

- name: fetch verus via metadata
working-directory: source
- name: Install verus via prebuilt
working-directory: tools
run: |
source ../tools/v-ci-setup.sh
./install_verus --use-prebuilt
echo "VERUS_PATH=$(echo $VERUS_PATH)" >> $GITHUB_ENV

- uses: Swatinem/rust-cache@v2
with:
cache-directories: ${{ env.VERUS_PATH }}/source/target-verus
workspaces: |
${{ github.workspace }}/source -> target
${{ env.VERUS_PATH }}/source -> target
${{ env.VERUS_PATH }}/tools/vargo -> target

- name: Install depdendencies
run: ./tools/activate.sh

- name: Build
working-directory: source/verismo
run: cargo v build

- name: Fmt
run: cargo fmt --check
working-directory: tools/cargo-v
Expand All @@ -58,3 +37,6 @@ jobs:
- name: Fmt verus code
run: ./tools/fmt.sh --check

- name: Verify
working-directory: source
run: cargo verus focus --release -- --multiple-errors=20 --trace --time
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ richos/module/*.dwo
**.rust_verify
**.bin
**.log

# Worktrees for parallel agent verification (ignored)
.worktrees/
.verus-log/
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ verify: verifyonly fs

verifyonly:
cd source/verismo_main &&\
(cargo verify --release 1> verus-stderr.log)
(cargo verus build --release 1> verus-stderr.log)


${CURDIR}/source/target/target/release/verismo_main:
Expand All @@ -28,7 +28,7 @@ ${CURDIR}/source/target/target/release/verismo_main:
${CURDIR}/source/target/target/${DEBUG}/verismo_main: buildonly

buildonly:
cd source/verismo_main && cargo verify --release --feature noverify
cd source/verismo_main && cargo verus build --release


$(LINUX_OUT):
Expand Down
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,21 @@ First, Install rust toolchain;
tools/install.sh
```

## 1. Install tools 🧰
Then, build verus, verus-rustc (replacing rustc) and igvm tools and dependencies.
## 1. Install Verus 🧰
Install the Verus toolchain (verus, rust_verify, z3, cargo-verus, verusfmt) into `~/.cargo/bin`.
By default this downloads the pinned prebuilt release:
```
tools/install_verus
```
Pass `--verus-dir PATH` (optionally with `--verus-rev REV`) to build Verus from a source checkout instead, or `--force` to reinstall when the expected version is already present. Run `tools/install_verus --help` for full usage.

## 2. Install build tools 🧰
Then, build verus-rustc (replacing rustc) and igvm tools and dependencies.
```
tools/activate.sh
```

## 2. Verify and Build ✔️ 🛠️
## 3. Verify and Build ✔️ 🛠️

Now, run verification checks and build the binary.

Expand Down Expand Up @@ -77,14 +85,14 @@ or
cd source/verismo_main; cargo build --feature noverify --release;
```

## 3. Create VM image (skip if you run `make` or `make verify`)
## 4. Create VM image (skip if you run `make` or `make verify`)

1. Download linux submodule: `git submodule update --init richos/snplinux`
2. Build guest OS and drivers: `make fs -f Makefile.default`
1. Run `sh source/target/target/release/verismo/igvm.sh` to generate the verismo in IGVM format for Hyper-V: `source/target/target/release/verismo/verismo-rust.bin`
2. Run `make fs` to generate a vhdx file as filesystem for the VM: `richos/test-fs/verismo.vhdx`

## 4. Deploy and run
## 5. Deploy and run

### Requirements

Expand Down
12 changes: 6 additions & 6 deletions source/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[unstable]
build-std-features = ["compiler-builtins-mem"]
build-std = ["core","alloc", "compiler_builtins"]
unstable-options = true

[build]
target = "target.json"
target = "x86_64-unknown-none"
incremental = true

[env]
RUSTC_BOOTSTRAP = { value = "1", force = true }
CARGO_UNSTABLE_JSON_TARGET_SPEC = { value = "true", force = true }
CARGO_UNSTABLE_UNSTABLE_OPTIONS = { value = "true", force = true }

[profile.dev]
incremental = true
debug-assertions = true
Expand Down
26 changes: 19 additions & 7 deletions source/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
[workspace]
resolver = "2"
members = [
"verismo_main",
"verismo",
"verismo_macro"
"verismo_macro",
"verismo_tspec"
]

[workspace.dependencies]
# Verus repos
builtin = { git = "https://github.com/ziqiaozhou/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef" }
vstd = { git = "https://github.com/ziqiaozhou/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef", features = ["alloc"], default-features = false }
builtin_macros = { git = "https://github.com/ziqiaozhou/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef" }
syn_verus = { git = "https://github.com/ziqiaozhou/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef", features = ["full", "visit-mut", "extra-traits"] }
prettyplease_verus = { git = "https://github.com/ziqiaozhou/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef" }
# Verus crates from crates.io.
# `builtin` and `builtin_macros` are kept as the local crate names (via the
# `package = ...` rename) so we don't have to touch the `use builtin::*;` /
# `use builtin_macros::*;` statements scattered through the codebase.
builtin = { package = "verus_builtin", version = "=0.0.0-2026-05-17-0151", default-features = false }
builtin_macros = { package = "verus_builtin_macros", version = "=0.0.0-2026-05-24-0157", features = ["vpanic"], default-features = false }
verus_state_machines_macros = { version = "=0.0.0-2026-05-24-0157", default-features = false }
vstd = { version = "=0.0.0-2026-05-24-0157", features = ["alloc", "allow_panic"], default-features = false }

# `syn_verus` and `prettyplease_verus` are used only by the project's own
# proc-macro crates (`verismo_macro` and `verismo_verus`). They are pinned to
# the old syn-1.x-based fork because the rest of those macros are written
# against the syn-1.x API (e.g. `token::Colon2`, `NestedMeta`, etc.); the
# current upstream `verus_syn` is a syn-2.0 fork with a different API.
syn_verus = { git = "https://github.com/verus-lang/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef", features = ["full", "visit-mut", "extra-traits"] }
prettyplease_verus = { git = "https://github.com/verus-lang/verus", rev ="7c4a5274a4d74522f3965eb038bb7e22fa5eebef" }

# the profile used for `cargo build`
[profile.dev]
Expand Down
2 changes: 1 addition & 1 deletion source/rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[toolchain]
channel = "nightly-2023-12-22"
channel = "1.95.0"
components = [ "rust-src", "rustc", "cargo", "rustfmt", "rustc-dev", "llvm-tools-preview" ] # TODO llvm-tools-preview may be unnecessary
9 changes: 7 additions & 2 deletions source/verismo/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[package]
name = "verismo"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

Expand All @@ -14,10 +15,11 @@ vstd = { workspace = true, features = ["alloc"], default-features = false }
#builtin_macros = { path = "../../tools/verus/source/builtin_macros"}
#vstd = {path = "../../tools/verus/source/vstd", features = ["alloc"], default-features = false }
# Trusted
hacl-sys = {git = "https://github.com/ziqiaozhou/hacl-packages", rev = "e12108dc04f79edb19c10f9ea4fa12bb49ca9da2"}
hacl-sys = {git = "https://github.com/ziqiaozhou/hacl-packages", rev = "e02b4182d7afe346ebd04da6f96a54dc29488892"}
# Useful macros
verismo_macro = {path = "../verismo_macro"}
verismo_verus = {path = "../verismo_verus"}
verismo_tspec = {path = "../verismo_tspec"}
paste = "1.0"
seq-macro = "0.3"
vops = {path = "../vops"}
Expand All @@ -32,4 +34,7 @@ noverify = []
alloc = []

[package.metadata.rust-analyzer]
rustc_private=true
rustc_private=true

[package.metadata.verus]
verify = true
99 changes: 0 additions & 99 deletions source/verismo/build.rs

This file was deleted.

3 changes: 1 addition & 2 deletions source/verismo/src/addr_e/exe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ verismo_simple! {
bit64_shl_values_auto();
}
let v: u64 = value.into();
assert(v.wf());
(align_down_by(v, PAGE_SIZE as u64) as usize)
align_down_by(v, PAGE_SIZE as u64) as usize
}
}
Loading
Loading