Buggy engines and building a bug base

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Re: Buggy engines and building a bug base

Postby Matthias Gemuh » 11 Apr 2009, 10:10

Miguel A. Ballicora wrote:
I guess I will drop SAN support. The console mode will still accept it, but I am starting to see that there is no point in using it with the winboard/xboard protocol, particularly when there are GUIs that do not follow it.

Miguel



Good decision, Miguel :D
BTW, what does "Gaviota" mean ?

Matthias.
http://www.chessgui.com
http://w2410tmq9.homepage.t-online.de
BigLion, Taktix, ArcBishop, FindDraw, ChessGUI
User avatar
Matthias Gemuh
 
Posts: 189
Joined: 10 Jun 2006, 15:08

Re: Buggy engines and building a bug base

Postby Matthias Gemuh » 11 Apr 2009, 11:01

Ilari Pihlajisto wrote:The all-knowing programming god Donald Knuth said that "premature optimization is the root of all evil". Have you actually profiled ChessGUI with and without the check and mate notation? I'm curious because I've done a lot of profiling with Cute Chess (a work-in-progress GUI), and full SAN support is not even close to being a bottleneck. Updating the graphics on the visual chessboard takes way more cpu cycles, and even that's not significant if it's done right.


My compiler (Borland C++ Builder 5) has no profiler.

Matthias.
http://www.chessgui.com
http://w2410tmq9.homepage.t-online.de
BigLion, Taktix, ArcBishop, FindDraw, ChessGUI
User avatar
Matthias Gemuh
 
Posts: 189
Joined: 10 Jun 2006, 15:08

Re: Buggy engines and building a bug base

Postby Matthias Gemuh » 11 Apr 2009, 11:27

Ilari Pihlajisto wrote:
Matthias Gemuh wrote:WinBoard/Arena/ChessGUI/WB2UCI do a lot of weird things to support as many "buggy" engines as possible.

Matthias.


In my opinion this is one of biggest problems with Winboard engines and GUIs. If an engine fails to obey the chess protocol, the GUI should simply reject the engine. This would keep the GUI codebase shorter, simpler and less buggy, and it would help engine authors as well, because it would be easier to detect bugs and non-standard behavior.


I agree. It is old WinBoard that started the mistake of supporting protocol-violating engines (at least 10% of all).
If your GUI is strict, people will attack you with:
"WB Engines A,B,C all run fine under WinBoard, but not under your GUI. You must be doing something wrong.".

Matthias.
http://www.chessgui.com
http://w2410tmq9.homepage.t-online.de
BigLion, Taktix, ArcBishop, FindDraw, ChessGUI
User avatar
Matthias Gemuh
 
Posts: 189
Joined: 10 Jun 2006, 15:08

Re: Buggy engines and building a bug base

Postby Ilari Pihlajisto » 11 Apr 2009, 11:50

Matthias Gemuh wrote:I agree. It is old WinBoard that started the mistake of supporting protocol-violating engines (at least 10% of all).
If your GUI is strict, people will attack you with:
"WB Engines A,B,C all run fine under WinBoard, but not under your GUI. You must be doing something wrong.".

Matthias.


For Cute Chess we've decided not to support anything that violates the protocol. Instead we tried to make our GUI detect problems as early and as accurately as possible. Currently the only engine that doesn't work (that I've tried) is Phalanx, which fails even at the most basic task of sending the moves in the right format. Another problem that I thought about, but decided not to fix, was that Crafty's resignation command wasn't accepted due to an unprintable character at the beginning of the command. These kinds of bugs should be fixed in the engine, not in the GUI.
User avatar
Ilari Pihlajisto
 
Posts: 78
Joined: 18 Jul 2005, 06:58

Re: Buggy engines and building a bug base

Postby Matthias Gemuh » 11 Apr 2009, 12:26

Ilari Pihlajisto wrote:For Cute Chess we've decided not to support anything that violates the protocol. Instead we tried to make our GUI detect problems as early and as accurately as possible. Currently the only engine that doesn't work (that I've tried) is Phalanx, which fails even at the most basic task of sending the moves in the right format. Another problem that I thought about, but decided not to fix, was that Crafty's resignation command wasn't accepted due to an unprintable character at the beginning of the command. These kinds of bugs should be fixed in the engine, not in the GUI.


A few common promotions to Queen are: "h7h8/Q", "h7h8", "h7h8,q" :D
A few castlings are: o-o-o, 0-0-0 (instead of O-O-O) :wink:
Even strong Scorpio sends moves as: "move Ng1-f3" !
... etc.

Your GUI may end up excluding a lot of engines.
I will wait and see if the mob shall crucify you. :wink:

Matthias.
http://www.chessgui.com
http://w2410tmq9.homepage.t-online.de
BigLion, Taktix, ArcBishop, FindDraw, ChessGUI
User avatar
Matthias Gemuh
 
Posts: 189
Joined: 10 Jun 2006, 15:08

Re: Buggy engines and building a bug base

Postby Ilari Pihlajisto » 11 Apr 2009, 13:08

Matthias Gemuh wrote:A few common promotions to Queen are: "h7h8/Q", "h7h8", "h7h8,q" :D
A few castlings are: o-o-o, 0-0-0 (instead of O-O-O) :wink:
Even strong Scorpio sends moves as: "move Ng1-f3" !
... etc.

Your GUI may end up excluding a lot of engines.
I will wait and see if the mob shall crucify you. :wink:

Matthias.


Then I'll crucify them back.
Fortunately Scorpio is open source, so I might just send a patch to Daniel. I think we should put more pressure on engine developers to obey the protocol.
User avatar
Ilari Pihlajisto
 
Posts: 78
Joined: 18 Jul 2005, 06:58

Re: Buggy engines and building a bug base

Postby Daniel Shawul » 11 Apr 2009, 15:04

I wanted a cooler mover notation than g1f3 but did not want to implement SAN. The sub-standard SAN worked for me
and I didn't know it is a violation of the protocol. Does sending "feature san = 0" in the beginning mean that you stick to
the standard notation for the output as well ? Anyway I will switch to the standard e2e4 notation from the next version onwards.
Thanks for cutechess-cli. Will it have ICC support? I want to run some games in the background without
my boss noticing :)

Daniel
User avatar
Daniel Shawul
 
Posts: 366
Joined: 28 Sep 2004, 09:33
Location: Ethiopia

Re: Buggy engines and building a bug base

Postby Gábor Szots » 11 Apr 2009, 15:38

Matthias Gemuh wrote:BTW, what does "Gaviota" mean ?


Sea gull.
Gábor Szőts

CCRL testing group
User avatar
Gábor Szots
 
Posts: 327
Joined: 26 Sep 2004, 21:26
Location: Szentendre, Hungary

Re: Buggy engines and building a bug base

Postby Ilari Pihlajisto » 11 Apr 2009, 18:01

Daniel Shawul wrote:I wanted a cooler mover notation than g1f3 but did not want to implement SAN. The sub-standard SAN worked for me
and I didn't know it is a violation of the protocol. Does sending "feature san = 0" in the beginning mean that you stick to
the standard notation for the output as well ?


The specs only say that with "san=0" Xboard will send moves to the engine in long algebraic notation. But it's still probably best to use the same format for input and output.

Anyway I will switch to the standard e2e4 notation from the next version onwards.


Thanks, that's good to hear.

Thanks for cutechess-cli. Will it have ICC support? I want to run some games in the background without
my boss noticing :)


When Cute Chess gets ICC support, then I guess cutechess-cli will get it too. But that's going to take a while. We still have the following tasks to deal with first:
- Implement a human player
- Add graphical widgets for engine output, move list, UCI configuration, etc.
- Add menus and dialogs for stuff that's already implemented in our chesslib, like opening books, time controls, variants, etc.
- Tournament support (Gauntlet, Round Robin, etc.)
- Fix the QProcess problems on Windows
- Better error handling, unit tests, documentation, etc.
User avatar
Ilari Pihlajisto
 
Posts: 78
Joined: 18 Jul 2005, 06:58

Re: Buggy engines and building a bug base

Postby Dave Gomboc » 11 Apr 2009, 18:06

Matthias Gemuh wrote:
Ilari Pihlajisto wrote:The all-knowing programming god Donald Knuth said that "premature optimization is the root of all evil". Have you actually profiled ChessGUI with and without the check and mate notation? I'm curious because I've done a lot of profiling with Cute Chess (a work-in-progress GUI), and full SAN support is not even close to being a bottleneck. Updating the graphics on the visual chessboard takes way more cpu cycles, and even that's not significant if it's done right.


My compiler (Borland C++ Builder 5) has no profiler.

Matthias.


So, you're basically admitting that the actual reason you don't generate proper SAN isn't actually due to a performance issue -- it's because you just don't feel like it.

Miguel: You should turn your SAN support back on. It will apparently work with CuteChess. :-)

Dave
Dave Gomboc
 
Posts: 5
Joined: 05 Apr 2009, 07:02

Re: Buggy engines and building a bug base

Postby Ilari Pihlajisto » 11 Apr 2009, 21:18

Dave Gomboc wrote:So, you're basically admitting that the actual reason you don't generate proper SAN isn't actually due to a performance issue -- it's because you just don't feel like it.

Miguel: You should turn your SAN support back on. It will apparently work with CuteChess. :-)

Dave


Just to satisfy my curiosity I measured Cute Chess' SAN generation performance: On my PC it takes an average of 0.0022585 milliseconds to create one SAN move. So to waste even one second of precious CPU time I have to generate almost half a million SAN moves. Doesn't seem like a problem. And this is with code that was optimized for readability, not for speed.
User avatar
Ilari Pihlajisto
 
Posts: 78
Joined: 18 Jul 2005, 06:58

Re: Buggy engines and building a bug base

Postby Miguel A. Ballicora » 13 Apr 2009, 21:04

Dave Gomboc wrote:
Matthias Gemuh wrote:
Ilari Pihlajisto wrote:The all-knowing programming god Donald Knuth said that "premature optimization is the root of all evil". Have you actually profiled ChessGUI with and without the check and mate notation? I'm curious because I've done a lot of profiling with Cute Chess (a work-in-progress GUI), and full SAN support is not even close to being a bottleneck. Updating the graphics on the visual chessboard takes way more cpu cycles, and even that's not significant if it's done right.


My compiler (Borland C++ Builder 5) has no profiler.

Matthias.


So, you're basically admitting that the actual reason you don't generate proper SAN isn't actually due to a performance issue -- it's because you just don't feel like it.

Miguel: You should turn your SAN support back on. It will apparently work with CuteChess. :-)

Dave


It is back on :-)
Seriously, I added a switch to turn it on or off in the ini file. I may probably make the default "off".

Miguel
PS: Dave, I answered your question about tuning in CCC. Did you see it?
User avatar
Miguel A. Ballicora
 
Posts: 160
Joined: 03 Aug 2005, 02:24
Location: Chicago, IL, USA

Previous

Return to Winboard and related Topics

Who is online

Users browsing this forum: Google [Bot] and 39 guests