summaryrefslogtreecommitdiff
path: root/pit/src/runtime/symtab.c
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-09-01 20:59:47 -0400
committerLLLL Colonq <llll@colonq>2026-09-01 20:59:47 -0400
commita107593b6b362fb68e409c9d7b79427776d137d7 (patch)
treee12f7ac95177432abb477273fb5f11122bafb38a /pit/src/runtime/symtab.c
parentff7407c146b8129c2f1cc7ebe3b5771ad2f5dfdd (diff)
pit: Tail call optimization!HEADmaster
Diffstat (limited to 'pit/src/runtime/symtab.c')
-rw-r--r--pit/src/runtime/symtab.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/pit/src/runtime/symtab.c b/pit/src/runtime/symtab.c
index 1894208..ca4ecf2 100644
--- a/pit/src/runtime/symtab.c
+++ b/pit/src/runtime/symtab.c
@@ -104,20 +104,17 @@ void pit_symtab_symbol_mark_special_form(pit_runtime *rt, pit_value sym) {
if (!ent) { pit_error(rt, "bad symbol"); return; }
ent->is_special_form = true;
}
-#include <stdio.h>
void pit_symtab_bind(pit_runtime *rt, pit_value sym, pit_value cell) {
/* although we cannot set frozen symbols, we can still bind them temporarily - no need to check */
pit_symtab_entry *ent = pit_symtab_lookup(rt, sym);
if (!ent) { pit_error(rt, "bad symbol"); return; }
if (pit_vec_push(pit_value)(rt->saved_bindings, ent->value) < 0) pit_error(rt, "binding stack overflow");
ent->value = cell;
- fprintf(stderr, "binding: "); pit_dump_to_file(rt, stderr, sym, false); fprintf(stderr, "\n");
}
pit_value pit_symtab_unbind(pit_runtime *rt, pit_value sym) {
pit_symtab_entry *ent = pit_symtab_lookup(rt, sym);
if (!ent) { pit_error(rt, "bad symbol"); return PIT_NIL; }
pit_value old = ent->value;
if (pit_vec_pop(pit_value)(rt->saved_bindings, &ent->value) < 0) pit_error(rt, "binding stack underflow");
- fprintf(stderr, "unbinding: "); pit_dump_to_file(rt, stderr, sym, false); fprintf(stderr, "\n");
return old;
}