Haskell-Backend 项目教程
1. 项目的目录结构及介绍
Haskell-Backend 项目的目录结构如下:
haskell-backend/
├── deps/
├── design-decisions/
├── dev-tools/
├── docs/
├── kore-rpc-types/
├── kore/
├── nix/
├── package/
├── scripts/
├── src/
├── test/
├── .gitignore
├── .gitmodules
├── .hlint.yaml
├── LICENSE
├── Makefile
├── README.md
├── cabal.project
├── cabal.project.freeze
├── default.nix
├── flake.lock
├── flake.nix
├── fourmolu.yaml
├── include.mk
├── stack.yaml
├── stack.yaml.lock
目录介绍:
- deps/: 存放项目依赖的相关文件。
- design-decisions/: 存放设计决策文档。
- dev-tools/: 存放开发工具相关文件。
- docs/: 存放项目文档。
- kore-rpc-types/: 存放 KORE RPC 协议的类型定义。
- kore/: 存放 KORE 中间表示的核心代码。
- nix/: 存放 Nix 构建系统的相关文件。
- package/: 存放项目打包相关文件。
- scripts/: 存放项目脚本文件。
- src/: 存放项目源代码。
- test/: 存放项目测试代码。
- .gitignore: Git 忽略文件配置。
- .gitmodules: Git 子模块配置。
- .hlint.yaml: HLint 配置文件。
- LICENSE: 项目许可证文件。
- Makefile: 项目构建文件。
- README.md: 项目介绍文档。
- cabal.project: Cabal 项目配置文件。
- cabal.project.freeze: Cabal 项目依赖锁定文件。
- default.nix: Nix 默认配置文件。
- flake.lock: Nix Flake 锁定文件。
- flake.nix: Nix Flake 配置文件。
- fourmolu.yaml: Fourmolu 格式化配置文件。
- include.mk: Makefile 包含文件。
- stack.yaml: Stack 项目配置文件。
- stack.yaml.lock: Stack 项目依赖锁定文件。
2. 项目的启动文件介绍
Haskell-Backend 项目的启动文件主要包括以下几个:
- kore-rpc-booster: 这是一个 JSON RPC 服务器,用于执行 KORE 定义的请求。启动该服务器需要提供一个 KORE 文件定义和一个动态库路径。
启动命令示例:
kore-rpc-booster /path/to/definition.kore --module MY-DEFINITION --llvm-backend-library /path/to/interpreter
-
kore-rpc: 这是 kore-rpc-booster 的旧版本,同样是一个 JSON RPC 服务器,实现相同的协议。
-
kore-exec 和 kore-repl: 这是已弃用的非 RPC 入口点,不推荐使用。
3. 项目的配置文件介绍
Haskell-Backend 项目的主要配置文件包括:
- cabal.project: Cabal 项目配置文件,定义了项目的依赖、源文件路径等信息。
- stack.yaml: Stack 项目配置文件,定义了项目的依赖、构建选项等信息。
- default.nix: Nix 默认配置文件,定义了项目的构建环境和依赖。
- flake.nix: Nix Flake 配置文件,定义了项目的 Flake 配置。
- Makefile: 项目构建文件,定义了项目的构建目标和规则。
- .hlint.yaml: HLint 配置文件,定义了代码风格检查的规则。
- fourmolu.yaml: Fourmolu 格式化配置文件,定义了代码格式化的规则。
这些配置文件共同作用,确保项目能够正确构建、运行和测试。