-
Notifications
You must be signed in to change notification settings - Fork 13
feat: PersistentHugr Walker API #2168
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
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2168 +/- ##
==========================================
+ Coverage 82.00% 82.15% +0.15%
==========================================
Files 237 239 +2
Lines 42778 42989 +211
Branches 38690 38901 +211
==========================================
+ Hits 35079 35319 +240
+ Misses 5706 5679 -27
+ Partials 1993 1991 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
a7729f3 to
cb812be
Compare
fd0c21f to
3b27b4d
Compare
2206368 to
b81ed94
Compare
|
EDIT: resolved!
|
782e1ba to
ca5d841
Compare
ca5d841 to
7874237
Compare
7874237 to
b1685fd
Compare
b1685fd to
654c4fc
Compare
654c4fc to
b4bae59
Compare
acl-cqc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @lmondada, this is great! Not what you'd call easy stuff, but great job in making it comprehensible :-). I have about 60 small suggestions, there are only two big enough to justify not immediately approving:
- Have I understand PinnedWire always has at least one endpoint pinned? I wasn't clear from the doc so I had to guess a bit, if that's not right then this may need some more thought
- That
equivalent_descendant_portsmethod....what is all the direction-changing doing...
08e3eb0 to
7cd85d7
Compare
acl-cqc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great stuff Luca, looks good to me, thanks! :). I think you can take it from here, indeed I think some of my comments actually pertain to code from other approved/merged PRs rather than this one...(but the opportunity to remove IteratorNonEmpty might be best taken before we forget 😉)
## 🤖 New release * `hugr-model`: 0.20.0 -> 0.20.1 * `hugr-core`: 0.20.0 -> 0.20.1 (✓ API compatible changes) * `hugr-llvm`: 0.20.0 -> 0.20.1 (✓ API compatible changes) * `hugr-passes`: 0.20.0 -> 0.20.1 (✓ API compatible changes) * `hugr`: 0.20.0 -> 0.20.1 (✓ API compatible changes) * `hugr-cli`: 0.20.0 -> 0.20.1 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> ## `hugr-model` <blockquote> ## [0.20.0](hugr-model-v0.19.0...hugr-model-v0.20.0) - 2025-05-14 ### New Features - [**breaking**] Mark all Error enums as non_exhaustive ([#2056](#2056)) - [**breaking**] Bump MSRV to 1.85 ([#2136](#2136)) - Export and import entrypoints via metadata in `hugr-model`. ([#2172](#2172)) - Define text-model envelope formats ([#2188](#2188)) - Import CFG regions without adding an entry block. ([#2200](#2200)) - Symbol applications can leave out prefixes of wildcards. ([#2201](#2201)) </blockquote> ## `hugr-core` <blockquote> ## [0.20.1](hugr-core-v0.20.0...hugr-core-v0.20.1) - 2025-06-03 ### Bug Fixes - check well-definedness of DFG wires in validate ([#2221](#2221)) - Check for order edges in SiblingSubgraph::from_node ([#2223](#2223)) - Make SumType::Unit(N) equal to SumType::General([(); N]) ([#2250](#2250)) - canonicalize_nodes sometimes mangles the entrypoint ([#2263](#2263)) ### New Features - Add PersistentHugr ([#2080](#2080)) - Add `Type::used_extensions` ([#2224](#2224)) - Add boundary edge traversal in SimpleReplacement ([#2231](#2231)) - Add signature map function for DFGs ([#2239](#2239)) - PersistentHugr implements HugrView ([#2202](#2202)) - PersistentHugr Walker API ([#2168](#2168)) - Hugr::store_with_exts and auto-include in serde_as ([#2280](#2280)) ### Refactor - tidies/readability improvements to PersistentHugr ([#2251](#2251)) - Deprecate ValidationError::ExtensionError ([#2281](#2281)) ### Testing - Ignore miri errors in tests involving `assert_snapshot` ([#2261](#2261)) </blockquote> ## `hugr-llvm` <blockquote> ## [0.20.1](hugr-llvm-v0.20.0...hugr-llvm-v0.20.1) - 2025-06-03 ### Bug Fixes - Make SumType::Unit(N) equal to SumType::General([(); N]) ([#2250](#2250)) ### Testing - Add exec tests for widen op ([#2043](#2043)) </blockquote> ## `hugr-passes` <blockquote> ## [0.20.1](hugr-passes-v0.20.0...hugr-passes-v0.20.1) - 2025-06-03 ### Bug Fixes - Dataflow analysis produces unsound results on Hugrs with entrypoint ([#2255](#2255)) ### New Features - LocalizeEdges pass ([#2237](#2237)) </blockquote> ## `hugr` <blockquote> ## [0.20.1](hugr-v0.20.0...hugr-v0.20.1) - 2025-06-03 ### Bug Fixes - Dataflow analysis produces unsound results on Hugrs with entrypoint ([#2255](#2255)) - check well-definedness of DFG wires in validate ([#2221](#2221)) - Check for order edges in SiblingSubgraph::from_node ([#2223](#2223)) - Make SumType::Unit(N) equal to SumType::General([(); N]) ([#2250](#2250)) - canonicalize_nodes sometimes mangles the entrypoint ([#2263](#2263)) ### New Features - LocalizeEdges pass ([#2237](#2237)) - Add PersistentHugr ([#2080](#2080)) - Add `Type::used_extensions` ([#2224](#2224)) - Add boundary edge traversal in SimpleReplacement ([#2231](#2231)) - Add signature map function for DFGs ([#2239](#2239)) - PersistentHugr implements HugrView ([#2202](#2202)) - PersistentHugr Walker API ([#2168](#2168)) - Hugr::store_with_exts and auto-include in serde_as ([#2280](#2280)) ### Refactor - tidies/readability improvements to PersistentHugr ([#2251](#2251)) - Deprecate ValidationError::ExtensionError ([#2281](#2281)) ### Testing - Ignore miri errors in tests involving `assert_snapshot` ([#2261](#2261)) </blockquote> ## `hugr-cli` <blockquote> ## [0.20.1](hugr-cli-v0.20.0...hugr-cli-v0.20.1) - 2025-06-03 ### New Features - support external subcommands via PATH ([#1343](#1343)) ([#2278](#2278)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/).
Closes #2074
Closes #2190