summaryrefslogtreecommitdiffstats
path: root/txr.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-09-08 07:03:31 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-09-08 07:03:31 -0700
commit4775f0d69ff6d71332d0508986c62ccc5ab7366a (patch)
treebde074e8c1493e4440703558240e92c9a7eb1e77 /txr.c
parent049d706978ccff755ac717456772d4d6a6c0b77f (diff)
downloadtxr-4775f0d69ff6d71332d0508986c62ccc5ab7366a.tar.gz
txr-4775f0d69ff6d71332d0508986c62ccc5ab7366a.tar.bz2
txr-4775f0d69ff6d71332d0508986c62ccc5ab7366a.zip
* gc.c (MALLOC_DELTA_THRESH): Macro remaned to DFL_MALLOC_DELTA_THRESH.
(opt_gc_delta): New global variable. (make_obj): Use opt_gc_delta rather than MALLOC_DELTA_THRESH. (gc_set_delta, gc_wrap): New static functions. (gc_late_init): New function. * gc.h (gc_late_init): Declared. * genvim.txr: scan gc.c also. * lib.c (init): call gc_late_init. * txr.1: Document new --gc-delta option and the functions gc and gc-set-delta. * txr.c (help): Help text for --gc-delta. (txr_main): Parse --gc-delta option. * txr.h (opt_gc_delta): Declared.
Diffstat (limited to 'txr.c')
-rw-r--r--txr.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/txr.c b/txr.c
index a2bb9dd2..b9239d9c 100644
--- a/txr.c
+++ b/txr.c
@@ -129,6 +129,8 @@ static void help(void)
" section at the bottom of the license.\n"
"--lisp-bindings Synonym for -l\n"
"--debugger Synonym for -d\n"
+"--gc-delta=N Invoke garbage collection when malloc activity\n"
+" increments by N megabytes since last collection.\n"
"\n"
"Options that take no argument can be combined. The -q and -v options\n"
"are mutually exclusive; the right-most one dominates.\n"
@@ -356,6 +358,13 @@ int txr_main(int argc, char **argv)
continue;
}
+ if (match_str(arg, lit("--gc-delta="), zero)) {
+ val megs = mul(int_str(sub(arg, num_fast(11), t), num_fast(10)),
+ num_fast(1048576));
+ opt_gc_delta = c_num(megs);
+ continue;
+ }
+
if (equal(arg, lit("--version"))) {
format(std_output, lit("~a: version ~a\n"),
prog_string, auto_str(version), nao);