Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:88263 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 58103 invoked from network); 16 Sep 2015 21:32:06 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Sep 2015 21:32:06 -0000 Authentication-Results: pb1.pair.com smtp.mail=anatol.php@belski.net; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=anatol.php@belski.net; sender-id=unknown Received-SPF: error (pb1.pair.com: domain belski.net from 85.214.73.107 cause and error) X-PHP-List-Original-Sender: anatol.php@belski.net X-Host-Fingerprint: 85.214.73.107 klapt.com Received: from [85.214.73.107] ([85.214.73.107:47929] helo=h1123647.serverkompetenz.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id FA/23-41443-0DFD9F55 for ; Wed, 16 Sep 2015 17:32:01 -0400 Received: by h1123647.serverkompetenz.net (Postfix, from userid 1006) id 6847D6D20C9; Wed, 16 Sep 2015 23:31:57 +0200 (CEST) Received: from w530phpdev (p579F3175.dip0.t-ipconnect.de [87.159.49.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by h1123647.serverkompetenz.net (Postfix) with ESMTPSA id DD1AE6D20C9; Wed, 16 Sep 2015 23:31:53 +0200 (CEST) To: "'Adam Harvey'" , "'Dmitry Stogov'" Cc: "'PHP internals'" , "'Anatoliy Belsky'" , "'Kalle Sommer Nielsen'" , "'Ferenc Kovacs'" References: In-Reply-To: Date: Wed, 16 Sep 2015 23:31:52 +0200 Message-ID: <014401d0f0c7$1c6120f0$552362d0$@belski.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQIeaxaGxbE8e4tlKMWqZDrI/Om5Z52klKag Content-Language: en-us Subject: RE: 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: anatol.php@belski.net ("Anatol Belski") Hi Adam, > -----Original Message----- > From: adam@adamharvey.name [mailto:adam@adamharvey.name] On Behalf > Of Adam Harvey > Sent: Wednesday, September 16, 2015 3:08 AM > To: Dmitry Stogov > Cc: PHP internals ; Anatoliy Belsky = ; Kalle > Sommer Nielsen ; Ferenc Kovacs > Subject: ABI break? (was: [PHP-CVS] com php-src: Don't inline "slow" = and rarely > used functions.: Zend/zend_alloc.c Zend/zend_alloc.h) >=20 > 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=3Dac83eaef1097552065395872c69b77dcab2919b1 > > > > Log: > > Don't inline "slow" and rarely used functions. >=20 > 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. >=20 > 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. >=20 > 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: >=20 > 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. >=20 > 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? >=20 While your observation is correct, I wouldn't see the matter as an = alarming issue. We're oriented to have less bugs in every next RC, thus = RC2 will have had its day soon anyway. So IMHO this change is not quite = nice at this stage, but still acceptable. Regards Anatol=20