Updated C++ version to C++23.
Updated GitHub Actions to build in gcc/clang/msvc x Linux/MacOS/Windows x Debug/Release.
Updated dependency management to be done through FetchContent instead of git submodules.
CMake minimum required version is now 3.25, due to FetchContent_Declare(... SYSTEM).
lemon dependency is now fetched through a fork, which fixes C++17 & 20 compilation, and some CMake and C++ warnings.
Reorganized tests, examples, and resources.
Reorganized tests.
All tests are now under the test folder.
All tests are googletest. doctest dependency has been removed.
All tests are discovered. CMake code for adding tests has been removed.
Python tests have been updated to comply to most of PEP 8 (code style guide).
Reorganized resources.
All resources are now under the res folder.
Some file names were changed.
Reorganized examples.
All example codes are now under example folders within test.
All example resources are now under example folders within res.
The structure of the test folder is:
|- ql
| \- com, ir, pass, utils...
\- v1x
|- cpp
| \- example
\- python
|- example
\- visualizer
The structure of the res/v1x folder is:
|- cq
| |- example
| \- golden
|- json
| \- visualizer
\- qasm
\- golden
v1x stands for cQasm v1.x. There may be folders such as v3x in the future.
File changes
deps: removed.
docs:
Changed from openql import openql as ql to import openql as ql.
Changed nqubits to num_qubits.
include/ql, source/ql:
Fixed warnings and compilation errors.
Update references to resources to point to the new location in res.
python/ql.i: minor aesthetic change: split a very whole string into different lines.
CMake
Updated C++ version to C++23. Updated GitHub Actions to build in gcc/clang/msvc x Linux/MacOS/Windows x Debug/Release. Updated dependency management to be done through FetchContent instead of git submodules.
Reorganized tests, examples, and resources.
Reorganized tests.
test
folder.googletest
.doctest
dependency has been removed.Reorganized resources.
res
folder.Reorganized examples.
example
folders withintest
.example
folders withinres
.The structure of the
test
folder is:The structure of the
res/v1x
folder is:v1x
stands for cQasm v1.x. There may be folders such asv3x
in the future.File changes
from openql import openql as ql
toimport openql as ql
.nqubits
tonum_qubits
.res
.ql
target_compile_options.test/v1x/python
.