Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP 7.3 Support #804

Closed
brainfoolong opened this issue Jun 25, 2018 · 15 comments
Closed

PHP 7.3 Support #804

brainfoolong opened this issue Jun 25, 2018 · 15 comments

Comments

@brainfoolong
Copy link

I am here just to ask for some information about 7.3 timeline. As always, i am an early tester for every new PHP release and we still require SQL support on windows :)

@david-puglielli
Copy link
Contributor

@brainfoolong Support for PHP 7.3 is in the pipeline but no timeline has been set yet. Please stay tuned.

@brainfoolong
Copy link
Author

Thank you for your answer.

@Jan-E
Copy link

Jan-E commented Jul 18, 2018

The ZVAL_INTERNAL_DTOR raised an error in PHP 7.3.0 alpha 4.
https://github.com/Microsoft/msphpsql/blob/master/source/pdo_sqlsrv/pdo_dbh.cpp#L555
or in the dev branch
https://github.com/Microsoft/msphpsql/blob/dev/source/pdo_sqlsrv/pdo_dbh.cpp#L549

ext\pdo_sqlsrv\pdo_dbh.cpp(549): error C2065: 'ZVAL_INTERNAL_DTOR': undeclared identifier
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\`

zval_internal_dtor(zvalue) is defined in
https://github.com/php/php-src/blob/master/Zend/zend_variables.h#L94

Probably the ZVAL_INTERNAL_DTOR must be changed into ZVAL_INTERNAL_PTR_DTOR
https://github.com/php/php-src/blob/master/Zend/zend_variables.h#L111

@Jan-E
Copy link

Jan-E commented Jul 18, 2018

BTW In PHP 7.2 ZVAL_INTERNAL_DTOR still existed:
https://github.com/php/php-src/blob/PHP-7.2/Zend/zend_variables.h#L113

@Jan-E
Copy link

Jan-E commented Jul 18, 2018

ZVAL_INTERNAL_DTOR was removed in this commit:
php/php-src@7eb045d#diff-93200b0a055c7319402b4e44c8ee8cd4

And became public in PHP 7.3.0 alpha 4. @cmb69 Undocumented as well?

@yitam
Copy link
Contributor

yitam commented Jul 18, 2018

Thank you @Jan-E we are aware of this, and it's in our plan to address this issue (please see my comment in PR #810)

@yitam
Copy link
Contributor

yitam commented Jul 24, 2018

ZVAL_INTERNAL_DTOR was removed in this commit:
php/php-src@7eb045d#diff-93200b0a055c7319402b4e44c8ee8cd4
And became public in PHP 7.3.0 alpha 4. @cmb69 Undocumented as well?

Thanks @Jan-E for the reference about the macro ZVAL_INTERNAL_DTOR being removed in php 7.3 alpha, and it looks like the change is not documented in the change log.

     core::sqlsrv_zend_hash_init( *g_pdo_henv_cp, pdo_conn_options_ht, 10 /* # of buckets */, 
                                 ZVAL_INTERNAL_DTOR, 0 /*persistent*/ TSRMLS_CC );

However, replacing ZVAL_INTERNAL_DTOR with ZVAL_INTERNAL_PTR_DTOR resulted in segfaults

But, replacing ZVAL_INTERNAL_DTOR with ZVAL_PTR_DTOR seems to rid of the issues

@cmb69
Copy link

cmb69 commented Jul 24, 2018

[…] the macro ZVAL_INTERNAL_DTOR being removed in php 7.3 alpha, and it looks like the change is not documented in the change log.

See http://news.php.net/php.cvs/102609, Apparently, ZVAL_INTERNAL_DTOR was not supposed to be used, in the first place.

@yitam
Copy link
Contributor

yitam commented Jul 24, 2018

I see. Thanks @cmb69
It would be nice to find official documentation to know which macros/functions to replace the obsolete ones. For sure replacing ZVAL_INTERNAL_DTOR with ZVAL_INTERNAL_PTR_DTOR resulted in segfaults

@cmb69
Copy link

cmb69 commented Jul 24, 2018

It would be nice to find official documentation to know which macros/functions to replace the obsolete ones. For sure replacing ZVAL_INTERNAL_DTOR with ZVAL_INTERNAL_PTR_DTOR resulted in segfaults

@dstogov Thoughts?

@dstogov
Copy link

dstogov commented Jul 25, 2018

@cmb69 I have no idea why ZVAL_INTERNAL_DTOR was used at all (it's a "relict" for persistent zvals), and I don't see, why to use persistent zvals in non-persistent HashTable.
Probably, it should be changed into regular ZVAL_PTR_DTOR.

DEBUG PHP build should, probably, abort because of assertion, instead of crash.
Stack-trace of the crash and/or valgrind log might be helpful to understand the problem.

@yitam
Copy link
Contributor

yitam commented Jul 25, 2018

Sounds good, thanks @dstogov and @cmb69

@brainfoolong
Copy link
Author

Hi folks. How is it going? We are already in PHP 7.3 beta. Any news for us consumers ? :)

@david-puglielli
Copy link
Contributor

@brainfoolong PHP 7.3 support is coming in our next preview release - date of availability is TBA, so please stay tuned!

@yitam
Copy link
Contributor

yitam commented Sep 26, 2018

Closing this issue as we support PHP 7.3 starting with 5.4.0-preview release.

@yitam yitam closed this as completed Sep 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants