How jebailey/foster works
Foster is an experimental statically typed language and Rust-based toolchain. Its main workflow takes a project or source file through package discovery and checked compilation, then runs it on the register VM or builds a native executable; other user-facing branches include formatting, packing, testing, documentation, and editor support. The graph follows the documented workflow and sampled compiler/codegen structure. Some capabilities are documented but their implementations were not sampled, so those nodes have limited path detail and only documented relationships.
Main entry points: pipeline.rs Checked compilation · shared.rs Shared SSA and sealing · program.rs Native backend · main.rs Foster CLI
Components 22
Toolchain entry
- Foster CLI
src/main.rs - Project handling
src/project.rs - Package modules
compiler/src/package.rs
Language compiler
- Lexer
compiler/src/lexer.rs - Parser and AST
compiler/src/parser - HIR lowering
compiler/src/hir.rs - Type and effect checks
compiler/src/typecheck - Ownership checks
compiler/src/ownership - Checked compilation
compiler/src/compiler/pipeline.rs - IR construction
compiler/src/codegen/construction.rs - Shared SSA and sealing
compiler/src/codegen/shared.rs
Execution backends
- Bytecode generation
bytecode/src/codegen/flow/engine.rs - Register VM
vm/src/machine.rs - Native backend
compiler/src/native/program.rs - Native runtime
runtime/src/lib.rs - Host integration
host/src/lib.rs
User features
- Source formatter
src/formatter.rs - Project packing
src/archive.rs - Language server
src/lsp/workspace.rs - Debugger
src/debugger/mod.rs - API documentation
Other components
- Developer
Connections 21
- Developer → Foster CLI: invokes commands
README.md - Foster CLI → Project handling: resolves projects
README.md - Project handling → Package modules: discovers modules
README.md - Package modules → Checked compilation: enters checked compilation
compiler/src/compiler/pipeline.rs - Checked compilation → HIR lowering: lowers package
compiler/src/compiler/pipeline.rs - HIR lowering → Type and effect checks: provides HIR
compiler/src/hir.rs - Checked compilation → Type and effect checks: runs type checks
compiler/src/compiler/pipeline.rs - Checked compilation → Ownership checks: validates ownership
compiler/src/compiler/pipeline.rs - Developer → Source formatter: formats source
README.md - Developer → Project packing: packs projects
README.md - Developer → Language server: uses editor services
README.md - Developer → API documentation: generates API docs
README.md - Checked compilation → IR construction: feeds code generation
- IR construction → Shared SSA and sealing: builds shared IR
compiler/src/codegen/program.rs - Shared SSA and sealing → Bytecode generation: lowers for VM
compiler/src/codegen/shared.rs - Bytecode generation → Register VM: executes bytecode
- Shared SSA and sealing → Native backend: prepares native program
compiler/src/native/program.rs - Native backend → Native runtime: links executable
compiler/src/native/program.rs - Developer → Register VM: runs programs
README.md - Developer → Native backend: builds native output
README.md - Host integration → Native runtime: provides host services