Skip to content
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

Fix OpenQASM 2 gate definitions following a shadowed built-in gate (backport #13340) #13352

Merged
merged 1 commit into from
Oct 22, 2024

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Oct 22, 2024

Summary

Previously, when given an OpenQASM 2 program such as

OPENQASM 2.0;
gate builtin a { U(0, 0, 0) a; }
gate not_builtin a { U(pi, pi, pi) a; }
qreg q[1];

not_builtin q[0];

and a set of custom_instructions including a builtin=True definition for builtin (but not for not_builtin), the Rust and Python sides would get themselves out-of-sync and output a gate that matched a prior definition, rather than not_builtin.

This was because the Rust side was still issuing DefineGate bytecode instructions, even for gates whose OpenQASM 2 definitions should have been ignored, so Python-space thought there were more gates than Rust-space thought there were.

Details and comments

Fix #13339.


This is an automatic backport of pull request #13340 done by [Mergify](https://mergify.com).

#13340)

Previously, when given an OpenQASM 2 program such as

    OPENQASM 2.0;
    gate builtin a { U(0, 0, 0) a; }
    gate not_builtin a { U(pi, pi, pi) a; }
    qreg q[1];

    not_builtin q[0];

and a set of `custom_instructions` including a `builtin=True` definition
for `builtin` (but not for `not_builtin`), the Rust and Python sides
would get themselves out-of-sync and output a gate that matched a prior
definition, rather than `not_builtin`.

This was because the Rust side was still issuing `DefineGate` bytecode
instructions, even for gates whose OpenQASM 2 definitions should have
been ignored, so Python-space thought there were more gates than
Rust-space thought there were.

(cherry picked from commit 9a1d8d3)
@mergify mergify bot requested a review from a team as a code owner October 22, 2024 13:43
@qiskit-bot
Copy link
Collaborator

Thank you for opening a new pull request.

Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient.

While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone.

One or more of the following people are relevant to this code:

  • @Qiskit/terra-core

@github-actions github-actions bot added Changelog: Bugfix Include in the "Fixed" section of the changelog mod: qasm2 Relating to OpenQASM 2 import or export labels Oct 22, 2024
@github-actions github-actions bot added this to the 1.2.5 milestone Oct 22, 2024
@ElePT ElePT enabled auto-merge October 22, 2024 13:45
@coveralls
Copy link

Pull Request Test Coverage Report for Build 11461529274

Details

  • 6 of 6 (100.0%) changed or added relevant lines in 1 file are covered.
  • 8 unchanged lines in 1 file lost coverage.
  • Overall coverage remained the same at 89.747%

Files with Coverage Reduction New Missed Lines %
crates/qasm2/src/lex.rs 8 91.73%
Totals Coverage Status
Change from base Build 11334519182: 0.0%
Covered Lines: 66886
Relevant Lines: 74527

💛 - Coveralls

@ElePT ElePT added this pull request to the merge queue Oct 22, 2024
Merged via the queue into stable/1.2 with commit fd18b99 Oct 22, 2024
18 checks passed
@jakelishman jakelishman modified the milestones: 1.2.5, 1.3.0 Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the "Fixed" section of the changelog mod: qasm2 Relating to OpenQASM 2 import or export
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants