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.
I asked Zach to test compling/loading all of the current quicklisp dist with this branch. There were a few failures: 1) inotify failed because iolib is out of sync with this branch of CFFI (changes independent of fsbv). 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. 3) fnv and blapack loads fine for me (apart from a path issuehttps://github.com/blindglobe/cl-blapack/issues/1); Zach gets warning/errors on defining keyword types :complex-double and :complex-float. 4) devil needs to have &key in the arglist for expand-to-foreign-dyn as explained. 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: Derived type of #:G331 is (VALUES SB-SYS:SYSTEM-AREA-POINTER &OPTIONAL), conflicting with its asserted type (UNSIGNED-BYTE 32).
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.
Liam