Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 1.35 KB

File metadata and controls

53 lines (40 loc) · 1.35 KB

Contributing to shlcpp

First off, thank you for considering contributing to shlcpp!

Getting Started

  1. Fork the repository on GitHub.

  2. Clone your fork locally:

    git clone https://github.com/your-username/shlcpp.git
    cd shlcpp
  3. Build the Runtime: shlcpp is a C++17 project built using CMake. Helper scripts are provided for quick compilation.

    Windows (PowerShell):

    .\compile_shl.bat

    Linux / macOS (Bash):

    ./install.sh
  4. Install Test Dependencies:

    pip install pytest anyio

Development Workflow

  1. Create a branch for your feature or fix:

    git checkout -b feature/amazing-feature
  2. Make changes to the C++ core (shell_lite/) or standard library (stdlib/).

  3. Compile with .\compile_shl.bat or ./install.sh.

  4. Validate changes:

    shlcpp check <script.shl>
    pytest tests/ -v
  5. Commit and open a Pull Request against main.

Code Style & Standards

  • C++: Follow C++17 standards. Ensure memory management is through the VM arena allocator and GC.
  • Diagnostics: Ensure any new syntax or parsing errors provide clear error messages with accurate line/column locations.
  • Reproducibility: Pinned dependencies must not be changed without a documented version update.