quil-rs
quil-rs copied to clipboard
Quil Parser & Program Builder
Per the [Quil-T spec](https://github.com/quil-lang/quil/blob/289bc212017772c8e33f5d1a683f3dd4b8d83d42/rfcs/analog/spec_changes.md): > Fence ensures that all operations involving the specified qubits that follow the fence statement happen after all operations involving the specified qubits that preceed the...
Suggesting this because, while it doesn't necessarily look as nice, it should avoid (some of) the unnecessary allocations from building a `Vec` for printing purposes. ```suggestion write!(f, "{}", self.name)?; if...
Consider the following program: ``` DEFCAL MEASURE 0 addr: CAPTURE 0 \"ro_rx\" custom ``` It's invalid because a memory identifier is missing from the `CAPTURE`. However, when parsed by `quil-rs`...
While working on this lately, I've noticed places where code could be cleaned up or slightly improved, and `clippy` is good for catching these things. Enabling lints would be a...
#112 and #113 address the primary performance regression from f99e19c9, but there is still some regression in performance, where parsing a large file went from ~40ms to ~200-350ms. Some of...
#112 happened because the benchmarking pipeline finishes with success as long as benchmarks run, no matter how much worse they perform. If we can get the benchmarks to fail on...
`src/parser/common.rs` contains a number of `panic!("Implement this error")` lines that should be cleaned up
PR #89 adds `strum` for enum `ToString` implementations. For consistency and code deduplication, we can use `strum::EnumString` to implement `FromStr` for those enums (`Command`, etc.)
And produce a useful error message
I recently had to build a program from two different program sources: one with the calibrations, and another with the actual program logic. It was not exactly ergonomic, and I...