chunked tables: a key is unique across its map and the slot's own, not interned - a slot keeps row i's key in its own buffer i, rewritten when the slot is refilled (interning ~92k map-unique keys as a player walks would fill the bounded intern table and keep them all); ludicc --check refuses a key written in two of a map's chunk files, naming both; reseeded

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-29 21:43:20 +03:00
parent 0634116d59
commit 49e32f9b47
11 changed files with 75842 additions and 74646 deletions

View file

@ -0,0 +1,2 @@
t3 { x: -1.0 }
t1 { x: -2.0 }

View file

@ -0,0 +1,2 @@
t1 { x: 1.0 }
t2 { x: 2.0 }

View file

@ -1,6 +1,7 @@
# permap_maps.ludic - `ludicc --check` reads every map directory and checks its tables against their
# records. maps/m1 holds four mistakes, each refused at its file, line and column: a field the
# record lacks, a value of the wrong type, a constant nobody declared, and a key naming no row.
# records. maps/m1 holds five mistakes, each refused at its file, line and column: a field the
# record lacks, a value of the wrong type, a constant nobody declared, a key naming no row, and a
# chunked table's key written in two of the map's chunk files (t1, in trees/-1_0 and trees/0_0).
program PerMapMaps {
numbers float
const MDL_TENT: int = 7
@ -13,6 +14,8 @@ program PerMapMaps {
@Ref(Spots) home: string = ""
}
@PerMap @ByKey registry Props of PropRow from "props.lres"
property Tree { key: string = "", x: float = 0.0 }
@PerMap @Chunked(64) registry Trees of Tree from "trees/{cx}_{cz}.lres"
entry (props: mut Props) {
print(`{props_load(props, "m1")}`)
}