summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Templeton <robin@terpri.org>2013-08-23 03:01:36 -0400
committerChristine Lemmer-Webber <cwebber@dustycloud.org>2021-10-19 18:10:02 -0400
commit12a9311f17f6eb30074a6cd7db26283396fc53d4 (patch)
tree5a705765b886953f684b8317cebc7b0d868e047c
parent433fc448ddb018767906f8808203c9668c68cd83 (diff)
downloadguile-12a9311f17f6eb30074a6cd7db26283396fc53d4.tar.gz
guile-private-ref
* module/language/elisp/compile-tree-il.scm (compile-guile-private-ref): New special operator.
-rw-r--r--module/language/elisp/compile-tree-il.scm6
-rw-r--r--module/language/elisp/runtime/function-slot.scm2
2 files changed, 8 insertions, 0 deletions
diff --git a/module/language/elisp/compile-tree-il.scm b/module/language/elisp/compile-tree-il.scm
index adbeb2005..8216b6376 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 5e5f625e4..be229d0f3 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