

r257
----
Minor cleanup.



r256
----
Fix major problem in triple repetition detection.



r255
----
Many fixes for Windows, including asynch IO and wrong timer code.
Fix a problem with repititions table management required to run in
 demo mode under Arena.



r254
----
Fix mingw32 error messages.



r253
----
CMD_GENMSTATS now takes one argument.



r252
----
Implement material vs. win probability table generation.
Implement automatic piece square table generation.



r251
----
Add simple Bayesian analysis implementation.



r250
----
Deactivate Late Move Reduction.
Try LMR before razoring and futility pruning.
Try out a dynamically sized aspiration window.
Some output clean up.



r249
----
Add basic PGN parser.



r248
----
Use a 16-bit type for scores and a 32-bit type 
for moves. Other minor tweaks.



r247
----
Fix compile error in the SEE disabled case.



r246
----
Add mates history table.



r245
----
Minor code rearrangement.



r244
----
Rework history heuristic implementation.



r243
----
Minor cleanup.



r242
----
Minor cleanup.



r241
----
Fix wrong comment.



r240
----
Apply move ordering bonus to promotions.



r239
----
Cleanup



r238
----
Fix nodes per second output.



r237
----
Changes to move ordering.



r236
----
Work on move ordering.



r235
----
Fix addition problem with format specifiers for 
unsigned long long.



r234
----
Use %I64u format specifier for unsigned long 
long in the WIN32 case.



r233
----
Disable cutoffs on SEE on qsearch.



r232
----
Add pawn evaluation hash implementation.



r231
----
Implement pawn eval caching.



r230
----
Changes to pruning.
Collect statistics in qsearch.



r229
----
Some improvements in transposition table management.



r228
----
Fix off by one access of pv_hist.



r227
----
Fix bug in allocation and initializion of 
scores in qsearch.



r226
----
Additional detail in statistics output.



r225
----
Add more detailed search statistics.



r224
----
Commit missing Boost files for random64.



r223
----
Add file util.cpp.



r222
----
Use the Boost library portable Mersenne Twister 
implementation for random number generation.



r221
----
Add millisecond sleep routine for Windows.
Fix remaining MSVC warnings.



r220
----
Fix some warning raised by MSVC compiler.



r219
----
Fix wrong argument order to memset.



r218
----
Add millisecond timing routine for WIN32.



r217
----
Set fixed timeout for command "playself".



r216
----
Use rand rather than random for portability.



r215
----
Fix problem with zero move case in qsearch.
Fix bug in clearing of history tables.
Fix bug in get_line.



r214
----
Fix problem with treatment of static constants 
between MSVC and gcc.



r213
----
Add preliminary support for WIN32.



r212
----
Fix bad commit to Makefile.



r211
----
Add passed pawn evaluation.
Add bonus for tempo.
Some cleanup and reorganization.
Initial support for compiling for Windows.




r210
----
More work on evaluation.



r209
----
Make time control slightly more conservative. This fixes a problem
with running large numbers of xboard session to a instances of the
engine running at low priority on remote machines.
Introduce constants for evaluation features.
Restructure top level evaluation function.
Add detection for bishops trappen on file A or H behind enemy pawns.
Introduce simple mobility evaluation.



r208
----
Work on evaluation, including backward pawn analysis.



r207
----
Rewrite pawn evaluation from scratch. Tests very well.



r206
----
Restructure eval code, moving tables and logic 
into their own separate files.



r205
----
Do not reduce or futilty prune moves that give check.



r204
----
Futility pruning seems to interact badly with LMR.
Disable it for now.



r203
----
Remove debug print statements.



r202
----
se fixed size rather than dynamic hash table for 
transposition table.
Compute material and piece square values incrementally.




r201
----
Fix a serious error in time control.
Use wall clock time rather than CPU time. 
Poll every N nodes examined rather than on a system timer.
Throw away the transposition table when it exceeds 4 million entries.
Add nodes per second output.
Thanks to Kenny Dail for his bug reports and suggestions for this 
revision.



r200
----
Keep searching for best mate on mate scores.
Do not try null move pruning at ply 0.
More aggressive null move pruning.
Activate recapture extensions.
Implement razoring and futility pruning.
Implement internal iterative deepening.
Some changes to move ordering.
Some changes to killer moves heuristic.
Some miscellaneous cleanup.



r199
----
Small changes to move ordering and minor cleanup.



r198
----
Correct treatment of mate values in transposition table.



r197
----
Use piece square tables for move ordering.



r196
----
Rework and fixes transposition table mechanism.


r195
----
Back out revisions r192:194 due to regressions.



r194
----
Use own hash implementation for transposition table.



r193
----
Back out new mate val scheme. It doesn't work.



r192
----
Improve handling of mate scores.



r191
----
Remove score field from Move type.



r190
----
Enable static exchange evaluation.



r189
----
Preparations for removing score field from move.



r188
----
Updates to reflect a new, more convenient 
move representation.



r187
----
Merge minor changes from release branch.



r186
----
Minor updates to README.



r185
----
Remove irrelevant test files from release 
branch.



r184
----
Remove NOTES file.



r183
----
Rename ABOUT to README.



r182
----
Update ABOUT for release 1.0.



r181
----
Prepare release branch for source packaging.



r180
----
Create release branch.



r179
----
Remove old binaries directory.



r178
----
Fix typo



r177
----
Remove release branch.



r176
----
Create release branch.



r175
----
Improve help command.
Fix error in iterative deepening.



r174
----
Remove unmaintained TODO file.
Fix a very rare case of a crash if the clock 
expires in the first pass of iterative deepening.



r173
----
Remove ruby_chess.rb



r172
----
Minor clean up.



r171
----
Update and activate late move reductions. 
This appears to be a big win.



r170
----
Try implementing the killer move heuristic. This doesn't appear to
improve move ordering so it may be a dead end or need some further work.
Some time management adjustments.
Modify version number macro in Makefile.




r169
----
Adjust thinking output.



r168
----
Some search clean up and simplification.
Pass alpha beta bounds to Eval.
Output thinking in xboard specified order.
Adjust centrality table.



r167
----
Minor optimization for pop_count.
Add missing command to commands.cpp.



r166
----
Fix problem in previous commit.



r165
----
Fix bug in from_fen.



r164
----
Finish search as soon as we find checkmate.
Do not store result of interrupted search in the 
transposition table.



r163
----
Fix a bug in to_san.
Fix a bug in checkmate detection at depth 0.
Use adaptive value for R in null move heuristic.
Minor cleanup.



r162
----
Use the result from the transposition table is the depth of the stored
 search is greater than or equal to the depth of the current query.
Fix some transposition table related bugs.
Some simplification and refactoring in search.
Rework piece square tables, especially for King in the end game.
Adjust castling bonuses.




r161
----
Major rearrangement of command interpreter. This sets up the
infrastructure to provide command completions, command help and usage,
argument checking, etc.




r160
----
Implement time controls and a simple time management strategy.
We now support the xboard commands "level", "st", and "sd".




r159
----
Add castling bonus.
Enable fixed pawn on 6th rank extensions.
Add -Wextra to CXXFLAGS and fix the generated warnings.
Add last_move field to Board.
Remove binaries from SVN to shrink archive.




r158
----
Some cleanup.
Initial support for parsing and storing time control settings.
Remove search extension on pawn to seventh rank and promotion.
Lots of rearrangement of Session::execute for clarity.
Spell check comments and strings.
Strip trailing whitespace and untabify.




r157
----
Add a README file at the top level.



r156
----
Try a trivial commit to sf.net.



r155
----
Add explanation and licensing statement for 
included Boost libraries. 



r154
----
Fix score output for loss in N.



r153
----
Simplify and optimize move application.



r152
----
untabify everywhere.



r151
----
Edits to ABOUT.
New prologue.
Report "Mate" rather than the value of MATE_VAL 
in posting.



r150
----
Add ABOUT document.



r149
----
Small optimizations to move application.
Add copyright headers and COPYING in preparation
for public release.




r148
----
Minor clean up and optimization.
Use symbolic constants for square numbers.



r147
----
Minor cleanup and optimizations.



r146
----
Minor cleanup and resync.



r145
----
Add results for LMR tests.



r144
----
Eval adjustments and testing.



r143
----
Reward pawns defended by pawns.



r142
----
Adjust eval_control



r141
----
Updates to eval.



r140
----
Cleanup.



r139
----
Make piece tables const.



r138
----
Adjust bishop evaluation. This tests very well.



r137
----
Add some bishop evaluation.




r136
----
Post to standard out to avoid synchronization issues 
with unbuffered IO.



r135
----
flush I/O properly



r134
----
flush I/O properly



r133
----
Save argv. Use argv in title. Use a random time 
inc for testing.



r132
----
Minor changes to support Linux builds.



r131
----
Cleanup.
Change transposition table and hh_table retention 
policy.



r130
----
Rework evaluation code.



r129
----
Add a local copy of the Boost headers we 
depend on.



r128
----
Some tweaks.
Work on LMR.




r127
----
Implement late move reductions.



r126
----
Limit transposition table size.
Do not penalize normal scores by their ply, as this degrades 
thesearch substantially.



r125
----
Take first pass at pawn and rook evaluation.
Add dump_pawns for generate data for offline analysis




r124
----
Various refactoring and cleanup.
Add pawn and queen/rook on semi-open file 
evaluation.




r123
----
Cleanup and refactoring.



r122
----
minor performance tuning



r121
----
Add tests.all/undermine.epd.




r120
----
Fix to problem with check extensions. Add some 
simple evaluation.



r119
----
Much of our evaluation function turns out to be 
junk. We see an improvement by deactivating it.



r118
----
Break out transposition table probing code.



r117
----
Fix serious bug in iterative deepening.
Fix serious bug in sum_piece_squares.




r116
----
Break out thinking output generation. 
Fix error in PVS. We now see an improvement with PVS enabled.




r115
----
Break out aspiration search code and use dynamically sized window. We
make a guess that the difference between iteration i and iteration i
+ 1 is not usually much bigger than the delta between iteration i and
i - 1. (Is this a novel idea?)




r114
----
Gather move ordering statistics.
Implement check extensions. This provides a
 significant improvement.




r113
----
Implement PVS. It's not clear this is much, or any, 
of an improvement.
Small improvement in move ordering.
Collect statistics on move ordering.




r112
----
Add support for running best-move epd tests.



r111
----
Style changes.




r110
----
Add reading and writing moves in SAN format.




r109
----
Fix uninitialized variable in gen_captures().




r108
----
Simplify move generation code.



r107
----
Build with -march=native.



r106
----
Clean up and refactor Makefile




r105
----
Implement static exchange evaluation. This doesn't appear to be much
help for move ordering, probably because our implementation is
expensive, but it does allow us to prune losing captures in
qsearch. This is a small win at low depths but apparently a
significant one for very deep searches. (d > 10).
--This line, and those below, will be
ignored--

M    trunk/search.cpp
M    trunk/NOTES
M    trunk/search.hpp
M    trunk/Makefile
M    trunk/eval.hpp
M    trunk/board.hpp
M    trunk/genmoves.cpp




r104
----
Correct fix for revision number generation.



r103
----
Fix problem with generation and linking of 
version number file.



r102
----
char *SVN_REVISION should be const in chesley.hpp



r101
----
A new tests directory and .EPD files.




r100
----
Add binary for chesley.81.




r99
---
This is an empty revision for padding.




r98
---
Add missing file.




r97
---
Remove test suite directory.



r96
---
add missing files.



r95
---
Cleanup



r94
---
Refactoring



r93
---
Move testcases. Add mate.epd.




r92
---
Refactoring.



r91
---
Add mate.epd.



r90
---
Move move generation like code in to genmoves.cpp.



r89
---
Minor cleanup



r88
---
Improve move ordering.



r87
---
Tweak piece square tables.



r86
---
Update TODO.



r85
---
Improve null move implementation.



r84
---
Add board accessor to_move ().




r83
---
Add better formatting for thinking.



r82
---
Fix serious bug in eval_piece_squares.



r81
---
Improve automatic version string generation.



r80
---
Fix serious bug in piece tables.



r79
---
Implement a new evaluation strategy.
Introduce framework for collecting statistics on 
games and searches.




r78
---
Add counter for calls to qsearch.
Add gen_captures and use it in qsearch.
Add non-functional MTDf implementation.
Adjust graph history strategy.




r77
---
Fix bug in search interruption.



r76
---
Fix error in previous check in. Don't use 
contempt value as our scheme is flawed.




r75
---
Implement triple repetition detection.



r74
---
Simplify and debug qsearch.
Introduce simple null-move implementation.
Implement aspiration search.




r73
---
Reactivate qsearch. Note we win 8-2-0 against the version without it.



r72
---
Reenable debugged transposition tables.
Introduce macros to enable/disable search algorithms at build time. 




r71
---
Pass ply number down search stack and reward shallower over deeper positions.



r70
---
Fix crash in Board::from_fen.




r69
---
Deactivate buggy transposition table code.




r68
---
clean up



r67
---	
Dummy commit for testing purposes.



r66
---
Add svn revision number to prologue string.



r65
---
Bug fixes. Reenable timed searches.




r64
---
Implement quiescence search.




r63
---
minor move ordering improvements.



r62
---
significant move ordering improvements.



r61
---
Initial work on null move heuristic.



r60
---
Only throw away transposition table at move 40 and 41, not at every
line greater than 40.
Clean up unreferenced junk code.





r59
---
Rework session handling code.




r58
---
Return principle variation to the top level of the search.




r57
---
rewrite search implementation.




r56
---
Add partial implementation of triple repetition detection.




r55
---
cleanups and tuning.



r54
---
Implement aspiration  search.




r53
---
Implement history heuristic.




r52
---
Clean up and improvements to move ordering.




r51
---
Cleanup and refactoring.




r50
---
clean up move type.




r49
---
Move chesley.47 to old_binaries.




r48
---
Add an archive for old binarys for testing purposes.





r47
---
More experimenting with search.




r46
---
Fix wrong sign in transposition code. This 
makes a massive difference!
Add code to fetch principal from transposition 
table. 




r45
---
Get MTDF working.



r44
---
clean up



r43
---
Improve move ordering.



r42
---
more work on search and transposition tables.




r41
---
More search clean up.




r40
---
More search clean up.




r39
---
Clean up search.




r38
---
Update result command format.




r37
---
Cleanup and debugging.




r36
---
add debugging statements



r35
---
Use portable integer type definitions.




r34
---
Finish hashing implementation. 
Implement transposition tables.
Implement MTDf.




r33
---
cleanup



r32
---
This is an empty revision for padding.



r31
---
Add code for generating Zobrist hash signatures.




r30
---
Rewrite search engine.
Implement iterative deepening and timed search.
Implement stubs for Zobrist hashing.
Misc. clean up.




r29
---
clean up



r28
---
Clean up.




r27
---
Clean up and found some new interesting documents.




r26
---
clean up



r25
---
This is an empty revision for padding.



r24
---
Fix faulty end game detection logic.
Implement fast check testing.




r23
---
clean up



r22
---
Add initial EPD parser and test harness.



r21
---
Correct wrong parsing of En Passant square in from_fen.




r20
---
Last revision should refer to castling not correctly resetting 
En Passant square.




r19
---
Fix move generation problem with castling through pawn attack.
Fix move generation problem with 0 being treated as valid 
 En Passant target.




r18
---
Cleanup.
Add board to ascii display function.
Fix bug with castling through check when empty square is attacked by pawn.






r17
---
Add conversion to FEN string.




r16
---
Fix bug with castling through check detection.
Add divide () debugging function.
Other clean up.





r15
---
refactoring and clean up.




r14
---
Fix flow control problem in session.cpp.
Fix setting of castling flags when reading a calg move.




r13
---
Move work on xboard interfacing. We can now play 
Chesley against gnuchess, which currently rips us 
to shreds evven when we are searching to 7 ply...




r12
---
minor rearranging.



r11
---
Fix quicksort
Implement and use insertion sort. (Looks better in our case.)
Random number utilities and misc. cleanup.




r10
---
More work on supporting xboard sessions.



r9
--
Fix a bug is positional evaluation. Chesley can now school me...



r8
--
Implement operations on Moves in coordinate algebraic notation.
Add very minimal interfacing with xboard.




r7
--
Add Move::to_calg to format a move in coordinate algebraic notation.



r6
--
Avoid use of using namespace; in headers.
Work around g++ library problem.



r5
--
Fix call to wrong function.


r4
--
Fix missing include.


r3
--
Fix minor error.


r2
--
Fix minor typos and errors.


r1
--
initial import