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
defby @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::gatesfunction 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
defby @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
resetend to end by @jlapeyre in #134 - Record parse error on encountering string literal by @jlapeyre in #123
- Implement
returnby @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:
letstatement 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
delaystatement (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
Somein 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
Boxin 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 nodeItemwas removed. At the same timeExprStmtis no longer treated specially. -
Correctly treat modified
gphasecalls from source through ASG -
Implement
switch-casefrom source through ASG -
Implement local scope for
ifandwhilewhen 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
Vecof modifiers in a field in theGateCallstruct.
A similar structure is used inoq3_parser. -
Fix parsing gate call with HW qubit as first arg. For example
h $0now parses correctly
Fixes #84 -
Require parens around conditions in
ifandwhilestatements. 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