Build 906 - 64 bit operations
Posted: 21 Jun 2020 23:59
Hi Thomas,
My chess program (NADYA2.0) now fails its startup diagnostics on build 906. Consider the following code:
This works fine in build 904, but returns zero 0 on build 906. Now I have to explicitly set the domain to a 64 bit opperation, because this code works until a bitshift 1 << 32 is encountered. It is like the default domain in a 64-bit app, is now 32 bit? If I uncomment the line that is commented, this particular predicate will work, but I have this kind of bitwise code all over the place, and I gave up trying to all the affected locations, so I rolled back to 904 for now.
Am I doing something wrong?
My chess program (NADYA2.0) now fails its startup diagnostics on build 906. Consider the following code:
Code: Select all
% this is a 64-bit only project
predicates
flip_pos:(unsigned) -> unsigned.
clauses
flip_pos(IndexIn) = IndexOut :-
BB_Index = bit::toBigEndian64(1 << 0+IndexIn), % Build 904 - 1 << 32 works, Build 906 1 << 32 = 0
%BB_Index = bit::toBigEndian64(hasDomain(unsigned64,1) << 0+IndexIn), % Build 906 - 1 << 32 works
IndexOut = bit_board::ls1b(BB_Index). % Diagnostics fail here, can't call ls1b with a value of zero.
Am I doing something wrong?