Huge update to the Allegrocl module. Better C support. C++ support

added. Documentation! Makes use of typemaps for better interface
tuning. Improved type support. Wrapping of foreign pointers in
CLOS objects; hopefully a step toward being able to extend C++
classes from Lisp.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7828 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Ahmon Dancy 2005-11-09 20:44:22 +00:00
commit f7ebb5809b
22 changed files with 3703 additions and 882 deletions

View file

@ -5,7 +5,7 @@
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="#FFFFFF">
<H1><a name="Modula3"></a>20 SWIG and Modula-3</H1>
<H1><a name="Modula3"></a>22 SWIG and Modula-3</H1>
<!-- INDEX -->
<div class="sectiontoc">
<ul>
@ -57,7 +57,7 @@ especially
<a href="Typemaps.html">typemaps</a>.
</p>
<H2><a name="modula3_overview"></a>20.1 Overview</H2>
<H2><a name="modula3_overview"></a>22.1 Overview</H2>
<p>
@ -90,7 +90,7 @@ So the introduction got a bit longer than it should ... ;-)
</p>
<H3><a name="whyscripting"></a>20.1.1 Why not scripting ?</H3>
<H3><a name="whyscripting"></a>22.1.1 Why not scripting ?</H3>
<p>
@ -126,7 +126,7 @@ are not advantages of the language itself
but can be provided by function libraries.
</p>
<H3><a name="whymodula3"></a>20.1.2 Why Modula-3 ?</H3>
<H3><a name="whymodula3"></a>22.1.2 Why Modula-3 ?</H3>
<p>
@ -166,7 +166,7 @@ it's statically typed, too.
</p>
<H3><a name="whycpp"></a>20.1.3 Why C / C++ ?</H3>
<H3><a name="whycpp"></a>22.1.3 Why C / C++ ?</H3>
<p>
@ -179,7 +179,7 @@ Even more fortunately even non-C libraries may provide C header files.
This is where SWIG becomes helpful.
</p>
<H3><a name="whyswig"></a>20.1.4 Why SWIG ?</H3>
<H3><a name="whyswig"></a>22.1.4 Why SWIG ?</H3>
<p>
@ -252,10 +252,10 @@ integrate Modula-3 code into a C / C++ project.
</p>
<H2><a name="conception"></a>20.2 Conception</H2>
<H2><a name="conception"></a>22.2 Conception</H2>
<H3><a name="cinterface"></a>20.2.1 Interfaces to C libraries</H3>
<H3><a name="cinterface"></a>22.2.1 Interfaces to C libraries</H3>
<p>
@ -404,7 +404,7 @@ and the principal type must be renamed (<tt>%typemap</tt>).
</p>
<H3><a name="cppinterface"></a>20.2.2 Interfaces to C++ libraries</H3>
<H3><a name="cppinterface"></a>22.2.2 Interfaces to C++ libraries</H3>
<p>
@ -505,10 +505,10 @@ There is no C++ library I wrote a SWIG interface for,
so I'm not sure if this is possible or sensible, yet.
</p>
<H2><a name="preliminaries"></a>20.3 Preliminaries</H2>
<H2><a name="preliminaries"></a>22.3 Preliminaries</H2>
<H3><a name="compilers"></a>20.3.1 Compilers</H3>
<H3><a name="compilers"></a>22.3.1 Compilers</H3>
<p>
@ -522,7 +522,7 @@ For testing examples I use Critical Mass cm3.
</p>
<H3><a name="commandline"></a>20.3.2 Additional Commandline Options</H3>
<H3><a name="commandline"></a>22.3.2 Additional Commandline Options</H3>
<p>
@ -599,10 +599,10 @@ Instead generate templates for some basic typemaps.
</tr>
</table>
<H2><a name="modula3_typemaps"></a>20.4 Modula-3 typemaps</H2>
<H2><a name="modula3_typemaps"></a>22.4 Modula-3 typemaps</H2>
<H3><a name="inoutparam"></a>20.4.1 Inputs and outputs</H3>
<H3><a name="inoutparam"></a>22.4.1 Inputs and outputs</H3>
<p>
@ -818,7 +818,7 @@ consist of the following parts:
</table>
<H3><a name="ordinals"></a>20.4.2 Subranges, Enumerations, Sets</H3>
<H3><a name="ordinals"></a>22.4.2 Subranges, Enumerations, Sets</H3>
<p>
@ -870,7 +870,7 @@ that I'd like to automate.
</p>
<H3><a name="class"></a>20.4.3 Objects</H3>
<H3><a name="class"></a>22.4.3 Objects</H3>
<p>
@ -883,7 +883,7 @@ is not really useful, yet.
</p>
<H3><a name="imports"></a>20.4.4 Imports</H3>
<H3><a name="imports"></a>22.4.4 Imports</H3>
<p>
@ -918,7 +918,7 @@ IMPORT M3toC;
</pre></div>
<H3><a name="exceptions"></a>20.4.5 Exceptions</H3>
<H3><a name="exceptions"></a>22.4.5 Exceptions</H3>
<p>
@ -942,7 +942,7 @@ you should declare
<tt>%typemap("m3wrapinconv:throws") blah * %{OSError.E%}</tt>.
</p>
<H3><a name="typemap_example"></a>20.4.6 Example</H3>
<H3><a name="typemap_example"></a>22.4.6 Example</H3>
<p>
@ -989,10 +989,10 @@ where almost everything is generated by a typemap:
</pre></div>
<H2><a name="hints"></a>20.5 More hints to the generator</H2>
<H2><a name="hints"></a>22.5 More hints to the generator</H2>
<H3><a name="features"></a>20.5.1 Features</H3>
<H3><a name="features"></a>22.5.1 Features</H3>
<table border summary="Modula-3 features">
@ -1029,7 +1029,7 @@ where almost everything is generated by a typemap:
</tr>
</table>
<H3><a name="pragmas"></a>20.5.2 Pragmas</H3>
<H3><a name="pragmas"></a>22.5.2 Pragmas</H3>
<table border summary="Modula-3 pragmas">
@ -1052,7 +1052,7 @@ where almost everything is generated by a typemap:
</tr>
</table>
<H2><a name="remarks"></a>20.6 Remarks</H2>
<H2><a name="remarks"></a>22.6 Remarks</H2>
<ul>