Open tissatussa opened 2 years ago
Thank you for opening this issue! I haven't been working on Loki for a while, but this will be fixed when I get back to it.
Since Loki has been developed on Windows 10, I haven't really tested its compatibility with Linux. I have been informed that version 3.5 works on Ubuntu since it needed to, to be able to run on an OpenBench server, but I don't know about the current development version.
I think the problem you were experiencing could also be fixed by adding #include <cstdint>
to defs.h, but I will try your solution as well. The last warning you received doesn't actually matter since it's only used in a debugging method.
Regarding your other issues:
make use_popcnt=no
, so no need to change the makefile itself :)assert()
method will be disabled, giving extra speed. Reversely, if it isn't defined, assert will run, which in some cases can cause a big slow down. For example, it would be unacceptable speed-wise to run assert(!pos->InCheck())
in a release build - NDEBUG prevents this.march=native
should therefore be enough machine-specific optimization for Loki.could also be fixed by adding
#include <cstdint>
to defs.h
NO ! I tried it, but this does not solve the error .. however, adding #include <cstddef>
to evaltable.h DOES help !
Thanks and good luck !
The fix is to add #include <cstddef>
solves for me on Linux Debian :)
at first i was unable to compile your v3.5.0 source code by
'make'
.. [ using GCC version "Ubuntu 9.3.0-17ubuntu1~20.04" ]so, i download your asset binary for linux and it works !
here's part of my terminal output when doing
'make'
:fortunately i was able to correct your code : the message says
"did you forgot to '#include <cstddef>'"
, so i added that line toevaltable.h
.. then compiling went OK without errors : i got a valid binary ! (size 342.5 KiB opposed to asset binary size 277.3 KiB) .. compiling only gave 1 warning, apparently corrected by GCC :I'm happy i can run Loki in CuteChess !
I want to point out some other issues of your code (being minor though) :
'no'
in themakefile
(you write that such variable can also be set / overruled by a command line argument .. i didn't know that !)makefile
:This is unclear to me .. i'm a coder but not a cpp programmer .. the option
'-DNDEBUG'
should be added when debug isno
? I changed this intoyes
(but no apparent difference in terminal output).'Ubuntu[..]'
but i guess it's a general linux binary ? (i DO use Ubuntu, so i have no clue)avx2
andbmi2
.. whatever those exactly mean .. it seems those architectures favor in speed, so i prefer to build such code .. i only see the option-march=native
inmakefile
.. can your code be changed accordingly ? Btw. i find some (engine) programmers using some code to detect the optimal user 'profile' while compiling !?