RuyiSDK 双周进展汇报 第 080 期 : 三款工具发布新版,欢迎升级体验

RuyiSDK 双周进展汇报 第 080 期

卷首语

各位 RISC-V 开发者与 RuyiSDK 社区伙伴,大家好!

RuyiSDK 各条线在本周期继续稳步推进,工具软件版本虽稍有延迟,但现已发布;各组件进展丰富,具体如下:

基础开发环境侧,包管理器 0.54.0 已发布,首次支持软件包与当前系统的 ABI 兼容性检测(首发覆盖 glibc/musl 的任意 Linux 发行版),并修正了非 2xx 下载响应的处理与失败排查指引;VS Code 插件打磨了错误输出展开、新闻刷新复用、错误信息本地化与术语统一等多处细节,发布了 0.1.7 版本。此外,Ruyi Imager 1.1.0 也已发布,新增 SpacemiT K3 刷写支持、独立的镜像预下载按钮,并对界面布局、本地化文本与 CLI 输出做了多处修复与优化。欢迎试用、来上游围观,或通过软件源仓库与打包脚本直接参与共建——您的需求是我们迭代开发的目标和动力。

社区与内容建设方面:packages-index 为 SpacemiT K1/K3 加入了 GNU 工具链适配,开发板支持矩阵新增 Milk-V Jupiter2 与 SpacemiT K3 Pico-ITX 的 Bianbu 测试报告并更新 VisionFive 2 Lite 的 Ubuntu 报告,开发板示例仓库则补齐了 HiFive Premier P550 基准测试、Milk-V Jupiter2 的 llama-server 部署示例,以及 K3 平台 ROS 2 课程入口的扩充。

基础组件方面亮点不少——GCC 三项 RISC-V 后端优化(Zba/Zbs/Zbkb)已合入上游主线并配套回归测试,RISE-CI 打通 multilib 构建检查并启动基于 SPEC CPU 2026 的真实硬件性能评测准备;LLVM 在 P 扩展乘累加、funnel shift、XTHeadBb 上持续推进,RuyiSDK LLVM 分支还初步落地了基于 v0.6 规范的 Ztt 矩阵扩展支持;OpenJDK 的 JEP 544 AOT 静态编译 RISC-V 移植通过功能测试并合入主线,CRC32C intrinsic 等多项 RISC-V 优化也已落地;V8 与 Go 团队同样围绕 Maglev、Liftoff、GC RVV 加速等方向合入了一批补丁。

欢迎阅读正文,了解更详尽的更新内容,并期待您与我们一同参与社区共建。获取更多资讯、下载最新工具或参与技术讨论,欢迎通过文章最下方的渠道找到我们。
下个版本计划于 2026 年 11 月底 发布,敬请期待!

基础开发环境

包管理器

RuyiSDK 0.54 将于 2026 年 11 月 11 日前后发布,对应的包管理器版本也为 0.54.0。RuyiSDK 包管理器的更新主要包含了以下内容:

  • 支持了检测软件包与当前系统的 ABI 兼容性,首发支持 C 运行时为 glibc 或 musl 的任意 Linux 发行版。
  • 对响应 HTTP 状态码为非 2xx 的下载请求,现在会将其正确作为失败处理了。
  • 更新了下载失败的排查指南文案,加入了服务器问题与终端网络环境等因素。
  • 工程化迭代:
    • 更新了依赖版本,包含 10 月以来 TLS 证书等安全问题的修复。
    • 由于等待适配 Python 3.15 的 pygit2 新版发布,暂时不使用 Python 3.15 运行 CI。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

RuyiSDK IDE

  • 包索引刷新失败时可展开查看完整错误输出。
  • 新闻刷新复用包索引刷新流程,去除重复实现。
  • 错误信息支持本地化。
  • 统一 Ruyi(命令行工具)与 RuyiSDK(产品/扩展)的术语用法。
  • 继续测试由 CI 构建的多平台 VSCodium IDE
  • 测试集成的 ruyi 插件与第三方插件

版本测试及遗留问题

RuyiSDK 0.54.0-beta.20261102 版本 Ruyi 包管理器和 v0.1.7 版本 VSCode IDE 插件符合出口标准,准予发版。详见测试报告。

社区与内容建设

packages-index 资源更新

本次 RuyiSDK 软件源的更新主要包含了以下内容:

  • 更新软件包:
    • toolchain/gnu-ruyisdk: 加入了针对 SpacemiT K1/K3 的工具链适配。
  • 为一些软件包加入了 ABI 兼容性信息。

您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

开发板支持矩阵

  • 新增 Milk-V Jupiter2 的 Bianbu 4.0.1 Desktop 中英文测试报告。PR #411
  • 新增 SpacemiT K3 Pico-ITX 的 Bianbu 4.0.8 LXQt 中英文测试报告。PR #412
  • 更新 VisionFive 2 Lite 的 Ubuntu 24.04.5 中英文测试报告。PR #390

开发板示例仓库

  • 新增 HiFive Premier P550 的 Dhrystone 基准测试及 SiFive Kernel Library(SKL)中文示例。PR #51、PR #52
  • 新增 Milk-V Jupiter2 的 llama-server 中文部署示例。PR #55
  • 开发板文档前端开放 SpacemiT K3 CoM260 Kit 的 ROS 2 第 11 至 15 章课程入口,涵盖扫描匹配、SLAM 与定位。PR #14、PR #16
  • 补充 SpacemiT K3 Pico-ITX 的 ROS 2 第 2 至 4 章课程入口,并同步到开发板文档前端。课程目录 PR #4、前端更新

官网&文档

  • 官网软件包页面新增了支持按照厂商、变体搜索设备的能力,欢迎体验。

基础组件

基础C库

  • GLIBC:
    • 移植了 sinpif, sqrt, sqrtf, tanf 至现有的 glibc libmvec 框架。
  • newlib:
    • 移植了 atanhf, atan2f, atanpif, atan2pif, exp2f, cosf, coshf, cospif, exp10f, expf, log2f, log2p1f, rsqrtf, expm1f 至现有的 newlib 向量数学框架。

GCC

本期重点围绕 RISC-V GCC 代码生成优化及真实硬件性能评测能力建设 推进工作,在编译器上游优化和下一阶段性能分析准备方面取得进展。

1. 完成三项 RISC-V GCC 后端代码生成优化,已合入 GCC 上游主线

针对 RISC-V 位操作及整数运算中的冗余指令、指令组合和成本模型问题,完成三项后端优化,并于 10 月 27 日正式进入 GCC 开发主线:

  • Zba 整数运算优化: 完善移位加法指令与整数除法、取余操作的组合识别,支持更多有符号和无符号运算场景,减少可优化代码中的冗余指令。
  • Zbs 位操作优化: 利用 bclr 指令自身的移位索引语义,消除不必要的掩码计算,改进 RV32/RV64 位图操作的代码生成。
  • Zbkb 指令选择优化: 修正 packh 指令的成本模型和匹配优先级,解决 Zbb/Zbkb 同时启用时无法正确选择更优指令的问题。

上述优化均已配套补充针对性回归测试,有助于提高 RISC-V 编译器对扩展指令的利用效率及生成代码的质量。

相关上游提交:

2. 完善RISE-CI工具链测试维护

打通了 Hertner容器服务与GITHUB Actions,新增 multilib构建场景检查,进一步完善Toolchain CI验证边界。

目前聚焦RISC-V后端,每天会对新的RISC-V提交进行充分测试

后续计划接入LLM对CI发现的错误进行评估和分析,协助开发者简化分析处理流程。

3. 启动基于 SPEC CPU 2026 的 RISC-V 真实硬件性能评测准备工作

引入新一代 SPEC CPU 2026 基准测试集,推进 GCC 在真实 RISC-V 硬件上的性能分析与优化研究。已开展测试环境及硬件资源需求评估,重点关注 RVV 1.0 支持、内存容量及性能分析能力。

针对候选 K3 等硬件平台,识别出完整 SPECspeed 2026 测试的内存资源限制,并开展其他硬件方案评估,为后续建立可复现的编译器性能对比环境做准备。

下一步: 推进测试平台确认与环境部署,逐步建立 GCC 不同优化选项及版本间的性能对比基线,通过热点分析寻找新的后端优化机会。

LLVM

本期提交 PR 如下

RuyiSDK LLVM 分支进展:

V8

本期提交并合入的patch如下:

  1. [riscv] Fix RISC-V trusted pointer tag range check
    [RISC-V] 修复可信指针标签范围检查 CL8639244
  2. [riscv] Zero out-of-range trusted pointers on tag underflow
    [RISC-V] 标签下溢时将越界可信指针置零 CL8620871
  3. [riscv][maglev] Store zero-valued constants through the zero register
    [RISC-V][Maglev] 借助零寄存器保存零值常量 CL8641030
  4. [riscv] Derive CPU features from the GN build configuration
    [RISC-V] 从 GN 编译配置推导 CPU 特性 CL8641350
  5. [riscv][maglev] Preserve the NaN sign in Float64->Float32 conversions
    [RISC-V][Maglev] 在 Float64 转 Float32 时保留 NaN 的符号位 CL8701858
  6. [riscv][liftoff] Allocate sub-word atomic RMW temp outside the loop
    [RISC-V][Liftoff] 在循环外分配子字原子 RMW 临时寄存器 CL8714199

本期审阅并合入的patch如下:

  1. [riscv] Fix emit_i32_eqz error
    [RISC-V] 修复 emit_i32_eqz 错误 CL8691005
  2. [riscv] Implement missing RV64 Add643 ops
    [RISC-V] 实现缺失的 RV64 Add643 运算 CL8689521
  3. [riscv] Fix RV64 int32mul typo
    [RISC-V] 修复 RV64 int32mul 拼写错误 CL8690428
  4. [riscv] Emit only ebreak for stop() on hardware
    [RISC-V] 在硬件上 stop() 仅生成 ebreak 指令 CL8698658
  5. [riscv] Preserve vector tails for scalar moves
    [RISC-V] 标量移动操作时保留向量尾部 CL8714039
  6. [riscv] Allow vlen=1024
    [RISC-V] 支持 VLEN=1024 CL8585179

OpenJDK

本期审阅并合入的JDK主线PR:

本期审阅并合入的JDK LTS主线PR:

Java重要新特性JEP 544: AOT静态编译(Ahead-of-Time Code Compilation)RISC-V移植工作进展:

JEP 544在RISC-V平台的移植通过功能测试,对应的性能收益符合预期,已合入JDK主线:

相关JEP提案:

Go

本期提出的主线CL:

本期审阅的主线CL:

项目资源入口

获取更多资讯、下载最新工具、查阅硬件适配资料或参与社区共建,欢迎通过以下官方渠道访问: