Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:123482 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 264D01A009C for ; Fri, 31 May 2024 22:21:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1717194139; bh=gN7jO2uctwTX9Pn2mZRFjl2B2WTQ90Tcm3meP/ELk9E=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=d9CL6BdPwAzby/UZrg2AXqhq2xJ6hPWhpPnP45wCKNNQBha1R+Yg0wI1US0isig2i CjmNbsLTN9RywbMiIJ5cWpvydDJRhPRD5S1DrAMyEjqWqLDFRknxTsFF0UEbMuSFOS 4ZX4dvQhjHeGbFBIptdSf8rgeZfMR1q85mtHCDsBiKCdUlRzmZXaj7TYOLQma3752O iQ7wFgh/yRkUBpSPy7uGYv9/jkFzpaN3y43OYheUx3rF+y0VlOEt7DlBffeTj4HjiG IVgRop2Hbtjn36UbYyYRRXWepg9wgyXG2HSJAy7Fs/H/IBZR6JufN2OLLX7wfeGyEV 5z5N0fopWGgUw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 3D4C6180644 for ; Fri, 31 May 2024 22:22:18 +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,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) (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 ; Fri, 31 May 2024 22:22:17 +0000 (UTC) Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-2e6f2534e41so18033311fa.0 for ; Fri, 31 May 2024 15:21:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717194074; x=1717798874; darn=lists.php.net; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=VknW3xlV2JhsiSdi7XFNWajn+KK80uzmOw726leeqsg=; b=eVP/bYAn/05GFjeZPmBMj2RUXwiFgVWbrkQQetJ9dKBAz6LhC/GgtEeE9rqfZ9AOGY IDpboCjQ+B1hXCwpWWrLrX3hNGF2/PTp0pXlTO+G0uRu+8OCzy5KlU1SmtkI42XLtRYZ Z3+Ldlue9HseR3ed8cp6w/H3jdSRrzeBJTVPa+pIcWgZaaCoK+zWzKGfQVU96EU73NEM urzA1bAlw8qNbctRTP2Ye8G9NhWZGITUWtjTMzFx7tyezwWhy1GfvSaLpFCQqZv6OIy3 eYLuJDTU1O13FeJG+fmsnYFwGsgcuwHju9nS/bzrOmJ0tcQ2rTT0pX0i4w0SI/Xb4NrZ v3QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717194074; x=1717798874; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VknW3xlV2JhsiSdi7XFNWajn+KK80uzmOw726leeqsg=; b=vCk14d9XPGlNktsnsHvL1iUnDqHsZfRwyt4YV6Up9RbXc1WJ4Da/1l3X4f+7MWozRY fMqrtyF2KkdsDzLtuP/q3oSVCLz/XTKYp3JA7qY/Oind25zrlw1+wR65ft8Pamc6PIVr NgxWXq0ylh7xNg8XPG4qVQNl0chjXvMkmLQo+zTtXyDy8y2ptciwRdXey54TlqBoB5/C 0PMfWij+1n0RdhN+RT0X6ifK31ePdtFR2MQLzNq3pZYsaKq8BGMXmvhmG/BCsernxC+U kEu9Awx0d5I+fABPu0+L0KfjZUHKOJbHEEngBibtpkX5McfRJGBZngma/irGIzi707cL UDAg== X-Gm-Message-State: AOJu0YyQfj8BiU0B7TsvTT1EJ5bWvuvyYYH3Y4MWdxkMaztZc1QUa53/ griG/zDTk7MQXVxUBy4dke2AGc5salD5YBKEut65ZnJdYymQN11bR6bdJQ== X-Google-Smtp-Source: AGHT+IGWBa/K5aq7TWm60ejpeHlCqR5Se8n0VjWDa2BjSIw9k5vOJqBbE1DQGQsUeJKbQ8CWX2ZWoA== X-Received: by 2002:a2e:b8c7:0:b0:2e9:5263:36e9 with SMTP id 38308e7fff4ca-2ea951d5c81mr22344391fa.43.1717194074071; Fri, 31 May 2024 15:21:14 -0700 (PDT) Received: from smtpclient.apple ([178.197.199.148]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-57a31b99c42sm1452531a12.17.2024.05.31.15.21.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 May 2024 15:21:13 -0700 (PDT) Message-ID: Content-Type: multipart/alternative; boundary="Apple-Mail=_6F76023E-2874-4CBF-9036-E821F977AB51" Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\)) Subject: Re: [PHP-DEV] [RFC] Asymmetric Visibility, v2 Date: Sat, 1 Jun 2024 00:21:01 +0200 In-Reply-To: <734bb8e8-2fdf-4e50-9039-e53c99ee4930@app.fastmail.com> Cc: php internals To: Larry Garfield References: <0a6a61cd-f203-4dea-a7f8-97e6b885c52d@app.fastmail.com> <734bb8e8-2fdf-4e50-9039-e53c99ee4930@app.fastmail.com> X-Mailer: Apple Mail (2.3774.600.62) From: claude.pache@gmail.com (Claude Pache) --Apple-Mail=_6F76023E-2874-4CBF-9036-E821F977AB51 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > Le 31 mai 2024 =C3=A0 18:08, Larry Garfield a = =C3=A9crit : >=20 > So we feel the best way forward is to make the following changes: >=20 > * private(set) implicitly means "final". (You can declare it = explicitly if you want, but it isn't necessary.) > * Make readonly incompatible with aviz again. >=20 > Thoughts? After reflection, I don=E2=80=99t think that we need to make readonly = incompatible with aviz, even with the current semantics of readonly (at = least logically; no idea about implementationally): * legacy-readonly properties could keep their own peculiar = `private-overridable(set)` if they want; * aviz-readonly properties have, by definition, one of `public(set)`, = `protected(set)` or `private(set)` marker; those will work regularly, = including the implicit `final` attached to `private(set)`; * a non-aviz readonly property could not be redeclared in a subclass as = aviz-readonly, and vice versa. =E2=80=94Claude= --Apple-Mail=_6F76023E-2874-4CBF-9036-E821F977AB51 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

Le 31 mai 2024 =C3=A0 18:08, Larry Garfield = <larry@garfieldtech.com> a =C3=A9crit :

So we feel the best way forward is to make = the following changes:

* = private(set) implicitly means "final".  (You can declare it = explicitly if you want, but it isn't necessary.)
* Make readonly incompatible with aviz = again.

Thoughts?


After = reflection, I don=E2=80=99t think that we need to make readonly = incompatible with aviz, even with the current semantics of readonly (at = least logically; no idea about = implementationally):

* legacy-readonly = properties could keep their own peculiar `private-overridable(set)` if = they want;
* aviz-readonly properties have, by definition, one = of `public(set)`, `protected(set)` or `private(set)` marker; those will = work regularly, including the implicit `final` attached to = `private(set)`;
* a non-aviz readonly property could not be = redeclared in a subclass as aviz-readonly, and vice = versa.

=E2=80=94Claude
= --Apple-Mail=_6F76023E-2874-4CBF-9036-E821F977AB51--