MQT Core 3.9.0 Release
·
1 commit
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
- β¨ Add PennyLane support for gate-based QDMI devices (#2005, #2147) (@burgholzer, @marcelwa)
- β¨ Add
Device::submitCalibrationJobandmqt.core.qdmi.Device.submit_calibration_jobfor triggering a calibration run (#2148) (@marcelwa, @burgholzer) - β¨ Add SpecAudits, a method and probe script for auditing tests that pin behavior the project never specified (#2124) (@marcelwa)
- πΈ Add typed stable-ID construction for Qiskit backends, lazy provider discovery, and sampler and estimator factories with explicit shot and precision defaults (#2084) (@burgholzer)
- π§ͺ Test static Slurm license admission and QDMI execution with DDSIM and the superconducting device, and document the cluster setup (#2043) (@burgholzer)
- β¨ Add C++ FoMaC and Python QDMI adapters that open the device named by one local Slurm license environment value (#2025) (@burgholzer)
- β¨ Add generic C++ FoMaC and Python QDMI support for custom device properties that contain operation handles (#2042) (@burgholzer)
- π Generate
llms.txtdocumentation indexes with Sphinx-LLM (#1989, #2046) (@denialhaag, @burgholzer) - β¨ Support retrieving existing jobs by ID through the QDMI client API, C++ FoMaC API, and Python QDMI API, and expose optional device queue length and job queue position (#2008, #2010) (@burgholzer)
- π Build CPython 3.15 wheels. Their post-build tests remain disabled until test dependency wheels are available (#2011) (@denialhaag)
- β¨ Bundle reusable IQM Garnet and Emerald superconducting device models with stable QDMI registry IDs (#1992) (@burgholzer)
- β¨ Expose compressed vector and matrix DD serialization through bytes-based Python APIs (#1983) (@burgholzer)
- β¨ Make the neutral-atom and superconducting QDMI devices runtime configurable with session-owned topology, operations, and calibration data (#1974, #1980) (@burgholzer)
- β¨ Expose registered QDMI device IDs without loading device libraries (#1972) (@burgholzer)
- β¨ Add typed runtime configuration transport and relocatable assets for QDMI device descriptions (#1967) (@burgholzer)
Changed
- β¬οΈ Update QDMI to version 1.3.3 (#2168) (@denialhaag)
- β¬οΈ Update
nanobindto version 2.15.0 (#2141) (@denialhaag) - π₯ Replace the MQT-specific QDMI primitive
optionsmappings with explicit shot and precision defaults (#2084) (@burgholzer) - β»οΈ Simplify Python optional-dependency checks while preserving the Qiskit and PennyLane availability flags (#2108) (@simon1hofmann)
- π₯ Remove the unused
pybind11CMake helper and renameadd_mqt_python_binding_nanobindtoadd_mqt_python_binding(#2106) (@denialhaag) - π₯ Move Python QDMI entities and the neutral-atom specialization to QDMI namespaces, expose device registration and opening through
mqt.core.qdmi.driver, retain v3 FoMaC compatibility aliases, and let the Qiskit adapter open stable device IDs directly (#2074) (@burgholzer) - π Reduce ZX diagram growth for multi-controlled X gates with an exact ancilla-free quadratic decomposition (#1984) (@burgholzer)
Fixed
- π Distinguish scalar OpenQASM qubits from one-element qubit registers and reject indexing scalar qubits (#2157) (@DRovara, @burgholzer)
- π Preserve the original OpenQASM type error when an assignment's right-hand expression cannot be typed (#2156) (@DRovara, @burgholzer)
Removed
- π₯ Remove batch job submission from the QDMI client.
Device::submitJobnow states that MQT Core does not support batch jobs (#2148) (@marcelwa, @burgholzer) - π₯ Remove QDMI device configuration through
[tool.qdmi]inpyproject.tomland the vendored toml++ header (#2116) (@denialhaag)
Full Changelog: v3.8.0...v3.9.0