quil-rs
quil-rs copied to clipboard
Quil Parser & Program Builder
The type hints should be more easily browsable for people who aren't using an environment with an LSP or other tooling that will pull in the type stubs.
Not all execution targets support all quil instructions, particularly the [QVM](https://github.com/quil-lang/qvm) does not support [Quil-T](https://quil-lang.github.io/#12Annex-T--Pulse-Level-Control) (see https://github.com/rigetti/pyquil/issues/1684). Currently, there is no way to know which [`Instruction`](https://github.com/rigetti/quil-rs/blob/afac2ce17e2fc63bb3b06db4f51bce1429ebe15f/quil-rs/src/instruction/mod.rs#L76) is from Quil-T. However,...
In order to conserve the amount of space our project uses on PyPI and to prevent running into the 10GB limit `qcs-sdk-python` recently hit, we shouldn't publish wheels for pre-releases...
Inline comments after a `DEFCAL` statement: ``` DEFCAL TEST 0: # inline comment RZ(pi) 0 ``` will trigger a parsing error: ``` error while parsing: at line 1, column 1...
#280 enabled the building and publishing of wheels for x86 and x64 based Windows systems. At the time of that PR, ARM for Windows was early in adoption. Support was...
This PR is meant as a reference and not to be merged (yet). It is based on @genos' `simplify-by-hand` branch and attempts to improve performance by using an arena-based cache...
In practice, expressions can be nested many layers deep, and this makes clone operations expensive enough to dominate compilation time. There are different ways we could make this cheaper: *...
This expression appears to take over 2 minutes to hash on a decent laptop using the default Rust SipHasher: ``` (6.283185307179586*(-((-3.141592653589793+(gamma[0]*-1.3670709112264738)/6.283185307179586)+(-((1827.142690137572+-(1292.2571023206997 - (-3.141592653589793+(gamma[0]*-1.3670709112264738)/6.283185307179586)+1293.2884354900702) - (-3.141592653589793+(gamma[0]*-1.3670709112264738)/6.283185307179586)+(1292.2571023206997 - ((-3.141592653589793+gamma[0]*-1.3670709112264738)/6.283185307179586+1293.2884354900702)+1830.4305845069357))+(2404.366183299857+(-3.141592653589793+(gamma[0]*-1.3670709112264738)/6.283185307179586)+(1292.2571023206997 - (-3.141592653589793+(gamma[0]*-1.3670709112264738)/6.283185307179586)+1293.2884354900702)) -...
Downstream, immutable programs could be a helpful tool. For example, a template program that can be used as a base for similar programs, but the template itself shouldn't change. Maybe...
In `pyQuil`, users sometimes use `Program`s as keys to hash maps. It would be helpful to have this capability in `quil-rs` as well. In `pyQuil` a programs `__hash__` is defined...