1.4 KiB
1.4 KiB
Contributing to Fun
Thanks for your interest in contributing! This guide covers the basics to get you productive quickly.
Getting started
- Clone the repo and build (see
docs/build.md). - Run tests locally (see
docs/testing.md). - Explore examples (see
docs/examples.md).
Project structure
src/— C core, VM, and opcode implementations (src/vm/*).lib/— Standard library written in Fun.examples/— Example programs and showcases.docs/— Documentation.spec/— Language specification drafts.
Code style
- C: C99, two-space indent, no tabs. Keep functions short and focused.
- Fun: two-space indent, snake_case for functions, PascalCase for classes/constructors.
- Prefer clear names over abbreviations. See
docs/style-guide.md.
Development workflow
- Create a small, focused branch.
- Add/adjust tests for behavior changes (see
docs/writing-tests.md). - Update docs if user-visible behavior changes.
- Submit a PR with a clear description and rationale.
Commit/PR guidelines
- Keep commits atomic; include test updates with the change.
- Reference related issues.
- Include benchmarks only when meaningful and reproducible.
Reporting bugs
Please include:
- Reproducer script (minimal), expected vs. actual behavior
- Build options and platform
fun --versionoutput
Code of Conduct
Be respectful and inclusive. See CODE_OF_CONDUCT.md in the repository root.