- Jan 18, 2013
-
-
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
-
On FreeBSD, GCC only looks in directories of the base system (/usr/include). We need to manually add /usr/local/include if we want to be able to bind libraries installed by packages or ports.
-
- Jun 07, 2012
-
-
Liam M. Healy authored
Add method expand-to-foreign-dyn-indirect for type foreign-type-alias so that foreign-string-type will be expanded correctly (as a pointer).
-
- May 14, 2012
-
-
Liam M. Healy authored
-
- May 06, 2012
-
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
- May 05, 2012
-
-
Liam M. Healy authored
Fix an error in the recursive call in libffi-type-pointer for foreign-struct-type, now parse the slot-type, which is unparsed. This makes FSBV.3 and FSBV.4 succeed. Removed quote from test FSBV.2; this makes FSBV.2 succeed.
-
- May 04, 2012
-
-
Luís Oliveira authored
-
- May 03, 2012
-
-
Liam M. Healy authored
-
- May 01, 2012
-
-
Luís Oliveira authored
* Instead of a special variable, the parsed struct type instance is now annotated to let the type system know whether we're dealing with deprecated semantics (struct type canonicalizes to :pointer) or not. This approach should hopefully be much less error-prone. * Disabled translations for bare structs. * Fixed and commented out some bogus tests.
-
- Apr 30, 2012
-
-
Stelian Ionescu authored
This broke other stuff, so revert until we understand what's happening This reverts commit 944d3318.
-
Luís Oliveira authored
-
Stelian Ionescu authored
-
Stelian Ionescu authored
-
- Apr 20, 2012
-
-
Liam M. Healy authored
Improved the documentation for Foreign Structure Types to more clearly describe the behavior of mem-aref under the new structure reference syntax and the compatibility of the bare structure reference with the old behavior.
-
- Apr 19, 2012
-
-
Liam M. Healy authored
-