munich-quantum-toolkit / munich-quantum-toolkit/core
💡 Define compiler and SDK requirements for QDMI program capabilities
@simon1hofmann is already working on this.
Since Sep 4, 2026.
- Dominant language
- C++
- Stars
- 133
- Forks
- 73
- Avg merge
- 17h 34m
- Merged PRs (30d)
- 261
Description
🤖 AI text below 🤖
Lead: @simon1hofmann. Cross-repository coordination: @burgholzer.
Elevator pitch
Keep compiler target facts and SDK submission guarantees consistent without freezing the QDMI draft or coupling all MLIR work to its release.
Current state
#2219 defines a compiler payload model; #2226 independently adopts QDMI metadata; #2227 connects both on a temporary integration-only base. The separate compiler stack is #2219 → #2162. The compiler-only contract is reviewed for Core 4.0 independently of the QDMI standard proposal. The runtime and adapter proposals remain Core 4.1 work.
Work and decisions
- Separate hardware target facts, serialization/export constraints, classical execution features, and service compilation guarantees.
- Trace producers and consumers in mlir/Compiler, QDMI Client, and both SDK plugins.
- Use Qiskit QuantumCircuit and PennyLane tapes as independent compiler-entry cases. Include an incremental PennyLane path that does not require the full compiler collection.
- Keep #2219/#2162 compiler-only where settled; place QDMI ABI adoption and #2227 behind the parent design gate.
- Audit glossary terminology and provide concrete success/failure examples before adding more public types.
Dependencies and release boundary
Parent: 💡 Design program-format and execution-capability contracts. Related existing classical-control tracker: #2131. Release coordination: #2093.
Acceptance and validation
- A requirement/ownership matrix and counterexamples are contributed to the parent decision.
- Unknown target facts fail at inference; no downstream pass invents unrestricted capability.
- The planned bridge has two explicit prerequisites, not an artificial whole-repository PR chain.
- Accepted semantics have focused compiler and SDK test plans. No implementation is presented as agreed merely because it exists in a draft.
Non-goals
Blocking v4.0 on QDMI 1.4; rewriting unrelated MLIR work; making payload capabilities a mandatory Core 4.1 feature.
Compiler and SDK requirements
- Describe capabilities of a selected target/program-format combination, not the whole syntax of the serialization language.
- Use a bounded OpenQASM/QIR-informed vocabulary; keep vendor-specific serializers and lowering outside the generic feature set.
- Demonstrate both Qiskit circuit/primitive and PennyLane tape/measurement workflows. Preserve supported control flow, lower it where feasible, and reject impossible cases.
- Compare client-side compilation with service-side compilation without imposing one universal native/verbatim boundary.
- Review #2219 → #2162 for Core 4.0 through #2131. Keep #2226 and #2227 on the independent QDMI 1.4/Core 4.1 design path.
- Supply concrete requirements and failures to QDMI #523; the full QDMI capability model remains a release priority, not a blocker.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.