Skip to content

Latest commit

 

History

History
546 lines (455 loc) · 33.8 KB

File metadata and controls

546 lines (455 loc) · 33.8 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on a mixture of Keep a Changelog and Common Changelog. This project adheres to Semantic Versioning, with the exception that minor releases may include breaking changes.

Added

Changed

Removed

  • 🔥 Remove the density matrix support from the MQT Core DD package (#1466) (@burgholzer)
  • 🔥 Remove datastructures (ds) (sub)library from MQT Core (#1458) (@burgholzer)

3.4.1 - 2026-02-01

Changed

  • ⬆️ Update nanobind to version 2.11.0 (#1481) (@denialhaag)
  • ⬆️ Update Boost to version 1.89.0 (#1453) (@burgholzer)
  • ⬆️ Update QDMI to latest version from stable v1.2.x branch (#1453) (@burgholzer)
  • ⬆️ Update spdlog to version 1.17.0 (#1453) (@burgholzer)
  • ♻️ Use llc instead of random clang for compiling QIR test circuits to improve robustness and handle opaque pointers correctly across LLVM versions (#1447) (@burgholzer)
  • ♻️ Extract singleton pattern into reusable template base class for QDMI devices and driver (#1444) (@ystade, @burgholzer)
  • 🚚 Reorganize QDMI code structure by moving devices into dedicated subdirectories and separating driver and common utilities (#1444) (@ystade)

Removed

  • 🔥 No longer actively type check Python code with mypy and solely rely on ty (#1437) (@burgholzer)

3.4.0 - 2026-01-08

Added

  • ✨ Return device handle from add_dynamic_device_library for direct backend creation (#1381) (@marcelwa)
  • ✨ Add IQM JSON support for job submission in Qiskit-QDMI Backend (#1375, #1382) (@marcelwa, @burgholzer)
  • ✨ Add authentication support for QDMI sessions with token, username/password, auth file, auth URL, and project ID parameters (#1355) (@marcelwa)
  • ✨ Add a new QDMI device that represents a superconducting architecture featuring a coupling map (#1328) (@ystade)
  • ✨ Add bi-directional iterator that traverses the def-use chain of a qubit value (#1310) (@MatthiasReumann)
  • ✨ Add OptionalDependencyTester to lazily handle optional Python dependencies like Qiskit (#1243) (@marcelwa, @burgholzer)
  • ✨ Expose the QDMI job interface through FoMaC (#1243) (@marcelwa, @burgholzer)
  • ✨ Add Qiskit backend wrapper with job submission support for QDMI devices through a provider interface (#1243, #1385) (@marcelwa, @burgholzer)
  • ✨ Support QDMI_DEVICE_PROPERTY_SUPPORTEDPROGRAMFORMATS in the NA QDMI Device and the DDSIM QDMI Device (#1243) (@marcelwa, @burgholzer)
  • ✨ Support QDMI_DEVICE_JOB_PROPERTY_PROGRAM in the NA QDMI Device (#1243) (@marcelwa, @burgholzer)

Changed

  • 📦🏁 Build Windows x86 wheels on windows-2025 runner for newer compiler (#1415) (@burgholzer)
  • 👷 Build on macos-15/windows-2025 by default and macos-14/windows-2022 for extensive tests (#1414) (@burgholzer)
  • 📦🍎 Build macOS arm64 wheels on macos-15 runner for newer compiler (#1413) (@burgholzer)
  • ⚡ Improve uv build caching by removing unconditional reinstall-package and configuring dedicated cache-keys (#1412) (@burgholzer)
  • 👨‍💻📦 Build spdlog and QDMI generators as shared libraries in Python package builds (#1411, #1403) (@burgholzer)
  • ♻️🏁 Remove Windows-specific restrictions for dynamic QDMI device library handling (#1406) (@burgholzer)
  • ♻️ Migrate Python bindings from pybind11 to nanobind (#1383) (@denialhaag, @burgholzer)
  • 📦️ Provide Stable ABI wheels for Python 3.12+ (#1383) (@burgholzer, @denialhaag)
  • 🚚 Create dedicated mqt.core.na submodule to closely follow the structure of other submodules (#1383) (@burgholzer)
  • ✨ Add common definitions and utilities for QDMI (#1355) (@burgholzer)
  • 🚚 Move NA QDMI device in its right place next to other QDMI devices (#1355) (@burgholzer)
  • ♻️ Allow repeated loading of QDMI device library with potentially different session configurations (#1355) (@burgholzer)
  • ♻️ Enable thread-safe reference counting for QDMI devices singletons (#1355) (@burgholzer)
  • ♻️ Refactor FoMaC singleton to instantiable Session class with configurable authentication parameters (#1355) (@marcelwa)
  • 👷 Stop testing on ubuntu-22.04 and ubuntu-22.04-arm runners (#1359) (@denialhaag, @burgholzer)
  • 👷 Stop testing with clang-19 and start testing with clang-21 (#1359) (@denialhaag, @burgholzer)
  • 👷 Fix macOS tests with Homebrew Clang via new munich-quantum-toolkit/workflows version (#1359) (@denialhaag, @burgholzer)
  • 👷 Re-enable macOS tests with GCC by disabling module scanning (#1359) (@denialhaag, @burgholzer)
  • ♻️ Group circuit operations into scheduling units for MLIR routing (#1301) (@MatthiasReumann)
  • 👷 Use munich-quantum-software/setup-mlir to set up MLIR (#1294) (@denialhaag)
  • ♻️ Preserve tuple structure and improve site type clarity of the MQT NA Default QDMI Device (#1299) (@marcelwa)
  • ♻️ Move DD package evaluation module to standalone script (#1327) (@burgholzer)
  • ⬆️ Bump QDMI version to 1.2.0 (#1243) (@marcelwa, @burgholzer)

Fixed

  • 🔧 Install all available QDMI device targets in Python package builds (#1403) (@burgholzer)
  • 🐛 Fix operation validation in Qiskit backend to handle device-specific gate naming conventions (#1384) (@marcelwa)
  • 🐛 Fix conditional branch handling when importing MLIR from QuantumComputation (#1378) (@lirem101)
  • 🐛 Fix custom QDMI property and parameter handling in SC and NA devices (#1355) (@burgholzer)
  • 🚨 Fix argument naming of QuantumComputation and CompoundOperation dunder methods for properly implementing the MutableSequence protocol (#1338) (@burgholzer)
  • 🐛 Fix memory management in dynamic QDMI device by making it explicit (#1336) (@ystade)

Removed

  • 🔥 Remove wheel builds for Python 3.13t (#1371) (@burgholzer)
  • 🔥 Remove the evaluation extra from the MQT Core Python package (#1327) (@burgholzer)
  • 🔥 Remove the mqt-core-dd-compare entry point from the MQT Core Python package (#1327) (@burgholzer)

3.3.3 - 2025-11-10

Added

  • ✨ Add support for bridge gates for the neutral atom hybrid mapper (#1293) (@lsschmid)

Fixed

3.3.2 - 2025-11-04

Added

  • ✨ Add DD-based simulator QDMI device (#1287) (@burgholzer)
  • ✨ A --reuse-qubits pass implementing an advanced form of qubit reuse to reduce the qubit count of quantum circuits (#1108) (@DRovara)
  • ✨ A --lift-measurements pass that attempts to move measurements up as much as possible, used for instance to enable better qubit reuse (#1108) (@DRovara)
  • ✨ Add native support for R(theta, phi) gate (#1283) (@burgholzer)
  • ✨ Add A*-search-based routing algorithm to MLIR transpilation routines (#1237, #1271, #1279) (@MatthiasReumann)

Fixed

3.3.1 - 2025-10-14

Fixed

  • 🐛 Ensure spdlog dependency can be found from mqt-core install (#1263) (@burgholzer)

3.3.0 - 2025-10-13

If you are upgrading: please see UPGRADING.md.

Added

Changed

  • ♻️ Replace custom AllocOp, DeallocOp, ExtractOp, and InsertOp with MLIR-native memref operations (#1211) (@denialhaag)
  • 🚚 Rename MLIR pass ElidePermutations to SwapReconstructionAndElision (#1207) (@taminob)
  • ⬆️ Require LLVM 21 for building the MLIR library (#1180) (@denialhaag)
  • ⬆️ Update to version 21 of clang-tidy (#1180) (@denialhaag)
  • 🚚 Rename MLIR pass CancelConsecutiveInverses to GateElimination (#1140) (@taminob)
  • 🚚 Rename xxminusyy to xx_minus_yy and xxplusyy to xx_plus_yy in MLIR dialects (#1071) (@BertiFlorea, @denialhaag)
  • 🚸 Add custom assembly format for operations in the MLIR dialects (#1139) (@burgholzer)
  • 🚸 Enable InferTypeOpInterface in the MLIR dialects to reduce explicit type information (#1139) (@burgholzer)
  • 🚚 Rename check-quantum-opt test target to mqt-core-mlir-lit-test (#1139) (@burgholzer)
  • ♻️ Update the measure operations in the MLIR dialects to no longer support more than one qubit being measured at once (#1106) (@DRovara)
  • 🚚 Rename XXminusYY to XXminusYYOp and XXplusYY to XXplusYYOp in MLIR dialects (#1099) (@denialhaag)
  • 🚚 Rename MQTDyn MLIR dialect to MQTRef (#1098) (@MatthiasReumann)

Removed

Fixed

3.2.1 - 2025-08-01

Fixed

  • 🐛 Fix usage of std::accumulate by changing accumulator parameter from reference to value (#1089) (@denialhaag)
  • 🐛 Fix erroneous contains check in DD package (#1088) (@denialhaag)

3.2.0 - 2025-07-31

Added

Changed

3.1.0 - 2025-07-11

If you are upgrading: please see UPGRADING.md.

Added

Fixed

  • 🐛 Fix bug in MLIR roundtrip passes caused by accessing an invalidated iterator after erasure in a loop (#932) (@flowerthrower)
  • 🐛 Add missing support for sxdg gates in Qiskit circuit import (#930) (@burgholzer)
  • 🐛 Fix bug related to initialization of operations with duplicate operands (#964) (@ystade)
  • 🐛 Open issue for Qiskit upstream test only when the test is actually failing not when it was cancelled (#973) (@ystade)
  • 🐛 Fix parsing of GPhase in the MQTOpt MLIR dialect (#1042) (@ystade, @DRovara)

Changed

  • ⬆️ Bump shared library ABI version from 3.0 to 3.1 (#1047) (@denialhaag)
  • ♻️ Switch from reference counting to mark-and-sweep garbage collection in decision diagram package (#1020) (@MatthiasReumann, [burgholzer], q-inho)
  • ♻️ Move the C++ code for the Python bindings to the top-level bindings directory (#982) (@denialhaag)
  • ♻️ Move all Python code (no tests) to the top-level python directory (#982) (@denialhaag)
  • ⚡ Improve performance of getNqubits for StandardOperations (#959) (@ystade)
  • ♻️ Move Make-State Functionality To StateGeneration (#984) (@MatthiasReumann)
  • ♻️ Outsource definition of standard operations from MLIR dialects to reduce redundancy (#933) (@ystade)
  • ♻️ Unify operands and results in MLIR dialects (#931) (@ystade)
  • ⏪️ Restore support for (MLIR and) LLVM v19 (#934) (@flowerthrower, @ystade)
  • ⬆️ Update nlohmann_json to v3.12.0 (#921) (@burgholzer)

3.0.2 - 2025-04-07

Added

Fixed

3.0.1 - 2025-04-07

Fixed

  • 🐛 Fix doxygen build on RtD to include C++ API docs (#912) (@burgholzer)

3.0.0 - 2025-04-06

If you are upgrading: please see UPGRADING.md.

Added

Changed

Removed

  • Breaking: 🔥 Remove the Teleportation gate from the IR (#882) (@burgholzer)
  • Breaking: 🔥 Remove parsers for .real, .qc, .tfc, and GRCS files (#822) (@burgholzer)
  • Breaking: 🔥 Remove tensor dump functionality (#798) (@burgholzer)
  • Breaking: 🔥 Remove extract_probability_vector functionality (#883) (@burgholzer)

Fixed

2.7.0 - 2024-10-08

📚 Refer to the GitHub Release Notes for previous changelogs.