Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:111518 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 98212 invoked from network); 14 Aug 2020 16:58:13 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Aug 2020 16:58:13 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 7020518054A for ; Fri, 14 Aug 2020 08:58:24 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10olkn2092.outbound.protection.outlook.com [40.92.40.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Fri, 14 Aug 2020 08:58:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mWavyrHa91P0kOKN59exFDX8biEW4VzS2zGdaNC9jjJ8T37X7Dv10Wn9J26X70X8uU1Cj6fhlCSPimN1wLAgWhBYZzo92FWeqj0O6QkCorEGCrLv/GoPCYhp/asicyqDi4g5AujFz5R/dcczYrKj7ZMgMlONim0L6rEDK7VVb6Ofd+1eZ0mayMebmH29+2I8Fq+PzGyUwI7yM4STANi9DfVeTAQFwcElwgSqABMwzeGGZ4ceBlNmu0I50fd2K9uoGOfk6bL/8Pqg10/Vht7sjSYIuKdQYlZveMFa5TdXsMngpLr2EypsLp6dh2qkRwiw5FAu7BLlT/DaB8CoK/wPfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=64JU2QLNykWaHlgcjz1bD2sGWc+tXn9n48jN7/Si8uQ=; b=N/V1cpaE6hos4XIOpHbiv9agStA/7qnUtPUB24W3K4JX/VCnkJ5gK6eWDxSafs2Geg5QtFNIn71KQd1w/H6SilQQ4mGzLzJtBoJ3tZ05UH1cScoHH4P0Embxzq0NE5WeroLvXwut4ZGS5wTZyse9FpP7lKgGLZk2vFDyxrhL/Ovr/TfL6ZhgkdhDXHzBNb/KUpT6gbGCkzw2KDz64K75UYeVYUymWtTsEQ9vJ8PMxuXttsXRRBPb1wu20ZK1fZlfgHwQuu1o+IyY2HUI3NpyiiQ4YFInfZZohzni7qLbG++VBRGdhAKo48kWftVVDv8oe9eMUPGQzY4a8pJHM679Xg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=64JU2QLNykWaHlgcjz1bD2sGWc+tXn9n48jN7/Si8uQ=; b=SQVrF7vzuj/xUXo0oJ3nFZnhFdpCToFEsCHTYGPIdFl1OVtgZFClO3tgHaK08S+FqEfnaE4aI8mWZh+aLIXg1mg7eYLhWBUWkjm+1Fpwz60sduw5SIz4B4Gq3+658BH58la5KnMf+E5EEjGN1KscWX+h7GdGRzUEixGtmewFLxy7pO9pXdIZHxy4ZYb1ZHxAA7juTYQH557RDQCeROymsIYqNXmOkCLnqtJPu2SDc5xS5+RNe0kEYmrvp1/+6cf9KKP5T96Q3CsA8Eq0J1zxVBg639p2YmM+ngNiTtV9BtcuncM4fjjE60cEsPD8+GBpc2+UZBC3WVowQkfnESB0oQ== Received: from BN7NAM10FT006.eop-nam10.prod.protection.outlook.com (2a01:111:e400:7e8f::51) by BN7NAM10HT221.eop-nam10.prod.protection.outlook.com (2a01:111:e400:7e8f::223) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.17; Fri, 14 Aug 2020 15:58:22 +0000 Received: from BYAPR05MB6535.namprd05.prod.outlook.com (2a01:111:e400:7e8f::52) by BN7NAM10FT006.mail.protection.outlook.com (2a01:111:e400:7e8f::410) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.17 via Frontend Transport; Fri, 14 Aug 2020 15:58:22 +0000 Received: from BYAPR05MB6535.namprd05.prod.outlook.com ([fe80::fc6c:38b0:fa18:f355]) by BYAPR05MB6535.namprd05.prod.outlook.com ([fe80::fc6c:38b0:fa18:f355%7]) with mapi id 15.20.3305.017; Fri, 14 Aug 2020 15:58:22 +0000 To: Benjamin Eberlei CC: Derick Rethans , "internals@lists.php.net" , Sara Golemon Thread-Topic: [PHP-DEV] [VOTE] Shorter Attribute Syntax Change Thread-Index: AQHWbvIBydbCX+rhJUWK/r8c7hnlt6k0kNaHgAALBwCAAAp7tYABDvUAgABUQtmAAAkjgIAAH1r+gAB81YCAACtXAIAApHfEgAAuaYCAABthug== Date: Fri, 14 Aug 2020 15:58:22 +0000 Message-ID: References: <5cc837df-ab47-628a-d29b-46d7933be973@gmx.net> <3A7CECC3-CDEE-4852-BF4B-4EC7CA1BD538@pmjones.io> , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:795CEBA05E55E66899AF6F404EF54B1A84A89CD11BE6CB714183BFABCA012CA8;UpperCasedChecksum:9A9025561830ECB1B22B783EAEEC228C3F44A96DB3153F5325266B4DC9E5E1CF;SizeAsReceived:7879;Count:45 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [wqyOHdu75rmsJdX4K2mvAYn6/KnWo8ar] x-ms-publictraffictype: Email x-incomingheadercount: 45 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: c4dacc3f-580d-471f-afbb-08d8406adf08 x-ms-traffictypediagnostic: BN7NAM10HT221: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: u7TiW/cSwDwi5Z3AFtoVP9MGLhPVZmFSIJeEA4Ff1jbpSBAg8rDcOP9qokdB284BNs63w27rueGaOqFwY6Vj5MjFPcup3+sv18LmCdLNyRYyWOz+b0vBLrCRp6uWaJF6g/WTEXs+KBPo4gIFegxdJj3+K9T/SHj7C97iupWQI/iaxE4uWM/CZJZpMvtFtaV6aHPCP8ezgD23Dw52W8s5OpyxlA2tmaki7wnwBXRUcg7SKk6S4rumBSdYcdpQDbtU x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:0;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR05MB6535.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:;DIR:OUT;SFP:1901; x-ms-exchange-antispam-messagedata: /Brq0Lq6f6q0/Tk/QnvXugy6RDHsvc8h3Ot1DSGTPioUlKMbVvvtbcEMvXf+IEfN8Q7rBW1SW6MrjmlwdQUvYB6WDxO7tanlAEyZptNvFy0f4pUmLqhnNvNU2Xp51nlESPRB0tLr9u1nbVKlxaFVxQ== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-AuthSource: BN7NAM10FT006.eop-nam10.prod.protection.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: c4dacc3f-580d-471f-afbb-08d8406adf08 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2020 15:58:22.4954 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7NAM10HT221 Subject: Re: [PHP-DEV] [VOTE] Shorter Attribute Syntax Change From: theodorejb@outlook.com (Theodore Brown) On Fri, Aug 14, 2020 at 9:16 AM Benjamin Eberlei wrot= e:=0A= =0A= > On Fri, Aug 14, 2020 at 2:22 PM Theodore Brown w= rote:=0A= > > There's certainly been a lot of discussion in general about=0A= > > attributes. However, there was not a reasonable opportunity to either= =0A= > > discuss the specific arguments made in this RFC (e.g. the lack of a=0A= > > closing symbol being inconsistent), or submit patches for alternative= =0A= > > syntaxes as Derick requested when he put up the RFC for discussion.=0A= > > =0A= > > I was very surprised that it went to vote less than six days after=0A= > > the discussion period started, right after the weekend no less,=0A= > > before I had a chance to submit my patch to include the @: syntax.=0A= > > =0A= > > I'm as weary of the discussion as anyone, and would like to see=0A= > > closure on this topic sooner rather than later. But if the voting=0A= > > rules aren't followed, how can the vote result be considered=0A= > > legitimate or binding?=0A= > > =0A= > > If the authors sincerely want the best outcome for the language (and=0A= > > I assume they do), what harm is there in deferring the vote until the= =0A= > > discussion period has completed, and ensuring that the RFC addresses=0A= > > the arguments on both sides and contains all the relevant information= =0A= > > for making a decision? Otherwise many contributors (myself included)=0A= > > just end up feeling unheard, unhappy, and unconfident that the right=0A= > > choice is being made.=0A= > > =0A= > > With this in mind, I'd like to respectfully make the following=0A= > > requests:=0A= > > =0A= > > 1. Defer voting until the two week discussion period is complete=0A= > > (Tuesday, August 18).=0A= > =0A= > What do you mean by defer exactly? Stop voting or reset the vote?=0A= > We were thinking of extending the vote until September 1st.=0A= =0A= Hi Benjamin,=0A= =0A= Yes, my request is to stop/reset the vote until after the discussion=0A= period is complete. Otherwise few people will see the updates made to=0A= the RFC since they already voted.=0A= =0A= > > 2. Include a ranked voting option for @: and mention its pros and=0A= > > cons (it is equally concise as @@ with no BC break, but is somewhat=0A= > > harder to type). Patch link: https://github.com/theodorejb/php-src/pull= /1=0A= > =0A= > I am wondering where @: is suddenly coming from? It wasn't discussed=0A= > in both shorter attributes RFC and the discussion leading to this RFC.=0A= =0A= @: wasn't included in the Shorter Attribute Syntax RFC because I=0A= didn't realize it was allowed to re-vote on a failed secondary poll=0A= after less than six months. However, since we're re-voting on #[] I=0A= think it's only fair to include @: as well - some people may prefer a=0A= short syntax but dislike the specific look of @@. Personally I would=0A= like to vote for @@ as my first preference and @: as my second.=0A= =0A= > There were a few other suggestions like $() or "using attribute", but=0A= > none of them was followed up upon. Nobody replied to my or Dericks=0A= > message with a specific interest in actually contributing another patch,= =0A= > including @:=0A= =0A= I hadn't replied to this part of Derick's message yet because the=0A= voting started before I had a chance to write the patch.=0A= =0A= > > 3. Add a Backward Incompatible Changes section with examples of the=0A= > > code that the different syntax options would break.=0A= > =0A= > Derick and I are working on this section to update the RFC later today.= =0A= > We didn't consider this relevant, because the mitigation steps for all=0A= > of them is the same: a project wide search and replace to insert a space= =0A= =0A= Thank you for working on this. The mitigation for current usages of=0A= @@ should be to delete the extra symbol rather than adding a space=0A= (though I'm very doubtful that any usages of @@ even exist currently,=0A= since extra suppression operators don't do anything useful).=0A= =0A= The main benefit of the BC break section will be to highlight examples=0A= of how @[] and #[] break syntax that is both valid and useful, while=0A= @@ does not.=0A= =0A= > > 4. Add a Discussion section briefly summarizing the arguments that=0A= > > have come up on list. In particular this should include:=0A= > > a) Tyson's examples of #[] changing the meaning of code in=0A= > > unexpected ways between PHP 7 and 8 (e.g. a parameter=0A= > > attribute would remove the parameter when run on PHP 7).=0A= > =0A= > This is also included in the update, but ultimately is covered by the=0A= > explanation for "Forward Compatibility" already mentioning that it=0A= > does only work with a subset (and hence does not work for some other=0A= > subset).=0A= =0A= Okay, but I think examples are necessarily to illustrate which subset=0A= of the new syntax works and what does not. It certainly wasn't clear=0A= to me before I saw Tyson's examples.=0A= =0A= > > b) An example of the downside of grouping, where it causes=0A= > > unnecessary diff noise when adding or removing a second=0A= > > attribute on its own line.=0A= > =0A= > This is a problem for coding styles to solve and is nothing the RFC=0A= > should be concerned with. Grouped syntax specifically includes support=0A= > [for] trailing commas. Diff noise is something all declarations with=0A= > optional elements can cause, even use of @@ in one line can be "forced"= =0A= > from single to multi lines creating diff noise under reasonable Coding=0A= > Standard assumptions.=0A= =0A= Even if you "force" an attribute with @@ across multiple lines, that=0A= individual attribute can still be added/removed without modifying the=0A= attributes on other lines.=0A= =0A= On the other hand, with grouping the only way to avoid modifying=0A= extra lines when adding/removing a second attribute would be to=0A= mandate that the first attribute always be written like this:=0A= =0A= #[=0A= SomeAttribute,=0A= ]=0A= function foo() {}=0A= =0A= But this also makes diffs noisier since at the very start two extra=0A= lines have to be included.=0A= =0A= Best regards, =0A= Theodore=