Open mhodson-rigetti opened 8 months ago
Further suggestion: In common use cases, users bring a Program
with instructions and some optional subset of new calibrations, frames and waveforms, meant to support novel instructions or to override those available from a prior process. In the override case it is not preferred to add inconsistent duplicates to a single Program
and rely on some ordering rule to resolve. It might be preferred to provide a Program
to resolve, and then a (potentially empty) ordered list of other calibration-only Program
s which are successively used to resolve calibrations, frames and waveforms. Any matched across that ordered resolution fold up into the final result.
When users build Quil-T programs, they often add the full set of production calibrations to the Quil program. This makes the program very large to persist and slower than necessary to parse. Given the set of instructions in the program, it would be desirable to remove all of unused Quil-T calibrations, frames, and waveforms. For feature completeness, it should also be considered to remove any DEFGATE or DEFCIRCUIT that are not referred to.
This is similar to the existing
Program.into_simplified()
, except that the calibrations would not be expanded. It may be most appropriate for this feature to be implemented here first, and then exposed suitably throughpyquil
.