♻️ Own neutral-atom stack - #1111
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Quite a bit of the code mentioned here has been backported to v3.x, so it can also be moved as part of this PR. |
Yes, I just didn't do that just yet because I didn't want the Python CI to be red. The upcoming PR in MQT Core will be fully independent of all of this. Once 3.9.0 is released and MQT QCEC is updated accordingly, I'll get this PR ready. 😌 |
|
@burgholzer and @ystade, I have a quick question about whether (or how) the neutral-atom operations in |
|
As soon as NALAC causes any issues, feel free to remove it. I just kept it as a legacy but it is Kinds deprecated. Consolidating anything here with respect to NALAC is a warte of time. |
I think we do not need to remove it, necessarily. But what I take from your comment is that it is entirely fine to keep everything for NALAC self contained in its own directory and rather focus on a clean integration for the rest. |
9886288 to
320b1ef
Compare
d0dc12a to
2117293
Compare
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
2117293 to
9566981
Compare
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
|
Important Approval pendingCodeRabbit has no unresolved comments, but it has not reviewed the latest commit. Use the checkbox below to review the latest commit. CodeRabbit will approve the changes if it finds no blocking issues.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
|
@burgholzer, I iterated on this quite a bit more today and hopefully brought it to a decent state now. I gave Codex quite a few guardrails to streamline things and context to align the implementation with existing ones (in particular, QMDI-on-IQM). I'm sure there's some more room for improvement, but I think your additional human context may be required for that. CC @ystade |
Signed-off-by: Daniel Haag <121057143+denialhaag@users.noreply.github.com>
🤖 AI text below 🤖
Description
This PR transfers the neutral-atom stack from MQT Core to QMAP. QMAP now owns the physical neutral-atom computation IR, the circuit operations used by hybrid mapping, the conversion and mapping code, the QDMI device and client integration, Python bindings, packaged device data, documentation, and tests. NALAC remains self-contained under
na/nalac.The IR now uses consistent, layer-specific terminology: physical instructions are
NAComputation...Operation, while circuit-level operations useNAStandardOperation,AodOperation, andNeutralAtomOpType. This keeps the port aligned with the former Core counterparts while making each abstraction’s purpose clear.QMAP manages QDMI 1.3.3 directly and uses its current FoMaC API. The QDMI device layer retains Core’s shared
loadDeviceConfigurationhelper but no longer depends on Core’s spdlog target. The packaged device is added to QDMI discovery exactly once without replacing other compatible devices, following the integration pattern from QDMI-on-IQM#195.Wheel packaging ships the provider library and configuration together. Added regressions cover device discovery, stderr diagnostics, the complete device JSON round trip, and rejection of zone-model devices by the compiler and Qiskit adapters.
AI notice
This PR and its contents were created with the assistance of Opus 5 via Claude Code and GPT-5.6 Sol via Codex.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).