Skip to content

Releases: Qiskit/openqasm3_parser

0.4.0

01 Mar 23:56
b5702e0
Compare
Choose a tag to compare

What's Changed

Statements like qubit $1; are supported.

This commit also undoes the previous commit (last commit before tagging 0.3.0) that
improved the error handling for attemted declaration of hardware qubits.

API CHANGE: new variant in asg::Stmt
The variant is Stmt::DeclareHardwareQubit(DeclareHardwareQubit)

The struct DeclareHardwareQubit has method name to retrieve an instance of
asg::HardwareQubit. Note that asg::HardwareQubit is not new in this
commit.

Crates

https://crates.io/crates/oq3_semantics

Changelog

Full Changelog: 0.3.0...0.4.0

0.3.0

01 Mar 18:20
fba5539
Compare
Choose a tag to compare

What's Changed

Efficiency, paying down tech debt, etc.

  • Return &[T] rather than Vec<T> and similar in getters by @jlapeyre in #75
  • Remove two obsolete, never-used methods in asg.rs by @jlapeyre in #113
  • Remove unused method implementing From trait by @jlapeyre in #114
  • Don't assume all statements in block are converted to Some in ASG by @jlapeyre in #116
  • Check fix clippy lint in test by @jlapeyre in #117
  • Fairly large refactoring of parsing assignment statements. by @jlapeyre in #151
  • Remove some cruft from the ungrammar and related files by @jlapeyre in #152
  • Put Box in enums rather than structs in variants in asg.rs by @jlapeyre in #168
  • Improve implicit casting. Fix various kinds of tech debt. by @jlapeyre in #171
  • Remove objects left over from lexing timing numbers by @jlapeyre in #172
  • Remove obsolete function for parsing measure expression by @jlapeyre in #174

Full Changelog: 0.2.0...0.3.0

0.2.0

07 Feb 01:48
1a701a3
Compare
Choose a tag to compare

What's Changed

  • Treat unary minus correctly in expressions from source through ASG. This includes literals.

    • Interpret PrefixExpr of literal ints and floats into ASG by @jlapeyre in #92
    • Support asg::Expr::UnaryExpr(UnaryExpr) for UnaryOp::Minus by @jlapeyre in #94
  • Concrete Syntax Tree (AstNode): Simplify organization of structures. Remove obsolete code and tags. Propagate this change to higher layers.
    Most importantly, the unnecessary node Item was removed. At the same time ExprStmt is no longer treated specially.

    • Remove cruft from ungram, SyntaxKind, etc. by @jlapeyre in #96
    • Remove Item from CST, using Stmt at top level instead by @jlapeyre in #97
    • Simplify the organization of calling from_stmt by @jlapeyre in #102
  • Remove allow: filter_map_identity by @jlapeyre in #98

  • Correctly treat modified gphase calls from source through ASG

    • Parse modified gphase to asg::ModfiedGPhaseCall by @jlapeyre in #99
  • Implement switch-case from source through ASG

    • Begin implementation of switch-case statement by @jlapeyre in #100
    • Support switch-case from source through ASG by @jlapeyre in #108
  • Implement local scope for if and while when constructing ASG by @jlapeyre in #105

  • Simplify constructing asg::BlockExpr by @jlapeyre in #106

  • Don't panic when a block start { is expected but not found.

    • Record syntax error instead of panicing when no block found by @jlapeyre in #109

Full Changelog: 0.1.0...0.2.0

0.1.0

03 Feb 00:01
831fc1f
Compare
Choose a tag to compare

This release only introduces a non-zero minor version number so that version number spec can be compatible with patch releases.
No other significant changes from 0.0.7

What's Changed

Full Changelog: 0.0.7...0.1.0

0.0.7

02 Feb 23:58
3e9a05b
Compare
Choose a tag to compare

This PR changes implementation and API for gate call modifiers introduced in 0.0.6

What's Changed

  • Redesign gate call modifiers, and other things by @jlapeyre in #86
    This changes the API for accessing gate call modifiers.

    1. Redesign modified gate calls. In the AST modifiers are represented as a Vec of modifiers in a field in the GateCall struct.
      A similar structure is used in oq3_parser.

    2. Fix parsing gate call with HW qubit as first arg. For example h $0 now parses correctly
      Fixes #84

    3. Require parens around conditions in if and while statements. Parens around these conditions are demanded by the spec.

  • Bump version from 0.0.6 to 0.0.7 by @jlapeyre in #87

Full Changelog: 0.0.6...0.0.7

0.0.6 Gate Modifiers

02 Feb 23:55
Compare
Choose a tag to compare

What's Changed

Changes from 0.0.5

  • Stmt::GateCall is replaced by Expr::GateCallExpr wrapped in ExprStmt
  • Support for gate modifiers

Full Changelog: 0.0.5...0.0.6

Automated release to crates.io

02 Feb 23:40
Compare
Choose a tag to compare

This release differs only in the README from 0.0.1. and in that releases are automated as a GH action upon pushing.
Releases 0.0.2, 0.0.3, and 0.0.4 were attempts to get automated releases working correctly. They do not differ otherwise from this release 0.0.5.

Full Changelog: 0.0.4...0.0.5

Initial Release

02 Feb 23:19
d894bf8
Compare
Choose a tag to compare

No changes are listed here because this is the first release to crates.io and is a very early version.

  • A huge number of commits over the past six or eight months are not included. The repo accidentally had many gigabytes of junk commited, that of course remains in the .git directory even if deleted from the main branch. So I started over. The first commit in this repo is dated 15 December 2023.
  • Github issues and PRs are only present from 8 January 2024 because the repo was migrated from another host on that date.
  • All five crates were published manually for this release.

Full Changelog: https://github.com/Qiskit/openqasm3_parser/commits/0.0.1