These remaining warnings are due to the design of Python's C API,
so suppress them by casting via void(*)(void) (which GCC documents
as the way to suppress this warning).
Closes#1259.
* ZackerySpytz-OCaml-overloaded-bools-typecheck:
[OCaml] Remove the last remnants of libswigocaml
[OCaml] Fix the handling of bools in overloaded functions
Parameter renaming is not fully implemented. Mainly because there is no
C/C++ syntax to
for %rename to fully qualify a function's parameter name from outside
the function. Hence it
is not possible to implemented targetted warning suppression on one
parameter in one function.
Issue #1420
Use the SWIG_TYPECHECK_BOOL precedence level instead of
SWIG_TYPECHECK_INTEGER when checking for bools.
Add a runtime test in the form of overload_bool_runme.ml.
The swig.gdb file provides the swigprint and locswigprint user-defined
commands which stopped working somewhere around gdb 8.0 - 8.2.
```
(gdb) swigprint n
Undefined command: "Printf". Try "help".
(gdb) locswigprint n
Undefined command: "Printf". Try "help".
(gdb)
```
I couldn't find any mention of gdb's Printf, but replacing Printf with
printf works and is documented at
https://sourceware.org/gdb/download/onlinedocs/gdb/Output.html#Output
Fixes issue #1420
[skip ci]
* vadz-better-param-names:
Enable keyword arguments for keyword_rename unit test
Update error messages test suite
Add more tests for Python parameter renaming
Improve handling parameters clashing with language keywords
The OCaml module was generating dead code in the wrappers for
overloaded functions. Only the generated dispatch function needs to
allocate an array for the passed arguments.
In addition, add overload_extend, overload_rename and overload_subtype
runtime tests.
This is required for the recently added Python test checking that an
argument clashing with a Python keyword is also renamed when using
keyword arguments and fixes this test failure when using -builtin Python
option.
- Static method wrappers were using the 'fastproxy' approach by default.
This is inconsistent with instance method wrappers. The fastproxy approach
is now turned off by default to be consistent with instance methods.
Static method wrappers can now also be controlled using the -fastproxy and
-olddefs options.
Example:
struct Klass {
static int statmethod(int a = 2);
};
generates:
class Klass(object):
...
@staticmethod
def statmethod(a=2):
return _example.Klass_statmethod(a)
instead of:
class Klass(object):
...
statmethod = staticmethod(_example.Klass_statmethod)
- Modernise wrappers for static methods to use decorator syntax - @staticmethod.
- Add missing runtime test for static class methods and using the actual
class method.
Previously, only Python tried to preserve the original parameter name
(by prepending or appending an underscore to it, but otherwise keeping
the original name) if it conflicted with one of the language keywords,
while all the other languages replaced the parameter name with a
meaningless "argN" in this case.
Now do this for all languages as this results in more readable generated
code and there doesn't seem to be any reason to restrict this to Python
only.
OCaml's constantWrapper() was adding unneeded quotes when wrapping
static const member chars.
Add runtime tests for char_constant, chartest, and
static_const_member.
In OCaml 3.08.0, many functions in the OCaml C API were renamed to
include a caml_ prefix. Their previous names were retained as macros
in caml/compatibility.h and were (apparently) deprecated.
Rename occurrences of alloc_string, alloc_tuple, callback, callback2,
callback3, copy_double, copy_int64, copy_string, failwith, and modify
in the OCaml module.
The OCaml module requires OCaml >= 3.08.3, so this change is safe
for all supported OCaml versions.
copy_string() is a macro in the OCaml C API, so rename the function
to copy_str(). Add a runtime test.
The minherit runtime test was fixed by b64d685.
Use the proper syntax for accessing member variables in
unions_runme.ml
* ZackerySpytz-OCaml_int64_t:
Add changes entry for fixing OCaml int64_t compile problem
Fix OCaml version detection if caml/version.h is not available
[OCaml] Use int64_t instead of int64 for OCaml versions >= 4.03.0
Conflicts:
CHANGES.current
Add runtime tests for abstract_access, abstract_typedef,
abstract_typedef2, abstract_virtual, aggregate, cast_operator, and
constover. The aggregate and cast_operator tests are based on the
corresponding ruby tests, and the rest are based on python tests.
Use the [member-variable] syntax in using_protected_runme.ml as
required by the OCaml module's documentation and implementation.
Fix the return type for vec_write() in example.h in the OCaml stl
example.