Re: PHP7 releases vs Windows Sources?
| From: | Christoph Becker | Date: | Tue, 16 Jun 2015 22:20:47 +0000 |
| Subject: | Re: PHP7 releases vs Windows Sources? | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-86723@lists.php.net to get a copy of this message | ||
Johannes Schlüter wrote:
> On Tue, 2015-06-16 at 02:02 +0200, Christoph Becker wrote:
>> Johannes Schlüter wrote:
>>
>>> It is not including the generated parsers. This means the user might use
>>> a different version, which might cause a bug which might be hard to
>>> debug as usage of provided files is assumed.
>>
>> Fair enough. However, the Windows sources neither contain the generated
>> parser files, because they would break linking on Windows, see
>> <http://news.php.net/php.internals/86685>.
>
> This is a bug and has to be addressed.
I have investigated further. The issue is commit b8e2629[1]. I'm
certain that Sara had good reasons to mark zendparse() as ZEND_API.
However, that breaks building with the generated zend_language_parser
files with MSVC, if they have been generated with a somewhat recent
bison (2.4.1 still works, 2.7.12 fails), because newer versions declare
zendparse() again in .c and .h – without ZEND_API.
It seems the only possibility to fix this mismatch would be to use a
custom skeleton, but the /usr/share/bison/README states:
| These skeletons are the only ones supported by the Bison team.
| Because the interface between skeletons and the bison program is not
| finished, *we are not bound to it*. In particular, Bison is not
| mature enough for us to consider that "foreign skeletons" are
| supported.
So what to do?
[1]
<https://github.com/php/php-src/commit/b8e262901e56a4d9a6664d348c9878246579239e>
--
Christoph M. Becker