Target capability constraints
Design document · English reading edition
RFCs record designs and changes. A proposal appearing here does not mean its feature is ready to use. Explore current language support
Status recorded in the original: Runtime experimental
Bound original source · SHA-256aaca668a5c523181db2eee41e83e8df25a45ad78e0ae15539ca58437f4e4753f
Reading edition reviewed: 2026-10-02
Purpose and scope
Proposes rejecting compilation when a target does not meet a required gate set, connectivity or bounded reference error budget. Advisory warnings and mandatory target requirements become distinct.
Core design rules
@target_capabilitiesnames the profile, required gates, connectivity and error bound.- Requirements are checked against explicit profile data; missing information is not treated as success.
- The check produces evidence and diagnostics that can be carried consistently across tools.
Example from the original
This example illustrates the design recorded in the original. It is not by itself a claim of executable or stable support; check required options and the current version.
module native_bell;
@target("superconducting");
@target_capabilities(profile: "superconducting", gate_set: ["H", "CNOT"], connectivity: "line", max_error: 0.08);
fn main() {
let q: QReg<2> = qreg[2];
H(q[0]);
CNOT(q[0], q[1]);
return q;
}Limits and interpretation
- A reference profile error budget is not physical-device calibration or a hardware guarantee.
- A target description alone does not authorize execution with that provider.
Status and implementation boundary
The source records the runtime-experimental scope negotiated by experimental.targetCapabilityConstraints=true. Current profile and execution support require separate verification.
| Review topic | Information to check |
|---|---|
| Source revision | SHA-256 digest bound to this reading edition |
| Availability | Current capability record and tool options |
| Evidence boundary | Model, size and interpretation limits above |