-
Notifications
You must be signed in to change notification settings - Fork 147
Open
Description
The following features are missing in our OpenQASM implementation, and we plan to implement them in the near future:
- Index sets
arr[{2, 6, 8}]
.- need some clarification from the spec. issue filed
- Support for OpenQASM 3.2 with
nop
instructions - Extern functions. Adding extern compilation for OpenQASM #2680
- input arrays. [Array type variables are clarified to be supported as inputs.] OpenQASM input and output interop #2678 (https://openqasm.com/release_notes.html#bug-fixes)
- Parser and Lowerer
- Compiler
- Python
- Array concatenation Add support for array concatenation in OpenQASM #2676
-
durationof
calls. Lower duration and stretch #2611 - Mutable array references as parameters allowed by lowerer and used accordingly. (See below as they aren't supported past the lowerer) Allow indexing into array references in OpenQASM #2616
- Alias declarations for qubits. Add support for qubit alias decls #2665
- Built-in functions (
sin
,cos
, etc.)- Foundation and
mod
implementation Add support for builtin functions #2508 - Implementation of builtin functions Implement builtin functions #2521
-
pow
edge case: pow builtin collides with pow gate modifier.
- Foundation and
-
box
statement. Adding box pragma support to QASM compiler #2571 -
sizeof
calls. Add sizeof bultin to qasm #2586 - Array references (passing arrays as
readonly
parameters). Add sizeof bultin to qasm #2586 - Index into sized types. Classical types indexing in OpenQASM #2564
- Importing files other than "stdgates.inc". Consolidate OpenQASM project loading and include handling #2512
- Ranges with open start or end: [:1:5], [0:1:]. Support omitted start and stop in ranges #2472
These features require work in the Q# compiler and we may implement them at some point, but not in the near future:
-
break
keyword. -
continue
keyword. - Array references (passing arrays as
mutable
parameters). - alias declarations for bitarrays
- register concatenation
These features are not planned for full compilation support:
- Hardware qubit ids.
- Duration type value, this includes supplying durations on
gate
andbox
instructions. - Stretch type values.
- Calibration statements.
- Calibration grammar statements.
- Defcal statements.
- Delay statements.