I think the new CFFI with cffi-fsbv is ready to be tested, even by those not needing to call or return foreign structures by value. You can checkout the cffi-fsbv branch after cloning. There are two things to keep in mind: one is to call structures by reference either with :pointer or (:pointer (:struct foo)), as using the structure name alone will result in a style warning. The second is that expand-to-foreign-dyn now has a keyword argument, so methods should have &key.<br>
<br>I asked Zach to test compling/loading all of the current quicklisp dist with this branch. There were a few failures:<br>1) inotify failed because iolib is out of sync with this branch of CFFI (changes independent of fsbv).<br>
2) lispmagick failed because this branch of CFFI didn't have an ASDF version number, so I gave it version number 1.0.0 :-). There remains a failure with TRANSLATE-INTO-FOREIGN-MEMORY on #<CFFI::FOREIGN-STRING-TYPE :UTF-8> which I don't understand.<br>
3) fnv and blapack loads fine for me (apart from <a href="https://github.com/blindglobe/cl-blapack/issues/1" target="_blank">a path issue</a>); Zach gets warning/errors on defining keyword types :complex-double and :complex-float.<br>
4) devil needs to have &key in the arglist for expand-to-foreign-dyn as explained.<br>
5) blackthorn fails to load for Zach but I tried a few systems (blackthorn, blackthorn-stress-test, thopter) and they all load fine. His errors are all like this:<br> Derived type of #:G331 is (VALUES SB-SYS:SYSTEM-AREA-POINTER &OPTIONAL), conflicting with its asserted type (UNSIGNED-BYTE 32).<br>
<br>I have not pulled master into this branch, so it's a few commits behind. Post here on how things look for you, good or bad.<br><br>Liam<br>