X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Ffunctions.lisp;h=f23ec8f6163de4f38f06083c5233ca952105a90b;hb=caf4972e7f7d2562fe4a9977cf20d38bbf0e320f;hp=ad8aca4382a2ff8b7091b9606b63a83bc931789f;hpb=7200c59d939a9607aa520c1f9332c174ba7e12bd;p=uffi.git diff --git a/src/functions.lisp b/src/functions.lisp index ad8aca4..f23ec8f 100644 --- a/src/functions.lisp +++ b/src/functions.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: functions.lisp,v 1.4 2002/10/14 03:07:41 kevin Exp $ +;;;; $Id: functions.lisp,v 1.5 2002/10/16 11:56:43 kevin Exp $ ;;;; ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -21,12 +21,12 @@ (defun process-function-args (args) (if (null args) - #+(or lispworks cmu sbcl cormanlisp (and mcl (not openmcl))) nil + #+(or lispworks cmu sbcl scl cormanlisp (and mcl (not openmcl))) nil #+allegro '(:void) #+mcl (values nil nil) ;; args not null - #+(or lispworks allegro cmu sbcl (and mcl (not openmcl)) cormanlisp) + #+(or lispworks allegro cmu sbcl scl (and mcl (not openmcl)) cormanlisp) (let (processed) (dolist (arg args) (push (process-one-function-arg arg) processed)) @@ -49,7 +49,7 @@ (defun process-one-function-arg (arg) (let ((name (car arg)) (type (convert-from-uffi-type (cadr arg) :routine))) - #+(or cmu sbcl) + #+(or cmu sbcl scl) (list name type :in) #+(or allegro lispworks (and mcl (not openmcl))) (if (and (listp type) (listp (car type))) @@ -66,7 +66,7 @@ ;; name is either a string representing foreign name, or a list ;; of foreign-name as a string and lisp name as a symbol (defmacro def-function (names args &key module returning) - #+(or cmu sbcl allegro mcl cormanlisp) (declare (ignore module)) + #+(or cmu sbcl scl allegro mcl cormanlisp) (declare (ignore module)) (let* ((result-type (convert-from-uffi-type returning :return)) (function-args (process-function-args args)) @@ -80,7 +80,7 @@ :returning ,(allegro-convert-return-type result-type) :call-direct t :strings-convert nil) - #+cmu + #+(or cmu scl) `(alien:def-alien-routine (,foreign-name ,lisp-name) ,result-type ,@function-args)