Release Notes

ast-py/v0.5.0-32

New Features

  • Added CI support for ensuring contributions include a release note. If this is not desired for a PR the tag “no-reno” may be added to the PR.

  • Added openqasm3.spec.supported_versions which lists the OpenQASM specification versions supported by the openqasm3 package. Currently the supported versions are 3.0 and 3.1. In future, additional information on the supported specifications may be added to openqasm3.spec.

  • The standard-library file stdgates.inc is now formally documented in the specification. Its effects match how it was described in the initial paper, and it was always intended to be part of the formal specification.

  • Added support for switch statements, allowing for compact description of multi-way branches that depend on a common control expression.

Upgrade Notes

  • Improve physical qubit documentation. Define what constitutes a valid physical identifier, define physical circuits, and answer several questions about what a compiler may do with physical qubits.

Bug Fixes

  • The language specification requires that the type of a loop variable in a for loop be declared. However a few examples of for loops lacked these declarations. These examples have been fixed to include type declarations on these loop variables.

  • Remove include “stdgates.qasm”; from an example in the specification. This file name has no special significance. This line could easily be confused with include “stdgates.inc”;, which is the only specified method of including gate definitions from the standard library.

Other Notes

  • The keywords switch, case, and default are no longer reserved by the spec for future expansion of the language.

ast-py/v0.4.0

Upgrade Notes

  • The “wildcard” identifiers in pulse grammars are now regular OpenQASM 3 identifiers, without the leading dollar sign ($), e.g. what was $q before is now simply q. Precise hardware qubits are still referenced as $0, for example. This was made for better consistency in identifiers; having the dollar sign in the wildcard carried no information, since it applied to any qubit already.