WinBoard 4.7.3 released

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
hgm
Posts: 24129
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: WinBoard 4.7.3 released

Post by hgm » Wed Jan 08, 2014 8:25 pm

For some reason you seem to have different fonts than usual. The message font is bigger, causing the problem with the missing digit. And the clock font is extremely ugly, like it is just a blown-up version of a much smaller font, where the individual pixels are increased in size.

There is a -clockFont option that can be used to specify a smaller font. Names of X-fonts are horrible strings, however. This makes it easier to just edit the name of the font in the -clockFont line of the .xboardrc file in your home directory. There you would only have to change the point size to a smaller one, which beats typing the complete font you want on the command line.

The line would look somewhat like this:

Code: Select all

-clockFont "size49:-*-helvetica-bold-r-normal--24-*-*-*-*-*-*-*,-misc-fixed-bold-r-normal--24-*-*-*-*-*-*-*,-*-*-*-*-*-*-24-*-*-*-*-*-*-*"
where size49 specifies the board size for which this font should be used, and the various 24 are the point sizes of the various members of the font set. You would have to do that for any board size (-size argument) you use separately.

You could also try the GTK build. There you cannot control fonts at all, yet, but it usually picks an acceptable one. (On my system, at least.)

User avatar
beachknight
Posts: 3533
Joined: Tue Jan 09, 2007 7:33 pm
Location: Antalya, Turkey
Contact:

Re: WinBoard 4.7.3 released

Post by beachknight » Wed Jan 08, 2014 8:33 pm

Thank you HGM.

Which tournament manager(s) would you suggest
for blitz tournaments with 6-8 engines? I mean
for time controls like 3+3 or 5+5.

Thanks again.
hi, merhaba, hallo HT

Daniel Shawul
Posts: 3824
Joined: Tue Mar 14, 2006 10:34 am
Location: Ethiopia
Contact:

Re: WinBoard 4.7.3 released

Post by Daniel Shawul » Wed Jan 08, 2014 8:59 pm

Scorpio supports "egtpath TYPE PATH" winboard command but I realized that it doesn't work as intended. The 6-men bitbases take too long to load so I send feature=done only when I am done loading them. As you can see below, the feature=done is sent after protover but I will only get the path after that. So how do I work around this?

Code: Select all


<000000001710>protover 2
feature name=1 myname="Scorpio_14&#58;46&#58;28"
feature sigint=0 sigterm=0
feature setboard=1 draw=0 colors=0
feature smp=0 memory=0 egt="scorpio"
feature option="log -check 1"
feature option="clear_hash -button"
feature option="resign -spin 800 100 30000"
feature option="smp_type -combo *YBW /// ABDADA /// SHT "
feature option="smp_depth -spin 4 1 10"
feature option="use_iid -check 1"
feature option="use_singular -check 0"
feature option="singular_margin -spin 30 0 1000"
feature option="futility_margin -spin 100 0 1000"
feature done=1
<000000001715>accepted done
<000000001715>accepted name
<000000001715>accepted myname
<000000001715>accepted sigint
<000000001716>accepted sigterm
<000000001716>accepted setboard
<000000001716>accepted draw
<000000001716>accepted colors
<000000001716>accepted smp
<000000001716>accepted memory
<000000001716>accepted egt
<000000001716>accepted option
<000000001716>accepted option
<000000001716>accepted option
<000000001716>accepted option
<000000001716>accepted option
<000000001716>accepted option
<000000001716>accepted option
<000000001716>accepted option
<000000001717>accepted option
<000000001717>accepted done
<000000001722>egtpath scorpio D&#58;\egbb4men
<000000001722>new
<000000001743>random
<000000001743>level 40 1 0

User avatar
hgm
Posts: 24129
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: WinBoard 4.7.3 released

Post by hgm » Wed Jan 08, 2014 10:18 pm

beachknight wrote:Thank you HGM.

Which tournament manager(s) would you suggest
for blitz tournaments with 6-8 engines? I mean
for time controls like 3+3 or 5+5.

Thanks again.
I think WinBoard's intrinsic tourney manager would handle that excellently. Just set the desired TC, select the participants in the Tournament dialog. select the number games per pairing and cycles (the total number of games between any two engines will be the product of those; the difference is that the 'games per pairing' are played consecutively), specify a file for saving the tourney games, and pressing OK would start the tourney. You might want to specify start positions (FEN) or opening lines (PGN) from a file, though, and specify stepping through them by ticking the box for that, or specify a GUI book (in Common Engine Options) and force the use of that (by ticking 'discourage own books)'. WinBoard will continue playing until the entire tournament is finished. If you want to play games concurrently, you can double-click the tourney file to start more WinBoard instances playing on it, and you can quit them whenever you like.

User avatar
hgm
Posts: 24129
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: WinBoard 4.7.3 released

Post by hgm » Wed Jan 08, 2014 10:38 pm

Daniel Shawul wrote:Scorpio supports "egtpath TYPE PATH" winboard command but I realized that it doesn't work as intended. The 6-men bitbases take too long to load so I send feature=done only when I am done loading them. As you can see below, the feature=done is sent after protover but I will only get the path after that. So how do I work around this?
The egtpath command is sent at the start of every game. This means that feature done=1 cannot be used to control it, as that is only effective at startup. This is aguably a protocol design flaw. But in theory the user could alter the path during the session.

Scorpio doesn't seem to support 'ping'. It is highly recommended that you do. After 'new' WinBoard would send a 'ping', and this gives the engine another opportunity to delay the starting of the game. So you receive 'egtpath' + 'new' + some other + 'ping', and you can at leasure start to read the bitbases, and when you are ready process the 'new' and other commands, until you get to the 'ping', and then reply with 'pong'. Only then (in a match or tourney) would WinBoard start your clock.

This would allow the engine to throttle the GUI on every game start. But of course in general the egtoath would not have changed, and when you receive a repetition of it in the next game you would probably ignore it instantly.

User avatar
hgm
Posts: 24129
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: WinBoard 4.7.3 released

Post by hgm » Wed Jan 08, 2014 10:49 pm

It has come to my attention that there are some misunderstandings about WinBoards intrinsic tournament manager, and what it can or cannot do. So perhaps it is a good idea to post a short FAQ here.

* What is the difference between "games per pairing" and "cycles"
The "games per pairing" are played consecutively. "cycles" specifies the number of times the entire tourney schedule is repeated. The number of times two opponents play each other is the product of the two.
* Can a running tourney be stopped, to be resumed later?
Yes, just quit WinBoard.
* How would I resume the tourney?
Double-click the tourney file. If you associated .TRN files with WinBoard during the install, this will automatically invoke WinBoard, and it will resume the tourney
* What is a tourney file?
For each tourney WinBoard will create a file to keep track of the progress. It will propose a name for this at the top of the dialog. It is configured to propose names derived from the date and time, to make sure they are all different, but you can alter the name to something easier to recognize for you.
* What happens to the tourney game in-progress when I quit WinBoard?
It will be lost; there is no way to adjourn games yet. The partial game will not go into the tourney PGN file, however; WinBoard will prompt you to ask if you want to save it elsewhere.
* Is there a way to stop without aborting a game?
Yes, when you click "Machine Match" in the "Mode" menu (which is checkmarked during tourney play), WinBoard will drop out of tourney mode after the game finishes.
* Would there be a way to restart a thus stopped tourney without quitting WinBoard?
Yes, just click the "Machine Match" menu item again. Stopping the tourney will not make WinBoard forget the tourney file it was working on, it just leaves "match mode" where games start automatically. By re-entering match mode it will continue according to that file.
* What happens if I accidentally double-click a file of a tourney that was already running?
A new WinBoard instance will start, which will also play games of that tourney. They will orderly divide the games between them; there would not be any duplicates. If you did not want that, you could immediately quit the newly launched WinBoard. But you could start an extra WinBoard intentionally to speed up completion of the tourney.
* Is there a limit to the number of WinBoard instances that could play on the same tourney this way?
The only limit is that your hardware should be able to meet the engine's demands. With 8 cores you can play 8 1-CPU ponder-off games at once, so you can start 8 WinBoard instances.
* Will the games be played in a particular order this way?
Each WinBoard will grab the first available game from the tourney schedule, as soon as it finishes the game it was working on. So the games do start in the nominal order. But there is no guarantee they finish in that order; some can last long, others short. They are written in the PGN when they finish, so the order there could be different.
* Doesn't this make a mess of intermediate standings?
WinBoard has checkboxes in the Tournament dialog that can be used to enforce correct ordering of rounds or cycles of a tournament, by not allowing games of a new round or cycle to start before all games of the previous round/cycle are finished. This ensures there will be points in the PGN where all engines have an equal number of games, or have each played all opponents equally many times. But waiting of course wastes resources.
* Can I start another tourney when a previous, interrupted one is not yet finished?
Yes, each tourney has its own tournament file. Just create a new (not yet existing) tournament file, specifying new parameters for it, and you will have a new tourney, which knows nothing about any other tourney, and thus also doesn't care if other tourneys aren't finished yet.
* When I stopped a tourney, and want to create a new one, WinBoard shows me all settings of the interrupted tourney in the Tournament dialog. Must I restart WinBoard to get rid of that?
What you see in the tournament dialog when you open it is just a proposal. You can change it to what you want, like in any textedit used for entering data. In particular the "tourney file" entry will show the tournament file of the tourney you just stopped, but you can also alter that, so that on OK you would start a new tourney. Also the "tourney participants" is just a text edit. If you want other participants, you can delete the list of participants there, and selects new ones from the list box with the engine list. But if you wanted the same participants, you could keep them. You could also keep them and add more from the list box. Or delete some, keep some, and add others.
* What if I alter the proposed name of the tourney file, and the file happened to exist?
Mentioning an existing tournament file will overrule all settings in the dialog when you press OK, and thus will resume that tourney. Only a new filename will lead to creation of a new tourney, according to the specified parameters.
What happens if I try to resume a tourney that was already finished, by double-clicking its tourney file or putting its name in the "tourney file" entry of the Tournament dialog and pressing OK?
When you 'resume' a finished tourney, WinBoard will add one more cycle to it. You will get a warning popup and the chance to quit WinBoard for 10 sec, just in case this was not what you intended.
* I play tourneys with the same participants all the time. Can I avoid having to select them again and again from the list box?
You can enter the name of the tourney file of a similar tourney (by browsing to it, if needed), and in stead of pressing OK, press "Clone tourney". This will set all fields of the dialog as the selected tournament had them, but replace the name of the tourney file by a newly proposed one. So that you only have to press OK to start an identical tourney. Of course you can still change whatever you wanted to change, before you press OK.
* I was already halfway specifying the tourney parameters, when I discovered I had forgotten something important (like installing an engine). Must I now leave the Tournament dialog, and redo everything?
No, you can leave the Tournament dialog by pressing the "Continue Later" button, and do what you had to do. When you re-open the dialog, all data you already entered will still be there. It will in general propose a new name for the tournament file, though, but that name is usually just as acceptable as any other.
* I don't want to play a tournament, just an old-fashioned two-player match with the currently loaded engines. Is that still possible?
Yes, just click "Machine Match" in the "Mode" menu without having specified a tourney file file.
* Can I still specify opening lines or positions from the menu for such a two-player match?
Yes, you can still use the Tournament dialog to specify the files with lines or positions, and the number of games (per pairing). As long as you specify no participants, no tourney file will be created (even if a name for it was specified) when you press OK.
* I am halfway a tourney, and one of the participants malfunctions so often I want to replace it. Can that be done?
Yes, but only if it is not currently playing. Just open the Tournament dialog in a WinBoard instance that is playing the tourney. This will show all currently applicable parameters, including the participants list. In that list you are now allowed to replace exactly one name of a participant by another, and then press "Replace Engine". This will erase all results of games of the replaced engine from the tourney file. As always the earliest available game in the schedule will be selected for playing, the new engine will play those games first, to catch up, before the tourney continues where it was before the replacement.
* Will the games of a replaced engine be removed from the PGN file?
No. Data is sort of sacred, and WinBoard never removes anything from a PGN file.
* How can I follow the tournament standings?
Alas, not in WinBoard, only through the PGN. WinBoard has an option -afterGame, however, which you can use to configure it to call an external cross-table generator from the tourney PGN after every game. Just specify -afterGame "pgn2crosstable.exe tourneygames.pgn > table.txt" as additional option, and your favorite cross-table generator "pgn2crosstable.exe" would be called to process your file with games, and store the result in a file. You could monitor that file in your web browser. This might not be super convenient for people that want to watch the tourney progress in real time (as they would have to press browser refresh all the time). I hope to automate this soon (e.g. using a JavaScript-driven html page to let the web browser refresh the crostable automatically.

User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 12:54 am

Re: WinBoard 4.7.3 released

Post by mohzus » Thu Jan 09, 2014 12:54 am

Thank you very much H.G.Muller. I have successfully compiled with the gtk option. The look of xboard is now much smoother and everything seems normal, no problem so far.

User avatar
mohzus
Posts: 106
Joined: Tue Sep 24, 2013 12:54 am

Re: WinBoard 4.7.3 released

Post by mohzus » Fri Jan 10, 2014 3:18 am

hgm wrote: Multiple lines of the same depth are sorted by score. This to give better display in multi-PV mode. As engines would normally only supercede a line with a new one if it has higher score, this should not affect single-PV mode.

The problem, however, is that Stockfish sends fail-low scores disguised as real PVs. Such a score is just an upper limit, and triggers a re-search, which should find the real score, which will be lower. I improved the sorting now to sort lines for the same move always according to the order in which they were received, as the same move can only get another score at the same depth if the first score was invalid. It then internally corrects the score of the older moves to the latest one, so that sorting w.r.t. moves coming later will be done correctly.

I thought this would solve it. (It did for the cases I tried.) But if this is still not satisfactory, I guess that it can only be solved in Polyglot. There the information whether the score was a fail low might be directly available.
I must say I'm confused on how this should work now.
I post a screenshot of stockfish's pv's and you tell me whether everything's fine :)
Image

User avatar
hgm
Posts: 24129
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: WinBoard 4.7.3 released

Post by hgm » Fri Jan 10, 2014 8:53 am

Hmm, I am confused now too. Apparently Stockfish produces the following scores for Qd7 at 27 ply, in this order (based on the reported node counts):

+0.43, +0.35, +0.27, +0.51

The way it was intended to work (in 4.7.3) was that the +0.35, coming in, would have been sorted above the +0.43 that was already there, (because it was for the same move), and that both (internally) would now get a sort score of +0.35 (the + 0.43 for Qd7 apparently being overruled). So the list would look

+0.35
+0.43 (internally +0.35)

The next value that comes in is +0.27, again for the same move. Although this is lower than the +0.35, but because this is a later result for the same move, it should correct both +0.35 internally to +0.27, and after that it should be sorted above it (because it came in later). So the display should go to

+0.27
+0.35 (internally +0.27)
+0.43 (internally +0.27)

Finally the +0.51 comes in. It is highest by itself (I don't know how that is possible, but that should not matter here), so it would always be sorted on top, for

+0.51
+0.27 (internally +0.51)
+0.35 (internally +0.51)
+0.43 (internally +0.51)

The correction of the internal sort score was mainly for when another move would have come in in stead of the +0.51 Qd7, with a score above +0.27, but below +0.43 (say +0.30). This should have been allowed to float to above the +0.35 and +0.43 lines, as these scores for Qd7 are by then known to be false.

But this is apparenly not what happens. The +0.35 is apparently inserted below +0.43 when the latter is on top, which is just the old error (sorting by score, even though they are the same move). The +0.27 then does get inserted above the +0.35 (which in the old behavior it wouldn't, as +0.27 < +0.35), but then again fails to surpass the +0.43.

It seems that I messed up, and that the fix is somehow not acting on the top line to be sorted; as long as +0.43 is on top it could not be surpassed by lower scores even if they had the same move. The intended algorithm seems to handle the case well, so it is now a true bug rather than a design flaw. (Not sure if that is progress... :( )

Thanks for reporting this.

User avatar
hgm
Posts: 24129
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: WinBoard 4.7.3 released

Post by hgm » Tue Jan 14, 2014 9:57 pm

mohzus wrote: Image
OK, I found the bug. The move of the line that was on top was never stored, so it contained random data that made it always look like it was a different move. So when a lower score for the same move came in to overrule it, it would never be sorted above it, because it didn't realize it was the same move, and that the higher score thus was no longer valid.

The latest snapshot in my http://hgm.nubati.net/cgi-bin/gitweb.cgi 'master' branch now contains a version that fixes this. It also has the feature that you can hide or show columns in the Engine Output window by right-clicking their headers, and with the Polyglot in the 'learn' branch of that same repository it would also allow you to show tbhits, seldep and knps there. (Provided you switch that on in the Engine Settings with the option Polyglot ShowTbHits.)

Post Reply