feat!: Add handling for an additional gateset - #119
Merged
Merged
Conversation
jake-arkinstall
force-pushed
the
feat/add-sol-gateset
branch
from
January 30, 2026 17:45
f961c91 to
b367a6e
Compare
jake-arkinstall
force-pushed
the
feat/add-sol-gateset
branch
from
February 13, 2026 07:34
5716f2e to
5fb0a38
Compare
jake-arkinstall
force-pushed
the
feat/add-sol-gateset
branch
from
March 23, 2026 11:17
5fb0a38 to
03dcd3b
Compare
jake-arkinstall
force-pushed
the
feat/add-sol-gateset
branch
from
April 20, 2026 10:56
06a0438 to
571e75c
Compare
…ation independently
…t the plugin apis. Implement in quest and stim, and add examples.
…g, mingw linking)
jake-arkinstall
force-pushed
the
feat/add-sol-gateset
branch
from
April 20, 2026 15:29
b3f2bd9 to
894e368
Compare
…ad of a custom box
jake-arkinstall
marked this pull request as ready for review
April 20, 2026 17:01
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds native support for a second, Sol-targeted gateset (including RPP/TK2) alongside existing Helios support, spanning build planning, runtime/simulator plugin APIs, and test resources.
Changes:
- Extend simulator/runtime APIs to include
rppandtk2operations, with updated plugin loading and bindings (Rust/C/Python). - Introduce a new Sol QIS interface plugin (Python + C) and update build tooling to build/package it.
- Update/regen Guppy-derived LLVM IR test resources to cover the new platform/gateset pathways.
Reviewed changes
Copilot reviewed 139 out of 1117 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| selene-sim/python/tests/resources/from_guppy/test_debug/test_array_state[StimPlugin]/array_state-helios-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot for Helios target |
| selene-sim/python/tests/resources/from_guppy/test_debug/test_array_state[QuestPlugin]/array_state-sol-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot for Sol target |
| selene-sim/python/tests/resources/from_guppy/test_debug/test_array_state[QuestPlugin]/array_state-sol-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot for Sol target |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-x86_64-windows-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-x86_64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-x86_64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-aarch64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-aarch64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-sol-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-sol-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-sol-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-sol-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-sol-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-helios-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-helios-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-helios-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-helios-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-helios-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-x86_64-windows-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-x86_64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-x86_64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-aarch64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-aarch64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-sol-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-sol-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-sol-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-sol-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-sol-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-helios-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-helios-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-helios-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-helios-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-helios-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-x86_64-windows-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-x86_64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-x86_64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-aarch64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-aarch64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-sol-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-sol-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-sol-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-sol-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-sol-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-helios-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-helios-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-helios-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-helios-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-helios-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-x86_64-windows-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-x86_64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-x86_64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-aarch64-unknown-linux-gnu.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-aarch64-apple-darwin.ll | Removed old generated LLVM IR snapshot (pre-Sol/Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-sol-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-sol-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-sol-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-sol-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-sol-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Sol naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-helios-x86_64-windows-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-helios-x86_64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-helios-x86_64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-helios-aarch64-unknown-linux-gnu.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-helios-aarch64-apple-darwin.ll | Added generated LLVM IR snapshot (Helios naming) |
| selene-sim/python/selene_sim/interactive/runtime.py | Add ctypes bindings and operation dataclasses for RPP/TK2 |
| selene-sim/python/selene_sim/event_hooks/instruction_log.py | Add instruction-log parsing + pytket emission for RPP/TK2 |
| selene-sim/python/selene_sim/build.py | Allow selecting quantum interface by cfg["platform"] |
| selene-sim/c/include/selene/selene.h | Add C API entrypoints for selene_rpp and selene_tk2 |
| selene-ext/simulators/stim/python/gate_definitions.py | Add Stim-side definitions for RPP/TK2 exploration |
| selene-ext/simulators/quest/python/gate_definitions.py | Add symbolic definitions for RPP/TK2 |
| selene-ext/simulators/quantum-replay/rust/lib.rs | Implement rpp/tk2 forwarding in replay simulator |
| selene-ext/simulators/coinflip/rust/lib.rs | Stub rpp/tk2 with bounds validation |
| selene-ext/simulators/classical-replay/rust/lib.rs | Stub rpp/tk2 with bounds validation |
| selene-ext/runtimes/soft_rz/rust/lib.rs | Reject RPP/TK2 as unsupported in SoftRZ runtime |
| selene-ext/runtimes/simple/rust/lib.rs | Add RPP/TK2 recording support to Simple runtime |
| selene-ext/interfaces/sol_qis/python/selene_sol_qis_plugin/plugin.py | New Sol QIS QuantumInterface plugin |
| selene-ext/interfaces/sol_qis/python/selene_sol_qis_plugin/build.py | New Sol build steps (HUGR -> LLVM IR/BC) |
| selene-ext/interfaces/sol_qis/python/selene_sol_qis_plugin/init.py | Export Sol interface types |
| selene-ext/interfaces/sol_qis/c/include/sol_qis/interface.h | New Sol QIS C interface header |
| selene-ext/interfaces/sol_qis/c/include/sol_qis/cl_types.h | New Sol QIS CL types |
| selene-ext/interfaces/sol_qis/c/cmake/SolSeleneInterfaceConfig.cmake.in | Add CMake package config for Sol interface |
| selene-ext/interfaces/sol_qis/c/CMakeLists.txt | Build/install Sol static libs (quiet/debug/diagnostic) |
| selene-ext/interfaces/sol_qis/c/.gitignore | Ignore Sol C build directory |
| selene-ext/interfaces/helios_qis/python/selene_helios_qis_plugin/build.py | Restrict Helios build steps to Helios platform + make compiler optional |
| selene-ext/error-models/simple-leakage/rust/lib.rs | Add simulation support for RPP/TK2 operations |
| selene-ext/error-models/ideal/rust/lib.rs | Add simulation support for RPP/TK2 operations + improved errors |
| selene-ext/error-models/depolarizing/rust/lib.rs | Add depolarizing support for RPP/TK2 operations + consistent bails |
| selene-core/rust/simulator/version.rs | Bump simulator API patch version |
| selene-core/rust/simulator/plugin.rs | Make some gate symbols optional; add RPP/TK2 optional symbols |
| selene-core/rust/simulator/interface.rs | Provide default "unsupported gate" implementations + add RPP/TK2 |
| selene-core/rust/simulator/helper.rs | Export C ABI helpers for RPP/TK2 |
| selene-core/rust/simulator/conformance_testing/framework.rs | Extend conformance test framework with RPP/TK2 operations |
| selene-core/rust/simulator.rs | Delegate new simulator ops through the wrapper |
| selene-core/rust/runtime/version.rs | (Attempted) runtime API version adjustment |
| selene-core/rust/runtime/plugin.rs | Add runtime plugin symbols + batched extraction for RPP/TK2 |
| selene-core/rust/runtime/interface.rs | Provide default "unsupported gate" implementations + add RPP/TK2 |
| selene-core/rust/runtime/helper.rs | Export C ABI helpers for RPP/TK2 + batch extraction wiring |
| selene-core/rust/runtime.rs | Add RPP/TK2 operations and mark Operation enum non_exhaustive |
| selene-core/python/selene_core/build_utils/builtins/qir.py | Note missing Sol QIR matching support |
| selene-core/python/selene_core/build_utils/builtins/init.py | Register+export Sol/QIR builtins |
| selene-core/c/include/selene/simulator.h | Add C API declarations for simulator RPP/TK2 ops |
| selene-core/c/include/selene/runtime.h | Add C API declarations for runtime RPP/TK2 ops (+ docs) |
| selene-core/c/include/selene/core_types.h | Extend RuntimeGetOperationInterface with RPP/TK2 callbacks |
| pyproject.toml | Add test dependency-group and include Sol plugin package |
| hatch_build.py | Build/package both Helios and Sol platform QIS artifacts |
| devenv.nix | Exclude gate_definitions helper scripts from tooling |
| conftest.py | Generate/store LLVM IR resources per QIS platform+target triple |
| .gitattributes | Mark test resources/snapshots as generated |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Apr 21, 2026
jake-arkinstall
pushed a commit
that referenced
this pull request
Jun 12, 2026
🤖 I have created a release *beep* *boop* --- ## [0.3.0-alpha.1](selene-core-v0.3.0-alpha.0...selene-core-v0.3.0-alpha.1) (2026-06-12) ### ⚠ BREAKING CHANGES * Use struct exports for all plugin types, separate error model and simulator ([#169](#169)) * Add handling for an additional gateset ([#119](#119)) ### Features * Add __version__ attributes ([#137](#137)) ([379ae01](379ae01)) * Add handling for an additional gateset ([#119](#119)) ([5180b80](5180b80)) * Add simulate_delay functionality ([#139](#139)) ([cca97fa](cca97fa)) * Add support for object files provided as bytes ([#94](#94)) ([c4cfac6](c4cfac6)) * add timing to builtin runtimes and batching options to softrz runtime ([#158](#158)) ([049e123](049e123)) * Build improvements ([#142](#142)) ([12f399b](12f399b)) * Interactive use of Selene from python ([#135](#135)) ([db3028d](db3028d)) * Make interfaces shared, add ArgReader ([#171](#171)) ([143e742](143e742)) * QIR support using QIR-QIS ([#114](#114)) ([70ab294](70ab294)) * Result stream handling refactor ([#93](#93)) ([607a55e](607a55e)) * Stim improvements (more ops + state printing) ([#115](#115)) ([867d5e5](867d5e5)) * test on QIS instead of relying on the upper stack ([#150](#150)) ([b80a9c4](b80a9c4)) * Traces for analytics ([#160](#160)) ([24b9978](24b9978)) * Use mingw instead of msvc for windows wheels ([#143](#143)) ([3d91514](3d91514)) * Use struct exports for all plugin types, separate error model and simulator ([#169](#169)) ([c44a5c9](c44a5c9)) ### Bug Fixes * add `___barrier` to Helios QIS for QIR emulation ([#136](#136)) ([dfbc4c3](dfbc4c3)) * avoid using qir_major_version string for QIR detection ([#123](#123)) ([deaa0dc](deaa0dc)) * classify lowered qir-qis bitcode as helios ([#157](#157)) ([67fca60](67fca60)) * make qir-qis optional and stabilize CI ([#164](#164)) ([e52c0b2](e52c0b2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
jake-arkinstall
added a commit
that referenced
this pull request
Jun 12, 2026
🤖 I have created a release *beep* *boop* --- ## [0.3.0-alpha.1](selene-sim-v0.3.0-alpha.0...selene-sim-v0.3.0-alpha.1) (2026-06-12) ### ⚠ BREAKING CHANGES * Use struct exports for all plugin types, separate error model and simulator ([#169](#169)) * Add handling for an additional gateset ([#119](#119)) ### Features * Add __version__ attributes ([#137](#137)) ([379ae01](379ae01)) * Add event hook which records measurement results ([#104](#104)) ([01300ee](01300ee)), closes [#103](#103) * Add handling for an additional gateset ([#119](#119)) ([5180b80](5180b80)) * Add simulate_delay functionality ([#139](#139)) ([cca97fa](cca97fa)) * Add support for object files provided as bytes ([#94](#94)) ([c4cfac6](c4cfac6)) * add timing to builtin runtimes and batching options to softrz runtime ([#158](#158)) ([049e123](049e123)) * Better exception handling for parse_shots=False ([#70](#70)) ([3caf530](3caf530)) * Build improvements ([#142](#142)) ([12f399b](12f399b)) * Bump selene-core dependency and relax guppylang testing dependency ([#120](#120)) ([6375791](6375791)) * Cleanup error'd processes before log collection ([#98](#98)) ([77e698e](77e698e)) * **compiler:** Bump tket version; add wasm + gpu to the hugr-qis registry ([c69155d](c69155d)) * correct shot end strategy and error processing ([#91](#91)) ([93eaeb0](93eaeb0)) * Emit a nicer error when trying to emulate unsupported pytket ops ([#72](#72)) ([d88a28a](d88a28a)) * Fine-grained timeout configuration ([#69](#69)) ([072842e](072842e)) * Interactive use of Selene from python ([#135](#135)) ([db3028d](db3028d)) * Make interfaces shared, add ArgReader ([#171](#171)) ([143e742](143e742)) * QIR support using QIR-QIS ([#114](#114)) ([70ab294](70ab294)) * Quest performance improvements ([#133](#133)) ([af640e9](af640e9)) * random_advance ([#55](#55)) ([974b496](974b496)) * Record simulated delays in event hooks ([#154](#154)) ([608884a](608884a)) * Result stream handling refactor ([#93](#93)) ([607a55e](607a55e)) * Stim improvements (more ops + state printing) ([#115](#115)) ([867d5e5](867d5e5)) * Support state-dump passthrough on quantum replay simulator ([#108](#108)) ([1b01a01](1b01a01)) * test on QIS instead of relying on the upper stack ([#150](#150)) ([b80a9c4](b80a9c4)) * Test on QIS snapshots ([#134](#134)) ([c4d58ab](c4d58ab)) * Traces for analytics ([#160](#160)) ([24b9978](24b9978)) * update to tket-qsystem 0.20 ([#66](#66)) ([7191b07](7191b07)) * Use mingw instead of msvc for windows wheels ([#143](#143)) ([3d91514](3d91514)) * Use SeleneStartupError for errors before shot_start ([#170](#170)) ([85c2907](85c2907)) * Use struct exports for all plugin types, separate error model and simulator ([#169](#169)) ([c44a5c9](c44a5c9)) ### Bug Fixes * add `___barrier` to Helios QIS for QIR emulation ([#136](#136)) ([dfbc4c3](dfbc4c3)) * Add ENDING to allowed shot state on receiving meta information ([#100](#100)) ([fc4d673](fc4d673)) * Add numpy dependency back ([#127](#127)) ([c9a01eb](c9a01eb)) * avoid using qir_major_version string for QIR detection ([#123](#123)) ([deaa0dc](deaa0dc)) * classify lowered qir-qis bitcode as helios ([#157](#157)) ([67fca60](67fca60)) * **compiler:** error when entrypoint has arguments ([#84](#84)) ([604b131](604b131)) * **compiler:** update tket-qystem to fix CZ bug ([#78](#78)) ([3991f11](3991f11)) * correct post_runtime duration metric ([#74](#74)) ([0bef66a](0bef66a)) * make qir-qis optional and stabilize CI ([#164](#164)) ([e52c0b2](e52c0b2)) ### Documentation * add repository citation guidance and metadata ([#146](#146)) ([880a58b](880a58b)), closes [#145](#145) * Correct URL to guppy repository ([#121](#121)) ([27ded00](27ded00)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: Jake Arkinstall <65358059+jake-arkinstall@users.noreply.github.com>
This was referenced Jul 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Selene presently supports the Rxy, Rzz, Rz gateset. We require an additional gateset that has Rp, Rpp, Tk2 gates.
A long term strategy will be to generalise over arbitrary gatesets, but in the short term this is overkill, as it would require changing the way that all components communicate gates - either by a startup handshake mechanism or on-demand validation.
Instead, we opt to simply support these two gatesets natively, passing them through their own dedicated top-level interfaces in order to prevent any unwanted mixing.
As part of this, we introduce a new interface, new build kinds/steps, and new pathways for supporting the new gateset in testing.