CultLib/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens c13e7f7871 Extend the HLSL mirror comparison to one struct return shape
HlslSourceCompatibilityTests previously flattened only bare vector returns to
scalar leaves. Values() now recurses through struct fields of any type, so a
struct return (invariant 8's one shape, e.g. CultCellular) is compared field
by field down to bit-for-bit scalars, exactly like a vector return already
was. Components() stays scoped to scalar-typed fields, since it only ever
builds function arguments and must not recurse.

TransformHlslToCSharp gains transformation 5: struct fields gain `public`,
since HLSL has no field access-modifier concept and a C# struct's fields
default to private, which would hide them from Values()' reflection. The old
wrap-in-a-class transformation is renumbered 6. design.md's transformation
list documents both, matching design.md:92's numbered list.

StructReturnComparisonRejectsAMismatchedField is the extension's own test: two
hand-built structs with the same shape (mirroring a real mirror-vs-C#
comparison) prove the field-by-field, bit-for-bit walk actually rejects a
struct whose leaf field differs, or whose nested vector's own component
differs, not just a length check.

EveryMirrorFunctionMatchesCSharpMath and HlslMirrorTests' required-symbol list
now cover cultmath_smin_grad and cultmath_cellular; the mirrored-function
count moves from 28 to 30.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 19:18:21 +02:00
..
cultcache-py Refuse re-entrant Python cache mutations and adopt legacy-key globals on load 2026-09-14 12:27:55 +02:00
cultcache-rs Require an atomic push_all from every Rust backing store 2026-09-14 12:28:07 +02:00
cultcache-ts Delete the TypeScript re-entry guard; state the store-wait rule once 2026-09-14 12:43:46 +02:00
cultmath Extend the HLSL mirror comparison to one struct return shape 2026-09-25 19:18:21 +02:00
cultmesh-browser Share the route-certificate view between cultmesh-ts and cultmesh-browser 2026-09-23 15:52:46 +02:00
cultmesh-kotlin Consolidate CultNet schema contracts into CultLib/contracts/cultnet 2026-09-13 17:27:41 +02:00
cultmesh-py CultNet selection cut1, commit 2 fix batch: R-2, Python refuses v1 selection messages 2026-09-22 06:13:16 +02:00
cultmesh-rs Land R-N in Rust: cultnet.error.v0 code/details, matched byte-for-byte 2026-09-22 20:00:37 +02:00
cultmesh-ts Commit the QUIC native binaries, SHA256SUMS and MANIFEST.txt 2026-09-23 21:58:54 +02:00
cultnet-py CultNet selection cut1 fix batch: R-L (contract, Python, mutate-dotnet.ps1) 2026-09-22 09:39:53 +02:00
cultnet-rs R-BA: delete the unreachable to.schemaId tiebreak from both edge comparators 2026-09-23 09:08:55 +02:00
cultnet-ts Extend the Cut 5 interop lane: a late C# native connector gets the TS retained frame 2026-09-23 18:32:39 +02:00