Elements of the ULTIMATE Chess GUI?

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Elements of the ULTIMATE Chess GUI?

Post by gbtami »

hgm wrote:Why would that be a bug? It seems quite logical to me that WinBoard would use WB protocol if not explicitly instructed to use something else.
Using a protocol by default when you don't know if engine supports it or not is not logical at all for me. I just described the steps how one can add a new engine which can't start in a new human-engine game without any error/warning.
User avatar
hgm
Posts: 28326
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elements of the ULTIMATE Chess GUI?

Post by hgm »

Sure, but that assumes that you do autodetection of the protocol. Because of the bad reputation this had I never bothered to try that in WinBoard. People always told me that it was better if they could select the protocol themselves.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Elements of the ULTIMATE Chess GUI?

Post by Evert »

hgm wrote:CECP is the default protocol for WinBoard, so if you don't tick any of the 'foreign' protocols, it implicitly selects CECP. But what I meant was that ticking UCI with a WB engine would give you the same effect; the engine would just appear dead, because it would not recognize any of the commands intended to make it do something.

The sequence

> xboard
> protover 2
< unknown command: xboard ? => UCI
< feature ... ? => WB v2
< Error (unknown command); protover ? => WB v1
wait 1 sec
> uci
< uciok ? => UCI
wait 1 sec
WB v1

seems a reasonably reliable protocol determination, and could be made default. In any case ignoring engine complaints like "unknown command: xboard", which is apparently what Stockfish (non-compliantly?) would say, seems a missed opportunity.
Doesn't the UCI spec say engines should ignore unknown input? In other words, the engine would not respond at all to xboard/protover.

I know people are bitching about having options, but I would prefer an option to configure X/WinBoard to use autodetect/cecp/uci by default...
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Elements of the ULTIMATE Chess GUI?

Post by gbtami »

hgm wrote:Sure, but that assumes that you do autodetection of the protocol. Because of the bad reputation this had I never bothered to try that in WinBoard. People always told me that it was better if they could select the protocol themselves.
This explains why this bug is there, but the bug is remaining a bug until it's not fixed :wink:

Btw. cutechess has this bug also, but in opposite way. It assumes UCI by default :)
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Elements of the ULTIMATE Chess GUI?

Post by gbtami »

"Doesn't the UCI spec say engines should ignore unknown input? In other words, the engine would not respond at all to xboard/protover."

This is the reason I try to auto detect UCI first and CECP at second IIRC. This order takes less time most of the cases.

"I know people are bitching about having options, but I would prefer an option to configure X/WinBoard to use autodetect/cecp/uci by default..."

I suggest (and use in PyChess) auto detection which gives an initial selection. Users can change it if engine supports both protocol of course.
User avatar
hgm
Posts: 28326
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elements of the ULTIMATE Chess GUI?

Post by hgm »

Evert wrote:Doesn't the UCI spec say engines should ignore unknown input? In other words, the engine would not respond at all to xboard/protover.
That seems to be the case, but apparently Stockfish is non-compliant in this respect. I don't know if this is common amongst UCI engines.

The specs are a bit vague on this topic, however; it seems an unknown token is not so much ignored, as well as resetting the parser to its 'start-of-line' state. And ot even that, as it explicitly states that "debug joho on" has an undefined effect.
I know people are bitching about having options, but I would prefer an option to configure X/WinBoard to use autodetect/cecp/uci by default...
This was certainly my plan, because I of course also have to deal with USI and UCCI engines, which in general are extremely intolerant to anything uncommon, and sending them 'uci' instead of 'usi' is often enough to make them exit immediately. So for distributions where Shogi is configured as the default variant, I would want to switch the auto-detection off.
gbtami wrote:This explains why this bug is there, but the bug is remaining a bug until it's not fixed :wink:
Bugs are by defiition unintended behavior, so intended behavior can never be a bug. It is a desig choice. You could of course argue that it is a design flaw. I agree that when auto-detection can be done reliably it would be better to have it. But not everything that can be improved on is automatically a design flaw.
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Elements of the ULTIMATE Chess GUI?

Post by gbtami »

hgm wrote:
gbtami wrote:This explains why this bug is there, but the bug is remaining a bug until it's not fixed :wink:
Bugs are by defiition unintended behavior, so intended behavior can never be a bug. It is a desig choice. You could of course argue that it is a design flaw. I agree that when auto-detection can be done reliably it would be better to have it. But not everything that can be improved on is automatically a design flaw.
You can argue this way, but I can imagine users who added non playing engines to Xboard used strong words instead :)
Fulvio
Posts: 396
Joined: Fri Aug 12, 2016 8:43 pm

Re: Elements of the ULTIMATE Chess GUI?

Post by Fulvio »

hgm wrote: Not wanting to learn all that should not really conflict with the presence of an extra facility for people that do want to learn.
Good (well, you wrote a lot of posts repeating the same things without even bothering to try to understand).
Now that you are almost there, one last effort: try to focus on the meaning of *extra*.
User avatar
hgm
Posts: 28326
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elements of the ULTIMATE Chess GUI?

Post by hgm »

'Extra here means nothing else than "what they don't happen to need, for their limited interests". If that is not what you understood from it, I would be happy to use any other word for it.
gbtami wrote:You can argue this way, but I can imagine users who added non playing engines to Xboard used strong words instead :)
Imagining is not the same thing as happening. Fact is that no one ever complained about this before to me in whatever words. And it seems that the reverred Shredder GUI, praised here as the summit of user-friendliness, also forces the user to make a choice between UCI and WB, rather then auto-detecting it. So what exactly happens there if you select WB for a UCI engine? Does it give you a quick error message?

Don't get me wrong, I think reliable auto-detection of protocol is a great feature, and as long as there is a way to overrule it in the rare case it fails it would certainly be a good design choice. I still think every user should automatically be exposed to the control to accept or overrule it, however.
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Elements of the ULTIMATE Chess GUI?

Post by gbtami »

"Imagining is not the same thing as happening."

That happened with me the day before when I tried to add stockfish to xboard 4.9.1

"Fact is that no one ever complained about this before to me in whatever words."

OK. Here I am. I'm complaining.

"And it seems that the reverred Shredder GUI, praised here as the summit of user-friendliness, also forces the user to make a choice between UCI and WB, rather then auto-detecting it. So what exactly happens there if you select WB for a UCI engine? Does it give you a quick error message?"

I'v not praised Shredder here, and if it behaves the same as Xboard and cutechess, I think both should do better.

"Don't get me wrong, I think reliable auto-detection of protocol is a great feature, and as long as there is a way to overrule it in the rare case it fails it would certainly be a good design choice. I still think every user should automatically be exposed to the control to accept or overrule it, however."

Agreed.