RuyiSDK 双周进展汇报 第 069 期:ruyi 0.49 发布

RuyiSDK 双周进展汇报 第 069 期·2026 年 05 月 26 日

卷首语

各位 RuyiSDK 的开发者伙伴,大家好!

RuyiSDK 双周进展已更新到第 69 期。本期我们随 0.49 版本一起,继续夯实全栈开发环境与基础软件栈:包管理器新增机读模式与质检命令,并优化虚拟环境与 sysroot 使用体验;VSCode 与 Eclipse 插件围绕国际化、虚拟环境与交互体验持续打磨,RuyiSDK VSCode Extension 0.1.4 和 RuyiSDK Eclipse Plugins 0.1.4 已发布 Beta 版本,正在测试中,预计很快与大家见面(欢迎喜欢尝鲜的小伙伴试用并反馈问题)。

于此同时,基础 C 库、GCC、LLVM、V8、OpenJDK、Go、QEMU 等组件则围绕 RISC‑V 向量扩展、P 扩展、RVA23 等方向持续向上游贡献补丁,扩展指令集与 CPU 型号支持,提升运行时与编译器生态的完整性和稳定性。

更多进展细节详见下方各板块,欢迎试用并在 GitHub 或社区中反馈建议,期待更多伙伴一起共建 RISC‑V 软件开发生态。

:fast_down_button: 包管理器和IDE插件工具都提供了多种下载或安装方式,您可以任意选择一种:

  • RuyiSDK 包管理器 0.49.0​:rocket:

    [!NOTE]
    RISC-V 用户可以使用 pip 安装 ruyi,但由于 ruyi 依赖的部分 Python
    库暂未在 PyPI 上提供 RISC-V 架构的预编译包,安装 ruyi 时 Python
    包管理器会尝试从源代码编译安装这些依赖,可能非常耗时或编译失败。

    如果您在 RISC-V 设备上安装 ruyi 时遇到问题,建议使用其他安装方法。对于 ruyi 的单文件二进制发行版,您必须将下载的文件重命名为一字不差的 ruyi 才能正常使用。

    请注意:从 RuyiSDK 0.48.0 开始,Ubuntu 22.04 LTS 与 Python 3.10 环境不再受到支持。相关用户,尤其是发行版打包者、CI 环境维护者与仍在使用旧版 Python 运行环境的用户,在升级前请提前确认兼容性影响并完成验证。

  • RuyiSDK VSCode Extension 0.1.3

  • RuyiSDK Eclipse Plugins 0.1.3

    [!NOTE]
    近期 Eclipse Marketplace 中的 RuyiSDK 插件查询与安装出现异常,详情可参考【RuyiSDK Eclipse 插件安装方式临时调整通知】(https://ruyisdk.cn/t/topic/2696),建议您通过 Eclipse 的 Install New Software… 方式安装插件。

如果您不清楚怎么选择,可以参考不同渠道和下载方式的说明:RuyiSDK 全渠道上架:包管理器登陆 PyPI,插件进驻 VS Code 和 Eclipse 市场

每一次版本的迭代,都离不开社区伙伴的反馈与贡献。下个版本计划于 6 月底发布,我们将持续给您带来更新!我们诚挚邀请您常来 RuyiSDK 技术社区 交流想法,共同成长。

基础开发环境

包管理器

RuyiSDK 0.49 将于 2026 年 5 月 26 日发布,对应的包管理器版本也为 0.49.0。本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • ruyi repo list 支持了机读模式(porcelain mode)。感谢 @sisungo 的贡献!
  • 新增了 ruyi admin check 命令,用于 RuyiSDK 第一方与第三方软件源维护者对软件源的质检。
  • 修复了 ruyi extract 向当前工作目录解压后报告解压到了 None 的小问题。
  • 修复了几处 ruyi 的首次运行提示、遥测、命令行自动补全三者之间的不良相互作用。
  • 不再将 ruyi version 调用视为 ruyi 的首次运行了,有助于避免特定场景下非预期的输出。
  • ruyi venv 新增了 --project-sysroot-from-rootfs 选项,用来从一个发行版 chroot/rootfs 目录直接将交叉编译所需的必要部分“投射”到新创建的虚拟环境,以避免复制整个目录从而遇到涉及 /etc/root 等文件(或文件夹)的权限问题。
  • 工程化迭代:
    • 更新了依赖版本。

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

  • 更新了以下软件到最新版本:
    • emulator/qemu-system-riscv-upstream: 更新到了 11.0.0-ruyi.20260421 版本,支持 RVA23。
    • emulator/qemu-user-riscv-upstream: 更新到了 11.0.0-ruyi.20260421 版本,支持 RVA23。

本次 RuyiSDK 服务端组件的更新主要包含了以下内容:

  • 例行安全更新与依赖更新。
  • 修复了数据库连接的稳定性。
  • 修复了 Elasticsearch 请求超时不会重试的问题。
  • 修复了依赖版本更新导致无法正常解析客户端遥测数据的问题。

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

RuyiSDK VSCode 插件

  • 新增 i18n
  • 新增中文翻译
  • 为虚拟环境的 sysroot 添加额外包选择框
  • 重新设计新闻页面,添加中英文翻译与动画
  • 修复一键编译识别 CMake 错误
  • 在 ruyisdk home 页面添加 board 文档入口

RuyiSDK Eclipse 插件

  • 包管理器模块:修复设备列表的排序。
  • ruyi: 添加必要的环境变量。
  • 虚拟环境:支持在“项目”视图中右键项目新建或应用虚拟环境。
  • 虚拟环境:在创建时让用户选择已打开的项目而不是输入路径,减少迷惑。
  • 虚拟环境:在列表中显示项目名称和虚拟环境的相对路径。
  • 项目:发布 v0.1.4。

版本测试及遗留问题

RuyiSDK 0.49.0 版本已通过发版测试。该版本测试是基于 0.49.0-beta.20260519 测试版本开展的,预期 0.49.0 版本将基于 0.49.0-beta.20260519 版本代码发版。

RuyiSDK VSCode 插件 0.1.4-beta 和 Eclipse 插件 0.1.4-beta 存在严重缺陷,将完成bug修复后再发布。

基础组件

基础C库

  • GLIBC:
    • 移植了 cbrtf、cosf、coshf 接口到现有的 glibc libmvec 框架,在测试范围内最大误差相对于 mpfr 均小于等于 1 ULP。
  • newlib:
  • MUSL:
    • 实现了 strcasecmp、strncasecmp、strcspn、strncmp、strspn 接口的 RVV 优化。

GCC

  • 更新GCC版本至gcc16.1, 同步了回归测试中发现的错误,更新了白名单。
  • 更新了P扩展binutils支持,继续更新intrinsic支持中。

LLVM

V8

本期提交并合入的patch:

  1. [riscv][headers] roots-inl.h should not include objects-inl.h
    [RISC-V][头文件] 修复 roots-inl.h 不应包含 objects-inl.h 的问题(https://chromium-review.googlesource.com/c/7819506)
  2. [riscv][turboshaft][wasm] Decouple SIMD from WebAssembly
    [RISC-V][Turboshaft][WASM] 将 SIMD 模块与 WebAssembly 解耦(https://chromium-review.googlesource.com/c/7819100)
  3. [riscv][wasm-wide-arith] implement sub128 for Turboshaft
    [RISC-V][WASM宽算术] 在 Turboshaft 中实现 sub128 指令(https://chromium-review.googlesource.com/c/7830322)
  4. [riscv] Enable zba/zbb/zbs/zicond when enable rva23u64
    [RISC-V] 启用 rva23u64 时自动开启 zba/zbb/zbs/zicond 扩展(https://chromium-review.googlesource.com/c/7831421)
  5. [riscv] Delete zero_extend after fcvtmod_w_d in TruncateDoubleToInt32
    [RISC-V] 在 TruncateDoubleToInt32 中移除 fcvtmod_w_d 后的冗余零扩展操作(https://chromium-review.googlesource.com/c/7839765)
  6. [riscv][debugger] Fix a crash when debugging
    [RISC-V][调试器] 修复调试过程中出现的崩溃问题(https://chromium-review.googlesource.com/c/7846282)
  7. [riscv][wasm-wide-arith] Implement Add128/Sub128 for riscv64
    [RISC-V][WASM宽算术] 为 riscv64 实现 Add128/Sub128 指令(https://chromium-review.googlesource.com/c/7847572)
  8. [riscv] Detect RVC in cpu-riscv and rename SIMD flag to RVV
    [RISC-V] 在 cpu-riscv 中增加 RVC 检测,并将 SIMD 标识重命名为 RVV(https://chromium-review.googlesource.com/c/7834018)
  9. [riscv] Fix AtomicCompareExchange write barrier
    [RISC-V] 修复 AtomicCompareExchange 写屏障问题(https://chromium-review.googlesource.com/c/7858601)
  10. [riscv]Wide multiplication implementation in liftoff
    [RISC-V] 在 Liftoff 中实现宽乘法指令(https://chromium-review.googlesource.com/c/7862260)
  11. [riscv][wasm][fuzzer] Optimize CheckMaxSteps with platform-specific code
    [RISC-V][WASM][模糊测试] 使用平台专属代码优化 CheckMaxSteps(https://chromium-review.googlesource.com/c/7862178)
  12. [riscv]Lower LoadTrustedPointer in the code generators
    [RISC-V] 在代码生成器中实现 LoadTrustedPointer 指令下沉(https://chromium-review.googlesource.com/c/7866844)
  13. [riscv] Fix condition inversion in kArchLoadTrustedPointer
    [RISC-V] 修复 kArchLoadTrustedPointer 中的条件反转错误(https://chromium-review.googlesource.com/c/7870367)

OpenJDK

本期提交的JDK主线patch:

本期回合的JDK21u仓库patch:

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

Go

本期提交的Go主线CL:

本期合并的Go主线CL:

本期审阅并合入的CL:

模拟器QEMU

RuyiSDK QEMU新建开发分支develop(目前基于QEMU v11.0.0),未来开发工作将在该分支上进行。

本期添加了多款CPU Model的支持,包括THead C908/910/920,Spacemit X60,Sifive U74: