Skip to content

feat: hide new public funcs introduced by linearization#1333

Merged
acl-cqc merged 5 commits intomainfrom
acl/hide_funcs
Jan 6, 2026
Merged

feat: hide new public funcs introduced by linearization#1333
acl-cqc merged 5 commits intomainfrom
acl/hide_funcs

Conversation

@acl-cqc
Copy link
Copy Markdown
Contributor

@acl-cqc acl-cqc commented Dec 24, 2025

So following #1325 I was finally able to (/finally succeeded) in evaluating the effect of Quantinuum/hugr#2749 on guppy tests. (There was some question on that PR as to whether we needed to add new facility, see #2766; here is the data.)

Three tests were affected (indeed the same ones as were broken and then fixed by Quantinuum/hugr#2779 but that is a separate issue). The sizes of the LLVM output as follows:

Original (hugr 0.24.3) Hugr 0.25+fix Hugr 0.25+fix + this PR
new test 9568 11856 9888
basic_type 10224 11616 10400
notebook2 15680 17184 15936
notebook5 (Hugr 1) 10832 12304 11072
notebook5 (Hugr 2) 10480 11840 10656

Inspection of the hugrs in the middle row revealed the helper functions from Quantinuum/hugr#2749 were indeed present in the LLVM output as define (not define private). Hence, this PR, following which LLVM is able to remove the defines. (I have not looked into the remaining +2-3% increase. (The numbers include many other changes between hugr-0.24.3 and hugr-0.25.0.)

@codecov
Copy link
Copy Markdown

codecov bot commented Dec 24, 2025

Codecov Report

❌ Patch coverage is 96.42857% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.59%. Comparing base (29b1ae5) to head (b3f6e3a).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
tket-qsystem/src/lib.rs 96.42% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1333      +/-   ##
==========================================
+ Coverage   79.54%   79.59%   +0.05%     
==========================================
  Files         158      158              
  Lines       20440    20509      +69     
  Branches    19474    19542      +68     
==========================================
+ Hits        16258    16324      +66     
- Misses       3201     3203       +2     
- Partials      981      982       +1     
Flag Coverage Δ
python 92.93% <ø> (+<0.01%) ⬆️
qis-compiler 100.00% <ø> (ø)
rust 78.91% <96.42%> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Collaborator

@aborgna-q aborgna-q left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

Could we do a test counting expected public functions or something similar?

@aborgna-q aborgna-q force-pushed the ab/bump-hugr-0.25 branch 3 times, most recently from 3b4efbe to c7a2221 Compare December 30, 2025 16:59
Base automatically changed from ab/bump-hugr-0.25 to main December 30, 2025 17:45
@acl-cqc
Copy link
Copy Markdown
Contributor Author

acl-cqc commented Jan 5, 2026

Test revealed (and is pending) fix in Quantinuum/hugr#2792 ....EDIT so using a simpler test here

@acl-cqc acl-cqc changed the title feat: (into #1325) hide new public funcs introduced by linearization feat: hide new public funcs introduced by linearization Jan 6, 2026
@acl-cqc acl-cqc marked this pull request as ready for review January 6, 2026 11:12
@acl-cqc acl-cqc requested a review from a team as a code owner January 6, 2026 11:12
@acl-cqc acl-cqc requested a review from ss2165 January 6, 2026 11:12
@acl-cqc acl-cqc enabled auto-merge January 6, 2026 11:12
@acl-cqc acl-cqc added this pull request to the merge queue Jan 6, 2026
Merged via the queue into main with commit 69d2396 Jan 6, 2026
25 checks passed
@acl-cqc acl-cqc deleted the acl/hide_funcs branch January 6, 2026 11:21
@hugrbot hugrbot mentioned this pull request Jan 5, 2026
github-merge-queue bot pushed a commit that referenced this pull request Feb 3, 2026
## 🤖 New release

* `tket`: 0.16.0 -> 0.17.0 (✓ API compatible changes)
* `tket-qsystem`: 0.22.0 -> 0.23.0 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

## `tket`

<blockquote>

##
[0.17.0](tket-v0.16.0...tket-v0.17.0)
- 2026-02-02

### Bug Fixes

- *(encoded-circ)* Track unsupported wires between input and output
([#1224](#1224))
- Multiple fixes to the pytket encoder
([#1226](#1226))
- Don't use opgroup in pytket barrier encoding
([#1251](#1251))
- guppy_to_circuit always returns num_operations = 0
([#1200](#1200))
- *(pytket-decoder)* Avoid QAllocating and immediately freeing qubits
([#1256](#1256))
- Encoding of opaque subgraphs with no associated qubit/bit
([#1295](#1295))
- [**breaking**] Don't rely on command params for pytket barriers
([#1298](#1298))
- Track output qubits in CircuitInfo
([#1304](#1304))
- Wrongly reused qubit IDs in pytket encoding
([#1358](#1358))

### New Features

- Deprecate local find_tuple_unpack rewrite
([#1188](#1188))
- Add CopyableExpressionAST
([#1209](#1209))
- `NormalizeGuppy` pass to simplify generated structure
([#1220](#1220))
- [**breaking**] pytket EncodedCircuit struct for in-place pytket
optimisation ([#1211](#1211))
- [**breaking**] Interval is independent of resource IDs and scope
position ([#1205](#1205))
- Don't translate usizes to pytket
([#1241](#1241))
- BorrowSquashPass to elide redundant borrow/return ops
([#1159](#1159))
- [**breaking**] Bump hugr to 0.25.0
([#1325](#1325))
- Remove order edges in NormalizeGuppy pass
([#1326](#1326))
- [**breaking**] Remove deprecated unpack tuple pass
([#1387](#1387))

### Refactor

- Remove contain_qubits, use TypeUnpacker
([#1283](#1283))
- [**breaking**] Replace Subcircuit with SiblingSubgraph
([#1288](#1288))
- *(metadata)* [**breaking**] Migrate all metadata keys onto the new
metadata traits ([#1328](#1328))
</blockquote>

## `tket-qsystem`

<blockquote>

##
[0.23.0](tket-qsystem-v0.22.0...tket-qsystem-v0.23.0)
- 2026-02-02

### Bug Fixes

- [**breaking**] Don't rely on command params for pytket barriers
([#1298](#1298))
- Wrongly reused qubit IDs in pytket encoding
([#1358](#1358))

### New Features

- `NormalizeGuppy` pass to simplify generated structure
([#1220](#1220))
- Allow running arbitrary serializable pytket passes on hugrs
([#1266](#1266))
- BorrowSquashPass to elide redundant borrow/return ops
([#1159](#1159))
- [**breaking**] Bump hugr to 0.25.0
([#1325](#1325))
- Remove order edges in NormalizeGuppy pass
([#1326](#1326))
- hide new public funcs introduced by linearization
([#1333](#1333))

### Testing

- regenerate guppy_opt examples, and count gates
([#1249](#1249))
- run pytket on guppy_opt tests, measure (very limited) success
([#1250](#1250))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
@hugrbot hugrbot mentioned this pull request Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants