From 3cc6bc3d8a1d8827519decbf7e084e89110c93f9 Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 19 Oct 2026 00:16:56 +0100 Subject: 027's 4f-3b: no fixed count of records or of their fields in all: the header's u16s alone (16 and 128 before); a stored list's record graph (PureLayout) holds a few records itself and more on the heap, 256 at most (an image numbers them in a byte), an image or a checkpoint not written then without room for it; a record's 16 fields kept, the list engine's width (a leaf's columns, a run's columns and narrow cells, the arrays' and packs' columns), to be widened with the lists' shapes sized to their fields; unit tests: 20 records of 10 fields (200 in all), an item of the last appended; a stored list whose six records each hold a list of the next saved and read back after a restart (its graph on the heap); counts: b41 against b40 with batches BFS +0.12%, without BFS -0.09%, the rest within 0.001%; the bank's queries (s40 and s41 in turns, six each) within 0.09% (the first three's in_credit +1.16% its spread: 2.75% between runs of one build); 008 and 027 --- core/module.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/module.h') diff --git a/core/module.h b/core/module.h index 8de3e33..26259fe 100644 --- a/core/module.h +++ b/core/module.h @@ -18,7 +18,8 @@ enum { PURE_MODULE_NAME = 32, PURE_MODULE_STRINGS = 32768, PURE_MODULE_HEADER = 38, /* A message's fields at most: a send pushes them all (the stack's), a width of the stored sends too (027's 4f-3a). */ PURE_MESSAGE_FIELDS = PURE_MODULE_STACK, PURE_MODULE_CONSTANTS = 4096, - PURE_MODULE_CONSTANT_BYTES = 1 << 20, PURE_MODULE_RECORDS = 16, PURE_MODULE_RECORD_FIELDS = 128, + PURE_MODULE_CONSTANT_BYTES = 1 << 20, + /* A record's fields at most: a list's leaf keeps 16 columns (module-list.c, its runs and arrays too). */ PURE_RECORD_FIELDS = 16, PURE_MODULE_JOINS = 8 }; -- cgit v1.2.3