First off, thank you for considering contributing to shlcpp!
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/your-username/shlcpp.git cd shlcpp -
Build the Runtime:
shlcppis a C++17 project built using CMake. Helper scripts are provided for quick compilation.Windows (PowerShell):
.\compile_shl.batLinux / macOS (Bash):
./install.sh
-
Install Test Dependencies:
pip install pytest anyio
-
Create a branch for your feature or fix:
git checkout -b feature/amazing-feature
-
Make changes to the C++ core (
shell_lite/) or standard library (stdlib/). -
Compile with
.\compile_shl.bator./install.sh. -
Validate changes:
shlcpp check <script.shl> pytest tests/ -v
-
Commit and open a Pull Request against
main.
- 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.