cwebber pushed a commit to branch wip-elisp-rebased
in repository guile.
commit a33aea889218146a178475a03860dc398a0f58eb
Author: BT Templeton <[email protected]>
AuthorDate: Fri Aug 23 03:01:36 2013 -0400
guile-private-ref
* module/language/elisp/compile-tree-il.scm (compile-guile-private-ref):
New special operator.
---
module/language/elisp/compile-tree-il.scm | 6 ++++++
module/language/elisp/runtime/function-slot.scm | 2 ++
2 files changed, 8 insertions(+)
diff --git a/module/language/elisp/compile-tree-il.scm
b/module/language/elisp/compile-tree-il.scm
index adbeb20..8216b63 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -42,6 +42,7 @@
compile-labels
compile-let*
compile-guile-ref
+ compile-guile-private-ref
compile-guile-primitive
compile-function
compile-defmacro
@@ -671,6 +672,11 @@
((,module ,sym) (guard (and (list? module) (symbol? sym)))
(make-module-ref loc module sym #t))))
+(defspecial guile-private-ref (loc args)
+ (pmatch args
+ ((,module ,sym) (guard (and (list? module) (symbol? sym)))
+ (make-module-ref loc module sym #f))))
+
;;; guile-primitive allows to create primitive references, which are
;;; still a little faster.
diff --git a/module/language/elisp/runtime/function-slot.scm
b/module/language/elisp/runtime/function-slot.scm
index 5e5f625..be229d0 100644
--- a/module/language/elisp/runtime/function-slot.scm
+++ b/module/language/elisp/runtime/function-slot.scm
@@ -30,6 +30,7 @@
(compile-labels . labels)
(compile-let* . let*)
(compile-guile-ref . guile-ref)
+ (compile-guile-private-ref . guile-private-ref)
(compile-guile-primitive . guile-primitive)
(compile-function . function)
(compile-defun . defun)
@@ -52,6 +53,7 @@
labels
let*
guile-ref
+ guile-private-ref
guile-primitive
function
defun