> -----Original Message-----
> From: Olumide Samson <firstname.lastname@example.org>
> Sent: Thursday, September 12, 2019 6:03 PM
> To: Dan Ackroyd <Danack@basereality.com>
> Cc: Zeev Suraski <email@example.com>; PHP internals <firstname.lastname@example.org>
> Subject: Re: [PHP-DEV] Changing fundamental language behaviors
> The RFC is Request for Comment on any changes, is there an explicit or implicit
> mention about what kind of proposed changes can be made?
While the Voting RFC was probably one of my worst creations - because it's was so laconic and lacking (although it still probably did more good for PHP than bad) - yes - there's a strong implication as to what it's meant to deal with and what it isn't meant to deal with.
Here's what the Voting RFC said:
"Given that changes to languages (as opposed to changes to apps or even frameworks) are for the most part irreversible"
I understand this isn't written black-on-white that you can't deprecate a fundamental language behavior. But it's clear that "having to win a 2/3 vote" isn't quite the definition of "irreversible". The idea behind the 2/3 requirement (a number that I came up with) was to ensure that the motivation to undo that addition/change will likely remain very low in the years following the vote on the RFC. Why? Because once it's in - it's in. It cannot be taken out. It's irreversible.
So no, a 2/3 vote does not get us the mandate to deprecate a fundamental language behavior. It's basically a reasonably high bar to add something to the language - given that we know that once we add it, we cannot take it away. Nothing more, nothing less.