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>
Fri, 18 Nov 2016 06:18:39 +0000 (22:18 -0800)
commitb97b9f8199d1f65d2304b035c4f99b5a1c76f61b
treedf65524df6271dde7107a32c6a3db93dd603f879
parent954bc72d5822e0f5666e80764e798c10b1eb541d
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