🐛 Preserve compiler input parameter identities - #2552
Merged
Merged
Conversation
🤖 *AI text below* 🤖 Store frontend-neutral input IDs and preserve free parameter identity across compiler round trips. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Assisted-by: GPT-6 via Codex
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
simon1hofmann
marked this pull request as ready for review
September 13, 2026 11:45
🤖 *AI text below* 🤖 Remove this PR's changelog entry and reference in line with the release preparation workflow proposed in #2556. Keep the user-facing behavior and limitations documented in the PR description. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Remove this PR's upgrade-guide entry under the release documentation policy proposed in #2556. Preserve migration details in the PR description for the release maintainer to collect. Assisted-by: GPT-6 via Codex
burgholzer
approved these changes
Sep 13, 2026
burgholzer
left a comment
Member
There was a problem hiding this comment.
This generally looks really good to me.
Just one, also rather general comment.
🤖 *AI text below* 🤖 Focus the compatibility guide on binding behavior and format limits. Add development and agent guidance to keep small documentation additions brief and avoid duplicating internal details in user guides. Assisted-by: GPT-6 via Codex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Description
Free parameters imported from Qiskit currently export with new UUIDs, so binding an exported circuit with the original
Parameterobject fails. Preserve those identities through QC/QCO conversion, optimization, and MLIR serialization using an optional, frontend-neutralmqt.input_idattribute on named function inputs.The MQT dialect owns the opaque 128-bit identity and verifies its type, placement, and uniqueness. The existing SDK adapter converts UUIDs at the import/export boundary. No Qiskit synthesis or transpilation is used. Keep the compatibility guide focused on the binding guarantee and add development and agent guidance for concise documentation.
Changelog and upgrade-guide entries are deferred to release preparation under the policy proposed in #2556 and munich-quantum-toolkit/templates#449. Required migrations are described below.
Usage
Parameter vectors retain their root UUID, including identities of unused vector elements. Original vectors can be used for binding after export. When requiring a Core version with this fix, remove name-based rebinding workarounds. Older IR without input IDs keeps fresh scalar identity behavior; UUID-shaped vector group identities can still be restored.
Limitations
Validation
The documentation and guidance update passes repository lint. Existing implementation validation remains unchanged:
Codex assisted with the code, tests, documentation, and description. CI for the latest push is pending.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).