这个项目能做什么

8f4e 是一种面向栈的编程语言和实时代码编辑器,专为 algorave 活动中的生成音乐表演而创建。该 monorepo 包含编译器、专用运行时以及基于浏览器的可视化代码编辑器。该编辑器遵循 REPL 风格的循环(编辑、编译/求值、观察输出),但由 UI 驱动,而非基于终端。 ## 包架构 该项目组织为 Nx monorepo,包含以下包: - **compiler**:核心编译器,将 8f4e 代码转换为 WebAssembly,包括用于语言规范、项目预解析器、子程序编译(分词器、常量解析器、内存规划器、内存引用解析器、内存默认值解析器、语义引用解析器、栈分析器、语义工具)、wasm 代码生成和标准库的子包。 - **editor**:编辑器产品包,包括 compiler-worker(Web Worker 封装)、editor-default(默认编译器、运行时、存储、示例)、editor-core(最小可复用编辑器,具有状态管理、使用 WebGL 的 Web UI)、editor-website(可部署网站),以及用于 AudioWorklet 和 Web Worker 的运行时。 - **examples**:示例模块和项目。 - **cli**:用于编译 8f4e 项目文件的命令行界面。 - **metrics-dashboard**:用于发布指标的本地仪表板。 - **config**:共享工具和配置辅助程序。 ## 开发 1. 安装依赖:`npm install` 2. 构建所有包:`npx nx run @8f4e/editor-website:build` 3. 启动开发服务器:`npx nx run @8f4e/editor-website:dev`(应用位于 http://localhost:3000) 使用 `npx nx graph` 探索包之间的关系。