I think it is a mistake for engines to cater to defects in GUIs, like it is a mistake to let GUIs cater to non-compliant engines. It will decrease the chances that the defects will ever be repaired, and will lead to a viscious cycle of degeneration of the standards.mar wrote:Yes I'm aware of UCI_AnalyseMode. But I think not all GUIs support it. No big deal with go infinite i think. Should work everywhere.
If an engine should behave differently in analysis than in game play, I would advice to do that based on UCI_AnalyseMode, like the specs prescribe.
Well, limiting bandwidth is not the primary concern in analysis mode. Even the advice in the specs to not send currmove/currmovenumber in the first second is not so bad, provided you send it quickly afterwards. Having to wait 1 sec before you can start excluding moves is not a big deal. Having to wait 15 sec for that, as in the case of Stockfish, is way over the limit, though.My engine supports both searchmoves and multipv but unfortunately it doesn't report currmove when infinite search is issued. I wanted to minimize traffic that way. I was to fix that in the next version but atm i have nothing to release
Well, having a TC mode in human-engine games where the engine just thinks (using 'go infinite') until the user forces it to move, does not seem a completely ridiculous thing to me. But this makes it dangerous to assume that 'go infinite' always means analysis. As, apparently, the designer of UCI protocol agreed.Regarding standards, I saw a GUI (Arena) happily letting an engine play matches in multipv mode. Nothing wrong with that, sure. But that certainly was not intended because searchmoves and multipv are only meaningful is analysis mode.
