Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:80025 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 50588 invoked from network); 31 Dec 2014 17:50:41 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 31 Dec 2014 17:50:41 -0000 Authentication-Results: pb1.pair.com smtp.mail=francois@tekwire.net; spf=softfail; sender-id=softfail Authentication-Results: pb1.pair.com header.from=francois@tekwire.net; sender-id=softfail Received-SPF: softfail (pb1.pair.com: domain tekwire.net does not designate 212.27.42.2 as permitted sender) X-PHP-List-Original-Sender: francois@tekwire.net X-Host-Fingerprint: 212.27.42.2 smtp2-g21.free.fr Received: from [212.27.42.2] ([212.27.42.2:47399] helo=smtp2-g21.free.fr) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 7D/D6-32362-F6734A45 for ; Wed, 31 Dec 2014 12:50:41 -0500 Received: from moorea (unknown [82.240.16.115]) by smtp2-g21.free.fr (Postfix) with ESMTP id B6E8B4B021E; Wed, 31 Dec 2014 18:49:00 +0100 (CET) Reply-To: To: "'Dmitry Stogov'" , "'Nikita Popov'" , "'Xinchen Hui'" , "'PHP Internals'" References: In-Reply-To: Date: Wed, 31 Dec 2014 18:50:33 +0100 Message-ID: <002a01d02522$469637f0$d3c2a7d0$@tekwire.net> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQLOmS5f4M9aMmkqTfn3mH7aDNJRxZqtBbBg Content-Language: fr X-Antivirus: avast! (VPS 141231-0, 31/12/2014), Outbound message X-Antivirus-Status: Clean Subject: RE: [PHP-DEV] Merge HashTable and zend_array into a single data structure. From: francois@tekwire.net (=?UTF-8?Q?Fran=C3=A7ois_Laupretre?=) > De : Dmitry Stogov [mailto:dmitry@zend.com] > Please take a look into the patch >=20 > https://github.com/php/php-src/pull/970/files >=20 > This real changes are in zend_types.h, the rest is renaming that in = most > cases makes code cleaner. >=20 > zend_array didn't change its binary representation, but now it's not > possible to get a pointer to embedded HashTable. The same zend_array > shoukd > be used instead. >=20 > Each HashTable got an extra 64-bit zend_refcounted header. This leads = to > some increase in memory consumption. >=20 > The performance is slightly increased (may be measured with = callgrind). >=20 > The patch beaks one test (tests/lang/foreachLoopObjects.006.phpt), but > actually it just disclose a problem that we have anyway. >=20 > The patch should be a base for the future optimizations. e.g. removing > HashTable->arData and/or HashTable->arHash and allocating them = together > with zend_array; introducing EG(empty_array) etc. "Showing 46 changed files with 193 additions and 204 deletions". I am = sorry but I can't analyze the impacts of your change, just from the = patch. Did you write an RFC that would explain the impact, especially = for extension writers ? More generally, what is the rule ? Is there a list of people who can = introduce changes in the code, and even BC breaks in the C API, without = writing RFCs, or is it just a question of rights/karma on the source = repository ? I say that because it is especially hard to have a proposed = change accepted on the mailing list, as several 'watchdogs' are there to = dismiss ideas coming from people they don't know.