Quantinuum
hugr
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
Remove default impl of with_scope_internal
acl/pass-scope-breaking
15 hours ago
Remove default impl of with_scope_internal
acl/pass-scope-breaking
15 hours ago
chore: release
release-plz-2026-03-09T10-18-35Z
16 hours ago
feat(llvm)!: Upgrade to LLVM 21 (#2901) BREAKING CHANGE: This PR upgrades the Inkwell LLVM version flag to `llvm21-1` from `llvm14-0` (tested with LLVM version 21.1.8). The primary breakage between these versions is the removal of typed pointers from LLVM IR. It also updates the hugr MSRV to 1.91 to avoid [mysterious](https://github.com/Quantinuum/hugr/actions/runs/22420867639/job/64917996447) [errors](https://github.com/Quantinuum/hugr/actions/runs/22461963744/job/65058345857) when linking the new llvm_sys with older toolchains. ### Details - Builder functions to create loads and GEPs now need a separate type argument (they used to infer the type from the pointer). - The `CallableValue` trait was removed from Inkwell. Invocations of function pointers are now constructed using a separate `build_indirect_call` method which takes the function signature as a separate argument. - Pointer-to-pointer casts are now superfluous and have been removed. - The current code often uses typed pointers as the representative types for collections and aggregate types (e.g., `StaticArrayCodegen::static_array_type` returns the type "pointer to static_array\<T\>"). These pointers no longer carry type information, but are still used to determine the size in memory of a reference to these types. When type information is needed we acquire it elsewhere. - Similarly, the `TypingSession` currently maps HUGR function types to function pointers. After the upgrade, it now _maps all function types to the opaque pointer type_. This is unintuitive, but seems to work currently, because the output of the type mapping is only used to determine size in memory of a reference to function types (so the pointer type is correct). If this changes in future, we may need to introduce separate APIs to query the "storage type" and "underlying type" of a function. - After the upgrade, **one** JITed test case returns an incorrect value when called using `ExecutionEngine::run_function`. The same IR returns the correct value if called using a raw function pointer returned by `ExecutionEngine::get_function`. For that reason, I have changed `TestContext::exec_hugr` to use the raw pointer method for all JITed tests. This also requires being more specific (and accurate) about the return types of some JITed test functions. ### Tip for reviewers <img width="684" height="371" alt="Screenshot 2026-02-27 at 12 20 32 PM" src="https://github.com/user-attachments/assets/de98d090-5234-4b39-ab48-31579de53aac" /> Closes #2886 --------- Co-authored-by: Jake Arkinstall <65358059+jake-arkinstall@users.noreply.github.com>
main
16 hours ago
Remove nightly lints
george/llvmup
18 hours ago
Merge branch 'main' into george/llvmup... and apply/ignore some new lints
george/llvmup
19 hours ago
Update link to hugr webpage
ab/move-schema-and-exts
20 hours ago
chore: release
release-plz-2026-03-09T10-18-35Z
20 hours ago
Active Branches
feat!: Update remainder of passes to use PassScope, drop default with_scope
last run
15 hours ago
#2871
CodSpeed Performance Gauge
0%
chore: release
last run
16 hours ago
#2926
CodSpeed Performance Gauge
0%
docs: Move `spec/schema` and `spec/std_extensions` to `resources/`
last run
20 hours ago
#2897
CodSpeed Performance Gauge
0%
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs