Releases: Qiskit/openqasm3_parser
0.4.0
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
What's Changed
- Implement
reset
end to end by @jlapeyre in #134 - Record parse error on encountering string literal by @jlapeyre in #123
- Implement
return
by @jlapeyre in #135 - Implement for loop by @jlapeyre in #138
- Implement pragma end to end by @jlapeyre in #141
- Implement annotated statements by @jlapeyre in #142
- Implement support for concatenation operator,
++
by @jlapeyre in #150 - Implement casting to scalar end to end by @jlapeyre in #154
- Parse array types in the AST by @jlapeyre in #156
- Implement alias:
let
statement by @jlapeyre in #158 - Implement timing (ie duration) literals by @jlapeyre in #159
- Support duration type in classical declaration statements by @jlapeyre in #160
- Implement
delay
statement (instruction) by @jlapeyre in #162 - Implement input/output declarations by @jlapeyre in #165
- Make improvements in recording syntax errors when parsing types by @jlapeyre in #173
- Record better error message on declaration of hardware qubit by @jlapeyre in #175
Efficiency, paying down tech debt, etc.
- Return
&[T]
rather thanVec<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
What's Changed
-
Treat unary minus correctly in expressions from source through ASG. This includes literals.
-
Concrete Syntax Tree (
AstNode
): Simplify organization of structures. Remove obsolete code and tags. Propagate this change to higher layers.
Most importantly, the unnecessary nodeItem
was removed. At the same timeExprStmt
is no longer treated specially. -
Correctly treat modified
gphase
calls from source through ASG -
Implement
switch
-case
from source through ASG -
Implement local scope for
if
andwhile
when constructing ASG by @jlapeyre in #105 -
Don't panic when a block start
{
is expected but not found.
Full Changelog: 0.1.0...0.2.0
0.1.0
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
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.-
Redesign modified gate calls. In the AST modifiers are represented as a
Vec
of modifiers in a field in theGateCall
struct.
A similar structure is used inoq3_parser
. -
Fix parsing gate call with HW qubit as first arg. For example
h $0
now parses correctly
Fixes #84 -
Require parens around conditions in
if
andwhile
statements. Parens around these conditions are demanded by the spec.
-
Full Changelog: 0.0.6...0.0.7
0.0.6 Gate Modifiers
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
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
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