Skip to content

Commit 76e3496

Browse files
0xrinegadeclaude
andcommitted
docs: Add OVSM Compiler Architecture to CLAUDE.md
- Document the new ir/ directory module structure - Add compilation pipeline overview (scanner → parser → IR → codegen → ELF) - Add Key Files references to compiler/ir/ and compiler/codegen/ - Remove stray debug comment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 38430a1 commit 76e3496

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

CLAUDE.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,39 @@ services.rs # Service management (systemd)
475475

476476
**Workspace Structure:**
477477
- Main crate: `osvm-cli` (CLI tool)
478-
- OVSM crate: `crates/ovsm` (LISP interpreter)
478+
- OVSM crate: `crates/ovsm` (LISP interpreter + sBPF compiler)
479+
480+
**OVSM Compiler Architecture:**
481+
482+
```text
483+
crates/ovsm/src/
484+
├── lexer/
485+
│ └── sexpr_scanner.rs # S-expression tokenizer
486+
├── parser/
487+
│ └── sexpr_parser.rs # AST builder from tokens
488+
├── runtime/
489+
│ └── lisp_evaluator.rs # LISP interpreter (for scripts)
490+
└── compiler/ # sBPF bytecode compiler
491+
├── mod.rs # Compiler entry point
492+
├── ir/ # Intermediate Representation (3AC)
493+
│ ├── mod.rs # Module definition + re-exports
494+
│ ├── types.rs # PrimitiveType, FieldType, StructDef
495+
│ ├── instruction.rs # IrReg, IrInstruction enum
496+
│ ├── program.rs # BasicBlock, IrProgram (CFG)
497+
│ └── generator.rs # IrGenerator (~60 macro impls, 5700 lines)
498+
├── codegen/ # IR → sBPF lowering
499+
│ ├── mod.rs
500+
│ ├── register_allocator.rs # Graph coloring allocator
501+
│ └── elf_writer.rs # ELF .so output
502+
└── solana_abi.rs # Solana ABI helpers (WIP)
503+
```
504+
505+
**Compilation Pipeline:**
506+
1. `sexpr_scanner` → Tokens
507+
2. `sexpr_parser` → AST
508+
3. `ir/generator.rs` → Three-address-code IR
509+
4. `codegen/register_allocator.rs` → Physical register mapping
510+
5. `codegen/elf_writer.rs` → Solana-compatible .so binary
479511

480512
**OVSM LISP Syntax Reference:**
481513

@@ -1284,7 +1316,9 @@ osvm ovsm repl
12841316
- `crates/ovsm/src/lexer/sexpr_scanner.rs` - S-expression lexer
12851317
- `crates/ovsm/src/parser/sexpr_parser.rs` - S-expression parser
12861318
- `crates/ovsm/src/runtime/lisp_evaluator.rs` - OVSM LISP evaluator
1287-
- why BUILD release? WE DEBUGGING
1319+
- `crates/ovsm/src/compiler/ir/` - IR module (see OVSM Compiler Architecture above)
1320+
- `crates/ovsm/src/compiler/codegen/` - sBPF bytecode generation
1321+
12881322
---
12891323

12901324
## ✅ TUI DASHBOARD STATUS (PRODUCTION-READY)

0 commit comments

Comments
 (0)