Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: 检出言序 1.1.8
- name: 检出言序 1.1.20
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
repository: YanXuLang/yanxu
ref: v1.1.8
ref: v1.1.20
path: target/yanxu-core
- name: 构建言序
run: cargo build --manifest-path target/yanxu-core/Cargo.toml --locked --bin yanxu
Expand Down Expand Up @@ -71,11 +71,11 @@ jobs:
sudo apt-get -o Acquire::Retries=5 install -y \
libfontconfig1 libwayland-client0 libxkbcommon0 libxkbcommon-x11-0 \
libx11-6 xvfb
- name: 检出言序 1.1.8
- name: 检出言序 1.1.9(言界已验证基线)
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
repository: YanXuLang/yanxu
ref: v1.1.8
ref: v1.1.9
path: target/yanxu-core
- name: 构建言序并锁定言界
run: |
Expand Down
16 changes: 14 additions & 2 deletions content/docs/design/roadmap.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 长期路线图
description: 言序从 0.3 数据与诊断阶段到 1.0 稳定语言的演进边界
description: 言序从早期语义建设到 1.1.20 稳定工程边界及 2.0 前瞻
---

本路线以“先稳定语义,再优化执行”为原则。版本号代表语言能力的稳定层级,而不是单纯的功能数量。
Expand Down Expand Up @@ -113,7 +113,7 @@ description: 言序从 0.3 数据与诊断阶段到 1.0 稳定语言的演进边

1.0 已发布源代码兼容策略、稳定模块/包/锁/字节码与报告格式 1、Rust/C/WASI 嵌入边界、完整工具链,以及“诗笺台”“账册分析”两个中等规模参考项目。1.0 之后新语法必须经过 YXP 提案、原型、兼容性与工具链影响评审。

## 1.1:标准库、对象、生产 I/O 与工程化(当前版本 `1.1.8`)
## 1.1:标准库、对象、生产 I/O 与工程化(当前版本 `1.1.20`)

1.1 的向后兼容扩建已经完成:`Base64`处理标准与 URL 安全 UTF-8 编解码,`正则`提供线性时间 Unicode 匹配,`URL`负责纯地址解析与相对合并,`日期`提供确定性的 ISO 公历运算。四个模块不申请宿主权限,并已同步双运行时、静态类型、机器 API 清单、兼容语料、示例、文档和 VS Code,标准模块总数由 17 个增至 21 个。

Expand All @@ -132,6 +132,18 @@ description: 言序从 0.3 数据与诊断阶段到 1.0 稳定语言的演进边
1.1.8 保持上述全部格式与接口兼容,为 Windows x86_64/ARM64 官方运行时保留 8 MiB
所有者线程栈,并以 PE32+ 回归和 Release 制品检查覆盖原生 GUI 回调中的言序方法嵌套。

1.1.9 为源码、VM、包入口与 YXB 增加统一执行步数入口,并让 GUI、计时器和原生扩展的每个宿主回调独立计量。1.1.10 把 HTTP 4xx/5xx 恢复为可检查状态与正文的普通响应,并把证书验证失败稳定归类为`NET_TLS`。1.1.11 与 1.1.12 分别修复 Windows 锁定依赖路径和 YXB 大整数常量精确往返。

1.1.13 建立模块限定类型、跨模块继承/协议和公开模块重导出;字节码升级到格式 2,模块 API 清单升级到 v2,旧字节码须从源码重建。1.1.14–1.1.16 校准 HTTP、套接字与字节值预算,最终把单个字节值与 HTTP 宿主硬上限统一为 16 MiB,同时保持 HTTP 默认 4 MiB、套接字单次读取 4 MiB。

1.1.15 新增独立本地网络能力,并明确`*`不是敏感地址授权。1.1.17 允许以最窄 IPv4/IPv6 CIDR 授权 VPN fake-IP 等网段,把`进程.执行`最长超时扩展到 24 小时,并修复嵌套宿主事件泵。

1.1.18 与 1.1.19 的标签没有形成稳定 Release;相关工作最终由 1.1.20 交付。稳定版把路径、Git 与注册表依赖发布为内容寻址的不可变 generation,统一包元数据、源码、目录遍历、归档和原生库装载边界,并加入覆盖率、Miri、Sanitizer、八类模糊测试、逐目标 SBOM 和构建来源证明。解析器固定 32 层结构上限;格式化器保留单元素元组的消歧逗号。公开清单、锁、YXB、字节码 2、ABI v1/v2 和工程协议版本均保持不变。

## 1.2–2.0:后续方向

后续版本优先推进参数化类型、稳定诊断、项目级检查、包供应链、可测量性能与编辑器成熟度。真正并发、Edition 2 或其他破坏性变化必须经过独立 YXP、兼容窗口和迁移工具,不把实验能力写成当前承诺。工作区总路线以[长期规划仓库文档](https://github.com/YanXuLang/yanxu)与正式 YXP 为准。

## 跨版本工程要求

每个里程碑都必须同时具备:
Expand Down
2 changes: 1 addition & 1 deletion content/docs/ecosystem/desktop/api-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: 言界常用公开入口与言台版本化原语的索引。
| 容器 | 行、列、堆叠、网格、滚动、列表、标签页、分割面板、菜单、弹出层、画布、图片 |
| 系统服务 | 剪贴板读取/写入、打开文件/多个文件、保存文件、选择目录/多个目录 |

完整、由源码快照生成的签名参考见[言界 REFERENCE](https://github.com/yanxulang/yanxu-ui/blob/v0.1.0/docs/REFERENCE.md),叙事 API 见[言界 API](https://github.com/yanxulang/yanxu-ui/blob/v0.1.0/docs/API.md)。
完整、由源码快照生成的签名参考见[言界 REFERENCE](https://github.com/yanxulang/yanxu-ui/blob/v0.1.1/docs/REFERENCE.md),叙事 API 见[言界 API](https://github.com/yanxulang/yanxu-ui/blob/v0.1.1/docs/API.md)。

## 言台原语

Expand Down
4 changes: 2 additions & 2 deletions content/docs/ecosystem/desktop/capability-matrix.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 平台能力表
description: 言台与言界 0.1.0 在六个正式桌面目标上的能力和验证范围。
description: 言台 0.1.0 与言界 0.1.1 在六个正式桌面目标上的能力和验证范围。
---

`支持`表示同一公开接口已实现并进入六目标 CI;`桌面验证`表示自动测试可覆盖确定部分,但最终体验还依赖真实用户会话。
Expand Down Expand Up @@ -34,6 +34,6 @@ x86_64-unknown-linux-gnu
aarch64-unknown-linux-gnu
```

每个目标都会核对动态库实际架构、包清单摘要、言序 1.1.8 类型检查、ABI 集成、API 漂移和 Release 构建。真实窗口自动退出在六个执行器运行;Linux 使用 Xvfb 验证 X11 路径,Wayland 与实际输入法会话需另做桌面冒烟。
每个目标都会核对动态库实际架构、包清单摘要、言序 1.1.9 类型检查、ABI 集成、API 漂移和 Release 构建。真实窗口自动退出在六个执行器运行;Linux 使用 Xvfb 验证 X11 路径,Wayland 与实际输入法会话需另做桌面冒烟。该矩阵是 0.1.1 的发布证据,不代表已经兼容当前核心 1.1.20

运行时应调用言台`能力查询()`,根据字段判断可选能力;不要只根据操作系统名称猜测。
4 changes: 3 additions & 1 deletion content/docs/ecosystem/desktop/choosing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ title: 选择 GUI 路线
description: 根据项目阶段、控件需求、稳定性与定制程度选择言窗或言界。
---

当前稳定言序 1.1.20 与言包 0.6.1 的新项目应选择言窗 1.0。言界 0.1.1 只保留言序 1.1.9 + 言包 0.5.0 的已验证预览组合;在新版本发布前,不要把它与当前工具链混装。

## 直接选择言窗

以下情况优先使用稳定的[`yanxu-gui` 1.0](/ecosystem/desktop/gui/):

- 现有应用已经上线,当前控件和主题足够;
- 希望依赖成熟的 egui 生态与立即模式开发方式;
- 需要言界`0.1.0`尚未提供的复杂控件;
- 需要言界`0.1.1`尚未提供的复杂控件;
- 不希望在首版阶段承担新 API 迭代成本。
- 需要由 CI 汇总并校验的 Windows、macOS、Linux 六目标原生制品。

Expand Down
9 changes: 5 additions & 4 deletions content/docs/ecosystem/desktop/compatibility.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,16 @@ description: 言界、言台、言序、言包、言据和言窗之间的兼容

| 组件 | 兼容范围 | 已验证版本 |
| --- | --- | --- |
| 言序 | `>=1.1.8`,语言规范 1 | 1.1.8 |
| 言序 | 清单声明`>=1.1.9`;当前可复现基线固定 1.1.9 | 1.1.9 |
| 言包 | 格式 2 清单与锁文件 | 0.5.0 |
| 言台 | `^0.1`,ABI v2 | 0.1.0 |
| 言界 | `^0.1` | 0.1.0 |
| 言界 | `^0.1` | 0.1.1 |
| 言据 | `^1.1` | 1.1.2 |
| 言窗 | 独立并行路线 | 1.0.0 |

言界要求言序`1.1.8`提供 Windows VM 所有者线程的 8 MiB 栈修复;言台本身仍兼容
`>=1.1.7`。新路线不会替换、废弃或强制迁移`yanxu-gui`。
言界 0.1.1 要求言序 1.1.9,以获得 Windows VM 所有者线程栈修复和按宿主事件隔离的执行步数预算;本站 CI 固定复现该发布基线。言台本身仍兼容`>=1.1.7`,言界的锁定发布继续使用言据 1.1.2。

言界清单虽声明`>=1.1.9`,但 0.1.1 源码目前不能通过言序 1.1.20 的静态检查;同时言包 0.6.1 最低要求核心 1.1.17。因此不存在“言序 1.1.20 + 言包 0.6.1 + 言界 0.1.1”的受支持组合。当前稳定工具链使用言窗 1.0;言界等待后续版本修复并重新发布。新路线不会替换、废弃或强制迁移`yanxu-gui`。

## 版本政策

Expand Down
6 changes: 3 additions & 3 deletions content/docs/ecosystem/desktop/complete-example.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ title: 完整示例
description: 一个包含菜单、列表、分割面板、标签页、文本和画布的可运行言界应用。
---

以下源码与文档仓库`examples/ecosystem/desktop/综合控件展示.yx`完全一致,并由 CI 使用言序`1.1.8`执行类型检查和 Release YXB 构建。
以下源码与文档仓库`examples/desktop/综合控件展示.yx`完全一致,并由 CI 使用言界 0.1.1 已验证的言序`1.1.9`执行类型检查和 Release YXB 构建。当前核心用户应先阅读[版本兼容政策](/ecosystem/desktop/compatibility/)中的兼容缺口

```yanxu
引「包:言界」为 界面;

定 应用 为 界面.应用(「言界综合控件展示」);

定 窗口 为 应用.窗口({「标题」:「言界 0.1.0」,「宽」:960,「高」:700,「最小宽」:720,「最小高」:520});
定 窗口 为 应用.窗口({「标题」:「言界 0.1.1」,「宽」:960,「高」:700,「最小宽」:720,「最小高」:520});

定 主列 为 窗口.列({「内边距」:18,「间距」:10});

Expand Down Expand Up @@ -59,4 +59,4 @@ description: 一个包含菜单、列表、分割面板、标签页、文本和
应用.运行();
```

项目清单使用[快速开始](/ecosystem/desktop/quick-start/)中的言界`v0.1.0`依赖和四项权限。先运行`yanbao 装`,再用`yanbao 查`检查;开发桌面运行应用,发布时执行`yanbao 构 --release --bundle`。
项目清单使用[快速开始](/ecosystem/desktop/quick-start/)中的言界`v0.1.1`依赖和四项权限。先运行`yanbao 装`,再用`yanbao 查`检查;开发桌面运行应用,发布时执行`yanbao 构 --release --bundle`。
2 changes: 1 addition & 1 deletion content/docs/ecosystem/desktop/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: 固定言界、言台和言据版本,并为 GUI 系统服务声

```toml
[依赖]
言界 = { 包 = "yanxu-ui", git = "https://github.com/yanxulang/yanxu-ui.git", 修订 = "v0.1.0", 版 = "^0.1" }
言界 = { 包 = "yanxu-ui", git = "https://github.com/yanxulang/yanxu-ui.git", 修订 = "v0.1.1", 版 = "^0.1" }

[权限]
图形界面 = true
Expand Down
2 changes: 1 addition & 1 deletion content/docs/ecosystem/desktop/controls.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 控件
description: 使用言界 0.1.0 的基础、输入、导航和绘制控件。
description: 使用言界 0.1.1 的基础、输入、导航和绘制控件。
---

所有高级控件都由言序实现,并共享显示、启用、焦点、尺寸、边距、样式、事件和无障碍接口:
Expand Down
6 changes: 5 additions & 1 deletion content/docs/ecosystem/desktop/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,15 @@ winit,适合需要稳定、完整控件和六目标发布的应用;**言界
| 路线 | 版本 | 最低言序 | Windows | macOS | Linux GNU |
| --- | ---: | ---: | --- | --- | --- |
| 言窗 `yanxu-gui` | 1.0.0 | 1.1.12 | x86-64 / ARM64 | x86-64 / ARM64 | x86-64 / ARM64 |
| 言界 + 言台 | 0.1.x | 1.1.8 | x86-64 / ARM64 | x86-64 / ARM64 | x86-64 / ARM64 |
| 言界 0.1.1 + 言台 0.1.0 | 0.1.x | 1.1.9 | x86-64 / ARM64 | x86-64 / ARM64 | x86-64 / ARM64 |

言窗 1.0 的 Linux GNU 制品最高需要 glibc 2.39;不支持 musl、WebAssembly、移动平台
或 32 位目标。言界/言台有独立版本和兼容文档,升级一条路线不会隐式升级另一条。

<Callout type="warning" title="言界 0.1.1 的当前兼容缺口">
言界 0.1.1 的发布门禁只验证言序 1.1.9;其源码目前不能通过言序 1.1.20 的静态检查,言包 0.6.1 又要求核心至少 1.1.17。当前稳定工具链的新项目应选择言窗 1.0。言界页面保留为锁定 1.1.9 + 言包 0.5.0 的预览路线,等待后续言界版本重新建立兼容线。
</Callout>

## 两条路线的边界

言窗公开应用、窗口、布局、控件、事件、图片、画布、剪贴板和文件对话框对象,控件由
Expand Down
12 changes: 8 additions & 4 deletions content/docs/ecosystem/desktop/quick-start.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
---
title: 快速开始
description: 使用言序 1.1.8 和言包安装言界,构建第一个原生窗口
description: 使用言序 1.1.9、言包 0.5.0 与言界 0.1.1 复现已验证的预览组合
---

先确认`yanxu --version`为`1.1.8`或兼容版本,`yanbao --version`为`0.5.0`或兼容版本。创建普通言序项目后,在`言序.toml`中加入言界:
<Callout type="warning" title="不要与当前稳定工具链混用">
本页复现言界 0.1.1 发布时的已验证组合:言序 1.1.9 与言包 0.5.0。言序 1.1.20 会在言界源码的可空目标变量处报告类型错误,言包 0.6.1 也不能运行在 1.1.9 上。使用当前稳定工具链时,请改走[言窗 1.0](/ecosystem/desktop/gui/)。
</Callout>

先确认`yanxu --version`为`1.1.9`,`yanbao --version`为`0.5.0`。创建普通言序项目后,在`言序.toml`中加入言界:

```toml
[包]
格式 = 2
名称 = "我的窗口"
版本 = "0.1.0"
言序 = ">=1.1.8"
言序 = ">=1.1.9"
入口 = "src/主.yx"

[依赖]
言界 = { 包 = "yanxu-ui", git = "https://github.com/yanxulang/yanxu-ui.git", 修订 = "v0.1.0", 版 = "^0.1" }
言界 = { 包 = "yanxu-ui", git = "https://github.com/yanxulang/yanxu-ui.git", 修订 = "v0.1.1", 版 = "^0.1" }

[权限]
图形界面 = true
Expand Down
2 changes: 1 addition & 1 deletion content/docs/ecosystem/desktop/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: 定位依赖锁、权限、显示会话、ABI、绘制、资源和

## 包无法解析或原生库不匹配

确认依赖使用存在的`v0.1.0`标签,删除手工复制的动态库,再在目标平台运行`yanbao 装`。检查`言序.lock`中的目标、ABI、SHA-256 和大小;不要复用另一架构的锁。
确认言界依赖使用存在的`v0.1.1`标签、言台由锁图解析到兼容的`v0.1.0`,删除手工复制的动态库,再在目标平台运行`yanbao 装`。检查`言序.lock`中的目标、ABI、SHA-256 和大小;不要复用另一架构的锁。

## 权限错误

Expand Down
6 changes: 4 additions & 2 deletions content/docs/ecosystem/desktop/ui-architecture.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 言界架构
description: 言界 0.1.0 的保留模式控件树、布局、事件、文本与渲染管线。
description: 言界 0.1.1 的保留模式控件树、布局、事件、文本与渲染管线。
---

言界除调用言台的边界模块外全部使用言序编写。一个窗口拥有一棵长期存在的控件树;属性变化标记布局或绘制脏区,下一帧只重新计算受影响的子树,再把渲染树编码为一个`YXDR`帧提交。
Expand Down Expand Up @@ -30,4 +30,6 @@ description: 言界 0.1.0 的保留模式控件树、布局、事件、文本与

按钮等高级控件完整处理悬停、按下、键盘激活和绘制;言台没有“创建按钮”操作。言界源码也不包含 Win32、AppKit、Wayland、X11 或平台指针分支。

实现细节见[言界架构](https://github.com/yanxulang/yanxu-ui/blob/v0.1.0/docs/ARCHITECTURE.md)与[API 文档](https://github.com/yanxulang/yanxu-ui/blob/v0.1.0/docs/API.md)。
0.1.1 会按样式名与悬停、按下、焦点、禁用状态位缓存主题解析结果,并缓存基础样式与控件种类样式的合并,避免每个控件在每帧重复深合并。缓存只改变渲染开销,不改变主题字段、继承或状态优先级。

实现细节见[言界架构](https://github.com/yanxulang/yanxu-ui/blob/v0.1.1/docs/ARCHITECTURE.md)与[API 文档](https://github.com/yanxulang/yanxu-ui/blob/v0.1.1/docs/API.md)。
4 changes: 3 additions & 1 deletion content/docs/getting-started/daily-workflow.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ description: 用检查、格式化、测试、运行和构建形成可重复的
yanbao check
yanxu fmt --write src
yanbao test
yanbao audit
yanbao run
yanbao build --release
```
Expand All @@ -18,9 +19,10 @@ yanbao build --release
| `check` | 发现词法、语法、类型、模块与清单问题 | 每次编辑后 |
| `fmt --write` | 写回稳定、幂等的规范格式 | 提交前或保存时 |
| `test` | 执行目录规格并比较期望输出 | 改动行为后 |
| `audit` | 复核锁图、来源、许可证、漏洞、目标与原生制品 | 依赖变化后及发布前 |
| `run` | 通过项目入口与声明权限运行 | 本地验证完整流程 |
| `build --release` | 生成优化的 YXB 或目标制品 | 发布候选阶段 |

依赖变化后先运行`yanbao install`,并把`言序.toml`与`言序.lock`一起提交。不要手工修改锁文件;需要理解某个包为何出现时,使用`yanbao tree`与`yanbao why 包名`。

CI 至少应执行检查、格式化一致性、规格测试和构建。编辑器诊断用于缩短反馈时间,但不能代替这些可重复命令。命令全集见[CLI 参考](/reference/cli/),项目边界见[项目工程](/projects/)。
CI 至少应执行检查、格式化一致性、规格测试、依赖审计和构建。需要机器消费时使用言包的 JSON 或 JSON Lines 输出,并保留非零退出状态。编辑器诊断用于缩短反馈时间,但不能代替这些可重复命令。命令全集见[CLI 参考](/reference/cli/),项目边界见[项目工程](/projects/)。
2 changes: 1 addition & 1 deletion content/docs/getting-started/first-program.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ yanxu 初见.yx
yanxu fmt --write 初见.yx
```

本页程序由 CI 使用言序 1.1.8 实际检查、格式化和执行。下一步把单一文卷扩展成[第一个项目](/getting-started/first-project/)。
本页程序由 CI 使用言序 1.1.20 实际检查、格式化和执行。下一步把单一文卷扩展成[第一个项目](/getting-started/first-project/)。
2 changes: 1 addition & 1 deletion content/docs/getting-started/first-project.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ yanbao run

`法`声明有明确参数与归值类型的函数;`定`创建不可重新绑定的名称;`逐…于…`按顺序迭代列。源码在语言层说明意图,项目清单和锁图在工程层固定入口、依赖与权限。

本页程序同样由 CI 使用言序 1.1.8 检查、格式化和执行。接下来建立[日常工作流](/getting-started/daily-workflow/)。
本页程序同样由 CI 使用言序 1.1.20 检查、格式化和执行。接下来建立[日常工作流](/getting-started/daily-workflow/)。
13 changes: 11 additions & 2 deletions content/docs/getting-started/installation.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 安装
description: 在 Windows、macOS 或 Linux 上安装并验证言序 1.1.8 与言包 0.5.0
description: 在 Windows、macOS 或 Linux 上安装并验证言序 1.1.20 与言包 0.6.1
---

## macOS 与 Linux
Expand Down Expand Up @@ -29,7 +29,16 @@ yanbao --version
yanbao doctor
```

稳定基线应分别报告言序 1.1.8 与言包 0.5.0。言包复用 `PATH` 中的言序运行时,不安装第二份核心,也不要求 Rust。
稳定基线应分别报告言序 1.1.20 与言包 0.6.1。言包复用 `PATH` 中的言序运行时,不安装第二份核心,也不要求 Rust。言包普通命令最低要求言序 1.1.17;完整依赖安全审计需要 1.1.20 提供的十二项审计能力声明。

需要复现指定版本时,可以固定安装:

```sh
curl -fsSL https://get.yanxu.dev | YANXU_VERSION=1.1.20 sh
curl -fsSL https://get.yanxu.dev/yanbao | YANBAO_VERSION=0.6.1 sh
```

Windows PowerShell 分别设置`$env:YANXU_VERSION = "1.1.20"`或`$env:YANBAO_VERSION = "0.6.1"`后,再运行对应安装器。不要固定到 1.1.18 或 1.1.19;这两个标签只保留追溯快照,没有稳定 Release。

若命令不存在,先确认安装器提示的目录已经加入 `PATH`;若版本较旧,重新运行对应安装器。只在参与语言实现或安装器不支持当前环境时,改用[从源码构建](/tooling/source-build/)。

Expand Down
Loading