ref: 04d8c503113e00b81643a2b99ae1266b63f81a6c
parent: 65795c1b052e87a3d14ad1580f6de0c30ea59010
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu Mar 20 03:46:44 EDT 2025
vm-stats: print to *io-out*
--- a/src/io.c
+++ b/src/io.c
@@ -6,7 +6,8 @@
#include "io.h"
static sl_v sl_linesym, sl_blocksym, sl_memorysym, sl_nonesym;
-static sl_v sl_ioinsym, sl_iooutsym;
+static sl_v sl_ioinsym;
+sl_v sl_iooutsym;
sl_type *sl_iotype;
static void
--- a/src/io.h
+++ b/src/io.h
@@ -2,4 +2,5 @@
bool isio(sl_v v) sl_purefn;
sl_v io_to_str(sl_v *ps);
void io_init(void);
+extern sl_v sl_iooutsym;
extern sl_type *sl_iotype;
--- a/src/sl.c
+++ b/src/sl.c
@@ -1186,15 +1186,16 @@
{
USED(args);
argcount(nargs, 0);
- ios_printf(ios_stderr, "heap total %10"PRIuPTR" bytes\n", slg.heapsize);
- ios_printf(ios_stderr, "heap free %10"PRIuPTR" bytes\n", (uintptr)(slg.lim-slg.curheap));
- ios_printf(ios_stderr, "heap used %10"PRIuPTR" bytes\n", (uintptr)(slg.curheap-slg.fromspace));
- ios_printf(ios_stderr, "stack %10"PRIu64" bytes\n", (u64int)sl.nstack*sizeof(sl_v));
- ios_printf(ios_stderr, "finalizers %10"PRIu32"\n", (u32int)slg.nfinalizers);
- ios_printf(ios_stderr, "max finalizers %10"PRIu32"\n", (u32int)slg.maxfinalizers);
- ios_printf(ios_stderr, "gc handles %10"PRIu32"\n", (u32int)slg.ngchandles);
- ios_printf(ios_stderr, "gc calls %10"PRIu64"\n", (u64int)slg.gccalls);
- ios_printf(ios_stderr, "opcodes %10d\n", N_OPCODES);
+ sl_ios *io = toio(sym_value(sl_iooutsym));
+ ios_printf(io, "heap total %10"PRIuPTR" bytes\n", slg.heapsize);
+ ios_printf(io, "heap free %10"PRIuPTR" bytes\n", (uintptr)(slg.lim-slg.curheap));
+ ios_printf(io, "heap used %10"PRIuPTR" bytes\n", (uintptr)(slg.curheap-slg.fromspace));
+ ios_printf(io, "stack %10"PRIu64" bytes\n", (u64int)sl.nstack*sizeof(sl_v));
+ ios_printf(io, "finalizers %10"PRIu32"\n", (u32int)slg.nfinalizers);
+ ios_printf(io, "max finalizers %10"PRIu32"\n", (u32int)slg.maxfinalizers);
+ ios_printf(io, "gc handles %10"PRIu32"\n", (u32int)slg.ngchandles);
+ ios_printf(io, "gc calls %10"PRIu64"\n", (u64int)slg.gccalls);
+ ios_printf(io, "opcodes %10d\n", N_OPCODES);
return sl_void;
}