Hello,
Yesterday was find-bug-in-lisp-implementations day, heh. Here are the new patches in my cffi branch[1]:
Fri Aug 5 20:38:44 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Minor edits and changed SQRTF test.
- Commented out some unused forms in src/functions.lisp. - Defined our own SQRTF in libtest.c since it's not available on win32.
Fri Aug 5 20:36:58 WEST 2005 Luis Oliveira loliveira@common-lisp.net * SBCL: use SB-SYS:FOREIGN-SYMBOL-SAP
- SBCL 0.9.3 renamed SB-SYS:FOREIGN-SYMBOL-ADDRESS to SB-SYS:FOREIGN-SYMBOL-SAP. Use this instead.
Fri Aug 5 20:34:17 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Small change to DEFCFUN-HELPER-FORMS.
- Make it take an extra argument "lisp-name". Hopefully I got this stuff right this time, I'm not sure yet.
Fri Aug 5 20:26:31 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Make DEFCVAR use the type translation mechanism.
- Also added new tests. Note, Lispworks on x86 starts behaving erratically after runing the FOREIGN-GLOBALS.SET.STRING test and eventually dies an horrible death. Also, Allegro doesn't like its memory being free()d by C. doc/allegro-internals.txt has some info on this. Should be easy to figure out.
Fri Aug 5 20:19:02 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Lispworks bug fixes.
- FLI:INCF-POINTER didn't increment the pointers at all. Implemented CFFI-SYS:INC-PTR using FLI:MAKE-POINTER and FLI:POINTER-ADDRESS instead. - FLI:WITH-DYNAMIC-FOREIGN-OBJECTS was causing troubles on all platforms, heap allocate for the time being. - Missing (convert-foreign-type rettype) when defining a foreign function. - FOREIGN-VAR-PTR was trying to access the var too soon, simplified it a bit too.
Fri Aug 5 20:14:54 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Allegro port update, bug fixes.
- Convert chars to signed-byte instead of unsigned-byte (need to figure out the issues between signed vs. unsigned char, btw) - WITH-FOREIGN-PTR was evaluating SIZE twice.
Fri Aug 5 19:59:15 WEST 2005 Luis Oliveira loliveira@common-lisp.net * New callback interface.
- New interface: DEFCALLBACK, CALLBACK, GET-CALLBACK - New CALLBACK.* tests. - Implementations of CFFI-SYS:MAKE-CALLBACK: - Allegro, passes all tests on linux/x86 and win32 fails CALLBACKS.CHAR/UNSIGNED-CHAR/SHORT/UNSIGNED-SHORT on darwin/ppc, looks like an Allegro bug. - clisp, passes all tests. - cmucl, passes all tests on linux/x86, on darwin/ppc fails CALLBACKS.CHAR/UNSIGNED-CHAR/SHORT/UNSIGNED-SHORT, looks like a bug in cmucl/ppc too. - sbcl, x86 only, passes all tests except its callbacks can't handle sap's yet, that'd be bug in sbcl too. - openmcl, fails CALLBACKS.FLOAT/DOUBLE, I reported this bug in openmcl, and it has been confirmed. - Lispworks, passes all tests on darwin/ppc, on linux/x86 and win32 there are issues unrelated to callbacks.
Fri Aug 5 19:45:09 WEST 2005 Luis Oliveira loliveira@common-lisp.net * New type translation interface.
- Removed define-type-translator, added define-type-translation with a new interface. - Make with-object-translated, translate-objects and the string type use the new interface.
Fri Aug 5 19:36:31 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Minor simplification to test-op in cffi-tests.asd
Thu Aug 4 05:38:27 WEST 2005 Luis Oliveira loliveira@common-lisp.net * :cffi/no-foreign-funcall and unexport foreign-var-ptr
* Push :cffi/no-foreign-funcall to *features* when the host lisp does not support it.
Btw, Frank, if you feel like testing if Allegro 7.0 on Mac has these callbacks fixed, please go ahead. :-)
[1] - http://common-lisp.net/project/cffi/darcs/cffi-luis/
Luis Oliveira luismbo@gmail.com writes:
Btw, Frank, if you feel like testing if Allegro 7.0 on Mac has these callbacks fixed, please go ahead. :-)
Ah, good news, I ran the tests with the new Allegro 7.0 Trial and it indeed has fixed the callback bugs. No tests failed.