bob wrote:But the versions of xboard I use do not have the problem anyway, don't know what version you have that is sending SD along with the level command, but the two versions I have here do not do that...
Try to run it with the option -depth 5, and I am pretty sure even the XBoard you use will send sd 5 to Crafty.
Try to run it with -depth 20 -tc 1 -inc 0 -autoCallFlag true and I am pretty sure it will forfeit Crafty on time...
I don't see the ambiguity. If sd 5 is in force, the engine should print a move in stead of starting iteration 6, but before it finishes iteration 5, it should behave like it normally does for the given time control. The only ambigity is that most engines nowadays do not use fixed-depth searches, so it is not clear what depth N means. I don't consider -depth a very useful option anyway.
But the versions of xboard I use do not have the problem anyway, don't know what version you have that is sending SD along with the level command, but the two versions I have here do not do that...
Actually, we're talking about that command coming from Arena with WB interface here. As hgm discussed, this sequence can't happen in the current winboard / xboard. In that sense, the winboard protocol can afford to 'make no sense' or 'be ambiguous' or even 'allow for truly stupid interpretation of that command'. (edit: it seems I was wrong, I do/did not know how winboard would handle concurrent sd and tc commandline arguments.)
Anyway, what's the deal with the ellipses at the end of your posts?
means that the thought is incomplete and more might follow.
bob wrote:But the versions of xboard I use do not have the problem anyway, don't know what version you have that is sending SD along with the level command, but the two versions I have here do not do that...
Try to run it with the option -depth 5, and I am pretty sure even the XBoard you use will send sd 5 to Crafty.
Try to run it with -depth 20 -tc 1 -inc 0 -autoCallFlag true and I am pretty sure it will forfeit Crafty on time...
I don't see the ambiguity. If sd 5 is in force, the engine should print a move in stead of starting iteration 6, but before it finishes iteration 5, it should behave like it normally does for the given time control. The only ambigity is that most engines nowadays do not use fixed-depth searches, so it is not clear what depth N means. I don't consider -depth a very useful option anyway.
To be honest, it has never occurred to me to try such a match with xboard. I have done fixed depth searches, and I have done timed searches, in all sorts of games. But never have I thought about mixing the two together...
Laurens Winkelhagen wrote:Ideally the winboard protocol would support an 'sd -1' command to set the maximum search depth (back) to infinite.
It seems unnecessary. "sd 9999" can be used for this purpose, since it is effectively infinite, and already compatible with existing engines (at least, if they interpret sd as a maximum depth and not as a required/exact depth).
I was reminded of this discussion when I was reading through the ToDo list of Tim Mann's WinBoard distribution, and stumbled on this remark:
Tim Mann wrote:
517. Clarify in engine-intf.html that "sd" is an extra dumbing-down
feature, not a time control. Some text:
In the protocol, the "sd" command isn't a time control. It doesn't
say that your engine has unlimited time but must search to exactly the
given depth. It says that you should pay attention to the time
control as normal, but cut off the search at the specified depth even
if you have time to search deeper. If you don't have time to search
to the specified depth, given your normal time management algorithm,
then you will want to stop sooner than the given depth.
The "new" command should set the search depth back to unlimited. This
is already stated in the spec. The "level" command should not affect
the search depth. As it happens, xboard/WinBoard currently always
sends sd (if needed) right after level, but that isn't part of the
spec.