Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:124764 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 8F0091A00B7 for ; Mon, 5 Aug 2024 12:52:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1722862453; bh=bLLNfN/kM+Wi4s5N7PzmZuuEO2FZcHqG4xgr0onZgIA=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=gKk4VKzK6vRyDSFZUmWXm/LOumm0lXYZP8I+HT8OUpZY11pnKM5Am211gkFwdDcky fhRB/sk/I50k2wDKV+kTHhIpr0PxtgMGHSAR54Ey552RIB+/jHDQdDV1FhFTqqk0v5 l2n69TgSlfbfhe46OACKkVuq7Sg03VrcgKAK4pPz5VOUcviYWIGSwOUKHDX4Se7L4A V2A13/dZUSox52IrxFL8O1RTYlHeoYD8Zr73HbztJJmHnvVq1GlhxnZLTAhKwxGNC2 2cKpehuM7z5IyZwzAkwAKXo9SD+xYsnotNGtptNO0RqYtvRhQ7s4vBOmZhCkWr/ous wUOxYx68V2r2w== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 5DCD1180086; Mon, 5 Aug 2024 12:54:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS; Mon, 5 Aug 2024 12:54:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1722862347; x=1723467147; i=cmbecker69@gmx.de; bh=VyZGhPOfoG3ktuX3x/lwH337Y0KpUTqPYZ6FzaUKAa4=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=J4npSqyRH3LhPot8OrnoLF31jf1Z+PDt+LhZs2fGi0Y+6qw6KNPAYvRbApUdWuoU 3n2bnAS7Y/mVu71DRele6t0KPnj40r7yejuTSyR8Ogvn3VURvOil2HMPnlcNNIxSV X0kGaSWCfcSuUfmnVuPlvCmuA1z3TfmXcykhweQOnPASLx9bvLzS5th+TBMEglPEt z82MM2pzUMAiRm+fg9Bvfd69ozOhczDG4VvedkN5KwDTbSbX3lyXUm8CeYlsc11dV kTvrBG2GNHlMcZc6rPxYF5Gxil34mGqEutBOBv4kKiu0mGjZ8nQfn4I4WMBpK1yKN RsBNkTORb8P0S5lzSw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.2.130] ([79.251.205.37]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MJmKh-1suwvC0nQv-00SCpz; Mon, 05 Aug 2024 14:52:27 +0200 Message-ID: <06ba1d82-6387-46ac-8be3-1d3472993e1a@gmx.de> Date: Mon, 5 Aug 2024 14:52:26 +0200 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] [RFC] [VOTE] Transform exit() from a language constructinto a standard function To: Derick Rethans Cc: "Gina P. Banyard" , PHP internals References: <15bb76a0-cbd7-4145-b429-76d424755106@gmx.de> <1a8650d2-7eb5-d645-8132-e5522ad24637@php.net> Content-Language: de-DE In-Reply-To: <1a8650d2-7eb5-d645-8132-e5522ad24637@php.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:vNWWGZlfc5piaNDgBWeuNTstJeXtfzsXmmuDS2lXQj0UCSqM7Ab zWTY24G73+AepgWCg4/s76b9lUk20eTpakOamrgkpmvLxNZDJ5rj3YF1Zeqa5OPTB8aPfl6 nvyjbKAokz+DYwTyDpWpZ7LL12PQDz+IIE06Te+f1tB0h8BwbPfncV1dl1NmLK1Je4WStqP vjFNzRVfD9A+N1xQj3YZQ== UI-OutboundReport: notjunk:1;M01:P0:8XWqgy1P1zs=;y9wczphWSlph1Tcuw4aX2l2uspl HdCClyK935mb5Q9a2T5ZAFoVTbuWMUh17B1abA8N4ax1SmxrDfF+SmXZNebl4BtRkBKHSZr0I g/UDCr3owoUYpKe5MWgmFSwita+MOjYjMFvK86FQBqWLx+oyBm9jEmwyl1Ux8qH8AtKaqCdqS BfSlNmgcBZj6MZXuiZuvuMtHLP6ep/10Jw0riktMmGU1CjcmIG9dBwvN8mXoq4b3Z9O+Y2Iug h3QUeZYSY7Qa9Qm+PGiSbjc2TTYEl23+0wD0F8NBVlAVWAWkrzElldT1Ryzh0mTGUWGEJgYPz 1NycFWlsDceVshqwx4bMdxL9RwzNgeTy1+5Dbbr9j9NZwieCdOZiY5KFaWLP78rtPrqQQmk8Y nDVKwLKKmAvXky9NzQ1jBsQm4f9ZLdWtPHQ8IjW3rKOKTtFSb00qot+BaIXgIHmZeLDKjCV7I VYiDuE9AKvfFoWJdmVHkWtwLn8wOPgqaPtArUgr6S0TNcSgjgLsXHZ6f4JDxvVkv3VZVOo/K1 uxQ3bJe9HfE4SozUftWIbxjxgzMqI/4KcpMtjQYOlZpckZDNgIaalYiq3XHG1kqUE+0HyBnfv b2Z3v6m/A5G5MMV5bhZsrri/pE1uRjNRm1MlCdc59eAXftDW6lL4jMmwKWMH+h2gobEgpUd6V xkj4cUbC9lCq4KaoxSglOYFwOUmg74s1OqfvTF0YYIUaGocfkrR9JIimUiuyaeKdf3LJGNL14 28iCuwrcN6S7WgJrazoeyWQZgq6jp0gOY6DiSzRc0K3wTqW5f0ytMDCLbM4IWowon/tDrEUwx f7DiOcLZm/qgRvNKSHVtriSw== From: cmbecker69@gmx.de ("Christoph M. Becker") On 05.08.2024 at 13:04, Derick Rethans wrote: > Xdebug uses exit for exactly that too. For control flow analysis. And I > also always have considered it to be a control flow instruction. > > I see no benefit in changing it to a function, especially because > there will never be a function "exit" from it, just only an "entry". > This breaks function execution symmetry (and causes issues with Xdebug > when I last tried to make it work with a development branch for this > RFC). > > As the RFC is scarce on mitigations for this, I am currently voting "no" > as I am unsure how certain features in Xdebug could remain working. I > have written to the list on other reasons before > (https://externals.io/message/123277#123450) without a conclusion. > > I'll consider changing it to yes if there is a commitment for addressing > these feature-maintaining-requirements to keep Xdebug working, either > through new APIs (think observer) or other mitigations. Hmm, so far I only had skimmed the RFC and the related discussions, but now I checked out the suggested implementation[1]. Then I tried to build with PECL/uopz, and of course that failed because ZEND_EXIT is no longer there. Okay, quickly drop that usage; build succeeds. Then I ran And got hello Previously, no output was echoed. While that seems to be fixable in uopz even without further changes to the implementation as mentioned by Derick regarding Xdebug, I am concerned that changing `exit` to be a proper function (although it isn't quite, since the parens could be omitted) does more harm than good, at least in a minor PHP version. I would assume that there are more extensions overriding the ZEND_EXIT handler, which would now need to override the function handler in the best case, or be unfixable in the worst case. Wrt. to such extensions, the change might even delay the adoption of PHP 8.4. Had an attempt been made to assess the BC break regarding dropping the ZEND_EXIT opcode? From a quick GH search[2] quite some code may be affected. [1] [2] Cheers, Christoph =2D- Currently listening to Judas Priest "Breaking your code"