[cffi-devel] slot paths and foreign-slot-value

Rick Taube taube at uiuc.edu
Sat Oct 22 14:28:32 UTC 2005


hello, cffi is really great and im trying to move my program to it. my 
problem: foreign-slot-value indicates that i should be able to provide 
a  "slot path":
	foreign-slot-value ptr type &rest slot-names => object
however the definition of the function (cffi-luis-051011-1339) 
apparently only allows one slot:

 > Error in process listener(1): Extra arguments in (FOREIGN-SLOT-VALUE 
E 'TMIDI-EV 'INFO 'NOTE 'PITCH) don't match lambda list (CFFI::PTR TYPE 
CFFI::SLOT-NAME).
 > While executing: CCL::%CHECK-EXTRA-ARGUMENTS
 > Type :POP to abort.
Type :? for other options.
1 >

I searchd the mail list but didnt see a discussion of this, are "slot 
paths" supported some other way that im not seeing, or do you intend to 
add it? Ive got lots of functions like this to deal with:

(defun pitch (e &optional v)
   "read or set the pitch of an event"
   (if v
     (setf (cffi:foreign-slot-value e 'tmidi-ev 'info 'note 'pitch) v)
     (cffi:foreign-slot-value e 'tmidi-ev 'info 'note 'pitch)))


also, i was suprised that you dont push :cffi  onto *features* when 
cffi is loaded -- i think this would be useful for client programs to 
adjust their compile/loading accordingly, is there some reason yhou 
dont do this?


Rick Taube
Associate Professor, Composition/Theory
School of Music
University of Illinois, Urbana IL 61821 USA
Net: taube at uiuc
Fax: 217 244 8319
Vox: 217 244 2684




More information about the cffi-devel mailing list