Hi

Preliminary note: I'll be on vacation starting tomorrow and thus might not be able to look into further replies. I wanted to get this email out of the door nevertheless to check off an open ToDo list item before the vacation and because I found it important to not leave the topic sitting around for two weeks, while the vote is in progress.

On 7/29/25 11:01, Gina P. Banyard wrote:
produces zero, which is even more clearly a problem).  After confirming this
and thinking about it, I wanted to modify my existing wording to account for
this edge case; doing so would have resulted in very convoluted language,

Requiring “convoluted language” to integrate this into the existing proposal to me is an indicator that it is a different proposal and that splitting it out into a separate primary vote is the correct choice.

This is the highest possible bar that I have set: adding the new edge case as a
secondary vote would have been completely justified, and this would require a
smaller majority of a vote.  If I was worried about a procedural spanner in the
works, I could have just shoehorned this minor change into the existing text
and this would also have been completely justified.  I made the changes in the
clearest possible way for the benefit of people reading the wiki.

I disagree. The existing policy that you quoted is clear in that “Combining multiple RFCs into one does not allow turning a primary vote into a secondary vote”. While the current policy indeed does not specify that an RFC needs to be “identical” (as you mentioned in your other email) and RFCs often evolve, using the RFC title as the identifier and scope of an RFC seems to be the intention. Otherwise I could just prepare a RFC reserve of “Reserved RFC 1” to “Reserved RFC 9”, formally start the discussion on those and then when I have an idea I could change the contents as appropriate and immediately call a vote. This clearly would be in violation of the spirit of the policy.

I'd argue that “out of range floats” are something different than “NAN values”, with the former being larger in scope, since it also affects floats that exceed the integer range, instead of just the specific NAN value and thus it is not a “subset” that would fit under the same headline.

I will now open the vote as-is, anyone is free to convince people to simply
vote against it, or do the most procedurally correct thing of starting an RFC
to render it void after the fact (regardless of the outcome of this vote).

It does not seem productive to me to hold a vote just to nullify it after the fact. I've intentionally made sure to raise my objection before the RFC went to vote. In fact you specifically called out in your email that you wanted to give folks a few hours to raise objections. It is not clear to me why the objection raised would then simply be ignored.

Regarding the suggestion to simply kick the can down the road to the next
version: we do not know if the next version will be 9.0, which if the same
request is made about deprecation as 8.0 had, this would mean the warning for
this could not be introduced until 9.1, and then it could only be upgraded to
an error by PHP 10.0. This seems like a disproportionate amount of extra work
for such a minor change.

I do not understand why new warnings cannot be introduced in PHP 9.0. Given that “Warnings” are treated very strongly by the community (commonly converting them to Exceptions), I also don't see a pressing need to make it an error in the engine. It wasn't an issue for the last 30 years of PHP's existence, so moving it back another year when it missed the deadline seems totally reasonable to me.

I agree it is important for internals to voice their concerns.  I am simply
upset that a very minor *procedural* disagreement is once again incentivising
me to smuggle in common-sense changes through procedural back doors rather than
write my proposals clearly.  This seems like a clearly positive and minor
change; anyone who disagrees on *technical* grounds can vote no, and if the
procedural issue really is so important, there is a recourse available for
this.  Having to fight these kinds of battles over my work to improve the
language is needlessly taxing, and this too is a form of unhealthy environment.

Part of a healthy environment for me is that I can be sure that others are following the agreed rules that are intended to give everyone the opportunity to carefully digest and think about changes affecting the language and to plan and prioritize their participation in the RFC process with regard to other tasks, both related to the language development and day-to-day real life duties.

Therefore it is important to me that the proper process is upheld for any change, no matter or big or small and I disagree that this is a “minor” procedural disagreement. If we only followed the policy when it is convenient and ignored it when it's not, we would not need to have a policy. Policies (and contracts) are agreed-on to set expectations and help make decisions in future cases of disagreement.

It is especially important to me that the regular contributors carefully follow the policies, since the behavior of those set an example for new contributors and the folks silently following along. In the past few weeks leading up to PHP 8.5's feature freeze there were several RFCs that I felt were in a grey area with regard to the current accepted practice / gentleman's agreement of doing RFCs, several of those from less-experienced or first-time contributors. They were not in direct violation of the written policy, though. I believe this one was and that's why I was speaking up.

I already had planned to do a policy RFC after my vacation to clarify the language and bring the policy up to date with the current accepted practice of doing things. I'm happy to further discuss the topic as part of that policy RFC then.

And to be clear: I'm favor of the “Casting out of range floats to int” proposal from a technical point of view and I agree that it's a clearly positive change. But I disagree that it is a “minor change” that doesn't warrant the same treatment as any other RFC.

Best regards
Tim Düsterhus

Reply via email to