http://webpages.charter.net/tlikens/index.html
Don't make to much out of the transition to 1.xxx, since the numbering for Djinn is a little odd. Basically, I use the changes in the history file to set the version number (I have a python script that parses it). So the transition to 1.xxx basically means I need to go outside more!
As with 0.992 this is mainly a bug fix with a small strength increase (approx. 20 elo I would estiimate from my testing). Here are the changes since the last version was released:
Code: Select all
17-DEC-2013 (ver. 1.006)
------------------------
E o Modified the way the penalty/bonus for a Queen vs. 2 Rooks trade
was being scored. I also ran this under CLOP to get optimal (or
at least not "sub-optimal") scaling values.
16-DEC-2013
-----------
E o I changed the way the pawns were being scored in front of the king.
Previously, the pawns occupying the six squares in front of the
king's actual location were used to access a "Shelter[64]" array.
But using the king's actual position would occasionally cause the
program to move the king forward (in an unsafe manner) so that it
would be closer to any kingside pawns that had advanced. Now the
program now uses the canonical kingside square, (either G1/G8 or
C1/C8). This seems to result in less unsafe king forays.
07-DEC-2013
-----------
S o Removed the "Botvinnik-Markoff" extension. Extensive testing
showed no real elo gain from it and removing it simplifies the code.
E o Clopped the rook mobility tables.
04-DEC-2013
-----------
E o Added safe king mobility to the evaluation function. For some odd
reason this was left out when I added the mobility for all the
other pieces to the evaluation function. Clopped both the penalty
and mobility multiplier portions.
20-NOV-2013
-----------
S o Changed the criteria for beta pruning, so that it is only applied
if the hash move is empty. It's also skipped if either alpha or
beta is a mate score, (worth about 5 elo).
B o Potential bug fix for the Windows version. I realized that the
"unsigned long" type on Windows is only 4 bytes, (under Linux it's
8 bytes). It's possible that some of my time management and node
counting variables were under/overflowing. So rather than worry
about it I simply changed everything to "unsigned long long"
which is 8 bytes on both operating systems.
17-NOV-2013
-----------
I o Dusted off Andrei Fortuna's "Chant" utility and started making
modifications to both Djinn and the Chant viewer (Andrei was kind
enough to give me the source code) so that more information is
shown. I'm also planning to speed up the loading of the database
file so that the viewing of large files isn't so slow.
13-NOV-2013
-----------
O o Micro-Optimized to the swapoff routine that separates winning,
even and losing captures. Since the captures are generated in
MVV/LVA order and stable sorted, we don't need the full SEE score.
Instead, we only need to know if the SEE score is >= 0. This is
always satisfied if the piece capturing is of lesser or equal
value to the piece being captured. If that is true we skip the
(relatively) expensive call to the full swapoff routine.
05-NOV-2013
-----------
B o Found a minor bug in the "toolbox::convert_string_to_double()"
function which could actually cause an interface crash if the
input was pathological.
03-NOV-2013
-----------
B o While going over the evaluation routines, I ran across a bug.
Basically, the king attacks were being left out of the attack
bitmaps if the endgame evaluation function exited early,
(specifically, if it was a king/pawn-only endgame). Probably,
not a big elo hit, but certainly not the intent.
E o Added a new function that calculates the attack bitmaps from
scratch. This is a useful debug routine. This is now used to
restrict the definition of "safe" squares that the queen and
rook can move to (i.e. their mobility).
27-OCT-2013
-----------
B o Fixed a memory overrun bug found by Valgrind in the hash routines.
It was possible for the slot pointers to read or write past the
end of the allocated memory if the initial hash value into the
table was the last (or 2nd to last) slot.
B o Fixed a buffer underflow read into "ThreatMove" array (found by
the LLVM Clang compiler using the '-fsanitize=address' option).
--tom