How omnidirectional-foundation/burryn works
Burryn is a self-hosted programming language and toolchain. The primary workflow takes source through lexing, parsing, module loading and type checking, then either compiles to bytecode for the VM or emits native code through the C or x86 backend. The CLI also exposes formatting, disassembly, testing and language-server support. The README documents the major stages and backends; sampled source confirms parts of the C runtime and VS Code client, but not the internal call wiring of most Burryn modules, so uncertain links are omitted.
Main entry points: cli CLI Commands · main.bur bur CLI · cgen.bur C Backend · compiler.bur Bytecode Compiler
Components 23
Language Frontend
- Lexer
compiler/frontend/lexer.bur - Parser
compiler/frontend/parser.bur - AST
compiler/frontend/ast.bur - Type Checker
compiler/frontend/ty_check.bur - Module Loader
compiler/module/module.bur
Execution
- Bytecode Compiler
compiler/bytecode/compiler.bur - Bytecode VM
compiler/bytecode/vm.bur
Native Backends
- C Backend
compiler/backends/c/cgen.bur - C Runtime
runtime/burrt_impl.c - x86-64 Backend
compiler/backends/x86 - LLVM Backend
compiler/backends/llvm/llgen.bur - Native Runtime Services
runtime/burrt_natives.c
Developer Tools
- bur CLI
compiler/main.bur - CLI Commands
compiler/cli - Formatter
compiler/tooling/format.bur - Bytecode Disassembler
compiler/tooling/dump.bur - Language Server
compiler/tooling/lsp.bur - VS Code Client
editors/vscode/src/extension.ts
Language Libraries
- Standard Library
std
Other components
- Language User
- Burryn Source
- Native Program
- Program Result
Connections 27
- Language User → bur CLI: invokes
- Burryn Source → bur CLI: provides input
- bur CLI → CLI Commands: dispatches
- CLI Commands → Lexer: starts compilation
- Lexer → Parser: tokens
- Parser → AST: builds
- CLI Commands → Module Loader: loads packages
- CLI Commands → Type Checker: checks source
- Type Checker → Bytecode Compiler: typed program
- CLI Commands → Bytecode Compiler: compiles
- CLI Commands → Bytecode VM: runs on VM
- Bytecode Compiler → Bytecode VM: executes bytecode
- CLI Commands → C Backend: builds with C
- C Backend → C Runtime: uses runtime
- C Runtime → Native Runtime Services: calls natives
- CLI Commands → x86-64 Backend: builds with x86
- CLI Commands → LLVM Backend: selects backend
- C Backend → Native Program: emits program
- x86-64 Backend → Native Program: emits program
- CLI Commands → Formatter: formats source
- CLI Commands → Bytecode Disassembler: disassembles code
- Language User → VS Code Client: edits source
- VS Code Client → bur CLI: starts bur lsp
- bur CLI → Language Server: serves requests
- CLI Commands → Standard Library: exposes modules
- Native Program → Program Result: produces
- Bytecode VM → Program Result: produces