Newsgroups: php.internals
Path: news.php.net
Xref: news.php.net php.internals:124779
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 D59DC1A00B7
	for <internals@lists.php.net>; Mon,  5 Aug 2024 16:52:19 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail;
	t=1722876840; bh=z0e06NWJ79WItvla/qWwLgRund+1xwdqI1WwO9y2o5c=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=SfhlK9CysNlM+4iyUbBTSNt2aAEMoXgAs+hvXzcE8kBOUM6Q53ovIofJ2p1XEM43e
	 uxkltPxLJUp8MRJ3Imi9qBMel6SBX5A0lKFqW0c7SaF6xtNWVACu1UF9OJg8snmYfU
	 T9Q3VtvFpxJvE4o/VfhkJj/f5SbyCBoza/YMeqT3gGFxKC50wsjUGVEWfJra/gF/17
	 Vg8Pr5OcYNZZ8yUlkNslM/LWuUN+7L0YJcIPGp+A9pWd2XAw+nYdRmHMpkIqG1l0R8
	 d4E2+Kn4ixO87f5ZKoC6aIIjq7zWv1nQtITpi+lndObPJ8ZTwUmOkjEdFW4rykZrXH
	 EGiCKX4mGXGEQ==
Received: from php-smtp4.php.net (localhost [127.0.0.1])
	by php-smtp4.php.net (Postfix) with ESMTP id 42CAF1801ED
	for <internals@lists.php.net>; Mon,  5 Aug 2024 16:53:59 +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.6 required=5.0 tests=BAYES_50,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,SPF_HELO_NONE,
	SPF_PASS autolearn=no autolearn_force=no version=4.0.0
X-Spam-Virus: No
X-Envelope-From: <tim@bastelstu.be>
Received: from chrono.xqk7.com (chrono.xqk7.com [176.9.45.72])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
	(No client certificate requested)
	by php-smtp4.php.net (Postfix) with ESMTPS
	for <internals@lists.php.net>; Mon,  5 Aug 2024 16:53:57 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bastelstu.be;
	s=mail20171119; t=1722876735;
	bh=APY8Bo3t+n9ph8kzai1/9tdYieP7stfXqGLhqjk8H+8=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type:from:to:cc:subject:message-id;
	b=XT0MaDlcBbq4MrZrKVu3sgwjiWkT58yB/AY+j8D5X72imsjpZ7hNilxhedeOmk5Lj
	 Nrwk0O2cRLb3+bpdQdSaL6XWHemuMuua2T7BEVwZa/Q2QkX1f3g0dVPxKFOzK/Z9lW
	 qHNR9h+SoHG5dpb4IXVweFPYdQGAtyCwL341NXVNs8KXNRG+ecM0FHVodDWx7chU8w
	 sDGaKivrox7yqOULH7O71ff1u8j71sK2dwVBJKRQ8tl0SJ3GoDN7Z/Qw514QH+eoEn
	 bFQFjpJPdREogZWgCs7rKgTVG9zJIjriHDrg7p8VTr5D9Wz3cDCUpSZ8+mQb8N0alE
	 8SAkvJ6+tcbjw==
Message-ID: <a2cf19e2-4c42-42a1-b060-205b782252c8@bastelstu.be>
Date: Mon, 5 Aug 2024 18:52:14 +0200
Precedence: bulk
list-help: <mailto:internals+help@lists.php.net
list-unsubscribe: <mailto:internals+unsubscribe@lists.php.net>
list-post: <mailto:internals@lists.php.net>
List-Id: internals.lists.php.net
x-ms-reactions: disallow
MIME-Version: 1.0
Subject: Re: [PHP-DEV] [RFC] [VOTE] Transform exit() from a language
 constructinto a standard function
To: "Christoph M. Becker" <cmbecker69@gmx.de>, Derick Rethans <derick@php.net>
Cc: "Gina P. Banyard" <internals@gpb.moe>,
 PHP internals <internals@lists.php.net>
References: <WAN6ETlWt7JfcVoyeYfY_F_eLE6WzQa87F7yi8SHISmyktMYx7YcA6oG5dis3gFeI36VBjSfjGw4AT6psFFDXEUNRrvKRRn4LxfdCxFBccw=@gpb.moe>
 <15bb76a0-cbd7-4145-b429-76d424755106@gmx.de>
 <1a8650d2-7eb5-d645-8132-e5522ad24637@php.net>
 <06ba1d82-6387-46ac-8be3-1d3472993e1a@gmx.de>
Content-Language: en-US
In-Reply-To: <06ba1d82-6387-46ac-8be3-1d3472993e1a@gmx.de>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
From: tim@bastelstu.be (=?UTF-8?Q?Tim_D=C3=BCsterhus?=)

Hi

On 8/5/24 14:52, Christoph M. Becker wrote:
> 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
> 
> <?php
> uopz_set_return("exit", function () {echo "hello";}, true);
> exit;
> ?>
> 
> And got
> 
> hello
> 
> Previously, no output was echoed.  While that seems to be fixable in

Frankly from a userland developer PoV this looks entirely correct: If I 
override the `exit()` function, then I expect the `exit()` function to 
be overridden.

Best regards
Tim Düsterhus