·
145 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
MQT Core 4 is a major architectural release centered on the MQT Compiler Collection, a quantum-classical compilation framework built on MLIR and LLVM. It replaces the classic circuit representation with a compiler infrastructure that connects program import, optimization, hardware mapping, program exchange, and execution through C++, Python, and mqt-cc.
The new foundation makes quantum operations and classical computation part of the same structured program. Quantum dialects work with MLIR's classical arithmetic, functions, and control flow, so the compiler can represent loops, reusable functions, and measurement feedback throughout supported pipelines.
The central changes are:
- A new program model. QC provides reference-based quantum operations for frontend interoperability; QCO uses linear quantum values for transformations. QTensor and CBit represent quantum and classical registers. Typed programs, builders, and verifiers expose this structure to compiler users and developers.
- A shared, extensible compilation pipeline. Import OpenQASM or Qiskit, inspect intermediate representations, compose optimization passes, synthesize gates, and place and route programs for a device's operations and topology. Python, C++, and the command-line driver use the same compiler infrastructure.
- Compilation connected to execution. Exchange structured programs through
jeffor emit OpenQASM and QIR. QIR lowering produces LLVM text or bitcode for Base and Adaptive profiles; DDSIM uses LLVM JIT compilation and the DD runtime to execute supported QIR through QDMI. QCO also supports direct DD simulation, sampling, and unitary construction. - Workflows built around the compiler. Typed benchmarks, SDK integrations, device-directed compilation, and six executable tutorials connect program construction to results. Python wheels include the compiler and local simulator; source builds enable the LLVM/MLIR compiler by default.
What's Changed
- 🗺️ MLIR Dialect Redesign by @burgholzer in #1264
- 👷 Fix configuration of
cpp-linterjob by @denialhaag in #1394 - 🐛
shortestSWAPsBetweenreturns one SWAP too many by @MatthiasReumann in #1395 - ⬆️👨💻 Update actions/attest-build-provenance action to v3.1.0 by @renovate[bot] in #1398
- ⬆️🪝 Update pre-commit hook python-jsonschema/check-jsonschema to v0.36.0 by @renovate[bot] in #1399
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1400
- ⬆️🪝 Update patch updates by @renovate[bot] in #1397
- ♻️ Replace
pybind11withnanobindby @denialhaag in #1383 - 🔧 update QDMI version to 1.2.1 and adjust library target names by @burgholzer in #1401
- 🎨 Use custom builder classes in
ctrlmethods by @denialhaag in #1402 - ⬆️👨💻 Update munich-quantum-toolkit/workflows action to v1.17.7 by @denialhaag in #1404
- ⬆️👨💻 Update patch updates by @renovate[bot] in #1405
- ♻️🏁 Remove Windows-specific restrictions for dynamic QDMI device library handling by @burgholzer in #1406
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1408
- 🚸 expose MQT_CORE_VERSION as part of the
add_mqt_core_librarymacro by @burgholzer in #1409 - 🚸 Portability improvements for the QIR runner by @burgholzer in #1410
- 👨💻📦 Build
spdlogas a shared library on project installs by @burgholzer in #1411 - ⚡ Improve uv build caching by removing unconditional
reinstall-packageand configuring dedicatedcache-keysby @burgholzer in #1412 - 👨💻📦 build QDMI generators as shared libraries on install by @denialhaag in #1403
- 📦🍎 Build macOS arm64 wheels on macos-15 runner for newer compiler by @burgholzer in #1413
- 👷 Build on
macos-15/windows-2025by default andmacos-14/windows-2022for extensive tests by @burgholzer in #1414 - 📦🏁 Build Windows x86 wheels on windows-2025 runner for newer compiler by @burgholzer in #1415
- ⬆️🪝 Update pre-commit hook crate-ci/typos to v1.41.0 by @renovate[bot] in #1417
- ⬆️🪝 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2025.12.30 by @renovate[bot] in #1418
- ⬆️🪝 Update patch updates by @renovate[bot] in #1416
- ⬆️🪝 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026 by @renovate[bot] in #1419
- ⬆️👨💻 Update munich-quantum-toolkit/workflows action to v1.17.10 by @renovate[bot] in #1423
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1424
- 📦️ Enable MLIR by default by @denialhaag in #1356
- 🐛 Replace use of tablegen internal names by @taminob in #1428
- 🐛 Rename CtrlOp region to
regionto avoid hiding trait methodgetBody()by @taminob in #1430 - 📄 Update license to 2026 by @burgholzer in #1431
- 🔖 Update changelog with
v3.4.0release by @burgholzer in #1434 - 🔥 Remove legacy MLIR code by @burgholzer in #1435
- ⬆️🪝 Update pre-commit hook adhtruong/mirrors-typos to v1.42.0 by @renovate[bot] in #1438
- ⬆️🪝 Update patch updates by @renovate[bot] in #1437
- 📝 Update templated files by @mqt-app[bot] in #1439
- ⬆️🪝 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.01.10 by @renovate[bot] in #1441
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1442
- 🐛 Fix one-time-use of variables for the
ctrlmodifier by @DRovara in #1436 - 🔧 Remove
mypyconfiguration by @denialhaag in #1445 - ♻️ Refactor getStaticParameter to valueToDouble by @taminob in #1443
- 👨💻 Add implicit location handling to program builders and new utils tests by @burgholzer in #1446
- 🎨 Reorganize QDMI Codebase by @ystade in #1444
- ♻️ Use
llcinstead of randomclangfor compiling QIR test circuits to improve robustness and handle opaque pointers correctly across LLVM versions by @burgholzer in #1447 - ⬆️ Update external dependencies and prek checks by @burgholzer in #1453
- 📝 Update templated files by @mqt-app[bot] in #1454
- 🔥 Remove
datastructures(ds) (sub)library from MQT Core by @burgholzer in #1458 - 👷 Improve
stubssession by @denialhaag in #1461 - ♻️ Refactor variantToValue to support different Value types by @li-mingbao in #1465
- ⬆️🪝 Update pre-commit hook rbubley/mirrors-prettier to v3.8.0 by @renovate[bot] in #1468
- 🔥 Remove density matrix support from DD package by @burgholzer in #1466
- ⬆️🪝 Update patch versions by @renovate[bot] in #1467
- 🐛 Fix CtrlOp::getBodyUnitary() for operations with parameters by @taminob in #1464
- ⬆️🪝 Update pre-commit hook black to v26 by @renovate[bot] in #1469
- 🚚 Move pipeline tests to
Compilerdirectory by @denialhaag in #1471 - ♻️ Fix argument names of build methods by @denialhaag in #1472
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1473
- ✨ Add unitary matrix to QCO dialect by @taminob in #1426
- ✨ Allow OpenQASM as mqt-cc input by @taminob in #1470
- 🐛 Fix equivalence checking of
LLVM::CallOps by @denialhaag in #1475 - ⬆️👨💻 Update release-drafter/release-drafter action to v6.2.0 by @renovate[bot] in #1477
- ⬆️👨💻 Update patch versions by @renovate[bot] in #1476
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1478
- 🔧 Allow C++ standards newer than 20 by @denialhaag in #1480
- ⬆️ Update
nanobindto 2.11.0 by @denialhaag in #1481 - ⬆️👨💻 Update actions/attest-build-provenance action to v3.2.0 by @renovate[bot] in #1491
- ⬆️🪝 Update patch versions by @renovate[bot] in #1493
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1497
- 📝 Update changelog after release of
v3.4.1by @denialhaag in #1496 - 🔧 Improve configuration of
prekhooks by @denialhaag in #1498 - ✨ Implement getInputQubits()/getOutputQubits() by @taminob in #1474
- ⬆️🪝 Update pre-commit hook astral-sh/uv-pre-commit to v0.10.0 by @renovate[bot] in #1503
- ⬆️🪝 Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.0 by @renovate[bot] in #1502
- ⬆️🐍 Update dependency ty to v0.0.15 by @renovate[bot] in #1500
- ⬆️🪝 Update pre-commit hook adhtruong/mirrors-typos to v1.43.2 by @renovate[bot] in #1501
- ⬆️🪝 Update pre-commit hook adhtruong/mirrors-typos to v1.43.3 by @renovate[bot] in #1504
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1505
- ✨ Add
invModifier for MLIR Redesign by @Ectras in #1330 - Bump pillow from 12.1.0 to 12.1.1 in the uv group across 1 directory by @dependabot[bot] in #1509
- ⬆️🪝 Update patch versions by @renovate[bot] in #1512
- ⬆️🪝 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.02.15 by @renovate[bot] in #1515
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1517
- ⬆️🪝 Update patch versions by @renovate[bot] in #1520
- ✅ More comprehensive test infrastructure for MLIR by @burgholzer in #1513
- 🎨 Clean up MLIR code here and there by @denialhaag in #1521
- ⬆️🪝 Update patch versions by @renovate[bot] in #1522
- ⬆️🪝 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.02.21 by @renovate[bot] in #1523
- Add
WireIteratorfor the QCO Dialect by @MatthiasReumann in #1510 - ✨ Add QCO If operation by @li-mingbao in #1506
- ⬆️🪝 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.02.22 by @renovate[bot] in #1524
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1525
- ⬆️🪝 Update patch versions by @renovate[bot] in #1527
- ⬆️🐍 Update dependency nanobind to ~=2.12.0 by @renovate[bot] in #1528
- ⬆️🪝 Update pre-commit hook pre-commit/mirrors-clang-format to v22 by @renovate[bot] in #1532
- ⬆️🪝 Update pre-commit hook python-jsonschema/check-jsonschema to v0.37.0 by @renovate[bot] in #1529
- ⬆️🪝 Update pre-commit hook adhtruong/mirrors-typos to v1.44.0 by @renovate[bot] in #1533
- ⬆️👨💻 Update actions/download-artifact action to v8 by @renovate[bot] in #1531
- ⬆️👨💻 Update actions/attest-build-provenance action to v4 by @renovate[bot] in #1530
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1535
- 🤖 Adding AGENTS.md repository instructions for AI tooling by @CodeMaverick2 in #1518
- 👷 Update munich-quantum-toolkit/templates to v1.1.13 by @denialhaag in #1538
- 📝 Update templated files by @mqt-app[bot] in #1539
- 👷 Run templating workflow on pushes to
mainby @denialhaag in #1540 - 🎨 Sort includes by category by @denialhaag in #1543
- 🔧 Bump minimum
scikit-build-coreversion by @denialhaag in #1544 - ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1545
- ✨ Heuristic Mapping Pass by @MatthiasReumann in #1537
- ✨ Add conversions between Jeff and QCO by @denialhaag in #1479
- 🚛 Move mapping pass files to QCO/Transforms by @MatthiasReumann in #1547
- 🎨 Streamline conversions by @denialhaag in #1548
- ⬆️🩹 Update munich-quantum-toolkit/workflows action to v1.17.15 by @burgholzer in #1549
- Bump tornado from 6.5.4 to 6.5.5 in the uv group across 1 directory by @dependabot[bot] in #1552
- ✨ Add DCX canonicalization for swapped targets in QCO dialect by @simon1hofmann in #1550
- 🤖 Refine AGENTS.md wording and structure to be more concise and explicit by @burgholzer in #1553
- ✨ Add swapped-target canonicalization for RXX/RYY/RZZ/SWAP pairs by @simon1hofmann in #1554
- 👷 Update templating workflow by @denialhaag in #1556
- 📝 Update templated files by @mqt-app[bot] in #1557
- ✨ Add
SamplerandEstimatorPrimitives to the QDMI-Qiskit Interface by @marcelwa in #1507 - ⬆️🩹 Update patch updates by @renovate[bot] in #1560
- ⬆️🩹 Update release-drafter/release-drafter action to v6.3.0 by @renovate[bot] in #1561
- ⬆️🪝 Update pre-commit hook scientific-python/cookie to v2026 by @renovate[bot] in #1562
- ⬆️🩹 Update release-drafter/release-drafter action to v6.4.0 by @renovate[bot] in #1563
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1566
- ✨ Implement Trials For Mapping Pass by @MatthiasReumann in #1568
- ⬆️ Update
jeff-mlirby @denialhaag in #1565 - 👷 Use
macos-26andmacos-26-intelas default macOS runners by @denialhaag in #1571 - 🚚 Move dialect and type definitions to separate TableGen files by @denialhaag in #1570
- ⬆️ Update
clang-tidyto version 22 by @denialhaag in #1564 - ✨ Add
qtensordialect to MLIR by @li-mingbao in #1542 - 🎨 Fix dependent dialects of conversions by @denialhaag in #1572
- 🎨 Format TableGen files using
clang-formatby @denialhaag in #1573 - ⬆️🩹 Update patch updates by @renovate[bot] in #1575
- ⬆️👨💻 Update actions/create-github-app-token action to v3 by @renovate[bot] in #1576
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.03.15 by @renovate[bot] in #1578
- ⬆️👨💻 Update release-drafter/release-drafter action to v7 by @renovate[bot] in #1577
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1579
- 🐛 Fix SSA Dominance Issues for Mapping Pass for Circuits With Barriers by @MatthiasReumann in #1581
- ✨Arena-Based A* Search For Mapping Pass by @MatthiasReumann in #1574
- 🎨 Add
mlirNamespace For Architecture by @MatthiasReumann in #1582 - Bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory by @dependabot[bot] in #1584
- ✨ Add
walkUnitDriver by @MatthiasReumann in #1583 - ⬆️🩹 Update patch updates by @renovate[bot] in #1586
- ⬆️🩹 Update release-drafter/release-drafter action to v7.1.1 by @renovate[bot] in #1587
- ✨ Skip Two-Qubit Blocks In Mapping Pass by @MatthiasReumann in #1588
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1591
- 🩹 Fix missing
MLIRDialectUtilslink library for QTensor dialect by @burgholzer in #1592 - ⬆️ Update QDMI to latest version from stable
v1.2.xbranch by @burgholzer in #1593 - 📦 Switch to component-based installation for the MQT Core Python package by @burgholzer in #1596
- ✨ Improve Static Qubit Handling by @simon1hofmann in #1569
- ⬆️🐍 Update dependency ty to v0.0.25 by @renovate[bot] in #1559
- ✨ Mark
qc::QubitTypeasMemRefElementTypeInterfaceby @denialhaag in #1602 - ✨ Canonicalize equivalent
qc.staticoperations by @simon1hofmann in #1567 - ⬆️🩹 Update patch updates by @renovate[bot] in #1607
- ⬆️🐍 Update dependency ty to v0.0.26 by @renovate[bot] in #1606
- ⬆️🪝 Update pre-commit hook astral-sh/uv-pre-commit to v0.11.2 by @renovate[bot] in #1608
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.03.29 by @renovate[bot] in #1609
- ⬆️🩹 Update minor stable updates by @renovate[bot] in #1611
- ⬆️🐍 Update dependency ty to v0.0.28 by @renovate[bot] in #1610
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1612
- ✨ Integrate registers by @denialhaag in #1580
- 🔥 Remove register information from allocation operations by @denialhaag in #1623
- ✨ Add
QIRProgramBuilder::allocQubit()method by @denialhaag in #1624 - ⬆️👨💻 Update munich-quantum-toolkit/workflows action to v1.18.0 by @renovate[bot] in #1625
- ⬆️🩹 Update patch updates by @renovate[bot] in #1631
- 🎨 Return registers from
allocQubitRegister()methods by @denialhaag in #1627 - ⬆️🐍 Update dependency ty to v0.0.29 by @renovate[bot] in #1632
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1633
- ✨ Prevent mixing qubit addressing modes by @simon1hofmann in #1626
- 📝 Add link to
mqt-ccpaper by @denialhaag in #1635 - ✨ Add GateTable registry and round-trip corpus tests for conversions by @simon1hofmann in #1620
- ✅ Re-enable
jefftests by @denialhaag in #1637 - ⬆️🩹 Update patch updates by @renovate[bot] in #1643
- ⬆️🩹 Update minor stable updates by @renovate[bot] in #1644
- 🔧 Maintenance round by @denialhaag in #1645
- ⬆️🩹 Update actions/create-github-app-token action to v3.1.1 by @renovate[bot] in #1646
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.04.11 by @renovate[bot] in #1647
- 🎨 Reduce sorting during QIR creation by @denialhaag in #1648
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1649
- ✨ Add support for multi-controlled gates to ZX package by @keefehuang in #1380
- ✨ Add rotation-gate merging using quaternions by @J4MMlE in #1407
- ⬆️ Update QDMI to v1.3.0 by @burgholzer in #1652
- 📝 Update changelog and upgrade guide after release of
v3.5.0by @denialhaag in #1656 - 🔧 Reconfigure
prekpriorities by @denialhaag in #1657 - ⬆️🩹 Update patch updates by @renovate[bot] in #1669
- ⬆️🐍 Update dependency ty to v0.0.31 by @renovate[bot] in #1668
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1670
- ✨Add
walkProgramGraphdriver by @MatthiasReumann in #1664 - 🐛 Fix malformed include directories in exported
nlohmann_jsonCMake targets for component-based installs (#1662) by @burgholzer in #1663 - 🎨 Clean up
llvmincludes by @denialhaag in #1673 - 🎨 Remove remaining explicit
llvmnamespaces by @denialhaag in #1675 - ⬆️🩹 Update patch updates by @renovate[bot] in #1680
- ⬆️🐍 Update dependency ty to v0.0.32 by @renovate[bot] in #1679
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.04.26 by @renovate[bot] in #1681
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1682
- 🎨 Streamline capitalization and stylization of
jeffby @denialhaag in #1677 - ♻️ Use
WireIteratorinMergeSingleQubitRotationGatesby @MatthiasReumann in #1674 - ✨ Improve Mapping Pass by @MatthiasReumann in #1600
- ⬆️🩹 Update pre-commit hook adhtruong/mirrors-typos to v1.46.0 by @renovate[bot] in #1690
- ⬆️🩹 Update patch updates by @renovate[bot] in #1689
- ⬆️🐍 Update dependency ty to v0.0.34 by @renovate[bot] in #1688
- ⬆️🩹 Update pre-commit hook python-jsonschema/check-jsonschema to v0.37.2 by @renovate[bot] in #1691
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1692
- ✅ Test translation to
jeffby @denialhaag in #1676 - ✨ Add SCF conversions between QC and QCO dialects by @li-mingbao in #1638
- ✨ Add Hadamard Lifting by @LiRem101 in #1605
- 🚸 Improve QDMI Integration by @burgholzer in #1694
- 🐛 Fix linear typing violation in SCF conversion by @li-mingbao in #1700
- 🐛 Fix missing
nlohmann_json.natvisin Windows component-based CMake installs by @burgholzer in #1702 - 📝 Update changelog and upgrade guide after release of
v3.6.0by @denialhaag in #1708 - ⬆️🩹 Update patch updates by @renovate[bot] in #1711
- ⬆️🩹 Update minor stable updates by @renovate[bot] in #1712
- ⬆️🩹 Update pre-commit hook adhtruong/mirrors-typos to v1.46.1 by @renovate[bot] in #1713
- ⬆️🐍 Update dependency ty to v0.0.35 by @renovate[bot] in #1714
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1715
- ✨ Inject Coupling Map Into Mapping Pass by @MatthiasReumann in #1709
- 🚸 Improve native gate support for the Qiskit-to-OpenQASM3 conversion in the QDMI-Qiskit interface by @burgholzer in #1719
- 🏁 Fix dynamic loading of QDMI device DLLs on Windows when an absolute path is provided by @burgholzer in #1720
- ✨ Translate
qc::IfElseOperationto QC by @denialhaag in #1717 - ♻️ Implement Explicit Assumption Checks for Mapping Pass by @MatthiasReumann in #1716
- ✨ Convert
qco.ifandscf.fortojeffby @denialhaag in #1706 - 🔧 Configure
check-merge-conflictto fail fast by @denialhaag in #1729 - ✨ Add
QuantumLoopUnrollpass by @MatthiasReumann in #1718 - 🚸 Provide
CMakePresets.jsonby @denialhaag in #1660 - ⬆️🩹 Update munich-quantum-toolkit/workflows action to v2.0.1 by @denialhaag in #1737
- 📝 Improve changelog by @denialhaag in #1738
- ⬆️🩹 Update patch updates by @renovate[bot] in #1740
- ⬆️🩹 Update actions/create-github-app-token action to v3.2.0 by @renovate[bot] in #1741
- ⬆️🐍 Update dependency ty to v0.0.36 by @renovate[bot] in #1739
- ⬆️🐍 Update dependency ty to v0.0.37 by @renovate[bot] in #1743
- ⬆️🩹 Update pre-commit hook adhtruong/mirrors-typos to v1.46.2 by @renovate[bot] in #1744
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1745
- ✨ Add
TensorIteratorby @MatthiasReumann in #1730 - ✨ Add Additional Canonicalization Patterns for QTensor by @MatthiasReumann in #1728
- 🚸 Remove One-Tensor Constraint From Mapping Pass by @MatthiasReumann in #1748
- 🐛 Fix dangling references in collectQubitValuesInsideSCFOps by @li-mingbao in #1749
- ⬆️🩹 Update patch updates by @renovate[bot] in #1754
- ⬆️🐍 Update dependency ty to v0.0.39 by @renovate[bot] in #1753
- ♻️ Erase operations during canonicalization by @denialhaag in #1762
- 📝 Update to new MQSC branding by @denialhaag in #1761
- 🎨 Use explicit
llvm::namespace specifiers inmqt-cc.cppby @denialhaag in #1765 - ⬆️🩹 Update minor stable updates to v1.47.0 by @renovate[bot] in #1769
- ⬆️🐍 Update dependency ty to v0.0.40 by @renovate[bot] in #1767
- ⬆️🩹 Update patch updates by @renovate[bot] in #1768
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1771
- 📝 Update
mqt-ccreference by @denialhaag in #1773 - ⬆️🩹 Update patch updates by @renovate[bot] in #1775
- 🔥 Remove Eigen dependency from QCO by @simon1hofmann in #1774
- ♻️ Relax condition on modifiers by @denialhaag in #1751
- ⬆️👨💻 Update munich-quantum-toolkit/workflows action to v2.1.0 by @renovate[bot] in #1779
- ⬆️ Update LLVM version to 22.1.7 in CI workflows by @burgholzer in #1736
- 🐛 Fix conversions of
jeff.switchandjeff.forby @denialhaag in #1776 - ✨ Add QC to QIR Adaptive Profile Conversion by @li-mingbao in #1710
- ⬆️🩹 Update patch updates by @renovate[bot] in #1784
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1785
- ♻️ Refactor IR Verification Logic by @MatthiasReumann in #1781
- ⬆️👨💻 Update munich-quantum-toolkit/templates action to v1.3.0 by @renovate[bot] in #1788
- Add QIR Program Format Support to the DDSIM QDMI Device by @rturrado in #1766
- 📝 Update templated files by @mqt-app[bot] in #1789
- ⬆️👨💻 Update munich-quantum-toolkit/templates action to v1.3.1 by @denialhaag in #1792
- ✨ Add QCO Euler synthesis and
fuse-single-qubit-unitary-runspass by @simon1hofmann in #1672 - ⚡️ Improve canonicalizations for gate fusion and inverse cancellation by @simon1hofmann in #1782
- 🔧 Maintenance round by @denialhaag in #1793
- ✨ Add
QIRSetAttributesAndMetadataPass by @MatthiasReumann in #1787 - ✨ Add OpenQASM-to-QC translation by @denialhaag in #1780
- ✅ Improve test stability by @denialhaag in #1794
- ⬆️🩹 Update minor stable updates to v2026.06.12 by @renovate[bot] in #1796
- ⬆️🩹 Update patch updates by @renovate[bot] in #1795
- ⬆️🩹 Update patch updates to v2026.06.14 by @renovate[bot] in #1800
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1801
- ✨ Enhance Matrix functionality with new methods and optimizations by @simon1hofmann in #1802
- ⬆️👨💻 Update munich-quantum-toolkit/workflows action to v2.2.0 by @renovate[bot] in #1804
- 🐛 Refactor unitary matrix calculations in ROp, UOp, XXMinusYYOp, and XXPlusYYOp by @simon1hofmann in #1807
- ✨ Add SCF support to
WireIteratorby @MatthiasReumann in #1806 - ✨ Add SCF Support to
walkProgramGraphby @MatthiasReumann in #1808 - ⬆️🩹 Update minor stable updates by @renovate[bot] in #1818
- ⬆️👨💻 Update actions/checkout action to v7 by @renovate[bot] in #1819
- ⬆️🐍 Update dependency nanobind to ~=2.13.0 by @renovate[bot] in #1817
- ⬆️🩹 Update patch updates by @renovate[bot] in #1816
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1820
- ✨ Compose multi-gate unitary matrices in CtrlOp and InvOp bodies by @simon1hofmann in #1809
- 🐳 Add dev container configuration by @denialhaag in #1786
- ✨ Directly emit LLVM IR when emitting QIR by @denialhaag in #1823
- ⬆️🩹 Update patch updates by @renovate[bot] in #1825
- 📝 Update templated files by @mqt-app[bot] in #1827
- 📝 Remove support for generating LaTeX documentation by @denialhaag in #1828
- ✨ Add two-qubit Weyl (KAK) decomposition library by @simon1hofmann in #1803
- 📝 Update templated files by @mqt-app[bot] in #1829
- 🐛 Fix QIR function names for adjoint gates by @denialhaag in #1830
- 🚸 Add const getOps func by @ystade in #1826
- ✨ Add helper functions to
qco.ifby @MatthiasReumann in #1824 - ⬆️🩹 Update patch updates by @renovate[bot] in #1837
- 📝 Update templated files by @mqt-app[bot] in #1838
- 🐛 Fix invalid prop_type in QDMI device by @MatthiasReumann in #1842
- ✨ Add support for IQM's
movegate in the QDMI Qiskit backend converter by @burgholzer in #1844 - ⬆️🩹 Update release-drafter/release-drafter action to v7.5.1 by @renovate[bot] in #1852
- ⬆️🩹 Update patch updates by @renovate[bot] in #1851
- ⬆️🩹 Update pre-commit hook rbubley/mirrors-prettier to v3.8.5 by @renovate[bot] in #1853
- ⬆️🩹 Update pre-commit hook rbubley/mirrors-prettier to v3.9.1 by @renovate[bot] in #1854
- ✨ Add non-bit record output functions to the QIR runtime by @rturrado in #1799
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.25 by @renovate[bot] in #1855
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1856
- ✨ Add IQM move gate support and star-topology Qiskit compilation via resonator abstraction by @marcelwa in #1848
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.26 by @renovate[bot] in #1860
- ✨ Add native gate profile parsing and Euler R-basis synthesis by @simon1hofmann in #1832
- ✨ Add complex eigendecomposition for QCO matrices by @simon1hofmann in #1814
- 📌 Pin
scikit-build-coreby @denialhaag in #1864 - ✨Map
scf.foroperations by restoration using the 4-approximation token swap algorithm by @MatthiasReumann in #1805 - ♻️ Refactor FoMaC classes by @MatthiasReumann in #1849
- ✨ Add single-target/single-qubit
ctrl/invbody builders for QCO and QC by @simon1hofmann in #1869 - ⬆️ Update QDMI to version 1.3.2 by @denialhaag in #1873
- 📝 Use
uv pip installin README by @denialhaag in #1881 - ✨ Compose multi-op modifier bodies on
Ntargets ingetUnitaryMatrixby @simon1hofmann in #1850 - 📝 Update changelog and upgrade guide by @denialhaag in #1879
- 🩹 Fix Getting started Code in README by @riggid in #1883
- ✨ Add
replaceWithAdditionalQubitsutility function toqco.ifby @MatthiasReumann in #1872 - ✨ Add QIR Output Schemas support to the QIR runtime by @rturrado in #1877
- ✨ Map
qco.ifstatements by "converge" strategy by @MatthiasReumann in #1870 - ⬆️🩹 Update patch updates by @renovate[bot] in #1889
- ⬆️🩹 Update pre-commit hook adhtruong/mirrors-typos to v1.48.0 by @renovate[bot] in #1890
- ✨ Add Dead Gate Elimination Pattern by @DRovara in #1755
- ✨ Add custom job parameters to FoMaC by @flowerthrower in #1887
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1892
- 🔧 Swap priority of
ruff-checkandruff-formatby @denialhaag in #1894 - ✨ Convert
scf.whiletojeffby @denialhaag in #1836 - ✨ Add typed custom property and result queries to the C++ and Python FoMaC libraries by @burgholzer in #1895
- ✨ Add support for QDMI child devices to the driver and FoMaC libraries by @burgholzer in #1897
- 📝 Clean up project documentation setup by @burgholzer in #1899
- 📝 Update templated files by @mqt-app[bot] in #1900
- 🤖 Prepare Core for agentic coding by @burgholzer in #1905
- 📝 Update templated files by @mqt-app[bot] in #1906
- ✨ Add Python bindings for
mqt-ccby @denialhaag in #1815 - 🤖 Add ExecPlan guidance by @burgholzer in #1907
- 🤖 Make ExecPlans checkout-independent by @burgholzer in #1908
- 🐛 Propagate correct mappings to parent of
scf::IfOpbranches by @MatthiasReumann in #1904 - 📝 Add MLIR bindings retrospective ExecPlan by @burgholzer in #1909
- 🎨 Improve
mqt-ccPython bindings by @denialhaag in #1914 - ⬆️🩹 Update patch updates by @renovate[bot] in #1916
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.07.08 by @renovate[bot] in #1917
- ⬆️🩹 Update pre-commit hook pre-commit/mirrors-clang-format to v22.1.8 by @renovate[bot] in #1919
- ✨ Add pass and patterns for measurement lifting by @DRovara in #1705
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.31 by @renovate[bot] in #1920
- ⬆️🩹 Update pre-commit hook astral-sh/ty-pre-commit to v0.0.59 by @renovate[bot] in #1921
- ⬆️🐍 Update dependency scikit-build-core to v1 by @renovate[bot] in #1918
- ✨ Map
scf::WhileOps using the restore strategy by @MatthiasReumann in #1911 - ✨ Add native RCCX (relative-phase Toffoli) gate support by @simon1hofmann in #1886
- 💚 Fix Qiskit Upstream Tests Failure by @rturrado in #1926
- ✨ Add pass and patterns for Classical Control Replacement by @DRovara in #1756
- ✨ Add DD
buildFunctionality/simulatefor static QCOfuncsby @simon1hofmann in #1915 - ✨ Also apply Dead Gate Elimination for ResetOps by @DRovara in #1924
- ✨ Add power modifier to MLIR by @J4MMlE in #1603
- ✨ Add
IndexSwitchoperation by @MatthiasReumann in #1925 - Keep agent tool caches inside worktrees by @burgholzer in #1931
- 🔧 Scope the Rust build output ignore by @burgholzer in #1932
- 🐛 Lower control-flow assertions to QIR by @burgholzer in #1933
- 🩹 Remove hidden Unicode characters by @denialhaag in #1937
- 🐛 Preserve
jeffentry-point results by @burgholzer in #1934 - 🐛 Traverse reordered while tensors by @burgholzer in #1936
- 🐛 Preserve structured state in QC-to-QCO conversion by @burgholzer in #1935
- 🐛 Fix
jeffstatus return placement by @burgholzer in #1939 - ⬆️🩹 Update patch updates by @renovate[bot] in #1940
- 📝 Update templated files by @mqt-app[bot] in #1943
- ⬆️🩹 Update pre-commit hook astral-sh/ty-pre-commit to v0.0.61 by @renovate[bot] in #1942
- ⬆️🩹 Update actions/attest action to v4.2.0 by @renovate[bot] in #1941
- ✨ Support classical results in QCO conditionals by @burgholzer in #1938
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.36 by @renovate[bot] in #1945
- ⬆️🩹 Update release-drafter/release-drafter action to v7.6.0 by @renovate[bot] in #1946
- ⬆️🩹 Update pypa/gh-action-pypi-publish action to v1.14.1 by @renovate[bot] in #1947
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.37 by @renovate[bot] in #1948
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1949
- ⚡️ Improve
walkProgramGraphdriver performance by @MatthiasReumann in #1930 - 🐛 Keep GoogleTest discovery artifacts in the build tree by @burgholzer in #1954
- ✨ Add
decompose-multi-controlledpass for multi-controlled X/Z/phase decomposition by @simon1hofmann in #1810 - 📝 Fix QCO pass diagram rendering by @burgholzer in #1959
- 🐛 Complete QDMI child-device string conversions by @burgholzer in #1952
- ✨ Add
fuse-two-qubit-unitary-runspass by @simon1hofmann in #1865 - ⚡️ Improve Python CI performance by @burgholzer in #1944
- 🤖 Refine agent review and test guidance by @burgholzer in #1960
- 💥 Require LLVM/MLIR for all MQT Core builds by @burgholzer in #1953
- 🧹 Simplify cibuildwheel v4 configuration by @burgholzer in #1962
- ✨ Add bottom-up
makeThreeQubitGateDDfor RCCX by @simon1hofmann in #1950 - ✨ Add configurable QDMI device discovery by @burgholzer in #1912
- ✨ Add binary-safe QDMI program handling to FoMaC by @burgholzer in #1957
- ⬆️ Update templates to v1.4.2 by @burgholzer in #1964
- ✨ Support RXX, RYY, RZX, RZZ, iSWAP, and ECR as native two-qubit bases for fusion by @simon1hofmann in #1961
- 🐛 Make MQT Core composable as a CMake subproject by @burgholzer in #1965
- 📝 Record v3.8.0 release on main by @burgholzer in #1971
- ✨ Add support for classical registers by @denialhaag in #1927
- ✨ Add typed QDMI device configuration transport by @burgholzer in #1967
- 🐛 Preserve classical loop state in QCO-to-QC by @burgholzer in #1975
- 🔧 Align MLIR slicing lint policy by @burgholzer in #1977
- 🐛 Ignore classical loads in QC-to-QCO state by @burgholzer in #1976
- ✨ Lower math operations in QIR conversions by @burgholzer in #1978
- ✨ Expose registered QDMI device IDs by @burgholzer in #1972
- 🐛 Preserve QIR classical result order by @burgholzer in #1979
- ✨ Make the NA QDMI device runtime configurable by @burgholzer in #1974
- ✨ Make the SC QDMI device runtime configurable by @burgholzer in #1980
- ⬆️🩹 Update pre-commit hook astral-sh/ruff-pre-commit to v0.16.0 by @renovate[bot] in #1982
- ⬆️🩹 Update patch updates by @renovate[bot] in #1981
- 🧪 Establish a typed OpenQASM 3 frontend by @burgholzer in #1910
- ✨ Expose DD serialization in Python by @burgholzer in #1983
- 🚀 Improve ZX MCX decomposition complexity by @burgholzer in #1984
- ♻️ Reuse MLIR modifier body helpers by @burgholzer in #1985
- ⚡ Speed up documentation builds by @burgholzer in #1988
- 🔧 Maintenance round by @denialhaag in #1989
- ✨ Normalize compiler-wide global phases by @burgholzer in #1986
- ✨ Add Qubit Reuse Pass by @DRovara in #1923
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #1991
- ✨ Implement "vote-and-restore" strategy for
qco.index_switchby @MatthiasReumann in #1951 - ✨ Bundle reusable IQM Garnet and Emerald device models by @burgholzer in #1992
- ✨ Add the MLIR compiler target foundation by @burgholzer in #1993
- ✨ Map QCO programs to compiler targets by @burgholzer in #1997
- ✨ Enhance OpenQASM frontend by @simon1hofmann in #1994
- ✨ Enhance multi-controlled gate decomposition in QCO dialect by @simon1hofmann in #1996
- ✨ Split target optimization from native synthesis by @burgholzer in #1998
- ✨ Fold constant
arithtrees when normalizing global phases by @simon1hofmann in #1995 - ✨ Compose the compiler target pipeline by @burgholzer in #1999
- ✨ Decompose controlled SWAP and gate multi-controlled lowering on min-qubits by @simon1hofmann in #2001
- ✨ Convert
powmodifier tojeffby @denialhaag in #2000 - 🔥 Remove flaky nested-pow global-phase scaling test by @simon1hofmann in #2006
- ✨ Integrate QDMI Devices by @MatthiasReumann in #1687
- 🐛 Keep all-to-all compiler target placement compact by @burgholzer in #2007
- ✨ Add PennyLane support for QDMI devices by @burgholzer in #2005
- ✨ Add OpenQASM 3 emission from QC by @burgholzer in #2003
- 🐛 Fix NaN gphase and add host/SSA paths for merge-single-qubit-rotation-gates by @simon1hofmann in #2002
- 🐛 Replay cold-preview SWAP plan during hot routing by @simon1hofmann in #2004
- 🎨 Support alias-safe repeated qubit loads by @burgholzer in #1987
- 🐍 Start building CPython 3.15 wheels by @denialhaag in #2011
- ⬆️🩹 Update release-drafter/release-drafter action to v7.7.0 by @renovate[bot] in #2020
- ⬆️🩹 Update patch updates by @renovate[bot] in #2019
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.08.01 by @renovate[bot] in #2023
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.48 by @renovate[bot] in #2022
- ⬆️🪝 Update pre-commit hook astral-sh/uv-pre-commit to v0.12.1 by @renovate[bot] in #2021
- ✨ Expose QDMI queue length and job position by @burgholzer in #2010
- ✨ Support zero-initialized register conditions by @burgholzer in #2026
- ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.49 by @renovate[bot] in #2027
- 🚨 Fix linter errors instead of ignoring them by @denialhaag in #2028
- 🧪 Strengthen ZX multi-control equivalence tests by @burgholzer in #2029
- ✨ Add support for retrieving existing QDMI jobs by ID by @burgholzer in #2008
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #2033
- 🎨 Retain register name by @simon1hofmann in #2014
- ✨ Enhance QCOProgramBuilder with tracked qubit and tensor structures by @simon1hofmann in #2017
- ⚡ Place SCF While Routing by @MatthiasReumann in #2016
- 🔧 Add a lower bound for sphinx-llm by @burgholzer in #2046
- 🐛 Emit textual QIR for .ll outputs by @burgholzer in #2030
- ⚡ Speed up native documentation builds by @burgholzer in #2047
- ✨ Query custom operation lists through FoMaC by @burgholzer in #2042
- 💥 Align the QIR gate ABI by @burgholzer in #2034
- ✨ Complete and isolate the QIR runtime by @burgholzer in #2035
- 🛡️ Make QIR state extraction semantically safe by @burgholzer in #2036
- 🧪 Verify QIR interoperability with QIR-Runner by @burgholzer in #2044
- ✨ Canonicalize positive integral powers of constant
Ugates by @simon1hofmann in #2041 - ✨ Enhance single-qubit gate merging by expanding supported gate types by @simon1hofmann in #2038
- ✨ Add
unroll-modifierspass for unrolling multi-operation modifiers by @denialhaag in #2015 - 🔥 Remove dead
typingcompatibility module by @denialhaag in #2059 - 📝 Document missing passes by @denialhaag in #2058
- ✨ Implement "drive-by" Method for Layout Conciliation by @MatthiasReumann in #2060
- ✨ Enhance classical control transformations in QCO dialect by @simon1hofmann in #2039
- 🔧 Use standard dynamic metadata configuration by @burgholzer in #2065
- ♻️ Return explicit MLIR compiler-target errors by @burgholzer in #2049
- 📝 Add final-design guidance for AI-assisted changes by @burgholzer in #2072
- 🐛 Emit QIR 2.1 profile metadata by @burgholzer in #2066
- ⬆️ Update
jeff-mlirby @denialhaag in #2018 - ⬆️🐍 Update dependency nanobind to ~=2.14.0 by @renovate[bot] in #2073
- ⚡ Speed up
stubsnox session by @denialhaag in #2075 - ♻️ Establish the QDMI Python namespace by @burgholzer in #2074
- 🔥 Remove the ZX-calculus library from MQT Core by @burgholzer in #2082
- ✨ Add Qiskit circuit import and export to the compiler collection by @burgholzer in #2031
- ✨ Select QDMI devices from Slurm license environments by @burgholzer in #2025
- 🧪 Test QDMI device admission with Slurm by @burgholzer in #2043
- ⚡ Reduce build and CI times by @burgholzer in #2083
- ♻️ Propagate OpenQASM semantic errors explicitly by @burgholzer in #2050
- 🐛 Fix conversions of nested control flow between
jeffand QCO by @denialhaag in #2105 - 💥 Remove dead
pybind11CMake support by @denialhaag in #2106 - ♻️ Simplify Python optional-dependency handling by @simon1hofmann in #2108
- 💥 Drop QDMI configuration through
pyproject.tomlby @denialhaag in #2116 - 🚸 Simplify QDMI adapter construction by @burgholzer in #2084
- ♻️ Prune dead and misleading CoreIR APIs by @simon1hofmann in #2112
- Simplify agent development workflow by @burgholzer in #2120
- 💥 Complete the FoMaC-to-QDMI migration by @burgholzer in #2115
- ⬆️👨💻 Update astral-sh/setup-uv action to v9 by @renovate[bot] in #2123
- ⬆️🩹 Update pre-commit hook adhtruong/mirrors-typos to v1.49.0 by @renovate[bot] in #2122
- ⬆️🩹 Update patch updates by @renovate[bot] in #2121
- 💥 Remove the legacy circuit-to-MLIR translation by @burgholzer in #2054
- 🔧 Support stock LLVM builds without exceptions or RTTI by @burgholzer in #2125
- ♻️ Prepare MQT Core for LLVM 23 by @burgholzer in #2127
- ⬆️🪝 Update pre-commit hook python-jsonschema/check-jsonschema to v0.38.0 by @renovate[bot] in #2126
- ⬆️👨💻 Update munich-quantum-toolkit/workflows digest to b9706e7 by @renovate[bot] in #2129
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in #2130
- 🤖 Improve prose, terminology, and test guidance in AGENTS.md by @denialhaag in #2128
- 🐛 Fix unused sparse target-site indexing by @simon1hofmann in #2119
- ♻️ Remove RNG state from QuantumComputation by @simon1hofmann in #2111
- ♻️ Make dead-gate removal an explicit QCO pass by @simon1hofmann in #2118
- ✨ Add SpecAudits for finding and removing spec debt by @marcelwa in #2124
- ✨ Add target-aware Qiskit export by @simon1hofmann in #2133
- 💥 Remove the neutral-atom stack by @denialhaag in #2137
- 💥 Depend on
nlohmann_jsonprivately by @denialhaag in #2138 - ⬆️🐍 Update dependency nanobind to ~=2.15.0 by @renovate[bot] in #2141
- ⬆️🩹 Update pre-commit hook scientific-python/cookie to v2026.08.14 by @renovate[bot] in #2142
- ✨ Extend QCO DD simulation beyond static unitaries by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/1973
- ✨ Add dense unitary operations to the compiler collection by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2136
- 🔧 Indicate support for CMake 4.4 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2146
- 🔧 Replace
setuptools-scmwithvcs-versioningby @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2145 - 💥 Remove DD approximation support by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2154
- ✨ Add program serializers to the Qiskit backend and hand IQM JSON to QDMI-on-IQM by @marcelwa in https://github.com/munich-quantum-toolkit/core/pull/2114
- 🐛 Let the QDMI client trigger a calibration run by @marcelwa in https://github.com/munich-quantum-toolkit/core/pull/2148
- ✨ Export OpenQASM measurements to Qiskit by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2140
- 🧪 Apply the PennyLane plugin SpecAudit by @marcelwa in https://github.com/munich-quantum-toolkit/core/pull/2147
- 🐛 Guard assignment type checking after expression errors by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2156
- 🐛 Distinguish scalar OpenQASM qubits from registers by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2157
- 🔧 Maintenance round by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2160
- 📝 Fix documentation link checks by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2165
- 🔧 Use lower bounds for
scikit-build-coreandvcs-versioningby @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2163 - ⬆️🩹 Update patch updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2164
- ⬆️ Update QDMI to version 1.3.3 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2168
- ♻️ Replace implicit classical-register memrefs with CBit IR by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2158
- 📝 Update changelog and upgrade guide after release of
v3.9.0by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2173 - 🧪 Resolve the global-phase normalization SpecAudit by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2189
- ✨ Support symbolic Qiskit parameters by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2150
- ♻️ Consolidate shared MLIR infrastructure by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2202
- ✨ Support compile-time fixed-width OpenQASM angles by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2169
- ✨ Import captured Qiskit classical expressions by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2175
- ⬆️🩹 Update patch updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2206
- ⬆️👨💻 Update astral-sh/setup-uv action to v10 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2207
- ✨ Prove affine OpenQASM quantum indices by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2203
- ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.08.15 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2208
- ⚡️ Canonicalize constant QCO index switches by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2210
- ⬆️ Update jeff-mlir for the generated-source linkage fix by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2212
- 📝 Define in-place target compilation semantics by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2211
- 🐛 Make QCProgramBuilder finalization deterministic by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2213
- 💥 Remove CoreAlgorithms and the legacy DD evaluation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2214
- 🐛 Fully unroll nested quantum loops by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2216
- ⬆️🐍 Adopt nanobind 3 split-mode wheels by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2209
- ♻️ Derive QIR capabilities before LLVM translation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2217
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2221
- 🐛 Initialize the Qiskit C API once by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2223
- 🚸 Reuse open QDMI devices in the PennyLane adapter by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2232
- ⬆️🩹 Update re-actors/alls-green action to v1.3.0 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2236
- ⬆️👨💻 Update munich-quantum-toolkit/workflows action to v2.3.0 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2237
- 📝 Update changelog and upgrade guide after release of
v3.9.1by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2238 - 💚 Run Ubuntu debug tests for draft pull requests by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2241
- 📝 Document one QDMI device ID per contended Slurm resource by @marcelwa in https://github.com/munich-quantum-toolkit/core/pull/2190
- 📝 Link to stable documentation by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2244
- ✨ Walk tensor chains across calls and compare untracked qubit tensors by @DRovara in https://github.com/munich-quantum-toolkit/core/pull/2193
- 💥 Remove standalone QIR runner by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2246
- ⬆️🩹 Update patch updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2247
- 📝 Update templated files by @mqt-app[bot] in https://github.com/munich-quantum-toolkit/core/pull/2248
- ✨ Export structured control flow to Qiskit by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2176
- ✨ Allow QDMI jobs to omit shots by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2258
- 💥🍎 Drop x86 macOS support and require macOS 13.3 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2259
- 📝 Update changelog and upgrade guide after release of
v3.9.2by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2264 - ✨ Add Pauli twirling pass by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2224
- ✨ Add inspection methods to
QCProgramby @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2149 - ♻️ Move OpenQASM serialization out of operations by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2249
- 💥 Prune test- and simulator-specific DD helpers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2257
- ✨ Preserve Qiskit parameter-vector provenance by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2178
- ✨ Make qubits legal MLIR vector elements by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2266
- 📝 Institutionalize idiomatic MLIR development by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2256
- ✨ Fuse parameterized single-qubit unitary runs by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2228
- ♻️ Remove CircuitOptimizer by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2262
- 🐛 Reject nonlinear QCO programs at checked boundaries by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2220
- 📝 Refine MLIR development guidance by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2272
- ⬆️🩹 Update patch updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2275
- 💥 Remove
spdlogdependency by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2270 - ⬆️🩹 Update pre-commit hook rvben/rumdl-pre-commit to v0.2.60 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2277
- 🐛 Validate output permutations before I/O mapping initialization by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2278
- ⬆️🩹 Update pre-commit hook astral-sh/ty-pre-commit to v0.0.74 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2279
- 🐛 Canonicalize static qubit roots by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2281
- 🐛 Harden MLIR conversion pass boundaries by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2282
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2283
- ✨ Add QCO DD sampling and classical registers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2077
- ✨ Extend Layout API for partial injections by @rturrado in https://github.com/munich-quantum-toolkit/core/pull/1956
- 🔧 Allow source builds without MLIR by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2284
- 🔧 Clean up CMake configuration by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2286
- ✨ Add typed structured quantum benchmarks by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2135
- 🐛 Break the QCO-QTensor link cycle by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2292
- 🐛 Stop QCO wire traversal at unknown carriers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2296
- 🐛 Preserve static-qubit isolation during cleanup by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2291
- 🐛 Make MLIR region moves failure-atomic by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2293
- ⬆️ Update LLVM to 23.1.0 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2298
- 🐛 Make QTensor shrinking sparse and atomic by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2295
- 🐛 Preserve attributes on reused QIR declarations by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2294
- 🐛 Bound OpenQASM export resource use by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2304
- ✨ Extend the QCO DD classical interpreter by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2078
- 🐛 Keep terminal measurements after routing swaps by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2301
- 🐛 Bound CBit zero-initialization lowering by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2307
- 🐛 Handle gate counts without an entry point by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2300
- 🐛 Preserve QTensor insert updates in QCO-to-QC by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2308
- 🐛 Harden MLIR constant folding by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2290
- ♻️ Centralize benchmark family registration by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2315
- 🐛 Make QIR metadata attachment idempotent by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2302
- ♻️ Separate target placement from routing by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2316
- ♻️ Improve The Backward Traversal Logic For The
WireIteratorClass by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2184 - ✨ Derive the qubit and tensor correspondence of a call from its callee by @DRovara in https://github.com/munich-quantum-toolkit/core/pull/2194
- 📝 Update changelog by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2327
- ⚡ Extend QCO DD execution for circuit-free DDSIM by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2079
- ✨ Preserve classical control through target mapping by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2179
- ♻️ Integrate qubit-pair skipping into the getWindow function by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2185
- ⚡ Avoid redundant target-compilation liveness analysis by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2180
- ♻️ Generalize MLIR compiler target facts by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2218
- 💥 Remove the legacy circuit surface for v4 by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2288
- ✨ Preserve target-native controlled operations by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2323
- ✨ Record typed compiler targets in MQT IR by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2215
- 🐛 Preserve yield permutations when unrolling loops by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2320
- ✨ Add quantum multiplexer benchmark by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2299
- 🐛 Fix multiplexer benchmark sampling by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2337
- ✨ Add one-qubit operations to program graph traversal by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2205
- ✨ Canonicalize classical register comparisons across frontends by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2181
- 👷 Drop Windows Debug CI builds by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2346
- 🐛 Preserve dominance when merging QCO parameters by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2322
- ⚡ Implement
reorderTopologicallyfunction by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2240 - 🐛 Keep release drafts branch-specific by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2347
- 📝 Update templated files by @mqt-app[bot] in https://github.com/munich-quantum-toolkit/core/pull/2350
- ✨ Add compiler-input DD helpers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2334
- ♻️ Consolidate DD gate semantics with QCO by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2335
- 🐛 Remove QCO/QTensor dependency cycles by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2352
- ✨ Add reusable quantum functions to QC and QCO by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2336
- 📝 Improve agent guidance and decision records by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2354
- ♻️ Split compiler programs from the pipeline library by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2343
- ✨ Support fixed-width classical registers across formats by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2297
- 🐛 Fix reset conversion in QCO control flow by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2357
- ✨ Support wide Qiskit register comparisons by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2348
- ✨ Expose ordered shots from the DDSIM QDMI device by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2368
- 💥 Use native Qiskit primitives for QDMI by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2358
- ⚡ Submit PennyLane QDMI jobs concurrently by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2349
- 🐛 Avoid Windows benchmark import-library collision by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2380
- ✨ Support directional compiler-target operation availability by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2285
- ✨ Support break, continue, and general while loops by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2369
- ⬆️🩹 Update patch updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2394
- ⬆️🩹 Update pre-commit hook adhtruong/mirrors-typos to v1.50.0 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2395
- ⬆️🩹 Update munich-quantum-toolkit/workflows action to v2.3.1 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2396
- ⬆️ Update clang-tidy to version 23 by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2328
- 🔧 Clean up project configuration and links by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2397
- 📝 Update templated files by @mqt-app[bot] in https://github.com/munich-quantum-toolkit/core/pull/2401
- 🐛 Keep deferred Qiskit
Storeinstructions free of bit operands by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2398 - ⬆️🩹 Update pre-commit hook henryiii/validate-pyproject-schema-store to v2026.08.29 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2405
- 📝 Frontport v3.10.0 changelog and upgrade guide by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2407
- ✨ Preserve reusable functions across jeff import and export by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2339
- ✨ Support reusable QC functions in QIR output by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2340
- ✨ Preserve reusable gates across OpenQASM import and export by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2338
- 🎨 Format pyproject.toml with pyproject-fmt by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2412
- 📝 Expand project keywords by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2415
- ✨ Preserve reusable gates across Qiskit import and export by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2342
- ⬆️🩹 Update munich-quantum-toolkit/templates action to v1.5.1 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2422
- ⬆️ Require CMake 3.28 by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2421
- 👷 Lower reusable functions with standard MLIR passes by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2344
- ⬆️🩹 Update pre-commit hook zizmorcore/zizmor-pre-commit to v1.30.0 by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2425
- ⚡ Reduce redundant integer interchange tests by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2424
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2431
- ♻️ Simplify QDMI implementation and tests by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2438
- ♻️ Simplify DD internals and bindings by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2437
- ⚡️ Improve DD cache safety and performance by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2441
- ⚡ Harden QDMI decoding and reduce query overhead by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2440
- 👷 Share Ninja presets and validate shared sccache by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2426
- 🐛 Enforce unitary effect contracts by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2435
- 🐛 Synthesize one-qubit gates without entanglers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2444
- 🐛 Declare capacity for sparse QIR resource IDs by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2447
- 🐛 Include side-effect operation dependencies in
reorderTopologicallyby @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2436 - 🐛 Adopt recoverable jeff deserialization errors by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2451
- 🐛 Export measurements across quantum operations by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2439
- 🐛 Reload empty QC and QCO programs by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2443
- 🐛 Diagnose unsupported QC control flow by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2448
- 🐛 Enforce terminal measurements in Base QIR by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2449
- 🐛 Correct DD matrix operations and numeric storage by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2453
- 🐛 Preserve QDMI provider lifetime and target metadata by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2454
- ✨ Export dynamically bounded OpenQASM loops by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2456
- 🐛 Validate QDMI jobs and SDK execution by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2458
- ⚡️ Improve DD construction and simulation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2455
- ⚡️ Optimize QDMI driver session opening by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2460
- ⚡ Fix test discovery and reduce build overhead by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2459
- ♻️ Simplify QIR lowering and metadata emission by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2463
- ♻️ Simplify Qiskit translation and fix audit findings by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2461
- ⚡ Avoid full lint builds and honor disabled IPO by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2470
- ⚡️ Accelerate DDSIM QIR execution by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2466
- ⬆️ Update jeff-mlir and use native arithmetic by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2457
- 🧪 Organize benchmark tests and run simulation in C++ by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2402
- ✨ Add quantum teleportation benchmark by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2324
- ✨ Add configurable QFT adder benchmark by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2404
- 🐛 Fix QC/QCO conversion and matrix contracts by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2464
- 🐛 Correct OpenQASM import and export contracts by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2465
- ⚡️ Reduce DD and QCO execution overhead by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2474
- ⚡ Reduce Slurm overhead and bound integration tests by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2472
- ⚡ Release the GIL during native QDMI calls by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2475
- ⚡️ Reduce QC/QCO conversion overhead by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2473
- ♻️ Define target compilation with payload specifications by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2219
- 🐛 Enforce quantum allocation and QIR output contracts by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2446
- ✨ Synthesize multi-controlled Pauli rotations by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2467
- ✨ Add optimal square-root iSWAP synthesis by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2468
- 📝 Make documentation executable and checked by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2462
- ⚡ Fix and streamline DD element access by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2479
- 📝 Update templated files by @mqt-app[bot] in https://github.com/munich-quantum-toolkit/core/pull/2480
- ⚡ Avoid repeated QDMI result and metadata work by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2481
- ⚡ Avoid repeated OpenQASM and QTensor preparation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2482
- ⚡ Bound and accelerate OpenQASM frontend work by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2483
- 🐛 Declare canonicalization dialect dependencies by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2484
- 🐛 Preserve mapped feed-forward control by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2351
- 🐛 Export independently scheduled measurements by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2452
- 🐛 Preserve canonicalization wire mappings by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2485
- 🐛 Bound canonicalization angle arithmetic by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2486
- ⚡️ Simplify routing and standardize benchmark experiments by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2488
- ✨ Add a modular multiplier benchmark by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2409
- ✨ Add scalable Pauli-string repeat-until-success benchmarks by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2410
- 🐛 Stabilize gate matrices and simplify canonicalization by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2477
- 🔧 Consolidate benchmarks under .agent by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2490
- 🐛 Fix routing across tensor wire boundaries by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2489
- ✨ Support Adaptive QIR statevector extraction by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2491
- 🐛 Simplify canonicalization and restore QCO tests by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2492
- ✨ Legalize control flow for selected payloads by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2162
- ⚡ Speed up QCO decomposition and fusion by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2478
- ♻️ Streamline benchmark library by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2493
- 🐛 Retain DDSIM states after terminal sampling by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2494
- 📝 Adopt LLVM-style C++ documentation comments by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2496
- 🎨 Re-sort C++ includes and prefix MQT MLIR headers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2498
- ✨ Add Python compiler target helpers by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2497
- ⚡️Include
identityLayout in Mapping Trials by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2499 - ⚡ Default mapping trials to available CPUs by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2500
- 📝 Standardize mathematical notation in C++ comments by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2501
- ✨ Add device-directed compilation and submission by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2495
- 🔧 Maintenance round by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2503
- ⚡️ Avoid temporary allocations in MLIR synthesis by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2507
- ⚡ Speed up Qiskit measurement and block export by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2508
- ⚡️ Reduce payload control-flow traversal work by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2510
- ⚡️ Speed up QIR output preparation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2513
- 🐛 Fix QIR extraction and DDSIM result exports by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2512
- ⚡ Reduce QDMI query overhead and Python stalls by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2511
- 🐛 Fix QCO builder tracking and QTensor reset scaling by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2514
- ⚡ Improve OpenQASM frontend and emission scaling by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2515
- ⚡ Improve initial layout with greedy candidates by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2517
- ⚡️ Reduce dialect canonicalization and validation work by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2516
- 🐛 Enforce MLIR modifier and pass contracts by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2505
- 🐛 Fix MLIR ownership, comparisons, and replay by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2502
- 💥 Align compiler terminology and public names by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2519
- 🐛 Fix DD exports, numeric storage, and QCO evaluation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2518
- ⚡ Preserve structured quantum loops during target compilation by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2506
- 📝 Refresh README and documentation entry points by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2509
- 📝 Clean up documentation and code comments by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2523
- ⚡ Avoid redundant compiler block-order scans by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2524
- 📝 Add executable compiler tutorials by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/1555
- ⬆️ Update workflows to v2.4.0 and templates to v1.5.3 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2521
- ⬆️ Update jeff-mlir to v0.4.0 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2525
- 📝 Update templated files by @mqt-app[bot] in https://github.com/munich-quantum-toolkit/core/pull/2528
- ⬆️🩹 Update patch updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2532
- ⬆️🩹 Update minor stable updates by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2533
- ⬆️🔒️ Lock file maintenance by @renovate[bot] in https://github.com/munich-quantum-toolkit/core/pull/2534
- ⚡️ Increase the default value
nlookaheadof the mapping pass to 20 by @MatthiasReumann in https://github.com/munich-quantum-toolkit/core/pull/2535 - ✨ Add basis-only target synthesis by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2531
- 📝 Connect compiler, QIR, QDMI, and jeff workflows by @burgholzer in https://github.com/munich-quantum-toolkit/core/pull/2526
- 📝 Prepare v4 compiler release documentation by @simon1hofmann in https://github.com/munich-quantum-toolkit/core/pull/2529
- ⬆️ Update LLVM to 23.1.1 by @denialhaag in https://github.com/munich-quantum-toolkit/core/pull/2538
New Contributors
- @Ectras made their first contribution in #1330
- @CodeMaverick2 made their first contribution in #1518
- @simon1hofmann made their first contribution in #1550
- @keefehuang made their first contribution in #1380
- @J4MMlE made their first contribution in #1407
- @rturrado made their first contribution in #1766
- @riggid made their first contribution in #1883
Full Changelog: v3.10.0...v4.0.0