Commit graph

22,796 commits

Author SHA1 Message Date
William S Fulton
72f7b82935 Correct warning message for wchar_t * typemaps
Use separate warning for char * and wchar_t * typemaps
SWIGWARN_TYPEMAP_CHARLEAK_MSG and SWIGWARN_TYPEMAP_WCHARLEAK_MSG
2022-05-06 18:44:02 +01:00
William S Fulton
f029beffe8 Ruby li_std_set test failure workaround
Prevent GC from collecting "hello" string in testcase
as workaround to prevent GC occasionally causing segfault.

Issue #2115
2022-05-06 08:11:29 +01:00
William S Fulton
a3b49ef75e GHA: continue-on-error corrections 2022-05-05 08:42:02 +01:00
William S Fulton
fe2cdb1d90 Add python 3.2 as allowed to fail
Seems broken atm
2022-05-04 21:40:15 +01:00
William S Fulton
bb39235c9c Add C# wchar_t * director typemaps
More Python std::wstring directors Python testing
2022-05-04 21:37:47 +01:00
William S Fulton
751d443046 C# std::wstring director support
Updates for #1706
2022-05-04 21:37:47 +01:00
tartanpaint
9fd59650cf Apply C# test updates for directors with std::wstring supplied by wsfulton 2022-05-04 21:37:47 +01:00
tartanpaint
3377b63dad Fix line endings 2022-05-04 21:37:47 +01:00
tartanpaint
5b7447b20e Fix marshalling of std::wstring parameters in directors
std::wstring parameters on SWIG directors were being truncated to a single character due to marshalling inconsistencies.
This patch applies the same MarshalAs(UnmanagedType.LPWStr) attribute to director delegate methods and allows std::wstrings to be successfully received in the C# code via director calls.
2022-05-04 21:37:47 +01:00
William S Fulton
fc6269a3ca GHA changes
octave-6.4 has disappeared - stop testing it.
ruby-2.6 allow to fail (for li_std_set), see issue #2115.
2022-05-02 21:25:58 +01:00
William S Fulton
79a9389355 Add support for throwing wstring exceptions
Throw an ApplicationException for std::wstring and wchar_t * strings
2022-05-02 21:08:19 +01:00
William S Fulton
0fbd6cc364 wchar_t C# marshalling tweak
Use more appropriate unsigned short (2 byte type) pointer
for C# ctype instead of wchar_t pointer
2022-05-02 21:08:19 +01:00
William S Fulton
ed42422d1c Add support for wchar_t * and std::wstring Unicode strings on Linux
Initial contributions for Linux provided in issue #1233, modified to work
on both Windows and Linux. Dual support is possible by detecting
the sizeof wchar_t which is different on each of these systems.
2022-05-02 21:08:19 +01:00
Ian Lance Taylor
05580ff1e7
Merge pull request #2241 from cminyard/add-goin-newline
[Go] Add missing newlines for goin typemaps
2022-04-20 17:44:10 -07:00
Corey Minyard
537669ba3d CHANGES.current: Add an entry for the godirectorin bug
Document what was fixed in the previous few changes.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
2022-04-20 17:54:15 -05:00
Corey Minyard
3cc67d42f3 [Go] Add a test for godirectorin with const char **
This exercises a bug that was found with this fairly complex mapping, it
wasn't putting newlines in the proper place.  A previous commit added
the newlines, this makes sure it doesn't happen again.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
2022-04-18 19:55:34 -05:00
Corey Minyard
546763ffbc [Go] Add an example for goin and godirectorin
Shows how to use a go directory for passing an NULL terminated argv type
array.

This also exercises the bug in the previous commit.  That's why the
call1 function isn't assigned to zero, that the only case where that bug
happens.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
2022-04-18 19:55:34 -05:00
Corey Minyard
fb4c69b4b0 [Go] Add missing newlines for goin typemaps
In some cases the \n was missing from goin directives in some places.
Without this change, you will get

}	swig_r = (int)(C....

in the output in some cases, and that won't compile in Go, it will
error with:

  ../gensio/gensio.go:1508:3: expected ';', found swig_r

It only did this on director callbacks with godirectorin, and only if
the virtual function wasn't assigned to zero.  So the following will
fail:

    class callbacks {
    public:
        virtual bool call1(int v, const char * const *strarray);
        virtual ~callbacks() = default;
    };

but the following won't:

    class callbacks {
    public:
        virtual bool call1(int v, const char * const *strarray) = 0;
        virtual ~callbacks() = default;
    };

Add "\n" to the proper places to fix this.
2022-04-16 16:10:32 -05:00
Olly Betts
6043554c38 configure.ac: Add missing shell quoting
Fixes "./configure[4896]: test: argument expected" on stderr.
2022-04-13 11:14:29 +12:00
Olly Betts
822e51009e Add CHANGES entry for #2257/#2258 2022-04-12 08:35:11 +12:00
Robin Stocker
962f090001 Fix Ruby 3.2 warning "undefining the allocator of T_DATA class swig_runtime_data"
Ruby 3.2 (still in development) started warning about this, see
https://bugs.ruby-lang.org/issues/18007.

Note that the extension docs mention it in
https://ruby-doc.org/core-3.1.1/doc/extension_rdoc.html#label-C+struct+to+Ruby+object:

> The klass argument is the class for the object. The klass should
> derive from `rb_cObject`, and the allocator must be set by calling
> `rb_define_alloc_func` or `rb_undef_alloc_func`.

So in this case we call `rb_undef_alloc_func` to fix the warning.
Verified that this works in robinst/taglib-ruby#115.

Fixes #2257.
2022-04-12 08:32:42 +12:00
luz paz
c8bec18554 Fix various typos
Found via `codespell -q 3 -L ans,anumber,ba,bae,chello,clos,cmo,coo,dout,fo,funktion,goin,inout,methid,nd,nin,nnumber,object,objekt,od,ois,packag,parm,parms,pres,statics,strack,struc,tempdate,te,thru,uint,upto,writen`
2022-04-11 07:59:36 +12:00
Olly Betts
1aeaa2a644 Recognise and ignore Doxygen group commands @{ and @}
Fixes #1750
2022-04-07 12:05:54 +12:00
Olly Betts
779d5cf57a Remove bogus parser grammar rule for unary &&
This appears to have been accidentally added in
d8cc75946b as part of the changes to
support C++11 rvalue references, presumably to match the existing
correct rule for unary &.

There is a non-standard GCC extension for taking the address of a label
using unary &&:

https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html

However this extension only works in an expression in a function body,
and SWIG doesn't parse the contents of function bodies so this grammar
rule isn't even providing any useful support for this extension.
2022-04-07 12:01:40 +12:00
William S Fulton
fe0af80933 Remove some unnecessary empty lines from generated .py file 2022-04-07 00:17:18 +01:00
William S Fulton
a12fc916e4 Remove unused functions in Python builtin mode 2022-04-07 00:17:15 +01:00
William S Fulton
9c67a2c007 Remove legacy USE_THISOWN conditional compilation
Seems to be a left over from 'thisown' partial removal
in 985adc13fb
2022-04-06 22:58:17 +01:00
William S Fulton
a5be4a10b5 Slight performance improvement for %pythonnondynamic
Setting this is much more likely than thisown
2022-04-06 22:48:33 +01:00
William S Fulton
da07af7fe2 doxygen_autodoc_docstring test fix for Python builtin 2022-04-06 22:33:17 +01:00
William S Fulton
19a872eab7 Temporarily disable doxygen_autodoc_docstring_runme.py 2022-04-06 20:51:37 +01:00
William S Fulton
dba941120d Enable C++11 testing by default, Appveyor testing scaled back
./configure now enables C++11 and later C++ standards testing by default (when
running: 'make check').

The options to control this testing are the same:

  ./configure --enable-cpp11-testing
  ./configure --disable-cpp11-testing

But the former is now the default and the latter can be used to turn off C++11 and
later C++ standards testing.

Reduce the number of tests on Appveyor by only running 32-bit (x86) using
latest Visual Studio (2022). Drop 32-bit Cygwin and MinGW testing.
Add C# and Java testing on VS2022 and drop Java testing on older Visual Studio.
This reduces the really long run times on Appveyor, however, VS2022 is
somewhat slower than older compilers.
2022-04-06 19:45:31 +01:00
William S Fulton
b35ebc81a9 Doxygen comments take precedence over the autodoc feature.
If a "docstring" feature is present it will still override a Doxygen comment.
If the "autodoc" feature is also present, the combined "autodoc" and "docstring"
will override the Doxygen comment. If no "docstring" is present then the
"autodoc" feature will not be generated when there is a Doxygen comment.

This way the "autodoc" feature can be specified and used to provide documentation
for 'missing' Doxygen comments.

Closes #1635
2022-04-06 08:08:14 +01:00
William S Fulton
e8c1bda0b5 D compiler detection enhancements
Detect LLVM D compiler ldmd2 or ldc2.
Show D version. Note that dmd does not have an
explicit command line option to show version.
2022-04-04 22:02:05 +01:00
William S Fulton
322574722b Testcase warning fix for c# old versions of MSVC 2022-04-04 22:02:05 +01:00
Olly Betts
471df4823b Don't call skip_decl() on "Syntax error in input(3)"
This is a useless left-over from long ago (2007) when we didn't exit
right away after reporting this error.
2022-04-04 08:59:36 +12:00
Olly Betts
ef3f25ab1c Remove -browse command line option
This option was undocumented.  If used it quietly did nothing
unless you'd installed the SWILL library before building SWIG, but
SWILL is no longer maintained and hasn't seen a release since
2008-04-10.

It's clear nobody has used this functionality for some time as the
code to support it in SWIG isn't actually valid ISO C++:

Modules/browser.cxx: In member function ‘void Browser::show_attributes(Node*)’:
Modules/browser.cxx:57:23: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
57 |         char *trunc = "";
   |                       ^~
Modules/browser.cxx:61:21: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
61 |             trunc = "...";
   |                     ^~~~~

Closes #2251
2022-04-03 08:56:07 +12:00
William S Fulton
e4c972c328
Merge pull request #2239 from igt-gteubl/csharp-capacity-cs0034
C#: Fix CS0034 in Capacity method of std::vector
2022-03-30 20:04:08 +01:00
William S Fulton
4c07441549 GHA: MzScheme go back to c++98 testing
MzScheme headers have a problem when using -Werror that the test-suite uses:

/usr/include/racket/sconfig.h:126:43: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
  126 | #  define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-"SPLS_LINUX
2022-03-29 09:01:18 +01:00
William S Fulton
0b15740663 Fix warning in D test-suite 2022-03-28 19:30:47 +01:00
William S Fulton
8be06d0e8c Correct MzScheme and OCaml GHA testing 2022-03-28 19:25:17 +01:00
William S Fulton
e1e4e4df28 Add rvalue reference typemaps for D 2022-03-28 19:25:17 +01:00
William S Fulton
2ded25d138 Fixes for ISO C89 2022-03-28 19:25:11 +01:00
William S Fulton
5cc4591ae7 Consistent cpp11 testing in test-suite
Move HAVE_CXX11 into makefiles so that running test-suite
from top level directory or in the language's test-suite directory
is consistent. For example, running 'make check-java-test-suite'
behaves the same as 'cd Examples/test-suite/java && make check'.
2022-03-27 19:34:20 +01:00
William S Fulton
27d6f5c2fe git commit -m "Fix test-suite's make clean to clean cpp11 testcases
Always clean cpp11 tests even if --enable-cpp11-testing is not active
May result in cpp11 tests being deleted twice though" ../
2022-03-27 18:28:49 +01:00
William S Fulton
cbd9bd6d71 Fix running make-cpp11 for ocaml 2022-03-27 16:43:30 +01:00
William S Fulton
282fdb1715 MzScheme 'passes' with c++11 testing now
Test c++17 on Github Actions to try keep it passing when
configure detects g++ can test c++17.
2022-03-27 15:06:47 +01:00
William S Fulton
f44153069b Ocaml test-suite 'passes' with c++11 testing now
Test c++17 on Github Actions to try keep it passing when
configure detects g++ can test c++17.
2022-03-27 13:50:30 +01:00
William S Fulton
a71c318b06 Stop testing two recently failing ocaml tests
Problem here seems to be one also affecting other ocaml broken tests:
1. Enum value names should be using sym:name not name (ie %rename is broken for ocaml enum items)
2. directorin typemaps are not correct
2022-03-27 13:33:02 +01:00
William S Fulton
ffe2f85417 go_multicpp_setup make function correction 2022-03-27 12:44:19 +01:00
William S Fulton
c5f209706e Further makefile refactoring for multicpptests 2022-03-27 11:27:58 +01:00