Small optimisation: don't initialise a symbol table immediately on init

Why?  This way, until we use symbols, the system doesn't generate the
table and thus grow the memory usage by a couple kb.
This commit is contained in:
2025-08-21 21:53:09 +01:00
parent ed37f7cd80
commit 85b83d7a20
2 changed files with 5 additions and 2 deletions

View File

@@ -34,6 +34,10 @@ void sym_table_init(sym_table_t *table)
char *sym_table_find(sym_table_t *table, sv_t sv)
{
// Initialise the table if it's not done already
if (table->entries.capacity == 0)
sym_table_init(table);
// WIP: Deal with resizing this when table->count > table->size / 2
u64 index = djb2(sv) & (table->capacity - 1);

3
sys.c
View File

@@ -20,8 +20,7 @@
void sys_init(sys_t *sys)
{
sys->memory = NIL;
sym_table_init(&sys->symtable);
memset(sys, 0, sizeof(*sys));
}
void sys_register(sys_t *sys, lisp_t *ptr)