Commit graph

23,810 commits

Author SHA1 Message Date
Olly Betts
4f5dfd596d [php] Provide zend_class_implements_interface() for 7.x
It seems instanceof_function_ex() isn't a viable option for PHP 7.3 and
earlier - the implementation is strangely wrong.

So let's just provide a compatibility implementation which does what
zend_class_implements_interface() does in 8.x and use that for all 7.x
so there are fewer variants to worry about testing.
2022-01-21 14:32:36 +13:00
Olly Betts
91470ca62d [php] Actually generate parameter type declarations 2022-01-21 13:27:54 +13:00
Olly Betts
772ea68084 [php] Fix minor version test 2022-01-21 13:09:47 +13:00
Olly Betts
c197ed719a Fix unterminated comment in previous commit
I'm an idiot - I noticed I'd used a // comment after testing, but failed
to retest after fixing that.
2022-01-21 12:34:38 +13:00
Olly Betts
ce4a9923ed [php] Fix zend_class_implements_interface() compat
The sense of parameter 3 of instanceof_function_ex() appears to have
changed in PHP 7.4 and we need to pass 0 for older versions and 1 for
PHP 7.4.  Words fail me.
2022-01-21 12:11:39 +13:00
Olly Betts
4d3d4839b0 [python] Add multivalue_runme.py 2022-01-21 11:10:30 +13:00
Olly Betts
d43f28a666 [php] Use -prefix setting in type declarations 2022-01-21 11:08:24 +13:00
Olly Betts
c417250b4e [php] Allow testing if an object is SWIG-wrapped
Since the switch to wrapping classes using PHP's C API, we now
internally need to be able to tell if a PHP object is of or derived
from a class that is wrapped by SWIG so we know if we can offset the
zend_object pointer to get to the swig_object_wrapper.  If we try to
do this to an object which isn't wrapped by SWIG then we invoke C/C++
undefined behaviour (and typically get a segmentation fault).

This check is implemented by having a SWIG\wrapped empty interface which
we make all SWIG-wrapped classes implement simply so we can test for it
to detect such classes.

Fixes #2125
2022-01-20 14:42:02 +13:00
Olly Betts
0cfc750d44 CHANGES.current: Add entry for previous commit 2022-01-20 10:17:57 +13:00
Olly Betts
1f1349741f
[php] Generate PHP type declarations
We now automatically generate PHP type declarations for PHP >= 8.0.

The generated code still compiles with PHP 7.x but without type declarations.
2022-01-20 10:07:44 +13:00
William S Fulton
76d5a9ec27 gcc-12 warning fix in test-case
Closes #2145
2022-01-18 21:37:02 +00:00
Olly Betts
748a9a5452 [perl] Require at least Perl 5.8.0
As discussed and agreed in #1629, it's become hard to test with Perl
5.6 or earlier, such old versions are no longer in active use, and
4.1.0 is an appropriate time to make such a change.

I've dropped the compatibility code that was obvious to me, but there's
probably more that can be cleaned up now.
2022-01-19 10:07:30 +13:00
William S Fulton
8c608d646c Fix Appveyor mingw builds - install autotools 2022-01-18 21:03:21 +00:00
William S Fulton
c8645aab9e Ensure GHA fails when testflags.py fails 2022-01-18 21:03:21 +00:00
Olly Betts
c839066405 [perl] Document explicitly not to use %OWNER directly
See #1771
2022-01-18 14:53:02 +13:00
Olly Betts
45c1255933 Fix missing HTML escaping in Octave docs 2022-01-18 13:56:07 +13:00
Markus Friedrich
d0121bff6e Use a different assert in octave check 'module_path' for some octave version
Octave >= 4.4 < 6 seem to handle the SWIG generated .oct files differently.
Before the .oct file e.g. swigexample.oct is loaded exists('swigexample')
returns 3 (name is a ‘.oct’ or ‘.mex’ file in Octave’s path.)
After loading swigexample.oct exists('swigexample') returns 1 (name is a variable.)
Whereas all other octave version return always 3.
isglobal('swigexample') return always true.
2022-01-16 22:15:48 +01:00
Markus Friedrich
a5774a9d0f Fixed octave version check and enabled VPATH build for check-octave-operator example 2022-01-16 09:58:25 +01:00
Markus Friedrich
be0b975e6b Merge remote-tracking branch 'origin/master' into HEAD 2022-01-16 09:57:22 +01:00
Olly Betts
0fbf23a77b Fix PHP docs formatting issue 2022-01-16 12:36:05 +13:00
Vadim Zeitlin
4748e4f379 Remove more insignificant differences with examples in master
Follow the she style of the other existing examples.
2022-01-15 16:50:17 +01:00
Vadim Zeitlin
faa5d8bbf5 Change value of WARN_C_UNSUPPORTTED for consistency
Use consecutive value for the C-specific warnings instead of reserving
the first and last values of the range for consistency with the other
modules.
2022-01-15 16:40:46 +01:00
Vadim Zeitlin
c1fcf99ea7 Revert change to handling "#@" in SWIG preprocessor
The extra flexibility in expanding "#@" was considered inappropriate,
see the discussion in #2096, so revert the preprocessor part of the
changes of 5bf1497d7 (Allow customizing type mangling in SWIG
preprocessor, 2021-11-10).

This unfortunately means that the macros used in <attribute.i> don't
work for C backend any longer, so a previously passed unit test had to
be disabled.
2022-01-15 16:35:21 +01:00
William S Fulton
2272d00c1a Add Python testcase for testing flatstaticmethod syntax
For testing legacy flattened static method access for when
issue #2137 is applied.
2022-01-15 00:05:06 +00:00
William S Fulton
3aa302c08f %callback and Python class access for C++ static member functions fixes
Fix access to C++ static member functions using Python class
staticmethod syntax, such as Klass.memberfunction instead of
Klass_memberfunction, when using -fastproxy and -builtin in
combination with %callback.

The docstring containing the callback pointers were not being patched
during module initialisation.
2022-01-14 23:00:59 +00:00
William S Fulton
627f7214db [Python] Add missing Python kwargs builtin support
Accept keyword arguments accessing C++ static member functions when
using -builtin and kwargs feature and Python class staticmethod syntax.
The missing keyword argument support was only when using the
class staticmethod syntax, not when using the flat static method
syntax.
2022-01-14 23:00:42 +00:00
William S Fulton
cf8788c411 Update Python tests to not use flatstaticmethod access
Use Python class staticmethod syntax to access C++ static member functions,
such as Klass.memberfunction, instead of Klass_memberfunction.
Examples and test-suite changes in preparation for issue #2137.
2022-01-14 22:48:11 +00:00
Vadim Zeitlin
7610997209 Stop using Travis CI which doesn't work any longer
Unfortunately Travis CI can't be used for building open source projects
any longer in practice, as extra credits must be manually requested
every time from Travis support, which is just infeasible, as this would
need to be done every couple of days if not more often, and support
reply time is anything from a couple of days to more than a month.

So stop even trying to use it, as it doesn't work anyhow, and switch to
using GitHub Actions only.

Closes #2067
2022-01-10 20:31:28 +00:00
William S Fulton
b98c78441f GHA debug via ssh info 2022-01-10 20:13:16 +00:00
William S Fulton
3200a815d4
Merge pull request #2095 from vadz/extend-suffix
Use suffix for static methods added by %extend
2022-01-08 21:11:14 +00:00
William S Fulton
0a400f5230 Building distribution fixes and pcre version display
[skip-ci]
2022-01-08 19:23:02 +00:00
William S Fulton
3530b3356c Add recent change to changes file 2022-01-08 16:29:18 +00:00
Vadim Zeitlin
7eb67cecca Restore the use of matrix.desc in GHA workflow file
This is not used currently, but keep it there as this change is not
related to C backend addition.
2022-01-04 01:33:55 +01:00
Vadim Zeitlin
9a2e48b447 Clean up class example header
Apply changes of b115c984a (More cleaning up of the class examples,
2014-05-05) and other similar commits to the header in this branch too.
2022-01-04 01:32:25 +01:00
Vadim Zeitlin
cb974ef662 Use COMPILETOOL with C_LDSHARED and CXX_LDSHARED
This is consistent with the way this is done for the other backends and
allows to avoid overriding these variables for partialcheck target.

Co-Authored-By: Olly Betts <olly@survex.com>
2022-01-04 01:29:21 +01:00
Vadim Zeitlin
92c3b37337 Avoid defining custom assert() macro in one of the C tests
This was inconsistent with all the other tests and the macro suffered
from several problems. Just drop it and use the standard macro with the
same name instead.
2022-01-04 01:26:40 +01:00
Vadim Zeitlin
3b7f772dde Remove extra trailing blank line in examples makefile
This was removed in master but somehow survived in this branch.
2022-01-04 01:24:12 +01:00
Vadim Zeitlin
78e09d5372 Remove commented out code from c/std_except.i
This was added in 32e03aa13 (Many major improvements. Almost all
testsuite compiles now., 2009-04-15) and never really used.
2022-01-04 01:10:43 +01:00
Vadim Zeitlin
0fcdec302c Revert some insignificant changes done in historical C branch
This undoes parts of a2dc2756c (Several major fixes for: arrays, static
members, member func.ptrs., exceptions, ... Lots of tests runs ok now.,
2009-04-13) that shouldn't have been done in the first place.
2022-01-04 01:10:16 +01:00
ERROR
d73f933c4b
Support std::array in Golang (#2045)
Support std::array in Golang

Closes #2045
2022-01-04 12:12:56 +13:00
Olly Betts
48eba82ac8 Remove obsolete code to set SWIG_V8_VERSION
We've dropped support for the old V8 versions which lacked version
macros, and SWIG_V8_VERSION now gets automatically defined by
Lib/javascript/v8/javascriptruntime.swg which will #undef it first if
it's already defined.
2021-12-29 19:16:36 +13:00
Olly Betts
130813b320 Escape a literal > in PHP.html 2021-12-29 19:15:08 +13:00
Olly Betts
9e95f7f996 [php] Add director_ownership_runme.php
This serves as a regression test for
https://sourceforge.net/p/swig/bugs/1339/ which was presumably fixed by
the change to use PHP's C API to wrap classes.
2021-12-29 15:48:40 +13:00
Olly Betts
fa36d6fd28 [python] Add 3.10 to Python versions in configure 2021-12-24 16:43:25 +13:00
Olly Betts
c42e8970a4 [php] Improve wording in the manual 2021-12-24 15:53:00 +13:00
Olly Betts
9f87d81fae Clean up testcase source whitespace 2021-12-23 16:18:07 +13:00
Olly Betts
860731e0ea Remove redundant test cases
With C++ comments changed to C comments, these are now identical to
the two cases just above, aside from the `2` suffix on the names.

Follow-on for #2027.
2021-12-23 11:55:47 +13:00
William S Fulton
2d76057571 preproc_cpp test for testing preprocessor and C++
Move C++ comment testing into here.
See 7a9bf3307f.
2021-12-22 19:06:00 +00:00
Olly Betts
1b22fef8ad [php] Add missing runmes for overload_* testcases 2021-12-22 13:40:29 +13:00
William S Fulton
7a9bf3307f Remove C++ comments from preproc C test
Closes issue #2127
2021-12-21 22:36:42 +00:00