summaryrefslogtreecommitdiffstats
path: root/vm.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-11-13 20:45:10 -0800
committerKaz Kylheku <kaz@kylheku.com>2018-11-13 20:45:10 -0800
commit8e2aef8f2b466b37753ba0acd4bd668ff54b3669 (patch)
tree54380c2dc9a0565f9fdc25349a68552094d1e785 /vm.h
parent156004248adbb220505567309dfb1fc22f7ab5e4 (diff)
downloadtxr-8e2aef8f2b466b37753ba0acd4bd668ff54b3669.tar.gz
txr-8e2aef8f2b466b37753ba0acd4bd668ff54b3669.tar.bz2
txr-8e2aef8f2b466b37753ba0acd4bd668ff54b3669.zip
copy-fun: duplicate a function, with own environment.
* eval.c (deep_copy_env): New function. (eval_init): Register copy-fun intrinsic. * eval.h (deep_copy_env): Declared. * lib.c (copy_fun): New function. * lib.h (copy_fun): Declared. * vm.c (vm_copy_closure): New function. * vm.h (vm_copy_closure): Declared. * txr.1: Documented copy-fun.
Diffstat (limited to 'vm.h')
-rw-r--r--vm.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/vm.h b/vm.h
index 30720d0d..e39b115f 100644
--- a/vm.h
+++ b/vm.h
@@ -30,6 +30,7 @@ extern val vm_desc_s, vm_closure_s;
val vm_make_desc(val nlevels, val nregs, val bytecode,
val datavec, val funvec);
val vm_execute_toplevel(val desc);
+val vm_copy_closure(val closure);
val vm_execute_closure(val fun, struct args *);
void vm_invalidate_binding(val sym);
void vm_init(void);