Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
MarquessV opened this issue Nov 7, 2022 · 0 comments

Comments

@MarquessV
Copy link
Contributor

MarquessV commented Nov 7, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant