RuyiSDK 双周进展汇报 第 075 期 · 2026 年 09 月 01 日
卷首语
各位 RISC-V 开发者与 RuyiSDK 社区伙伴,大家好!
RuyiSDK 0.52 已于 9 月 1 日发布,包管理器同步更新至 0.52.0。本次更新为未来的 “RuyiSDK 认证” 做了包管理器层面的预留,修复了 ruyi entity list 多参数解析问题以及服务端 macOS 二进制条目键名错误,并优化了依赖与构建维护逻辑。RuyiSDK IDE 发布 0.1.6 版本,新增复制包 ID、本地化 CI 等功能,修复了仓库切换后包树未刷新等问题,并调整了侧边栏图标样式。测试工作新增 macOS 14 平台覆盖,相关遗留缺陷已明确分类与跟踪。
社区与内容建设方面,软件源格式更新支持供应商元数据,并为认证状态预留字段;新增RuyiSDK GNU 工具链 macOS AArch64 实验支持、SpacemiT Muse Pi Pro Armbian 镜像,以及知合 A210 SODIMM 官方 EVB 系统镜像。
开发板支持矩阵新增 VisionFive 2 Lite 多系统测试报告,更新 K510 Buildroot 报告;
开发板示例仓库新增 SpacemiT K3 Pico-ITX、BPI-CANMV-K230D-Zero 等板卡文档与示例,并为 15 款开发板完善英文入门文档。
官网同步上线 “软件包” 页面,方便用户提前浏览软件包资源。
此外,社区近期开启了 Ruyi Imager 图形化镜像刷写工具内测,欢迎大家体验反馈。
基础组件方面,基础 C 库在 GLIBC 的 libmvec 框架下移植了 hypot、expm1f、lgamma 等函数,并针对 C908 对 strstr 进行初步调优;newlib 则新增 acospi、asinpi 等向量数学函数。GCC 持续推动 P 扩展 intrinsic 支持,API 测试通过率进一步提升,并协助 RISE 基金会完善 CI 维护。LLVM 围绕 P 扩展与整数比较优化合入多个补丁,支持多种 packed 运算与 intrinsic 接口。V8 后端新增 Zcb 压缩扩展支持,开启压缩指令集后内置库静态代码尺寸减小约 10%。OpenJDK 完成了 JEP 401 值对象的 RISC-V 初步移植并通过兼容性测试,同时优化 G1GC barrier、新增 GCM intrinsic 等。Go 提交了 sha256 的 zvknha 支持等主线补丁,并审阅多项编译优化与指令支持修改。
欢迎阅读正文,了解更详尽的更新内容,并期待您与我们一同参与社区共建。获取更多资讯、下载最新工具或参与技术讨论,欢迎通过文章最下方的项目资源入口 找到我们。
下个版本计划于 2026 年 9 月下旬发布,敬请期待!
基础开发环境
包管理器
RuyiSDK 0.52 已于 2026 年 9 月 1 日发布,对应的包管理器版本也为 0.52.0。本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 为未来的“RuyiSDK 认证”做了包管理器方面的预留。
- 修复了实验性的
ruyi entity list命令只接受多个-t参数中的第一个的问题。感谢 weilinfox 报告此问题,感谢 Mr-Eric666 的贡献! - 工程化迭代:
- 更新了依赖版本。
- 使
ruyi的代码写法兼容了 argcomplete 3.7.2 及更高的版本。 - pygit2 上游已从 1.20.0 版本开始提供 RISC-V 二进制,故移除了 pygit2 的本地构建逻辑,降低维护成本。
本次 RuyiSDK 服务端组件的更新主要包含了以下内容:
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
RuyiSDK IDE
- feat: 新增复制包ID功能
- feat: 新增 l10n CI
- fix: 共用 toolchain 和 sysroot 组件
- fix: 修改 repo 后没有重新加载 package tree
- fix: package tree 的中文翻译错误
- docs: 完善 Sipeed Lichee Pi 4A 的相关文档。
- test: VSCodium 平台 RuyiSDK 插件适配,Java、JavaScript、Go、Python 语言相关插件测试。
- ci: 维护 CI 脚本,提高安全性。
- feat: 调整 IDE 侧边栏图标样式,提高辨识度。
- build: 发布 0.1.6 版本
版本测试及遗留问题
本版本测试增加了 macOS 14 平台测试,并给出相应的测试报告。
Ruyi 包管理器遗留缺陷:
| 缺陷 | 问题等级 | 判定依据 |
|---|---|---|
| Occasional pygit2 failures during testing #415 | 一般 | 已有 issue 回复 |
| ruyi entity list 传入多个 -t 参数时只消费其中一个 #492 | 一般 | 下一版本修复 |
RuyiSDK Eclipse IDE 遗留缺陷:
| 缺陷 | 问题等级 | 备注 |
|---|---|---|
| 命令执行提示框可以任意关闭且无法重新打开 #82 | 建议 | |
| 虚拟环境建立的项目绑定问题 #84 | 建议 | |
| 安装插件时 Eclipse 提示未签名 #85 | 建议 | |
| New Virtual environment添加虚拟环境时响应时间过长 #177 | 建议 | |
| 用户无法直观获知项目当前启用的虚拟环境 #191 | 建议 | |
| select package 不可用 #196 | 建议 |
RuyiSDK VSCode IDE 遗留缺陷:
| 缺陷 | 问题等级 | 备注 |
|---|---|---|
| 版本切换过程中中英文切换不灵活 #231 | 建议 |
社区与内容建设
packages-index 资源更新
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 软件源格式更新:
- 支持为软件包附着供应商元数据:位于 manifest TOML 的
metadata.vendor.data字段,其类型为供应商 ID: 键值对的字典(TOML 表格);支持布尔型与字符串类型的值。 - 预留
metadata.vendor.data.ruyisdk.certified为表示“RuyiSDK 认证”状态的元数据字段。
- 支持为软件包附着供应商元数据:位于 manifest TOML 的
- 更新软件包:
board-image/armbian-spacemit-musepipro-minimal: SpacemiT Muse Pi Pro 的 Armbian。感谢 SmulllLu 的贡献!toolchain/gnu-ruyisdk: RuyiSDK GNU 工具链,增加了实验性的 macOS AArch64 (Apple Silicon) 支持。
- 新增设备支持:
- 知合 (Zhihe Computing) A210 SODIMM: 兼容其官方提供的 EVB 系统镜像。感谢 weilinfox 的贡献!
您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
开发板支持矩阵
- 新增 VisionFive 2 Lite 的 Ubuntu 24.04 和 Debian 工程版中英文测试报告。PR #390、PR #391
- 更新 K510 的 Buildroot 中英文测试报告。PR #392
开发板示例仓库
- 新增 SpacemiT K3 Pico-ITX 板卡文档,并补充 CoreMark、HelloWorld 和 llama-server 示例。PR #33
- 新增 BPI-CANMV-K230D-Zero 中英文板卡说明,并补充中文 CanMV Linux SDK 安装指南,涵盖 RV64ILP32、RV64LP64 镜像烧录流程。PR #41、PR #42
- 为 15 款开发板补充或完善英文 HelloWorld 入门文档。PR #36、PR #37
- 完善仓库维护机制:自动生成中英文开发板索引并通过 CI 校验,补充命名、版本与双语文档规范,统一 Ruyi 安装版本引用并建立定期更新机制,同时新增双语覆盖报告。PR #34、PR #35、PR #38、PR #39、PR #40
官网&文档
- 官网上线“软件包”页面,现在可以在安装 ruyi 之前方便的查看软件包索引资源了。欢迎大家访问并提供反馈和建议。如果您有资源想要“登记”到 RuyiSDK 软件源,可以参考《RuyiSDK 生态资源接入指南》 提交 issue 或者直接发起 PR 参与贡献。
基础组件
基础C库
- GLIBC:
- 移植了 hypot、hypotf、expm1f、lgamma 和 lgammaf 至现有的 glibc libmvec 框架。
- 基于 C908 针对 strstr 接口进行了初步调优。
- newlib:
- 移植了 acospi、asinpi、atan2、atanpi 至现有的 newlib 向量数学框架。
GCC
-
持续推进 p 扩展 GCC intrinsic 支持 (Commits · ruyisdk/riscv-gcc · GitHub ),目前总体进度如下:
- RV32 API tester: 901 PASS / 64 FAIL / 20 SKIP
- RV64 API tester: 928 PASS / 57 FAIL
-
协助RISE基金会完善了CI维护工作:
- ci: migrate GCC pre-commit CI and Patchwork operations to RISE by pz9115 · Pull Request #1 · riseproject-dev/gcc-precommit-ci · GitHub
- ci: migrate GCC post-commit CI ownership and operations to RISE by pz9115 · Pull Request #4 · riseproject-dev/gcc-postcommit-ci · GitHub
- Update RISE-CI toolchain by pz9115 · Pull Request #1 · riseproject-dev/riscv-gnu-toolchain-ci · GitHub
LLVM
本期提交 PR 如下
- [ValueTracking][InstCombine] Preserve samesign when flipping icmp strictness
[ValueTracking][InstCombine] Preserve samesign when flipping icmp strictness by imkiva · Pull Request #209097 · llvm/llvm-project · GitHub
在将非严格整数比较规范化为严格比较时保留samesign标志,同时避免常量调整跨越溢出或符号边界。已合并 - [InstCombine] Use samesign constraints in unsigned known-bits folds
[InstCombine] Use samesign constraints in unsigned known-bits folds by imkiva · Pull Request #209675 · llvm/llvm-project · GitHub
在无符号比较的 known-bits 折叠中传播samesign的符号位约束,从而支持更多整数范围端点折叠。已合并 - [RISCV][P-ext] Add packed multiply-parts intrinsics
[RISCV][P-ext] Add packed multiply-parts intrinsics by sihuan · Pull Request #218875 · llvm/llvm-project · GitHub
新增 P 扩展乘法分部操作的 LLVM intrinsic、SelectionDAG、Clang 接口及 RV32/RV64 代码生成测试。已合并 - [RISCV][P-ext][NFC] Overload scalar mqacc/mqracc intrinsics by element width
[RISCV][P-ext][NFC] Overload scalar mqacc/mqracc intrinsics by element width by TelGome · Pull Request #219345 · llvm/llvm-project · GitHub
按元素宽度重载并合并标量 mqacc/mqracc intrinsic,减少重复定义,不改变生成代码。已合并 - [RISCV][P-ext] Support Packed “Q-format” Multiply Parts Accumulate
[RISCV][P-ext] Support Packed "Q-format" Multiply Parts Accumulate by TelGome · Pull Request #217918 · llvm/llvm-project · GitHub
实现 P 扩展 Q-format 乘法分部累加,覆盖 Clang、LLVM IR、指令选择及 RV32/RV64 测试。已合并 - [RISCV] Support Packed Multiply High Accumulate
[RISCV] Support Packed Multiply High Accumulate by XChy · Pull Request #217591 · llvm/llvm-project · GitHub
新增 packed multiply-high accumulate intrinsic 及对应代码生成,并补充 Clang 接口和双目标测试。已合并 - [Clang][RISCV] Add packed saturating and rounding shift intrinsics
[Clang][RISCV] Add packed saturating and rounding shift intrinsics by sihuan · Pull Request #217692 · llvm/llvm-project · GitHub
为 pssha、psshar、psshl 和 psshlr 增加 Clang builtin、头文件封装及代码生成测试。已合并 - [RISCV][P-ext] Select immediate forms for packed saturating shifts
[RISCV][P-ext] Select immediate forms for packed saturating shifts by sihuan · Pull Request #217688 · llvm/llvm-project · GitHub
完善 packed saturating shift 常量操作数的立即数形式选择,并保留超出立即数字段范围时的寄存器形式。已合并 - [RISCV] Lower vector i1-to-fp i1 to VSELECT 1.0/0.0
https://github.com/llvm/llvm-project/pull/219426
在 RISC-V 指令选择阶段将向量 i1 到浮点类型的转换下降为选择 1.0/0.0 的 VSELECT。已合并 - [Clang][RISCV] Add packed widening multiply intrinsics
https://github.com/llvm/llvm-project/pull/217534
添加 packed widening multiply intrinsics 支持。已合并 - [Clang][RISCV] Add packed widening add/sub intrinsics
[Clang][RISCV] Add packed widening add/sub intrinsics by Michael-Chen-NJU · Pull Request #219348 · llvm/llvm-project · GitHub
添加 packed widening add/sub intrinsics 支持。已合并 - [RISCV] Support Packed Multiplication with Horizontal Addition
[RISCV] Support Packed Multiplication with Horizontal Addition by XChy · Pull Request #218430 · llvm/llvm-project · GitHub
实现 packed multiplication with horizontal addition 的 Clang、LLVM intrinsic、后端选择及 RV32/RV64 测试。正在 review
V8
本期亮点:V8 RISC-V后端增加了Zcb扩展的汇编、反汇编、内置模拟器和代码生成支持。目前V8已经完整支持Zca,Zcb,Zcd,Zcf,开启压缩指令集扩展后,AOT内置库的静态代码尺寸从2.70MB减小到2.43MB,减小幅度达10%。
本期提交并合入的patch:
-
[riscv] Replace JAL with AUIPC/JALR in lazy compile jump slots
[RISC‑V] 将惰性编译跳转槽的 JAL 指令替换为 AUIPC/JALR 指令组合(https://chromium-review.googlesource.com/c/8301500 ) -
[riscv] Add ZCB extension and unify RVC register checks
[RISC‑V] 添加 ZCB 压缩扩展支持,并统一 RVC 压缩指令的寄存器校验逻辑(https://chromium-review.googlesource.com/c/8271868 ) -
[riscv][sandbox] Harden TailCalls after code update
[RISC‑V][沙箱] 加固代码更新完成后的尾调用安全处理逻辑(https://chromium-review.googlesource.com/c/8311072 ) -
[riscv] Fix OSR code check in OnStackReplacement
[RISC‑V] 修复栈上替换(OSR)流程里的代码校验逻辑(https://chromium-review.googlesource.com/c/8311188 ) -
[riscv] Harden jump offset range checks in the assembler and deoptimizer
[RISC‑V] 强化汇编器与反优化器中跳转偏移量的范围检查(https://chromium-review.googlesource.com/c/8305697 ) -
[riscv] Remove unused ER creation in builtins‑riscv
[RISC‑V] 删除 riscv 内置函数中未被使用的 ER 对象创建代码(https://chromium-review.googlesource.com/c/8284941 ) -
[riscv][maglev] Zero‑extend Int32 index in element address
[RISC‑V][Maglev] 在数组元素地址计算时对 Int32 索引做零扩展(https://chromium-review.googlesource.com/c/8221145 ) -
[riscv] Implement Zcb extension in RISC‑V simulator
[RISC‑V] 在 RISC‑V 模拟器中实现 Zcb 压缩扩展指令集(https://chromium-review.googlesource.com/c/8268575 ) -
[riscv] Add Zcb compressed extension support
[RISC‑V] 新增 Zcb 压缩扩展指令集后端支持(https://chromium-review.googlesource.com/c/8263250 )
本期审核并合入的patch:
-
[riscv] Fix typo of RoundingMode in simulator
[RISC‑V] 修复模拟器中 RoundingMode 拼写错误(https://chromium-review.googlesource.com/c/8251431 ) -
[riscv] Fix emulator sNaN check
[RISC‑V] 修复模拟器信号 NaN(sNaN)检测逻辑(https://chromium-review.googlesource.com/c/8253666 ) -
[riscv] Fix some issues
[RISC‑V] 修复若干代码问题(https://chromium-review.googlesource.com/c/8253281 ) -
[riscv] Make Smi int32 checks safe with pointer compression
[RISC‑V] 保证指针压缩模式下 Smi int32 校验逻辑安全可靠(https://chromium-review.googlesource.com/c/8236678 ) -
[riscv] Avoid clobbering live input registers
[RISC‑V] 避免生成代码时覆盖仍处于活跃状态的输入寄存器(https://chromium-review.googlesource.com/c/8263861 ) -
[riscv] Fix integer masking and pointer branch comparisons
[RISC‑V] 修复整数掩码运算以及指针分支比较逻辑缺陷(https://chromium-review.googlesource.com/c/8265241 ) -
[riscv] Store Liftoff constants using their value width
[RISC‑V] Liftoff 按照常量实际位宽执行常量存储操作(https://chromium-review.googlesource.com/c/8267767 ) -
[riscv] Fix atomic stores of tagged and compressed values
[RISC‑V] 修复标记指针、压缩值的原子存储实现(https://chromium-review.googlesource.com/c/8267768 )
OpenJDK
本期提交的JDK主线patch:
- 8388192: [lworld] Some code is not guarded by Arguments::is_valhalla_enabled() by TobiHartmann · Pull Request #32123 · openjdk/jdk · GitHub (8388192: [lworld] Some code is not guarded by Arguments::is_valhalla_enabled()) 为各CPU平台添加必要的value type特性开关判断
本期审阅并合入的JDK主线patch:
- 8386292: Shenandoah: Simplify and strengthen C1 barriers by shipilev · Pull Request #31576 · openjdk/jdk · GitHub (8386292: Shenandoah: Simplify and strengthen C1 barriers) 为各CPU平台清理ShenandoahGC C1 barrier汇编器实现
- https://github.com/openjdk/jdk/pull/31627 (8387078: RISC-V: x27 can be allocated in CompressedOops mode) CompressedOops场景下将RISC-V x27设置为可分配寄存器
- 8374184: RISC-V: implement GCM intrinsic with Zvkg and Zvkned extension by Anjian-Wen · Pull Request #28894 · openjdk/jdk · GitHub (8374184: RISC-V: implement GCM intrinsic with Zvkg and Zvkned extension) 为RISC-V平台实现GCM加密解密intrinsic实现
- 8387381: RISC-V: assert failed with fastdebug build on systems with different core types by zifeihan · Pull Request #31717 · openjdk/jdk · GitHub (8387381: RISC-V: assert failed with fastdebug build on systems with different core types) 为RISC-V平台修复异构芯片场景断言错误
- https://github.com/openjdk/jdk/pull/30816 (8379706: Cleanup and clarify BarrierSetAssembler::try_resolve_weak_handle_in_c2) 为各CPU平台清理barrier汇编器实现
- https://github.com/openjdk/jdk/pull/31793 (8387789: RISC-V: Optimize G1 post-write barrier conditional card mark) 为RISC-V平台优化G1GC barrier实现
- 8387747: Enable long vector multiply IR tests for RISC-V by DingliZhang · Pull Request #31779 · openjdk/jdk · GitHub (8387747: Enable long vector multiply IR tests for RISC-V) 为RISC-V平台打开矢量乘法IR测试
- https://github.com/openjdk/jdk/pull/31806 (8387857: RISC-V: Add UseZvbb to RVA23U64Profile) 为RISC-V平台补齐RVA23扩展集合
- 8368180: RISC-V: Remove redundant ext_Zicboz.enable_feature() by DingliZhang · Pull Request #27409 · openjdk/jdk · GitHub (8368180: RISC-V: Remove redundant ext_Zicboz.enable_feature()) 为RISC-V平台删除冗余的Zicboz扩展使能
Java重要新特性JEP 401: 值类与对象(Value Classes and Objects)RISC-V移植工作进展:
RISC-V平台JEP 401兼容性相关工作已随Value Class PR合并到JDK主线仓,通过兼容性测试,且支持值类型Flattening优化(UseArrayFlattening & UseFieldFlattening)。
下一步工作:继续调研方法调用场景下Value Class值类型参数传递内联优化在X86和ARM64上的实现细节(InlineTypePassFieldsAsArgs & InlineTypeReturnedAsFields)。
Value Class PR详细修改如下:
- https://github.com/openjdk/jdk/pull/31120 (8389219: Implement JEP 401: Value Objects (Preview))
Go
提交主线代码
- 752981: crypto/sha256: enable zvknha for riscv64 | https://go-review.googlesource.com/c/go/+/752981 基于 vlenb 侦测要求重新编写
- internal/sm3,internal/sm4: add riscv64 Zvksh/Zvksed vector crypto paths by mengzhuo · Pull Request #586 · emmansun/gmsm · GitHub 提交sm3/sm4 支持
review主线代码
- 824984: cmd/compile: fix large riscv64 move/zero | https://go-review.googlesource.com/c/go/+/824984 修复SSA无法移动大范围数据
- 748921: cmd/compile: use SLLW for Lsh32x(64|32|16|8) on riscv64 | https://go-review.googlesource.com/c/go/+/748921 算术左移启用sllw指令
- 735520: riscv64: add disassembly support and tests for zacas | https://go-review.googlesource.com/c/arch/+/735520 arch库添加zacas 指令测试
- 801682: internal/cpu: restrict RISC-V GODEBUG options to optional extensions | https://go-review.googlesource.com/c/go/+/801682 严格设定godebug profile 等级
社区动态
- 【内测开启】Ruyi Imager — RISC‑V 开发板图形化镜像刷写工具,欢迎大家体验测试!:Ruyi Imager图形化镜像烧录工具开启内测,支持多平台与多款RISC‑V开发板,无需ruyi命令行即可完成镜像烧录,欢迎社区测试反馈。
项目资源入口 {#project-resources}
获取更多资讯、下载最新工具、查阅硬件适配资料或参与社区共建,欢迎通过以下官方渠道访问:
- RuyiSDK 官网:ruyisdk.org
- RISC-V 开发板与操作系统支持矩阵:matrix.ruyisdk.org
- RISC-V 开发板应用示例库:boards.ruyisdk.org
- RuyiSDK 技术社区(交流、投稿、问题反馈):ruyisdk.cn
- 官方工具下载页面:ruyisdk.org/downloads
- RuyiSDK 开源组织仓库:github.com/ruyisdk/