·
5 commits
to v3.x
since this release
Immutable
release. Only release title and notes can be modified.
π What Changed
Please refer to the changelog and the upgrade guide for a structured overview of the changes.
Added
- β¨ Expose ordered shots from DDSIM QDMI OpenQASM jobs, with matching histograms (#2368) (@burgholzer)
Changed
- β‘ Run PennyLane QDMI jobs concurrently and release the GIL during waits and result retrieval (#2349) (@burgholzer)
- π₯ Raise the minimum Qiskit version from 1.1.0 to 2.1.0 (#2358) (@burgholzer)
- π₯ Replace the QDMI-specific primitives with native Qiskit primitives and typed backend factories. Sampler and
memory=Truerequire genuine QDMISHOTS(#2358) (@burgholzer) - β¬οΈ Update
nanobindto version 3.0.1 (#2209, #2283) (@denialhaag, @burgholzer) - π₯ Move circuit IR OpenQASM serialization from operation subclasses to
qasm3::Serializerinqasm3/Serializer.hpp(#2249) (@simon1hofmann) - π₯ Drop support for x86 macOS and stop publishing the respective wheels (#2259) (@denialhaag)
- β¬οΈ Raise the macOS deployment target to 13.3 to enable
std::formatin libc++ (#2259) (@denialhaag) - π₯ Require Python 3.11 or newer (#2209) (@denialhaag, @burgholzer)
- π¦ Publish one split-mode
cp311-abi3wheel for GIL-enabled CPython 3.11 and newer (#2209) (@denialhaag, @burgholzer) - π¦ Publish one
cp315-abi3twheel for free-threaded CPython 3.15 and newer (#2209) (@denialhaag, @burgholzer) - β‘ Remove an extra dense copy from
VectorDD.get_vector(#2209) (@burgholzer) - π Protect process-wide DD, IR, and QDMI state for free-threaded Python (#2209) (@burgholzer)
- π₯ Prune dead and misleading CoreIR APIs, including renaming the non-garbage logical output count to
getNoutputQubits()andnum_output_qubits(#2112) (@simon1hofmann)
Removed
- π₯ Remove test-only DD state generators, recursive functionality construction, and DD-specific named-gate helpers (#2257, #2335) (@simon1hofmann)
- π₯ Remove the optional MLIR stack, including its dialects, conversions, passes, tools, build integration, tests, documentation, and dependency on LLVM (#2314) (@denialhaag, @burgholzer)
- π₯ Remove the entire QIR stack, including its runtime, JIT, standalone runner, DDSIM integration, build integration, tests, and documentation (#2314) (@denialhaag, @burgholzer)
- π₯ Remove the
spdlogdependency from source builds, installed CMake packages, and Python wheels. QDMI diagnostics continue to be written to standard error (#2270) (@denialhaag) - π₯ Remove
CircuitOptimizer. Move circuit flattening and final-measurement removal toQuantumComputation, equivalence-checking transformations to MQT QCEC, and mapping transformations to MQT QMAP. Move single-qubit gate fusion to both downstream packages. Remove the public circuit dependency graph and transformations without production consumers (#2262) (@simon1hofmann) - π₯ Remove
MQT::CoreAlgorithms, its fixed-circuit factories, and the legacy DD package evaluation. MQT Core provides no direct replacement (#2214) (@burgholzer) - π₯ Remove the unused decision-diagram approximation algorithm, including the
dd/Approximation.hppheader,dd::ApproximationMetadata, anddd::approximate. No replacement is provided (#2154) (@burgholzer) - π₯ Remove
nlohmann_jsonfrom the public package contract. MQT Core no longer installs or exports the library, no installed header exposes anlohmanntype, and the decision-diagram statistics report through strings and streams (#2138) (@denialhaag) - π₯ Remove the neutral-atom stack, which moves to MQT QMAP. This drops the neutral-atom computation model, the neutral-atom FoMaC device session, the neutral-atom QDMI device and its configuration, the
mqt.core.naPython module,AodOperation, and theMove,Bridge,AodActivate,AodDeactivate, andAodMoveoperation kinds (#2137) (@denialhaag) - π₯ Remove the random-number generator, seed, and
getGenerator()method fromQuantumComputation; randomized algorithms now own generators initialized from their seed arguments (#2111) (@simon1hofmann) - π₯ Remove the FoMaC compatibility name from the C++ and Python QDMI APIs. Use the
qdmiC++ namespace, headers, library, and CMake target; themqt.core.qdmiPython module; and module-level functions inmqt.core.qdmi.driver(#2115) (@burgholzer) - π₯ Remove the ZX-calculus library, including the
mqt-core-zxtarget,MQT::CoreZXalias,zxheaders and namespace, and its Boost.Multiprecision and GMP build support. Equivalence-checking users should use MQT QCEC; its ZX implementation is internal and does not provide a replacement public API (#2082) (@burgholzer) - π₯ Remove density matrix support from the DD package (#1466) (@burgholzer)
- π₯ Remove
datastructures(ds) (sub)library (#1458) (@burgholzer)
Fixed
- π Initialize Qiskit classical bits before OpenQASM 3 serialization so partially measured circuits preserve their zero values (#2399) (@burgholzer)
- π Handle empty DDSIM results and NUL-terminated QDMI result buffers (#2288) (@simon1hofmann)
- π Validate output permutations before I/O mapping initialization (#2278) (@denialhaag)
Full Changelog: v3.9.2...v3.10.0