Skip to content

Releases: Qiskit/openqasm3_parser

0.7.0

30 Oct 04:20
e168656
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.6.0...0.7.0

0.6.0

30 Oct 04:18
de35ee5
Compare
Choose a tag to compare

What's Changed

  • Never run parser if there are lexer errors by @jlapeyre in #179
  • Remove some cruft and correct doc strings related to prev commit by @jlapeyre in #180
  • Mostly implement subroutine definition (def) by @jlapeyre in #181
  • Give correct type to qubit register param in def by @jlapeyre in #184
  • Create symbols for gates in standard library by @jlapeyre in #185
  • Use everywhere stdgates.inc rather than stdgates.qasm by @jlapeyre in #186
  • Check types of LHS and RHS in assignment "to identifier" by @jlapeyre in #187
  • Various small changes while preparing to improve type checking by @jlapeyre in #192
  • Implement complex type specification (and declaration) by @jlapeyre in #193
  • Implement imaginary literals by @jlapeyre in #194
  • Sorted the array elements in ast_src.rs by @Raghav-Bell in #189
  • Set version to 0.5.0 by @jlapeyre in #197
  • Add a bit of info on contributing to README.md by @jlapeyre in #198
  • Add more documentation on contributing by @jlapeyre in #199
  • Modify the parser to make importing to Qiskit easier or possible by @jlapeyre in #201
  • Fix bug when initializing bit declaration with measurement by @jlapeyre in #202
  • Check types and do casting in classical declarations by @jlapeyre in #205
  • Record error for statements in global scope where disallowed by @jlapeyre in #206
  • Remove unused run_rustfmt.sh by @jlapeyre in #207
  • Add SymbolTable::dump by @jlapeyre in #209
  • Add tests of the example code in the OQ3 spec by @jlapeyre in #212
  • Fix several bugs in type checking and explicit and implicit casting by @jlapeyre in #213
  • Improve code quality in symbols.rs by @jlapeyre in #215
  • Improvements to SymbolTable::gates function by @jlapeyre in #217
  • Release version 0.6.0 by @jlapeyre in #218

New Contributors

Full Changelog: 0.4.0...0.6.0

0.5.0

30 Oct 04:18
Compare
Choose a tag to compare

What's Changed

  • Never run parser if there are lexer errors by @jlapeyre in #179
  • Remove some cruft and correct doc strings related to prev commit by @jlapeyre in #180
  • Mostly implement subroutine definition (def) by @jlapeyre in #181
  • Give correct type to qubit register param in def by @jlapeyre in #184
  • Create symbols for gates in standard library by @jlapeyre in #185
  • Use everywhere stdgates.inc rather than stdgates.qasm by @jlapeyre in #186
  • Check types of LHS and RHS in assignment "to identifier" by @jlapeyre in #187
  • Various small changes while preparing to improve type checking by @jlapeyre in #192
  • Implement complex type specification (and declaration) by @jlapeyre in #193
  • Implement imaginary literals by @jlapeyre in #194
  • Sorted the array elements in ast_src.rs by @Raghav-Bell in #189

New Contributors

Full Changelog: 0.4.0...0.5.0

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