From cc05e942423a1f412fd7f719964f4ed3d35a2aba Mon Sep 17 00:00:00 2001 From: hugrbot Date: Mon, 16 Dec 2024 15:11:24 +0000 Subject: [PATCH] chore: release (#1786) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 🤖 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 ```
Changelog

## `hugr`

## [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` (#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`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` where possible (#1743) - Faster singleton SiblingSubgraph construction (#1654) ### Refactor - avoid hugr clone in simple replace (#1724) - [trivial] replace.rs: use HugrView::first_child (#1737)
## `hugr-core`
## [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` (#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`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` where possible (#1743) ### Refactor - avoid hugr clone in simple replace (#1724) - [trivial] replace.rs: use HugrView::first_child (#1737)
## `hugr-model`
## [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)
## `hugr-llvm`
## [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.
## `hugr-passes`
## [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` where possible (#1743)
## `hugr-cli`
## [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)

--- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). --------- Co-authored-by: Agustín Borgna Co-authored-by: Agustín Borgna <121866228+aborgna-q@users.noreply.github.com> --- hugr-cli/CHANGELOG.md | 23 +++++++++ hugr-cli/Cargo.toml | 4 +- hugr-core/CHANGELOG.md | 97 +++++++++++++++++++++++++++++++++++ hugr-core/Cargo.toml | 4 +- hugr-llvm/Cargo.toml | 4 +- hugr-model/CHANGELOG.md | 17 +++++++ hugr-model/Cargo.toml | 2 +- hugr-passes/CHANGELOG.md | 37 ++++++++++++++ hugr-passes/Cargo.toml | 4 +- hugr/CHANGELOG.md | 107 +++++++++++++++++++++++++++++++++++++++ hugr/Cargo.toml | 10 ++-- 11 files changed, 295 insertions(+), 14 deletions(-) diff --git a/hugr-cli/CHANGELOG.md b/hugr-cli/CHANGELOG.md index 45b2da10f..f00d008db 100644 --- a/hugr-cli/CHANGELOG.md +++ b/hugr-cli/CHANGELOG.md @@ -1,6 +1,29 @@ # Changelog +## [0.14.0](https://github.com/CQCL/hugr/compare/hugr-cli-v0.13.3...hugr-cli-v0.14.0) - 2024-12-16 + +### ⚠ BREAKING CHANGES + +- Updated to `hugr 0.14`, which includes breaking changes to the serialization format. + +### 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) + ## [0.13.2](https://github.com/CQCL/hugr/compare/hugr-cli-v0.13.1...hugr-cli-v0.13.2) - 2024-10-22 ### New Features diff --git a/hugr-cli/Cargo.toml b/hugr-cli/Cargo.toml index 362d3efa6..0e7ec9e61 100644 --- a/hugr-cli/Cargo.toml +++ b/hugr-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hugr-cli" -version = "0.13.3" +version = "0.14.0" edition = { workspace = true } rust-version = { workspace = true } license = { workspace = true } @@ -19,7 +19,7 @@ bench = false clap = { workspace = true, features = ["derive"] } clap-verbosity-flag.workspace = true derive_more = { workspace = true, features = ["display", "error", "from"] } -hugr = { path = "../hugr", version = "0.13.3" } +hugr = { path = "../hugr", version = "0.14.0" } serde_json.workspace = true serde.workspace = true thiserror.workspace = true diff --git a/hugr-core/CHANGELOG.md b/hugr-core/CHANGELOG.md index 5ed0302d6..6ce9cc73f 100644 --- a/hugr-core/CHANGELOG.md +++ b/hugr-core/CHANGELOG.md @@ -1,5 +1,102 @@ # Changelog +## [0.14.0](https://github.com/CQCL/hugr/compare/hugr-core-v0.13.3...hugr-core-v0.14.0) - 2024-12-16 + +This release includes a long list of breaking changes that simplify the API, specially around +extensions and extension registry management. + +Extension definitions are now tracked by each operation and type inside the hugr, so there is no +need to pass around extension registries any more. + +### ⚠ BREAKING CHANGES + +#### Core + +- The `LoadFunction::signature` field has been removed. Replaced with `DataflowOpTrait::signature()`. +- Types which implement `AsRef` - both library ones such as `Rc` and custom ones - no longer get a blanket impl of `HugrView`. Workaround by manually calling `as_ref()` and using the `&Hugr` yourself. +- Removed `Array` type variant from the serialization format. +- `Optrait` now requires `Sized` and `Clone` and is no longer object safe. +- `DataflowOptrait` now requires `Sized` and has an additional required method `substitute`. +- `::extension::resolve` operations now use `WeakExtensionRegistry`es. +- `ExtensionRegistry` and `Package` now wrap Extensions in `Arc`s. +- Renamed `OpDef::extension` and `TypeDef::extension` to `extension_id`. extension now returns weak references to the Extension defining them. +- `Extension::with_reqs` moved to `set_reqs`, which takes `&mut self` instead of `self`. +- `Extension::add_type` and `Extension::add_op` now take an extra parameter. See docs for example usage. +- `ExtensionRegistry::register_updated` and `register_updated_ref` are no longer fallible. +- Removed `CustomType::new_simple`. Custom types can no longer be const-constructed. +- Added `init_signature` and `extension_ref` methods to the `MakeOpDef` trait. +- Redefined the const types in the prelude to generator functions. +- Removed `resolve_opaque_op` and `resolve_extension_ops`. Use `Hugr::resolve_extension_defs` instead. +- Removed `ExtensionRegistry::try_new`. Use `new` instead, and call `ExtensionRegistry::validate` to validate. +- `ExtensionSet::insert` and `singleton` take extension ids by value instead of cloning internally. +- Removed `update_validate`. The hugr extensions should be resolved at load time, so we can use validate instead. +- The builder `finish_hugr` function family no longer takes a registry as parameter, and the `_prelude` variants have been removed. +- `extension_reqs` field in `FunctionType` and `Extension` renamed to `runtime_reqs`. +- Removed the extension registry argument from validate calls. +- Removed the extension registry argument from operation instantiation methods. +- Removed most extension-specific test registries. Use `EMPTY_REG`, `PRELUDE_REGISTRY`, or `STD_REG` instead. + +#### Extensions + +- Array scan and repeat ops get an additional type parameter specifying the extension requirements of their input functions. Furthermore, repeat is no longer part of `ArrayOpDef` but is instead specified via a new `ArrayScan` struct. +- `collections` extension renamed to `collections.list` +- Array type and operations have been moved out of prelude and into a new `collections.array` extension. + +### 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` (#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`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` where possible (#1743) + +### Refactor + +- avoid hugr clone in simple replace (#1724) +- [trivial] replace.rs: use HugrView::first_child (#1737) + ## [0.13.3](https://github.com/CQCL/hugr/compare/hugr-core-v0.13.2...hugr-core-v0.13.3) - 2024-11-06 ### Bug Fixes diff --git a/hugr-core/Cargo.toml b/hugr-core/Cargo.toml index 84b83677f..b84de3812 100644 --- a/hugr-core/Cargo.toml +++ b/hugr-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hugr-core" -version = "0.13.3" +version = "0.14.0" edition = { workspace = true } rust-version = { workspace = true } @@ -53,7 +53,7 @@ paste = { workspace = true } strum = { workspace = true } strum_macros = { workspace = true } semver = { version = "1.0.23", features = ["serde"] } -hugr-model = { version = "0.14.0", path = "../hugr-model", optional = true } +hugr-model = { version = "0.15.0", path = "../hugr-model", optional = true } indexmap.workspace = true fxhash.workspace = true bumpalo = { workspace = true, features = ["collections"] } diff --git a/hugr-llvm/Cargo.toml b/hugr-llvm/Cargo.toml index fd8035457..636e69d32 100644 --- a/hugr-llvm/Cargo.toml +++ b/hugr-llvm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hugr-llvm" -version = "0.13.3" +version = "0.14.0" description = "A general and extensible crate for lowering HUGRs into LLVM IR" edition.workspace = true @@ -32,7 +32,7 @@ llvm14-0 = ["inkwell/llvm14-0"] [dependencies] inkwell = { version = "0.5.0", default-features = false } -hugr-core = { path = "../hugr-core", version = "0.13.3" } +hugr-core = { path = "../hugr-core", version = "0.14.0" } anyhow = "1.0.83" itertools.workspace = true delegate.workspace = true diff --git a/hugr-model/CHANGELOG.md b/hugr-model/CHANGELOG.md index 91140d84e..9e6a07b81 100644 --- a/hugr-model/CHANGELOG.md +++ b/hugr-model/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [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) + ## [0.14.0](https://github.com/CQCL/hugr/compare/hugr-model-v0.13.2...hugr-model-v0.14.0) - 2024-11-06 ### New Features diff --git a/hugr-model/Cargo.toml b/hugr-model/Cargo.toml index d529e7941..9c5b50347 100644 --- a/hugr-model/Cargo.toml +++ b/hugr-model/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hugr-model" -version = "0.14.0" +version = "0.15.0" readme = "README.md" documentation = "https://docs.rs/hugr-model/" description = "Data model for Quantinuum's HUGR intermediate representation" diff --git a/hugr-passes/CHANGELOG.md b/hugr-passes/CHANGELOG.md index 7fc295ae2..2330446e0 100644 --- a/hugr-passes/CHANGELOG.md +++ b/hugr-passes/CHANGELOG.md @@ -1,6 +1,43 @@ # Changelog +## [0.14.0](https://github.com/CQCL/hugr/compare/hugr-passes-v0.13.3...hugr-passes-v0.14.0) - 2024-12-16 + +### ⚠ BREAKING CHANGES + +- Updated to `hugr 0.14`, which includes breaking changes to the serialization format. + +- `ConstantFoldPass` is no longer `UnwindSafe`, `RefUnwindSafe`, nor `Copy`. +- `fold_leaf_op` and `find_consts` have been removed. +- `ConstantFoldPass::new` function removed. Instead use `ConstantFoldPass::default`. +- Variant `ConstFoldError::SimpleReplacementError` was removed. + +### 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` where possible (#1743) + ## [0.13.2](https://github.com/CQCL/hugr/compare/hugr-passes-v0.13.1...hugr-passes-v0.13.2) - 2024-10-22 ### New Features diff --git a/hugr-passes/Cargo.toml b/hugr-passes/Cargo.toml index a70cb2f32..afedd7658 100644 --- a/hugr-passes/Cargo.toml +++ b/hugr-passes/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hugr-passes" -version = "0.13.3" +version = "0.14.0" edition = { workspace = true } rust-version = { workspace = true } license = { workspace = true } @@ -16,7 +16,7 @@ categories = ["compilers"] bench = false [dependencies] -hugr-core = { path = "../hugr-core", version = "0.13.3" } +hugr-core = { path = "../hugr-core", version = "0.14.0" } portgraph = { workspace = true } ascent = { version = "0.7.0" } itertools = { workspace = true } diff --git a/hugr/CHANGELOG.md b/hugr/CHANGELOG.md index 69bb4ade4..daf14a989 100644 --- a/hugr/CHANGELOG.md +++ b/hugr/CHANGELOG.md @@ -1,5 +1,112 @@ # Changelog +## [0.14.0](https://github.com/CQCL/hugr/compare/hugr-v0.13.3...hugr-v0.14.0) - 2024-12-16 + +This release includes a long list of breaking changes that simplify the API, specially around +extensions and extension registry management. + +Extension definitions are now tracked by each operation and type inside the hugr, so there is no +need to pass around extension registries any more. + +### ⚠ BREAKING CHANGES + +#### Core + +- The `LoadFunction::signature` field has been removed. Replaced with `DataflowOpTrait::signature()`. +- Types which implement `AsRef` - both library ones such as `Rc` and custom ones - no longer get a blanket impl of `HugrView`. Workaround by manually calling `as_ref()` and using the `&Hugr` yourself. +- Removed `Array` type variant from the serialization format. +- `Optrait` now requires `Sized` and `Clone` and is no longer object safe. +- `DataflowOptrait` now requires `Sized` and has an additional required method `substitute`. +- `::extension::resolve` operations now use `WeakExtensionRegistry`es. +- `ExtensionRegistry` and `Package` now wrap Extensions in `Arc`s. +- Renamed `OpDef::extension` and `TypeDef::extension` to `extension_id`. extension now returns weak references to the Extension defining them. +- `Extension::with_reqs` moved to `set_reqs`, which takes `&mut self` instead of `self`. +- `Extension::add_type` and `Extension::add_op` now take an extra parameter. See docs for example usage. +- `ExtensionRegistry::register_updated` and `register_updated_ref` are no longer fallible. +- Removed `CustomType::new_simple`. Custom types can no longer be const-constructed. +- Added `init_signature` and `extension_ref` methods to the `MakeOpDef` trait. +- Redefined the const types in the prelude to generator functions. +- Removed `resolve_opaque_op` and `resolve_extension_ops`. Use `Hugr::resolve_extension_defs` instead. +- Removed `ExtensionRegistry::try_new`. Use `new` instead, and call `ExtensionRegistry::validate` to validate. +- `ExtensionSet::insert` and `singleton` take extension ids by value instead of cloning internally. +- Removed `update_validate`. The hugr extensions should be resolved at load time, so we can use validate instead. +- The builder `finish_hugr` function family no longer takes a registry as parameter, and the `_prelude` variants have been removed. +- `extension_reqs` field in `FunctionType` and `Extension` renamed to `runtime_reqs`. +- Removed the extension registry argument from validate calls. +- Removed the extension registry argument from operation instantiation methods. +- Removed most extension-specific test registries. Use `EMPTY_REG`, `PRELUDE_REGISTRY`, or `STD_REG` instead. + +#### Extensions + +- Array scan and repeat ops get an additional type parameter specifying the extension requirements of their input functions. Furthermore, repeat is no longer part of `ArrayOpDef` but is instead specified via a new `ArrayScan` struct. +- `collections` extension renamed to `collections.list` +- Array type and operations have been moved out of prelude and into a new `collections.array` extension. + +#### Passes + +- `ConstantFoldPass` is no longer `UnwindSafe`, `RefUnwindSafe`, nor `Copy`. +- `fold_leaf_op` and `find_consts` have been removed. +- `ConstantFoldPass::new` function removed. Instead use `ConstantFoldPass::default`. +- Variant `ConstFoldError::SimpleReplacementError` was removed. + +### 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` (#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`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` where possible (#1743) +- Faster singleton SiblingSubgraph construction (#1654) + +### Refactor + +- avoid hugr clone in simple replace (#1724) +- [trivial] replace.rs: use HugrView::first_child (#1737) + ## [0.13.3](https://github.com/CQCL/hugr/compare/hugr-v0.13.2...hugr-v0.13.3) - 2024-11-06 ### Bug Fixes diff --git a/hugr/Cargo.toml b/hugr/Cargo.toml index d4f499ca0..b794360ca 100644 --- a/hugr/Cargo.toml +++ b/hugr/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hugr" -version = "0.13.3" +version = "0.14.0" edition = { workspace = true } rust-version = { workspace = true } @@ -29,10 +29,10 @@ llvm = ["hugr-llvm/llvm14-0"] llvm-test = ["hugr-llvm/llvm14-0", "hugr-llvm/test-utils"] [dependencies] -hugr-model = { path = "../hugr-model", optional = true, version = "0.14.0" } -hugr-core = { path = "../hugr-core", version = "0.13.3" } -hugr-passes = { path = "../hugr-passes", version = "0.13.3" } -hugr-llvm = {path = "../hugr-llvm", version = "0.13.3", optional = true} +hugr-model = { path = "../hugr-model", optional = true, version = "0.15.0" } +hugr-core = { path = "../hugr-core", version = "0.14.0" } +hugr-passes = { path = "../hugr-passes", version = "0.14.0" } +hugr-llvm = {path = "../hugr-llvm", version = "0.14.0", optional = true} [dev-dependencies] rstest = { workspace = true }