Skip to content

Latest commit

 

History

History
131 lines (90 loc) · 3.84 KB

CHANGELOG.md

File metadata and controls

131 lines (90 loc) · 3.84 KB

Changelog

All notable changes to this project will be documented in this file.

[4.0.3] - 2022-07-09

  • Unused function binbo_position:get_side_indexes/2 deleted.
  • Fixed OTP-25 dialyzer warnings.
  • Added support for testing on Apple silicon SoC.

[4.0.2] - 2022-03-22

  • Fixed: the fifty-move rule was not applied correctly.

[4.0.1] - 2022-03-18

  • Fixed: castling was not legal when more than two rooks of the same side on the board.

[4.0.0] - 2022-02-18

  • Support for TCP connections to remote UCI chess engines.
  • Environment variable UCI_ENGINE_PATH renamed to BINBO_UCI_ENGINE_PATH used in UCI tests.

[3.0.0] - 2021-01-30

  • In case of checkmate the functions listed bellow now return {ok, {checkmate, white_wins}} or {ok, {checkmate, black_wins}}:
    • binbo:game_status/1;
    • binbo:new_game/2;
    • binbo:move/2;
    • binbo:san_move/2;
    • binbo:index_move/3,4;
    • binbo:set_game_state/2;
    • binbo:load_pgn/2;
    • binbo:load_pgn_file/2;
    • binbo:new_uci_game/2;
    • binbo:uci_play/2,3;
    • binbo:uci_set_position/2.

[2.1.0] - 2020-12-14

  • movetime option for functions binbo:uci_bestmove/1,2 and binbo:uci_play/2,3 defaults to 1000 ms.
  • New functions:
    • binbo:get_pieces_list/2;
    • binbo:index_move/3,4;
    • binbo:set_game_winner/2,3.

[2.0.0] - 2020-08-12

  • Added options for the game process at start (binbo:new_server(Options)). Options is a map now!
  • New function binbo:set_server_options/2.
  • New function binbo:set_game_state/2.

[1.2.3] - 2020-01-22

  • Performance improvements.

[1.2.2] - 2020-01-10

  • Dependency uef-lib updated to 2.5.3.

[1.2.1] - 2019-12-11

  • Fixed: PGN could not be loaded if it contained Tab characters.

[1.2.0] - 2019-12-10

  • UCI protocol support added.
  • UCI protocol related functions:
    • binbo:new_uci_game/2;
    • binbo:uci_command_call/2;
    • binbo:uci_command_cast/2;
    • binbo:uci_mode/1;
    • binbo:uci_bestmove/1;
    • binbo:set_uci_handler/2;
    • binbo:uci_play/2,3;
    • binbo:uci_set_position/2.
    • binbo:uci_sync_position/1.
  • New function binbo:side_to_move/1.

[1.1.2] - 2019-09-26

  • Performance optimization in game state update.
  • Some binary optimizations for FEN/SAN parsing.
  • Dependency uef-lib updated to 2.5.1.
  • More perft tests added.

[1.1.1] - 2019-08-16

  • Optimized move generation using bitboards instead of lists of square indices.

[1.1.0] - 2019-08-14

  • Improved performance of all legal moves generation.
  • All perft tests are passed much faster.
  • New function binbo_board:int_move/2.
  • New function binbo_board:int_move/3.
  • New function binbo_board:int_move_from/1.
  • New function binbo_board:int_move_to/1.
  • New function binbo_move:validate_int_move/2.
  • Count all legal moves with binbo:all_legal_moves(Pid, count).

[1.0.2] - 2019-08-08

  • Fixed: Castling was allowed with enemy piece after capturing a friendly rook. The bug was found during testing Position 5 at depth 3 from Perft Results.
  • Fixed: Wrong castling allowed by FEN was not properly validated.
  • Passes all perft tests now.

[1.0.1] - 2019-08-06

  • Fixed: binbo:all_legal_moves/1,2 did not include possible pawn promotions. It now returns a list of legal moves where each element is a tuple {From, To} or {From, To, Promo}.

[1.0.0] - 2019-08-05

  • API of binbo_movegen module has been changed regarding function all_valid_moves/*. It now returns a list of legal moves where each element is a tuple {From, To}.
  • New function binbo:all_legal_moves/1.
  • New function binbo:all_legal_moves/2.

[0.3.0] - 2019-08-01

  • Support for loading PGN from file.
  • New function binbo:load_pgn_file/2.

[0.2.0] - 2019-07-30

  • Support for PGN loading.
  • New function binbo:load_pgn/2.
  • New function binbo:san_move/2.

[0.1.0] - 2019-07-22

  • Initial release.