Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hugr.serialize shouldn't mutate #85

Closed
aborgna-q opened this issue Jan 10, 2024 · 0 comments · Fixed by #366
Closed

hugr.serialize shouldn't mutate #85

aborgna-q opened this issue Jan 10, 2024 · 0 comments · Fixed by #366
Assignees
Labels
enhancement New feature or request

Comments

@aborgna-q
Copy link
Collaborator

aborgna-q commented Jan 10, 2024

Currently, serialize removes dummy nodes and adds state edges before doing the serialisation.

self.remove_dummy_nodes()

This is unexpected behaviour. It should probably copy the Hugr before doing any mutation.

@aborgna-q aborgna-q added enhancement New feature or request P-low labels Jan 10, 2024
@aborgna-q aborgna-q self-assigned this Aug 14, 2024
github-merge-queue bot pushed a commit that referenced this issue Aug 21, 2024
This is an in-progress transplant of guppy from using an ad-hoc `Hugr`
definition into the builder from the `hugr` library.

The main mismatch between the old and new builders is that guppy used to
lazily add typed ports to the graph nodes as it needed. Since the new
builder requires operations to define their signature, we end up having
to edit the code everywhere from `guppylang.compiler` to the
`guppylang.prelude` definitions.

My first goal is to get this working, and then I will try and split some
changes from this PR (although most of it will have to be merged
monolithically).
 
Current test status:
- 390 $\color{green}\text{passed}$
- 14 $\color{yellow}\text{skipped}$
- 0 $\color{red}\text{failed}$

These issues currently breake some tests. I'll fix them before merging
the PR
- CQCL/hugr#1319
  ~~Required to store the module names in the hugr metadata~~
- CQCL/hugr#1424
  ~~Required for pytket and llvm integration~~
- ~~Release hugr and tket2 with the latest changes~~

Closes #257. Closes #85

BREAKING CHANGE: Removed `guppylang.hugr_builder.hugr.Hugr`, compiling a
module returns a `hugr.Hugr` instead.

---------

Co-authored-by: Mark Koch <48097969+mark-koch@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant