On 03/24/2013 10:35 AM, Felipe Pena wrote:
> Hi,
> 
> 2013/3/24 Rasmus Lerdorf <ras...@lerdorf.com>:
>> On 03/22/2013 02:02 AM, Remi Collet wrote:
>>> While build of 5.5 snapshot works perfectly, beta1 ZTS build is broken
>>>
>>> In file included from
>>> /dev/shm/BUILD/php-5.5.0beta1/ext/tokenizer/tokenizer.c:33:0:
>>> /dev/shm/BUILD/php-5.5.0beta1/build-ztscli/Zend/zend_language_parser.h:331:5:
>>> error: conflicting types for 'zendparse'
>>> In file included from
>>> /dev/shm/BUILD/php-5.5.0beta1/Zend/zend_globals.h:28:0,
>>>                  from /dev/shm/BUILD/php-5.5.0beta1/Zend/zend_compile.h:418,
>>>                  from /dev/shm/BUILD/php-5.5.0beta1/Zend/zend_modules.h:26,
>>>                  from /dev/shm/BUILD/php-5.5.0beta1/Zend/zend_API.h:26,
>>>                  from /dev/shm/BUILD/php-5.5.0beta1/main/php.h:38,
>>>                  from
>>> /dev/shm/BUILD/php-5.5.0beta1/ext/tokenizer/tokenizer.c:25:
>>> /dev/shm/BUILD/php-5.5.0beta1/Zend/zend_globals_macros.h:35:5: note:
>>> previous declaration of 'zendparse' was here
>>>
>>> Comparing the 201303201430 snapshot (very closed to beta1) and beta1 archive
>>>
>>> 201303201430, in bison generated files:
>>>     /* A Bison parser, made by GNU Bison 2.4.1.  */
>>> beta1:
>>>     /* A Bison parser, made by GNU Bison 2.6.1.  */
>>>
>>> So, it seems snapshot script don't use the same environment than the one
>>> used to generate release.
>>>
>>> Any idea how to fix this ?
>>
>> I took a quick look at this. The Bison change causing this from their
>> NEWS file is:
>>
>>   *** Features deprecated since Bison 1.875
>>     YYPARSE_PARAM and YYLEX_PARAM, deprecated in favor of
>>     %parse-param and %lex-param, will no longer be supported.
>>
>> I was hoping the fix would be as simple as doing:
>>
>> -#define YYPARSE_PARAM tsrm_ls
>> -#define YYLEX_PARAM tsrm_ls
>> +%parse-param { tsrm_ls }
>> +%lex-param { tsrm_ls }
>>
>> but that doesn't quite do the trick. Need to read up more on how
>> %parse-param and %lex-param work. If someone wants to do a little light
>> reading and report back it would be appreciated.
>>
> 
> http://www.gnu.org/software/bison/manual/html_node/Parser-Function.html#Parser-Function
> 
> This page explain how to use it.

Sure, I see how they work, but the problem is that they can't be inside
the %{ ... %} code block there. They have to be outside and as such
won't have access to the #ifdef ZTS. So I don't think we can
conditionally create a reentrant parser like we did before without
refactoring things a bit.

-Rasmus


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to