It was using the same board for inputting moves as on which it was analyzing?Evert wrote:Ok, the immediate problem with analysis mode was caused by a change in the way moves are parsed, but analysis mode turns out to have been badly broken. I can't tell how it ever could have worked in the first place (at least not if you tried to undo moves and input new ones).
I encountered similar problems in HaChu, which is my only engine that uses the highlight protocol: I originally used the search board for generating the color FEN, which worked fine in ponder off games, but made it actually impossible to enter moves when the engine was pondering (or analysing).
Well, it is a bit of a moot point, because XBoard does never use 'new' or 'setboard' on an engine that is in analysis mode. There seems no reason not to reset the engine, because it would have to start a new search from the new position anyway. I don't know what other interfaces do, but usually they would not support any variants, so the switch back to 'normal' would be a noop. In FRC it is not clear what else 'new' could do than setting up FIDE; you would hardly want to start analyzing a randomly chosen position!Should be fixed locally, but I do have one comment/question regarding the implementation and the CECP specs. Specifically:
In normal mode, "new" has the following description if we cut out all cruft that doesn't apply in analysis (force) mode:new Reset position to start of game but stay in analyze mode.Apparently, "reset the board to the standard chess starting position." also implies switching back to variant "normal". I'm assuming this is not intended to be the case for "new" in analysis mode, in other words, they're different commands despite being called the same (I understand the historical reasons for this distinction).new
Reset the board to the standard chess starting position.
[…]
Remove any search depth limit previously set by the sd command.
I guess the specs should be reformulated to say that 'new' would be equivalent to a setboard of the start position of the current variant, and nothing else.
