Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93108 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 62939 invoked from network); 7 May 2016 17:19:13 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 May 2016 17:19:13 -0000 Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.161.175 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 209.85.161.175 mail-yw0-f175.google.com Received: from [209.85.161.175] ([209.85.161.175:36746] helo=mail-yw0-f175.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 66/E5-53854-1932E275 for ; Sat, 07 May 2016 13:19:13 -0400 Received: by mail-yw0-f175.google.com with SMTP id o66so249022847ywc.3 for ; Sat, 07 May 2016 10:19:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=rrwyPTlGFU8EJYy7kj/zxMReD1Vd9cThM+h3UlwpJ6c=; b=uzLEZwHPqNqY6WaIybxxpA9U1mP0WKkC8hlevd5HP+/4i1CurA7iXcmTKQSq4piblr fSmmrLQqAIdTsvTj1jo05xSNOv2iNo2K7JJUUBqGqYEy4IQRt/o6kv3lL7fXR8bAuZ+5 8t/qR8WdkyhPELODniIFynnFuvtz6pY+vblsd85JBtZylEhg+pTzzV1G9SfuTCyfQcDD jRCNraufXYydD9wH7IPNauJEtfGtxVpFwirclvaCvUTquV2p9Zund6/G5hrOwe052kHO ChHMrwe0+6hajIGW/3ug2dPbs9Lf6P82+7/iOICVA/XxCDZYaBxF4QgM1hs+nAM558Ft aaCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=rrwyPTlGFU8EJYy7kj/zxMReD1Vd9cThM+h3UlwpJ6c=; b=N+DPqdw5M87CfmY8oaaFjBN2zD1+mgRUQFhL5AmeGtl8bcxA8OnDXZ4iC0Rndnh7T2 z9pJdMXZlHbkleHe+y/nUcdqEw8ulmlDobfxhIVpGhI0kS/Yqt0twydVkcobJtWhsesT r2V72Rm1Gqk5BqymhsnObqKjVBE4+08U56U5mr2yAw9L+sMcrhIN4O3EhB4tAL/crEUI BMAD+fSIzyo2pMuCgcHlykWAlDZCvfF0j31EqFXYae4Vz3WNlsoq/BH6dgdcWxDcZo24 3u9paZGv+5mLDgYN2HBjbc/rHeEgIKOQEidTqWQWpgZJ0ndzrQ5jSPs6NYSfMcRkRhAb NgtA== X-Gm-Message-State: AOPr4FX8JFSumRHHbazsVVRdySGv+9L+JM0t7hdAqckbOFnzCGz1v3ePSD+Jaq5K7ksFhIhQCFA0+trmd0IgHg== MIME-Version: 1.0 X-Received: by 10.129.40.147 with SMTP id o141mr15069181ywo.221.1462641550641; Sat, 07 May 2016 10:19:10 -0700 (PDT) Received: by 10.13.239.3 with HTTP; Sat, 7 May 2016 10:19:10 -0700 (PDT) In-Reply-To: <572E0A60.4090506@thefsb.org> References: <572E0A60.4090506@thefsb.org> Date: Sat, 7 May 2016 19:19:10 +0200 Message-ID: To: Tom Worster Cc: Levi Morrison , internals , Dmitry Stogov Content-Type: multipart/alternative; boundary=001a113f43dc0f7046053243c6b0 Subject: Re: [PHP-DEV] Re: [RFC] Pre-vote notice for Nullable Types From: nikita.ppv@gmail.com (Nikita Popov) --001a113f43dc0f7046053243c6b0 Content-Type: text/plain; charset=UTF-8 On Sat, May 7, 2016 at 5:31 PM, Tom Worster wrote: > On 5/6/16 3:41 PM, Levi Morrison wrote: > >> The [RFC for Nullable Types][1] is going to go into the voting phase >> soon. There have been a few changes to the RFC in the meantime: >> >> - More example for documentation's sake >> - The vote is now split into two parts: one for nullable parameter >> types and one for nullable return types. >> > > The vote counting surprises me. Say, for the sake of argument, a > hypothetical nullable returns RFC were to pass with 2/3. After that a 2nd > hypothetical RFC for nullable parameters goes to vote. This 2nd RFC would > need 2/3 to pass. Your RFC defines the same two separate language changes > as two votes but one of them requires only a majority. > > Also, could you clarify in the RFC text how the voting works. For example, > is it the case that the entire nullable parameter vote is discarded if the > nullable return vote does not pass? > > Tom > This RFC has one primary vote and one secondary vote. The primary vote determines whether we want to add nullable types to our type system. The secondary vote decides how precisely this will happen, in this instance deciding whether nullable types will be restricted to return types only or not. This is a standard voting layout, with precedent in a number of other RFCs. The reason why the second vote must use a 1/2 majority is symmetry. You, as somebody who does not like nullable parameter types, argue from a perspective of one 2/3 majority RFC for introducing nullable returns and another 2/3 majority RFC for introducing nullable params. I, as somebody who thinks supporting this syntax only for returns is wildly inconsistent, will argue from a perspective of a 2/3 majority RFC for introducing nullable *types* and another 2/3 majority RFC for restricting them to return types only. Depending on the perspective this would require either a 2/3 majority, or a 1/3 "majority" for unrestricted nullable types. Using a 1/2 majority vote ensures that there is no bias for either choice. Regards, Nikita --001a113f43dc0f7046053243c6b0--