Contribute to Rey

Rey is open source and welcoming contributors. Whether you're fixing a typo or implementing a major feature, every contribution matters.

View on GitHubOpen Issues

How to get started

1

Fork and clone

Fork the repository on GitHub, then clone your fork locally.

$ git clone https://github.com/YOUR_USERNAME/rey-lang
2

Set up the dev environment

You need Rust (1.70+) and LLVM installed. Then build the compiler:

$ cd compiler/v1 && cargo build
3

Run the tests

Make sure all tests pass before making changes:

$ cargo test
4

Make your changes

Create a new branch, make changes, add tests if relevant.

$ git checkout -b feat/my-feature
5

Submit a PR

Push your branch and open a pull request. Describe what it does and why.

$ git push origin feat/my-feature

Areas to contribute

Concrete areas where Rey needs work. Pick what interests you.

๐Ÿ”งHigh impact

Compiler

  • โ†’Improve error messages with better span information
  • โ†’Add missing operator support (++, --, bitwise ops)
  • โ†’Implement generics in the type system
  • โ†’Optimize the LLVM IR emission pass
  • โ†’Add a proper incremental compilation model
๐Ÿ“šHigh impact

Standard Library

  • โ†’Expand String methods (indexOf, slice, format)
  • โ†’Add a File type with streaming read/write
  • โ†’Implement a math module (min, max, abs, pow)
  • โ†’Add networking primitives
  • โ†’Write comprehensive stdlib tests
๐ŸŒMedium impact

Platform Support

  • โ†’Linux x86_64 port
  • โ†’Linux arm64 port
  • โ†’Windows x86_64 port (via LLVM MinGW)
  • โ†’CI/CD for cross-platform builds
  • โ†’Package manager integration
๐Ÿ“Good for beginners

Documentation

  • โ†’Write more code examples for the reference
  • โ†’Add a "Rey by Example" guide section
  • โ†’Document the compiler internals
  • โ†’Fix typos and clarify confusing sections
  • โ†’Translate the getting started guide
๐ŸงชGood for beginners

Testing

  • โ†’Add more E2E test cases (currently 11 passing)
  • โ†’Write unit tests for the lexer and parser
  • โ†’Add fuzz testing for the parser
  • โ†’Set up a test suite for the stdlib
  • โ†’Create regression tests for fixed bugs
๐Ÿ”Medium impact

Tooling

  • โ†’VS Code syntax highlighting extension
  • โ†’LSP server for code intelligence
  • โ†’A repl (read-eval-print loop)
  • โ†’Code formatter
  • โ†’Linter with common mistake detection

Code of Conduct

Rey is a welcoming, inclusive project. We expect all contributors to:

  • Be respectful and considerate in all communications
  • Welcome contributions from people of all backgrounds and skill levels
  • Focus on constructive feedback and solutions
  • Respect maintainer decisions, even when you disagree
  • Keep discussions on-topic and productive

Harassment, discrimination, or any form of disrespectful behavior will result in removal from the project.

Useful Links