快速开始
下列步骤,行于 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:
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。单文件旧入口仍备兼容,常用构建则由豫构行之。