Commit graph

22,210 commits

Author SHA1 Message Date
Olly Betts
ae317ccfc2 Update RELEASENOTES for PHP wrapping changes 2021-05-05 09:39:48 +12:00
Olly Betts
82b244c1d3 [php] Remove redundant conditional include
We always include zend_exceptions.h via phprun.swg.
2021-05-05 09:35:52 +12:00
Olly Betts
502e7185ce Merge branch 'gsoc2017-php7-classes-via-c-api' 2021-05-04 17:47:48 +12:00
Olly Betts
9bd1b46acc Add CHANGES entry 2021-05-04 17:45:59 +12:00
Olly Betts
f24543993c [ci] Restore full set of jobs 2021-05-04 17:35:09 +12:00
Olly Betts
7983c83116 Fix case of expected functions and globals
The updated tests.php is case sensitive.
2021-05-04 15:49:30 +12:00
Olly Betts
c45fb9d2e1 Add member_pointer_const_runme.php 2021-05-04 15:29:46 +12:00
Olly Betts
0d028d8942 Rework tests.php
Previously this relied on getting all known classes/functions/etc
when it was loaded, and then again after the PHP module being
tested was loaded.  This approach no longer works now we've
stopped loading modules using dl(), so use ReflectionExtension
instead to get information about a specific extension.

This is likely also faster than wading through lists including
everything predefined by PHP.
2021-05-04 15:26:45 +12:00
Olly Betts
f2009ef681 Fix and restore disabled code in PHP value example 2021-05-04 14:21:13 +12:00
Olly Betts
2de563a32e Update details of PHP undefined constants
Since PHP 8.0 these now give an error.
2021-05-04 14:20:28 +12:00
Olly Betts
32283991c5 Don't generate a .php wrapper file by default
It's now only generated if something to put in it is specified via:

%pragma(php) include=...

or

%pragma(php) code=...
2021-05-04 14:14:56 +12:00
Olly Betts
6e6d720d88 Fix segfault in exception class creation
We can't safely lookup the Exception class entry at MINIT time, but we
can just use zend_ce_exception instead, which will be a bit faster too.
2021-05-04 13:12:15 +12:00
Olly Betts
592f230295 Remove CG(active_class_entry) = NULL;
This has been in the code for a really long time, and doesn't seem
to be required now.  It's not documented by PHP as something we
need to do, and the value seems to always be NULL at this point
already.
2021-05-04 11:36:24 +12:00
Olly Betts
f227e5fae4 Document extension=modulename
This works for PHP >= 7.2 and is the recommended method now as it
avoids having to specify a filename which varies between platforms.
2021-05-04 08:05:04 +12:00
Olly Betts
61f00daee4 Fix extension= value for PHP < 7.2 2021-05-04 08:04:36 +12:00
Olly Betts
586eb24efe php: Stop using dl()
With modern PHP it only works with the CLI version of PHP, so it's
better to direct users to load the extension via "extension=" in
php.ini.

Suggested by ferdynator in #1529.
2021-05-03 18:42:28 +12:00
Olly Betts
1eabe1b29b Fix type in SWIG_DIRECTOR_CAST 2021-05-03 16:51:18 +12:00
Olly Betts
c87047fd39 Merge branch 'master' into gsoc2017-php7-classes-via-c-api 2021-05-03 16:17:02 +12:00
Olly Betts
81d1618777 Adjust director_finalizer_runme.php
Without inventing a SWIG/PHP-specific mechanism, we can't really
finalise objects in the way the testcase expects, so adjust the
testcase minimally so we avoid triggering C++ undefined behaviour
(use-after-free).
2021-05-03 16:07:50 +12:00
Olly Betts
04bacf689b Implement director-disown for PHP 2021-05-03 16:00:30 +12:00
Olly Betts
9ddc9dceb7 Remove support for $source and $target
These were officially deprecated in 2001, and attempts to use them have
resulted in a warning (including a pointer to what to update them to)
for most if not all of that time.

Fixes #1984
2021-04-30 10:20:14 +12:00
William S Fulton
5f8768daed Support testing on AIX for tcl
Contributed by Tony Reix

Closes #1922
2021-04-28 00:04:50 +01:00
William S Fulton
429288fa1c Fix Java %interface family of macros
when returning by const pointer reference

Closes #1987
2021-04-27 23:37:18 +01:00
William S Fulton
499eb5806f Update node support level is now v16 2021-04-27 21:14:51 +01:00
William S Fulton
0d1f6338b8 Node 16 uses c++14 features
v8 headers use std::remove_cv_t
2021-04-27 21:13:17 +01:00
William S Fulton
0e9f89f900 Test node v16 2021-04-27 21:11:51 +01:00
William S Fulton
2b3522fc96 Javascript node install on Travis
node-gyp 8 is now installed by default, but doesn't work with older Javascript versions
2021-04-26 22:37:07 +01:00
William S Fulton
8a21922f1a bool performance warning fix 2021-04-26 22:32:52 +01:00
William S Fulton
bbb49a203e Disable Appveyor cygwin which has started to fail 2021-04-26 22:32:52 +01:00
William S Fulton
f14c712001 Correct disabling of c++11 testing
C++11 testing was not being turned off when the
C++ compiler check for C++11 features failed and
'configure --enable-cpp11-testing' was used
2021-04-26 22:32:52 +01:00
William S Fulton
13158bda9a Member function pointer typemap tweaks
Use sizeof variable name rather than variable type.
Workaround Visual C++ unable to parse some complex C++11 types, such as
  sizeof(short (Funcs::*)(bool) const &&)
2021-04-26 22:32:52 +01:00
William S Fulton
abcae7c68b Remove AC_HEADER_STDC replacement code
Remove replacement code added in by autoupdate.
Go with recommendation to unconditionally include C headers
(which we have been doing all along).

Minimum autoconf version can be restored back to what it was.

We do need AC_PROG_EGREP - used by AC_EGREP_CPP
2021-04-26 22:32:52 +01:00
William S Fulton
f822a6f091 configure.ac tidyup after update (ccache)
We don't use TIME_WITH_SYS_TIME
Don't check for sys/time.h twice
Minimum version was 2.52 before upgrade, no need to enforce 2.71
Set it to 2.60 (same as main swig configure.ac) - new macros
introduced by autoupdate are in 2.60.
2021-04-26 22:32:52 +01:00
William S Fulton
5ef26675cc configure.ac update (ccache)
Updated using autoupdate from autoconf 2.71
2021-04-26 22:32:52 +01:00
William S Fulton
0c3da29dc3 configure.ac update
Updated using autoupdate from autoconf 2.71
2021-04-26 22:32:52 +01:00
William S Fulton
661cd54526 Fix -Wchar-subscripts warning
warning: array subscript has type ‘char’ [-Wchar-subscripts]
2021-04-26 22:32:52 +01:00
William S Fulton
fb0c4aeb53 Clean configure output detecting Javascriptcore 2021-04-26 22:32:52 +01:00
William S Fulton
ad876e8189 Appveyor Visual c++11 testing
Test cccl c++11 code
Upgrade cccl-1.0 to cccl-1.2 for -std command line option support
2021-04-26 22:32:52 +01:00
William S Fulton
0a99192339 Testing of C++14 and C++17 detection improved
Previously if the compiler was detected to support c++11,
-std=c++11 was set preventing c++17 code from being properly tested.
Now c++14 and c++17 support is looked for and the -std flag is
appropriately set to the compiler's maximum supported version.
2021-04-26 22:32:52 +01:00
Olly Betts
3c4342e66a Only emit custom free_obj handler if needed
If has_destructor isn't set then the default zend_object_std_dtor
does everything necessary.
2021-04-22 18:44:16 +12:00
Olly Betts
837dfa1e7e Fix directorout SWIGTYPE typemaps 2021-04-22 17:51:14 +12:00
Olly Betts
a6a52f2f79 Eliminate remaining use of $needNewFlow 2021-04-22 15:14:38 +12:00
Olly Betts
50426aae20 Make PHP directors work more like other languages
A PHP exception now gets translated to a C++ exception to skips over C++
code to get back to PHP, avoiding the need to gate every directorout
typemap on EG(exception).
2021-04-22 14:40:21 +12:00
Olly Betts
10d87100ea Whitespace tweaks 2021-04-22 12:25:13 +12:00
Olly Betts
ad61e33e22 Wrap pointer to member as object not resource 2021-04-22 07:56:25 +12:00
Olly Betts
50b13275dc Fix mixed declarations and code 2021-04-22 07:42:39 +12:00
Olly Betts
5e2114501f Pass NULL instead of an empty zend_function_entry 2021-04-21 19:11:21 +12:00
Olly Betts
af5030bca1 Just call the internal class entry internal_ce
It's just a local variable, so no need to carefully name it after
the class.
2021-04-21 18:34:26 +12:00
Olly Betts
2920ba1cf6 Use malloc() not emalloc() when free() gets used 2021-04-21 18:18:59 +12:00
Olly Betts
3f9723b896 Use PTR instead of zv for SWIG_remove() parameter
The parameter is a general pointer, not necessarily a zval.
2021-04-21 18:16:56 +12:00