diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/library.c | 7 | ||||
| -rw-r--r-- | src/runtime.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/library.c b/src/library.c index 7c63066..5176874 100644 --- a/src/library.c +++ b/src/library.c @@ -805,6 +805,11 @@ void pit_install_library_essential(pit_runtime *rt) { pit_fset(rt, pit_intern_cstr(rt, "bitwise/rshift"), pit_nativefunc_new(rt, impl_bitwise_rshift)); } +static pit_value impl_diagnostics(pit_runtime *rt, pit_value args) { + (void) args; + fprintf(stderr, "value allocs: %ld\n", rt->values->next); + return PIT_NIL; +} static pit_value impl_print(pit_runtime *rt, pit_value args) { pit_value x = pit_car(rt, args); char buf[1024] = {0}; @@ -844,6 +849,8 @@ static pit_value impl_load(pit_runtime *rt, pit_value args) { return ret; } void pit_install_library_io(pit_runtime *rt) { + /* diagnostics */ + pit_fset(rt, pit_intern_cstr(rt, "diagnostics!"), pit_nativefunc_new(rt, impl_diagnostics)); /* stream IO */ pit_fset(rt, pit_intern_cstr(rt, "print!"), pit_nativefunc_new(rt, impl_print)); pit_fset(rt, pit_intern_cstr(rt, "princ!"), pit_nativefunc_new(rt, impl_princ)); diff --git a/src/runtime.c b/src/runtime.c index 1c0e6e1..fea53dd 100644 --- a/src/runtime.c +++ b/src/runtime.c @@ -1310,11 +1310,11 @@ void pit_run_file(pit_runtime *rt, char *path) { if (pit_runtime_print_error(rt)) exit(1); pit_eval(rt, p); if (pit_runtime_print_error(rt)) exit(1); - // pit_collect_garbage(rt); + pit_collect_garbage(rt); if (pit_runtime_print_error(rt)) exit(1); } if (pit_runtime_print_error(rt)) exit(1); - fprintf(stderr, "value allocations: %ld\n", rt->values->next); + fprintf(stderr, "value allocs at exit: %ld\n", rt->values->next); } void pit_repl(pit_runtime *rt) { |
