Skip to content

Discovery: can we pull this into qcs-sdk-rust and replace all calls to RPCQ? #3

@MarquessV

Description

@MarquessV

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:

  1. 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
}
  1. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions