Skip to content

deprecating some of the QASM2 extensions #20

Open
@Roger-luo

Description

@Roger-luo

This is a tracking issue for QASM2 extension deprecations, this won't happen until the squin dialect is complete enough to directly compile QASM2, STIM and being used in combination with qourier.

I know this is breaking however as we planned before open-source, and being pointed by @kaihsin explicitly in QuEraComputing/bloqade#4 we want QASM2 to stay as a compile target as much as possible and use a friendlier IR/language as the main interface for users to program circuits and connect with our low-level stack which would simplified the work by an order of magnitude on compiler development.

Now since QuEraComputing/bloqade#194 is merged, pending on a few rewrites to QASM2 and STIM, we will have QuEraComputing/bloqade#194 as a foundation for other compiler components. Given we would like more expressive hints for a parallel statement such as

%wire_1, %wire_2, %wire_3 squin.parallel(some hints as attributes...) {
    %wire_op_1, %wire_op_2 = apply(%op, %wire_a, %wire_b)
    %wire_op_3 = apply(%op, %wire_c)
              squin.yield %wire_op_1, %wire_op_2, %wire_op_3
}

(in a separate RFC incoming) that is similar to a standard scf statement definition but with strict definition on what's inside (only apply). This is always possible because apply is always quantum and whatever produces %op is always classical so one can always shuffle them without breaking any scheduling assumption by assuming classical operations a 1000x faster than quantum ones.

┆Issue is synchronized with this Jira Task by Unito

Metadata

Metadata

Assignees

No one assigned

    Labels

    breakingbreaking changes or proposed changes that would break existing APIsenhancementNew feature or requestpriority: lowlow priority tasks, backlogs, good-to-havesqasm2qasm2 related issues

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions