Skip to content

Latest commit

 

History

History
68 lines (44 loc) · 3.51 KB

README.md

File metadata and controls

68 lines (44 loc) · 3.51 KB

Frontier

A chess engine written in the experimental cppfront.

CMake on multiple platforms

About

CMake

CMake is used to pull in and build cppfront. It manages the dependcies of compiling cpp2 to cpp1 syntax. This all works seamlessly and even breakpoints work. All CMake functions and logic will go into src/thirdparty/cppfront/CMakeLists.txt

Goals

  • Easy to read and learn chess engine
  • Use pure cpp2 when possible
  • Use modern features
    • pmr (polymorphic memory resources)
    • #include <bits>
    • #include <bitset>
  • Try to be self-contained (low dependencies)

Project Structure

The project aims to organize and modularize logic to attempt to make browsing and learning easier for new users.

All the source code goes into the src folder. Below describes the hierarchy and purpose of the code.

  • thirdparty - external libraries pulled stright from git
  • adapters - wrappers for external libraries to either modernize or add high-level abstractions
  • groups - low level libraries
    • csl - Chess Standard Library
      • cslb - basis classes used across most of group
      • csleh - evaluation heuristics
      • cslt - transforms, mostly applies to encoding/decoding a position
      • cslnnue - efficiently updatable neural network
      • cslai - artificial interllegence
  • standalones - libraries that apply business logic
  • applications - targets that output executables
    • uci - universal chess interface application

Development

VS Code

Dev Container

This project includes setup for Dev Containers in VS Code which should install everything needed for development.

CMake Extension

CMake features are available in the activity bar on the left or from the command palette. You can build and debug.

Testing

This project will be using doctest to implement tests.

Q & A

Why is the code not highlighted?

There is no syntax highlighter. The closest option is to use the C++ language mode to get some syntax and auto-complete. See below for instructions.

Why don't breakpoints work?

VS Code is probably not interpreting your file a C++ code. You can change the language mode with the command palette or find the option in the bottom-right corner of the editor.