qdk
qdk copied to clipboard
OpenQASM Missing Language Features
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
nopinstructions - [ ] Extern functions. #2680
- [x] input arrays. [Array type variables are clarified to be supported as inputs.] #2678 (https://openqasm.com/release_notes.html#bug-fixes)
- [x] Parser and Lowerer
- [x] Compiler
- [x] Python
- [x] Array concatenation #2676
- [x]
durationofcalls. #2611 - [x] Mutable array references as parameters allowed by lowerer and used accordingly. (See below as they aren't supported past the lowerer) #2616
- [x] Alias declarations for qubits. #2665
- [ ] Built-in functions (
sin,cos, etc.)- [x] Foundation and
modimplementation #2508 - [x] Implementation of builtin functions #2521
- [ ]
powedge case: pow builtin collides with pow gate modifier.
- [x] Foundation and
- [x]
boxstatement. #2571 - [x]
sizeofcalls. #2586 - [x] Array references (passing arrays as
readonlyparameters). #2586 - [x] Index into sized types. #2564
- [x] Importing files other than "stdgates.inc". #2512
- [x] Ranges with open start or end: [:1:5], [0:1:]. #2472
These features require work in the Q# compiler and we may implement them at some point, but not in the near future:
- [ ]
breakkeyword. - [ ]
continuekeyword. - [ ] Array references (passing arrays as
mutableparameters). - [ ] 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
gateandboxinstructions. - Stretch type values.
- Calibration statements.
- Calibration grammar statements.
- Defcal statements.
- Delay statements.