cleanup---and more subversion.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4009 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dave Beazley 2002-10-24 14:16:26 +00:00
commit c1f7758c75
3 changed files with 18 additions and 81 deletions

View file

@ -4,20 +4,7 @@ SWIG Features
<h2>SWIG Features</h2>
<p>
In the last five years, dozens of extension building tools have been
released---most of which can be found from the SWIG <a
href="links.html">links</a> page. All of these tools attempt to
simplify the extension building process---and the documentation for
many of them make a point of comparing themselves to SWIG. What these
comparisons don't tell you is that they are almost always based on
SWIG-1.1, a rather old, but widely distributed release dating from
1997. To be fair, SWIG-1.1 is an easy target--it did have a lot of
limitations. However, all of this is "old news" and mostly irrelevant
to the current release. Therefore, this page hopes to set the record
straight on what SWIG supports and what it doesn't support.
<p>
This information is based on the current release, SWIG-1.3.14.
This information is based on the current release, SWIG-1.3.16.
<h3>Code Generation</h3>
@ -58,7 +45,7 @@ SWIG is capable of wrapping all of ANSI C. Features include:
SWIG provides wrapping support for almost all of ANSI C++.
<ul>
<Li>All C++ datatypes (SWIG implements the full ANSI C++ type system).
<Li>All C++ datatypes.
<Li>References.
<li>Pointers to members.
<li>Classes.
@ -117,54 +104,6 @@ hierarchies, template instantiations, and more. Features include:
<li>Extended SWIG macro handling.
</ul>
<h3>SWIG <em>knows</em> C++</h3>
One of SWIG's greatest strengths is that it implements the full ANSI
C++ type system and it uses multi-pass compilation to gather a wide
range of information from input files. SWIG is fully aware of C++
semantics and is able to automatically avoid a wide variety of
potential compilation problems. Also, by relying upon compiler technology, SWIG
is able to look at the interface and make intelligent decisions about the generation of wrappers.
This also allows SWIG to provide a highly flexible set of customization features.
<h3>Everything is allowed</h3>
When considering the use of a wrapper generation tool, it's important
to read the fine-print. Although other tools might offer different
features than SWIG, they often have major limitations that are rarely
advertised. For example, if a tool claims to "parse" C++, but
fails to implement a basic feature like <tt>typedef</tt>, then that tool
probably doesn't implement the type system correctly. Similarly, tools often
place artificial limits on fundamental things like the number of
allowed arguments to a function, supported datatypes, and so forth.
Even some tools that claim to be the "leading C++
wrapping solution" are known to not support simple declarations
involving references, pointers, and other fundamental C++
datatypes---simply because these declarations are unsafe and therefore
"not allowed."
<p>
SWIG is by no means perfect and it does not claim do everything. However, a
fundamental goal of the SWIG project has been to provide basic wrapping
support for <em>all</em> of C++. In certain cases, this might be dangerous and
it might even require additional user input. Nevertheless,
SWIG gives you the freedom and the flexibility to handle difficult
real-world wrapping problems without artificial limits and without the
baggage of a programming morality agenda.
<h3>SWIG is documented</h3>
Since its initial release, SWIG has included hundreds of pages of user
documentation. This documentation describes every SWIG feature and
attempts to fully disclose SWIG's limitations (when applicable). Not
only that, the documentation specifically addresses some of the more
difficult wrapping problems.
<h3>The bottom line</h3>
Extension building is an important aspect of software development for
many C and C++ programmers. Fortunately, there are many different
tools that attempt to solve this problem. You should choose a tool
that you like and which works. We certainly hope that you
consider the use of SWIG. Better yet, we hope that you try it and like it.
</body>
</html>

View file

@ -4,6 +4,16 @@ Simplified Wrapper and Interface Generator
[ <a href="http://swig-jp.dyndns.org">Japanese</a> ]
<p>
<center>
<em>
"So, we caught one of our interns out back with our mission critical C++
code, a couple of scripting languages, and SWIG. And that boy had the
nerve to call it a 'computer science' project. We killed him--had no
other choice." -- Anonymous
</em>
</center>
<p>
SWIG is a software development tool that connects programs written in
C and C++ with a variety of high-level programming
@ -27,18 +37,12 @@ noncommercial use.
</ul>
<p>
<h3>SWIG-2.0 project</h3>
Essays related to the future of SWIG development and the ongoing
development work.
<ul>
<li> <a href="article_cpp.html">"Thoughts on the insanity of C++ Parsing"</a>. David Beazley, August 12, 2002.
<li> <a href="future.html">"SWIG-1.3.12, SWIG-2.0, and Beyond"</a>. David Beazley, June 2, 2002.
</ul>
<h3>News</h3>
<p>
<h3>News</h3>
<b>2002/10/14</b>Join us in Austin for an intense 3-day course on
<a href="http://www.enthought.com/training/building_extensions.html">
Python-C++ extension building.</a>
<p>
<b>2002/10/14</b>

View file

@ -3,12 +3,6 @@ SWIG Myths
<p>
<h2>SWIG Myths</h2>
<center>
<em>
"Don't believe everything you read."
</em>
</center>
<p>
Here are some common misconceptions about SWIG that have occasionally
appeared on other web pages and in articles--especially those that