Skip to content

qBraid-QIR 0.2.2

Compare
Choose a tag to compare
@ryanhill1 ryanhill1 released this 09 Aug 15:51
· 47 commits to main since this release
06b0934

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, the openqasm3[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 use switch 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 of subroutines. 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 for typing.List, typing.Tuple, typing.Dict and typing.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