Arasan 20.3

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

Moderators: hgm, Rebel, chrisw

Colin-G
Posts: 191
Joined: Mon Oct 31, 2016 6:30 pm
Location: England

Re: Arasan 20.3

Post by Colin-G »

Thanks to Jon for the new version.
I have been using Arasan for many years, starting with version 8.1
The lastest version I have been using until a few weeks ago in my engine matches was v17.3
I updated to v20.2 recently and now have tried v20.3

Just a minor point, the downloaded native linux versions of both of these fail to use the Syzygy tablebases in xboard.
I tried both popcnt and non-popcnt versions and also on different computers, intel and amd cpus and Mint 17 and 18.
The Windows versions were ok with wine and Windows 10.

I then downloaded the source files for v20.2 and compiled it myself.
Without making any changes to the Makefile, I just typed "make" to create the linux executable.
This executable worked fine and uses the Syzygy tablebases ok.
The .rc file was the same file that the downloaded executables used.
i.e. my executable, the downloaded executables and the .rc file are in the same folder.
I had set the path for the tablebases in the .rc file previously.
I then made the popcnt version which also worked.

v20.3 behaved exactly the same. I had to create my own executable to use Syzygy.
Just curious why this is so. I don't remember having similar problems with v17.3 which used Nalimov tablebases.
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Arasan 20.3

Post by jdart »

I will take a look at the Linux executables.

But one thing to be aware of is that setting the tablebase path in the .rc file is generally not sufficient to make it work with xboard. (There is a warning about this in the README file).

You need to set the egtpath for xboard, either in the UI or on the command line.

For example I use this on the command line:
-egtFormats "syzygy:/home/jdart/chess/syzygy"
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Arasan 20.3

Post by jdart »

I think the reason you were having an issue is that the executables I distribute support all 3 tablebase formats (Nalimov, Gaviota and Syzygy). If you don't configure the egtpath, xboard on startup sends a command with the default options which I believe selects Nalimov tablebases and sets no path. This is after the .rc file is read, so it is overriding it.

If you build Arasan from scratch and don't alter the Makefile, you get only Syzygy tb support and the overriding doesn't happen.

I don't think there is a fix for this because it is really a consequence of how xboard and the xboard protocol work, and that is kind of broken IMO, but it all works if the tablebase path is set explicitly for xboard.

However, I am probably going to remove Nalimov and Gaviota support at some point and then this issue will go away, at least for xboard, but I still recommend setting the tablebase options in whatever GUI you have and not relying on the .rc file. The .rc file works fine if running Arasan from the command line but GUIs have their own behavior and it may not work in that case.

--Jon
Colin-G
Posts: 191
Joined: Mon Oct 31, 2016 6:30 pm
Location: England

Re: Arasan 20.3

Post by Colin-G »

jdart wrote:I think the reason you were having an issue is that the executables I distribute support all 3 tablebase formats (Nalimov, Gaviota and Syzygy). If you don't configure the egtpath, xboard on startup sends a command with the default options which I believe selects Nalimov tablebases and sets no path. This is after the .rc file is read, so it is overriding it.

If you build Arasan from scratch and don't alter the Makefile, you get only Syzygy tb support and the overriding doesn't happen.

I don't think there is a fix for this because it is really a consequence of how xboard and the xboard protocol work, and that is kind of broken IMO, but it all works if the tablebase path is set explicitly for xboard.

However, I am probably going to remove Nalimov and Gaviota support at some point and then this issue will go away, at least for xboard, but I still recommend setting the tablebase options in whatever GUI you have and not relying on the .rc file. The .rc file works fine if running Arasan from the command line but GUIs have their own behavior and it may not work in that case.

--Jon
Thanks for the quick reply. I think that explains it.
I have been using xboard since I started with linux in 2001.
Xboard did not have as many features then as it does now and so I developed a graphical tcl/tk program to select engines and control matches etc.
This automatically produces a bash script which runs xboard.
Arasan was set up to run via the command line as a winboard/xboard engine (not uci mode)
The bash script produced was

Code: Select all

#!/bin/bash
cd ~/mychess
lx="-xexit -buttons -xautoflag -size 64x64 -bell -hideThinkingFromHuman false -quiet -sgf /home/colin/bin/match/temp.pgn -pieceMenu false"
/usr/games/xboard -fd ./engines/Arasan/v20.3/linux -fcp ./"arasanx-64-popcnt" -tc 5 -mps 40 -xponder $lx
I obviously now use a recent version of xboard with all the features, but still like to use my tcl/tk control program.
I was not aware of the egtpath for xboard parameter. I have just seen it in the xboard menus.
All my engines get the tablebase location (if they need it) from their engine.ini (xboard engine) or polyglot.ini (uci engine) files.
supersharp77
Posts: 1242
Joined: Sat Jul 05, 2014 7:54 am
Location: Southwest USA

Re: Arasan 20.3

Post by supersharp77 »

Thx Jon... We Love Arasan! Great Work! :D :wink:
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Arasan 20.3

Post by tpoppins »

Tablebase functionality is broken under Windows as well.

[d]8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
Using the POPCNT exec:

Code: Select all

Arasan 20.3 Copyright 1994-2017 by Jon Dart. All Rights Reserved.
uci
# adding to pending list uci, list size=0
# got cmd (main): uci
# calling do_command(main):uci
# do_command: uci
id name Arasan 20.3
id author Jon Dart
option name Hash type spin default 64 min 4 max 64000
option name Ponder type check default true
option name Use tablebases type check default true
option name Tablebases type combo var None var Syzygy var Nalimov var Gaviota default Syzygy
option name GaviotaTbPath type string default gtb
option name GaviotaTbCache type spin default 8 min 1 max 32
option name NalimovPath type string default TB
option name NalimovCache type spin default 8 min 1 max 32
option name SyzygyTbPath type string default E:\345
option name SyzygyUse50MoveRule type check default true
option name SyzygyProbeDepth type spin default 4 min 0 max 64
option name MultiPV type spin default 1 min 1 max 10
option name OwnBook type check default true
option name Book selectivity type spin default 50 min 0 max 100
option name Threads type spin default 1 min 1 max 64
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 2600 min 1000 max 2600
uciok
# adding to pending list setoption name Use tablebases value true, list size=0
# got cmd (main): setoption name Use tablebases value true
# calling do_command(main):setoption name Use tablebases value true
# do_command: setoption name Use tablebases value true
# adding to pending list setoption name Tablebases value Syzygy, list size=0
# got cmd (main): setoption name Tablebases value Syzygy
# calling do_command(main):setoption name Tablebases value Syzygy
# do_command: setoption name Tablebases value Syzygy
# adding to pending list setoption name SyzygyTbPath value e:\345, list size=0
# got cmd (main): setoption name SyzygyTbPath value e:\345
# calling do_command(main):setoption name SyzygyTbPath value e:\345
# do_command: setoption name SyzygyTbPath value e:\345
position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
# adding to pending list position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91, list size=0
# got cmd (main): position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
# calling do_command(main):position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
# do_command: position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
go depth 30
# adding to pending list go depth 30, list size=0
# got cmd (main): go depth 30
# calling do_command(main):go depth 30
# do_command: go depth 30
# in search()
info multipv 1 depth 1 score cp -121 time 0 nodes 34 hashfull 0 pv e1f2
info multipv 1 depth 1 score cp -121 time 0 nodes 152 hashfull 0 pv e1f2
info multipv 1 depth 2 score cp -160 time 0 nodes 832 hashfull 0 pv e1f2 f7f6
info multipv 1 depth 3 score cp -128 time 1 nodes 2178 hashfull 0 pv g5g4 b4c4 e1f1
info multipv 1 depth 4 score cp -135 time 2 nodes 2803 hashfull 0 pv e1f2 f7f6 g5a5 b4b6
info score cp -116 lowerbound
info depth 5 currmove e1f2 currmovenumber 0
info multipv 1 depth 5 score cp -116 lowerbound time 2 nodes 3211 hashfull 0 pv e1f2 f7f6
info multipv 1 depth 5 score cp -80 time 3 nodes 4210 hashfull 1 pv e1f2 f7f6 g5a5 b4b6 f2f3
info multipv 1 depth 6 score cp -99 upperbound time 4 nodes 5077 hashfull 1 pv e1f2 f7f6 g5a5 b4b6 f2f3
# ply 0 fail low, re-searching ... value=-0.99 fails=1
info multipv 1 depth 6 score cp -136 upperbound time 4 nodes 5554 hashfull 1 pv e1f2 f7f6 g5a5 b4b6 f2f3
# ply 0 fail low, re-searching ... value=-1.37 fails=2
# elapsed time=5 target=0
# elapsed time=5 target=0
info multipv 1 depth 6 score cp -127 time 5 nodes 6575 hashfull 1 pv e1f2 f7f6 g5g8 f6f5 g8f8 f5e4 f8e8 e4d3
# elapsed time=6 target=0
# elapsed time=8 target=0
info multipv 1 depth 7 score cp -140 time 8 nodes 9721 hashfull 2 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4
# elapsed time=9 target=0
# elapsed time=12 target=0
info multipv 1 depth 8 score cp -146 time 12 nodes 16546 hashfull 3 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h4
# elapsed time=13 target=0
# elapsed time=14 target=0
info multipv 1 depth 9 score cp -137 time 14 nodes 19657 hashfull 4 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h3
# elapsed time=16 target=0
# elapsed time=17 target=0
info multipv 1 depth 10 score cp -121 time 17 nodes 24396 hashfull 4 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5e4 f8e8 e4d5 e8e2
# elapsed time=19 target=0
info score cp -102 lowerbound
info depth 11 currmove e1f2 currmovenumber 0
# elapsed time=20 target=0
info multipv 1 depth 11 score cp -102 lowerbound time 20 nodes 28493 hashfull 5 pv e1f2 f7f6
# elapsed time=21 target=0
# elapsed time=22 target=0
info multipv 1 depth 11 score cp -102 time 22 nodes 31587 hashfull 6 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8f8
# elapsed time=26 target=0
# elapsed time=29 target=0
info multipv 1 depth 12 score cp -102 time 29 nodes 43625 hashfull 8 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8f8 g6g5
# elapsed time=35 target=0
# elapsed time=37 target=0
info multipv 1 depth 13 score cp -102 time 37 nodes 57982 nps 1567081 hashfull 10 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8f8 g6g5 f8g8 g5h6
# elapsed time=47 target=0
info score cp -83 lowerbound
info depth 14 currmove e1f2 currmovenumber 0
# elapsed time=48 target=0
info multipv 1 depth 14 score cp -83 lowerbound time 48 nodes 76767 nps 1599312 hashfull 13 pv e1f2 f7f6
# elapsed time=62 target=0
# elapsed time=63 target=0
info multipv 1 depth 14 score cp -60 time 63 nodes 102853 nps 1632587 hashfull 17 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6h6 g8g4 f4f3 g4g8
# elapsed time=86 target=0
info score cp -41 lowerbound
info depth 15 currmove e1f2 currmovenumber 0
# elapsed time=87 target=0
info multipv 1 depth 15 score cp -41 lowerbound time 87 nodes 143126 nps 1645126 hashfull 22 pv e1f2 f7f6
# elapsed time=125 target=0
# elapsed time=126 target=0
info multipv 1 depth 15 score cp -22 time 126 nodes 209101 nps 1659531 hashfull 32 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6h6 g8g4 f4f3 g4a4 b3c3
# elapsed time=145 target=0
# elapsed time=146 target=0
info multipv 1 depth 16 score cp -22 time 146 nodes 241991 nps 1657472 hashfull 36 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6h6 g8g4 f4f3 g4f4 b3c3 f4f3
# elapsed time=203 target=0
# elapsed time=204 target=0
# time check interval=1057 elapsed_time=204 target=0
info multipv 1 depth 17 score cp -15 time 204 nodes 345037 nps 1691357 hashfull 51 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6h6 g8g4 h6h7 g4f4 b3b1 f2f3 b1h1
# elapsed time=301 target=0
info depth 18 currmove g5g4 currmovenumber 1
info depth 18 currmove e1f1 currmovenumber 2
info depth 18 currmove e1e2 currmovenumber 3
info depth 18 currmove g5c5 currmovenumber 4
info depth 18 currmove g5a5 currmovenumber 5
info depth 18 currmove g5f5 currmovenumber 6
info depth 18 currmove g5g2 currmovenumber 7
info depth 18 currmove g5e5 currmovenumber 8
info depth 18 currmove g5g1 currmovenumber 9
info depth 18 currmove g5h5 currmovenumber 10
info depth 18 currmove g5d5 currmovenumber 11
info depth 18 currmove e1d2 currmovenumber 12
info depth 18 currmove e1d1 currmovenumber 13
info depth 18 currmove g5g8 currmovenumber 14
info depth 18 currmove g5b5 currmovenumber 15
info depth 18 currmove g5g6 currmovenumber 16
info depth 18 currmove g5g7 currmovenumber 17
info depth 18 currmove g5g3 currmovenumber 18
# elapsed time=304 target=0
# time check interval=1049 elapsed_time=304 target=0
info multipv 1 depth 18 score cp -12 time 304 nodes 510252 nps 1678460 hashfull 75 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e7 f4f5 b3b1 f5f4 e7e8 f4f3
info depth 19 currmove e1f2 currmovenumber 0
# elapsed time=360 target=0
info depth 19 currmove g5g4 currmovenumber 1
info depth 19 currmove e1f1 currmovenumber 2
info depth 19 currmove e1e2 currmovenumber 3
info depth 19 currmove g5c5 currmovenumber 4
info depth 19 currmove g5a5 currmovenumber 5
info depth 19 currmove g5f5 currmovenumber 6
info depth 19 currmove g5g2 currmovenumber 7
info depth 19 currmove g5e5 currmovenumber 8
info depth 19 currmove g5g1 currmovenumber 9
info depth 19 currmove g5h5 currmovenumber 10
info depth 19 currmove g5d5 currmovenumber 11
info depth 19 currmove e1d2 currmovenumber 12
info depth 19 currmove e1d1 currmovenumber 13
info depth 19 currmove g5g8 currmovenumber 14
info depth 19 currmove g5b5 currmovenumber 15
info depth 19 currmove g5g6 currmovenumber 16
info depth 19 currmove g5g7 currmovenumber 17
info depth 19 currmove g5g3 currmovenumber 18
# elapsed time=364 target=0
# time check interval=1055 elapsed_time=364 target=0
info multipv 1 depth 19 score cp -12 time 364 nodes 614709 nps 1688760 hashfull 90 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e7 f4e4 e7d6 e4f4 b3c3 f4f3
info depth 20 currmove e1f2 currmovenumber 0
# elapsed time=511 target=0
info depth 20 currmove g5g4 currmovenumber 1
info depth 20 currmove e1f1 currmovenumber 2
info depth 20 currmove e1e2 currmovenumber 3
info depth 20 currmove g5c5 currmovenumber 4
info depth 20 currmove g5a5 currmovenumber 5
info depth 20 currmove g5f5 currmovenumber 6
info depth 20 currmove g5g2 currmovenumber 7
info depth 20 currmove g5e5 currmovenumber 8
info depth 20 currmove g5g1 currmovenumber 9
info depth 20 currmove g5h5 currmovenumber 10
info depth 20 currmove g5d5 currmovenumber 11
info depth 20 currmove e1d2 currmovenumber 12
info depth 20 currmove e1d1 currmovenumber 13
info depth 20 currmove g5g8 currmovenumber 14
info depth 20 currmove g5b5 currmovenumber 15
info depth 20 currmove g5g6 currmovenumber 16
info depth 20 currmove g5g7 currmovenumber 17
info depth 20 currmove g5g3 currmovenumber 18
# elapsed time=515 target=0
# time check interval=1076 elapsed_time=515 target=0
info multipv 1 depth 20 score cp -11 time 515 nodes 886769 nps 1721881 hashfull 123 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e7 f4f3 b3b2 f2f1 e7d6 f3f2 b2b1 f1g2
info depth 21 currmove e1f2 currmovenumber 0
# elapsed time=575 target=0

*** snip***

# elapsed time=4559 target=0
# time check interval=1117 elapsed_time=4559 target=0
info multipv 1 depth 30 score cp 0 time 4559 nodes 8151164 nps 1787928 hashfull 682 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e7 f4f3 b3b1 f3a3 b1b8 a3a7 e7d6 a7a6 d6d7 a6a7 d7e6 a7a6 e6f7 a6a3 b8c8 f2g3 f7e7 a3e3 e7f6 e3a3 c8g8 g3h2
# exiting root search, move = e1-f2
# search done : move = e1-f2
info multipv 1 depth 30 score cp 0 time 4559 nodes 8151164 nps 1787928 hashfull 682 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e7 f4f3 b3b1 f3a3 b1b8 a3a7 e7d6 a7a6 d6d7 a6a7 d7e6 a7a6 e6f7 a6a3 b8c8 f2g3 f7e7 a3e3 e7f6 e3a3 c8g8 g3h2
bestmove e1f2 ponder f7f6
No tbhits, the eval should be an instant 0 cp for this drawn 5-men position.
Additionally it crashes quickly with an exception error under Fritz (14 and 15 tested) GUIs if the .rc file is not present and/or TB support is enabled.

Oddly, sometime I can get tbhits from the Fritz GUI if Arasan is installed without configuring any options - must be reading them from the .rc? It will invariably make the GUI throw up an exception error in short order even then. I tested v19.1 for the sake of comparison and it exhibits the same problems, BTW.

I'm sad to see that you don't support or recommend MinGW, John. Under Cygwin I can get no further than this:

Code: Select all

admin@NA3 ~
$ cd /Arasan/src

admin@NA3 /Arasan/src
$ make
fatal: Not a git repository (or any of the parent directories): .git
mkdir -p ../build
mkdir -p ../tune_build
mkdir -p ../bin
mkdir -p ../profile
mkdir -p ../prof_data
cc -Ofast -fno-rtti -fno-enforce-eh-specs -msse3 -DNDEBUG  -std=c++11 -Wall -fno-strict-aliasing -DUSE_INTRINSICS -DUSE_ASM -I. -DSYZYGY_TBS -DARASAN_VERSION=20.3.0 -D_64BIT -DSMP -DSMP_STATS  -c -o ../build/arasanx.o arasanx.cpp
/c/cygwin64/bin/cc: /c/cygwin64/bin/cc: cannot execute binary file
make: *** [../build/arasanx.o] Error 126

admin@NA3 /Arasan/src
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Arasan 20.3

Post by Guenther »

tpoppins wrote:Tablebase functionality is broken under Windows as well.

[d]8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
Using the POPCNT exec:

Code: Select all

Arasan 20.3 Copyright 1994-2017 by Jon Dart. All Rights Reserved.
uci
# adding to pending list uci, list size=0
# got cmd (main): uci
# calling do_command(main):uci
# do_command: uci
id name Arasan 20.3
id author Jon Dart
option name Hash type spin default 64 min 4 max 64000
option name Ponder type check default true
option name Use tablebases type check default true
option name Tablebases type combo var None var Syzygy var Nalimov var Gaviota default Syzygy
option name GaviotaTbPath type string default gtb
option name GaviotaTbCache type spin default 8 min 1 max 32
option name NalimovPath type string default TB
option name NalimovCache type spin default 8 min 1 max 32
option name SyzygyTbPath type string default E:\345
option name SyzygyUse50MoveRule type check default true
option name SyzygyProbeDepth type spin default 4 min 0 max 64
option name MultiPV type spin default 1 min 1 max 10
option name OwnBook type check default true
option name Book selectivity type spin default 50 min 0 max 100
option name Threads type spin default 1 min 1 max 64
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 2600 min 1000 max 2600
uciok
# adding to pending list setoption name Use tablebases value true, list size=0
# got cmd (main): setoption name Use tablebases value true
# calling do_command(main):setoption name Use tablebases value true
# do_command: setoption name Use tablebases value true
# adding to pending list setoption name Tablebases value Syzygy, list size=0
# got cmd (main): setoption name Tablebases value Syzygy
# calling do_command(main):setoption name Tablebases value Syzygy
# do_command: setoption name Tablebases value Syzygy
# adding to pending list setoption name SyzygyTbPath value e:\345, list size=0
# got cmd (main): setoption name SyzygyTbPath value e:\345
# calling do_command(main):setoption name SyzygyTbPath value e:\345
# do_command: setoption name SyzygyTbPath value e:\345
position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
# adding to pending list position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91, list size=0
# got cmd (main): position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
# calling do_command(main):position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
# do_command: position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
go depth 30
# adding to pending list go depth 30, list size=0
# got cmd (main): go depth 30
# calling do_command(main):go depth 30
# do_command: go depth 30
# in search()
...snip...
# search done : move = e1-f2
info multipv 1 depth 30 score cp 0 time 4559 nodes 8151164 nps 1787928 hashfull 682 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e7 f4f3 b3b1 f3a3 b1b8 a3a7 e7d6 a7a6 d6d7 a6a7 d7e6 a7a6 e6f7 a6a3 b8c8 f2g3 f7e7 a3e3 e7f6 e3a3 c8g8 g3h2
bestmove e1f2 ponder f7f6
No tbhits, the eval should be an instant 0 cp for this drawn 5-men position.
Additionally it crashes quickly with an exception error under Fritz (14 and 15 tested) GUIs if the .rc file is not present and/or TB support is enabled.

...snip...
Hi Thomas,

I tried to reproduce your output via cmd with your commands and was successful,
but with ucinewgame after uci it reads the tbs path from the rc file.
(and probably also when giving the tbs commands w/o rc file)

The snippet with the decisive diff:

Code: Select all

Arasan 20.3 Copyright 1994-2017 by Jon Dart. All Rights Reserved.
uci
id name Arasan 20.3
id author Jon Dart
option name Hash type spin default 64 min 4 max 64000
option name Ponder type check default true
option name Use tablebases type check default true
option name Tablebases type combo var None var Syzygy var Nalimov var Gaviota de
fault Syzygy
option name GaviotaTbPath type string default gtb
option name GaviotaTbCache type spin default 8 min 1 max 32
option name NalimovPath type string default TB
option name NalimovCache type spin default 8 min 1 max 32
option name SyzygyTbPath type string default C:\Syzygy_5
option name SyzygyUse50MoveRule type check default true
option name SyzygyProbeDepth type spin default 4 min 0 max 64
option name MultiPV type spin default 1 min 1 max 10
option name OwnBook type check default true
option name Book selectivity type spin default 50 min 0 max 100
option name Threads type spin default 1 min 1 max 64
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 2600 min 1000 max 2600
uciok
ucinewgame
found 5-man Syzygy tablebases in directory C:\Syzygy_5
position fen 8/5k2/8/6R1/1r3p2/8/8/4K3 w - - 0 91
go depth 30
...
info multipv 1 depth 15 score cp -63 time 721 nodes 120738 nps 167459 tbhits 1 h
ashfull 19 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8f8 h
5g5 f8g8 g5h6 g8f8 b3b4 f8g8
...
info depth 30 currmove e1f2 currmovenumber 0
info depth 30 currmove e1e2 currmovenumber 1
info nps 809125 nodes 8172169 hashfull 666
info depth 30 currmove g5g4 currmovenumber 7
info depth 30 currmove e1f1 currmovenumber 8
info depth 30 currmove g5c5 currmovenumber 9
info depth 30 currmove g5a5 currmovenumber 10
info depth 30 currmove g5f5 currmovenumber 11
info depth 30 currmove g5g2 currmovenumber 12
info depth 30 currmove g5e5 currmovenumber 13
info depth 30 currmove g5g1 currmovenumber 14
info depth 30 currmove g5h5 currmovenumber 15
info depth 30 currmove g5d5 currmovenumber 16
info depth 30 currmove e1d2 currmovenumber 17
info depth 30 currmove e1d1 currmovenumber 18
info multipv 1 depth 30 score cp -1 time 10202 nodes 8230064 nps 806710 tbhits 1
 hashfull 667 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h
8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e6 f4f3 b3b2 f2g3 b2b8 f3e3 e6d5 e3a3 d5d4 g3f
2 b8f8 a3f3 f8c8 f3f4 d4e5 f4a4 e5d6 f2e2 c8c2 e2e3
info multipv 1 depth 30 score cp -1 time 10202 nodes 8230064 nps 806710 tbhits 1
 hashfull 667 pv e1f2 f7f6 g5g8 b4b3 g8f8 f6e5 f8e8 e5f5 e8f8 f5g4 f8g8 g4h5 g8h
8 h5g6 h8g8 g6f7 g8g4 f4f3 g4f4 f7e6 f4f3 b3b2 f2g3 b2b8 f3e3 e6d5 e3a3 d5d4 g3f
2 b8f8 a3f3 f8c8 f3f4 d4e5 f4a4 e5d6 f2e2 c8c2 e2e3
bestmove e1f2 ponder f7f6
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Arasan 20.3

Post by jdart »

The UCI "isready" command will also initialize tablebases.

This is supposed to be always sent on startup.

As noted earlier though if using a GUI, not the command line, you should use the GUI if possible to configure the tablebases and not rely on the .rc file, which may be processed before the GUI attempts setting options based on its configuration.

--Jon
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Arasan 20.3

Post by tpoppins »

No crashes under Cute Chess 1.0.0 and tbhits are reported there fine.

In console mode I get "found 5-man Syzygy tablebases in directory E:\345" after ucinewgame. However, in Fritz GUIs there's nothing ever in the Engine Output pane, even after doing "New Game" from the menu. When tbhits are reported, they are much fewer than in console mode, the NPS are much lower and the PVs are often single-move.

I don't get this problem with Houdini, SF, Komodo, Chiron, Fire, Fizbo and many other engines. If there's anything I can do to help you figure out the problem, Jon?