summaryrefslogtreecommitdiff
path: root/Lisp/lisp-value-wrapping.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-03-03 14:41:46 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-03-03 14:41:46 +0100
commit6d49416ea57646f433af1cfbe19a4d7739527146 (patch)
tree47ea098c35f9754da3f302d30059a52a193160e5 /Lisp/lisp-value-wrapping.lisp
parent7b99d095f3484f51f9a08063f873a58959689940 (diff)
Add stub for INTERN-LISP-VALUE.
darcs-hash:42953a98356841268108071d3d0ec701e8514bf1
Diffstat (limited to 'Lisp/lisp-value-wrapping.lisp')
-rw-r--r--Lisp/lisp-value-wrapping.lisp14
1 files changed, 14 insertions, 0 deletions
diff --git a/Lisp/lisp-value-wrapping.lisp b/Lisp/lisp-value-wrapping.lisp
index cfe1603..8eda55c 100644
--- a/Lisp/lisp-value-wrapping.lisp
+++ b/Lisp/lisp-value-wrapping.lisp
@@ -39,6 +39,20 @@
(:metaclass ns::+ns-object))
+(defun intern-lisp-value (value)
+ ;; We need this function in order to preserve object identity on the
+ ;; Objective-C side. As we want [(intern-lisp-value 10) self] to
+ ;; return the FIXNUM 10, that is, a Lisp value rather than an
+ ;; Objective-C instance, we cannot guarantee that
+ ;;
+ ;; (let ((x (intern-lisp-value y)))
+ ;; (objc-eql x (invoke x 'self)))
+ ;;
+ ;; will evaluate to true unless we generally intern Lisp value
+ ;; wrappers.
+ (error "FIXME"))
+
+
(defun make-lisp-value (value)
;; FIXME: The following won't work. Make MAKE-INSTANCE more useful...
;(make-instance 'ns::mlk-lisp-value :value value)