New version chess engine: Lynx 1.9.0 (Windows, MacOS, Linux)



Lynx it's written in C# (.NET 6). UCI protocol is needed.
Chess Engines Diary Rating CEDR=2890

Lynx release artifacts are self-contained and require no dependencies to be run.
However, you can also choose to build Lynx yourself.
Requirements
NET 6 SDK. You can find instructions about how to install it in yo

v.1.9.0
🔍 Search
Add PVS SEE pruning (#1521)
LMR: reduce more on TT capture when current move isn't (#1529)
LMR: reduce more on no TT PV (#1476)
LMR: deeper/shallower (#1535)
LMR: fractional w/ quantised base (#1514)
LMR: split base and history factor in quiet and noisy (#1512)
QSearch: don't use TT static eval (#1312)
QSearch: reuse TT score instead of TT static eval in QSearch when possible (#1319)
QSearch: don't do standing pat when in check (#1389)
Always predict cutnodes in ZWS with reduction, even if the reduction is 0 (#1304)
Extend on TT hit at low depths when TT cutoff doesn't happen but TT depth > depth (#1342)
Replace first legal move with BestMoveRoot() method when search depth 1 isn't completed (#1449)
Countermoves update: add pvNode || depth >= 3 condition (#1456)
IIR: on !ttHit -> on !ttHit || !ttMove (#1516)
Use final eval when available (checkmate, stalemate) as cached TT static eval (#1288)
SPSA (#1405, #1537)

⚖️ Evaluation
Pieces protected by pawns -> bucketed array, indexed by piece (#1324, #1336)
Passed pawns -> opponent buckets to passed pawns bucketed arrays (#1349)
Bishop major threats (#1415, #1420)
Bishop in non-blocked long diagonal (#1439)
Pawn islands (#1431)
Connected rooks (#1436)
Incremental static evaluation for PSQTs (#1350, #1353)
Pawn structure eval table (#1365)
Incremental phase (#1412)

⚡Speedups
Split ScoreMove between regular search and qsearch (#1410)
Remove Engine.StopSearching and Engine_stopRequested (#1296)
Use in readonly struct when passing args, when possible (#1462)
Precalculated pawn islands (#1440)
Remove passed pawns double array (#1491)
Add inline hints to TTElement getters (#1513)
Use explicit SEE.IsGoodCapture() method when we know it's a capture (#1528)
Replace GetLS1BIndex() + ResetLS1B() loop calls with a WithoutLS1B() method that 'outs' the index (#1536)

⌛ Time management
Don't search for shorter mates when low on time (#1398)
🟰 Multithreaded search
Replace Task.WhenAll with Task.WhenEach, processing faster results from extra threads (#1545)

🐛 Bugfixes
Engine doesn't becomes unresponsible any more when number of Threads gets close or over the logical cores of the machine (#1292)
Fix crash when multithreading and pondering when GUI doesn't wait for bestmove after a stop (#1394)
Fix cutechess warnings when pondering by avoiding single-move early returns while pondering (#1395)
Use TT recalculated scores everywhere and move TT cutoffs to NegaMax and QSearch methods (#1310)
Distinguish side on initial Zobrist key calculation (#1363)
Ensure that hashfull calculation doesn't fail if TT < 1k items (even if not currently possible) (#1393)
Non-strength winning changes

Make engine <-> GUI time overhead configurable (via EngineGuiCommunicationTimeOverhead) (#1442)
Refuse to parse FENs without (or with more than) one white and one black king (#1351)
Don't stop when a short-enough mate is found, continue trying to find a faster one (#1287)
Make single move score more recognizable (#1461)
Replace first legal move with BestMoveRoot() method when search depth 1 isn't completed (#1449)
Plan for whenever ChessGUI wakes up feeling like sending negative movestogo (#1519)



Lynx 1.7.0 vs other engines:
Berserk 120/8-88 Games
Seer 2.7.00/8-88 Games
Pingu 2.0.01/6-46 Games
Stockfish 15.10.5/6-56 Games
Mida 2.20.5/6-56 Games
Boychesser 1.00.5/6-56 Games
Brainlearn 26.10/6-66 Games
Hazard 3.780/6-66 Games
ShashChess 34.10/6-66 Games
Vafra 12.5 Cfish0/6-66 Games
Obsidian 6.00/6-66 Games
Polyfish 2310220/6-66 Games
Pawn 2.00/6-66 Games
CorChess 202310240/6-66 Games
Raid 2.78i_X0/6-66 Games
Tofiks 1.3.04/4+44 Games
Alpaca 0.2.54/4+44 Games
Lux 3.41/4-24 Games
RukChess 3.0.160.5/4-34 Games
Sirius 5.00.5/4-34 Games
Akimbo 0.7.00/4-44 Games

---
Lynx 1.9.0 download 
github:https://github.com/lynx-chess/Lynx/releases/

Comments

Popular posts from this blog

We already have the new Fritz 20 program - what does it look like and how does it work?

Stockfish 250702 wins Android Chess Engines Tournament, 2025.08.03-04