Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
37ef32c
Start implementing vihaco component
david-pl Apr 20, 2026
78ebef2
Implement batched instructions
david-pl Apr 20, 2026
a46ecb2
Make measurement result an outcome
david-pl Apr 21, 2026
8a9071f
Simplify outcome type
david-pl Apr 21, 2026
71c1703
Fix generic types, hardcode f64 coeffs; temporarily switch to local
david-pl Apr 27, 2026
02c8135
Draft machine impl
david-pl Apr 28, 2026
931cb12
Add TODO
david-pl May 11, 2026
1ed6da3
Start refactoring to new vihaco
david-pl May 13, 2026
75a5c11
Rename Circuit component
david-pl May 15, 2026
c6af3db
Merge branch 'main' into david/42-circuit-component
david-pl May 19, 2026
e493165
Also reset loss state
david-pl May 19, 2026
1394c57
Add a component that dispatches and make components observe effects
david-pl May 19, 2026
91f7c41
More prelude exports
david-pl May 19, 2026
4e65f33
Refactor machine into composite
david-pl May 20, 2026
6c56b58
Fix measurement effect return and don't manually push const
david-pl May 20, 2026
5ce25ee
Delete some old code
david-pl May 20, 2026
939d812
Device info for PPVM
david-pl May 20, 2026
75047f9
Merge branch 'main' into david/42-circuit-component
david-pl May 20, 2026
3d3fb82
Implement parsing for PPVM
david-pl May 21, 2026
71d50d3
Add tests and fix some bugs
david-pl May 21, 2026
b16ffa9
Unused import
david-pl May 21, 2026
3ebf0db
Push measurement and is_lost to stack; test control flow
david-pl May 21, 2026
5734844
Implement function call support
david-pl May 22, 2026
b88859f
Add magic number to header
david-pl May 22, 2026
6b236c3
Handle function calls and returns properly
david-pl May 22, 2026
981b1a7
Remove magic number from text format
david-pl May 22, 2026
5ad1f54
Make MeasurementOutcome an enum and push a single u32 rather than two…
david-pl May 22, 2026
8ab3ebe
Add comment to measurement outcome
david-pl Jun 2, 2026
e4aaeb8
Use smallvec for measurement result
david-pl Jun 2, 2026
15a143c
Make batched operations also smallvec
david-pl Jun 2, 2026
14423a4
Better naming for error shotrhand type
david-pl Jun 2, 2026
7d6ff20
Add bytecode emission and loading
david-pl Jun 2, 2026
991447f
More tests
david-pl Jun 2, 2026
2a397c9
Expose some more stuff
david-pl Jun 2, 2026
8d711ba
Inspect source to check if it's bytecode before loading
david-pl Jun 2, 2026
a13fe34
Implement CLI to run ppvm
david-pl Jun 2, 2026
bdcffc8
Fix show-measurements flag and make formats an enum
david-pl Jun 2, 2026
921eabe
Add measurement format flag to run
david-pl Jun 2, 2026
8364bd3
Add a bunch of tests
david-pl Jun 2, 2026
e7e00d8
Remove lib.rs
david-pl Jun 2, 2026
1ae6837
Add a short README and example
david-pl Jun 2, 2026
b775169
Also advance on breakpoint
david-pl Jun 2, 2026
d58cc48
Add debug command to step through breakpoints
david-pl Jun 2, 2026
bba00b8
Fix reset impl: also reset measurement records
david-pl Jun 3, 2026
487e853
Skip intra-shot rayon parallelism inside shot-level parallelism
david-pl Jun 3, 2026
0c4c7a8
Add multi-shot run API to ppvm-vihaco
david-pl Jun 3, 2026
dd7147c
Run multiple shots from the CLI with optional threads, seed, and outp…
david-pl Jun 3, 2026
2aa534c
Update ppvm-cli README for multi-shot run
david-pl Jun 3, 2026
a2a63f5
Add missing resolve for two-qubit pauli error
david-pl Jun 3, 2026
e6bc2be
Fix pop order
david-pl Jun 3, 2026
ec98a4c
Add XY rotation gate
david-pl Jun 3, 2026
f80dd74
Add R gate
david-pl Jun 3, 2026
225c34e
Add R to CircuitInstruction set
david-pl Jun 3, 2026
3474c03
Split out CircuitInstruction, Message and effect into separate crate
david-pl Jun 3, 2026
e3af9c8
Add license headers
david-pl Jun 3, 2026
b9af349
Merge branch 'main' into david/42-circuit-component
david-pl Jun 3, 2026
5d43342
Make thread count global flag and make it consistent throughout
david-pl Jun 3, 2026
3a96ddc
Execute single instruction and tableau printing methods
david-pl Jun 3, 2026
f943ffa
Add REPL
david-pl Jun 3, 2026
b62884c
Use rustyline for history
david-pl Jun 3, 2026
749b927
Merge branch 'main' into david/42-circuit-component
david-pl Jun 8, 2026
51039f4
Add configurable backend kind and no-op trace truncate
david-pl Jun 9, 2026
220d6ca
Draft backend dispatch
david-pl Jun 9, 2026
d5cafbf
Gate dispatch for PauliSum executors
david-pl Jun 9, 2026
8659956
TraceEffect and CircuitOutcomeEffect
david-pl Jun 9, 2026
59b003d
PauliPattern trace
david-pl Jun 9, 2026
30006a2
Update constructor and add observable header
david-pl Jun 9, 2026
a300333
Add some new tests and truncate no-op
david-pl Jun 9, 2026
067c34c
Implement observable parser
david-pl Jun 10, 2026
3805867
Hook parser into constructors
david-pl Jun 10, 2026
35856ad
Intern strings and add a bunch of end-to-end tests
david-pl Jun 10, 2026
c83bd4e
Add ShotRecord, formatting and update CLI
david-pl Jun 10, 2026
44fb416
Update skills
david-pl Jun 10, 2026
5e8e9e0
Trace for tableau
david-pl Jun 10, 2026
813fe35
Add a test comparing PauliSum.trace and average over Tableau expect
david-pl Jun 10, 2026
ca32988
Wire in trace in the tableau backend
david-pl Jun 10, 2026
9a9ee8a
Rename gate to circuit for instructions
david-pl Jun 10, 2026
cef09c0
Merge branch 'main' into david/42-circuit-component
david-pl Jun 10, 2026
e60ee0b
Use a shared macro for PauliSum backend impls
david-pl Jun 10, 2026
0a056e9
Add a test for lossy paulisum and fix stale skill
david-pl Jun 10, 2026
0e430b0
Fix README since in-line comments don't work
david-pl Jun 11, 2026
7ee38ef
Add a few .sst examples
david-pl Jun 11, 2026
5596024
Update to latest vihaco changes
david-pl Jun 19, 2026
a24031a
Update vihaco dependencies to public ones
david-pl Jun 23, 2026
0b816d4
Merge branch 'main' into david/42-circuit-component
david-pl Jun 23, 2026
c9fa288
Update lock file
david-pl Jun 23, 2026
ba289e0
Fix prek CI
david-pl Jun 23, 2026
569d9a6
Fix prek CI again
david-pl Jun 23, 2026
84f1b57
Fix clippy issues
david-pl Jun 23, 2026
4d2010d
Fix ruff issues
david-pl Jun 23, 2026
f5dceba
Merge branch 'main' into david/42-circuit-component
david-pl Jun 24, 2026
e6b6c16
Fix wasm build failure due to rayon feature
david-pl Jun 24, 2026
719fe0a
Exclude ppvm-cli from wasm build
david-pl Jun 24, 2026
509413c
Merge branch 'main' into david/42-circuit-component
david-pl Jun 26, 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
8 changes: 5 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@ jobs:
run: cargo test -p ppvm-stim --features rayon

# Cross-compile the whole workspace for browser wasm so a wasm regression
# surfaces in CI. `ppvm-python-native` is a CPython extension (never a wasm
# target) and is excluded. Native-only acceleration deps (gxhash, dashmap →
# surfaces in CI. `ppvm-python-native` (a CPython extension) and `ppvm-cli`
# (a terminal binary using clap/rustyline) are never browser-wasm targets and
# are excluded; the reusable engine lives in the library crates, which stay
# covered. Native-only acceleration deps (gxhash, dashmap →
# rayon, ahash) are pruned automatically by the `cfg(not(target_arch =
# "wasm32"))` dependency tables, and `rand`'s entropy uses the getrandom
# `wasm_js` backend wired in `.cargo/config.toml` — so no extra flags here.
Expand All @@ -89,7 +91,7 @@ jobs:
- uses: Swatinem/rust-cache@v2

- name: Build workspace for wasm32-unknown-unknown
run: cargo build --target wasm32-unknown-unknown --workspace --exclude ppvm-python-native
run: cargo build --target wasm32-unknown-unknown --workspace --exclude ppvm-python-native --exclude ppvm-cli

python-tests:
name: Python tests
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
.uv/
*__pycache__*
profile.json.gz
debug/

# mkdocs build output and cache
ppvm-python/site/
Expand Down
7 changes: 4 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ ion add QuEraComputing/ppvm/skills/ppvm-usage

The skill (`skills/ppvm-usage/SKILL.md` in this repo) covers the Heisenberg /
Schrödinger gate-order trap, `Config`-generic `PauliSum` usage, truncation
strategies, and Python / Rust call sites for both backends. Read it before
the Developer Guide if your task is *using* ppvm rather than modifying its
internals.
strategies, Python / Rust call sites for both backends, and the `.sst`
textual program format run by `ppvm-cli` (backend selection, multi-term
observables, `gate trace` / `gate truncate`). Read it before the Developer
Guide if your task is *using* ppvm rather than modifying its internals.
Comment on lines +27 to +30

## TL;DR for agents

Expand Down
Loading
Loading