-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retain all deprecated Bit
properties in QPY roundtrip
#9525
Merged
mergify
merged 9 commits into
Qiskit:main
from
jakelishman:fix-deprecated-bit-qpy-roundtrip
Feb 16, 2023
Merged
Retain all deprecated Bit
properties in QPY roundtrip
#9525
mergify
merged 9 commits into
Qiskit:main
from
jakelishman:fix-deprecated-bit-qpy-roundtrip
Feb 16, 2023
Commits on Feb 3, 2023
-
Retain more deprecated Bit properties in QPY roundtrip
A major bugfix for QPY's handling of loose circuit bits in c0ac5fb (Qiskitgh-9095) caused the deprecated bit properties `index` and `register` to be lost after the QPY roundtrip. As far as Terra's data model is concerned, the two circuits would still compare equal after this loss; the output registers would still be equal to the inputs, and bit equality is not considered directly since it general bit instances are not expected to be equal between circuits. Losing this information caused some downstream issues for the IBM runtime, which was still relying on `Bit.index` working in some cases, despite it issuing a deprecating warning since Terra 0.17 (April 2021). While this can be corrected downstream, QPY can still do a better job of roundtripping the deprecated information while it is still present. The QPY format does not currently store enough information to _completely_ roundtrip this information in cases that some but not all owned bits from a register are present in the circuit. (This partial data is a decent part of the cause of the bugs that Qiskitgh-9095 fixed.) Since this is just in the support of deprecated functionality that Terra's data model does not even require for circuit equality (QPY's goal), it seems not worth it to produce a new QPY binary format version to store this, when the deprecated properties being removed would obsolete the format again immediately.
Configuration menu - View commit details
-
Copy full SHA for 489cd7f - Browse repository at this point
Copy the full SHA 489cd7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 03fd414 - Browse repository at this point
Copy the full SHA 03fd414View commit details
Commits on Feb 7, 2023
-
Correct deprecated bit information in QPY
This allows complete round-tripping of all the deprecated register+index information in the `Bit` instances through QPY, restoring us to the _intended_ behaviour before Qiskitgh-9095. The behaviour in the dumper before that did not allow full reconstruction, because some of the information was lost for bits that were encountered in more than one register. This fixes the dumper to always output all the indexing information for all bits, not to use `-1` whenever a bit _is_ in the circuit but has previously been encountered. The `standalone` field on a register is sufficient to tell whether the bits contained in it should have their "owner" information set; it's not possible (in valid Qiskit code) to have a register that owns only _some_ of its bits. To accomodate this, the register reader now needs to be two-pass.
Configuration menu - View commit details
-
Copy full SHA for b27da19 - Browse repository at this point
Copy the full SHA b27da19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 05e9467 - Browse repository at this point
Copy the full SHA 05e9467View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5d6658f - Browse repository at this point
Copy the full SHA 5d6658fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f8a68a - Browse repository at this point
Copy the full SHA 1f8a68aView commit details
Commits on Feb 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 79acf63 - Browse repository at this point
Copy the full SHA 79acf63View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f7b51b - Browse repository at this point
Copy the full SHA 1f7b51bView commit details
Commits on Feb 16, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7359df7 - Browse repository at this point
Copy the full SHA 7359df7View commit details
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.