You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As discussed in #549, this restructures the qubit dialect. I also moved
it to the top level of bloqade, since it's used in multiple places. It's
still re-exported by squin, though.
I've got it down to a single failing test, where the `AggressiveUnroll`
fails because the constant propagation doesn't hint the loop iterable as
constant for some reason.
This breaks the syntax such that you have to change the function calls
using lists such as `squin.qubit.measure(q: IList[Qubit])` to
`squin.broadcast.measure(q: IList[Qubit])`.
**Edit**: turns out I was just too eager to remove the type inference
method @weinbe58 added in #508. That resolves the failing test.
**Edit2**: I've also changed `QubitId` and `MeasurementId` to be
"broadcasted" (i.e., they now operate on lists of qubits / measurements
and return lists). This means that now **all statements except
`qubit.new` are broadcasted**, which is as consistent as we can have it,
I think.
---------
Co-authored-by: John Long <[email protected]>
0 commit comments