Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compile a Linux binary ? #25

Open
tissatussa opened this issue May 10, 2024 · 12 comments
Open

compile a Linux binary ? #25

tissatussa opened this issue May 10, 2024 · 12 comments

Comments

@tissatussa
Copy link

eg. to use in CuteChess : how to compile Kairuku ?

[ i'm on Xubuntu 22.04 ]

@marvk
Copy link
Owner

marvk commented May 10, 2024

Hi, does CuteChess accept shell scripts as executables? If so it's pretty easy, build the project and make a shsll script running the engine .jar. If not it will become more complicated. Please let me know if you can get it to work, I might be able to provide further assistance like detailed build instructions if you're not familiar with the JVM ecosystem.

@tissatussa
Copy link
Author

tissatussa commented May 10, 2024

..if you're not familiar with the JVM ecosystem..

indeed, i'm not into JAVA .. often i find a .jar asset file and i run it by java -jar [jarfile], CuteChess can handle that, although i often create a small run.sh file contaning just that one line - sometimes this is the only way that works for me in CuteChess, i don't know why .jar files differ here ..

note: i'm on Linux ..

@marvk
Copy link
Owner

marvk commented May 21, 2024

Hi, please try kairuku-engine/target/kairuku-engine-1.0.1-SNAPSHOT-jar-with-dependencies.jar

@tissatussa
Copy link
Author

Hi, please try kairuku-engine/target/kairuku-engine-1.0.1-SNAPSHOT-jar-with-dependencies.jar

sorry, i don't see that file in the package ..

it contains a pom.xml file, which i can (normally) use to compile a .jar file, but i get errors .. i can supply a log .. do you have a .jar ASSET ?

@marvk
Copy link
Owner

marvk commented May 21, 2024

I thought you were able to compile successfully.

Make sure you have Maven and JDK 11+ installed on your machine.

You might need to do the following steps so that the build will work:

  • Change Line 25 of ./pom.xml to <lombok.version>1.18.32</lombok.version>.

  • Delete Lines 63-81 of ./queensgambot/pom.xml.

Then, run mvn clean package in the projects root directory. If the build works, the .jar should be present.

@tissatussa
Copy link
Author

thanks for this info, now the compilation went well :

$ java -version
openjdk version "21.0.2" 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-Ubuntu-122.04.1)
OpenJDK 64-Bit Server VM (build 21.0.2+13-Ubuntu-122.04.1, mixed mode, sharing)

i changed the pom.xml as you wrote and i get your mentioned .jar file, but it malfunctions in CuteChess .. i see the cause when running in terminal :

$ java -jar ./kairuku-engine-1.0.1-SNAPSHOT-jar-with-dependencies.jar
uci
id name kairuku
option name ply type spin default 7 min 1 max 7

compare this output to another (working) .jar :

$ java -jar ./Eubos_v3.5-asset.jar 
uci
id name Eubos 3.5
id author Chris Bolt
option name Hash type spin default 256 min 4 max 4000
option name Threads type spin default 1 min 1 max 4
option name Move Overhead type spin default 10 min 0 max 5000
option name Lazy Threshold type spin default 275 min 0 max 1000
uciok

id name and id author are basic, these lines always appear.
and the UCI protocol states the uci command should end with uciok !

@tissatussa
Copy link
Author

btw. your code has some uciOK() function but it seems that function is not called .. i'm not into Java though ..

@tissatussa
Copy link
Author

did you address the uciok issue yet ?
or was i wrong about that ?

@marvk
Copy link
Owner

marvk commented Jun 19, 2024

I think I fixed that at some point, locally when using the engine to play my new engine. Need to get that off an old HDD though, I'll hit you up when I get around to it.

@marvk
Copy link
Owner

marvk commented Jun 21, 2024

@tissatussa Hi, just pushed the fix, please check again.

@tissatussa
Copy link
Author

..just pushed the fix, please check again..

congrats !
i just compiled the newest source and all went well : after i did the same changes in those pom.xml files, i get a valid jar file (4.6 Mb) and indeed it does uciok ! CuteChess is happy now and Kairuku won its first game !

i propose you update those pom.xml files and give Kairuku a version number.
it would also be convenient to supply a .jar asset for download.

btw. the dates of your source file(s) didn't change on GitHub, so it's not clear you made this fix .. how does this work ? (i've no experience with PR's etc.)

@tissatussa
Copy link
Author

i let Kairuku play a few games and suddenly it had a disconnection in CuteChess GUI :

kairuku-disconnect

here's the concerning ZIPped log file : chess.2024-06-22-06-19-52.zip


[Event "engine vs engine"]
[Site "Holland"]
[Date "2024.06.22"]
[Round "?"]
[White "Kairuku"]
[Black "Koedem v1.1.2"]
[Result "0-1"]
[ECO "B07"]
[GameDuration "00:06:52"]
[Opening "Pirc defense"]
[PlyCount "24"]
[Termination "abandoned"]
[TimeControl "300+10"]

1. e4 {+0.35/7 8.2s} d6 {-0.22/8 8.7s} 2. d4 {+0.45/7 3.8s} Nf6 {-0.27/8 9.9s}
3. Nc3 {+0.50/7 2.1s} Nc6 {-0.34/8 20s} 4. Bb5 {+0.60/7 11s} Bd7 {-0.28/9 63s}
5. Bxc6 {+0.55/7 6.7s} Bxc6 {-0.04/9 12s} 6. d5 {+0.55/7 3.1s} Bd7 {+0.09/9 42s}
7. Qd3 {+0.50/7 5.2s} g6 {+0.08/8 19s} 8. Qc4 {+0.65/7 22s} Bg7 {+0.16/8 8.3s}
9. Nf3 {+0.60/7 22s} O-O {+0.10/8 14s} 10. Qb3 {+0.50/7 7.0s} Rb8 {+0.25/8 25s}
11. Be3 {+0.75/7 8.1s} c5 {+0.32/8 14s} 12. Ng5 {+0.55/7 25s}
b5 {+1.17/8 21s, White disconnects} 0-1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants