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

feat!: Have CustomTypes reference their Extension definition #1723

Merged
merged 8 commits into from
Dec 2, 2024

Conversation

aborgna-q
Copy link
Collaborator

@aborgna-q aborgna-q commented Nov 27, 2024

Another noisy PR 🫠

Adds an extension_ref: Weak<Extension> field on CustomType, pointing to the defining extension. This is a continuation of #1719, and should be the last step before #1613.

The main problem with adding the field is that types can no longer be const-initialized. That means that every definition for, for example, const QB_T: Type now has been changed to a runtime function.
This mean that we can no longer use the static type_row! constructor when using custom types, and must resort to a vec! (and many into()s...).
I think with this the Cow inside a type row is not that useful anymore, and it may be better to just drop it in favour of vecs, perhaps with internal Arcs (I'll open an issue about this).

Benchmark comparison after this change (showing those with >5% change):

group                       base                                   custom-type-refs
-----                       ----                                   ----------------
builder/simple_cfg          1.00     15.1±0.22µs        ? ?/sec    1.25     18.9±0.19µs        ? ?/sec
builder/simple_dfg          1.00  1534.3±50.82ns        ? ?/sec    1.76      2.7±0.04µs        ? ?/sec
circuit_roundtrip/json/0    1.00      8.1±0.12µs        ? ?/sec    1.06      8.6±0.16µs        ? ?/sec
circuit_serialize/json/0    1.00  1627.5±24.52ns        ? ?/sec    1.34      2.2±0.04µs        ? ?/sec
circuit_serialize/json/1    1.00      6.5±0.17µs        ? ?/sec    1.10      7.2±0.09µs        ? ?/sec
singleton_subgraph/10       1.15   231.9±84.31ns        ? ?/sec    1.00    201.3±4.53ns        ? ?/sec

There's a slight increase in building time for small circuits, but most tests are unchanged / tend to 1.00 for larger sizes.


Review help. This is a list of the interesting bits of this PR, lost inside the noise.

  • The trait MakeOpDef in prelude/simple_op.rs now has two new methods extension_ref and init_signature, so we can pass the Weak<Extension> around while the extension is being initialized and avoid deadlocks due to calling e.g. the PRELUDE lazy_static recursively.
    This caused all the simple op definitions to be updated with those defs.

  • BOOL_T, QB_T, USIZE_T are now (lowercase) methods. This is the main source of noise since it modifies a lot of tests.

  • CustomType in types/custom.rs has a new extension_ref field.

  • Running this revealed that one of the hugr-model roundtrip tests defined the Array type as coming from an inexistent array extension. I replaced it with prelude.


drive-by: Make just format format non-default targets

BREAKING CHANGE: Removed CustomType::new_simple. Custom types can no longer be const-constructed.
BREAKING CHANGE: Added init_signature and extension_ref methods to the MakeOpDef trait.
BREAKING CHANGE: Redefined the const types in the prelude to generator functions.

@aborgna-q aborgna-q requested a review from a team as a code owner November 27, 2024 15:42
@aborgna-q aborgna-q requested a review from acl-cqc November 27, 2024 15:42
Copy link

codecov bot commented Nov 27, 2024

Codecov Report

Attention: Patch coverage is 81.33333% with 140 lines in your changes missing coverage. Please review.

Project coverage is 86.32%. Comparing base (408704b) to head (25a1da9).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
hugr-core/src/builder/dataflow.rs 48.64% 0 Missing and 19 partials ⚠️
hugr-passes/src/nest_cfgs.rs 38.70% 4 Missing and 15 partials ⚠️
hugr-core/src/builder/cfg.rs 35.71% 0 Missing and 9 partials ⚠️
hugr-core/src/extension/prelude.rs 90.42% 9 Missing ⚠️
hugr-core/src/extension/prelude/array.rs 81.25% 9 Missing ⚠️
hugr-core/src/import.rs 22.22% 5 Missing and 2 partials ⚠️
hugr-passes/src/const_fold/test.rs 76.66% 7 Missing ⚠️
hugr-core/src/hugr/validate/test.rs 91.78% 0 Missing and 6 partials ⚠️
hugr-core/src/hugr/rewrite/inline_dfg.rs 0.00% 0 Missing and 4 partials ⚠️
hugr-core/src/hugr/rewrite/replace.rs 50.00% 4 Missing ⚠️
... and 20 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1723      +/-   ##
==========================================
- Coverage   86.36%   86.32%   -0.05%     
==========================================
  Files         167      167              
  Lines       30384    30639     +255     
  Branches    27296    27551     +255     
==========================================
+ Hits        26242    26449     +207     
- Misses       2559     2605      +46     
- Partials     1583     1585       +2     
Flag Coverage Δ
python 92.42% <ø> (ø)
rust 85.64% <81.33%> (-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.

@aborgna-q aborgna-q requested review from mark-koch and removed request for acl-cqc November 28, 2024 10:25
Copy link
Contributor

@mark-koch mark-koch left a comment

Choose a reason for hiding this comment

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

Looks good 👍

Just a few sanity checking questions to make sure I understand what's going on

Comment on lines +157 to +159
pub fn bool_t() -> Type {
Type::new_unit_sum(2)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

I guess BOOL_T doesn't strictly need to be a function, but it makes sense for consistency 👍

@@ -125,6 +128,8 @@ impl ArrayOpDef {
let array_ty = instantiate(array_def, size_var.clone(), elem_ty_var.clone());
let standard_params = vec![TypeParam::max_nat(), TypeBound::Any.into()];

let usize_t: Type = usize_custom_t(extension_ref).into();
Copy link
Contributor

Choose a reason for hiding this comment

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

Ok, so we can't use usize_t() here to avoid recursion when defining the extension and that's why you need to pass extension_ref, right?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Exactly. I added a comment explaining that here and in other places where we construct types this way.

fn signature_from_def(
&self,
array_def: &TypeDef,
_extension_ref: &Weak<Extension>,
Copy link
Contributor

Choose a reason for hiding this comment

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

Why also pass the extension reference here if it's not used?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It was for consistency with `ArroyOpDef. I'll drop it.

Comment on lines 50 to 51
///
/// When implementing this trait, you must also
Copy link
Contributor

Choose a reason for hiding this comment

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

Crucial information missing :D

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It's an outdated bit, when I was going to require either init_signature or signature to be initialized.

There's no need for the comment now.

hugr-core/src/import.rs Outdated Show resolved Hide resolved
hugr-core/src/ops/constant.rs Outdated Show resolved Hide resolved
vec![],
EXTENSION_ID,
TypeBound::Copyable,
&Arc::downgrade(&EXTENSION),
Copy link
Contributor

Choose a reason for hiding this comment

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

This is fine since there are no ops in this extension, so no problem with recursion?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nop. I fixed it (and int_type) to get the extension via a parameter too.

@@ -32,7 +32,7 @@ fix language="[rust|python]": (_run_lang language \

# Format the code.
format language="[rust|python]": (_run_lang language \
"cargo fmt" \
Copy link
Contributor

Choose a reason for hiding this comment

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

Intentional drive-by?

@hugrbot
Copy link
Collaborator

hugrbot commented Dec 2, 2024

This PR contains breaking changes to the public Rust API.

cargo-semver-checks summary

--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
      ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/auto_trait_impl_removed.ron

Failed in:
type CallIndirect is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:262
type CallIndirect is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:262
type CallIndirect is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:262
type CallIndirect is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:262
type ConstExternalSymbol is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:475
type ConstExternalSymbol is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:475
type CustomSerialized is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/constant/custom.rs:169
type CustomSerialized is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/constant/custom.rs:169
type SumType is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:135
type SumType is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:135
type SignatureError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension.rs:186
type SignatureError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension.rs:186
type ListOpInst is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/std_extensions/collections.rs:329
type ListOpInst is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/std_extensions/collections.rs:329
type TypeRowBase is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_row.rs:23
type TypeRowBase is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_row.rs:23
type LoadConstant is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:287
type LoadConstant is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:287
type LoadConstant is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:287
type LoadConstant is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:287
type Conditional is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:76
type Conditional is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:76
type Conditional is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:76
type Conditional is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:76
type CustomType is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/custom.rs:18
type CustomType is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/custom.rs:18
type CustomType is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/custom.rs:18
type CustomType is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/custom.rs:18
type CFG is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:116
type CFG is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:116
type CFG is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:116
type CFG is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:116
type CFGBuilder is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/builder/cfg.rs:118
type CFGBuilder is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/builder/cfg.rs:118
type DataflowBlock is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:138
type DataflowBlock is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:138
type DataflowBlock is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:138
type DataflowBlock is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:138
type TypeEnum is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:223
type TypeEnum is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:223
type EdgeKind is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:54
type EdgeKind is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:54
type ArrayOp is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude/array.rs:247
type ArrayOp is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude/array.rs:247
type ArrayOp is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude/array.rs:247
type ArrayOp is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude/array.rs:247
type Noop is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:785
type Noop is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:785
type OpaqueOp is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/custom.rs:171
type OpaqueOp is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/custom.rs:171
type OpaqueOp is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/custom.rs:171
type OpaqueOp is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/custom.rs:171
type BuilderWiringError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/builder.rs:207
type BuilderWiringError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/builder.rs:207
type TailLoop is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:14
type TailLoop is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:14
type TailLoop is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:14
type TailLoop is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:14
type Case is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:271
type Case is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:271
type Case is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:271
type Case is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:271
type Tag is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/sum.rs:11
type Tag is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/sum.rs:11
type Tag is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/sum.rs:11
type Tag is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/sum.rs:11
type LoadFunction is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:338
type LoadFunction is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:338
type LoadFunction is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:338
type LoadFunction is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:338
type TypeArg is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_param.rs:146
type TypeArg is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_param.rs:146
type TypeArg is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_param.rs:146
type TypeArg is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_param.rs:146
type UnpackTuple is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:665
type UnpackTuple is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:665
type ExitBlock is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:149
type ExitBlock is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:149
type ExitBlock is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:149
type ExitBlock is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/controlflow.rs:149
type OpLoadError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/simple_op.rs:26
type OpLoadError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/simple_op.rs:26
type ArrayScan is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude/array.rs:458
type ArrayScan is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude/array.rs:458
type CustomCheckFailure is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/constant.rs:313
type CustomCheckFailure is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/constant.rs:313
type CustomCheckFailure is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/constant.rs:313
type CustomCheckFailure is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/constant.rs:313
type FuncDecl is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:89
type FuncDecl is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:89
type FuncDecl is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:89
type FuncDecl is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:89
type AliasDefn is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:119
type AliasDefn is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:119
type AliasDefn is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:119
type AliasDefn is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:119
type Input is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:64
type Input is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:64
type Input is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:64
type Input is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:64
type DFG is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:427
type DFG is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:427
type DFG is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:427
type DFG is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:427
type ImportError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/import.rs:37
type ImportError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/import.rs:37
type PtrOp is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/std_extensions/ptr.rs:138
type PtrOp is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/std_extensions/ptr.rs:138
type Lift is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:886
type Lift is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:886
type MakeTuple is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:603
type MakeTuple is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/prelude.rs:603
type ExtensionRegistryError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension.rs:559
type ExtensionRegistryError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension.rs:559
type IdentityInsertionError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/hugr/rewrite/insert_identity.rs:38
type IdentityInsertionError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/hugr/rewrite/insert_identity.rs:38
type FuncDefn is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:53
type FuncDefn is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:53
type FuncDefn is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:53
type FuncDefn is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/module.rs:53
type TypeBase is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:291
type TypeBase is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types.rs:291
type TypeArgError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_param.rs:412
type TypeArgError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/type_param.rs:412
type Call is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:166
type Call is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:166
type Call is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:166
type Call is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:166
type OpaqueOpError is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/custom.rs:323
type OpaqueOpError is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/custom.rs:323
type Output is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:82
type Output is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:82
type Output is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:82
type Output is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/ops/dataflow.rs:82

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/enum_variant_added.ron

Failed in:
variant ImportError:Extension in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/import.rs:53

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/function_missing.ron

Failed in:
function hugr_core::std_extensions::arithmetic::int_types::extension, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/std_extensions/arithmetic/int_types.rs:190
function hugr_core::std_extensions::ptr::ptr_custom_type, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/std_extensions/ptr.rs:115

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/function_parameter_count_changed.ron

Failed in:
hugr_core::std_extensions::arithmetic::int_types::int_custom_type now takes 2 parameters instead of 1, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/std_extensions/arithmetic/int_types.rs:29

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/inherent_method_missing.ron

Failed in:
CustomType::new_simple, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/types/custom.rs:48
CustomType::new_simple, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/types/custom.rs:48

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/method_parameter_count_changed.ron

Failed in:
hugr_core::types::custom::CustomType::new now takes 5 parameters instead of 4, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/custom.rs:59
hugr_core::types::CustomType::new now takes 5 parameters instead of 4, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/types/custom.rs:59

--- failure pub_module_level_const_missing: pub module-level const is missing ---

Description:
A public const is missing, renamed, or changed from const to static.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/pub_module_level_const_missing.ron

Failed in:
STRING_CUSTOM_TYPE in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:159
ERROR_CUSTOM_TYPE in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:204
USIZE_T in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:140
BOOL_T in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:142
QB_T in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:138
FLOAT64_TYPE in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/std_extensions/arithmetic/float_types.rs:28
FLOAT64_CUSTOM_TYPE in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/std_extensions/arithmetic/float_types.rs:24
ERROR_TYPE in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:207
STRING_TYPE in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/extension/prelude.rs:163

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/trait_method_added.ron

Failed in:
trait method hugr_core::extension::simple_op::MakeOpDef::extension_ref in file /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/simple_op.rs:60
trait method hugr_core::extension::simple_op::MakeOpDef::init_signature in file /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/extension/simple_op.rs:67

--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
      ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.36.0/src/lints/auto_trait_impl_removed.ron

Failed in:
type LLVMSumType is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-llvm/src/sum.rs:32
type LLVMSumType is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-llvm/src/sum.rs:32
type LLVMSumType is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-llvm/src/sum.rs:32
type LLVMSumType is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-llvm/src/sum.rs:32
type LLVMSumValue is no longer UnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-llvm/src/sum.rs:181
type LLVMSumValue is no longer RefUnwindSafe, in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-llvm/src/sum.rs:181

@aborgna-q aborgna-q added this pull request to the merge queue Dec 2, 2024
Merged via the queue into main with commit 4586db3 Dec 2, 2024
23 of 24 checks passed
@aborgna-q aborgna-q deleted the ab/type-exts branch December 2, 2024 12:13
@hugrbot hugrbot mentioned this pull request Dec 2, 2024
github-merge-queue bot pushed a commit that referenced this pull request Dec 16, 2024
## 🤖 New release
* `hugr`: 0.13.3 -> 0.14.0 (✓ API compatible changes)
* `hugr-core`: 0.13.3 -> 0.14.0 (⚠️ API breaking changes)
* `hugr-model`: 0.14.0 -> 0.15.0 (⚠️ API breaking changes)
* `hugr-llvm`: 0.13.3 -> 0.14.0
* `hugr-passes`: 0.13.3 -> 0.14.0 (⚠️ API breaking changes)
* `hugr-cli`: 0.13.3 -> 0.14.0 (⚠️ API breaking changes)

### ⚠️ `hugr-core` breaking changes

```
--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
        ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/auto_trait_impl_removed.ron

Failed in:
  type CFG is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:145
  type CFG is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:145
  type CFG is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:145
  type CFG is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:145
  type TypeArg is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_param.rs:145
  type TypeArg is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_param.rs:145
  type TypeArg is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_param.rs:145
  type TypeArg is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_param.rs:145
  type TailLoop is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:16
  type TailLoop is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:16
  type TailLoop is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:16
  type TailLoop is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:16
  type TypeRowBase is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_row.rs:20
  type TypeRowBase is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_row.rs:20
  type DFG is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:487
  type DFG is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:487
  type DFG is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:487
  type DFG is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:487
  type CustomType is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/custom.rs:18
  type CustomType is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/custom.rs:18
  type CustomType is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/custom.rs:18
  type CustomType is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/custom.rs:18
  type EdgeKind is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:52
  type EdgeKind is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:52
  type LoadConstant is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:328
  type LoadConstant is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:328
  type LoadConstant is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:328
  type LoadConstant is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:328
  type Case is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:324
  type Case is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:324
  type Case is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:324
  type Case is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:324
  type SignatureError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:381
  type SignatureError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:381
  type TypeArgError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_param.rs:445
  type TypeArgError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/type_param.rs:445
  type MakeTuple is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:600
  type MakeTuple is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:600
  type SumType is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:173
  type SumType is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:173
  type FuncDecl is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:93
  type FuncDecl is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:93
  type FuncDecl is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:93
  type FuncDecl is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:93
  type Call is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:190
  type Call is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:190
  type Call is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:190
  type Call is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:190
  type ExitBlock is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:184
  type ExitBlock is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:184
  type ExitBlock is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:184
  type ExitBlock is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:184
  type ConstExternalSymbol is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:465
  type ConstExternalSymbol is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:465
  type OpaqueOp is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:191
  type OpaqueOp is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:191
  type OpaqueOp is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:191
  type OpaqueOp is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:191
  type Input is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:70
  type Input is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:70
  type Input is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:70
  type Input is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:70
  type Output is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:88
  type Output is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:88
  type Output is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:88
  type Output is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:88
  type CallIndirect is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:296
  type CallIndirect is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:296
  type CallIndirect is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:296
  type CallIndirect is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:296
  type CustomCheckFailure is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/constant.rs:321
  type CustomCheckFailure is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/constant.rs:321
  type CustomCheckFailure is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/constant.rs:321
  type CustomCheckFailure is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/constant.rs:321
  type Lift is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:883
  type Lift is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:883
  type Tag is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/sum.rs:13
  type Tag is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/sum.rs:13
  type Tag is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/sum.rs:13
  type Tag is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/sum.rs:13
  type PtrOp is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/std_extensions/ptr.rs:135
  type PtrOp is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/std_extensions/ptr.rs:135
  type FuncDefn is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:55
  type FuncDefn is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:55
  type FuncDefn is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:55
  type FuncDefn is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:55
  type DataflowBlock is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:173
  type DataflowBlock is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:173
  type DataflowBlock is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:173
  type DataflowBlock is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:173
  type CFGBuilder is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/builder/cfg.rs:113
  type CFGBuilder is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/builder/cfg.rs:113
  type TypeBase is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:335
  type TypeBase is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:335
  type IdentityInsertionError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/rewrite/insert_identity.rs:38
  type IdentityInsertionError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/rewrite/insert_identity.rs:38
  type ExtensionRegistryError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:755
  type ExtensionRegistryError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:755
  type TopoConvexChecker is no longer Sync, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/views/sibling_subgraph.rs:503
  type TopoConvexChecker is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/views/sibling_subgraph.rs:503
  type AliasDefn is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:125
  type AliasDefn is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:125
  type AliasDefn is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:125
  type AliasDefn is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/module.rs:125
  type OpLoadError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/simple_op.rs:23
  type OpLoadError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/simple_op.rs:23
  type BuilderWiringError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/builder.rs:207
  type BuilderWiringError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/builder.rs:207
  type Conditional is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:93
  type Conditional is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:93
  type Conditional is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:93
  type Conditional is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/controlflow.rs:93
  type ImportError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/import.rs:37
  type ImportError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/import.rs:37
  type LoadFunction is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:386
  type LoadFunction is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:386
  type LoadFunction is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:386
  type LoadFunction is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:386
  type TypeDef is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/type_def.rs:57
  type TypeDef is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/type_def.rs:57
  type OpaqueOpError is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:285
  type OpaqueOpError is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:285
  type UnpackTuple is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:662
  type UnpackTuple is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:662
  type Noop is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:782
  type Noop is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/prelude.rs:782
  type CustomSerialized is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/constant/custom.rs:185
  type CustomSerialized is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/constant/custom.rs:185
  type TypeEnum is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:267
  type TypeEnum is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types.rs:267

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field LoadFunction.instantiation in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:392
  field LoadFunction.instantiation in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:392

--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
  enum ExtensionBuildError in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:779
  enum ExtensionRegistryError in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:755

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_missing.ron

Failed in:
  enum hugr_core::extension::prelude::array::ArrayOpDef, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:41
  enum hugr_core::extension::prelude::ArrayOpDef, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:41
  enum hugr_core::std_extensions::collections::ListOp, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:124

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field source_types of variant EdgeValidationError::CFGEdgeSignatureMismatch in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/validate.rs:223
  field target_types of variant EdgeValidationError::CFGEdgeSignatureMismatch in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/validate.rs:224
  field op of variant ValidationError::SignatureError in /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/validate.rs:753
  field op of variant ValidationError::SignatureError in /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/validate.rs:753

--- failure enum_tuple_variant_changed_kind: An enum tuple variant changed kind ---

Description:
A public enum's exhaustive tuple variant has changed to a different kind of enum variant, breaking possible instantiations and patterns.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_tuple_variant_changed_kind.ron

Failed in:
  variant OpaqueOpError::OpNotFoundInExtension in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:290

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_variant_added.ron

Failed in:
  variant ImportError:Extension in /tmp/.tmpglz2Rp/hugr/hugr-core/src/import.rs:53
  variant SignatureError:MissingTypeExtension in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:396

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_variant_missing.ron

Failed in:
  variant SignatureError::ExtensionNotFound, previously in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:190
  variant PackageValidationError::Extension, previously in file /tmp/.tmph2sFme/hugr-core/src/package.rs:305
  variant PackageValidationError::Validate, previously in file /tmp/.tmph2sFme/hugr-core/src/package.rs:315
  variant PackageValidationError::ExtReg, previously in file /tmp/.tmph2sFme/hugr-core/src/package.rs:323

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/function_missing.ron

Failed in:
  function hugr_core::extension::prelude::array::new_array_op, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:310
  function hugr_core::extension::prelude::new_array_op, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:310
  function hugr_core::std_extensions::arithmetic::int_types::extension, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/arithmetic/int_types.rs:189
  function hugr_core::std_extensions::ptr::ptr_custom_type, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/ptr.rs:112
  function hugr_core::std_extensions::collections::list_type_def, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:288
  function hugr_core::extension::prelude::array::array_type, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:291
  function hugr_core::extension::prelude::array_type, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:291
  function hugr_core::std_extensions::collections::list_type, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:301
  function hugr_core::ops::custom::resolve_opaque_op, previously in file /tmp/.tmph2sFme/hugr-core/src/ops/custom.rs:275
  function hugr_core::ops::custom::resolve_extension_ops, previously in file /tmp/.tmph2sFme/hugr-core/src/ops/custom.rs:245
  function hugr_core::std_extensions::collections::list_custom_type, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:294

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/function_parameter_count_changed.ron

Failed in:
  hugr_core::std_extensions::arithmetic::int_types::int_custom_type now takes 2 parameters instead of 1, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/std_extensions/arithmetic/int_types.rs:29

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/inherent_method_missing.ron

Failed in:
  CustomType::new_simple, previously in file /tmp/.tmph2sFme/hugr-core/src/types/custom.rs:48
  CustomType::new_simple, previously in file /tmp/.tmph2sFme/hugr-core/src/types/custom.rs:48
  Package::update_validate, previously in file /tmp/.tmph2sFme/hugr-core/src/package.rs:96
  Extension::with_reqs, previously in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:363
  Extension::with_reqs, previously in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:363
  ExtensionRegistry::try_new, previously in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:55
  Hugr::update_validate, previously in file /tmp/.tmph2sFme/hugr-core/src/hugr.rs:86
  Hugr::update_validate, previously in file /tmp/.tmph2sFme/hugr-core/src/hugr.rs:86

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/method_parameter_count_changed.ron

Failed in:
  hugr_core::extension::OpDef::validate_args now takes 3 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/op_def.rs:333
  hugr_core::extension::OpDef::compute_signature now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/op_def.rs:362
  hugr_core::types::custom::CustomType::new now takes 5 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/custom.rs:59
  hugr_core::types::CustomType::new now takes 5 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/types/custom.rs:59
  hugr_core::package::Package::new now takes 1 parameters instead of 2, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/package.rs:38
  hugr_core::package::Package::from_hugrs now takes 1 parameters instead of 2, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/package.rs:67
  hugr_core::package::Package::validate now takes 1 parameters instead of 2, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/package.rs:105
  hugr_core::package::Package::from_json_reader now takes 2 parameters instead of 1, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/package.rs:128
  hugr_core::package::Package::from_json now takes 2 parameters instead of 1, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/package.rs:185
  hugr_core::package::Package::from_json_file now takes 2 parameters instead of 1, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/package.rs:195
  hugr_core::ops::dataflow::Call::try_new now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:238
  hugr_core::ops::Call::try_new now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:238
  hugr_core::extension::Extension::add_op now takes 5 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/op_def.rs:505
  hugr_core::extension::Extension::add_type now takes 6 parameters instead of 5, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/type_def.rs:208
  hugr_core::extension::Extension::instantiate_extension_op now takes 3 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:727
  hugr_core::Extension::add_op now takes 5 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/op_def.rs:505
  hugr_core::Extension::add_type now takes 6 parameters instead of 5, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/type_def.rs:208
  hugr_core::Extension::instantiate_extension_op now takes 3 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension.rs:727
  hugr_core::builder::DFGWrapper::finish_hugr_with_outputs now takes [3, 2] parameters instead of 4, in [ /tmp/.tmpglz2Rp/hugr/hugr-core/src/builder/cfg.rs:449 , /tmp/.tmpglz2Rp/hugr/hugr-core/src/builder/build_traits.rs:848 ]
  hugr_core::extension::SignatureFunc::compute_signature now takes 3 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/op_def.rs:223
  hugr_core::ops::custom::ExtensionOp::new now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:44
  hugr_core::ops::ExtensionOp::new now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/custom.rs:44
  hugr_core::ops::dataflow::LoadFunction::try_new now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:436
  hugr_core::ops::LoadFunction::try_new now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:436
  hugr_core::hugr::Hugr::validate now takes [1, 1] parameters instead of 2, in [ /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/validate.rs:41 , /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/views.rs:452 ]
  hugr_core::hugr::Hugr::validate_no_extensions now takes [1, 1] parameters instead of 2, in [ /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/validate.rs:51 , /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/views.rs:461 ]
  hugr_core::Hugr::validate now takes [1, 1] parameters instead of 2, in [ /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/validate.rs:41 , /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/views.rs:452 ]
  hugr_core::Hugr::validate_no_extensions now takes [1, 1] parameters instead of 2, in [ /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/validate.rs:51 , /tmp/.tmpglz2Rp/hugr/hugr-core/src/hugr/views.rs:461 ]

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/module_missing.ron

Failed in:
  mod hugr_core::extension::prelude::array, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:1

--- failure pub_module_level_const_missing: pub module-level const is missing ---

Description:
A public const is missing, renamed, or changed from const to static.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/pub_module_level_const_missing.ron

Failed in:
  FLOAT64_CUSTOM_TYPE in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/arithmetic/float_types.rs:22
  ARRAY_TYPE_NAME in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:285
  ARRAY_TYPE_NAME in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:285
  EMPTY_REG in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:169
  ERROR_TYPE in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:194
  FLOAT64_TYPE in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/arithmetic/float_types.rs:26
  STRING_CUSTOM_TYPE in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:146
  ERROR_CUSTOM_TYPE in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:191
  QB_T in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:125
  EXTENSION_ID in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:37
  NEW_ARRAY_OP_ID in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:307
  NEW_ARRAY_OP_ID in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:307
  USIZE_T in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:127
  VERSION in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:39
  LIST_TYPENAME in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:35
  STRING_TYPE in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:150
  BOOL_T in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude.rs:129

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/struct_missing.ron

Failed in:
  struct hugr_core::std_extensions::ptr::PTR_REG, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/ptr.rs:101
  struct hugr_core::std_extensions::arithmetic::conversions::CONVERT_OPS_REGISTRY, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/arithmetic/conversions.rs:156
  struct hugr_core::std_extensions::collections::ListOpInst, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:309
  struct hugr_core::extension::prelude::array::ArrayOpDefIter, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:38
  struct hugr_core::std_extensions::collections::EXTENSION, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:250
  struct hugr_core::std_extensions::collections::ListOpIter, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:121
  struct hugr_core::std_extensions::collections::ListValue, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:43
  struct hugr_core::std_extensions::arithmetic::float_ops::FLOAT_OPS_REGISTRY, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/arithmetic/float_ops.rs:105
  struct hugr_core::std_extensions::arithmetic::int_ops::INT_OPS_REGISTRY, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/arithmetic/int_ops.rs:248
  struct hugr_core::std_extensions::logic::LOGIC_REG, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/logic.rs:123
  struct hugr_core::std_extensions::collections::COLLECTIONS_REGISTRY, previously in file /tmp/.tmph2sFme/hugr-core/src/std_extensions/collections.rs:250
  struct hugr_core::extension::prelude::array::ArrayOp, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:212
  struct hugr_core::extension::prelude::ArrayOp, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/prelude/array.rs:212

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field extension_reqs of struct Extension, previously in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:335
  field extension_reqs of struct Extension, previously in file /tmp/.tmph2sFme/hugr-core/src/extension.rs:335
  field signature of struct LoadFunction, previously in file /tmp/.tmph2sFme/hugr-core/src/ops/dataflow.rs:344
  field signature of struct LoadFunction, previously in file /tmp/.tmph2sFme/hugr-core/src/ops/dataflow.rs:344

--- failure trait_added_supertrait: non-sealed trait added new supertraits ---

Description:
A non-sealed trait added one or more supertraits, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#generic-bounds-tighten
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/trait_added_supertrait.ron

Failed in:
  trait hugr_core::ops::OpTrait gained Sized in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops.rs:372
  trait hugr_core::ops::OpTrait gained Clone in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops.rs:372
  trait hugr_core::ops::dataflow::DataflowOpTrait gained Sized in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:16
  trait hugr_core::ops::DataflowOpTrait gained Sized in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:16

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/trait_method_added.ron

Failed in:
  trait method hugr_core::ops::dataflow::DataflowOpTrait::substitute in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:57
  trait method hugr_core::ops::DataflowOpTrait::substitute in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops/dataflow.rs:57
  trait method hugr_core::extension::simple_op::MakeOpDef::extension_ref in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/simple_op.rs:57
  trait method hugr_core::extension::simple_op::MakeOpDef::init_signature in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/simple_op.rs:64
  trait method hugr_core::extension::simple_op::MakeRegisteredOp::extension_ref in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/extension/simple_op.rs:269

--- failure trait_method_missing: pub trait method removed or renamed ---

Description:
A trait method is no longer callable, and may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#major-any-change-to-trait-item-signatures
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/trait_method_missing.ron

Failed in:
  method finish_prelude_hugr of trait HugrBuilder, previously in file /tmp/.tmph2sFme/hugr-core/src/builder/build_traits.rs:137
  method finish_prelude_hugr_with_outputs of trait DataflowHugr, previously in file /tmp/.tmph2sFme/hugr-core/src/builder/build_traits.rs:842
  method registry of trait MakeRegisteredOp, previously in file /tmp/.tmph2sFme/hugr-core/src/extension/simple_op.rs:245

--- failure trait_no_longer_object_safe: trait no longer object safe ---

Description:
Trait is no longer object safe, which breaks `dyn Trait` usage.
        ref: https://doc.rust-lang.org/stable/reference/items/traits.html#object-safety
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/trait_no_longer_object_safe.ron

Failed in:
  trait OpTrait in file /tmp/.tmpglz2Rp/hugr/hugr-core/src/ops.rs:372

--- failure trait_removed_associated_type: trait's associated type was removed ---

Description:
A public trait's associated type was removed or renamed.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/trait_removed_associated_type.ron

Failed in:
  associated type HugrView::Nodes, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:44
  associated type HugrView::NodePorts, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:49
  associated type HugrView::Children, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:54
  associated type HugrView::Neighbours, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:59
  associated type HugrView::PortLinks, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:64
  associated type HugrView::NodeConnections, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:69
  associated type HugrView::Nodes, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:44
  associated type HugrView::NodePorts, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:49
  associated type HugrView::Children, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:54
  associated type HugrView::Neighbours, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:59
  associated type HugrView::PortLinks, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:64
  associated type HugrView::NodeConnections, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:69
  associated type HugrView::Nodes, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:44
  associated type HugrView::NodePorts, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:49
  associated type HugrView::Children, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:54
  associated type HugrView::Neighbours, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:59
  associated type HugrView::PortLinks, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:64
  associated type HugrView::NodeConnections, previously at /tmp/.tmph2sFme/hugr-core/src/hugr/views.rs:69
```

### ⚠️ `hugr-model` breaking changes

```
--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field OperationDecl.constraints in /tmp/.tmpglz2Rp/hugr/hugr-model/src/v0/mod.rs:438
  field FuncDecl.constraints in /tmp/.tmpglz2Rp/hugr/hugr-model/src/v0/mod.rs:401
  field ConstructorDecl.constraints in /tmp/.tmpglz2Rp/hugr/hugr-model/src/v0/mod.rs:425

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_missing.ron

Failed in:
  enum hugr_model::v0::Param, previously in file /tmp/.tmph2sFme/hugr-model/src/v0/mod.rs:672

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field parts of variant Term::List in /tmp/.tmpglz2Rp/hugr/hugr-model/src/v0/mod.rs:575
  field parts of variant Term::ExtSet in /tmp/.tmpglz2Rp/hugr/hugr-model/src/v0/mod.rs:613

--- failure enum_struct_variant_field_missing: pub enum struct variant's field removed or renamed ---

Description:
A publicly-visible enum has a struct variant whose field is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_struct_variant_field_missing.ron

Failed in:
  field items of variant Term::List, previously in file /tmp/.tmph2sFme/hugr-model/src/v0/mod.rs:574
  field tail of variant Term::List, previously in file /tmp/.tmph2sFme/hugr-model/src/v0/mod.rs:578
  field extensions of variant Term::ExtSet, previously in file /tmp/.tmph2sFme/hugr-model/src/v0/mod.rs:617
  field rest of variant Term::ExtSet, previously in file /tmp/.tmph2sFme/hugr-model/src/v0/mod.rs:619

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_variant_added.ron

Failed in:
  variant Term:NonLinearConstraint in /tmp/.tmpglz2Rp/hugr/hugr-model/src/v0/mod.rs:661
```

### ⚠️ `hugr-passes` breaking changes

```
--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
        ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/auto_trait_impl_removed.ron

Failed in:
  type ConstantFoldPass is no longer UnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/const_fold.rs:31
  type ConstantFoldPass is no longer RefUnwindSafe, in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/const_fold.rs:31

--- failure derive_trait_impl_removed: built-in derived trait no longer implemented ---

Description:
A public type has stopped deriving one or more traits. This can break downstream code that depends on those types implementing those traits.
        ref: https://doc.rust-lang.org/reference/attributes/derive.html#derive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/derive_trait_impl_removed.ron

Failed in:
  type ConstantFoldPass no longer derives Copy, in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/const_fold.rs:31

--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
  enum ConstFoldError in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/const_fold.rs:40

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_variant_missing.ron

Failed in:
  variant ConstFoldError::SimpleReplacementError, previously in file /tmp/.tmph2sFme/hugr-passes/src/const_fold.rs:30

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/function_missing.ron

Failed in:
  function hugr_passes::const_fold::find_consts, previously in file /tmp/.tmph2sFme/hugr-passes/src/const_fold.rs:130
  function hugr_passes::const_fold::fold_leaf_op, previously in file /tmp/.tmph2sFme/hugr-passes/src/const_fold.rs:92

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/function_parameter_count_changed.ron

Failed in:
  hugr_passes::const_fold::constant_fold_pass now takes 1 parameters instead of 2, in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/const_fold.rs:221

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/inherent_method_missing.ron

Failed in:
  ConstantFoldPass::new, previously in file /tmp/.tmph2sFme/hugr-passes/src/const_fold.rs:43

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/method_parameter_count_changed.ron

Failed in:
  hugr_passes::const_fold::ConstantFoldPass::run now takes 2 parameters instead of 3, in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/const_fold.rs:140
  hugr_passes::validation::ValidationLevel::run_validated_pass now takes 3 parameters instead of 4, in /tmp/.tmpglz2Rp/hugr/hugr-passes/src/validation.rs:58

--- failure trait_removed_associated_type: trait's associated type was removed ---

Description:
A public trait's associated type was removed or renamed.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/trait_removed_associated_type.ron

Failed in:
  associated type CfgNodeMap::Iterator, previously at /tmp/.tmph2sFme/hugr-passes/src/nest_cfgs.rs:72
```

### ⚠️ `hugr-cli` breaking changes

```
--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/inherent_method_missing.ron

Failed in:
  PackageOrHugr::update_validate, previously in file /tmp/.tmph2sFme/hugr-cli/src/lib.rs:101
  HugrArgs::get_package, previously in file /tmp/.tmph2sFme/hugr-cli/src/lib.rs:139

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/method_parameter_count_changed.ron

Failed in:
  hugr_cli::HugrArgs::get_package_or_hugr now takes 2 parameters instead of 1, in /tmp/.tmpglz2Rp/hugr/hugr-cli/src/lib.rs:119
```

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

## `hugr`
<blockquote>

##
[0.14.0](https://github.com/CQCL/hugr/compare/hugr-v0.13.3...hugr-v0.14.0)
- 2024-12-16

### Bug Fixes

- hierarchical simple replacement using insert_hugr (#1718)
- hugr-py not adding extension-reqs on custom ops (#1759)
- [**breaking**] Replace `LoadFunction::signature` with
`LoadFunction::instantiation` (#1756)
- Resolve types in `Value`s and custom consts (#1779)
- allow disconnected outputs in SiblingSubgraph::from_node (#1769)

### Documentation

- Fix comment for scan op (#1751)

### New Features

- Dataflow analysis framework (#1476)
- *(hugr-passes)* [**breaking**] Rewrite constant_fold_pass using
dataflow framework (#1603)
- Export/import of JSON metadata (#1622)
- Add `SiblingSubgraph::from_node` (#1655)
- [**breaking**] Replace GATs with `impl Iterator` returns (RPITIT) on
`HugrView` (#1660)
- Emulate `TypeBound`s on parameters via constraints. (#1624)
- Add array `repeat` and `scan` ops (#1633)
- move unwrap builder to hugr core (#1674)
- Lists and extension sets with splicing (#1657)
- add HugrView::first_child and HugrMut::remove_subtree (#1721)
- Lower collections extension (#1720)
- [**breaking**] impl HugrView for any &(mut) to a HugrView (#1678)
- [**breaking**] Make array repeat and scan ops generic over extension
reqs (#1716)
- Print []+[] as Bool and [] as Unit in user-facing messages (#1745)
- Add `PartialEq` impls for `FuncTypeBase` and `Cow<FuncTypeBase>`
(#1762)
- [**breaking**] Rename `collections` extension to `collections.list`
(#1764)
- add `is_` variant methods to `EdgeKind` (#1768)
- [**breaking**] Move arrays from prelude into new extension (#1770)
- Add `LoadNat` operation to enable loading generic `BoundedNat`s into
runtime values (#1763)
- [**breaking**] Add `monomorphization` pass (#1733)
- Update extension pointers in customConsts (#1780)
- [**breaking**] Use registries of `Weak<Extension>`s when doing
resolution (#1781)
- [**breaking**] Resolve extension references inside the extension
themselves (#1783)
- [**breaking**] Remove ExtensionRegistry args in UnwrapBuilder and
ListOp (#1785)
- export llvm test utilities under llvm-test feature (#1677)
- [**breaking**] Share `Extension`s under `Arc`s (#1647)
- [**breaking**] OpDefs and TypeDefs keep a reference to their extension
(#1719)
- [**breaking**] Have `CustomType`s reference their `Extension`
definition (#1723)
- [**breaking**] Resolve OpaqueOps and CustomType extensions  (#1735)
- [**breaking**] `used_extensions` calls for both ops and signatures
(#1739)
- [**breaking**] Hugrs now keep a `ExtensionRegistry` with their
requirements (#1738)
- [**breaking**] rename `extension_reqs` to `runtime_reqs` (#1776)
- [**breaking**] Don't require explicit extension registers for
validation (#1784)

### Performance

- Return `Cow<Signature>` where possible (#1743)
- Faster singleton SiblingSubgraph construction (#1654)

### Refactor

- avoid hugr clone in simple replace (#1724)
- [trivial] replace.rs: use HugrView::first_child  (#1737)
</blockquote>

## `hugr-core`
<blockquote>

##
[0.14.0](https://github.com/CQCL/hugr/compare/hugr-core-v0.13.3...hugr-core-v0.14.0)
- 2024-12-16

### Bug Fixes

- hierarchical simple replacement using insert_hugr (#1718)
- hugr-py not adding extension-reqs on custom ops (#1759)
- [**breaking**] Replace `LoadFunction::signature` with
`LoadFunction::instantiation` (#1756)
- allow disconnected outputs in SiblingSubgraph::from_node (#1769)
- Resolve types in `Value`s and custom consts (#1779)

### Documentation

- Fix comment for scan op (#1751)

### New Features

- Export/import of JSON metadata (#1622)
- Add `SiblingSubgraph::from_node` (#1655)
- [**breaking**] Replace GATs with `impl Iterator` returns (RPITIT) on
`HugrView` (#1660)
- Emulate `TypeBound`s on parameters via constraints. (#1624)
- Add array `repeat` and `scan` ops (#1633)
- move unwrap builder to hugr core (#1674)
- [**breaking**] Share `Extension`s under `Arc`s (#1647)
- Lists and extension sets with splicing (#1657)
- [**breaking**] OpDefs and TypeDefs keep a reference to their extension
(#1719)
- add HugrView::first_child and HugrMut::remove_subtree (#1721)
- Lower collections extension (#1720)
- [**breaking**] Have `CustomType`s reference their `Extension`
definition (#1723)
- [**breaking**] Resolve OpaqueOps and CustomType extensions  (#1735)
- [**breaking**] impl HugrView for any &(mut) to a HugrView (#1678)
- [**breaking**] Make array repeat and scan ops generic over extension
reqs (#1716)
- Print []+[] as Bool and [] as Unit in user-facing messages (#1745)
- [**breaking**] `used_extensions` calls for both ops and signatures
(#1739)
- [**breaking**] Hugrs now keep a `ExtensionRegistry` with their
requirements (#1738)
- Add `PartialEq` impls for `FuncTypeBase` and `Cow<FuncTypeBase>`
(#1762)
- [**breaking**] Rename `collections` extension to `collections.list`
(#1764)
- add `is_` variant methods to `EdgeKind` (#1768)
- [**breaking**] Move arrays from prelude into new extension (#1770)
- Add `LoadNat` operation to enable loading generic `BoundedNat`s into
runtime values (#1763)
- [**breaking**] Add `monomorphization` pass (#1733)
- [**breaking**] rename `extension_reqs` to `runtime_reqs` (#1776)
- Update extension pointers in customConsts (#1780)
- [**breaking**] Use registries of `Weak<Extension>`s when doing
resolution (#1781)
- [**breaking**] Resolve extension references inside the extension
themselves (#1783)
- [**breaking**] Don't require explicit extension registers for
validation (#1784)
- [**breaking**] Remove ExtensionRegistry args in UnwrapBuilder and
ListOp (#1785)

### Performance

- Faster singleton SiblingSubgraph construction (#1654)
- Return `Cow<Signature>` where possible (#1743)

### Refactor

- avoid hugr clone in simple replace (#1724)
- [trivial] replace.rs: use HugrView::first_child  (#1737)
</blockquote>

## `hugr-model`
<blockquote>

##
[0.15.0](https://github.com/CQCL/hugr/compare/hugr-model-v0.14.0...hugr-model-v0.15.0)
- 2024-12-16

### Bug Fixes

- Ignare lint warnings in capnproto generated code (#1728)

### New Features

- Export/import of JSON metadata (#1622)
- Emulate `TypeBound`s on parameters via constraints. (#1624)
- Lists and extension sets with splicing (#1657)
- [**breaking**] Have `CustomType`s reference their `Extension`
definition (#1723)

### Performance

- Faster singleton SiblingSubgraph construction (#1654)
</blockquote>

## `hugr-llvm`
<blockquote>

## [0.13.3](https://github.com/CQCL/hugr-llvm/compare/v0.6.0...v0.6.1) -
2024-11-25

No changes - version bump to catch up with other hugr crates in
repository move.
</blockquote>

## `hugr-passes`
<blockquote>

##
[0.14.0](https://github.com/CQCL/hugr/compare/hugr-passes-v0.13.3...hugr-passes-v0.14.0)
- 2024-12-16

### Bug Fixes

- allow disconnected outputs in SiblingSubgraph::from_node (#1769)

### New Features

- [**breaking**] Replace GATs with `impl Iterator` returns (RPITIT) on
`HugrView` (#1660)
- [**breaking**] Share `Extension`s under `Arc`s (#1647)
- [**breaking**] OpDefs and TypeDefs keep a reference to their extension
(#1719)
- [**breaking**] Have `CustomType`s reference their `Extension`
definition (#1723)
- [**breaking**] Resolve OpaqueOps and CustomType extensions  (#1735)
- Dataflow analysis framework (#1476)
- [**breaking**] `used_extensions` calls for both ops and signatures
(#1739)
- [**breaking**] Hugrs now keep a `ExtensionRegistry` with their
requirements (#1738)
- *(hugr-passes)* [**breaking**] Rewrite constant_fold_pass using
dataflow framework (#1603)
- [**breaking**] Rename `collections` extension to `collections.list`
(#1764)
- [**breaking**] Add `monomorphization` pass (#1733)
- [**breaking**] rename `extension_reqs` to `runtime_reqs` (#1776)
- [**breaking**] Don't require explicit extension registers for
validation (#1784)
- [**breaking**] Remove ExtensionRegistry args in UnwrapBuilder and
ListOp (#1785)

### Performance

- Faster singleton SiblingSubgraph construction (#1654)
- Return `Cow<Signature>` where possible (#1743)
</blockquote>

## `hugr-cli`
<blockquote>

##
[0.14.0](https://github.com/CQCL/hugr/compare/hugr-cli-v0.13.3...hugr-cli-v0.14.0)
- 2024-12-16

### New Features

- [**breaking**] Share `Extension`s under `Arc`s (#1647)
- [**breaking**] OpDefs and TypeDefs keep a reference to their extension
(#1719)
- [**breaking**] Have `CustomType`s reference their `Extension`
definition (#1723)
- [**breaking**] Resolve OpaqueOps and CustomType extensions  (#1735)
- [**breaking**] Hugrs now keep a `ExtensionRegistry` with their
requirements (#1738)
- [**breaking**] Move arrays from prelude into new extension (#1770)

### Performance

- Faster singleton SiblingSubgraph construction (#1654)

### Refactor

- *(cli)* [**breaking**] remove deprecations (#1777)
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: Agustín Borgna <[email protected]>
Co-authored-by: Agustín Borgna <[email protected]>
This was referenced Dec 17, 2024
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.

3 participants