RuyiSDK 双周进展汇报 第 072 期 : IDE 插件 0.1.5 版本发布

RuyiSDK 双周进展汇报 第 072 期·2026 年 07 月 07 日

卷首语

各位 RuyiSDK 的开发者伙伴,大家好!过去两周,RuyiSDK 各核心组件持续稳步推进,本期有几项亮点值得关注。

运行时方面,V8 持续完善 ZVFH 半精度浮点扩展支持,为 Liftoff WebAssembly SIMD 开启 ZVFH 并实现 fp16 舍入运算指令;OpenJDK 的 JEP 401(值类与对象)移植再进一步,已完成 RISC-V 平台模板解释器模块支持,在纯解释模式下跑通相关测试用例,开始推进 C1 与 C2 JIT 模块适配。

工具链方面,GCC 完成 ruyisdk-gcc 16.1 与 binutils 2.46 的整合,支持所有 2026 年 6 月前已批准的 RISC-V 扩展及全面 RV Profiles;GLIBC 在玄铁 C908 平台完成 memset、memmove 初步调优;LLVM 提供 RISC-V msan 功能并合入多项 P 扩展 codegen 与 intrinsic 支持。

开发者工具方面,软件源更新 GNU 与 LLVM 工具链至 0.20260625.0 版本,新增 SpacemiT K3 Pico-ITX 设备支持;VSCode 与 Eclipse 插件新发布 0.1.5 版本。

更多进展详见正文,欢迎前往官网下载页面下载RuyiSDK试用并在 GitHub社区中反馈建议,期待更多伙伴一起共建 RISC‑V 软件开发生态。

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

  • RuyiSDK 包管理器 0.50.0

    [!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.5 :rocket:

  • RuyiSDK Eclipse Plugins 0.1.5 :rocket:

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

基础开发环境

包管理器

由于 RuyiSDK 发版周期调整,RuyiSDK 包管理器的 0.51.0 版本预期将在 7 月底正式发布。欢迎下载 RuyiSDK 包管理器当前最新版本 0.50.0 试用。

RuyiSDK 团队仍在常态化维护 RuyiSDK 软件源。如您已有 RuyiSDK 包管理器了,您可通过 ruyi update 获取近两周的更新:我们保证这些内容兼容 RuyiSDK 包管理器的近 3 个正式版本。

目前有以下内容正在开发中:

  • 迁移大部分 RuyiSDK 打包脚本到新的 ruyi admin build-package 打包工作流。

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

  • 更新软件包:
    • analyzer/dynamorio-riscv: DynamoRIO RISC-V 性能分析工具,11.91.20630 版本。
    • board-util/wlink: 社区独立实现的 WCH-Link 刷写与调试工具,0.1.2 版本。
    • source/opencv: OpenCV 上游源码,4.13.0 版本。感谢 Tanmay Gulhane 的贡献!
    • toolchain/gnu-ruyisdk: 由 RuyiSDK 团队维护、构建的 GNU 工具链,0.20260625.0 版本。在 GNU binutils 2.46、GCC 16.1.1、glibc 2.43 的基础上支持了所有 2026 年 6 月前已批准(ratified)的 RISC-V 扩展。
    • toolchain/llvm-ruyisdk: 由 RuyiSDK 团队维护、构建的 LLVM 工具链,0.20260625.0 版本。在 LLVM 22.1.8 的基础上支持了所有 2026 年 6 月前已批准(ratified)的 RISC-V 扩展,具体是新增了对 Svrsw60t59b 与 Ziccid 的支持。
  • 新增设备支持:
    • SpacemiT K3 Pico-ITX: 兼容各类 Bianbu 镜像。感谢 weilinfox 的贡献!
  • 完善了设备支持:
    • board-image/armbian-starfive-visionfive2-minimal: StarFive VisionFive2 的 Armbian。感谢 SmulllLu 的贡献!

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

RuyiSDK VSCode 插件

  • 更新 i18n 翻译
  • 抑制启动时 ruyi detect 信息
  • 支持新闻阅读本地已有缓存
  • 新增为虚拟环境的 sysroot 使用 projection
  • 新增软件源管理

RuyiSDK Eclipse 插件

  • 项目: 发布 0.1.5 。
  • venv: 支持新的 sysroot 配置方式。
  • venv: 根据是否包含 sysroot 筛选列出的工具链。
  • venv: 让用户在向导中始终检查虚拟环境文件夹的名称。
  • venv: 向项目右键菜单中添加删除 venv 的操作。
  • packages: 从树中移除多余的有关包状态的提示内容。

版本测试及遗留问题

基础组件

基础C库

  • GLIBC:
    • 实现了 strpbrk 和 strspn 的通用版本 RVV 优化。
    • 在阿里玄铁 C908 平台进一步调优了基于 RVV 和 xthead 标量访问扩展的 memcpy 平台特定优化,并完成了 memset 和 memmove 的初步调优。
  • newlib:

GCC

LLVM

本期提交 PR 如下:

  1. [RISCV][P-ext] Select signed widening add/sub accumulate to wadda/wsuba
    [RISCV][P-ext] Select signed widening add/sub accumulate to wadda/wsuba by sihuan · Pull Request #205475 · llvm/llvm-project · GitHub
    添加 wadda/wsuba 的 codegen 支持
    已合并
  2. [RISCV][P-ext] Add codegen for packed reduction sum
    https://github.com/llvm/llvm-project/pull/206004
    添加 packed reduction sum (predsum[u].*)的 codegen 支持
    已合并
  3. [RISCV][P-ext] Avoid redundant accumulator extend for reduction sum
    [RISCV][P-ext] Avoid redundant accumulator extend for reduction sum by sihuan · Pull Request #206430 · llvm/llvm-project · GitHub
    优化 reduction sum 生成的多余 sext.w/zext.w 指令
    已合并
  4. [Clang][RISCV] packed reduction sum intrinsics
    https://github.com/llvm/llvm-project/pull/206441
    添加 packed reduction sum 的 intrinsic 支持
    已合并
  5. [RISCV][P-ext] Support Packed Merge.
    https://github.com/llvm/llvm-project/pull/207110
    添加 Packed Merge 的 intrinsic 支持
    已合并
  6. [RISCV][P-ext] Use brev8 for bitreverse with Zbkb
    [RISCV][P-ext] Use brev8 for bitreverse with Zbkb by XChy · Pull Request #207338 · llvm/llvm-project · GitHub
    当存在 Zbkb 拓展时将 bitreverse 下降为 brev8 指令,完成 FIXME
    已合并
  7. [RISCV] Canonicalize the true operand of vselect to fold more vmerge.vvm instructions
    https://github.com/llvm/llvm-project/pull/206449
    将 vselect 的 true 操作数规范化,以便折叠更多的 vmerge.vvm 指令
    已合并
  8. [VectorCombine] Use TCK_CodeSize for size-optimized functions
    https://github.com/llvm/llvm-project/pull/202207
    改进 size-optimized functions 下 VectorCombine 的成本模型选择,使其使用 TCK_CodeSize
    已合并
  9. [VectorCombine] foldShuffleChainsToReduce - add FADD/FMUL handling
    https://github.com/llvm/llvm-project/pull/201302
    foldShuffleChainsToReduce 增加 FADD/FMUL 处理,提升向量归约链折叠能力
    已合并
  10. [CodeGen] Fix ShrinkWrap crash when FindIDom receives empty predecessor/successor list
    https://github.com/llvm/llvm-project/pull/198995
    修复 ShrinkWrap 在 FindIDom 收到空 predecessor/successor 列表时的崩溃问题
    已合并
  11. [LV][RISCV] Add crash test for wide pointer stride in convertToStridedAccesses
    https://github.com/llvm/llvm-project/pull/200985
    convertToStridedAccesses 中 wide pointer stride 场景补充 RISC-V 崩溃回归测试
    已合并
  12. [RISCV][P-ext] Support packed reverse intrinsics
    [RISCV][P-ext] Support packed reverse intrinsics by XChy · Pull Request #207574 · llvm/llvm-project · GitHub
    支持 packed reverse intrinsics
    正在 review
  13. [RISCV][P-ext] Improve codegen for packed reverse intrinsics
    [RISCV][P-ext] Improve codegen for packed reverse intrinsics by XChy · Pull Request #207575 · llvm/llvm-project · GitHub
    优化 packed reverse intrinsics codegen
    正在 review
  14. [RISCV][P-ext] Add codegen for packed absolute difference sum
    [RISCV][P-ext] Add codegen for packed absolute difference sum by sihuan · Pull Request #207314 · llvm/llvm-project · GitHub
    添加 packed absolute difference sum codegen 支持
    正在 review
  15. [RISCV][LLVM][Clang] Add experimental Zvvm config intrinsics
    https://github.com/llvm/llvm-project/pull/203774
    添加 Zvvm config 相关 intrinsics 支持
    正在 review,遇到和LLVM上游和RISC-V规范冲突问题,暂时需要等待规范更新

V8

本期提交patch如下:

  1. [riscv] sandbox: Replace CPT with TPT
    [RISC-V][沙箱] 将代码指针表(CPT)替换为可信指针表(TPT)(https://chromium-review.googlesource.com/c/7983344)
  2. [riscv] Add RISC-V ZVFH extension to CPU feature list
    [RISC-V] 将ZVFH向量半精度浮点扩展添加至CPU特性标识列表(https://chromium-review.googlesource.com/c/7980709)
  3. [riscv][maglev] Sign extend index register in DataView bounds check
    [RISC-V][Maglev] 在DataView边界校验逻辑中对索引寄存器执行符号扩展(https://chromium-review.googlesource.com/c/7980016)
  4. [Revert “[riscv][maglev] Sign extend index register in DataView bounds check”]
    [回退提交] 撤销上一条Maglev索引寄存器符号扩展修改(https://chromium-review.googlesource.com/c/7992036)
  5. [Reland [riscv][maglev] Sign extend index register in DataView bounds check]
    [重提提交] 重新合入Maglev索引寄存器符号扩展修复(https://chromium-review.googlesource.com/c/7992037)
  6. [riscv] Enable ZVFH support for Liftoff WebAssembly SIMD
    [RISC-V] 为Liftoff WebAssembly SIMD开启ZVFH向量半精度浮点扩展支持(https://chromium-review.googlesource.com/c/7980710)
  7. [riscv][wasm][jspi] Initialize suspend builtin return value
    [RISC-V][WASM][JSPI] 初始化线程挂起内置函数的返回值(https://chromium-review.googlesource.com/c/8017623)
  8. [riscv]Implement fp16 rounding operations for RISCV
    [RISC-V] 实现半精度浮点(fp16)舍入运算指令(https://chromium-review.googlesource.com/c/8017624)
  9. [riscv] Unify floating-point rounding ops to support fp16
    [RISC-V] 统一浮点舍入运算底层逻辑,新增fp16半精度浮点适配(https://chromium-review.googlesource.com/c/8028101)
  10. [riscv][compiler] Scheduler resource allocation table
    [RISC-V][编译器] 新增指令调度器资源分配表(https://chromium-review.googlesource.com/c/8037086)

OpenJDK

本期提交的JDK-25u主线patch:

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

Java重要新特性JEP 401: 值类与对象(Value Classes and Objects)的调研和移植工作进展:
已完成RISC-V平台模板解释器模块对JEP 401的支持,能够在纯解释模式下跑通JEP 401相关测试用例,成功通过兼容性测试。
目前已着手调试和实现RISC-V平台C1& C2 JIT模块对JEP 401的支持,优先解决兼容性问题,短期目标能够在解释模式下跑通JEP 401新增测试用例。
本期详细修改如下:

Go

QEMU模拟器

  • target/riscv/kvm: skip FP/Vector sync on KVM_PUT_RUNTIME_STATE 减少寄存器同步压力