Skip to content

MQT Core 3.10.0 Release

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Sep 16:07
· 5 commits to v3.x since this release
Immutable release. Only release title and notes can be modified.
e9e2c95

πŸ‘€ 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=True require genuine QDMI SHOTS (#2358) (@burgholzer)
  • ⬆️ Update nanobind to version 3.0.1 (#2209, #2283) (@denialhaag, @burgholzer)
  • πŸ’₯ Move circuit IR OpenQASM serialization from operation subclasses to qasm3::Serializer in qasm3/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::format in libc++ (#2259) (@denialhaag)
  • πŸ’₯ Require Python 3.11 or newer (#2209) (@denialhaag, @burgholzer)
  • πŸ“¦ Publish one split-mode cp311-abi3 wheel for GIL-enabled CPython 3.11 and newer (#2209) (@denialhaag, @burgholzer)
  • πŸ“¦ Publish one cp315-abi3t wheel 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() and num_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 spdlog dependency 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 to QuantumComputation, 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.hpp header, dd::ApproximationMetadata, and dd::approximate. No replacement is provided (#2154) (@burgholzer)
  • πŸ’₯ Remove nlohmann_json from the public package contract. MQT Core no longer installs or exports the library, no installed header exposes a nlohmann type, 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.na Python module, AodOperation, and the Move, Bridge, AodActivate, AodDeactivate, and AodMove operation kinds (#2137) (@denialhaag)
  • πŸ’₯ Remove the random-number generator, seed, and getGenerator() method from QuantumComputation; 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 qdmi C++ namespace, headers, library, and CMake target; the mqt.core.qdmi Python module; and module-level functions in mqt.core.qdmi.driver (#2115) (@burgholzer)
  • πŸ’₯ Remove the ZX-calculus library, including the mqt-core-zx target, MQT::CoreZX alias, zx headers 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