'oficially' add fastdispatch option

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7953 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-12-08 21:30:06 +00:00
commit cef0013285
7 changed files with 215 additions and 10 deletions

View file

@ -1,6 +1,41 @@
Version 1.3.28 (unreleased).
===========================
12/08/2005: mmatus
- Add the -fastdispatch option (fastdispatch feature). This
enable the "fast dispatch" mechanism for overloaded
methods provided by Salvador Fandi~no Garc'ia (#930586).
The resulting code is smaller and faster since less type
checking are performed. However, the error messages you
get when the overloading is not resolved could be
different from what the traditional method returns.
With the old method you always get an error such as
"No matching function for overloaded ..."
with the new method you can also get errors such as
"Type error in argument 1 of type ..."
See bug report #930586 for more details.
So, we let to the user the option to enable this
optimization.
You use this new mechanism as
swig -fastdispatch
or using the feature form
%feature("fastdispatch") method;
or
%fastdispatch method;
12/06/2005: mmatus
- Several memory and speed improvements, specially for
@ -12,7 +47,7 @@ Version 1.3.28 (unreleased).
pcs/architectures.
- add option "cpperraswarn/nocpperraswarn" to force the swig
- add options "cpperraswarn/nocpperraswarn" to force the swig
preprocessor to treat the #error directive as a #warning.
the default behavior is cpperraswarn, so, swig doesn't
@ -45,22 +80,27 @@ Version 1.3.28 (unreleased).
%module("threads"=1)
2.- Equivalent to that, is the following swig option
2.- Equivalent to that, is the new '-threads' swig option
swig -threads -python ...
ie, swig enables thread support for the module.
3.- You can partially disable thread support for a given
method using:
%feature("nothread") method;
or
%nothread method;
also, you can disable sections of the thread support,
for example
%feature("nothreadblock") method;
or
%nothreadblock method;
%feature("nothreadallow") method;
or
%nothreadallow method;
the first disables the C++/python thread protection, and the
second disables the python/C++ thread protection.