Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129537 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 CEBDF1A00BC for ; Wed, 3 Dec 2025 22:47:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1764802068; bh=bD0x95Gvg3fLACG9cWQG2vDFKM4OmPGynAOIEW9vrYc=; h=Date:From:To:In-Reply-To:References:Subject:From; b=MCBVSPB+U0n3rUT8sHvz7PJXDXBlvwpV5nqYGaqzAvNOIbd3dNtcbrMMzhBLQXFs5 8MyVC8NpZzThGIiuqgP6mYZGsOStoLvU7bjGyDNtpGmbBWYyr69cvjVZurDtbwF3Pc Mj9f9LpYjfRZexdP0OSAG37NJgVCyEcTC8pw18NVraZVskS4Eo0NxF+Iblg1pPpQto HdegAgkqsr+pLwVpTtPrj59ONTlL7Ox/TS8SQShnEr+q9y45iGBwltFQeaVswmFLla /ZTA1ffR7rMGri8u024rgE7lAxxKlLMKa0xQQbkaDRKQDn7QaekkBXICOIz/c6plnX 5tI/wFXomSjOA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 435461801E1 for ; Wed, 3 Dec 2025 22:47:44 +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,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,T_SPF_TEMPERROR autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from fout-b4-smtp.messagingengine.com (fout-b4-smtp.messagingengine.com [202.12.124.147]) (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 ; Wed, 3 Dec 2025 22:47:43 +0000 (UTC) Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52]) by mailfout.stl.internal (Postfix) with ESMTP id 8CD041D00183 for ; Wed, 3 Dec 2025 17:47:38 -0500 (EST) Received: from phl-imap-05 ([10.202.2.95]) by phl-compute-12.internal (MEProxy); Wed, 03 Dec 2025 17:47:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bottled.codes; h=cc: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=1764802058; x=1764888458; bh=bD0x95Gvg3 fLACG9cWQG2vDFKM4OmPGynAOIEW9vrYc=; b=unVnErdtPCo2YTA8IHbHaFrzth l+C5IlSBgGsVvRM214y6ElUyuLHt/Kp4qFIgf7TIX1Jtmuu5fpmQZ4E98E7cOD20 NqVpDv22VjqqGXA8pIwDaHzpfKuxDDFEWz8wjowNHbr3bSvJnSlroDVvRL1pwWHu 3ROEkvLnpbek+RIDOR3WhXhjQ9awn3HjAfw4o/WODlsVC9K2GWRRHD29efIAjm3J 1MEWwHK4xdhh0+WnyzMM14cWxIse+Am0svi8zgJy6Zj8cPufQs1hZbD3AmAbdi2v tB2h05GDuMdF61cubl3M9zH2ROMBWwbwSsFjOU+SZgDodmvdr6fC1y9qnNog== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc: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=fm1; t= 1764802058; x=1764888458; bh=bD0x95Gvg3fLACG9cWQG2vDFKM4OmPGynAO IEW9vrYc=; b=WsOQu7V0PnCc+M46Fv8WqORcR5c355+XGJ8tiTW0iKUQ+asI4l/ 2Cxtv0AR4dXyO+DMqY9Ia53cK94Ii1mZlMfnsR9GctkLbpx6zdlj7D8L8KKSu6sE HEKoZ1ZIF9zBi5K1vCqIa58UspG29jbC1tdwYULSIrHTlKT1RW0okVJh/iMXEfLQ 9CZMu6kYdlPq5cBc3THGguKVbYHlSc+EFnIR4QyOqOJ+G8T/JdXpzFx98Ix/Yhql cYHK51NbySBBUDRlxhuV9J43UMjXslCeD7pjkRWKzJRu8z5IfD/sgqiTmmQDw7M1 1xA6Lh4K51Whwd4H/ZEmqg4ngnd9QnpPCFw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdegtddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi lhhouhhtmecufedttdenucenucfjughrpefoggffhffvkfgjfhfutgesrgdtreerredtje enucfhrhhomhepfdftohgsucfnrghnuggvrhhsfdcuoehrohgssegsohhtthhlvggurdgt ohguvghsqeenucggtffrrghtthgvrhhnpedtiedtvddvvefhudffhfegleffteegffevke ehkeefleeuuddtieevkedvteejvdenucffohhmrghinhepfehvgehlrdhorhhgnecuvehl uhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprhhosgessghoth htlhgvugdrtghouggvshdpnhgspghrtghpthhtohepuddpmhhouggvpehsmhhtphhouhht pdhrtghpthhtohepihhnthgvrhhnrghlsheslhhishhtshdrphhhphdrnhgvth X-ME-Proxy: Feedback-ID: ifab94697:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 077A91820054; Wed, 3 Dec 2025 17:47:38 -0500 (EST) 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: AJmU-qZxpztc Date: Wed, 03 Dec 2025 23:47:17 +0100 To: internals@lists.php.net Message-ID: <16daef36-fa71-4fb4-bd67-d704e10d3d1c@app.fastmail.com> In-Reply-To: References: <87e9d1bf-e407-45c1-9fad-d8759405ab8b@app.fastmail.com> <0a420330-787f-4d1a-adb0-ab5ba52dd62a@app.fastmail.com> <689e63ce-ed46-4597-ad1a-dd06006f7795@app.fastmail.com> Subject: Re: [PHP-DEV] [RFC] Type Aliases Content-Type: multipart/alternative; boundary=7a610438e43d44b49415eb699511fd64 From: rob@bottled.codes ("Rob Landers") --7a610438e43d44b49415eb699511fd64 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wed, Dec 3, 2025, at 23:23, Rowan Tommins [IMSoP] wrote: > On 3 December 2025 22:01:10 GMT, Rob Landers wrote: > >On Wed, Dec 3, 2025, at 22:56, Morgan wrote: > >> Well, provided you stick to ASCII-only identifiers... > >>=20 > >> ``` > >>=20 > >> class Th=C3=AFng {} > >>=20 > >> class TH=C3=8FNG {} > >>=20 > >> class th=C3=AFng {} > >> ``` > > > >Classes are not case-sensitive: https://3v4l.org/PLb4J#v8.5.0 >=20 >=20 > Morgan is right that the case folding is only applied to ASCII letters= . In the example, "Th=C3=AFng" and "th=C3=AFng" are the same, because th= ey differ only by "T" vs "t", but "TH=C3=8FNG" is different, because "=C3= =AF" and "=C3=8F" are not case folded. >=20 > In fact, they're not treated as letters at all. If I remember correctl= y, they're not even analysed as code points, each individual byte above = 0x7F is treated as completely opaque. >=20 >=20 > Rowan Tommins > [IMSoP] Ah, thanks! I missed the little dots on the i. It=E2=80=99s worth pointi= ng out that the behaviour here isn=E2=80=99t changed, just my understand= ing of what the current behaviour actually is. :) It's using the same st= uff everywhere else is using, so there isn't any new behaviour here, jus= t the same behaviour in new places. =E2=80=94 Rob --7a610438e43d44b49415eb699511fd64 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
On Wed, Dec = 3, 2025, at 23:23, Rowan Tommins [IMSoP] wrote:
On 3 December 2025 22:01:10 GMT, Rob La= nders <rob@bottled.codes>= wrote:
>On Wed, Dec 3, 2025, at 22:56, Morgan wrote:
=
>> Well, provided you stick to ASCII-only identifiers...
>> 
>> ```
>> 
>> class Th=C3=AFng {}
>> 
&= gt;> class TH=C3=8FNG {}
>> 
>> = class th=C3=AFng {}
>> ```
>
>= Classes are not case-sensitive: https://3v4l.org/PLb4J#v8.5.0


Morgan is right that the case folding is only applied to ASCII = letters. In the example, "Th=C3=AFng" and "th=C3=AFng" are the same, bec= ause they differ only by "T" vs "t", but "TH=C3=8FNG" is different, beca= use "=C3=AF" and "=C3=8F" are not case folded. <https://3v4l.org/PLb4J#v8.5.0>
In fact, they're not treated as letters at all. If I remembe= r correctly, they're not even analysed as code points, each individual b= yte above 0x7F is treated as completely opaque.


Rowan Tommins
[IMSoP]
<= br>
Ah, thanks! I missed the little dots on the i. It=E2=80=99= s worth pointing out that the behaviour here isn=E2=80=99t changed, just= my understanding of what the current behaviour actually is. :) It's usi= ng the same stuff everywhere else is using, so there isn't any new behav= iour here, just the same behaviour in new places.

=E2=80=94 Rob --7a610438e43d44b49415eb699511fd64--