Skip to content

Releases: PECOS-packages/PECOS

py-0.9.0.dev2

py-0.9.0.dev2 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 18 Jul 02:25
d477aa1

PECOS 0.9.0.dev2 (pre-release)

Additive pre-release on top of 0.9.0.dev1 -- no new default-behavior changes. (New to the 0.9.0 series? The headline change is in the py-0.9.0.dev0 notes: the Rust classical interpreter is now the default.)

Highlight: restored wheel platform compatibility

The 0.9.0.dev1 native wheels inadvertently required macOS 15 / manylinux 2.34+ because the LLVM 21 migration inherited newer deployment floors from the toolchain providers. This release restores the intended floors: macOS 13.0 (macosx_13_0 wheels for arm64 and x86_64, built against a checksum-pinned from-source LLVM 21.1.8) and manylinux_2_28 on Linux. The release workflow now fails if wheel tags or embedded Mach-O minimum versions exceed the platform policy, so a future toolchain bump cannot silently raise the floors again (#364).

Installing this pre-release

pip install quantum-pecos==0.9.0.dev2
# or with uv (transitive pre-release pins need the flag):
uv pip install --prerelease=allow quantum-pecos==0.9.0.dev2

What's Changed

  • ci: restore Python wheel platform compatibility by @qciaran in #364
  • Bump Python packages to 0.9.0.dev2 by @ciaranra in #366

Full Changelog: py-0.9.0.dev1...py-0.9.0.dev2

py-0.9.0.dev1

py-0.9.0.dev1 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 16 Jul 04:24
8db5dc2

PECOS 0.9.0.dev1 (pre-release)

Additive pre-release on top of 0.9.0.dev0 -- no new default-behavior changes. (New to the 0.9.0 series? The headline change is in the py-0.9.0.dev0 notes: the Rust classical interpreter is now the default.)

Highlight: surface-code check plans and scheduling

Surface-code circuit construction gains resolved check-plan metadata (deterministic, hashable check plans), additional CNOT round orderings in the schedule, SZZ interaction-basis coverage, and simplified reliable-observable selection. The DEM builder's boundary with the neo noise stack is clarified: gate-event Pauli channels reject idle-noise configuration (idle noise is modeled by the neo IdleChannel) (#338).

Also in this release

  • WASM foreign objects: the Wasmtime epoch deadline is now armed before instantiation, fixing spurious "interrupt" traps when instantiating sufficiently complex modules (seen on macOS arm64); covered by a Rust regression test and a new wheel smoke test in CI (#359).
  • Decoders: the accumulated observable correction on the wide (>64 observables) decode path is now a lossless wide mask, and the mask is exposed (#357).
  • Statistics: expanded Jeffreys interval API in pecos-num -- JeffreysEstimator/JeffreysInterval types, jeffreys_point, and typed errors (#337).
  • RNG: pecos-random migrated to rapidrand with stream-identical seeding -- no behavioral change (#356).
  • Release/supply-chain tooling: publish-wheels.sh no longer masks twine errors or skips confirmations (#352); dependency-integrity checks fail closed on unexpected untracked lockfiles and the pecos-rslib-llvm OS classifier is fixed (#353); smoke tests install wheels with their real dependency metadata (#354); post-release dependency refresh with a durable idna floor (#355).

Installing this pre-release

pip install quantum-pecos==0.9.0.dev1
# or with uv (transitive pre-release pins need the flag):
uv pip install --prerelease=allow quantum-pecos==0.9.0.dev1

What's Changed

  • Smoke-test wheels against their real dependency metadata by @ciaranra in #354
  • Fix silent failures in publish-wheels.sh (masked twine errors, skipped confirmations) by @ciaranra in #352
  • Post-release papercuts: fail-closed lockfile check, llvm classifier, version-agnostic docs by @ciaranra in #353
  • Post-release dependency refresh (updatelocks) with a durable idna floor by @ciaranra in #355
  • Migrate pecos-random to rapidrand with stream-identical seeding by @ciaranra in #356
  • Jeffreys interval polish by @ciaranra in #337
  • Update accumulated observable correction on the wide decode path by @ciaranra in #357
  • Pecos dev merge by @ciaranra in #338
  • fix(wasm): arm epoch deadline before instantiation by @qciaran in #359
  • Bump Python packages to 0.9.0.dev1 by @ciaranra in #361
  • Fix click and setuptools advisories in exp lockfiles by @ciaranra in #363

Full Changelog: py-0.9.0.dev0...py-0.9.0.dev1

py-0.9.0.dev0

py-0.9.0.dev0 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 11 Jul 21:29
a54370f

PECOS 0.9.0.dev0 (pre-release)

Highlight: Rust classical interpreter is now the default

HybridEngine's default classical interpreter is now the Rust-backed RustPhirClassicalInterpreter (previously the pure-Python PhirClassicalInterpreter). For valid PHIR programs supplied as a dict, JSON string, or to_phir_dict()-convertible object it is behaviorally equivalent — differentially validated against the Python interpreter (~3,200 fuzzed programs, QASM-generated-PHIR differentials, exact exception-type parity).

Escape hatch: to restore the previous behavior, construct the engine with HybridEngine(cinterp="python").

Boundary behavior was brought to parity so the switch is not silent: phir_validate now schema-validates on the Rust path; division by zero raises ZeroDivisionError and undefined classical variables raise KeyError on both interpreters; undeclared assignment/ffcall/measurement targets fail fast (matching Python) instead of being auto-created; check_ffc fails fast on missing foreign functions; run_multisim works with to_dict-capable foreign objects. Known limitation: PyPHIR program objects are not accepted by the Rust interpreter (clear TypeError; use a dict/JSON or cinterp="python").

Also in this release

  • PHIR engine fail-fast fixes (#345): invalid variable definitions and out-of-range measurement writes error instead of being silently swallowed; the no-return measurement index is absolute across batches.
  • ~41 previously-dormant pecos-phir-json integration tests revived and running in CI.
  • Signed PHIR registers render as two's-complement binary strings (i(S+1) semantics); WASM fixtures corrected to i32 size 31.
  • Supply-chain: cxx 1.0.195, Go 1.26.5, triaged cgmath advisories (#349).
  • pecos-rslib-llvm is published alongside pecos-rslib and quantum-pecos (exact-version pins).

Rust API note: PecosError gains a RuntimeUndefinedVariable variant — source-breaking for downstream code that exhaustively matches the enum (0.x pre-release).

What's Changed

Full Changelog: py-0.8.0.dev8...py-0.9.0.dev0

Installing this pre-release

pip install quantum-pecos==0.9.0.dev0
# or with uv (transitive pre-release pins need the flag):
uv pip install --prerelease=allow quantum-pecos==0.9.0.dev0

py-0.8.0.dev8

py-0.8.0.dev8 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 20 Mar 03:41
7da99a7

What's Changed

Full Changelog: py-0.8.0.dev7...py-0.8.0.dev8

py-0.8.0.dev7

py-0.8.0.dev7 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 12 Mar 15:47
b041ef7

What's Changed

Full Changelog: py-0.8.0.dev6...py-0.8.0.dev7

py-0.8.0.dev6

py-0.8.0.dev6 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 05 Mar 06:26
8a85bbd

What's Changed

Full Changelog: py-0.8.0.dev5...py-0.8.0.dev6

py-0.8.0.dev5

py-0.8.0.dev5 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 03 Mar 20:42
b9c77bd

What's Changed

Full Changelog: py-0.8.0.dev4...py-0.8.0.dev5

py-0.8.0.dev4

py-0.8.0.dev4 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 27 Feb 16:31
27889d0

What's Changed

Full Changelog: py-0.8.0.dev3...py-0.8.0.dev4

py-0.8.0.dev3

py-0.8.0.dev3 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 20 Feb 06:46
86638c6

What's Changed

  • fixing .reset() to give state, making .probabilities/probability() av… by @ciaranra in #250
  • bumping from 0.8.0.dev2 to 0.8.0.dev3 by @ciaranra in #251

Full Changelog: py-0.8.0.dev2...py-0.8.0.dev3

py-0.8.0.dev2

py-0.8.0.dev2 Pre-release
Pre-release

Choose a tag to compare

@ciaranra ciaranra released this 19 Feb 05:31
c291282

What's Changed

Full Changelog: py-0.8.0.dev1...py-0.8.0.dev2