princesslana / princhess

A UCI compatible chess engine written in Rust
GNU General Public License v3.0
32 stars 2 forks source link

how to compile ? #53

Closed tissatussa closed 2 years ago

tissatussa commented 2 years ago

i tried but i get errors on Xubuntu 20.04 -- what is the correct command to build your binary ? I'm not into Rust ..

$ cargo build
   Compiling autocfg v1.0.1
   Compiling libc v0.2.101
   Compiling memchr v2.4.1
   [...]
   Compiling humantime v1.3.0
   Compiling backtrace v0.3.61
   Compiling princhess v0.0.0-dev (/home/tissatussa/Compiled/princhess)
   Compiling itertools v0.10.1
   Compiling addr2line v0.16.0
   [...]
   Compiling pretty_env_logger v0.4.0
   Compiling failure v0.1.8
   Compiling chess v3.2.0
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> src/main.rs:1:1
  |
1 | #![feature(integer_atomics)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: type annotations needed
   --> src/search_tree.rs:479:19
    |
479 |         if !child.is_null() {
    |                   ^^^^^^^
    |
    = note: `#[warn(tyvar_behind_raw_pointer)]` on by default
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition!
    = note: for more information, see issue #46906 <https://github.com/rust-lang/rust/issues/46906>

[...]

warning: use of deprecated associated function `chess::Board::enumerate_moves`: please use the MoveGen structure instead.  It is faster and more idiomatic.
   --> src/state.rs:367:24
    |
367 |             self.board.enumerate_moves(&mut arr)
    |                        ^^^^^^^^^^^^^^^

error: aborting due to previous error; 7 warnings emitted

For more information about this error, try `rustc --explain E0554`.
error: could not compile `princhess`

To learn more, run the command again with --verbose.
ianagbip1oti commented 2 years ago

It needs to be run with the nightly rust version. Hmm, I thought rust-toolchain.toml should take care of that.

you can try cargo +nightly build

You should also add --release for an optimized build.

tissatussa commented 2 years ago

mmm .. other engine which i compiled also had a 'nightly' problem for me .. now i get this error :

$ cargo +nightly build --release error: no such subcommand: +nightly

i'm not into Rust but i can do things on terminal. how to use nightly's ?

ianagbip1oti commented 2 years ago

Unfortunately I'm not familiar with running rust on xubuntu. For me it automatically installs/uses nightly when I run cargo build because of the rust-toolchain file.

There is some documentation on installing and using nightly in the rust book here https://rust-lang.github.io/rustup/concepts/channels.html

Also, just to make sure they've been seen, I do have release linux binaries in the releases page if you were just looking to run a version of the engine.

tissatussa commented 2 years ago

yes, i use your release now but i could be able to use git clone .. i will need to find out how to use nightly Rust .. i think i will manage .. thanks.

tissatussa commented 2 years ago

at https://bityl.co/8sVL i find info about "Installing Rust nightly" on Linux .. it reads :

With rustup, the tool we installed in Chapter 1, Basics of Rust, it is very easy to install nightly: $ rustup default nightly

Running this command will install the nightly version of the tools (cargo, rustc, and so on). Also, it will switch the corresponding commands to use the nightly version.

If you want to go back to the stable version, issue the following command: $ rustup default stable

but executing this gives me a error / warning :

$ rustup default nightly

Command 'rustup' not found, but can be installed with:

sudo snap install rustup

$ sudo snap install rustup
[sudo] password for tissatussa: 
error: This revision of snap "rustup" was published using classic confinement and thus may perform
       arbitrary system changes outside of the security sandbox that snaps are usually confined to,
       which may put your system at risk.

       If you understand and want to proceed repeat the command including --classic.

normally i install applications only by apt (or Synaptic Package Manager) but nowadays many programs / modules can (or must) be installed using 'snap', which i try to avoid, because it has some drawbacks .. reading the 'error' message makes me hesitate to install rustup and thus nightly ..

what do you say ?

tissatussa commented 2 years ago

i see you update the main code regularly .. i can not build Princhess because i'm unable to build 'nightly' on my Linux (see above) .. so, i download your asset binary, but is that an updated version ? They all are v0.5.0, not v0.5.1 or so ..

ianagbip1oti commented 2 years ago

The binary from releases doesn't keep up with main. There is no more formal process for a release than me just deciding it's time to make one, haha.

If it's something you'd use, I can investigate how I could have "latest dev" binary published somewhere.

tissatussa commented 2 years ago

OK .. and why don't you just create code without 'nightly' stuff ? What is so special about it ? [ I'm not familiar with nightly ]

ianagbip1oti commented 2 years ago

Tbh, because the code base I started from required nightly, haha.

I know it doesn't compile without nightly, I haven't spent time digging into what I'd need to change because of that. But good point on that being another option.

tissatussa commented 2 years ago

yeah, maybe just keep things general and simple ? A final new version should be non-nightly or so anyway, isn't it ? I have no clue when you say "the code base I started" .. do you create a subset of rust functions ? I only know PHP, javascript and Python somewhat ..

ianagbip1oti commented 2 years ago

I mean I didn't start from nothing, I started from https://github.com/zxqfl/sashimi, and the code that's there requires nightly. I'm using this to learn rust as well as chess programming; I haven't spent time seeing what nightly features it uses and for what. I just know it breaks if I remove the nightly requirement.

tissatussa commented 2 years ago

aha .. so you're just using the chess engine code of someone else, and change & add things without breaking it ? I also have that approach while learning, it's OK .. i keep following Princhess.

tissatussa commented 2 years ago

eg. i created new python code to run Sunfish (a simple python chess engine) in a GUI .. i found code to do so, but it lacked something, it was buggy .. better : it didn't work .. however, the author was very detailed and clear and i managed to repair his code and learned a lot, without really understanding the combination of classes, constructions etc. .. python has a great message / warning debug log, since 7 years or so i really like its logic and syntax .. also the community is wide and good. Python is not running fast though compared to a C prog ..

ianagbip1oti commented 2 years ago

Yeah, basically it was more fun to start from something I could already watch play and try to improve it.

tissatussa commented 2 years ago

maybe better discuss things on programming besides this Issue ? -- i'm a chess artist .. and a self-made programmer .. some video edit also .. and lots of experiments in CuteChess with theme games, to improve my play and understanding of our game .. i'm excited about Sashimi ! I gather many open source engines, but not this one .. and it has MCTS !? That's rather unique, not many engines have such .. some even play rather weird, i think .. but MCTS : what is it exactly ? The Sashimi readme is nice though.

ianagbip1oti commented 2 years ago

MCTS is really just an alternative way to explore the game tree. It ends up guided by previous evaluations and some ML stuff.

ianagbip1oti commented 2 years ago

Turns out there wasn't much needed to remove the need for nightly https://github.com/princesslana/princhess/pull/91

tissatussa commented 2 years ago

mmm .. sounds good .. does it mean i might be able to compile your main code into a Linux binary ? I was unable to install nightly (although i'm not a beginner at linux) and i avoid it now, if possible ..

ianagbip1oti commented 2 years ago

I guess give it a try and see what happens

tissatussa commented 2 years ago
$ ./princhess 
uci
id name Princhess 0.0.0-dev
id author Princess Lana
option name Hash type spin min 1 max 65536 default 1
option name Threads type spin min 1 max 255 default 1
option name SyzygyPath type string
option name ExplorationConstant type spin min 1 max 65536 default 225
uciok

I will play a game now in CuteChess against it and let you know :)

tissatussa commented 2 years ago

we both had ideas but Princhess was too strong for me :-)

[Event "?"]
[Site "?"]
[Date "2021.11.06"]
[Round "?"]
[White "tissatussa"]
[Black "Princhess v0.0.0-dev"]
[Result "0-1"]
[ECO "B01"]
[GameDuration "00:20:54"]
[Opening "Scandinavian (center counter) defense"]
[PlyCount "80"]
[TimeControl "480+5"]

1. e4 d5 {+0.08/7 0.024s} 2. d4 {34s} dxe4 {+0.33/6 0.021s} 3. Nc3 {12s}
Nf6 {+0.33/7 0.021s} 4. h3 {36s} c6 {+0.44/5 0.019s} 5. g3 {14s}
b5 {+1.14/7 0.023s} 6. a3 {11s} Be6 {+1.11/6 0.021s} 7. Bg2 {6.1s}
Qa5 {+1.00/6 0.020s} 8. Bd2 {79s} Qd8 {+1.04/6 0.021s} 9. Be3 {64s}
g5 {+0.67/5 0.021s} 10. Bxg5 {36s} Bg7 {+0.38/8 0.024s} 11. Nce2 {49s}
h6 {+1.22/5 0.021s} 12. Bxf6 {22s} exf6 {+0.43/10 0.027s} 13. Bxe4 {90s}
f5 {+0.31/9 0.026s} 14. Bg2 {44s} Bd5 {+0.10/7 0.022s} 15. Kf1 {19s}
O-O {+0.67/9 0.025s} 16. c3 {16s} Re8 {+0.74/6 0.023s} 17. Nf4 {7.3s}
Bc4+ {+0.63/9 0.024s} 18. Nge2 {25s} h5 {+0.68/6 0.021s} 19. Bf3 {7.0s}
h4 {+0.30/6 0.020s} 20. Kg2 {2.4s} Qg5 {+0.33/6 0.021s} 21. b3 {36s}
Bxe2 {+0.08/11 0.025s} 22. Nxe2 {4.9s} hxg3 {+0.17/6 0.020s} 23. fxg3 {4.5s}
Qe3 {+0.11/5 0.019s} 24. Qc1 {49s} Na6 {-0.29/6 0.020s} 25. Nf4 {35s}
Rac8 {-1.00/7 0.021s} 26. Ra2 {29s} Bh6 {-0.76/7 0.021s} 27. Re2 {9.9s}
Qxc1 {-1.01/12 0.027s} 28. Rxe8+ {19s} Rxe8 {-1.32/11 0.026s} 29. Rxc1 {3.8s}
Nb8 {-1.31/7 0.020s} 30. Rc2 {52s} Bxf4 {-1.00/8 0.023s} 31. gxf4 {2.7s}
Kg7 {-0.95/7 0.022s} 32. c4 {36s} Re3 {-0.87/8 0.025s} 33. d5 {56s}
cxd5 {-0.57/13 0.032s} 34. cxb5 {4.9s} Rxb3 {-0.69/12 0.028s} 35. a4 {1.5s}
d4 {-0.63/12 0.027s} 36. Kf2 {78s} a5 {-0.28/6 0.024s} 37. bxa6 {70s}
Nxa6 {+0.03/9 0.025s} 38. Rc6 {15s} Nb4 {+1.36/13 0.032s} 39. Rc7 {23s}
Nd3+ {+1.96/12 0.030s} 40. Kg3 {11s} Ne1 {+3.09/11 0.031s, White resigns} 0-1
ianagbip1oti commented 2 years ago

Awesome. Glad you got her working. Even better that she won :P

tissatussa commented 2 years ago

she played fast, mostly within a second or two .. for a long time i had the advantage but in the endgame she got me ..

Princhess_RB

https://lichess.org/fonDK68D

ianagbip1oti commented 2 years ago

For the fast, the default hash is small (it's actually 16, not 1), and she doesn't use it very efficiently yet. If you bump it up to 256 or even higher, she has more room to think, so will play a bit slower. On lichess with 2 threads and 1024 hash she usually takes 8-10 seconds per move.

tissatussa commented 2 years ago

i see rating about 1820 in CCRL Blitz list .. but that's 0.3.1 or so .. your Lichess bot shows 2035 for Rapid .. i like her Scandinavian approach with Black, and i tried to convert into my own Blackmar Diemer gambit .. battle of ideas and structures .. do you have any concrete plans to improve her strengh ? And are you a decent programmer to experiment with alternative structures ? I have some ideas ..

BONUS https://www.bitchute.com/video/1FNf33ifFjdl/

ianagbip1oti commented 2 years ago

I don't have anything specific. Just been messing around with ML stuff to see if I can make it's eval of positions or moves better.

tissatussa commented 2 years ago

.. make it's eval of positions or moves better ..

that's a very general answer .. a next question immediately comes up : but how ? I'm thinking of the many parameters used by Rodent, to define a 'personality', which are meant to create many playing styles .. indeed, changing these values gives different results, but it's unclear to me how to distinguish .. do certain FEN positions exist to tune such parameters and improve the overall playing style ? Another example is Odonata, a (Rust!) engine which has an extensive list of changable values -see below-, but maybe you only make use of many (LiChess) games to tune Princhess, as the Sashimi readme states.

to end this Issue, can you elaborate on this ?

$ ./odonata-0.4.0-linux-modern 

odonata 0.4.0

 ()
%=====
 ()

May you touch dragonflies and stars...

email        : andy watkins <andy@webcalculator.com>:mark raistrick <mark.raistrick@gmail.com>
homepage     : https://github.com/akanalytics/odonata
compiled for : x86_64-unknown-linux-musl / release / optimization level 3
compiled at  : Tue, 12 Oct 2021 13:34:21 +0000
compiler     : rustc 1.55.0 (c8dfcfe04 2021-09-06)
features     : FAST, REMOVE_LOGGING, REMOVE_METRICS, UNCHECKED_INDEXING

Commands...
uci        enter uci protocol mode
quit       quit the program
pic        nice dragonfly image
help       display (this) help

enter command...
uci
id name odonata v0.4.0
id author andy watkins <andy@webcalculator.com>:mark raistrick <mark.raistrick@gmail.com>
option name UCI_EngineAbout type string default odonata https://github.com/akanalytics/odonata
option name uci.debug type check default false
option name Ponder type check default false
option name Clear Hash type button
option name Explain Eval type button
option name Explain Last Search type button
option name Explain Quiesce type button
option name Threads type spin default 1 min 1 max 16
option name Config file type string default config.toml
option name algo.minmax type check default false
option name UCI_AnalyseMode type check default false
option name mb.enabled type check default false
option name mb.force.init type button
option name mb.internal.stats type check default false
option name mb.filename type string default
option name mb.consistency.report type check default true
option name mb.consistency.adjust type check default true
option name mb.draws.only type check default false
option name mb.min.games type spin min 0 max 2000 default 50
option name mb.max.pawns type spin min 0 max 8 default 5
option name mb.trade.factor type spin min -500 max 2000 default 2
option name eval.p.s type spin min -9999 max 9999 default 100
option name eval.p.e type spin min -9999 max 9999 default 148
option name eval.n.s type spin min -9999 max 9999 default 624
option name eval.n.e type spin min -9999 max 9999 default 401
option name eval.b.s type spin min -9999 max 9999 default 633
option name eval.b.e type spin min -9999 max 9999 default 426
option name eval.r.s type spin min -9999 max 9999 default 847
option name eval.r.e type spin min -9999 max 9999 default 766
option name eval.q.s type spin min -9999 max 9999 default 1809
option name eval.q.e type spin min -9999 max 9999 default 1411
option name eval.mb.all type string default 
option name pst.enabled type check default true
option name eval.rook.edge.s type spin min -9999 max 9999 default 28
option name eval.rook.edge.e type spin min -9999 max 9999 default 13
option name eval.pawn.r5.s type spin min -9999 max 9999 default 14
option name eval.pawn.r5.e type spin min -9999 max 9999 default 32
option name eval.pawn.r6.s type spin min -9999 max 9999 default -14
option name eval.pawn.r6.e type spin min -9999 max 9999 default 168
option name eval.pawn.r7.s type spin min -9999 max 9999 default 103
option name eval.pawn.r7.e type spin min -9999 max 9999 default 224
option name phaser.enabled type check default true
option name phaser.method type string default SO
option name phaser.half.way.score type spin min 0 max 12000 default 3250
option name eval.safety type check default true
option name eval.mobility type check default true
option name eval.pawn type check default true
option name eval.position type check default true
option name eval.material type check default true
option name eval.contempt type check default true
option name eval.tempo type check default true
option name eval.phasing type check default true
option name eval.mobility.min_depth type spin min 0 max 101 default 1
option name eval.quantum type spin min 1 max 100 default 1
option name eval.mobility.phase.disable type spin min 0 max 101 default 101
option name eval.pawn.doubled.s type spin min -9999 max 9999 default 14
option name eval.pawn.doubled.e type spin min -9999 max 9999 default -35
option name eval.center.attacks.s type spin min -9999 max 9999 default 6
option name eval.center.attacks.e type spin min -9999 max 9999 default -1
option name eval.mobility.undef.sq.s type spin min -9999 max 9999 default 2
option name eval.mobility.undef.sq.e type spin min -9999 max 9999 default 4
option name eval.mobility.undef.piece.s type spin min -9999 max 9999 default -4
option name eval.mobility.undef.piece.e type spin min -9999 max 9999 default 47
option name eval.mobility.trapped.piece.s type spin min -9999 max 9999 default -16
option name eval.mobility.trapped.piece.e type spin min -9999 max 9999 default -18
option name eval.mobility.partially.trapped.piece.s type spin min -9999 max 9999 default -7
option name eval.mobility.partially.trapped.piece.e type spin min -9999 max 9999 default -14
option name eval.mobility.defended.np.s type spin min -9999 max 9999 default 0
option name eval.mobility.defended.np.e type spin min -9999 max 9999 default 0
option name eval.mobility.xrayed.s type spin min -9999 max 9999 default 0
option name eval.mobility.xrayed.e type spin min -9999 max 9999 default 0
option name eval.pawn.isolated.s type spin min -9999 max 9999 default -35
option name eval.pawn.isolated.e type spin min -9999 max 9999 default -6
option name eval.pawn.passed.s type spin min -9999 max 9999 default 17
option name eval.pawn.passed.e type spin min -9999 max 9999 default 17
option name eval.pawn.passed.r6.s type spin min -9999 max 9999 default 17
option name eval.pawn.passed.r6.e type spin min -9999 max 9999 default 107
option name eval.pawn.passed.r5.s type spin min -9999 max 9999 default 17
option name eval.pawn.passed.r5.e type spin min -9999 max 9999 default 43
option name eval.passers.on.rim.s type spin min -9999 max 9999 default -19
option name eval.passers.on.rim.e type spin min -9999 max 9999 default 21
option name eval.blockaded.s type spin min -9999 max 9999 default 24
option name eval.blockaded.e type spin min -9999 max 9999 default -37
option name eval.blockaded.passers.s type spin min -9999 max 9999 default -24
option name eval.blockaded.passers.e type spin min -9999 max 9999 default -51
option name eval.bishop.pair.s type spin min -9999 max 9999 default 61
option name eval.bishop.pair.e type spin min -9999 max 9999 default 71
option name eval.fianchetto.s type spin min -9999 max 9999 default 43
option name eval.fianchetto.e type spin min -9999 max 9999 default 17
option name eval.bishop.outposts.s type spin min -9999 max 9999 default 61
option name eval.bishop.outposts.e type spin min -9999 max 9999 default 3
option name eval.bishop.color.pawns.s type spin min -9999 max 9999 default -6
option name eval.bishop.color.pawns.e type spin min -9999 max 9999 default -4
option name eval.knight.forks.s type spin min -9999 max 9999 default 2
option name eval.knight.forks.e type spin min -9999 max 9999 default 66
option name eval.knight.outposts.s type spin min -9999 max 9999 default 53
option name eval.knight.outposts.e type spin min -9999 max 9999 default 22
option name eval.rook.pair.s type spin min -9999 max 9999 default -8
option name eval.rook.pair.e type spin min -9999 max 9999 default 0
option name eval.rook.open.file.s type spin min -9999 max 9999 default 56
option name eval.rook.open.file.e type spin min -9999 max 9999 default -3
option name eval.doubled.rooks.s type spin min -9999 max 9999 default 22
option name eval.doubled.rooks.e type spin min -9999 max 9999 default 13
option name eval.doubled.rooks.open.file.s type spin min -9999 max 9999 default -16
option name eval.doubled.rooks.open.file.e type spin min -9999 max 9999 default 31
option name eval.queen.open.file.s type spin min -9999 max 9999 default -22
option name eval.queen.open.file.e type spin min -9999 max 9999 default 42
option name eval.queen.early.develop.s type spin min -9999 max 9999 default 0
option name eval.queen.early.develop.e type spin min -9999 max 9999 default 0
option name eval.pawn.adjacent.shield.s type spin min -9999 max 9999 default 52
option name eval.pawn.adjacent.shield.e type spin min -9999 max 9999 default -15
option name eval.pawn.nearby.shield.s type spin min -9999 max 9999 default 47
option name eval.pawn.nearby.shield.e type spin min -9999 max 9999 default -14
option name eval.open.files.near.king.s type spin min -9999 max 9999 default -7
option name eval.open.files.near.king.e type spin min -9999 max 9999 default -1
option name eval.tropism.d1.s type spin min -9999 max 9999 default -34
option name eval.tropism.d1.e type spin min -9999 max 9999 default 24
option name eval.tropism.d2.s type spin min -9999 max 9999 default -30
option name eval.tropism.d2.e type spin min -9999 max 9999 default 11
option name eval.tropism.d3.s type spin min -9999 max 9999 default -1
option name eval.tropism.d3.e type spin min -9999 max 9999 default 1
option name eval.attacks.near.king.s type spin min -9999 max 9999 default 10
option name eval.attacks.near.king.e type spin min -9999 max 9999 default 1
option name eval.castling.rights.s type spin min -9999 max 9999 default 9
option name eval.castling.rights.e type spin min -9999 max 9999 default 12
option name eval.contempt.penalty.s type spin min -9999 max 9999 default -30
option name eval.contempt.penalty.e type spin min -9999 max 9999 default -30
option name eval.tempo.bonus.s type spin min -9999 max 9999 default 41
option name eval.tempo.bonus.e type spin min -9999 max 9999 default 50
option name mte.branching_factor type spin default 10 min 1 max 100
option name mte.moves_rem type spin default 20 min 1 max 100
option name mte.perc_of_time_adv type spin default 100 min 0 max 1000
option name nodestime type spin default 0 min 0 max 50000
option name mte.deterministic type check default false
option name moveorderer.enabled type check default true
option name moveorderer.prior_pv type check default true
option name moveorderer.prior_bm type check default false
option name moveorderer.tt_bm type check default true
option name moveorderer.mvv_lva type check default true
option name moveorderer.order type string default SHIGKPqBE
option name moveorderer.qorder type string default SICE
option name nmp.enabled type check default true
option name nmp.recursive type check default true
option name nmp.successive type check default true
option name nmp.min.leaf.distance type spin min 0 max 100 default 2
option name nmp.depth.reduction.strat type spin min 0 max 100 default 2
option name futility.alpha.enabled type check default true
option name futility.beta.enabled type check default false
option name futility.avoid.checks type check default false
option name futility.avoid.promos type check default false
option name futility.promo.margin type check default false
option name futility.prune.remaining type check default false
option name futility.max.depth type spin min 0 max 100 default 2
option name futility.max.depth.captures type spin min 0 max 100 default 2
option name futility.margin1 type spin min 0 max 9999 default 100
option name futility.margin2 type spin min 0 max 9999 default 250
option name futility.margin3 type spin min 0 max 9999 default 1500
option name futility.eval.switches type string default MBPOWSCT
option name futility.movetypes.forbidden type string default
option name pvs.enabled type check default true
option name pvs.min.depth type spin min 0 max 100 default 2
option name ext.check.enabled type check default false
option name ext.check.max.depth type spin min 0 max 100 default 3
option name ext.check.max.phase type spin min 0 max 101 default 60
option name ext.promo.enabled type check default false
option name ext.promo.max.depth type spin min 0 max 101 default 1
option name ext.promo.rank type spin min 0 max 7 default 7
option name ext.promo.extend type spin min 0 max 7 default 1
option name lmr.enabled type check default true
option name lmr.bad.captures type check default true
option name lmr.pv.node type check default true
option name lmr.only.nt.all type check default false
option name lmr.re.search type check default false
option name lmr.alpha.numeric type check default false
option name lmr.pawns type check default true
option name lmr.promos type check default false
option name lmr.killers type check default false
option name lmr.min.depth type spin min 0 max 100 default 2
option name lmr.strat type spin min 0 max 10000 default 1
option name qsearch.enabled type check default true
option name qsearch.only.on.capture type check default false
option name qsearch.promos type check default false
option name qsearch.see.cutoff type spin default 0 min -5000 max 5000
option name qsearch.see.ignore.fails type check default true
option name qsearch.max.ply type spin default 10 min 0 max 100
option name qsearch.switches type string default MBPOWSCTI
option name qsearch.coarse.delta.prune.cp type spin default 1000 min 0 max 10000
option name ids.enabled type check default true
option name ids.part.ply type check default true
option name ids.step.size type spin min 0 max 10 default 1
option name repetition.enabled type check default true
option name repetition.avoid.tt.on.repeats type check default false
option name tt.enabled type check default true
option name tt.aging type check default true
option name tt.probe.leaf.nodes type check default true
option name tt.use.tt.for.pv type check default false
option name tt.allow.truncated.pv type check default false
option name tt.allow.tt.at.root type check default false
option name Hash type spin default 8 min 0 max 4000
option name tt.hmvc.horizon type spin default 85 min 0 max 100
option name tt.min.ply type spin default 1 min 0 max 100
option name killers.enabled type check default true
option name killers.clear.every.move type check default false
option name killers.use.ply.below type check default true
option name history.enabled type check default true
option name history.scale type spin min -1000 max 1000 default 1
option name history.age.factor type spin min 0 max 1000 default 4
option name explainer.enabled type check default false
option name restrictions.enabled type check default true
uciok
ianagbip1oti commented 2 years ago

I don't really have concrete plans, I'm just messing around with some ML related stuff. I don't have any aims of matching a style of configurability, just playing better