*** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4624 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
fb919e7ad4
commit
90ecfff2a9
1 changed files with 3 additions and 572 deletions
|
|
@ -1,576 +1,7 @@
|
|||
Version 1.3.18 (In progress)
|
||||
Version 1.3.19 (In progress)
|
||||
============================
|
||||
|
||||
03/21/2003: beazley
|
||||
Fixed two problems with the %extend directive, overloading, and
|
||||
template expansion. See the 'template_extend_overload' and
|
||||
'template_extend_overload_2' tests in Examples/test-suite for
|
||||
details.
|
||||
|
||||
03/20/2003: cheetah (William Fulton)
|
||||
[C#] Added some typemaps as suggested by Andreas Schoerk for handling
|
||||
parameters that are passed as pointers or by reference. These have
|
||||
been put in typemaps.i.
|
||||
|
||||
03/20/2003: beazley
|
||||
Fixed a C++ scoping bug related to code like this:
|
||||
|
||||
class Foo {
|
||||
public:
|
||||
int Foo::bar();
|
||||
};
|
||||
|
||||
Previously, SWIG just tossed out the Foo::bar() declaration. Now,
|
||||
the declaration is wrapped provided that the prefix is exactly the
|
||||
same as the current scope (including any enclosing namespaces).
|
||||
Reported by Bruce Lowery.
|
||||
|
||||
03/20/2003: beazley
|
||||
Incorporated [ 696516 ] Enabling exception processing for data member access.
|
||||
In some compilers, attribute access can generate exceptions. However,
|
||||
SWIG ordinarily assumes that no exceptions will be raised. To disable this,
|
||||
use the %feature("allowexcept"). For example:
|
||||
|
||||
%feature("allowexcept") Foo::x;
|
||||
...
|
||||
class Foo {
|
||||
public:
|
||||
int x; /* Exception handling enabled */
|
||||
...
|
||||
};
|
||||
|
||||
Patch contributed by Yakov Markovitch.
|
||||
|
||||
03/20/2003: beazley
|
||||
Incorporated Patch. [ 701860 ] Improve Performance (python proxies).
|
||||
Gives a performance boost to proxy class code and the management of the
|
||||
.this and .thisown attributes. Contributed by Mike Romberg.
|
||||
|
||||
03/19/2003: cheetah (William Fulton)
|
||||
[C# and Java] Added missing vararg support.
|
||||
|
||||
03/18/2003: mrose (Mark Rose)
|
||||
Removed code related to tagging individual methods for directors.
|
||||
The concept of having directors for some but not all virtual methods
|
||||
of a class is deeply flawed. The %feature("nodirector") tag is also
|
||||
gone.
|
||||
|
||||
Directors are off by default. To enable them for a class, issue
|
||||
%feature("director") classname; which will create director methods
|
||||
for every virtual method in the hierarchy of the class.
|
||||
|
||||
03/17/2003: beazley
|
||||
Fixed a subtle problem with passing arguments of type function. For
|
||||
example:
|
||||
|
||||
int foo(int x(int, int));
|
||||
|
||||
or
|
||||
|
||||
typedef int binop_t(int, int);
|
||||
int foo(binop_t x);
|
||||
|
||||
In old versions, this would produce code that wouldn't compile. Now,
|
||||
SWIG merely adds an extra pointer, making these declarations the same
|
||||
as:
|
||||
|
||||
int foo(int (*x)(int, int));
|
||||
|
||||
typedef int binop_t(int, int);
|
||||
int foo(binop_t *x);
|
||||
|
||||
Reported by Garth Bushell.
|
||||
|
||||
03/17/2003: mrose (Mark Rose)
|
||||
Fixed the return statement for director base class calls that have no
|
||||
return value.
|
||||
|
||||
03/15/2003: beazley
|
||||
Fixed a problem with const smart-pointer wrapping. For example:
|
||||
|
||||
class Foo {
|
||||
public:
|
||||
int x;
|
||||
void bar() const;
|
||||
void spam();
|
||||
};
|
||||
|
||||
class Blah {
|
||||
...
|
||||
const Foo *operator->();
|
||||
...
|
||||
};
|
||||
|
||||
In this case, only "x" and "bar" are visible from Blah (since application
|
||||
of spam violates constness). Moreover, access to "x" is read-only.
|
||||
|
||||
03/15/2003: mrose (Mark Rose)
|
||||
Cleaned up two signed versus unsigned comparisons in python/std_vector.i.
|
||||
|
||||
03/15/2003: cheetah (William Fulton)
|
||||
[C#] Global variables are wrapped using properties instead of get and set methods.
|
||||
Member variable wrapping bug fixes, for example wrapping pointers work now.
|
||||
Typemaps are used for all variable wrapping to generate the property code.
|
||||
|
||||
03/13/2003: mrose (Mark Rose)
|
||||
Fixed a bug in the virtual method unrolling for directors.
|
||||
The order of unrolling is now from base to derived, to ensure
|
||||
that the most derived implementation of a director method is
|
||||
found.
|
||||
|
||||
Director methods for pure virtual methods now throw
|
||||
DIRECTOR_PURE_VIRTUAL_EXCEPTION if _up is set.
|
||||
|
||||
03/12/2003: cheetah (William Fulton)
|
||||
[C#] Polymorphism fix: virtual functions now use the appropriate
|
||||
keyword in the C# proxy class, virtual or override.
|
||||
Some 'using System;' statement fixes needed by the Mono compiler.
|
||||
|
||||
03/11/2003: beazley
|
||||
Fixed subtle bug in the application of SwigValueWrapper<> to
|
||||
template classes with default constructors. Reported by
|
||||
Bruce Lowery.
|
||||
|
||||
03/11/2003: beazley
|
||||
The $descriptor(type) variable is now expanded in code supplied to
|
||||
%extend. This is useful for certain kinds of advanced wrapping
|
||||
(especially container classes).
|
||||
|
||||
03/11/2003: luigi
|
||||
Support for std::map.
|
||||
(a) Integration with scripting language (a la std::vector) for
|
||||
Python, Ruby, MzScheme, and Guile;
|
||||
(b) Simple wrapper for other languages
|
||||
|
||||
03/10/2003: beazley
|
||||
Fixed problem with escape sequences in string and character constants. SWIG
|
||||
wasn't parsing certain octal codes correctly.
|
||||
|
||||
03/07/2003: beazley
|
||||
Fixed a variety of subtle preprocessor problems reported by
|
||||
Sebastien Recio.
|
||||
|
||||
(a) Empty preprocessor values no longer generate "bad constant
|
||||
value" errors. For example:
|
||||
|
||||
#define FOO
|
||||
#define FOO BAR
|
||||
|
||||
(b) Macro names can now span multiple lines (technically valid,
|
||||
although questionable practice). For example:
|
||||
|
||||
#define A_LONG_MACRO_\
|
||||
NAME 42
|
||||
|
||||
(c) Whitespace is no longer required before certain macro values.
|
||||
For example:
|
||||
|
||||
#define FOO"Hello"
|
||||
#define BAR\
|
||||
"Hello"
|
||||
|
||||
03/07/2003: ljohnson (Lyle Johnson)
|
||||
[Ruby] Added missing long long and unsigned long long typemaps
|
||||
in the Lib/ruby/typemaps.i library file.
|
||||
|
||||
03/07/2003: mrose (Mark Rose)
|
||||
Added Examples/python/callback to demostrate how directors can
|
||||
be used to implement callbacks in Python
|
||||
Added Examples/python/extend to demonstrate virtual method
|
||||
calls from C++ to Python (really the same as the callback
|
||||
example, just a different context).
|
||||
Added four tests for very basic director functionality. These
|
||||
have runtime tests under python.
|
||||
The Python module now emits #define SWIG_DIRECTORS near the
|
||||
top of the output file if directors are enabled. This is useful
|
||||
for disabling parts of tests in target languages that don't
|
||||
support directors.
|
||||
|
||||
03/06/2003: mrose (Mark Rose)
|
||||
Added a section to Doc/Manual/Python.html on cross language
|
||||
polymorphism (directors).
|
||||
|
||||
03/06/2003: mrose (Mark Rose)
|
||||
The short-lived "-fdirectors" command line option has been
|
||||
removed. To enable directors, instead use the extended %module
|
||||
directive as follows:
|
||||
|
||||
%module(directors="1") modulename
|
||||
|
||||
03/06/2003: cheetah (William Fulton)
|
||||
The long long typemaps have been rewritten so that they can be more
|
||||
easily used with non ISO compilers, like Visual C++. For example
|
||||
if you are wrapping the Windows 64 bit type __int64 the long long
|
||||
typemaps can be used with %apply:
|
||||
|
||||
%apply long long { __int64 };
|
||||
__int64 value1(__int64 x);
|
||||
|
||||
__int64 will now appear in the generated code instead of long long.
|
||||
|
||||
03/06/2003: beazley
|
||||
*** DEVELOPER CHANGE ***
|
||||
Swig module mutation has been changed slightly. When a language
|
||||
class method wants to save node attributes, it now uses one of the
|
||||
following functions:
|
||||
|
||||
Swig_require()
|
||||
Swig_save()
|
||||
|
||||
The first argument to these functions is a namespace in which
|
||||
saved attributes are placed. For example,this code
|
||||
|
||||
Node *n;
|
||||
Swig_save("cDeclaration",n,"type","parms","name",NIL);
|
||||
|
||||
saves the attributes as "cDeclaration:type", "cDeclaration:parms",
|
||||
and so forth. If necessary, a language module can refer to
|
||||
old values by using this special namespace qualifier.
|
||||
|
||||
In addition to this, a special attribute "view" contains the name
|
||||
of the last namespace used to save attributes. In the above
|
||||
example, "view" would have the value "cDeclaration". The value
|
||||
of "cDeclaration:view" would have the previous view and so forth.
|
||||
|
||||
Swig_restore(n) restores a node to the state before the last
|
||||
Swig_require() or Swig_save() call.
|
||||
|
||||
Note: This change makes it easier for language modules to refer
|
||||
to old values of attributes.
|
||||
|
||||
|
||||
03/06/2003: mrose (Mark Rose)
|
||||
Merged the cross-language polymorphism patch. When enabled, C++
|
||||
"proxy" classes (called directors) are generated for each specified
|
||||
C++ class. Directors pass method calls from C++ to Python, similar
|
||||
to the way the usual proxy (shadow) classes pass method calls from
|
||||
Python to C++. Together, these two types of proxies allow C++
|
||||
classes that are extended in Python to behave just like ordinary
|
||||
C++ classes and be used in C++ like native objects.
|
||||
|
||||
This feature is still very experimental and is disabled by default.
|
||||
To enable director support, specify '-fdirectors' on the SWIG command
|
||||
line or in the SWIG_FEATURES environment variable. In the interface
|
||||
file, add %feature("director") to generate directors for all classes
|
||||
that have virtual methods.
|
||||
|
||||
See http://stm.lbl.gov/~tm2/swig/ProxyDoc.html for more details.
|
||||
|
||||
|
||||
03/03/2003: beazley
|
||||
Fixed a small glitch in typemap local variable replacement. If you had
|
||||
a typemap like this:
|
||||
|
||||
%typemap(in) type ($1_type temp) {
|
||||
...
|
||||
temp = ...;
|
||||
...
|
||||
}
|
||||
|
||||
and no occurrence of "$1_type" appeared in the body, then the local
|
||||
variable type wouldn't be substituted.
|
||||
|
||||
03/03/2003: cheetah (William Fulton)
|
||||
[C#] New version of the CSharp module which is typemap based.
|
||||
It also uses ECMA C# and no longer uses Microsoft Visual C++.NET
|
||||
glue. This means that it will work on non-Windows platforms.
|
||||
Contributed by Neil Cawse.
|
||||
|
||||
02/27/2003: beazley
|
||||
Fixed [ 653548 ] error parsing casting operator definition.
|
||||
SWIG now ignores casting operators declared outside of a class.
|
||||
For example:
|
||||
|
||||
inline A::operator char *() { ... }
|
||||
|
||||
Bug reported by Martin Casado.
|
||||
|
||||
02/27/2003: beazley
|
||||
Added support for anonymous bit-fields. For example:
|
||||
|
||||
struct Foo {
|
||||
int x : 4;
|
||||
int : 4;
|
||||
int y : 8;
|
||||
};
|
||||
|
||||
Anonymous bit-fields are ignored by SWIG. Problem
|
||||
reported by Franz Höpfinger.
|
||||
|
||||
02/26/2003: cheetah (William Fulton)
|
||||
[Java] Better typemaps in the Examples/java/typemap example and also
|
||||
fixes subtle bug when using the StringBuffer typemaps more than once.
|
||||
|
||||
02/26/2003: beazley
|
||||
Fixed [ 642112 ] Constants char bug.
|
||||
|
||||
02/26/2003: beazley
|
||||
Fixed [ 675337 ] Partial template specialization not entirely working.
|
||||
There was a subtle problem related to the naming and ordering of
|
||||
template partial specialization arguments. Matching worked okay,
|
||||
the resulting templates weren't expanded correctly.
|
||||
|
||||
02/25/2003: beazley
|
||||
Fixed problem with parsing (and generating code) for
|
||||
references to arrays. For example:
|
||||
|
||||
int foo(int (&x)[10]);
|
||||
|
||||
02/25/2003: beazley
|
||||
Fixed [ 635347 ] Compilation warning from libpy.c.
|
||||
Reported by Daniel L. Rall.
|
||||
|
||||
02/25/2003: beazley
|
||||
Fixed a subtle problem with virtual method implementation
|
||||
checking and typedef.
|
||||
|
||||
typedef int *intptr;
|
||||
|
||||
struct A {
|
||||
virtual int *foo() = 0;
|
||||
};
|
||||
struct B : public A {
|
||||
virtual intptr foo() { };
|
||||
};
|
||||
|
||||
SWIG was treating these declarations as different even though
|
||||
they are the same (via typedef).
|
||||
|
||||
02/25/2003: ljohnson (Lyle Johnson)
|
||||
[Ruby] Added range checking for the NUM2USHRT macro, per [ 675353 ].
|
||||
|
||||
02/24/2003: beazley
|
||||
Fixed a subtle problem with the code that determined if a class is abstract
|
||||
and can be instantiated. If you had classes like this:
|
||||
|
||||
struct A {
|
||||
virtual int foo(int) = 0;
|
||||
};
|
||||
struct B : virtual A {
|
||||
virtual int foo(int);
|
||||
};
|
||||
|
||||
struct C : virtual A {
|
||||
};
|
||||
|
||||
/* Note order of base classes */
|
||||
struct D : B, C { }; /* Ok */
|
||||
struct E : C, B { }; /* Broken */
|
||||
|
||||
then SWIG determined that it could instantiate D(), but not E().
|
||||
This inconsistency arose from the depth-first search of the
|
||||
inheritance hierarchy to locate the implementations of virtual
|
||||
methods. This problem should now be fixed---SWIG will attempt
|
||||
to locate any valid implementation of a virtual method by
|
||||
traversing over the entire hierarchy.
|
||||
|
||||
02/22/2003: cheetah (William Fulton)
|
||||
[Java] Fix for using enum typemaps. The Java final static variable type
|
||||
can be set using the jstype typemap, enabling enums to be mapped to
|
||||
something other than int. Bug reported by Heiner Petith.
|
||||
|
||||
02/21/2003: songyanf (Tiger)
|
||||
Added CSharp (C#) module prototype
|
||||
i.e. csharp.cxx & csharp.h at Source/Modules/.
|
||||
They are for test usage only now and need improvement.
|
||||
The interface also need to be modified.
|
||||
|
||||
*** NEW FEATURE ***
|
||||
|
||||
02/20/2003: songyanf (Tiger)
|
||||
Fixed problem with typedef with -fvirtual.
|
||||
Similar as beazley's modification today.
|
||||
|
||||
02/20/2003: beazley
|
||||
Added support for gcc-style variadic preprocessor macros.
|
||||
Patch [ 623258 ] GCC-style vararg macro support.
|
||||
Contributed by Joe Mason.
|
||||
|
||||
02/20/2003: beazley
|
||||
Fixed [ 605162 ] Typemap local variables.
|
||||
Reported by Lyle Johnson.
|
||||
|
||||
02/20/2003: beazley
|
||||
Fixed problem with abstract classes and typedef. For example:
|
||||
|
||||
class Foo {
|
||||
public:
|
||||
virtual void foo(int x) = 0;
|
||||
};
|
||||
|
||||
typedef int Integer;
|
||||
class Bar : public Foo {
|
||||
public:
|
||||
virtual void foo(Integer x);
|
||||
};
|
||||
|
||||
SWIG was getting confused about the latter method---making Bar
|
||||
abstract. Reported by Marcelo Matus.
|
||||
|
||||
02/19/2003: cheetah (William Fulton)
|
||||
[Java] %javaconst(flag) can also be used on enums as well as constants.
|
||||
This feature enables true Java compiler constants so that they can be
|
||||
used in Java switch statements. Thanks to Heiner Petith for patches.
|
||||
|
||||
02/19/2003: songyanf (Tiger)
|
||||
Modified -fcompact feature to deal with PP lines
|
||||
|
||||
02/18/2003: beazley
|
||||
Fixed [ 689040 ] Missing return value in std_vector.i.
|
||||
Reported by Robert H. de Vries.
|
||||
|
||||
02/18/2003: beazley
|
||||
Fixed a few evil scoping problems with templates, namespaces, and the
|
||||
%extend directive. Problem reported by Luigi Ballabio.
|
||||
|
||||
|
||||
02/18/2003: cheetah (William Fulton)
|
||||
[Ruby] Improved support for Visual C++ and other native Windows compilers.
|
||||
It is no longer necessary to specify "/EXPORT:Init_<module>", where <module> is the
|
||||
swig module name when linking using these native Windows compilers.
|
||||
|
||||
02/15/2003: songyanf (Tiger)
|
||||
Added -fvirtual option.
|
||||
Reduce the lines and size of the wrapper file
|
||||
by omitting redifined virtual function in children classes.
|
||||
|
||||
Modified -compact option to -fcompact option
|
||||
|
||||
Added -small option.
|
||||
-small = -fvirtual -fcompact
|
||||
And it can be extended by future feature options,
|
||||
which are used to reduce wrapper file szie.
|
||||
|
||||
Added SWIG_FEATURES environment variable check.
|
||||
To dynamically set the feature options such as -fcompact & -fvirtual
|
||||
*** NEW FEATURE ***
|
||||
|
||||
02/13/2003: lenz
|
||||
Updated Doc/Manual/Perl5.html to talk about C++ compile problems
|
||||
configure.in now checks for PERL5_CCFLAGS
|
||||
Runtime/Makefile.in and Example/Makefile.in now use PERL5_CCFLAGS
|
||||
Added Lib/perl5/noembed.h which contains all the known macro conflicts
|
||||
|
||||
02/12/2003: beazley
|
||||
Fixed [ 685410 ] C++ Explicit template instantiation causes SWIG to exit.
|
||||
Fixes a syntax error with declarations similar to this:
|
||||
|
||||
template class std::vector<int>;
|
||||
|
||||
SWIG now ignores the instantiation and generates a warning message.
|
||||
We might do more later. Reported by Thomas Williamson.
|
||||
|
||||
02/11/2003: cheetah (William Fulton)
|
||||
Rewrote bool typemaps to remove performance warning for compiling generated code
|
||||
under Visual C++.
|
||||
|
||||
02/11/2003: cheetah (William Fulton)
|
||||
Fix for wrapping reference variables (const non-primitive and all non-const types)
|
||||
for example:
|
||||
int& i;
|
||||
Class& c;
|
||||
const Class& c;
|
||||
|
||||
02/11/2003: beazley
|
||||
Fixed more very subtle preprocessor corner cases related to recursive
|
||||
macro expansion. For example:
|
||||
|
||||
#define cat(x,y) x ## y
|
||||
|
||||
cat(cat(1,2),3) // Produces: cat(1,2)3
|
||||
|
||||
#define xcat(x,y) cat(x,y)
|
||||
|
||||
xcat(xcat(1,2),3) // Produces 123
|
||||
|
||||
See K&R, 2nd Ed. p. 231.
|
||||
|
||||
02/10/2003: cheetah (William Fulton)
|
||||
Fixed [ 683882 ] - patch submitted by F. Postma for SWIG to compile on HP-UX.
|
||||
|
||||
02/10/2003: beazley
|
||||
Fixed subtle preprocessor argument expansion bug. Reported by Marcelo Matus.
|
||||
|
||||
02/10/2003: songyanf
|
||||
Added -compact option.
|
||||
Reduce the lines and size of the wrapper file
|
||||
by omitting comments and combining short lines.
|
||||
*** NEW FEATURE ***
|
||||
|
||||
02/07/2003: beazley
|
||||
Fixed [ 651355 ] Syntax error with cstring.i
|
||||
Reported by Omri Barel.
|
||||
|
||||
02/07/2003: beazley
|
||||
Fixed [ 663632 ] incompatibility with standard cpp.
|
||||
This is a refinement that fixes this problem:
|
||||
|
||||
// Some macro with an argument
|
||||
#define FOO(x) x
|
||||
|
||||
int FOO; /* Not a macro---no arguments */
|
||||
|
||||
02/05/2003: beazley
|
||||
Fixed [ 675491 ] parse error with global namespace qualification.
|
||||
Submitted by Jeremy Yallop.
|
||||
|
||||
02/04/2003: beazley
|
||||
Fixed bug in varargs processing introduced by the numinputs typemap parameter.
|
||||
|
||||
01/08/2003: ttn
|
||||
[xml] Fix string-replacement ordering buglet.
|
||||
Thanks to Gary Herron.
|
||||
|
||||
12/23/2002: cheetah (William Fulton)
|
||||
Further build changes:
|
||||
- The SWIG executable is now built using a single Makefile.
|
||||
- This makefile is generated by Automake (Source/Makefile.am).
|
||||
- Dependency tracking and tags support are in this makefile.
|
||||
- Automake 1.7.2 and Autoconf 2.54 minimum versions are needed to build SWIG from CVS.
|
||||
- Running ./autogen.sh now installs Autoconf/Automake support files into
|
||||
Tools/config and these files are no longer stored in CVS.
|
||||
- Bug fixes in 'make install' for systems using .exe executable extension and
|
||||
./configure --with-release-suffix=whatever
|
||||
|
||||
12/16/2002: cheetah (William Fulton)
|
||||
More build changes:
|
||||
- Autoconf's AC_CANONICAL_HOST replaces proprietary approach for detecting build host.
|
||||
- Autoconf support files moved to Tools/config.
|
||||
|
||||
12/16/2002: cheetah (William Fulton)
|
||||
Modifications to run on MacOS, submitted by Bernard Desgraupes.
|
||||
Mainly ensuring generated files are output in the appropriate directory for
|
||||
some modules.
|
||||
|
||||
12/11/2002: cheetah (William Fulton)
|
||||
Various build modifications and bug fixes:
|
||||
- Simplification of version string. Use autoconf's PACKAGE_VERSION instead.
|
||||
- Build time removed from SWIG version.
|
||||
- Using standard autoconf config header generation.
|
||||
- Updated old autoconf macros as reported by autoupdate.
|
||||
- Removed $prefix in autoconf from search paths as autoconf won't expand them.
|
||||
- Subtle bug fix where 'make prefix=/somewhere; make clean; make prefix=/somwhere/else'
|
||||
produced an executable using the incorrect library directories.
|
||||
- Added -ldflags commandline option for MzScheme, Ocaml, Pike and PHP.
|
||||
- Fixed reporting of compiler used when using -version commandline option.
|
||||
- SWIG web address added to -version commandline option.
|
||||
|
||||
12/11/2002: beazley
|
||||
Minor fix to Tcl dynamic cast typemaps. Reported by
|
||||
Kristopher Blom.
|
||||
|
||||
12/10/2002: beazley
|
||||
Fixed subtle template argument replace bug. Reported by
|
||||
Chris Flatley.
|
||||
|
||||
12/10/2002: beazley
|
||||
Reverted CHANGES 09/03/2002, preprocessor argument evaluation. Arguments
|
||||
are not evaluated during collection, K&R, p. 230.
|
||||
|
||||
12/06/2002: beazley
|
||||
Fixed [ 649022 ] Compilation problems with KAI/KCC
|
||||
|
||||
12/02/2002: beazley
|
||||
SWIG 'rel-1-3' CVS branch merged back into the main branch.
|
||||
03/23/2003: beazley
|
||||
Released 1.3.18.
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue