8-16-94: Arasan 1.2a
  1. Fixed a bug in the Options module: caused assert failure if
     arasan.ini was not present on startup.
  2. Fixed two busg in computation of attack info.  One could
     occur after an en-passant capture.  The other case in which
     attack info could be incorrect was following a castling move.
     Added some debug code (-DDEBUG_ATTACKS) to test attack updating.
     Also corrected a bug in Search::draw.
  3. Added some more test suites.
8-6-94: Arasan 1.2
  1. Fixed a time control bug in module Search.  This was causing
     the program to fail Bratko-Kopec test #12.
  2. Added a positional scoring term to penalize the program for
     placing pieces in front of unadvanced center pawns.  Also
     added a knight mobility score and made some changes to the
     computation of bishop mobility.  Center control scoring
     parameters have also been tweaked, for better performance in
     the opening.
  3. TESTSRC has been converted to accept a subset of the Extended
     Position Description (EPD) format.  All the test suites have
     been converted to this format, which allows storing the key
     move and position together in one file.
  4. Two new types of time control, "Tournament" and "Game", are
     now supported.  A secondary time control can be specified.
  5. Arasan now retrieves the predicted game continuation from the
     hash table.  The code used in earlier versions to keep track
     of the predicted continuation was unreliable.
  6. A couple of improvements have been made to the search extensions.
     The search is extended if a capture move is made and the capturing
     piece is "backed up" by another piece of the same color.  Also,
     the constant Check_Depth has been changed to 2.
  7. Since the whole point of trying the null move is to cause cutoff,
     Arasan no longer repeats a null move search with a wider window
     if cutoff fails, as it used to.
  8. The log was not being cleared before a "Load Game" command
     was executed, so if this command was executed twice, the second
     time the game would not load correctly.  This has been fixed.
  9. The opening book has been expanded to approx. 10,000 half-moves.
 10. The hash table stores the repetition count for a position.
 11. The Notation module had a bug.  A move might be incorrectly flagged as
     ambiguous if two pieces had possible moves to the destination square,
     but one of them happened to be pinned.  This is now handled.

4-27-94:  Arasan 1.1.
  This version has no user interface changes.  However, there are
  a number of bug fixes and internal improvements:

  1. In saving a board using FEN, the en passant square was not
     being written out when an en passant capture was possible.
  2. In reading in a board from a position file, the en passant
     square in the board class was set incorrectly.
  3. Arasan would prevent the user from escaping check by making
     an en passant capture.  This has been fixed.
  4. When saving a game, the month was being written incorrectly
     in the PGN date field.  This has been corrected.
  5. In the hash table used by the Search class, the ply was
     being stored instead of the depth (limit-ply).  This caused
     some nodes to be evaluated by table lookup when they should
     have been searched.  This a couple of other hash table
     bugs have been fixed.
  6. Castling and en passant status is now stored in the hash
     table and must match that of the current board for a
     position to be retrieved from the table.  To be 100% correct,
     the repetition count should be stored too, but that is
     still not done.
  7. The move ordering calculation in class Move_Ordering has
     been improved.  In most cases, this will make searching
     faster (however, this is partly masked by the hash table
     fix, which makes some searches slower).
  8. At each iterative deepening, the search used to try moves in
     the order of scores returned by the previous search.  Now it
     tries the highest-scoring move first, but calls Move_Ordering
     to sort the remaining moves.  This is another speed enhancement.
  9. The search module now always starts with a 1-ply search -
     it used to begin with a 2-ply search; this could cause
     the program to miss a one-move mate and play instead a
     mate in 2.
 10. A search now terminates when the side to move detects that
     its opponent has a forced mate in n, where n <= search
     depth.  Further searching will not change the score.
 11. In some cases, the search routine was not performing the
     forced move extension.
 12. Additions and improvements have been made to the endgame
     evaluation in module Scoring.  These changes significantly
     improve the program's play in simple king and pawn endgames.
     However, the program is still fairly dumb about endgames.
 13. The "TESTSRC" program (distributed with the source) has been
     extended so that it can read >1 position from a single file.
     The test suites distributed with version 1.0 have been
     consolidated into single files.  Also, a file has been added
     (WINATCHES.FEN) containing the 300 "Win at Chess" problems.
 14. Rebuilt .EXE with Borland C++ 4.0.

3-8-94:  Arasan 1.0 initial release

