qBraid-QIR 0.2.2
Release 0.2.2 (Aug 9, 2024)
Summary
-
Documentation has been refreshed, including updates to the README.md and supported qasm3 constructs, ensuring clarity and accuracy. Dependencies have been upgraded, with the
qbraid
requirement now supporting versions between 0.7.0 and 0.8.0, theopenqasm3[parser]
requirement updated to support versions between 1.0.0 and 1.1.0, and Sphinx requirements adjusted to support versions up to 8.1.0. -
Significant feature enhancements include the addition of support for Autoqasm to QIR conversion, qasm3 subroutines, and implementation for switch constructs. The handling of declarations and assignments has been improved, and a check for variable scope in alias declarations has been added. These updates contribute to better performance and functionality.
-
Several bugs and optimizations have been addressed, such as fixing the classical declaration bug for checking qubits during variable declaration, removing the use of the
typing
module for type hints, and streamlining the codebase.
➕ New Features
- Support for Autoqasm -> QIR conversion was added by @rjain37. Validation of autoqasm programs which can be converted to openqasm and thus to qir is added. ( #119 )
switch
statements are now supported for qasm3-qir converter. Users can now useswitch
in defining qasm programs and the converter dynamically evaluates which case to take. ( #126 )- Added support for qasm3
subroutines
. Users can now leverage more powerful constructions of qasm programs with the user ofsubroutines
. Array and Loop support coming soon! ( #128 )
🌟 Improvements
- Remove
typing
module for type hints. Since the native types of python can be used as type hints, we remove dependency fortyping.List
,typing.Tuple
,typing.Dict
andtyping.Set
( #124 ) - Declarations and Assignments were improved with support for the array declarations, internal array indexing was changed to mimic pythonic arrays, constant assignments expressions were changed to only consider constant values in their instantiation and introduced implicit type casting for variables. ( #122 )
📜 Documentation
- Restructured docs for qbraid qir and updated README ( #115 )
- Update _version.py ( #120 )
- Update authors in citation ( #127 )
- Update supported qasm3 constructs in qasm3 README ( #130 )
🐛 Bug Fixes
- Add check for variable scope in alias declaration. Aliases can not contain the same name as an existing variable in scope. ( #121 )
- Classical declarations were updated to check for naming clash with quantum registers and vice versa. ( #134 )
⬇️ Dependency Updates
- Update qbraid requirement from <0.7.0,>=0.6.1 to >=0.7.0,<0.8.0 ( #117 )
- Update openqasm3[parser] requirement from <0.6.0,>=0.4.0 to >=1.0.0,<1.1.0 ( #116 )
- Update sphinx requirement from ~=7.3.7 to >=7.3.7,<7.5.0 by ( #118 )
- Update sphinx requirement from <7.5.0,>=7.3.7 to >=7.3.7,<8.1.0 ( #129 )
Full Changelog: v0.2.1...v0.2.2