Luís Oliveira edited this page Jun 26, 2017 · 34 revisions

Version 0.19.0

Released on June 27th, 2017.

  • new feature: a new CFFI-SYS backend for Clasp has been added, courtesy of Frank Gröninger.
  • enhancement: cffi/c2ffi now handles anonymous enums properly, properly parses double float constants and has a new facility, callback-factory, that allows users to customize form generation. (Thanks to Chris Bagley.)
  • enhancement: various improvements to cffi-toolchain. (Thanks to François-René Rideau.)
  • bugfix: foreign library alternatives are now searched taking into account the search-path provided to load-foreign-library (or equivalently specified via define-foreign-library). (Thanks to Pavel Korolev.)

Version 0.18.0

Released on October 15th, 2016.

  • enhancement: the groveller wrapper in-package directive now catches missing packages earlier and more clearly. (Thanks to Chris Bagley.)
  • enhancement: added expand-into-foreign-memory optmization hook similar to expand-to-foreign. (Thanks to Chris Bagley.)
  • enhancement: cffi-toolchain no longer needlessly depends on a very recent ASDF. (Thanks to Stas Boukarev.)
  • optimization: a new foreign-slot-pointer compiler macro avoids slot info lookups at runtime when then struct type and slot name are constant. (Thanks to Chris Bagley.)
  • bugfix: cffi-toolchain parses command flags properly on windows. (Thanks to Mirko Vukovic.)
  • bugfix: various cffi/c2ffi fixes. (Thanks to Attila Lendvai.)
  • bugfix: defcallback fixed on Android/ECL. (Thanks to Daniel Kochmanksi.)
  • bugfix: the ABCL backend has been fixed to handle recent JNA changes. (Thanks to Daniel Kochmanksi.)

Version 0.17.1

Released on March 12th, 2016.

  • bugfix: restored the :sizet type.
  • bugfix: fixed some regressions in defcenum.
  • bugfix: the cffi-toolchain system depends on cffi, but it wasn't explicit in the ASDF system.

Version 0.17.0

Released on February 19th, 2016.

  • new feature: new system cffi/c2ffi, courtesy of Attila Lendvai, that integrates produces CFFI bindings via c2ffi, a clang-based FFI wrapper generator. (Not yet documented in the manual, sorry.)
  • new feature: the groveller now provides :static-image-op and :static-program-op ASDF operations for static linking wrapper libraries generated by the groveller see Ch. 14 — Static Linking in the User Manual, for more information.
  • enhancement: on Allegro CL, don't try to release the heap on platforms that don't support it and honor without-interrupts on platforms that do.
  • enhancement: exported various foreign-array operations. (Still not documented in the manual, sorry.)
  • bugfix: handle enums when calling functions via libffi.
  • bugfix: tweak the groveller to work on ARM64.

Version 0.16.1

Released on August 23rd, 2015.

  • bugfix: the groveller is now able to process output coming from subprocesses on CLISP, which notably allows it to use the output of pkg-config. (Thanks to Daniel Kochmański.)
  • enhancement: uffi-compat now runs on ECL. (Thanks to Daniel Kochmański.)

Version 0.16.0

Released on August 5th, 2015.

  • enhancement: new type :bool type that converts between Lisp boolean and C99 _Bool.
  • enhancement: support loading 64bit libffi on Windows. (Thanks to Bart Botta.)
  • bugfix: fix expand-to-foreign-dyn-indirect for built-in types. (Thanks to Bart Botta.)
  • bugfix: fix calling foreign functions in compiled fasls on ECL. (Thanks to Daniel Kochmański.)
  • bugfix: fix pathname parsing on Windows. (Thanks to Nikodemus Siivola.)
  • bugfix: groveller now invokes external programs correctly on ECL. (Thanks to Daniel Kochmański.)

version 0.15.0

Released on May 28th, 2015.

  • enhancement: pkg-flags is a new groveller directive for grabbing pkg-config cc-flags. (Thanks to Sumant Oemrawsingh.)
  • enhancement: cffi-libffi uses the aforementioned directive for improved reliability. (lp:974396)
  • enhancement: we attempt to mimic the normal behavior of OS X's dlopen() so that the semantics are maintained when using CFFI under codesigned programs such as LispWorks 6. (lp:1414277)
  • enhancement: close-foreign-library has been implemented on the ECL backend. (Thanks to Daniel Kochmański.)
  • optimization: inline expansions for foreign bitfield types and functions were added. (Thanks to Ryan Pavlik.)
  • optimization: an expander for foreign-enum was added. (Thanks to Bart Botta.)
  • bugfix: invocation of C compilers on Windows and/or ECL was fixed. (Thanks to resttime and Daniel Kochmański.)
  • bugfix: the groveller no longer ignores the base-type argument for constantenum and cenum directives. (Thanks to Mark Cox. lp:1395242)
  • bugfix: handling of return types with translations within cffi-libffi was fixed. (Thanks to Vadim Penzin.)
  • CFFI now depends on UIOP, ASDF's utility library.

version 0.14.0

Released on September 21st, 2014.

  • enhancement: the ABCL backend has been greatly improved. (Thanks to Cyrus Harmon, Mark Evenson and Olof-Joachim Frahm.)
  • bugfix: the :long type on CCL/Win64 is now correctly sized. (Thanks to Tim Moore.)

version 0.13.0

Released on May 29th, 2014.

  • enhancement: cffi-grovel errors are now instances of grovel-error rather than simple-error. (Thanks to Anton Vodonosov.)
  • bugfix: foreign-funcall was fixed on ABCL + JNA >= 4.0.0. (Thanks to Cyrus Harmon.)

version 0.12.0

Released on March 5th, 2014.

  • enhancement: foreign functions defined on Allegro CL don't block the heap nor GC anymore. (Thanks to Felix Filozov.)
  • enhancement: with-foreign-slots can now bind variables to slot pointers as well as values.
  • bugfix: passing strings to functions via cffi-libffi now works.
  • bugfix: fixed issue loading libffi on OS X. (Thanks to Camille Troillard.)
  • enhancement: the Groveller's bitfield syntax has been expanded to match the capabilities of constantenum. (Thanks to Nicolas Martyanoff.)
  • bugfix: restored the ECL backend. (lp:1281140, reported by Philipp Marek.)
  • enhancement: the ABCL backend now support JNA 4.0.0. (Thanks to Mark Evenson.)

version 0.11.2

Released on June 10th, 2013.

  • bugfix: removed out-of-defpackage exportations to appease SBCL. (Reported by Zach Beane.)
  • enhancement: ASDF3-support for the groveller. (Thanks to Faré.)

version 0.11.1

Released on April 3rd, 2013.

  • bugfix: the ABCL backend now loads the required contribs properly.
  • bugfix: some callback bugs were fixed in the ACBL backend. (Thanks to Mark Evenson.)
  • bugfix: the groveller was failing to regenerate its lisp files whenever a grovel- or wrapper-file was modified.

version 0.11.0

Released on February 25th, 2013.

  • new feature: fsbv has been integrated into CFFI, courtesy of Liam Healy. This means we now support passing structs by value via libffi! NB: in order to differentiate between structure passing by value from structure by reference, (:struct foo) and :pointer should be used. The old way of referring to struct types by bare name is now deprecated.
  • new feature: a new MKCL backend has been added courtesy of Jean-Claude Beaudoin.
  • enhancement: the ABCL backend has improved considerably thanks to Mark Evenson and Stas Boukarev.
  • enhancement: the ECL backend now supports multiple linking strategies thanks to Juanjo Garcia-Ripoll.
  • optimization: foreign-free is non-consing on SBCL. (Thanks to Stas Boukarev.)
  • bugfix: in some situations we were not signalling a warning upon defining a foreign type using a symbol from the :cl or :keyword packages. Because of this, some projects will see new compilation warnings that will require fixing.
  • and various other bugfixes.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.