Polyglot1.4.30b

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: Polyglot1.4.30b

Postby Michel » 05 Aug 2009, 21:00

Ok great there is an assertion failure!

This means I can probably see what is wrong.

Michel
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby Michel » 05 Aug 2009, 22:43

Well I think the assertion failure (while a bug) was benign and not the cause of the troubles.

The winboard.debug file shows this

recognized 'normal' (-1) as variant normal
WinBoard 4.4.0.beta1 + polyglot.exe
....
12740 <second: feature option="Tablebase Depth -spin 4 0 7"
12740 >second: accepted option
12740 <second: feature option="NalimovCache -spin 16 1 256"
12740 >second: accepted option
12740 <second: feature option="Hiarcs Draw Value -spin 0 -100 100"
12740 >second: accepted option
GameEnds(39, Draw, 6)
12740 >first : quit
12740 >second: quit


It seems very suspicious to me that Winboard declares the game Draw just after the line "feature option="Hiarcs Draw Value -spin 0 -100 100""
The Polyglot log shows that many more options were sent to Winboard after that but they are lost.

This would explain why Fonzy's PG does not suffer from it as I think he has not yet implemented the feature/option protocol.

The bad news is that I cannot reproduce this. I hacked PG to send the line feature option="Hiarcs Draw Value -spin 0 -100 100" but xboard 4.4b1 does not
have a problem with it.

I would like to hear from H.G. Muller what he thinks about this.
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby Charles Browne » 06 Aug 2009, 03:06

OK, Up until now Bright was being loaded first in the New Tournament window of PSWBTM. Which means, the way it was being played, Bright was always being loaded as the first chess program in Winboard and Hiarcs Paderborn as the second chess program. When Hiarcs is loaded as the second chess program is when - {draw} 1/2-1/2 - is being displayed in Winboard.

Now I just loaded Hiarcs first in the New Tournament window of PSWBTM, which means it would be the first chess program loaded when the first game in the tournament is started and Bright would be the second chess program, and the game started normally. No - {draw} 1/2-1/2 - was displayed at startup. So the problem only seems to occur when Hiarcs Paderborn is the second chess program.

The flash of - {draw} 1/2-1/2 - on the screen that I mentioned happening with other UCI engines in Winboard only seems to happen after I've had the problem with Bright and Hiarcs. So this flash looks to be some kind of intermittent residual effect.


Michel wrote:The bad news is that I cannot reproduce this.


All of this may just be some kind of weird interaction with my computer. An isolated instance.

I have not tried the other Hiarcs 12 versions yet to see if the same things happen with them. When I get time I will.
Charles Browne
 
Posts: 209
Joined: 26 May 2008, 00:30

Re: Polyglot1.4.30b

Postby Charles Browne » 06 Aug 2009, 03:59

This is something else I notice.


In Winboard itself or through PSWBTM. When Bright is the second chess program playing against Hiarcs Paderborn, in the title bar of Winboard the name of Bright isn't displayed.

Image



When played against another UCI engine and Bright is the second chess program the name of Bright is displayed. Here Ufim is set up as an UCI engine. I didn't try a Winboard engine as first chess program against Bright to see if it was the same but it probably would be.

Image




This is what is displayed in Winboard when Bright is the first chess program versus Hiarcs Paderborn using PSWBTM.

Image



This is what is displayed in Winboard when Bright is the first chess program versus Hiarcs Paderborn, and the game is being played through Winboard's Two Machines mode.


Image
Charles Browne
 
Posts: 209
Joined: 26 May 2008, 00:30

Re: Polyglot1.4.30b

Postby Charles Browne » 06 Aug 2009, 06:18

I tried Bright against Hiarcs 10 and achieved the same results as is happening with Hiarcs 12 Paderborn.


Michel wrote:...It seems very suspicious to me that Winboard declares the game Draw just after the line "feature option="Hiarcs Draw Value -spin 0 -100 100""...


I tried a two machine match with Bright as the first chess program and Hiarcs 10 as the second chess program in Winboard and had the -debug option enabled and this is an interesting section of the Hiarcs 10 section of the Winboard debug file. BTW, this is with Winboard_X. I'm sure it will be the same with Winboard 4.4.0 but X is the one I happen to click on to use when I was testing it.


I did see a flash of the - {draw} 1/2-1/2 - on the screen before the regualar moves started to be displayed.

Code: Select all
18400 <second: feature option="NalimovCache -spin 16 1 256"
18400 >second: rejected option
18400 <second: feature option="Hiarcs Draw Value -spin 0 -100 100"
18400 >second: rejected option
GameEnds(33, Draw, 1)
18400 <second: feature option="UCI_Elo -spin 1925 1250 2704"
18400 >second: rejected option
18400 <second: feature option="UCI_LimitStrength -check 0"
18400 >second: rejected option
18400 <second: feature option="GUI Time Lag -check 0"
18400 >second: rejected option
18400 <second: feature option="AutoSave PGN -check 0"
18400 >second: rejected option
18400 <second: feature option="Playing Style -combo *Normal /// Aggressive /// Solid"
18400 >second: rejected option
18400 <second: feature option="Selectivity -spin 7 0 7"
18400 >second: rejected option
18400 <second: feature option="Forward Pruning -spin 10 0 15"
18400 >second: rejected option
18400 <second: feature option="Threat Depth -spin 3 0 7"
18400 >second: rejected option
18400 <second: feature option="Swindle -check 0"
18400 >second: rejected option
18400 <second: feature option="Smart Search -check 0"
18400 >second: rejected option
18400 <second: feature option="Futility -check 0"
18400 >second: rejected option
18400 <second: feature option="Steady Search -check 0"
18400 >second: rejected option
18400 <second: feature option="Combinations -check 0"
18400 >second: rejected option
18400 <second: feature option="Hyper-Modern Play -check 0"
18400 >second: rejected option
18400 <second: feature option="MultiPV -spin 1 1 127"
18400 >second: rejected option
18400 <second: feature option="Licensed To -string Charles Browne"
18400 >second: rejected option
18400 <second: feature option="UCI_EngineAbout -string HIARCS 10 Copyright (c) 1992-2006 Applied Computer Concepts Ltd. All rights reserved. www.hiarcs.com"
18400 >second: rejected option
18400 <second: feature option="Polyglot Log -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot LogFile -string Hiarcs10UCI.log"
18400 >second: rejected option
18400 <second: feature option="Polyglot UseNice -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot NiceValue -spin 5 0 20"
18400 >second: rejected option
18400 <second: feature option="Polyglot Chess960 -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot Resign -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot ResignMoves -spin 3 0 10000"
18400 >second: rejected option
18400 <second: feature option="Polyglot ResignScore -spin 600 0 10000"
18400 >second: rejected option
18400 <second: feature option="Polyglot MateScore -spin 10000 0 1000000"
18400 >second: rejected option
18400 <second: feature option="Polyglot Book -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot BookFile -string C:\PROGRAM FILES\CHESS\POLYGLOT\POLYGLOT GUI\Book.bin"
18400 >second: rejected option
18400 <second: feature option="Polyglot BookRandom -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot BookLearn -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot KibitzMove -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot KibitzPV -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot KibitzCommand -string tellall"
18400 >second: rejected option
18400 <second: feature option="Polyglot KibitzDelay -spin 5 0 10000"
18400 >second: rejected option
18400 <second: feature option="Polyglot KibitzInterval -spin 0 0 10000"
18400 >second: rejected option
18400 <second: feature option="Polyglot ShowPonder -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot ScoreWhite -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot UCIVersion -spin 2 1 2"
18400 >second: rejected option
18400 <second: feature option="Polyglot CanPonder -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot SyncStop -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot RepeatPV -check 0"
18400 >second: rejected option
18400 <second: feature option="Polyglot PromoteWorkAround -check 0"
18400 >second: rejected option
18400 <second: feature done=1
18400 >second: accepted done
18450 >second: new
random



This is the Hiarcs 10 Winboard debug file section when Hiarcs is the first chess program and Bright is the second chess program.

Code: Select all
2300 <first : feature option="Tablebase Depth -spin 2 0 7"
2300 >first : rejected option
2300 <first : feature option="NalimovCache -spin 16 1 256"
2300 >first : rejected option
2300 <first : feature option="Hiarcs Draw Value -spin 0 -100 100"
2300 >first : rejected option
2300 <first : feature option="UCI_Elo -spin 1925 1250 2706"
2300 >first : rejected option
2300 <first : feature option="UCI_LimitStrength -check 0"
2300 >first : rejected option
2300 <first : feature option="GUI Time Lag -check 0"
Charles Browne
 
Posts: 209
Joined: 26 May 2008, 00:30

Re: Polyglot1.4.30b

Postby Michel » 06 Aug 2009, 06:43

Thanks for all the info.

So this really seems like a Winboard/Hiarcs interraction problem triggered in some weird way by PSWBTM when playing against bright (how is this even possible?).

Winboard under PSWBTM clearly reacts badly to the line

Code: Select all
feature option="Hiarcs Draw Value -spin 0 -100 100"


sent by HIARCS when it is the second chess program.

To make progress I guess we would have know the exact command line winboard is started with and the options it is using (there may be automatic options taken from an ini file). Winboard does not seem to list those in its debug file.

I'll wait for comments by H.G. Muller.
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby Charles Browne » 06 Aug 2009, 07:36

Michel wrote:So this really seems like a Winboard/Hiarcs interraction problem triggered in some weird way by PSWBTM when playing against bright (how is this even possible?).


I think Bright is the innocent bystander here, as I do not have many engines installed Bright was the one that I happened to notice the problem with, and consequently the engine I concentrated on using as the guinea pig with Hiarcs while trying to diagnose the problem.


Michel wrote:I'll wait for comments by H.G. Muller.


Agreed. There isn't anything else I can post that will be of use anyway. You guys are the knowledgeable ones on this subject.
Charles Browne
 
Posts: 209
Joined: 26 May 2008, 00:30

Re: Polyglot1.4.30b

Postby Volker Pittlik » 06 Aug 2009, 08:15

Michel wrote:Thanks for all the info.

So this really seems like a Winboard/Hiarcs interraction problem triggered in some weird way by PSWBTM when playing against bright (how is this even possible?)...


I'm not sure about that. I get a strange draw here whenever I use Rybka (via wine). _All_ games end 1/2-1/2 at move 1. This only happens when I use Polyglot 1.4.31b. When I use the Fonzy's latest version that does not happen. I assume a "draw" send from Rybka as part of an option may be wrong interpretated. Here is a debug:

Code: Select all
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
resolved -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-* at pixel size 34
  to -adobe-helvetica-bold-r-normal--34-240-100-100-p-182-iso8859-1
resolved -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-* at pixel size 12
  to -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1
resolved -*-helvetica-medium-r-normal--*-*-*-*-*-*-*-* at pixel size 14
  to -adobe-helvetica-medium-r-normal--14-100-100-100-p-76-iso8859-1
xboard: messageWidget geometry error 1 602 21 602 21
xboard 4.3.15 + polyglot
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
TC string = '+2:0+12'
mps=0 tc=120000 inc=12000
TC string = '+2:0+12'
mps=0 tc=120000 inc=12000
StartChildProcess (dir="/home/volker/schach/polyglot") ./polyglot stockfish.ini
155 >first : xboard
protover 2
shuffleOpenings = 0
157 <first : PolyGlot 1.4.31b by Fabien Letouzey.
296 <first : feature done=0
296 >first : accepted done
296 <first : feature analyze=1
296 >first : accepted analyze
296 <first : feature colors=0
296 >first : accepted colors
296 <first : feature draw=1
296 >first : accepted draw
296 <first : feature ics=1
296 >first : accepted ics
296 <first : feature myname="Stockfish 1.4"
296 >first : accepted myname
297 <first : feature name=1
297 >first : accepted name
297 <first : feature pause=0
297 >first : accepted pause
297 <first : feature ping=1
297 >first : accepted ping
297 <first : feature playother=1
297 >first : accepted playother
297 <first : feature reuse=1
297 >first : accepted reuse
297 <first : feature san=0
297 >first : accepted san
297 <first : feature setboard=1
297 >first : accepted setboard
297 <first : feature sigint=0
297 >first : accepted sigint
297 <first : feature sigterm=0
297 >first : accepted sigterm
297 <first : feature time=1
297 >first : accepted time
297 <first : feature usermove=1
297 >first : accepted usermove
297 <first : feature memory=1
297 >first : accepted memory
297 <first : feature smp=1
297 >first : accepted smp
297 <first : feature egt=""
297 >first : accepted egt
297 <first : feature variants="normal,fischerandom"
297 >first : accepted variants
297 <first : feature option="Use Search Log -check 0"
297 >first : rejected option
297 <first : feature option="Search Log Filename -string SearchLog.txt"
297 >first : rejected option
297 <first : feature option="Book File -string book.bin"
297 >first : rejected option
297 <first : feature option="Mobility (Middle Game) -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Mobility (Endgame) -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Pawn Structure (Middle Game) -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Pawn Structure (Endgame) -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Passed Pawns (Middle Game) -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Passed Pawns (Endgame) -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Space -spin 100 0 200"
297 >first : rejected option
297 <first : feature option="Aggressiveness -spin 100 0 200"
297 >first : rejected option
298 <first : feature option="Cowardice -spin 100 0 200"
298 >first : rejected option
298 <first : feature option="King Safety Curve -combo *Quadratic /// Linear"
298 >first : rejected option
298 <first : feature option="King Safety Coefficient -spin 40 1 100"
298 >first : rejected option
298 <first : feature option="King Safety X Intercept -spin 0 0 20"
298 >first : rejected option
298 <first : feature option="King Safety Max Slope -spin 30 10 100"
298 >first : rejected option
298 <first : feature option="King Safety Max Value -spin 500 100 1000"
298 >first : rejected option
298 <first : feature option="Queen Contact Check Bonus -spin 3 0 8"
298 >first : rejected option
298 <first : feature option="Queen Check Bonus -spin 2 0 4"
298 >first : rejected option
298 <first : feature option="Rook Check Bonus -spin 1 0 4"
298 >first : rejected option
298 <first : feature option="Bishop Check Bonus -spin 1 0 4"
298 >first : rejected option
298 <first : feature option="Knight Check Bonus -spin 1 0 4"
298 >first : rejected option
298 <first : feature option="Discovered Check Bonus -spin 3 0 8"
298 >first : rejected option
298 <first : feature option="Mate Threat Bonus -spin 3 0 8"
298 >first : rejected option
298 <first : feature option="Check Extension (PV nodes) -spin 2 0 2"
298 >first : rejected option
298 <first : feature option="Check Extension (non-PV nodes) -spin 1 0 2"
299 >first : rejected option
299 <first : feature option="Single Reply Extension (PV nodes) -spin 2 0 2"
299 >first : rejected option
299 <first : feature option="Single Reply Extension (non-PV nodes) -spin 2 0 2"
299 >first : rejected option
299 <first : feature option="Mate Threat Extension (PV nodes) -spin 0 0 2"
299 >first : rejected option
299 <first : feature option="Mate Threat Extension (non-PV nodes) -spin 0 0 2"
299 >first : rejected option
299 <first : feature option="Pawn Push to 7th Extension (PV nodes) -spin 1 0 2"
299 >first : rejected option
299 <first : feature option="Pawn Push to 7th Extension (non-PV nodes) -spin 1 0 2"
299 >first : rejected option
299 <first : feature option="Passed Pawn Extension (PV nodes) -spin 1 0 2"
299 >first : rejected option
299 <first : feature option="Passed Pawn Extension (non-PV nodes) -spin 0 0 2"
299 >first : rejected option
299 <first : feature option="Pawn Endgame Extension (PV nodes) -spin 2 0 2"
299 >first : rejected option
299 <first : feature option="Pawn Endgame Extension (non-PV nodes) -spin 2 0 2"
299 >first : rejected option
299 <first : feature option="Full Depth Moves (PV nodes) -spin 14 1 100"
299 >first : rejected option
299 <first : feature option="Full Depth Moves (non-PV nodes) -spin 3 1 100"
299 >first : rejected option
299 <first : feature option="Threat Depth -spin 5 0 100"
299 >first : rejected option
299 <first : feature option="LSN filtering -check 0"
299 >first : rejected option
299 <first : feature option="LSN Time Margin (sec) -spin 4 1 10"
299 >first : rejected option
299 <first : feature option="LSN Value Margin -spin 200 100 600"
299 >first : rejected option
299 <first : feature option="Randomness -spin 0 0 10"
299 >first : rejected option
299 <first : feature option="Minimum Split Depth -spin 4 4 7"
299 >first : rejected option
299 <first : feature option="Maximum Number of Threads per Split Point -spin 5 4 8"
299 >first : rejected option
299 <first : feature option="Clear Hash -button"
299 >first : rejected option
299 <first : feature option="OwnBook -check 0"
299 >first : rejected option
299 <first : feature option="MultiPV -spin 1 1 500"
299 >first : rejected option
299 <first : feature option="UCI_ShowCurrLine -check 0"
299 >first : rejected option
299 <first : feature option="UCI_Chess960 -check 0"
299 >first : rejected option
299 <first : feature option="Polyglot Log -check 0"
299 >first : rejected option
299 <first : feature option="Polyglot LogFile -string stockfish.log"
299 >first : rejected option
299 <first : feature option="Polyglot UseNice -check 0"
299 >first : rejected option
299 <first : feature option="Polyglot NiceValue -spin 5 0 20"
299 >first : rejected option
299 <first : feature option="Polyglot Chess960 -check 0"
299 >first : rejected option
299 <first : feature option="Polyglot Resign -check 0"
299 >first : rejected option
299 <first : feature option="Polyglot ResignMoves -spin 3 0 10000"
299 >first : rejected option
299 <first : feature option="Polyglot ResignScore -spin 800 0 10000"
299 >first : rejected option
299 <first : feature option="Polyglot MateScore -spin 10000 0 1000000"
299 >first : rejected option
299 <first : feature option="Polyglot Book -check 0"
299 >first : rejected option
300 <first : feature option="Polyglot BookFile -string book.bin"
300 >first : rejected option
300 <first : feature option="Polyglot BookRandom -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot BookLearn -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot KibitzMove -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot KibitzPV -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot KibitzCommand -string tellall"
300 >first : rejected option
300 <first : feature option="Polyglot KibitzDelay -spin 5 0 10000"
300 >first : rejected option
300 <first : feature option="Polyglot KibitzInterval -spin 0 0 10000"
300 >first : rejected option
300 <first : feature option="Polyglot ShowPonder -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot ScoreWhite -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot UCIVersion -spin 2 1 2"
300 >first : rejected option
300 <first : feature option="Polyglot CanPonder -check 0"
300 >first : rejected option
300 <first : feature option="Polyglot SyncStop -check 0"
308 >first : rejected option
308 <first : feature option="Polyglot RepeatPV -check 0"
308 >first : rejected option
308 <first : feature option="Polyglot PromoteWorkAround -check 0"
308 >first : rejected option
308 <first : feature done=1
308 >first : accepted done
309 >first : memory 68
309 >first : cores 1
309 >first : new
random
309 >first : ics -
309 >first : level 0 2 12
309 >first : post
309 >first : hard
309 >first : easy
309 >first : ping 1
309 >first : force
StartChildProcess (dir="/home/volker/schach/polyglot") ./polyglot rybka.ini
320 >second: xboard
protover 2
320 <first : pong 1
321 <second: PolyGlot 1.4.31b by Fabien Letouzey.
565 <second: feature done=0
565 >second: accepted done
565 <second: feature analyze=1
565 >second: accepted analyze
565 <second: feature colors=0
565 >second: accepted colors
565 <second: feature draw=1
565 >second: accepted draw
565 <second: feature ics=1
565 >second: accepted ics
565 <second: feature myname="Rybka 2.2n2 32-bit"
565 >second: accepted myname
565 <second: feature name=1
565 >second: accepted name
565 <second: feature pause=0
565 >second: accepted pause
565 <second: feature ping=1
565 >second: accepted ping
565 <second: feature playother=1
565 >second: accepted playother
565 <second: feature reuse=1
565 >second: accepted reuse
565 <second: feature san=0
565 >second: accepted san
565 <second: feature setboard=1
565 >second: accepted setboard
565 <second: feature sigint=0
565 >second: accepted sigint
565 <second: feature sigterm=0
565 >second: accepted sigterm
565 <second: feature time=1
565 >second: accepted time
565 <second: feature usermove=1
565 >second: accepted usermove
565 <second: feature memory=1
565 >second: accepted memory
565 <second: feature smp=1
565 >second: accepted smp
565 <second: feature egt="nalimov"
565 >second: accepted egt
565 <second: feature variants="normal"
565 >second: accepted variants
565 <second: feature option="Display Draw Scores -check 0"
565 >second: rejected option
GameEnds(39, Draw, 6)
565 >first : quit
566 >second: quit
GameEnds(39, Draw, 2)
 


BTW: There is no difference if I set -testClaims in xboard to true or false.

vp
User avatar
Volker Pittlik
 
Posts: 1031
Joined: 24 Sep 2004, 10:14
Location: Murten / Morat, Switzerland

Re: Polyglot1.4.30b

Postby Michel » 06 Aug 2009, 08:52

When I use the Fonzy's latest version that does not happen.


This is because Fonzy's version does not implement the option feature.

I'm not sure about that. I get a strange draw here whenever I use Rybka (via wine). _All_ games end 1/2-1/2 at move 1.


I tested this with xboard 4.4b and lo and behold xboard prints a GameEnds(39, Draw, 6) message in the debug file (see below). However
in contrast to your setup it does not seem to have any effect on further game play. I don't understand this yes. This being said I am now quite
convinced it is an xboard problem and not a polyglot problem.

/usr/local/bin/xboard -debug -fcp "./polyglot.exe -ec ./rybka.exe" -scp "./polyglot.exe -ec ./rybka.exe" -tc 0:10 -inc 0 -mg 10


1417 >second: accepted smp
1417 <second: feature egt="nalimov"
1417 >second: accepted egt
1417 <second: feature variants="normal"
1417 >second: accepted variants
1417 <second: feature option="Display Draw Scores -check 0"
1417 >second: accepted option
GameEnds(39, Draw, 6) <--------------------------------------------------------------------
1428 <second: feature option="Engine Priority -combo Normal /// *NormalAndLow /// Low"
1428 >second: accepted option
1428 <second: feature option="Display PV Tips -check 0"
1428 >second: accepted option
1428 <second: feature option="CPU Usage -spin 100 1 100"
1428 >second: accepted option
1428 <second: feature option="Win Percentage to Hash Usage -check 0"
1428 >second: accepted option
1428 <second: feature option="Display Current Move -check 0"
1428 >second: accepted option
1428 <second: feature option="Compensate Lost Time -check 0"
1428 >second: accepted option
1428 <second: feature option="NalimovCache -spin 1 1 256"
1428 >second: accepted option
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby H.G.Muller » 06 Aug 2009, 10:01

Hmm... On second thoughts: WB recognizes all kind of commands of non-compliant engines. A line with "Draw" somewhere in it might be recognized as a draw offer. I remember now that Olivier had a problem once with an engine that printed the word "draw" as part of its PV thining output. So if both engines have an option that contains the word "Draw"...

OK, this certainly must be it. I looked at the posted debugs, and it always happens immediately after a line that contains the word "Draw". I must suppress WB recognizing this as a Draw offer, even when it means it would break correct operation of some non-compliant engines that use "... Draw" for offering draws.

It seems this code from WB 4.2.7 is the culprit:

Code: Select all
    } else if (strstr(message, "Draw") != NULL ||
          strstr(message, "game is a draw") != NULL) {
        GameEnds(GameIsDrawn, "Draw", GE_ENGINE1 + (cps != &first));
   return;
    } else if (strstr(message, "offer") != NULL &&



I posted a version now that replaces these tests by stricter ones:
"Draw" is now only recognized as a draw claim if it is the first word of the line.
Lines that contain both the words "offer" and "draw" are now only recognized as a draw offer if they do not start with "feature".

I have good hopes that this will not break any existing (non-compliant) engine.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Polyglot1.4.30b

Postby Michel » 06 Aug 2009, 10:29

OK, this certainly must be it. I looked at the posted debugs, and it always happens immediately after a line that contains the word "Draw". I must suppress WB recognizing this as a Draw offer, even when it means it would break correct operation of some non-compliant engines that use "... Draw" for offering draws.


Yes, but it is very strange that for some people this issue has no effect. I mean GameEnds is printed "correctly" in the debug file and perhaps flashed on the info window but that's it. The game continues.

For other people the game ends in a draw immediately.

Could it be a race condition? When WB starts up the second chess program is seems to insert some delay to process the feature commands. Perhaps when the Draw line occurs during that delay it is not a problem. But it becomes a problem afterwards.

If it is really a race condition then it should be recognized as such since it may also lead to other problems.

What if the engine sends something like

Code: Select all
option name somename type string  default 1/2-1/2
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby H.G.Muller » 06 Aug 2009, 10:47

It could very well be related to timing. Of course the state of WB when it starts a game is already equal to that just after GameEnds, so the GameEnds doesn't spoil much. WinBoard does many such GameEnds calls 'just to make sure', and probably sending result commands to the engines is suppressed if the game has no moves yet. In match mode, when this happens while one of the engines is late in sending the feature done command, I can imagine that the match starts anyway if that feature comes in, even when the other engine (unintentionally) aborted the game with a draw claim.

Btw, the new WB version is at http://home.hccnet.nl/h.g.muller/winboard.zip
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Polyglot1.4.30b

Postby H.G.Muller » 06 Aug 2009, 11:14

OK, I put a new version there now (4.4.1b) that should solve the problem in a more fundamental way.

I noticed that there was a bug in WinBoard: after recognizing a feature line, and parsing the featre, the return; statement was missing in HandleMachineMove(). With as a consequence that even after recognizing a feature, it would go on to match the line with all other patterns for recognizing other commands (including the non-compliant ones).

I moved the recognition of feature lines now to the beginning of all the tests (immediately after testing for a move), so that we cannot run into other surprises when engines define options with definitions that happen to contain text snippets that are recognized as undocumented non-compliant commands commands.

Btw, One completely different issue: I realize now that it would be benificial if the option type -string could be diversified into one for file names and one for other texts. In the case of a file name you would want a "browse" button to appear next to the text edit. So I think I will expand the possible option types for WinBoard with a -file option. I am not sure if this has much effect on Polyglot: in general Polyglot cannot know if an UCI string option is a file name or not. (Of course it could know it for its own options, e.g. the log file.)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Polyglot1.4.30b

Postby Michel » 06 Aug 2009, 11:20

The PG files sent by Charles Browne indicate that WB started a new game *before* starting the second chess program.
So that explains why the feature command was viewed as a draw claim.

I think the real problem is that WB is a bit too careless in the parsing of feature commands.

It is strange though that WB did not send any result commands to the engines. Just quit and EOF.
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby Michel » 06 Aug 2009, 11:27

Polyglot cannot know if an UCI string option is a file name or not.


Arena has some hack for that. It represents string options which contain "file" or "path" as files.

Do you think this is a good feature? It is of course slightly dangerous.

I am reworking the option handling in PG to make it generic but I am currently quite busy so it will take a couple
of weeks before it is done.
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby H.G.Muller » 06 Aug 2009, 11:42

It might be best to conform to what Arena does, so that UCI engine authors know what they can expect. An alternative (additional) kludge would be to look at the default settin, to see if it contains (back)slashes or dot+extension.

There is not very much harm done if an option would be recognized unjustly as a file name: it is just that a browse button would appear in the dialog. If it would not be a file, people would simply not use that button.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Polyglot1.4.30b

Postby Teemu Pudas » 06 Aug 2009, 13:39

H.G.Muller wrote:It might be best to conform to what Arena does, so that UCI engine authors know what they can expect.


Or perhaps just wait for the next version of the UCI protocol. Rybka 3:

...
option name UCI_Query type button
...
setoption name UCI_Query
info string uci3 supported
info string cbr3 supported
info string car3 supported
info string queryok
uci3
option name NalimovPath type path default <empty>
option name NalimovCache type slider min 1 max 256 default 1
option name Saved Hash File type file default *.rsh
option name Persistent Hash File type file default *.rph
option name Persistent Hash Merge File type file default *.rph
uci3ok
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

Re: Polyglot1.4.30b

Postby H.G.Muller » 06 Aug 2009, 18:54

Even if this protocol gets official status, there still will be engines or engine versions around that only support the old protocol. So there always will be added value in an adapter that does handle the old protocol better.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Polyglot1.4.30b

Postby Michel » 06 Aug 2009, 22:47

PG 1.4.33b is available at the usual place

http://alpha.uhasselt.be/Research/Algeb ... t-release/

There is a new option "WbWorkArounds" (default false) which blocks options
with "Draw" in their name from being sent to the GUI. This is purely cosmetical
since the corresponding option command still works.

The plural in the name is because other such problems might arise in the future
(it will be a while before everyone is running the latest git version of WB).

I also fixed the assertion failure in bright. Now there is another assertion failure
but I think that is bright's fault (it sends spurious bestmove's but PG correctly ignores
them).
Michel
 
Posts: 513
Joined: 01 Oct 2008, 12:15

Re: Polyglot1.4.30b

Postby H.G.Muller » 07 Aug 2009, 14:18

Note that I prepared a WinBoard alpha that now also has Option -> Engine #N Settings... menu dialogs.

http://www.talkchess.com/forum/viewtopi ... 107#285107

We still might to have to rethink this WinBoard work-arounds option. The problem is that there exist legacy WinBoards (Winboard_x, WinBoard 4.3) that invoke polyglot automatically, by preparing polyglot_1st.ini and polyglot_2nd.ini files for engines that are loaded with the -fUCI or -sUCI option. These polyglot.ini files of course do not contain a setting for the WbWorkArounds option.

So it seems that to be useful, the default setting of the option would have to be 'on', or this Polyglot would still break operation of the -fUCI and -sUCI option for engines that use "Draw"-containing options. With this default setting, however, operation of 4.4.0 with pre-existing polyglot.ini files (not containing a setting to switch the work-arounds off) would still be broken for such engines, in the sense that they would not see thei "Draw" options appear in the menu, and the user could not set them from the menu. It doesn't help that the work-arounds themselves appear in the menu; even if the user would switch it off, winBoard would still remain oblivious of the existense of the suppressed options.

Would it be possible to have Polyglot automatically switch off the work-arounds if it discovers it is dealing with a GUI that accepts the feature option=".."? Then the problem could only occur in the first option sent; After that Polyglot would know if WinBoard replies with accepted option or rejected option.

Note that this recognition of "Draw" by WinBoard is case sensitive; a less disruptive work-around would be to decaptialize the word "Draw" in stead of blocking the option completely.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

PreviousNext

Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 24 guests