Turns out Quicklisp doesn't yet ship with ASDF3, and it's not too hard to support both anyway.
Reported by Philipp Marek.
The special variable *JNA-STRING-ENCODING* now contains the parameter used in the underlying Java constructor for function pointers that specifies the encoding between Java and native strings. Usage of CFFI with jna-3.5.1 or earlier ignores this variable.
Update cffi-uffi-compat to prevent deprecation warnings
Now that Quicklisp carries ASDF3, there's no point in supporting ASDF2 any more
These features are already supported by constantenum definitions, we just make them available for bitfields.
When loading cffi-libffi on LispWorks 6.1.1 64-bit on OS X, the library is not found. By default OS X searches for library by their full path (see dyld), and libffi is a standard component of the OS, so the full path should be given.
* Remove suggestion of C++ support in CFFI. It probably referred to the Verrazano project. There are currently no plans to support C++ in CFFI. * cffi-grovel has been integrated into CFFI. * Make it slightly easier to run the tutorial code on MacOS X.
Every argument to libffi is dereferenced before being passed to the function, including pointers. For strings to be correctly passed, an additional level of indirection is needed. This fixes the need to use the "address of" operator `&' in the C function for strings passed to foreign functions that also take structures by value.
Add expand-to-foreign-dyn-indirect method for foreign-string-type that does not require a convert-into-foreign-memory method. Add test FSBV.7 to call a function with a string and a structure-by-value argument. Previously, calling such functions would trigger an error about the missing convert-into-foreign-memory method.
Remove superfluous cffi:, cffi:: prefix. It is a remnant of the long-gone days when the libffi code was in a separate package; since it was put in the cffi package, the package prefix is not necessary.
Extend with-foreign-slots so that if the var (slot) is specified as (:pointer name) it will return the slot pointer instead of the value. Based on a suggested macro of Chris Bagley, but there is no need to make a new macro, as the new with-foreign-slots is backward compatible with the old.
(And to appease SBCL.)
Fixes tests for CALLBACKS.CHAR, CALLBACKS.UNSIGNED-CHAR, CALLBACKS.SHORT, CALLBACKS.UNSIGNED-SHORT.
Fixes the bug that modifying a grovel-file or a wrapper-file caused the auto-generated lisp file to just get recompiled without being re-generated.
It's still a bit oriented towards the CFFI developer, rather than potential users, but at least it doesn't revolve around a comparison against UFFI which is not as relevant as it once was.