Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:66786 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 59681 invoked from network); 25 Mar 2013 04:31:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Mar 2013 04:31:03 -0000 Authentication-Results: pb1.pair.com smtp.mail=laruence@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=laruence@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.44 as permitted sender) X-PHP-List-Original-Sender: laruence@gmail.com X-Host-Fingerprint: 209.85.215.44 mail-la0-f44.google.com Received: from [209.85.215.44] ([209.85.215.44:61045] helo=mail-la0-f44.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id C4/10-58569-203DF415 for ; Sun, 24 Mar 2013 23:31:00 -0500 Received: by mail-la0-f44.google.com with SMTP id eb20so10570845lab.3 for ; Sun, 24 Mar 2013 21:30:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=6gpsVH4/qgG57SA/haUql/Tl7t1UeKzJBCDbjbQCUxo=; b=JHsl1UO6YvhfdILgdOVxnoRnVwdBw/4SmZfR6bADWohvg5gV6JPJgY6FlLAArgMrB/ mDUdEvv0f6ABxa4VYbT4qlyo+U1ay2Ie2l3PnsZj0YOuWCLxnHZOJgyuvh9zU99XvA/T SzznLULsNptEfBecLw9VxBM7JJo9VV0pVXKkhtQAEUbhwpdAD75bOGxx2F2FHuYWv6jP 0Pq5nLUV81XhdSydGqU7KLEPzNr0ygziq+AL+zYOVGKV3YuyVvK6fNlmlFft/f1504Py 4cdZeD0tbTdMy7XErjOf1RNpQU1JgFLw1iRH666daFzDdioKIpNJ7t7vpeJI/vB0qbTZ I5Zw== X-Received: by 10.112.101.230 with SMTP id fj6mr5126425lbb.115.1364185856070; Sun, 24 Mar 2013 21:30:56 -0700 (PDT) MIME-Version: 1.0 Sender: laruence@gmail.com Received: by 10.114.66.196 with HTTP; Sun, 24 Mar 2013 21:30:36 -0700 (PDT) In-Reply-To: <514F8E86.2020601@lerdorf.com> References: <514C1E14.3070002@fedoraproject.org> <514F370B.7080409@lerdorf.com> <514F8E86.2020601@lerdorf.com> Date: Mon, 25 Mar 2013 12:30:36 +0800 X-Google-Sender-Auth: -3iq3bnnL87cdnYsj-mJEK2TVTg Message-ID: To: Rasmus Lerdorf Cc: Felipe Pena , Remi Collet , internals Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] PHP 5.5.0beta1 ZTS broken build From: laruence@php.net (Laruence) On Mon, Mar 25, 2013 at 7:38 AM, Rasmus Lerdorf wrote: > On 03/24/2013 10:35 AM, Felipe Pena wrote: >> Hi, >> >> 2013/3/24 Rasmus Lerdorf : >>> 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. thanks > > -Rasmus > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- Laruence Xinchen Hui http://www.laruence.com/