-
Notifications
You must be signed in to change notification settings - Fork 0
Description
As is, can we pull this in to qcs-sdk-rust to replace the remaining RPCQ calls?
If yes, we can start planning to integrate it into qcs-sdk-rust properly
If not, whats missing? Create follow-up issues to track filling the gaps.
Discovery
The following issues were created as part of this discovery:
#7, #8, #9, #10, #12
#12 is a blocker from taking this any further. Having #8 would also be nice to understand as part of this discovery.
Assuming we can resolve the above issues, my confidence is high that this would replace RPCQ in qcs-sdk-rust. There are two functions that make RPCQ calls:
compile_program:
This is where we would need #8 and #12, but the implementation would look something like:
pub(crate) fn compile_program(
quil: &str,
isa: TargetDevice,
_options: CompilerOpts,
) -> Result<quil_rs::Program, Error> {
let quilc_program = parse_program(quil.to_string());
let chip = get_chip_spec_from_isa_descriptor(&isa); # needs issue #8
let compiled_program = quilc_compile_program(&quilc_program, &chip);
compiled_program.into() # needs #12
}get_version_info
This function becomes unnecessary, as there is no need to check the version of quilc for compatibility if it is an embedded dependency. We can deprecate this and return a mock value if needed.