Arasan 14.0 is available from http://www.arasanchess.org. This is basically the same version that played in the recent CCT14 tournament, plus minor fixes.
Changes in Arasan 14.0:
1) Board::wouldCheck function handles promotions.
2) Much simplifed time management, functions better in particular under very
short time controls.
3) LMR is performed at root node (formerly was not).
4) Null move uses R=3 with verification.
5) Simplified hash table implementation.
6) Move generator defers SEE test on captures until the move is used (this
was done previously in the qsearch but not elsewhere).
7) Better sort algorithm in move generator.
8) Fixes to learning code. Hash table (w/ learn info) was being cleared
at each new game, now learn info is retained.
10) Some code cleanup, esp. conversion from char * to C++ string usage.
11) Arasan uses Gaviota tablebases. Fix tb probing when en passant
capture possible. Tablebase hits now are cached in the hash table.
12) Additional UCI & winboard options supported. GUI now uses the standard
winboard options command to send options to the engine.
13) Fix bug involving mate scores in UCI analysis mode.
14) Makebook program can directly consume PGN.
15) Arasan engine source is released under the MIT license (same license used by the Gaviota tablebase code).
Re 15 - I am releasing the engine code under the MIT license. While Arasan is far from the strength level of top open source or commercial engines, I think it is the strongest engine under this permissive source license. Of course Nalimov tablebase code is not included under this license - it is now packaged separately from the Arasan engine source, and is optional (Arasan can be built with Gaviota tablebase support, or Nalimov, or both, or neither). But binaries I distribute have both Gaviota and Nalimov support.
In addition to Mac binaries, I am now supplying Linux binaries as well. These are not statically linked so there is some chance they may not work on your system, but most likely they will.
--Jon
Arasan 14.0
Moderator: Ras
-
- Posts: 4405
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
-
- Posts: 2661
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Arasan 14.0
Thanks Jon and good luck with this new Arasan!
EDIT: I just noticed that final output (bestmove/ponder) from Arasan (in the console) looks strange
It seems to report bestmove bbbb ponder bbbbpppp instead of just pppp.
Am I missing something?
EDIT: I just noticed that final output (bestmove/ponder) from Arasan (in the console) looks strange
It seems to report bestmove bbbb ponder bbbbpppp instead of just pppp.
Am I missing something?
-
- Posts: 1353
- Joined: Sun Jul 17, 2011 11:14 am
- Full name: Hannah Ravensloft
Re: Arasan 14.0
Ancient GCC complains:
Matthew:out
Code: Select all
mkdir -p ../build
mkdir -p ../export
mkdir -p ../profile
mkdir -p ../prof_data
cc -O3 -fno-rtti -fno-enforce-eh-specs -fno-strict-aliasing -finline-functions -D_MAC -Wall -DUSE_INTRINSICS -DUSE_ASM -DNALIMOV_TBS -I. -Itb -DSMP -DSMP_STATS -c -o ../build/arasanx.o arasanx.cpp
types.h: In function 'void Lock(volatile int&)':
types.h:165: error: '__sync_lock_test_and_set' was not declared in this scope
types.h: In function 'void Unlock(volatile int&)':
types.h:169: error: '__sync_lock_release' was not declared in this scope
arasanx.cpp: In function 'bool do_command(const char*, Board&)':
arasanx.cpp:2165: error: 'name' was not declared in this scope
arasanx.cpp:2166: error: 'value' was not declared in this scope
arasanx.cpp:2173: error: 'value' was not declared in this scope
arasanx.cpp:2193: error: 'value' was not declared in this scope
arasanx.cpp:2196: error: 'value' was not declared in this scope
arasanx.cpp:2199: error: 'value' was not declared in this scope
arasanx.cpp:2211: error: 'value' was not declared in this scope
arasanx.cpp: At global scope:
arasanx.cpp:2217: error: expected unqualified-id before 'else'
arasanx.cpp:2221: error: expected unqualified-id before 'else'
arasanx.cpp:2228: error: expected unqualified-id before 'else'
arasanx.cpp:2284: error: expected unqualified-id before 'else'
arasanx.cpp:2346: error: expected unqualified-id before 'else'
arasanx.cpp:2403: error: expected unqualified-id before 'else'
arasanx.cpp:2407: error: expected unqualified-id before 'else'
arasanx.cpp:2536: error: expected unqualified-id before 'else'
arasanx.cpp:2543: error: expected unqualified-id before 'else'
arasanx.cpp:2546: error: expected unqualified-id before 'else'
arasanx.cpp:2549: error: expected unqualified-id before 'else'
arasanx.cpp:2578: error: expected unqualified-id before 'else'
arasanx.cpp:2581: error: expected unqualified-id before 'else'
arasanx.cpp:2612: error: expected unqualified-id before 'else'
arasanx.cpp:2615: error: expected unqualified-id before 'else'
arasanx.cpp:2618: error: expected unqualified-id before 'else'
arasanx.cpp:2624: error: expected unqualified-id before 'else'
arasanx.cpp:2627: error: expected unqualified-id before 'else'
arasanx.cpp:2649: error: expected unqualified-id before 'else'
arasanx.cpp:2651: error: expected unqualified-id before 'else'
arasanx.cpp:2655: error: expected unqualified-id before 'else'
arasanx.cpp:2659: error: expected unqualified-id before 'else'
arasanx.cpp:2663: error: expected unqualified-id before 'else'
arasanx.cpp:2667: error: expected unqualified-id before 'else'
arasanx.cpp:2670: error: expected unqualified-id before 'else'
arasanx.cpp:2673: error: expected unqualified-id before 'else'
arasanx.cpp:2676: error: expected unqualified-id before 'else'
arasanx.cpp:2683: error: expected unqualified-id before 'else'
arasanx.cpp:2685: error: expected unqualified-id before 'else'
arasanx.cpp:2689: error: expected unqualified-id before 'else'
arasanx.cpp:2692: error: expected unqualified-id before 'else'
arasanx.cpp:2701: error: expected unqualified-id before 'else'
arasanx.cpp:2710: error: expected unqualified-id before 'else'
arasanx.cpp:2716: error: expected unqualified-id before 'else'
arasanx.cpp:2719: error: expected unqualified-id before 'else'
arasanx.cpp:2723: error: expected unqualified-id before 'else'
arasanx.cpp:2726: error: expected unqualified-id before 'else'
arasanx.cpp:2729: error: expected unqualified-id before 'else'
arasanx.cpp:2737: error: expected unqualified-id before 'else'
arasanx.cpp:2739: error: expected unqualified-id before 'else'
arasanx.cpp:2742: error: expected unqualified-id before 'else'
arasanx.cpp:2745: error: expected unqualified-id before 'else'
arasanx.cpp:2749: error: expected unqualified-id before 'else'
arasanx.cpp:2760: error: expected unqualified-id before 'else'
arasanx.cpp:2764: error: expected unqualified-id before 'else'
arasanx.cpp:2766: error: expected unqualified-id before 'else'
arasanx.cpp:2769: error: expected unqualified-id before 'else'
arasanx.cpp:2774: error: expected unqualified-id before 'else'
arasanx.cpp:2776: error: expected unqualified-id before 'else'
arasanx.cpp:2778: error: expected unqualified-id before 'else'
arasanx.cpp:2782: error: expected unqualified-id before 'else'
arasanx.cpp:2797: error: expected unqualified-id before 'else'
arasanx.cpp:2815: error: expected unqualified-id before 'else'
arasanx.cpp:2858: error: expected unqualified-id before 'else'
arasanx.cpp:2993: error: expected unqualified-id before 'return'
arasanx.cpp:2994: error: expected declaration before '}' token
arasanx.cpp:71: warning: 'best_move' defined but not used
arasanx.cpp:98: warning: 'uciWaitState' defined but not used
arasanx.cpp:100: warning: 'cpusSet' defined but not used
arasanx.cpp:101: warning: 'memorySet' defined but not used
arasanx.cpp:363: warning: 'void do_help()' defined but not used
arasanx.cpp:404: warning: 'void save_game()' defined but not used
arasanx.cpp:708: warning: 'int terminate(const Statistics&)' defined but not used
arasanx.cpp:716: warning: 'void edit_board(std::istream&, Board&)' defined but not used
arasanx.cpp:799: warning: 'void ponder(Board&, Move, Move, int)' defined but not used
arasanx.cpp:874: warning: 'Move search(SearchController*, Board&, Statistics&, bool)' defined but not used
arasanx.cpp:975: warning: 'void send_move(Board&, Move&, Statistics&)' defined but not used
arasanx.cpp:1239: warning: 'bool do_pending(Board&)' defined but not used
arasanx.cpp:1346: warning: 'void analyze(Board&)' defined but not used
arasanx.cpp:1377: warning: 'void undo(Board&)' defined but not used
arasanx.cpp:1477: warning: 'void check_command(char*, int&)' defined but not used
arasanx.cpp:1784: warning: 'int nextToken(const std::string&, __gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::string&)' defined but not used
arasanx.cpp:1846: warning: 'void do_test(std::string)' defined but not used
make: *** [../build/arasanx.o] Error 1
tu ne cede malis, sed contra audentior ito
-
- Posts: 4405
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: Arasan 14.0
from the doc/INSTALL file:
"Building Arasan requires gcc 4.2 or above"
"Building Arasan requires gcc 4.2 or above"
-
- Posts: 16
- Joined: Wed Dec 28, 2011 4:49 am
Re: Arasan 14.0
Hello Mr Dart, would it also be possible to make an Android compile so that it would be possible to use it with Aart Bik's Chess for Android?
Thanks for the new release of Arasan.
Thanks for the new release of Arasan.
-
- Posts: 44364
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
Re: Arasan 14.0
Thanks Jon.jdart wrote:Arasan 14.0 is available from http://www.arasanchess.org. This is basically the same version that played in the recent CCT14 tournament, plus minor fixes.

gbanksnz at gmail.com
-
- Posts: 3241
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: Arasan 14.0
Thanks!jdart wrote:from the doc/INSTALL file:
"Building Arasan requires gcc 4.2 or above"
I've just compiled it on Linux (64 bit) w/o any problem.
I'm going to test it in my Open Source Bullet rating list. Should have results in the tournament forum tomorrow.
-
- Posts: 3241
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: Arasan 14.0
I've interupted my testing, as Arasan was losing quite a few games by making illegal moves. Example:jdart wrote:Arasan 14.0 is available from http://www.arasanchess.org. This is basically the same version that played in the recent CCT14 tournament, plus minor fixes.
Changes in Arasan 14.0:
1) Board::wouldCheck function handles promotions.
2) Much simplifed time management, functions better in particular under very
short time controls.
3) LMR is performed at root node (formerly was not).
4) Null move uses R=3 with verification.
5) Simplified hash table implementation.
6) Move generator defers SEE test on captures until the move is used (this
was done previously in the qsearch but not elsewhere).
7) Better sort algorithm in move generator.
8) Fixes to learning code. Hash table (w/ learn info) was being cleared
at each new game, now learn info is retained.
10) Some code cleanup, esp. conversion from char * to C++ string usage.
11) Arasan uses Gaviota tablebases. Fix tb probing when en passant
capture possible. Tablebase hits now are cached in the hash table.
12) Additional UCI & winboard options supported. GUI now uses the standard
winboard options command to send options to the engine.
13) Fix bug involving mate scores in UCI analysis mode.
14) Makebook program can directly consume PGN.
15) Arasan engine source is released under the MIT license (same license used by the Gaviota tablebase code).
Re 15 - I am releasing the engine code under the MIT license. While Arasan is far from the strength level of top open source or commercial engines, I think it is the strongest engine under this permissive source license. Of course Nalimov tablebase code is not included under this license - it is now packaged separately from the Arasan engine source, and is optional (Arasan can be built with Gaviota tablebase support, or Nalimov, or both, or neither). But binaries I distribute have both Gaviota and Nalimov support.
In addition to Mac binaries, I am now supplying Linux binaries as well. These are not statically linked so there is some chance they may not work on your system, but most likely they will.
--Jon
Code: Select all
Finished game 7 (Arasan 14 vs Fruit 2.1): 0-1 {White makes an illegal move: h7h8114}
Also note that it seems to only affect pawn promotions
-
- Posts: 4405
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: Arasan 14.0
I'll investigate. Is this using Winboard or UCI protocol for Arasan?I've interupted my testing, as Arasan was losing quite a few games by making illegal moves. Example:
Code:
Finished game 7 (Arasan 14 vs Fruit 2.1): 0-1 {White makes an illegal move: h7h8114}
Not sure where the 114 comes from (seems all illegal move have 114 at the end). Maybe you forgot to append a \0 to the string, or sth like that
Also note that it seems to only affect pawn promotions
-
- Posts: 543
- Joined: Mon Jul 05, 2010 10:27 pm
Re: Arasan 14.0
Thanks for Arasan 14 and also for the test suite.jdart wrote: I'll investigate. Is this using Winboard or UCI protocol for Arasan?
Im running a match (5+3") against Gaviota 0.85, using UCI and no ilegal moves after 25 games so far.