Skip to content

Commit cf2b59b

Browse files
mqt-app[bot]denialhaagburgholzer
authored
⬆️ Update munich-quantum-toolkit/core (#610)
This pull request updates the [munich-quantum-toolkit/core](https://github.com/munich-quantum-toolkit/core) dependency from munich-quantum-toolkit/core@1f95d92 (version v3.1.0) to munich-quantum-toolkit/core@28e41bf (version v3.2.0). **Full Changelog**: munich-quantum-toolkit/core@1f95d92...28e41bf --------- Signed-off-by: Daniel Haag <[email protected]> Co-authored-by: mqt-app[bot] <219534693+mqt-app[bot]@users.noreply.github.com> Co-authored-by: Daniel Haag <[email protected]> Co-authored-by: Lukas Burgholzer <[email protected]>
1 parent 51a3d06 commit cf2b59b

16 files changed

+210
-163
lines changed

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
BasedOnStyle: LLVM
22
IncludeBlocks: Regroup
33
PointerAlignment: Left
4+
Standard: c++20

.github/workflows/ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ jobs:
8888
[ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm]
8989
compiler: [gcc, clang, clang-19, clang-20]
9090
config: [Release, Debug]
91+
exclude:
92+
# both combinations do not support C++20 due to the compiler being too old
93+
- runs-on: ubuntu-22.04
94+
compiler: clang
95+
- runs-on: ubuntu-22.04-arm
96+
compiler: clang
9197
uses: munich-quantum-toolkit/workflows/.github/workflows/[email protected]
9298
with:
9399
runs-on: ${{ matrix.runs-on }}
@@ -153,6 +159,7 @@ jobs:
153159
files-changed-only: true
154160
install-pkgs: "pybind11==3.0.0"
155161
setup-python: true
162+
cpp-linter-extra-args: "-std=c++20"
156163

157164
python-tests:
158165
name: 🐍 Test

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#Unreleased)._
1818

1919
### Changed
2020

21-
- ✨ Expose enums to Python via `pybind11`'s new (`enum.Enum`-compatible) `py::native_enum` ([#607]) ([**@denialhaag**])
21+
- **Breaking**: ⬆️ Bump minimum required `mqt-core` version to `3.2.1` ([#610]) ([**@denialhaag**])
22+
- **Breaking**: ⬆️ Require C++20 ([#610]) ([**@denialhaag**])
23+
- **Breaking**: ✨ Expose enums to Python via `pybind11`'s new (`enum.Enum`-compatible) `py::native_enum` ([#607]) ([**@denialhaag**])
2224
- **Breaking**: ⬆️ Bump minimum required `mqt-core` version to `3.1.0` ([#591]) ([**@denialhaag**])
2325
- **Breaking**: ⬆️ Bump minimum required `pybind11` version to `3.0.0` ([#591]) ([**@denialhaag**])
2426
- ♻️ Move the C++ code for the Python bindings to the top-level `bindings` directory ([#567]) ([**@denialhaag**])
@@ -51,6 +53,7 @@ _📚 Refer to the [GitHub Release Notes] for previous changelogs._
5153

5254
<!-- PR links -->
5355

56+
[#610]: https://github.com/munich-quantum-toolkit/ddsim/pull/610
5457
[#608]: https://github.com/munich-quantum-toolkit/ddsim/pull/608
5558
[#607]: https://github.com/munich-quantum-toolkit/ddsim/pull/607
5659
[#606]: https://github.com/munich-quantum-toolkit/ddsim/pull/606

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ project(
1414
LANGUAGES C CXX
1515
DESCRIPTION "MQT DDSIM - A quantum circuit simulator based on decision diagrams")
1616

17+
set(CMAKE_CXX_STANDARD 20)
18+
1719
option(BUILD_MQT_DDSIM_BINDINGS "Build the MQT DDSIM Python bindings" OFF)
1820
if(BUILD_MQT_DDSIM_BINDINGS)
1921
# ensure that the BINDINGS option is set

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ print(counts)
6161

6262
## System Requirements and Building
6363

64-
The implementation is compatible with any C++17 compiler and a minimum CMake version of 3.24.
64+
The implementation is compatible with any C++20 compiler and a minimum CMake version of 3.24.
6565
Please refer to the [documentation](https://mqt.readthedocs.io/projects/ddsim) on how to build the project.
6666

6767
Building (and running) is continuously tested under Linux, macOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/virtual-environments).

UPGRADING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ The `ConstructionMode`, `HybridMode`, and `PathSimulatorMode` enums are now expo
4242
As a result, the enums can no longer be initialized using a string.
4343
Instead of `PathSimulatorMode("sequential")` or `"sequential"`, use `PathSimulatorMode.sequential`.
4444

45+
Finally, the minimum required C++ version has been raised from C++17 to C++20.
46+
The default compilers of our test systems support all relevant features of the standard.
47+
4548
<!-- Version links -->
4649

4750
[unreleased]: https://github.com/munich-quantum-toolkit/qmap/compare/v1.24.0...HEAD

cmake/ExternalDependencies.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ if(BUILD_MQT_DDSIM_BINDINGS)
4141
endif()
4242

4343
# cmake-format: off
44-
set(MQT_CORE_MINIMUM_VERSION 3.1.0
44+
set(MQT_CORE_MINIMUM_VERSION 3.2.1
4545
CACHE STRING "MQT Core minimum version")
46-
set(MQT_CORE_VERSION 3.1.0
46+
set(MQT_CORE_VERSION 3.2.1
4747
CACHE STRING "MQT Core version")
48-
set(MQT_CORE_REV "1f95d92320b116497d6f516a085fbe3bb8693960"
48+
set(MQT_CORE_REV "0425f88169f573e4505b49703c4cadf3699ccbcd"
4949
CACHE STRING "MQT Core identifier (tag, branch or commit hash)")
5050
set(MQT_CORE_REPO_OWNER "munich-quantum-toolkit"
5151
CACHE STRING "MQT Core repository owner (change when using a fork)")

docs/development_guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Ready to contribute to the project? This guide will get you started.
118118

119119
## Working on the C++ library
120120

121-
Building the project requires a C++ compiler supporting _C++17_ and CMake with a minimum version of _3.24_.
121+
Building the project requires a C++ compiler supporting _C++20_ and CMake with a minimum version of _3.24_.
122122
As of 2025, our CI pipeline on GitHub continuously tests the library under the following matrix of systems and compilers:
123123

124124
- Ubuntu 24.04 with GCC 13 or Clang 18 on x86_64 and arm64

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
\begin{abstract}
55
```
66

7-
MQT DDSIM is an open-source C++17 and Python library for classical quantum circuit simulation developed as part of the _{doc}`Munich Quantum Toolkit (MQT) <mqt:index>`_ [^1].
7+
MQT DDSIM is an open-source C++20 and Python library for classical quantum circuit simulation developed as part of the _{doc}`Munich Quantum Toolkit (MQT) <mqt:index>`_ [^1].
88

99
This documentation provides a comprehensive guide to the MQT DDSIM library, including {doc}`installation instructions <installation>`, a {doc}`quickstart guide <quickstart>`, and detailed {doc}`API documentation <api/mqt/ddsim/index>`.
1010
The source code of MQT DDSIM is publicly available on GitHub at [munich-quantum-toolkit/ddsim](https://github.com/munich-quantum-toolkit/ddsim), while pre-built binaries are available via [PyPI](https://pypi.org/project/mqt.ddsim/) for all major operating systems and all modern Python versions.

docs/installation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Installation
22

3-
MQT DDSIM is mainly developed as a C++17 library with Python bindings.
3+
MQT DDSIM is mainly developed as a C++20 library with Python bindings.
44
The resulting Python package is available on [PyPI](https://pypi.org/project/mqt.ddsim/) and can be installed on all major operating systems using all modern Python versions.
55

66
:::::{tip}
@@ -96,7 +96,7 @@ $ uv pip install mqt.ddsim --no-binary mqt.ddsim --no-binary mqt.core
9696
:::
9797
::::
9898

99-
This requires a [C++ compiler supporting C++17](https://en.wikipedia.org/wiki/List_of_compilers#C++_compilers) and a minimum [CMake](https://cmake.org/) version of 3.24.
99+
This requires a [C++ compiler supporting C++20](https://en.wikipedia.org/wiki/List_of_compilers#C++_compilers) and a minimum [CMake](https://cmake.org/) version of 3.24.
100100
The library is continuously tested under Linux, MacOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/virtual-environments).
101101
In order to access the latest build logs, visit the [GitHub Actions page](https://github.com/munich-quantum-toolkit/ddsim/actions/workflows/ci.yml).
102102

0 commit comments

Comments
 (0)