Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93460 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 15157 invoked from network); 23 May 2016 21:36:55 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 23 May 2016 21:36:55 -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.108 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.111.108 mail-bn1bbn0108.outbound.protection.outlook.com Received: from [157.56.111.108] ([157.56.111.108:40633] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id C0/0E-14293-5F773475 for ; Mon, 23 May 2016 17:36:55 -0400 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=ktvf/hWKcuSAQzaRwc4NBRduyaiO7xhHazlhoTWYJKg=; b=f79OHf0wJCiXPDDD5Y+dSS/LBI7iQHdcbKLK7jnG5OT7SpfoZoHlQOBNfaKO7yXkFiRniC4JW6LCvn/9lyTVKVUDx6P0xQrL/8MRIcwhhwaiWvp/F6X9QpZQ0sY1VETLpw4vgkLpaUCmC0eATaBq+pwqhDN86giGa6AkQ5WpMo4= 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 BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) with Microsoft SMTP Server (TLS) id 15.1.501.7; Mon, 23 May 2016 21:36:48 +0000 To: Nikita Popov References: CC: Xinchen Hui , internals Message-ID: Date: Tue, 24 May 2016 00:36:35 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------190F36C1C2657A512D7A9459" X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM2PR09CA0031.eurprd09.prod.outlook.com (10.161.22.169) To BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) X-MS-Office365-Filtering-Correlation-Id: 3aae9f03-9516-4c29-d162-08d38352593e X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;2:QkK8KslnORu4PIKBfPuTbcNNs1qSsp8z/+F7CYVv6+VIpugylk7VjJpSJ3//y99dR4UHf7zdiA/jlyLljYrXftfnH8FLh5WZ8zhwLHWkLW/jBp0EFYYPeAPjBeCiHwwz3Vi3SniVQZ1RKqO32UzVuZkwMAW7P/UB6eaj9o0ACxJDx4CUZElDpjK2vl1XmwXk;3:a1ceSZHwBBW/Z34efktIcWLiwz8ReDcIcKcOToICATHI6jhhQXNCk/nyfA7eoGfdUES+lWzRjOcxQ3npO+w13AsCNcIWEtL35sTip3vF2DL+uwvUcj2LNGEEYRl4Z3pT;25:aAVTj6ZyfhGZlpV2Y0qIJ24KQiYV2VnUSLgmF6r2PdVp6vVLmvLnUEUnheSzTFN/9JyXYM0126Gf9LRANWwhe0QFB7apo6OY/2ofBDGA+fuVTx1a2ktelEp0UkMQhtjYPMowrENj7Qt4VHf198jRKWJn1JwsX3QyXtghrthO5Kp0NYVEOmXEcW/ZeB/IzF+D/0JQX8PHCUXBpCbh+7rqRuaSW7+JJ2MmcVi1RQmcjb/+gZZ6XdbsQ+YKEWtCiymrHWdeXdyUAH2xh4Qjw8yXJdeo8E+uh5Qc9T8BwrzeJsRjl2u+vBpVACHaWNdtSoQ4MsbwenOO1vQnPmLNGhHK5QrYJEO6Pgxaht1ftp7a3K6/Il+2lRjLzUdAmBAva+yZWv2RdfHoA7KmZDwHVokYjOo0COhhDkq8o9fesVyc6yk= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1784; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;20:kElflk0u90XyZAEta3lYZte95mV2VL+7d894WRvVSee/Hu1HKWxQ24bU3xOadYEYQovjgBhMsUMHzu8AfW7IJ4gmlPXmto1wH62Sn6zbFSLYXIZEWSNDVsSw1ZTwn+Z2lw/NJZuTNrhCsgmuyEed4Qzsxg8bhuUa1GdoC3TYNZZ/mV8Qsu6tkOT4aznQfSyaFGX/sgyp0SGLjvpnH6HLLU2VuVW91LVyr1KRc2amaW6vXeNG5PXJR9L2vSkiw3LJF6jPBmeF2sF5F7cUKo9tP2D2MN8gxaI1z+qLHU1TTVLE9iJ3ceq/8QN54a1YYHYDMCwk3/grbYth2BADQKytCR+P+OLOEY5/qYaEpnqL94EtoqTtFw9tACb0RidAjZDO1zUBGexCgvrI/GP2hoeeduZoolSebdLH7aD7wH+tGvMZlvCG7iVSewK4vQIoMsGFaYqLLT74FskLTM6nh14RfqD72EUzgZP/m+GSs2kFU08fh9UWNacGIAuHlbUCj646;4:IdVYnnfUunX/7NmaeTQgL5eoPlxGANg1UzgUZXueZPK3ksebsGqaCqKoZV9Ibwxt4IyWXmukdPAL5q3y250692n7gwDXvDktdJ6E0cDKIA5ZDsUdXCf5KtUBimcxTk9w38Y3hTew/9TrSXNgpykD/I7lZheFoRFzM1v820WsJMUN8I1LcWTVZ+v8OFoehe2FeePxcNwhJLzrUYEQourRlV4udun1eR7+qLd6cH6tFTZQeq23PG9mAzo4PANypzXrQgLOX80KPyXFCt2ZhIhwHiGultX7Y+JBiMLlxfTVRTKYxXu+54m/+Zm1WGH5Eqkdvd1B/XHJORVtN0X+18MFpAjv5275wS0rj13TiRVOljUA50ezq1e/1K+WUVOgVlsF X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:BY2PR0201MB1784;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1784; X-Forefront-PRVS: 0951AB0A30 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(24454002)(377454003)(31696002)(512874002)(16236675004)(65956001)(65806001)(5008740100001)(2950100001)(15975445007)(6116002)(54356999)(3846002)(19617315012)(92566002)(50986999)(76176999)(33646002)(270700001)(66066001)(110136002)(93886004)(2906002)(81166006)(8676002)(42186005)(83506001)(586003)(84326002)(189998001)(31686004)(36756003)(575784001)(77096005)(4001350100001)(4326007)(5004730100002)(19580395003)(19580405001)(64126003)(86362001)(65826006);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1784;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0201MB1784;23:1UvRMQzOnFf20OQpIrH65ZubkUeyrj0g1y8uwah?= =?us-ascii?Q?aAZk7JSCUwF/+1BM5LqZEqwMPBUfWIK8Ri/FTtxZ3/LrnJg8eRLi/2MNc2y7?= =?us-ascii?Q?MsxhRTWG8vrz5IzpMDDNXtkZmKxSO0ymVghWlfjOEpIKzKWiYG4FMdYbGqQJ?= =?us-ascii?Q?i8F3FKeGaeWb4jw72TvytgcBpU7PJfGWlwb0RILCsm6Y7NAYNJyHohUInplH?= =?us-ascii?Q?X38Ju7jszZO88rjpyJQeL4V/PM0LDV3d20axmCXT25v+ZAbagwiWMSRV8ACP?= =?us-ascii?Q?5XfFs5l9uCNZWOGBWr/gG8R4mx/uGFmHJLO6o5n4mCPcx4+uuugvCMxPRsLX?= =?us-ascii?Q?bal2/hrBenrLVJUR403NktI1lYXDy+tqRC/6Uo8hVDDIKHp4TTvseZ/Pf+Xd?= =?us-ascii?Q?L9npjcwoHG3L7MAzMLuIjZPIs2CBP86VT9Qeop/0fPKRVYe64+TiKtfPUYw2?= =?us-ascii?Q?13McTbWJH9oi3ZVMnhRz+n6jmk4m5AROWnpL0YET2KUQbBu4umlFH52DvxEN?= =?us-ascii?Q?qUe9JDw4aBjWmLNXPcrmwlMi24md8U8vGQZiwmqXJFnBoWy+xwDUJYmxN9fA?= =?us-ascii?Q?jLQHnjDCvtieGEcf0KF+IndvPU/3SHDw25kQxD51QPfdCYBzckLA4IwB2pcv?= =?us-ascii?Q?GsaL0j9acXAES729Fb9Bo2wMG2T/DNK6z3Dv23q94EXnk73ua0PhYAE+BEMD?= =?us-ascii?Q?grqGiqXWpWVnYS3k3zsWPKsLj3kXW55jWFyuwiobyNg0nMl0LT5qyLsfBmH8?= =?us-ascii?Q?AGimNbhEf4AXDiz4knu+vHXDBpDtltfYS3f9z7iraLHQ330zlGrk8zhxcnH5?= =?us-ascii?Q?QxhtkveUyh3sZWFcSpONjLVjHcSnYcXstcuKnVSGf7k1PWPJ+aU8VvhRSJkc?= =?us-ascii?Q?SQPDFyEpVQVjpkkVypTUVsrdqM0liFZJJPEsO1R7Icaz5ETRig/q/UJ5h0bN?= =?us-ascii?Q?4SinL10fqqukU35HNyI0Wwr8YWhI11ghnst/NSgvoPNtYY/A8cBiaIb26XmM?= =?us-ascii?Q?zzAf1GviC29sA7tscbX+MXpJ0ZkSizrrnTOdPz3LRyJHe+xvGrXrAVnzu+CV?= =?us-ascii?Q?SGH987o6u4uEy46BQ6qsYVh7rHMUULpjxjS8YEz0ibZelRyPAxCUYy83q8m9?= =?us-ascii?Q?3O4rThmfGbL708lmWj5GBIm1p27K/F/EYoT20UYNG9jkFRgu10t6Hzg=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1784;5:x32j9GX/uyzJCe6JJ1ODhOo0NrWQEvgE5qMjpLgNbf1y79erPrbyv3QqB/tXU4VwqQCU5clrvpbb3y6yb28cJrVCD8+Bz1edKgpr86GFI+D9BVmAFoQBvZEOOZiwmXQYwuO66PAp2C/5CMEkhs/tTg==;24:RvXTD+ZEq3HPGsomxusGzfGMGbIf5DSyLrzhQVH6MpYE/UaZu199rjdY0MxjBmYmFeefQEPpO/7FfUMJxkzpNXryDufoy09/gBfhV0QCRJk=;7:zx4VSz5bPeEf5djI0pBQl83FzHY8ga7cPTE7dky8FmInu7d1lhy72YjiFYclnPiJ8I/pyEzmEGJoOR3HpDqmU1HaegDoZ0YufXTKft7NNbY3vA+IiJ/l10K+0fvEFY3lnDiQJphNa91VUtmFoTLhKWGv1v9Y1Dvpqm/FP6COOR5BfSQRm8XmNxVcRFMfj3Gc SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2016 21:36:48.7218 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1784 Subject: Re: "finally" handling refactoring (Bug #72213) From: dmitry@zend.com (Dmitry Stogov) --------------190F36C1C2657A512D7A9459 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Hi, On 05/23/2016 07:24 PM, Nikita Popov wrote: > On Mon, May 23, 2016 at 1:25 PM, Dmitry Stogov > wrote: > > Thanks for review. > > Both problems should be fixed now > https://gist.github.com/dstogov/0a809891c6a3ac3fac4bd0d9711dd330 > > Do you see any other problems or a better way to fix this? > > Your fix for DISCARD_EXCEPTION does not look right to me. It will > discard all exceptions too early. For example: > > function test() { > try { > throw new Exception(1); > } finally { > try { > try { > } finally { > return 42; > } > } finally { > throw new Exception(2); > } > } > } > > test(); > > This will now not chain exception 1 and 2, because exception 1 is > discarded at the return statement. I thought about this, and I think that the current behavior is right. If we remove "throw new Exception(2);" the first exception is going to be discarded at "return 42;". I think we should do the same independently from the context. Why do you think Exception(1) should be kept? > > I think this should be handled the same way we do the fast_call > dispatch on return, i.e. when we pop the FAST_CALL from the loop var > stack we should replace it with a DISCARD_EXCEPTION and then pop it > after the finally. This should generate all the necessary > DISCARD_EXCEPTION opcodes, and in the right order. May be I'll commit the existing fix, and you'll try to implement this idea on top? Thanks. Dmitry. > > Nikita > --------------190F36C1C2657A512D7A9459--