summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-05 17:53:15 -0700
committerKeith Packard <keithp@keithp.com>2016-11-17 22:18:39 -0800
commit954bc72d5822e0f5666e80764e798c10b1eb541d (patch)
tree05494f228e6c06779ed118a91cba727fae83860f /src/lisp/ao_lisp.h
parent546e58b0a868662271553a15f2b1c1a8ea317582 (diff)
altos/lisp: more GC issues. add patom
Use global ao_lisp_stack instead of local stack so that gc moves of that item work. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp.h')
-rw-r--r--src/lisp/ao_lisp.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lisp/ao_lisp.h b/src/lisp/ao_lisp.h
index 27174e13..0d179942 100644
--- a/src/lisp/ao_lisp.h
+++ b/src/lisp/ao_lisp.h
@@ -173,6 +173,7 @@ enum ao_lisp_builtin_id {
builtin_setq,
builtin_cond,
builtin_print,
+ builtin_patom,
builtin_plus,
builtin_minus,
builtin_times,
@@ -331,6 +332,9 @@ ao_lisp_cons_cons(ao_poly car, struct ao_lisp_cons *cdr);
void
ao_lisp_cons_print(ao_poly);
+void
+ao_lisp_cons_patom(ao_poly);
+
/* string */
extern const struct ao_lisp_type ao_lisp_string_type;
@@ -346,6 +350,9 @@ ao_lisp_string_cat(char *a, char *b);
void
ao_lisp_string_print(ao_poly s);
+void
+ao_lisp_string_patom(ao_poly s);
+
/* atom */
extern const struct ao_lisp_type ao_lisp_atom_type;
@@ -370,9 +377,12 @@ void
ao_lisp_int_print(ao_poly i);
/* prim */
-ao_poly
+void
ao_lisp_poly_print(ao_poly p);
+void
+ao_lisp_poly_patom(ao_poly p);
+
int
ao_lisp_poly_mark(ao_poly p);