Re: PHP 7.3 zif_handler changes
| From: | Christoph M. Becker | Date: | Tue, 26 Jun 2018 11:15:32 +0000 |
| Subject: | Re: PHP 7.3 zif_handler changes | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-102451@lists.php.net to get a copy of this message | ||
On 26.06.2018 at 08:42, Jan Ehrhardt wrote:
> Apparently, there were changes in the zend internal functions handler
> (aka zif_handler), but I cannot find any info on it. Neither in the
> linked documents, nor in
> 6ý,HÅ+ÓYb
> ܶ
[-https://github.com/php/php-src/blob/php-7.3.0alpha2/UPGRADING.INTERNALS
>
> I ran into this in at least three extensions, while compiling on Windows
> (vc15, x64, nts).
>
> pcs:
> |PCS_Loader.c(575): error C2440: '=': cannot convert from 'zif_handler' to
> 'void (__cdecl *)(zend_execute_data *,zval *)'
> |PCS_Loader.c(581): error C2440: '=': cannot convert from 'zif_handler' to
> 'void (__cdecl *)(zend_execute_data *,zval *)'
> |PCS_Loader.c(587): error C2440: '=': cannot convert from 'zif_handler' to
> 'void (__cdecl *)(zend_execute_data *,zval *)'
>
> pecl_http:
> |php_http_client_curl_user.c(190): error C2440: '=': cannot convert from 'void
> (__cdecl *)(zend_execute_data *,zval *)' to 'zif_handler'
>
> taint seems to have comparable errors. See
>
> https://github.com/laruence/taint/commit/9debfe9682d22e172906cd2e7754a8380bf13453#commitcomment-29461798
>
> Can this be fixed and/or added to UPGRADING.INTERNALS?
Apparently, zif_handler() has been changed to use the ZEND_FASTCALL
calling convention[1] which results in this incompatibility. Not sure
if that should be reverted, or just documented in UPGRADING.INTERNALS.
[1]
<https://github.com/php/php-src/commit/f3aca3c852df1dc169e73c01ef1d47927a51a57a>
<https://github.com/php/php-src/commit/0673aa7f6182dae11798c7a9055dbfd672d87c01>
--
Christoph M. Becker