I wanted to modify my code because for a design choice I have the makeMove method inside the move Class and I wanted to change the code to Board.makeMove(move);
After doing the change i noticed the node count for the search changed, after some investigation I only found that it looks like to be a "problem" with compiler optimization. Debug and release compile have different node count for the same search and I could change the node count simply adding
Code: Select all
if(move.packed==0){
std::cout<<"Error";
}
just before the makeMove method.
I have switched to eclipse & gcc and after some little modification to make the code compile I have generated a new engine. The node count still changed between debug & release, but changing the code from move.makemove to board.makemove(m) doesn't change the node count.
I was using MSVC 2012
I think I'm having different node count between debug & release caused by the different number of elements in the transposition table and pawnStructure table, I'll investigate
has anyone faced such a problem?