快速开始
以下步骤适用于 Linux 和 macOS。请确保系统已有 clang、curl、tar、make 和 rg;常见安装方式如下:
# Debian / Ubuntu
sudo apt-get update
sudo apt-get install clang llvm curl tar make ripgrep
# macOS(Homebrew)
brew install llvm ripgrep
export PATH="$(brew --prefix llvm)/bin:$PATH"
构建稳定自举编译器
在仓库根目录下载连续自举包,构建其中的编译器与豫构,安装为 yy_bs_stable 和 yy豫构_stable 两个稳定种子:
curl --fail --location \
https://github.com/yuyan-lang/yuyan/releases/download/continuous-bootstrap/yuyan-bootstrap-bundle.tar.gz \
--output 豫言自举包.tar.gz
mkdir -p 豫言自举包
tar -xzf 豫言自举包.tar.gz -C 豫言自举包 --strip-components=1
./豫言自举包/构建.sh
cp 豫言自举包/yy_bs_stable ./yy_bs_stable
cp 豫言自举包/yy豫构_stable ./yy豫构_stable
chmod +x ./yy_bs_stable ./yy豫构_stable
./yy_bs_stable --version
自举包需要使用 clang 从 LLVM 中间表示重新链接;垃圾回收器已经包含在运行时源码中,不需要安装 Boehm GC。
编写并运行程序
先在仓库根目录运行 make 豫构,从稳定种子构建当前编译器和包工具。新建 示例/你好。包。豫:
「依赖」者「列」【『标准库』】也。
「入口」者『入口』也。
再新建同目录的 示例/入口。豫:
寻观「标准库」之书。
「打印行」于『你好,豫言!』。
在仓库根目录构建并运行;包名由文件名识别,不再依赖模块搜索路径:
./yy豫构 构建 你好 --输出 yy你好
./yy你好
./yy你好 参数一 参数二
只做类型检查可以运行 ./yy豫构 类型检查 你好。包根、直接依赖、多入口和启动自举详见仓库包构建。独立项目使用标准库时,也必须将标准库包纳入发现范围,见包系统。
查看底层编译器选项可运行 ./yy4_bs --help。旧单文件入口保留兼容,但日常构建使用豫构。