Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:102912 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 22715 invoked from network); 19 Jul 2018 08:52:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Jul 2018 08:52:52 -0000 Authentication-Results: pb1.pair.com header.from=vsuraski@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=vsuraski@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.216.174 as permitted sender) X-PHP-List-Original-Sender: vsuraski@gmail.com X-Host-Fingerprint: 209.85.216.174 mail-qt0-f174.google.com Received: from [209.85.216.174] ([209.85.216.174:38499] helo=mail-qt0-f174.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 91/06-37178-361505B5 for ; Thu, 19 Jul 2018 04:52:52 -0400 Received: by mail-qt0-f174.google.com with SMTP id y19-v6so6512797qto.5 for ; Thu, 19 Jul 2018 01:52:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gdr6//KqpxwjrQoJKcbMcMovZz7qNhrvqk++kTcWFeQ=; b=n7NBdlnQHjX1l5MahWc7vJVlJJadw67J3PnWVKkE/p+g4L8D04XydlFM6FxmH8zkDG gLPbC2H/GJZjcKlRXdkdExw3/8wLU/nzet8f1Fio55l/rnV20MFGCuDvQa9dTFrU1V9I G8E1ixRBrCUyWN/+sMHyeR30i2FbhB+PMOq578suqpGRWpgrU/IZmpReyFurhO2rTflC d4+sEfzj9fDlnDLuf4d5WQcHwOy7FYQ0E+lqVyvAi+qOzNDYHWCyW99jQmX/bXIQnWXv lTnXxT/OV+bLLZ+eH6PnPAdSRLi2wpUKGrGPxexWE8YARI1QDVVi41ZQG2RuIuxlOy7K 0KIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gdr6//KqpxwjrQoJKcbMcMovZz7qNhrvqk++kTcWFeQ=; b=GxGi83uOa4GeI26jSeXauuszOB8qj3KxziIRzwraSKFB9bw6Ud4RVRfCI1zV/pQN8D TtkARV86QUb+rp1r6iNnxjKKC8j8/QyZEqohACQLCy4/SodbD0Hv0XuHBz0Dd5Gmb5E6 EPMU3FkLc9yPIdd320++CifXGk52dwXL48BxzF4InlYHQb3rycAl0w+qliO2zeIyBPQ/ Kei5cXwmNqA4l/67w07fSWGCFLFewLK1qqKVT3W8EHR22SiOTGxg0E0eC5T7I014ZEkL 0zPAYtOUlsYn02HtYhM8uOLGnn8TK58HeinzYpcUKM0qsmuykp2mk+tRN0/JE/idgdKl rAKw== X-Gm-Message-State: AOUpUlFPwRnWEin7xq8rEQZwcvLmrP0CGElN3Y+mxVhZoVWNfHNv/fnm EUG37vaSrrf+mm7WOlq57WcANQyHEPOGfnFf22c= X-Google-Smtp-Source: AAOMgpfPtNJ4yu0HDBU/wBCWcKukLvTVe5anDBhyLBPrs6N+OwLosp/8umSlxnsFtCm6HXXUVSbPiS1vZ0eHuEO9f2c= X-Received: by 2002:ac8:2cdd:: with SMTP id 29-v6mr8772570qtx.423.1531990369230; Thu, 19 Jul 2018 01:52:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Thu, 19 Jul 2018 11:52:37 +0300 Message-ID: To: Nikita Popov Cc: Zeev Suraski , Internals Content-Type: multipart/alternative; boundary="000000000000c1e2cb0571564d14" Subject: Re: [PHP-DEV] Re: [RFC] Typed Properties From: vsuraski@gmail.com (Zeev Suraski) --000000000000c1e2cb0571564d14 Content-Type: text/plain; charset="UTF-8" On Tue, Jul 17, 2018 at 9:02 PM Nikita Popov wrote: > > Sure, we can wait another week. Unless the additional discussion results in > major changes to the RFC, we'll start voting next Monday (2018-07-23). In > the interest of avoiding further delays, please try to view this as a hard > deadline: If you would like to discuss some aspect of the proposal or raise > a concern, please do so now rather than on Monday morning. > I reviewed the proposal in detail - and quite detailed it is. It seems like you and Bob did a very thorough job here, kudos on that. I do have 3 comments - none of them major - but I think should be addressed nonetheless: 1. The RFC is surprisingly sparse on examples where the typed properties are not scalar ones. So much, in fact, that I had to check whether this is intentional (i.e., classes are unsupported as enforced property types) or an oversight. Reviewing the 'Supported Types' section, while mentioning a ClassOrInterface - isn't entirely clear, as it's unclear whether this is a token, or something that stands for any class name or interface. Thankfully the proposal does cover class and interface names as property type definitions. I would recommend to be explicit here, and say "any class or interface name", and ideally also provide a sample of that option in the Introduction section of the RFC. 2. While trying to understand whether #1 was in fact supported and reviewing the patch, I noticed that there were several comments from Dmitry on the patch (within the pull request). It would be nice if they were addressed (none of them will turn the patch upside down, and as I see it they are orthogonal to the vote). 3. The patch does bring a performance penalty, albeit quite small (every property assignment now has to conduct type safety checks). This does not only affect code that uses typed properties - but also code that doesn't. I think this should be mentioned in the RFC. To be clear - I don't think the penalty is substantial enough to change someone's opinion about the merits of the proposal one way or another - but in the spirit of full disclosure it should be there. Zeev --000000000000c1e2cb0571564d14--