New engine: belofte

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

Moderators: hgm, Rebel, chrisw

ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Are you compiling with the project/compile.sh script?

For Mac OS X, it will compile both 32 and 64 bit versions. This works fine on Mac OS X 10.8.5, the version I use.... from a higher version on, I do not know exactly when 32 bit support was dropped, the 32 bit compile does no longer work. For those versions, please remove the line defining the 32 bit version. For all Mac OS X versions, I probably could drop the 32 bit versions, as it is 64 bit since a long time and I am not sure if the platforms supporting only 32 bit do actually support C++11....

Change the section at the beginning of the compile.sh file by removing the TARGET32 for darwin.

Code: Select all

  darwin*)   TARGET64=MacOSX-x86-64
             COMPOPT="-std=c++11"
             ;;
fncll wrote: Tue Oct 27, 2020 11:14 pm Any tips on compiling on OSX (10.15.7)? I get the following error:

Code: Select all

ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
At the beginning of the compile I get these warnings:

Code: Select all

ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libc++.tbd, missing required architecture i386 in file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libc++.tbd
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, missing required architecture i386 in file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd
TIA!
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

fncll wrote: Tue Oct 27, 2020 11:14 pm Any tips on compiling on OSX (10.15.7)? I get the following error:

Code: Select all

ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Corrected compile script has been published in sourceforge. Needs an update on source files too.
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Version update: Belofte 2.0.8 has been released on Windows/Linux/Mac in 32 and 64 bit under GPL v2.

Major changes:
  • plays time-based levels when selecting uci protocol
  • implements iterative deepening with bruteforce search
  • Builds are non optimized as compilation with -flto or -march generates problems on Pentium and Celeron class computers.
    If you own a i3 or higher platform recommendation is to recompile.

Code: Select all

cd project & ./compile.sh current
Current strength: the C++ 2.0 series closes in on the 0.2 series in strength. The 0.9 series is still the strongest available.
Stability: uci interface is more stable than all versions before 0.9.3 and available on all platforms.

Comments and contributions welcome.
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
Archimedes
Posts: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: New engine: belofte

Post by Archimedes »

Works on Android so far, but, when using analyzing mode in DroidFish, i see no evaluation information. Also, when starting the engine, i see no information about the engine (version number).

Android builds: https://app.box.com/s/t76uk3b3leaf0xpzxydm2g7p8icndiab
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Thanks a lot for the android build. This is great news. I will start testing right away.
Archimedes wrote: Fri Nov 13, 2020 2:55 pm Works on Android so far, but, when using analyzing mode in DroidFish, i see no evaluation information.
UCI_Analyze.. stuff has not been implemented yet. Could be the reason.
Archimedes wrote: Fri Nov 13, 2020 2:55 pm Also, when starting the engine, i see no information about the engine (version number).
Also, belofte is kind of hybrid xboard / uci without selecting any protocol. To force into uci protocol, either:
  • pass --uci as launch parameter
  • issue uci as first command
  • place an .rc file in the same path as the argv[0] location
  • uncomment the first statement in the testfunction that forces uci mode

    Code: Select all

    AppEI()->execute("uci", "");
  • I could do a conditional compile when detecting android target and force the uci mode as I am not aware of any xboard capable program on android. Any suggestions on #defines for android platform?
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New engine: belofte

Post by Gabor Szots »

First impressions (obtained using Arena, Belofte installed as a UCI engine):

1. No output information.
2. I played a couple of games against it and not once it left its queen en prise for no apparent reason.
Gabor Szots
CCRL testing group
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Thanks for the feedback.

No output is a bit strange. In version 2.0.8 onwards there is iterative deepening and on going to next search depth, there should be output on the best move found till now.

The queen en prise is something I noticed. Search gets cut off when time expires and direct refutation of variation is not done correctly. I should only store score when tree has been completed and rely on previous score found on lower depth... Generally speaking QS search goes very deep without abandoning variations that have huge material loss. I have even seen this in AB searches in my test version.

Well, we only are at version 2.0.8 now, stockfish is at 12.x... I hope to settle this issue. My main priority is to get 3-fold and theoretic draws right, get bullet type time controls right, and convert from minimax to negamax.
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New engine: belofte

Post by Gabor Szots »

I am playing a tournament with it. Seems much weaker than 0.9.12, about 900 Elos. It is about to appear in next week's update.

Many times it does not give a mate in one. In one position it had 2 rooks, 2 bishops and 5 pawns against the lone king and it took a lot of moves till it could deliver mate.
Gabor Szots
CCRL testing group
ydebilloez
Posts: 163
Joined: Tue Jun 27, 2017 11:01 pm
Location: Lubumbashi
Full name: Yves De Billoëz

Re: New engine: belofte

Post by ydebilloez »

Hi Gabor,

Version 2.x is a complete rewrite in c++ because some things were difficult to fix in c code.

Pv variation tracking up to root node of search.
Cross platform multi threading
Move score instead of score relative to resulting position
UCI implementation
...

I could probably get those things fixed in the 0.9.x series but as it got better with 0.9.18, it was only marginally better on easy release and did break a lot of times on windows builds. Let alone Mac. After some feedback on #freechess, I thought it would be easier to restart from scratch in c++.... As expected, my c++ was not up to level and it took me much more time than expected. A lot of evaluation code is not yet in there neither.

My first target is to be UCI wise 100% correct and play bullet and other levels without any bugs. This seems to be the case now.

I feel I am close to fixing the tree search issues and those problems of not seeing easy queen captures will soon be resolved and I should reach 0.9.12 level pretty fast... At least I hope.

I implemented negascout and mtd in the past in c++ for another game. With proper tt, some bitboards, evaluation on move level instead as a tree search result, and pluggable evaluation based on game phase, it has more potential as the 0.9 series I hope.
Yves De Billoëz @ macchess belofte chess
Once owner of a Mephisto I, II, challenger, ... chess computer.
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New engine: belofte

Post by Gabor Szots »

ydebilloez wrote: Sun Nov 22, 2020 10:14 pmWith proper tt, some bitboards, evaluation on move level instead as a tree search result, and pluggable evaluation based on game phase, it has more potential as the 0.9 series I hope.
I'm rooting for you, Yves.
Gabor Szots
CCRL testing group