Release Notes¶
spec/v3.1.0-30¶
New Features¶
The types
bool
and (scalar)bit
are now explicitly described as being completely interchangeable in expression (r-value) positions, and thatbit
andbit[1]
are distinct types. The difference between the typesbool
andbit
is only in their intended storage mechanisms;bit
is the scalar of the register-typebit[n]
, which is explicitly a bit-packed type, so cannot be used as the base type of anarray
, whilebool
is a byte-aligned single-bit integer-like type.bit[1]
is a register (sequence) type that happens to be of length one.
Adds a recommendation that pragmas and annotations start with a namespaced identifier to avoid naming collisions between pragmas and annotations specified by different implementations. To support namespaced annotations, the annotations keyword may now include a dotted (‘.’) list of identifiers.
Upgrade Notes¶
It has been clarified that arrays and registers of size zero are allowed; however, integers and angles must have size greater than zero.
The
qubit
type is no longer a valid base type for anarray
, and it is no longer stated that the register typequbit[n]
is equivalent to anarray
; there is no need for these semantics, and they clashed with the classical considerations and alignment concerns of arrays in general.
Bug Fixes¶
Clarify that array type variables are supported as inputs.