UCI2WB 4.0

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: UCI2WB 4.0

Post by Sven »

hgm wrote: Sun Dec 09, 2018 10:38 pm
Sven wrote: Sun Dec 09, 2018 9:28 pm I think even a binary-only distribution of software whose source code is put under GPL needs to include the correct license information.
Why? What would be the legal consequence if it doesn't?

IMHO it would mean that whoever downloads it cannot distribute it, or distribute any modified version of it. Which is fine with me. The binary package is only meant for people who already use UCI2WB, and want to replace their previous, now obsolete version by a newer one.

I guess the package would only be interesting for people who already have the WinBoard-AA beta package, which includes UCI2WB for all UCI dialects, or for people that want to run Shogi or Xiangqi engines under other WinBoard versions. Other people should just download the WinBoard-AA package, which also includes it, in a transparent way so that they would never even have to know it exists. (It is automatically invoked through WinBoard's -fUCI / -sUCI option, or by ticking the UCI checkbox in the menu.)
I told you my understanding of the GPL. I cannot tell you much about legal consequences. I may be wrong but distributing binaries without any *included* information that this is software under GPL and where the source can be found appears wrong to me. I did not intend to discuss the details of the GPL since I think that everyone can read what the GPL requires.
Sven Schüle (engine author: Jumbo, KnockOut, Surprise)
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: UCI2WB 4.0

Post by Dann Corbit »

On the other hand, there is the spirit of the law and the letter of the law.
HGM has certainly fulfilled the spirit of the law.
I also guess that everyone who cares about the source knows where it is. It's quite a tiny audience.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: UCI2WB 4.0

Post by hgm »

As the only existing link to the file is in the forum post here, which also mentions where to find the source code, it is really hard to imagine how people that download it could not know that the source code is available, and where...

I am not in favor of bundling things that people might want with all kind of crap that almost certainly would not be looked at by anyone, and yet install on their disk when they unpack it. How many of you would ever open a file COPYING.txt that comes with a software package you installed?

As I am the only copyright owner, I can release under as many different licences as I want; I am not bound in any way by the conditions of any of these licences; they are for me to enforce or violate.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: UCI2WB 4.0

Post by Guenther »

hgm wrote: Sun Dec 09, 2018 10:47 am I released a new version (4.0) of UCI2WB (the default UCI adapter packaged with WinBoard in the WinBoard-AA beta distro). The previous version turned out to have some problems, which were just made worse by my earlier attempts to fix those; in particular it had become insensitive to 'quit' commands while the engine was thinking, which could lead to hanging engine processes after an opponent out-of-turn resign.

I now completely redesigned the master logic of UCI2WB: instead of having threads for all engine->GUI and all GUI->engine traffic, which would now and then block waiting for each other when there is a need to synchronize, it now has one of threads always listenining to the GUI, and instantly handling any incoming command, either processing it (if that can be done during search), or queueing it for execution by the 'engine thread'. The latter listens to the engine for as long as it is searching. (UCI engines always tell you when they are done searching!) But if the engine is idle or merely pondering it first processes all queued commands, before it starts listening to any ponder output. Only when the engine is idle and the queue empty it blocks waiting for a command to appear in the queue.

This way the GUI thread can examine all incoming commands immediately, and judge whether these should abort the search that is currently running, or be ignored until that search terminates for other reasons. If the search is to be aborted, it sends 'stop' to the engine, which will then focus the attention of the engine thread on the queued command.

I tested the new UCI2WB with Stockfish, and everything seems to work as intended. The source code can be found in my on-line git repository. I uploaded a Windows executable at http://hgm.nubati.net/UCI2WB.zip . The WinBoard-AA beta package now also contains this new UCI2WB version.
There is a bug with the new version, when pasting a pgn from clipboard at least.
I verified it by exchanging it again with the old version and here it does not happen.

I load an uci engine e.g. some SF version and then I paste a pgn game e.g. from the forums javascript (click on c8)
and I see in the debug that the uci program exits and WB crashes and doesn't respond anymore, I even have to close
it via the task manager.

Code: Select all

recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
Version: WinBoard 4.9.182601 + Stockfish_10-64
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir="") UCI2WB Stockfish_10-64 C:\Engines\UCI\Stockfish_10-64
nice engine proc to 10
970 >first : xboard
protover 2
1010 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
1020 >first : accepted setboard
1020 >first : accepted usermove
1020 >first : accepted debug
1020 >first : accepted ping
1020 >first : accepted name
1020 >first : accepted reuse
1020 >first : accepted exclude
1020 >first : accepted pause
1020 >first : accepted sigint
1020 >first : accepted sigterm
1020 >first : accepted done
1020 <first : feature option="UCI2WB debug output -check 0"
1020 >first : accepted option
1020 <first : feature option="ponder always -check 0"
1020 >first : accepted option
1020 <first : feature myname="Stockfish 10 64 (UCI2WB)"
1020 >first : accepted myname
1020 <first : feature option="Debug Log File -file "
1020 >first : accepted option
1020 <first : feature option="Contempt -spin 24 -100 100"
1020 >first : accepted option
1020 <first : feature option="Analysis Contempt -combo Off /// White /// Black /// Both"
1020 >first : accepted option
1020 <first : feature option="Clear Hash -button"
1020 >first : accepted option
1020 <first : feature option="MultiPV -spin 1 1 500"
1020 >first : accepted option
1020 <first : feature option="Skill Level -spin 20 0 20"
1020 >first : accepted option
1020 <first : feature option="Move Overhead -spin 30 0 5000"
1020 >first : accepted option
1020 <first : feature option="Minimum Thinking Time -spin 20 0 5000"
1020 >first : accepted option
1020 <first : feature option="Slow Mover -spin 84 10 1000"
1020 >first : accepted option
1020 <first : feature option="nodestime -spin 0 0 10000"
1020 >first : accepted option
1020 <first : feature option="SyzygyProbeDepth -spin 1 1 100"
1020 >first : accepted option
1020 <first : feature option="Syzygy50MoveRule -check 1"
1020 >first : accepted option
1020 <first : feature option="SyzygyProbeLimit -spin 7 0 7"
1020 >first : accepted option
1020 <first : feature oocastle=0
1020 >first : accepted oocastle
1020 <first : feature variants="normal,fischerandom"
1020 >first : accepted variants
1020 <first : feature egt="syzygy"
1020 >first : accepted egt
1020 <first : feature smp=1 memory=1 done=1
1020 >first : accepted smp
1020 >first : accepted memory
1020 >first : accepted done
1040 >first : memory 544
1040 >first : egtpath syzygy C:\Syzygy_5
1040 >first : cores 1
1040 >first : new
random
1040 >first : level 40 3 0
1040 >first : post
1040 >first : hard
1040 >first : easy
1040 >first : ping 1
Impossible move , type = 0
1200 <first : 0 0 0 0 Found 145 tablebases
1750 <first : pong 1
size-move
sizing
sizing
exit size-move, size = 64
square size = 64
PasteTextFromClipboard(): lock count 0
PasteTextFromClipboard(): lock count 0
PasteTextFromClipboard(): err 0 locked 0
(1-type) castling 4 6
(1-type) castling 4 6
Parsed game number 1, offset 0:
[Event "Computer Match"]
[Site "London, UK"]
[Date "2018.01.18"]
[Round "255"]
[White "Stockfish 8"]
[Black "AlphaZero"]
[Result "0-1"]
[PlyCount "194"]
[EventDate "2018.??.??"]
LoadGame(): on entry, gameMode 0
Parsed game start '[Event "Computer Match"]' (39)
Parsed PGNTag: [Event "Computer Match"]
Parsed PGNTag: [Site "London, UK"]
Parsed PGNTag: [Date "2018.01.18"]
Parsed PGNTag: [Round "255"]
Parsed PGNTag: [White "Stockfish 8"]
Parsed PGNTag: [Black "AlphaZero"]
Parsed PGNTag: [Result "0-1"]
Parsed PGNTag: [PlyCount "194"]
Parsed PGNTag: [EventDate "2018.??.??"]
recognized 'Computer Match' (-1) as variant normal
108530 >first : memory 544
108530 >first : egtpath syzygy C:\Syzygy_5
108530 >first : cores 1
108530 >first : new
random
108530 >first : level 40 3 0
108530 >first : post
108530 >first : hard
108530 >first : easy
108530 >first : ping 2
Impossible move e6e7, type = 0
108530 >first : force
Parsed e4 into e2e4 virgin=0,0
Parsed e5 into e7e5 virgin=0,0
Parsed Nf3 into g1f3 virgin=0,0
Parsed Nc6 into b8c6 virgin=40,0
Parsed Bc4 into f1c4 virgin=40,2
Parsed Bc5 into f8c5 virgin=60,2
Parsed d3 into d2d3 virgin=60,22
Parsed a6 into a7a6 virgin=60,22
Parsed Ng5 into f3g5 virgin=60,22
Parsed Nh6 into g8h6 virgin=60,22
(1-type) castling 4 6
Parsed O-O into e1g1 virgin=60,62
Parsed d6 into d7d6 virgin=70,62
Parsed a4 into a2a4 virgin=70,62
Parsed Bg4 into c8g4 virgin=70,62
Parsed Nf3 into g5f3 virgin=70,66
(1-type) castling 4 6
Parsed O-O into e8g8 virgin=70,66
Parsed h3 into h2h3 virgin=70,76
Parsed Bh5 into g4h5 virgin=70,76
Parsed c3 into c2c3 virgin=70,76
Parsed Kh8 into g8h8 virgin=70,76
Parsed Bxh6 into c1h6 virgin=70,f6
Parsed gxh6 into g7h6 virgin=74,f6
Parsed Nbd2 into b1d2 virgin=74,f6
Parsed Ba7 into c5a7 virgin=76,f6
Parsed Bd5 into c4d5 virgin=76,f6
Parsed Ne7 into c6e7 virgin=76,f6
Parsed Bxb7 into d5b7 virgin=76,f6
Parsed Rb8 into a8b8 virgin=76,f6
Parsed Bxa6 into b7a6 virgin=76,f7
Parsed f5 into f7f5 virgin=76,f7
Parsed Kh1 into g1h1 virgin=76,f7
Parsed Ng6 into e7g6 virgin=f6,f7
Parsed exf5 into e4f5 virgin=f6,f7
Parsed Nf4 into g6f4 virgin=f6,f7
Parsed d4 into d3d4 virgin=f6,f7
Parsed Rxf5 into f8f5 virgin=f6,f7
Parsed Qc2 into d1c2 virgin=f6,f7
Parsed Rf8 into f5f8 virgin=fe,f7
Parsed Rae1 into a1e1 virgin=fe,f7
Parsed Qf6 into d8f6 virgin=ff,f7
Parsed Re3 into e1e3 virgin=ff,ff
Parsed Qg7 into f6g7 virgin=ff,ff
Parsed Rg1 into f1g1 virgin=ff,ff
Parsed Nd5 into f4d5 virgin=ff,ff
Parsed Bb5 into a6b5 virgin=ff,ff
Parsed Bg6 into h5g6 virgin=ff,ff
Parsed Qc1 into c2c1 virgin=ff,ff
Parsed Nxe3 into d5e3 virgin=ff,ff
Parsed fxe3 into f2e3 virgin=ff,ff
Parsed Bf7 into g6f7 virgin=ff,ff
Parsed Rf1 into g1f1 virgin=ff,ff
Parsed Bd5 into f7d5 virgin=ff,ff
Parsed Bc4 into b5c4 virgin=ff,ff
Parsed Ba8 into d5a8 virgin=ff,ff
Parsed a5 into a4a5 virgin=ff,ff
Parsed e4 into e5e4 virgin=ff,ff
Parsed Nh2 into f3h2 virgin=ff,ff
Parsed Qg5 into g7g5 virgin=ff,ff
Parsed b4 into b2b4 virgin=ff,ff
Parsed Qxe3 into g5e3 virgin=ff,ff
Parsed Ng4 into h2g4 virgin=ff,ff
Parsed Qg5 into e3g5 virgin=ff,ff
Parsed Qe1 into c1e1 virgin=ff,ff
Parsed h5 into h6h5 virgin=ff,ff
Parsed Ne3 into g4e3 virgin=ff,ff
Parsed h4 into h5h4 virgin=ff,ff
Parsed Be6 into c4e6 virgin=ff,ff
Parsed Bc6 into a8c6 virgin=ff,ff
Parsed Bc4 into e6c4 virgin=ff,ff
Parsed d5 into d6d5 virgin=ff,ff
Parsed b5 into b4b5 virgin=ff,ff
Parsed Bb7 into c6b7 virgin=ff,ff
Parsed Bb3 into c4b3 virgin=ff,ff
Parsed Rbc8 into b8c8 virgin=ff,ff
Parsed a6 into a5a6 virgin=ff,ff
Parsed Ba8 into b7a8 virgin=ff,ff
Parsed Ba4 into b3a4 virgin=ff,ff
Parsed Bb6 into a7b6 virgin=ff,ff
Parsed Kg1 into h1g1 virgin=ff,ff
Parsed Qg3 into g5g3 virgin=ff,ff
Parsed Qxg3 into e1g3 virgin=ff,ff
Parsed hxg3 into h4g3 virgin=ff,ff
Parsed Ra1 into f1a1 virgin=ff,ff
Parsed Rf2 into f8f2 virgin=ff,ff
Parsed Ndf1 into d2f1 virgin=ff,ff
Parsed Re2 into f2e2 virgin=ff,ff
Parsed Nf5 into e3f5 virgin=ff,ff
Parsed Rg8 into c8g8 virgin=ff,ff
Parsed N1xg3 into f1g3 virgin=ff,ff
Parsed Rd2 into e2d2 virgin=ff,ff
Parsed Rf1 into a1f1 virgin=ff,ff
Parsed Ba5 into b6a5 virgin=ff,ff
Parsed Rf2 into f1f2 virgin=ff,ff
Parsed Rxf2 into d2f2 virgin=ff,ff
Parsed Kxf2 into g1f2 virgin=ff,ff
Parsed Bxc3 into a5c3 virgin=ff,ff
Parsed h4 into h3h4 virgin=ff,ff
Parsed Rf8 into g8f8 virgin=ff,ff
Parsed Ke3 into f2e3 virgin=ff,ff
Parsed Be1 into c3e1 virgin=ff,ff
Parsed Ke2 into e3e2 virgin=ff,ff
Parsed Bxg3 into e1g3 virgin=ff,ff
Parsed Nxg3 into f5g3 virgin=ff,ff
Parsed Rg8 into f8g8 virgin=ff,ff
Parsed Kf2 into e2f2 virgin=ff,ff
Parsed Rg4 into g8g4 virgin=ff,ff
Parsed Bd1 into a4d1 virgin=ff,ff
Parsed e3 into e4e3 virgin=ff,ff
Parsed Kf3 into f2f3 virgin=ff,ff
Parsed Rxd4 into g4d4 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Rb4 into d4b4 virgin=ff,ff
Parsed Kxe3 into f3e3 virgin=ff,ff
Parsed d4 into d5d4 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rb2 into b4b2 virgin=ff,ff
Parsed Ke1 into d2e1 virgin=ff,ff
Parsed Rb3 into b2b3 virgin=ff,ff
Parsed Nh5 into g3h5 virgin=ff,ff
Parsed d3 into d4d3 virgin=ff,ff
Parsed Bd1 into e2d1 virgin=ff,ff
Parsed Rxb5 into b3b5 virgin=ff,ff
Parsed Nf4 into h5f4 virgin=ff,ff
Parsed Ra5 into b5a5 virgin=ff,ff
Parsed g3 into g2g3 virgin=ff,ff
Parsed Rxa6 into a5a6 virgin=ff,ff
Parsed Nxd3 into f4d3 virgin=ff,ff
Parsed Bd5 into a8d5 virgin=ff,ff
Parsed Kd2 into e1d2 virgin=ff,ff
Parsed Bf7 into d5f7 virgin=ff,ff
Parsed g4 into g3g4 virgin=ff,ff
Parsed Kg7 into h8g7 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Ra8 into a6a8 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Ra4 into a8a4 virgin=ff,ff
Parsed Bd1 into e2d1 virgin=ff,ff
Parsed Rd4 into a4d4 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Rb4 into d4b4 virgin=ff,ff
Parsed Nd3 into f2d3 virgin=ff,ff
Parsed Rb1 into b4b1 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rb6 into b1b6 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Re6 into b6e6 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rd6 into e6d6 virgin=ff,ff
Parsed Kc3 into d2c3 virgin=ff,ff
Parsed Bg6 into f7g6 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Rf6 into d6f6 virgin=ff,ff
Parsed Nh3 into f2h3 virgin=ff,ff
Parsed Bf7 into g6f7 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Re6 into f6e6 virgin=ff,ff
Parsed Kd2 into c3d2 virgin=ff,ff
Parsed Rb6 into e6b6 virgin=ff,ff
Parsed Nf2 into h3f2 virgin=ff,ff
Parsed Bd5 into f7d5 virgin=ff,ff
Parsed Bd3 into e2d3 virgin=ff,ff
Parsed Rb4 into b6b4 virgin=ff,ff
Parsed Bf5 into d3f5 virgin=ff,ff
Parsed h6 into h7h6 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Bf7 into d5f7 virgin=ff,ff
Parsed Nd3 into f2d3 virgin=ff,ff
Parsed Rb5 into b4b5 virgin=ff,ff
Parsed Bd7 into f5d7 virgin=ff,ff
Parsed Ra5 into b5a5 virgin=ff,ff
Parsed Bc6 into d7c6 virgin=ff,ff
Parsed Kf8 into g7f8 virgin=ff,ff
Parsed Be4 into c6e4 virgin=ff,ff
Parsed Ke7 into f8e7 virgin=ff,ff
Parsed Bf3 into e4f3 virgin=ff,ff
Parsed Kd6 into e7d6 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Bg6 into f7g6 virgin=ff,ff
Parsed h5 into h4h5 virgin=ff,ff
Parsed Bb1 into g6b1 virgin=ff,ff
Parsed Nd1 into f2d1 virgin=ff,ff
Parsed Bh7 into b1h7 virgin=ff,ff
Parsed Nb2 into d1b2 virgin=ff,ff
Parsed Ke7 into d6e7 virgin=ff,ff
Parsed Nc4 into b2c4 virgin=ff,ff
Parsed Ra6 into a5a6 virgin=ff,ff
Parsed Ne5 into c4e5 virgin=ff,ff
Parsed Kf6 into e7f6 virgin=ff,ff
Parsed Nd7 into e5d7 virgin=ff,ff
Parsed Kg5 into f6g5 virgin=ff,ff
Parsed Be2 into f3e2 virgin=ff,ff
Parsed Re6 into a6e6 virgin=ff,ff
Parsed Kf2 into e3f2 virgin=ff,ff
Parsed Re7 into e6e7 virgin=ff,ff
Parsed game end: 0-1
GameEnds(27, , 3)
108680 >first : quit
the same procedure with the previous UCI2WB:

Code: Select all

recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
Version: WinBoard 4.9.182601 + Stockfish_10-64
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir="") UCI2WB Stockfish_10-64 C:\Engines\UCI\Stockfish_10-64
nice engine proc to 10
600 >first : xboard
protover 2
620 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
620 >first : accepted setboard
620 >first : accepted usermove
620 >first : accepted debug
620 >first : accepted ping
620 >first : accepted name
620 >first : accepted reuse
620 >first : accepted exclude
620 >first : accepted pause
620 >first : accepted sigint
620 >first : accepted sigterm
620 >first : accepted done
620 <first : feature option="UCI2WB debug output -check 0"
620 >first : accepted option
620 <first : feature myname="Stockfish 10 64 (UCI2WB)"
620 >first : accepted myname
620 <first : feature option="Debug Log File -file "
620 >first : accepted option
620 <first : feature option="Contempt -spin 24 -100 100"
620 >first : accepted option
620 <first : feature option="Analysis Contempt -combo Off /// White /// Black /// Both"
620 >first : accepted option
620 <first : feature option="Clear Hash -button"
620 >first : accepted option
620 <first : feature option="MultiPV -spin 1 1 500"
620 >first : accepted option
620 <first : feature option="Skill Level -spin 20 0 20"
620 >first : accepted option
620 <first : feature option="Move Overhead -spin 30 0 5000"
620 >first : accepted option
620 <first : feature option="Minimum Thinking Time -spin 20 0 5000"
630 >first : accepted option
630 <first : feature option="Slow Mover -spin 84 10 1000"
630 >first : accepted option
630 <first : feature option="nodestime -spin 0 0 10000"
630 >first : accepted option
630 <first : feature option="SyzygyProbeDepth -spin 1 1 100"
630 >first : accepted option
630 <first : feature option="Syzygy50MoveRule -check 1"
630 >first : accepted option
630 <first : feature option="SyzygyProbeLimit -spin 7 0 7"
630 >first : accepted option
630 <first : feature oocastle=0
630 >first : accepted oocastle
630 <first : feature variants="normal,xiangqi,normal,fischerandom"
630 >first : accepted variants
630 <first : feature egt="syzygy"
630 >first : accepted egt
630 <first : feature smp=1 memory=1 done=1
630 >first : accepted smp
630 >first : accepted memory
630 >first : accepted done
640 >first : memory 544
640 >first : egtpath syzygy C:\Syzygy_5
640 >first : cores 1
640 >first : new
random
640 >first : level 40 3 0
640 >first : post
640 >first : hard
640 >first : easy
640 >first : ping 1
Impossible move , type = 0
980 <first : pong 1
1190 <first : 0 0 0 0 Found 145 tablebases
PasteTextFromClipboard(): lock count 0
PasteTextFromClipboard(): lock count 0
PasteTextFromClipboard(): err 0 locked 0
(1-type) castling 4 6
(1-type) castling 4 6
Parsed game number 1, offset 0:
[Event "Computer Match"]
[Site "London, UK"]
[Date "2018.01.18"]
[Round "255"]
[White "Stockfish 8"]
[Black "AlphaZero"]
[Result "0-1"]
[PlyCount "194"]
[EventDate "2018.??.??"]
LoadGame(): on entry, gameMode 0
Parsed game start '[Event "Computer Match"]' (39)
Parsed PGNTag: [Event "Computer Match"]
Parsed PGNTag: [Site "London, UK"]
Parsed PGNTag: [Date "2018.01.18"]
Parsed PGNTag: [Round "255"]
Parsed PGNTag: [White "Stockfish 8"]
Parsed PGNTag: [Black "AlphaZero"]
Parsed PGNTag: [Result "0-1"]
Parsed PGNTag: [PlyCount "194"]
Parsed PGNTag: [EventDate "2018.??.??"]
recognized 'Computer Match' (-1) as variant normal
2620 >first : memory 544
2620 >first : egtpath syzygy C:\Syzygy_5
2620 >first : cores 1
2620 >first : new
random
2620 >first : level 40 3 0
2620 >first : post
2620 >first : hard
2620 >first : easy
2620 >first : ping 2
Impossible move e6e7, type = 0
2630 >first : force
Parsed e4 into e2e4 virgin=0,0
Parsed e5 into e7e5 virgin=0,0
Parsed Nf3 into g1f3 virgin=0,0
Parsed Nc6 into b8c6 virgin=40,0
Parsed Bc4 into f1c4 virgin=40,2
Parsed Bc5 into f8c5 virgin=60,2
Parsed d3 into d2d3 virgin=60,22
Parsed a6 into a7a6 virgin=60,22
Parsed Ng5 into f3g5 virgin=60,22
Parsed Nh6 into g8h6 virgin=60,22
(1-type) castling 4 6
Parsed O-O into e1g1 virgin=60,62
Parsed d6 into d7d6 virgin=70,62
Parsed a4 into a2a4 virgin=70,62
Parsed Bg4 into c8g4 virgin=70,62
Parsed Nf3 into g5f3 virgin=70,66
(1-type) castling 4 6
Parsed O-O into e8g8 virgin=70,66
Parsed h3 into h2h3 virgin=70,76
Parsed Bh5 into g4h5 virgin=70,76
Parsed c3 into c2c3 virgin=70,76
Parsed Kh8 into g8h8 virgin=70,76
Parsed Bxh6 into c1h6 virgin=70,f6
Parsed gxh6 into g7h6 virgin=74,f6
Parsed Nbd2 into b1d2 virgin=74,f6
Parsed Ba7 into c5a7 virgin=76,f6
Parsed Bd5 into c4d5 virgin=76,f6
Parsed Ne7 into c6e7 virgin=76,f6
Parsed Bxb7 into d5b7 virgin=76,f6
Parsed Rb8 into a8b8 virgin=76,f6
Parsed Bxa6 into b7a6 virgin=76,f7
Parsed f5 into f7f5 virgin=76,f7
Parsed Kh1 into g1h1 virgin=76,f7
Parsed Ng6 into e7g6 virgin=f6,f7
Parsed exf5 into e4f5 virgin=f6,f7
Parsed Nf4 into g6f4 virgin=f6,f7
Parsed d4 into d3d4 virgin=f6,f7
Parsed Rxf5 into f8f5 virgin=f6,f7
Parsed Qc2 into d1c2 virgin=f6,f7
Parsed Rf8 into f5f8 virgin=fe,f7
Parsed Rae1 into a1e1 virgin=fe,f7
Parsed Qf6 into d8f6 virgin=ff,f7
Parsed Re3 into e1e3 virgin=ff,ff
Parsed Qg7 into f6g7 virgin=ff,ff
Parsed Rg1 into f1g1 virgin=ff,ff
Parsed Nd5 into f4d5 virgin=ff,ff
Parsed Bb5 into a6b5 virgin=ff,ff
Parsed Bg6 into h5g6 virgin=ff,ff
Parsed Qc1 into c2c1 virgin=ff,ff
Parsed Nxe3 into d5e3 virgin=ff,ff
Parsed fxe3 into f2e3 virgin=ff,ff
Parsed Bf7 into g6f7 virgin=ff,ff
Parsed Rf1 into g1f1 virgin=ff,ff
Parsed Bd5 into f7d5 virgin=ff,ff
Parsed Bc4 into b5c4 virgin=ff,ff
Parsed Ba8 into d5a8 virgin=ff,ff
Parsed a5 into a4a5 virgin=ff,ff
Parsed e4 into e5e4 virgin=ff,ff
Parsed Nh2 into f3h2 virgin=ff,ff
Parsed Qg5 into g7g5 virgin=ff,ff
Parsed b4 into b2b4 virgin=ff,ff
Parsed Qxe3 into g5e3 virgin=ff,ff
Parsed Ng4 into h2g4 virgin=ff,ff
Parsed Qg5 into e3g5 virgin=ff,ff
Parsed Qe1 into c1e1 virgin=ff,ff
Parsed h5 into h6h5 virgin=ff,ff
Parsed Ne3 into g4e3 virgin=ff,ff
Parsed h4 into h5h4 virgin=ff,ff
Parsed Be6 into c4e6 virgin=ff,ff
Parsed Bc6 into a8c6 virgin=ff,ff
Parsed Bc4 into e6c4 virgin=ff,ff
Parsed d5 into d6d5 virgin=ff,ff
Parsed b5 into b4b5 virgin=ff,ff
Parsed Bb7 into c6b7 virgin=ff,ff
Parsed Bb3 into c4b3 virgin=ff,ff
Parsed Rbc8 into b8c8 virgin=ff,ff
Parsed a6 into a5a6 virgin=ff,ff
Parsed Ba8 into b7a8 virgin=ff,ff
Parsed Ba4 into b3a4 virgin=ff,ff
Parsed Bb6 into a7b6 virgin=ff,ff
Parsed Kg1 into h1g1 virgin=ff,ff
Parsed Qg3 into g5g3 virgin=ff,ff
Parsed Qxg3 into e1g3 virgin=ff,ff
Parsed hxg3 into h4g3 virgin=ff,ff
Parsed Ra1 into f1a1 virgin=ff,ff
Parsed Rf2 into f8f2 virgin=ff,ff
Parsed Ndf1 into d2f1 virgin=ff,ff
Parsed Re2 into f2e2 virgin=ff,ff
Parsed Nf5 into e3f5 virgin=ff,ff
Parsed Rg8 into c8g8 virgin=ff,ff
Parsed N1xg3 into f1g3 virgin=ff,ff
Parsed Rd2 into e2d2 virgin=ff,ff
Parsed Rf1 into a1f1 virgin=ff,ff
Parsed Ba5 into b6a5 virgin=ff,ff
Parsed Rf2 into f1f2 virgin=ff,ff
Parsed Rxf2 into d2f2 virgin=ff,ff
Parsed Kxf2 into g1f2 virgin=ff,ff
Parsed Bxc3 into a5c3 virgin=ff,ff
Parsed h4 into h3h4 virgin=ff,ff
Parsed Rf8 into g8f8 virgin=ff,ff
Parsed Ke3 into f2e3 virgin=ff,ff
Parsed Be1 into c3e1 virgin=ff,ff
Parsed Ke2 into e3e2 virgin=ff,ff
Parsed Bxg3 into e1g3 virgin=ff,ff
Parsed Nxg3 into f5g3 virgin=ff,ff
Parsed Rg8 into f8g8 virgin=ff,ff
Parsed Kf2 into e2f2 virgin=ff,ff
Parsed Rg4 into g8g4 virgin=ff,ff
Parsed Bd1 into a4d1 virgin=ff,ff
Parsed e3 into e4e3 virgin=ff,ff
Parsed Kf3 into f2f3 virgin=ff,ff
Parsed Rxd4 into g4d4 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Rb4 into d4b4 virgin=ff,ff
Parsed Kxe3 into f3e3 virgin=ff,ff
Parsed d4 into d5d4 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rb2 into b4b2 virgin=ff,ff
Parsed Ke1 into d2e1 virgin=ff,ff
Parsed Rb3 into b2b3 virgin=ff,ff
Parsed Nh5 into g3h5 virgin=ff,ff
Parsed d3 into d4d3 virgin=ff,ff
Parsed Bd1 into e2d1 virgin=ff,ff
Parsed Rxb5 into b3b5 virgin=ff,ff
Parsed Nf4 into h5f4 virgin=ff,ff
Parsed Ra5 into b5a5 virgin=ff,ff
Parsed g3 into g2g3 virgin=ff,ff
Parsed Rxa6 into a5a6 virgin=ff,ff
Parsed Nxd3 into f4d3 virgin=ff,ff
Parsed Bd5 into a8d5 virgin=ff,ff
Parsed Kd2 into e1d2 virgin=ff,ff
Parsed Bf7 into d5f7 virgin=ff,ff
Parsed g4 into g3g4 virgin=ff,ff
Parsed Kg7 into h8g7 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Ra8 into a6a8 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Ra4 into a8a4 virgin=ff,ff
Parsed Bd1 into e2d1 virgin=ff,ff
Parsed Rd4 into a4d4 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Rb4 into d4b4 virgin=ff,ff
Parsed Nd3 into f2d3 virgin=ff,ff
Parsed Rb1 into b4b1 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rb6 into b1b6 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Re6 into b6e6 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rd6 into e6d6 virgin=ff,ff
Parsed Kc3 into d2c3 virgin=ff,ff
Parsed Bg6 into f7g6 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Rf6 into d6f6 virgin=ff,ff
Parsed Nh3 into f2h3 virgin=ff,ff
Parsed Bf7 into g6f7 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Re6 into f6e6 virgin=ff,ff
Parsed Kd2 into c3d2 virgin=ff,ff
Parsed Rb6 into e6b6 virgin=ff,ff
Parsed Nf2 into h3f2 virgin=ff,ff
Parsed Bd5 into f7d5 virgin=ff,ff
Parsed Bd3 into e2d3 virgin=ff,ff
Parsed Rb4 into b6b4 virgin=ff,ff
Parsed Bf5 into d3f5 virgin=ff,ff
Parsed h6 into h7h6 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Bf7 into d5f7 virgin=ff,ff
Parsed Nd3 into f2d3 virgin=ff,ff
Parsed Rb5 into b4b5 virgin=ff,ff
Parsed Bd7 into f5d7 virgin=ff,ff
Parsed Ra5 into b5a5 virgin=ff,ff
Parsed Bc6 into d7c6 virgin=ff,ff
Parsed Kf8 into g7f8 virgin=ff,ff
Parsed Be4 into c6e4 virgin=ff,ff
Parsed Ke7 into f8e7 virgin=ff,ff
Parsed Bf3 into e4f3 virgin=ff,ff
Parsed Kd6 into e7d6 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Bg6 into f7g6 virgin=ff,ff
Parsed h5 into h4h5 virgin=ff,ff
Parsed Bb1 into g6b1 virgin=ff,ff
Parsed Nd1 into f2d1 virgin=ff,ff
Parsed Bh7 into b1h7 virgin=ff,ff
Parsed Nb2 into d1b2 virgin=ff,ff
Parsed Ke7 into d6e7 virgin=ff,ff
Parsed Nc4 into b2c4 virgin=ff,ff
Parsed Ra6 into a5a6 virgin=ff,ff
Parsed Ne5 into c4e5 virgin=ff,ff
Parsed Kf6 into e7f6 virgin=ff,ff
Parsed Nd7 into e5d7 virgin=ff,ff
Parsed Kg5 into f6g5 virgin=ff,ff
Parsed Be2 into f3e2 virgin=ff,ff
Parsed Re6 into a6e6 virgin=ff,ff
Parsed Kf2 into e3f2 virgin=ff,ff
Parsed Re7 into e6e7 virgin=ff,ff
Parsed game end: 0-1
GameEnds(27, , 3)
2770 >first : quit
LoadGame(): on exit, gameMode 7
StartChildProcess (dir="") UCI2WB Stockfish_10-64 C:\Engines\UCI\Stockfish_10-64
nice engine proc to 10
8780 >first : xboard
protover 2
8780 >first : memory 544
8780 >first : egtpath syzygy C:\Syzygy_5
8780 >first : cores 1
8780 >first : new
random
8780 >first : level 40 3 0
8780 >first : post
8780 >first : hard
8780 >first : easy
8780 >first : ping 3
Impossible move e6e7, type = 0
Feeding moves 0 through 0 to first chess program
8780 >first : force
8780 >first : analyze
Impossible move e6e7, type = 0
8780 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
8780 >first : accepted setboard
8780 >first : accepted usermove
8780 >first : accepted debug
8780 >first : accepted ping
8780 >first : accepted name
8780 >first : accepted reuse
8780 >first : accepted exclude
8780 >first : accepted pause
8780 >first : accepted sigint
8780 >first : accepted sigterm
8780 >first : accepted done
8780 <first : feature option="UCI2WB debug output -check 0"
8780 >first : accepted option
8780 <first : feature myname="Stockfish 10 64 (UCI2WB)"
8780 >first : accepted myname
8780 <first : feature option="Debug Log File -file "
8780 >first : accepted option
8780 <first : feature option="Contempt -spin 24 -100 100"
8780 >first : accepted option
8780 <first : feature option="Analysis Contempt -combo Off /// White /// Black /// Both"
8780 >first : accepted option
8780 <first : feature option="Clear Hash -button"
8780 >first : accepted option
8780 <first : feature option="MultiPV -spin 1 1 500"
8780 >first : accepted option
8790 <first : feature option="Skill Level -spin 20 0 20"
8790 >first : accepted option
8790 <first : feature option="Move Overhead -spin 30 0 5000"
8790 >first : accepted option
8790 <first : feature option="Minimum Thinking Time -spin 20 0 5000"
8790 >first : accepted option
8790 <first : feature option="Slow Mover -spin 84 10 1000"
8790 >first : accepted option
8790 <first : feature option="nodestime -spin 0 0 10000"
8790 >first : accepted option
8790 <first : feature option="SyzygyProbeDepth -spin 1 1 100"
8790 >first : accepted option
8790 <first : feature option="Syzygy50MoveRule -check 1"
8790 >first : accepted option
8790 <first : feature option="SyzygyProbeLimit -spin 7 0 7"
8790 >first : accepted option
8790 <first : feature oocastle=0
8790 >first : accepted oocastle
8790 <first : feature variants="normal,xiangqi,normal,fischerandom"
8790 >first : accepted variants
8790 <first : feature egt="syzygy"
8790 >first : accepted egt
8790 <first : feature smp=1 memory=1 done=1
8790 >first : accepted smp
8790 >first : accepted memory
8790 >first : accepted done
9100 <first : pong 3
9290 <first : 0 0 0 0 Found 145 tablebases
Impossible move e6e7, type = 0
9290 <first :   1     116      0         20 e2e4
9290 <first :   2     112      0         54 e2e4 b7b6
9290 <first :   3     148      0        136 d2d4 d7d6 e2e4
9290 <first :   4     137      0        247 d2d4 e7e6 e2e4 c7c6
9290 <first :   5      77      0       1157 c2c3 d7d5 d2d4 b8c6 c1g5
9290 <first :   6      83      0       2250 e2e4 b8c6 d2d4 d7d6 f1c4 g8f6
9290 <first :   7      67      0       4481 e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 d4d1
9300 <first :   8      60      1       7849 e2e4 e7e5 g1f3 d7d5 d2d4 b8c6 f3e5
9310 <first :   9     115      2      11846 e2e4 e7e5 g1f3 g8f6 b1c3
9330 <first :  10      89      4      27338 e2e4 d7d5 e4d5 c7c6 d2d4 c6d5 g1f3 g8f6 b1c3 b8c6 f1b5
9380 <first :  11      98      9      61978 e2e4 d7d5 e4d5 c7c6 g1f3 c6d5 d2d4 g8f6 f1b5 c8d7 b5d7 d8d7 e1g1 b8c6 c1e3 e7e6
9410 <first :  12     116     12      80917 e2e4 d7d5 e4d5 c7c6 g1f3 c6d5 d2d4 b8c6 f1e2 e7e6 e1g1 g8e7 b1c3
9540 <first :  13      97     25     160903 e2e4 d7d5 e4d5 c7c6 g1f3 c6d5 d2d4 e7e6 f1b5 c8d7 b1c3 g8f6 b5d7 d8d7 e1g1 b8c6 f3e5 d7c7
9700 <first :  14      77     41     263421 e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 d4e3 d8e7 g1f3 d7d5 b1c3 d5e4 c3e4 g8f6 e4f6 g7f6 e3e7 f8e7
10370 <first :  15      57    108     678519 e2e4 e7e5 g1f3 g8f6 d2d4 f6e4 f3e5 d7d6 e5f7 d8f6 d1e2 f6f2 e2f2 e4f2 b1d2
10550 <first :  16      76    126     799686 e2e4 e7e5 g1f3 b8c6 f1c4 g8f6 d2d3 f8b4 c2c3 b4e7 c1g5 e8g8 g5f6 e7f6 e1g1 d7d6 b1d2 c6a5 f1e1 a5c4
10780 >first : .
10780 <first : stat01: 126 799686 16 100 100 
11300 <first :  17      77    201    1260303 e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 f8c5 b5c6 d7c6 d2d3 d8d6 c2c3 c5b6 d3d4 f6e4 f3e5 e8g8 b1d2 e4f6
11740 <first :  18      87    245    1538007 e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 f8c5 b5c6 d7c6 d2d3 d8e7 b1d2 c8g4 h2h3 g4f3 d1f3 e8c8 d2c4 c8b8 c1d2 h8e8 a1e1
GameEnds(29, xboard exit, 2)
11860 >first : exit
11960 >first : quit
After loading both debugs in an editor for comparison I can see a certain difference.

The commands below appear only in the newer version which crashed WB directly before the pasting starts:

Code: Select all

size-move
sizing
sizing
exit size-move, size = 64
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: UCI2WB 4.0

Post by hgm »

Well, the differences you point out have nothing to do with UCI2WB: this is just leftover debug printing from WinBoard itseLf, in the event handlers for manipulating the window size of the main window. Apparently you have been repositioning the WinBoard windows in the first run, but not in the second.

If WinBoard crashes, this is almost by definition a WinBoard bug, even when UCI2WB would have done something horrible to trigger that. But there is no evidence for the latter in the log. The first log ends where WinBoard sends 'quit' to the first 'engine' (i.e. the adapter, in this case). It does this after pasting the PGN because UCI2WB (both old and new version) specifies feature reuse=0, meaning a new engine process should be started for every new game. The next thing that should have happened is that WinBoard would launch a new instance of the 'engine' (i.e. UCI2WB + real UCI engine). The debug log would report this ("StartChildProcess ..."), so its absence suggests that WinBoard crashed before or during the launching.

Can there be some trouble with the -delayAfterQuit setting of WinBoard? The new UCI2WB can be more tardy in obeying a quit command, because it only executes commands after the engine has indicated it is ready to be quitted. (This would also include waiting for 'uciok', which already has been shown to cause trouble with hanging engine processes with a short setting of -delayAfterQuit with some tardy engines, and which I still should patch.) This specifies how many seconds WinBoard should wait for the engine process to terminate in reaction to 'quit', before terminating it by more forceful methods. During this time WinBoard might very well be unresponsive. And if -delayAfterQuit is set to a large value, and UCI2WB also takes a long time...

I tried to reproduce the problem, but did not succeed. If the problem does persist, could you use UCI2WB with the extra option 'debug', so that the winboard.debug log would also contain everything that goes on between engine and adapter? Like

"./UCI2WB debug stockfish.exe STOCKFISHFOLDER"

as engine command.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: UCI2WB 4.0

Post by Guenther »

hgm wrote: Thu Dec 20, 2018 1:00 pm Well, the differences you point out have nothing to do with UCI2WB: this is just leftover debug printing from WinBoard itseLf, in the event handlers for manipulating the window size of the main window. Apparently you have been repositioning the WinBoard windows in the first run, but not in the second.

If WinBoard crashes, this is almost by definition a WinBoard bug, even when UCI2WB would have done something horrible to trigger that. But there is no evidence for the latter in the log. The first log ends where WinBoard sends 'quit' to the first 'engine' (i.e. the adapter, in this case). It does this after pasting the PGN because UCI2WB (both old and new version) specifies feature reuse=0, meaning a new engine process should be started for every new game. The next thing that should have happened is that WinBoard would launch a new instance of the 'engine' (i.e. UCI2WB + real UCI engine). The debug log would report this ("StartChildProcess ..."), so its absence suggests that WinBoard crashed before or during the launching.

Can there be some trouble with the -delayAfterQuit setting of WinBoard? The new UCI2WB can be more tardy in obeying a quit command, because it only executes commands after the engine has indicated it is ready to be quitted. (This would also include waiting for 'uciok', which already has been shown to cause trouble with hanging engine processes with a short setting of -delayAfterQuit with some tardy engines, and which I still should patch.) This specifies how many seconds WinBoard should wait for the engine process to terminate in reaction to 'quit', before terminating it by more forceful methods. During this time WinBoard might very well be unresponsive. And if -delayAfterQuit is set to a large value, and UCI2WB also takes a long time...

I tried to reproduce the problem, but did not succeed. If the problem does persist, could you use UCI2WB with the extra option 'debug', so that the winboard.debug log would also contain everything that goes on between engine and adapter? Like

"./UCI2WB debug stockfish.exe STOCKFISHFOLDER"

as engine command.
The setting for 'delayafterquit'

Code: Select all

/delayAfterQuit=500
I try to debug it now again. Note that the window which should show the pasted moves never shows them and WB is already unresponsive.
So first I thought sth was wrong with the pasted pgn, until I tried it in another parallel WB with the old uci2wb.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: UCI2WB 4.0

Post by Ras »

An interesting thing in the log of the previous version is that after quit, there is some "Impossible move e6e7, type = 0". The last move from before the quit was Re6-e7, and somehow, this move is still around. Could that have some relevance? Plus (IIRC) Stockfish doesn't check for move legality in its input.
Last edited by Ras on Thu Dec 20, 2018 1:45 pm, edited 1 time in total.
Rasmus Althoff
https://www.ct800.net
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: UCI2WB 4.0

Post by Guenther »

Well the uci2wb logging didn't reveal much. The debug stops at the same place and as before 'loadgame() on exit never appears.

I did the same with a WB/XB program and all works normally here, thus I am quite sure uci2wb is the culprit and it is also
the only part which was changed since the AAA release and since then it happens.

Code: Select all

recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
Version: WinBoard 4.9.182601 + Stockfish_10-64
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir="") UCI2WB Stockfish_10-64 C:\Engines\UCI\Stockfish_10-64
nice engine proc to 10
610 >first : xboard
protover 2
620 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
630 >first : accepted setboard
630 >first : accepted usermove
630 >first : accepted debug
630 >first : accepted ping
630 >first : accepted name
630 >first : accepted reuse
630 >first : accepted exclude
630 >first : accepted pause
630 >first : accepted sigint
630 >first : accepted sigterm
630 >first : accepted done
630 <first : feature option="UCI2WB debug output -check 0"
630 >first : accepted option
630 >first : option UCI2WB debug output=1
630 <first : feature option="ponder always -check 0"
630 >first : accepted option
630 <first : feature myname="Stockfish 10 64 (UCI2WB)"
630 >first : accepted myname
630 <first : feature option="Debug Log File -file "
630 >first : accepted option
630 <first : feature option="Contempt -spin 24 -100 100"
630 >first : accepted option
630 <first : feature option="Analysis Contempt -combo Off /// White /// Black /// Both"
630 >first : accepted option
630 <first : feature option="Clear Hash -button"
630 >first : accepted option
630 <first : feature option="MultiPV -spin 1 1 500"
630 >first : accepted option
630 <first : feature option="Skill Level -spin 20 0 20"
630 >first : accepted option
630 <first : feature option="Move Overhead -spin 30 0 5000"
630 >first : accepted option
630 <first : feature option="Minimum Thinking Time -spin 20 0 5000"
630 >first : accepted option
630 <first : feature option="Slow Mover -spin 84 10 1000"
630 >first : accepted option
630 <first : feature option="nodestime -spin 0 0 10000"
630 >first : accepted option
630 <first : feature option="SyzygyProbeDepth -spin 1 1 100"
630 >first : accepted option
630 <first : feature option="Syzygy50MoveRule -check 1"
630 >first : accepted option
630 <first : feature option="SyzygyProbeLimit -spin 7 0 7"
630 >first : accepted option
630 <first : feature oocastle=0
630 >first : accepted oocastle
630 <first : feature variants="normal,fischerandom"
640 >first : accepted variants
640 <first : feature egt="syzygy"
640 >first : accepted egt
640 <first : feature smp=1 memory=1 done=1
640 >first : accepted smp
640 >first : accepted memory
640 >first : accepted done
650 >first : memory 544
650 >first : egtpath syzygy C:\Syzygy_5
650 >first : cores 1
650 >first : new
random
650 >first : level 40 3 0
650 >first : post
650 >first : hard
650 >first : easy
650 >first : ping 1
Impossible move , type = 0
650 <first : # queue 'memory', searching=0
650 <first : # command memory
650 <first : # queue 'egtpath', searching=0
650 <first : # queue 'cores', searching=0
650 <first : # command egtpath
650 <first : # setoption name syzygyPath value C:\Syzygy_5
650 <first : # command cores
650 <first : # setoption name Threads value 1
650 <first : # queue 'new', searching=0
650 <first : # command new
650 <first : # setoption name Hash value 544
650 <first : # isready
650 <first : # queue 'level', searching=0
650 <first : # queue 'option', searching=0
650 <first : # queue 'option', searching=0
650 <first : # queue 'ping', searching=0
710 <first : # engine said: info string Found 145 tablebases
720 <first : 0 0 0 0 Found 145 tablebases
1030 <first : # engine said: readyok
1030 <first : # ucinewgame
1030 <first : # command level
1030 <first : # command option
1030 <first : # setoption name Ponder value true
1030 <first : # command option
1030 <first : # setoption name Ponder value false
1030 <first : # command ping
1030 <first : pong 1
PasteTextFromClipboard(): lock count 0
PasteTextFromClipboard(): lock count 0
PasteTextFromClipboard(): err 0 locked 0
(1-type) castling 4 6
(1-type) castling 4 6
Parsed game number 1, offset 0:
[Event "Computer Match"]
[Site "London, UK"]
[Date "2018.01.18"]
[Round "255"]
[White "Stockfish 8"]
[Black "AlphaZero"]
[Result "0-1"]
[PlyCount "194"]
[EventDate "2018.??.??"]
LoadGame(): on entry, gameMode 0
Parsed game start '[Event "Computer Match"]' (39)
Parsed PGNTag: [Event "Computer Match"]
Parsed PGNTag: [Site "London, UK"]
Parsed PGNTag: [Date "2018.01.18"]
Parsed PGNTag: [Round "255"]
Parsed PGNTag: [White "Stockfish 8"]
Parsed PGNTag: [Black "AlphaZero"]
Parsed PGNTag: [Result "0-1"]
Parsed PGNTag: [PlyCount "194"]
Parsed PGNTag: [EventDate "2018.??.??"]
recognized 'Computer Match' (-1) as variant normal
4290 >first : memory 544
4290 >first : egtpath syzygy C:\Syzygy_5
4290 >first : cores 1
4290 >first : new
random
4290 >first : level 40 3 0
4290 >first : post
4290 >first : hard
4290 >first : easy
4290 >first : ping 2
Impossible move e6e7, type = 0
4290 >first : force
Parsed e4 into e2e4 virgin=0,0
Parsed e5 into e7e5 virgin=0,0
Parsed Nf3 into g1f3 virgin=0,0
Parsed Nc6 into b8c6 virgin=40,0
Parsed Bc4 into f1c4 virgin=40,2
Parsed Bc5 into f8c5 virgin=60,2
Parsed d3 into d2d3 virgin=60,22
Parsed a6 into a7a6 virgin=60,22
Parsed Ng5 into f3g5 virgin=60,22
Parsed Nh6 into g8h6 virgin=60,22
(1-type) castling 4 6
Parsed O-O into e1g1 virgin=60,62
Parsed d6 into d7d6 virgin=70,62
Parsed a4 into a2a4 virgin=70,62
Parsed Bg4 into c8g4 virgin=70,62
Parsed Nf3 into g5f3 virgin=70,66
(1-type) castling 4 6
Parsed O-O into e8g8 virgin=70,66
Parsed h3 into h2h3 virgin=70,76
Parsed Bh5 into g4h5 virgin=70,76
Parsed c3 into c2c3 virgin=70,76
Parsed Kh8 into g8h8 virgin=70,76
Parsed Bxh6 into c1h6 virgin=70,f6
Parsed gxh6 into g7h6 virgin=74,f6
Parsed Nbd2 into b1d2 virgin=74,f6
Parsed Ba7 into c5a7 virgin=76,f6
Parsed Bd5 into c4d5 virgin=76,f6
Parsed Ne7 into c6e7 virgin=76,f6
Parsed Bxb7 into d5b7 virgin=76,f6
Parsed Rb8 into a8b8 virgin=76,f6
Parsed Bxa6 into b7a6 virgin=76,f7
Parsed f5 into f7f5 virgin=76,f7
Parsed Kh1 into g1h1 virgin=76,f7
Parsed Ng6 into e7g6 virgin=f6,f7
Parsed exf5 into e4f5 virgin=f6,f7
Parsed Nf4 into g6f4 virgin=f6,f7
Parsed d4 into d3d4 virgin=f6,f7
Parsed Rxf5 into f8f5 virgin=f6,f7
Parsed Qc2 into d1c2 virgin=f6,f7
Parsed Rf8 into f5f8 virgin=fe,f7
Parsed Rae1 into a1e1 virgin=fe,f7
Parsed Qf6 into d8f6 virgin=ff,f7
Parsed Re3 into e1e3 virgin=ff,ff
Parsed Qg7 into f6g7 virgin=ff,ff
Parsed Rg1 into f1g1 virgin=ff,ff
Parsed Nd5 into f4d5 virgin=ff,ff
Parsed Bb5 into a6b5 virgin=ff,ff
Parsed Bg6 into h5g6 virgin=ff,ff
Parsed Qc1 into c2c1 virgin=ff,ff
Parsed Nxe3 into d5e3 virgin=ff,ff
Parsed fxe3 into f2e3 virgin=ff,ff
Parsed Bf7 into g6f7 virgin=ff,ff
Parsed Rf1 into g1f1 virgin=ff,ff
Parsed Bd5 into f7d5 virgin=ff,ff
Parsed Bc4 into b5c4 virgin=ff,ff
Parsed Ba8 into d5a8 virgin=ff,ff
Parsed a5 into a4a5 virgin=ff,ff
Parsed e4 into e5e4 virgin=ff,ff
Parsed Nh2 into f3h2 virgin=ff,ff
Parsed Qg5 into g7g5 virgin=ff,ff
Parsed b4 into b2b4 virgin=ff,ff
Parsed Qxe3 into g5e3 virgin=ff,ff
Parsed Ng4 into h2g4 virgin=ff,ff
Parsed Qg5 into e3g5 virgin=ff,ff
Parsed Qe1 into c1e1 virgin=ff,ff
Parsed h5 into h6h5 virgin=ff,ff
Parsed Ne3 into g4e3 virgin=ff,ff
Parsed h4 into h5h4 virgin=ff,ff
Parsed Be6 into c4e6 virgin=ff,ff
Parsed Bc6 into a8c6 virgin=ff,ff
Parsed Bc4 into e6c4 virgin=ff,ff
Parsed d5 into d6d5 virgin=ff,ff
Parsed b5 into b4b5 virgin=ff,ff
Parsed Bb7 into c6b7 virgin=ff,ff
Parsed Bb3 into c4b3 virgin=ff,ff
Parsed Rbc8 into b8c8 virgin=ff,ff
Parsed a6 into a5a6 virgin=ff,ff
Parsed Ba8 into b7a8 virgin=ff,ff
Parsed Ba4 into b3a4 virgin=ff,ff
Parsed Bb6 into a7b6 virgin=ff,ff
Parsed Kg1 into h1g1 virgin=ff,ff
Parsed Qg3 into g5g3 virgin=ff,ff
Parsed Qxg3 into e1g3 virgin=ff,ff
Parsed hxg3 into h4g3 virgin=ff,ff
Parsed Ra1 into f1a1 virgin=ff,ff
Parsed Rf2 into f8f2 virgin=ff,ff
Parsed Ndf1 into d2f1 virgin=ff,ff
Parsed Re2 into f2e2 virgin=ff,ff
Parsed Nf5 into e3f5 virgin=ff,ff
Parsed Rg8 into c8g8 virgin=ff,ff
Parsed N1xg3 into f1g3 virgin=ff,ff
Parsed Rd2 into e2d2 virgin=ff,ff
Parsed Rf1 into a1f1 virgin=ff,ff
Parsed Ba5 into b6a5 virgin=ff,ff
Parsed Rf2 into f1f2 virgin=ff,ff
Parsed Rxf2 into d2f2 virgin=ff,ff
Parsed Kxf2 into g1f2 virgin=ff,ff
Parsed Bxc3 into a5c3 virgin=ff,ff
Parsed h4 into h3h4 virgin=ff,ff
Parsed Rf8 into g8f8 virgin=ff,ff
Parsed Ke3 into f2e3 virgin=ff,ff
Parsed Be1 into c3e1 virgin=ff,ff
Parsed Ke2 into e3e2 virgin=ff,ff
Parsed Bxg3 into e1g3 virgin=ff,ff
Parsed Nxg3 into f5g3 virgin=ff,ff
Parsed Rg8 into f8g8 virgin=ff,ff
Parsed Kf2 into e2f2 virgin=ff,ff
Parsed Rg4 into g8g4 virgin=ff,ff
Parsed Bd1 into a4d1 virgin=ff,ff
Parsed e3 into e4e3 virgin=ff,ff
Parsed Kf3 into f2f3 virgin=ff,ff
Parsed Rxd4 into g4d4 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Rb4 into d4b4 virgin=ff,ff
Parsed Kxe3 into f3e3 virgin=ff,ff
Parsed d4 into d5d4 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rb2 into b4b2 virgin=ff,ff
Parsed Ke1 into d2e1 virgin=ff,ff
Parsed Rb3 into b2b3 virgin=ff,ff
Parsed Nh5 into g3h5 virgin=ff,ff
Parsed d3 into d4d3 virgin=ff,ff
Parsed Bd1 into e2d1 virgin=ff,ff
Parsed Rxb5 into b3b5 virgin=ff,ff
Parsed Nf4 into h5f4 virgin=ff,ff
Parsed Ra5 into b5a5 virgin=ff,ff
Parsed g3 into g2g3 virgin=ff,ff
Parsed Rxa6 into a5a6 virgin=ff,ff
Parsed Nxd3 into f4d3 virgin=ff,ff
Parsed Bd5 into a8d5 virgin=ff,ff
Parsed Kd2 into e1d2 virgin=ff,ff
Parsed Bf7 into d5f7 virgin=ff,ff
Parsed g4 into g3g4 virgin=ff,ff
Parsed Kg7 into h8g7 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Ra8 into a6a8 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Ra4 into a8a4 virgin=ff,ff
Parsed Bd1 into e2d1 virgin=ff,ff
Parsed Rd4 into a4d4 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Rb4 into d4b4 virgin=ff,ff
Parsed Nd3 into f2d3 virgin=ff,ff
Parsed Rb1 into b4b1 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rb6 into b1b6 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Re6 into b6e6 virgin=ff,ff
Parsed Kd2 into e3d2 virgin=ff,ff
Parsed Rd6 into e6d6 virgin=ff,ff
Parsed Kc3 into d2c3 virgin=ff,ff
Parsed Bg6 into f7g6 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Rf6 into d6f6 virgin=ff,ff
Parsed Nh3 into f2h3 virgin=ff,ff
Parsed Bf7 into g6f7 virgin=ff,ff
Parsed Be2 into d1e2 virgin=ff,ff
Parsed Re6 into f6e6 virgin=ff,ff
Parsed Kd2 into c3d2 virgin=ff,ff
Parsed Rb6 into e6b6 virgin=ff,ff
Parsed Nf2 into h3f2 virgin=ff,ff
Parsed Bd5 into f7d5 virgin=ff,ff
Parsed Bd3 into e2d3 virgin=ff,ff
Parsed Rb4 into b6b4 virgin=ff,ff
Parsed Bf5 into d3f5 virgin=ff,ff
Parsed h6 into h7h6 virgin=ff,ff
Parsed Ke3 into d2e3 virgin=ff,ff
Parsed Bf7 into d5f7 virgin=ff,ff
Parsed Nd3 into f2d3 virgin=ff,ff
Parsed Rb5 into b4b5 virgin=ff,ff
Parsed Bd7 into f5d7 virgin=ff,ff
Parsed Ra5 into b5a5 virgin=ff,ff
Parsed Bc6 into d7c6 virgin=ff,ff
Parsed Kf8 into g7f8 virgin=ff,ff
Parsed Be4 into c6e4 virgin=ff,ff
Parsed Ke7 into f8e7 virgin=ff,ff
Parsed Bf3 into e4f3 virgin=ff,ff
Parsed Kd6 into e7d6 virgin=ff,ff
Parsed Nf2 into d3f2 virgin=ff,ff
Parsed Bg6 into f7g6 virgin=ff,ff
Parsed h5 into h4h5 virgin=ff,ff
Parsed Bb1 into g6b1 virgin=ff,ff
Parsed Nd1 into f2d1 virgin=ff,ff
Parsed Bh7 into b1h7 virgin=ff,ff
Parsed Nb2 into d1b2 virgin=ff,ff
Parsed Ke7 into d6e7 virgin=ff,ff
Parsed Nc4 into b2c4 virgin=ff,ff
Parsed Ra6 into a5a6 virgin=ff,ff
Parsed Ne5 into c4e5 virgin=ff,ff
Parsed Kf6 into e7f6 virgin=ff,ff
Parsed Nd7 into e5d7 virgin=ff,ff
Parsed Kg5 into f6g5 virgin=ff,ff
Parsed Be2 into f3e2 virgin=ff,ff
Parsed Re6 into a6e6 virgin=ff,ff
Parsed Kf2 into e3f2 virgin=ff,ff
Parsed Re7 into e6e7 virgin=ff,ff
Parsed game end: 0-1
GameEnds(27, , 3)
4440 >first : quit
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: UCI2WB 4.0

Post by Guenther »

Guenther wrote: Thu Dec 20, 2018 1:44 pm Well the uci2wb logging didn't reveal much. The debug stops at the same place and as before 'loadgame() on exit never appears.

I did the same with a WB/XB program and all works normally here, thus I am quite sure uci2wb is the culprit and it is also
the only part which was changed since the AAA release and since then it happens.
I was wrong!
It seems it is only with newer SF versions and surely with SF 10. (even SF 7/8/9 work in this respect with the new uci2wb)
Still no idea why though...
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: UCI2WB 4.0

Post by Guenther »

Guenther wrote: Thu Dec 20, 2018 3:00 pm
Guenther wrote: Thu Dec 20, 2018 1:44 pm Well the uci2wb logging didn't reveal much. The debug stops at the same place and as before 'loadgame() on exit never appears.

I did the same with a WB/XB program and all works normally here, thus I am quite sure uci2wb is the culprit and it is also
the only part which was changed since the AAA release and since then it happens.
I was wrong!
It seems it is only with newer SF versions and surely with SF 10. (even SF 7/8/9 work in this respect with the new uci2wb)
Still no idea why though...
I know more now. It was triggered somehow after May 2018 and only happens with the new wb2uci.
I tested several versions of SF and at least until May they all work. 3 versions from September and later including SF 10
only work with the old uci2wb, but not with the new one.

Any changes in game parsing in both SF and uci2wb?
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy