-
Notifications
You must be signed in to change notification settings - Fork 13
feat: SiblingSubgraph supports function calls #2528
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
5273b2f to
9917f77
Compare
9917f77 to
31ce577
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2528 +/- ##
==========================================
- Coverage 82.67% 82.66% -0.01%
==========================================
Files 252 252
Lines 46814 46781 -33
Branches 42330 42297 -33
==========================================
- Hits 38702 38673 -29
+ Misses 6061 6058 -3
+ Partials 2051 2050 -1
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:
|
| && op | ||
| .static_input() | ||
| .expect("static input exists") | ||
| .is_function() |
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.
Not necessary for this PR, but would we need to change much to also support external const loads?
Loads have an EdgeKind::Const static input, but the rest seems quite similar to function calls.
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.
ah good point! It would probably be straightforward. I'll open an issue for that.
## 🤖 New release * `hugr-model`: 0.22.2 -> 0.22.3 (✓ API compatible changes) * `hugr-core`: 0.22.2 -> 0.22.3 (✓ API compatible changes) * `hugr-llvm`: 0.22.2 -> 0.22.3 (✓ API compatible changes) * `hugr-passes`: 0.22.2 -> 0.22.3 (✓ API compatible changes) * `hugr-persistent`: 0.2.2 -> 0.2.3 (✓ API compatible changes) * `hugr`: 0.22.2 -> 0.22.3 (✓ API compatible changes) * `hugr-cli`: 0.22.2 -> 0.22.3 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> ## `hugr-model` <blockquote> ## [0.22.2](hugr-model-v0.22.1...hugr-model-v0.22.2) - 2025-08-06 ### New Features - Type of constants in `core` `Term`s. ([#2411](#2411)) </blockquote> ## `hugr-core` <blockquote> ## [0.22.3](hugr-core-v0.22.2...hugr-core-v0.22.3) - 2025-09-11 ### Bug Fixes - SiblingSubgraph::try_from_nodes not including disconnected components ([#2549](#2549)) ### Documentation - Clarify docs for SiblingSubgraph::{inputs, outputs} ([#2508](#2508)) ### New Features - SiblingSubgraph supports function calls ([#2528](#2528)) - Add unchecked constructor for SiblingSubgraph ([#2526](#2526)) - Add HugrMut::insert(_view)_forest ([#2518](#2518)) - Add extend_inputs function for DFGs ([#2536](#2536)) - Loosen bound on Patch trait ([#2545](#2545)) </blockquote> ## `hugr-llvm` <blockquote> ## [0.22.2](hugr-llvm-v0.22.1...hugr-llvm-v0.22.2) - 2025-08-06 ### Bug Fixes - added public func getter for EmitFuncContext ([#2482](#2482)) - *(hugr-llvm)* Set llvm function linkage based on Visibility hugr node field ([#2502](#2502)) </blockquote> ## `hugr-passes` <blockquote> ## [0.22.3](hugr-passes-v0.22.2...hugr-passes-v0.22.3) - 2025-09-11 ### New Features - SiblingSubgraph supports function calls ([#2528](#2528)) </blockquote> ## `hugr-persistent` <blockquote> ## [0.2.3](hugr-persistent-v0.2.2...hugr-persistent-v0.2.3) - 2025-09-11 ### Documentation - Clarify docs for SiblingSubgraph::{inputs, outputs} ([#2508](#2508)) ### New Features - SiblingSubgraph supports function calls ([#2528](#2528)) </blockquote> ## `hugr` <blockquote> ## [0.22.3](hugr-v0.22.2...hugr-v0.22.3) - 2025-09-11 ### Bug Fixes - SiblingSubgraph::try_from_nodes not including disconnected components ([#2549](#2549)) ### Documentation - Clarify docs for SiblingSubgraph::{inputs, outputs} ([#2508](#2508)) ### New Features - SiblingSubgraph supports function calls ([#2528](#2528)) - Add unchecked constructor for SiblingSubgraph ([#2526](#2526)) - Add extend_inputs function for DFGs ([#2536](#2536)) - Loosen bound on Patch trait ([#2545](#2545)) - Add HugrMut::insert(_view)_forest ([#2518](#2518)) </blockquote> ## `hugr-cli` <blockquote> ## [0.22.3](hugr-cli-v0.22.2...hugr-cli-v0.22.3) - 2025-09-11 ### New Features - *(hugr-cli)* CliError::validate helper ([#2507](#2507)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/).
ended up being a bit more work than expected! With this PR,
SiblingSubgraphsupports incoming boundary static edges that link a function declared/defined outside of the subgraph to a call within the subgraph.I've taken the opportunity to clean up the docs and error handling for any non-value (and non-function static edges).