> - LLVM 14 is now the default target.
> - QIR evaluation has been removed. Simulation of QIR is now available via the [`qir-runner`](https://github.com/qir-alliance/qir-runner) sparse simulator.
> - `BasicQisBuilder` is now written in Python.
> - All QIS instructions are available in the `pyqir.qis` submodule
> - `barrier`, `ccx`, `cx`, `cz`, `h`, `if_result`, `mz`, `reset`, `rx`, `ry`, `rz`, `s`, `s_adj`, `swap`, `t`, `t_adj`, `x`, `y`, `z`
> - Of these,`barrier`, `ccx`, and `swap` are new.
> - PyQIR can generate QIR compatible with the QIR base profile preliminary spec
> - Module flags can now be generated
> - Attributes on functions can now be added and queried.
> - RT instructions are available in the `pyqir.rt` submodule
> - Output recording functions are now built-in: `array_record_output`, `result_record_output`, and `tuple_record_output`
> - Execution environment call, `initialize`, is now built-in
> - `EntryPoint` attribute is now `entry_point`
> - `requiredQubits` attribute is now `num_required_qubits`
> - `requiredResults` attribute is now `num_required_results`
> - `__quantum__qis__mz__body` signature has been updated. Its result parameter is now marked `writeonly` and the function call now has the `irreversible` attribute:
> before:
> `declare void __quantum__qis__mz__body(%Qubit*, %Result*) 1`
> after:
> `declare void __quantum__qis__mz__body(%Qubit*, %Result* writeonly) 1`
> `attributes 1 = { "irreversible" }`
Technical Changes
- Inkwell has been removed as a dependency. Qirlib now uses LLVM-SYS and a custom wrapper around the LLVM C++ APIs.
What's Changed
* Bump version to 0.8.0a1 by samarsha in https://github.com/qir-alliance/pyqir/pull/213
* Fix warning in anltr example installation by idavis in https://github.com/qir-alliance/pyqir/pull/214
* Remove Inkwell by samarsha in https://github.com/qir-alliance/pyqir/pull/216
* Fix Module.bitcode() use-after-free by samarsha in https://github.com/qir-alliance/pyqir/pull/219
* Fix typechecking with mypy>=0.990 by samarsha in https://github.com/qir-alliance/pyqir/pull/218
* Removing evaluator by idavis in https://github.com/qir-alliance/pyqir/pull/220
* Changing build to target LLVM 14 by idavis in https://github.com/qir-alliance/pyqir/pull/222
* Adding QIS and RT functions by idavis in https://github.com/qir-alliance/pyqir/pull/221
* Adding param, module, and function metadata by idavis in https://github.com/qir-alliance/pyqir/pull/223
**Full Changelog**: https://github.com/qir-alliance/pyqir/compare/v0.7.0...v0.8.0a1