diff options
| author | eunhhu <[email protected]> | 2026-10-05 16:07:48 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-05 16:07:48 +0100 |
| commit | 6cd7f5a415f9286ae4bec58545dccd89a15ef46d (patch) | |
| tree | 826d39f784273751d9ce1c5c70701ca8158b6d7c /core/module-list.h | |
| parent | 5aaed2a58d0b5c3dea22b9f915eb02a823db49ac (diff) | |
| download | pure-6cd7f5a415f9286ae4bec58545dccd89a15ef46d.tar.gz pure-6cd7f5a415f9286ae4bec58545dccd89a15ef46d.zip | |
The tier, first (023): a nest of loops as SSA, its stack, locals and states values in registers (x20-x28 too, the frame's read again where it ends), whole numbers integers by their facts, the message's fields and lists' columns read once, invariants made before inner loops; where anything does not hold it gives up to the executor at the instruction (pure_run_rest) and the generic code goes on. roots 22.9 to 14.0 ms, knapsack 1,030 to 38.8, matmul 908 to 48.6; module_tier checks random handlers against the executor
Diffstat (limited to 'core/module-list.h')
| -rw-r--r-- | core/module-list.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/module-list.h b/core/module-list.h index 60bce95..21b929c 100644 --- a/core/module-list.h +++ b/core/module-list.h @@ -147,6 +147,15 @@ PureResult pure_list_keyed(PureList *, int field); * it is not keyed by a number, is a copy, or memory runs out (it is * searched as before). */ bool pure_list_hashed(PureList *); +/* Whether an event's list is as the tier's code reads it (docs/design/023): + * needs 1, found by key: DENSE; 2, read by position: FLAT, or DENSE with + * every key below its count (a key its position); 4, a key's position: the + * latter; and each field in narrow a number column of one or four bytes. + * Its full (pure_list_layout's LIST_FULL_AT) then says whether every key + * below its count is there. */ +bool pure_list_suits(PureList *, unsigned needs, unsigned narrow); +/* Whether a DENSE list holds every key below its count (a key is its position). */ +bool pure_list_full(PureList *); /* Whether key is there, by the set: false when the list keeps none (search it then). */ bool pure_list_contains(const PureList *, double key, bool *found); /* The bytes it keeps beside its items for that. */ |
