Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:91653 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 88753 invoked from network); 14 Mar 2016 11:58:42 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 14 Mar 2016 11:58:42 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 157.56.111.137 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.111.137 mail-bn1bon0137.outbound.protection.outlook.com Received: from [157.56.111.137] ([157.56.111.137:54987] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id CA/81-10845-177A6E65 for ; Mon, 14 Mar 2016 06:58:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=7I74SWO1ULZxHeEFGRuLlplbSgYwS6chglCqRBgerb8=; b=iKPUP2ql61wLwBOR3chVbg15oyLr6u7hdGxR9yHa3pNcnhsEyp81lapdc70fjKCvt5VFPFcBW+E+T4sPMe3Vg9BGw68SMfN74La5jTiwvA/uNk2hkeAEwiSqT1IMvS4MRmah7yLay13zDPxPX1y1HGJekbX5ZvsI1HuXF6XG/aw= Authentication-Results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by SN1PR0201MB1789.namprd02.prod.outlook.com (10.162.228.19) with Microsoft SMTP Server (TLS) id 15.1.427.16; Mon, 14 Mar 2016 11:58:36 +0000 To: Nikita Popov References: CC: Xinchen Hui , Bob Weinand , "internals@lists.php.net" Message-ID: <56E6A761.8070005@zend.com> Date: Mon, 14 Mar 2016 14:58:25 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------060207070004070208060805" X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM2PR03CA0004.eurprd03.prod.outlook.com (25.160.207.14) To SN1PR0201MB1789.namprd02.prod.outlook.com (25.162.228.19) X-MS-Office365-Filtering-Correlation-Id: e72b3026-5462-47bc-2302-08d34bfffa3e X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1789;2:VXQxVljUJCB5X3Ff6rF2xaLTH8GPJqOggST9l3S045/yrJSqpqXyOfYNJz5xBWbIFTsSGJ9qFalZvBkmuoO954mng7hQtIIdEplUDm9gMmpntud2uCYhmlT8pY09ZhHfDtIc5+uB9ziGo5D2cIxqajEEkEsJiYhJ7H4CU4PcqW7KcS9IACjrAy6KBBno7W+0;3:yz2xA6+mC1n7O4s77tmMyG5tRKZ7zZNtL3wse1Q0hP/8yrkjETHbOWGNQO9TdvmaPVLhs1o4gtWkUOtJJa0clBZTCmNNaz3GcuAs3wBn8GXwk1tF6OKHJzAebdH/UY4K;25:we+07bQqouk0Ri5rXxkSESM2KWE1aeNlDPX7IXtEmk9VIc8jt3HG3W3oBY5cQ3RkP646/dZSTIbOuWpjZXtIE+yflQYHPlpA0mZSMqpsIL7kif71A23yra9yD6rA0A24NBH2p/4odrjendoz8lVjWnXMcOg0GG605mFE1zcfCe93CUsyG71RN9OpquYNvcaM1ySCENTtrsTOi9r+6RSvQY0nw7TCBIslAZjTogDX5euZr6MUNEe6HvnB0+UH0EqZDmLywrq4jDuZFAWaCKEGZi41ep/uOdb1RK9ZOkBfEUI7odwb70Ij+OL48jjR96gJEFVdsu+bMwvqis9B9U0XMg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0201MB1789; X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1789;20:msIGtdPQ/ydamTAPS5IxcxeFj3Aks0jsnqqTvPFCLSbevW7zz0dYyYMpT9NlDJW3l8DY1jffYhroI1FMfmfWrA0C26H27MFpuAFq0xYr+awP32FY2jXf4AwvnzogPuRen38GvmmSguYlrAygRjVd5rlvQnQIwHtGXsa36sjJJEtHa5iNVzYHDFE7jZPjnOxomA93vuchjaMr/uJsEdl8Or0PcpzpY+sksRU6L1iBbBqqXp7oYWrPPq7YzFYR6tn0Q/xhmYZqXcxmJmWsKD7fK3SJapIzrn8aRVwTp8mGe4nS3C9j/uZoAu/KDzVonEo0g6/cbfbDtO7KkZw14lWTUVr9MajiOJDddjOH/6/Dsb1AcFkji45zKm3JKQsHeLe3PJSTplnYB5/N7N6qyAAqw5sG6BazZMLWJ+i2ketJxLEhghV+hsJk+OAKP+bXVnUmZ6c3WfUhqQp/3sh80npT5oX9Iyf9k2zVYnBS1fp7KCJ16v3paFzOLaxEORH4n8GN;4:sIxlyPacugSHD9Vt8NHuCdkUnB4ilzwX8eGcLotVa4kqUFO8shBezJHA5qjgT7KMopO+8uOiEdnF+4RMyjHmN7bxkKhGvK5h9cgGpqfMbTVG2+ZozLIflUMbBUBLvnvwb6wKlbiGOPPcfGZHgQ4M5YDk6T++ndC1sASP0AEYLQju+VrWJVo5EDCChQWUYzmk+ZGHOY5bKeCD95vetnuBYNjeYh0zAkghKQZGO9EslmB0P5qSaDGI75Y17YJzcgo/cFnLfm3BBd1421c1Dg+tD35A/5nFOohbjLGc+ecvC8bLjoZSJY/5d+k6B0f3Mcgizv9kVgUSyqCDgozpybMAzkU3UkJtlow7ywt+EuF7uB5OH6tnOvZvFTnM5SRLtMNq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:SN1PR0201MB1789;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0201MB1789; X-Forefront-PRVS: 0881A7A935 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(479174004)(377454003)(24454002)(84326002)(19580395003)(50986999)(110136002)(81166005)(2906002)(6116002)(5008740100001)(3846002)(83506001)(76176999)(4326007)(64126003)(54356999)(5004730100002)(87266999)(1096002)(586003)(42186005)(65816999)(86362001)(270700001)(2950100001)(512874002)(189998001)(65806001)(66066001)(65956001)(77096005)(15975445007)(92566002)(19617315012)(3480700003)(59896002)(33656002)(16236675004)(36756003);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR0201MB1789;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR0201MB1789;23:vObno5hyHXGxT2yBi8JY2nWR842YJVIkyThhfrJ?= =?us-ascii?Q?abtdCeSNG/e06L2SsEAS4CGlxUHXdUx5RuDZpQKC3od/faq8OTmytFBXKLI3?= =?us-ascii?Q?H85N7nlOjZ+JLYalDSrfmGdV9j9NbeSJCIP9ke/ezFm8F4XSxzFvDBTf2YtO?= =?us-ascii?Q?Sh2R0zxAnUsBK35jEmfcCXmNpWfOAxdYdn4WFfQxRYL3xfEiCqcu4WEVyEnb?= =?us-ascii?Q?wfmoDe1vrSd4jS8eOUEbdRm1rSTyvwEox+xZ/bLeYwFuQoE+sEfBiaioZa5o?= =?us-ascii?Q?BTNeHj4KlLn7Mnbt5xUJTrpWBzC82Msp5PDVkzoQgXVNCgAXHP0dHYe7y7mN?= =?us-ascii?Q?Q7WL3chV7OrfQctCIzFCghC30fBxv3Lnmhoyi1SKTg5CFHLKZHJMMEtp4Pux?= =?us-ascii?Q?59leiHvDsgf2cZavLzcNBjYW0SH/T3JtIwhtV+XFg/kREekz3FnT+9RMgNmu?= =?us-ascii?Q?9MYQliVT6zvEKMlgX/QCUasoQ/qSEm7ojpl3VvfJ3aAT+QtCWZZt8LRCmjsv?= =?us-ascii?Q?n7xC5amq+oWuEN5mWNyh6zOKY8R/SNAPhPjyN3+zgsXdPN6g+POv/GKeGxNx?= =?us-ascii?Q?gUNCt+4fHqVgbf9Q3PkK0CxoBB9fdRcPQmiAmuotEzFpOawoI7/X4HKQSjiR?= =?us-ascii?Q?eNkvcM9SrM9TY6cMhkv6HsygcedJa90D4c/m7LTBnJVcbnNgeEEPKMKxyjdS?= =?us-ascii?Q?qpYsPGfbuCfjKoEF8rwz6lxqm1W+Ti+aGW4zH0X/Iqeg3TtJKApR0xoOBcd0?= =?us-ascii?Q?gsg5CW78pjAJPpfQb0F76GlCHJzANDVYoF/DWFuQ33deEmv9+GA0xgT+XnuM?= =?us-ascii?Q?XUNPpRRppHVNMr22p4HZzgNsyQu+QIWrilM2R5BLb/0iuW1bOrJAMt3B80Oo?= =?us-ascii?Q?UOpgoyvDT4A+A23UOvt8Kr4BQciF/Nwug8BuB4sCP2ACEgZSiYOVxTBRa5Ib?= =?us-ascii?Q?tJt3aliz7sVKQWPPhZ9H4cjmNCpIHt8wVSgKcBCR4WgQKPN+8BBA2OuSlPTO?= =?us-ascii?Q?nenmXl0wLnKOTL3ZbFMkETiYx/ofMVlteEPP98/UM+koGuQM44kQqnWSRqUk?= =?us-ascii?Q?8/aJk5SPFBWSJ99s0vXP/rCy+ZiuHdH5pVqAUKfVGFM95yOC/Jg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1789;5:3HZIJNzIVdW3zQU9c4q5qE6ot9FKBoRM75RuZD8+NeMR7TMbkOpbBlujvyG0b9AXvQiYTMRQdmAO4H9EuVSyhy5688SHJRZia0ao3oopPqhh9dJlXZoCImORYzIKtcy5gZzjyiyQKQq0y9h1OtyxVw==;24:cp8PQxR0XNw7nPIiUcMhG726oXNP9li68w2x0WrKZ3OdVS8lIfl2CX4N3GlK/vkm2s2gvngbtqERFoGMBCz7ahrNaH78m3mydBQ5ukBsvIA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2016 11:58:36.5866 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0201MB1789 Subject: Re: Remove useless opcode handlers From: dmitry@zend.com (Dmitry Stogov) --------------060207070004070208060805 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 03/14/2016 02:29 PM, Nikita Popov wrote: > On Mon, Mar 14, 2016 at 11:56 AM, Dmitry Stogov > wrote: > > Please take a quick look and let me know if you see any problems. > > > https://gist.github.com/dstogov/23cc318dd3e411904e10 > > > I'm going to commit this tomorrow. > > > Thanks. Dmitry. > > ZEND_ADD is not commutative for array operands. Unfortunately, you are right :( > ZEND_MUL may not be commutative if operator overloading is involved > (e.g. matrix multiplication is not abelian). Right again. > The NO_CONST_CONST cases are problematic: Opcache currently, in my > eyes incorrectly, evaluates constant expressions even if they throw > notices (currently I think mostly by suppressing them). If we do not > evaluate these, we may end up with CONST_CONST operations. (This is > not a huge problem just now because constant folding in opcache is > limited -- however with full constant propagation this leads to many > test failures.) The patch adds NO_CONST_CONST handling to opcache. All tests are passed, I also didn't see any problems running ~10 real-life apps. > The opcodes affected by the last point (limited to those included in > your patch) are SUB, MUL, POW, CONCAT (array operands) and BW_NOT > (various). However with Andrea's invalid numeric string RFC more will > fall in this category (evaluable but throwing). I didn't get what is wrong with SUB, MUL, etc, because they are evaluated at compile-time Anyway, I see - the patch can't be committed in current state. Thanks for review. Dmitry. > > Nikita --------------060207070004070208060805--