quil-lang / quil

Specification of Quil: A Practical Quantum Instruction Set Architecture
https://quil-lang.github.io/
Apache License 2.0
105 stars 16 forks source link

Add nonblocking semantics to quilt spec #85

Open macrologist opened 5 months ago

macrologist commented 5 months ago

This PR addresses issue #59.

Review from @kalzoo would be appreciated.

From what I could gather, the semantics of the non-blocking modifier is to not exclude the modified operation from simultaneous scheduling with operations on intersecting frames. But operations that are not non-blocking still exclude operations on intersecting frames in their usual way, including those frames marked as non-blocking.

I include @braised-babbage 's example in the spec to clarify that to make use of NONBLOCKING requires modifying each operation meant to be mutually non-blocking.