跳到主要内容

项目结构

仓库顶层布局

leanclr/
├── src/
│ ├── runtime/ # LeanCLR 运行时核心(C++)
│ ├── libraries/ # BCL(mscorlib、System 等)
│ ├── leanaot/ # LeanAOT 编译器(C#)
│ ├── tools/ # lean、pgo2aot 等命令行工具
│ ├── samples/ # 集成示例(startup、lean-wasm 等)
│ └── tests/ # C++ runner + 托管测试
├── scripts/ # 构建、测试、发布脚本
├── licenses/ # 第三方许可
└── out/ # 所有构建输出(默认位置)
文档位置

项目文档已迁移至 https://doc.leanclr.com。主仓库 docs/ 目录将逐步移除。

面向最终用户的独立 Demo 见 leanclr-demo

运行时核心(src/runtime)

目录说明
metadataECMA-335 元数据解析(PE/COFF、CLI 表)
vm虚拟机核心:类型系统、方法调用、程序集加载
interpIL / IR 解释器
gc准确式 mark-sweep 垃圾回收
icallsinternal call 实现
alloc元数据与托管对象分配
intrinsics内建方法
os操作系统抽象(Standard 版)
utils工具函数
platform平台相关实现

运行时以 C++11 编译,CMake 目标名为 leanclr(静态库)。

libraries

src/libraries 提供运行时所需的 .NET Framework 4.x 核心库:

  • mscorlib.dll
  • System.dll
  • System.Core.dll

另有 dotnetframework4.xdotnetframework4.x-linux 等变体目录。已验证范围见 兼容性说明

tools

工具路径说明
leanrunsrc/tools/leanrun内嵌 CLR 的命令行 runner
pgo2aotsrc/tools/pgo2aotProfile JSON → pgo-aot.xml
LeanAOTsrc/leanaotIL → C++ AOT 编译器

samples

示例说明
startupWin64 最小嵌入
lean-wasm浏览器 WASM
custom-pinvoke-x64自定义 P/Invoke 示例
simple-aotAOT 生成 C++ 并链接

tests

目录说明
basic-testerC++ 测试 runner(CoreTests、CorlibTests、ILTests)
aot-testerAOT 正确性测试
managed/C# 测试工程(CoreTests、AotTests 等)

详见 测试指南

scripts 与 out/

外部仓库

仓库说明
leanclr-unityUnity 插件
leanclr-demo独立体验 Demo
leanclr-godotGodot 扩展(开发中)