summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-03-12 00:34:10 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-03-12 00:34:10 -0700
commit5bf88f48fe8233955b3346ccea14f8e3fae38286 (patch)
treeda9adbd5427b8e69e2ace69794f64fe4e1e4b494 /lib.h
parent5382f4a6aa4a38c5f2f229f79bee55dfcb3843fc (diff)
downloadtxr-5bf88f48fe8233955b3346ccea14f8e3fae38286.tar.gz
txr-5bf88f48fe8233955b3346ccea14f8e3fae38286.tar.bz2
txr-5bf88f48fe8233955b3346ccea14f8e3fae38286.zip
* eval.c (plus_s, prof_s): New symbol global variables.
(op_prof, me_pprof): New static functions. (eval_init): Intern prof symbol, store in prof_s. Captured interned + symbol in plus_s. Register prof operator and pprof macro. * gc.c (gc_bytes): New global variable. (more): Use nse function chk_malloc_gc_more instead of chk_malloc. (make_obj): Increment gc_bytes. * lib.c (malloc_bytes): New global variable. (chk_malloc, chk_realloc): Increment malloc_bytes. (chk_calloc): Bugfix: incorrect size in recursion into oom_realloc. Incorrect calculation of malloc_high_bound. Increment malloc_bytes. (chk_malloc_gc_more): New function. * lib.h (alloc_bytes_t): New typedef. (malloc_bytes, gc_bytes): Declared. (chk_malloc_gc_more): Declared. * stream.c (format_s): New symbol global. (stream_init): format_s inited. format_s used to register formatv function. * stream.h (format_s): Declared. * txr.1: Documented prof and pprof. * genvim.txr: Recognize reg_fun calls with intern followed by a preceding assignment or other syntax. * txr.vim: Updated.
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib.h b/lib.h
index c1524891..5d7c694c 100644
--- a/lib.h
+++ b/lib.h
@@ -358,6 +358,15 @@ extern val prog_string;
extern mem_t *(*oom_realloc)(mem_t *, size_t);
+#if HAVE_ULONGLONG_T
+typedef ulonglong_t alloc_bytes_t;
+#else
+typedef unsigned long alloc_bytes_t;
+#endif
+
+extern alloc_bytes_t malloc_bytes;
+extern alloc_bytes_t gc_bytes;
+
val identity(val obj);
val typeof(val obj);
val type_check(val obj, int);
@@ -426,6 +435,7 @@ val none_satisfy(val list, val pred, val key);
val eql(val left, val right);
val equal(val left, val right);
mem_t *chk_malloc(size_t size);
+mem_t *chk_malloc_gc_more(size_t size);
mem_t *chk_calloc(size_t n, size_t size);
mem_t *chk_realloc(mem_t *, size_t size);
int in_malloc_range(mem_t *);