Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:86724 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 52194 invoked from network); 16 Jun 2015 22:34:41 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Jun 2015 22:34:41 -0000 Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.48 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 74.125.82.48 mail-wg0-f48.google.com Received: from [74.125.82.48] ([74.125.82.48:32835] helo=mail-wg0-f48.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 10/B1-41412-F74A0855 for ; Tue, 16 Jun 2015 18:34:40 -0400 Received: by wgez8 with SMTP id z8so22636391wge.0 for ; Tue, 16 Jun 2015 15:34:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=GXzenTJ3Mdh56k+U0on+wwFRARf5T8SlLYarjR6M05w=; b=nwANhoiRota6SHIVMNP+g6wTeA4HVNAqt7qTDn86qzRTz2/GXjvvTECbi7GUKhe1Y4 EpydOJztMg17wUswGlPgwxG8hAm28rHWJO1wv+XTf64wH2vlhHbttbVoN7AeLKtQbfP+ eqReEr3nvHP1eFX/9djmRE2Yhx6EH6Zb/KROfissDJiKZ7mdazuyEqRQmbfTDFIYt4fT 4QlvI9o74041ImMUQLq8IR5vjUhx3Esa4ssCpeBcn9kw7axA1feAlos9xFMRF4kTsZcl wajQ4vCR4YcQyUb7TcWd72bycitO7wHN5PStSfyvU4OVk6RWz0CLiUPbW3ZppOEJU1O7 XDkg== MIME-Version: 1.0 X-Received: by 10.180.90.209 with SMTP id by17mr47829960wib.2.1434494075729; Tue, 16 Jun 2015 15:34:35 -0700 (PDT) Received: by 10.27.179.96 with HTTP; Tue, 16 Jun 2015 15:34:35 -0700 (PDT) In-Reply-To: <5580A13F.9040806@gmx.de> References: <00c501d0a773$f84fee90$e8efcbb0$@belski.net> <557EDF48.9000800@gmx.de> <1434379932.17693.5.camel@kuechenschabe> <1434400117.17693.10.camel@kuechenschabe> <4efunalbluqdcrf5h91lmsqtedj5t40i95@4ax.com> <557F4B64.6040403@gmx.de> <1434411840.17693.17.camel@kuechenschabe> <557F6788.9040908@gmx.de> <1434455919.21120.0.camel@kuechenschabe> <5580A13F.9040806@gmx.de> Date: Wed, 17 Jun 2015 00:34:35 +0200 Message-ID: To: Christoph Becker Cc: =?UTF-8?Q?Johannes_Schl=C3=BCter?= , Sara Golemon , "internals@lists.php.net >> PHP Internals" Content-Type: multipart/alternative; boundary=f46d043c80d2d0fc7f0518aa2d52 Subject: Re: [PHP-DEV] PHP7 releases vs Windows Sources? From: nikita.ppv@gmail.com (Nikita Popov) --f46d043c80d2d0fc7f0518aa2d52 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Jun 17, 2015 at 12:20 AM, Christoph Becker wrote: > Johannes Schl=C3=BCter wrote: > > > On Tue, 2015-06-16 at 02:02 +0200, Christoph Becker wrote: > >> Johannes Schl=C3=BCter 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 generat= ed > >> parser files, because they would break linking on Windows, see > >> . > > > > 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 =E2=80=93 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/b8e262901e56a4d9a6664d348c987824657= 9239e > > > We need some ZEND_API way to invoke the parser from extensions. If it's inconvenient to have on zendparse() directly because bison, I'd suggest dropping it there and creating a ZEND_API wrapping function. Nikita --f46d043c80d2d0fc7f0518aa2d52--