Are those the same versions as on github? (which doesn't identify itself as 0.8.0 BTW, but does have "ponder").ilari wrote:The fix is in! Here's the new beta version:
Reason I ask is I experience problems when the losing engine wants to ponder on a move that gets him checkmated (at the end of the game).
Cutechess sends "go ponder", but never sends "stop" or "ponderhit" when the winning engine plays the checkmate. Instead it sends "isready" and "ucinewgame" to the losing engine. By the time I get "position startpos" as well I stop the search thread, but that is when the search thread emits "bestmove 0000", because every "go" must be followed by a "bestmove". Cutechess doesn't expect that, considers that as an illegal move in the new game, and delivers another loss to the losing engine. Not fair.
I think it starts to go wrong where cutechess assumes that the reply to "isready" means that there is no search running, but that is not how it works. Searches are stopped by "stop" or "ponderhit", and must always give a "bestmove" reply, correct? (Pondering is uci is new for me also, and I try to follow what shredder does when the specs are unclear to me.). And "isready" during a search will always be replied to by "readyok". The uci spec is explicit about that.
I would prefer not to write code that avoids pondering on a game-ending move, if possible (could also be a stalemate).
The github version I'm using was copied on Nov/08. It seems to include such kind of fix, but I still see the above scenario.

