- Feb 25, 2013
-
-
Luís Oliveira authored
-
- Feb 24, 2013
-
-
Luís Oliveira authored
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.
-
- Feb 23, 2013
-
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
Luís Oliveira authored
-
- Feb 21, 2013
-
-
-
-
-
-
Fixes issue with ABCL not finding things like "strcmp" when no libraries are loaded.
-
- Jan 21, 2013
-
-
Use C-WRITE instead of C-PRINT-SYMBOL when emitting types to deal with the fact that some types are more than just one symbol now. e.g. 'foo vs '(:struct foo) and '(:pointer (:struct foo)) Fixes: Bug 1065432
-
- Jan 18, 2013
-
-
Liam Healy authored
More library names and fix :sizet typo for windows. Expand affirmative return from structure-by-value-p to include typedefs, so that foreign function calls by value may use the typedefed names to declare variable. Includes tests.
-
CrLF0710 authored
-
CrLF0710 authored
-
- Jan 07, 2013
-
-
- Jan 06, 2013
-
-
This is especially useful when the type and count have been groveled.
-
This means that forms such as the following are allowed: (cstruct foo "struct foo" (mybar "mybar" :type (:struct bar)))
-
This allows % to be safely used in lisp symbol names which pass through the groveler, such as the following: (cvar ("errno" %errno) :int)
-
This means that integer size and signedness is determined by the groveler in cases like this: (cstruct autotype "struct mystruct" (myint "myint" :type :auto) (myarray "myarray" :type :auto :count :auto))
-
The :count :auto logic assumed the struct member was an array which filled the remainder of the struct, and would generate incorrect cffi cstruct forms when any other struct members followed one declared :count :auto. The following C struct definition and groveler cstruct form demonstrate this: struct charbuf { char three_chars[3]; int clobbered_int }; (cstruct charbuf "struct charbuf" (three-chars "three_chars" :type :char :count :auto) (clobbered-int "clobbered_int" :type :int))
-
The previous fix did not work with functions that return no values. Surround the code with braces, so that the C compiler does not complain about the extern declaration.
-
Allow the ECL backend to support different combinations of FFI in the same code by customizing a single special variable.
-
- Jan 03, 2013
-
-
- Nov 24, 2012
-
-
- Nov 23, 2012
-
-
consing aliens.
-
- Nov 12, 2012
-
-
Liam M. Healy authored
In defcstruct, there was a line, removed in be626770, that set a default type class name by appending "-TCLASS". Without this line, the class will be directly FOREIGN-STRUCT-TYPE instead of a subclass. This is acceptable if the translate methods are not going to be redefined, but if they are, any change will apply to all instances (including instances of subclasses of other structures, which may call these with call-next-method). In fact, there is a check in define-translation-method to prevent redefinition with that macro, but of course a defmethod would be just as bad. While in principal one can specify the :class argument, this isn't always possible, for example, if the structure was made by groveling. Even so, it is a bad idea to make a default which has the potential for this kind of harm. This fix now permits GSLL to compile and load correctly.
-
- Nov 04, 2012
-
-
-
The interactive restart when reloading callbacks is no longer needed. A callable function pointer is now returned by CALLBACK and GET-CALLBACK, which wasn't the case previously. Now down to 25 failing tests! Callbacks "automacro-ly" now get a translation layer to convert back from native types to ones which ABCL expects. This translation is currently a work in progress, as not all cases are covered correctly. (Stas Boukarev) MAKE-FUNCTION-POINTER typo. Refactored to remove compile warnings about MAKE-IMMEDIATE-OBJECT. CFFI-SYS::%LOAD-FOREIGN-LIBRARY tries harder to figure out which library to load. Docstrings added.
-
The "-fPIC" flag will always be necessary when using GCC-derived compilers as I understand it. Additionally, Solaris compilation options now unconditionally tries a 64bit build. Contemporary Solaris (since Solaris 10), are hybrid 32/64 bit environments where "uname -m" reports "i86pc". Whether one wants the 32 or 64 bit version of the libraries depends on the type of the Lisp implementation doing the loading, which is currently not available in the environment in which make(1) is executing.
-
Luís Oliveira authored
This header defines the PRI{fmt}{type} printf format specifiers used by foreign-type-to-printf-specification.
-
The BITFIELD grovel syntax always used %i to print the foreign values. But when the base type is larger than an int, the resulting values will be incorrect. We introduce the FOREIGN-TYPE-TO-PRINTF-SPECIFICATION function which returns a printf string containing a single format specification for a foreign type, and use it in the BITFIELD grovel syntax.
-
-
Luís Oliveira authored
-
-
-
Luís Oliveira authored
-