After careful consideration I decided to start a parallel engine project for a new chess engine written in C++. This means that the work on my free pascal engine is frozen for the moment as I cannot develop two engines in parallel. Especially the mental switching between Pascal and C++ syntax is quite difficult.
Such small bugs like
Pascal: if sideToMove = WHITE then perform something;
C++ : if (sideToMove = WHITE) perform something; // this is a bug, must be if (sideToMove == WHITE) ...
make the programming difficult. My older formed Borland compiler warned when it encountered such statements (was very helpful). Visual C++ warns sometimes when it is suspicious about the involved types but not always.
So at the moment I put my efforts on a chess engine skeleton in C++. So especially the board class, where the moves are generated and executed will require some time. I wonder what the new perft values will be compared to my Pascal based mACE engine.
I hope that using magic bit boards and using plain int as move type will pay off somehow too.