Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:88225 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 35404 invoked from network); 16 Sep 2015 05:45:09 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Sep 2015 05:45:09 -0000 Authentication-Results: pb1.pair.com header.from=pierre.php@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=pierre.php@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.44 as permitted sender) X-PHP-List-Original-Sender: pierre.php@gmail.com X-Host-Fingerprint: 209.85.218.44 mail-oi0-f44.google.com Received: from [209.85.218.44] ([209.85.218.44:33242] helo=mail-oi0-f44.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F6/04-30198-3E109F55 for ; Wed, 16 Sep 2015 01:45:08 -0400 Received: by oixx17 with SMTP id x17so112608279oix.0 for ; Tue, 15 Sep 2015 22:45:05 -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=ID9UbAz5ctQPlUpKaOXyLoFWhR7ZUr+lBH0qCjBwT6o=; b=I4BkkEG5+CMdXnMmk9s3E+WG7A+1LJO45YPE7xi68Kfw2smLrXj6YzgeTLdEfFUb8G sUMhUpURQOssp3X6K6sRNjHmGbH/uTap1S8V03JVDf04/QemYhacwUMK3kWbfZK1idqd +6Y7lY451YnXgiGB+BcFXqjpU9cmyBXrLCwmZCiCQJ6n1N0REKPvJ6/kg/Ubd/MBSwgA RXajT57oc6H8Q8AifqV5Sr6vV4ZLoTWVELJ4Gc/KeIeITI4u8CXuZL9+VrjXYDplChMq mSNncuD31gnBqcv0qRw7uWEvWv95v9f/llODt/96+KSLz/ErDR5lgaTjd+fWS3oOaGnj ewmw== MIME-Version: 1.0 X-Received: by 10.202.74.10 with SMTP id x10mr21113392oia.98.1442382305085; Tue, 15 Sep 2015 22:45:05 -0700 (PDT) Received: by 10.202.62.197 with HTTP; Tue, 15 Sep 2015 22:45:03 -0700 (PDT) Received: by 10.202.62.197 with HTTP; Tue, 15 Sep 2015 22:45:03 -0700 (PDT) In-Reply-To: References: Date: Wed, 16 Sep 2015 12:45:03 +0700 Message-ID: To: Adam Harvey Cc: Dmitry Stogov , Kalle Sommer Nielsen , Anatoliy Belsky , Ferenc Kovacs , PHP internals Content-Type: multipart/alternative; boundary=001a1134fa14eccdec051fd6cc80 Subject: Re: [PHP-DEV] ABI break? (was: [PHP-CVS] com php-src: Don't inline "slow" and rarely used functions.: Zend/zend_alloc.c Zend/zend_alloc.h) From: pierre.php@gmail.com (Pierre Joye) --001a1134fa14eccdec051fd6cc80 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sep 16, 2015 8:08 AM, "Adam Harvey" wrote: > > On 9 September 2015 at 03:42, Dmitry Stogov wrote: > > Commit: ac83eaef1097552065395872c69b77dcab2919b1 > > Author: Dmitry Stogov Wed, 9 Sep 2015 13:42:35 +0300 > > Parents: 6d885e395ca33fef28c5b84b7cfd59885aaa6e2d > > Branches: master > > > > Link: http://git.php.net/?p=3Dphp-src.git;a=3Dcommitdiff;h=3Dac83eaef109755206539= 5872c69b77dcab2919b1 > > > > Log: > > Don't inline "slow" and rarely used functions. > > This commit appears to have broken binary compatibility for extensions > that make persistent memory allocations, since __zend_malloc is now a > real function and not inlined: such an extension compiled against > php-src after this commit can no longer be loaded into earlier builds > due to the missing __zend_malloc symbol. > > Most current extensions with PHP 7 compatibility aren't affected, but > the one relatively common case where a persistent allocation occurs is > when defining classes: INIT_CLASS_ENTRY() ultimately expands to > INIT_OVERLOADED_CLASS_ENTRY_EX(), which calls zend_string_init() with > the persistent flag enabled to create the class name string. > > It's awkward, since PHP 7.0 hasn't officially been released yet, but > it sucks that some extensions won't be binary compatible between RC2 > and RC3 (as things stand today). Options, as I see it: > > 1. Revert this commit. > 2. Bump the extension API number. > 3. Document that binary compatibility was broken in RC3, and that we > don't guarantee binary compatibility before a stable release is made. > > I personally don't think option 3 is viable (yes, it's not a stable > release, but it's still crappy =E2=80=94 avoiding this kind of thing is _= why_ > we have API versioning!). Dmitry, RMs: what are your thoughts? I have to go with 3. It does not make a lot of sense to add APIs version for RC. --001a1134fa14eccdec051fd6cc80--