altos/lisp: convert GC to non-recursive
authorKeith Packard <keithp@keithp.com>
Sun, 6 Nov 2016 18:53:46 +0000 (10:53 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 20 Feb 2017 19:16:50 +0000 (11:16 -0800)
commit6e5c1308ce33a864095eae02e7db18b0e043ab6e
tree3b77c2de9f95b73a39a63533000898196c855c7c
parentd8cf97fe22acefab40d7bb321138e46d4483fef7
altos/lisp: convert GC to non-recursive

Use a boolean array to note cons cells which would otherwise recurse,
then loop until that array is empty.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/lisp/ao_lisp.h
src/lisp/ao_lisp_atom.c
src/lisp/ao_lisp_cons.c
src/lisp/ao_lisp_eval.c
src/lisp/ao_lisp_frame.c
src/lisp/ao_lisp_mem.c
src/lisp/ao_lisp_prim.c