summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBT Templeton <bt@hcoop.net>2013-08-23 03:01:36 -0400
committerRicardo Wurmus <rekado@elephly.net>2020-04-04 16:19:53 +0200
commit22e192637252a839ad370ceb88839d0250740f54 (patch)
treef031b499f984170a278ba19105649efafeffb799
parent8d209d56c34ca8ecb0cc9c8487fdd8cbcfa9bae4 (diff)
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 0334e6f33..5d6ebc591 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
@@ -670,6 +671,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 3b10205c1..34170a5d0 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