0.13.1 (2024-11-15)
- Generic function definitions (#618) (7519b90), closes #522
- mem_swap function for swapping two inout values (#653) (89e10a5)
0.13.0 (2024-11-12)
prelude
module renamed tostd
- add
qubit
discard/measure methods (#580) (242fa44) - Add
SizedIter
wrapper type (#611) (2e9da6b) - conventional results post processing (#593) (db96224)
- Improve compiler diagnostics (#547) (90d465d), closes #551 #553 #586 #588 #587 #590 #600 #601 #606
- restrict result tag sizes to 256 bytes (#596) (4e8e00f), closes #595
0.12.2 (2024-10-21)
- Allow py expressions in type arguments (#515) (b4fae3f)
- remove python python 3 upper bound (support python 3.13) (#578) (73bb94a), closes #558
- Enable len for linear arrays (#576) (117b68e), closes #570
- Fix array lowering bugs (#575) (83b9f31)
- Fix printing of generic function parameters (#516) (5c18ef6), closes #482
0.12.1 (2024-09-23)
- Add Definition.compile producing Hugr Package (#504) (d8c8bec)
- Add missing tket2 quantum gates, generalise RotationCompile (#510) (18d4b4c)
0.12.0 (2024-09-18)
- Pytket circuits loaded via a
py
expression no longer take ownership of the passed qubits. - Lists and function tensors are no longer available by default.
guppylang.enable_experimental_features()
must be called before compilation to enable them. - The
GuppyModule
argument is now optional for all decorators and no longer the first positional argument. Removed the explicit module objectsbuiltins
,quantum
, andangle
. quantum_functional
is now its own Guppy module and no longer implicitly comes withquantum
.- Linear function arguments are now borrowed by default; removed the now redundant
@inout
annotation
- Add functions to quantum module and make quantum_functional independent (#494) (0b0b1af)
- Hide lists and function tensors behind experimental flag (#501) (c867f48)
- Make linear types @inout by default; add @owned annotation (#486) (e900c96)
- Only lower definitions to Hugr if they are used (#496) (cc2c8a4)
- Support implicit modules for all decorators and turn builtins into implicit module (#476) (cc8a424)
- Use inout for pytket circuits (#500) (a980ec2)
angle
is now a struct and emitted as a rotation (#485) (992b138)- Evade false positives for inout variable usage (#493) (6fdb5d6)
- Fix redefinition of structs (#499) (0b156e9)
- Initialise _checked in GuppyModule (#491) (3dd5dd3), closes #489
- use correct array ops (#503) (720d8b8)
0.11.0 (2024-09-11)
guppy.take_module
renamed toguppy.get_module
and no longer removes the module from the state.- Quantum operations
rx
,rz
,phased_x
, andzz_max
use theangle
type instead of floats.
- Add implicit importing of modules (#461) (1b73032)
- Use angle type in quantum operations (#467) (ce0f746)
- hseries ops use floats instead of angles (#483) (7ed3853), closes #477
- Keep track of definitions that are implicitly imported (#481) (a89f225), closes #480
0.10.0 (2024-09-11)
- Bumped the
hugr
dependency to0.8.0
GuppyModule.load
no longer loads the content of modules but instead just brings the name of the module into scope. UseGuppyModule.load_all
to get the old behaviour.- Removed
guppylang.hugr_builder.hugr.Hugr
, compiling a module returns ahugr.Package
instead.
- Add
__version__
field to guppylang (#473) (b996c62) - Add angle type (#449) (12e41e0)
- Add array literals (#446) (a255c02)
- Add equality test for booleans (#394) (dd702ce), closes #363
- Add pi constant (#451) (9d35a78)
- Add qualified imports and make them the default (#443) (553ec51)
- Allow calling of methods (#440) (5a59da3)
- Allow imports of function definitions and aliased imports (#432) (e23b666)
- Array indexing (#415) (2199b48), closes #421 #422 #447
- Inout arguments (#311) (060649b), closes #315 #316 #349 #344 #321 #331 #350 #340 #351
- range() with single-argument (#452) (d05f369)
- Skip checking of redefined functions (#457) (7f9ad32)
- Support
nat
/int
↔bool
cast operations (#459) (3b778c3) - Use
hugr-cli
for validation (#455) (1d0667b) - Use cell name instead of file for notebook errors (#382) (d542601)
- Use the hugr builder (536abf9)
- Fix and update demo notebook (#376) (23b2a15)
- Fix linearity checking bug (#441) (0b8ea21)
- Fix struct definitions in notebooks (#374) (b009465)
0.9.0 (2024-08-12)
0.8.1 (2024-08-08)
0.8.0 (2024-07-30)
0.7.0 (2024-07-25)
qubit
s are now reset on allocation
qubit
s are now reset on allocation, anddirty_qubit
added (#325) (4a9e205)- Allow access to struct fields and mutation of linear ones (#295) (6698b75), closes #293
- Allow redefinition of names in guppy modules (#326) (314409c), closes #307
0.6.2 (2024-07-10)
- update to hugr-python 0.4 (af770c3)
0.6.1 (2024-07-09)
- update to
hugr-py 0.3
(3da3936)
0.6.0 (2024-07-02)
- Add array type (#258) (041c621)
- Add nat type (#254) (a461a9d)
- Add result function (#271) (792fb87), closes #270
- Allow constant nats as type args (#255) (d706735)
- Generate constructor methods for structs (#262) (f68d0af), closes #261
- Return already-compiled hugrs from
GuppyModule.compile
(#247) (9d01eae) - Turn int and float into core types (#225) (99217dc)
- Add missing test file (#266) (75231fe)
- Loading custom polymorphic function defs as values (#260) (d15b2f5), closes #259
0.5.2 (2024-06-13)
0.5.1 (2024-06-12)
0.5.0 (2024-06-10)
0.4.0 (2024-05-30)
- Export py function (6dca95d)
0.3.0 (2024-05-22)
- Add a unified definition system (#179) (ae71932)
- Add struct types (#207) (f7adb85)
- Allow calling a tensor of functions (#196) (af4fb07)
- Upgrade Hugr and start using the shared Pydantic model (#201) (bd7e67a)
- Consider type when deciding whether to pack up returns (#212) (4f24a07)
- Mypy tket2 error (#220) (7ad3908)
- Only use path when determining equality of implicit modules (#216) (6f47d4b)
- Serialisation of float values (#219) (937260a), closes #218
- Add compiler API docs (#194) (c3dd9bd)
- Add pypi and python version badges to the README (#192) (7fecc45)
- Make
qubit
type lower case (#165)
- Local implicit modules for
@guppy
(#105) (f52a5de) - New type representation with parameters (#174) (73e29f2)
- Make ZZMax a dyadic operation (#168) (152485f), closes #154
- Stop exiting interpreter on error (#140) (728e449)
- Use correct TK2 gate names (#190) (df92642)
- add reference to runner to readme (#129) (45c2bf0)
- Add short description and simplify readme for pypi (#136) (667bba3)
First release of Guppy! 🐟
This is an alpha release that implements basic language features and compilation to hugr v0.1.