hgm wrote: ↑Wed Jun 04, 2025 10:14 am
That there would be no dedicated formal way to report an error doesn't seem justification for the idea that an error should be allowed to cause 'undefined behavior' such as formatting the hard disc.
Deliberately programming the engine to do that would of course be evil. But without input validation, it is difficult to guarantee that data loss cannot happen if you feed the engine cleverly crafted malicious data that you downloaded from the internet. And even if it does do some input validation, it will almost probably not be complete.
A discussion between two GUI developers, which did not really reach a conclusion doesn't carry much weight.
The author of the UCI spec was pretty clear. The idea behind UCI is to move all complexity as much as possible to the GUI.
Of course his opinion expressed in a forum post is not automatically part of the spec, but it is another confirmation that this is how the spec is generally understood by the community. Another confirmation is that many authors of top engine accept that their engines crash on invalid input.
Of course there is no law against validating the input. Whatever the engine does will confuse the GUI, but the GUI wasn't supposed to give the engine invalid input in the first place.
As remarked, if being legal would be a protocol requirement, the protocol specs should contain a definition of what is considered legal, as the FIDE definition for this would be impossibly complicated, especially for a GUI. There are many severities of illegality, from not having move syntax or containing off-board coordinates to merely leaving a King in check.
You will not hear from me that the UCI spec is complete.