- Replaced ["CHANGES"] by ["CHANGES.md"], as we now use Markdown format to keep track of changes in new releases
- Removed pybind11 and GoogleTest dependencies; if not detected, they are installed automatically as build dependencies by CMake
- Bumped GoogleTest version to HEAD latest, as recommended by Google
- All header files are moved into ["include/staq"], so to include staq
headers one now must
#include "staq/<header>.hpp"
. This change was made for the sake of making the include statements look uniform in both non-installed (compiled without having staq installed) and installed (compiling with staq installed headers) modes. - Integrated the
staq_ionq
OpenQASM2 -> IonQ transpiler into pystaq
- When configuring staq with
cmake -B build -DINSTALL_SOURCES=ON
,cmake --build build --target install
now installs staq's source code in addition to the binaries - Renamed the ["examples"] directory to ["misc"]
- Moved ["qpu_specs"] and ["scripts"] directories to ["misc"]
- Added standalone source code example (requires staq's source installation) in the ["examples/standalone"] directory
- Added
staq_ionq
OpenQASM2 -> IonQ transpiler
- Implemented the
grid synth rotation synthesizer algorithm,
enabled only when the GNU MP library
is detected. When enabled, the build will include
staq_grid_synth
andstaq_qasm_synth
.
- Minor bugfix in pystaq ["setup.py"] that prevented
pip install
from remote - Docker update, see the ["docker"] directory
- This is a maintenance release
- Compiling errors fixed on SunOS/OpenIndiana
- This is a maintenance release
- CMake dependent flag name changes:
USE_OPENQASM2_SPECS
->QASMTOOLS_QASM2_SPECS
- This is a maintenance release
- Migrated all continuous integration to GitHub actions
- Minor updates in qasmtools
- staq is now available on Homebrew (macOS/Linux), and can be installed
with
brew install staq
- Migrated pystaq installation method to ["pyproject.toml"]
- CMake minimum required version bumped to 3.15
- This is a maintenance release with minor changes
- Updated pybind11 to version 2.10.4
- Complete Windows support for pystaq
- Bumped GoogleTest version to 1.12.1
- Implemented a lattice surgery compiler ["include/output/lattice_surgery.hpp"]
- Added pystaq, a Python wrapper around staq. See this for more details.
- Due to phase discrepancies, by default the parser now uses Qiskit definitions
(which are also the usual ones used in QC textbooks). To switch to standard
OpenQASM 2.0 gate definitions, configure the project with
cmake -DUSE_OPENQASM2_SPECS=ON
. - When building with CMake, the new
STAQ_VERSION_NUM
(numeric) andSTAQ_VERSION_STR
(string) preprocessor definitions are automatically injected in the code
- Decoupled the OpenQASM parser from the main codebase. A hard copy of
qasmtools is now common to both
staq and Quantum++, and by default uses standard OpenQASM 2.0 gate
definitions. To switch to Qiskit definitions (which are also the usual ones
used in QC textbooks), configure the project with
cmake -DUSE_QISKIT_SPECS=ON
. - Added CMake installation support
- Switched continuous integration from Travis CI to CircleCI
- CMake minimum required version bumped to 3.12 for automatic unit tests detection by CMake
- Unit testing is now a separate CMake target, one needs to explicitly type
make unit_tests
to build the unit testing suite - Simplified unit testing, now one can run tests with
ctest
ormake test
(after explicitly built withmake unit_tests
). UseGTEST_COLOR=1 ARGS="-V" make test
orGTEST_COLOR=1 ctest -V
for coloured verbose testing output. - QPU specifications (qubits, couplings, fidelities) are now stored in JSON files
- Added a device generator to easily create these JSON files under ["tools/device_generator.cpp"].
- Bugfixes
- Renamed
master
branch tomain
- Bugfix release
- Minor incremental improvements/bugfixes
- Added complete Windows support (including MSVC) + AppVeyor CI
- Various minor bugfixes
- Initial public release