git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4829 626c5289-ae23-0410-ae9c-e8d60b6d4f22
263 lines
11 KiB
Text
263 lines
11 KiB
Text
Version 1.3.20 (In progress)
|
|
============================
|
|
05/29/2003: beazley
|
|
Refinement to default typemap matching and arrays. When an
|
|
array is declared like this:
|
|
|
|
int foo[4];
|
|
|
|
The default typemap now resolves to
|
|
|
|
SWIGTYPE [ANY]
|
|
|
|
If no match is found for that, it then resolves to
|
|
|
|
SWIGTYPE []
|
|
|
|
If no array dimension is specified in the original declaration,
|
|
the SWIGTYPE [] is used right away.
|
|
|
|
Note: This change has been made to resolve problems related to
|
|
arrays with and without dimensions. For example, sometimes SWIG
|
|
was generating setter functions for array variables with no dimensions
|
|
(an error). Likewise, SWIG sometimes made arrays with dimensions
|
|
read-only (also an error). This fixes the arrays_global test
|
|
problem.
|
|
|
|
05/28/2003: beazley
|
|
Fixed subtle type handling bug with references and pointers.
|
|
If you had functions like this:
|
|
|
|
typedef Foo Bar;
|
|
|
|
Foo *func1();
|
|
void func2(Bar &x);
|
|
|
|
Then func2() wouldn't accept objects returned by func1()
|
|
because of a type error. It should work now.
|
|
Reported by Brian Yang.
|
|
|
|
05/21/2003: cheetah (William Fulton)
|
|
Fixes to some of the Visual C++ example project files which would not
|
|
work with spaces in the paths held in the environment variables used to
|
|
point to the target language's library / include directory.
|
|
SF bug #740769
|
|
|
|
05/21/2003: songyanf (Tiger)
|
|
Added -contracts option.
|
|
First try of the idea of "Wrap by Contract":
|
|
build up realiable cross-language module by wrapping with SWIG.
|
|
Implemented basic assertion
|
|
(preassertion & postassertion & invariant)
|
|
for simple C/C++ functions.
|
|
|
|
Current format of contracts are:
|
|
%contract class_name :: func_name (paras...) {
|
|
require:
|
|
boolean exprs;
|
|
exprs;
|
|
ensure:
|
|
boolean expr;
|
|
exprs;
|
|
invariant:
|
|
boolean expr;
|
|
exprs;
|
|
}
|
|
|
|
*** NEW FEATURE ***
|
|
|
|
05/19/2003: cheetah (William Fulton)
|
|
Build tweaks. There were a few preprocessor definitions which were
|
|
specified in the Makefile for passing on the commandline when compiling.
|
|
These are now all defined in swigconfig.h. Autoconf doesn't normally
|
|
allow installation directories to be defined in this config header file,
|
|
but an autoconf archive macro enables this. This macro along with future
|
|
autoconf macros are going to be put in the Tools/config directory.
|
|
|
|
'swig -version' now reports the target build platform.
|
|
|
|
05/11/2003: cheetah (William Fulton)
|
|
[C# and Java] Fix to the following typemaps:
|
|
|
|
javabase, javainterfaces, javaimports, javaclassmodifiers,
|
|
javaptrconstructormodifiers, javafinalize, javagetcptr & javacode.
|
|
|
|
These are the typemaps for modifying/generating proxy classes.
|
|
Previously the typemaps would use the proxy class name and not the
|
|
C++ type, which was inconsistent with all other typemaps.
|
|
|
|
In most circumstances the proxy class name and the C++ class name/type
|
|
is the same except for classes in namespace, templated classes etc. so
|
|
this shouldn't affect most cases.
|
|
|
|
*** POTENTIAL INCOMPATIBILITY FOR JAVA and C# MODULES ***
|
|
|
|
05/01/2003: beazley
|
|
Fixed problem with return by value, const, and private constructors.
|
|
For example:
|
|
|
|
class B {
|
|
private:
|
|
B();
|
|
public:
|
|
B(const B&);
|
|
};
|
|
|
|
class A {
|
|
...
|
|
const B returnB() const;
|
|
...
|
|
};
|
|
|
|
Problem and patch suggestion reported by Bill Hoffman.
|
|
|
|
04/29/2003: cheetah (William Fulton)
|
|
Build changes:
|
|
- Single autoconf invocation - autoconf in the Tools directory has gone.
|
|
|
|
- Libtool bootstrapped when running autogen.sh. This requires anyone
|
|
using the cvs version of SWIG to have libtool installed on their
|
|
machine. Suggest version 1.4.2 or higher, preferably the latest - 1.5.
|
|
|
|
- Automake is now used to build the runtime libraries in conjunction
|
|
with libtool.
|
|
|
|
- Runtime libraries are now successfully built as DLLs on Cygwin.
|
|
|
|
- Skipping languages is no longer just determined in the top level
|
|
makefile but in configure.in. This info is used for building
|
|
the runtime libraries and for running the examples and test-suite.
|
|
|
|
- These changes have fixed multiple build directory builds, that is
|
|
building from directories other than the top level directory.
|
|
Installation from multiple build directories also working. An initial
|
|
configure in the top level directory is no longer needed as described
|
|
in 04/02/2003 entry. A 'make distclean' will be needed before building
|
|
in a directory other than the top level directory if the autotools
|
|
have been run from this top level directory at some point, but
|
|
autoconf will tell you this. Note that 'make check' only works from
|
|
the top level directory at the moment.
|
|
|
|
04/28/2003: beazley
|
|
Fixed [ 723471 ] Wrapper_print() fails with preprocessor directives.
|
|
|
|
04/28/2003: beazley
|
|
Minor refinement of const static member variable handling
|
|
described in CHANGES 08/11/2002. Previously, SWIG merely
|
|
checked to see if there was an initializer in the declaration.
|
|
Now, SWIG additionally checks to make sure the static member
|
|
is const.
|
|
|
|
04/25/2003: ljohnson (Lyle Johnson)
|
|
[Ruby] Added a kind of limited support for multiple inheritance,
|
|
activated using the -minherit command-line option. I've also updated
|
|
the "C++ Inheritance" section of the Ruby documentation to discuss
|
|
how this works, and its limitations. Also also modified the minherit.i
|
|
test case to run against this.
|
|
|
|
04/25/2003: ljohnson (Lyle Johnson)
|
|
[Ruby] Added the -globalmodule command-line option for the Ruby
|
|
module, for wrapping stuff into the global module (Kernel) instead
|
|
of a nested module. Updated documentation accordingly.
|
|
|
|
04/23/2003: mrose (Mark Rose)
|
|
Fixed symname error in director calls to Python methods
|
|
that extend C++ operators.
|
|
|
|
Stopped director destructor wrappers from calling __set_up,
|
|
which was leaving the director flag in an inconsistent state.
|
|
|
|
04/23/2003: beazley
|
|
Fixed problem with namespace resolution and nested namespaces.
|
|
Reported by Alfred Lorber (and Marcelo Matus).
|
|
|
|
04/16/2003: cheetah (William Fulton)
|
|
Patch for Java examples and test-suite to run on Mac OS X.
|
|
|
|
04/15/2003: ljohnson (Lyle Johnson)
|
|
[Ruby] Incorporated Nobu Nakada's patches for supporting the Ruby
|
|
1.8 allocation framework.
|
|
|
|
04/15/2003: ljohnson (Lyle Johnson)
|
|
[Ruby] Replaced all uses of the deprecated STR2CSTR() macro with the
|
|
safer StringValuePtr() macro. For more information, see ruby-talk:67059
|
|
and follow-ups to that post.
|
|
|
|
04/11/2003: beazley
|
|
Fixed problem with preprocessor macro expansion. For example:
|
|
|
|
#define min(x,y) ((x) < (y)) ? (x) : (y)
|
|
int f(int min);
|
|
|
|
Reported by Sebastien Recio.
|
|
|
|
04/10/2003: cheetah (William Fulton)
|
|
[Java] Added a runtime check to typemaps in arrays_java.i library to check
|
|
that the Java array passed in is the same size as the C array and throw an
|
|
exception if not.
|
|
|
|
Also fix to use delete instead of free for arrays created using new.
|
|
|
|
04/07/2003: cheetah (William Fulton)
|
|
Remove GCC3 warning when compiling the examples and test-suite:
|
|
|
|
cc1plus: warning: changing search order for system directory "/usr/include"
|
|
cc1plus: warning: as it has already been specified as a non-system directory
|
|
|
|
See SF patch #715531 submitted by Gerald Williams
|
|
|
|
04/03/2003: cheetah (William Fulton)
|
|
[C#] Improved wrapping of enums and constants. These were previously
|
|
wrapped as C# variables rather than constants. Either these are wrapped
|
|
as readonly (runtime) constants or compile time constants, depending on
|
|
the %javaconst directive (The directive is likely to change name soon).
|
|
For example wrapping:
|
|
%javaconst(0);
|
|
#define ABC 22
|
|
%javaconst(1) XYZ;
|
|
#define XYZ 33
|
|
is now:
|
|
public static readonly int ABC = examplePINVOKE.get_ABC();
|
|
public const int XYZ = 33;
|
|
|
|
04/03/2003: cheetah (William Fulton)
|
|
[Java] Global constants and enums are put in their own interface called
|
|
xxxConstants, where xxx is the module name. This is an improvement as
|
|
it is possible to derive (implement) a Java class from the xxxConstants
|
|
interface to improve the syntax; namely when wrapping:
|
|
enum {ONE=1, TWO, THREE};
|
|
accessing these from a Java class implementing xxxConstants is neater:
|
|
int number = ONE;
|
|
than the previous:
|
|
int number = xxx.ONE;
|
|
|
|
Patch submitted by Dave Dribin.
|
|
|
|
04/02/2003: cheetah (William Fulton)
|
|
Build improvements for multiple builds. This allows one to build
|
|
the SWIG executable and runtime libraries for different platforms/compilers
|
|
etc by running configure in different directories. This isn't 100% just
|
|
yet and won't be until libtool is better configured... a 'configure' and
|
|
'make distclean' needs to be run in the root directory before it all works.
|
|
For example:
|
|
$ ./configure
|
|
$ make distclean
|
|
$ mkdir config1; cd config1; ../configure CC=gcc CXX=g++; make; cd ..
|
|
$ mkdir config2; cd config2; ../configure CC=cc CXX=c++; make; cd ..
|
|
|
|
To be improved. A 'make check' does not work yet either.
|
|
|
|
04/01/2003: beazley
|
|
Fixed template partial specialization argument expansion bug.
|
|
This showed up when trying to use std_vector.i with vectors
|
|
of pointers.
|
|
|
|
03/31/2003: cheetah (William Fulton)
|
|
Fix for parallel make builds of SWIG, for example
|
|
make -j 4
|
|
Build failure reported by Bill Clarke.
|
|
|
|
03/28/2003: beazley
|
|
Released 1.3.19.
|
|
|
|
|