Skip to content

How to integrate distributed-verification into verify-rust-std? #409

@zjp-CN

Description

@zjp-CN

run-kani.sh is well written and not so difficult to read. But it's not robust and extensible.

distributed-verification (dv) a tool proposed as GSoC 2025 helps verify-rust-std (kani) skip any harness that is unmodified, and make verification workloads into multiple VMs.

dv can tell which harnesses should be really run based on function hash difference. The hash is computed through source code of function, and all traversed calls inside.

The rest of work is to integrate it into verify-rust-std. But here are some choices to achieve it:

  • keep run-kani.sh as full check, and create another script as partial check
  • keep run-kani.sh, and add partial check logics (i.e. invoking dv) to current code, almost needing a big surgery
  • move functionalities from run-kani.sh into verify_rust_std a CLI used by dv to operate on verify-rust-std (from kani's perspective for now), currently it only invokes cargo build with RUSTC_WRAPPER as dv, but I'd like to implement what run-kani.sh does now, and handle the switch between full checks and partial checks. Also there is a TODO in run-kani.sh to make argument parsing better:

# TODO: Improve parsing with getopts

What do you think?

Metadata

Metadata

Assignees

Labels

QuestionUse for any clarification or general question about the contest

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions