diff options
author | Brian Templeton <bpt@hcoop.net> | 2010-08-16 03:20:55 -0400 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-12-07 13:21:03 +0100 |
commit | c6920dc8bae4546ffeb250570d7abc8ace9ce91c (patch) | |
tree | cfa2110a9d272b6ca1a1ca26ad372f6a4f006649 /module/language/elisp/runtime/subrs.scm | |
parent | 3f70b2dc5c33073b6f24078bc1fc1d6bdcd3b03f (diff) | |
download | guile-c6920dc8bae4546ffeb250570d7abc8ace9ce91c.tar.gz |
lexical function binding for elisp
* module/language/elisp/compile-tree-il.scm (access-variable)
(reference-variable, set-variable!): Handle globally-bound non-special
variables.
(bind-lexically?): Create lexical bindings for flet and flet*.
* module/language/elisp/runtime.scm (reference-variable, set-variable!):
Handle globally-bound non-special variables.
(built-in-func): Set the variable directly instead of storing the
function in a fluid.
* module/language/elisp/runtime/subrs.scm (funcall): Call apply
directly.
* test-suite/tests/elisp-compiler.test ("Function Definitions")["flet
and flet*"]:
Signed-off-by: Andy Wingo <wingo@pobox.com>
Diffstat (limited to 'module/language/elisp/runtime/subrs.scm')
-rw-r--r-- | module/language/elisp/runtime/subrs.scm | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/module/language/elisp/runtime/subrs.scm b/module/language/elisp/runtime/subrs.scm index 10e264df6..b03a510a1 100644 --- a/module/language/elisp/runtime/subrs.scm +++ b/module/language/elisp/runtime/subrs.scm @@ -358,9 +358,8 @@ (prim apply (@ (guile) apply) real-func args)))) (built-in-func funcall - (let ((myapply (fluid-ref apply))) - (lambda (func . args) - (myapply func args)))) + (lambda (func . args) + (apply func args))) ;;; Throw can be implemented as built-in function. |