On Mon, Mar 25, 2013 at 1:19 PM, Laruence <larue...@php.net> wrote: > On Mon, Mar 25, 2013 at 1:18 PM, Laruence <larue...@php.net> wrote: >> On Mon, Mar 25, 2013 at 12:42 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: >>> On 03/24/2013 09:30 PM, Laruence wrote: >>>> On Mon, Mar 25, 2013 at 7:38 AM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: >>>>> 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. >>>> if %parse-param defined, then the paramenter also is added to yyerror, >>>> yydestroctor etc. >>>> >>>> it will a little big change. >>> >>> Right, but if we handle it like we do with TSRMLS_C throughout the code >>> and always set that %parse-param to this new magic macro we make up and >>> have it point to void *compiler_globals for zendparse() under ZTS mode >>> and void otherwise and make sure it is (re)defined correctly in other >>> places? It might mean we need to refactor zenderror() to take a dummy >>> first arg since it seems to prepend the parse-param type there. Messy. >> >> Hmm, seems fine, a patch is attached: >> https://bugs.php.net/patch-display.php?bug_id=64503&patch=bison_build.patch&revision=latest >> >> >> but there must be some unused parameter term_ls while in non-zts build... > unused parameter warning I mean, :) hmm, how stupid I was, hehe , simply:
#ifndef ZTS (void)tsrm_ls; #endif :) thanks > > thanks >> >> thanks >>> >>> -Rasmus >>> >>> >>> >> >> >> >> -- >> Laruence Xinchen Hui >> http://www.laruence.com/ > > > > -- > Laruence Xinchen Hui > http://www.laruence.com/ -- Laruence Xinchen Hui http://www.laruence.com/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php