New Release: AdaChess v4.0

Discussion of chess software programming and technical issues.

Moderator: Ras

alessandro
Posts: 52
Joined: Tue Aug 12, 2014 11:21 am
Location: Lund
Full name: Alessandro Iavicoli

New Release: AdaChess v4.0

Post by alessandro »

A warm greeting to all, I am writing to let you know that I have just released the new version of the AdaChess engine that I hope you are familiar with.

The enigine is GPL licences and available with source and a precompiled executable at the new location: Current release has a playing strength which I estimate to be ELO 2200-2300 heavily depends on luck ;)

What's new

This version contains a many overall bug fixes, some general improvements in search and evaluation, code refinment and two additional interesting features:

Perft/Divide both with statistics

From the initial location, the divide 5 command produces this output:

Code: Select all

Move                 Nodes        Captures      En-Passant         Castles      Promotions          Checks    Discovery C.       Double C.      Checkmates
Nc3                 234656            4686               0               0               0            2918               0               0               8
Na3                 198572            2983               0               0               0            1751               0               0               8
Nh3                 198502            2993               0               0               0             497               0               0               8
Nf3                 233491            4676               0               0               0             432               0               0               0
a3                  181046            1648               0               0               0             467               0               0               8
a4                  217832            2460              19               0               0             322               0               0               8
b3                  215255            2505               0               0               0             353               0               0               8
b4                  216145            3704              35               0               0             472               2               0               8
c3                  222861            3670               0               0               0            2508               0               0              12
c4                  240082            4787              38               0               0            1992               2               0              12
d3                  328511            5344               0               0               0             357               0               0               8
d4                  361790            8307              37               0               0             686               0               0              12
e3                  402988            9141               0               0               0            5835               0               0             109
e4                  405385           10952              37               0               0            5784               0               0             106
f3                  178889            1507               0               0               0             320               0               0               0
f4                  198473            3082              38               0               0             465               0               0               8
g3                  217210            2546               0               0               0             893               0               0               8
g4                  214048            3550              35               0               0             365               2               0               0
h3                  181044            1646               0               0               0             465               0               0               8
h4                  218829            2532              19               0               0             469               0               0               8
you can run the engine, and all the commands, with any notation by specifying it via command line:

Code: Select all

adachess.exe --notation [winboard|san|lan|iccf]
use this feature to debug your engine!
Note that when a notation is specified, the engine will output moves in that notation but still reads input moves in any known notation.

Move annotation in real time
Also, I have finally added annotations for moves, which happens in real time on the pv. One thing I really wanted badly to implement was the move annotation from the engine perspective (not the human perspective!) to read what the engine really "feels". The annotations can appear anywhere on the pv, not just on the first move. The algorithm is still in beta-version, needing fine-tuning, nonetheless it is interesting enough to watch the engine play and occasionally hear it exult! This is an example of output from a rand23om position
[d]r2r2k1/pp3ppp/2p5/q7/5Q2/2PB3R/bP3PPP/4R1K1 w - - 2 21

Code: Select all

Depth   Time        Nodes  Score  Principal Variation
 1/1    0.00          127   0.46  1. Bxh7+
 2/3    0.01          871   0.57  1. Bxh7+ Kh8
 3/4    0.02         3003   1.44  1. Bxh7+ Kf8 2. Rg3
 4/5    0.05        18062   1.57  1. Bxh7+ Kf8 2. Rg3 f6
 5/7    0.10        41115   1.75  1. Bxh7+ Kf8 2. Bf5 f6 3. Rh8+ Kf7
 6/9    0.30       130466   1.99  1. Bxh7+ Kf8 2. Bg6 f6 3. Rh8+ Bg8 4. Bh7 Kf7
 7/12   0.39       172256   2.21  1. Bxh7+ Kf8 2. Bg6 f6 3. Rh8+ Bg8 4. Qe3 Qe5 5. Qxe5 fxe5 6. Rxe5
 7/12   0.93       449520   2.21  1. Bxh7+ Kf8 2. Bg6 f6 3. Rh8+ Bg8 4. Qe3 Qe5 5. Qxe5 fxe5 6. Rxe5
 8/12   1.31       631922   2.21  1. Bxh7+ Kf8 2. Bg6 f6 3. Rh8+ Bg8 4. Qe3 Qe5 5. Qxe5 fxe5 6. Rxe5
 8/12   2.82      1360010   2.21  1. Bxh7+ Kf8 2. Bg6 f6 3. Rh8+ Bg8 4. Qe3 Qe5 5. Qxe5 fxe5 6. Rxe5
 9/13   4.06      1912178   5.41  1. Bxh7+ Kf8 2. b4 Qd5 3. Bg6 f6 4. Rh8+ Qg8 5. Rxg8+ Kxg8 6. Qc7 Rab8
 9/12   8.89      4249317   5.73  1. b4!! Rxd3 2. bxa5 Rxh3 3. gxh3 Be6 4. Rb1 b6 5. axb6 axb6 6. Rxb6
 9/12   9.31      4480291   5.73  1. b4!! Rxd3 2. bxa5 Rxh3 3. gxh3 Be6 4. Rb1 b6 5. axb6 axb6 6. Rxb6
10/12  11.66      5579462   5.89  1. b4!! Rxd3!? 2. bxa5 Rxh3 3. gxh3 Bd5 4. Qc7 c5 5. Qxc5 Bc6 6. Qg5
Please enjoy to play with AdaChess and to navigate in the source code! :)
--
AdaChess - Smart Chess Engine - https://github.com/adachess/AdaChess

Image
User avatar
Gabor Szots
Posts: 1434
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: New Release: AdaChess v4.0

Post by Gabor Szots »

Hi Alessandro,

I have only just come across with your announcement. Congratulations for the significant improvement. I am starting a tournament with the new AdaChess soon.
Gabor Szots
CCRL testing group
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: New Release: AdaChess v4.0

Post by mvanthoor »

alessandro wrote: Thu Nov 09, 2023 10:00 pm A warm greeting to all, I am writing to let you know that I have just released the new version of the AdaChess engine that I hope you are familiar with.
Congratulations on the new release :)

What IDE and/or other tools are you using to write this engine? I was thinking about using the GNU GNAT compiler from 2019, and take a look if there's a language extension available for VSCode. I've considered Ada for my own engine. In the end I chose Rust, but I may yet, at some point, port the engine to other programming languages.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
alessandro
Posts: 52
Joined: Tue Aug 12, 2014 11:21 am
Location: Lund
Full name: Alessandro Iavicoli

Re: New Release: AdaChess v4.0

Post by alessandro »

I am using the GNAT Programming Studio (GPS), which is dveloped by AdaCore and provided for free: https://github.com/AdaCore/gnatstudio
The GPS is everything that you need for AdaChess. Nowadays a package manager is becaming the new standard - called ALIRE - but for my purpose I neced needed it since AdaChess does not use any external library.
--
AdaChess - Smart Chess Engine - https://github.com/adachess/AdaChess

Image
alessandro
Posts: 52
Joined: Tue Aug 12, 2014 11:21 am
Location: Lund
Full name: Alessandro Iavicoli

Re: New Release: AdaChess v4.0

Post by alessandro »

Gabor Szots wrote: Wed Jan 10, 2024 7:43 pm Hi Alessandro,

I have only just come across with your announcement. Congratulations for the significant improvement. I am starting a tournament with the new AdaChess soon.
Thanks! Please let me know if you detect an estimated ELO and of course if you report me any bug I appreciate!
--
AdaChess - Smart Chess Engine - https://github.com/adachess/AdaChess

Image
User avatar
Gabor Szots
Posts: 1434
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: New Release: AdaChess v4.0

Post by Gabor Szots »

alessandro wrote: Sat Jan 13, 2024 6:27 pm
Gabor Szots wrote: Wed Jan 10, 2024 7:43 pm Hi Alessandro,

I have only just come across with your announcement. Congratulations for the significant improvement. I am starting a tournament with the new AdaChess soon.
Thanks! Please let me know if you detect an estimated ELO and of course if you report me any bug I appreciate!
Just follow the CCRL blitz page. Next week it will be there.
Gabor Szots
CCRL testing group
User avatar
Gabor Szots
Posts: 1434
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: New Release: AdaChess v4.0

Post by Gabor Szots »

alessandro wrote: Sat Jan 13, 2024 6:27 pm if you report me any bug I appreciate!
Well, I noticed it exceeds time at around move 130 (TC is 2 mins + 1 secs).
Gabor Szots
CCRL testing group
alessandro
Posts: 52
Joined: Tue Aug 12, 2014 11:21 am
Location: Lund
Full name: Alessandro Iavicoli

Re: New Release: AdaChess v4.0

Post by alessandro »

Gabor Szots wrote: Sun Jan 14, 2024 11:10 am Well, I noticed it exceeds time at around move 130 (TC is 2 mins + 1 secs).
I found that after a certain amount of moves.. something goes wrong. I have to investigate which kind of array goes out of boundaries :)
--
AdaChess - Smart Chess Engine - https://github.com/adachess/AdaChess

Image
alessandro
Posts: 52
Joined: Tue Aug 12, 2014 11:21 am
Location: Lund
Full name: Alessandro Iavicoli

Re: New Release: AdaChess v4.0

Post by alessandro »

Gabor Szots wrote: Sat Jan 13, 2024 7:41 pm Just follow the CCRL blitz page. Next week it will be there.
Thanks! I'm curious if this time I get the 2000 elo :)
--
AdaChess - Smart Chess Engine - https://github.com/adachess/AdaChess

Image
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: New Release: AdaChess v4.0

Post by mvanthoor »

alessandro wrote: Wed Jan 17, 2024 10:33 pm Thanks! I'm curious if this time I get the 2000 elo :)
Good luck :)

Maybe, at some point, you may get a competitor. I've looked into Ada again, and the 2012 and 2022 versions seem to have added some great modern features. Also, I've discovered that AdaCore now has an open-source language server for VSCode (it seems they've quit their own GNAT Studio, and built a new one on the VSCode codebase, but they did release the language server as a VSCode extension as well). In addition, it has the Alire package manager, which works A LOT like Rust's Cargo. It even calls the modules "crates", and it uses the TOML formatting system. I can even just type 'alr build --release' instead of "cargo build --release".

I'm now in the process of (finally) writing the Texel Tuner for Rustic, but I'm VERY tempted to start an Ada port of the engine after I release Rustic 4.

(If Rust hadn't come along with Edition 2018, which fixed some glaring annoyances from Version 1.0 / Edition 2015, I would possibly have chosen Ada for my engine.) Rust will stay my main language, but I'd love to have an Ada port of the engine as well. (Of the main chess playing part that is; at least at first.)

But first I should finish my current Rustic version.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL