Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:102444 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 43629 invoked from network); 25 Jun 2018 21:08:12 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Jun 2018 21:08:12 -0000 Authentication-Results: pb1.pair.com smtp.mail=rowan.collins@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=rowan.collins@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.49 as permitted sender) X-PHP-List-Original-Sender: rowan.collins@gmail.com X-Host-Fingerprint: 74.125.82.49 mail-wm0-f49.google.com Received: from [74.125.82.49] ([74.125.82.49:34927] helo=mail-wm0-f49.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 62/0F-50433-AB9513B5 for ; Mon, 25 Jun 2018 17:08:12 -0400 Received: by mail-wm0-f49.google.com with SMTP id z137-v6so5759913wmc.0 for ; Mon, 25 Jun 2018 14:08:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=KmPHBeBIow7awuSnWDt0ZqXv61aFDF/bUNjebv85ENU=; b=BCsVdJBNWALezqWtHbvbW0gtgPgEg/jbPZmEaBw2E+ZbOgvKGavwsy7M8EEuW7LSYw Z2+UUEl6SbXgyLFfRIkJgVCgqqmRstAyxiqbe4VkOXC2xSQ/nFjFYBIEn0aXdsxrwER1 9EWjKIffDQ8LzZxJ067wAWeOap66mGb69BCWUEk1T0dSp5TVkkj4rwCg/AowC9P68X9h xm1xywWKqX59AyO/28NzsmE+ec/zA+lqARxZqGpamNKeK7iHZVvc30qYZ8t5dLconmEK 1h7Q0lieHQ1EZQcHvSONC4854AdyCn9IfkAGQjpTuvLd6B0m0wi/PlTr14rEP714GBmH VSJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=KmPHBeBIow7awuSnWDt0ZqXv61aFDF/bUNjebv85ENU=; b=JKpWlY+6nVXdaq1kUzdeFkD5bc81BMZIKpMrLCmecodtKnFysI+06f0DMzAJve6X72 0fJKSg9uaoroQmCx6R6nQIWfFsl9GBYFqdwQMC2+PND05saipmKMPhun6NBHMd8rnnID FeKvi8WxsCT8lD1DrC/mt4Xh+au89L1q9UlaasbxPkNji3Sat5Lk98oRiNE0DU2kF9TT 4hPSLU8A6ard7U0FLuqJYKWrMmWCl5j8YMn4IvkQTWLY35eod7FwYw+/Hc4mClFsNKGz EEj7fTMVzplyVOZtUdXrR3OPaNqZicpDfh83w3mDLTolS3Sfgj5cv3rRpCSg0Ne9BP6C 6/TQ== X-Gm-Message-State: APt69E1cyTkEyjwrEq1j7gn4Ronc3OFKutAZgDdzcKjNfw+d3ZKft5QH hgt64BE+1IVaBxzc8sF0uh49stfi X-Google-Smtp-Source: ADUXVKKvU4dNLNmKsP65unekrVDy150W3W+HydlqZIZxET0YiTwpRUZKHtytHOp7dCYqm/T8whMJsg== X-Received: by 2002:a1c:f308:: with SMTP id q8-v6mr2099782wmq.6.1529960888051; Mon, 25 Jun 2018 14:08:08 -0700 (PDT) Received: from ?IPv6:2a00:23c4:4b86:4b00:ed04:8a78:e867:50dd? ([2a00:23c4:4b86:4b00:ed04:8a78:e867:50dd]) by smtp.googlemail.com with ESMTPSA id 72-v6sm16940758wrb.22.2018.06.25.14.08.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Jun 2018 14:08:07 -0700 (PDT) To: internals@lists.php.net References: <4CD11D3A-D799-46CF-9DD0-E34552FB15CD@gmail.com> <4552e1c3-b538-17ab-95fd-708dfa4f0d5a@lange.demon.co.uk> Message-ID: <80f417a1-8b48-40a9-10f6-2cce7e9b1334@gmail.com> Date: Mon, 25 Jun 2018 22:08:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Subject: Re: [PHP-DEV] PHP 8 next? From: rowan.collins@gmail.com (Rowan Collins) On 25/06/2018 20:34, Michael Morris wrote: > So, about that Ternary operator? > > My understanding is that major releases are the only ones allowed to have > breaking changes. Correcting the ternary operator to work like it does in > all other languages is a small example. I don't think it's a good idea to turn this thread into a list of every possible change we might want in PHP 8, but there is a general point to be made here: the rule is that if you have a clear breaking change, it is definitely not allowed in a minor release; not that it automatically will be allowed in a major release. Even a major release should maintain some compatibility - in particular, it should be possible to write code that runs correctly on both the previous and new versions. For instance: removing the old way of doing something because a new way is already available, or making something an error that was previously an avoidable warning. In this example, changing the associativity directly would mean the same code would run in both versions, but with different results, and that is going to cause a lot of headaches. On the other hand, making it *non-associative*, so that it was an error to write ambiguous code, would probably save a lot of headaches. Again, this feels less of a hardship if we plan major versions further ahead: we might pencil in the new behaviour for 9.0, and be able to put a date on that. Regards, -- Rowan Collins [IMSoP]