uffi/src objects.lisp,1.18,1.19 primitives.lisp,1.11,1.12
"Kevin M. Rosenberg" <[email protected]> Fri, 15 Aug 2003 02:34:36 +0000
| Newsgroups | gmane.lisp.uffi.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /pubcvs/uffi/src
In directory boa.b9.com:/tmp/cvs-serv27219/src
Modified Files:
objects.lisp primitives.lisp
Log Message:
Index: primitives.lisp
===================================================================
RCS file: /pubcvs/uffi/src/primitives.lisp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** primitives.lisp 14 Aug 2003 21:58:29 -0000 1.11
--- primitives.lisp 15 Aug 2003 02:34:34 -0000 1.12
***************
*** 86,91 ****
#+(or cmu sbcl scl) (defvar *cmu-def-type-hash*
(make-hash-table :size 20 :test #'eq))
- #+allegro (defvar *allegro-foreign-type-hash*
- (make-hash-table :size 20 :test #'eq))
)
--- 86,89 ----
***************
*** 224,244 ****
(:array . :array)))
- #+allegro
- (defvar *allegro-foreign-type-list*
- '((:char . :signed-byte)
- (:unsigned-char . :unsigned-byte)
- (:byte . :signed-byte)
- (:unsigned-byte . :unsigned-byte)
- (:short . :signed-word)
- (:unsigned-short . :unsigned-word)
- (:int . :signed-long)
- (:unsigned-int . :unsigned-long32)
- (:long . :signed-long)
- (:unsigned-long . :unsigned-long)
- (:float . :single-float)
- (:double . :double-float)
- )
- "Conversion for Allegro's system:memref function")
-
(dolist (type *type-conversion-list*)
(setf (gethash (car type) +type-conversion-hash+) (cdr type)))
--- 222,225 ----
***************
*** 248,259 ****
(setf (gethash (car type) *cmu-def-type-hash*) (cdr type)))
- #+allegro
- (dolist (type *allegro-foreign-type-list*)
- (setf (gethash (car type) *allegro-foreign-type-hash*) (cdr type)))
-
- (defun foreign-var-type-convert (type)
- #+allegro (gethash type *allegro-foreign-type-hash*))
-
-
(defun basic-convert-from-uffi-type (type)
(let ((found-type (gethash type +type-conversion-hash+)))
--- 229,232 ----
***************
*** 283,289 ****
#+(and mcl (not openmcl))
((and (eq type :void) (eq context :return)) nil)
- #+allegro
- ((eq context :foreign-var)
- (foreign-var-type-convert type))
(t
(basic-convert-from-uffi-type type)))
--- 256,259 ----
Index: objects.lisp
===================================================================
RCS file: /pubcvs/uffi/src/objects.lisp,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** objects.lisp 14 Aug 2003 21:58:29 -0000 1.18
--- objects.lisp 15 Aug 2003 02:34:34 -0000 1.19
***************
*** 233,237 ****
(let ((foreign-name (if (atom names) names (first names)))
(lisp-name (if (atom names) (make-lisp-name names) (second names)))
! (var-type (convert-from-uffi-type type :foreign-var)))
#+(or cmu scl)
`(alien:def-alien-variable (,foreign-name ,lisp-name) ,var-type)
--- 233,238 ----
(let ((foreign-name (if (atom names) names (first names)))
(lisp-name (if (atom names) (make-lisp-name names) (second names)))
! #-allegro
! (var-type (convert-from-uffi-type type :type)))
#+(or cmu scl)
`(alien:def-alien-variable (,foreign-name ,lisp-name) ,var-type)
***************
*** 239,249 ****
`(sb-alien:define-alien-variable (,foreign-name ,lisp-name) ,var-type)
#+allegro
! `(ff:def-foreign-variable (,lisp-name ,foreign-name) :convention :c
! :type ,var-type)
#+lispworks
(let ((temp-name (gensym)))
`(progn
! (fli:define-foreign-variable (,temp-name ,foreign-name) :type ,var-type :module ,module)
! (define-symbol-macro ,lisp-name (,temp-name))))
#-(or allegro cmu scl sbcl lispworks)
`(define-symbol-macro ,lisp-name
--- 240,255 ----
`(sb-alien:define-alien-variable (,foreign-name ,lisp-name) ,var-type)
#+allegro
! `(define-symbol-macro ,lisp-name
! (ff:fslot-value-typed (quote ,(convert-from-uffi-type type :deref))
! :c (ff:get-entry-point ,foreign-name)))
#+lispworks
(let ((temp-name (gensym)))
`(progn
! (fli:define-foreign-variable (,temp-name ,foreign-name)
! :accessor :address-of
! :type ,var-type
! :module ,module)
! (define-symbol-macro ,lisp-name (fli:dereference (,temp-name)
! :copy-foreign-object nil))))
#-(or allegro cmu scl sbcl lispworks)
`(define-symbol-macro ,lisp-name