* master:
Add Octave 4.4 to Travis allow_failures
Fixes for appveyor image changes
Javascript test-suite Makefile parallel jobs
Add changes entry for csconstruct, dconstruct and javaconstruct fix
Fix lookup of csconstruct, dconstructor and javaconstruct typemaps
Javascript %nspace fix in generated C++ code
Add C++17 documentation chapter
Add changes notes for C++17 nested namespaces support
Test for invalid C++17 nested namespace aliases
Test c++17 nested namespaces and %nspace
Add c++17 nested namespaces runtime test for C#
Add c++17 nested namespaces runtime test for Python
Add support for c++17 nested namespaces
Update CHANGES.current
.travis.yml: test against Octave 4.4
Examples/test-suite/register_par.i: rename 'tree' to 'swig_tree'
Examples/octave/module_load/runme.m: update 'exist()' statements for Octave >= 4.4
Examples/octave/module_load/runme.m: do not use duplicate function names
Examples/Makefile.in: unset OCTAVE_PATH when running Octave for tests
Lib/octave: fix getting/setting global variables for Octave >= 4.4
Lib/octave: use new class for function member dereference with Octave >= 4.4
Lib/octave: fix operator installation for Octave >= 4.4
Lib/Octave: in Octave >= 4.4, assign reference to base class in subclass
Lib/octave: fix call to mlock() for Octave >= 4.4
Lib/octave: fix call to octave::call_stack::current() for Octave >= 4.4
Lib/octave: 'octave_exit' not longer exists in Octave >= 4.4
Lib/octave: replace is_bool_type() with islogical() for Octave >= 4.4
Lib/octave: replace is_numeric_type() with isnumeric() for Octave >= 4.4
Lib/octave: replace is_cell() with iscell() for Octave >= 4.4
Lib/octave: call octave::feval() instead of feval() for Octave >= 4.4
Lib/octave: fix function name passed to unwind_protect::begin_frame()
C#, D, Java methodmodifiers on destructors
Javascript assert.h - move to header section
Appveyor cl compiler warning fixes during configure
Java vector wrappers cast correction
test-suite fixes (Java directors) for compilers that don't support varargs
Go - use director.swg like other languages
test-suite fixes (2) for compilers that don't support varargs
Consistent spacing in generated exception specifications
test-suite fixes for compilers that don't support vararg macros
Enhance Travis testing to use gcc 8 and test C++17 and C17
Enhance SWIG_isfinite for older standards: C++03/C++98/C89
test-suite support for gcc-8 targeting C++11 and C++14
Scilab portability fixes - remove use of strdup
Scilab array overbounds fix handling char type exceptions
test-suite fix for c++17 and throw macro
Remove use of 'register' in C source
test-suite support for C++17: switch testing of the deprecated C++17 'register' keyword from C++ to C
Examples update to support C++17: exception specification throw removal
Cosmetic syntax tweak using throw in Octave directors
test-suite support for C++17 (Java): exception specification throw removal
test-suite support for C++17: exception specification throw removal
__cplusplus macro usage tweak
Improve detection of Python's 2to3 tool
Correct C shared library creation when specifing CC to configure
Remove superfluous parens in generated Python scripts.
[ci] guile 2.2 build no longer expected to fail
guile - resstructure some configure tests
Disable guile configuration if guile-config and guile report a different version
Fix guile executable detection on early 2.0.x guile versions
guile - drop GDB_INTERFACE related stuff
guile - replace obsolete scm_listify with scm_list_n
guile - use more reliable method of finding guile executable based on guile-config
Fix go version matching in configure for go1.10
[Python] Suppress new pycodestyle warning
Add if-no-present action for jsv8inc arg
Fix typo in help --with-jscoreinc and --with-jscorelib
Fix off-by-one error
* Makefile.in (configfiles): Update URLs for latest configfiles.
Add changes entry for Ruby %alias fix for global functions
[Ruby] Pass Qnil instead of NULL to rb_funcall()
Fix typo
Fix ruby %alias directive for native c functions
Stop testing Python on Appveyor msys/mingw
Fix -Wimplicit-fallthrough gcc-7.3 warning
Add support so that the %csmethodmodifiers, %dmethodmodifiers,
%javamethodmodifiers can modify the method modifiers for the destructor wrappers
in the proxy class: dispose, Dispose, delete. With this feature, it is now possible
to make a C# proxy class sealed, eg when wrapping a class X, the virtual method modifiers
can be removed using:
%typemap(csclassmodifiers) X "public sealed class"
%csmethodmodifiers X::~X "public /*virtual*/";
Fixes segfault when using non-director classes.
Restores a dynamic_cast which was previously removed.
The dynamic_cast is not needed for the swig_connect_director call ...
we'll have to find another solution for #449 for Java.
Closes#1184
When a director method throws an exception and it is caught by DirectorException
and passed back to Java using DirectorException::raiseJavaException, the Java
stack trace now contains the original source line that threw the exception.
Director exception handling code improved slightly to add some missing
ExceptionClear calls before calling JNI code.
- Fixes generation of director method declarations containing C++11 ref-qualifiers.
- Fixes generation of director method declarations returning more complex types such
as const ref pointers.
- Rewrite Swig_method_call to use more up to date code in the core.
The directorin typemaps will now generate a temporary variable
(specified after the type), such as:
%typemap(directorin) MyType (MyType *temp) { ... use temp ... }
The shared_ptr director typemaps have been fixed for use in functions
that take more than one parameter.
The director c++ exceptions are thrown in a helper method instead of in
the director overloaded method. This circumvents compiler warnings about
throwing exceptions when the method has an exception specification or
noexcept. If the exception is thrown, abort will still be called!
In Java, the "director:noexcept" typemap can be used to do something
else. This typemap should be ported to the other languages too.
The way Python docstrings are indented has changed on master, so use the
standard inspect module in Python autodoc unit test to ignore the differences
in their indentation level between -builtin and non-builtin cases to make the
test still pass with the branch version, which avoids the use of different
(but almost identical) values in the test itself.
- directorargout didn't work - it used string "jresult" instead of
argument name
- java/typemaps.i didn't work with directors
- test for using java/typemaps.i in directors added
* char-escaping:
Add missing string_constant.i testcase
changes file update for char wrappers
C# char wrappers fixes for enum values, static const member char values and %csconst
D testing added for %dmanifestconst and char constants
Fix wrapping D constants using %dmanifestconst
Php fix for enum value of '\0'
Fix static const char member variables wrappers with %javaconst(1).
Expand char testing in enums and %constant
Java char changes file update
Java enum and static member variable escaping fix for chars
Add tests for enum values and static const member variables chars containing escape sequences
Minor documentation tweak
Conflicts:
CHANGES.current
This is a simple expansion expanding to the name of the interface and is
not qualified like $javainterfacename and $csinterfacename.
Expansion within typemaps is much like $javainterfacename otherwise.
Note that expansion within the pure java code typemap,
'javainterfacecode' and similarly pure C# code typemap,
'csinterfacecode' works like $javaclassname/$csclassname and
$&interfacename should not be used, just $interfacename.
Support expansion of name attribute in: %feature("interface", name="%s")
%s expands to the proxy class name and all the usual %rename functions
can be used (regex, strip, camelcase etc) to derive the interface name
from the proxy class name.
Rename $interfacename family of special variables to $javainterfacename for Java
Rename $interfacename family of special variables to $csinterfacename for C#
This is to free up $interfacename for simple interface name expansion in forthcoming commit
pgcpp was turned off but it is still needed for the interface feature
to prevent premature garbage collection of the proxy class being passed
into the C++ layer.
Slightly simplify choosing single base class when handling
multiple inheritance and make consistent across more languages.
Modula3 multiple inheritance warnings now warn for all bases
* interfaces:
Remove unnecessary interfaces for concrete classes
cosmetic code formatting changes
Correct interface name attributes that are internal
interface macro changes to support templates
Test non-virtual method in Derived classes
interface tests for a most derived class inheriting the interfaces further up the chain
Rename GetCPtr/getCPtr to SWIGInterfaceUpcast
interface feature support for const ref pointers (used by the STL)
Interface feature support for arrays
More interface feature testing for return values
interface feature support for passing by value
interface feature support for references
Multiple inheritance parameters as pointers testing
Simplify multiple_inheritance_abstract Java runtime test
Warning fixes
Rename test functions in multiple_inheritance_abstract testcase
Formatting fixes in generated code for interface feature
Cosmetic spacing changes in test case
interface feature typemap corrections to handle NULL pointers
interface test added
javadirectorin fix
interface implementation visibility
interface inheritance (2)
interface inheritance (1)
feature:interface ported to Java
propagate non-abstract "interface" base methods (3)
propagate non-abstract "interface" base methods (2)
propagate non-abstract "interface" base methods (1)
namespace support added GetCPtr now returns HandleRef "feature:interface:name" is now mandatory attribute
interfaces (1)
interfaces (1)
Conflicts:
Source/Modules/csharp.cxx
Source/Modules/java.cxx
Add Java test for checking expected base and interfaces are generated (to be expanded further)
In the example, E was previously implementing IA, IB, IC. Now it doesn't implement any.
C# virtual/override still to be fixed for this test case