From 586ebdd6a7c7a508aed4039587c27b32696e016c Mon Sep 17 00:00:00 2001 From: Michael Whiteley Date: Fri, 29 May 2026 10:18:06 -0600 Subject: [PATCH 1/5] v1 --- src/board/makemove.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/board/makemove.rs b/src/board/makemove.rs index 8401e2392..4d936971c 100644 --- a/src/board/makemove.rs +++ b/src/board/makemove.rs @@ -2,9 +2,16 @@ use super::{Board, BoardObserver}; use crate::types::{Move, MoveKind, Piece, PieceType, Square}; impl Board { + + fn increment_stack(&mut self) { + + self.state_stack.push(self.state); + } + pub fn make_null_move(&mut self) { self.halfmove_number += 1; - self.state_stack.push(self.state); + + self.increment_stack(); self.state.keys.toggle_side(); self.state.keys.toggle_castling(self.state.castling); @@ -34,7 +41,7 @@ impl Board { let piece = self.piece_on(from); let stm = self.side_to_move(); - self.state_stack.push(self.state); + self.increment_stack(); self.state.keys.toggle_side(); self.state.keys.toggle_castling(self.state.castling); From f8ec79ac335374958b83afc04da4cb2afb86ceca Mon Sep 17 00:00:00 2001 From: Michael Whiteley Date: Fri, 29 May 2026 10:18:40 -0600 Subject: [PATCH 2/5] more --- src/board/makemove.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/board/makemove.rs b/src/board/makemove.rs index 4d936971c..1a24af175 100644 --- a/src/board/makemove.rs +++ b/src/board/makemove.rs @@ -5,11 +5,11 @@ impl Board { fn increment_stack(&mut self) { + self.halfmove_number += 1; self.state_stack.push(self.state); } pub fn make_null_move(&mut self) { - self.halfmove_number += 1; self.increment_stack(); @@ -120,8 +120,6 @@ impl Board { self.state.material += promotion.value() - PieceType::Pawn.value(); } - self.halfmove_number += 1; - self.state.castling.raw &= self.castling_rights[from] & self.castling_rights[to]; self.state.keys.toggle_castling(self.state.castling); From aa193802646c3e094d5b7fafd5f3b811a6ba6f78 Mon Sep 17 00:00:00 2001 From: Michael Whiteley Date: Fri, 29 May 2026 10:19:20 -0600 Subject: [PATCH 3/5] more --- src/board/makemove.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/board/makemove.rs b/src/board/makemove.rs index 1a24af175..7177129c6 100644 --- a/src/board/makemove.rs +++ b/src/board/makemove.rs @@ -7,14 +7,14 @@ impl Board { self.halfmove_number += 1; self.state_stack.push(self.state); + self.state.keys.toggle_side(); + self.state.keys.toggle_castling(self.state.castling); } pub fn make_null_move(&mut self) { self.increment_stack(); - self.state.keys.toggle_side(); - self.state.keys.toggle_castling(self.state.castling); self.state.plies_from_null = 0; self.state.repetition = 0; self.state.captured = None; @@ -43,9 +43,6 @@ impl Board { self.increment_stack(); - self.state.keys.toggle_side(); - self.state.keys.toggle_castling(self.state.castling); - if self.en_passant() != Square::None { self.state.keys.toggle_en_passant(self.en_passant()); self.state.en_passant = Square::None; From 2290a0cd9f55195dc27dc2ab667e28e2fb2e9228 Mon Sep 17 00:00:00 2001 From: Michael Whiteley Date: Fri, 29 May 2026 10:20:55 -0600 Subject: [PATCH 4/5] more --- src/board/makemove.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/board/makemove.rs b/src/board/makemove.rs index 7177129c6..993976f73 100644 --- a/src/board/makemove.rs +++ b/src/board/makemove.rs @@ -4,11 +4,15 @@ use crate::types::{Move, MoveKind, Piece, PieceType, Square}; impl Board { fn increment_stack(&mut self) { - self.halfmove_number += 1; self.state_stack.push(self.state); self.state.keys.toggle_side(); self.state.keys.toggle_castling(self.state.castling); + + if self.en_passant() != Square::None { + self.state.keys.toggle_en_passant(self.en_passant()); + self.state.en_passant = Square::None; + } } pub fn make_null_move(&mut self) { @@ -20,11 +24,6 @@ impl Board { self.state.captured = None; self.update_threats(); - - if self.en_passant() != Square::None { - self.state.keys.toggle_en_passant(self.en_passant()); - self.state.en_passant = Square::None; - } } pub fn undo_null_move(&mut self) { @@ -43,11 +42,6 @@ impl Board { self.increment_stack(); - if self.en_passant() != Square::None { - self.state.keys.toggle_en_passant(self.en_passant()); - self.state.en_passant = Square::None; - } - let captured = self.piece_on(to); self.state.captured = Some(captured); self.state.plies_from_null += 1; From ac60e6ab8dccb14ccdd420f6c519e41586dab59c Mon Sep 17 00:00:00 2001 From: Michael Whiteley Date: Fri, 29 May 2026 10:23:18 -0600 Subject: [PATCH 5/5] cleanup. bench 4014185 --- src/board/makemove.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/board/makemove.rs b/src/board/makemove.rs index 993976f73..7db17a85d 100644 --- a/src/board/makemove.rs +++ b/src/board/makemove.rs @@ -2,7 +2,6 @@ use super::{Board, BoardObserver}; use crate::types::{Move, MoveKind, Piece, PieceType, Square}; impl Board { - fn increment_stack(&mut self) { self.halfmove_number += 1; self.state_stack.push(self.state); @@ -16,13 +15,10 @@ impl Board { } pub fn make_null_move(&mut self) { - self.increment_stack(); - self.state.plies_from_null = 0; self.state.repetition = 0; self.state.captured = None; - self.update_threats(); }