Commit graph

19,374 commits

Author SHA1 Message Date
Vadim Zeitlin
8ff7941503 Don't generate delete functions if dtor is not accessible
This fixes failures in virtual_dtor and using_protected unit tests.
2016-04-15 23:01:20 +02:00
Vadim Zeitlin
4962871cd9 No real changes, just remove an unused variable
"sobj" in C::classHandler() was not used at all.
2016-04-14 02:44:46 +02:00
Vadim Zeitlin
42c3d420b2 Remove SWIG_temporary from the generated code
This doesn't seem to be used anywhere.
2016-04-14 02:44:46 +02:00
Vadim Zeitlin
2a37e53b62 Remove abstract_access from broken tests
It passes now with C backend.
2016-04-14 02:44:46 +02:00
Vadim Zeitlin
62230758e4 Output declarations of all types before the functions declarations
This fixes compilation of the generated code when a function uses a forward
declared type as was the case in e.g. std_vector example.
2016-04-14 02:44:46 +02:00
Vadim Zeitlin
795e3adb0d Use CFLAGS when compiling test code for C module tests
This is useful to pass e.g. CFLAGS=-g on make command line.
2016-04-14 02:44:46 +02:00
Vadim Zeitlin
3d6880aad1 Start removing proxy layer, just use the wrapped functions directly
The proxy layer, and all the extra complexity associated with it, seemed to be
only necessary in order to try to allow using the same name for the wrapped
global functions as were used for them in the original C or C++ code being
wrapped. However this could simply never work in all cases, notably it didn't
work at all when using ELF shared libraries under Unix as the functions with
the same name defined in the main program were interposed and replaced the
functions defined in the shared library, meaning that the proxy function foo()
called wrapper function _wrap_foo() which called back into proxy function
foo() itself again, resulting in guaranteed stack overflow. The only possible
way to fix this would be to use "protected" ELF visibility for the original
functions, but this is not always possible (e.g. if the sources of the
original library are not available) and not simple even when it is and,
besides, protected visibility has its own problems -- notably by making it
impossible to hook the library functions when you actually want to do it.
Besides, proxy-based approach simply couldn't work at all when using static
linking as it resulted in two copies of the function with the same name

Most importantly, however, the main task of this module is to wrap C++
classes, not C functions, and renaming them in the wrapper is not necessary at
all in this case as there is no conflict with the original names in this case.
So simply drop the idea of generating a separate proxy header and generate a
header declaring the functions declared in the wrapper instead and, also, do
not give them "_wrap_" prefix whenever possible, i.e. only do it for the
global functions.

This simplifies SWIG code itself and makes it simpler to use its output as
it's not necessary to link both with the wrapper (dynamically) and with the
proxy (statically) and it's not enough to link with the wrapper only and it
can be done in any way (i.e. either statically or dynamically).

As a side effect of this change, Swig_name_proxy() is not necessary any more
and was removed, eliminating the only difference with the master branch in any
source file other than c.cxx itself.
2016-04-14 02:44:45 +02:00
Vadim Zeitlin
e8ec13f56b Remove SWIG_MAKE_DELETE() macro from C runtime
This doesn't seem to be necessary nor even useful at all, just get rid of it
completely and expand it manually in the only place where it was used.
2016-04-13 18:10:36 +02:00
Vadim Zeitlin
a1fedd5202 Minor cleanup: remove commented out code
No real changes, just remove commented out code and comments that didn't make
sense.
2016-04-13 18:10:36 +02:00
Vadim Zeitlin
5cfb66c1fb Remove unused functionWrapperCPPSpecificWrapperSetReturnType()
This function was never used anywhere since its addition back in
f1ec1a26a7.
2016-04-13 18:10:36 +02:00
Vadim Zeitlin
6bbe375a37 Remove unused SWIGPROTECT
It doesn't make any sense to use protected visibility for the symbols in the
proxy code, the only use for it would be if it could be applied to the
original functions being wrapped, to prevent them from being shadowed by the
proxy versions, but this cannot be done, in general.

Apparently this was already understood as the code using SWIGPROTECT was
commented out, but ef85d0d43f didn't give any
reason for doing this, nor for leaving this code.

Assume there was none and just remove it completely now to avoid confusion.
2016-04-13 18:10:35 +02:00
Vadim Zeitlin
34431d72e6 Create output file with C++ extension for C++ C examples
This file contains C++ code when using "swig -c++", so create it with .cxx
extension.
2016-04-13 18:10:35 +02:00
Vadim Zeitlin
23d89c2cb4 Make "make check-c-version" work too
This is not very useful, but still add this target for consistency and to make
Travis CI script work with C too.
2016-04-13 18:10:35 +02:00
Vadim Zeitlin
82ce7e4725 Force the unit test suite to pass for C
Disable all currently failing tests.
2016-04-13 18:10:35 +02:00
Vadim Zeitlin
1af8e25d4d Add a possibility to disable failing test cases
Allow defining FAILING_{C,CPP,MULTI_CPP}_TESTS variables to exclude some tests
from the unit tests suite. This is useful to disable tests failing for some
language only.
2016-04-13 18:10:35 +02:00
Vadim Zeitlin
3b087fcb2b Fix running C test suite when using a separate build directory
Correct top_srcdir path and use ../$(srcdir) instead of just "../" which may
not be the same when building in another directory.
2016-04-13 18:10:35 +02:00
Vadim Zeitlin
19ed0b531d Fix and simplify C examples makefiles
Make "make check-c-examples" perform the correct build commands, e.g. not link
the proxy code into the shared library as this can't work because it defines
the same functions that are already present in it.

Also fix the c_xxx targets to work when SWIG is built in a separate build
directory.

Finally, simplify them by removing the unnecessary variables.

Notice that std_vector example still doesn't build, but at least now it is due
to a real problem in the C module and not makefile bugs.
2016-04-10 22:45:51 +02:00
Vadim Zeitlin
7c402ad148 Merge branch 'master' into C 2016-04-08 17:29:16 +02:00
William S Fulton
ec2c67f59b Merge pull request #647 from smarchetto/master
[Scilab] #552 pointer type tracking: fix doc and CHANGES
2016-04-06 21:51:03 +01:00
Simon Marchetto
988717c140 scilab: fix space 2016-04-06 15:06:46 +02:00
Simon Marchetto
db29b6a005 scilab: update CHANGES with pointer type tracking 2016-04-06 15:03:53 +02:00
Simon Marchetto
6c254d1ebb scilab: fix doc (pointer type tracking) 2016-04-06 13:22:59 +02:00
Simon Marchetto
9f4ad6e7dc scilab: fix pointer type name 2016-04-06 13:22:59 +02:00
Olly Betts
4890a70c37 CHANGES.current: Note fix isn't python-specific
Fixes https://github.com/swig/swig/issues/615
2016-04-05 18:42:46 +12:00
William S Fulton
a97441613e Merge branch 'ahnolds-py_gettar'
* ahnolds-py_gettar:
  update changes file for attribute fix
  Add python AttributeError test for non-existent attribute
  Fixing python attribute lookup

Conflicts:
	CHANGES.current
2016-04-02 18:06:03 +01:00
William S Fulton
f19fd513ea update changes file for attribute fix 2016-04-02 18:04:25 +01:00
William S Fulton
333a46f07d Add python AttributeError test for non-existent attribute 2016-04-02 18:03:08 +01:00
William S Fulton
80e3ebf0d1 html doc fixes 2016-04-02 13:47:23 +01:00
William S Fulton
355f2623c7 Improve documentation for multi-argument typemaps and overloading 2016-04-02 13:44:44 +01:00
William S Fulton
bbd1b8ed05 Add tests for Python -builtin -O and compactdefaultargs and update changes file 2016-04-02 11:29:54 +01:00
Ling Li
79bb343ffe Fix single arguments using python -builtin -O with %feature("compactdefaultargs")
Setattr argcount for non-default-args and non-varargs functions.
Fixes #607
Closes #610
2016-04-02 11:29:43 +01:00
William S Fulton
1d62790928 Fix assertion for some languages when wrapping a C++11 enum class that is private in a class.
Also don't wrap private enums for a few languages that attempted to do so.

Closes #594.
2016-03-31 20:27:36 +01:00
William S Fulton
a15bbbaee5 Java - unsigned long long marshalling improvements for negative numbers
Affects marshalling of negative numbers from Java to C only.
A cast to signed long long in the C layer will now result in the expected value.

Closes #623.
2016-03-31 18:56:32 +01:00
William S Fulton
8322686e84 Cosmetic java typemap cleanup 2016-03-31 18:56:32 +01:00
Olly Betts
fe56d23f80 Merge pull request #542 from Sajmani/master
Fix Go example in Go.html
2016-03-31 13:07:31 +13:00
Olly Betts
9bb6e0e860 Fix reversed mapping of < and > in commented code 2016-03-29 09:57:07 +13:00
joequant
7e3165848b Merge pull request #633 from sbpcs59/master
Suppress unmessage at package load
2016-03-26 13:20:38 +08:00
William S Fulton
896a0f1f31 Merge branch 'ptomulik-fix/nonclass-constants'
* ptomulik-fix/nonclass-constants:
  fix handling of function pointers by %constant directive
2016-03-24 19:24:02 +00:00
William S Fulton
75de3e04c4 Merge branch 'ptomulik-fix/const-fptr'
* ptomulik-fix/const-fptr:
  handle const pointers to functions
2016-03-24 19:21:19 +00:00
Paweł Tomulik
174523aa80 fix handling of function pointers by %constant directive 2016-03-24 11:22:51 +01:00
Paweł Tomulik
350d43d988 handle const pointers to functions 2016-03-24 10:59:23 +01:00
William S Fulton
ba333729c3 Update changes file for lua __getitem 2016-03-22 20:48:28 +00:00
William S Fulton
d98f7050a0 Merge branch 'alexwarg-fix-lua-getitem'
* alexwarg-fix-lua-getitem:
  Add test case for Lua __getitem + inheritance
  Fix lua base class methods with __getitem
2016-03-22 20:44:12 +00:00
William S Fulton
7aa5f07dfd Fix 'make partialcheck-test-suite'
Python pep8 should not be run as part of partialcheck
Javascript should also only invoke SWIG during partialcheck
2016-03-18 18:56:55 +00:00
William S Fulton
9d4a4439da Revert "scilab: runtime initialization needed in examples"
This reverts commit 54b84b8fa1.
2016-03-18 08:56:23 +00:00
William S Fulton
e4f0fc44a0 change file update
[skip ci]
2016-03-18 08:24:37 +00:00
William S Fulton
c1d200ba7d Merge branch 'ptomulik-fix/nonclass-constants'
* ptomulik-fix/nonclass-constants:
  prevent _swigconstant boilerplate for non-class types
2016-03-18 07:57:30 +00:00
William S Fulton
6a1efc6c1d Clearer build and install instructions in the README file for Github users.
Fixes #634.
2016-03-17 20:14:16 +00:00
William S Fulton
5cd0678a4c Scilab test-suite warning suppression 2016-03-17 19:43:12 +00:00
William S Fulton
d05160afd2 Merge branch 'smarchetto-master' (Scilab test-suite fixes)
* smarchetto-master:
  Scilab Travis testing working again
  scilab: fix warnings
  scilab: fix compilation error (no return in SWIG_CheckPtr())
2016-03-17 19:39:23 +00:00