-
Notifications
You must be signed in to change notification settings - Fork 136
NEWS
Luís Oliveira edited this page Apr 3, 2021
·
43 revisions
Released on April 3rd, 2021.
-
bugfix: reverted the groveller's newly introduced support for floats and doubles in the
:auto
type. (lp#1922428)
Released on April 2nd, 2021.
- bugfix: callbacks with stdcall calling convention were not taking effect on SBCL. (lp#1890671)
-
enhancement: optimize cycle checking in
parse-type
, which is sometimes invoked at runtime. - enhancement: uffi-compat converts UFFI types to CFFI types at macro-expansion time when possible, improving performance.
-
feature: new built-in types
:size
,:ssize
,:intptr
,:uintptr
,:ptrdiff
and:offset
. (Shinmera) - bugfix: fixed loading/closing of foreign libraries on sbcl/macosx. (Stas Boukarev)
- enhancement: optimized type lookups. (Paul F. Dietz)
- enhancement: adapted to macOS Big Sur's new constraints on framework loading. (lp#1906982) (ellisvelo)
- bugfix: fixed the edge case of empty structure/union definitions. (Stuart Dilts)
-
enhancement:
load-foreign-library
now looks for libraries also in/opt/homebrew/lib
when on macosx/arm64. (Cyrus Harmon) -
enhancement: the groveller's
:auto
type is now able to detect floats and doubles. (Salad Tea)
Released on July 10th, 2020.
-
feature:
define-foreign-library
D has a new keyword arg:canary
, to allow detecting statically compiled libraries - feature: ABCL now implements MAKE-SHAREABLE-BYTE-VECTOR
-
bugfix: the ASDF class
:c-file
now correctly passes:cflags
to the C compiler instead of ignoring them - bugfix: avoid --export-dynamic on Solaris because the flag is unsupported and its intended effect is the default
Released on May 11th, 2020.
- bugfix: apply translations to struct typedefs. (Madhu)
-
bugfix: handle recent SBCL versions that no longer push
:sb-linkable-runtime
to*features*
. (lp#1866386) -
new feature:
defcenum
now accepts a new:allow-undeclared-values
. (Shinmera) - bugfix: minor adjustments to cffi/c2ffi and cffi-tests for LispWorks. (lp#1876713, lp#1877156)
Released on Jan 24th, 2020.
- bugfix: use libtool on macOS. (Ed Langley)
- bugfix: fix varargs on ABCL. (Cyrus Harmon)
- bugfix: load shared libraries on SBCL without threads on macOS. (Mark Skilbeck)
-
enhancement: add compiler macro for
inc-pointer
. (Stelian Ionescu) -
bugfix: handle recent SBCL versions that no longer push
:linkage-table
to*features*
.
Released on May 29th, 2019.
- enhancement: add support for libffi.so.7.
-
enhancement: include MacPorts's
lib/
indarwin-fallback-library-path
. - bugfix: handle ECL's ASDF 3.1.8.
Released on November 12th, 2018.
-
new feature: a new grovel directive,
feature
, has been added. It allows items to be added to*features*
or another list if specified c preprocessor macros are defined. (Courtesy of Stuart Dilts.) -
new feature: improve support for variadic functions. Functions
foreign-funcall-varargs
andforeign-funcall-pointer-varargs
are now exported. -
enhancement: arguments to
make-array
can be specified when usingforeign-array-to-lisp
. - enhancement: update ASDF usage according to ASDF guidelines.
- enhancement: improved the ECL backend with proper varargs support and updated manual and test suite to reflect ECL's improved support for callbacks, long long types and Unicode. (Courtesy of Daniel Kochmanski.)
- enhancement: increase chances of finding libffi headers on FreeBSD.
-
bugfix: the groveller's
:cc-flags
ASDF option has been restored and is not ignored when CFLAGS is set. (Thanks to Stuart Dilts and Stas Boukarev.) -
bugfix: handle pathnames within
define-foreign-library definitions
. (lp#1720626)
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 anonymousenum
s 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 toload-foreign-library
(or equivalently specified viadefine-foreign-library
). (Thanks to Pavel Korolev.)
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 toexpand-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.)
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.
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.
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.)
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.)
Released on May 28th, 2015.
-
enhancement:
pkg-flags
is a new groveller directive for grabbingpkg-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 forconstantenum
andcenum
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.
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.)
Released on May 29th, 2014.
-
enhancement: cffi-grovel errors are now instances of
grovel-error
rather thansimple-error
. (Thanks to Anton Vodonosov.) -
bugfix:
foreign-funcall
was fixed on ABCL + JNA >= 4.0.0. (Thanks to Cyrus Harmon.)
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 ofconstantenum
. (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.)
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é.)
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.
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.