Releases: CQCL/guppylang
Releases · CQCL/guppylang
v0.13.1
v0.13.0
0.13.0 (2024-11-12)
⚠ BREAKING CHANGES
prelude
module renamed tostd
Features
- 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
Bug Fixes
Documentation
Miscellaneous Chores
Code Refactoring
v0.12.2
v0.12.1
v0.12.0
0.12.0 (2024-09-18)
⚠ BREAKING CHANGES
- 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
Features
- 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)
Bug Fixes
v0.11.0
0.11.0 (2024-09-11)
⚠ BREAKING CHANGES
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.
Features
- Add implicit importing of modules (#461) (1b73032)
- Use angle type in quantum operations (#467) (ce0f746)
Bug Fixes
v0.10.0
0.10.0 (2024-09-11)
⚠ BREAKING CHANGES
- 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.
Features
- 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)
Bug Fixes
- Fix and update demo notebook (#376) (23b2a15)
- Fix linearity checking bug (#441) (0b8ea21)
- Fix struct definitions in notebooks (#374) (b009465)