Skip to content

mashumafi/Frontier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Chess engine using experimental cppfront

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published