bob wrote:
When you say "previous version" are you talking about 23.0, and current version = 23.1, or is previous version 22.x and current version 23.x???
As Jim already answered I'm talking only about Crafty 23.1 -
I just meant Jim's first compile from 24.11. and his today's one.
So I don't think that the problem is indeed in the Crafty source.
I have been looking at this. Something is badly broken in the GUI that is running this. And something fishy is going on with crafty. Once you say "analyze" it will continue to analyze indefinitely. It doesn't need to be told to analyze after each new setboard command is sent. And indeed, sending setboard is the _wrong_ thing to send.
Normally you would do this:
1. send a setboard to set the starting position if it is not the usual one.
2. send "analyze:"
3. send a move
4. send a move
etc.
No idea what that GUI is doing, but it is broken in its behavior. I'll see if there is anything wrong in Crafty that needs fixing, but that GUI certainly needs a brain transplant or something...
bob wrote:I have been looking at this. Something is badly broken in the GUI that is running this. And something fishy is going on with crafty. Once you say "analyze" it will continue to analyze indefinitely. It doesn't need to be told to analyze after each new setboard command is sent. And indeed, sending setboard is the _wrong_ thing to send.
Normally you would do this:
1. send a setboard to set the starting position if it is not the usual one.
2. send "analyze:"
3. send a move
4. send a move
etc.
No idea what that GUI is doing, but it is broken in its behavior. I'll see if there is anything wrong in Crafty that needs fixing, but that GUI certainly needs a brain transplant or something...
Maybe I'm misunderstanding, but it doesn't seem unreasonable that a program that invites 'random access' to a game would set up the board each move and then request analysis. I've seen this in ExaChess on OSX, for instance. That might be wrong for a playing engine, but seems 100% right for an analysis engine.
Anyway, I have no influence over the mad scientists who seem to have cobbled Dasher together out of old soup cans and surplus windshield wiper controllers, so thanks for investigating the issue and good luck!
WinBoard protocol specifies that setboard can be send during analyze mode, and that it should leave the engine in analyze mode. It does NOT specify that the engine should be able to receive a new analysis command. So it is a definite protocol violation to keep sending the analysis commands. The setboard already should have done everything you wanted.
If the new position is reachable by a move or undo, (or even a sequance of those), however, it is highly preferable to use that over setboard. The latter clears the game history, so that engines, for instance, would not recognize rep-draws anymore that occur because of return to positions from before the setboard.
bob wrote:I have been looking at this. Something is badly broken in the GUI that is running this. And something fishy is going on with crafty. Once you say "analyze" it will continue to analyze indefinitely. It doesn't need to be told to analyze after each new setboard command is sent. And indeed, sending setboard is the _wrong_ thing to send.
Normally you would do this:
1. send a setboard to set the starting position if it is not the usual one.
2. send "analyze:"
3. send a move
4. send a move
etc.
No idea what that GUI is doing, but it is broken in its behavior. I'll see if there is anything wrong in Crafty that needs fixing, but that GUI certainly needs a brain transplant or something...
Maybe I'm misunderstanding, but it doesn't seem unreasonable that a program that invites 'random access' to a game would set up the board each move and then request analysis. I've seen this in ExaChess on OSX, for instance. That might be wrong for a playing engine, but seems 100% right for an analysis engine.
Anyway, I have no influence over the mad scientists who seem to have cobbled Dasher together out of old soup cans and surplus windshield wiper controllers, so thanks for investigating the issue and good luck!
Jeremy
Crafty doesn't need a continuous stream of "analyze" commands. Once it goes int analysis mode, it stays there. You _can_ feed it FEN positions, but it is far better to feed it actual moves as this provides continuity for the game history so that it can recognize repetitions and 50 move issues. Sending it FEN makes repetition detection impossible, and really is a bad idea and a wrong approach. Xboard does it properly.
Well, Dasher is definitely in violation by sending new analysis comamnds to an engine already in analyze mode. So the result is undefined, and Crafty can pretty much do what it wants, including exiting. It is just a matter how far you want to go in accomodating non-compliant GUIs...
hgm wrote:Well, Dasher is definitely in violation by sending new analysis comamnds to an engine already in analyze mode. So the result is undefined, and Crafty can pretty much do what it wants, including exiting. It is just a matter how far you want to go in accomodating non-compliant GUIs...
OK, I understand the problem now. Thanks for the explanation.
Considering how many people are forced to use Dasher in order to go onto ICC, it might be a nice gesture to accomodate their bad behavior, at least until they fix the problem.