From d11254ee735a138142de254aa328b155da3baada Mon Sep 17 00:00:00 2001 From: Glenn Fiedler Date: Fri, 4 Sep 2026 15:24:16 +1000 Subject: [PATCH] the projection sees every reorder, and the codec law (#462, #491, #463) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three defects, each a spurious MATCH on the packet wire — the direction the projection exists to refuse — and one change, because each moves every protocol id and the ids move once. 1. VARIANT ORDER (#462). An enum rendered as `enum Grade max=3 storage=8 variants=3` and a flags declaration as `flags Perks wirebits=3`, carrying nothing per variant, so reordering either left the id unchanged while every ordinal and every bit position changed meaning. Each declaration's variant names now enter the projection in declaration order. 2. UNION ARM NAMES (#491). Arm order rode in the arm types, which carry it only while the arms differ in type: two arms of one payload type reordered with every projected type unmoved, so tag 1 meant `left` on one build and `right` on the other under a single id. Arm names now project beside the arm's own facts. 3. THE CODEC LAW (#463's projection half). Nothing in the projection stood for the compiler's own encode and decode rules, so a change that moves bytes under an unchanged shape — the 2026-08-15 fixed-point rounding amendment did exactly that — left every id where it was. `WireLaw` rides the projection's second line at 1, and bumps on any compiler change that can alter, for the same schema and values, the encoded bytes, the accepted inputs, the rejected reads, the materialized defaults or a numeric conversion. The consequence of 1 and 2, stated on both pages: a variant or arm RENAME moves the id, which the deploy-together rule makes free. `ProjectionVersion` goes to 2 — the rendering describes what version 1 could not. Gates: an enum reorder, an enum rename, a flags reorder, a flags rename, a union reorder, a same-typed union arm reorder and an arm rename each move the id; the id is exactly the digest over the projection text and the same text under the next law number is a different id, for every corpus unit. Three negative controls, each surgical: without the variant lists the enum and flags gate goes red and the union gates stay green; without the arm names the union gates go red and the variant gate stays green; without the law line both law gates go red and the variant gate stays green. §20.8's battery loses its isolating control for the cook projection's union vocabulary — an arm rename now rides group 1 like every other vocabulary row — so a TABLE-ARMED union's arm rename takes its place: no packet wire (§2.6), no protocol id move, and the build version must move through group 3 alone. Re-pinned once, deliberately, on top of the maps release's own re-pin: every golden, the generated trees, the cooked conformance artifacts, the two block images' build_version word, and the build versions docs/USAGE.md and docs/SPEC-TABLES.md §7.3 print. §7.3's number was already stale on main — the cook form's bump to 2 moved it and left the page behind — and it takes the current value here. --- .github/workflows/ci.yml | 12 ++ Makefile | 110 ++++++++++++++ docs/FAQ.md | 11 +- docs/SPEC-TABLES.md | 27 ++-- docs/SPEC.md | 78 ++++++---- docs/USAGE.md | 2 +- docs/VERSIONING.md | 90 +++++++----- generated/bench/c/Bench.h | 4 +- generated/bench/c/BenchWire.h | 2 +- generated/bench/c/RealWorld.h | 4 +- generated/bench/c/RealWorldWire.h | 2 +- generated/bench/cpp/Bench.h | 4 +- generated/bench/cpp/BenchWire.h | 2 +- generated/bench/cpp/RealWorld.h | 4 +- generated/bench/cpp/RealWorldWire.h | 2 +- generated/bench/cs/Bench.cs | 4 +- generated/bench/cs/realworld/RealWorld.cs | 4 +- generated/bench/dart/Bench.dart | 4 +- generated/bench/dart/Int128.dart | 2 +- generated/bench/dart/realworld/RealWorld.dart | 4 +- generated/bench/elixir/Bench.ex | 4 +- generated/bench/elixir/realworld/RealWorld.ex | 4 +- generated/bench/go/Bench.go | 4 +- generated/bench/go/realworld/RealWorld.go | 4 +- generated/bench/java/Bench.java | 4 +- generated/bench/java/Int128.java | 2 +- generated/bench/java/UInt128.java | 2 +- generated/bench/java/realworld/RealWorld.java | 4 +- generated/bench/js/Bench.js | 4 +- generated/bench/js/BenchFlat.js | 2 +- generated/bench/js/realworld/RealWorld.js | 4 +- generated/bench/js/realworld/RealWorldFlat.js | 2 +- generated/bench/rust-realworld/src/lib.rs | 2 +- .../bench/rust-realworld/src/realworld.rs | 4 +- generated/bench/rust/src/bench.rs | 4 +- generated/bench/rust/src/lib.rs | 2 +- generated/bench/tables/c/BenchTable.h | 4 +- generated/bench/tables/c/BenchTableBlock.h | 2 +- generated/bench/tables/c/BenchTableTable.h | 4 +- generated/bench/tables/c/BenchTableWire.h | 2 +- generated/bench/tables/cpp/BenchTable.h | 4 +- generated/bench/tables/cpp/BenchTableBlock.h | 2 +- generated/bench/tables/cpp/BenchTableTable.h | 4 +- generated/bench/tables/cpp/BenchTableWire.h | 2 +- generated/bench/tables/cs/BenchTable.cs | 4 +- generated/bench/tables/cs/BenchTableBlock.cs | 2 +- generated/bench/tables/dart/BenchTable.dart | 4 +- .../bench/tables/dart/BenchTableBlock.dart | 2 +- generated/bench/tables/elixir/BenchTable.ex | 4 +- .../bench/tables/elixir/BenchTableTable.ex | 2 +- generated/bench/tables/elixir/BuildVersion.ex | 2 +- generated/bench/tables/go/BenchTable.go | 4 +- generated/bench/tables/go/BenchTableBlock.go | 2 +- generated/bench/tables/java/BenchTable.java | 4 +- generated/bench/tables/java/BuildVersion.java | 2 +- generated/bench/tables/js/BenchTable.js | 4 +- generated/bench/tables/js/BenchTableBlock.js | 2 +- generated/bench/tables/js/BenchTableFlat.js | 2 +- generated/bench/tables/rust/src/benchtable.rs | 4 +- .../bench/tables/rust/src/benchtable_table.rs | 2 +- .../bench/tables/rust/src/build_version.rs | 2 +- generated/bench/tables/rust/src/lib.rs | 2 +- generated/c-ludicrous/Ludicrous.h | 4 +- generated/c-ludicrous/LudicrousWire.h | 2 +- generated/c/Clauses.h | 2 +- generated/c/ClausesWire.h | 2 +- generated/c/Constants.h | 4 +- generated/c/ConstantsWire.h | 2 +- generated/c/Degenerate.h | 2 +- generated/c/DegenerateWire.h | 2 +- generated/c/Enums.h | 2 +- generated/c/EnumsWire.h | 2 +- generated/c/Joins.h | 2 +- generated/c/JoinsWire.h | 2 +- generated/c/Render.h | 2 +- generated/c/RenderWire.h | 2 +- generated/c/Types.h | 2 +- generated/c/TypesWire.h | 2 +- generated/c/Wire.h | 2 +- generated/c/WireWire.h | 2 +- generated/cpp/Clauses.h | 2 +- generated/cpp/ClausesWire.h | 2 +- generated/cpp/Constants.h | 4 +- generated/cpp/ConstantsWire.h | 2 +- generated/cpp/Degenerate.h | 2 +- generated/cpp/DegenerateWire.h | 2 +- generated/cpp/Enums.h | 2 +- generated/cpp/EnumsWire.h | 2 +- generated/cpp/Joins.h | 2 +- generated/cpp/JoinsWire.h | 2 +- generated/cpp/Render.h | 2 +- generated/cpp/RenderWire.h | 2 +- generated/cpp/Types.h | 2 +- generated/cpp/TypesWire.h | 2 +- generated/cpp/Wire.h | 2 +- generated/cpp/WireWire.h | 2 +- generated/cpp/ludicrous/Ludicrous.h | 4 +- generated/cpp/ludicrous/LudicrousWire.h | 2 +- generated/cs-ludicrous/Ludicrous.cs | 4 +- generated/cs/Clauses.cs | 2 +- generated/cs/Constants.cs | 4 +- generated/cs/Degenerate.cs | 2 +- generated/cs/Enums.cs | 2 +- generated/cs/Joins.cs | 2 +- generated/cs/Render.cs | 2 +- generated/cs/Types.cs | 2 +- generated/cs/Wire.cs | 2 +- generated/dart-ludicrous/Int128.dart | 2 +- generated/dart-ludicrous/Ludicrous.dart | 4 +- generated/dart/Clauses.dart | 2 +- generated/dart/Constants.dart | 4 +- generated/dart/Degenerate.dart | 2 +- generated/dart/Enums.dart | 2 +- generated/dart/Joins.dart | 2 +- generated/dart/Render.dart | 2 +- generated/dart/Types.dart | 2 +- generated/dart/Wire.dart | 2 +- generated/elixir-ludicrous/Ludicrous.ex | 4 +- generated/elixir/Clauses.ex | 2 +- generated/elixir/Constants.ex | 4 +- generated/elixir/Degenerate.ex | 2 +- generated/elixir/Enums.ex | 2 +- generated/elixir/Joins.ex | 2 +- generated/elixir/Render.ex | 2 +- generated/elixir/Types.ex | 2 +- generated/elixir/Wire.ex | 2 +- generated/go-ludicrous/Ludicrous.go | 4 +- generated/go/Clauses.go | 2 +- generated/go/Constants.go | 4 +- generated/go/Degenerate.go | 2 +- generated/go/Enums.go | 2 +- generated/go/Joins.go | 2 +- generated/go/Render.go | 2 +- generated/go/Types.go | 2 +- generated/go/Wire.go | 2 +- generated/java-ludicrous/Int128.java | 2 +- generated/java-ludicrous/Ludicrous.java | 4 +- generated/java-ludicrous/UInt128.java | 2 +- generated/java/Clauses.java | 2 +- generated/java/Constants.java | 4 +- generated/java/Degenerate.java | 2 +- generated/java/Enums.java | 2 +- generated/java/Joins.java | 2 +- generated/java/Render.java | 2 +- generated/java/Types.java | 2 +- generated/java/Wire.java | 2 +- generated/js-ludicrous/Ludicrous.js | 4 +- generated/js-ludicrous/LudicrousFlat.js | 2 +- generated/js/Clauses.js | 2 +- generated/js/ClausesFlat.js | 2 +- generated/js/Constants.js | 4 +- generated/js/Degenerate.js | 2 +- generated/js/DegenerateFlat.js | 2 +- generated/js/Enums.js | 2 +- generated/js/Joins.js | 2 +- generated/js/JoinsFlat.js | 2 +- generated/js/Render.js | 2 +- generated/js/RenderFlat.js | 2 +- generated/js/Types.js | 2 +- generated/js/TypesFlat.js | 2 +- generated/js/Wire.js | 2 +- generated/js/WireFlat.js | 2 +- generated/rust-ludicrous/src/lib.rs | 2 +- generated/rust-ludicrous/src/ludicrous.rs | 4 +- generated/rust/src/clauses.rs | 2 +- generated/rust/src/constants.rs | 4 +- generated/rust/src/degenerate.rs | 2 +- generated/rust/src/enums.rs | 2 +- generated/rust/src/joins.rs | 2 +- generated/rust/src/lib.rs | 2 +- generated/rust/src/render.rs | 2 +- generated/rust/src/types.rs | 2 +- generated/rust/src/wire.rs | 2 +- internal/check/projection_test.go | 135 +++++++++++++++--- internal/goldens/goldens_test.go | 75 +++++++--- ir/buildversion_test.go | 51 ++++++- ir/projection.go | 69 +++++++-- .../tables/cook-write/archive-be.cook | Bin 1568 -> 1568 bytes .../tables/cook-write/archive.cook | Bin 1568 -> 1568 bytes .../tables/cook-write/blob_empty-be.cook | Bin 208 -> 208 bytes .../tables/cook-write/blob_empty.cook | Bin 208 -> 208 bytes .../tables/cook-write/blob_large-be.cook | Bin 66176 -> 66176 bytes .../tables/cook-write/blob_large.cook | Bin 66176 -> 66176 bytes .../tables/cook-write/blob_shared-be.cook | Bin 184 -> 184 bytes .../tables/cook-write/blob_shared.cook | Bin 184 -> 184 bytes .../tables/cook-write/blob_small-be.cook | Bin 464 -> 464 bytes .../tables/cook-write/blob_small.cook | Bin 464 -> 464 bytes .../tables/cook-write/blob_str16-be.cook | Bin 232 -> 232 bytes .../tables/cook-write/blob_str16.cook | Bin 232 -> 232 bytes .../tables/cook-write/blob_str8-be.cook | Bin 224 -> 224 bytes .../tables/cook-write/blob_str8.cook | Bin 224 -> 224 bytes .../tables/cook-write/chain_optional-be.cook | Bin 128 -> 128 bytes .../tables/cook-write/chain_optional.cook | Bin 128 -> 128 bytes .../cook-write/chain_optional_empty-be.cook | Bin 128 -> 128 bytes .../cook-write/chain_optional_empty.cook | Bin 128 -> 128 bytes .../tables/cook-write/chain_value-be.cook | Bin 128 -> 128 bytes .../tables/cook-write/chain_value.cook | Bin 128 -> 128 bytes .../cook-write/chain_value_empty-be.cook | Bin 128 -> 128 bytes .../tables/cook-write/chain_value_empty.cook | Bin 128 -> 128 bytes .../tables/cook-write/graph_deep-be.cook | Bin 12736 -> 12736 bytes .../tables/cook-write/graph_deep.cook | Bin 12736 -> 12736 bytes .../tables/cook-write/graph_empty-be.cook | Bin 256 -> 256 bytes .../tables/cook-write/graph_empty.cook | Bin 256 -> 256 bytes .../tables/cook-write/graph_shared-be.cook | Bin 472 -> 472 bytes .../tables/cook-write/graph_shared.cook | Bin 472 -> 472 bytes .../tables/cook-write/graph_tree-be.cook | Bin 568 -> 568 bytes .../tables/cook-write/graph_tree.cook | Bin 568 -> 568 bytes .../tables/cook-write/keyed_config-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/keyed_config.cook | Bin 384 -> 384 bytes .../tables/cook-write/keyed_default-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/keyed_default.cook | Bin 384 -> 384 bytes .../tables/cook-write/loadout_full-be.cook | Bin 256 -> 256 bytes .../tables/cook-write/loadout_full.cook | Bin 256 -> 256 bytes .../tables/cook-write/m1_open-be.cook | Bin 120 -> 120 bytes .../tables/cook-write/m1_open.cook | Bin 120 -> 120 bytes .../tables/cook-write/m2_open-be.cook | Bin 120 -> 120 bytes .../tables/cook-write/m2_open.cook | Bin 120 -> 120 bytes .../tables/cook-write/message_batch-be.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_batch.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_empty-be.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_empty.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_open-be.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_open.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_ping-be.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_ping.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_save-be.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_save.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_trace-be.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/message_trace.cook | Bin 5224 -> 5224 bytes .../cook-write/message_transaction-be.cook | Bin 5224 -> 5224 bytes .../cook-write/message_transaction.cook | Bin 5224 -> 5224 bytes .../tables/cook-write/profile_elide-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/profile_elide.cook | Bin 384 -> 384 bytes .../tables/cook-write/root_default-be.cook | Bin 1560 -> 1560 bytes .../tables/cook-write/root_default.cook | Bin 1560 -> 1560 bytes .../tables/cook-write/root_full-be.cook | Bin 1560 -> 1560 bytes .../tables/cook-write/root_full.cook | Bin 1560 -> 1560 bytes .../tables/cook-write/scalars_default-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/scalars_default.cook | Bin 384 -> 384 bytes .../tables/cook-write/scalars_edges-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/scalars_edges.cook | Bin 384 -> 384 bytes .../tables/cook-write/scalars_full-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/scalars_full.cook | Bin 384 -> 384 bytes .../cook-write/stream_arm_first-be.cook | Bin 392 -> 392 bytes .../tables/cook-write/stream_arm_first.cook | Bin 392 -> 392 bytes .../tables/cook-write/stream_chain-be.cook | Bin 328 -> 328 bytes .../tables/cook-write/stream_chain.cook | Bin 328 -> 328 bytes .../tables/cook-write/stream_header-be.cook | Bin 200 -> 200 bytes .../tables/cook-write/stream_header.cook | Bin 200 -> 200 bytes .../tables/cook-write/stream_parts-be.cook | Bin 392 -> 392 bytes .../tables/cook-write/stream_parts.cook | Bin 392 -> 392 bytes .../tables/cook-write/v1_cfg-be.cook | Bin 360 -> 360 bytes .../conformance/tables/cook-write/v1_cfg.cook | Bin 360 -> 360 bytes .../tables/cook-write/v1_seams-be.cook | Bin 360 -> 360 bytes .../tables/cook-write/v1_seams.cook | Bin 360 -> 360 bytes .../tables/cook-write/v2_cfg-be.cook | Bin 384 -> 384 bytes .../conformance/tables/cook-write/v2_cfg.cook | Bin 384 -> 384 bytes .../tables/cook-write/v2_seams-be.cook | Bin 384 -> 384 bytes .../tables/cook-write/v2_seams.cook | Bin 384 -> 384 bytes .../tables/cook-write/wide_blob-be.cook | Bin 280096 -> 280096 bytes .../tables/cook-write/wide_blob.cook | Bin 280096 -> 280096 bytes testdata/golden/build-version/examples.txt | 4 +- testdata/golden/build-version/examples128.txt | 4 +- .../golden/build-version/tables-blobs.txt | 4 +- .../golden/build-version/tables-block.txt | 4 +- .../golden/build-version/tables-blockhome.txt | 4 +- .../golden/build-version/tables-examples.txt | 4 +- .../golden/build-version/tables-messages.txt | 4 +- .../golden/build-version/tables-pointers.txt | 4 +- .../golden/build-version/tables-scalars.txt | 4 +- .../golden/build-version/tables-stream.txt | 4 +- testdata/golden/c/Clauses.h | 2 +- testdata/golden/c/ClausesWire.h | 2 +- testdata/golden/c/Constants.h | 4 +- testdata/golden/c/ConstantsWire.h | 2 +- testdata/golden/c/Degenerate.h | 2 +- testdata/golden/c/DegenerateWire.h | 2 +- testdata/golden/c/Enums.h | 2 +- testdata/golden/c/EnumsWire.h | 2 +- testdata/golden/c/Joins.h | 2 +- testdata/golden/c/JoinsWire.h | 2 +- testdata/golden/c/Render.h | 2 +- testdata/golden/c/RenderWire.h | 2 +- testdata/golden/c/Types.h | 2 +- testdata/golden/c/TypesWire.h | 2 +- testdata/golden/c/Wire.h | 2 +- testdata/golden/c/WireWire.h | 2 +- testdata/golden/cpp/Clauses.h | 2 +- testdata/golden/cpp/ClausesWire.h | 2 +- testdata/golden/cpp/Constants.h | 4 +- testdata/golden/cpp/ConstantsWire.h | 2 +- testdata/golden/cpp/Degenerate.h | 2 +- testdata/golden/cpp/DegenerateWire.h | 2 +- testdata/golden/cpp/Enums.h | 2 +- testdata/golden/cpp/EnumsWire.h | 2 +- testdata/golden/cpp/Joins.h | 2 +- testdata/golden/cpp/JoinsWire.h | 2 +- testdata/golden/cpp/Render.h | 2 +- testdata/golden/cpp/RenderWire.h | 2 +- testdata/golden/cpp/Types.h | 2 +- testdata/golden/cpp/TypesWire.h | 2 +- testdata/golden/cpp/Wire.h | 2 +- testdata/golden/cpp/WireWire.h | 2 +- testdata/golden/cs/Clauses.cs | 2 +- testdata/golden/cs/Constants.cs | 4 +- testdata/golden/cs/Degenerate.cs | 2 +- testdata/golden/cs/Enums.cs | 2 +- testdata/golden/cs/Joins.cs | 2 +- testdata/golden/cs/Render.cs | 2 +- testdata/golden/cs/Types.cs | 2 +- testdata/golden/cs/Wire.cs | 2 +- testdata/golden/dart/Clauses.dart | 2 +- testdata/golden/dart/Constants.dart | 4 +- testdata/golden/dart/Degenerate.dart | 2 +- testdata/golden/dart/Enums.dart | 2 +- testdata/golden/dart/Joins.dart | 2 +- testdata/golden/dart/Render.dart | 2 +- testdata/golden/dart/Types.dart | 2 +- testdata/golden/dart/Wire.dart | 2 +- testdata/golden/elixir/Clauses.ex | 2 +- testdata/golden/elixir/Constants.ex | 4 +- testdata/golden/elixir/Degenerate.ex | 2 +- testdata/golden/elixir/Enums.ex | 2 +- testdata/golden/elixir/Joins.ex | 2 +- testdata/golden/elixir/Render.ex | 2 +- testdata/golden/elixir/Types.ex | 2 +- testdata/golden/elixir/Wire.ex | 2 +- testdata/golden/go/Clauses.go | 2 +- testdata/golden/go/Constants.go | 4 +- testdata/golden/go/Degenerate.go | 2 +- testdata/golden/go/Enums.go | 2 +- testdata/golden/go/Joins.go | 2 +- testdata/golden/go/Render.go | 2 +- testdata/golden/go/Types.go | 2 +- testdata/golden/go/Wire.go | 2 +- testdata/golden/id.txt | 2 +- testdata/golden/java/Clauses.java | 2 +- testdata/golden/java/Constants.java | 4 +- testdata/golden/java/Degenerate.java | 2 +- testdata/golden/java/Enums.java | 2 +- testdata/golden/java/Joins.java | 2 +- testdata/golden/java/Render.java | 2 +- testdata/golden/java/Types.java | 2 +- testdata/golden/java/Wire.java | 2 +- testdata/golden/js/Clauses.js | 2 +- testdata/golden/js/ClausesFlat.js | 2 +- testdata/golden/js/Constants.js | 4 +- testdata/golden/js/Degenerate.js | 2 +- testdata/golden/js/DegenerateFlat.js | 2 +- testdata/golden/js/Enums.js | 2 +- testdata/golden/js/Joins.js | 2 +- testdata/golden/js/JoinsFlat.js | 2 +- testdata/golden/js/Render.js | 2 +- testdata/golden/js/RenderFlat.js | 2 +- testdata/golden/js/Types.js | 2 +- testdata/golden/js/TypesFlat.js | 2 +- testdata/golden/js/Wire.js | 2 +- testdata/golden/js/WireFlat.js | 2 +- testdata/golden/ludicrous/c/Ludicrous.h | 4 +- testdata/golden/ludicrous/c/LudicrousWire.h | 2 +- testdata/golden/ludicrous/cpp/Ludicrous.h | 4 +- testdata/golden/ludicrous/cpp/LudicrousWire.h | 2 +- testdata/golden/ludicrous/cs/Ludicrous.cs | 4 +- testdata/golden/ludicrous/dart/Int128.dart | 2 +- testdata/golden/ludicrous/dart/Ludicrous.dart | 4 +- testdata/golden/ludicrous/elixir/Ludicrous.ex | 4 +- testdata/golden/ludicrous/go/Ludicrous.go | 4 +- testdata/golden/ludicrous/id.txt | 2 +- testdata/golden/ludicrous/java/Int128.java | 2 +- testdata/golden/ludicrous/java/Ludicrous.java | 4 +- testdata/golden/ludicrous/java/UInt128.java | 2 +- testdata/golden/ludicrous/js/Ludicrous.js | 4 +- testdata/golden/ludicrous/js/LudicrousFlat.js | 2 +- testdata/golden/ludicrous/rust/lib.rs | 2 +- testdata/golden/ludicrous/rust/ludicrous.rs | 4 +- testdata/golden/rust/clauses.rs | 2 +- testdata/golden/rust/constants.rs | 4 +- testdata/golden/rust/degenerate.rs | 2 +- testdata/golden/rust/enums.rs | 2 +- testdata/golden/rust/joins.rs | 2 +- testdata/golden/rust/lib.rs | 2 +- testdata/golden/rust/render.rs | 2 +- testdata/golden/rust/types.rs | 2 +- testdata/golden/rust/wire.rs | 2 +- testdata/golden/tables/blobs/AssetsTable.h | 4 +- testdata/golden/tables/block-c/PaddedTable.h | 4 +- testdata/golden/tables/block-c/RenderTable.h | 4 +- testdata/golden/tables/block/PaddedTable.h | 4 +- testdata/golden/tables/block/RenderTable.h | 4 +- .../golden/tables/blockhome/ConstantsTable.h | 4 +- testdata/golden/tables/blockhome/DataTable.h | 4 +- testdata/golden/tables/blockhome/FrameTable.h | 4 +- .../golden/tables/examples-c/GuardedTable.h | 4 +- .../golden/tables/examples-c/KeyedTable.h | 4 +- .../golden/tables/examples-c/NestedTable.h | 4 +- testdata/golden/tables/examples-c/PackTable.h | 4 +- .../golden/tables/examples-c/RangesTable.h | 4 +- .../golden/tables/examples-c/TablesTable.h | 4 +- testdata/golden/tables/examples-c/WideTable.h | 4 +- .../golden/tables/examples/GuardedTable.h | 4 +- testdata/golden/tables/examples/KeyedTable.h | 4 +- testdata/golden/tables/examples/NestedTable.h | 4 +- testdata/golden/tables/examples/PackTable.h | 4 +- testdata/golden/tables/examples/RangesTable.h | 4 +- testdata/golden/tables/examples/TablesTable.h | 4 +- testdata/golden/tables/examples/WideTable.h | 4 +- .../golden/tables/messages/MessagesTable.h | 4 +- .../golden/tables/pointers-c/GraphTable.h | 4 +- .../golden/tables/pointers-c/MarksTable.h | 4 +- .../golden/tables/pointers-c/PartsTable.h | 4 +- testdata/golden/tables/pointers/GraphTable.h | 4 +- testdata/golden/tables/pointers/MarksTable.h | 4 +- testdata/golden/tables/pointers/PartsTable.h | 4 +- testdata/golden/tables/scalars/ScalarsTable.h | 4 +- testdata/golden/tables/stream/StreamTable.h | 4 +- testdata/wire/tables/block_padded.bin | Bin 384 -> 384 bytes testdata/wire/tables/block_render.bin | Bin 2816 -> 2816 bytes 417 files changed, 956 insertions(+), 556 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d06483704..11ce3f745 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,6 +111,18 @@ jobs: - name: go test run: go test ./... + # The projection's three controls (SPEC §3.1): a projection that stopped + # carrying enum and flags variant names, or a union's arm names, would + # let a reorder ship as a false match, and one without the codec law line + # would let a rounding change ship as one. Only a control that has gone + # red proves a gate is watching. All three are Go-only and take seconds, + # so they belong on the diff. + - name: the projection's gates go red without what they watch + run: | + make projection-variant-order-negative-control + make projection-wire-law-negative-control + make projection-union-arm-order-negative-control + # THE GENERATED TREE IS CURRENT (issue #30). The committed generated/ tree is # what this repo treats as ground truth — findings are receipted against its # line numbers — so a compiler change that moves the emitted text and leaves diff --git a/Makefile b/Makefile index 215f38b4f..4a73414d8 100644 --- a/Makefile +++ b/Makefile @@ -1720,6 +1720,113 @@ check-zero-range-negative-control: bin/schema test/zero_range_negative_main.cpp test/zero_range_negative_main.cpp -o build/schema_test_zero_range_negative ./build/schema_test_zero_range_negative +# THE VARIANT-ORDER NEGATIVE CONTROL (SPEC §3.1, issue #462). An enum value +# rides as its declaration ordinal and a flags variant as its bit position, so +# the projection carries both declarations' variant names in declaration order: +# without them a reorder is invisible and two builds either side of an +# alphabetized enum hold ONE id while every ordinal means something else. +# +# The control takes the variant lists back out of a COPY of the rendering +# through `go test -overlay` — no tracked file is written — and the reorder +# gate must go RED, on that surface and NOT on the union's, whose order rides +# in its payload types and must stay green under the same sabotage. +.PHONY: projection-variant-order-negative-control +projection-variant-order-negative-control: + @mkdir -p build + @sed -e 's|fmt.Fprintf(&b, " variant %d name=.*, i+1, v)$$|_, _ = i, v // SABOTAGED: the enum variant list removed|' \ + -e 's|fmt.Fprintf(&b, " bit %d name=.*|_, _ = i, v // SABOTAGED: the flags variant list removed|' \ + ir/projection.go > build/projection-no-variants.gotext + @[ "$$(grep -c SABOTAGED build/projection-no-variants.gotext)" = "2" ] || \ + { echo "NEGATIVE CONTROL FAILED: the sabotage did not remove both variant lists"; exit 1; } + @printf '{"Replace":{"%s/ir/projection.go":"%s/build/projection-no-variants.gotext"}}\n' \ + "$(CURDIR)" "$(CURDIR)" > build/projection-no-variants-overlay.json + @if go test -count=1 -overlay=build/projection-no-variants-overlay.json \ + ./internal/check -run TestIdMovesUnderVariantOrder > build/projection-no-variants.log 2>&1; then \ + echo "NEGATIVE CONTROL FAILED: the reorder gate passed with the variant lists gone"; \ + cat build/projection-no-variants.log; exit 1; \ + fi + @grep -q "an enum reordered did NOT move the protocol id" build/projection-no-variants.log || \ + { echo "NEGATIVE CONTROL FAILED: it went red, but not on the enum reorder"; \ + cat build/projection-no-variants.log; exit 1; } + @grep -q "a flags declaration reordered did NOT move the protocol id" build/projection-no-variants.log || \ + { echo "NEGATIVE CONTROL FAILED: it went red, but not on the flags reorder"; \ + cat build/projection-no-variants.log; exit 1; } + @go test -count=1 -overlay=build/projection-no-variants-overlay.json \ + ./internal/check -run 'TestUnionId' > build/projection-no-variants-union.log 2>&1 || \ + { echo "NEGATIVE CONTROL FAILED: the sabotage reddened the union gate too — it is not surgical"; \ + cat build/projection-no-variants-union.log; exit 1; } + @echo "negative control: without the variant lists the enum and flags reorders go silent, and the union gate stays green" + +# THE CODEC LAW NEGATIVE CONTROL (SPEC §3.1, issue #463). The projection's +# second version line is what a compiler change that moves the BYTES under an +# unchanged shape rides on — the 2026-08-15 rounding amendment moved bytes with +# every id unmoved, which is a false match. Take the line out of a COPY of the +# rendering and both law gates must go red, while the variant-order gate, +# which the line has nothing to do with, stays green. +.PHONY: projection-wire-law-negative-control +projection-wire-law-negative-control: + @mkdir -p build + @sed -e 's|fmt.Fprintf(&b, "schema-wire-law .*|// SABOTAGED: the codec law line removed|' \ + ir/projection.go > build/projection-no-wire-law.gotext + @grep -q SABOTAGED build/projection-no-wire-law.gotext || \ + { echo "NEGATIVE CONTROL FAILED: the sabotage did not remove the codec law line"; exit 1; } + @printf '{"Replace":{"%s/ir/projection.go":"%s/build/projection-no-wire-law.gotext"}}\n' \ + "$(CURDIR)" "$(CURDIR)" > build/projection-no-wire-law-overlay.json + @if go test -count=1 -overlay=build/projection-no-wire-law-overlay.json \ + ./internal/check -run TestWireLawLineMovesTheId > build/projection-no-wire-law.log 2>&1; then \ + echo "NEGATIVE CONTROL FAILED: the law gate passed with the line gone"; \ + cat build/projection-no-wire-law.log; exit 1; \ + fi + @grep -q "the projection must open with its rendering version and then its codec law" build/projection-no-wire-law.log || \ + { echo "NEGATIVE CONTROL FAILED: it went red, but not on the missing law line"; \ + cat build/projection-no-wire-law.log; exit 1; } + @if go test -count=1 -overlay=build/projection-no-wire-law-overlay.json \ + ./internal/goldens -run TestWireLawBumpMovesEveryId > build/projection-no-wire-law-corpus.log 2>&1; then \ + echo "NEGATIVE CONTROL FAILED: every corpus id survived the line's removal in silence"; \ + cat build/projection-no-wire-law-corpus.log; exit 1; \ + fi + @grep -q "does not carry the codec law line" build/projection-no-wire-law-corpus.log || \ + { echo "NEGATIVE CONTROL FAILED: the corpus gate went red for another reason"; \ + cat build/projection-no-wire-law-corpus.log; exit 1; } + @go test -count=1 -overlay=build/projection-no-wire-law-overlay.json \ + ./internal/check -run TestIdMovesUnderVariantOrder > build/projection-no-wire-law-variants.log 2>&1 || \ + { echo "NEGATIVE CONTROL FAILED: the sabotage reddened the variant-order gate too — it is not surgical"; \ + cat build/projection-no-wire-law-variants.log; exit 1; } + @echo "negative control: without the codec law line both law gates go red, and the variant-order gate stays green" + +# THE UNION ARM-ORDER NEGATIVE CONTROL (SPEC §3.1, §4.8, issue #491). A union's +# arm order rides in its payload types only while the arms DIFFER in type: two +# arms of one type reorder with every projected type unmoved, so the arm names +# project beside them. Take the names out of a COPY of the rendering and the +# same-typed reorder goes silent, while the enum and flags gate — which the arm +# names have nothing to do with — stays green. +.PHONY: projection-union-arm-order-negative-control +projection-union-arm-order-negative-control: + @mkdir -p build + @sed -E -e 's|" variant %d name=%s payload=|" variant %d payload=|' \ + -e 's|i\+1, v\.Name, v\.Type\)|i+1, v.Type) // SABOTAGED: the arm names removed|' \ + ir/projection.go > build/projection-no-arm-names.gotext + @grep -q SABOTAGED build/projection-no-arm-names.gotext || \ + { echo "NEGATIVE CONTROL FAILED: the sabotage did not remove the arm names"; exit 1; } + @printf '{"Replace":{"%s/ir/projection.go":"%s/build/projection-no-arm-names.gotext"}}\n' \ + "$(CURDIR)" "$(CURDIR)" > build/projection-no-arm-names-overlay.json + @if go test -count=1 -overlay=build/projection-no-arm-names-overlay.json \ + ./internal/check -run 'TestUnionId' > build/projection-no-arm-names.log 2>&1; then \ + echo "NEGATIVE CONTROL FAILED: the union gates passed with the arm names gone"; \ + cat build/projection-no-arm-names.log; exit 1; \ + fi + @grep -q "two arms of one payload type reordered and the id did not move" build/projection-no-arm-names.log || \ + { echo "NEGATIVE CONTROL FAILED: it went red, but not on the same-typed reorder"; \ + cat build/projection-no-arm-names.log; exit 1; } + @grep -q "an arm renamed (arm order is spelled in names) did NOT move the protocol id" build/projection-no-arm-names.log || \ + { echo "NEGATIVE CONTROL FAILED: it went red, but not on the arm rename"; \ + cat build/projection-no-arm-names.log; exit 1; } + @go test -count=1 -overlay=build/projection-no-arm-names-overlay.json \ + ./internal/check -run TestIdMovesUnderVariantOrder > build/projection-no-arm-names-variants.log 2>&1 || \ + { echo "NEGATIVE CONTROL FAILED: the sabotage reddened the variant-order gate too — it is not surgical"; \ + cat build/projection-no-arm-names-variants.log; exit 1; } + @echo "negative control: without the arm names a same-typed union reorder goes silent, and the variant-order gate stays green" + # Deliberately compiled WITHOUT -I$(SERIALIZE): the generated Table headers # carry no serialize dependency, and this build proves it stays that way. # @@ -2106,6 +2213,9 @@ test: build/schema_test build/schema_test_guard build/schema_test_tables build/s ./build/schema_test ./build/schema_test_guard $(MAKE) check-zero-range-negative-control + $(MAKE) projection-variant-order-negative-control + $(MAKE) projection-wire-law-negative-control + $(MAKE) projection-union-arm-order-negative-control ./build/schema_test_tables ./build/schema_test_tables_asan # THE WIRE FUZZER (docs/SPEC-TABLES.md §4.2): the tolerant read on hostile diff --git a/docs/FAQ.md b/docs/FAQ.md index b4c9e017f..e51d0c058 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -185,9 +185,14 @@ serve, and Protobuf does. The id hashes a **wire shape projection**, not the source text, so an edit that moves no bytes does not move the id: a comment, a blank line, a renamed -file, a renamed enum variant. Run `schema projection` to see exactly what it -depends on — it is deliberately printable, because a wire-affecting fact -missing from that text would be a fact the id ignores. +file, a renamed `const`. Renaming an enum variant, a flags variant +or a union arm is not in that list: the ordinal is the wire and the ordered +names are the only record of which ordinal means what, so a reorder — and +therefore a rename — moves the id. + +Run `schema projection` to see exactly what it depends on — it is +deliberately printable, because a wire-affecting fact missing from that text +would be a fact the id ignores. ## Why AGPL? My lawyer will hate this. diff --git a/docs/SPEC-TABLES.md b/docs/SPEC-TABLES.md index d6f282c1e..317a7ebd6 100644 --- a/docs/SPEC-TABLES.md +++ b/docs/SPEC-TABLES.md @@ -3108,13 +3108,13 @@ only. | the edit | the read report | the baseline | the build version | |---|---|---|---| | a specified DEFAULT changed, added or removed | silent | **refuses** | **moves** | -| a FLAGS variant inserted, removed, reordered or renamed in place | silent | **refuses** | no — a mask rides raw and a load copies it verbatim | +| a FLAGS variant inserted, removed, reordered or renamed in place | silent | **refuses** | **moves**, through the protocol id: the bit positions are the declaration's variant names and they ride in the wire-shape projection (SPEC.md §3.1). The cook projection carries them itself once #435 lands | | a field's REFERENT dropped, or swapped for one that cannot stand in | silent | **refuses** | **moves** | | a field's wire KIND, or an array's ELEMENT kind, changed | `kind_mismatch` | **refuses** | **moves** | | an array changed between keyed and positional, or its KEY enum swapped | `kind_mismatch` | **refuses** | **moves** | | a declared RANGE tightened — a maximum lowered, a minimum raised, or a range declared where the field had none | `clamped` | **warns** — the `min=`/`max=` tokens are extents like a capacity (§18.1) | **moves** | | a fixed field's `F` moved under the same storage width | silent — the kind carries the width and the signedness, and `F` is a declaration-side fact like a resolution (§3) | **refuses** — the `frac=` token is a fixed fact (§18.1) | **moves** | -| an `enum`'s or a `union`'s variant order or names moved | `unknown` for a name this reader lacks; a reorder is silent and safe | warns on a removal or a vanished name | **moves** | +| an `enum`'s or a `union`'s variant order or names moved | `unknown` for a name this reader lacks; a reorder is silent and safe | warns on a removal or a vanished name | **moves**, and so does the protocol id: both vocabularies project their ordered names (SPEC.md §3.1) | | a union ARM's declared TYPE changed | `kind_mismatch` or `malformed` wherever the arm's `L` or its framing can see it; **silent** for the four retypes §3 names | **refuses** | **moves** | | a union arm moved between a BODY and a POINTER — `T` to `*T` | `kind_mismatch` or `malformed`, in both directions: no conforming writer emits a four-byte body, and a node index read as one is stopped by the terminator rule (§3) | **refuses** — no kind byte separates the two one level down, which is why this row differs from the FIELD's above | **moves** | | a field added, removed or reordered | `unknown` for an id this reader lacks; an absent field defaults | passes; a removal AND an addition in one table in one edit **warn** as the pair a bare rename leaves (§18.2) | **moves** | @@ -4446,7 +4446,7 @@ with `scene.name = "hi"`, `scene.head = A`, `A.next = B`, `A.value = 1`, length at 8 — the buffer aligns at one and the length at four — then `head` at 16 and `palette` at 24, `sizeof=32 alignof=8`. `schema build-version --facts` prints those same numbers, and the id over them is - `0x4efe97313c704bb5`. + `0x355ef4922f004a7f`. - **The numbering** is §3.1's walk: the root is 1; `head` reaches A, so A is 2; descending A, `next` reaches B, so B is 3; then `palette` reaches P, so P is 4. @@ -4462,7 +4462,7 @@ with `scene.name = "hi"`, `scene.head = A`, `A.next = B`, `A.value = 1`, ``` 0000 53 43 48 4d 43 4f 4f 4b magic "SCHMCOOK" -0008 b5 4b 70 3c 31 97 fe 4e build_version 0x4efe97313c704bb5 +0008 7f 4a 00 2f 92 f4 5e 35 build_version 0x355ef4922f004a7f 0010 01 00 00 00 00 00 00 00 byte_order = 1 (little) 0018 48 00 00 00 00 00 00 00 data_length = 72 0020 40 00 00 00 00 00 00 00 attribution_length = 64 @@ -9887,10 +9887,14 @@ a second digest. line sees: a specified default changed; **a declared range tightened**; **a `bits(N)` narrowed within one storage width** — the case where the implied range moves and the storage kind, the size and the wire id do not; an `enum` - variant renamed; two `enum` variants swapped; **a `union` arm RENAMED** — - the rename and not a reorder, because SPEC.md §3.1 already puts union - variant ORDER in the protocol id, so a reorder would pass through group 1 - with group 3's union fact deleted. + variant renamed; two `enum` variants swapped; **a `union` arm RENAMED**; + **a `flags` variant REORDERED, and one RENAMED**. Those four rows now ride + group 1 as well, because SPEC.md §3.1 projects every vocabulary's ordered + names and the protocol id rides here in whole (§20.1) — so each proves the + build version moves, and none of them isolates group 3's own vocabulary + tokens any more. **What isolates them is a TABLE-ARMED union's arm renamed** + (§2.6): such a union has no packet wire, so the protocol id cannot cover it + and only the cook projection's `union=`/`payload=` tokens can see the edit. - **The layout group's own controls**: a field's KIND changed with its width unmoved; a field's offset moved with the record's `sizeof` unmoved; **a declared maximum raised** — which moves it, and whose §19.4 consequence is @@ -9907,10 +9911,9 @@ a second digest. unchanged. - **The exclusions, each with the edit that proves it**: a `was` rename moves - nothing; **a `flags` variant REORDERED moves nothing** — the row the - discipline of §4.1 and the baseline of §18 own instead; a `flags` variant - renamed moves nothing; **a flags field's REFERENT swapped for a same-width - other moves nothing** — the negative control for the missing `flags=` token; + nothing; **a flags field's REFERENT swapped for a same-width + other moves nothing** — the negative control for the missing `flags=` token, + and a table body's field, so the protocol id does not cover it either; a guard added or removed moves nothing; a `json` key changed moves nothing; a comment, a file split and a reorder of two records' declarations move nothing. diff --git a/docs/SPEC.md b/docs/SPEC.md index a176d8202..491137dc5 100644 --- a/docs/SPEC.md +++ b/docs/SPEC.md @@ -136,19 +136,35 @@ count; fixed `I` and `F`; specified defaults (both ends must agree on the value a constructor materializes — untaken branches read as ZEROS, never defaults, per §5); branch structure; `const`/`reserved`/`align` items; enum max and storage -bits; flags wire bits; union variant order and count, and each ARM's OWN -FIELD FACTS. The tag is positional and the arm is the wire (§4.8), so an arm -contributes what a field of its type contributes, and an arm with no payload -contributes that it has none. The +bits; **every enum's variant names in declaration order**; flags wire bits +and **every flags declaration's variant names in declaration order**; union +arm order and count, **every arm's NAME in declaration order**, and each +ARM's OWN FIELD FACTS. The tag is positional and the arm is the wire (§4.8), +so an arm contributes what a field of its type contributes, and an arm with +no payload contributes that it has none. The projection also carries FROZEN tokens — `table=false message=false` on every type line and `round=nearest` on every compressed-float field line — kept so the refusals of §4.11 moved no id; dropping one is a `ProjectionVersion` bump. +**Why the names, when the ordinal is the wire.** An enum value rides as its +declaration ordinal, a flags variant as its bit position, a union arm as its +tag, so a REORDER changes what every stored ordinal, every set bit and every +tag means while the shape — the count, the storage, the mask width, the +payload types — stays exactly where it was. The ordered names are the only +record of which ordinal means what; without them the two builds either side +of an alphabetized enum hold one id and read each other's values as the wrong +variant, which is the spurious MATCH this projection exists to refuse. A +union's arm names are load-bearing in one shape the payload types cannot +describe: two arms of the SAME payload type reorder with every projected type +unmoved, and tag 1 then means one arm on one build and the other on the +other. The consequence throughout is that a RENAME moves the id too, since +order is spelled in names and nothing else. That is the price and it is free: +both sides of a connection redeploy together, so the rename buys the redeploy +that was already happening. + **Excluded — each has no effect on the bytes:** comments and whitespace; file -names, file layout and declaration order; enum variant names, union variant -names included (the ordinal is the wire — renaming `Red` to `Crimson`, or a -union's `box` to `crate`, leaves every byte identical); `const` +names, file layout and declaration order; `const` declarations (their values are already resolved into the bounds above); type tags and native-type attributes. @@ -156,9 +172,18 @@ tags and native-type attributes. table has no packet wire, so an arm that names one has no packet encoding to project (SPEC-TABLES.md §2.6). -**The projection is versioned.** `ProjectionVersion` rides its first line, so -a change to the rendering itself moves every id deliberately and visibly -rather than silently. +**The projection carries two version lines.** `ProjectionVersion` rides the +first, so a change to the RENDERING moves every id deliberately and visibly +rather than silently. `WireLaw` rides the second, and it is the CODEC LAW's +version: the compiler's own rules for turning a value into bytes and bytes +back into a value, which the rendering cannot see. **Any compiler change that +can alter, for the same schema and the same values, the encoded bytes, the +inputs accepted, the reads rejected, the defaults materialized, or a numeric +conversion bumps `WireLaw`, and every protocol id in existence moves with +it** — in a minor release, announced first. The invariant the line exists to +hold: no generated byte and no read decision may change for the same schema +and input without the protocol id changing. Generated files carry the id +alone, so a bump costs no per-release churn in the tree. **The property, tested in both directions** (`internal/check/projection_test.go`): an edit that moves no bytes must not @@ -182,12 +207,14 @@ Consequences, in both directions: like a used one. Accepted: it fails safe (sides refuse to talk when they actually could), and under the ship-together model the redeploy was happening anyway. -- **File layout, declaration order, comments, whitespace, and enum variant - renames move nothing.** +- **File layout, declaration order across files, comments and whitespace move + nothing.** Variant order inside an enum or a flags declaration is not + declaration order in this sense: it is the wire, and it moves the id (§3.1). - **Adding a target language never moves the id**, and a compiler upgrade - moves it only through a deliberate `ProjectionVersion` bump. The corollary - is a real obligation on the compiler: the same schema must produce the same - wire across compiler versions. The conformance corpus's golden wire bytes + moves it only through a deliberate `ProjectionVersion` or `WireLaw` bump. + The corollary is a real obligation on the compiler: the same schema must + produce the same wire across compiler versions, which is what the second + line holds. The conformance corpus's golden wire bytes pin every construct's encoding permanently, and a compiler change that breaks a wire golden is a stop-the-line event, never a quiet fix (§7.2). @@ -1131,16 +1158,17 @@ union Value `Type` is ruled-not-now, banked with §4.4's switch design. - **A union field.** A union name is a field type inside `type` bodies, arrays included (`shapes [..4]ColliderShape`). -- **The id moves.** A union is wire structure: its variant order and count, - and every arm's own field facts, all shape bytes, so they project into - the protocol id (§3.1). Declaring a union, adding, removing or reordering - variants, and changing an arm's type or its bounds each move the unit's - id, and an arm moves it exactly as a field of that type in a `type` body - would. Renaming a VARIANT does **not** move it: the ordinal is the wire, - the enum-variant rule exactly (§3.1) — renaming `box` to `crate` leaves - every byte identical. The one union outside all of this is a union with a - `table` arm, which projects nothing at all, as the table does (§3.1). A - union edit also moves the unit's BUILD VERSION (SPEC-TABLES.md §20). +- **The id moves.** A union is wire structure: its arm order and count, every + arm's NAME, and every arm's own field facts all shape bytes, so they + project into the protocol id (§3.1). Declaring a union, adding, removing or + reordering arms, changing an arm's type or its bounds, and RENAMING an arm + each move the unit's id, and an arm's type moves it exactly as a field of + that type in a `type` body would. The names are why a reorder is visible + even when two arms carry the same type, and the rename is the price of + that, exactly as it is for an enum or flags variant (§3.1). The one union + outside all of this is a union with a `table` arm, which projects nothing + at all, as the table does (§3.1). A union edit also moves the unit's BUILD + VERSION (SPEC-TABLES.md §20). - **Generated code, per target**: representation is per-language and explicitly NOT part of the contract; what binds every target is behavioral only — identical bytes, None is a valid empty read, an diff --git a/docs/USAGE.md b/docs/USAGE.md index 95e8925a2..5fd3326da 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -2288,7 +2288,7 @@ cook's own header, and the third coordinate of the key below. ``` $ schema build-version tables/block/ -0xe9c3dec8287989af +0x0adbc6e7f9c4605d ``` ```cpp diff --git a/docs/VERSIONING.md b/docs/VERSIONING.md index 96c1e7091..daf8f7c98 100644 --- a/docs/VERSIONING.md +++ b/docs/VERSIONING.md @@ -16,8 +16,8 @@ page in the same pull request. The table wire is pre-release until 3.0.0. Before that release its files may change in a minor version, announced first, and the promises below are made -at 3.0.0. The packet wire's promises hold today with two open holes in what -its id can see, #462 and #463, named in its section below. +at 3.0.0. The packet wire's promises hold today, with one gate still owed on +what proves them across releases, #463, named in its section below. 1. **From 3.0.0, data written by any build reads in any other build of the same major, in either direction, and never crashes.** A table wire from a @@ -41,8 +41,8 @@ its id can see, #462 and #463, named in its section below. versions the cooked and blocked forms and addresses every cooked asset. An edit inside a `table` body moves the build version and never the protocol id. An edit to a `type`, or to an enum, flags or union declaration, which - both wires share, moves both, with the exception #462 closes: a reorder or - rename of variants moves neither today. A `was` rename moves neither. + both wires share, moves both — a variant or arm reordered or renamed + included, because that order is the wire. A `was` rename moves neither. 5. **Same-build forms match or refuse.** A cook or a block opens under exactly the build version that wrote it, by a header match, and otherwise refuses: `Open` returns null, and the tool's `uncook` names the mismatch. @@ -103,28 +103,40 @@ The protocol id is the low 64 bits of SHA-256 over the unit's *wire-shape projection*, where a unit is a directory of `.schema` files compiled together. The projection is a text rendering of every fact that determines packet bytes: field order and names, kinds, widths, bounds, capacities, defaults, branch -structure, enum storage, flags bits, union arm order. It excludes what the -bytes cannot see: comments, layout, declaration order across records. A +structure, enum storage, flags bits, enum and flags variant names in +declaration order, union arm order and arm names. It excludes what the bytes +cannot see: comments, layout, declaration order across records. A source-text hash would produce spurious mismatches; hashing the compiler's internal structures could produce a spurious *match*, which is the dangerous -direction. The projection is the thing in between, and it is versioned: its -first line is `ProjectionVersion`, and bumping it moves every protocol id in -existence. `schema id` prints the id and `schema projection` prints the text -it is taken over. - -Two things the projection must carry and does not yet, both open as defects: - -- **Variant order.** An enum value rides as its declaration ordinal, so a - reorder changes what every stored ordinal means, and the projection today - records only the variant count: reordering an enum or a flags declaration - leaves the id unchanged, a spurious match. Variant names enter the - projection in declaration order (#462); the consequence, that a variant - rename then moves the id, is free under the redeploy rule below. -- **The codec law.** A compiler change that alters the bytes a schema - produces without changing its shape, such as a rounding rule, must move - every id. The projection gains a wire-law version line (#463), and a - release gate generates the corpus with the previous release and the new one - and requires byte identity under an equal id. +direction. The projection is the thing in between. `schema id` prints the id +and `schema projection` prints the text it is taken over. + +Two version lines ride the top of that text, and bumping either moves every +protocol id in existence: + +- **`ProjectionVersion`**, the rendering's own version, for the day the + projection must describe something it previously did not. +- **`WireLaw`**, the codec law's version, for what the rendering cannot see. + Any compiler change that can alter, for the same schema and the same + values, the encoded bytes, the inputs accepted, the reads rejected, the + defaults materialized, or a numeric conversion bumps it. The invariant: + **no generated byte and no read decision may change for the same schema and + input without the protocol id changing.** Generated files carry the id + alone, so a bump costs no churn in a consumer's tree. What is still owed is + the gate that proves the invariant across releases — the corpus generated + by the previous release and the new one, byte-compared under an equal id + (#463). + +**Variant order is the wire, and the names carry it.** An enum value rides as +its declaration ordinal, a flags variant as its bit position, a union arm as +its tag, so a reorder changes what every stored ordinal, every set bit and +every tag means while the shape stays put. Each declaration's variant or arm +names therefore enter the projection in declaration order, which is the only +way a reorder can be seen. A union's payload types carry its arm order only +while the arms differ in type: two arms of the SAME payload type reorder with +every projected type unmoved, and the names are the whole of the difference. +The consequence is that a *rename* moves the id too — order is spelled in +names and nothing else — and under the redeploy rule below that is free. **Same or refuse.** Two peers holding the same protocol id interoperate; two holding different ids refuse each other instead of misreading each other. @@ -239,12 +251,13 @@ does today. | a field's kind changed (`int32`→`int64`, `T`→`*T`, `string`→`bytes`, `bits(8)`→`bits(9)`) | `kind_mismatch`; the value reads as the default | **refuses** | moves | | `T`→`?T`, `?T`→`T` | nothing: one framing. An old file's elided default reads as *absent* under `?T` | passes | moves (the presence flag is storage) | | an enum variant added or removed | `unknown` where a stored name is gone | passes; warns on a removal | moves, and so does the protocol id | -| an enum variant reordered | nothing | passes | moves; the protocol id moves once #462 lands, **nothing today** | -| an enum variant renamed | the old name reads `None`, counted | warns | moves | +| an enum variant reordered | nothing | passes | moves, and so does the protocol id | +| an enum variant renamed | the old name reads `None`, counted | warns | moves, and so does the protocol id: order is spelled in names | | a `fixed` field's `F` moved | **silent**: the raw integer reads at the new scale | **refuses** | moves | | a field's referent replaced by one that cannot stand in (an enum respelled as its raw integer) | **silent** | **refuses** | moves | | a flags variant inserted or removed | silent | refuses | moves, and so does the protocol id | -| a flags variant reordered or renamed in place | **silent** | **refuses** | moves once #435's rule lands; **nothing today**, and the protocol id moves once #462 lands | +| a flags variant reordered or renamed in place | **silent** | **refuses** | moves, and so does the protocol id; the cook projection carries the bit positions itself once #435 lands | +| a union arm reordered or renamed | `unknown` for an arm this reader lacks; a reorder is silent and safe | warns on a vanished name | moves, and so does the protocol id: the arm names are what a same-typed reorder moves | | a keyed array made positional | `kind_mismatch` | refuses | moves | | a keyed array's key enum swapped for another | `unknown`, one per slot; the kind stays | refuses | moves | | a map's KEY kind changed, or its KEY bound tightened (SPEC-TABLES.md §2.8) | a changed kind is one `kind_mismatch` for the map, which reads empty. A tightened bound drops the entries that no longer fit and counts `clamped`, one per entry | **refuses** a changed kind, warns on a tightened bound | moves | @@ -347,8 +360,8 @@ removed or renamed bare; any offset, size, alignment, kind or wire-id move; any change to which declaration a field names; a declared maximum raised or lowered; a default, range or vocabulary edit; a variant inserted into a keyed enum (a keyed enum is a layout fact: its `Max` sizes every array keyed by it, -so a content edit re-cooks every asset of the unit); a `ProjectionVersion` or -cook-form bump. +so a content edit re-cooks every asset of the unit); a `ProjectionVersion`, +`WireLaw` or cook-form bump. **What does not:** comments, layout, declaration order across records; a `was` rename, because a rename must not invalidate every cooked file in @@ -502,10 +515,10 @@ the compatibility rules do. generated fixed-point narrowing changed from the bare arithmetic shift (ties toward +infinity) to the one fixed-point rounding rule, ties away from zero. This moved the bytes generated code produced only on exact ties - of negative raw values in that narrowing, and the protocol id did not move, - because the projection carries no codec law line. Under #463 it would have - moved every id, in a minor, announced; this entry is the worked example of - why that line exists. + of negative raw values in that narrowing, and the protocol id did not move: + the projection carried no codec law line at the time. It is the worked + example of why that line exists — under the rule now in force it bumps + `WireLaw` and moves every id, in a minor, announced first. Both sides of every connection redeploy together, so an amendment that moves bytes is priced by that rule and not by the fiction that deployed halves must @@ -611,8 +624,10 @@ still open. - **A content addition that is an enum variant is a lockstep redeploy**, even when only tables reach the enum, because the declaration is shared by both wires. -- **The protocol id cannot see an enum or flags reorder today** (#462): until - it lands, a reorder is a spurious match. Do not reorder; append. +- **A variant or union arm reordered or renamed is a lockstep redeploy**, a + spelling fix included: those names ride in the projection in declaration + order, because a reorder changes what every ordinal means and nothing else + can see it, so a rename moves the protocol id with it. - **A field of a `type` that a table reaches cannot be renamed safely today** (#478): `was` is refused there, and a bare rename orphans every stored value. @@ -681,9 +696,8 @@ repository not yet behind it. The 3.0.0 release holds the list at zero. - #435: the uniform 64-bit wire, the form byte, the id table, the enum kind, flags bit positions in the build version, the reserved-id refusals. - #434: the reserved escape kind. -- #462: variant order in the protocol id projection. -- #463: the wire-law line in the projection and the previous-release - differential gate. +- #463: the previous-release differential gate — the corpus generated by the + previous release and the new one, byte-compared under an equal id. - #432: the cook triple, and the byte-order sentences in five places. - #396: table `was`; string, bytes and flags defaults in the baseline and the build version. diff --git a/generated/bench/c/Bench.h b/generated/bench/c/Bench.h index 64bc4902c..b5f800d96 100644 --- a/generated/bench/c/Bench.h +++ b/generated/bench/c/Bench.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package bench — protocol id 0xae3b1e28b96e4586 */ + package bench — protocol id 0x5b8227d21cba8abf */ #ifndef SCHEMA_BENCH_BENCH_H #define SCHEMA_BENCH_BENCH_H @@ -25,7 +25,7 @@ extern "C" { /* The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two sides at the same id speak identical bits; there is no other versioning. */ -#define BENCH_PROTOCOL_ID 0xae3b1e28b96e4586ULL +#define BENCH_PROTOCOL_ID 0x5b8227d21cba8abfULL /* type BenchPacket */ diff --git a/generated/bench/c/BenchWire.h b/generated/bench/c/BenchWire.h index 42686b48e..e936e2ab6 100644 --- a/generated/bench/c/BenchWire.h +++ b/generated/bench/c/BenchWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package bench — protocol id 0xae3b1e28b96e4586 */ + package bench — protocol id 0x5b8227d21cba8abf */ #ifndef SCHEMA_BENCH_BENCHWIRE_H #define SCHEMA_BENCH_BENCHWIRE_H diff --git a/generated/bench/c/RealWorld.h b/generated/bench/c/RealWorld.h index 5cdd37539..624549487 100644 --- a/generated/bench/c/RealWorld.h +++ b/generated/bench/c/RealWorld.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package realworld — protocol id 0x8f7228a19854fbb2 */ + package realworld — protocol id 0x0eefe6bcd2596139 */ #ifndef SCHEMA_REALWORLD_REAL_WORLD_H #define SCHEMA_REALWORLD_REAL_WORLD_H @@ -24,7 +24,7 @@ extern "C" { /* The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two sides at the same id speak identical bits; there is no other versioning. */ -#define REALWORLD_PROTOCOL_ID 0x8f7228a19854fbb2ULL +#define REALWORLD_PROTOCOL_ID 0x0eefe6bcd2596139ULL /* enum PacketMode — None = 0 implicit, variants dense from 1, wire range [0, 5] diff --git a/generated/bench/c/RealWorldWire.h b/generated/bench/c/RealWorldWire.h index 5bdd99312..28e1bd6bf 100644 --- a/generated/bench/c/RealWorldWire.h +++ b/generated/bench/c/RealWorldWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package realworld — protocol id 0x8f7228a19854fbb2 */ + package realworld — protocol id 0x0eefe6bcd2596139 */ #ifndef SCHEMA_REALWORLD_REAL_WORLDWIRE_H #define SCHEMA_REALWORLD_REAL_WORLDWIRE_H diff --git a/generated/bench/cpp/Bench.h b/generated/bench/cpp/Bench.h index 829b5f74b..e987ef117 100644 --- a/generated/bench/cpp/Bench.h +++ b/generated/bench/cpp/Bench.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf #pragma once @@ -14,7 +14,7 @@ namespace bench { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -inline constexpr uint64_t ProtocolId = 0xae3b1e28b96e4586ull; +inline constexpr uint64_t ProtocolId = 0x5b8227d21cba8abfull; // type BenchPacket struct BenchPacket { diff --git a/generated/bench/cpp/BenchWire.h b/generated/bench/cpp/BenchWire.h index bc7e48b34..f0da55b90 100644 --- a/generated/bench/cpp/BenchWire.h +++ b/generated/bench/cpp/BenchWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf #pragma once diff --git a/generated/bench/cpp/RealWorld.h b/generated/bench/cpp/RealWorld.h index b675a4b01..29fa7842f 100644 --- a/generated/bench/cpp/RealWorld.h +++ b/generated/bench/cpp/RealWorld.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 #pragma once @@ -12,7 +12,7 @@ namespace realworld { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -inline constexpr uint64_t ProtocolId = 0x8f7228a19854fbb2ull; +inline constexpr uint64_t ProtocolId = 0x0eefe6bcd2596139ull; // enum PacketMode — None = 0 implicit, variants dense from 1, wire range [0, 5] (SPEC §4.2) enum class PacketMode : uint8_t { diff --git a/generated/bench/cpp/RealWorldWire.h b/generated/bench/cpp/RealWorldWire.h index 85ea53830..d63b278bf 100644 --- a/generated/bench/cpp/RealWorldWire.h +++ b/generated/bench/cpp/RealWorldWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 #pragma once diff --git a/generated/bench/cs/Bench.cs b/generated/bench/cs/Bench.cs index 8db7c4f77..2cf8fb657 100644 --- a/generated/bench/cs/Bench.cs +++ b/generated/bench/cs/Bench.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an interior null) @@ -219,7 +219,7 @@ public static partial class Schema { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public const ulong ProtocolId = 0xae3b1e28b96e4586; + public const ulong ProtocolId = 0x5b8227d21cba8abf; // BenchPacketMaxBits is the longest wire path; align pads at worst case (SPEC §6.1). // BenchPacketMaxBytes is rounded up to the 8-byte write-buffer granularity. diff --git a/generated/bench/cs/realworld/RealWorld.cs b/generated/bench/cs/realworld/RealWorld.cs index 43175c97c..7510709cf 100644 --- a/generated/bench/cs/realworld/RealWorld.cs +++ b/generated/bench/cs/realworld/RealWorld.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an interior null) @@ -155,7 +155,7 @@ public static partial class Schema { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public const ulong ProtocolId = 0x8f7228a19854fbb2; + public const ulong ProtocolId = 0x0eefe6bcd2596139; // EnumNamePacketMode: debug/log/tooling name for any PacketMode wire value — // out-of-set values (wire-legal up to the declared max) name as "???" diff --git a/generated/bench/dart/Bench.dart b/generated/bench/dart/Bench.dart index e6871a25d..99ff5c7eb 100644 --- a/generated/bench/dart/Bench.dart +++ b/generated/bench/dart/Bench.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // The shipped Dart wire path (issue #155): the serialize.dart bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -98,7 +98,7 @@ String _hex64(int value) => value < 0 // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const int protocolId = 0xae3b1e28b96e4586; +const int protocolId = 0x5b8227d21cba8abf; // type BenchPacket final class BenchPacket { diff --git a/generated/bench/dart/Int128.dart b/generated/bench/dart/Int128.dart index 2ac5d64ab..22b99548f 100644 --- a/generated/bench/dart/Int128.dart +++ b/generated/bench/dart/Int128.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // The emulated 128-bit pair: Dart has no native 128-bit integer, so // int128/uint128 storage speaks these types — two's-complement math on diff --git a/generated/bench/dart/realworld/RealWorld.dart b/generated/bench/dart/realworld/RealWorld.dart index 10b70f03f..8f54ee873 100644 --- a/generated/bench/dart/realworld/RealWorld.dart +++ b/generated/bench/dart/realworld/RealWorld.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 // // The shipped Dart wire path (issue #155): the serialize.dart bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -96,7 +96,7 @@ String _hex64(int value) => value < 0 // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const int protocolId = 0x8f7228a19854fbb2; +const int protocolId = 0x0eefe6bcd2596139; // PacketMode — None = 0 implicit, variants dense from 1, wire range [0, 5] (SPEC §4.2); // an int-constant namespace — the Dart translation of the family's integer- diff --git a/generated/bench/elixir/Bench.ex b/generated/bench/elixir/Bench.ex index 52f21a1ca..e1bcbd456 100644 --- a/generated/bench/elixir/Bench.ex +++ b/generated/bench/elixir/Bench.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package bench — protocol id 0xae3b1e28b96e4586 +# package bench — protocol id 0x5b8227d21cba8abf # # The shipped Elixir wire path (issue #167): the serialize.elixir port's # measured shapes — byte-granular 32-bit-group packing and 40-bit read @@ -256,7 +256,7 @@ defmodule Bench.Bench do # The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two # sides at the same id speak identical bits; there is no other versioning. - def protocol_id, do: 0xAE3B1E28B96E4586 + def protocol_id, do: 0x5B8227D21CBA8ABF # bench_packet_max_bits is the longest wire path; align pads at worst case (SPEC §6.1). # bench_packet_max_bytes is rounded up to the family 8-byte write-buffer granularity. diff --git a/generated/bench/elixir/realworld/RealWorld.ex b/generated/bench/elixir/realworld/RealWorld.ex index 5fe5c4c8c..e740903de 100644 --- a/generated/bench/elixir/realworld/RealWorld.ex +++ b/generated/bench/elixir/realworld/RealWorld.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package realworld — protocol id 0x8f7228a19854fbb2 +# package realworld — protocol id 0x0eefe6bcd2596139 # # The shipped Elixir wire path (issue #167): the serialize.elixir port's # measured shapes — byte-granular 32-bit-group packing and 40-bit read @@ -357,7 +357,7 @@ defmodule Realworld.RealWorld do # The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two # sides at the same id speak identical bits; there is no other versioning. - def protocol_id, do: 0x8F7228A19854FBB2 + def protocol_id, do: 0x0EEFE6BCD2596139 # enum_name_packet_mode: debug/log/tooling name for any PacketMode wire value — # out-of-set values (wire-legal up to the declared max) name as "???" diff --git a/generated/bench/go/Bench.go b/generated/bench/go/Bench.go index 4a5bbdf77..fe94c0ddd 100644 --- a/generated/bench/go/Bench.go +++ b/generated/bench/go/Bench.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf package bench @@ -16,7 +16,7 @@ import ( // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const ProtocolId uint64 = 0xae3b1e28b96e4586 +const ProtocolId uint64 = 0x5b8227d21cba8abf // ErrValidation is returned when a read rejects the wire: a wrong constant, // nonzero reserved bits, or an interior null in a string (SPEC §4.3, §4.7). diff --git a/generated/bench/go/realworld/RealWorld.go b/generated/bench/go/realworld/RealWorld.go index ac8820cac..ebc37ad62 100644 --- a/generated/bench/go/realworld/RealWorld.go +++ b/generated/bench/go/realworld/RealWorld.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 package realworld @@ -16,7 +16,7 @@ import ( // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const ProtocolId uint64 = 0x8f7228a19854fbb2 +const ProtocolId uint64 = 0x0eefe6bcd2596139 // ErrValidation is returned when a read rejects the wire: a wrong constant, // nonzero reserved bits, or an interior null in a string (SPEC §4.3, §4.7). diff --git a/generated/bench/java/Bench.java b/generated/bench/java/Bench.java index ee4d2a17e..952f8058b 100644 --- a/generated/bench/java/Bench.java +++ b/generated/bench/java/Bench.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // The shipped Java wire path (issue #156): the serialize.java bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -39,7 +39,7 @@ private Bench() {} // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public static final long protocolId = 0xae3b1e28b96e4586L; + public static final long protocolId = 0x5b8227d21cba8abfL; // type BenchPacket public static final class BenchPacket { diff --git a/generated/bench/java/Int128.java b/generated/bench/java/Int128.java index dc5bb1891..b4579834f 100644 --- a/generated/bench/java/Int128.java +++ b/generated/bench/java/Int128.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // The emulated 128-bit pair, signed half: Java has no native 128-bit integer, // so int128/uint128 storage speaks Int128/UInt128 — two's-complement math diff --git a/generated/bench/java/UInt128.java b/generated/bench/java/UInt128.java index 58fa9fe6d..f11b42a84 100644 --- a/generated/bench/java/UInt128.java +++ b/generated/bench/java/UInt128.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // The emulated 128-bit pair, unsigned half: Java has no native 128-bit integer, // so int128/uint128 storage speaks Int128/UInt128 — two's-complement math diff --git a/generated/bench/java/realworld/RealWorld.java b/generated/bench/java/realworld/RealWorld.java index b0dbe913b..eabb5f69a 100644 --- a/generated/bench/java/realworld/RealWorld.java +++ b/generated/bench/java/realworld/RealWorld.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 // // The shipped Java wire path (issue #156): the serialize.java bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -39,7 +39,7 @@ private RealWorld() {} // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public static final long protocolId = 0x8f7228a19854fbb2L; + public static final long protocolId = 0x0eefe6bcd2596139L; // PacketMode — None = 0 implicit, variants dense from 1, wire range [0, 5] (SPEC §4.2); // an int-constant namespace — the Java translation of the family's integer- diff --git a/generated/bench/js/Bench.js b/generated/bench/js/Bench.js index c4593e8da..3faafa666 100644 --- a/generated/bench/js/Bench.js +++ b/generated/bench/js/Bench.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an out-of-contract @@ -22,7 +22,7 @@ const BOOL_SCRATCH = { value: false }; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -export const ProtocolId = 0xae3b1e28b96e4586n; +export const ProtocolId = 0x5b8227d21cba8abfn; // type BenchPacket export class BenchPacket { diff --git a/generated/bench/js/BenchFlat.js b/generated/bench/js/BenchFlat.js index 7aa0e2f6a..d83058844 100644 --- a/generated/bench/js/BenchFlat.js +++ b/generated/bench/js/BenchFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // // THE FLAT TIER — the shipped JavaScript wire path: a single-word 32-bit // bitpacker inlined at every field (byte-identical wire to serialize.js), diff --git a/generated/bench/js/realworld/RealWorld.js b/generated/bench/js/realworld/RealWorld.js index 5f6c1c584..623fc8975 100644 --- a/generated/bench/js/realworld/RealWorld.js +++ b/generated/bench/js/realworld/RealWorld.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an out-of-contract @@ -22,7 +22,7 @@ const BOOL_SCRATCH = { value: false }; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -export const ProtocolId = 0x8f7228a19854fbb2n; +export const ProtocolId = 0x0eefe6bcd2596139n; // PacketMode — None = 0 implicit, variants dense from 1, wire range [0, 5] (SPEC §4.2); // a frozen object of Number values — the JS translation of the family's diff --git a/generated/bench/js/realworld/RealWorldFlat.js b/generated/bench/js/realworld/RealWorldFlat.js index 309cf2175..ac1bb5a7c 100644 --- a/generated/bench/js/realworld/RealWorldFlat.js +++ b/generated/bench/js/realworld/RealWorldFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 // // THE FLAT TIER — the shipped JavaScript wire path: a single-word 32-bit // bitpacker inlined at every field (byte-identical wire to serialize.js), diff --git a/generated/bench/rust-realworld/src/lib.rs b/generated/bench/rust-realworld/src/lib.rs index cc3c57379..968949e70 100644 --- a/generated/bench/rust-realworld/src/lib.rs +++ b/generated/bench/rust-realworld/src/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/generated/bench/rust-realworld/src/realworld.rs b/generated/bench/rust-realworld/src/realworld.rs index 0bc45d941..ffb044551 100644 --- a/generated/bench/rust-realworld/src/realworld.rs +++ b/generated/bench/rust-realworld/src/realworld.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package realworld — protocol id 0x8f7228a19854fbb2 +// package realworld — protocol id 0x0eefe6bcd2596139 use serialize::{ReadStream, Stream, WriteStream}; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0x8f7228a19854fbb2; +pub const PROTOCOL_ID: u64 = 0x0eefe6bcd2596139; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/generated/bench/rust/src/bench.rs b/generated/bench/rust/src/bench.rs index 7fb0e5138..381782ba5 100644 --- a/generated/bench/rust/src/bench.rs +++ b/generated/bench/rust/src/bench.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf use serialize::{ReadStream, Stream, WriteStream}; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0xae3b1e28b96e4586; +pub const PROTOCOL_ID: u64 = 0x5b8227d21cba8abf; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/generated/bench/rust/src/lib.rs b/generated/bench/rust/src/lib.rs index d0f6ca763..2d6d65a5d 100644 --- a/generated/bench/rust/src/lib.rs +++ b/generated/bench/rust/src/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package bench — protocol id 0xae3b1e28b96e4586 +// package bench — protocol id 0x5b8227d21cba8abf // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/generated/bench/tables/c/BenchTable.h b/generated/bench/tables/c/BenchTable.h index 685f5e556..c6311c1b8 100644 --- a/generated/bench/tables/c/BenchTable.h +++ b/generated/bench/tables/c/BenchTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package benchtable — protocol id 0x1a38ac487752b0ae */ + package benchtable — protocol id 0xd093e62e6f907c36 */ #ifndef SCHEMA_BENCHTABLE_BENCH_TABLE_H #define SCHEMA_BENCHTABLE_BENCH_TABLE_H @@ -23,7 +23,7 @@ extern "C" { /* The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two sides at the same id speak identical bits; there is no other versioning. */ -#define BENCHTABLE_PROTOCOL_ID 0x1a38ac487752b0aeULL +#define BENCHTABLE_PROTOCOL_ID 0xd093e62e6f907c36ULL /* enum TableWeapon — None = 0 implicit, variants dense from 1, wire range [0, 15] diff --git a/generated/bench/tables/c/BenchTableBlock.h b/generated/bench/tables/c/BenchTableBlock.h index ac8329a9c..f13a32346 100644 --- a/generated/bench/tables/c/BenchTableBlock.h +++ b/generated/bench/tables/c/BenchTableBlock.h @@ -42,7 +42,7 @@ extern "C" { PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_BENCHTABLE_BUILD_VERSION_VALUE 0x1864d106cc5f2c11ull +#define SCHEMA_BENCHTABLE_BUILD_VERSION_VALUE 0x5f2254539e3ad47dull #endif /* SCHEMA_BENCHTABLE_BUILD_VERSION */ diff --git a/generated/bench/tables/c/BenchTableTable.h b/generated/bench/tables/c/BenchTableTable.h index 796d7f468..f9aaded37 100644 --- a/generated/bench/tables/c/BenchTableTable.h +++ b/generated/bench/tables/c/BenchTableTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package benchtable — protocol id 0x1a38ac487752b0ae (packets only: tables version by field id, not by protocol id) + package benchtable — protocol id 0xd093e62e6f907c36 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -364,7 +364,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_BENCHTABLE_BUILD_VERSION_VALUE 0x1864d106cc5f2c11ull +#define SCHEMA_BENCHTABLE_BUILD_VERSION_VALUE 0x5f2254539e3ad47dull #endif /* SCHEMA_BENCHTABLE_BUILD_VERSION */ diff --git a/generated/bench/tables/c/BenchTableWire.h b/generated/bench/tables/c/BenchTableWire.h index 0793d6182..fc33fef4a 100644 --- a/generated/bench/tables/c/BenchTableWire.h +++ b/generated/bench/tables/c/BenchTableWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package benchtable — protocol id 0x1a38ac487752b0ae */ + package benchtable — protocol id 0xd093e62e6f907c36 */ #ifndef SCHEMA_BENCHTABLE_BENCH_TABLEWIRE_H #define SCHEMA_BENCHTABLE_BENCH_TABLEWIRE_H diff --git a/generated/bench/tables/cpp/BenchTable.h b/generated/bench/tables/cpp/BenchTable.h index 796a7ba06..81369594f 100644 --- a/generated/bench/tables/cpp/BenchTable.h +++ b/generated/bench/tables/cpp/BenchTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 #pragma once @@ -12,7 +12,7 @@ namespace benchtable { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -inline constexpr uint64_t ProtocolId = 0x1a38ac487752b0aeull; +inline constexpr uint64_t ProtocolId = 0xd093e62e6f907c36ull; // enum TableWeapon — None = 0 implicit, variants dense from 1, wire range [0, 15] (SPEC §4.2) enum class TableWeapon : uint8_t { diff --git a/generated/bench/tables/cpp/BenchTableBlock.h b/generated/bench/tables/cpp/BenchTableBlock.h index 5f7b024ef..3cdfb4bb7 100644 --- a/generated/bench/tables/cpp/BenchTableBlock.h +++ b/generated/bench/tables/cpp/BenchTableBlock.h @@ -50,7 +50,7 @@ namespace benchtable { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x1864d106cc5f2c11ull; +static const uint64_t BuildVersion = 0x5f2254539e3ad47dull; } // namespace benchtable diff --git a/generated/bench/tables/cpp/BenchTableTable.h b/generated/bench/tables/cpp/BenchTableTable.h index e4c2a832b..967126600 100644 --- a/generated/bench/tables/cpp/BenchTableTable.h +++ b/generated/bench/tables/cpp/BenchTableTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae (packets only: tables version by field id, not by protocol id) +// package benchtable — protocol id 0xd093e62e6f907c36 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -265,7 +265,7 @@ namespace benchtable { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x1864d106cc5f2c11ull; +static const uint64_t BuildVersion = 0x5f2254539e3ad47dull; } // namespace benchtable diff --git a/generated/bench/tables/cpp/BenchTableWire.h b/generated/bench/tables/cpp/BenchTableWire.h index c579edf3d..1a810c538 100644 --- a/generated/bench/tables/cpp/BenchTableWire.h +++ b/generated/bench/tables/cpp/BenchTableWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 #pragma once diff --git a/generated/bench/tables/cs/BenchTable.cs b/generated/bench/tables/cs/BenchTable.cs index fb0086bde..b4742b5b5 100644 --- a/generated/bench/tables/cs/BenchTable.cs +++ b/generated/bench/tables/cs/BenchTable.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an interior null) @@ -93,7 +93,7 @@ public static partial class Schema { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public const ulong ProtocolId = 0x1a38ac487752b0ae; + public const ulong ProtocolId = 0xd093e62e6f907c36; // EnumNameTableWeapon: debug/log/tooling name for any TableWeapon wire value — // out-of-set values (wire-legal up to the declared max) name as "???" diff --git a/generated/bench/tables/cs/BenchTableBlock.cs b/generated/bench/tables/cs/BenchTableBlock.cs index 04eb6f52d..9b4c73f15 100644 --- a/generated/bench/tables/cs/BenchTableBlock.cs +++ b/generated/bench/tables/cs/BenchTableBlock.cs @@ -164,7 +164,7 @@ public static partial class Schema // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION // is what everything cooked or blocked is keyed by. A table edit moves // this and never the protocol id; a type edit moves both. - public const ulong BuildVersion = 0x1864d106cc5f2c11UL; + public const ulong BuildVersion = 0x5f2254539e3ad47dUL; // The block's magic (docs/SPEC-TABLES.md §19.1), read BYTEWISE: it is the one // field read without assuming the order the rest of the block is in. diff --git a/generated/bench/tables/dart/BenchTable.dart b/generated/bench/tables/dart/BenchTable.dart index f0c6998a6..0dbd7595d 100644 --- a/generated/bench/tables/dart/BenchTable.dart +++ b/generated/bench/tables/dart/BenchTable.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 // // The shipped Dart wire path (issue #155): the serialize.dart bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -33,7 +33,7 @@ String _hex64(int value) => value < 0 // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const int protocolId = 0x1a38ac487752b0ae; +const int protocolId = 0xd093e62e6f907c36; // TableWeapon — None = 0 implicit, variants dense from 1, wire range [0, 15] (SPEC §4.2); // an int-constant namespace — the Dart translation of the family's integer- diff --git a/generated/bench/tables/dart/BenchTableBlock.dart b/generated/bench/tables/dart/BenchTableBlock.dart index 80a50cec4..55fcf9a2d 100644 --- a/generated/bench/tables/dart/BenchTableBlock.dart +++ b/generated/bench/tables/dart/BenchTableBlock.dart @@ -26,7 +26,7 @@ import 'dart:typed_data'; // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -const int tableBuildVersion = 0x1864d106cc5f2c11; +const int tableBuildVersion = 0x5f2254539e3ad47d; // The block's magic (docs/SPEC-TABLES.md §19.1), read BYTEWISE: it is the one field // read without assuming the order the rest of the block is in. A consumer that diff --git a/generated/bench/tables/elixir/BenchTable.ex b/generated/bench/tables/elixir/BenchTable.ex index 839b83aac..4fb854f3e 100644 --- a/generated/bench/tables/elixir/BenchTable.ex +++ b/generated/bench/tables/elixir/BenchTable.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package benchtable — protocol id 0x1a38ac487752b0ae +# package benchtable — protocol id 0xd093e62e6f907c36 # # The shipped Elixir wire path (issue #167): the serialize.elixir port's # measured shapes — byte-granular 32-bit-group packing and 40-bit read @@ -107,7 +107,7 @@ defmodule Benchtable.BenchTable do # The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two # sides at the same id speak identical bits; there is no other versioning. - def protocol_id, do: 0x1A38AC487752B0AE + def protocol_id, do: 0xD093E62E6F907C36 # enum_name_table_weapon: debug/log/tooling name for any TableWeapon wire value — # out-of-set values (wire-legal up to the declared max) name as "???" diff --git a/generated/bench/tables/elixir/BenchTableTable.ex b/generated/bench/tables/elixir/BenchTableTable.ex index 994545a11..51326673c 100644 --- a/generated/bench/tables/elixir/BenchTableTable.ex +++ b/generated/bench/tables/elixir/BenchTableTable.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package benchtable — the TABLE wire (docs/SPEC-TABLES.md); protocol id 0x1A38AC487752B0AE names packets only, and a table versions by field id +# package benchtable — the TABLE wire (docs/SPEC-TABLES.md); protocol id 0xD093E62E6F907C36 names packets only, and a table versions by field id # table TableEntity — TABLE-wire storage (docs/SPEC-TABLES.md): every field carries # its declared default at construction, so %Benchtable.TableEntity{} IS the value a read diff --git a/generated/bench/tables/elixir/BuildVersion.ex b/generated/bench/tables/elixir/BuildVersion.ex index c6a61e55d..a41afe0eb 100644 --- a/generated/bench/tables/elixir/BuildVersion.ex +++ b/generated/bench/tables/elixir/BuildVersion.ex @@ -12,7 +12,7 @@ defmodule Benchtable.BuildVersion do by a build this one does not agree with. """ - @build_version 0x1864D106CC5F2C11 + @build_version 0x5F2254539E3AD47D def build_version, do: @build_version end diff --git a/generated/bench/tables/go/BenchTable.go b/generated/bench/tables/go/BenchTable.go index e0396667a..bb36b7f5b 100644 --- a/generated/bench/tables/go/BenchTable.go +++ b/generated/bench/tables/go/BenchTable.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 package benchtable @@ -15,7 +15,7 @@ import ( // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const ProtocolId uint64 = 0x1a38ac487752b0ae +const ProtocolId uint64 = 0xd093e62e6f907c36 // ErrValidation is returned when a read rejects the wire: a wrong constant, // nonzero reserved bits, or an interior null in a string (SPEC §4.3, §4.7). diff --git a/generated/bench/tables/go/BenchTableBlock.go b/generated/bench/tables/go/BenchTableBlock.go index 8ef566d18..16a088a25 100644 --- a/generated/bench/tables/go/BenchTableBlock.go +++ b/generated/bench/tables/go/BenchTableBlock.go @@ -27,7 +27,7 @@ import ( // BuildVersion is the unit's build version (docs/SPEC-TABLES.md §20): the one // digest a block carries and BlockOpen compares. It moves when anything a // reader points at moves. -const BuildVersion uint64 = 0x1864d106cc5f2c11 +const BuildVersion uint64 = 0x5f2254539e3ad47d // TableBlockMagic identifies a schema block and carries the byte-order check // with it (docs/SPEC-TABLES.md §19.1). It is stored in the producer's NATIVE diff --git a/generated/bench/tables/java/BenchTable.java b/generated/bench/tables/java/BenchTable.java index 6c383e646..e8d976dd8 100644 --- a/generated/bench/tables/java/BenchTable.java +++ b/generated/bench/tables/java/BenchTable.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 // // The shipped Java wire path (issue #156): the serialize.java bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -39,7 +39,7 @@ private BenchTable() {} // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public static final long protocolId = 0x1a38ac487752b0aeL; + public static final long protocolId = 0xd093e62e6f907c36L; // TableWeapon — None = 0 implicit, variants dense from 1, wire range [0, 15] (SPEC §4.2); // an int-constant namespace — the Java translation of the family's integer- diff --git a/generated/bench/tables/java/BuildVersion.java b/generated/bench/tables/java/BuildVersion.java index 010f4407c..c9f1bdc68 100644 --- a/generated/bench/tables/java/BuildVersion.java +++ b/generated/bench/tables/java/BuildVersion.java @@ -19,5 +19,5 @@ public final class BuildVersion { private BuildVersion() {} - public static final long value = 0x1864d106cc5f2c11L; + public static final long value = 0x5f2254539e3ad47dL; } diff --git a/generated/bench/tables/js/BenchTable.js b/generated/bench/tables/js/BenchTable.js index 6c470e5e3..948b71b38 100644 --- a/generated/bench/tables/js/BenchTable.js +++ b/generated/bench/tables/js/BenchTable.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an out-of-contract @@ -21,7 +21,7 @@ const BOOL_SCRATCH = { value: false }; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -export const ProtocolId = 0x1a38ac487752b0aen; +export const ProtocolId = 0xd093e62e6f907c36n; // TableWeapon — None = 0 implicit, variants dense from 1, wire range [0, 15] (SPEC §4.2); // a frozen object of Number values — the JS translation of the family's diff --git a/generated/bench/tables/js/BenchTableBlock.js b/generated/bench/tables/js/BenchTableBlock.js index 21a0a8812..e06b782b6 100644 --- a/generated/bench/tables/js/BenchTableBlock.js +++ b/generated/bench/tables/js/BenchTableBlock.js @@ -31,7 +31,7 @@ // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -export const BuildVersion = 0x1864d106cc5f2c11n; +export const BuildVersion = 0x5f2254539e3ad47dn; // The block's magic (docs/SPEC-TABLES.md §19.1), read as an explicit // little-endian word: it is what separates a block written by a build of this diff --git a/generated/bench/tables/js/BenchTableFlat.js b/generated/bench/tables/js/BenchTableFlat.js index 9f5e8ab04..13f017874 100644 --- a/generated/bench/tables/js/BenchTableFlat.js +++ b/generated/bench/tables/js/BenchTableFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 // // THE FLAT TIER — the shipped JavaScript wire path: a single-word 32-bit // bitpacker inlined at every field (byte-identical wire to serialize.js), diff --git a/generated/bench/tables/rust/src/benchtable.rs b/generated/bench/tables/rust/src/benchtable.rs index 86d4bbe5b..ef23d4831 100644 --- a/generated/bench/tables/rust/src/benchtable.rs +++ b/generated/bench/tables/rust/src/benchtable.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 use serialize::{ReadStream, Stream, WriteStream}; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0x1a38ac487752b0ae; +pub const PROTOCOL_ID: u64 = 0xd093e62e6f907c36; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/generated/bench/tables/rust/src/benchtable_table.rs b/generated/bench/tables/rust/src/benchtable_table.rs index 7658512a6..e85c1cca0 100644 --- a/generated/bench/tables/rust/src/benchtable_table.rs +++ b/generated/bench/tables/rust/src/benchtable_table.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — the TABLE wire (docs/SPEC-TABLES.md); protocol id 0x1a38ac487752b0ae names packets only, and a table versions by field id +// package benchtable — the TABLE wire (docs/SPEC-TABLES.md); protocol id 0xd093e62e6f907c36 names packets only, and a table versions by field id // // Measure/Save/Load are name-first free functions: _measure gives the // exact wire size, _save writes exactly that many bytes into the diff --git a/generated/bench/tables/rust/src/build_version.rs b/generated/bench/tables/rust/src/build_version.rs index c2037a445..0cac6b592 100644 --- a/generated/bench/tables/rust/src/build_version.rs +++ b/generated/bench/tables/rust/src/build_version.rs @@ -17,4 +17,4 @@ // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -pub const BUILD_VERSION: u64 = 0x1864d106cc5f2c11; +pub const BUILD_VERSION: u64 = 0x5f2254539e3ad47d; diff --git a/generated/bench/tables/rust/src/lib.rs b/generated/bench/tables/rust/src/lib.rs index 9540205eb..22426d6b2 100644 --- a/generated/bench/tables/rust/src/lib.rs +++ b/generated/bench/tables/rust/src/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package benchtable — protocol id 0x1a38ac487752b0ae +// package benchtable — protocol id 0xd093e62e6f907c36 // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/generated/c-ludicrous/Ludicrous.h b/generated/c-ludicrous/Ludicrous.h index 6b52ce62e..ab27bbf5e 100644 --- a/generated/c-ludicrous/Ludicrous.h +++ b/generated/c-ludicrous/Ludicrous.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package ludicrous — protocol id 0x42050541a90eea8a */ + package ludicrous — protocol id 0x3a9a972a02c9e7ca */ #ifndef SCHEMA_LUDICROUS_LUDICROUS_H #define SCHEMA_LUDICROUS_LUDICROUS_H @@ -25,7 +25,7 @@ extern "C" { /* The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two sides at the same id speak identical bits; there is no other versioning. */ -#define LUDICROUS_PROTOCOL_ID 0x42050541a90eea8aULL +#define LUDICROUS_PROTOCOL_ID 0x3a9a972a02c9e7caULL #define MAX_WORLD_UNITS (30000) diff --git a/generated/c-ludicrous/LudicrousWire.h b/generated/c-ludicrous/LudicrousWire.h index 98627bdda..980378150 100644 --- a/generated/c-ludicrous/LudicrousWire.h +++ b/generated/c-ludicrous/LudicrousWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package ludicrous — protocol id 0x42050541a90eea8a */ + package ludicrous — protocol id 0x3a9a972a02c9e7ca */ #ifndef SCHEMA_LUDICROUS_LUDICROUSWIRE_H #define SCHEMA_LUDICROUS_LUDICROUSWIRE_H diff --git a/generated/c/Clauses.h b/generated/c/Clauses.h index 4866321f9..2fc7b580f 100644 --- a/generated/c/Clauses.h +++ b/generated/c/Clauses.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_CLAUSES_H #define SCHEMA_EXAMPLE_CLAUSES_H diff --git a/generated/c/ClausesWire.h b/generated/c/ClausesWire.h index dfbba774d..e222a2358 100644 --- a/generated/c/ClausesWire.h +++ b/generated/c/ClausesWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_CLAUSESWIRE_H #define SCHEMA_EXAMPLE_CLAUSESWIRE_H diff --git a/generated/c/Constants.h b/generated/c/Constants.h index 5e973df76..6fc49df03 100644 --- a/generated/c/Constants.h +++ b/generated/c/Constants.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_CONSTANTS_H #define SCHEMA_EXAMPLE_CONSTANTS_H @@ -15,7 +15,7 @@ extern "C" { /* The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two sides at the same id speak identical bits; there is no other versioning. */ -#define EXAMPLE_PROTOCOL_ID 0x91a8e85156dfe2b1ULL +#define EXAMPLE_PROTOCOL_ID 0x682e2a15a56b78bfULL #define POSITION_UNITS (1024) #define VELOCITY_UNITS (1024) diff --git a/generated/c/ConstantsWire.h b/generated/c/ConstantsWire.h index 336e3c019..5cf40d778 100644 --- a/generated/c/ConstantsWire.h +++ b/generated/c/ConstantsWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_CONSTANTSWIRE_H #define SCHEMA_EXAMPLE_CONSTANTSWIRE_H diff --git a/generated/c/Degenerate.h b/generated/c/Degenerate.h index e8c6a434c..1bb3aa8d6 100644 --- a/generated/c/Degenerate.h +++ b/generated/c/Degenerate.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_DEGENERATE_H #define SCHEMA_EXAMPLE_DEGENERATE_H diff --git a/generated/c/DegenerateWire.h b/generated/c/DegenerateWire.h index 11b18ad73..1466f4bf4 100644 --- a/generated/c/DegenerateWire.h +++ b/generated/c/DegenerateWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_DEGENERATEWIRE_H #define SCHEMA_EXAMPLE_DEGENERATEWIRE_H diff --git a/generated/c/Enums.h b/generated/c/Enums.h index 195e8f6b1..66fb5f7ff 100644 --- a/generated/c/Enums.h +++ b/generated/c/Enums.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_ENUMS_H #define SCHEMA_EXAMPLE_ENUMS_H diff --git a/generated/c/EnumsWire.h b/generated/c/EnumsWire.h index b316c8b64..2342c3863 100644 --- a/generated/c/EnumsWire.h +++ b/generated/c/EnumsWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_ENUMSWIRE_H #define SCHEMA_EXAMPLE_ENUMSWIRE_H diff --git a/generated/c/Joins.h b/generated/c/Joins.h index 0b0ab0502..e35b372c0 100644 --- a/generated/c/Joins.h +++ b/generated/c/Joins.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_JOINS_H #define SCHEMA_EXAMPLE_JOINS_H diff --git a/generated/c/JoinsWire.h b/generated/c/JoinsWire.h index 2258bed84..95a8f0c72 100644 --- a/generated/c/JoinsWire.h +++ b/generated/c/JoinsWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_JOINSWIRE_H #define SCHEMA_EXAMPLE_JOINSWIRE_H diff --git a/generated/c/Render.h b/generated/c/Render.h index 451edf4a1..a3751dbe5 100644 --- a/generated/c/Render.h +++ b/generated/c/Render.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_RENDER_H #define SCHEMA_EXAMPLE_RENDER_H diff --git a/generated/c/RenderWire.h b/generated/c/RenderWire.h index 3a05a392a..d24f91924 100644 --- a/generated/c/RenderWire.h +++ b/generated/c/RenderWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_RENDERWIRE_H #define SCHEMA_EXAMPLE_RENDERWIRE_H diff --git a/generated/c/Types.h b/generated/c/Types.h index dd5508b89..c32ff7201 100644 --- a/generated/c/Types.h +++ b/generated/c/Types.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_TYPES_H #define SCHEMA_EXAMPLE_TYPES_H diff --git a/generated/c/TypesWire.h b/generated/c/TypesWire.h index 236fd7936..99f99dd11 100644 --- a/generated/c/TypesWire.h +++ b/generated/c/TypesWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_TYPESWIRE_H #define SCHEMA_EXAMPLE_TYPESWIRE_H diff --git a/generated/c/Wire.h b/generated/c/Wire.h index ba7481ce8..2b4e1e839 100644 --- a/generated/c/Wire.h +++ b/generated/c/Wire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_WIRE_H #define SCHEMA_EXAMPLE_WIRE_H diff --git a/generated/c/WireWire.h b/generated/c/WireWire.h index aa39ebbfa..76cffe5db 100644 --- a/generated/c/WireWire.h +++ b/generated/c/WireWire.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package example — protocol id 0x91a8e85156dfe2b1 */ + package example — protocol id 0x682e2a15a56b78bf */ #ifndef SCHEMA_EXAMPLE_WIREWIRE_H #define SCHEMA_EXAMPLE_WIREWIRE_H diff --git a/generated/cpp/Clauses.h b/generated/cpp/Clauses.h index 5f911ab92..0b7eff697 100644 --- a/generated/cpp/Clauses.h +++ b/generated/cpp/Clauses.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/ClausesWire.h b/generated/cpp/ClausesWire.h index c800c5a64..1a0c7bd4d 100644 --- a/generated/cpp/ClausesWire.h +++ b/generated/cpp/ClausesWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Constants.h b/generated/cpp/Constants.h index 7d2e8f23d..c9430f778 100644 --- a/generated/cpp/Constants.h +++ b/generated/cpp/Constants.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once @@ -12,7 +12,7 @@ namespace example { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -inline constexpr uint64_t ProtocolId = 0x91a8e85156dfe2b1ull; +inline constexpr uint64_t ProtocolId = 0x682e2a15a56b78bfull; inline constexpr int64_t PositionUnits = 1024; inline constexpr int64_t VelocityUnits = 1024; diff --git a/generated/cpp/ConstantsWire.h b/generated/cpp/ConstantsWire.h index e057f4355..446c4192c 100644 --- a/generated/cpp/ConstantsWire.h +++ b/generated/cpp/ConstantsWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Degenerate.h b/generated/cpp/Degenerate.h index 023bc733b..5721302ff 100644 --- a/generated/cpp/Degenerate.h +++ b/generated/cpp/Degenerate.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/DegenerateWire.h b/generated/cpp/DegenerateWire.h index f26c0951b..b99b4c180 100644 --- a/generated/cpp/DegenerateWire.h +++ b/generated/cpp/DegenerateWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Enums.h b/generated/cpp/Enums.h index 7efbf3994..8d58c211f 100644 --- a/generated/cpp/Enums.h +++ b/generated/cpp/Enums.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/EnumsWire.h b/generated/cpp/EnumsWire.h index 6ca8bbe53..eeb990774 100644 --- a/generated/cpp/EnumsWire.h +++ b/generated/cpp/EnumsWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Joins.h b/generated/cpp/Joins.h index b48b6ca9c..af5a317d2 100644 --- a/generated/cpp/Joins.h +++ b/generated/cpp/Joins.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/JoinsWire.h b/generated/cpp/JoinsWire.h index 35ac2cceb..6417b633b 100644 --- a/generated/cpp/JoinsWire.h +++ b/generated/cpp/JoinsWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Render.h b/generated/cpp/Render.h index bc2818d4a..90bf93dbb 100644 --- a/generated/cpp/Render.h +++ b/generated/cpp/Render.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/RenderWire.h b/generated/cpp/RenderWire.h index bc1978d01..1ae552935 100644 --- a/generated/cpp/RenderWire.h +++ b/generated/cpp/RenderWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Types.h b/generated/cpp/Types.h index c609cac94..534df29b5 100644 --- a/generated/cpp/Types.h +++ b/generated/cpp/Types.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/TypesWire.h b/generated/cpp/TypesWire.h index e58721e54..f0250afe9 100644 --- a/generated/cpp/TypesWire.h +++ b/generated/cpp/TypesWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/Wire.h b/generated/cpp/Wire.h index c45be4d67..44cb42e66 100644 --- a/generated/cpp/Wire.h +++ b/generated/cpp/Wire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/WireWire.h b/generated/cpp/WireWire.h index 780932318..93410b24f 100644 --- a/generated/cpp/WireWire.h +++ b/generated/cpp/WireWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf #pragma once diff --git a/generated/cpp/ludicrous/Ludicrous.h b/generated/cpp/ludicrous/Ludicrous.h index df1f42bb9..14d47bba6 100644 --- a/generated/cpp/ludicrous/Ludicrous.h +++ b/generated/cpp/ludicrous/Ludicrous.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca #pragma once @@ -14,7 +14,7 @@ namespace ludicrous { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -inline constexpr uint64_t ProtocolId = 0x42050541a90eea8aull; +inline constexpr uint64_t ProtocolId = 0x3a9a972a02c9e7caull; inline constexpr int64_t MaxWorldUnits = 30000; // enum DriveMode — None = 0 implicit, variants dense from 1, wire range [0, 3] (SPEC §4.2) diff --git a/generated/cpp/ludicrous/LudicrousWire.h b/generated/cpp/ludicrous/LudicrousWire.h index 012bce781..4c70bdbb7 100644 --- a/generated/cpp/ludicrous/LudicrousWire.h +++ b/generated/cpp/ludicrous/LudicrousWire.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca #pragma once diff --git a/generated/cs-ludicrous/Ludicrous.cs b/generated/cs-ludicrous/Ludicrous.cs index 0b964fd80..33b5fd4de 100644 --- a/generated/cs-ludicrous/Ludicrous.cs +++ b/generated/cs-ludicrous/Ludicrous.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an interior null) @@ -109,7 +109,7 @@ public static partial class Schema { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public const ulong ProtocolId = 0x42050541a90eea8a; + public const ulong ProtocolId = 0x3a9a972a02c9e7ca; public const long MaxWorldUnits = 30000; diff --git a/generated/cs/Clauses.cs b/generated/cs/Clauses.cs index 5fbf448ae..a19733429 100644 --- a/generated/cs/Clauses.cs +++ b/generated/cs/Clauses.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf using System; using System.Runtime.CompilerServices; diff --git a/generated/cs/Constants.cs b/generated/cs/Constants.cs index 68feb5f16..61041753d 100644 --- a/generated/cs/Constants.cs +++ b/generated/cs/Constants.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an interior null) @@ -20,7 +20,7 @@ public static partial class Schema { // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public const ulong ProtocolId = 0x91a8e85156dfe2b1; + public const ulong ProtocolId = 0x682e2a15a56b78bf; public const long PositionUnits = 1024; diff --git a/generated/cs/Degenerate.cs b/generated/cs/Degenerate.cs index aac6cb3ed..b5b953d6f 100644 --- a/generated/cs/Degenerate.cs +++ b/generated/cs/Degenerate.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf using System; using System.Runtime.CompilerServices; diff --git a/generated/cs/Enums.cs b/generated/cs/Enums.cs index 299b655a4..8d62458d1 100644 --- a/generated/cs/Enums.cs +++ b/generated/cs/Enums.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf namespace Example { diff --git a/generated/cs/Joins.cs b/generated/cs/Joins.cs index cef8db3e1..0f7fc3c4c 100644 --- a/generated/cs/Joins.cs +++ b/generated/cs/Joins.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf using System; using System.Runtime.CompilerServices; diff --git a/generated/cs/Render.cs b/generated/cs/Render.cs index 95f633707..3ec151296 100644 --- a/generated/cs/Render.cs +++ b/generated/cs/Render.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf using System.Runtime.CompilerServices; using Serialize; diff --git a/generated/cs/Types.cs b/generated/cs/Types.cs index 0086bec8a..62b0074eb 100644 --- a/generated/cs/Types.cs +++ b/generated/cs/Types.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf using System.Runtime.CompilerServices; using Serialize; diff --git a/generated/cs/Wire.cs b/generated/cs/Wire.cs index df7a4d101..984a4864d 100644 --- a/generated/cs/Wire.cs +++ b/generated/cs/Wire.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf using System; using System.Runtime.CompilerServices; diff --git a/generated/dart-ludicrous/Int128.dart b/generated/dart-ludicrous/Int128.dart index de246a3da..b245f5a28 100644 --- a/generated/dart-ludicrous/Int128.dart +++ b/generated/dart-ludicrous/Int128.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The emulated 128-bit pair: Dart has no native 128-bit integer, so // int128/uint128 storage speaks these types — two's-complement math on diff --git a/generated/dart-ludicrous/Ludicrous.dart b/generated/dart-ludicrous/Ludicrous.dart index 448c0490f..20b4c7816 100644 --- a/generated/dart-ludicrous/Ludicrous.dart +++ b/generated/dart-ludicrous/Ludicrous.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The shipped Dart wire path (issue #155): the serialize.dart bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -34,7 +34,7 @@ bool _unsignedLessThan(int a, int b) => // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const int protocolId = 0x42050541a90eea8a; +const int protocolId = 0x3a9a972a02c9e7ca; const int maxWorldUnits = 30000; diff --git a/generated/dart/Clauses.dart b/generated/dart/Clauses.dart index 5a11c98c3..e1f238714 100644 --- a/generated/dart/Clauses.dart +++ b/generated/dart/Clauses.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import 'dart:typed_data'; diff --git a/generated/dart/Constants.dart b/generated/dart/Constants.dart index f94212757..7fb36bf4a 100644 --- a/generated/dart/Constants.dart +++ b/generated/dart/Constants.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // // The shipped Dart wire path (issue #155): the serialize.dart bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -24,7 +24,7 @@ // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const int protocolId = 0x91a8e85156dfe2b1; +const int protocolId = 0x682e2a15a56b78bf; const int positionUnits = 1024; diff --git a/generated/dart/Degenerate.dart b/generated/dart/Degenerate.dart index 82603bfcb..7f7a137e3 100644 --- a/generated/dart/Degenerate.dart +++ b/generated/dart/Degenerate.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import 'dart:typed_data'; diff --git a/generated/dart/Enums.dart b/generated/dart/Enums.dart index 9fa13de93..4be7b8aad 100644 --- a/generated/dart/Enums.dart +++ b/generated/dart/Enums.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Hex of a uint64 bit pattern held in a signed int (toRadixString would // render the sign, not the pattern). diff --git a/generated/dart/Joins.dart b/generated/dart/Joins.dart index a99f367eb..d2d60b363 100644 --- a/generated/dart/Joins.dart +++ b/generated/dart/Joins.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import 'dart:typed_data'; diff --git a/generated/dart/Render.dart b/generated/dart/Render.dart index 219b9c2d5..1ac5fd3b9 100644 --- a/generated/dart/Render.dart +++ b/generated/dart/Render.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import 'dart:typed_data'; diff --git a/generated/dart/Types.dart b/generated/dart/Types.dart index c68b15ed0..b20b7c6bf 100644 --- a/generated/dart/Types.dart +++ b/generated/dart/Types.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import 'dart:typed_data'; diff --git a/generated/dart/Wire.dart b/generated/dart/Wire.dart index cd2917b9e..16de722fb 100644 --- a/generated/dart/Wire.dart +++ b/generated/dart/Wire.dart @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import 'dart:typed_data'; diff --git a/generated/elixir-ludicrous/Ludicrous.ex b/generated/elixir-ludicrous/Ludicrous.ex index 54d8f9fd8..3095680b2 100644 --- a/generated/elixir-ludicrous/Ludicrous.ex +++ b/generated/elixir-ludicrous/Ludicrous.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package ludicrous — protocol id 0x42050541a90eea8a +# package ludicrous — protocol id 0x3a9a972a02c9e7ca # # The shipped Elixir wire path (issue #167): the serialize.elixir port's # measured shapes — byte-granular 32-bit-group packing and 40-bit read @@ -128,7 +128,7 @@ defmodule Ludicrous.Ludicrous do # The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two # sides at the same id speak identical bits; there is no other versioning. - def protocol_id, do: 0x42050541A90EEA8A + def protocol_id, do: 0x3A9A972A02C9E7CA def max_world_units, do: 30000 diff --git a/generated/elixir/Clauses.ex b/generated/elixir/Clauses.ex index 13733d3e1..e1251712c 100644 --- a/generated/elixir/Clauses.ex +++ b/generated/elixir/Clauses.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # type W13 defmodule Example.W13 do diff --git a/generated/elixir/Constants.ex b/generated/elixir/Constants.ex index 0e6dcc32c..5e2bbda87 100644 --- a/generated/elixir/Constants.ex +++ b/generated/elixir/Constants.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # # The shipped Elixir wire path (issue #167): the serialize.elixir port's # measured shapes — byte-granular 32-bit-group packing and 40-bit read @@ -34,7 +34,7 @@ defmodule Example.Constants do # The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two # sides at the same id speak identical bits; there is no other versioning. - def protocol_id, do: 0x91A8E85156DFE2B1 + def protocol_id, do: 0x682E2A15A56B78BF def position_units, do: 1024 diff --git a/generated/elixir/Degenerate.ex b/generated/elixir/Degenerate.ex index 031c3f109..f2c16681e 100644 --- a/generated/elixir/Degenerate.ex +++ b/generated/elixir/Degenerate.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # type Vec2 defmodule Example.Vec2 do diff --git a/generated/elixir/Enums.ex b/generated/elixir/Enums.ex index fbba6b378..131e4755f 100644 --- a/generated/elixir/Enums.ex +++ b/generated/elixir/Enums.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # Team — None = 0 implicit, variants dense from 1, wire range [0, 2] (SPEC §4.2); # an integer-constant namespace — the Elixir translation of the family's diff --git a/generated/elixir/Joins.ex b/generated/elixir/Joins.ex index f4161e803..7d3abf963 100644 --- a/generated/elixir/Joins.ex +++ b/generated/elixir/Joins.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # type ArmsAgree defmodule Example.ArmsAgree do diff --git a/generated/elixir/Render.ex b/generated/elixir/Render.ex index 4d9b78d9f..b4131edc3 100644 --- a/generated/elixir/Render.ex +++ b/generated/elixir/Render.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # type RenderSprite defmodule Example.RenderSprite do diff --git a/generated/elixir/Types.ex b/generated/elixir/Types.ex index d35e14de0..170afc817 100644 --- a/generated/elixir/Types.ex +++ b/generated/elixir/Types.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # type Vec3 [vec3] — tags are user-chosen and inert in v1 (SPEC §4.2, Type tags) defmodule Example.Vec3 do diff --git a/generated/elixir/Wire.ex b/generated/elixir/Wire.ex index 3393b8781..2aba203cb 100644 --- a/generated/elixir/Wire.ex +++ b/generated/elixir/Wire.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package example — protocol id 0x91a8e85156dfe2b1 +# package example — protocol id 0x682e2a15a56b78bf # Weapon — None = 0 implicit, variants dense from 1, wire range [0, 15] (SPEC §4.2); # an integer-constant namespace — the Elixir translation of the family's diff --git a/generated/go-ludicrous/Ludicrous.go b/generated/go-ludicrous/Ludicrous.go index e1a5259b6..bb64e2fbc 100644 --- a/generated/go-ludicrous/Ludicrous.go +++ b/generated/go-ludicrous/Ludicrous.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca package ludicrous @@ -14,7 +14,7 @@ import ( // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const ProtocolId uint64 = 0x42050541a90eea8a +const ProtocolId uint64 = 0x3a9a972a02c9e7ca // ErrValidation is returned when a read rejects the wire: a wrong constant, // nonzero reserved bits, or an interior null in a string (SPEC §4.3, §4.7). diff --git a/generated/go/Clauses.go b/generated/go/Clauses.go index 643e6a729..dea9cf3ad 100644 --- a/generated/go/Clauses.go +++ b/generated/go/Clauses.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/go/Constants.go b/generated/go/Constants.go index 233126026..1c704530b 100644 --- a/generated/go/Constants.go +++ b/generated/go/Constants.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example @@ -12,7 +12,7 @@ import ( // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const ProtocolId uint64 = 0x91a8e85156dfe2b1 +const ProtocolId uint64 = 0x682e2a15a56b78bf // ErrValidation is returned when a read rejects the wire: a wrong constant, // nonzero reserved bits, or an interior null in a string (SPEC §4.3, §4.7). diff --git a/generated/go/Degenerate.go b/generated/go/Degenerate.go index 672a78a51..a2278999b 100644 --- a/generated/go/Degenerate.go +++ b/generated/go/Degenerate.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/go/Enums.go b/generated/go/Enums.go index 78dc79031..5d752032c 100644 --- a/generated/go/Enums.go +++ b/generated/go/Enums.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/go/Joins.go b/generated/go/Joins.go index f7c20dc31..814de2a54 100644 --- a/generated/go/Joins.go +++ b/generated/go/Joins.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/go/Render.go b/generated/go/Render.go index 4076e8ec4..d29d1fa37 100644 --- a/generated/go/Render.go +++ b/generated/go/Render.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/go/Types.go b/generated/go/Types.go index a9f9093ea..13117d31c 100644 --- a/generated/go/Types.go +++ b/generated/go/Types.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/go/Wire.go b/generated/go/Wire.go index 4d99c775f..871585e8e 100644 --- a/generated/go/Wire.go +++ b/generated/go/Wire.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example diff --git a/generated/java-ludicrous/Int128.java b/generated/java-ludicrous/Int128.java index cbd1ba60b..6932a406e 100644 --- a/generated/java-ludicrous/Int128.java +++ b/generated/java-ludicrous/Int128.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The emulated 128-bit pair, signed half: Java has no native 128-bit integer, // so int128/uint128 storage speaks Int128/UInt128 — two's-complement math diff --git a/generated/java-ludicrous/Ludicrous.java b/generated/java-ludicrous/Ludicrous.java index 897cb4a39..d25aee434 100644 --- a/generated/java-ludicrous/Ludicrous.java +++ b/generated/java-ludicrous/Ludicrous.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The shipped Java wire path (issue #156): the serialize.java bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -39,7 +39,7 @@ private Ludicrous() {} // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public static final long protocolId = 0x42050541a90eea8aL; + public static final long protocolId = 0x3a9a972a02c9e7caL; public static final int maxWorldUnits = 30000; diff --git a/generated/java-ludicrous/UInt128.java b/generated/java-ludicrous/UInt128.java index 32ee8d8cd..e807cbbe2 100644 --- a/generated/java-ludicrous/UInt128.java +++ b/generated/java-ludicrous/UInt128.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The emulated 128-bit pair, unsigned half: Java has no native 128-bit integer, // so int128/uint128 storage speaks Int128/UInt128 — two's-complement math diff --git a/generated/java/Clauses.java b/generated/java/Clauses.java index c50fd79d9..bde5d8f6f 100644 --- a/generated/java/Clauses.java +++ b/generated/java/Clauses.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/java/Constants.java b/generated/java/Constants.java index a7427cdd0..94c1cb566 100644 --- a/generated/java/Constants.java +++ b/generated/java/Constants.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // // The shipped Java wire path (issue #156): the serialize.java bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -33,7 +33,7 @@ private Constants() {} // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public static final long protocolId = 0x91a8e85156dfe2b1L; + public static final long protocolId = 0x682e2a15a56b78bfL; public static final int positionUnits = 1024; diff --git a/generated/java/Degenerate.java b/generated/java/Degenerate.java index 01a1cbd1b..c5b11d32d 100644 --- a/generated/java/Degenerate.java +++ b/generated/java/Degenerate.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/java/Enums.java b/generated/java/Enums.java index c2d99d07d..06c619d6e 100644 --- a/generated/java/Enums.java +++ b/generated/java/Enums.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/java/Joins.java b/generated/java/Joins.java index b7fcc88c6..d140aedcc 100644 --- a/generated/java/Joins.java +++ b/generated/java/Joins.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/java/Render.java b/generated/java/Render.java index 9218851c3..4ff46cda6 100644 --- a/generated/java/Render.java +++ b/generated/java/Render.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/java/Types.java b/generated/java/Types.java index 9fa01328c..7e87553a7 100644 --- a/generated/java/Types.java +++ b/generated/java/Types.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/java/Wire.java b/generated/java/Wire.java index 79d7b7a94..414b7c0a8 100644 --- a/generated/java/Wire.java +++ b/generated/java/Wire.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf package example; diff --git a/generated/js-ludicrous/Ludicrous.js b/generated/js-ludicrous/Ludicrous.js index 7f8957b0f..027703b5c 100644 --- a/generated/js-ludicrous/Ludicrous.js +++ b/generated/js-ludicrous/Ludicrous.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an out-of-contract @@ -22,7 +22,7 @@ const BOOL_SCRATCH = { value: false }; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -export const ProtocolId = 0x42050541a90eea8an; +export const ProtocolId = 0x3a9a972a02c9e7can; export const MaxWorldUnits = 30000; diff --git a/generated/js-ludicrous/LudicrousFlat.js b/generated/js-ludicrous/LudicrousFlat.js index 63ead2a26..8af3ad542 100644 --- a/generated/js-ludicrous/LudicrousFlat.js +++ b/generated/js-ludicrous/LudicrousFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // THE FLAT TIER — the shipped JavaScript wire path: a single-word 32-bit // bitpacker inlined at every field (byte-identical wire to serialize.js), diff --git a/generated/js/Clauses.js b/generated/js/Clauses.js index 2d1b3c3ad..fddfe7e9a 100644 --- a/generated/js/Clauses.js +++ b/generated/js/Clauses.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Scratch holders for the runtime's {value} refs — single threaded per // realm, always consumed in the same call that fills them. diff --git a/generated/js/ClausesFlat.js b/generated/js/ClausesFlat.js index 74bcadc82..2e492957a 100644 --- a/generated/js/ClausesFlat.js +++ b/generated/js/ClausesFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // // THE FLAT TIER — the shipped JavaScript wire path: a single-word 32-bit // bitpacker inlined at every field (byte-identical wire to serialize.js), diff --git a/generated/js/Constants.js b/generated/js/Constants.js index a28310436..5c69dc4ac 100644 --- a/generated/js/Constants.js +++ b/generated/js/Constants.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an out-of-contract @@ -16,7 +16,7 @@ // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -export const ProtocolId = 0x91a8e85156dfe2b1n; +export const ProtocolId = 0x682e2a15a56b78bfn; export const PositionUnits = 1024; diff --git a/generated/js/Degenerate.js b/generated/js/Degenerate.js index ec3b5b3f1..8d2ad35f9 100644 --- a/generated/js/Degenerate.js +++ b/generated/js/Degenerate.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Scratch holders for the runtime's {value} refs — single threaded per // realm, always consumed in the same call that fills them. diff --git a/generated/js/DegenerateFlat.js b/generated/js/DegenerateFlat.js index 74976678e..32489561b 100644 --- a/generated/js/DegenerateFlat.js +++ b/generated/js/DegenerateFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The 8-byte conversion scratch — serialize.js's FLOAT_SCRATCH twin. Module // scope is safe: single threaded per realm, consumed in the same op that diff --git a/generated/js/Enums.js b/generated/js/Enums.js index 8537cf651..6515194da 100644 --- a/generated/js/Enums.js +++ b/generated/js/Enums.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Team — None = 0 implicit, variants dense from 1, wire range [0, 2] (SPEC §4.2); // a frozen object of Number values — the JS translation of the family's diff --git a/generated/js/Joins.js b/generated/js/Joins.js index abffe1ff8..32a44ea22 100644 --- a/generated/js/Joins.js +++ b/generated/js/Joins.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Scratch holders for the runtime's {value} refs — single threaded per // realm, always consumed in the same call that fills them. diff --git a/generated/js/JoinsFlat.js b/generated/js/JoinsFlat.js index 5fd20d0f9..259f01fab 100644 --- a/generated/js/JoinsFlat.js +++ b/generated/js/JoinsFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The 8-byte conversion scratch — serialize.js's FLOAT_SCRATCH twin. Module // scope is safe: single threaded per realm, consumed in the same op that diff --git a/generated/js/Render.js b/generated/js/Render.js index ced6c8344..b90743760 100644 --- a/generated/js/Render.js +++ b/generated/js/Render.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import { Team } from "./Enums.js"; diff --git a/generated/js/RenderFlat.js b/generated/js/RenderFlat.js index d77993773..cb4e74f3b 100644 --- a/generated/js/RenderFlat.js +++ b/generated/js/RenderFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The 8-byte conversion scratch — serialize.js's FLOAT_SCRATCH twin. Module // scope is safe: single threaded per realm, consumed in the same op that diff --git a/generated/js/Types.js b/generated/js/Types.js index 9a0f8ce8b..694fbbd9e 100644 --- a/generated/js/Types.js +++ b/generated/js/Types.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import { MaxHealth, MaxInputsPerPacket, MaxObjects, MaxPositionUnits, MaxVelocityUnits, RotationUnits, ShipMaxLasers, ShipMaxMissiles } from "./Constants.js"; import { Pending, ShipType, Team } from "./Enums.js"; diff --git a/generated/js/TypesFlat.js b/generated/js/TypesFlat.js index 8690c7975..a8d226b72 100644 --- a/generated/js/TypesFlat.js +++ b/generated/js/TypesFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The 8-byte conversion scratch — serialize.js's FLOAT_SCRATCH twin. Module // scope is safe: single threaded per realm, consumed in the same op that diff --git a/generated/js/Wire.js b/generated/js/Wire.js index 6501b09f8..81c238bc9 100644 --- a/generated/js/Wire.js +++ b/generated/js/Wire.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf import { MaxBlockSize, MaxChatLength } from "./Constants.js"; diff --git a/generated/js/WireFlat.js b/generated/js/WireFlat.js index 5bbbd4d85..0309114c1 100644 --- a/generated/js/WireFlat.js +++ b/generated/js/WireFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The 8-byte conversion scratch — serialize.js's FLOAT_SCRATCH twin. Module // scope is safe: single threaded per realm, consumed in the same op that diff --git a/generated/rust-ludicrous/src/lib.rs b/generated/rust-ludicrous/src/lib.rs index 648e29ea8..6d02983db 100644 --- a/generated/rust-ludicrous/src/lib.rs +++ b/generated/rust-ludicrous/src/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/generated/rust-ludicrous/src/ludicrous.rs b/generated/rust-ludicrous/src/ludicrous.rs index 39c8b778e..bda393e87 100644 --- a/generated/rust-ludicrous/src/ludicrous.rs +++ b/generated/rust-ludicrous/src/ludicrous.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca use serialize::{ReadStream, Stream, WriteStream}; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0x42050541a90eea8a; +pub const PROTOCOL_ID: u64 = 0x3a9a972a02c9e7ca; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/generated/rust/src/clauses.rs b/generated/rust/src/clauses.rs index 70c7f2446..d075630bc 100644 --- a/generated/rust/src/clauses.rs +++ b/generated/rust/src/clauses.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/generated/rust/src/constants.rs b/generated/rust/src/constants.rs index 69ae2e4fe..8cebc47de 100644 --- a/generated/rust/src/constants.rs +++ b/generated/rust/src/constants.rs @@ -2,11 +2,11 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0x91a8e85156dfe2b1; +pub const PROTOCOL_ID: u64 = 0x682e2a15a56b78bf; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/generated/rust/src/degenerate.rs b/generated/rust/src/degenerate.rs index f210b8835..2584dd4f2 100644 --- a/generated/rust/src/degenerate.rs +++ b/generated/rust/src/degenerate.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/generated/rust/src/enums.rs b/generated/rust/src/enums.rs index b75ab5673..147cf6d6e 100644 --- a/generated/rust/src/enums.rs +++ b/generated/rust/src/enums.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Team — None = 0 implicit, variants dense from 1, wire range [0, 2] (SPEC §4.2); // a newtype because | max = ... headroom makes non-variant values wire-legal diff --git a/generated/rust/src/joins.rs b/generated/rust/src/joins.rs index 3a71a2959..e89a86ae2 100644 --- a/generated/rust/src/joins.rs +++ b/generated/rust/src/joins.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/generated/rust/src/lib.rs b/generated/rust/src/lib.rs index af22819e9..62684805d 100644 --- a/generated/rust/src/lib.rs +++ b/generated/rust/src/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/generated/rust/src/render.rs b/generated/rust/src/render.rs index 0b5e2194d..c792ad5f8 100644 --- a/generated/rust/src/render.rs +++ b/generated/rust/src/render.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/generated/rust/src/types.rs b/generated/rust/src/types.rs index 39093ba54..4d55ee665 100644 --- a/generated/rust/src/types.rs +++ b/generated/rust/src/types.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/generated/rust/src/wire.rs b/generated/rust/src/wire.rs index e1c75686b..6e0d494a7 100644 --- a/generated/rust/src/wire.rs +++ b/generated/rust/src/wire.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/internal/check/projection_test.go b/internal/check/projection_test.go index 249011edc..d50072867 100644 --- a/internal/check/projection_test.go +++ b/internal/check/projection_test.go @@ -1,6 +1,9 @@ package check_test import ( + "crypto/sha256" + "encoding/binary" + "fmt" "os" "path/filepath" "strings" @@ -67,7 +70,6 @@ func TestIdIsStableUnderNonWireEdits(t *testing.T) { {"a trailing comment", baseSchema + "\n// a comment costs no bits\n"}, {"an interior comment", strings.Replace(baseSchema, "type State {", "// describes a ship\ntype State {", 1)}, {"blank lines", strings.Replace(baseSchema, "enum Team", "\n\nenum Team", 1)}, - {"an enum variant renamed", strings.Replace(baseSchema, "{ Red, Blue }", "{ Crimson, Blue }", 1)}, {"a const renamed", strings.NewReplacer("MaxHealth", "HealthCeiling").Replace(baseSchema)}, } @@ -133,9 +135,82 @@ func TestIdMovesUnderWireEdits(t *testing.T) { } } -// Union id behavior (SPEC §4.8, §3.1): a union is wire structure — variant -// order, count and payload types project — but variant NAMES do not, the -// enum-variant rule exactly. +// VARIANT ORDER is a wire fact (SPEC §3.1). An enum value rides as its +// declaration ordinal and a flags variant as its bit position, so a reorder +// changes what every stored ordinal and every set bit MEANS while the shape +// stays put. The ordered variant names are the only record of that mapping, +// so they project; the price is that a RENAME moves the id too, which the +// ship-together rule makes free. This is the direction that must never +// regress — without the names, two builds either side of an alphabetized enum +// hold one id and read each other's values as the wrong variant. +func TestIdMovesUnderVariantOrder(t *testing.T) { + const source = `package probe + +enum Grade { Bronze, Silver, Gold } + +flags Perks { Fast, Quiet, Tough } + +type State { + grade Grade + perks Perks +} +` + base := build(t, source).ProtocolId + + cases := []struct { + name string + source string + }{ + {"an enum reordered", strings.Replace(source, "{ Bronze, Silver, Gold }", "{ Gold, Silver, Bronze }", 1)}, + {"an enum variant renamed (declaration order is spelled in the names)", + strings.Replace(source, "{ Bronze, Silver, Gold }", "{ Copper, Silver, Gold }", 1)}, + {"a flags declaration reordered", strings.Replace(source, "{ Fast, Quiet, Tough }", "{ Tough, Quiet, Fast }", 1)}, + {"a flags variant renamed", strings.Replace(source, "{ Fast, Quiet, Tough }", "{ Rapid, Quiet, Tough }", 1)}, + } + for _, tc := range cases { + if got := build(t, tc.source).ProtocolId; got == base { + t.Errorf("%s did NOT move the protocol id (0x%016x) — every ordinal changed meaning and two incompatible builds would claim compatibility", + tc.name, base) + } + } +} + +// THE CODEC LAW (SPEC §3.1): a second version line beside the rendering's own, +// for the class of change the rendering cannot see — a compiler that alters +// the bytes, the accepted inputs, the rejections, the materialized defaults or +// a numeric conversion for the same schema and values. Held here in two parts: +// the id IS the digest over the projection text, so nothing outside the text +// can reach it, and a different law line therefore gives a different id. +func TestWireLawLineMovesTheId(t *testing.T) { + u := build(t, baseSchema) + text := ir.WireProjection(u) + + lawLine := fmt.Sprintf("schema-wire-law %d\n", ir.WireLaw) + if !strings.HasPrefix(text, fmt.Sprintf("schema-wire-projection %d\n%s", ir.ProjectionVersion, lawLine)) { + t.Fatalf("the projection must open with its rendering version and then its codec law; it opens:\n%s", text) + } + + if got := digest(text); got != u.ProtocolId { + t.Fatalf("the protocol id is not the digest over the projection text (0x%016x vs 0x%016x) — §3.1's procedure has moved", u.ProtocolId, got) + } + bumped := strings.Replace(text, lawLine, fmt.Sprintf("schema-wire-law %d\n", ir.WireLaw+1), 1) + if digest(bumped) == u.ProtocolId { + t.Error("bumping the codec law left the id where it was — a rounding-rule change would ship as a false match") + } +} + +// digest is §3.1's procedure, spelled out where a test can see it: the low 64 +// bits of SHA-256 over the projection, the final eight bytes big-endian. +func digest(projection string) uint64 { + sum := sha256.Sum256([]byte(projection)) + return binary.BigEndian.Uint64(sum[24:]) +} + +// Union id behavior (SPEC §4.8, §3.1): a union is wire structure — arm order, +// count, arm NAMES and payload types all project. The names are what the +// payload types cannot carry alone: two arms of ONE payload type reorder +// invisibly without them (#491), the enum case exactly, so an arm rename +// moves the id like an enum variant's. func TestUnionIdBehavior(t *testing.T) { const unionSchema = `package probe @@ -168,23 +243,43 @@ type Holder { " ring Ring\n slab Slab", " slab Slab\n ring Ring", 1)}, {"a payload type changed", strings.Replace(unionSchema, "slab Slab", "slab Ring", 1)}, {"a payload's field widened", strings.Replace(unionSchema, "width uint8", "width uint16", 1)}, + {"an arm renamed (arm order is spelled in names)", strings.Replace(unionSchema, "ring Ring", "hoop Ring", 1)}, } for _, tc := range moves { if got := build(t, tc.source).ProtocolId; got == base { t.Errorf("%s did NOT move the protocol id (0x%016x) — two incompatible builds would claim compatibility", tc.name, base) } } +} - stable := []struct { - name string - source string - }{ - {"a variant renamed (the ordinal is the wire)", strings.Replace(unionSchema, "ring Ring", "hoop Ring", 1)}, +// THE SAME-TYPED ARMS (#491), the shape the payload types cannot describe: two +// arms of one payload type reorder with every projected type unmoved, so tag 1 +// means `left` on one build and `right` on the other under a single id. The +// arm names are the whole of the difference, and this is the case that names +// why they project. +func TestUnionIdMovesUnderSameTypedArmReorder(t *testing.T) { + const source = `package probe + +type Arm { + v uint8 +} + +union Held { + left Arm + right Arm +} + +type Holder { + held Held +} +` + reordered := strings.Replace(source, " left Arm\n right Arm", " right Arm\n left Arm", 1) + if reordered == source { + t.Fatal("the edit patched nothing — the fixture drifted") } - for _, tc := range stable { - if got := build(t, tc.source).ProtocolId; got != base { - t.Errorf("%s moved the protocol id (0x%016x -> 0x%016x); no wire byte changed", tc.name, base, got) - } + base, got := build(t, source).ProtocolId, build(t, reordered).ProtocolId + if got == base { + t.Errorf("two arms of one payload type reordered and the id did not move (0x%016x) — tag 1 means a different arm on each build and both claim compatibility", base) } } @@ -406,22 +501,28 @@ union Shape { attitude Attitude } `) - const pinnedId = uint64(0xad54eaab53f241b4) + const pinnedId = uint64(0x0d68b71928bcbcf0) if u.ProtocolId != pinnedId { t.Fatalf("the neutrality probe's id moved: 0x%016x, pinned 0x%016x", u.ProtocolId, pinnedId) } - const pinnedProjection = `schema-wire-projection 1 + const pinnedProjection = `schema-wire-projection 2 +schema-wire-law 1 package probe enum Team max=2 storage=8 variants=2 + variant 1 name=Red + variant 2 name=Blue flags ProbeFlags wirebits=3 + bit 0 name=Armed + bit 1 name=Cloaked + bit 2 name=Damaged type Attitude table=false message=false field orientation kind=3 floatrange=[0,360] res=0.1 steps=3600 round=nearest field health kind=0 width=32 signed=true intrange=[0,1000] type Ring table=false message=false field radius kind=0 width=16 signed=false union Shape max=2 - variant 1 payload=Ring - variant 2 payload=Attitude + variant 1 name=ring payload=Ring + variant 2 name=attitude payload=Attitude ` if got := ir.WireProjection(u); got != pinnedProjection { t.Fatalf("the neutrality probe's projection moved:\n%s\npinned:\n%s", got, pinnedProjection) diff --git a/internal/goldens/goldens_test.go b/internal/goldens/goldens_test.go index e60a62fe9..6144e4d8e 100644 --- a/internal/goldens/goldens_test.go +++ b/internal/goldens/goldens_test.go @@ -8,6 +8,8 @@ package goldens import ( + "crypto/sha256" + "encoding/binary" "flag" "fmt" "os" @@ -204,8 +206,8 @@ func TestExportedSurfaceMovesNeitherWire(t *testing.T) { protocolId uint64 buildVersion uint64 }{ - {"examples", corpusDir, 0x91a8e85156dfe2b1, 0x69d6a810cfa22717}, - {"examples128", corpus128Dir, 0x42050541a90eea8a, 0xedde8274fbab7f85}, + {"examples", corpusDir, 0x682e2a15a56b78bf, 0x68ee62213126f184}, + {"examples128", corpus128Dir, 0x3a9a972a02c9e7ca, 0x44a8123c94d09353}, } { t.Run(unit.name, func(t *testing.T) { u := loadCorpusDir(t, unit.dir) @@ -287,6 +289,58 @@ func pinDir(t *testing.T, dir string, files map[string][]byte) { } } +// pinnedUnits is every compilation unit this package pins, by the name its +// golden files are stored under. +var pinnedUnits = []struct { + name string + dir string +}{ + {"examples", corpusDir}, + {"examples128", corpus128Dir}, + {"tables-examples", "../../tables/examples"}, + {"tables-pointers", "../../tables/pointers"}, + {"tables-block", "../../tables/block"}, + {"tables-blockhome", "../../tables/blockhome"}, + {"tables-messages", "../../tables/messages"}, + {"tables-stream", "../../tables/stream"}, + {"tables-blobs", "../../tables/blobs"}, + {"tables-scalars", "../../tables/scalars"}, +} + +// TestWireLawBumpMovesEveryId holds the promise the codec law line is for +// (SPEC §3.1): a compiler change that moves the BYTES under an unchanged +// rendering bumps ir.WireLaw, and EVERY id in existence moves with it. The +// constant cannot be changed from a test, so the equivalent is proven over the +// artifact the id is taken from: for every unit here the id is exactly the +// digest over its projection text, and the same text under the next law +// number digests differently. No unit can sit out a bump. +func TestWireLawBumpMovesEveryId(t *testing.T) { + law := fmt.Sprintf("schema-wire-law %d\n", ir.WireLaw) + next := fmt.Sprintf("schema-wire-law %d\n", ir.WireLaw+1) + for _, unit := range pinnedUnits { + t.Run(unit.name, func(t *testing.T) { + u := loadCorpusDir(t, unit.dir) + text := ir.WireProjection(u) + if !strings.Contains(text, law) { + t.Fatalf("%s does not carry the codec law line — a rounding-rule change could not reach its id", unit.name) + } + if got := digest(text); got != u.ProtocolId { + t.Fatalf("%s: the id is not the digest over its projection (0x%016x vs 0x%016x) — §3.1's procedure has moved", unit.name, u.ProtocolId, got) + } + if digest(strings.Replace(text, law, next, 1)) == u.ProtocolId { + t.Errorf("%s kept its id across a codec law bump", unit.name) + } + }) + } +} + +// digest is §3.1's procedure: the low 64 bits of SHA-256 over the projection, +// the final eight bytes big-endian. +func digest(projection string) uint64 { + sum := sha256.Sum256([]byte(projection)) + return binary.BigEndian.Uint64(sum[24:]) +} + // TestGoldenBuildVersion pins the BUILD VERSION and the COOK PROJECTION it // hashes, per unit (docs/SPEC-TABLES.md §20.8). The number is what a distributed // store's tuple is keyed by and what a block's prologue carries, so a change @@ -298,22 +352,7 @@ func pinDir(t *testing.T, dir string, files map[string][]byte) { // header lines alone, which is the case a reader has to be able to check by // eye. func TestGoldenBuildVersion(t *testing.T) { - units := []struct { - name string - dir string - }{ - {"examples", corpusDir}, - {"examples128", corpus128Dir}, - {"tables-examples", "../../tables/examples"}, - {"tables-pointers", "../../tables/pointers"}, - {"tables-block", "../../tables/block"}, - {"tables-blockhome", "../../tables/blockhome"}, - {"tables-messages", "../../tables/messages"}, - {"tables-stream", "../../tables/stream"}, - {"tables-blobs", "../../tables/blobs"}, - {"tables-scalars", "../../tables/scalars"}, - } - for _, unit := range units { + for _, unit := range pinnedUnits { t.Run(unit.name, func(t *testing.T) { u := loadCorpusDir(t, unit.dir) got := fmt.Sprintf("0x%016x\n%s", ir.BuildVersion(u), ir.CookProjection(u)) diff --git a/ir/buildversion_test.go b/ir/buildversion_test.go index dfa46ac6f..8ff7171d3 100644 --- a/ir/buildversion_test.go +++ b/ir/buildversion_test.go @@ -180,6 +180,12 @@ table Row {"an enum variant renamed", "enum Grade { Bronze, Silver, Gold }", "enum Grade { Bronze, Silver, Aurum }"}, {"two enum variants swapped", "enum Grade { Bronze, Silver, Gold }", "enum Grade { Silver, Bronze, Gold }"}, {"a union arm renamed", " up Buff", " rise Buff"}, + // a flags DECLARATION is shared by both wires: its variant names are + // the bit positions, so they ride in the protocol id (SPEC.md §3.1) + // and the id rides here in whole (§20.1 group 1). The cook projection + // gains the bit positions of its own under #435. + {"a flags variant reordered", "flags Perks { Shielded, Cloaked }", "flags Perks { Cloaked, Shielded }"}, + {"a flags variant renamed", "flags Perks { Shielded, Cloaked }", "flags Perks { Warded, Cloaked }"}, // the LAYOUT group's own controls {"a field's kind changed with its width unmoved", "slot int32 | min = 0, max = 10", "slot float32 | min = 0.0, max = 10.0, resolution = 0.5"}, {"a field's offset moved with the record's sizeof unmoved", " grade Grade = Silver\n perks Perks", " perks Perks\n grade Grade = Silver"}, @@ -205,8 +211,6 @@ table Row to string }{ {"a was rename", "slot int32 | min = 0, max = 10", "position int32 | was = \"slot\", min = 0, max = 10"}, - {"a flags variant reordered", "flags Perks { Shielded, Cloaked }", "flags Perks { Cloaked, Shielded }"}, - {"a flags variant renamed", "flags Perks { Shielded, Cloaked }", "flags Perks { Warded, Cloaked }"}, {"a flags field's referent swapped for a same-width other", "perks Perks", "perks Boons"}, {"a guard removed", " if guard\n {\n extra int32\n }\n", " extra int32\n"}, {"a json key changed", `json = "name"`, `json = "label"`}, @@ -223,6 +227,49 @@ table Row } } +// §20.8's ISOLATING control for group 3's union vocabulary. Every other union +// and enum row above now moves the protocol id too (SPEC.md §3.1 projects +// every vocabulary's ordered names), and the protocol id rides here in whole, +// so those rows can no longer prove the cook projection carries `union=` and +// `payload=` of its own. A TABLE-ARMED union can: it has no packet wire +// (docs/SPEC-TABLES.md §2.6), so the protocol id cannot see it at all, and an +// arm renamed there moves the build version through group 3 alone. +func TestBuildVersionSeesATableArmedUnionArmRenamed(t *testing.T) { + const src = `package demo + +table User +{ + name string(16) +} + +table Script +{ + path string(16) +} + +union Origin +{ + user User + script Script +} + +table Insert +{ + origin Origin +} +` + base := unitFrom(t, src) + renamed := unitFrom(t, strings.Replace(src, " user User", " author User", 1)) + + if renamed.ProtocolId != base.ProtocolId { + t.Errorf("a table-armed union's arm rename moved the PROTOCOL id (0x%016x -> 0x%016x) — such a union has no packet wire (§2.6)", + base.ProtocolId, renamed.ProtocolId) + } + if ir.BuildVersion(renamed) == ir.BuildVersion(base) { + t.Error("a table-armed union's arm rename did not move the build version — group 3's union vocabulary is not in the digest, and nothing else covers this edit") + } +} + // §20.8's inclusions the sort order could hide. func TestBuildVersionSeesARecordRenamed(t *testing.T) { base := ir.BuildVersion(unitFrom(t, workedSource)) diff --git a/ir/projection.go b/ir/projection.go index 4e201e117..99d47acfb 100644 --- a/ir/projection.go +++ b/ir/projection.go @@ -36,26 +36,33 @@ package ir // branch structure a guard removes fields from the wire // const/reserved/align literal bits, zero bits, and padding // enum max, storage bits the tag's wire range +// enum variant names, an enum value rides as its declaration ordinal, +// in declaration order so the ordered names ARE the ordinal-to-meaning +// map; nothing else can see a reorder // flags wire bits the mask width +// flags variant names, bit i is variant i, the enum rule exactly +// in declaration order // union variant order, the tag is positional and the payload is the // count, payload types wire (SPEC §4.8) +// union ARM names, two arms of ONE payload type reorder invisibly +// in declaration order without them — the enum case exactly, in the +// shape where the payload types cannot carry the +// order (#491) // // WHAT IS EXCLUDED, and why each one does NOT move the wire: // // comments, whitespace no bytes // file names and layout a type's wire does not depend on which file it // is declared in, nor on declaration order -// enum VARIANT names ordinals are the wire; renaming Red to Crimson -// leaves every byte identical -// union VARIANT names the same rule — the ordinal is the wire // const declarations their values are already resolved into the // bounds that appear above // type tags, native-type generation-time only // attributes // -// The projection is VERSIONED. A change to the rendering itself moves every -// id, so the version line makes that deliberate and visible rather than a -// silent break. +// The projection carries TWO version lines. A change to the RENDERING moves +// every id through [ProjectionVersion]; a compiler change that moves the BYTES +// under an unchanged rendering moves every id through [WireLaw]. Both are +// deliberate and visible rather than a silent break. import ( "fmt" @@ -66,7 +73,27 @@ import ( // ProjectionVersion is the rendering's own version. BUMPING IT MOVES EVERY // PROTOCOL ID, so it changes only when the projection must describe something // it previously did not. -const ProjectionVersion = 1 +// +// 2: the ordered variant names of every enum and flags declaration, and the +// ordered arm names of every union. Version 1 could not see a reorder of any +// of the three. +const ProjectionVersion = 2 + +// WireLaw is the CODEC LAW's version: the compiler's own rules for turning a +// value into bytes and bytes back into a value, which the rendering above +// cannot see. BUMPING IT MOVES EVERY PROTOCOL ID. +// +// It bumps on any compiler change that can alter, for the same schema and the +// same values, the encoded bytes, the inputs accepted, the reads rejected, the +// defaults materialized, or a numeric conversion. The 2026-08-15 fixed-point +// rounding amendment — ties toward +infinity to ties away from zero — is the +// worked example: the shape was untouched, the bytes on exact negative ties +// were not, and two builds either side of it held the same id. +// +// The invariant it exists to hold: no generated byte and no read decision may +// change for the same schema and input without the protocol id changing +// (SPEC §3.1). +const WireLaw = 1 // WireProjection renders the unit's wire-affecting facts as canonical text. // Two units with the same projection produce the same bytes; that is the @@ -75,6 +102,7 @@ func WireProjection(u *Unit) string { var b strings.Builder fmt.Fprintf(&b, "schema-wire-projection %d\n", ProjectionVersion) + fmt.Fprintf(&b, "schema-wire-law %d\n", WireLaw) fmt.Fprintf(&b, "package %s\n", u.Package) names := make([]string, 0, len(u.Enums)) @@ -84,8 +112,15 @@ func WireProjection(u *Unit) string { sort.Strings(names) for _, n := range names { e := u.Enums[n] - // variant NAMES are deliberately absent: the ordinal is the wire + // the ordered variant NAMES are the wire fact: a value rides as its + // declaration ordinal (implicit None = 0, variants dense from 1), so + // the names are the only record of which ordinal means what. A + // reorder is invisible without them — the spurious MATCH this + // projection exists to refuse — and a rename therefore moves the id. fmt.Fprintf(&b, "enum %s max=%d storage=%d variants=%d\n", e.Name, e.Max, e.StorageBits, len(e.Variants)) + for i, v := range e.Variants { + fmt.Fprintf(&b, " variant %d name=%s\n", i+1, v) + } } names = names[:0] @@ -95,7 +130,12 @@ func WireProjection(u *Unit) string { sort.Strings(names) for _, n := range names { f := u.Flags[n] + // bit i is variant i, so the ordered names carry the bit positions + // for exactly the enum's reason fmt.Fprintf(&b, "flags %s wirebits=%d\n", f.Name, f.WireBits) + for i, v := range f.Variants { + fmt.Fprintf(&b, " bit %d name=%s\n", i, v) + } } names = names[:0] @@ -114,11 +154,12 @@ func WireProjection(u *Unit) string { projectItems(&b, st.Items, " ") } - // unions: variant ORDER, count and payload type references project — - // variant names do not (the ordinal is the wire, the enum-variant rule; - // SPEC §3.1, §4.8). Rendering a section only for units that declare - // unions leaves every union-free unit's id untouched, so this needed no - // ProjectionVersion bump: no existing fact renders differently. + // unions: arm ORDER, count, arm NAMES and payload type references all + // project. The tag is positional and the payload is the wire (SPEC §4.8), + // and the names are what the payload types cannot carry alone: two arms of + // ONE payload type reorder invisibly without them, which is the enum + // case exactly (#491). A rename therefore moves the id, as it does for an + // enum or flags variant. names = names[:0] for n := range u.Unions { names = append(names, n) @@ -135,7 +176,7 @@ func WireProjection(u *Unit) string { } fmt.Fprintf(&b, "union %s max=%d\n", un.Name, un.Max) for i, v := range un.Variants { - fmt.Fprintf(&b, " variant %d payload=%s\n", i+1, v.Type) + fmt.Fprintf(&b, " variant %d name=%s payload=%s\n", i+1, v.Name, v.Type) } } diff --git a/testdata/conformance/tables/cook-write/archive-be.cook b/testdata/conformance/tables/cook-write/archive-be.cook index 5e31434ca4bb5fb3356dbd29af049b1718ff2b4a..b5c33112fc40c3434e73267b06b4cc098cd09bf3 100644 GIT binary patch delta 25 gcmZ3$vw%my+uz^W*TXrO*W=SttEQyljRFE}0B9@-6aWAK delta 25 gcmZ3$vw%my+uz^W*TXs3=Ifd6M43lf8wCW|0C1`Z=l}o! diff --git a/testdata/conformance/tables/cook-write/archive.cook b/testdata/conformance/tables/cook-write/archive.cook index ae3179292962744904f215b72468655b7f7bac11..c7e6b02b9fd15e58a0e309ffa3fb355346f6d622 100644 GIT binary patch delta 25 gcmZ3$vw%k+*xAF^+27y0IH}2M=_e1~jRFE}0BNoW6aWAK delta 25 gcmZ3$vw%k+*xAF^+27wg>yb=i_nEIY8wCW|0B=MH=l}o! diff --git a/testdata/conformance/tables/cook-write/blob_empty-be.cook b/testdata/conformance/tables/cook-write/blob_empty-be.cook index c152894b0f7fdc247a9a52e90519ba521cc1c40b..099ef8dfc01f4b5e5651e1a7f4382a90de61b19c 100644 GIT binary patch delta 24 gcmcb>c!5#C+uz^W*TXsZ`7-tO?|IqmCkh+@0BrOL4*&oF delta 24 gcmcb>c!5#C+uz^W*TXsZ5LYYXs<#`1CJGz?0BR!%R{#J2 diff --git a/testdata/conformance/tables/cook-write/blob_empty.cook b/testdata/conformance/tables/cook-write/blob_empty.cook index 9b3029b320350234a4322a1e106b0b58cfbc379a..52974b70cb9e43f205eb457ee8186224cb126b30 100644 GIT binary patch delta 24 gcmcb>c!5zM*xAF^+27yWo{jhYdi7<`Ckh+@0A(Ku4*&oF delta 24 gcmcb>c!5zM*xAF^+27wgXye;ejICUUCJGz?0Bk4;R{#J2 diff --git a/testdata/conformance/tables/cook-write/blob_large-be.cook b/testdata/conformance/tables/cook-write/blob_large-be.cook index 9eb79f82a704c17fc8defacf2527c072dff73464..ee20994ede670ef2ecc9768f208c62a9271ab9db 100644 GIT binary patch delta 30 lcmZo@Woc+-5%Bi+clPyg4t~B&ef@i0Hv2|_tpbb%OaPyQ3FiO+ delta 30 lcmZo@Woc+-5%Bi+clPyg4nD-y%DC$7#-K)ltpbb%OaPtI3NHWv diff --git a/testdata/conformance/tables/cook-write/blob_large.cook b/testdata/conformance/tables/cook-write/blob_large.cook index 89366de10eac430a2dab6a961c0f6d40cfeb3cfa..d8d525d71ddfa35e510cb4037d10e988175a4083 100644 GIT binary patch delta 30 lcmZo@Woc+-5eRnn@OAe0_qJ!_eZO9P+4Dw$tpbb%OaPaz3FiO+ delta 30 lcmZo@Woc+-5eRnn@OAe0_YT_lb`@hQ*P%v%tpbb%OaPzP3NHWv diff --git a/testdata/conformance/tables/cook-write/blob_shared-be.cook b/testdata/conformance/tables/cook-write/blob_shared-be.cook index f9163496bf8f634828532f8fdbf6ad223db7c331..bf737eaaf2a2f44f0e12427fed3fb6a4b37dd82b 100644 GIT binary patch delta 24 gcmdnNxPwu^+uz^W*TXsZ`7-tO?|IqmCkm_p0BDQ|#{d8T delta 24 gcmdnNxPwu^+uz^W*TXsZ5LYYXs<#`1CJL+o0A;%g4*&oF diff --git a/testdata/conformance/tables/cook-write/blob_shared.cook b/testdata/conformance/tables/cook-write/blob_shared.cook index c9ee3aa19a7eaa8ac95f1ddd8d53a75e3c0748cb..874714686ac2774d33d072a66992dc5341fe5448 100644 GIT binary patch delta 24 gcmdnNxPwt3*xAF^+27yWo{jhYdi7<`Ckm_p0ARNW#{d8T delta 24 gcmdnNxPwt3*xAF^+27wgXye;ejICUUCJL+o0B67n4*&oF diff --git a/testdata/conformance/tables/cook-write/blob_small-be.cook b/testdata/conformance/tables/cook-write/blob_small-be.cook index be7ef5a0b6ed8918a1ee1720476e3d5da7150128..a969701674faa7cc7652cb3a7e590e8cd6b56e80 100644 GIT binary patch delta 25 hcmcb>e1TcO+uz^W*TXsZ`7-tO?|IqmHwqkJ1ORs62{Zrz delta 25 hcmcb>e1TcO+uz^W*TXsZ5LYYXs<#`1HVPbI1ORkb348zm diff --git a/testdata/conformance/tables/cook-write/blob_small.cook b/testdata/conformance/tables/cook-write/blob_small.cook index 1fbfb673ee77f13536b30dd886e1682ae038a7e1..d718eee6a40d5d2147decf850f75593a72eece17 100644 GIT binary patch delta 25 hcmcb>e1TaY*xAF^+27yWo{jhYdi7<`HwqkJ1ORUf2{Zrz delta 25 hcmcb>e1TaY*xAF^+27wgXye;ejICUUHVPbI1ORqi348zm diff --git a/testdata/conformance/tables/cook-write/blob_str16-be.cook b/testdata/conformance/tables/cook-write/blob_str16-be.cook index 38d956c18324fe9d588f8dc392141000bb25595d..4f8caed0d588f1e4d427710d343a69e8d5612702 100644 GIT binary patch delta 24 gcmaFC_<~Wu+uz^W*TXsZ`7-tO?|IqmCkosE0C8LiR{#J2 delta 24 gcmaFC_<~Wu+uz^W*TXsZ5LYYXs<#`1CJNjD0B(y3p8x;= diff --git a/testdata/conformance/tables/cook-write/blob_str16.cook b/testdata/conformance/tables/cook-write/blob_str16.cook index 17c1889edd99182d23bd24df371bfcd35a3f691b..92eb3f15eabc84dfacf76f6a7a37646a99018f00 100644 GIT binary patch delta 24 gcmaFC_<~U&*xAF^+27yWo{jhYdi7<`CkosE0BMH_R{#J2 delta 24 gcmaFC_<~U&*xAF^+27wgXye;ejICUUCJNjD0C12Ap8x;= diff --git a/testdata/conformance/tables/cook-write/blob_str8-be.cook b/testdata/conformance/tables/cook-write/blob_str8-be.cook index 84b680de0f7eb8569db3ded04b55a342e19ac5e1..716d4f97c55ef1e7e02becc3c0f835e20373de4d 100644 GIT binary patch delta 24 gcmaFB_<&Ks+uz^W*TXsZ`7-tO?|IqmCkk8u0B__8KL7v# delta 24 gcmaFB_<&Ks+uz^W*TXsZ5LYYXs<#`1CJI~t0BsWqhX4Qo diff --git a/testdata/conformance/tables/cook-write/blob_str8.cook b/testdata/conformance/tables/cook-write/blob_str8.cook index 14e41f593ae709ca287284ef036a65be8c000484..8282d3ccddc53e32e897f4a9cb54cea14c0adb30 100644 GIT binary patch delta 24 gcmaFB_<&I$*xAF^+27yWo{jhYdi7<`Ckk8u0B8>hKL7v# delta 24 gcmaFB_<&I$*xAF^+27wgXye;ejICUUCJI~t0B;xxhX4Qo diff --git a/testdata/conformance/tables/cook-write/chain_optional-be.cook b/testdata/conformance/tables/cook-write/chain_optional-be.cook index 3119884569c3d1bfa14a65e006f8d09720f26ae2..e4279d654a09989a4832635e3306fc940bd4070e 100644 GIT binary patch delta 24 fcmZo*Y+w}d_V;)8^>7ZBtP85W`6NSdqCf!vS#Jmz delta 24 fcmZo*Y+w}d_V;)8^>7YW^X7QrEcG^eqCf!vQ>h1m diff --git a/testdata/conformance/tables/cook-write/chain_optional.cook b/testdata/conformance/tables/cook-write/chain_optional.cook index f491d1f1b21735cf9294c8bfc14c03d80a5221b6..2e3f35dfc693031b8d36bae7bac22cd2308c5436 100644 GIT binary patch delta 24 fcmZo*Y+w`!cJ}af_V@P|%y@FMHmFW=qCf!vTFeL+ delta 24 fcmZo*Y+w`!cJ}af_V@RWek7ZBtP85W`6NSdqCf!vS#Jmz delta 24 fcmZo*Y+w}d_V;)8^>7YW^X7QrEcG^eqCf!vQ>h1m diff --git a/testdata/conformance/tables/cook-write/chain_optional_empty.cook b/testdata/conformance/tables/cook-write/chain_optional_empty.cook index f6949deb6f28f8838ece9e6e88f00f5d18fd0b9e..888334ec083f00cef763c67d37af0823158ae775 100644 GIT binary patch delta 24 fcmZo*Y+w`!cJ}af_V@P|%y@FMHmFW=qCf!vTFeL+ delta 24 fcmZo*Y+w`!cJ}af_V@RWek7YmJP^d=8rUK@QJ??-P=N-; delta 24 fcmZo*Y+w}d_V;)8^>7aMigN0IxHzX{qCf!vTEqxw diff --git a/testdata/conformance/tables/cook-write/chain_value.cook b/testdata/conformance/tables/cook-write/chain_value.cook index e22c40afa135147a002f9064ff00a734dcd2a42c..b9ba5c9b94db362156971b9d6b520ea63fddb260 100644 GIT binary patch delta 24 fcmZo*Y+w`!cJ}af_V@P|YzcJb2|B7YmJP^d=8rUK@QJ??-P=N-; delta 24 fcmZo*Y+w}d_V;)8^>7aMigN0IxHzX{qCf!vTEqxw diff --git a/testdata/conformance/tables/cook-write/chain_value_empty.cook b/testdata/conformance/tables/cook-write/chain_value_empty.cook index 5267d4538c230fb3dc5c80bc5d97f0b22cdcff5c..4cbe7c39a4b77ead9edbf47bfdc19b71c6c64350 100644 GIT binary patch delta 24 fcmZo*Y+w`!cJ}af_V@P|YzcJb2|B~oC+uz^W*TXq@%C^b_OWh@;HwtVp1OSA`3Gx5{ delta 25 hcmX?*d>~oC+uz^W*TXru+kTl)>+#A78wEBP0sw*W3MT*n diff --git a/testdata/conformance/tables/cook-write/graph_deep.cook b/testdata/conformance/tables/cook-write/graph_deep.cook index 6bba71dfd95c51b7c082da84d75a82dcadcd2782..a41f64bef4295ad9d63e07534a5d05c1ff5686ea 100644 GIT binary patch delta 25 hcmX?*d>~mM*xAF^+27w=TEczlfy!-DHVSMo1OR=a3Gx5{ delta 25 hcmX?*d>~mM*xAF^+27xLLgn#Rp=I{n8wEBP0sw>k3MT*n diff --git a/testdata/conformance/tables/cook-write/graph_empty-be.cook b/testdata/conformance/tables/cook-write/graph_empty-be.cook index 94c1ea12363e6d3a32e9b20b39d83ee23ae73fa9..7d5011740e7397a66abb97ae8316fb5b2b7f48a6 100644 GIT binary patch delta 24 fcmZo*YG4xZ_V;)8^>7ZJvaRyKQg;dIi2@%0UWo{w delta 24 fcmZo*YG4xZ_V;)8^>7aEwqGXHdc1PNM1c+#A78wE}<0swU}34Z_p diff --git a/testdata/conformance/tables/cook-write/graph_shared.cook b/testdata/conformance/tables/cook-write/graph_shared.cook index a56c43dc0f0150dfc8f9ff0347d77edf127c20cd..922af31f91a68647d9b0ec01ccfbf0653d5e75fb 100644 GIT binary patch delta 25 hcmcb?e1lma*xAF^+27w=TEczlfy!-DHVT|z1ORa22}%F} delta 25 hcmcb?e1lma*xAF^+27xLLgn#Rp=I{n8wE}<0swbC34Z_p diff --git a/testdata/conformance/tables/cook-write/graph_tree-be.cook b/testdata/conformance/tables/cook-write/graph_tree-be.cook index 285e1d755f79e93a5cbca5218a176f471dcc0a7e..a03c8ed136d9ef1b17deb2f3d4c8c0be313df12f 100644 GIT binary patch delta 25 hcmdnNvV%py+uz^W*TXq@%C^b_OWh@;HwtJl0RV9J2yFlW delta 25 gcmdnNvV%py+uz^W*TXru+kTl)>+#A78wE6&0B#@%q5uE@ diff --git a/testdata/conformance/tables/cook-write/graph_tree.cook b/testdata/conformance/tables/cook-write/graph_tree.cook index 0a395f7a814fbbcbab0d6347edc0e654b07fb097..33c6b75597ef9ba504eaa5e581aaaf0b767ba317 100644 GIT binary patch delta 25 hcmdnNvV%n+*xAF^+27w=TEczlfy!-DHVSAk0RU;y2yFlW delta 25 gcmdnNvV%n+*xAF^+27xLLgn#Rp=I{n8wE6&0B|e_q5uE@ diff --git a/testdata/conformance/tables/cook-write/keyed_config-be.cook b/testdata/conformance/tables/cook-write/keyed_config-be.cook index 11e5b8b445f0a3ef416e3a4e5f1a4c8d42d43669..5990a7901873b28d5df858a7f9cd1d7d8c7dd13c 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7a6_4u^Zswt^>qd);80AWc89RL6T delta 25 gcmZo*ZeSMh_V;)8^>7Zh`Ff^1QRY$BMu7rG0BOev@c;k- diff --git a/testdata/conformance/tables/cook-write/keyed_config.cook b/testdata/conformance/tables/cook-write/keyed_config.cook index 736343a6868a7d13f951bdaab22f6b44c170795f..21c7c36416ed01acbe787fa0d4339764a1cd803f 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@QLPHM7R`pJWLqd);80AkAs9RL6T delta 25 gcmZo*ZeSJ&cJ}af_V@SBdL)zBedeppMu7rG0BB(d@c;k- diff --git a/testdata/conformance/tables/cook-write/keyed_default-be.cook b/testdata/conformance/tables/cook-write/keyed_default-be.cook index 482850afcbc9e1b28020dd5c8f1eabffe77b906c..12b6898db8d43e8b9fac29aaf27e00ba21c6db31 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7a6_4u^Zswt^>qd);80AWc89RL6T delta 25 gcmZo*ZeSMh_V;)8^>7Zh`Ff^1QRY$BMu7rG0BOev@c;k- diff --git a/testdata/conformance/tables/cook-write/keyed_default.cook b/testdata/conformance/tables/cook-write/keyed_default.cook index c53ed3891fe9181fb3200919434f122d48df2b0e..f5e4f13d6f9d8d40cc19a439824a6600cd4fe2ba 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@QLPHM7R`pJWLqd);80AkAs9RL6T delta 25 gcmZo*ZeSJ&cJ}af_V@SBdL)zBedeppMu7rG0BB(d@c;k- diff --git a/testdata/conformance/tables/cook-write/loadout_full-be.cook b/testdata/conformance/tables/cook-write/loadout_full-be.cook index eee1c0d09cb5e310722872e9331410cefa401191..2f736fb700957d52f082198fa38c48f8426b9e0e 100644 GIT binary patch delta 24 fcmZo*YG4xZ_V;)8^>7a6_4u^Zswt^>qQD0LSs(~{ delta 24 fcmZo*YG4xZ_V;)8^>7Zh`Ff^1QRY$BM1c?z#%)_bBr1^`xX2qgdj delta 22 dcmb=Z5D0em@OAe0_rBxuTg}s%F?ymv1^`zV2Z{gy diff --git a/testdata/conformance/tables/cook-write/message_batch-be.cook b/testdata/conformance/tables/cook-write/message_batch-be.cook index 0d96dbe68c7186529bb8589a92757facff8de8e8..1d98a89eba0f422d8b4dda2cc9a7fd86684ec658 100644 GIT binary patch delta 25 gcmaE%@j^qu+uz^W*TXqjudXLs7a6_4u^Zswt^>qd);80AWc89RL6T delta 25 gcmZo*ZeSMh_V;)8^>7Zh`Ff^1QRY$BMu7rG0BOev@c;k- diff --git a/testdata/conformance/tables/cook-write/profile_elide.cook b/testdata/conformance/tables/cook-write/profile_elide.cook index 0348d3350666bdd3025bb13d64cfb61a212d4b66..3cb012df6c1778aeba5bc0aa2de9cf45574bcd0d 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@QLPHM7R`pJWLqd);80AkAs9RL6T delta 25 gcmZo*ZeSJ&cJ}af_V@SBdL)zBedeppMu7rG0BB(d@c;k- diff --git a/testdata/conformance/tables/cook-write/root_default-be.cook b/testdata/conformance/tables/cook-write/root_default-be.cook index 06ce6f5af237091f0fff1155bebe98728f0ac8ee..e5dfd50c4aa34c52140eeaff177ab9cbf6203f90 100644 GIT binary patch delta 25 gcmbQiGlNIK+uz^W*TXrO*W=SttEQyljRG8O0A`#A`~Uy| delta 25 gcmbQiGlNIK+uz^W*TXs3=Ifd6M43lf8wEJn0B;%y&;S4c diff --git a/testdata/conformance/tables/cook-write/root_default.cook b/testdata/conformance/tables/cook-write/root_default.cook index 6b33afd1732088bf21879a4f1f02b3ec5f3ee76f..b1011200fbb3678a2c8e0da96ff91e20c5355d23 100644 GIT binary patch delta 25 gcmbQiGlNGU*xAF^+27y0IH}2M=_e1~jRG8O0B9Zu`~Uy| delta 25 gcmbQiGlNGU*xAF^+27wg>yb=i_nEIY8wEJn0By7g&;S4c diff --git a/testdata/conformance/tables/cook-write/root_full-be.cook b/testdata/conformance/tables/cook-write/root_full-be.cook index 465a6429524d12e5f9f7fb659c90090dcb25bbe2..a69fd0f1944601c3470d01e577f5962a5ba7a7b4 100644 GIT binary patch delta 25 gcmbQiGlNIK+uz^W*TXrO*W=SttEQyljRG8O0A`#A`~Uy| delta 25 gcmbQiGlNIK+uz^W*TXs3=Ifd6M43lf8wEJn0B;%y&;S4c diff --git a/testdata/conformance/tables/cook-write/root_full.cook b/testdata/conformance/tables/cook-write/root_full.cook index f3b154f8f73a555131b51c6603dbf1553dc38e73..e5bd92db84ec95b3fd83db2b9b2403a70fc21150 100644 GIT binary patch delta 25 gcmbQiGlNGU*xAF^+27y0IH}2M=_e1~jRG8O0B9Zu`~Uy| delta 25 gcmbQiGlNGU*xAF^+27wg>yb=i_nEIY8wEJn0By7g&;S4c diff --git a/testdata/conformance/tables/cook-write/scalars_default-be.cook b/testdata/conformance/tables/cook-write/scalars_default-be.cook index 271373392ee21e4ae044f08303444ea032cdf63b..e9c9f3f3f6b33914ca110e5e37f14af8e54b8a0d 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7Yev97YO*mAmSec!qx8wCm&0dBDgxBvhE diff --git a/testdata/conformance/tables/cook-write/scalars_default.cook b/testdata/conformance/tables/cook-write/scalars_default.cook index eb53ba8917e92a8c46be89977dbbcfc0590a47b4..6b3db101f0719bd76232cb066af98ce1d21ab80e 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@R0Xti7YvvKQ+jRFOX0BctXWdHyG delta 25 gcmZo*ZeSJ&cJ}af_V@QbvaWA^*Xb<@8wCm&0dTGfxBvhE diff --git a/testdata/conformance/tables/cook-write/scalars_edges-be.cook b/testdata/conformance/tables/cook-write/scalars_edges-be.cook index a471a47b5b474566f6ba22c5ed2983f05364d760..1eb43d080781bb475d1216bf3b8de2f0c89d611f 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7Yev97YO*mAmSec!qx8wCm&0dBDgxBvhE diff --git a/testdata/conformance/tables/cook-write/scalars_edges.cook b/testdata/conformance/tables/cook-write/scalars_edges.cook index 735b3b20dd396105cb7bd4008dafa28898c1357e..a53dc4d95567b8e6e09a837ae253f48ff6ac3841 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@R0Xti7YvvKQ+jRFOX0BctXWdHyG delta 25 gcmZo*ZeSJ&cJ}af_V@QbvaWA^*Xb<@8wCm&0dTGfxBvhE diff --git a/testdata/conformance/tables/cook-write/scalars_full-be.cook b/testdata/conformance/tables/cook-write/scalars_full-be.cook index 5cf48a2e892bd1cb23a9e82649f2d66f5f66263b..cc408ea4f489c9b84c065d2954a0e71e983855dd 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7Yev97YO*mAmSec!qx8wCm&0dBDgxBvhE diff --git a/testdata/conformance/tables/cook-write/scalars_full.cook b/testdata/conformance/tables/cook-write/scalars_full.cook index b3e9ff94d28a1bf7711afd758f4d6be09259ca13..7a62211a18609c749cbb868e4369f9f1d1eca231 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@R0Xti7YvvKQ+jRFOX0BctXWdHyG delta 25 gcmZo*ZeSJ&cJ}af_V@QbvaWA^*Xb<@8wCm&0dTGfxBvhE diff --git a/testdata/conformance/tables/cook-write/stream_arm_first-be.cook b/testdata/conformance/tables/cook-write/stream_arm_first-be.cook index 8252506475e45d87df2b4c435b2a3953c2f8fd1c..f3b8bdb68def0abc2ee49afccf0f458fda504ffe 100644 GIT binary patch delta 25 gcmeBR?qC-1_V;)8^>7Y$4ci<(%SDxSqd)~C0A85~WdHyG delta 25 gcmeBR?qC-1_V;)8^>7a6wDZ1uFSPXDMu7@O0Aw2otpET3 diff --git a/testdata/conformance/tables/cook-write/stream_arm_first.cook b/testdata/conformance/tables/cook-write/stream_arm_first.cook index 5192377e2790bf1530f053ab714873c4484b49b4..275d28dded471c313b14e7cec45662ad639508c9 100644 GIT binary patch delta 25 gcmeBR?qC)OcJ}af_V@Q@RdtyazB$Zwqd)~C09wljWdHyG delta 25 gcmeBR?qC)OcJ}af_V@R`R~mZnuD2cMMu7@O0BaEltpET3 diff --git a/testdata/conformance/tables/cook-write/stream_chain-be.cook b/testdata/conformance/tables/cook-write/stream_chain-be.cook index 11e516215df5ff27b999cd030a57224b46117f97..78951e302365be1a06caa8c7081ee606cd113f8f 100644 GIT binary patch delta 25 gcmX@Xbb?91+uz^W*TXs3HEeVEEEiSQjRF>o0BP$7qW}N^ delta 25 gcmX@Xbb?91+uz^W*TXrO)6Vi_@% diff --git a/testdata/conformance/tables/cook-write/stream_chain.cook b/testdata/conformance/tables/cook-write/stream_chain.cook index 9634548d6ec6c696e3960b4cfca82156138f5416..5bdc829f5e5d648720d343ae7cc99c697c9598d5 100644 GIT binary patch delta 25 gcmX@Xbb?7B*xAF^+27xrRn=uy_~tOzjRF>o0A?KrqW}N^ delta 25 gcmX@Xbb?7B*xAF^+27y$UTNsPyWV!38wD&F0d`{u>i_@% diff --git a/testdata/conformance/tables/cook-write/stream_header-be.cook b/testdata/conformance/tables/cook-write/stream_header-be.cook index 0f5455a93099181e051c628ed6c8c3c85d33c9c1..c00417fdb4cab8555c217bce489ce50a447b92f2 100644 GIT binary patch delta 24 fcmX@Xc!E*D+uz^W*TXs3HEeVEEEiSQi2^$SVmt@{ delta 24 gcmX@Xc!E*D+uz^W*TXrO)6V7Y$4ci<(%SDxSqd)~C0A85~WdHyG delta 25 gcmeBR?qC-1_V;)8^>7a6wDZ1uFSPXDMu7@O0Aw2otpET3 diff --git a/testdata/conformance/tables/cook-write/stream_parts.cook b/testdata/conformance/tables/cook-write/stream_parts.cook index 211268dfe5ffd5f8f4546860a847f7a6b6da419d..59432ea2073ef574e3ab9be9eb97745619d6c115 100644 GIT binary patch delta 25 gcmeBR?qC)OcJ}af_V@Q@RdtyazB$Zwqd)~C09wljWdHyG delta 25 gcmeBR?qC)OcJ}af_V@R`R~mZnuD2cMMu7@O0BaEltpET3 diff --git a/testdata/conformance/tables/cook-write/v1_cfg-be.cook b/testdata/conformance/tables/cook-write/v1_cfg-be.cook index 40baf1f9f137805f703bcdea263c65b623416a6a..610f8f929a733743ad39c93f667d091be77921f0 100644 GIT binary patch delta 25 gcmaFC^nyvi+uz^W*TXrO`D5h_>!9q)jRFyj0Cf`x%m4rY delta 25 gcmaFC^nyvi+uz^W*TXruano;e?tJC&jRFyj0CwUCuK)l5 diff --git a/testdata/conformance/tables/cook-write/v1_cfg.cook b/testdata/conformance/tables/cook-write/v1_cfg.cook index 256204c0b0735d603309d7cff095ba7275289c5c..9a1112670cb11b73265bc96585b618513f2493df 100644 GIT binary patch delta 25 gcmaFC^nyts*xAF^+27y0GCRn6M&(E5jRFyj0Cdg>%m4rY delta 25 gcmaFC^nyts*xAF^+27wgTsfcH{P(8DjRFyj0C5rsuK)l5 diff --git a/testdata/conformance/tables/cook-write/v1_seams-be.cook b/testdata/conformance/tables/cook-write/v1_seams-be.cook index e6c05d63d762a87bb627b55b82ecccffe091ab0c..14909a78746fe622665b802f516fdd9d4f875838 100644 GIT binary patch delta 25 gcmaFC^nyvi+uz^W*TXrO`D5h_>!9q)jRFyj0Cf`x%m4rY delta 25 gcmaFC^nyvi+uz^W*TXruano;e?tJC&jRFyj0CwUCuK)l5 diff --git a/testdata/conformance/tables/cook-write/v1_seams.cook b/testdata/conformance/tables/cook-write/v1_seams.cook index c85fda9dcc21893f26dba7b4d558593edcb271d3..0c7d9ad4e6d9239f6bf58529eb39d2ab1b0edb01 100644 GIT binary patch delta 25 gcmaFC^nyts*xAF^+27y0GCRn6M&(E5jRFyj0Cdg>%m4rY delta 25 gcmaFC^nyts*xAF^+27wgTsfcH{P(8DjRFyj0C5rsuK)l5 diff --git a/testdata/conformance/tables/cook-write/v2_cfg-be.cook b/testdata/conformance/tables/cook-write/v2_cfg-be.cook index 78dc5470f3e05c0e955edeaf8b0c17436fc55912..2e900903ba449ecfdba2b4eb91cdc06759f8db5c 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7aUoXjvgz-RKjjRFOX0A!yCUH||9 delta 25 gcmZo*ZeSMh_V;)8^>7YeTD8~jo#2Px8wCm&0d4aMv;Y7A diff --git a/testdata/conformance/tables/cook-write/v2_cfg.cook b/testdata/conformance/tables/cook-write/v2_cfg.cook index a60a28f8f9b9865c64f50a47f614ae6951f64f00..813b37845a7c14a3d9af4d98dd700c2a3b87e2e3 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@RmH`ym(Hbe5~jRFOX0At1oUH||9 delta 25 gcmZo*ZeSJ&cJ}af_V@Sx{Xy`Z-`=XF8wCm&0dXh^v;Y7A diff --git a/testdata/conformance/tables/cook-write/v2_seams-be.cook b/testdata/conformance/tables/cook-write/v2_seams-be.cook index 8206996bea6b49a53f6d9396cdc31f91e862896c..cb878f7d6372db61baacf333ed568a85819c469f 100644 GIT binary patch delta 25 gcmZo*ZeSMh_V;)8^>7aUoXjvgz-RKjjRFOX0A!yCUH||9 delta 25 gcmZo*ZeSMh_V;)8^>7YeTD8~jo#2Px8wCm&0d4aMv;Y7A diff --git a/testdata/conformance/tables/cook-write/v2_seams.cook b/testdata/conformance/tables/cook-write/v2_seams.cook index 1e5cb99a2019721cad78dbf0278d5a315246a485..543cf1b8707096ed52d04a03df91f5f81361483c 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}af_V@RmH`ym(Hbe5~jRFOX0At1oUH||9 delta 25 gcmZo*ZeSJ&cJ}af_V@Sx{Xy`Z-`=XF8wCm&0dXh^v;Y7A diff --git a/testdata/conformance/tables/cook-write/wide_blob-be.cook b/testdata/conformance/tables/cook-write/wide_blob-be.cook index f38c207ac941c85f55892d2f7055351804bd9981..6f2445db746886c473787e13a4339cecdcff913f 100644 GIT binary patch delta 39 ucmZ3`Be~=B)xO0&V~YsteQr delta 39 ucmZ3`Be~=B)xO0&V~aEDO{C delta 39 ucmZ3`Be // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const int protocolId = 0x42050541a90eea8a; +const int protocolId = 0x3a9a972a02c9e7ca; const int maxWorldUnits = 30000; diff --git a/testdata/golden/ludicrous/elixir/Ludicrous.ex b/testdata/golden/ludicrous/elixir/Ludicrous.ex index 54d8f9fd8..3095680b2 100644 --- a/testdata/golden/ludicrous/elixir/Ludicrous.ex +++ b/testdata/golden/ludicrous/elixir/Ludicrous.ex @@ -2,7 +2,7 @@ # SPDX-License-Identifier: NONE — this generated output is yours, under terms of # your choice. See the LICENSE exception in the schema compiler; the compiler is # AGPL-3.0, its output is not. -# package ludicrous — protocol id 0x42050541a90eea8a +# package ludicrous — protocol id 0x3a9a972a02c9e7ca # # The shipped Elixir wire path (issue #167): the serialize.elixir port's # measured shapes — byte-granular 32-bit-group packing and 40-bit read @@ -128,7 +128,7 @@ defmodule Ludicrous.Ludicrous do # The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two # sides at the same id speak identical bits; there is no other versioning. - def protocol_id, do: 0x42050541A90EEA8A + def protocol_id, do: 0x3A9A972A02C9E7CA def max_world_units, do: 30000 diff --git a/testdata/golden/ludicrous/go/Ludicrous.go b/testdata/golden/ludicrous/go/Ludicrous.go index e1a5259b6..bb64e2fbc 100644 --- a/testdata/golden/ludicrous/go/Ludicrous.go +++ b/testdata/golden/ludicrous/go/Ludicrous.go @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca package ludicrous @@ -14,7 +14,7 @@ import ( // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -const ProtocolId uint64 = 0x42050541a90eea8a +const ProtocolId uint64 = 0x3a9a972a02c9e7ca // ErrValidation is returned when a read rejects the wire: a wrong constant, // nonzero reserved bits, or an interior null in a string (SPEC §4.3, §4.7). diff --git a/testdata/golden/ludicrous/id.txt b/testdata/golden/ludicrous/id.txt index acad6fdac..3bf2a933e 100644 --- a/testdata/golden/ludicrous/id.txt +++ b/testdata/golden/ludicrous/id.txt @@ -1 +1 @@ -0x42050541a90eea8a +0x3a9a972a02c9e7ca diff --git a/testdata/golden/ludicrous/java/Int128.java b/testdata/golden/ludicrous/java/Int128.java index cbd1ba60b..6932a406e 100644 --- a/testdata/golden/ludicrous/java/Int128.java +++ b/testdata/golden/ludicrous/java/Int128.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The emulated 128-bit pair, signed half: Java has no native 128-bit integer, // so int128/uint128 storage speaks Int128/UInt128 — two's-complement math diff --git a/testdata/golden/ludicrous/java/Ludicrous.java b/testdata/golden/ludicrous/java/Ludicrous.java index 897cb4a39..d25aee434 100644 --- a/testdata/golden/ludicrous/java/Ludicrous.java +++ b/testdata/golden/ludicrous/java/Ludicrous.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The shipped Java wire path (issue #156): the serialize.java bitpacker // inlined at every field, literal constant widths and masks, monomorphic @@ -39,7 +39,7 @@ private Ludicrous() {} // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. - public static final long protocolId = 0x42050541a90eea8aL; + public static final long protocolId = 0x3a9a972a02c9e7caL; public static final int maxWorldUnits = 30000; diff --git a/testdata/golden/ludicrous/java/UInt128.java b/testdata/golden/ludicrous/java/UInt128.java index 32ee8d8cd..e807cbbe2 100644 --- a/testdata/golden/ludicrous/java/UInt128.java +++ b/testdata/golden/ludicrous/java/UInt128.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // The emulated 128-bit pair, unsigned half: Java has no native 128-bit integer, // so int128/uint128 storage speaks Int128/UInt128 — two's-complement math diff --git a/testdata/golden/ludicrous/js/Ludicrous.js b/testdata/golden/ludicrous/js/Ludicrous.js index 7f8957b0f..027703b5c 100644 --- a/testdata/golden/ludicrous/js/Ludicrous.js +++ b/testdata/golden/ludicrous/js/Ludicrous.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // Wire functions return bool — the C++-style early-out. A schema validation // failure (a wrong wire constant, nonzero reserved bits, an out-of-contract @@ -22,7 +22,7 @@ const BOOL_SCRATCH = { value: false }; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -export const ProtocolId = 0x42050541a90eea8an; +export const ProtocolId = 0x3a9a972a02c9e7can; export const MaxWorldUnits = 30000; diff --git a/testdata/golden/ludicrous/js/LudicrousFlat.js b/testdata/golden/ludicrous/js/LudicrousFlat.js index 63ead2a26..8af3ad542 100644 --- a/testdata/golden/ludicrous/js/LudicrousFlat.js +++ b/testdata/golden/ludicrous/js/LudicrousFlat.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // // THE FLAT TIER — the shipped JavaScript wire path: a single-word 32-bit // bitpacker inlined at every field (byte-identical wire to serialize.js), diff --git a/testdata/golden/ludicrous/rust/lib.rs b/testdata/golden/ludicrous/rust/lib.rs index 648e29ea8..6d02983db 100644 --- a/testdata/golden/ludicrous/rust/lib.rs +++ b/testdata/golden/ludicrous/rust/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/testdata/golden/ludicrous/rust/ludicrous.rs b/testdata/golden/ludicrous/rust/ludicrous.rs index 39c8b778e..bda393e87 100644 --- a/testdata/golden/ludicrous/rust/ludicrous.rs +++ b/testdata/golden/ludicrous/rust/ludicrous.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package ludicrous — protocol id 0x42050541a90eea8a +// package ludicrous — protocol id 0x3a9a972a02c9e7ca use serialize::{ReadStream, Stream, WriteStream}; // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0x42050541a90eea8a; +pub const PROTOCOL_ID: u64 = 0x3a9a972a02c9e7ca; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/testdata/golden/rust/clauses.rs b/testdata/golden/rust/clauses.rs index 70c7f2446..d075630bc 100644 --- a/testdata/golden/rust/clauses.rs +++ b/testdata/golden/rust/clauses.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/testdata/golden/rust/constants.rs b/testdata/golden/rust/constants.rs index 69ae2e4fe..8cebc47de 100644 --- a/testdata/golden/rust/constants.rs +++ b/testdata/golden/rust/constants.rs @@ -2,11 +2,11 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // The unit's protocol id — the hash of its wire shape (SPEC §3.1). Two // sides at the same id speak identical bits; there is no other versioning. -pub const PROTOCOL_ID: u64 = 0x91a8e85156dfe2b1; +pub const PROTOCOL_ID: u64 = 0x682e2a15a56b78bf; /// The generated crate's error: the runtime's own errors pass through; /// Validation is a read rejecting the wire (SPEC §4.3, §4.7). diff --git a/testdata/golden/rust/degenerate.rs b/testdata/golden/rust/degenerate.rs index f210b8835..2584dd4f2 100644 --- a/testdata/golden/rust/degenerate.rs +++ b/testdata/golden/rust/degenerate.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/testdata/golden/rust/enums.rs b/testdata/golden/rust/enums.rs index b75ab5673..147cf6d6e 100644 --- a/testdata/golden/rust/enums.rs +++ b/testdata/golden/rust/enums.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Team — None = 0 implicit, variants dense from 1, wire range [0, 2] (SPEC §4.2); // a newtype because | max = ... headroom makes non-variant values wire-legal diff --git a/testdata/golden/rust/joins.rs b/testdata/golden/rust/joins.rs index 3a71a2959..e89a86ae2 100644 --- a/testdata/golden/rust/joins.rs +++ b/testdata/golden/rust/joins.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/testdata/golden/rust/lib.rs b/testdata/golden/rust/lib.rs index af22819e9..62684805d 100644 --- a/testdata/golden/rust/lib.rs +++ b/testdata/golden/rust/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf // Two clippy classes are silenced deliberately, crate-wide: // - derivable_impls / field_reassign_with_default: Default impls are diff --git a/testdata/golden/rust/render.rs b/testdata/golden/rust/render.rs index 0b5e2194d..c792ad5f8 100644 --- a/testdata/golden/rust/render.rs +++ b/testdata/golden/rust/render.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/testdata/golden/rust/types.rs b/testdata/golden/rust/types.rs index 39093ba54..4d55ee665 100644 --- a/testdata/golden/rust/types.rs +++ b/testdata/golden/rust/types.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/testdata/golden/rust/wire.rs b/testdata/golden/rust/wire.rs index e1c75686b..6e0d494a7 100644 --- a/testdata/golden/rust/wire.rs +++ b/testdata/golden/rust/wire.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package example — protocol id 0x91a8e85156dfe2b1 +// package example — protocol id 0x682e2a15a56b78bf use crate::*; use serialize::{ReadStream, Stream, WriteStream}; diff --git a/testdata/golden/tables/blobs/AssetsTable.h b/testdata/golden/tables/blobs/AssetsTable.h index 8d73198b1..bc66a4fbd 100644 --- a/testdata/golden/tables/blobs/AssetsTable.h +++ b/testdata/golden/tables/blobs/AssetsTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package blobdemo — protocol id 0xec78e4ce7f5dd962 (packets only: tables version by field id, not by protocol id) +// package blobdemo — protocol id 0x1cc1b12ef296a1f6 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -1302,7 +1302,7 @@ namespace blobdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0xc20a8501aaedb152ull; +static const uint64_t BuildVersion = 0xe7a627afef0d063full; } // namespace blobdemo diff --git a/testdata/golden/tables/block-c/PaddedTable.h b/testdata/golden/tables/block-c/PaddedTable.h index 2ce0a7714..33fa130a3 100644 --- a/testdata/golden/tables/block-c/PaddedTable.h +++ b/testdata/golden/tables/block-c/PaddedTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package blockdemo — protocol id 0x7a706bf2ea47d94b (packets only: tables version by field id, not by protocol id) + package blockdemo — protocol id 0xccb9f0129fbc0ebe (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -387,7 +387,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_BLOCKDEMO_BUILD_VERSION_VALUE 0xe9c3dec8287989afull +#define SCHEMA_BLOCKDEMO_BUILD_VERSION_VALUE 0x0adbc6e7f9c4605dull #endif /* SCHEMA_BLOCKDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/block-c/RenderTable.h b/testdata/golden/tables/block-c/RenderTable.h index bf282d7d2..d88fe723b 100644 --- a/testdata/golden/tables/block-c/RenderTable.h +++ b/testdata/golden/tables/block-c/RenderTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package blockdemo — protocol id 0x7a706bf2ea47d94b (packets only: tables version by field id, not by protocol id) + package blockdemo — protocol id 0xccb9f0129fbc0ebe (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_BLOCKDEMO_BUILD_VERSION_VALUE 0xe9c3dec8287989afull +#define SCHEMA_BLOCKDEMO_BUILD_VERSION_VALUE 0x0adbc6e7f9c4605dull #endif /* SCHEMA_BLOCKDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/block/PaddedTable.h b/testdata/golden/tables/block/PaddedTable.h index 70c0148f2..4d98f3a54 100644 --- a/testdata/golden/tables/block/PaddedTable.h +++ b/testdata/golden/tables/block/PaddedTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package blockdemo — protocol id 0x7a706bf2ea47d94b (packets only: tables version by field id, not by protocol id) +// package blockdemo — protocol id 0xccb9f0129fbc0ebe (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -388,7 +388,7 @@ namespace blockdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0xe9c3dec8287989afull; +static const uint64_t BuildVersion = 0x0adbc6e7f9c4605dull; } // namespace blockdemo diff --git a/testdata/golden/tables/block/RenderTable.h b/testdata/golden/tables/block/RenderTable.h index d61a38236..ccee40e81 100644 --- a/testdata/golden/tables/block/RenderTable.h +++ b/testdata/golden/tables/block/RenderTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package blockdemo — protocol id 0x7a706bf2ea47d94b (packets only: tables version by field id, not by protocol id) +// package blockdemo — protocol id 0xccb9f0129fbc0ebe (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace blockdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0xe9c3dec8287989afull; +static const uint64_t BuildVersion = 0x0adbc6e7f9c4605dull; } // namespace blockdemo diff --git a/testdata/golden/tables/blockhome/ConstantsTable.h b/testdata/golden/tables/blockhome/ConstantsTable.h index 32e575fbc..11569f205 100644 --- a/testdata/golden/tables/blockhome/ConstantsTable.h +++ b/testdata/golden/tables/blockhome/ConstantsTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package blockhome — protocol id 0xa6612e5b3f07080a (packets only: tables version by field id, not by protocol id) +// package blockhome — protocol id 0x0fc1a1667e54b144 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -265,7 +265,7 @@ namespace blockhome { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0xf0348a7d88321955ull; +static const uint64_t BuildVersion = 0x9ebe680f43132468ull; } // namespace blockhome diff --git a/testdata/golden/tables/blockhome/DataTable.h b/testdata/golden/tables/blockhome/DataTable.h index d3505e7cd..4b9f260b9 100644 --- a/testdata/golden/tables/blockhome/DataTable.h +++ b/testdata/golden/tables/blockhome/DataTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package blockhome — protocol id 0xa6612e5b3f07080a (packets only: tables version by field id, not by protocol id) +// package blockhome — protocol id 0x0fc1a1667e54b144 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -265,7 +265,7 @@ namespace blockhome { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0xf0348a7d88321955ull; +static const uint64_t BuildVersion = 0x9ebe680f43132468ull; } // namespace blockhome diff --git a/testdata/golden/tables/blockhome/FrameTable.h b/testdata/golden/tables/blockhome/FrameTable.h index 0818bacfd..cc07be6fd 100644 --- a/testdata/golden/tables/blockhome/FrameTable.h +++ b/testdata/golden/tables/blockhome/FrameTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package blockhome — protocol id 0xa6612e5b3f07080a (packets only: tables version by field id, not by protocol id) +// package blockhome — protocol id 0x0fc1a1667e54b144 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -266,7 +266,7 @@ namespace blockhome { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0xf0348a7d88321955ull; +static const uint64_t BuildVersion = 0x9ebe680f43132468ull; } // namespace blockhome diff --git a/testdata/golden/tables/examples-c/GuardedTable.h b/testdata/golden/tables/examples-c/GuardedTable.h index 038cf8ff7..73c7cc41b 100644 --- a/testdata/golden/tables/examples-c/GuardedTable.h +++ b/testdata/golden/tables/examples-c/GuardedTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples-c/KeyedTable.h b/testdata/golden/tables/examples-c/KeyedTable.h index fc3a3b75a..a3ffab1a8 100644 --- a/testdata/golden/tables/examples-c/KeyedTable.h +++ b/testdata/golden/tables/examples-c/KeyedTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples-c/NestedTable.h b/testdata/golden/tables/examples-c/NestedTable.h index 36cd3b4dd..55edd62d5 100644 --- a/testdata/golden/tables/examples-c/NestedTable.h +++ b/testdata/golden/tables/examples-c/NestedTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -387,7 +387,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples-c/PackTable.h b/testdata/golden/tables/examples-c/PackTable.h index dfedb1b3c..c78c82e9c 100644 --- a/testdata/golden/tables/examples-c/PackTable.h +++ b/testdata/golden/tables/examples-c/PackTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples-c/RangesTable.h b/testdata/golden/tables/examples-c/RangesTable.h index cadca356e..89c9b85ce 100644 --- a/testdata/golden/tables/examples-c/RangesTable.h +++ b/testdata/golden/tables/examples-c/RangesTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples-c/TablesTable.h b/testdata/golden/tables/examples-c/TablesTable.h index 59e8c750d..64b486797 100644 --- a/testdata/golden/tables/examples-c/TablesTable.h +++ b/testdata/golden/tables/examples-c/TablesTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples-c/WideTable.h b/testdata/golden/tables/examples-c/WideTable.h index 8093f6493..2d5a03017 100644 --- a/testdata/golden/tables/examples-c/WideTable.h +++ b/testdata/golden/tables/examples-c/WideTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) + package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -386,7 +386,7 @@ static SCHEMA_UNUSED uint64_t table_double_to_bits( double d ) { uint64_t b; mem PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x3cf5cc8b611ce26aull +#define SCHEMA_TABLEDEMO_BUILD_VERSION_VALUE 0x0d48f2a53a826273ull #endif /* SCHEMA_TABLEDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/examples/GuardedTable.h b/testdata/golden/tables/examples/GuardedTable.h index 1a7821207..e40ac346e 100644 --- a/testdata/golden/tables/examples/GuardedTable.h +++ b/testdata/golden/tables/examples/GuardedTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/examples/KeyedTable.h b/testdata/golden/tables/examples/KeyedTable.h index 02b706e72..c85288f55 100644 --- a/testdata/golden/tables/examples/KeyedTable.h +++ b/testdata/golden/tables/examples/KeyedTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/examples/NestedTable.h b/testdata/golden/tables/examples/NestedTable.h index 982561a5e..2768c1193 100644 --- a/testdata/golden/tables/examples/NestedTable.h +++ b/testdata/golden/tables/examples/NestedTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -388,7 +388,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/examples/PackTable.h b/testdata/golden/tables/examples/PackTable.h index 171056c72..c6a3dfce6 100644 --- a/testdata/golden/tables/examples/PackTable.h +++ b/testdata/golden/tables/examples/PackTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/examples/RangesTable.h b/testdata/golden/tables/examples/RangesTable.h index 15013c969..7db458a08 100644 --- a/testdata/golden/tables/examples/RangesTable.h +++ b/testdata/golden/tables/examples/RangesTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/examples/TablesTable.h b/testdata/golden/tables/examples/TablesTable.h index 34a40d2e8..f37c7ec03 100644 --- a/testdata/golden/tables/examples/TablesTable.h +++ b/testdata/golden/tables/examples/TablesTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/examples/WideTable.h b/testdata/golden/tables/examples/WideTable.h index d21640016..979fd06cc 100644 --- a/testdata/golden/tables/examples/WideTable.h +++ b/testdata/golden/tables/examples/WideTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package tabledemo — protocol id 0x9924bf6d375ec24d (packets only: tables version by field id, not by protocol id) +// package tabledemo — protocol id 0x91df5fddd8edc184 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -387,7 +387,7 @@ namespace tabledemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x3cf5cc8b611ce26aull; +static const uint64_t BuildVersion = 0x0d48f2a53a826273ull; } // namespace tabledemo diff --git a/testdata/golden/tables/messages/MessagesTable.h b/testdata/golden/tables/messages/MessagesTable.h index dfda9fabc..a6c5a2d6b 100644 --- a/testdata/golden/tables/messages/MessagesTable.h +++ b/testdata/golden/tables/messages/MessagesTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package messagedemo — protocol id 0x8248fac3393e5575 (packets only: tables version by field id, not by protocol id) +// package messagedemo — protocol id 0x4a7939657edfa4ab (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -265,7 +265,7 @@ namespace messagedemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x5d6070501121763aull; +static const uint64_t BuildVersion = 0x2e7e8c6b14f7f107ull; } // namespace messagedemo diff --git a/testdata/golden/tables/pointers-c/GraphTable.h b/testdata/golden/tables/pointers-c/GraphTable.h index f27530197..52cf1e6c7 100644 --- a/testdata/golden/tables/pointers-c/GraphTable.h +++ b/testdata/golden/tables/pointers-c/GraphTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package graphdemo — protocol id 0x79242c6a555d3a60 (packets only: tables version by field id, not by protocol id) + package graphdemo — protocol id 0x2ce00b66ca6ca57c (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -724,7 +724,7 @@ typedef struct TableSink PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_GRAPHDEMO_BUILD_VERSION_VALUE 0x8b3fa61285c77990ull +#define SCHEMA_GRAPHDEMO_BUILD_VERSION_VALUE 0x94b679c0a547181bull #endif /* SCHEMA_GRAPHDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/pointers-c/MarksTable.h b/testdata/golden/tables/pointers-c/MarksTable.h index ae9269606..4f773bcae 100644 --- a/testdata/golden/tables/pointers-c/MarksTable.h +++ b/testdata/golden/tables/pointers-c/MarksTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package graphdemo — protocol id 0x79242c6a555d3a60 (packets only: tables version by field id, not by protocol id) + package graphdemo — protocol id 0x2ce00b66ca6ca57c (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -722,7 +722,7 @@ typedef struct TableSink PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_GRAPHDEMO_BUILD_VERSION_VALUE 0x8b3fa61285c77990ull +#define SCHEMA_GRAPHDEMO_BUILD_VERSION_VALUE 0x94b679c0a547181bull #endif /* SCHEMA_GRAPHDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/pointers-c/PartsTable.h b/testdata/golden/tables/pointers-c/PartsTable.h index b19b62d36..87a2f704f 100644 --- a/testdata/golden/tables/pointers-c/PartsTable.h +++ b/testdata/golden/tables/pointers-c/PartsTable.h @@ -2,7 +2,7 @@ SPDX-License-Identifier: NONE — this generated output is yours, under terms of your choice. See the LICENSE exception in the schema compiler; the compiler is AGPL-3.0, its output is not. - package graphdemo — protocol id 0x79242c6a555d3a60 (packets only: tables version by field id, not by protocol id) + package graphdemo — protocol id 0x2ce00b66ca6ca57c (packets only: tables version by field id, not by protocol id) The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize dependency — includable from any TU. Compile the .c beside this header to use the reflection descriptors or the text form. */ @@ -722,7 +722,7 @@ typedef struct TableSink PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is what everything cooked or blocked is keyed by. A table edit moves this and never the protocol id; a type edit moves both. */ -#define SCHEMA_GRAPHDEMO_BUILD_VERSION_VALUE 0x8b3fa61285c77990ull +#define SCHEMA_GRAPHDEMO_BUILD_VERSION_VALUE 0x94b679c0a547181bull #endif /* SCHEMA_GRAPHDEMO_BUILD_VERSION */ diff --git a/testdata/golden/tables/pointers/GraphTable.h b/testdata/golden/tables/pointers/GraphTable.h index aa4c62828..9b60232e3 100644 --- a/testdata/golden/tables/pointers/GraphTable.h +++ b/testdata/golden/tables/pointers/GraphTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package graphdemo — protocol id 0x79242c6a555d3a60 (packets only: tables version by field id, not by protocol id) +// package graphdemo — protocol id 0x2ce00b66ca6ca57c (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -1427,7 +1427,7 @@ namespace graphdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x8b3fa61285c77990ull; +static const uint64_t BuildVersion = 0x94b679c0a547181bull; } // namespace graphdemo diff --git a/testdata/golden/tables/pointers/MarksTable.h b/testdata/golden/tables/pointers/MarksTable.h index ddfaae6db..986a76117 100644 --- a/testdata/golden/tables/pointers/MarksTable.h +++ b/testdata/golden/tables/pointers/MarksTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package graphdemo — protocol id 0x79242c6a555d3a60 (packets only: tables version by field id, not by protocol id) +// package graphdemo — protocol id 0x2ce00b66ca6ca57c (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -1424,7 +1424,7 @@ namespace graphdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x8b3fa61285c77990ull; +static const uint64_t BuildVersion = 0x94b679c0a547181bull; } // namespace graphdemo diff --git a/testdata/golden/tables/pointers/PartsTable.h b/testdata/golden/tables/pointers/PartsTable.h index 3bd8f7ce5..65d30ef87 100644 --- a/testdata/golden/tables/pointers/PartsTable.h +++ b/testdata/golden/tables/pointers/PartsTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package graphdemo — protocol id 0x79242c6a555d3a60 (packets only: tables version by field id, not by protocol id) +// package graphdemo — protocol id 0x2ce00b66ca6ca57c (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -1424,7 +1424,7 @@ namespace graphdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x8b3fa61285c77990ull; +static const uint64_t BuildVersion = 0x94b679c0a547181bull; } // namespace graphdemo diff --git a/testdata/golden/tables/scalars/ScalarsTable.h b/testdata/golden/tables/scalars/ScalarsTable.h index f7f7e2254..0244e9643 100644 --- a/testdata/golden/tables/scalars/ScalarsTable.h +++ b/testdata/golden/tables/scalars/ScalarsTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package scalardemo — protocol id 0x01ba84a4cbd2143a (packets only: tables version by field id, not by protocol id) +// package scalardemo — protocol id 0xaa2ae3fa9f005efc (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): includable from // any TU — the one thing taken from serialize.h is the 128-bit storage type. @@ -388,7 +388,7 @@ namespace scalardemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x60b4cb8aaf8eaec4ull; +static const uint64_t BuildVersion = 0xa8b581f9ab3e8580ull; } // namespace scalardemo diff --git a/testdata/golden/tables/stream/StreamTable.h b/testdata/golden/tables/stream/StreamTable.h index 3dab44a86..b375cb263 100644 --- a/testdata/golden/tables/stream/StreamTable.h +++ b/testdata/golden/tables/stream/StreamTable.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: NONE — this generated output is yours, under terms of // your choice. See the LICENSE exception in the schema compiler; the compiler is // AGPL-3.0, its output is not. -// package streamdemo — protocol id 0xbf90766c51a5100c (packets only: tables version by field id, not by protocol id) +// package streamdemo — protocol id 0x0da6b010d5e2ade7 (packets only: tables version by field id, not by protocol id) // The TABLE wire (evolution-tolerant, docs/SPEC-TABLES.md): no serialize // dependency — includable from any TU. @@ -1302,7 +1302,7 @@ namespace streamdemo { // PROTOCOL ID is the type wire's and nothing else, and the BUILD VERSION is // what everything cooked or blocked is keyed by. A table edit moves this and // never the protocol id; a type edit moves both. -static const uint64_t BuildVersion = 0x093e4bddde5575deull; +static const uint64_t BuildVersion = 0x4556b3579a442505ull; } // namespace streamdemo diff --git a/testdata/wire/tables/block_padded.bin b/testdata/wire/tables/block_padded.bin index 0d170f07910e049ea0d281f3848e7dad22d2abc9..174d0d9cd2bff2e950e62f88ed83b85769a31e4e 100644 GIT binary patch delta 25 gcmZo*ZeSJ&cJ}afbn@|zO*r!N`LWwv8wCm&0d6V@ng9R* delta 25 gcmZo*ZeSJ&cJ}afbn@|D-&v_~;@;tx8wCm&0c`mRxc~qF diff --git a/testdata/wire/tables/block_render.bin b/testdata/wire/tables/block_render.bin index 35519c20c473b10263d3aef841409ccbeb13da71..927866a3048040b4af0bde19f340b0f9733239b0 100644 GIT binary patch delta 25 hcmZn=YY-C%cJ}afbn@|zO*r!N`LWwv8wEaa0RVEH3P}I} delta 25 hcmZn=YY-C%cJ}afbn@|D-&v_~;@;tx8wEaa0RVAq3TOZT