JOCKY documentation
Learn the language, understand how the compiler works, and find the guides you need to contribute.
The JOCKY language guide
The complete guide to JOCKY, from first steps to compiler internals. It's written alongside the compiler in the repository's docs folder and republished here on every change.
Loading the documentation index…
Compiler pipeline
JOCKY source passes through these stages on its way to machine code. Each stage is its own part of the compiler, and each one is open to contributions.
- Lexer
- Parser
- AST
- Semantic analysis
- Type checking
- LLVM IR generation
- Optimization passes
- Machine code
| Stage | What it does |
|---|---|
| Lexer | Turns source text into a stream of tokens |
| Parser | Builds an abstract syntax tree (AST) from the tokens |
| Semantic analysis | Resolves names and scopes, and checks that the program makes sense |
| Type checking | Verifies that every expression and operation has a valid type |
| LLVM IR generation | Lowers the checked program to LLVM intermediate representation |
| Optimization passes | Transforms the IR to make the generated code faster and smaller |
| Runtime | Runtime components and standard libraries that compiled programs link against |
JOCKYShield
JOCKYShield is JOCKY's code-transformation system. Read JOCKYShield and Code Transformation in the contributing guide before working on it.
Contributor guides
Sections of CONTRIBUTING.md for people working on JOCKY itself.
Building JOCKY
Requirements and steps to build the compiler from source.
ReadTesting
Run the test suite and add regression tests.
ReadCompiler contributions
Working on the lexer, parser, semantic analysis, type checker, IR generation and optimization passes.
ReadLanguage and standard library changes
How to propose changes to the language or its standard libraries.
ReadForensic tooling
Contributing to JOCKY's digital-forensics tools and workflows.
ReadPull requests and commits
How to submit a pull request and write commit messages.
ReadGetting help
Can't find what you need? Ask in GitHub Discussions. If the documentation is wrong or unclear, open an issue or send a pull request. Documentation contributions are especially valuable.