Version History:
TRACE 1.37a - Nov 17 2006 RELEASE
- Just a minor patch realease to avoid an infinite loop in the evaluation code.
  Thanks to Leo for reporting this _before_ WBEC started!
- Slight change to qsearch hashing to make it search slightly faster (3%)
- Connected passers bonus increased slightly

TRACE 1.37 - Nov  9 2006 RELEASE
- This is mainly a bug fix release (and it SHOULD be stronger than 1.36)
- Fixed a STUPENDOUS passed pawn evaluation bug where white was rewarded for
  possessing an unstoppable passer ONLY if white had no pieces....
- Fixed another HORRENDOUS bug in passed pawn scoring where black was
  not rewarded correctly for having an unstoppable passer.
- As a sidenote the two bugs above caused T1.36 to do some very dumb things and
  I'm 99% sure they cost her a playoff in the Australian Championships. But that's my
  fault - who else is to blame???
  A big THANKS to Guenther Simon (RWBC Tournaments) for pointing out the bug(s) and providing
  a test position.
- Fixed an analysis mode i/o bug under Arena (and probably other GUIs as well)
- Queen value reduced to cure some bad misevaluations of material imbalances
- Added encouragement to trade down pieces when winning
- Tweaked backward pawn scoring
- Improved bishop and pawn coordination
- Increase Rook value as pawns disappear
- Decrease Knight value as pawns disappear
- Added increasing bonus for wing majorities as pieces disappear
- Passed pawn values tweaked.
- Some small code optimisations...

TRACE 1.36 NC3 - Aug 21 2006 RELEASE
- This version came =2nd at the Australian Chess Championships 2006.
  I had intended for TRACE 2.00 to be entered but was forced due to time constraints to
  make some improvements instead to 1.35...
- The list of changes below is only a summary of the highlights...
- Extends moves that give check and also detects and extends single replies to check
- Transpositional opening book (book.bin). Untuned but surely better than the old book.txt
- Implemented Late Move Reductions popularised by always helpful Tord Romstad.... so
  now TRACE's average search depth is about a ply or two deeper.
- Improved backward pawn detection
- Passed pawn code reworked to take into account pieces and not just pawns
- Piece value tuning... Q v RR was giving an excessive bonus to the Q...
- Time management improved to use more time in the first half of the game.
- Pruning is disallowed for moves that will probably alter alpha... so TRACE sees more tactics.
- Extensions are more strict... ie. only _safe_ passed pawn moves are extended
- Move legality is tested before makemove... so she is faster now.
- Nullmove reduction is now a mix of R=3 and R=2. Previous versions only used R=2.
- Search blindness due to lazy eval and delta pruning reduced.
- Quiescent move generator additionally generates 'interesting' pawn moves.
- Fixed some more analyze mode i/o lockups under Arena...
- Hard to give an exact figure but my tests show >40 Elo improvement over 1.35
- On an AMD64 Athlon 4000+ TRACE attains >1600000 nodes per second when running the built in
  benchmark. Type 'bench 13' at the prompt to test this yourself.

TRACE 1.35 - Aug 22 2005 RELEASE

- Removed experimental code that was meant to help hash table from 'log jamming'.
  It ruined searches > 4 seconds by wrecking move ordering and reducing hash table
  consistency. I guess you could say the experiment failed. :-)
- Changed input/output to buffered.
- EGTB: Limited to <= 5 man tables now... and TRACE.EXE shrinks from 680K to 300K. Ugh.
- Fixed 'analyze mode' problems under Arena with i/o lockups.
- Stopped 'analyze mode' re-searching when max ply depth exceeded (61 ply).
- WacNew on P3-600Mhz scores 299/300 @ 15 secs/pos
- bench 7 on P3-600Mhz: nodes=278130, secs=1.28, nps=216950
                        pv=b2b3 c8a6 g5e4 d6c6 c2e2 f7f6 e2g4

TRACE 1.34 - Aug 11 2005 RELEASE

- This is 'almost' the same version which competed at NC3 2005.
- Less likely to run out of time when using incremental time controls
- Pondering is now predictive. Prior versions simply pondered on
  the current position (to saturate the hash table).
- Improved move ordering, optimized history and killer table usage
- Tweaks to pawn scoring
- Threat extension tuning
- Hash pruning relaxed for PV nodes.
- Qsearch recognizes stalemates before standing pat.
- Hash table allows depth entries to be overwritten during deep searches
- Many evaluation changes. Some glitches fixed... 999,999 more to go...
- SEE (static exchange evaluator) performance improvements
- Piece values adjusted
- Two bishops bonus increased.
- Bad trade penalty adjustments.
- King shuffling in middle-game reduced
- Weak back rank detection
- Compiled for Athlon/P4 performance
- WacNew on P3-600Mhz scores 299/300 @ 15 secs/pos
- bench 7 on P3-600Mhz: nodes=278130, secs=1.28, nps=216780
                        pv=b2b3 c8a6 g5e4 d6c6 c2e2 f7f6 e2g4

Version 1.33B - Dec  7 2004 RELEASE

- This is IDENTICAL to 1.33 except for these 2 bug fixes.

- Bugfix: CPU not being fully relinquished when waiting for more input.
  It was using Sleep(0), apparently Sleep(1) was needed.
  This affected only one engine (Spike) as far as I know.
- Bugfix: This one evaded detection for a very long time. I am thrilled to
  fix it: Searches exceeding 4 Giganodes would crash the engine.
- MES400New @ 15secs on P3-450Mhz scores 335/400

Version 1.33 - Nov 21 2004 RELEASE

- Bishop fianchetto bonus reduced :-)
- Root EGTB moves are made without searching to avoid time losses
- Bugfix: pondering was broken
- bench 7 on P3-450Mhz: nodes=506383, secs=4.54, nps=111611
      pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6e7

Version 1.32 - Nov 15 2004 RELEASE

- Some small optimisations... 5% faster overall.
- Infamous trapped bishop code added.
- Mate threat and recapture extension fixes/tweaks.
- Backward pawn penalty increased.
- Bishop fianchetto bonus increased.
- All output sent via WIN32 WriteFile().

- Search is now aborted using C++ try/catch blocks.
- Updated the EGTB code to Eugene's latest... now the exe is huge...
- Bugfix: In extreme time trouble it could fail to find a move.
- Bugfix: Eval without EGTB returned draw for K vs K+R. (Thx to Mihail Croitor)

- Bugfix: Input parsing of promotions was broken. (Thx to my daughter Leah!)

- Bugfix: "st x" and "sd x" commands were broken.

- Bugfix: Analyze mode no longer researches when maxply reached...
- Bugfix: Mate scores in WB/Arena corrected

- Bugfix: PV output could overflow into next field during long searches.
- WacNew on P3-450Mhz scores 298/300 @ 20 secs
- bench 7 on P3-450Mhz: nodes=500333, secs=4.46, nps=112232 score=81
                         pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6e7

Version 1.31 - Oct  2 2004 19:04:46
- Threaded input polling   (Many thanks to Alessandro Scotti for his code)
- King safety improvements
- Fianchetto bishop scoring (needs more work)

- Various small optimizations
- Fewer 'Pawn on 7th' extensions

- Nullmove counts as a ply now

- Repetition optimization
- Changes to hashing... no nullmove hash signature
- Improved support for Arena analyze mode

- WacNew on P3-450Mhz scores 297/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=414049, secs=3.73, nps=111124 score=70
                         pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6e7 c1g5

Version 1.30 - Aug  4 2004 13:14:02

- an updated logo - much faster now ;-)
- Using MSVC++ compiler (so TRACE runs ~16% faster)
- mainly qsearch enhancements...
    generates checks at 1st ply of qsearch
    detects mates and repetitions in qsearch
    some tactics found a ply earlier
    solves WAC 141 in 1 second now... 1.29 took 223 secs!
- bugfix... exposed backward pawn penalty was broken
- WacNew on P3-450Mhz scores 298/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=324128, secs=2.56, nps=126365 score=71
                      pv=h2h4 h7h6 h4h5 h6g5 h5g6 f7f6 g2f3

Version  1.29 - Jun  8 2004 11:31:46

- Bugfix! doubled pawn eval was asymmetric
- using too much time early in game

- hashing in qsearch re-enabled, for now.

- king tropism bonus added to rook on open file scoring
- WacNew on P3-450Mhz scores 296/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=432020, secs=3.29, nps=131273 score=48

                         pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6c7

Version  1.28 - Jun  7 2004 13:14:56
- Fixed startup problems when running under Arena.
- Fixed analyze command under Arena

- Arena users be aware that "engine.ini" has an error -  
    The config file is called "trace.cfg"  (not trace.cgf)
  Next version of Arena should correct this.
- Added pawn hash tables... finally!  Pawn eval needs work though.
- New command 'hashp x' allows sizing/resizing of pawn hash table
    where x is the maximum size in Mbytes  
    The number is rounded down to one of the following : 0, 1, 2, 4, 7, 14, 28.
    I recommend adding the following line to TRACE.CFG:
    hashp 4
    which will allocate about 3.5 Mb for pawn hashing.

- Detects rookpawn and bishop draws much earlier now.

- Fixed incremental time usage - it was ignoring the increment.
- Added some opposite castling knowledge eg. pawn storms

- Revised trade down bonuses and ending evaluations... more work needed.
- Lazy eval tuning.
- Rewrote evaluation, added outpost scoring and cramped piece penalties
- Tweaked repetition detection
- Removed qsearch hashing and mate/stalemate detection.
- Fixed rare unreported bug where hash tables could contain corrupt data
and cause a crash. Usually in endgames or long searches.
- Using better zobrist keys so hash usage is more effective.
- Incremental piece/square values in makemove()

- Makemove cleaned up and optimised

- Some king safety changes - much more work required
- Improvements to Internal Iterative Deepening - smaller trees now.
- Nodes counted differently now. I just count every legal makemove as a node.  
    This means NPS will appear lower than previous versions.

- WacNew on P3-450Mhz scores ~295/300 @ 27 secs

- bench 7 on P3-450Mhz: nodes=467112, secs=3.57, nps=130807 score=46
                         pv=h2h4 f8d8 h4h5 g6f8 g5e4 d6c7 c1g5

Version 1.27 - Feb 27 2004 12:42:28
- Auto-resign bug fix (Resign flag wasn't being reset for next game)   Thankyou to Hartmut Woldeit for the bug report.
- book bug fix
  The 'book' command will now toggle book usage and display the new setting.  
    This had a bug where it would only switch book usage OFF.

- help   This command now waits for a keypress after displaying first page of help.
- WacNew on P3-450Mhz scores ~295/300 @ 27 secs
- bench 7 on P3-450Mhz: nodes=630484, msec=3070, nps=205369 score=25

                         pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.26 - Feb 25 2004 21:35:06
- Added internal iterative deepening...
- Reduced futility pruning... to cure some tactical blindspots

- Improved time management

- Tradedown bonuses

- Fewer EGTB lookups...

- Bug fix (memory overwrite problem)
- WacNew on P3-450Mhz scores ~295/300 @ 27 secs

- bench 7 on P3-450Mhz: nodes=630484, msec=3130, nps=201432 score=25
                         pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.25 - Oct 17 2003 00:00:05
- BugFix: Quiesce futility pruning was mishandling promotions.

- Bugfix: Recapture value table was unsigned yet it contained signed values.

    So, capture extensions were working only for recaptures to the same square.
- Removed hashp command from 'help' until fully implemented.
- Some knowledge about rooks and isolated pawns added

- Added 'good bishop' knowledge
- Value of queen increased relative to rooks to avoid bad trades

- bench 7 on P3-450Mhz: nodes=571182, msec=2960, nps=196282 score=25

                        pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.24 Sep 23 2003
- The text file TRACE.CFG contains the program settings. TRACE will look for it in her install directory.
  If not found it will be created with default values. Edit this file to suit your needs.
  It will be read as a sequential list of commands.

- supports WB 'analyze' mode
- supports WB 2 commands eg. setboard, ping, features etc
- configurable resign option.... Hi Leo! :-)  
    The following line in TRACE.CFG will cause TRACE to resign when
she's behind by >6 pawns.  
    resign 6

- Hash table is now 2 tiered - depth-based and always overwrite
- Corrected bad compiler switch... gained 15% more speed
- Coding tweaks made attack() function 20% faster.
- QSearch now uses SEE... slower, but tree is considerably smaller
- Internal piece representation changed to one array indexed by type.

  Consequently, probe_egtb(), eval(), attack() and gen() are more efficient.

- Reduced frequency of EGTB probes... only probes when necessary.
- Bugfix: hash_to_pv() was writing garbage to pv.
- Bugfix: array bounds error could cause a crash - fixed...
- millisecond timer now uses U64 variables to avoid U32 rollover problems

- fixed hard-coded random numbers used for zobrist keys, bit 47 and 63 were
  never used... :o)
- removed mobility scoring for rooks and bishops
- added internal node recognition code

- added more evaluation knowledge concerning passed pawns,draws

- Source code cleanup, source control system implemented.
- WacNew on P3-450Mhz scores ~292/300 @ 27 secs

- MES400 on P3-450Mhz scores ~320/400 @ 15 secs  (using some 5 man EGTBs)
- bench 7 on P3-450Mhz: nodes=397565, msec=2030, nps=195844 score=27

                         pv=h2h4 d5f6 c2a4 d6c7 g5e4 f6e4 g2e4

Version 1.23 21st July 2003  (Unreleased, =3rd in Aust. CC Champs.)
- fractional ply extensions implemented

- improved incremental time management

- improved blitz time management
- uses hard coded zobrist keys for compiler independence

- two lines added to opening book

- added mobility scoring for rooks and bishops
- added bonuses for attacking key squares around enemy king

Version 1.22 29th June 2003
- fixed commandline crash problem
- reverted to 1.20 extension logic (so we can accurately measure the EGTBs)

- WacNew on P3-450Mhz scores ~290/300 @ 27 secs

- MES400 on P3-450Mhz scores ~318/400 @ 15 secs  (using some 5 man EGTBs)
- bench 7 on P3-450Mhz: nodes=1553029, msec=7580, nps=204885

                         pv=h2h4 d5f6 c2e2 c8a6 h4h5 g6e7 c1e3

Version 1.21 28th June 2003
- Added NALIMOV EndGame TableBase probing. Supports up to 6 man tables.

- WacNew on P3-450Mhz scores ~291/300 @ 27 secs
- MES400 on P3-450Mhz scores ~318/400 @ 15 secs  (using some 5 man EGTBs)
- Added command-line parameters /EGPATH and /EGSIZE (case insensitive)
    EGPATH  specifies the folder where the EGTBs reside.
    EGSIZE specifies the size of the cache (in MB) for accessing them.
    The default for EGSIZE is 8Mb (recommended)  
    The default for EGPATH is .\tb
    Example: TRACE.EXE /HASH 64 /EGPATH e:\tb /EGSIZE 8

- Slightly reduced bonus for 2 bishops

- Improved draw detection with minors vs minors+pawns

- Negascout added to qsearch, forgot to add it to 1.20 (oops!!)

- Increased penalty for lost castling rights.
- bench 7 on P3-450Mhz: nodes=1128127, msec=5490, nps=205487
                         pv=h2h4 d5f6 c2e2 c8a6 h4h5 g6e7 c1e3