On this page
The runtime is a Go module with a Go 1.21 module declaration. This page describes the source layout and repository targets; it does not claim that every target has been built for this website review.
Build and install targets
| Target | Defined behavior |
|---|---|
make build |
Fetch Go dependencies and build the current platform’s olang executable. |
make install |
Build, then install through go install. |
make system-install |
Build, then copy the binary to /usr/local/bin. |
make build-all |
Build Linux amd64/arm64, macOS amd64/arm64 and Windows amd64 binaries. |
make test, make lint, make vet |
Run the repository’s test or analysis commands. |
make fmt, make clean |
Format Go files or remove build outputs. |
make docker, make snap-build |
Build the container image or Snap package. |
make release, make quality |
Compose other Makefile targets into release or quality workflows. |
Read the Makefile before running a target. Some targets install software, modify system paths, download dependencies, or build and publish artifacts.
Source map
| Area | Source path | Responsibility |
|---|---|---|
| Tokens and keywords | token/, lexer/ |
Token names, keywords and source scanning. |
| Grammar and AST | parser/, ast/ |
Accepted forms and syntax tree types. |
| Interpreter values and behavior | object/, evaluator/ |
Runtime objects, expression evaluation and built-ins. |
| Bytecode compiler and VM | compiler/compiler.go, compiler/builtins.go, vm/ |
Bytecode generation, VM execution and a separate built-in registry. |
| ELF output | compiler/elf_compiler.go |
The smaller x86-64 Linux output path. |
| REPL and CLI | repl/, main.go |
Interactive input, file modes, command parsing and output selection. |
| Package manifests | olpfile/ |
JSON manifest fields, dependency synchronization and jobs. |
| Process files | opsfile/, proc/ |
INI process entries and their local launch/stop behavior. |
| Web commands and server | web/, evaluator/server.go |
Project scaffolding, route configuration and HTTP handling. |
Making a language change
When changing syntax, trace the token through the lexer, parser and AST, then check the evaluator and both compiler paths. A built-in added to the interpreter is not automatically added to the VM registry. Update the CLI, examples, syntax reference, execution model and runtime API pages when behavior changes.
Source snapshot
This documentation was compared with runtime commit eb2301cfe4dbf2e6c1f10802bfbec2be3a797e99 and the OnixOS package snapshot 20260825.898_eb2301c. The package recipe follows the upstream branch and can advance; repeat the source review when the packaged commit changes.