swig/SWIG/CHANGES.current
Dave Beazley 17a09e3d6c *** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4829 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-05-29 18:27:32 +00:00

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.