Commit bdaae075 authored by Daniel Dickison's avatar Daniel Dickison

Initial commit

darcs-hash:bae4173226ee66c77846c4f5368f64ebe52faca6
parents
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><!--#include virtual="project-name" --> - Project</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
</head>
<body>
<div class="header">
<h1><!--#include virtual="project-name" --></h1>
<h2>Foreign functions made easy</h2>
</div>
<div id="contents">
<h3>Introduction</h3>
<p>This project aims to simplify the process of calling foreign C functions from Common Lisp programs. Specifically, foreign function interface definitions are generated automatically by parsing C header files.</p>
<p>Currently full functionality is only available in OpenMCL using UFFI. The plan is to make it portable to other Lisps, as well as generating CFFI definitions in addition to UFFI.</p>
<h3>Latest News</h3>
<ul>
<li>Also see Daniel Dickison's <a href="http://danieldickison.com/blog/index.php?/categories/7-c2ffi">blog entries on c2ffi</a>.</li>
<li><h4>2006-8-8</h4>
c2ffi is born. It is currently in a very rudimentary form.
</li>
</ul>
<h3>Requirements</h3>
<ol>
<li><a href="http://www.cmake.org/HTML/Download.html">CMake</a>:
Required by GCC-XML for building. Binaries available.
</li>
<li><a href="http://www.gccxml.org/">GCC-XML</a>:
This is a patched GCC compiler that formats output from the C/C++ preprocessor as XML. c2ffi parses this XML instead of the raw C files. Please get GCC-XML via CVS, as the 0.6.0 release on their site is very old and incompatible with c2ffi:
<ul>
<li><code>cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML login</code><br />(Press enter when prompted for a password.)</li>
<li><code>cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML co gccxml</code></li>
<li><code>cd gccxml</code></li>
<li><code>cmake .</code></li>
<li><code>make</code></li>
<li><code>sudo make install</code></li>
</ul>
</li>
<li>The following can be installed by <a href="http://common-lisp.net/project/asdf-install/">asdf-install</a>:
<ul>
<li><a href="http://common-lisp.net/project/xmls">XMLS</a></li>
<li><a href="http://common-lisp.net/project/iterate/">Iterate</a></li>
<li><a href="http://common-lisp.net/project/anaphora/">Anaphora</a></li>
<li><a href="http://common-lisp.net/project/cl-utilities/">CL-Utilities</a></li>
<li><a href="http://uffi.b9.com/">UFFI</a></li>
</ul>
</ol>
<h3>Download</h3>
<ul>
<li>Via <a href="http://darcs.net/">Darcs</a> (last updated <!--#flastmod file="darcs/c2ffi/_darcs/patches/" -->):<br />
<code>darcs get http://common-lisp.net/project/c2ffi/darcs/c2ffi</code>
</li>
<li><a href="files/c2ffi_0.1.tar.gz">c2ffi_0.1.tar.gz</a> (8 Aug. 2006)</li>
</ul>
<h3>Mailing Lists</h3>
<ul>
<li>
<a
href="http://www.common-lisp.net/mailman/listinfo/c2ffi-devel">
c2ffi-devel</a>: for everything.</li>
<li>
<a
href="http://www.common-lisp.net/mailman/listinfo/c2ffi-announce">
c2ffi-announce</a>: for (very infrequent) announcements.</li>
</ul>
<h3>Development</h3>
<p>There is a Darcs repository for this project.</p>
<ul>
<li>Repository URL: <code>http://common-lisp.net/project/c2ffi/darcs/c2ffi</code></li>
<li><a href="http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=c2ffi-c2ffi;a=summary">Browse Online</a></li>
</ul>
<p>Please mail the <a href="mailto:c2ffi-devel@common-lisp.net">mailing list</a> with comments, patches, bug reports, etc.</p>
</div>
<div class="footer">
<a href="mailto:danieldickison at gmail">Daniel Dickison</a>. Last modified: <!--#flastmod file="index.shtml" -->
</div>
<div class="check">
<a href="http://validator.w3.org/check/referer">
Valid XHTML 1.0 Strict</a>
</div>
</body>
</html>
body {
font-family: HelveticaNeue, Helvetica, Arial, sans-serif;
padding: 3px 20px;
}
h3 {
background-color: #336699;
color: white;
border: 2px solid black;
padding: 0 5px;
margin: 2em 0 0.5em 0;
}
h4 {
margin: 0 0 0.2em;
}
p, li {
margin: 0.5em 0;
}
code {
background-color: #e7e7e7;
border: 1px solid #aaaaaa;
padding: 1px;
}
#contents a {
font-weight: bold;
}
.header {
font-size: medium;
background-color:#336699;
color:#ffffff;
border-style:solid;
border-width: 5px;
border-color:#002244;
padding: 1mm 1mm 1mm 5mm;
}
.footer {
font-size: small;
font-style: italic;
text-align: right;
background-color:#336699;
color:#ffffff;
border-style:solid;
border-width: 2px;
border-color:#002244;
padding: 1mm 1mm 1mm 1mm;
}
.footer a:link {
font-weight:bold;
color:#ffffff;
background-color: #336699;
text-decoration:underline;
}
.footer a:visited {
font-weight:bold;
color:#ffffff;
background-color: #336699;
text-decoration:underline;
}
.footer a:hover {
font-weight:bold;
color:#002244;
background-color: #336699;
text-decoration:underline; }
.check {font-size: x-small;
text-align:right;}
.check a:link { font-weight:bold;
color:#a0a0ff;
background-color: #FFFFFF;
text-decoration:underline; }
.check a:visited { font-weight:bold;
color:#a0a0ff;
background-color: #FFFFFF;
text-decoration:underline; }
.check a:hover { font-weight:bold;
color:#000000;
background-color: #FFFFFF;
text-decoration:underline; }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment