CFFI 0.10.0 released!

It's been a while since CFFI's previous release, almost two years. During this period, a lot of development work happened and lots of cool new features were implemented. Here's a brief highlight of some of the important changes:

  • foreign string encodings using Babel. UTF-8 becomes the default encoding for foreign strings.
  • improved foreign type system that takes better advantage of CLOS features.
  • emulated :long-long types on Lisps whose native FFI doesn't support these types.
  • integrated a groveller inspired by SBCL's sb-grovel.
  • support for the stdcall calling convention.
  • removed finalizer-related code in favour of trivial-garbage.
  • function and variable lookups can now be linked to a specific foreign library instead of assuming a global namespace.
  • the cffi-features package has been deprecated in favour of trivial-features. CFFI-specific features are now interned in the CFFI-SYS package.
  • dozens of bug fixes and minor enhancements.

The long hiatus between releases caused all sorts of problems and confusions. Hopefully that won't happen again and you'll see more frequent CFFI releases in the future.