Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130636 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 lists.php.net (Postfix) with ESMTPS id B05561A00BC for ; Tue, 14 Apr 2026 18:18:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1776190718; bh=1Iov7yW3oYWelHPH1ztTdyZaeMUU9aTxV7fDiKAvwYA=; h=Date:From:To:In-Reply-To:References:Subject:From; b=MaBnBF7ArzpeCdMoPhdptwVyorKemK7fLHZq0AlyXKJM+VlK8q9OfWlk6pcCkO0xW EJ5a0y28OF59SkYdCdTJ+4P0q+dG1o1FXoHMx9euIqDZOjn7y8Xjv6tuvyQm3M01Wg qSdMnFIaYAY+FcNEe6EL88Y6GL/TyTzE+okHcovkizGLpAcNFMavfaQ76/ZdYsN1vV KHiXjrC/2dDLWpb+YYAtqITEdT2tRynapQx8LkBLaltR+9+UJZk2gCBNjmQ4OB/CFz P1K9PgZFFesLzM6ZfWGpfdO5tlfAwlWBMrYu4NwNeKNNeqTCecan57dJXJjjWFiDXK bZJKA4EdAaGYA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 417881801D4 for ; Tue, 14 Apr 2026 18:18:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_NONE autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from fout-a8-smtp.messagingengine.com (fout-a8-smtp.messagingengine.com [103.168.172.151]) (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 ; Tue, 14 Apr 2026 18:18:36 +0000 (UTC) Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfout.phl.internal (Postfix) with ESMTP id 834E1EC0541 for ; Tue, 14 Apr 2026 14:18:31 -0400 (EDT) Received: from phl-imap-02 ([10.202.2.81]) by phl-compute-04.internal (MEProxy); Tue, 14 Apr 2026 14:18:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= garfieldtech.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm2; t=1776190711; x=1776277111; bh=rUBAkf3BHWRDBZJVSSZhj xs/lcrEOSMApnN2xBWYLfg=; b=TMuY1IF0UibZiabXs5sAuz58fzWhZcpU74su9 vtAQ5tJOc+H692fc+3oRWRWLcfJt8UDE9Wj1xPeQasX1H9IwTkFG1haHWsYdLFS/ 63eU2LpZgPkFi+he80ua/Ey+x/nmGAjw4Utn7BsQO4dgSqNeimiiCBTi5ebvYlyd qhQHb2WeneoPUEM+WgnmPCCaaaNxSJjyxkgbArcBjPaAbzwe8hdcQXSvoBF5VWle HxKVRhbsEyeVlVR00NaK7Di/FP7MzrBIiSKDiVc7yPYPwAic6++/F6jE475LD5lG Uiko1hn4xSiXsH3eGSFb/O9wQZBaHP4zWu6zMuTH4BfZXR8Lg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; t=1776190711; x=1776277111; bh=r UBAkf3BHWRDBZJVSSZhjxs/lcrEOSMApnN2xBWYLfg=; b=qYwndML80rss7YtkV HZK+Zdcwdt/w5gb7VvRyertil4JfekfFbsmyipSlYZdug6C+0uZqkqtN1+6BuEm8 t6EHGc/o8K3m/Xkh0BnBlBfIwsOaEfKLLd5LwMgHj/O82BASzmPKdlZAXIqW6BKF 2Kwot9r3nJYhSxq9plXAYuH7Jk5V7PKQWRo6G+XE/ZKQgP9DPn/BhBa+o5dQd2Pw 5QW9qdCWjB7cHsQgAhswWIB242Ntw3oB3QWrRak8pzYlwBPQ3fhQJnQPi23CmNrF Ah+M6NmrlOON+DljJmoMr6VWXHqvSQR9/OXUUVpJdp55kjfnKsodeUNG2F3n41gz Ux2cQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdegudekiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefoggffhffvkfgjfhfutgfgsehtqhertdertdejnecuhfhrohhmpedfnfgrrhhrhicu ifgrrhhfihgvlhgufdcuoehlrghrrhihsehgrghrfhhivghlughtvggthhdrtghomheqne cuggftrfgrthhtvghrnhepffeiiedvhfdvgedutddtgeetieeugeevhfetheeffeeftedu iedthedtgeejueeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh hfrhhomheplhgrrhhrhiesghgrrhhfihgvlhguthgvtghhrdgtohhmpdhnsggprhgtphht thhopedupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehinhhtvghrnhgrlhhsse hlihhsthhsrdhphhhprdhnvght X-ME-Proxy: Feedback-ID: i8414410d:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 45771700065; Tue, 14 Apr 2026 14:18:31 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 X-ThreadId: Atmh9k-BTBuN Date: Tue, 14 Apr 2026 13:18:11 -0500 To: "php internals" Message-ID: <2da81f2d-7c41-46fe-9fb2-1b1cc6be8970@app.fastmail.com> In-Reply-To: References: <5d96fca3ca5418e6e9e5d8871b26477f@bastelstu.be> <8bf1b0a7-7771-4f81-b92c-49bb019f7f9d@app.fastmail.com> <02dbe23bb5a4e53be7bf2db7506e07b6@bastelstu.be> <841b8e97-9052-4868-badc-1dd1dad0e99a@app.fastmail.com> Subject: Re: [PHP-DEV] [RFC] Context Managers Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: larry@garfieldtech.com ("Larry Garfield") On Tue, Apr 14, 2026, at 8:35 AM, Tim D=C3=BCsterhus wrote: > Larry, > > On 4/7/26 18:20, Larry Garfield wrote: >> the continue question (which is now a secondary vote) > > I'm really struggling with finding appropriate words in my reply here. > > It is not at all clear to me how both Rowan's and my replies could lea= d=20 > to a conclusion of "neither approach is obviously better and both have=20 > downsides" and the addition of a secondary vote, particularly one with=20 > voting options using a "suggestive question" wording. > > Secondary votes are for multiple equally-valid options that *directly*=20 > relate to the RFC in question, not to have a backdoor to ship changes = to=20 > PHP with less than a 2/3 majority. The RFC policy is quite clear on=20 > that: > >> Combining multiple proposals into one RFC MUST NOT be used to turn a=20 >> primary vote into a secondary vote. > > In this case this secondary vote would (potentially; depending on the=20 > result) break the expectation that exchanging `break` with `continue`=20 > and vice versa will continue (pun not intended) to target the same=20 > control structure and add more special cases to the languages. This is= a=20 > semantic change that is unrelated to context managers, and thus would = be=20 > something requiring a 2/3 vote - or better: Something that should just=20 > not happen. > > I find it extremely disrepectful to use loaded language like "quirk" t= o=20 > refer previously established design decision that you don't understand=20 > the reasons for or that you disagree with. I similarly find it extremely disrespectful to presume malicious intent = where there is none. The "loaded language" you refer to is in reference= to a statement by Nikita Popov in the thread that Rowan previously link= ed to. Quoting him again: > In PHP "switch" is considered a looping structure, for this reason "break" and "continue" both apply to "switch", as aliases. That would certainly qualify as a "quirk" in my book, because that's kin= da weird and unlike any other language. Now, if that description is not= accurate (or was at the time and no longer is), that's a different ques= tion. I have indeed not checked that part of the engine; if you would l= ike to provide data to show Nikita's description was/is wrong, I will ha= ppily accept it. As far as it being a "backdoor" change to another feature... once again,= you seem to be assuming subterfuge or malicious intent without evidence= . The secondary vote was, specifically, "here's a new feature, `using`,= how should this existing feature, `continue`, interact with it?" That = is directly related to the RFC in question; it would be a meaningless qu= estion to ask outside of an RFC introducing `using`. =20 You have made your opinion on this feature quite clear. Others disagree= . Accusing us of trying to sneak around the rules because we don't agre= e with your argument is completely uncalled for. If that part of the RF= C is enough for you to vote against the RFC over, that is certainly your= right, and I've certainly voted against RFCs I otherwise supported myse= lf due to smaller design decisions. But that is not grounds to make the= baseless accusations you're making here. Prior to your post, Arnaud and I had already discussed it further and de= cided to revert back to the original RFC design, with `continue` mirrori= ng `switch`'s behavior (do the same as `break` but trigger a Warning), b= ased on Rowan's feedback. I dislike the idea of a new feature that incl= udes a Warning out of the gate (which is why it's been an open question = of discussion), but it seems to be the least-bad option. I'll be updati= ng the RFC accordingly shortly. (This will eliminate the secondary vote= .) --Larry Garfield