<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta name="robots" content="index,nofollow"> <title>CKitLibrary - MLton Standard ML Compiler (SML Compiler)</title> <link rel="stylesheet" type="text/css" charset="iso-8859-1" media="all" href="common.css"> <link rel="stylesheet" type="text/css" charset="iso-8859-1" media="screen" href="screen.css"> <link rel="stylesheet" type="text/css" charset="iso-8859-1" media="print" href="print.css"> <link rel="Start" href="Home"> </head> <body lang="en" dir="ltr"> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-833377-1"; urchinTracker(); </script> <table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%> <tr> <td style = " border: 0px; color: darkblue; font-size: 150%; text-align: left;"> <a class = mltona href="Home">MLton MLTONWIKIVERSION</a> <td style = " border: 0px; font-size: 150%; text-align: center; width: 50%;"> CKitLibrary <td style = " border: 0px; text-align: right;"> <table cellspacing = 0 style = "border: 0px"> <tr style = "vertical-align: middle;"> </table> <tr style = "background-color: white;"> <td colspan = 3 style = " border: 0px; font-size:70%; text-align: right;"> <a href = "Home">Home</a> <a href = "TitleIndex">Index</a> </table> <div id="content" lang="en" dir="ltr"> The <a class="external" href="http://www.smlnj.org/doc/ckit"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit Library</a> is a C front end written in SML that translates C source code (after preprocessing) into abstract syntax represented as a set of SML datatypes. The ckit Library is distributed with SML/NJ. Due to differences between SML/NJ and MLton, this library will not work out-of-the box with MLton. <p> As of 20100402, MLton includes a port of the ckit Library synchronized with SML/NJ version 110.72. </p> <h2 id="head-0bb18642b70b9f8a9c12ccf39487328f306b8e19">Usage</h2> <ul> <li> <p> You can import the ckit Library into an MLB file with: <div> <table> <tr> <td align="center"> MLB file</td> <td align="center"> Description</td> </tr> <tr> <td> <tt>$(SML_LIB)/ckit-lib/ckit-lib.mlb</tt></td> <td> </td> </tr> </p> </table> </div> </li> <li class="gap"> <p> If you are porting a project from SML/NJ's <a href="CompilationManager">CompilationManager</a> to MLton's <a href="MLBasis"> ML Basis system</a> using <tt>cm2mlb</tt>, note that the following map is included by default: <pre>$ckit-lib.cm/ckit-lib.cm $(SML_LIB)/ckit-lib/ckit-lib.mlb </pre> This will automatically convert a <tt>$/ckit-lib.cm</tt> import in an input <tt>.cm</tt> file into a <tt>$(SML_LIB)/ckit-lib/ckit-lib.mlb</tt> import in the output <tt>.mlb</tt> file. </p> </li> </ul> <h2 id="head-dc3decbb93847518f1a049dcf49d0d7c6560bcc6">Details</h2> <p> The following changes were made to the ckit Library, in addition to deriving the <tt>.mlb</tt> file from the <tt>.cm</tt> files: </p> <ul> <li> <p> <tt>parser/parse-tree-sig.sml</tt> (modified): Rewrote use of (sequential) <tt>withtype</tt> in signature. </p> </li> <li> <p> <tt>parser/parse-tree.sml</tt> (modified): Rewrote use of (sequential) <tt>withtype</tt>. </p> </li> <li> <p> <tt>parser/grammar/c.lex.sml</tt> (modified): Rewrote use of vector literal. </p> </li> <li> <p> <tt>ast/ast-sig.sml</tt> (modified): Rewrote use of <tt>withtype</tt> in signature. </p> </li> <li> <p> <tt>ast/pp/pp-lib.sml</tt> (modified): Rewrote use of <em>or-patterns</em>. </p> </li> <li> <p> <tt>ast/pp/pp-ast-ext-sig.sml</tt> (modified): Rewrote use of <tt>signature</tt> in <tt>local</tt>. </p> </li> <li> <p> <tt>ast/pp/pp-ast-adornment-sig.sml</tt> (modified): Rewrote use of <tt>signature</tt> in <tt>local</tt>. </p> </li> <li> <p> <tt>ast/type-util-sig.sml</tt> (modified): Rewrote use of <tt>signature</tt> in <tt>local</tt>. </p> </li> <li> <p> <tt>ast/type-util.sml</tt> (modified): Rewrote use of <em>or-patterns</em>. </p> </li> <li> <p> <tt>ast/sizeof.sml</tt> (modified): Rewrote use of <em>or-patterns</em>. </p> </li> <li> <p> <tt>ast/initializer-normalizer.sml</tt> (modified): Rewrote use of <em>or-patterns</em>. </p> </li> <li> <p> <tt>ast/build-ast.sml</tt> (modified): Rewrote use of <em>or-patterns</em>. </p> </li> </ul> <h2 id="head-190aa842474f4bfcec9c8cde305af27b7d07764d">Patch</h2> <ul> <li> <p> <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-MLTONWIKIVERSION-release/lib/ckit-lib/ckit.patch?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit.patch</a> </p> </li> </ul> </div> <p> <hr> Last edited on 2010-04-02 19:22:13 by <span title="fenrir.cs.rit.edu"><a href="MatthewFluet">MatthewFluet</a></span>. </body></html>