Hello,
My name is Daniel Dickison. I've been working on a Common Lisp project C-to-FFI which aims to make the generation of FFI definitions as automated as possible. This project makes use of GCC-XML <http:// www.gccxml.org/> which turns C files into XML (using an actual, patched, gcc preprocessor), which my code then turns in to UFFI forms.
Currently, full functionality is only available in OpenMCL, although it should be easily portable to other lisps. Eventually, I would like to have C-to-FFI generate code not only for UFFI but CFFI also. I want to post it on Common-Lisp.net so that other Lispers could give me feedback -- on the API or whether such a tool is even needed. I personally think such a tool is valuable, and I haven't found preexisting solutions. CParse is one such project, but it appears to be CMUCL-specific and old.
If you would kindly host this project, I would like to have a darcs repository. As for license, I have not really considered this, but I suppose BSD-style will do if I must specify. And below is my PGP public key.
I look forward to hearing from you.
Daniel
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.2 (Darwin)
mQGiBETX5XoRBACP2RgB3hBG07Uz/tIA/dkJ7+oyRpmZSEMPdMScXu0YpJ+miipI 3QZcTTiCQdwanEzTZlU+DNLEgbAVyatR4DH+PG/Nvb1D+BpDBJU0zYzQXCONOP2L yDQM84W0npF3c+0V5RxcqRLErlwzTcfNWTtnuW5wafVcYF6x5bDNpDNWXwCgx783 /yPfeDBNSUE5rk4jJxlrw6cEAIb+ToKhQVBYzDUNfM7iQAybDFZ33xmyj9JX+aMA 8txgh+hShHcd9b2GUmstf1jBn5XxL3vzXA/HdDwefGvpnUFqPicpDy23IZqgv0nY XVKHIOl5gvuTcagTIwfH5s78OoWvxe2UqNDwuu8qyDchVXLjCYG0Vrf+Gyy/cFmB MPdmA/0fUZj7NUBXiUuUh5JUojoYhnCdL7bhGkSGqDXaacL3Stjks41QMnzQ1Pg1 Em9xZjamOeOEbkcniCMVun8OdPRu6uXY1p5qv2gePvJOXn3NlQBWEpV2IaC+YO+y Hjzjw0tlRp2vcWoZg1Hv/KwIiMZtcCDn/XN63k5ebDgnagpIa7QqRGFuaWVsIERp Y2tpc29uIDxkYW5pZWxkaWNraXNvbkBnbWFpbC5jb20+iGAEExECACAFAkTX5XoC GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRC1slext0RdOOiKAKCHgIMr1Icx LlEEXmEG1Iyho69kfwCfWcef3IhQd6wgdjSCndOH2fAxeKS5Ag0ERNfllhAIAN4j 30F7NFgpA7C5aN4KRoiO1bKXxD8PPpb8LZPd/AswGkjrjdxo1KhT0b6H/LY91CMZ aWIGvpVRPvTdk+Blr5/r05oTpJG8dqZHp8xtENW0ps4NrZwjLkt2icZM0vWmcAEf jbrvnPCVA+2mIZCwCJ3u9VDTbBLau0RJyQnl3R6uN992vm5/c0e6hQjzET6OhJAL cGW9Tq07Em2qVMfh8nExwIQrTTFTz6L5WS9+U78dSPjNQTY/HvwVrC2tE0Y4fOj7 r7AJqfq+mMIFs2ggFjVO7PCxOnHIk5nyT8u5qppRAyNWDSOsDiM4TywNJ1wqfLOX v5ri1d8f6sb3fUwEVV8AAwUIAKc0arA/8hmRb+o3s+8CB9paSvPOoc7ekur0Nf3p bi9SRNZLgiwebCz4esUd86TDBg4PmXKnXp3NXRwush9OiapAtyAHueWm68XAdl5Q M+a8CElMmStqmO+dg1bXce3xxMWev5rhtHrCy00J3QXtT9KMP57BRU9qXY62/7CX AiRlK39mauceezcmVKNMujxeZIZaIdU8vQg0j0QPXhI/bGo3u5CaZAnGzlmqH5YB F6+i7/Tl22zBEstQFny/jN922c5d1AyonSdwXHFZCebak+/dbQd/ef96GyF6nPap 2h43HNVxTEqO355GSdwwyEO+NBh2uvPlhSxT925abMMiHzyISQQYEQIACQUCRNfl lgIbDAAKCRC1slext0RdOL81AJ0QAbKkKe+EcpIRX9JQyzDkWTG/KQCeMgi2u9/7 AXxuHYWLL4v75oEakH4= =KLdh -----END PGP PUBLIC KEY BLOCK-----