summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_builtin.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-18 19:04:05 -0800
committerKeith Packard <keithp@keithp.com>2016-11-18 19:04:05 -0800
commit8bf6b8989a4f365467fae38a03570d277f362ac2 (patch)
tree532854789ec9cd815c5ae443bf80dd64f437a64c /src/lisp/ao_lisp_builtin.c
parent498f1e8fd2bfdee5069508ef8fa570f944883011 (diff)
altos/lisp: Add continuations
This provides call/cc and makes 'stacks' visible to the application. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_builtin.c')
-rw-r--r--src/lisp/ao_lisp_builtin.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lisp/ao_lisp_builtin.c b/src/lisp/ao_lisp_builtin.c
index 6cbcb92c..4c845307 100644
--- a/src/lisp/ao_lisp_builtin.c
+++ b/src/lisp/ao_lisp_builtin.c
@@ -86,6 +86,7 @@ static const ao_poly builtin_names[] = {
[builtin_led] = _ao_lisp_atom_led,
[builtin_save] = _ao_lisp_atom_save,
[builtin_restore] = _ao_lisp_atom_restore,
+ [builtin_call_cc] = _ao_lisp_atom_call2fcc,
};
@@ -117,9 +118,7 @@ void
ao_lisp_builtin_print(ao_poly b)
{
struct ao_lisp_builtin *builtin = ao_lisp_poly_builtin(b);
- printf("[builtin %s %s]",
- ao_lisp_args_name(builtin->args),
- ao_lisp_builtin_name(builtin->func));
+ printf("%s", ao_lisp_builtin_name(builtin->func));
}
ao_poly
@@ -599,5 +598,6 @@ const ao_lisp_func_t ao_lisp_builtins[] = {
[builtin_delay] = ao_lisp_delay,
[builtin_save] = ao_lisp_save,
[builtin_restore] = ao_lisp_restore,
+ [builtin_call_cc] = ao_lisp_call_cc,
};