Commit graph

22,842 commits

Author SHA1 Message Date
William S Fulton
3354345255 GHA: switch ocaml testing to ubuntu-18.04 2021-11-17 22:27:00 +00:00
William S Fulton
9f8e9109be Update CI system wrt experimental languages 2021-11-17 22:18:06 +00:00
William S Fulton
07f18bef36 GHA: Test experimental languages - mzscheme and ocaml
These are allowed to fail and they won't fail the
overall build (like they did on Travis).
Implemented via the continue-on-error flag that Github Actions provides.
2021-11-17 21:23:59 +00:00
Dimitris Apostolou
f586d920f7
Fix typos 2021-11-17 07:07:02 +02:00
William S Fulton
ac9f819f6e Don't run appveyor when modifying Github Actions CI files 2021-11-16 19:48:22 +00:00
William S Fulton
0ec35cf24e GHA: Test Scilab 6.0 on ubuntu-18.04
6.1 on ubuntu-20.04 not yet working
2021-11-16 19:48:22 +00:00
William S Fulton
dbab08ec21 Scilab testing: don't hang on error 2021-11-16 19:48:22 +00:00
William S Fulton
9f5ad6debd Scilab JAVA_HOME environment fix
This might be needed on Github Actions as well as Travis??
2021-11-16 19:48:22 +00:00
William S Fulton
2582e3fc75 GHA: Add in Scilab testing 2021-11-15 23:03:02 +00:00
William S Fulton
63733a3b5c Short struct name in cpp11_final_override for Scilab 2021-11-15 22:56:29 +00:00
William S Fulton
99954d6d4e Shorten testcase variable names for Scilab 6 to work 2021-11-15 22:45:56 +00:00
William S Fulton
b53b2f1a27 Shorter names in cpp11_rvalue_reference3 testcase for Scilab 2021-11-15 22:13:27 +00:00
William S Fulton
606491326e Scilab compilation fix when wrapping C++11 enum classes 2021-11-15 20:19:12 +00:00
William S Fulton
75cacc1325 CC and CXX override improvements in examples
Use the overridden CC and CXX compiles when linking
when overriding at make time.
Previously the following would use CC and CXX specified at
configure time when linking:
  make CC=gcc-11 CXX=g++-11
2021-11-15 19:55:26 +00:00
William S Fulton
e6b6fa93aa Fix guile examples for C11 and later conformance 2021-11-15 19:25:41 +00:00
William S Fulton
47d39ed3d8 GHA: Add Guile to c++11,c++14,c++17 testing 2021-11-15 08:17:32 +00:00
William S Fulton
54e2ad073f Fix cpp11_type_aliasing test
Ordering fix for Guile wrappers to compile
2021-11-15 08:00:46 +00:00
William S Fulton
c83466af53 GHA: Add Lua to c++11,c++14,c++17 testing 2021-11-12 19:49:45 +00:00
William S Fulton
10af8fd921 Workaround Lua failing cpp11_raw_string_literals test 2021-11-12 19:45:25 +00:00
William S Fulton
01eb2e0aa9 Lua int ref typemap improvements
Fixes complex typedefs to const int& and const unsigned int&.
Fixes cpp11_type_aliasing testcase
2021-11-12 19:30:53 +00:00
William S Fulton
842ed6ca9d Testcase warning fix using gcc-11
warning: ‘this’ pointer is null [-Wnonnull]
2021-11-12 19:00:20 +00:00
William S Fulton
ada739b4a8 Fix mismatched new char[] and free() - Javascript
Javascript - v8 and node only.
When wrapping C code char arrays.
Now calloc is now used instead of new char[] in SWIG_AsCharPtrAndSize.
Fixes gcc-11 warning -Wmismatched-new-delete in arrays and
memberin_extend testcases.
2021-11-12 19:00:20 +00:00
William S Fulton
6cafc93135 -Wfree-nonheap-object warning fix using gcc-11 2021-11-12 19:00:20 +00:00
William S Fulton
d15a3cb1d4 Fix testcase -Wstringop-truncation warning in gcc11 2021-11-12 19:00:20 +00:00
William S Fulton
7da8ce722b Ruby 3.0 requires std::nullptr_t 2021-11-12 19:00:20 +00:00
William S Fulton
aedcad5384 Run GHA on all branches 2021-11-12 19:00:20 +00:00
William S Fulton
c1d8852609 GHA: Turn on full c++11, c++14, c++17 testing
Like we had on Travis

Note that Octave C++11 is already tested
2021-11-12 19:00:20 +00:00
William S Fulton
d13c63dc8d GHA: test go 1.17 (latest) version 2021-11-11 20:38:50 +00:00
William S Fulton
e74b9830bb GHA: C++11 testing and compiler name
Show compiler name (directly from inputs rather than from 'desc'.
Fix testing of C++11, C++14.
Allow for CSTD override to override with -std=gnu11 for languages
whose headers are not -std=c11 compatible.
Show c/c++ std being tested from github yaml file in the name.
2021-11-11 20:33:26 +00:00
William S Fulton
b69b5888a8 GHA: Fix testing of php versions
The ubuntu-20.04 machine has php 7.4 and 8.0 installed.
configure.ac always looks for newer versions over older versions of php.
To prevent always testing 8.0, remove all versions and just install the
required version.
2021-11-11 20:17:54 +00:00
William S Fulton
95c76a6fa6 Simpler Test code for handling SWIGLANG 2021-11-11 20:17:50 +00:00
William S Fulton
1bd3e771a0 Fix C tests for Javascript and c++17 2021-11-11 19:56:37 +00:00
William S Fulton
1c34be2d24 Fix nspace warning message 2021-11-11 18:59:25 +00:00
Vadim Zeitlin
5219338160 Fix previously unused access_change unit test runme file
This file had a wrong name and so wasn't used at all.

Do use it now, after renaming it to the required name and fixing its
compilation.
2021-11-10 02:17:07 +01:00
Vadim Zeitlin
e8f9bdba80 Remove wrapper aliases generation and use -namespace in the tests
The -namespace option provides a better way of using the wrapped API, so
drop the optional wrapper generation, which is useless when this option
is used and just generates many lines of unwanted junk in the header.

Update the test suite and the examples to compensate to not rely on
being able to define SWIG_DEFINE_WRAPPER_ALIASES and add -namespace
option to all C++ tests, as it's done for C# test suite, and update them
to use the correct prefix and also use the accessors for the global
variables rather than using them directly, as this is impossible when
namespace prefix is used (it would have been possible to define a
preprocessor symbol corresponding to the real variable name, but it's
arguably not worth it).

fixup! Remove wrapper aliases generation and use -namespace in the tests
2021-11-10 02:11:59 +01:00
Vadim Zeitlin
3ebf1c1769 Remove redundant cpp_basic_xxx tests
These tests duplicate the other, more complex, existing unit tests, so
it's just not useful to have them at all any more (they could have been
useful at the very beginning of C backend development, when none of the
other tests worked).
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
11bd97653f Inline functions used only once in functionWrapperCPPSpecific()
No real changes, just keep everything in a single function because it is
more clear than having both it and functionWrapperCPPSpecificWrapper()
doing the same thing.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
2f4a09fb21 Avoid calling getFunctionWrapperName() twice for each function
Pass the wrapper name to emit_wrapper_func_decl() to save on an extra
call to this function.

No real changes, this is just an optimization.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
fbf976768a Get rid of "c:globalfun" attribute
Use getCurrentClass() and other existing attributes to check if the
current node is inside a class or not (and hence is global), this is
more explicit and avoids confusion for static member functions that were
marked as being global in spite of being nested inside a class.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
8594a8def6 Use SWIG-specific suffix for non-overloaded %extend functions too
This avoids conflicts between functions synthesized by %extend when
adding static methods to an existing class, and the actual wrapper
functions generated by the backend.

This shouldn't result in any user-visible changes.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
70309fcb0a Refactor code in Language::staticmemberfunctionHandler()
No real changes, just move the test for "code" to the outer scope to
facilitate the upcoming changes.

This commit is best viewed ignoring whitespace-only changes.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
6833ead6ed Add -namespace option to use unique prefix for all wrappers
Using this option allows to prefix all exported symbols (functions,
enums and enum elements) with a prefix based on the given namespace.

Note that (global) variables can't be exported directly when using the
global namespace prefix, even if they are of C-compatible type.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
54af856d09 Fix typemaps for arrays of objects and object pointers
These typemaps never worked, but this went unnoticed until now because
the nonsensical "ctype" expansion generated by them still compiled.

With types possibly having a namespace prefix, they didn't any longer,
so define them correctly for the objects using "$resolved_type" and
define the typemap for "void*[]" separately, as "$resolved_type" can't
be used for it.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
5bf1497d7b Allow customizing type mangling in SWIG preprocessor
Use the "type" naming format for the types mangled by "#@" and "##@"
preprocessor operators, in order to allow customizing them for a
particular backend.

This isn't used by any backend yet, so this doesn't change anything so
far.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
cda93bd903 Fix enum value translation
Don't rely on hack with checking the value length and looking it up,
just check its type instead.
2021-11-07 02:29:01 +01:00
Vadim Zeitlin
f4ee8e5369 Fix names of enums and their elements
Use the containing class name as prefix, and add the name of the enum
itself to the prefix for the scoped enums, instead of doing something
strange and semi-random that we did before, with prefixes including the
namespace (which should never be the case without "nspace" feature), but
not the scoped enum.

This also fixes renaming of enum elements, as a side effect, which
didn't work before, add run test for enum_rename unit test to prove it.
2021-11-07 02:14:16 +01:00
Vadim Zeitlin
81d1fec13c Remove code setting unused "c:retval" attribute
This became unused after the changes of fd3e76365 (Streamline and fix
returning objects by value, 2019-08-06) and allows to simplify code
further as we don't need to override static and non-static member
function handlers at all any more now.
2021-11-04 01:31:06 +01:00
Vadim Zeitlin
ec4cfd41de Return scoped_dohptr from get_wrapper_func_return_type()
Ensure that the returned pointer is deleted automatically instead of
doing it manually.
2021-11-04 01:31:06 +01:00
Vadim Zeitlin
07e7086b39 Generate wrapper function name in a single place
Rename getGlobalWrapperName() to getFunctionWrapperName() and make it
work for all functions, not just global ones.

This means that we can test whether the function is global or not in a
single place instead of doing it in two different ones.
2021-11-04 01:31:06 +01:00
Vadim Zeitlin
7e5e6a4cf0 Avoid unnecessary allocations of function name
Use maybe_owned_dohptr in function wrapper code to avoid making a copy
unnecessarily just to be able to Delete() this pointer later.

No real changes.
2021-11-04 01:31:06 +01:00