SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
http://www.swig.org
Why did you remove the INPUT/OUTPUT/BOTH typemaps in revision 1.3 of
Lib/guile/typemaps.i? They seem to be standard in SWIG, as they are
present in the other language modules, and everyone needs them. I
suggest you put them back in.
Lib/exception.i, Source/Modules1.1/guile.cxx: I have written the
Guile-specific code for Lib/exception.i, which implements
SWIG_exception as a macro calling _SWIG_exception, which is defined in
the same file. The SWIG_*Error constants are mapped to Guile error
symbols, which are passed to scm_error. The macro uses the
preprocessor macro SCHEME_NAME, which is set at the beginning of the
function wrapper code by a modified Source/Modules1.1/guile.cxx. Here
is a test (with array.i):
(int-get '() 0) ==> signals swig-value-error
Moreover, I fixed a type-lookup bug in Lib/guile/guile.swg when
compiled -with-smobs, which had crept in from swigptr.swg. Here is a
test (again with array.i):
(define c (int-array 5))
(int-get c 0) ==> must not signal a wrong-type error
Lib/guile/guiledec.swg, Source/Modules1.1/guile.cxx: Use the
SWIG_NOINCLUDE preprocessor symbol to indicate that SWIG runtime
functions are imported from a different module, as it is done in other
language modules.
(SWIG_init) Make this function globally visible only in simple linkage
(the user should rename the function by a #define in this case). In
other linkages, having SWIG_init globally visible (in multiple
modules) just makes trouble.
Source/Modules1.1/guile.cxx (GUILE::link_variable) Printf the C
string, not the String class.
Source/SWIG1.1/swig11.h, Source/SWIG1.1/sstring.cxx: Constified two
operator arguments, to get rid of warnings issued by the SUNWSpro
C++ compiler.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@417 626c5289-ae23-0410-ae9c-e8d60b6d4f22
|
||
|---|---|---|
| Doc | ||
| Examples | ||
| Lib | ||
| Misc | ||
| Runtime | ||
| Source | ||
| Tools | ||
| Win | ||
| .cvsignore | ||
| CHANGES | ||
| configure.in | ||
| install-sh | ||
| LICENSE | ||
| Makefile.in | ||
| mkinstalldirs | ||
| README | ||
| VERSION | ||
SWIG (Simplified Wrapper and Interface Generator)
Version: 1.3 (alpha)
$Header$
Tagline: SWIG is a compiler that integrates C, C++, and Objective-C
with scripting languages including Perl, Python, Tcl, and Guile.
This distribution represents work in progress towards building a new
SWIG release. The guilty parties working on this are:
- Dave Beazley (beazley@cs.uchicago.edu) (SWIG core)
- Dustin Mitchell (djmitche@cs.uchicago.edu) (SWIG core)
- Ian Cooke (iancooke@cs.uchicago.edu) (SWIG core)
- Bryan King (bwking@midway.uchicago.edu) (SWIG core)
- Hasan Baran Kovuk (hbkovuk@midway.uchicago.edu) (SWIG core)
- Loic Dachary (loic@ceic.com) (Perl5)
- Harco de Hilster (Harco.de.Hilster@ATComputing.nl) (Java)
- Thien-Thi Nguyen (ttn@glug.org) (Guile)
***********************************************************************
***** IMPORTANT NOTICE -- READ THIS NOW! *****
***********************************************************************
If you downloaded SWIG as a prepackaged release such as SWIG1.3a2, be
advised that this distribution represents a snapshot of the most
stable part of the SWIG CVS repository. As this is an unstable
release, there is a pretty good chance that a number of features are
broken or under repair. Currently, SWIG is undergoing a large
redevelopment effort. The SWIG1.3 series of releases should be viewed
as a transitional releases leading to the eventual release of SWIG2.0.
First-time users may want to start with SWIG1.1p5 which is significantly
more stable (and includes a wider range of documentation and examples).
Please report any errors and submit patches (if possible)! We only
have access to a limited variety of hardware (Linux, Solaris, and
Windows) so your contributions help.
What's New?
===========
Here are the most notable changes (so far):
- SWIG now has a full C preprocessor.
- Code generation for the Tcl and Python modules has been
substantially improved both in terms of size and runtime
efficiency (Perl5 is coming along too).
- Java module is now included.
- A lot of minor bug fixes and cleanup.
Here are a few missing features
- The SWIG1.1 documentation system is gone and hasn't been
replaced yet. This is on the long-term to-do list.
- The Tcl7.x and Perl4 modules are deprecated and no longer
included.
- A wide variety of old SWIG command-line options and
obscure features are gone.
What's Broken?
==============
- The Guile module is undergoing a number of substantial
changes and may be inoperable in the SWIG1.3a2 release.
(3/1/00)
Installation
============
To build and install SWIG, simply type the following:
% ./configure
% make
% make install
In addition, if you need to build the runtime libraries, type
the following before doing the 'make install' step above.
% make runtime
If you don't know what the runtime libraries are, don't worry
about this step.
The Examples directory contains a few examples of using SWIG.
Notes:
(1) If you checked the code out via CVS, you will have to run autoconf
before typing 'configure.' In addition, a full build of SWIG requires
the use of bison.
(2) If you are using Windows, the easiest way to install and build
SWIG is to use the Cygwin package (http://sourceware.cygnus.com/cygwin/).
Note: Even if you build SWIG using Cygwin, the easier way to
actually use SWIG on Windows is to build your extensions using Visual C++.
The SWIG1.1p5 distribution also contains a number of examples configured
to work with Visual C++ (most of which should also work with SWIG1.3).
Documentation
=============
No documentation is currently included in this release. However, most
of the documentation for SWIG1.1 still applies. This can be obtained
on http://www.swig.org.
Participate!
============
We are looking for people who want to join the effort of getting this
next release off the ground. Please send me email for details.
-- Dave (beazley@cs.uchicago.edu)
Developer Information
=====================
The primary goal of future development is to make SWIG more modular,
extensible, and easier to maintain. To this end, the source code has
been consolidated and reorganized with the Source directory. Within
this directory, there are a number of different components:
SWIG1.1 - These two directories contain the C++ code
Modules1.1 corresponding to the SWIG1.1.x series of
releases. This code is still in use but is
slowly being deprecated.
*** Important note: ALL future SWIG development is taking place
in ANSI C. Please avoid C++ if at all possible. -- Dave ***
DOH - Object framework for the ANSI C core.
Swig - New SWIG core (ANSI C)
Preprocessor - SWIG preprocessor module
LParse - Alternative parser that is mostly compatible with 1.1.
Documentation for these components is weak or non-existent at this
time. However, this should only matter if you are actually hacking
on SWIG itself. Please bear with us.