rigetti / rigetti/libquil-sys

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

Open
#3 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1
Forks
0
Avg merge
18m
Merged PRs (30d)
1

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:

  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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the compile_program and get_version_info entry points in qcs-sdk-rust, then read blocking issues #8 and #12 along with related issues #7, #9, and #10. Determine whether the remaining RPCQ calls can be replaced, identify any missing prerequisites, and document follow-up issues for unresolved gaps.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, quantum-computing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.