Commit bdf1021
authored
Rslib direct deps (#280)
* Restructure pecos-rslib: direct deps, split crates, faster builds
Replace pecos metacrate dependency with direct crate deps, split
decoders into pecos-rslib-qec and LLVM IR into pecos-rslib-llvm.
Fix build pipeline to call maturin directly instead of through
uv run (which caused full rebuilds every time).
- pecos-rslib now depends on individual crates instead of pecos metacrate
- New pecos-rslib-qec crate for QEC decoder bindings
- New pecos-rslib-llvm crate for LLVM IR generation bindings
- pecos python build now builds all rslib crates
- just build no longer triggers uv sync forced rebuilds
- Add skip-if-no-cuda-rust marker for doc tests
- Remove dead qir_bindings.rs and llvm_context_bindings.rs
* Optimize just build: skip selene when unchanged, simplify dev recipes
* Cache LLVM in CI, simplify workflows, add new rslib crates to paths
- Cache LLVM installation across CI runs (fixed version, keyed by OS+arch)
- Skip LLVM download when cache hit (saves ~5 min per job)
- Install PECOS CLI before LLVM setup in python-test (avoid cargo run overhead)
- Update rust-cache workspaces to include pecos-rslib-qec and pecos-rslib-llvm
- Add new rslib crate paths to rust-test trigger paths
- Reduce python-test timeout from 240 to 120 minutes
- Simplify Windows/macOS setup steps
- Remove duplicated LLVM install/find/check cargo run invocations
* Fix panic on zero-sized array construction (e.g., shape (0, 5))
* lint
* Merge pecos-rslib-qec back into pecos-rslib, keep only pecos-rslib-llvm split
* Fix CI: add just to docs workflow, fix Windows venv path
* Fix docs CI: skip selene build, call pecos python build directly
* Fix CI: install LLVM before CLI (inkwell needs LLVM_SYS_140_PREFIX)
* Fix CI: docs missing deps, engine_type cfg gate bug
- Docs workflow: use --all-packages to install guppylang etc.
- Fix engine_type.rs cfg gate: was feature="llvm" but code uses pecos_qis (needs feature="qis")
* Fix unified_sim.rs cfg gates: use feature=qis not feature=llvm for fallbacks
* Fix remaining cfg gate bugs: engine_setup.rs and engine_type.rs qis/llvm mismatch
* Fix macOS build (@rpath), make pecos-rslib-llvm optional
- macOS: unset Homebrew library paths inline before build (GITHUB_ENV can't unset)
- Move pecos-rslib-llvm from required to optional dep of quantum-pecos
- Guard pecos_rslib_llvm imports with try/except for when LLVM not installed
- Fixes release workflow test (pecos-rslib-llvm not on PyPI)
* Add pecos-rslib-llvm wheel builds to release workflow
- Build pecos-rslib-llvm wheels alongside pecos-rslib in cibuildwheel
- Download and install llvm wheels in quantum-pecos test jobs
- Keep pecos-rslib-llvm as required dep (not optional)
- Revert try/except import guard in gen_qir.py
- Organize llvm wheel artifacts separately in collect step
* Clean up PR review issues: remove hardcoded paths, deduplicate unified_sim, optimize CI
* Fix release: add libffi-devel to pecos-rslib-llvm Linux cibuildwheel
* Move Go, Julia, Python check/test from CLI to Justfile recipes
* Fix macOS: clear Homebrew library paths in maturin builds to prevent @rpath errors
* Fix macOS @rpath/libc++ and Windows PowerShell in just build
- Add -rpath /usr/lib to RUSTFLAGS on macOS so cdylibs can find system libc++
- Use just's - prefix for julia/go builds (cross-platform error ignoring)
* Split CLI into pecos-cli crate, remove thin wrapper commands, move dev workflows to Justfile
* Fix stale cfg feature references in pecos-cli (qasm/phir/llvm/quest -> runtime)
* Simplify pecos doctor and info: remove always-true capability checks
* Rewrite pecos doctor to check things that actually break
* Add just doctor for fast dev environment checks without compilation
* Update docs: doctor usage, CLI install instructions, Justfile recipe names
* Merge install-cli and reinstall-cli into one recipe
* Fix go-lint/go-test bugs, remove stale recipes, merge test/test-all
* Rename clean-everything to clean-all
* Fix clean-all comment to describe what it actually cleans
* Remove legacy clean paths (--llvm, --cuda), simplify clean.py and Justfile
* Remove clean-selene recipe (just clean already includes it)
* Remove dead private recipes and unnecessary aliases
* Collapse clean recipes into one: just clean [cache|deps|all|dry-run]
* Add just doctor to quick-start banner
* Remove devc/devc-full (Rust build auto-detects CUDA, Python extras are a separate step)
* Remove fmt-fix (lint-fix already handles it)
* Merge lint/lint-fix into one recipe: just lint (fixes) or just lint check
* Rename dev-full to premerge
* Rename premerge to check-all
* lint
* Remove decoder recipes (straight cargo commands, not worth wrapping)
* Rename updatereqs to updatelocks
* Make updatelocks nuke and regenerate both uv.lock and Cargo.lock
* update lock
* Remove clean from dev group (it belongs in clean group only)
* Make just pytest run all Python tests by default, remove pytest-all
* Fix cuQuantum version parsing (substring match hit wrong #define, .last() grabbed comment)
* Remove pytest-selene (just pytest already runs selene tests)
* Remove pytest-numpy (just pytest already runs numpy tests)
* Fix CI: pytest-all -> pytest, lint -> lint check
* Make check-cli auto-install if missing or outdated (fixes check-all after clean)
* Describe parameters in recipe comments for discoverability
* Update workspace keywords for better crates.io discoverability
* Clean up workspace Cargo.toml: fix author spacing, simplify dev/test profiles
* Add strip=true to release profile for smaller binaries
* Remove commented-out zstd-sys workaround
* Remove clean from check-all (incremental build is sufficient, clean + rebuild is fragile)
* Fix build-selene SIGPIPE crash (find|head pipeline fails with set -eo pipefail)
* Reorganize workspace deps by purpose, alphabetize internal crates
* Fix flaky LLVM tests: don't assert on log message content
* Remove stale test file accidentally restored in pecos crate
* Fix stray closing paren in llvm test
* Fix double-free in pecos-neo: Box the recursive Conditional variant in AdaptedOp
* lint
* Remove: wrapper functions, banner comments, duplicate detect functions, useless docs
* Trim metacrate lib.rs: remove tutorial docs, banner comments, duplicate examples (832 -> 221 lines)
* Fix CI: add --force to cargo install pecos-cli (binary name conflicts with old pecos package)
* lint
* Clean up clippy allows: remove 4 unnecessary, mark remaining 7 as TODO to localize
* Localize too-many-arguments: remove workspace allow, add per-function allows with justification
* Refactor QEC: DecoderAccumulator and PropagationBuffers structs replace long arg lists
* Refactor pecos_array: FlatBuffers struct replaces 6 separate buffer args in 3 functions
* Remove unused-self workspace allow: convert 38 methods to associated functions, 7 local PyO3 allows
* Remove items-after-statements workspace allow: move 50 items before let bindings
* Update allow comments with accurate counts, keep needless-pass-by-value and too-many-lines
* Remove missing-errors-doc and missing-panics-doc workspace allows: add meaningful docs to 66 functions
* Remove needless-pass-by-value workspace allow: fix 29 Rust functions, crate-level allow for PyO3
* Remove cast-sign-loss workspace allow: 92 casts given explicit per-line allows with safety comments
* Remove cast-possible-wrap workspace allow: 52 casts given explicit per-line allows with safety comments
* Keep cast-precision-loss and cast-possible-truncation as workspace allows (465 + 250 hits, pervasive)
* Remove cast-possible-truncation workspace allow: 250 casts given explicit per-line allows
* lint
* Remove cast-precision-loss workspace allow: localize to functions/modules/files
* Add --all-features to clippy commands to match CI
* Fix clippy warnings with --all-features: benchmark cast allows and items-after-statements
* Make dev use debug tests, check-all use release tests and release build
* Fix doctests broken by needless-pass-by-value refactor (add & to doc examples)
* Remove module-name-repetitions allow (zero warnings), keep physics naming and too-many-lines
* Fix unnecessary_wraps in CLI: remove Result from functions that never error, remove stale allows
* Remove stale allows, fix dem_sampler doc/ref/if warnings, use iterator in pcg_test
* lint
* Fix redundant_closure with method reference, fix DiEdgeBuilder allow comment
* Fix method reference that takes &self but map_or passes owned value
* Make just dev accept language argument: just dev rust, just dev python, etc.
* Make clippy CUDA-aware: only use --all-features when CUDA is available1 parent e96ef09 commit bdf1021
296 files changed
Lines changed: 4293 additions & 6039 deletions
File tree
- .github/workflows
- crates
- benchmarks/benches
- modules
- pecos-build/src
- pecos-cli
- src
- cli
- tests
- cli
- test_data
- hugr
- pecos-core
- examples
- src
- pauli
- pecos-engines
- src
- tests
- pecos-gpu-sims
- examples
- src
- pecos-num/src
- pecos-phir
- src
- execution
- tests
- pecos-qec
- src
- fault_tolerance
- dem_builder
- propagator
- tests
- pecos-quantum
- examples
- src
- tests
- pecos-random
- src
- tests
- pecos-relay-bp
- src
- tests
- pecos-simulators
- examples
- src
- clifford_rz
- pecos
- src
- bin
- cli
- docs
- development
- user-guide
- exp/pecos-neo
- benches
- examples
- src
- ecs
- extensible
- noise
- composite
- plugins
- sampling
- tool
- tests
- python
- pecos-rslib-cuda/src
- pecos-rslib-llvm
- src
- pecos-rslib
- src
- tests
- quantum-pecos
- src/pecos/slr
- ast/codegen
- gen_codes
- tests/docs/rust_crate
- tests
- scripts
- docs
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
| 113 | + | |
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
| 120 | + | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
| 130 | + | |
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | | - | |
| 137 | + | |
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
| 64 | + | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
220 | | - | |
| 220 | + | |
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
| |||
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
233 | | - | |
| 233 | + | |
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
| |||
248 | 248 | | |
249 | 249 | | |
250 | 250 | | |
251 | | - | |
| 251 | + | |
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
| |||
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
267 | | - | |
| 267 | + | |
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
271 | 271 | | |
272 | 272 | | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
273 | 333 | | |
274 | 334 | | |
275 | 335 | | |
| |||
371 | 431 | | |
372 | 432 | | |
373 | 433 | | |
374 | | - | |
375 | | - | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
376 | 444 | | |
377 | 445 | | |
378 | 446 | | |
| |||
416 | 484 | | |
417 | 485 | | |
418 | 486 | | |
419 | | - | |
420 | | - | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
421 | 497 | | |
422 | 498 | | |
423 | 499 | | |
| |||
464 | 540 | | |
465 | 541 | | |
466 | 542 | | |
467 | | - | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
468 | 551 | | |
469 | 552 | | |
470 | 553 | | |
| |||
0 commit comments