[project @ 2000-06-08 14:59:17 by rrt]
[ghc-hetmet.git] / docs / ffi.sgml
index 85f8bcf..e59ff9e 100644 (file)
@@ -1,18 +1,3 @@
-<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> 
-
-<Article id="ffi">
-
-<ArtHeader>
-
-<Title>A Haskell foreign function interface</Title>
-<Author><OtherName>The GHC Team</OtherName></Author>
-<Address><Email>glasgow-haskell-&lcub;users,bugs&rcub;@dcs.gla.ac.uk</Email>
-</Address>
-<Edition>version 0.99</Edition>
-<PubDate>May 2000</PubDate>
-
-</ArtHeader>
-
 <Sect1 id="sec-intro">
 <Title>Introduction
 </Title>
@@ -646,90 +631,80 @@ defines the mapping between Haskell and C types.
 <Literal>Char</Literal> </Entry>
 <Entry> <Literal>HsChar</Literal> </Entry>
 <Entry> unspec. integral type </Entry>
-<Entry> <Literal>HS&lowbar;CHAR&lowbar;MIN</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;CHAR&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>HS&lowbar;CHAR&lowbar;MIN</Literal> .. <Literal>HS&lowbar;CHAR&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Int</Literal> </Entry>
 <Entry> <Literal>HsInt</Literal> </Entry>
 <Entry> signed integral of unspec. size(4) </Entry>
-<Entry> <Literal>HS&lowbar;INT&lowbar;MIN</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;INT&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>HS&lowbar;INT&lowbar;MIN</Literal> ..
+<Literal>HS&lowbar;INT&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Int8</Literal> (2) </Entry>
 <Entry> <Literal>HsInt8</Literal> </Entry>
 <Entry> 8 bit signed integral </Entry>
-<Entry> <Literal>HS&lowbar;INT8&lowbar;MIN</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;INT8&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>HS&lowbar;INT8&lowbar;MIN</Literal> 
+..
+<Literal>HS&lowbar;INT8&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Int16</Literal> (2) </Entry>
 <Entry> <Literal>HsInt16</Literal> </Entry>
 <Entry> 16 bit signed integral </Entry>
-<Entry> <Literal>HS&lowbar;INT16&lowbar;MIN</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;INT16&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>HS&lowbar;INT16&lowbar;MIN</Literal>
+.. <Literal>HS&lowbar;INT16&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Int32</Literal> (2) </Entry>
 <Entry> <Literal>HsInt32</Literal> </Entry>
 <Entry> 32 bit signed integral </Entry>
-<Entry> <Literal>HS&lowbar;INT32&lowbar;MIN</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;INT32&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>HS&lowbar;INT32&lowbar;MIN</Literal> ..
+<Literal>HS&lowbar;INT32&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Int64</Literal> (2,3) </Entry>
 <Entry> <Literal>HsInt64</Literal> </Entry>
 <Entry> 64 bit signed integral (3) </Entry>
-<Entry> <Literal>HS&lowbar;INT64&lowbar;MIN</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;INT64&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>HS&lowbar;INT64&lowbar;MIN</Literal> ..
+<Literal>HS&lowbar;INT64&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Word8</Literal> (2) </Entry>
 <Entry> <Literal>HsWord8</Literal> </Entry>
 <Entry> 8 bit unsigned integral </Entry>
-<Entry> <Literal>0</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;WORD8&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>0</Literal> ..
+<Literal>HS&lowbar;WORD8&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Word16</Literal> (2) </Entry>
 <Entry> <Literal>HsWord16</Literal> </Entry>
 <Entry> 16 bit unsigned integral </Entry>
-<Entry> <Literal>0</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;WORD16&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>0</Literal> ..
+<Literal>HS&lowbar;WORD16&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Word32</Literal> (2) </Entry>
 <Entry> <Literal>HsWord32</Literal> </Entry>
 <Entry> 32 bit unsigned integral </Entry>
-<Entry> <Literal>0</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;WORD32&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>0</Literal> ..
+<Literal>HS&lowbar;WORD32&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
 <Literal>Word64</Literal> (2,3) </Entry>
 <Entry> <Literal>HsWord64</Literal> </Entry>
 <Entry> 64 bit unsigned integral (3) </Entry>
-<Entry> <Literal>0</Literal> </Entry>
-<Entry>..</Entry>
-<Entry> <Literal>HS&lowbar;WORD64&lowbar;MAX</Literal></Entry>
+<Entry> <Literal>0</Literal> ..
+<Literal>HS&lowbar;WORD64&lowbar;MAX</Literal></Entry>
 </Row>
 <Row>
 <Entry>
@@ -737,8 +712,6 @@ defines the mapping between Haskell and C types.
 <Entry> <Literal>HsFloat</Literal> </Entry>
 <Entry> floating point of unspec. size (5) </Entry>
 <Entry> (10) </Entry>
-<Entry> </Entry>
-<Entry> </Entry>
 </Row>
 <Row>
 <Entry>
@@ -746,8 +719,6 @@ defines the mapping between Haskell and C types.
 <Entry> <Literal>HsDouble</Literal> </Entry>
 <Entry> floating point of unspec. size (5) </Entry>
 <Entry> (10) </Entry>
-<Entry> </Entry>
-<Entry> </Entry>
 </Row>
 <Row>
 <Entry>
@@ -755,8 +726,6 @@ defines the mapping between Haskell and C types.
 <Entry> <Literal>HsBool</Literal> </Entry>
 <Entry> unspec. integral type </Entry>
 <Entry> (11) </Entry>
-<Entry> </Entry>
-<Entry> </Entry>
 </Row>
 <Row>
 <Entry>
@@ -764,8 +733,6 @@ defines the mapping between Haskell and C types.
 <Entry> <Literal>HsAddr</Literal> </Entry>
 <Entry> void* (6) </Entry>
 <Entry> </Entry>
-<Entry> </Entry>
-<Entry> </Entry>
 </Row>
 <Row>
 <Entry>
@@ -773,8 +740,6 @@ defines the mapping between Haskell and C types.
 <Entry> <Literal>HsForeignObj</Literal> </Entry>
 <Entry> void* (7) </Entry>
 <Entry> </Entry>
-<Entry> </Entry>
-<Entry> </Entry>
 </Row>
 <Row>
 <Entry>
@@ -782,8 +747,6 @@ defines the mapping between Haskell and C types.
 <Entry> <Literal>HsStablePtr</Literal> </Entry>
 <Entry> void* (8) </Entry>
 <Entry> </Entry>
-<Entry> </Entry>
-<Entry> </Entry>
 </Row>
 <Row>
 <Entry>
@@ -1322,7 +1285,7 @@ contain the address of the label <Literal>freeAtLast</Literal>.
 </Sect2>
 
 </Sect1>
-
+<!-- This doesn't need to be seen in the docs
 <Sect1 id="sec-changelog">
 <Title>Change history
 </Title>
@@ -1333,14 +1296,14 @@ contain the address of the label <Literal>freeAtLast</Literal>.
 <ListItem>
 
 <Para>
-0.95 --&gt; 0.96:
+0.95 &gt; 0.96:
 
 <ItemizedList>
 <ListItem>
 
 <Para>
 changed the C representation of <Literal>Haskell&lowbar;ForeignObj</Literal> from
-<Literal>(long*)</Literal> to <Literal>(void*)</Literal> -- ANSI C guarantees that <Literal>(void*)</Literal>
+<Literal>(long*)</Literal> to <Literal>(void*)</Literal>  ANSI C guarantees that <Literal>(void*)</Literal>
 is the widest possible data pointer.
 </Para>
 </ListItem>
@@ -1365,7 +1328,7 @@ Replaced confusing uses of <Literal>stdcall</Literal> with <Literal>ccall</Liter
 <ListItem>
 
 <Para>
-0.96 --&gt; 0.97:
+0.96 &gt; 0.97:
 
 <ItemizedList>
 <ListItem>
@@ -1417,7 +1380,7 @@ FFI types rather than the longer <Literal>Haskell&lowbar;</Literal>.
 <ListItem>
 
 <Para>
-0.97 --&gt; 0.98:
+0.97 &gt; 0.98:
 
 <ItemizedList>
 <ListItem>
@@ -1449,7 +1412,7 @@ functions.
 <ListItem>
 
 <Para>
-0.98 --&gt; 0.99:
+0.98 &gt; 0.99:
 
 <ItemizedList>
 <ListItem>
@@ -1475,7 +1438,7 @@ in that section was contributed by Sven Panne.)
 <ListItem>
 
 <Para>
-0.99 --&gt; 0.99.1:
+0.99 &gt; 0.99.1:
 
 <ItemizedList>
 <ListItem>
@@ -1497,5 +1460,4 @@ in that section was contributed by Sven Panne.)
 </Para>
 
 </Sect1>
-
-</Article>
+-->