Hello,
Kenny, telling the c.l.l savages to beat me up was mean :-) so I completed what was missing in uffi-compat and it passes all tests under SBCL and CLISP. The real UFFI itself failed a couple of tests on Allegro but passes all tests using UFFI-COMPAT, ahah. Isn't that sweet?
So here are the new changes in my darcs tree.
Fri Sep 9 02:00:22 WEST 2005 Luis Oliveira loliveira@common-lisp.net * foreign-alloc and uffi-compat
- removed foreign-object-alloc, added cffi:foreign-alloc with new options (including the functionality foreign-object-alloc provided). - renamed the cffi-sys:foreign-alloc's to cffi-sys:%foreign-alloc. - updated respective documentation. - improved mem-aref's documentation including new examples. - fixed with buf with lisp-string-to-foreign not handling empty strings correctly. added regression test. - fixed translate-to-c and translate-from-c (not exported yet) - fixed uffi-compat bugs, implemented all operators (including a bunch that aren't documented in UFFI's manual) except a foreign-string-length which is weird and not used anywhere. - added "UFFI" as a nickname for the cffi-uffi-compat package.
Thu Sep 8 07:12:53 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Fixed Allegro warning, removed #-sbcl from callback test
- Don't use call-direct on functions with 0 arguments. [Allegro] - Added a regression test for this and a test to see what void functions return. (the latter will probably fail on some ports) - SBCL has fixed the callback bug in version 0.9.4.11, removed the #-sbcl before the test that was triggering the bug.
Wed Sep 7 06:31:19 WEST 2005 Luis Oliveira loliveira@common-lisp.net * Handle empty structures gracefully
- Fixed notice-foreign-structure-definition to handle empty struct definitions correctly. - Added new test for this: STRUCT.ALIGNMENT.5
Luis Oliveira wrote:
Hello,
Kenny, telling the c.l.l savages to beat me up was mean :-)
<heh-heh> You were warned before you started that I would be a PITA. This is what I meant.
so I completed what was missing in uffi-compat and it passes all tests under SBCL and CLISP. The real UFFI itself failed a couple of tests on Allegro but passes all tests using UFFI-COMPAT, ahah. Isn't that sweet?
I think it is a very Good Sign that your test suite is unearthing bugs in UFFI as well as the Lisps themselves, and of course that CFFI passes those tests. Do you feel you did a good job of having the test suite dig into the edge cases of FFI? Is that why you are finding bugs in Lisps?
So here are the new changes in my darcs tree.
Looks great. thx for jumping on those stray issues I unearthed. Can you throw me a bone and send me a tarball? I have managed to avoid digging up a WinDARC and would like to keep it that way as long as possible.
Kenny Tilton ktilton@nyc.rr.com writes:
Luis Oliveira wrote:
so I completed what was missing in uffi-compat and it passes all tests under SBCL and CLISP. The real UFFI itself failed a couple of tests on Allegro but passes all tests using UFFI-COMPAT, ahah. Isn't that sweet?
I think it is a very Good Sign that your test suite is unearthing bugs in UFFI as well as the Lisps themselves, and of course that CFFI passes those tests. Do you feel you did a good job of having the test suite dig into the edge cases of FFI? Is that why you are finding bugs in Lisps?
No, no.. you misread that. UFFI has a test suite too, and that's the one I'm referring to. UFFI fails its own tests while CFFI's UFFI-COMPAT passes them. :-)
Anyway, regarding the test suite.. I just looked at what James had and followed his example. Test all types, test all use cases, etc... It's no ansi-tests, but then again, I'm no pfdietz ;-) *back to reading CLtL2 from cover to cover*
Looks great. thx for jumping on those stray issues I unearthed. Can you throw me a bone and send me a tarball? I have managed to avoid digging up a WinDARC and would like to keep it that way as long as possible.
Yeah, I set up a directory in CFFI's webpage with snapshots: http://common-lisp.net/project/cffi/tarballs/
Ah, remember I changed foreign-alloc a bit and removed foreign-object-alloc. (the docs are updated reflecting that change).