diff options
| author | LLLL Colonq <llll@colonq> | 2026-09-01 06:26:13 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-09-01 06:26:13 -0400 |
| commit | ff7407c146b8129c2f1cc7ebe3b5771ad2f5dfdd (patch) | |
| tree | bc70d9773ebc0deb25773d3b5c86ec7ea96eef6d /pit/src/runtime/symtab.c | |
| parent | 6ebac820c84b218a45368eeaf1c853ff9c9d638f (diff) | |
Diffstat (limited to 'pit/src/runtime/symtab.c')
| -rw-r--r-- | pit/src/runtime/symtab.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/pit/src/runtime/symtab.c b/pit/src/runtime/symtab.c index 33ed3ba..1894208 100644 --- a/pit/src/runtime/symtab.c +++ b/pit/src/runtime/symtab.c @@ -104,21 +104,20 @@ 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; } -void pit_symtab_sfset(pit_runtime *rt, pit_value sym, pit_value v) { - pit_symtab_fset(rt, sym, v); - pit_symtab_symbol_mark_special_form(rt, sym); -} +#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; } |
