Luís Oliveira [Sun, 22 Aug 2010 12:42:31 +0000]
Moving repository to git.
- Added .gitignore.
- Adapted release.sh script to git.
- Removed :version from cffi.asd. Release tarballs now get the release
version inserted into the tarball's cffi.asd.
- Update manual with git info.
Stelian Ionescu [Thu, 20 May 2010 09:14:19 +0000]
Wrap the definitions of groveler classes in EVAL-WHEN
François-René Rideau [Thu, 20 May 2010 05:02:52 +0000]
Groveler: allow the use of groveler classes as keywords in .asd files
François-René Rideau [Thu, 20 May 2010 05:00:01 +0000]
Groveler: print offsets as long
François-René Rideau [Thu, 20 May 2010 04:59:14 +0000]
Groveler: better names for type detection macros
François-René Rideau [Thu, 20 May 2010 04:57:52 +0000]
Groveler: before compiling a shared library, remove old one
François-René Rideau [Thu, 20 May 2010 04:55:36 +0000]
Groveler: fix offsetof macro
François-René Rideau [Thu, 20 May 2010 04:54:32 +0000]
Fix cffi.asd for ASDF2
Luis Oliveira [Wed, 28 Apr 2010 22:56:04 +0000]
cffi-ecl: always push no-long-long
LONG-LONG is not supported by ECL's interpreter yet.
Luis Oliveira [Wed, 28 Apr 2010 22:53:37 +0000]
cffi-tests: don't use FOREIGN-FREE for malloc()ed memory
Patch courtesy of Juan Jose Garcia-Ripoll.
Luis Oliveira [Wed, 28 Apr 2010 22:42:43 +0000]
New pointer-related tests
Testing error situations for some pointer operations.
Luis Oliveira [Sun, 25 Apr 2010 23:12:32 +0000]
cffi-ecl: simplify shareable vector implementation
Patch courtesy of Juan Jose Garcia-Ripoll.
Luis Oliveira [Sun, 25 Apr 2010 23:02:19 +0000]
cffi-ecl: inline %mem-set and %mem-ref
Patch courtesy of Juan Jose Garcia-Ripoll.
Luis Oliveira [Sun, 25 Apr 2010 22:50:04 +0000]
cffi-ecl: use C-INLINE when producing compiled code
Using the ECL extension EXT:WITH-BACKEND, CFFI can produce code that
works differently when using the interpreter than when using the
lisp2C compiler. This leads to more efficient code. This change is
backwards compatible.
Patch courtesy of Juan Jose Garcia-Ripoll.
Luis Oliveira [Sun, 25 Apr 2010 22:39:14 +0000]
cffi-ecl: reexport NULL-POINTER-P from SI
Patch courtesy of Juan Jose Garcia-Ripoll.
Luis Oliveira [Sun, 25 Apr 2010 22:37:48 +0000]
cffi-ecl: use ECL's :long-long feature
Patch courtesy of Juan Jose Garcia-Ripoll.
Luis Oliveira [Sun, 25 Apr 2010 12:24:43 +0000]
Allegro: fix WITH-FOREIGN-POINTER
- Fixes previous patch.
- New test: WITH-FOREIGN-POINTER.CONSTANT-SIZE.
Jianshi Huang [Wed, 21 Apr 2010 09:19:56 +0000]
Allow the use of constants in WITH-FOREIGN-OBJECT for Allegro.
Stelian Ionescu [Fri, 19 Feb 2010 17:33:53 +0000]
Remove unused C macro SIGNED_ from common.h
Luis Oliveira [Wed, 6 Jan 2010 23:21:10 +0000]
cffi-manual: navigation improvements.
- Add WITH-FOREIGN-OBJECTS and WITH-FOREIGN-STRINGS to the
dictionary menus. (This unfortunately seems to require
specifying the @node declarations in full.)
- Make the table of contents more manageable by turning
@unnumberedsecs into @headings.
- Fix docstring in DEFSTRUCT example.
Luis Oliveira [Fri, 1 Jan 2010 17:46:35 +0000]
cffi-lispworks: add IGNORE declaration to CREATE-FOREIGN-FUNCALLABLE
Luis Oliveira [Fri, 1 Jan 2010 17:45:29 +0000]
cffi-lispworks: make null-pointer-p check its argument's type
Luis Oliveira [Fri, 1 Jan 2010 17:34:43 +0000]
Documentation: add note about RT, update description of no-long-long.
Luis Oliveira [Fri, 1 Jan 2010 17:26:00 +0000]
Preliminary support for ABCL.
Stelian Ionescu [Fri, 11 Dec 2009 16:49:38 +0000]
Update email address.
Stelian Ionescu [Fri, 11 Dec 2009 16:49:09 +0000]
Remove spurious PRINT call.
Luis Oliveira [Tue, 24 Nov 2009 23:20:02 +0000]
cffi-manual: the :STRING type does not support ub8 arrays anymore
Luis Oliveira [Tue, 24 Nov 2009 23:17:41 +0000]
libtest: support 64-bit on OSX Leopard
Luis Oliveira [Tue, 24 Nov 2009 23:14:42 +0000]
cffi-tests: show Lispworks the full path to libm.dylib
Luis Oliveira [Tue, 24 Nov 2009 23:13:21 +0000]
cffi-lispworks: turns out Lispworks does support llong on 32-bit platforms
Stelian Ionescu [Sun, 23 Aug 2009 12:11:08 +0000]
Deprecate groveler clause FLAG in favour of CC-FLAGS.
Luis Oliveira [Fri, 21 Aug 2009 21:00:52 +0000]
cffi-allegro: define long long types on 64-bit platforms
Patch courtesy of John Fremlin.
Luis Oliveira [Fri, 21 Aug 2009 20:54:47 +0000]
cffi-tests: fix pointer-to-integer casts in libtest.c
Luis Oliveira [Fri, 21 Aug 2009 20:51:44 +0000]
cffi-tests: don't use stdcall #ifndef WIN32
Stelian Ionescu [Sun, 9 Aug 2009 00:53:56 +0000]
Also canonicalize search paths in library specs.
Stelian Ionescu [Sat, 8 Aug 2009 22:28:34 +0000]
Update manual.
DEFCFUN & co. now take only :CONVENTION.
Stelian Ionescu [Sat, 8 Aug 2009 22:15:47 +0000]
Whitespace.
Stelian Ionescu [Sat, 8 Aug 2009 22:10:55 +0000]
Declare DEFCALLBACK, DEFCFUN and DEFINE-FOREIGN-LIBRARY's keyword args :CCONV and :CALLING-CONVENTION obsolete, use :CONVENTION instead.
Stelian Ionescu [Fri, 7 Aug 2009 16:41:16 +0000]
Fix docstring of LIST-FOREIGN-LIBRARIES.
Stelian Ionescu [Fri, 7 Aug 2009 16:27:33 +0000]
Fix reloading a library in LOAD-FOREIGN-LIBRARY.
Stelian Ionescu [Tue, 4 Aug 2009 20:41:32 +0000]
Use type :wrapper for wrapper libraries generated by the groveler.
Stelian Ionescu [Mon, 20 Jul 2009 15:43:12 +0000]
Use type :test for the test libraries.
Stelian Ionescu [Mon, 20 Jul 2009 15:40:28 +0000]
Add the ability to specify a foreign library's type and search path.
Also export:
- FOREIGN-LIBRARY
- FOREIGN-LIBRARY-PATHNAME
- FOREIGN-LIBRARY-TYPE
- FOREIGN-LIBRARY-LOADED-P
- LIST-FOREIGN-LIBRARIES
Stelian Ionescu [Mon, 20 Jul 2009 15:39:25 +0000]
Cosmetic changes (cconv -> calling-convention).
Stelian Ionescu [Tue, 4 Aug 2009 19:37:38 +0000]
Groveler fixes for ECL.
Luis Oliveira [Sat, 25 Jul 2009 23:13:30 +0000]
ECL: support more vector types in CFFI-SYS:WITH-POINTER-TO-VECTOR-DATA
Patch courtesy of Andy Hefner.
Luis Oliveira [Fri, 10 Jul 2009 18:08:32 +0000]
cffi-openmcl: prepend _ to external names on #+darwin, not just #+darwinppc
Luis Oliveira [Thu, 2 Jul 2009 20:15:57 +0000]
grovel: don't use cffi-features.
Luis Oliveira [Wed, 1 Jul 2009 18:59:18 +0000]
clisp: small fix to %FOREIGN-ALLOC
- Deal with (%foreign-alloc 0) gracefully by turning it into a one byte
allocation. This is similar to what glibc's malloc() does, IIUC.
- Regression test: FOREIGN-ALLOC.6.
Reported by Tobias Rautenkranz.
Stelian Ionescu [Thu, 25 Jun 2009 16:43:15 +0000]
Don't trim #\VT.
Stelian Ionescu [Mon, 22 Jun 2009 21:52:52 +0000]
Groveler: trim-whitespace not strip-whitespace.
Stelian Ionescu [Mon, 22 Jun 2009 21:33:53 +0000]
Groveler: fix typo.
Stelian Ionescu [Mon, 22 Jun 2009 21:26:26 +0000]
Groveler: small refactoring, create *EXE-EXTENSION*
Stelian Ionescu [Mon, 22 Jun 2009 21:18:57 +0000]
Groveler: move boilerplate C code to common.h
Stelian Ionescu [Mon, 22 Jun 2009 20:51:42 +0000]
Groveller: fix usage of *CC-FLAGS*.
Stelian Ionescu [Mon, 22 Jun 2009 20:13:24 +0000]
Include <string.h> with the groveler boilerplate code.
Stelian Ionescu [Mon, 22 Jun 2009 20:03:17 +0000]
Move the DEFPACKAGE and INVOKE out of grovel.lisp
Stelian Ionescu [Mon, 22 Jun 2009 19:45:57 +0000]
Style change.
Stelian Ionescu [Mon, 22 Jun 2009 19:04:29 +0000]
Groveler: use WITH-STANDARD-IO-SYNTAX when processing grovel files.
Stelian Ionescu [Mon, 22 Jun 2009 19:03:26 +0000]
Groveler: implement %INVOKE for ABCL.
Luis Oliveira [Tue, 16 Jun 2009 16:19:44 +0000]
update cffi.asd for version 0.10.5
Luis Oliveira [Tue, 16 Jun 2009 16:18:26 +0000]
cffi-manual: minor style change.
Stelian Ionescu [Tue, 16 Jun 2009 16:05:19 +0000]
Update docs for groveler clause CONSTANT.
Luis Oliveira [Mon, 15 Jun 2009 17:07:33 +0000]
grovel: remove comment about the *CC* and the CC environment variable
We already do look at CC in GROVEL::CC-COMPILE-AND-LINK.
Luis Oliveira [Mon, 15 Jun 2009 15:13:12 +0000]
cffi-grovel: use "cc" on non-Windows platforms (including Cygwin)
Luis Oliveira [Sun, 14 Jun 2009 18:16:43 +0000]
clisp: avoid using NIL for null pointers.
- Work around FFI:C-POINTER in %MEM-REF, %FOREIGN-FUNCALL and %DEFCALLBACK.
- Don't accept NIL in POINTERP, FOREIGN-POINTER or INC-POINTER.
- New tests: CALLBACKS.NIL-FOR-NULL, FUNCALL.POINTER-NOT-NIL, POINTER.NULL
and FOREIGN-POINTER-TYPE.NIL.
Stelian Ionescu [Mon, 8 Jun 2009 14:29:44 +0000]
Groveler: add support for float constants.
The CONSTANT groveler form now takes an additional keyword argument
TYPE, which defaults to INTEGER. In order to grovel floats,
DOUBLE-FLOAT must be used.
Luis Oliveira [Thu, 4 Jun 2009 13:05:25 +0000]
cffi-tests.asd: use trivial-features.
- Using #-windows instead of #-(or win32 mswindows) which didn't work
on Clozure CL.
Luis Oliveira [Thu, 4 Jun 2009 12:42:41 +0000]
Add stdcall support for callbacks in Clozure CL.
Luis Oliveira [Tue, 26 May 2009 19:47:15 +0000]
cffi-manual: fix code rot in the DEFCVAR example
Reported by Tobias Rautenkranz.
Luis Oliveira [Tue, 26 May 2009 19:37:11 +0000]
Fix bug in FOREIGN-FUNCALL.
CFFI::PARSE-ARGS-AND-TYPES was inadvertently suppressing arguments with
NIL values. E.g.: (foreign-funcall "foo" :foo a :bar nil :baz b :void)
was compiled as (foreign-funcall "foo" :foo a :baz b :void).
Reported by "D.I."
Luis Oliveira [Tue, 26 May 2009 19:09:29 +0000]
Fix the FOREIGN-STRUCT-SLOT-SET compiler macro for aggregate slots.
Reported by Andy Hefner.
Stelian Ionescu [Wed, 29 Apr 2009 20:25:05 +0000]
Bind *PACKAGE* in PROCESS-GROVEL-FILE.
Reported by Zach Smith, patch by Nikodemus Siivola.
Luis Oliveira [Tue, 7 Apr 2009 19:02:03 +0000]
Minor manual fixes.
- Fixed one of the foreign-funcall-pointer examples.
- Improved the defcallback description.
Reported by Naveen Garg.
Stelian Ionescu [Mon, 2 Feb 2009 01:22:03 +0000]
Make sure that 64bit constants are groveled correctly on 32bit platforms.
Luis Oliveira [Sun, 1 Feb 2009 18:16:53 +0000]
update cffi.asd for version 0.10.4
Luis Oliveira [Tue, 27 Jan 2009 21:43:36 +0000]
cffi-allegro: WITH-POINTER-TO-VECTOR-DATA fix
- Also, export both W-P-T-V-D and MAKE-SHAREABLE-BYTE-VECTOR from
CFFI-SYS and remove shareable vector tests from the expected failures
list.
Fix courtesy of John Fremlin.
Luis Oliveira [Tue, 27 Jan 2009 21:29:53 +0000]
Handle uninterned symbols in %DEFCALLBACK
- New regression test: CALLBACKS.UNINTERNED.
Bug reported by Liam Healy.
Luis Oliveira [Mon, 19 Jan 2009 02:13:05 +0000]
Shareable byte vector support for Allegro CL
Patch courtesy of John Fremlin.
Luis Oliveira [Fri, 9 Jan 2009 01:45:09 +0000]
cffi-allegro: use WITH-STATIC-FOBJECT instead of WITH-STACK-FOBJECT
- WITH-STACK-FOBJECT doesn't take care of deallocation when it fails
to allocate on the stack.
- Clean up the WITH-FOREIGN-POINTER macro.
Luis Oliveira [Fri, 9 Jan 2009 01:32:37 +0000]
cffi-allegro: fix handling of pointers on 64-bit platforms
- Use :UNSIGNED-NAT instead of :FOREIGN-ADDRESS for CFFI's :POINTER.
- Cleanup some of the kludges needed because :FOREIGN-ADDRESS wasn't
understood by Allegro's FF in some contexts.
Bug report and initial patch courtesy of John Fremlin.
Luis Oliveira [Mon, 19 Jan 2009 01:57:59 +0000]
cffi-clisp: bail out early on when FFI is not available.
Suggested by Daniel Herring.
Luis Oliveira [Thu, 8 Jan 2009 21:54:16 +0000]
cffi-allegro: WITH-FOREIGN-POINTER bug fix
- Pass :ALLOCATION :FOREIGN-STATIC-GC to FF:WITH-STACK-FOBJECT so that
the allocated object is not moved by the GC in those situation where
W-S-F does heap allocation (e.g. in interpreted code).
Initial patch courtesy of John Fremlin.
Stelian Ionescu [Wed, 7 Jan 2009 21:29:56 +0000]
Fix ETYPECASE in DEFINE-GROVEL-SYNTAX CSTRUCT.
Luis Oliveira [Wed, 31 Dec 2008 01:57:14 +0000]
Experimental DEFCSTRUCT feature: accessors.
CFFI> (macroexpand-1 '(defcstruct (foo :conc-name foo-)
(a :int)))
;;; ...
(defun foo-a (pointer-to-foo)
(foreign-slot-value pointer-to-foo 'foo 'a))
(defun (setf foo-a) (value pointer-to-foo)
(foreign-slot-set value pointer-to-foo 'foo 'a))
;;; ...
Luis Oliveira [Wed, 31 Dec 2008 01:51:45 +0000]
Improvements to the :ARRAY type.
- Got rid of the :AUTO-ARRAY type. Add translators to :ARRAY
directly instead.
- Make the :ARRAY type aggregate. This way it can be used
inside structures as an alternative to the :COUNT slot option.
- Add TRANSLATE-AGGREGATE-TO-FOREIGN method that lets us do
(setf (foreign-slot-value ptr 'struct 'slot-name) #(1 2 3))
Luis Oliveira [Wed, 31 Dec 2008 01:48:50 +0000]
Apply translators to FOREIGN-SLOT-VALUE on aggregate slots
Implemented a new generic function TRANSLATE-AGGREGATE-TO-FOREIGN to
support (SETF FOREIGN-SLOT-VALUE) for aggregate slots.
Luis Oliveira [Wed, 31 Dec 2008 00:50:38 +0000]
Add note about FREE-TRANSLATED-OBJECT's PARAM argument.
Luis Oliveira [Tue, 30 Dec 2008 01:45:38 +0000]
manual: miscellaneous improvements
- use a roman font for comments in the TeX outputs.
- fix some typos and missing @lispcmt{}s.
- insert page breaks before each CLHS-style documentation node.
This should make it much clearer to read and browse, at the
expense 23 more pages in total, a ~25% increase.
Stelian Ionescu [Sun, 28 Dec 2008 21:37:58 +0000]
Fix %INVOKE on Clisp.
Stelian Ionescu [Sun, 28 Dec 2008 21:22:45 +0000]
Use ETYPECASE instead of COND in a few places.
Hugo Duncan [Sat, 11 Oct 2008 13:00:10 +0000]
Add the ability to specify a preprocessor symbol as the argument to :count in cstruct
Luis Oliveira [Sat, 27 Dec 2008 23:09:19 +0000]
defcvar: don't ignore the documentation string.
- use (setf documentation) to store the docstring.
- add regression test.
Bug report courtesy of James A. Crippen.
Luis Oliveira [Sat, 27 Dec 2008 23:05:30 +0000]
manual: various improvements to the DEFCFUN node
- Add new example using an argless function.
- Document the docstring support and exemplify it.
- Fix some typos.
Bug reports courtesy of James A. Crippen.
Luis Oliveira [Wed, 29 Oct 2008 19:46:34 +0000]
update cffi.asd for version 0.10.3
Luis Oliveira [Tue, 28 Oct 2008 23:32:22 +0000]
cffi-sbcl: Fix brokeness in %close-foreign-library
Details in <http://thread.gmane.org/gmane.lisp.steel-bank.devel/12028>.
Josh Elsasser [Tue, 21 Oct 2008 14:06:27 +0000]
Allow PROCESS-GROVEL-FILE to work on files with null directory component.
David Brown [Tue, 14 Oct 2008 04:01:42 +0000]
Shareable Vectors for ECL.
ECL uses a non-moving, conservative garbage collector, so shareable
byte vectors can be implemented just by using a pointer to the data.
Stelian Ionescu [Thu, 9 Oct 2008 23:18:40 +0000]
Fix SBCL %CLOSE-FOREIGN-LIBRARY wrt changes in 1.0.21.15
%CLOSE-FOREIGN-LIBRARY makes use of SB-ALIEN::SHARED-OBJECT-FILE which
has disappeared in 1.0.21.15 - replaced by SHARED-OBJECT-PATHNAME, so
I've added a readtime conditional that detects the right accessor.
Luis Oliveira [Fri, 26 Sep 2008 20:51:12 +0000]
gendocs.sh fix: pass --no-userinit to sbcl