跳到正文豫言豫言教程与指南

快速开始

下列步骤,行于 Linux 与 macOS,唯须 curl 与 tar(macOS 自带):

# Debian / Ubuntu
sudo apt-get update
sudo apt-get install curl tar

构建工具链

于仓库根目录下载 CI 所发本平台之原生工具链包(macOS 林檎之芯取 yuyan-native-macos-arm64.tar.gz,Linux x86-64 取 yuyan-native-linux-x64.tar.gz,Linux arm64 取 yuyan-native-linux-arm64.tar.gz),解于仓根(豫构于己旁求执行器),乃以包中之豫构据今源构一级原生豫构,复原生自举:

curl --fail --location \
  https://github.com/yuyan-lang/yuyan/releases/download/continuous-binaries/yuyan-native-linux-x64.tar.gz \
  --output 原生工具链包.tar.gz
tar -xzf 原生工具链包.tar.gz
./豫构稳定。林檎。豫行 构建 豫构 --输出 豫构。林檎。豫行 -j 24 -- --目标 本机 --执行器 执行器。树码
./豫构。林檎。豫行 全部 -j 24

解之,得原生豫构 豫构稳定。林檎。豫行 与执行器之汇编树码 执行器。树码。首步据今源构一级原生豫构;次步「全部」原生自举(二级、三级,校其产逐字相同),装本机原生之工具链 豫构。林檎。豫行、编译器。林檎。豫行 与执行器,并构浏览器与云工二网页后端所用之 Wasm 编译器与豫构。此后构建与诸器皆用原生之程 ./豫构。林檎。豫行 …。欲与 CI 同版,可改取 historical-binaries 所发之 <提交之时>-yuyan-native-<平台>-<提交号>.tar.gz(时取 UTC,若 20260930T090727Z),CI 起步所用之址与 SHA-256 见 .github/workflows/main.yml 之 YY_NATIVE_TOOLCHAIN_URL、YY_NATIVE_TOOLCHAIN_SHA256。仓库之构建目标书于 应用/豫构/仓库目标。豫,行 ./豫构。林檎。豫行 目标 --列出 可尽列之。

亦可自豫行工具链之包(yuyan-yuxing-toolchain.tar.gz,提案〇〇〇二一)起步:诸平台同下一包,中有二构之豫构豫行、林檎、Linux 与轩窗兼之豫行启动器及执行器之汇编树码。以本机之启动器行豫构豫行,径出本机之原生豫构,复原生自举。轩窗兼以 豫行启动器兼。林檎。豫行 豫构兼。豫行 参… 行豫构,或以 豫行启动器兼。林檎。豫行 --合成 豫构兼。豫行 豫构。林檎。豫行 合为单文件而径行之(轩窗径出原生豫构而原生自举,待后续之版)。下例为 macOS 林檎之芯;Linux x86-64 易以 豫行启动器兼。林纳。豫行、豫构兼。豫行 与 --目标系统 林纳 --目标架构 兼容六十四,Linux arm64 易以 豫行启动器臂。林纳。豫行、豫构臂。豫行 与 --目标系统 林纳 --目标架构 臂六十四:

curl --fail --location \
  https://github.com/yuyan-lang/yuyan/releases/download/continuous-binaries/yuyan-yuxing-toolchain.tar.gz \
  --output 豫行工具链.tar.gz
tar -xzf 豫行工具链.tar.gz
./豫行启动器臂。林檎。豫行 豫构臂。豫行 构建 豫构 --输出 豫构。林檎。豫行 -j 24 -- --目标 本机 --目标系统 林檎 --目标架构 臂六十四 --执行器 执行器。树码
./豫构。林檎。豫行 全部 -j 24

启动器下之豫构以“本机”为豫言操作系统,故首步明书宿主之目标系统与架构,所出乃为 macOS 或 Linux 之原生程。

Windows 自 Wasm 工具链之包起步,须 Node.js 二十六版以上:

curl --fail --location \
  https://github.com/yuyan-lang/yuyan/releases/download/continuous-binaries/yuyan-wasm.tar.gz \
  --output yy_wasm工具链.tar.gz
tar -xzf yy_wasm工具链.tar.gz
node 稳定节点宿主/宿主.cjs 豫构稳定.wasm 构建 豫构 --编译器 ./编译器稳定.wasm --输出 豫构.wasm -j 24
node 豫言操作系统/宿主/节点/宿主.cjs 豫构.wasm 全部 -j 24

此后以 node 豫言操作系统/宿主/节点/宿主.cjs 豫构.wasm 代 ./豫构。林檎。豫行,器与程之出名用 .wasm,亦由之行。Windows 之原生工具链待后版。

编写并运行程序

前节既成,则有原生之豫构 豫构。林檎。豫行(自带编译器)。新建 示例/你好。包。豫:

「依赖」者「列」【『豫章』】也。
「入口」者『入口』也。

复建 示例/入口。豫。可行之程序,始于入口之篇中入口之函「入口」:

寻观「豫章」之书。

「入口」乃化「有」为「有」者也。
「入口」者得「无」而
 「书」于『你好,豫言!』
也。

于仓根行之;包依文件名而得,不复以路径猜名:

./豫构。林檎。豫行 构建 你好 --输出 你好。林檎。豫行 -j 24
./你好。林檎。豫行
./你好。林檎。豫行 参数一 参数二

唯验类型,可行 ./豫构。林檎。豫行 类型检查 你好。包根、直依、多入口与初举之制,见仓库包构建。独立项目欲用标准库,须将其包纳入发现域,详见包系统。

径呼编译器,则书源文于首参:./编译器。林檎。豫行 <源文。豫> [编译器之参…](编译器。林檎。豫行 与 豫构。林檎。豫行 为一程);常用构建由豫构行之。