diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-09-08 07:03:31 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-09-08 07:03:31 -0700 |
commit | 4775f0d69ff6d71332d0508986c62ccc5ab7366a (patch) | |
tree | bde074e8c1493e4440703558240e92c9a7eb1e77 /txr.c | |
parent | 049d706978ccff755ac717456772d4d6a6c0b77f (diff) | |
download | txr-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.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -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); |