v0.8.0a1
Pre-release
Pre-release
Notable changes from 0.7 to 0.8.0a1
- LLVM 14 is now the default target.
- QIR evaluation has been removed. Simulation of QIR is now available via the
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
, andswap
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
, andtuple_record_output
- Execution environment call,
initialize
, is now built-inEntryPoint
attribute is nowentry_point
requiredQubits
attribute is nownum_required_qubits
requiredResults
attribute is nownum_required_results
__quantum__qis__mz__body
signature has been updated. Its result parameter is now markedwriteonly
and the function call now has theirreversible
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 #213
- Fix warning in anltr example installation by @idavis in #214
- Remove Inkwell by @SamarSha in #216
- Fix Module.bitcode() use-after-free by @SamarSha in #219
- Fix typechecking with mypy>=0.990 by @SamarSha in #218
- Removing evaluator by @idavis in #220
- Changing build to target LLVM 14 by @idavis in #222
- Adding QIS and RT functions by @idavis in #221
- Adding param, module, and function metadata by @idavis in #223
Full Changelog: v0.7.0...v0.8.0a1