Commit graph

2,186 commits

Author SHA1 Message Date
William S Fulton
ac06518319 Patch #3191625 fixing overloading of integer types.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12692 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-19 19:49:48 +00:00
William S Fulton
ea00ff974f Patch #3260265 fixing overloading of non-primitive types and integers in Perl 5.12 and later
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12691 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-19 19:31:39 +00:00
William S Fulton
f8270079eb remove unused macro
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12689 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-19 06:44:17 +00:00
William S Fulton
dfa13b658e Fix import_stl testcase
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12688 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-19 06:42:56 +00:00
William S Fulton
f35dd29dff Apply #3300072 from Christian Delbaere to fix multiple module loading not always sharing variables across modules.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12680 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 18:12:53 +00:00
Xavier Delacour
06221dacae Allow global operators to be SWIG-wrapped functions (by Karl Wette)
The Octave run-time allows global operators to be implemented,
e.g. op_scalar_add_X for adding a scalar and a wrapped struct X.
However it doesn't currently seem possible for these operators to
map to SWIG-wrapped functions. This is because dispatch_global_op()
looks for the operators to be installed as global variables, whereas
install_global() installs SWIG-wrapped functions as builtin functions;
the two appear to be separate symbol tables in Octave.

This patch modifies install_global() to install global operator functions
as both builtin functions and as global variables, where the value of the
global variable is a function handle to the operator function. It decides
if a function is a global operator if it begins with the prefix "op_"; this
prefix can be modified through a new command-line variable. It also always
installs the operators globally, regardless of whether the rest of the module
is being loaded globally. To accomplish this, install_global() is now always
called, but takes a bool argument specifying whether it should load symbols
globally. If a function is not a global operator, install_global() should
behave as before.

Tested that this compiles and works on Octave 3.2.4 and 3.4.0.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12675 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 02:02:15 +00:00
Xavier Delacour
2d5c4302b0 Adds support for Python __r*__ operators (by Karl Wette)
The Python operator model, when evaluating e.g. x + y, is to call
x.__add__(y), then y.__radd__(x) if the former does not exist, etc.
This patch adds similar functionality to the SWIG runtime code.
For the special case of the comparison operators __l*__ and __g*__,
the reverse operators are __g*__ and __l*__ respectively.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12674 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 02:00:25 +00:00
Xavier Delacour
360c1aaa1b Fix an incompatibility with never versions of Octave (by Karl Wette)
According to the Octave changelog (ChangeLog and src/ChangeLog
in the Octave 3.4.0 source), octave_base_value::map_value() now
returns an octave_map instead of an Octave_map; this change dates
from Octave API version 40 onward. This patch makes the necessary
changes to the SWIG runtime while remaining backward-compatible.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12673 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 01:59:53 +00:00
Xavier Delacour
e22eb83574 Minor improvement to the printing of Octave SWIG classes (by Karl Wette)
Uses Octave's indentation functions to make sure the classes are
printed at the correct indentation level, e.g. for a cell array
containing SWIG-wrapped classes.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12672 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 01:59:19 +00:00
Xavier Delacour
a3689a02fc Fixes to two bugs in Lib/octave/octcomplex.swg (by Karl Wette)
* replace PyObject with octave_value in the SWIG_AsVal(float) fragment

* modify %swig_fromcplx_conv to use the correct Octave constructor for
  double (Complex) and float (FloatComplex)

Also remove an unneeded %ifcplusplus (Octave wrapping code is always in C++).

Checked that %swig_cplxflt_convn now compiles correctly for single-precision
complex values, and that make check-octave-examples passes.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12671 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 01:57:46 +00:00
Xavier Delacour
8848b16e01 Octave changes by Karl Wette:
It's currently not possible to tell SWIG whether or not symbols should be
loaded into the global namespace by default. In fact, it's not even possible
to make the generated .oct module *not* load all symbols globally, due to a
bug in Lib/octave/octruntime.swg (line 37: "noglobal" should be "global").
It's also not possible to change the name of the symbol used to access
global variables/constants from the default "cvar".

This patch adds 3 Octave-specific command-line options:

* -global/-noglobal tell SWIG whether the generated .oct module should load
symbols into the global namespace by default. The default option is -global
to preserve existing behaviour.

* -globals <name> sets the name of the symbol used to access global
variables/constants. It is set to "cvar" by default.

These options are parsed in Source/Modules/octave.cxx, and written to the
wrapping code as the macros SWIG_global_load and SWIG_global_name.

In Lib/octave/octruntime.swg, the Octave entry point DEFUN_DLD function now
contains a expanded input argument parser, which uses the same command-line
arguments (-global/-noglobal, -globals) as can be passed to SWIG itself;
this allows the module user to change the default loading behaviour of the
module user at load time. The parser checks for non-string and unrecognised
arguments, and also checks that the argument to -globals is a valid Octave
identifier. A -help option prints a short usage message.




git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12670 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 01:56:43 +00:00
William S Fulton
aac2b5d2e1 Remove VARARGS_SENTINEL typemaps further to revision 12666. Note that the idea of having a named typemap for sentinels is flawed unless the named typemap is provided for every single type in the typemap library.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12668 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-14 23:54:09 +00:00
William S Fulton
ef1546a287 cosmetic - cleanup
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12664 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-14 00:10:10 +00:00
William S Fulton
34e7c82631 Remove a compiler warning for builtin
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12662 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-13 05:58:58 +00:00
William S Fulton
1aa65e2220 PyVarObject_HEAD_INIT to conform to C standard - pointers cannot be used in static initializers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12661 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-12 21:07:57 +00:00
William S Fulton
63f21af8d0 PyVarObject_HEAD_INIT to conform to C standard - pointers cannot be used in static initializers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12660 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-12 20:20:36 +00:00
Stefan Zager
a52612f845 Fixed PyGetSetDescr for python3.2.
Fixed memory management in special_variable_macros test.

Don't define asdict() for multimap.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12659 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-08 06:54:21 +00:00
William S Fulton
8ee0593036 Remove incomplete directorin typemaps as users incorrectly assumed they were implemented and working
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12653 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-03 05:46:00 +00:00
William S Fulton
837835280d Remove directorout INPUT/INOUT/OUTPUT typemaps - they will never be used as they used for the return type, not parameters. Fix java directorin typemap.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12651 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-03 05:32:13 +00:00
Stefan Zager
6bd724dbf9 Added asdict() method to convert std::map to a python dict.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12646 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-29 23:26:55 +00:00
Stefan Zager
a74909f77b Fixed bug 2811549: const vs. non-const iterators for STL types.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12645 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-29 22:36:06 +00:00
Stefan Zager
e629b192e2 Fixed the argument counts passed to SWIG_Python_UnpackTuple for varargs.
Removed obsolete methods from std_map.i and pyiterators.swg.

Added builtin-check target to python test suite Makefile.

Fixed using_namespace_loop.i so that the generated wrappers will compile.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12644 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-29 18:25:16 +00:00
Stefan Zager
4b9ef9bc99 Bug 1498929: Access to member fields of map elements.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12643 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-25 21:12:33 +00:00
William S Fulton
c871172975 Apply patch #3284326 to fix some compiler warnings.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12635 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-11 23:04:28 +00:00
Stefan Zager
257b75c23c Fixed PyVarObject_HEAD_INIT calls for VC++.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12634 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-11 22:06:02 +00:00
William S Fulton
fd666c1440 new %import test for vector
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12633 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-11 21:28:06 +00:00
William S Fulton
512cf3d12d Work around anti-aliasing warning/problem with gcc
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12632 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-11 19:22:45 +00:00
William S Fulton
caa055b7fb Remove C++ header breaking C tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12626 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-10 00:29:36 +00:00
William S Fulton
781b468aa1 Sun Studio warning fixes for Python builtin
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12625 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-10 00:23:48 +00:00
William S Fulton
13527a79b7 Fix Sun Studio warnings
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12624 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-09 23:52:38 +00:00
William S Fulton
0fea2dd2b5 Revert non-cosmetic change from previous checkin
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12623 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-09 23:52:03 +00:00
William S Fulton
f1234aae42 Cosmetics - Fix bracket matching
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12622 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-09 23:48:19 +00:00
Stefan Zager
17af467132 Fix for bug #3057804: migrate PyCObject to PyCapsule.
Other misc. fixes for python3.2, mostly dealing with changed
interfaces to python functions.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12620 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-09 22:07:22 +00:00
Stefan Zager
7a0726c8b6 Fix ISO C90 errors.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12619 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-09 04:59:16 +00:00
Stefan Zager
5c4f47302a Initialize all fields of PyTypeObject, to eliminate compiler warnings. Fixed typo in docs.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12612 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-05 23:16:13 +00:00
William S Fulton
33401e1721 More python builtin warning suppression
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12611 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-05 21:16:05 +00:00
William S Fulton
070893434b Cosmetic formatting in generated code
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12610 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-05 20:59:24 +00:00
William S Fulton
b2b9e2eb91 Python builtin - warning suppression/fixes for 'gcc -Wall' and cosmetic changes in generated code.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12609 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-05 20:39:44 +00:00
William S Fulton
5f6389ab31 Cosmetic Python changes and replace DOH types
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12608 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-04 20:13:14 +00:00
Stefan Zager
96ec495858 Fix compiler warnings about uninitialized members.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12607 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-04 07:11:02 +00:00
William S Fulton
81b3d4433d Fix warning in wrappers (Python > 3.0) - SF# 3239071
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12606 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-04 06:38:14 +00:00
William S Fulton
71be2441c2 Fix C python < 2.5 wrappers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12605 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-03 20:02:08 +00:00
William S Fulton
87506db48f VC++ warning fixes for python builtin
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12602 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-03 18:40:44 +00:00
William S Fulton
3eff8232d4 Fix Python C wrapper compilation
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12600 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-03 18:11:39 +00:00
Stefan Zager
f759999f40 Merged trunk through revision 12591
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12592 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-03 03:14:19 +00:00
Stefan Zager
90fe22acf7 Fix for METH_O and -compactdefaultargs, in two parts:
- Don't mark a method as METH_O if it has compactdefaultargs
  - In SWIG_Python_UnpackTuple, allow for a non-tuple 'args'.

Added compatibility for python versions 2.3 and 2.4.  These are only
partially supported; inheriting from wrapped types looks problematic.
Versions older that 2.3 are unlikely ever to work.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12590 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-02 21:40:00 +00:00
Stefan Zager
cd7fc2047b Factored some #ifdef noise out of the initialization function by adding
SwigPyBuiltin_SetMetaType.

For %import statements, move the runtime import out of SWIG_init and into the
.py file.  The reason for this is that the import must be executed within the
python execution frame of the module, which is true in the .py file, but *not*
true in the initialization function.  Had to re-order the .py file slightly
to put the 'import' statements at the top; that's necessary to make sure base
types from an imported module are initialized first.  If -builtin isn't used,
then the .py code is not re-ordered.

Added an explanation and workaround for the limitation that wrapped types are
not raise-able.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12585 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-01 19:35:30 +00:00
William S Fulton
960b503a72 Python warning fixes for gcc -Wall -Wextra
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12584 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-01 06:46:14 +00:00
William S Fulton
a46e1f6c31 unused warning fix
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12581 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-03-31 20:30:13 +00:00
Stefan Zager
6cecfe4fcf Added documentation about tp_richcompare.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12578 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-03-31 04:12:29 +00:00