Adriaan wrote:
There is no "genmove" command in GNU Go. You may be thinking of
Exactly. Instead of the gtp version 1 command "genmove" *four* extentions to the commandset were implemented. For perfectly valid reasons, of course.
In version two of the protocol genmove_black and genmove_white will be replaced by a single genmove command. There will also be a command reg_genmove for regression purposes.
Good. I don't object to extensions. But basic functions should be mapped to the standard command set, IMHO. [...] BTW, in the standard definition paper, it is very hard for me
Um, there seems to be some misunderstanding here. GTP version 1 has no written specification. It only has a reference implementation, which is GNU Go 3.0.0. Since it implements genmove_black and genmove_white, those are the standard commands. In fact there is no command called just genmove in GTP version 1.
Maybe you have been confused by the old draft for GTP version 2.
I could not get a runnable version og gnugo here at work. Just some visual inspection of the source(3.2 play_gtp.[ch] ): gtp_failure(id, "komi not a float"); gtp_failure(id, "handicap not an integer"); Should have been "invalid_argument" ?
there are more of these.
I know this seems like nitpicking. But bloat in the responses will make it increasingly hard for the driverprograms. A two level message ala "404: not gound", or "invalid_argument : some extra text" would combine the best of both worlds.
I'd generally prefer to specify as little as possible about the error messages. The examples you show above can only occur if there is a bug in the controller and it wouldn't be meaningful to include code trying to handle them.
There are a couple of error messages which the controller does need to deal with, though, which certainly need to be standardized. This part is not finished in the new draft. I'll think about your proposal.
/Gunnar