Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:86262 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 68296 invoked from network); 16 May 2015 20:15:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 May 2015 20:15:08 -0000 Authentication-Results: pb1.pair.com smtp.mail=rowan.collins@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=rowan.collins@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.47 as permitted sender) X-PHP-List-Original-Sender: rowan.collins@gmail.com X-Host-Fingerprint: 74.125.82.47 mail-wg0-f47.google.com Received: from [74.125.82.47] ([74.125.82.47:35394] helo=mail-wg0-f47.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 78/3C-14891-A45A7555 for ; Sat, 16 May 2015 16:15:08 -0400 Received: by wgkx2 with SMTP id x2so28247683wgk.2 for ; Sat, 16 May 2015 13:15:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=KDw6UmUjT6PxdpU+F79PlphSiJra0HB7m5tBt/mtd7o=; b=WoTeIQfLrHU7Ht5Smift9MynE8uI8GALy0Z7G8Wb9vJN+k0lrYkTYOIptbRbj9HBXR r8m2W8ztxd8iCTFQRHmxvGdPZLuZm4kwdLk0BIIwTA4BtcTAtPKiwRGrFNDer8pDmCGk s7VokAyPOlsMM1KCbiUofO8tatElgBFDQCGoF1RlcbpfNs59z5iQAmWcver5fEJkfZ+C gl+Fujgxuy4rctR1Op7O2gjxvUgMKUOA43Db5O7Afj0g4ui35SwldXszyUJOkY06QJ3y PxRBgzTb3lrvxyPfvLxaHhnGp/HJJIZN74Nllqhn1Ql+Q+loYsid+rHluLCjIyiK7b1T +IXA== X-Received: by 10.180.231.40 with SMTP id td8mr8576847wic.9.1431807303835; Sat, 16 May 2015 13:15:03 -0700 (PDT) Received: from [192.168.0.5] (cpc68956-brig15-2-0-cust215.3-3.cable.virginm.net. [82.6.24.216]) by mx.google.com with ESMTPSA id nb9sm4360606wic.10.2015.05.16.13.15.02 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 May 2015 13:15:03 -0700 (PDT) Message-ID: <5557A542.6020208@gmail.com> Date: Sat, 16 May 2015 21:14:58 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Levi Morrison , Stanislav Malyshev CC: internals References: <54F07FC7.8050901@php.net> <54F0839C.3010700@seld.be> <55052FAD.6090608@php.net> <5505346D.7020700@php.net> <550DA4EE.2030903@php.net> <55410973.4010300@php.net> <55417C64.7000707@gmail.com> <5541B4D6.9060503@php.net> <55425D7E.6010803@gmail.com> <554D8F4D.9020903@gmail.com> <554D90CC.3040607@php.net> <5552E3EB.5010800@gmail.com> <5552E494.5070401@php.net> <5552FF58.8070807@php.net> <55575DCF.50801@gmail.com> <55578C61.3040408@gmail.com> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [VOTE] Exceptions in the engine From: rowan.collins@gmail.com (Rowan Collins) On 16/05/2015 19:44, Levi Morrison wrote: > On Sat, May 16, 2015 at 12:28 PM, Stanislav Malyshev > wrote: >> Hi! >> >>> There's nothing that prevents us from reneging on that by another >>> vote. If it's a bad decision backed by logical arguments then we can >> That's a pretty big if, given that your only argument - that it is a BC >> break - is incorrect, as in fact the set of exceptions caught before and >> after change is exactly the same, and the only difference is that in the >> new code, you can *also* catch errors, the option that you didn't have >> before. Absent that argument, there's no reason to renege. > You are incorrect. The set of exceptions that `catch (Exception)` > catches is all exceptions by its definition. By altering it to no > longer include all exceptions means the semantics of it changed. Do you agree with these statements? - There is no exception which a program using "catch ( Exception $e )" will catch under PHP 5 but not under PHP 7 (with BaseException/Throwable as proposed). - There is no fatal error which becomes non-fatal for such a program, because they will become uncaught EngineExceptions, and failure to catch an exception is a fatal error. - There is no non-fatal error which becomes fatal for such a program, because EngineExceptions exist only where there were already fatal errors. Leaving aside "definitions" and "semantics", where, then, is the BC break? Regards, -- Rowan Collins [IMSoP]