DkeRee / Trinket

I love giving Trinkets and Checkmates to my friends and family :)
https://computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Trinket%203.5.0%2064-bit#Trinket_3_5_0_64-bit
GNU General Public License v3.0
7 stars 2 forks source link

3.5 exe and 4.0 sources #88

Open SzotsGabor opened 4 months ago

SzotsGabor commented 4 months ago

3.5 does not work for me under Arena. I compiled it myself and it worked but it said it was 4.0. Would you mind clarifying this?

Gabor Szots CCRL

DkeRee commented 4 months ago

3.5 does not work for me under Arena. I compiled it myself and it worked but it said it was 4.0. Would you mind clarifying this?

Gabor Szots CCRL

Hello! Sorry for the inconvenience, I forgot to change the version number. Done, I updated the release. It should work now.

SzotsGabor commented 4 months ago

Hi,

It displays 3.5 now but does not work either. And the sources are from January? 4.0 preceeded 3.5? Exe and sources do not match which is confusing.

EDIT: I can see now that compiling master I get 3.5.0 but compiling the source at 'Assets' I get 4.0.

DkeRee commented 4 months ago

Hi,

It displays 3.5 now but does not work either. And the sources are from January? 4.0 preceeded 3.5? Exe and sources do not match which is confusing.

EDIT: I can see now that compiling master I get 3.5.0 but compiling the source at 'Assets' I get 4.0.

Graham wanted me to send in Trinket. I never felt that Trinket was ready for another round, so I released it as V3.5 What do you mean by compiling the source at 'Assets?' I changed it to print v3.5.0, it should say v3.5.0 and work...

SzotsGabor commented 4 months ago

At this place: https://github.com/DkeRee/Trinket/releases/tag/V3.5.0 there is an exe and 2 source files. The date of the source files is 27 Jan. Compiling this source I obtain an exe which displays 4.0 as its version while the updated exe at the same place says it is v3.5.

DkeRee commented 4 months ago

At this place: https://github.com/DkeRee/Trinket/releases/tag/V3.5.0 there is an exe and 2 source files. The date of the source files is 27 Jan. Compiling this source I obtain an exe which displays 4.0 as its version while the updated exe at the same place says it is v3.5.

Thanks for pointing that out to me. I have fixed it. Let me know if you encounter anything else. Thanks!

SzotsGabor commented 4 months ago

I am already running a gauntlet using my own compile of the master. It seems much stronger than the +300 you predicted.

DkeRee commented 4 months ago

I am already running a gauntlet using my own compile of the master. It seems much stronger than the +300 you predicted.

Fantastic! Unexpected gains in elo like this is what I strive for when developing my engine. Though, I was hesitant to release V3.5 in the first place because, as I said, it's a little buggy. It crashes one out of around 20 thousand games and I simply have not had the time to figure out what is causing it. It randomly appeared at some point into development and I'm not sure exactly what is causing it. If you can print out error messages and send them my way it would be much help 😅

I've been rather busy with college applications this summer so I have not found the time to dig the problem out.

rwbc commented 4 months ago

I can confirm that the 3.5.0 release version also does not work here, only tested from cmd. (Ryzen7 5700G)

To be more precise it opens up and displays correctly its info, but closes after giving the 'uci' command. Regrettably there is no error message and the event viewer log is not very helpful (quite generic), my gut feeling says the binary might have some hard coded path in it and it's trying to find some file.

Guenther (RWBC)

rwbc commented 4 months ago

No problem (except a few warnings) with compiling though and the compiled binary is working ok...

compilation info: (cargo/rust 1.78.0 in msys2)

Admin@ESPRESSO MINGW64 ~/Trinket
# make
cargo rustc --release -- -C target-cpu=native --emit link=Trinket.exe
  Downloaded bytemuck v1.12.1
  Downloaded bytemuck_derive v1.2.1
  Downloaded quote v1.0.21
  Downloaded cozy-chess-types v0.2.1
  Downloaded unicode-ident v1.0.5
  Downloaded proc-macro2 v1.0.47
  Downloaded syn v1.0.102
  Downloaded cozy-chess v0.3.1
  Downloaded 8 crates (683.8 KB) in 1.53s
   Compiling proc-macro2 v1.0.47
   Compiling unicode-ident v1.0.5
   Compiling quote v1.0.21
   Compiling syn v1.0.102
   Compiling cozy-chess-types v0.2.1
   Compiling cozy-chess v0.3.1
   Compiling bytemuck_derive v1.2.1
   Compiling bytemuck v1.12.1
   Compiling trinket v3.5.0 (C:\msys64\home\Admin\Trinket)
warning: variable `extended` is assigned to, but never used
  --> src\search\searcher.rs:79:11
   |
79 |         let mut extended = false;
   |                 ^^^^^^^^
   |
   = note: consider using `_extended` instead
   = note: `#[warn(unused_variables)]` on by default

warning: value assigned to `extended` is never read
  --> src\search\searcher.rs:86:4
   |
86 |             extended = true;
   |             ^^^^^^^^
   |
   = help: maybe it is overwritten before being read?
   = note: `#[warn(unused_assignments)]` on by default

warning: value assigned to `legal_moves` is never read
   --> src\search\searcher.rs:105:11
    |
105 |         let mut legal_moves: Vec<SortedMove> = Vec::with_capacity(64);
    |                 ^^^^^^^^^^^
    |
    = help: maybe it is overwritten before being read?

warning: unused variable: `table_find`
   --> src\search\searcher.rs:481:7
    |
481 |         let table_find = match self.tt.find(board, ply) {
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_find`

warning: value assigned to `move_bits` is never read
   --> src\search\tt.rs:106:4
    |
106 |             move_bits >>= 6;
    |             ^^^^^^^^^
    |
    = help: maybe it is overwritten before being read?

warning: unused variable: `opponent_pieces`
  --> src\eval\draw_oracle.rs:38:6
   |
38 |     let opponent_pieces = board.colors(!color);
   |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_pieces`

warning: function `minor_piece_king` is never used
  --> src\eval\draw_oracle.rs:36:4
   |
36 | fn minor_piece_king(board: &Board, color: Color) -> bool {
   |    ^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: `trinket` (bin "trinket") generated 7 warnings
    Finished `release` profile [optimized] target(s) in 14.09s

running from cmd with 'go infinite':


Trinket V3.5.0
https://github.com/DkeRee/Trinket
If manually operating, initialize engine before use by running the command 'uci' ONCE
Engine runs on UCI protocol
http://wbec-ridderkerk.nl/html/UCIProtocol.html
uci
id name Trinket 3.5.0
id author DkeRee
option name Hash type spin default 16 min 0 max 64000
option name Threads type spin default 1 min 1 max 1
uciok
isready
readyok
position startpos
go infinite
info depth 1 seldepth 1 time 0 score cp 87 nodes 91 nps 321554 pv g1f3
info depth 2 seldepth 4 time 0 score cp 20 nodes 437 nps 643119 pv g1f3 g8f6
info depth 3 seldepth 5 time 1 score cp 46 nodes 1197 nps 1124154 pv d2d4 g8f6 g1f3
info depth 4 seldepth 5 time 1 score cp 20 nodes 2074 nps 1388684 pv d2d4 g8f6 g1f3 d7d5
info depth 5 seldepth 7 time 1 score cp 17 nodes 2905 nps 1518239 pv d2d4 g8f6 g1f3 d7d5 b2b3
info depth 6 seldepth 8 time 2 score cp 20 nodes 4448 nps 1713999 pv d2d4 g8f6 g1f3 d7d5 b2b3 b7b6
info depth 7 seldepth 10 time 4 score cp 4 nodes 10035 nps 2120981 pv d2d4 g8f6 g1f3 d7d5 b2b3 b7b6 f3e5
info depth 8 seldepth 14 time 8 score cp 15 nodes 18328 nps 2255365 pv d2d4 g8f6 g1f3 b7b6 b1c3 d7d5 f3e5 e7e6
info depth 9 seldepth 14 time 14 score cp 9 nodes 34967 nps 2332610 pv d2d4 g8f6 g1f3 d7d5 f3e5 b8c6 b1c3 c6e5 d4e5
info depth 10 seldepth 16 time 23 score cp 9 nodes 55928 nps 2347135 pv d2d4 g8f6 g1f3 d7d5 f3e5 b8c6 b1c3 c8f5 c1e3 c6e5
info depth 11 seldepth 17 time 54 score cp 15 nodes 130588 nps 2382240 pv g1f3 d7d5 e2e3 b8c6 f1b5 c8g4 h2h3 g4f3 d1f3 g8f6 e1h1
info depth 12 seldepth 19 time 85 score cp 20 nodes 206398 nps 2400166 pv g1f3 d7d5 e2e3 g8f6 d2d4 b8c6 b1c3 e7e6 f1b5 f8b4 e1h1 e8h8
info depth 13 seldepth 20 time 161 score cp 9 nodes 395584 nps 2449151 pv g1f3 d7d5 e2e3 g8f6 d2d4 e7e6 c2c4 b8c6 b1c3 f8e7 c4d5
info depth 14 seldepth 21 time 261 score cp 18 nodes 647012 nps 2470761 pv e2e4 d7d5 e4d5 g8f6 g1f3 f6d5 d2d4 c8f5 f1e2 b8c6 c2c4 d5b4 e1h1 b4c2
info depth 15 seldepth 25 time 314 score cp 19 nodes 780504 nps 2482337 pv e2e4 d7d5 e4d5 g8f6 d2d4 f6d5 c2c4 d5f6 b1c3 c8g4 g1f3 g4f3 d1f3 b8c6 d4d5
info depth 16 seldepth 25 time 592 score cp 15 nodes 1456312 nps 2457422 pv e2e4 e7e5 g1f3 b8c6
info depth 17 seldepth 24 time 695 score cp 15 nodes 1710071 nps 2460447 pv e2e4 e7e5 g1f3 b8c6 b1c3 g8f6 d2d4 e5d4 f3d4 f8b4 d4c6 b7c6 d1d4 b4c3 b2c3 e8h8
info depth 18 seldepth 28 time 964 score cp 13 nodes 2363199 nps 2449651 pv e2e4 e7e5 g1f3 b8c6 b1c3 g8f6 f1d3 f8d6 e1h1 e8h8 b2b3 c6d4 f3d4 e5d4
info depth 19 seldepth 30 time 1258 score cp 13 nodes 3064616 nps 2435984 pv e2e4 e7e5 g1f3 b8c6 b1c3 g8f6 f1d3
info depth 20 seldepth 26 time 1883 score cp 23 nodes 4552771 nps 2417391 pv e2e4 e7e5 g1f3 b8c6 d2d4 e5d4 f3d4 g8f6 d4c6
info depth 21 seldepth 30 time 2583 score cp 27 nodes 6231410 nps 2411601 pv e2e4 e7e5 g1f3 b8c6 d2d4
info depth 22 seldepth 31 time 3278 score cp 27 nodes 7871793 nps 2400909 pv e2e4 e7e5 g1f3 b8c6 d2d4 e5d4 f3d4 g8f6 d4c6
info depth 23 seldepth 29 time 5181 score cp 18 nodes 12310589 nps 2376083 pv e2e4 e7e5 g1f3 b8c6 d2d4 e5d4 f3d4 g8f6
info depth 24 seldepth 35 time 8009 score cp 25 nodes 18984012 nps 2370135 pv e2e4 e7e5 g1f3 b8c6
info depth 25 seldepth 33 time 9808 score cp 25 nodes 23198918 nps 2365077 pv e2e4 e7e5 g1f3
info depth 26 seldepth 35 time 11956 score cp 25 nodes 28189745 nps 2357769 pv e2e4 e7e5 g1f3 b8c6
DkeRee commented 4 months ago

I can confirm that the 3.5.0 release version also does not work here, only tested from cmd. (Ryzen7 5700G)

To be more precise it opens up and displays correctly its info, but closes after giving the 'uci' command. Regrettably there is no error message and the event viewer log is not very helpful (quite generic), my gut feeling says the binary might have some hard coded path in it and it's trying to find some file.

Guenther (RWBC)

I can't think of anything that would cause it to break on a "UCI" command. There's no file it tries to fetch that I know of. I'm honestly at a loss with what's wrong.

rwbc commented 3 months ago

With what flags did you compile the release version? Did you by any chance compile it on an avx512 machine with march=native? The triggered error is the most generic (0xc000001d) one available in WIN.

  AppName trinket-v3.5.0.exe 
  AppVersion 0.0.0.0 
  AppTimeStamp 669f48d1 
  ModuleName trinket-v3.5.0.exe 
  ModuleVersion 0.0.0.0 
  ModuleTimeStamp 669f48d1 
  ExceptionCode c000001d 
  FaultingOffset 0000000000026ccf 
  ProcessId 0x29c0 
  ProcessCreationTime 0x1dadff30a6fb464