Export Lisp -> C++ API.
Mon May 11 16:11:35 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Export Lisp -> C++ API.
diff -rN -u old-smoke/src/overload-resolution.lisp new-smoke/src/overload-resolution.lisp
--- old-smoke/src/overload-resolution.lisp 2014-09-30 10:26:25.000000000 +0200
+++ new-smoke/src/overload-resolution.lisp 2014-09-30 10:26:25.000000000 +0200
@@ -290,6 +290,8 @@
(defmacro define-from-lisp-translation (type-names lisp-type
&optional
(conversion-function-name 'identity))
+ "Defines a translation from LISP-TYPE to the C++ types TYPE-NAMES using
+the function CONVERSION-FUNCTION-NAME."
`(progn ,@(loop for type-name in (ensure-list type-names)
collect `(setf (gethash ,type-name *from-lisp-translations*)
#'(lambda (type)
@@ -309,10 +311,8 @@
`(signed-byte ,bits))))
-;(defun exact-match-using-type (object-type type)
(defun+using-type exact-match object (object type)
"Test for an exact match."
- ;(declare (values boolean))
(case (type-id type)
(0
(when-let (test (gethash (name type) *from-lisp-translations*))
@@ -332,6 +332,7 @@
(defun make-cleanup-pointer (pointer cleanup-function)
+ "Returns a pointer that calls CLEANUP-FUNCTION when it is finalized."
(let ((address (pointer-address pointer)))
(tg:finalize pointer #'(lambda ()
(funcall cleanup-function
diff -rN -u old-smoke/src/package.lisp new-smoke/src/package.lisp
--- old-smoke/src/package.lisp 2014-09-30 10:26:25.000000000 +0200
+++ new-smoke/src/package.lisp 2014-09-30 10:26:25.000000000 +0200
@@ -29,6 +29,9 @@
#:cxx-bool
+ #:define-from-lisp-translation
+ #:make-cleanup-pointer
+
#:pointer))
(defpackage #:cxx