Releases: Qiskit/openqasm3_parser
0.7.0
What's Changed
- Fix broken pipe in run_tests_less.sh. by @dlyongemallo in #219
- Reduce prefix expression with unary minus for imaginary numbers by @atomgardner in #220
- Try to compile and pass lint with both 1.70 and 1.75 by @jlapeyre in #223
- Factor lowering a list of qubits into a helper function by @atomgardner in #221
- [NEW] Adding from_designator + notes for usage by @abhamra in #224
- Remove dependence on crate ra_ap_stdx by @jlapeyre in #230
- Improve documentation by @jlapeyre in #233
- Bump version to 0.7.0 by @jlapeyre in #234
New Contributors
- @dlyongemallo made their first contribution in #219
- @atomgardner made their first contribution in #220
- @abhamra made their first contribution in #224
Full Changelog: 0.6.0...0.7.0
0.6.0
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
- @Raghav-Bell made their first contribution in #189
Full Changelog: 0.4.0...0.6.0
0.5.0
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
- @Raghav-Bell made their first contribution in #189
Full Changelog: 0.4.0...0.5.0
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