I'm making progress with my new Delphi based UCI engine. I'm planning to support all UCI commands with the exception of tablebases and weakening the engine (it's already super weak ). To that end, I've been digging into the UCI specification. A couple of things seems to not be supported anymore, or of little value:
Does any engine or GUI support "go searchmoves"?
Does any engine or GUI support the info field "cpuload". I thought Shredder supported this. But when I run Shredder 13 in the Shredder GUI there is no sign of the info.
Maverick actually supports "info currline", but I don't see many GUIs or engines supporting it (Stockfish doesn't seem to). I'm unsure if anyone really values it.
Another one is "info refutation". Does any GUI or engine support this?
I don't do cpuload/currline or refutation (I think Shredder supports currline, not sure about refutation)
Cheng does support go searchmoves, however - I find it useful for debugging, namely to force the engine to explicitly search a specific move
nocturn9x wrote: ↑Tue Apr 08, 2025 5:01 pm
Heimdall does indeed support "go searchmoves": in fact, MultiPV searches are implemented on top of that functionality!
I think that multipv and searchmoves are completely orthogonal - searchmoves simply restricts moves searched at root while multipv tries to find n best moves - and you can of course combine both
Yes, they are indeed separate. However, internally, heimdall implements MultiPV search by iteratively adding the root moves of a position except any previously found best moves (while also respecting the original argument value of searchmoves given by the user, of course!) to the list of moves to search. I felt like this was the simplest implementation