Natch -- History of visible changes.			-*- text -*-

Copyright (C) 1997-1999, 2001-2005  Pascal Wassong <pascal.wassong@free.fr>

Please send bug reports to Natch@free.fr


Changes in Natch 2.4

   This is a bug fix release only.

   * Natch refused to capture a piece if the capturing piece already
     moved to the square where the capture should take place, but only
     if the move is a waiting move.  See
     `switchback_on_capture_square.test' test case.  Thanks to
     Franois Labelle.


Changes in Natch 2.3

   This is mainly a bug fix release.

   * The `--position' has been improved, with an optional LEVEL of
     output.  Level 2 prints information on moves order along with the
     position.

   * Fixed a problem where the solution was not found in a very
     special case, showed by the following sketch : wP-e7-e8=X, X is
     on e8 in the diagram, and bRa8-e8-e7.  A conflict was found
     between moves e7-e8=X and Re8-e7, and the position was rejected,
     even if white had enough spare moves to make a switchback.  See
     `promotee_must_switchback4.test' test case.  Thanks to Peter van
     den Heuvel.

   * Fixed a problem where a solution was not found, when they were
     two pieces that avoid another piece to cross a column (or
     diagonal) in one move.  See `double_twin_squares.test' test case.
     Thanks to Thierry Le Gleuher.

   * Fixed a problem where a solution was found twice in the case
     where a piece is captured on its initial square X, the capturing
     piece being on that square in the diagram, and a piece of the
     other colour must cross square X, with both colours having at
     least 2 spare moves to make a switchback.  See
     `undetermined_must_switchback.test' test case.  Thanks to ric
     Pichouron.


Changes in Natch 2.2

   This is a bug fix release only.  There are no new features.

   * Fixed a problem where the solution was not found in a very
     special case involving a pawn that captures on the 7th rang (or
     the 2nd for a black pawn), the promotes, then returns to the 7th
     rank (or the 2nd) and all that in with constraints on move orders
     with other pieces (not detailed here).
   * Fixed a problem where the solution was not found in the case
     where a piece is captured on its initial square, the capturer
     leaves this squares, which allows a castling and then the
     capturer returns to this square.  See
     `capturer_switchback_allows_OO.test' test case for an example.
   * Fixed a problem where the solution was not found in a special
     case : a rook is captured after having made one sole move :
     castling, AND the capturing piece never leaved the capture
     square, AND another piece needs this square before castling
     (capture, promotion, going thru).  See
     `B_and_R_captured_on_f8.test' test case for an example.
   * Fixed a problem where the solution was not found when a pawn
     promotes without capturing and must then make a switchback on the
     promotion square.
   * Fixed a writing problem : Ke8-??-e8(2) was erroneously written as
     Ke8-OO-e8(2).


Changes in Natch 2.1

   * The trajectories of all the pieces is precised as much as
     possible.  The moves are then pre-ordered as much as possible to
     search for impossibilities, which lead to the elimination of
     positions.  The moves order is not (yet) used for the exploration
     of the moves.  The `-k' option is though still useful.  The moves
     order is printed to the output with the `--position' option.
   * A move is no more tried if it is on an empty square where the
     piece should make a capture and there are less than 2 spare moves
     to make a switchback.
   * If a piece is captured on its home square without having moved
     and if the capturing piece is on its destination square, check if
     the capturing piece must not do a switchback to allow a piece to
     cross this square.  See an example in the test
     promotee_must_switchback.test.
   * A king may now be forced to make a swithback on its home
     square.  See switchback_king.test file for an example.
   * If the environment variable LC_ALL is set and has one of the
     available languages in Natch, this language is used by default.
   * Messages have been added to the output when the user skips or
     interrupts the resolution in visual mode.  A message is also
     added to the output when the --continue option is used.
   * Hopefully fixed a problem where on some systems the visual mode
     would only work on the second use of Natch.
   * Fixed a problem in the encoding of a position in the hash tables.
     No difference was made between a pawn on a square and the pawn
     returning to that square as a promoted piece.  This problem
     didn't occur in previous versions of Natch.  This could lead to
     some moves not being explored, so potentially missing solutions.
     This bug has been discovered by Satoshi Hashimoto in his proof
     game:
     R161 - Probleemblad 1, January/February 2002
     4b3/ppp3pp/1nrp1pk1/5p2/1bq5/2P3r1/PP3PPP/RNBQKBNR
     SPG 19.0
   * Fixed another problem in the encoding of a position in the hash
     tables.  The King position was not used (as if it never moved)
     when it was encaged on its home square by Pawns and Bishops, but
     the Queen was captured.
   * Fixed a problem in pawn trajectories test blocking pieces.  Some
     solutions could be missed.
   * Fixed a problem where is some extreme cases solutions could be
     found twice.
   * It is now possible to override an argument given in the NATCH
     variable by an argument on the command line.  The message
     "... option given more than once" isn't anymore displayed in this
     case.
   * Removed an erroneous optimisation which has a very subtle counter
     example : wPf7xXg8=R and this rook returns to f7 for tempo, and
     has its next destination being g8.  This happens in the SPG by
     Reto Aschwanden, 1st Prize Champagne Tourney, Portoroz 2002 :
     2B3Rr/p4br1/k2qp1pb/2np4/8/7p/PPP1PP1P/RNBQKBNR, 17.5 moves.
     This is the only counter-example I know of.
   * The size of the stack has been increased in the precompiled
     Windows version.  2 SPGs crashed with the previous size.


Changes in Natch 2.0

   * Changed the packaging of the source files.  It is now very easy
     to compile Natch on any Un*x like operating system.
   * Long option names.
   * New option `--moves' replacing the previous second optional
     argument.
   * New option `--beep' to control the beep at the end of the
     resolution.
   * Option `--verbose' (`-f') has been improved.  The output is now
     also correctly translated.
   * Improved speed and memory usage of hash tables.  The
     `--hash-size' option now takes as argument the exact number of
     megabytes to use for the hash tables.  The number of positions in
     the hash tables depends on the position itself.  The limit is
     your available RAM.
   * Improved resolution speed in visual mode (option `--visual') by
     scanning the keyboard less often.
   * When verifying trajectories due to pieces that have never made a
     move, spare moves are sometimes really allocated where necessary.
     In the example 1.c3 c5 2.Qb3 Nc6 3.Qxb7 Rb8 4.Qb3 Rb7 5.Qd1 Rc7,
     the rook is shown as Ra8-c7(3), because the Bc8 cannot move at
     all.
   * The diagram is now bigger in the output file.
   * Blank characters (space and tabulation) are now authorized at the
     end of the line describing a forsythe position.
   * Distances for pawns are no more calculated on an empty
     board.  This means that they are now stopped by obstacles,
     e.g. for the `--watch' option.
   * If reading Chloe file is enabled and a filename without extension
     is given as an input file, the extension `.chl' is tried if
     adding `.txt' didn't work.
   * Fixed a problem where some solutions where found twice when a
     pawn captures and returns to its previous column.
   * Fixed a problem when testing if 2 pawns on the same column could
     collide.  It gave unpredictable results.
   * Fixed problem where a promoted pawn captured a pawn as if it was
     an en passant capture.
   * Fixed problem where sometimes the space bar didn't show the moves
     in visual mode.


Changes in Natch 1.3

   * En passant captures.
   * Only legal castling are now made.
   * Tests on trajectories to impose switchback of pieces being
     otherwise obstacles.
   * New "-k" command line option.
   * Specific tests to avoid a promoted pawn to be captured by the
     pawn bloquing his promotion. Avoids for example a2-a8=N-b6 and
     a7xNb6.
   * Specific tests to avoid 2 pawns on the same column to cross there
     pathes.
   * Space-bar option in visual mode.
   * Castling in now counted as a king move when showing a king's
     path.
   * While searching for the next position, a text saying so is now
     displayed in visual mode.
   * White pieces use again a brighter and more visible colour in
     visual mode in the DOS version.
   * The forsythe notation is now written under the diagram in the
     output file.
   * The "s" key (which skips the current position in visual mode) now
     works fine.
   * Some minor debugging.


Changes in Natch 1.2

   * This version just corrects all the bugs that have been found
     since the public release of the previous version.
   * The problem where a capture occurred on the original square of
     another captured piece is now corrected. This was dependant on
     the order at which Natch was analyzing the pieces.
   * The problem when a promoted piece couldn't always capture another
     piece and come back on the promotion square is now
     corrected. This was also dependant on the order at which Natch
     was analyzing the pieces.


Changes in Natch 1.1

   * There is now a Linux version of Natch.
   * The Forsythe notation in a text file is now used as input to
     Natch as well as the Chloe format. The Forsythe notation is the
     only one recognized in the Linux version. See the `example.txt'
     file.
   * Pawns are now considered as obstacles even in most cases where
     they have moved. For example, with Pa2-a4, Ra1-a5 needs at least
     2 moves (Ra1-a3-a5) instead of 1. This increased slightly the
     speed of the resolution of the concerned problems.
   * When writing solutions to a file, the lines are truncated to fit
     in 80 characters.
   * There is now a HTML version of the documentation (only in
     French).
   * The case where a promoted pawn staying on the promotion square
     couldn't capture and come back is now corrected. For example, the
     previous version didn't find the solution : 1.f4 a5 2.f5 a4 3.f6
     a3 4.fxg7 axb2 5.gxh8=Q Bg7 6.Qxg7 Ra3 7.Qh8 diagram.
   * A promoted piece returning on his promotion square is no more
     shown as promoting a second time. See previous example.
   * The case where a pawn left his column, came back and then
     returned to the same adjacent column is now correct. The previous
     version didn't find the following solution : 1.e4 d5 2.exd5 Be6
     3.dxe6 Qd7 4.exf7+ diagram.
   * When the number of moves given to a colour is less than what is
     needed for the pawns, the program stops instead of giving a huge
     number of spare moves.
   * When the number of moves given to a colour is equal to what is
     needed for the paws, the program does no more try to castle while
     giving a huge number of spare moves.


-------------------------------------------------------
Copying information:

This file is licensed to you under the license specified in the
included file `COPYING'.  Look there for further details.
