hgm wrote:bob wrote:If all we do is add a new command, and don't change _anything_ else, then this change can not _possibly_ hurt any engine that doesn't know about the new command, because they would never use it in the first place.
In that light, I do not see the problem. They can use the new command and solve an existing problem. They can use the old commands and continue to live with this existing race condition that they are probably unaware of anyway.
No! They can never use the new command, because they do not know if the GUI will understand that command. They only know that there are some GUIs that do understand it, and many that do not.
What part of the concept "protocol" don't you understand? No part is optional to the GUI. We do allow programs to select bits and pieces of the protocol via the "feature" commands. But the GUI must handle them all or it is non-compliant.
If we fix a way to claim a draw that works logically and reliably, I will be happy. The last time we had this same discussion I suggested fixing 1/2-1/2. So that it could be properly interpreted without worrying/caring about the potential race condition with my opponent's next move. That went nowhere. Your statement was that the result will end the game. Let's go with that. But make it work correctly so that 1/2-1/2 will never turn into 1-0/0-1 just because my opponent's move beat my draw claim to the GUI. If you can make that work, and everyone else does as well because the protocol definition is modified to make this perfectly clear as to how the 1/2-1/2 is treated, all will be well.
So the new command cannot _possibly_ benefit them.
But no way a new command hurts anyone since they would not be using it unless they chose to do so after reading the description. If this is added to the protocol, the command is not optional for a WB_compatible GUI to implement. It becomes mandatory.
Yes, and then, by magic, all old GUIs disappear from the surface of the Earth. Get real!
Or they simply fix their GUI to match the protocol. This is not uncommon. Protocols evolve. And everything doesn't break.
What will happen in practice is that almost every GUI writer will say:
"We don't plan to make a new release soon."
"For now we only support protocol v2."
"We limit ourselves to the commands in the original specs."
""
Anyone can bury their head in the sand. I have identified a significant problem in the protocol, and have explained it as clearly as I know how. If they are not willing to fix it, then I would not care if they survive or not. We don't keep an old protocol with a bug, rather than fixing the bug, simply because some are not willing to support it. We have a bug _either_ way. At least as GUIs adopt the new command or new semantics, whichever is changed, the race condition slowly goes away. Right now it is there, and I'd bet a bunch that most have no idea it is there prior to this discussion. And games have been lost when they should have been drawn as a result. And nobody knows.
Makes no sense to ignore that.