diff options
| author | eunhhu <[email protected]> | 2026-10-04 17:39:18 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-04 17:39:18 +0100 |
| commit | 602780a58c3286d6843e8ff89bd7a3093891a7ad (patch) | |
| tree | fc0e18c28b434314c83904580e160a2ba6f34eac /core/runtime.c | |
| parent | e6bd261b845f5b88d454d0ddaf0b11c12a76e25d (diff) | |
| download | pure-602780a58c3286d6843e8ff89bd7a3093891a7ad.tar.gz pure-602780a58c3286d6843e8ff89bd7a3093891a7ad.zip | |
Search an event's keyed lists by a key set and lists by fingers, add by key in one descent, and loop without recursion (020)
- An event's list keyed by a number keeps its keys beside its tree: bits
while they are small whole numbers, else an open-addressing table;
has() reads only that, and inserts, removes, key changes, their undoing
and clears keep it.
- Each thread keeps fingers on the last four leaves it read (list id and
version must match): reads by position and searches by key that land in
them do not descend.
- pure_list_add finds a key's place and inserts there in one descent; a
stored keyed list's appends take it too, journaled as inserts.
- Child searches count over the whole guide; item fields know at load
whether they are text; loops run on a stack of loop records, not by
recursion; module-list.c builds at -O3.
- test-module: the key set and fingers answer as a model at every step
(bits to table, removes inside runs, undone changes, clears, shares),
and a stored keyed list's adds replay from its journal.
Diffstat (limited to 'core/runtime.c')
0 files changed, 0 insertions, 0 deletions
