With pleasure I'd like to announce the release of Vajolet2 2.8.
Notable features of this release are the ability to play Fisher Random Chess and a totally rewritten syzygy probing code.
The new syzygy code is totally rewritten and integrated in Vajolet2, it take inspiration from Costalba stockfish syzygy code and it's very much faster than my previous integration of fathom library. I hope it has very few bug.
Since a lot of new code is present, please let me know of any problem or nuisance you find
New feature:
chess FRC
new syzygy code
bug Fixes:
Multi Pv fix
validation of TTmove in qSearch
PVline follower in qSearch
futility in Pv nodes
Improvements:
changed max mate depth to a more reasonable number (200 ply)
improve endgame scaling coderefactor time managemrn
CI/CD:
change dir structure
thats old - in former versions this was a problem too > provide a tartget for Rasp?
but with new version i also get these errors:
Building file: src/command.cpp
Invoking: GCC C++ Compiler
g++ -std=c++1z -O3 -DNDEBUG -pedantic -Wall -Wextra -c -fmessage-length=0 -Isrc -MMD -MP -MF"src/command.d" -MT"src/command.o" -o "src/command.o" "src/command.cpp"
In file included from src/syzygy/tbpairs.h:28:0,
from src/syzygy/tbtable.h:27,
from src/syzygy/tbtableDTZ.h:24,
from src/syzygy/tbtables.h:28,
from src/syzygy/syzygy.h:26,
from src/command.cpp:35:
src/syzygy/sparseEntry.h: In member function ‘uint32_t SparseEntry::getBlock()’:
src/syzygy/sparseEntry.h:30:66: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
uint32_t getBlock() {return *reinterpret_cast<uint32_t *>(_block);}
^
src/syzygy/sparseEntry.h: In member function ‘uint16_t SparseEntry::getOffset()’:
src/syzygy/sparseEntry.h:31:68: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
uint16_t getOffset() {return *reinterpret_cast<uint16_t *>(_offset);}
^
src/command.cpp: In member function ‘void UciManager::impl::_go(std::istringstream&)’:
src/command.cpp:629:42: error: expected ‘)’ before ‘;’ token
if( Move m = _moveFromUci(_pos, token); m != Move::NOMOVE )
^
src/command.cpp:629:42: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
src/command.cpp:629:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if( Move m = _moveFromUci(_pos, token); m != Move::NOMOVE )
^~
src/command.cpp:629:44: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
if( Move m = _moveFromUci(_pos, token); m != Move::NOMOVE )
^
src/command.cpp:629:44: error: ‘m’ was not declared in this scope
makefile:146: die Regel für Ziel „src/command.o“ scheiterte
make: *** [src/command.o] Fehler 1
Create a dedicated chess computer based on tiny ARM computers with the DGT e-board on picochess.com
I'm compiling it with gcc 8.1 or clang9. I don't know what's the minimum version of gcc you can use but sometime I use modern c++ feature like "init statement inside if". It's standard in c++17 and should be implmented in gcc 7.
i tried it with cross-compile on ubuntu (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)
no more compile errors, but the resulting bin file gives me an illegal machine command" (on rasp zero for sure).
Jürgen
Create a dedicated chess computer based on tiny ARM computers with the DGT e-board on picochess.com
While it may be a minor issue, I would like to ask you to clarify whether its version is 2.8 or 2.8.0. You announce it here as 2.8 but the engine itself says 2.8.0.