Gunnar Farnebdck wrote:
This makes sense because the whole point of the abort is not to undo things - instead, it is to get the GTP client to stop what it is doing and start listening to commands from the server again.
This is the key point to the whole issue.
And I think it would be really nice for the interactivity of GUIs.
Finally I'd like to hear, just out of curiousity, how the various go programs out there would be able to handle abort of a genmove (whether or not GTP has been implemented in the program at this time). I guess there are five major categories:
1a. The program isn't able to poll for abort commands at all. 1b. The program is so fast that there's no point polling for an abort. 2. The program isn't able to abort the genmove. 3. The program can abort the genmove but not generate a half thought through move. 4. The program can abort the genmove and return a half thought through move.
From Markus' messages I conclude that Neurogo and Explorer fall into
category 4 and I'm pretty sure that all of Andrew's *plus programs so far fall into category 1b. I can add that GNU Go is a 1a and that it would require a major effort to get it further than 2.
I'd assume that all programs doing full-board alpha-beta search would not require too much effort to satisfy 4. I would also think that GNU Go could satisfy 3 with some reasonable effort.
For the record, I checked what the corresponding protocol between chess GUIs (xboard, winboard, ...) and chess engines is doing. Apparently a platform dependant solution with signals, which is I assume not an option for GTP.
Arend