From 66bc2c7a429de068bdc3586346d1f6b82bad794c Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Fri, 22 May 2026 00:18:07 -0400 Subject: [PATCH 1/5] =?UTF-8?q?WIP:=20Language=20fact-bundle=20expansion?= =?UTF-8?q?=20=E2=80=94=20manager=20closeout=20(snappy-bear-761)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/v4/extdeps/languages/swift.dag | 588 ++++++++++++++++++ .../manual/swift_language_model_anchor.dag | 19 + 2 files changed, 607 insertions(+) create mode 100644 src/v4/extdeps/languages/swift.dag create mode 100644 src/v4/test/claim/manual/swift_language_model_anchor.dag diff --git a/src/v4/extdeps/languages/swift.dag b/src/v4/extdeps/languages/swift.dag new file mode 100644 index 00000000000..d7994b3192d --- /dev/null +++ b/src/v4/extdeps/languages/swift.dag @@ -0,0 +1,588 @@ +// src/v4/extdeps/languages/swift.dag +// Scope: Swift language/standard-library scalar fact-bundles and ModelCore wave-1. +// Owns: SwiftIntWidth, SwiftScalar, SwiftIntegerPrimitiveFacts, SwiftFloatPrimitiveFacts, SwiftNonNumericPrimitiveFacts, SwiftLanguageModel, swift_*_facts, swift_model_core_wave1, swift_language_model_wave1. +// Consumes: v4.std.collection, v4.std.model_core, v4.std.node, v4.std.logic, v4.std.algebra. +// Status: T-4 Swift wave-1; fixed-width integer spellings are explicit, Int/UInt stay platform-word-width facts, Float/Double carry IEEE-754 precision, bool canonical-B decl-ref is E-6(b) staging. +// Anchor: https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics/ + +module v4.extdeps.languages.swift + +import v4.std.collection { List, Set, list_append, list_snoc_item } +import v4.std.model_core { + EffectSemanticsDecl, + ModelCore, + PartialitySemanticsDecl, + PrimitiveFactAxisBinding, + PrimitiveFactBundle, + primitive_fact_axis_encoding, + primitive_fact_axis_signedness, + primitive_fact_axis_surface_spelling, + primitive_fact_axis_width +} +import v4.std.node { Atom, Conj, Edge, Named, Node, Symbol, TypeNode } +import v4.std.logic { Bool, bool_boolean_algebra } +import v4.std.algebra { BooleanAlgebra, fold_list } + +// Swift's fixed-width integer spellings are one-at-a-time scalar widths. +// Int/UInt are word-sized aliases in the Swift Book, so they use PointerWord. +type SwiftIntWidth + = Bits8 + | Bits16 + | Bits32 + | Bits64 + | PointerWord + +type SwiftIntSignedness + = Signed + | Unsigned + +type SwiftFloatWidth + = Bits32 + | Bits64 + +type SwiftStringRepresentation {} + +type SwiftCharacterRepresentation {} + +type SwiftUnitRepresentation {} + +type SwiftBoolRepresentation {} + +type SwiftIntegerOverflowSemantics + = TrapOnOverflow + +type SwiftScalar + = IntScalar { signedness: SwiftIntSignedness, width: SwiftIntWidth } + | FloatScalar { width: SwiftFloatWidth } + | BoolScalar + | CharacterScalar + | StringScalar + | VoidScalar + +type SwiftIntegerPrimitiveFacts { + surface_spelling: Symbol + signedness: SwiftIntSignedness + width: SwiftIntWidth + overflow: SwiftIntegerOverflowSemantics +} + +type SwiftFloatPrimitiveFacts { + surface_spelling: Symbol + width: SwiftFloatWidth + ieee754_binary: Symbol +} + +type SwiftNonNumericValueFact + = BoolRepresentationFact { representation: SwiftBoolRepresentation } + | CharacterRepresentationFact { representation: SwiftCharacterRepresentation } + | StringRepresentationFact { representation: SwiftStringRepresentation } + | UnitRepresentationFact { representation: SwiftUnitRepresentation } + +type SwiftNonNumericPrimitiveFacts { + surface_spelling: Symbol + scalar: SwiftScalar + value_fact: SwiftNonNumericValueFact +} + +type SwiftLanguageModel { + language_identity: Symbol + canonical_symbols: Set + core: ModelCore +} + +data swift_language_model_surface_id: Symbol = swift_language_model_surface_id + +data swift_surface_spelling_int: Symbol = swift_surface_spelling_int +data swift_surface_spelling_int8: Symbol = swift_surface_spelling_int8 +data swift_surface_spelling_int16: Symbol = swift_surface_spelling_int16 +data swift_surface_spelling_int32: Symbol = swift_surface_spelling_int32 +data swift_surface_spelling_int64: Symbol = swift_surface_spelling_int64 +data swift_surface_spelling_uint: Symbol = swift_surface_spelling_uint +data swift_surface_spelling_uint8: Symbol = swift_surface_spelling_uint8 +data swift_surface_spelling_uint16: Symbol = swift_surface_spelling_uint16 +data swift_surface_spelling_uint32: Symbol = swift_surface_spelling_uint32 +data swift_surface_spelling_uint64: Symbol = swift_surface_spelling_uint64 +data swift_surface_spelling_float: Symbol = swift_surface_spelling_float +data swift_surface_spelling_double: Symbol = swift_surface_spelling_double +data swift_surface_spelling_bool: Symbol = swift_surface_spelling_bool +data swift_surface_spelling_character: Symbol = swift_surface_spelling_character +data swift_surface_spelling_string: Symbol = swift_surface_spelling_string +data swift_surface_spelling_void: Symbol = swift_surface_spelling_void + +data swift_facts_field_surface_spelling: Symbol = swift_facts_field_surface_spelling +data swift_facts_field_signedness: Symbol = swift_facts_field_signedness +data swift_facts_field_width: Symbol = swift_facts_field_width +data swift_facts_field_overflow: Symbol = swift_facts_field_overflow +data swift_facts_field_ieee754_binary: Symbol = swift_facts_field_ieee754_binary +data swift_facts_field_scalar: Symbol = swift_facts_field_scalar +data swift_facts_field_value_fact: Symbol = swift_facts_field_value_fact + +data swift_primitive_fact_axis_overflow_semantics: Symbol = swift_primitive_fact_axis_overflow_semantics +data swift_primitive_fact_axis_scalar_classifier: Symbol = swift_primitive_fact_axis_scalar_classifier + +data swift_tag_signed: Symbol = swift_tag_signed +data swift_tag_unsigned: Symbol = swift_tag_unsigned +data swift_tag_bits8: Symbol = swift_tag_bits8 +data swift_tag_bits16: Symbol = swift_tag_bits16 +data swift_tag_bits32: Symbol = swift_tag_bits32 +data swift_tag_bits64: Symbol = swift_tag_bits64 +data swift_tag_pointer_word: Symbol = swift_tag_pointer_word +data swift_tag_trap_on_overflow: Symbol = swift_tag_trap_on_overflow +data swift_tag_ieee754_binary32: Symbol = swift_tag_ieee754_binary32 +data swift_tag_ieee754_binary64: Symbol = swift_tag_ieee754_binary64 +data swift_tag_bool_representation: Symbol = swift_tag_bool_representation +data swift_tag_character_extended_grapheme_cluster: Symbol = swift_tag_character_extended_grapheme_cluster +data swift_tag_string_unicode_text: Symbol = swift_tag_string_unicode_text +data swift_tag_void_empty_tuple: Symbol = swift_tag_void_empty_tuple +data swift_tag_scalar_int: Symbol = swift_tag_scalar_int +data swift_tag_scalar_float: Symbol = swift_tag_scalar_float +data swift_tag_scalar_bool: Symbol = swift_tag_scalar_bool +data swift_tag_scalar_character: Symbol = swift_tag_scalar_character +data swift_tag_scalar_string: Symbol = swift_tag_scalar_string +data swift_tag_scalar_void: Symbol = swift_tag_scalar_void + +data swift_integer_overflow_trap: SwiftIntegerOverflowSemantics = TrapOnOverflow +data swift_bool_representation: SwiftBoolRepresentation = SwiftBoolRepresentation {} +data swift_character_representation: SwiftCharacterRepresentation = SwiftCharacterRepresentation {} +data swift_string_representation: SwiftStringRepresentation = SwiftStringRepresentation {} +data swift_unit_representation: SwiftUnitRepresentation = SwiftUnitRepresentation {} + +data swift_facts_int: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_int, + signedness: Signed, + width: PointerWord, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_int8: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_int8, + signedness: Signed, + width: Bits8, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_int16: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_int16, + signedness: Signed, + width: Bits16, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_int32: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_int32, + signedness: Signed, + width: Bits32, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_int64: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_int64, + signedness: Signed, + width: Bits64, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_uint: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_uint, + signedness: Unsigned, + width: PointerWord, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_uint8: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_uint8, + signedness: Unsigned, + width: Bits8, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_uint16: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_uint16, + signedness: Unsigned, + width: Bits16, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_uint32: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_uint32, + signedness: Unsigned, + width: Bits32, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_uint64: SwiftIntegerPrimitiveFacts = SwiftIntegerPrimitiveFacts { + surface_spelling: swift_surface_spelling_uint64, + signedness: Unsigned, + width: Bits64, + overflow: swift_integer_overflow_trap, +} + +data swift_facts_float: SwiftFloatPrimitiveFacts = SwiftFloatPrimitiveFacts { + surface_spelling: swift_surface_spelling_float, + width: Bits32, + ieee754_binary: swift_tag_ieee754_binary32, +} + +data swift_facts_double: SwiftFloatPrimitiveFacts = SwiftFloatPrimitiveFacts { + surface_spelling: swift_surface_spelling_double, + width: Bits64, + ieee754_binary: swift_tag_ieee754_binary64, +} + +data swift_facts_bool: SwiftNonNumericPrimitiveFacts = SwiftNonNumericPrimitiveFacts { + surface_spelling: swift_surface_spelling_bool, + scalar: BoolScalar, + value_fact: BoolRepresentationFact { representation: swift_bool_representation }, +} + +data swift_facts_character: SwiftNonNumericPrimitiveFacts = SwiftNonNumericPrimitiveFacts { + surface_spelling: swift_surface_spelling_character, + scalar: CharacterScalar, + value_fact: CharacterRepresentationFact { representation: swift_character_representation }, +} + +data swift_facts_string: SwiftNonNumericPrimitiveFacts = SwiftNonNumericPrimitiveFacts { + surface_spelling: swift_surface_spelling_string, + scalar: StringScalar, + value_fact: StringRepresentationFact { representation: swift_string_representation }, +} + +data swift_facts_void: SwiftNonNumericPrimitiveFacts = SwiftNonNumericPrimitiveFacts { + surface_spelling: swift_surface_spelling_void, + scalar: VoidScalar, + value_fact: UnitRepresentationFact { representation: swift_unit_representation }, +} + +data swift_integer_facts_catalog: List = [ + swift_facts_int, + swift_facts_int8, + swift_facts_int16, + swift_facts_int32, + swift_facts_int64, + swift_facts_uint, + swift_facts_uint8, + swift_facts_uint16, + swift_facts_uint32, + swift_facts_uint64 +] + +data swift_float_facts_catalog: List = [ + swift_facts_float, + swift_facts_double +] + +data swift_nonnumeric_facts_catalog: List = [ + swift_facts_bool, + swift_facts_character, + swift_facts_string, + swift_facts_void +] + +// 🟡 canonical-B decl-ref · E-6(b) bounded-exception · scaffold feature:canonical-b-grounding-consumer · dissolve-on: B1-CANON+zip-fold consume the Swift bool row for coincidence-checking. +data swift_bool_grounding: BooleanAlgebra = bool_boolean_algebra + +fn swift_atom(id: Symbol) -> Node { + Node { + kind: TypeNode { connective: Atom { identity: id } }, + children: [] + } +} + +fn swift_named_edge(name: Symbol, target: Node) -> Edge { + Edge { label: Named { name: name }, target: target } +} + +fn swift_signedness_node(signedness: SwiftIntSignedness) -> Node { + match signedness { + Signed => swift_atom(id: swift_tag_signed) + Unsigned => swift_atom(id: swift_tag_unsigned) + } +} + +fn swift_width_node(width: SwiftIntWidth) -> Node { + match width { + Bits8 => swift_atom(id: swift_tag_bits8) + Bits16 => swift_atom(id: swift_tag_bits16) + Bits32 => swift_atom(id: swift_tag_bits32) + Bits64 => swift_atom(id: swift_tag_bits64) + PointerWord => swift_atom(id: swift_tag_pointer_word) + } +} + +fn swift_float_width_node(width: SwiftFloatWidth) -> Node { + match width { + Bits32 => swift_atom(id: swift_tag_bits32) + Bits64 => swift_atom(id: swift_tag_bits64) + } +} + +fn swift_overflow_node(overflow: SwiftIntegerOverflowSemantics) -> Node { + match overflow { + TrapOnOverflow => swift_atom(id: swift_tag_trap_on_overflow) + } +} + +fn swift_scalar_node(scalar: SwiftScalar) -> Node { + match scalar { + IntScalar { signedness: _, width: _ } => swift_atom(id: swift_tag_scalar_int) + FloatScalar { width: _ } => swift_atom(id: swift_tag_scalar_float) + BoolScalar => swift_atom(id: swift_tag_scalar_bool) + CharacterScalar => swift_atom(id: swift_tag_scalar_character) + StringScalar => swift_atom(id: swift_tag_scalar_string) + VoidScalar => swift_atom(id: swift_tag_scalar_void) + } +} + +fn swift_value_fact_node(value_fact: SwiftNonNumericValueFact) -> Node { + match value_fact { + BoolRepresentationFact { representation: _ } => + swift_atom(id: swift_tag_bool_representation) + CharacterRepresentationFact { representation: _ } => + swift_atom(id: swift_tag_character_extended_grapheme_cluster) + StringRepresentationFact { representation: _ } => + swift_atom(id: swift_tag_string_unicode_text) + UnitRepresentationFact { representation: _ } => + swift_atom(id: swift_tag_void_empty_tuple) + } +} + +fn swift_integer_facts_node(facts: SwiftIntegerPrimitiveFacts) -> Node { + Node { + kind: TypeNode { connective: Conj }, + children: [ + swift_named_edge( + name: swift_facts_field_surface_spelling, + target: swift_atom(id: facts.surface_spelling) + ), + swift_named_edge( + name: swift_facts_field_signedness, + target: swift_signedness_node(signedness: facts.signedness) + ), + swift_named_edge( + name: swift_facts_field_width, + target: swift_width_node(width: facts.width) + ), + swift_named_edge( + name: swift_facts_field_overflow, + target: swift_overflow_node(overflow: facts.overflow) + ) + ] + } +} + +fn swift_float_facts_node(facts: SwiftFloatPrimitiveFacts) -> Node { + Node { + kind: TypeNode { connective: Conj }, + children: [ + swift_named_edge( + name: swift_facts_field_surface_spelling, + target: swift_atom(id: facts.surface_spelling) + ), + swift_named_edge( + name: swift_facts_field_width, + target: swift_float_width_node(width: facts.width) + ), + swift_named_edge( + name: swift_facts_field_ieee754_binary, + target: swift_atom(id: facts.ieee754_binary) + ) + ] + } +} + +fn swift_nonnumeric_facts_node(facts: SwiftNonNumericPrimitiveFacts) -> Node { + Node { + kind: TypeNode { connective: Conj }, + children: [ + swift_named_edge( + name: swift_facts_field_surface_spelling, + target: swift_atom(id: facts.surface_spelling) + ), + swift_named_edge( + name: swift_facts_field_scalar, + target: swift_scalar_node(scalar: facts.scalar) + ), + swift_named_edge( + name: swift_facts_field_value_fact, + target: swift_value_fact_node(value_fact: facts.value_fact) + ) + ] + } +} + +fn swift_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { + PrimitiveFactAxisBinding { axis: axis, fact: fact } +} + +fn swift_primitive_bundle_from_integer_facts(facts: SwiftIntegerPrimitiveFacts) -> PrimitiveFactBundle { + PrimitiveFactBundle { + substrate_carrier: swift_integer_facts_node(facts: facts), + spec_facts: [ + swift_primitive_axis_binding( + axis: primitive_fact_axis_surface_spelling, + fact: swift_atom(id: facts.surface_spelling) + ), + swift_primitive_axis_binding( + axis: primitive_fact_axis_signedness, + fact: swift_signedness_node(signedness: facts.signedness) + ), + swift_primitive_axis_binding( + axis: primitive_fact_axis_width, + fact: swift_width_node(width: facts.width) + ), + swift_primitive_axis_binding( + axis: swift_primitive_fact_axis_overflow_semantics, + fact: swift_overflow_node(overflow: facts.overflow) + ) + ] + } +} + +fn swift_primitive_bundle_from_float_facts(facts: SwiftFloatPrimitiveFacts) -> PrimitiveFactBundle { + PrimitiveFactBundle { + substrate_carrier: swift_float_facts_node(facts: facts), + spec_facts: [ + swift_primitive_axis_binding( + axis: primitive_fact_axis_surface_spelling, + fact: swift_atom(id: facts.surface_spelling) + ), + swift_primitive_axis_binding( + axis: primitive_fact_axis_width, + fact: swift_float_width_node(width: facts.width) + ), + swift_primitive_axis_binding( + axis: primitive_fact_axis_encoding, + fact: swift_atom(id: facts.ieee754_binary) + ) + ] + } +} + +fn swift_primitive_bundle_from_nonnumeric_facts( + facts: SwiftNonNumericPrimitiveFacts +) -> PrimitiveFactBundle { + PrimitiveFactBundle { + substrate_carrier: swift_nonnumeric_facts_node(facts: facts), + spec_facts: [ + swift_primitive_axis_binding( + axis: primitive_fact_axis_surface_spelling, + fact: swift_atom(id: facts.surface_spelling) + ), + swift_primitive_axis_binding( + axis: swift_primitive_fact_axis_scalar_classifier, + fact: swift_scalar_node(scalar: facts.scalar) + ) + ] + } +} + +fn swift_primitive_bundles_from_integer_catalog() -> List { + fold_list( + xs: swift_integer_facts_catalog, + empty: Empty, + cons: fn(acc, facts) { + list_snoc_item( + xs: acc, + item: swift_primitive_bundle_from_integer_facts(facts: facts) + ) + } + ) +} + +fn swift_primitive_bundles_from_float_catalog() -> List { + fold_list( + xs: swift_float_facts_catalog, + empty: Empty, + cons: fn(acc, facts) { + list_snoc_item( + xs: acc, + item: swift_primitive_bundle_from_float_facts(facts: facts) + ) + } + ) +} + +fn swift_primitive_bundles_from_nonnumeric_catalog() -> List { + fold_list( + xs: swift_nonnumeric_facts_catalog, + empty: Empty, + cons: fn(acc, facts) { + list_snoc_item( + xs: acc, + item: swift_primitive_bundle_from_nonnumeric_facts(facts: facts) + ) + } + ) +} + +fn swift_wave1_primitive_fact_bundles() -> List { + list_append( + left: list_append( + left: swift_primitive_bundles_from_integer_catalog(), + right: swift_primitive_bundles_from_float_catalog() + ), + right: swift_primitive_bundles_from_nonnumeric_catalog() + ) +} + +fn swift_integer_catalog_surface_symbol(sym: Symbol) -> Bool { + fold_list( + xs: swift_integer_facts_catalog, + empty: false, + cons: fn(acc, facts) { + acc || sym == facts.surface_spelling + } + ) +} + +fn swift_float_catalog_surface_symbol(sym: Symbol) -> Bool { + fold_list( + xs: swift_float_facts_catalog, + empty: false, + cons: fn(acc, facts) { + acc || sym == facts.surface_spelling + } + ) +} + +fn swift_nonnumeric_catalog_surface_symbol(sym: Symbol) -> Bool { + fold_list( + xs: swift_nonnumeric_facts_catalog, + empty: false, + cons: fn(acc, facts) { + acc || sym == facts.surface_spelling + } + ) +} + +fn swift_catalog_surface_symbol(sym: Symbol) -> Bool { + swift_integer_catalog_surface_symbol(sym: sym) || + swift_float_catalog_surface_symbol(sym: sym) || + swift_nonnumeric_catalog_surface_symbol(sym: sym) +} + +fn swift_language_model_canonical_symbols() -> Set { + Set { + member: fn(sym) { + swift_catalog_surface_symbol(sym: sym) + } + } +} + +fn swift_model_core_wave1() -> ModelCore { + ModelCore { + primitives: swift_wave1_primitive_fact_bundles(), + inhabitance: [], + laws: [], + effects: EffectSemanticsDecl { operations: [] }, + partiality: PartialitySemanticsDecl { operations: [] } + } +} + +fn swift_language_model_wave1() -> SwiftLanguageModel { + SwiftLanguageModel { + language_identity: swift_language_model_surface_id, + canonical_symbols: swift_language_model_canonical_symbols(), + core: swift_model_core_wave1() + } +} diff --git a/src/v4/test/claim/manual/swift_language_model_anchor.dag b/src/v4/test/claim/manual/swift_language_model_anchor.dag new file mode 100644 index 00000000000..cbe7b87d583 --- /dev/null +++ b/src/v4/test/claim/manual/swift_language_model_anchor.dag @@ -0,0 +1,19 @@ +// src/v4/test/claim/manual/swift_language_model_anchor.dag +// Scope: T-4 compile anchor — swift.dag LanguageModel and ModelCore wave-1. +// Owns: swift_anchor_language_model, swift_anchor_core. +// Consumes: extdeps/languages/swift.dag. +// Status: compile-only anchor. + +module v4.test.claim.manual.swift_language_model_anchor + +import v4.extdeps.languages.swift { + SwiftLanguageModel, + swift_language_model_wave1, + swift_model_core_wave1 +} +import v4.std.model_core { ModelCore } + +type swift_anchor_language_model = SwiftLanguageModel + +data swift_anchor_wave1: swift_anchor_language_model = swift_language_model_wave1() +data swift_anchor_core: ModelCore = swift_model_core_wave1() From 020e9304417eb619aaf8a9a3f51b3790f6eb691b Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Fri, 22 May 2026 00:21:47 -0400 Subject: [PATCH 2/5] =?UTF-8?q?WIP:=20Language=20fact-bundle=20expansion?= =?UTF-8?q?=20=E2=80=94=20manager=20closeout=20(snappy-bear-761)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/v4/extdeps/languages/swift.dag | 126 +++++++++++++++--------- src/v4/extdeps/languages/typescript.dag | 81 +++++++++------ 2 files changed, 129 insertions(+), 78 deletions(-) diff --git a/src/v4/extdeps/languages/swift.dag b/src/v4/extdeps/languages/swift.dag index d7994b3192d..a51cf5e5a55 100644 --- a/src/v4/extdeps/languages/swift.dag +++ b/src/v4/extdeps/languages/swift.dag @@ -7,12 +7,11 @@ module v4.extdeps.languages.swift -import v4.std.collection { List, Set, list_append, list_snoc_item } +import v4.std.collection { List, Map, Set, list_append, list_snoc_item } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_signedness, @@ -410,51 +409,90 @@ fn swift_nonnumeric_facts_node(facts: SwiftNonNumericPrimitiveFacts) -> Node { } } -fn swift_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn swift_primitive_fact_map_4( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ) +} + +fn swift_primitive_fact_map_3( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node +) -> Map { + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ) +} + +fn swift_primitive_fact_map_2( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node +) -> Map { + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ) } fn swift_primitive_bundle_from_integer_facts(facts: SwiftIntegerPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: swift_integer_facts_node(facts: facts), - spec_facts: [ - swift_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: swift_atom(id: facts.surface_spelling) - ), - swift_primitive_axis_binding( - axis: primitive_fact_axis_signedness, - fact: swift_signedness_node(signedness: facts.signedness) - ), - swift_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: swift_width_node(width: facts.width) - ), - swift_primitive_axis_binding( - axis: swift_primitive_fact_axis_overflow_semantics, - fact: swift_overflow_node(overflow: facts.overflow) - ) - ] + spec_facts: swift_primitive_fact_map_4( + axis0: primitive_fact_axis_surface_spelling, + fact0: swift_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_signedness, + fact1: swift_signedness_node(signedness: facts.signedness), + axis2: primitive_fact_axis_width, + fact2: swift_width_node(width: facts.width), + axis3: swift_primitive_fact_axis_overflow_semantics, + fact3: swift_overflow_node(overflow: facts.overflow) + ) } } fn swift_primitive_bundle_from_float_facts(facts: SwiftFloatPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: swift_float_facts_node(facts: facts), - spec_facts: [ - swift_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: swift_atom(id: facts.surface_spelling) - ), - swift_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: swift_float_width_node(width: facts.width) - ), - swift_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: swift_atom(id: facts.ieee754_binary) - ) - ] + spec_facts: swift_primitive_fact_map_3( + axis0: primitive_fact_axis_surface_spelling, + fact0: swift_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: swift_float_width_node(width: facts.width), + axis2: primitive_fact_axis_encoding, + fact2: swift_atom(id: facts.ieee754_binary) + ) } } @@ -463,16 +501,12 @@ fn swift_primitive_bundle_from_nonnumeric_facts( ) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: swift_nonnumeric_facts_node(facts: facts), - spec_facts: [ - swift_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: swift_atom(id: facts.surface_spelling) - ), - swift_primitive_axis_binding( - axis: swift_primitive_fact_axis_scalar_classifier, - fact: swift_scalar_node(scalar: facts.scalar) - ) - ] + spec_facts: swift_primitive_fact_map_2( + axis0: primitive_fact_axis_surface_spelling, + fact0: swift_atom(id: facts.surface_spelling), + axis1: swift_primitive_fact_axis_scalar_classifier, + fact1: swift_scalar_node(scalar: facts.scalar) + ) } } diff --git a/src/v4/extdeps/languages/typescript.dag b/src/v4/extdeps/languages/typescript.dag index 171b3bbbdf1..70a98130b90 100644 --- a/src/v4/extdeps/languages/typescript.dag +++ b/src/v4/extdeps/languages/typescript.dag @@ -9,12 +9,11 @@ module v4.extdeps.languages.typescript -import v4.std.collection { List, Set } +import v4.std.collection { List, Map, Set } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_surface_spelling, @@ -30,7 +29,7 @@ import v4.std.node { TypeNode } import v4.std.logic { Bool, bool_boolean_algebra } -import v4.std.algebra { BooleanAlgebra, free_monoid_fold } +import v4.std.algebra { BooleanAlgebra, fold_list } import v4.std.target_model { target_model_edge_declared_inhabitants } // 🟢 grounded. @@ -248,7 +247,7 @@ fn ts_wave1_target_model() -> Node { } fn ts_list_snoc_item(xs: List, item: T) -> List { - free_monoid_fold( + fold_list( xs: xs, empty: Cons { head: item, tail: Empty }, cons: fn(rest, existing) { @@ -265,7 +264,7 @@ fn ts_catalog_surface_symbol_step(sym: Symbol, acc: Bool, row: TsEcma262NumericP } fn ts_catalog_surface_symbol(sym: Symbol) -> Bool { - free_monoid_fold( + fold_list( xs: ts_numeric_facts_catalog, empty: false, cons: fn(acc, row) { @@ -282,43 +281,61 @@ fn ts_language_model_canonical_symbols() -> Set { } } -fn ts_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn ts_primitive_fact_map_3( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node +) -> Map { + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ) +} + +fn ts_primitive_fact_map_2( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node +) -> Map { + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ) } fn ts_primitive_bundle_from_number_facts(facts: TsNumberPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: ts_number_facts_node(facts: facts), - spec_facts: [ - ts_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: ts_inhabitant_atom(id: facts.surface_spelling) - ), - ts_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: ts_inhabitant_atom(id: ts_tag_bits64) - ), - ts_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: ts_inhabitant_atom(id: facts.ieee754_binary) - ) - ] + spec_facts: ts_primitive_fact_map_3( + axis0: primitive_fact_axis_surface_spelling, + fact0: ts_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: ts_inhabitant_atom(id: ts_tag_bits64), + axis2: primitive_fact_axis_encoding, + fact2: ts_inhabitant_atom(id: facts.ieee754_binary) + ) } } fn ts_primitive_bundle_from_bigint_facts(facts: TsBigIntPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: ts_bigint_facts_node(facts: facts), - spec_facts: [ - ts_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: ts_inhabitant_atom(id: facts.surface_spelling) - ), - ts_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: ts_inhabitant_atom(id: facts.encoding) - ) - ] + spec_facts: ts_primitive_fact_map_2( + axis0: primitive_fact_axis_surface_spelling, + fact0: ts_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_encoding, + fact1: ts_inhabitant_atom(id: facts.encoding) + ) } } @@ -341,7 +358,7 @@ fn ts_primitive_bundles_from_catalog_step( } fn ts_wave1_primitive_fact_bundles() -> List { - free_monoid_fold( + fold_list( xs: ts_numeric_facts_catalog, empty: Empty, cons: fn(acc, row) { From 749e16dd168386b0908fd694811351060c9134fa Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Fri, 22 May 2026 00:23:00 -0400 Subject: [PATCH 3/5] =?UTF-8?q?WIP:=20Language=20fact-bundle=20expansion?= =?UTF-8?q?=20=E2=80=94=20manager=20closeout=20(snappy-bear-761)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/v4/extdeps/languages/java.dag | 126 ++++++++++++------- src/v4/extdeps/languages/kotlin.dag | 186 ++++++++++++++++++---------- 2 files changed, 200 insertions(+), 112 deletions(-) diff --git a/src/v4/extdeps/languages/java.dag b/src/v4/extdeps/languages/java.dag index e5fcd9820d4..da7a52d9bd1 100644 --- a/src/v4/extdeps/languages/java.dag +++ b/src/v4/extdeps/languages/java.dag @@ -31,12 +31,11 @@ import v4.compiler.tokenize { SequencePattern, TokenRule } -import v4.std.collection { List, Set, list_append, list_snoc_item } +import v4.std.collection { List, Map, Set, list_append, list_snoc_item } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_overflow_disposition, @@ -995,51 +994,90 @@ fn java_language_model_canonical_symbols() -> Set { } } -fn java_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn java_primitive_fact_map_4( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ) +} + +fn java_primitive_fact_map_3( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node +) -> Map { + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ) +} + +fn java_primitive_fact_map_2( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node +) -> Map { + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ) } fn java_primitive_bundle_from_integer_facts(facts: JavaIntegerPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: java_integer_facts_node(facts: facts), - spec_facts: [ - java_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: java_inhabitant_atom(id: facts.surface_spelling) - ), - java_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: java_int_width_node(width: facts.width) - ), - java_primitive_axis_binding( - axis: primitive_fact_axis_signedness, - fact: java_int_kind_node(kind: facts.signedness) - ), - java_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: java_integer_encoding_fact(facts: facts) - ) - ] + spec_facts: java_primitive_fact_map_4( + axis0: primitive_fact_axis_surface_spelling, + fact0: java_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: java_int_width_node(width: facts.width), + axis2: primitive_fact_axis_signedness, + fact2: java_int_kind_node(kind: facts.signedness), + axis3: primitive_fact_axis_encoding, + fact3: java_integer_encoding_fact(facts: facts) + ) } } fn java_primitive_bundle_from_float_facts(facts: JavaFloatPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: java_float_facts_node(facts: facts), - spec_facts: [ - java_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: java_inhabitant_atom(id: facts.surface_spelling) - ), - java_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: java_float_width_node(width: facts.width) - ), - java_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: java_inhabitant_atom(id: facts.ieee754_binary) - ) - ] + spec_facts: java_primitive_fact_map_3( + axis0: primitive_fact_axis_surface_spelling, + fact0: java_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: java_float_width_node(width: facts.width), + axis2: primitive_fact_axis_encoding, + fact2: java_inhabitant_atom(id: facts.ieee754_binary) + ) } } @@ -1048,16 +1086,12 @@ fn java_primitive_bundle_from_noninteger_facts( ) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: java_noninteger_facts_node(facts: facts), - spec_facts: [ - java_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: java_inhabitant_atom(id: facts.surface_spelling) - ), - java_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: java_inhabitant_atom(id: facts.representation) - ) - ] + spec_facts: java_primitive_fact_map_2( + axis0: primitive_fact_axis_surface_spelling, + fact0: java_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_encoding, + fact1: java_inhabitant_atom(id: facts.representation) + ) } } diff --git a/src/v4/extdeps/languages/kotlin.dag b/src/v4/extdeps/languages/kotlin.dag index 9d66da4499d..c9ca99d8aa6 100644 --- a/src/v4/extdeps/languages/kotlin.dag +++ b/src/v4/extdeps/languages/kotlin.dag @@ -9,12 +9,11 @@ module v4.extdeps.languages.kotlin import v4.compiler.parse { Grammar, VoidGrammar } import v4.compiler.tokenize { LexRules, VoidLexRules } -import v4.std.collection { List, Set, list_append, list_snoc_item } +import v4.std.collection { List, Map, Set, list_append, list_snoc_item } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_overflow_disposition, primitive_fact_axis_signedness, @@ -416,8 +415,91 @@ fn kotlin_nonnumeric_facts_node(facts: KotlinNonNumericPrimitiveFacts) -> Node { } } -fn kotlin_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn kotlin_primitive_fact_map_6( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node, + axis4: Symbol, + fact4: Node, + axis5: Symbol, + fact5: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ), + axis4, + fact4 + ), + axis5, + fact5 + ) +} + +fn kotlin_primitive_fact_map_5( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node, + axis4: Symbol, + fact4: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ), + axis4, + fact4 + ) +} + +fn kotlin_primitive_fact_map_3( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node +) -> Map { + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ) } fn kotlin_nonnumeric_value_fact_field(value_fact: KotlinNonNumericValueFact) -> Symbol { @@ -480,60 +562,38 @@ fn kotlin_primitive_bundle_from_integer_facts( ) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: kotlin_integer_facts_node(facts: facts), - spec_facts: [ - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: kotlin_atom(id: facts.surface_spelling) - ), - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: kotlin_int_width_node(width: facts.width) - ), - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_signedness, - fact: kotlin_atom(id: kotlin_tag_signed) - ), - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_overflow_disposition, - fact: kotlin_overflow_node(overflow: facts.overflow) - ), - kotlin_primitive_axis_binding( - axis: kotlin_primitive_fact_axis_runtime_representation, - fact: kotlin_runtime_representation_node(representation: facts.representation) - ), - kotlin_primitive_axis_binding( - axis: kotlin_primitive_fact_axis_scalar_classifier, - fact: kotlin_scalar_node(scalar: IntScalar { width: facts.width }) - ) - ] + spec_facts: kotlin_primitive_fact_map_6( + axis0: primitive_fact_axis_surface_spelling, + fact0: kotlin_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: kotlin_int_width_node(width: facts.width), + axis2: primitive_fact_axis_signedness, + fact2: kotlin_atom(id: kotlin_tag_signed), + axis3: primitive_fact_axis_overflow_disposition, + fact3: kotlin_overflow_node(overflow: facts.overflow), + axis4: kotlin_primitive_fact_axis_runtime_representation, + fact4: kotlin_runtime_representation_node(representation: facts.representation), + axis5: kotlin_primitive_fact_axis_scalar_classifier, + fact5: kotlin_scalar_node(scalar: IntScalar { width: facts.width }) + ) } } fn kotlin_primitive_bundle_from_float_facts(facts: KotlinFloatPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: kotlin_float_facts_node(facts: facts), - spec_facts: [ - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: kotlin_atom(id: facts.surface_spelling) - ), - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: kotlin_float_width_node(width: facts.width) - ), - kotlin_primitive_axis_binding( - axis: kotlin_primitive_fact_axis_value_format, - fact: kotlin_float_value_format_node(value_format: facts.value_format) - ), - kotlin_primitive_axis_binding( - axis: kotlin_primitive_fact_axis_runtime_representation, - fact: kotlin_runtime_representation_node(representation: facts.representation) - ), - kotlin_primitive_axis_binding( - axis: kotlin_primitive_fact_axis_scalar_classifier, - fact: kotlin_scalar_node(scalar: FloatScalar { width: facts.width }) - ) - ] + spec_facts: kotlin_primitive_fact_map_5( + axis0: primitive_fact_axis_surface_spelling, + fact0: kotlin_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: kotlin_float_width_node(width: facts.width), + axis2: kotlin_primitive_fact_axis_value_format, + fact2: kotlin_float_value_format_node(value_format: facts.value_format), + axis3: kotlin_primitive_fact_axis_runtime_representation, + fact3: kotlin_runtime_representation_node(representation: facts.representation), + axis4: kotlin_primitive_fact_axis_scalar_classifier, + fact4: kotlin_scalar_node(scalar: FloatScalar { width: facts.width }) + ) } } @@ -542,20 +602,14 @@ fn kotlin_primitive_bundle_from_nonnumeric_facts( ) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: kotlin_nonnumeric_facts_node(facts: facts), - spec_facts: [ - kotlin_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: kotlin_atom(id: facts.surface_spelling) - ), - kotlin_primitive_axis_binding( - axis: kotlin_nonnumeric_value_fact_axis(value_fact: facts.value_fact), - fact: kotlin_nonnumeric_value_fact_node(value_fact: facts.value_fact) - ), - kotlin_primitive_axis_binding( - axis: kotlin_primitive_fact_axis_scalar_classifier, - fact: kotlin_scalar_node(scalar: facts.scalar) - ) - ] + spec_facts: kotlin_primitive_fact_map_3( + axis0: primitive_fact_axis_surface_spelling, + fact0: kotlin_atom(id: facts.surface_spelling), + axis1: kotlin_nonnumeric_value_fact_axis(value_fact: facts.value_fact), + fact1: kotlin_nonnumeric_value_fact_node(value_fact: facts.value_fact), + axis2: kotlin_primitive_fact_axis_scalar_classifier, + fact2: kotlin_scalar_node(scalar: facts.scalar) + ) } } From e5431065a2f3b17eaff93aa0b91574ced6c1e77b Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Fri, 22 May 2026 00:24:25 -0400 Subject: [PATCH 4/5] =?UTF-8?q?WIP:=20Language=20fact-bundle=20expansion?= =?UTF-8?q?=20=E2=80=94=20manager=20closeout=20(snappy-bear-761)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/v4/extdeps/languages/lean.dag | 85 ++++++++++------- src/v4/extdeps/languages/llvm_ir.dag | 73 +++++++++------ src/v4/extdeps/languages/machine_code.dag | 69 ++++++++------ src/v4/extdeps/languages/swift.dag | 40 ++++++-- src/v4/extdeps/languages/wasm.dag | 109 ++++++++++++++-------- 5 files changed, 240 insertions(+), 136 deletions(-) diff --git a/src/v4/extdeps/languages/lean.dag b/src/v4/extdeps/languages/lean.dag index 9cf89f94abd..fd52b034fc3 100644 --- a/src/v4/extdeps/languages/lean.dag +++ b/src/v4/extdeps/languages/lean.dag @@ -7,14 +7,13 @@ module v4.extdeps.languages.lean -import v4.std.collection { List, Set } +import v4.std.collection { List, Map, Set } import v4.std.logic { Bool, bool_boolean_algebra } import v4.std.algebra { BooleanAlgebra, fold_list } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_signedness, @@ -459,8 +458,42 @@ fn lean_list_snoc_item(xs: List, item: T) -> List { } -fn lean_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn lean_primitive_fact_map_4( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ) +} + +fn lean_primitive_fact_map_2( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node +) -> Map { + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ) } @@ -468,37 +501,25 @@ fn lean_primitive_bundle_from_facts(facts: LeanPrimitiveFacts) -> PrimitiveFactB match facts.scalar { IntScalar { kind, width } => PrimitiveFactBundle { substrate_carrier: lean_primitive_facts_node(facts: facts), - spec_facts: [ - lean_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: lean_inhabitant_atom(id: facts.surface_spelling) - ), - lean_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: lean_int_width_node(width: width) - ), - lean_primitive_axis_binding( - axis: primitive_fact_axis_signedness, - fact: lean_int_kind_node(kind: kind) - ), - lean_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: lean_inhabitant_atom(id: facts.representation) - ) - ] + spec_facts: lean_primitive_fact_map_4( + axis0: primitive_fact_axis_surface_spelling, + fact0: lean_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: lean_int_width_node(width: width), + axis2: primitive_fact_axis_signedness, + fact2: lean_int_kind_node(kind: kind), + axis3: primitive_fact_axis_encoding, + fact3: lean_inhabitant_atom(id: facts.representation) + ) } BoolScalar => PrimitiveFactBundle { substrate_carrier: lean_primitive_facts_node(facts: facts), - spec_facts: [ - lean_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: lean_inhabitant_atom(id: facts.surface_spelling) - ), - lean_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: lean_inhabitant_atom(id: facts.representation) - ) - ] + spec_facts: lean_primitive_fact_map_2( + axis0: primitive_fact_axis_surface_spelling, + fact0: lean_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_encoding, + fact1: lean_inhabitant_atom(id: facts.representation) + ) } } } diff --git a/src/v4/extdeps/languages/llvm_ir.dag b/src/v4/extdeps/languages/llvm_ir.dag index 5746fdea5cf..ab513bd254b 100644 --- a/src/v4/extdeps/languages/llvm_ir.dag +++ b/src/v4/extdeps/languages/llvm_ir.dag @@ -13,12 +13,11 @@ module v4.extdeps.languages.llvm_ir import v4.extdeps.languages.fidelity { FidelityDisposition } import v4.std.algebra { fold_list } import v4.std.cardinality { NonZeroNat } -import v4.std.collection { List } +import v4.std.collection { List, Map } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_surface_spelling, @@ -763,43 +762,61 @@ fn llvm_list_append(left: List, right: List) -> List { ) } -fn llvm_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn llvm_primitive_fact_map_3( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node +) -> Map { + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ) +} + +fn llvm_primitive_fact_map_2( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node +) -> Map { + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ) } fn llvm_primitive_bundle_from_integer_facts(facts: LlvmIntegerPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: llvm_integer_facts_node(facts: facts), - spec_facts: [ - llvm_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: llvm_inhabitant_atom(id: facts.surface_spelling) - ), - llvm_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: llvm_wave1_integer_bits_node(wave1_bits: facts.wave1_bits) - ), - llvm_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: llvm_inhabitant_atom(id: llvm_repr_sign_agnostic_integer) - ) - ] + spec_facts: llvm_primitive_fact_map_3( + axis0: primitive_fact_axis_surface_spelling, + fact0: llvm_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: llvm_wave1_integer_bits_node(wave1_bits: facts.wave1_bits), + axis2: primitive_fact_axis_encoding, + fact2: llvm_inhabitant_atom(id: llvm_repr_sign_agnostic_integer) + ) } } fn llvm_primitive_bundle_from_float_facts(facts: LlvmFloatPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: llvm_float_facts_node(facts: facts), - spec_facts: [ - llvm_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: llvm_inhabitant_atom(id: facts.surface_spelling) - ), - llvm_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: llvm_wave1_float_kind_node(kind: facts.kind) - ) - ] + spec_facts: llvm_primitive_fact_map_2( + axis0: primitive_fact_axis_surface_spelling, + fact0: llvm_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_encoding, + fact1: llvm_wave1_float_kind_node(kind: facts.kind) + ) } } diff --git a/src/v4/extdeps/languages/machine_code.dag b/src/v4/extdeps/languages/machine_code.dag index e5d0d3c595d..58e415da8cc 100644 --- a/src/v4/extdeps/languages/machine_code.dag +++ b/src/v4/extdeps/languages/machine_code.dag @@ -8,13 +8,12 @@ module v4.extdeps.languages.machine_code import v4.std.algebra { fold_list } -import v4.std.collection { List } +import v4.std.collection { List, Map } import v4.std.machine { Byte } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_overflow_disposition, @@ -482,35 +481,52 @@ fn mc_list_snoc_item(xs: List, item: T) -> List { ) } -fn mc_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn mc_primitive_fact_map_5( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node, + axis4: Symbol, + fact4: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ), + axis4, + fact4 + ) } fn mc_primitive_bundle_from_integer_facts(facts: MachineIntegerPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: mc_integer_facts_node(facts: facts), - spec_facts: [ - mc_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: mc_inhabitant_atom(id: facts.surface_spelling) - ), - mc_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: mc_int_width_node(width: facts.width) - ), - mc_primitive_axis_binding( - axis: primitive_fact_axis_signedness, - fact: mc_int_kind_node(kind: facts.kind) - ), - mc_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: mc_inhabitant_atom(id: mc_repr_twos_complement) - ), - mc_primitive_axis_binding( - axis: primitive_fact_axis_overflow_disposition, - fact: mc_overflow_node(overflow: facts.overflow_release) - ) - ] + spec_facts: mc_primitive_fact_map_5( + axis0: primitive_fact_axis_surface_spelling, + fact0: mc_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: mc_int_width_node(width: facts.width), + axis2: primitive_fact_axis_signedness, + fact2: mc_int_kind_node(kind: facts.kind), + axis3: primitive_fact_axis_encoding, + fact3: mc_inhabitant_atom(id: mc_repr_twos_complement), + axis4: primitive_fact_axis_overflow_disposition, + fact4: mc_overflow_node(overflow: facts.overflow_release) + ) } } @@ -536,4 +552,3 @@ fn machine_code_model_core_wave1() -> ModelCore { partiality: PartialitySemanticsDecl { operations: [] } } } - diff --git a/src/v4/extdeps/languages/swift.dag b/src/v4/extdeps/languages/swift.dag index a51cf5e5a55..a94a5dead56 100644 --- a/src/v4/extdeps/languages/swift.dag +++ b/src/v4/extdeps/languages/swift.dag @@ -47,8 +47,7 @@ type SwiftUnitRepresentation {} type SwiftBoolRepresentation {} -type SwiftIntegerOverflowSemantics - = TrapOnOverflow +type SwiftIntegerOverflowSemantics {} type SwiftScalar = IntScalar { signedness: SwiftIntSignedness, width: SwiftIntWidth } @@ -140,7 +139,7 @@ data swift_tag_scalar_character: Symbol = swift_tag_scalar_character data swift_tag_scalar_string: Symbol = swift_tag_scalar_string data swift_tag_scalar_void: Symbol = swift_tag_scalar_void -data swift_integer_overflow_trap: SwiftIntegerOverflowSemantics = TrapOnOverflow +data swift_integer_overflow_trap: SwiftIntegerOverflowSemantics = SwiftIntegerOverflowSemantics {} data swift_bool_representation: SwiftBoolRepresentation = SwiftBoolRepresentation {} data swift_character_representation: SwiftCharacterRepresentation = SwiftCharacterRepresentation {} data swift_string_representation: SwiftStringRepresentation = SwiftStringRepresentation {} @@ -316,9 +315,8 @@ fn swift_float_width_node(width: SwiftFloatWidth) -> Node { } fn swift_overflow_node(overflow: SwiftIntegerOverflowSemantics) -> Node { - match overflow { - TrapOnOverflow => swift_atom(id: swift_tag_trap_on_overflow) - } + let _witness = overflow + swift_atom(id: swift_tag_trap_on_overflow) } fn swift_scalar_node(scalar: SwiftScalar) -> Node { @@ -559,12 +557,36 @@ fn swift_wave1_primitive_fact_bundles() -> List { ) } +fn swift_integer_catalog_surface_symbol_step( + sym: Symbol, + acc: Bool, + facts: SwiftIntegerPrimitiveFacts +) -> Bool { + acc || sym == facts.surface_spelling +} + +fn swift_float_catalog_surface_symbol_step( + sym: Symbol, + acc: Bool, + facts: SwiftFloatPrimitiveFacts +) -> Bool { + acc || sym == facts.surface_spelling +} + +fn swift_nonnumeric_catalog_surface_symbol_step( + sym: Symbol, + acc: Bool, + facts: SwiftNonNumericPrimitiveFacts +) -> Bool { + acc || sym == facts.surface_spelling +} + fn swift_integer_catalog_surface_symbol(sym: Symbol) -> Bool { fold_list( xs: swift_integer_facts_catalog, empty: false, cons: fn(acc, facts) { - acc || sym == facts.surface_spelling + swift_integer_catalog_surface_symbol_step(sym: sym, acc: acc, facts: facts) } ) } @@ -574,7 +596,7 @@ fn swift_float_catalog_surface_symbol(sym: Symbol) -> Bool { xs: swift_float_facts_catalog, empty: false, cons: fn(acc, facts) { - acc || sym == facts.surface_spelling + swift_float_catalog_surface_symbol_step(sym: sym, acc: acc, facts: facts) } ) } @@ -584,7 +606,7 @@ fn swift_nonnumeric_catalog_surface_symbol(sym: Symbol) -> Bool { xs: swift_nonnumeric_facts_catalog, empty: false, cons: fn(acc, facts) { - acc || sym == facts.surface_spelling + swift_nonnumeric_catalog_surface_symbol_step(sym: sym, acc: acc, facts: facts) } ) } diff --git a/src/v4/extdeps/languages/wasm.dag b/src/v4/extdeps/languages/wasm.dag index e22bafc2055..e044715acc5 100644 --- a/src/v4/extdeps/languages/wasm.dag +++ b/src/v4/extdeps/languages/wasm.dag @@ -9,12 +9,11 @@ module v4.extdeps.languages.wasm import v4.compiler.parse { Grammar, ModeledGrammar, VoidGrammar } import v4.compiler.tokenize { LexRules, ModeledLexRules, VoidLexRules } -import v4.std.collection { List, Set } +import v4.std.collection { List, Map, Set } import v4.std.model_core { EffectSemanticsDecl, ModelCore, PartialitySemanticsDecl, - PrimitiveFactAxisBinding, PrimitiveFactBundle, primitive_fact_axis_encoding, primitive_fact_axis_overflow_disposition, @@ -374,55 +373,85 @@ fn wasm_language_model_canonical_symbols() -> Set { } } -fn wasm_primitive_axis_binding(axis: Symbol, fact: Node) -> PrimitiveFactAxisBinding { - PrimitiveFactAxisBinding { axis: axis, fact: fact } +fn wasm_primitive_fact_map_5( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node, + axis3: Symbol, + fact3: Node, + axis4: Symbol, + fact4: Node +) -> Map { + map_insert( + map_insert( + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ), + axis3, + fact3 + ), + axis4, + fact4 + ) +} + +fn wasm_primitive_fact_map_3( + axis0: Symbol, + fact0: Node, + axis1: Symbol, + fact1: Node, + axis2: Symbol, + fact2: Node +) -> Map { + map_insert( + map_insert( + map_insert(empty_map(), axis0, fact0), + axis1, + fact1 + ), + axis2, + fact2 + ) } fn wasm_primitive_bundle_from_integer_facts(facts: WasmIntegerPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: wasm_integer_facts_node(facts: facts), - spec_facts: [ - wasm_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: wasm_inhabitant_atom(id: facts.surface_spelling) - ), - wasm_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: wasm_int_width_node(width: facts.width) - ), - wasm_primitive_axis_binding( - axis: primitive_fact_axis_signedness, - fact: wasm_inhabitant_atom(id: wasm_tag_sign_agnostic_modular) - ), - wasm_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: wasm_inhabitant_atom(id: wasm_repr_sign_agnostic_modular) - ), - wasm_primitive_axis_binding( - axis: primitive_fact_axis_overflow_disposition, - fact: wasm_inhabitant_atom(id: wasm_tag_modular_wrap) - ) - ] + spec_facts: wasm_primitive_fact_map_5( + axis0: primitive_fact_axis_surface_spelling, + fact0: wasm_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: wasm_int_width_node(width: facts.width), + axis2: primitive_fact_axis_signedness, + fact2: wasm_inhabitant_atom(id: wasm_tag_sign_agnostic_modular), + axis3: primitive_fact_axis_encoding, + fact3: wasm_inhabitant_atom(id: wasm_repr_sign_agnostic_modular), + axis4: primitive_fact_axis_overflow_disposition, + fact4: wasm_inhabitant_atom(id: wasm_tag_modular_wrap) + ) } } fn wasm_primitive_bundle_from_float_facts(facts: WasmFloatPrimitiveFacts) -> PrimitiveFactBundle { PrimitiveFactBundle { substrate_carrier: wasm_float_facts_node(facts: facts), - spec_facts: [ - wasm_primitive_axis_binding( - axis: primitive_fact_axis_surface_spelling, - fact: wasm_inhabitant_atom(id: facts.surface_spelling) - ), - wasm_primitive_axis_binding( - axis: primitive_fact_axis_width, - fact: wasm_float_width_node(width: facts.width) - ), - wasm_primitive_axis_binding( - axis: primitive_fact_axis_encoding, - fact: wasm_inhabitant_atom(id: facts.ieee754_binary) - ) - ] + spec_facts: wasm_primitive_fact_map_3( + axis0: primitive_fact_axis_surface_spelling, + fact0: wasm_inhabitant_atom(id: facts.surface_spelling), + axis1: primitive_fact_axis_width, + fact1: wasm_float_width_node(width: facts.width), + axis2: primitive_fact_axis_encoding, + fact2: wasm_inhabitant_atom(id: facts.ieee754_binary) + ) } } From 15cf2c93634d4601d2e69cea2ba13cca9cd11c3e Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Fri, 22 May 2026 04:33:51 +0000 Subject: [PATCH 5/5] Fix Swift overflow axis and deprose headers --- src/v4/extdeps/languages/llvm_ir.dag | 2 +- src/v4/extdeps/languages/swift.dag | 4 ++-- src/v4/extdeps/languages/typescript.dag | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/v4/extdeps/languages/llvm_ir.dag b/src/v4/extdeps/languages/llvm_ir.dag index ab513bd254b..639e58ac344 100644 --- a/src/v4/extdeps/languages/llvm_ir.dag +++ b/src/v4/extdeps/languages/llvm_ir.dag @@ -1,6 +1,6 @@ // src/v4/extdeps/languages/llvm_ir.dag // Scope: LLVM 18 LangRef IR structural vocabulary (SSA-oriented types, instructions, terminators, and related carriers). -// Owns: FloatKind, LlvmType, VectorScaling, StructPacking, VarArg, LlvmConstant, LlvmValue, BinaryOpcode, ConversionOpcode, IntPredicate, FloatPredicate, ConstExprOpcode, PhiIncoming, PhiNode, SwitchCase, CallArgument, CallResult, LandingPadCleanup, LandingClause, AtomicOrdering, CmpXchgSuccessOrdering, CmpXchgFailureOrdering, FenceOrdering, AtomicRmwOrdering, AtomicRmwOp, LlvmInstruction, LoadOrdering, StoreOrdering, LoadAtomicity, StoreAtomicity, Terminator, UnwindDest, BasicBlock, Linkage, FunctionBody, FunctionParameter, LlvmFunction, GlobalMutability, GlobalInitializer, LlvmGlobal, NamedStructDef, LlvmModule, unwind_successors, block_successors, block_well_formed, FidelityFeature, feature_disposition, LlvmWave1IntegerBits, LlvmWave1FloatKind, LlvmIntegerPrimitiveFacts, LlvmFloatPrimitiveFacts, llvm_surface_spelling_i32, llvm_surface_spelling_i64, llvm_surface_spelling_half, llvm_surface_spelling_float, llvm_surface_spelling_double, llvm_std_projection_i32, llvm_std_projection_i64, llvm_std_projection_half, llvm_std_projection_float, llvm_std_projection_double, llvm_repr_sign_agnostic_integer, llvm_repr_ieee754_float_kind, llvm_tag_width_bits32, llvm_tag_width_bits64, llvm_tag_float_kind_half, llvm_tag_float_kind_single, llvm_tag_float_kind_double, llvm_facts_field_std_projection, llvm_facts_i32, llvm_facts_i64, llvm_integer_facts_catalog, llvm_facts_half, llvm_facts_float, llvm_facts_double, llvm_float_facts_catalog, llvm_inhabitant_atom, llvm_wave1_integer_bits_node, llvm_wave1_float_kind_node, llvm_integer_facts_node, llvm_float_facts_node, llvm_list_snoc_item, llvm_list_append, llvm_primitive_axis_binding, llvm_primitive_bundle_from_integer_facts, llvm_primitive_bundle_from_float_facts, llvm_primitive_bundles_from_integer_catalog, llvm_primitive_bundles_from_float_catalog, llvm_wave1_primitive_fact_bundles, llvm_ir_model_core_wave1 +// Owns: FloatKind, LlvmType, VectorScaling, StructPacking, VarArg, LlvmConstant, LlvmValue, BinaryOpcode, ConversionOpcode, IntPredicate, FloatPredicate, ConstExprOpcode, PhiIncoming, PhiNode, SwitchCase, CallArgument, CallResult, LandingPadCleanup, LandingClause, AtomicOrdering, CmpXchgSuccessOrdering, CmpXchgFailureOrdering, FenceOrdering, AtomicRmwOrdering, AtomicRmwOp, LlvmInstruction, LoadOrdering, StoreOrdering, LoadAtomicity, StoreAtomicity, Terminator, UnwindDest, BasicBlock, Linkage, FunctionBody, FunctionParameter, LlvmFunction, GlobalMutability, GlobalInitializer, LlvmGlobal, NamedStructDef, LlvmModule, unwind_successors, block_successors, block_well_formed, FidelityFeature, feature_disposition, LlvmWave1IntegerBits, LlvmWave1FloatKind, LlvmIntegerPrimitiveFacts, LlvmFloatPrimitiveFacts, llvm_surface_spelling_i32, llvm_surface_spelling_i64, llvm_surface_spelling_half, llvm_surface_spelling_float, llvm_surface_spelling_double, llvm_std_projection_i32, llvm_std_projection_i64, llvm_std_projection_half, llvm_std_projection_float, llvm_std_projection_double, llvm_repr_sign_agnostic_integer, llvm_repr_ieee754_float_kind, llvm_tag_width_bits32, llvm_tag_width_bits64, llvm_tag_float_kind_half, llvm_tag_float_kind_single, llvm_tag_float_kind_double, llvm_facts_field_std_projection, llvm_facts_i32, llvm_facts_i64, llvm_integer_facts_catalog, llvm_facts_half, llvm_facts_float, llvm_facts_double, llvm_float_facts_catalog, llvm_inhabitant_atom, llvm_wave1_integer_bits_node, llvm_wave1_float_kind_node, llvm_integer_facts_node, llvm_float_facts_node, llvm_list_snoc_item, llvm_list_append, llvm_primitive_fact_map_3, llvm_primitive_fact_map_2, llvm_primitive_bundle_from_integer_facts, llvm_primitive_bundle_from_float_facts, llvm_primitive_bundles_from_integer_catalog, llvm_primitive_bundles_from_float_catalog, llvm_wave1_primitive_fact_bundles, llvm_ir_model_core_wave1 // Consumes: std/node.dag (Symbol); std/nat.dag (Nat); std/cardinality.dag (NonZeroNat); Int kernel-ambient. // Status: import v4.std.node Symbol; v4.std.nat Nat; v4.std.cardinality NonZeroNat. // Anchor: https://releases.llvm.org/18.1.8/docs/LangRef.html diff --git a/src/v4/extdeps/languages/swift.dag b/src/v4/extdeps/languages/swift.dag index a94a5dead56..41a17c344aa 100644 --- a/src/v4/extdeps/languages/swift.dag +++ b/src/v4/extdeps/languages/swift.dag @@ -14,6 +14,7 @@ import v4.std.model_core { PartialitySemanticsDecl, PrimitiveFactBundle, primitive_fact_axis_encoding, + primitive_fact_axis_overflow_disposition, primitive_fact_axis_signedness, primitive_fact_axis_surface_spelling, primitive_fact_axis_width @@ -115,7 +116,6 @@ data swift_facts_field_ieee754_binary: Symbol = swift_facts_field_ieee754_binary data swift_facts_field_scalar: Symbol = swift_facts_field_scalar data swift_facts_field_value_fact: Symbol = swift_facts_field_value_fact -data swift_primitive_fact_axis_overflow_semantics: Symbol = swift_primitive_fact_axis_overflow_semantics data swift_primitive_fact_axis_scalar_classifier: Symbol = swift_primitive_fact_axis_scalar_classifier data swift_tag_signed: Symbol = swift_tag_signed @@ -474,7 +474,7 @@ fn swift_primitive_bundle_from_integer_facts(facts: SwiftIntegerPrimitiveFacts) fact1: swift_signedness_node(signedness: facts.signedness), axis2: primitive_fact_axis_width, fact2: swift_width_node(width: facts.width), - axis3: swift_primitive_fact_axis_overflow_semantics, + axis3: primitive_fact_axis_overflow_disposition, fact3: swift_overflow_node(overflow: facts.overflow) ) } diff --git a/src/v4/extdeps/languages/typescript.dag b/src/v4/extdeps/languages/typescript.dag index 70a98130b90..aaf5ca18208 100644 --- a/src/v4/extdeps/languages/typescript.dag +++ b/src/v4/extdeps/languages/typescript.dag @@ -1,6 +1,6 @@ // src/v4/extdeps/languages/typescript.dag // Scope: TypeScript 5.9 + ECMA-262 ES2025 numeric primitive fact-bundles and ModelCore wave-1. -// Owns: TsNumberPrimitiveFacts, TsBigIntPrimitiveFacts, TsEcma262NumericPrimitiveFactsUnion, TsLanguageModel, ts_language_model_surface_id, ts_std_projection_float64, ts_std_projection_bigint, ts_surface_spelling_number, ts_surface_spelling_bigint, ts_ieee754_binary64, ts_repr_bigint_exact_unbounded, ts_inhabitant_number, ts_inhabitant_bigint, ts_inhabitant_field_number, ts_inhabitant_field_bigint, ts_inhabitant_field_atom, ts_inhabitant_field_facts, ts_facts_field_surface_spelling, ts_facts_field_arithmetic_semantics, ts_facts_field_bitwise_semantics, ts_facts_field_operation_semantics, ts_facts_field_width, ts_facts_field_ieee754_binary, ts_facts_field_std_projection, ts_facts_field_encoding, ts_tag_bits64, ts_tag_number_ieee754_binary64, ts_tag_number_bitwise_int32_uint32, ts_tag_bigint_exact_unbounded, ts_facts_number, ts_facts_bigint, ts_numeric_facts_catalog, ts_bool_grounding, ts_inhabitant_atom, ts_named_edge, ts_number_arithmetic_semantics_node, ts_number_bitwise_semantics_node, ts_bigint_operation_semantics_node, ts_number_facts_node, ts_bigint_facts_node, ts_number_inhabitant_node, ts_bigint_inhabitant_node, ts_inhabitant_number_node, ts_inhabitant_bigint_node, ts_declared_inhabitants_root, ts_wave1_target_model, ts_list_snoc_item, ts_catalog_surface_symbol_step, ts_catalog_surface_symbol, ts_language_model_canonical_symbols, ts_primitive_axis_binding, ts_primitive_bundle_from_number_facts, ts_primitive_bundle_from_bigint_facts, ts_primitive_bundles_from_catalog_step, ts_wave1_primitive_fact_bundles, ts_model_core_wave1, ts_language_model_wave1 +// Owns: TsNumberPrimitiveFacts, TsBigIntPrimitiveFacts, TsEcma262NumericPrimitiveFactsUnion, TsLanguageModel, ts_language_model_surface_id, ts_std_projection_float64, ts_std_projection_bigint, ts_surface_spelling_number, ts_surface_spelling_bigint, ts_ieee754_binary64, ts_repr_bigint_exact_unbounded, ts_inhabitant_number, ts_inhabitant_bigint, ts_inhabitant_field_number, ts_inhabitant_field_bigint, ts_inhabitant_field_atom, ts_inhabitant_field_facts, ts_facts_field_surface_spelling, ts_facts_field_arithmetic_semantics, ts_facts_field_bitwise_semantics, ts_facts_field_operation_semantics, ts_facts_field_width, ts_facts_field_ieee754_binary, ts_facts_field_std_projection, ts_facts_field_encoding, ts_tag_bits64, ts_tag_number_ieee754_binary64, ts_tag_number_bitwise_int32_uint32, ts_tag_bigint_exact_unbounded, ts_facts_number, ts_facts_bigint, ts_numeric_facts_catalog, ts_bool_grounding, ts_inhabitant_atom, ts_named_edge, ts_number_arithmetic_semantics_node, ts_number_bitwise_semantics_node, ts_bigint_operation_semantics_node, ts_number_facts_node, ts_bigint_facts_node, ts_number_inhabitant_node, ts_bigint_inhabitant_node, ts_inhabitant_number_node, ts_inhabitant_bigint_node, ts_declared_inhabitants_root, ts_wave1_target_model, ts_list_snoc_item, ts_catalog_surface_symbol_step, ts_catalog_surface_symbol, ts_language_model_canonical_symbols, ts_primitive_fact_map_3, ts_primitive_fact_map_2, ts_primitive_bundle_from_number_facts, ts_primitive_bundle_from_bigint_facts, ts_primitive_bundles_from_catalog_step, ts_wave1_primitive_fact_bundles, ts_model_core_wave1, ts_language_model_wave1 // Consumes: v4.std.collection, v4.std.node, v4.std.logic, v4.std.algebra, v4.std.model_core, v4.std.target_model. // Status: T-4 typescript slice — ECMA `number` (IEEE-754 binary64) + `bigint` (exact unbounded ℤ) fact-bundles; `core: ModelCore` primitives from `ts_numeric_facts_catalog` via fold; canonical_symbols = catalog surface spellings; bool canonical-B decl-ref — 🟡 E-6(b) staging; wave-1 lex/grammar deferred. // Anchor: https://www.typescriptlang.org/docs/handbook/2/everyday-types.html — ECMA-262 https://tc39.es/ecma262/2025/multipage/