环境准备

Rust

可以在项目的根目录下的rust-toolchain文件中查看当前项目使用的rust版本,如果你的rust版本不是这个版本,可以使用rustup安装这个版本的rust。

rustup install $(cat rust-toolchain)

国内如果没代理安装rust比较困难,建议使用清华源进行安装,见此处

安装完毕后,可以进行cargo换源设置,防止依赖无法下载,见此处

LLVM

Pivot-Lang目前使用LLVM 18作为后端,所以需要安装LLVM。如果你使用的是MacOS,可以使用brew安装LLVM。

brew install llvm@18

如果你使用的是ubuntu,可以使用这里的脚本进行安装

CMake

我们的垃圾回收模块使用了LLVM中的StackMap功能,需要使用CMake进行编译。

环境变量

开发项目需要正确配置一些环境变量才能让你保证开发时正确跑通测试。

运行下方命令将会把项目需要的一些环境变量加入到你的初始化脚本中

make devlinux # linux
make devmac # mac

注意这些命令都只需要跑一次

测试是否成功配置开发环境

上方步骤完成后,可以运行下方命令进行测试

make test

如果上方命令都成功执行,那么恭喜你,你已经成功配置了开发环境

使用github codespace 进行开发

使用github codespace进行开发的环境配置较为简单,但是请注意费用问题。

点击以下链接即可创建一个包含pl开发环境的codespace

create codespace

创建完毕后,建议使用本地vscode打开codespace中的项目进行开发

常见问题

No suitable version of LLVM was found system-wide or pointed

需要设置llvm环境变量,如果你使用的是ubuntu,可以执行如下脚本.

echo "export LLVM_SYS_180_PREFIX=/usr/lib/llvm-18" >> ~/.bashrc
source ~/.bashrc

如果是macOS通过brew install llvm@16安装,则需要设置环境变量:

echo "export LLVM_SYS_180_PREFIX=$(brew --prefix llvm@18)" >> ~/.bashrc
source ~/.bashrc

Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

缺少zlibdev造成的,如果你是ubuntu机器,使用下方命令进行安装:

sudo apt install zlib1g-dev

Unknown linker flag: -lzstd

在Mac上出现时,可能是缺少LIBRARY_PATH环境变量

echo "export LIBRARY_PATH=$LIBRARY_PATH:$(brew --prefix zstd)/lib" >> ~/.bashrc
source ~/.bashrc