Skip to content

feat: test on QIS instead of relying on the upper stack - #150

Merged
jake-arkinstall merged 24 commits into
mainfrom
copilot/update-guppy-usage-in-tests
Apr 10, 2026
Merged

jake-arkinstall merged 24 commits into
mainfrom
copilot/update-guppy-usage-in-tests

Conversation

Copilot AI commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Selene's role is to emulate platforms, and the primary input is QIS.

Although Selene provides interfaces for integrating the upper stack (guppy, hugr, tket2, qis-compiler) in normal usage, changes in these components can impact our snapshot tests.

This PR uses stored QIS LLVM to run tests. Guppy is kept inline, by keeping the entire guppy source of a test in a string, validating its hash against a stored hash (to detect changes), and fetching the corresponding LLVM. The LLVM can be regenerated by using pytest --compile-guppy.

This avoids running guppy/hugr/tket/qis-compiler in CI testing,
and avoids changes in that upper stack from violating snapshots
due to e.g. rearranged operations.
@jake-arkinstall
jake-arkinstall force-pushed the copilot/update-guppy-usage-in-tests branch from 1fcae45 to 7362a62 Compare April 10, 2026 10:10
@jake-arkinstall jake-arkinstall changed the title Use compiler-owned target selection and extend inline Guppy snapshot coverage across missed tests feat: test on QIS instead of relying on the upper stack Apr 10, 2026
@jake-arkinstall
jake-arkinstall marked this pull request as ready for review April 10, 2026 12:35
Copilot AI review requested due to automatic review settings April 10, 2026 12:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates Selene’s snapshot testing workflow to run against stored QIS LLVM outputs (and source hashes) rather than rebuilding through the full upstream stack, reducing test flakiness from upstream changes.

Changes:

  • Adds checked-in platform-specific LLVM IR snapshots (.ll) and corresponding Guppy source hashes (.sha256) for multiple tests/plugins.
  • Introduces symbol-extraction utilities (symbols.py) and updates build builtins to use them (LLVM via llvmlite, objects via lief).
  • Makes optional builtin registration conditional on installed packages and adjusts build/test tooling (CMake build dirs; removes guppylang from test requirements; adds --compile-guppy tooling).

Reviewed changes

Copilot reviewed 128 out of 428 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
selene-sim/python/tests/resources/from_guppy/test_debug/test_state_cleanup[None-QuestPlugin]/array_state_cleanup.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_state_cleanup[False-StimPlugin]/array_state_cleanup.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_state_cleanup[False-QuestPlugin]/array_state_cleanup.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_qubit_ordering_state[StimPlugin]/qubit_ordering_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_qubit_ordering_state[QuestPlugin]/qubit_ordering_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-StimPlugin]/quantum_replay_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-StimPlugin]/quantum_replay_state-x86_64-windows-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-StimPlugin]/quantum_replay_state-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-StimPlugin]/quantum_replay_state-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-QuestPlugin]/quantum_replay_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-QuestPlugin]/quantum_replay_state-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[1-QuestPlugin]/quantum_replay_state-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[0-StimPlugin]/quantum_replay_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[0-StimPlugin]/quantum_replay_state-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[0-StimPlugin]/quantum_replay_state-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[0-QuestPlugin]/quantum_replay_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[0-QuestPlugin]/quantum_replay_state-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_quantum_replay_state[0-QuestPlugin]/quantum_replay_state-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[StimPlugin]/initial_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[StimPlugin]/initial_state-x86_64-windows-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[StimPlugin]/initial_state-x86_64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[StimPlugin]/initial_state-x86_64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[StimPlugin]/initial_state-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[StimPlugin]/initial_state-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[QuestPlugin]/initial_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[QuestPlugin]/initial_state-x86_64-windows-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[QuestPlugin]/initial_state-x86_64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[QuestPlugin]/initial_state-x86_64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[QuestPlugin]/initial_state-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_initial_state[QuestPlugin]/initial_state-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_debug/test_array_subscript_state[StimPlugin]/array_subscript_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_array_subscript_state[QuestPlugin]/array_subscript_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_array_state[StimPlugin]/array_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_debug/test_array_state[QuestPlugin]/array_state.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-x86_64-windows-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-x86_64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-x86_64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_cleanup/test_file_deletion/file_deletion-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc.sha256 Adds stored Guppy source hash for this snapshot test case
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 Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config2]/strict_build_llvm_bc-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir.sha256 Adds stored Guppy source hash for this snapshot test case
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 Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config1]/strict_build_llvm_ir-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default.sha256 Adds stored Guppy source hash for this snapshot test case
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-x86_64-windows-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
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 Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-x86_64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-aarch64-unknown-linux-gnu.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/tests/resources/from_guppy/test_build_validation/test_strict_builds_guppy[build_config0]/strict_build_default-aarch64-apple-darwin.ll Adds checked-in LLVM IR snapshot for this platform/target
selene-sim/python/selene_sim/interactive/full_stack.py Adds a simulator capability check before extracting state
selene-ext/simulators/classical-replay/rust/lib.rs Fixes shot ID bounds check in classical replay simulator
selene-core/python/selene_core/build_utils/utils.py Removes symbol-parsing helpers from utils (moved to new module)
selene-core/python/selene_core/build_utils/symbols.py Adds symbol extraction for objects (lief) and LLVM IR/bitcode (llvmlite)
selene-core/python/selene_core/build_utils/builtins/selene.py Switches builtin matching from “undefined symbols list” to symbol tables
selene-core/python/selene_core/build_utils/builtins/helios.py Switches Helios artifact matching to use symbol tables for LLVM/objects
selene-core/python/selene_core/build_utils/builtins/init.py Makes hugr/qir builtins conditional on installed packages; updates exports
selene-core/python/selene_core/build_utils/init.py Updates build_utils public exports to new symbol APIs
selene-core/pyproject.toml Adds llvmlite dependency and clarifies lief purpose for symbol inspection
pyproject.toml Removes guppylang from test dependencies (snapshots now stored)
hatch_build.py Changes CMake build dirs to stable target/* dirs; adjusts configure invocation
conftest.py Adds --compile-guppy option and fixture to validate/rebuild LLVM snapshots

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread selene-sim/python/selene_sim/interactive/full_stack.py Outdated
Comment thread selene-ext/simulators/classical-replay/rust/lib.rs Outdated
Comment thread hatch_build.py Outdated
Comment thread selene-core/python/selene_core/build_utils/symbols.py Outdated
Comment thread selene-core/python/selene_core/build_utils/builtins/helios.py
Comment thread selene-core/python/selene_core/build_utils/builtins/helios.py Outdated
Comment on lines 1 to 9
from .types import ArtifactKind, Artifact, Step, LibDep, BuildCtx # noqa: F401
from .planner import BuildPlanner
from .builtins import register_builtins
from .utils import (
get_undefined_symbols_from_object, # noqa: F401
get_undefined_symbols_from_llvm_ir_file, # noqa: F401
get_undefined_symbols_from_llvm_ir_string, # noqa: F401
invoke_zig, # noqa: F401
from .utils import invoke_zig # noqa: F401
from .symbols import (
SymbolTable, # noqa: F401
get_symbols_from_object, # noqa: F401
get_symbols_from_llvm, # noqa: F401
)

Copilot AI Apr 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes the selene_core.build_utils public surface by removing the previously re-exported get_undefined_symbols_from_* helpers. If downstream code imports those from build_utils, this is a breaking change. Consider keeping backward-compatible wrappers (possibly deprecated) or documenting the migration to get_symbols_from_object/get_symbols_from_llvm.

Copilot uses AI. Check for mistakes.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not concerned by this, as it is quite low in the implementation detail weeds.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

Expose the existing functions as thin wrappers over the new get_symbols_from_X functions, and mark them deprecated.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implemented this with thin backward-compatible wrappers in selene_core.build_utils: get_undefined_symbols_from_object and get_undefined_symbols_from_llvm now delegate to get_symbols_from_* and return .undefined_functions, and both wrappers emit DeprecationWarning. Addressed in cf31cd8.

jake-arkinstall and others added 8 commits April 10, 2026 13:39
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI and others added 3 commits April 10, 2026 13:08
@jake-arkinstall
jake-arkinstall removed the request for review from ss2165 April 10, 2026 13:33
@jake-arkinstall
jake-arkinstall merged commit b80a9c4 into main Apr 10, 2026
10 checks passed
@jake-arkinstall
jake-arkinstall deleted the copilot/update-guppy-usage-in-tests branch April 10, 2026 15:57
jake-arkinstall pushed a commit that referenced this pull request Apr 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.2.7](selene-core-v0.2.6...selene-core-v0.2.7)
(2026-04-10)


### Features

* Build improvements
([#142](#142))
([12f399b](12f399b))
* test on QIS instead of relying on the upper stack
([#150](#150))
([b80a9c4](b80a9c4))
* Use mingw instead of msvc for windows wheels
([#143](#143))
([3d91514](3d91514))

---
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 pushed a commit that referenced this pull request Apr 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.2.13](selene-sim-v0.2.12...selene-sim-v0.2.13)
(2026-04-10)


### Features

* Build improvements
([#142](#142))
([12f399b](12f399b))
* test on QIS instead of relying on the upper stack
([#150](#150))
([b80a9c4](b80a9c4))
* Use mingw instead of msvc for windows wheels
([#143](#143))
([3d91514](3d91514))


### Documentation

* add repository citation guidance and metadata
([#146](#146))
([880a58b](880a58b)),
closes [#145](#145)

---
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 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants