git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5108 626c5289-ae23-0410-ae9c-e8d60b6d4f22
699 lines
30 KiB
Text
699 lines
30 KiB
Text
Version 1.3.20 (In progress)
|
||
============================
|
||
09/12/2003: cheetah (William Fulton)
|
||
[C#] - Typemaps added for std::string and const std::string &.
|
||
- New delegate for creating a C# string given a char *. It
|
||
can be used by calling SWIG_csharp_string_callback as shown
|
||
in the std::string 'out' typemap. Useful if the return type is
|
||
mapped to a C# string and the calling function is responsible
|
||
for cleaning up memory as the C# garbage collector doesn't
|
||
free the memory created in C/C++ and then returned as a C# string.
|
||
- The exception delegates have moved into an inner class in the
|
||
intermediate class, thereby freeing up the static constructor.
|
||
|
||
09/11/2003: beazley
|
||
(Internals)
|
||
Major refactoring of iteration over lists and hashes. The
|
||
DOH library now uses iterators. They work like this:
|
||
|
||
List *l = (some list);
|
||
|
||
Iterator i;
|
||
for (i = First(l); i.item; i = Next(i)) {
|
||
// i.item contains the actual list item.
|
||
// i.item is NULL at end of list
|
||
...
|
||
}
|
||
|
||
Hash *h = (some hash);
|
||
Iterator j;
|
||
for (j = First(h); j.item; j = Next(j)) {
|
||
// j.item contains hash table item
|
||
// j.key contains hash table key
|
||
// Both j.item and j.key are NULL at end
|
||
...
|
||
}
|
||
|
||
The old iteration functions Firstitem(), Nextitem(), Firstkey(),
|
||
and Nextkey() are gone.
|
||
|
||
The new iterators are simpler, result in better memory use,
|
||
and may be faster. Also, there are no longer any problems
|
||
iterating over the same list/hash in multiple places at
|
||
the same time. For example, this is fine:
|
||
|
||
Iterator i,j;
|
||
for (i = First(l); i.item; i = Next(i)) {
|
||
for (j = First(l); j.item; j = Next(j)) {
|
||
...
|
||
}
|
||
}
|
||
|
||
(This never worked in previous versions).
|
||
*** POTENTIAL INCOMPATIBILITY ***. This will probably break
|
||
third party extensions to SWIG (or give them further encouragement
|
||
to join the SWIG CVS-tree :-).
|
||
|
||
09/10/2003: mkoeppe (Matthias Koeppe)
|
||
[Guile] Fix memory leaks in the "list-vector.i" typemaps.
|
||
|
||
09/09/2003: mkoeppe (Matthias Koeppe)
|
||
[Chicken] Use C_mk_bool rather than C_mkbool. This fixes
|
||
the wrapping of boolean values for Chicken 1.10 and newer.
|
||
Reported by Dave <hundo@yahoo.com> / Felix Winkelmann
|
||
<felix@proxima-mt.de>.
|
||
|
||
09/05/2003: cheetah (William Fulton)
|
||
[Java] Directors implemented for Java. In summary this is a big new feature
|
||
which supports upcalls from C++ to Java. Code is generated to support C++
|
||
callbacks to call into Java and true polymorphic behaviour for Java classes
|
||
derived from C++ classes. See java.html for details. Contributed by
|
||
Scott Michel.
|
||
|
||
09/05/2003: Tiger
|
||
Created contract example directory at /SWIG/Examples/contract
|
||
Added simple contract examples (simple_c & simple_cxx)
|
||
Modified contract module's output format
|
||
|
||
*** NEW FEATURE ***
|
||
|
||
09/01/2003: cheetah (William Fulton)
|
||
Test-suite build improvements:
|
||
- Multiple build directories working for the test suite, so it is now
|
||
possible to run configure in multiple subdirectories and run the test
|
||
suite in each of these sub directories.
|
||
- 'make distclean' fixed so it doesn't bomb out on the Examples directory
|
||
when using multiple subdiretory builds. Required the following directories
|
||
to be moved:
|
||
Examples/GIFPlot/Perl -> Examples/GIFPlot/Perl5
|
||
Examples/GIFPlot/Php -> Examples/GIFPlot/Php4
|
||
These new directories used to be symbolic links to the old directory.
|
||
Also the Examples/test-suite/Perl symbolic link has been removed.
|
||
- Running the test-suite, other than from the root directory, say
|
||
in Examples/test-suite/python will now display all the code being
|
||
executed.
|
||
- The following 3 C# compilers are detected during configure and work with
|
||
the test-suite: Mono, Portable.NET and Microsoft.
|
||
|
||
09/01/2003: Tiger
|
||
Added inheritance support for design by contract feature.
|
||
|
||
09/01/2003: beazley
|
||
Fixed [ 794914 ] Wrong types in template specialization.
|
||
SWIG was not handling arguments correctly in template
|
||
partial specialization. For example,
|
||
|
||
template<class T> class Foo<T *> {
|
||
public:
|
||
T *blah();
|
||
};
|
||
|
||
%template(FooInt) Foo<int *>;
|
||
|
||
in this class, the return type of blah was set to
|
||
'int **', but it should really be 'int *'. This has been
|
||
fixed, but it will affect all prior uses of partial
|
||
specialization.
|
||
|
||
09/01/2003: beazley
|
||
Fixed [ 786394 ] Patch for generated perl code does not compile under RedHat9.
|
||
Reported by Scott Finneran.
|
||
|
||
09/01/2003: beazley
|
||
Fixed [ 791579 ] (unsigned) long long handled incorrectly (Tcl).
|
||
This was an error in the Tcl typemaps.i file.
|
||
Reported by Kjell Wooding.
|
||
|
||
09/01/2003: beazley
|
||
Fixed [ 797573 ] no way to rename classes coming from C structures.
|
||
This problem relates to renaming of anonymous structures with a
|
||
typedef. For example:
|
||
|
||
%rename(Bar) Foo;
|
||
typedef struct {
|
||
...
|
||
} Foo;
|
||
|
||
Reported by Britton Leo Kerin.
|
||
|
||
09/01/2003: beazley
|
||
Fixed [ 797576 ] -help seems to imply that only tcl-specific options exist.
|
||
Added a comment to alert user to other options.
|
||
Reported by Britton Leo Kerin.
|
||
|
||
09/01/2003: beazley
|
||
Fixed [ 798205 ] Segfault in SWIG_ConvertPtr.
|
||
Reported by Prabhu Ramachandran.
|
||
|
||
08/30/2003: mrose (Mark Rose)
|
||
Modified the director typemaps in python/std_complex.i to use the
|
||
new-style macro and conversion functions, which eliminated some
|
||
redundant code. Fixed a few bugs in these typemaps as well, although
|
||
more testing is needed.
|
||
|
||
08/29/2003: mrose (Mark Rose)
|
||
Completed initial support for wrapping abstract classes with directors.
|
||
Constructor wrappers will be generated for abstract classes that have
|
||
directors, and instances of the director classes will be created regardless
|
||
of whether the proxy class has been subclassed in the target language.
|
||
No checks are made during construction to ensure that all pure virtual
|
||
methods are implemented in the target language. Instead, calls to
|
||
unimplemented methods will throw SWIG_DIRECTOR_PURE_VIRTUAL_EXCEPTION
|
||
exceptions in C++.
|
||
|
||
Integrated Prabhu Ramachandran's typemap patches, which provide director
|
||
typemap support for enums and std::size_t, and fix a couple bugs in the
|
||
director std::vector<> typemaps.
|
||
|
||
08/29/2003: cheetah (William Fulton)
|
||
[C#] Implemented exception handling for throwing C# exceptions from C/C++ code.
|
||
A few delegate functions are available for calling which then throw the C#
|
||
exception. Use the SWIG_CSharpThrowException function from C/C++ typemaps.
|
||
See the generated wrapper code or csharphead.swg for all available exceptions.
|
||
Example:
|
||
|
||
SWIG_CSharpThrowException(SWIG_CSharpException, "exception description");
|
||
|
||
The 'throws' typemaps are also now implemented, so code is automatically
|
||
generated to convert any C++ exception into a C# System.Exception when the C++
|
||
method declares an exception specification such as:
|
||
|
||
int foo() throw(Bar);
|
||
|
||
Also any parameters that are references to a C++ class or a class passed by value
|
||
and are passed as a C# null will now throw a C# NullReferenceException.
|
||
|
||
08/29/2003: cheetah (William Fulton)
|
||
[C#] Fix to match the calling convention of all pinvoke methods so that they
|
||
match the calling convention used by default in the C# 'static extern' declarations
|
||
(__stdcall is used on Windows).
|
||
|
||
08/19/2003: cheetah (William Fulton)
|
||
[Java] Reworked std::string typemaps. Fixes a number of string in std namespace
|
||
problems. For example %template vector<string>. The templated class' get method
|
||
wasn't returning a Java String, but a SWIGTYPE_p_string. Reported
|
||
by Zach Baum.
|
||
|
||
08/15/2003: beazley
|
||
Fixed [ 763522 ] 1.3.19 segfault in SwigType_add_pointer/DohInsertitem.
|
||
Related to problem with unnamed class handling in Perl module.
|
||
|
||
08/15/2003: beazley
|
||
Fixed [ 763563 ] Missing indication of optional arguments.
|
||
Tcl module. Reported by Krzysztof Kozminski.
|
||
|
||
08/15/2003: beazley
|
||
Fixed [ 787432 ] long param handled as int. Tcl module
|
||
now uses Tcl_GetLongFromObj to convert integer values.
|
||
|
||
08/11/2003: beazley
|
||
Fixed [ 775989 ] numeric template parameters. There were
|
||
some errors in template expansion related to the use of
|
||
arrays where the array dimension was a template parameter.
|
||
It should work now. Reported by Bryan Green.
|
||
|
||
08/10/2003: mrose (Mark Rose)
|
||
Added a director typemap (outv) for return by value and cleaned up up a few
|
||
of the commented director typemaps.
|
||
|
||
08/10/2003: mrose (Mark Rose)
|
||
Fixed constructor generation for director classes to ignore private
|
||
constructors. Protected constructors are also ignored for now, pending
|
||
a solution to the problem of wrapping classes that only define protected
|
||
constructors.
|
||
|
||
08/07/2003: cheetah (William Fulton)
|
||
New commandline option -outdir <dir> to specify where the language specific
|
||
files are to be generated. This is useful for target languages like Python,
|
||
Java etc which generate proxy files in the appropriate language.
|
||
This option does not apply to the C/C++ wrapper file.
|
||
|
||
08/07/2003: cheetah (William Fulton)
|
||
On Windows the generated files (other than the _wrap.c or _wrap.cxx files)
|
||
were sometimes incorrectly being generated into the current directory unless
|
||
the input file used the Unix path separator. The Windows path separator
|
||
should now be used. Bug reported by Robert Davies.
|
||
|
||
08/07/2003: beazley
|
||
Added array variable set typemap to Perl module.
|
||
|
||
08/07/2003: beazley
|
||
Fixed [ 775677 ] Array init causes codegen bug..
|
||
|
||
08/07/2003: beazley
|
||
Fixed [ 779062 ] Class"\n"::foo not supported. SWIG
|
||
should now correctly handle whitespace in between
|
||
namespace qualifiers. For example "A :: Foo :: Bar".
|
||
|
||
07/31/2003: cheetah (William Fulton)
|
||
Fixes for parameters which are classes that are passed by value and have
|
||
a default value. A copy constructor for SwigValueWrapper is required
|
||
(SF #780056). Also fixed memory leak in these circumstances. These mods
|
||
also fix SF #780054.
|
||
|
||
07/28/2003: beazley
|
||
Improved run-time error message for pointers in Python module.
|
||
Contributed by Zooko.
|
||
|
||
07/10/2003: ballabio (Luigi Ballabio)
|
||
[Almost all languages] Wrappers for std::pair added.
|
||
Typemaps for Python, Ruby, Guile and MzScheme.
|
||
|
||
07/01/2003: mkoeppe (Matthias Koeppe)
|
||
[Chicken] Handle the case of more than one argout typemap
|
||
per function.
|
||
|
||
06/29/2003: cheetah (William Fulton)
|
||
[Java, C#] SF #670949 request. The destructor wrapper function name is now
|
||
configurable. A new attribute called methodname in the
|
||
javadestruct/javadestruct_derived (Java) or csdestruct/csdestruct_derived (C#)
|
||
typemaps specifies the method name. For example in Java the destructor is
|
||
wrapped by default with the delete method:
|
||
|
||
%typemap(javadestruct, methodname="delete") SWIGTYPE {...}
|
||
|
||
06/27/2003: cheetah (William Fulton)
|
||
[Java, C#] The throws attribute for adding exception classes to the throws
|
||
clause also now works with the following typemaps:
|
||
newfree
|
||
javain, javaout (Java)
|
||
csin, csout (C#)
|
||
|
||
For example, the 'AnException' will be added to the throws clause in the
|
||
proxy function:
|
||
|
||
%typemap(javaout, throws="AnException") int {
|
||
int returnValue=$jnicall;
|
||
if (returnValue==0) throw new AnException("Value must not be zero");
|
||
return returnValue;
|
||
}
|
||
|
||
06/25/2003: mrose (Mark Rose)
|
||
[Python] Director typemap marshalling checks for null pointers when
|
||
walking the parameter list instead of relying soley on the parameter
|
||
count. Cures a segfault that occured for multiple argument inv typemaps.
|
||
Someone with more Swig experience should probably review this code.
|
||
|
||
06/24/2003: mkoeppe (Matthias Koeppe)
|
||
[Chicken] Don't emit calls to "C_check_for_interrupt",
|
||
which may result in an endless loop. Patch by felix@proxima-mt.de.
|
||
|
||
06/20/2003: cheetah (William Fulton)
|
||
[C#] Finalizers now use destructor syntax as the override which was used in
|
||
the Finalize method is not in the ECMA standards, spotted by the MS compiler.
|
||
|
||
06/10/2003: cheetah (William Fulton)
|
||
[C#] A number of changes have been made to remove the Java naming
|
||
that was used in the C# module.
|
||
|
||
Typemap name changes:
|
||
jni -> ctype
|
||
jtype -> imtype
|
||
jstype -> cstype
|
||
javain -> csin
|
||
javaout -> csout
|
||
javainterfaces -> csinterfaces
|
||
javabase -> csbase
|
||
javaclassmodifiers -> csclassmodifiers
|
||
javacode -> cscode
|
||
javaimports -> csimports
|
||
javaptrconstructormodifiers -> csptrconstructormodifiers
|
||
javagetcptr -> csgetcptr
|
||
javafinalize -> csfinalize
|
||
|
||
Feature name changes:
|
||
javaconst -> csconst
|
||
javamethodmodifiers -> csmethodmodifiers
|
||
|
||
Pragma changes:
|
||
pragma(java) -> pragma(csharp)
|
||
jniclassbase -> imclassbase
|
||
jniclassclassmodifiers -> imclassclassmodifiers
|
||
jniclasscode -> imclasscode
|
||
jniclassimports -> imclassimports
|
||
jniclassinterfaces -> imclassinterfaces
|
||
|
||
Special variable name changes:
|
||
$javaclassname -> $csclassname
|
||
$javainput -> $csinput
|
||
$jnicall -> $imcall
|
||
|
||
This will break SWIG interface files that use these typemaps, features
|
||
and pragmas. Please update your code or use macros for backwards
|
||
compatibility.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY FOR C# MODULE ***
|
||
|
||
06/10/2003: mkoeppe (Matthias Koeppe)
|
||
[MzScheme] Applied MzScheme module updates contributed by
|
||
John Lenz <jelenz@students.wisc.edu>.
|
||
|
||
- Updated mzscheme to use SWIG's common runtime type
|
||
system from common.swg.
|
||
|
||
- The Lib/mzscheme directory has been reorganized to
|
||
standardize names across the language modules:
|
||
mzscheme.i was moved to mzscheme.swg, mzscheme.swg and
|
||
mzschemedec.swg have been removed, mzrun.swg (which
|
||
contains the runtime code) has been added.
|
||
|
||
- The swig_proxy structure was renamed to swig_mz_proxy.
|
||
swig_mz_proxy now contains a pointer to a swig_type_info
|
||
structure.
|
||
|
||
- Added varin and varout typemaps for SWIGTYPE [] and
|
||
SWIGTYPE &.
|
||
|
||
- Garbage collection by calling scheme_add_finalizer() has
|
||
been added.
|
||
|
||
*** NEW FEATURE [MzScheme] ***
|
||
|
||
06/10/2003: cheetah (William Fulton)
|
||
[Java] New typemaps: javadestruct and javadestruct_derived
|
||
for the C++ destructor wrapper. The javadestruct version gets used by
|
||
classes at the top of an inheritance chain and the javadestruct_derived
|
||
version gets used by other classes.
|
||
|
||
[C#] cildispose and cildisposeoverride typemaps replaced by
|
||
csdestruct and csdestruct_derived typemaps. The delete()
|
||
method has been removed and its functionality put into these
|
||
typemaps designed for the Dispose() method.
|
||
|
||
- New typemaps csinterfaces and csinterfaces_derived replace
|
||
the javainterfaces typemap. Also fixes the peculiarity of all classes
|
||
in an inheritance chain individually deriving from the IDisposable
|
||
interface.
|
||
|
||
- New typemap csfinalize for finalizers. C++ destructors are now called
|
||
by garbage collector during finalization. Problem reported by
|
||
Andreas Sch<63>rk.
|
||
|
||
06/10/2003: Tiger
|
||
Modified contract code for error message output.
|
||
Contract code can now print out simple error message.
|
||
Modified contract code to prepare for inheritance
|
||
|
||
06/03/2003: mkoeppe
|
||
[Guile] Applied Guile module updates contributed by
|
||
John Lenz <jelenz@students.wisc.edu>.
|
||
|
||
- SWIG currently uses Guile's gh_ API, which is marked as
|
||
deprecated in Guile 1.6 and will be removed in Guile
|
||
1.9. This change introduces a command-line flag "-scm"
|
||
which causes SWIG to generate wrappers that use Guile's
|
||
SCM API instead; this requires Guile >= 1.6.
|
||
|
||
- The Lib/guile directory has been reorganized to
|
||
standardize names across language modules: guiledec.swg
|
||
and guile.swg have been moved into guile_gh_run.swg,
|
||
guile.i has been moved to guile_gh.swg, guile_scm.swg
|
||
and guile_scm_run.swg which contain the SCM API stuff
|
||
have been added
|
||
|
||
- ghinterface.i, which contains the defines from the gh_
|
||
functions to the scm_functions has been added
|
||
|
||
- The API for dealing with pointer objects is now
|
||
SWIG_ConvertPtr, SWIG_MustGetPtr, SWIG_NewPointerObj.
|
||
|
||
- Added varin and varout typemaps for SWIGTYPE [] and SWIGTYPE &
|
||
|
||
- Garbage collection has been added.
|
||
|
||
*** NEW FEATURE [Guile] ***
|
||
|
||
06/01/2003: cheetah (William Fulton)
|
||
Dimensionless arrays such as
|
||
|
||
int foo[] = {1, 2};
|
||
extern int bar[];
|
||
|
||
produce a warning that the variable is read-only. Depending on the target
|
||
language, this used to cause compile errors or generate a setter that
|
||
generated a runtime error. A setter cannot be automatically generated
|
||
because the array size cannot be determined by SWIG. A varin, globalin
|
||
or memberin typemap (depending on the target language) must be written
|
||
by the user.
|
||
|
||
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.
|
||
|
||
|