Skip to content

Change log

double-beep edited this page Jul 5, 2018 · 149 revisions
  • 2018-06-28 Penalty for bad bishop with blocked central files (asm & arm) bench 5364190
    • SF 2018-05-01, bench 5364190
  • 2018-06-28 AppVeyor Improvements
    • No functional change.
  • 2018-06-27 Always scale using pawn contribution (asm & arm) bench 5254862
    • SF 2018-04-29, bench 5254862
  • 2018-06-27 Simplifiy IID condition (asm & arm) bench 4966970
    • SF 2018-04-26, bench 4966970
  • 2018-06-27 No Queen in the Mobility Area (asm & arm) bench 4650572
    • SF 2018-04-23, bench 4650572
  • 2018-06-26 Simplify the ShelterStrength[] array (asm & arm) bench 4703935
    • SF 2018-04-23, bench 4703935
  • 2018-06-26 Include AppVeyor CI
    • Continuous integration for asmFish to help streamline development. No functional change.
  • 2018-06-25: 20 ARM only patches:
    • Alternative formula for dynamic contempt bench 5549801
    • Remove template W param bench 5172244
    • Simplify condition in space definition bench 4812078
    • Reset negative statScore on fail high bench 5170165
    • Introduce Overload bench 5226595
    • Remove the Queen from the mobility area of minor pieces bench 5391798
    • Refine SEE threshold for capture pruning bench 5517584
    • Candidate Passed Pawn bench 5225030
    • Change reduction/improving interaction bench 5349187
    • Tweak queen values for midgame and endgame bench 5680783
    • Simplification: remove pawn shelter/storm masks bench 6131373
    • IID margin reduced to 128 bench 5682068
    • Make kingRing always 8 squares bench 5259253
    • Simplify condition for ProbCut move count pruning bench 5744763
    • Tweak probcut margin with 'improving' flag bench 5328259
    • Use quiescence search for Probcut bench 5404565
    • Adjust initiative in pure pawn endgames bench 5543186
    • Connectivity Score S(3,1) is stronger than S(2,2) bench 5975276
    • Implement an old Russian proverb bench 5870285
    • Two steps slider threats on queen bench 5473248
  • 2018-06-21 Alternative formula for dynamic contempt (asm) bench 5549801
    • SF 2018-04-23, bench 5549801
  • 2018-06-21 Remove template W param (asm) bench 5120532
    • SF 2018-04-23, bench 5120532
  • 2018-06-16 Simplify condition in space definition (asm) bench 5351765
    • SF 2018-04-10, bench 5351765
  • 2018-06-16 Reset negative statScore on fail high (asm) bench 5170165
    • SF 2018-04-07, bench 5170165
  • 2018-06-16 Update flat assembler g to version i5y0r
    • This is the latest release of fasmg from May 06, 2018. Program assembly supported for various architectures including x86, x64, 8052, AVR, and Java Virtual Machine.

https://flatassembler.net/download.php

No functional change.

  • 2018-06-12 Introduce Overload (asm) bench 5248871
    • SF 2018-04-07, bench 5248871
  • 2018-06-12 Remove the Queen from the mobility area of minor pieces (asm) bench 4989125
    • SF 2018-04-04, bench 4989125
  • 2018-06-12 Refine SEE threshold for capture pruning (asm) bench 6036915
    • SF 2018-04-01, bench 6036915
  • 2018-06-12 Candidate Passed Pawn (asm) bench 5568461
    • SF 2018-03-29, bench 5568461
  • 2018-06-11 Change reduction/improving interaction (asm) bench 5326261
    • SF 2018-03-28, bench 5326261
  • 2018-06-10 Tweak queen values for midgame and endgame (asm) bench 5460229
    • SF 2018-03-27, bench 5460229
  • 2018-06-10 Simplification: remove pawn shelter/storm masks (asm) 5980822
    • This commit also includes this related simplification.

The bench of asmFish is now realigned with the corresponding SF commit.

SF 2018-03-27, bench 5980822

  • 2018-06-10 Make kingRing always 8 squares (asm) bench 5934104
    • 5934103 is the official bench, but 5934104 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-26, bench 5934103

  • 2018-06-07 IID margin reduced to 128 (asm) bench 5851103
    • 5851102 is the official bench, but 5851102 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-23, bench 5851102

  • 2018-06-07 Simplify condition for ProbCut move count pruning (asm) bench 5741805
    • 5741807 is the official bench, but 5741805 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-14, bench 5741807

  • 2018-06-07 Tweak probcut margin with 'improving' flag (asm) bench 5328259
    • 5328254 is the official bench but 5328259 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-14, bench 5328254

  • 2018-06-07 Use quiescence search for Probcut (asm) bench 5404565
    • 5404567 is the official bench but 5404565 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-13, bench 5404567

  • 2018-06-05 Adjust initiative in pure pawn endgames (asm) bench 5750115
    • 5750110 is the official bench but 5750115 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-12, bench 5750110

  • 2018-06-05 Connectivity Score S(3,1) is stronger than S(2,2) (asm) bench 5601231
    • 5601228 is the official bench but 5601231 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-12, bench 5601228

  • 2018-06-05 Implement an old Russian proverb (asm) bench 5318574
    • 5318575 is the official bench but 5318574 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-10, bench 5318575

  • 2018-06-05 Two steps slider threats on queen (asm) bench 5788688
    • 5788691 is the official bench but 5788688 is correct since this patch was skipped in asmFish. See discussion at lantonov#165 for more details.

SF 2018-03-09, bench 5788691

  • 2018-06-02 Simplification: use Arctan for the optimism S-curve (asm) bench 5544908
    • armFish development on pause. See issue #175.

SF 2018-03-07, bench 5544908

  • 2018-06-01 Use evaluation trend to adjust futility margin (asm & arm) bench 5779242
    • Also includes...
  1. This related speed-boosting patch
  2. Makefile enhancements
  3. Minor macro corrections for BMI2 processors

SF 2018-03-07, bench 5779242

  • 2018-06-01 Knight threats on Queen (arm) bench 6051247
    • SF 2018-03-07, bench 6051247
  • 2018-05-29 Knight threats on Queen (asm) bench 6051247
    • This commit also contains a (tentative) bugfix that should restore the full functionality of asmFish_base executables. Performance of other executables should be unaffected. Track this issue here: #173.

SF 2018-03-07, bench 6051247

  • 2018-05-28 Using a S-curve for the optimism measure (arm) bench 5934644

    • SF 2018-04-04, bench 5934644
  • 2018-05-27 Using a S-curve for the optimism measure (asm) bench 5934644

    • SF 2018-04-04, bench 5934644
  • 2018-05-26 Executables and code cleanup

    • No functional change.
  • 2018-05-26 No extra for QS recaptures (arm) bench 6361582

    • SF 2018-02-27, bench 6361582
  • 2018-05-25 No extra for QS recaptures (asm) bench 6361582

    • SF 2018-02-27, bench 6361582
  • 2018-05-11 Do move-count pruning in probcut (asm & arm) bench 6361568

    • SF 2018-03-03, bench 6361568
  • 2018-05-11 Reintroduce depth 2 razoring (asm & arm) bench 5765806

    • SF 2018-02-28, bench 5765806
  • 2018-04-26 Fix for Large Pages (asm). bench 5643520

    • Reload rcx register prior to calling OS_VirtualAlloc. This patch should prevent the rcx register from getting clobbered and therefore restore the functionality of LP in asmFish. See discussion at issue #160 for more details.
  • 2018-04-24 Update flat assembler g to version i4pue. bench 5643520

  • 2018-04-12 Pad EvalInfo to 16-byte boundary (arm). bench 5643520

    • This patch should restore the functionality of armFish on mobile devices
  • 2018-04-10 More robust interaction of singular search and iid (asm & arm). bench 5643520

    • SF 2018-02-25, bench not changed
  • 2018-04-10 fix promotions in Allow for general transposition table sizes (asm & arm). bench 5643520

  • 2018-04-08 Tweak time management

    • SF 2018-02-28, bench 5643520
  • 2018-04-08 Stat score initialization: grandchildren. bench 5643520

    • SF 2018-02-27, bench 5643520
  • 2018-04-08 No Tempo for draw scores given by heuristic functions. bench 4924749

    • SF 2018-02-27, bench 4924749
  • 2018-04-08 Shallow search to verify probcut. bench 5882274

    • SF 2018-02-26, bench 5882274
  • 2018-04-08 Count passed pawns in asymmetry measure. bench 5302866

    • SF 2018-02-26, bench 5302866
  • 2018-04-08 Simplification: do razoring only for depth 1. bench 5227124

    • SF 2018-02-24, bench 5227124
  • 2018-04-08 Lower razor depth to < 3 and adjust margin. bench 5475941

    • SF 2018-02-23, bench 5475941
  • 2018-04-08 Simplify trapped rook. bench 5006365

    • SF 2018-02-15, bench 5006365
  • 2018-04-08 Introduce dynamic contempt. bench 5207156

    • SF 2018-02-09, bench 5207156
  • 2018-04-08 Retire Extra thinking before accepting draw PVs

    • SF 2018-02-09, bench 4983414
  • 2018-04-08 A combo of 3 successful tuning patches. bench 4983414

    • SF 2018-02-08, bench 4983414
  • 2018-04-08 Obey skipQuiets strictly in MovePicker. bench 4954595

    • SF 2018-02-08, bench 4954595
  • 2018-04-08 Don’t score and sort all captures in RECAPTURES stage. bench 5023593

    • SF 2018-02-05, bench 5023593
  • 2018-04-08 Retire lever. bench 5023629

    • SF 2018-01-28, bench 5023629
  • 2018-04-08 Limit the king distance factor when evaluating passed pawns. bench 5059457

    • SF 2018-01-28, bench 5059457
  • 2018-04-08 Contempt 20. bench 5783344

    • SF 2018-01-23, bench 5783344
  • 2018-04-07 Make razor margin depth independent. bench 5098576

    • SF 2018-01-23, bench 5098576
  • 2018-04-07 Simplify verification search. bench 4971497

    • SF 2018-01-13, bench 4971497
  • 2018-04-07 Revert to old time management (arm)

    • SF 2018-01-13, bench 5365777
  • 2018-04-07 Use mobility in kingsafety. bench 5365777

    • SF 2018-01-13, bench 5365777
  • 2018-04-02 Remove ThreatByHangingPawn Bonus bench 4919682

    • SF 2018-01-04, bench 4919682
  • 2018-04-02 update to Include x-ray attacks through all queens independently of the color, bench 5544445

    • SF 2017-12-26, bench 5544445
  • 2018-04-02 Allow for general transposition table sizes bench 5332275

    • SF 2017-12-18, bench 5346341
  • 2018-04-02 update to Enhanced verify search bench 5824883

    • SF 2017-12-18, bench 5776193 (given) 5824883 (real)
  • 2018-04-02 Let ss->ply denote the number of plies from the root to the current node

    • SF 2017-09-17, non-functional (no bench change)
  • 2018-03-31 Remove QueenMinorsImbalance array (arm)

    • SF 2017-12-17, bench 5176807
  • 2018-03-31 Make staticEval independent of the search path (arm)

    • SF 2017-12-17, bench 5208264
  • 2018-03-31 Simplify other checks #1337 (arm)

    • SF 2017-12-17, bench 5000136
  • 2018-03-30 Simplify other checks #1334 (arm)

    • SF 2017-12-11, bench 5149133
  • 2018-03-28 Don't consider defending queen as a check blocker (arm)

    • SF 2017-12-06, bench 5767699
  • 2018-03-24 MacOS executables [bugfix]

    • A closer look at the MacOS executables revealed that they have been unusable since the switch to from fasm to fasmg in August, 2017. This patch prevents asmFishX from crashing during execution and restores its bench to be even with the latest [x86] Linux and Windows executables. Bench: 5176807
  • 2018-03-23 Pawn endgames directly skip early pruning (arm)

    • SF 2017-12-04, bench 5466219
  • 2018-03-19 Clean a bit after the patch Remove QueenMinorsImbalance array #138

  • 2018-03-19 Remove QueenMinorsImbalance array (asm)

    • SF 2017-12-17, bench 5176807
  • 2018-03-18 Make staticEval independent of the search path (asm)

    • SF 2017-12-17, bench 5208264
  • 2018-03-16 Matefinder bugfix

  • 2018-03-13 Makefile improvements and executable sorting

  • 2018-03-13 Simplify other checks #1337 (asm)

    • SF 2017-12-17, bench 5000136
  • 2018-03-12 Simplify other checks #1334 (asm)

    • SF 2017-12-11, bench 5149133
  • 2018-03-07 Don't consider defending queen as a check blocker (asm)

    • SF 2017-12-06, bench 5767699
  • 2018-03-01 A better contempt implementation [bugfix] (asm)

    • SF 2017-12-05, bench 5466219
  • 2018-02-22 Bug fix for issue #117 (SlowMover) (asm)

  • 2018-02-20 Bug fix for issue #113 (MinThinkTime) (asm)

  • 2018-02-19 Pawn endgames directly skip early pruning (asm; courtesy of Justin de Horty)

    • SF 2017-12-04, bench 5466219
  • 2018-02-15 Restore old time management (asm; courtesy of Justin de Horty)

    • SF 2018-01-13, no functional change
  • 2018-02-11 Attack threats (asm & arm @tthsqe12)

    • SF 2017-12-03, bench 5051254
  • 2018-02-11 Simplify away the PawnSet[] imbalance array (#1308) (asm & arm @tthsqe12)

    • SF 2017-11-18, bench 5340212
  • 2018-02-12 add code conventions

  • 2018-02-12 use fewer andn's as in syzygy1's patch and add checker.py (asm @tthsqe12)

  • 2018-02-12 aggregate update from asm repo to Simplify some kingring penalties expressions (asm & arm @tthsqe12)

  • 2018-02-11 Simplify away the PawnSet[] imbalance array (#1308) (asm @syzygy1)

    • SF 2017-11-18, bench 5340212
  • 2018-02-11 Simplify some kingring penalty expressions (asm @syzygy1)

    • SF 2017-11-11, bench 5109559
  • 2018-02-11 Move back the comment (asm @syzygy1)

  • 2018-02-11 Capture Stat Simplification- Bench: 5363761 (asm @syzygy1)

    • SF 2017-11-10, bench 5363761
  • 2018-02-03 Revert "Supports .bin books up to 1 TB in file size (jdehorty)"

  • 2018-02-02 Set USE_VARIETY 0

  • 2018-02-02 Supports .bin books up to 1 TB in file size (jdehorty)

  • 2018-01-10 Fix issue with VERBOSE=1 (asm & arm)

  • 2017-11-19 Always do MaxCardinality checks (asm)

    • SF 2017-11-08 bench: 5015773
  • 2017-11-18 Simplify Null Move Search condition (asm)

    • SF 2017-11-08 bench: 5015773
  • 2017-11-06 Handle BxN trade as good capture when history score is good (asm & arm)

    • SF 2017-11-06, bench 5482249
  • 2017-11-06 forget about book upon go infinite (asm)

  • 2017-11-06 arm: Introduce capture history table for capture move sorting

    • SF 2017-11-03, bench 5536775
  • 2017-11-06 x86: Introduce capture history table for capture move sorting

    • SF 2017-11-03, bench 5536775
  • 2017-11-04 Replace easyMove with simple scheme

    • SF 2017-11-03, bench 5234652
  • 2017-11-04 Extra thinking before accepting draw PVs

    • SF 2017-10-28, bench 5234652
  • 2017-11-04 Fix premature using of all available time in x/y TC

    • SF 2017-10-22, bench 5234652
  • 2017-11-04 Don't filter root moves if MultiPV mode is enabled

    • SF 2017-10-22, bench 5234652
  • 2017-11-04 Simplify bonus for bishop on long diagonal

    • SF 2017-10-11, bench 5234652
  • 2017-11-04 fix bug in mate display (asm & arm)

  • 2017-10-19 x86: add timing column to bench

  • 2017-10-19 x86: finalize USE_VARIETY

  • 2017-10-18 x86: better USE_VARIETY

  • 2017-10-08 x86: fix lerp used in weakness

  • 2017-10-08 remove dependence on include environment variable (asm & arm)

  • 2017-10-07 x86: filter out repetitions from book and set USE_BOOK to default

  • 2017-10-06 update readme and fix newlines in windows

  • 2017-10-05 switch PEDANTIC off in Matefinder

  • 2017-10-04 include Matefinder option in make.bat

  • 2017-10-04 update fasmg and fasmg.exe to the version of 2017-10-04 (hxhsr)

  • 2017-10-04 define include variable for base versions

  • 2017-10-04 fix pe setting bug

  • 2017-10-04 do not clear screen after assembling

  • 2017-10-03 make.bat file with a menu

  • 2017-10-03 update readme

  • 2017-10-03 update readme

  • 2017-10-03 update readme

  • 2017-10-03 add windows make file

  • 2017-10-02 arm trim

  • 2017-10-02 arm trim evaluation

  • 2017-10-02 Good bishops on the main diagonals

    • SF 2017-10-02, bench 5620312
  • 2017-10-01 further slimming

  • 2017-10-01 eliminate double jumps

  • 2017-10-01 arm Decrease reduction for exact PV nodes

    • SF 2017-09-30, bench 5742466
  • 2017-10-01 arm Tweak statScore condition

    • SF 2017-09-22, bench 5037819
  • 2017-10-01 arm Score unopposed weak pawns only if majors

    • SF 2017-09-12, bench 6259498
  • 2017-10-01 arm Extend ShelterWeakness array by dimension isKingFile

    • SF 2017-09-09, bench 5322108
  • 2017-10-01 arm Streamline reduction based on movecount

    • SF 2017-09-05, bench 6351176
  • 2017-10-01 arm Adjust moveCount history only at LMR

    • SF 2017-08-31, bench 5417521
  • 2017-10-01 arm Simplify away non-normal moves in SEE

    • SF 2017-08-30, bench 5713905
  • 2017-10-01 arm Count all weak squares in the king ring with a single popcount

    • SF 2017-08-26, bench 5965302
  • 2017-10-01 arm Use moveCount history for reduction

    • SF 2017-08-26, bench 5747429
  • 2017-10-01 tidy up book

  • 2017-10-01 tidy

  • 2017-10-01 x86 Decrease reduction for exact PV nodes

    • SF 2017-09-30, bench 5742466
  • 2017-10-01 x86 Tweak statScore condition

    • SF 2017-09-22, bench 5037819
  • 2017-10-01 x86 Score unopposed weak pawns only if majors

    • SF 2017-09-12, bench 6259498
  • 2017-10-01 x86 Extend ShelterWeakness array by dimension isKingFile

    • SF 2017-09-09, bench 5322108
  • 2017-10-01 x86 Streamline reduction based on movecount

    • SF 2017-09-05, bench 6351176
  • 2017-10-01 x86 Adjust moveCount history only at LMR

    • SF 2017-08-31, bench 5417521
  • 2017-10-01 x86 Simplify away non-normal moves in SEE

    • SF 2017-08-30, bench 5713905
  • 2017-10-01 x86 Count all weak squares in the king ring with a single popcount

    • SF 2017-08-26, bench 5965302
  • 2017-10-01 x86 Use moveCount history for reduction

    • SF 2017-08-26, bench 5747429
  • 2017-09-30 extra for ponder

  • 2017-09-30 arm Wide bench coverage

  • 2017-09-30 x86 Wide bench coverage

    • SF 2017-08-19, bench 5479946
  • 2017-09-29 logger for x86

  • 2017-09-28 logger for arm

  • 2017-09-28 final fix for elfexe.inc

  • 2017-09-24 enable loading headers in elfexe format for arm

  • 2017-09-19 elf object and dynalink exe format nominally work

  • 2017-09-15 weakness for arm

  • 2017-09-08 formatting

  • 2017-09-06 USE_MATEFINDER and USE_VARIETY work

  • 2017-09-04 check aarch64 assembly against gas

  • 2017-09-04 update fasmg.exe to hwx32

  • 2017-09-04 get armfish working

  • 2017-09-04 update to fasmg.exe hwx32

  • 2017-09-04 arm instruct set done

  • 2017-09-04 almost done

  • 2017-09-02 up to p done

  • 2017-09-02 instructions up to e

  • 2017-08-29 more instructions

  • 2017-08-29 blah

  • 2017-08-28 bigger mess

  • 2017-08-28 more instructions

  • 2017-08-27 armfish assembles

  • 2017-08-27 arm evaluate assembles

  • 2017-08-26 add arm tb

  • 2017-08-26 more instructions

  • 2017-08-26 add vector loads and stores

  • 2017-08-26 arm update

  • 2017-08-26 more instructions

  • 2017-08-25 more arm instructions

  • 2017-08-24 get mac working

  • 2017-08-22 arm: add instruction

  • 2017-08-20 add mac version

  • 2017-08-19 windows version assembles

  • 2017-08-18 hello world works

  • 2017-08-17 first arm commit

  • 2017-08-16 add make file for linux popcnt

  • 2017-08-16 update fasmg to 2017-08-16

  • 2017-08-16 Add files via upload

  • 2017-08-16 asmFishL_popcnt binary matches modulo fasmg bugs

  • 2017-08-16 Create ReadMe.txt

  • 2017-08-16 Initial commit

In the middle of August 2017, asmFish and armFish underwent an extensive rewriting to make them a single base code for assembly with fasmg assembler (instead of fasm assembler). fasmg assembler makes the program portable to the major operating systems: Windows, Linux, Mac OS, and the OS for ARM architecture (Android, ...). Because this rewrite was made anew and discontinued the history of master branch (for fasm assembler), the code was put in a separate branch, named 'fasmg' (URL: https://github.com/lantonov/asmFish/tree/fasmg). All further changes are supposed to be on this new fasmg branch which eventually will become a new master branch. fasmg has two major subfolders: 'x86' for asmFish and 'arm' for armFish.

  • 2017-08-25 some warning messages on linux (asm & arm)
  • 2017-08-25 fix printing of node numbers (asm)
  • 2017-08-19 fix file size (mac)
  • 2017-08-18 added object files ready to be linked (mac)
  • 2017-08-18 Time management simplification (asm & arm)
    • SF 2017-08-17, bench 5608839
  • 2017-08-18 some silly formatting (asm)
  • 2017-08-14 arm: fix assembling error
  • 2017-08-14 arm: acquire and release shared byte in tbcore
  • 2017-08-14 arm: fix bug in PosIsDraw
  • 2017-08-13 x86: include Print_Fen only when needed
  • 2017-08-13 arm: add syzygy
  • 2017-08-13 x86: tidy up tb code (asm)
  • 2017-08-10 clean up TablebaseCore.asm a bit (asm)
  • 2017-08-10 simplify syzygy code (asm)
  • 2017-08-07 error checking after fen (asm & arm)
    • gives an error message after input of incorrect FEN
  • 2017-08-06 fix go infinite; analysis mode works now (arm)
  • 2017-08-06 add file create mode for mac
  • 2017-08-06 some size optimization (asm)
  • 2017-08-05 clean up some strings (asm)
  • 2017-08-05 fix ttsave and tthash (asm)
  • 2017-08-04 add newline for arm PrintFancy
  • 2017-08-04 use proper stat struct for linux and os x (asm)
  • 2017-08-04 add mac executable for prelim testing
  • 2017-08-04 get mac version working; no functional change
  • 2017-08-02 update main asm readme
  • 2017-08-02 timing and memory works for mac os (asm)
  • 2017-08-02 Tweak connected pawns seed[] array values
    • SF 2017-08-02, bench 5608839
  • 2017-08-02 Rework the 'unsupported' penalty into a 'supported' bonus
    • SF 2017-08-02, bench 5581946
  • 2017-08-02 _ExitProcess and _WriteOut works for mac os (asm)
  • 2017-07-30 format MovePickMacros.arm
  • 2017-07-30 format Move_IsLegal.arm
  • 2017-07-30 format CheckTime.arm
  • 2017-07-30 format Pawn.arm
  • 2017-07-30 format Evaluate.arm
  • 2017-07-29 format guts/Thread.arm
  • 2017-07-29 format ThreadPool.arm
  • 2017-07-29 format Move_IsPseudoLegal.arm
  • 2017-07-29 format Move_GivesCheck.arm
  • 2017-07-29 format SearchMacros.arm
  • 2017-07-29 format QSearchMacros.arm
  • 2017-07-28 fix bug in avx macros (asm)
  • 2017-07-28 unify debugging; identical binaries (asm & arm)
  • 2017-07-27 do not update pos.state in do_move; formatting (asm & arm)
  • 2017-07-27 remove chess960 parameter from PrintUciMove (asm & arm)
  • 2017-07-27 x64: add PrintFancy function (asm)
  • 2017-07-27 final format of OsLinux.arm
  • 2017-07-26 fix label alignment for object format (asm)
  • 2017-07-26 fix wrong name; fix issue #65 (Matefinder)
  • 2017-07-26 merge everything into code+data+bss; also make an X version for assembling to object format (asm)
  • 2017-07-26 format QSearchMacros.arm; identical binaries
  • 2017-07-26 format SeeTest.arm; identical binaries
  • 2017-07-26 format Castling.arm; identical binaries
  • 2017-07-26 format Limits.arm; identical binaries
  • 2017-07-26 fix invisible thread bug (arm)
  • 2017-07-26 format Thread.arm; identical binaries
  • 2017-07-26 format CheckTime.arm; identical binaries
  • 2017-07-26 add makefile for armFish
  • 2017-07-25 format OsLinux.asm; identical stripped binaries
  • 2017-07-25 format Math.arm; no functional change
  • 2017-07-24 fix printing of 960 castling (arm)
  • 2017-07-24 Tuned PSQT using a custom tuner
    • SF 2017-07-24, bench 5878420
  • 2017-07-24 Simplify aspiration window: Don't modify alpha-window on fail-high
    • SF 2017-07-24, bench 5875983
  • 2017-07-24 fix bug in KBPPKB (arm)
  • 2017-07-24 unify debugging (asm & arm)
  • 2017-07-23 fix crash in KBPPKB (arm)
  • 2017-07-23 Provide selective search depth info for each pv move; remove USE_SELDEPTH option
    • SF 2017-07-14, bench 6258930
  • 2017-07-23 fix bug in KRPKB scale (asm & arm)
  • 2017-07-23 fix broken reallocator (arm)
  • 2017-07-10 use per thread random seeds
  • 2017-07-09 Queen vs. Minors imbalance
    • SF 2017-07-08, bench 6258930
  • 2017-07-09 fix for arm and other slight bug fix for asm
  • 2017-07-09 ensure that search threads get rootmoves in the order determined by the piecelists in the gui thread
  • 2017-07-04 asm: fix eval bugs
    • bench 5725676, nps 2052949
  • 2017-07-04 arm: fix several bugs in evaluation
    • bench 5725676, nps 343389
  • 2017-07-04 arm: acquire and release on shared memory
  • 2017-07-01 asm: add "Variety" option
  • 2017-06-30 arm: some hopeful speed improvements
    • bench 5725676, nps 339903
  • 2017-06-28 arm: play with Move_Do
  • 2017-06-28 arm & asm: some micro optimizations in Search
    • asmFish: bench 5725676, nps 2041967
    • armFish: bench 5725676, nps 334404
  • 2017-06-28 arm: Increase reduction if tt-move is a capture
    • SF 2017-06-22, bench 5725676
  • 2017-06-28 arm: Fix four data races
    • SF 2017-06-21, bench 6599721
  • 2017-06-28 arm: Don't score as an immediate draw 2-fold repetitions of the root position
    • SF 2017-06-06, bench 6599721
  • 2017-06-28 arm: Evasion Pruning Tweak
    • SF 2017-05-22, bench 6469989
  • 2017-06-28 arm: Do check analysis later in the game
    • SF 2017-05-18, bench 5975183
  • 2017-06-28 arm: Use a fraction of king danger in endgame score
    • SF 2017-05-18, bench 5961548
  • 2017-06-28 magics test in debug
  • 2017-06-27 clean up and eliminate some uses of sbb
  • 2017-06-27 Increase reduction if tt-move is a capture
    • SF 2017-06-22, bench 5725676
  • 2017-06-27 Don't score as an immediate draw 2-fold repetitions of the root position
    • SF 2017-06-06, bench 6599721
  • 2017-06-27 remove pedantic option, bench 6469989
  • 2017-06-09 Add extra code including Neural Net
  • 2017-06-09 update armFish to Limit king ring to eight squares
    • armFish bench 6121121
  • 2017-05-30 various bug fixes in search for armFish
  • 2017-05-29 update armFish; bench depth 5 works
  • 2017-05-25 remove MAP_GROWSDOWN
    • now asmFish and armFish can run on Bash on Ubuntu for Windows 10
  • 2017-05-25 armFish updates
    • big changes in search and evaluation
  • 2017-05-23 armFish update / additions
    • everything but eval and syzygy written; completely untested
  • 2017-05-22 Evasion pruning tweak
    • SF 2017-05-22, bench 6469989
  • 2017-05-21 fix tb issues, bench 5975183
  • 2017-05-21 Do check analysis later in the game
    • SF 2017-05-18, bench 5975183
  • 2017-05-21 Use a fraction of king danger in endgame score
    • SF 2017-05-18, bench 5961548
  • 2017-05-21 reduce max time between timer checks, bench 6121121
  • 2017-05-21 implement non-functional patch Fix the pawn hash failure when the pawn key is 0, bench 6121121
    • SF 2016-11-21, non-functional
  • 2017-05-19 armFish update
  • 2017-05-19 update armFish
  • 2017-05-16 Limit king ring to eight squares
    • SF 2017-05-16, bench 6121121
  • 2017-05-16 remove files
    • files connected to pedantFish, bench 6107863
  • 2017-05-16 swap(asmFish,pedantFish); delete(pedantFish), bench 6107863
  • 2017-05-16 Linear Protector bonus by distance
    • SF 2017-05-08, bench 6107863
  • 2017-05-16 King safety and rook mobility parameters tweak
    • SF 2017-05-08, bench 6506664
  • 2017-05-16 Bonus for pawn sacrifice which creates passed pawn
    • SF 2017-05-08, bench 5639223
  • 2017-05-15 Fix multiPV issue #502
    • SF 2017-05-04, bench 5934421
  • 2017-04-30 Don't do InCheck Pruning at the root of QS
    • SF 2017-04-29, bench 5934421
  • 2017-04-30 Remove cap in kingDanger initialization
    • SF 2017-04-29, bench 5872717
  • 2017-04-30 Copy killers in the movepicker
    • SF 2017-04-29, bench 6465887
  • 2017-04-28 properly clean up in tablebase core
  • 2017-04-27 fix typo in Book_Probe_NegDepth
  • 2017-04-26 fix fatal bug in book move_undo, bench 6065528
  • 2017-04-26 Zero unused constant
    • SF 2017-04-26, bench 6065528
  • 2017-04-26 try bookdepth option and ponder in book, bench 6065528
    • see Issue #48
  • 2017-04-24 set precision in transcendental functions
    • fixes bench in Windows pedantFishes to be the same as in SF, bench 6065528
  • 2017-04-23 fix crash on syzygypath = <empty>
  • 2017-04-23 Sort moves partially: linear depth dependence, bench 6245068
    • SF 2017-04-23, bench 6065528
  • 2017-04-23 King safety parameters improved
    • SF 2017-04-23, bench 6121479
  • 2017-04-23 simplify logic for history based pruning
    • SF 2017-04-20, bench 6581936
  • 2017-04-23 Partial insertion sort
    • SF 2017-04-20, bench 6256522
  • 2017-04-22 Move-Count Formula Tweak, bench 6196226
    • SF 2017-04-17, bench 5960754
  • 2017-04-22 Remove cap from space score contribution and increase bonus
    • SF 2017-04-17, bench 6188591
  • 2017-04-22 Doubled and supported pawns
    • SF 2017-04-16, bench 5995472
  • 2017-04-09 Remove minimum to contribution from king danger to score
    • SF 2017-04-09, bench 7027489
  • 2017-04-09 CSE for reductions lookup
    • 0.3%-0.4% faster, bench 6259071
  • 2017-04-08 Fix zugzwang pruning issues
    • SF 2017-04-08, bench 6259071
  • 2017-04-08 Standardize stat penalty bench 6207458
    • SF 2017-04-08, SF bench 6340591 (see issue #1058 raised by tthsqe12)
  • 2017-04-06 oops (remove an extra skip) (Matefinder)
  • 2017-04-06 bug fix - restore stack BEFORE skipping (Matefinder)
  • 2017-04-05 Prepare to make Matefinder executables
  • 2017-04-05 add USE_MATEFINDER assemble option
    • plus code for Matefinder, bench 6861050
  • 2017-04-03 clean up parsing of syzygypath
    • bug fix of Issue #42, bench 6861050
  • 2017-04-03 Don't update TT at excluded move ply
    • SF 2017-04-03, bench 6861050
  • 2017-03-30 final fix for printing values
    • bug fix of Issues #39 and #40, bench 6197938
  • 2017-03-28 dont print infinity as a score
    • bug fix of Issue #38, bench 6197938
  • 2017-03-28 Simplify ThreatBySafePawn scoring
    • SF 2017-03-25, bench 6197938
  • 2017-03-28 Singular extension and check extension tweak
    • SF 2017-03-25, bench 6170444
  • 2017-03-28 Skip quiet moves based on moveCount pruning threshold and history stats
    • SF 2017-03-19, bench 5919519
  • 2017-03-28 Pawns count imbalance table
    • SF 2017-03-17, bench 6128779
  • 2017-03-15 tighter register usage in Do_Move
    • 0.4% faster measured with Build Tester, bench 5803228
  • 2017-03-09 nonfunctional "Always have counterMoves associated" and rearrange some code;
    • 0.3%-0.4% faster
    • SF 2017-03-09, bench 5803228
  • 2017-03-06 Allow pruning advanced pawn pushes if not near endgame
    • SF 2017-03-06, bench 5803228

Testing stockfish march 5 with bench signature 5803228.

windows 8.1:

"bench 128 1 16 default depth" -> 23,390,246
average of four runs in Knps, std dev around 6 Knps:
pedantFishW_popcnt 2,605
ultima_popcnt 2,227
abroke_popcnt 2,062
pedantFishW_bmi2 2,649
ultima_bmi2 2,293
abroke_bmi2 2,154

1 thread, pedantFishW_popcnt is 16.9% faster than ultima popcnt build.
1 thread, pedantFishW_bmi2 is 15.5% faster than ultima bmi2 build.

"bench 128 4 20 default depth" -> approx 220,000,000
average of five runs, std dev around 100 Knps:
pedantFishW_popcnt 9,606
ultima_popcnt 8,276
abroke_popcnt 7,660
pedantFishW_bmi2 9,680
ultima_bmi2 8,430
abroke_bmi2 7,932

4 threads, pedantFishW_bmi2 is 16% faster than ultima bmi2 builds.
4 threads, pedantFishW_popcnt is 14% faster than ultima popcnt builds.

same machine, ubuntu 14:
1 thread, pedantFishL_bmi2 is 2-3% faster than pedantFishW_bmi2.

1 thread, pedantFishL_popcnt only 13.5% faster than aboke popcnt builds.
1 thread, pedantFishL_bmi2 only 11.5% faster than abroke bmi2 builds.

****** conclusion ********
There is about a 4% performance hit for gcc on windows relative to linux.

  • 2017-02-28 clean up and put variables in more logical place

  • 2017-02-28 simplify skipping of plies with helper threads

    • SF 2017-02-27, bench 6269229
  • 2017-02-28 start of armFish

  • 2017-02-28 change definition of weak in threats calculation

    • SF 2017-02-26, bench 6269229
  • 2017-02-28 second member of time struct is ns and not ms

  • 2017-02-25 pieces protecting king

    • SF 2017-02-24, bench 6687377
  • 2017-02-25 clean up last patch a bit; unfortunately no speed gain

    • SF 2017-02-21, bench 6976310
  • 2017-02-21 minimal changes to get 'keep pawns on both flanks'

    • SF 2017-02-21, bench 6976310
  • 2017-02-20 Variable tuning

    • SF 2017-02-20, bench 5695960
  • 2017-02-19 Razor Simplification

    • Remove code that restrict using tt-moves for razoring
    • SF 2017-02-19, bench 5667216
  • 2017-02-15 Retire loose enemies bonus

    • SF 2017-02-15, bench 5669076
  • 2017-02-14 fix faulty allocator

    • bench 6072262
  • 2017-02-14 fix bug where syzygy was not used to filter out bad root moves

    • bench 6072262
  • 2017-02-11 Retire small bonus in passed pawn evaluation

    • SF 2017-02-11, bench 6072262
  • 2017-02-11 A small tweak in doEasyMove()

    • SF 2017-02-11, bench 6459194
  • 2017-02-07 Simplify scale factor computation

    • SF 2017-02-06, bench 6459194
  • 2017-02-06 Simplify Queen Mobility

    • SF 2017-02-06, bench 6459194
  • 2017-02-02 Simplify away QueenContactChecks

    • SF 2017-01-31, bench 5885815
  • 2017-02-02 avoid infinite loop when gui dies; buffer input from stdin

    • bench 5941174
  • 2017-01-29 Simplify TT penalty stat (#980)

    • SF 2017-01-29, bench 5941174
  • 2017-01-29 penalty for a quiet ttMove that fails low

    • SF 2017-01-28, bench 6101931
  • 2017-01-29 candidate passed pawns

    • SF 2017-01-28, bench 5325829
  • 2017-01-28 make profiling easier to use

    • bench 6406285
    • will create six symbols foo, bar, ooh, ahh, oops, yup that can be viewed with 'profile' cmd then print the data on conditions
  • 2017-01-28 clean up debug features

    • bench 6406285
  • 2017-01-26 clean up stats to prep for stat penalty patch; 0.1% faster

    • bench 6406285
  • 2017-01-25 further clean eval to prep for pawn patch; 0.4% faster

    • bench 6406285
  • 2017-01-22 fix bug where large page alloc must not fail

    • bench 6406285
  • 2017-01-22 Simplification of lazy threshold

    • SF 2017-01-21, bench 6406285
  • 2017-01-22 Outpost array simplification

    • SF 2017-01-21, bench 5828283
  • 2017-01-22 oops (rename 'Display*' to 'GD*')

    • bench 5513149
  • 2017-01-22 ensure that TimeMng_Init matches

    • bench 5513149
  • 2017-01-22 check time right after ponderhit

    • bench 5513149
  • 2017-01-22 accurate search abort and fix 'go nodes'

    • bench 5513149
  • 2017-01-21 clean up memory

    • bench 5513149
  • 2017-01-19 add clock_gettime from vDSO

    • bench 5513149
  • 2017-01-18 clean up evaluation

    • bench 5513149
  • 2017-01-17 second bug fix of draw detection

    • bench 5513149
  • 2017-01-17 dont clobber eax when testing checkers

    • bench 5513149
  • 2017-01-17 FEN parsing: add a second check for correctly setting e.p. square (SF 2016-11-10)

    • bench 5513149
    • now checks as sf does with the additional checks that the ep square and original pawn square is empty, and does not fail if these checks fail; just gives no ep square
  • 2017-01-17 Non-quiet pruning tweak (SF 2016-11-19)

    • bench 5513149
    • plus Simplify pruning rule
    • plus Simplify pruning
    • plus Another simplification for SEE pruning
  • 2017-01-17 Start searching for a repetition from the 4th ply behind (SF 2016-11-19)

    • bench 5757843
    • Plus threefold repetition detection
  • 2017-01-17 Fix the pawn hash failure when the pawn key is 0 (SF 2016-11-25)

    • bench 5757843
  • 2017-01-17 Rank based threats (SF 2016-11-27)

    • bench 5757843
    • the conditional is now branchless using IsNotPawnMasks
  • 2017-01-17 Tweak best thread selection logic (SF 2017-01-01)

    • bench 5920493
    • Plus simplified select best thread
  • 2017-01-17 Remove HistoryStats (SF 2017-01-09)

    • bench 5920493
  • 2017-01-17 Introduce lazy evaluation (SF 2017-01-13)

    • bench 5367704
  • 2017-01-14 Correct a buggy "GivesCheck" function -- a patch by Moha himself!

    • bench 4940355
    • fixes the crashes of asmFish in Fisher Random Chess
  • 2017-01-09 Simplified select best thread (#958)

    • bench 4940355
    • 2017-01-09 Implemented in Stockfish. Basically revert to Tweak best thread selection logic
  • 2017-01-08 Tweak best thread selection logic

    • bench 4940355
    • 2017-01-01 Implemented in Stockfish
  • 2017-01-08 Don't clear EasyMove in search()

    • bench 4940355
    • 2017-01-01 Implemented in Stockfish
  • 2017-01-07 Simplify unstoppable again (#950)

    • bench 4940355
    • 2017-01-02 Implemented in Stockfish
  • 2017-01-06 Remove SafeCheck (#946)

    • bench 5468995
    • 2016-12-31 Implemented in Stockfish
  • 2016-12-25 Further simplify unstoppable

    • bench 5255881
  • 2016-12-25 Fix psqt format and use smaller numbers in king psqt

    • bench 5212921
  • 2016-12-22 Fix printing of castling rights in debug output

    • bench 5212921
    • Castling in Chess960 FEN was shifted with 56 char
  • 2016-12-22 Simplify threshold handling for probcut

    • bench 5212921
    • Now probcut is at the threshold and not above it
  • 2016-12-17 Another simplification for SEE pruning

    • bench 4556848
    • Use pawn value when pruning moves with negative SEE
  • 2016-12-17 Fix: quit after completing command line options

  • 2016-12-15 Fix own book loading

    • bench 4684146
    • Own book didn't load under Fritz and Arena. Patch changes BookPath to BookFile and some USE_BOOK flags
  • 2016-12-12 Simplify pruning

    • bench 4684146
    • Don't take into account alpha and beta limits
  • 2016-12-11 Simplify unstoppable condition

    • bench 5437987
    • Remove rank dependence
  • 2016-12-10 Fix contempt scale

    • bench 5884767
    • A bug noted by Stefan Pohl. At contempt 15 asmFish gave a value -0.06 compared to -0.14 in Stockfish. This patch rescales to correct contempt values.
  • 2016-12-05 (2016-12-07) Pawn flank attacks

    • bench 5884767
    • This patch tweaks some pawn values to favor flank attacks. The first part of the patch increases the midgame psqt values of external pawns to launch more attacks, while the second part increases the endgame connection values for pawns on upper ranks.
  • 2016-12-04 Remove piece condition in decrease lmr reduction check

    • bench 5807913
  • 2016-12-02 Simplify pruning rule

    • bench 5084980
  • 2016-12-01 WeakQueen Parameter tweak

    • bench 4912054
    • New tuned values.
  • 2016-11-27 TrappedRook simplification

    • bench 5536128
    • Just remove rank checks for rook and king for TrappedRook evaluation.
  • 2016-11-19 Rank based threats

    • bench 5757843
  • 2016-11-19 Pawn shelter and pawn storm tuned

    • bench 5773672
    • Based on SPSA tuned values
  • 2016-11-05 Non-quiet pruning tweak

    • bench 5513149
    • Count in the difference of static evaluation and alpha for pruning threshold.
  • 2016-11-05 Reduction Simplification

    • bench 4735038
    • Simplify reduction formula by removing a parameter.

  • 2016-11-04: "stockfish 8"
    • summary of extra features in all versions by default
      • NodeAffinity:
        • "all" pin threads to all nodes your machine in a uniform way
        • "none" disable pinning threads to nodes
        • "0 1 2 3" only use nodes 0, 1, 2 and 3
        • "2" only use node 2
        • "0.1 2.3" use nodes 0, 1, 2 and 3 but node 1 shares per-node memory with node 0 node 3 shares per-node memory with node 2
        • "0.1.2.3" use nodes 0, 1, 2 and 3 but nodes 1, 2 and 3 share per-node memory with node 0
        • if you want to see the detected cores in your machine run "setoption name NodeAffinity value all"
      • TTFile, TTSave, TTLoad
        • these simply save and load the transposition table to and from a file
          • format is not compatible with the packing in official version
      • LargePages
        • tries to allocate main hash with large pages
          • hash (and thread) commands are processed after receiving "isready"
    • summary of extra features only in base version by default
      • OwnBook , BookFile (USE_BOOK equ 1)
        • should work as expected for books in polyglot format
      • UCI_LimitStrength, UCI_Elo (USE_WEAKNESS equ 1)
        • should aslo work as expected, although strength has not been finely tuned

2016-10-15: "Allow inCheck pruning"

  • official has undergone speed patches; smaller gap relative to ultimaiq builds: speedup % from bench 128 4 n on windows+haswell: n 16 17 18 19
    bmi2 13.5 13.3 13.9 13.6 popcnt 14.9 14.6 15.1 15.4

2016-10-04: "Allow inCheck pruning"

  • Def.asm now contains easy switches for turning off some output USE_CURRMOVE creates lots of spam in the output USE_HASHFULL displays hashfull in info string USE_SELDEPTH displays the max ply of the search USE_SPAMFILTER prevents printing info before a certain time
  • recommended settings if you are running a tournament in arena USE_CURRMOVE equ 0
    USE_HASHFULL equ 0
    USE_SELDEPTH equ 0
    USE_SPAMFILTER equ 1
    SPAMFILTER_DELAY equ 100

2016-09-14: "Use Movepick SEE value in search"

  • last update until stockfish 8
    • sf code is simply too volitile these days and I need a break
    • code is not optimized and is even behind latest see-aware pins
    • please see cfish project of syzygy1 from now on for faster compiles of stockfish
  • there is however a new NodeAffinity option which can have the following values
    • "all" pin threads to all nodes your machine in a uniform way
    • "none" disable pinning threads to nodes
    • "0 1 2 3" only use nodes 0, 1, 2 and 3
    • "2" only use node 2
    • "0.1 2.3" use nodes 0, 1, 2 and 3 but node 1 shares per-node memory with node 0 node 3 shares per-node memory with node 2
    • "0.1.2.3" use nodes 0, 1, 2 and 3 but nodes 1, 2 and 3 share per-node memory with node 0
    • if you want to see the detected cores in your machine run "setoption name NodeAffinity value all"

2016-08-23: "Refutation penalty on captures"

  • some speed gain over last relative to ultimaiq builds speedup % from bench 128 1 n: n 16 17 18 19 20 21
    bmi2 16.8 17.1 17.0 17.2 16.9 17.3
    popcnt 16.5 17.1 16.5 16.5 16.6 16.6
  • added support for large pages
    • gui's can send the 'LargePages', 'Hash', and 'Threads' options in whatever random order they like. Since the engine should take care with these options, the processing of these options has been delayed until the 'isready' command is received. They are also processed after the 'go' command so that cmd line interation is not too cumbersome
      • if you have working LP, the interation could go like this < asmFishW_2016-08-24_bmi2

    setoption name Threads value 4 setoption name LargePages value true setoption name Hash value 256 isready < info string hash set to 256 MiB page size 2048 KiB < info string node 0 cores 4 group 0 mask 0x000000000000000f < info string node 0 has threads 0 1 2 3 < readyok

    • if you don't have working LP, the same interation is < asmFishW_2016-08-24_bmi2

    setoption name Threads value 4 setoption name LargePages value true setoption name Hash value 256 isready < info string hash set to 256 MiB < info string node 0 cores 4 group 0 mask 0x000000000000000f < info string node 0 has threads 0 1 2 3 < readyok

    • the engine still starts 1 search thread and allocates 16MiB of non-LP hash at startup
    • The 'LargePages' option does nothing on Linux, which may change in the future

2016-08-20: "Simplify IID"

  • fixed bug in tt for pedantic version
  • fixed bug in KBPsK scale
  • added hash usage
  • testing pedantic against ultimaiq builds speedup % from bench 128 1 n: n 16 17 18 19 20 21
    bmi2 16.4 16.9 16.7 16.7 17.0 16.8
    popcnt 16.3 16.1 15.5 15.9 16.0 16.1 speedup % from bench 128 4 n: n 17 18 19 20 21 22
    bmi2 15.0 15.9 17.1 16.9 15.7 17.5
    popcnt 15.4 15.9 16.2 14.7 16.2 15.7

2016-08-18: "Remove a stale assignment"

  • searching for bug in pedantic version
    • bench speedup % over abrok.eu builds with hash=128 and depth=15,...,20 depth | 15 | 16 | 17 | 18 | 19 | 20 | bmi2 | 23.6 | 24.3 | 24.3 | 24.5 | bench no longer matches popcnt | 25.3 | 25.3 | 25.4 | 25.8 | at depth 19

2016-08-17: "Use predicted depth for history pruning"

  • fixed some silly bugs in Linux version. futexes are trickey

2016-08-12: "Simplify space formula"

  • removed colon from info strings
  • added PEDANTIC compile option, which makes asmFish match official stockfish in deterministic searches.

2016-08-08: "Use Color-From-To history stats to help sort moves"

  • the 07-25 version changed the default value of SlowMover from 80 to 89 which probably accounts for some of the larger-than-expect Elo gain on http://spcc.beepworld.de/

2016-07-25: "Allow null pruning at depth 1"

  • several structures have been modified to accomodate the linux port
  • on start, asmfish now displays node information on numa systems

2016-07-18: "Gradually relax the NMP staticEval check"

  • fixed broken ponder in 07-17
  • added gui spam with current move info when not using time management for gui's that do that
  • added parsing of 'searchmoves' token, which should fix 'nextbest move' if your gui does that

2016-07-17: "Gradually relax the NMP staticEval check"

  • linux version is in the works
  • fixed bug in KRPPKRP endgames: case was mis-evaluated
  • fixed bug in easy move
  • remove dependancy on msvcrt.dll
    • resulting malloc/free in TablebaseCore.asm is a hack and will be updated in future
  • +1% implementation speed from better register useage and code arrangement in Evaluate function
  • added current move info in infinite search

2016-07-04: "Use staticEval in null prune condition"

  • fixed bug in 2016-07-02 where castling data was not copied: pointed out by Lyudmil Antonov
  • specified 1000000 byte stack reserve size in the exe
    • previous default of 64K was rounded up to 1M on >=win7 but was only rounded up to 64K on winXP
    • each recusive call to search requires 2800 bytes, so 64K is only enough for a few plies
    • threads are created with 100000 byte stack commited size which is enough for ~30 plies
  • added command line parsing
    • after the exe on the command line, put uci commands separated by ';' character
      • this doesn't work well with multiple sygyzy paths; not sure what other character is acceptable
    • behaviour is not one-shot, so put quit at the end if you want to quit
    • the following all work in Build Tester 1.4.6.0
      • bench; quit
      • bench depth 16 hash 64 threads 2; quit
      • perft 7; quit
      • position startpos moves e2e4; perft 7; quit
    • be aware that commands other than perft and bench do not wait for threads to finish
  • it seems that movegen/movedo lost a little bit of speed in single-threaded perft from numa awareness

2016-07-02:

  • add numa awareness
    • each numa node gets its own cmh table
    • see function ThreadIdxToNode in Thread.asm for thread to node allocation
    • code should also work on older windows systems with out the numa functions
    • this code is currently untested on numa systems
  • fixed bug in wdl tablebase filtering: pointed out by ma laoshi
  • added debug compile
  • added hard exits when a critical OS function fails
  • created threads get 0.5 MB of commited stack space to combat a strange bug in XP

2016-06-25:

  • attempt to make asmFish functionally identical to c++ masterFish without piecelists
    • castling is now encoded as kingXrook
    • double pawn moves now do not have a special encoding, which affects IsPseudoLegal function
    • if piece lists were always sorted from low to high in master, then we have asmFish
    • there are three other places with VERY minor functional changes, only affecting evaluation
  • syzygy path now has no length limit
  • fix crash when thinking about a position that is mate
  • fix numerous bugs in tablebase probing code
  • fix bug in Move_Do: condition for faster update of checkersBB is working now
  • fix bugs in KNPKB and KRPKR endgames: some cases were mis-evaluated
  • fix bug in pliesFromNull: this was previously allocated only one byte of storage, which is not enough
  • fix bug in draw by 50 moves rule
  • fix bug in see: castling moves now return 0
  • prefetch main hash entry in Move_DoNull
    • according to my testing on 16, 64, and 256 MB hash sizes, prefetching has little speed effect
    • of course, pawn and material entries are still NOT prefetched
  • drop support for xboard protocol
  • tested (+6,-2,=42) against June 21 chess.ultimaiq.net/stockfish.html master
    • conditions: (tc=1min+1sec,hash=128mb,tb=5men,ponder=on,threads=1) in Arena 3.5.1

2016-06-16:

  • first stable release
Clone this wiki locally