Skip to main content

Newsletter RuyiSDK

Get the latest development progress every two weeks

第 053 期·2025 年 09 月 30 日

· 10 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

各位 RuyiSDK 的小伙伴们,大家好!欢迎阅读第 53 期《RuyiSDK 双周进展》!

我们如期带来了 RuyiSDK 包管理器 0.41.0 版本,为大家的国庆假期准备了一份特别的“技术礼物”!每一个版本的迭代,都离不开社区朋友们的支持与反馈,我们由衷地感谢大家。

值此国庆佳节来临之际,祝大家节日快乐,阖家幸福!如果您在假期里有了闲暇时光,不妨来 RuyiSDK 的世界里转一转,体验一下新版本。也欢迎大家随时来 RuyiSDK 技术社区 浏览下关于 RISC-V 领域的新动态。

下个版本计划在 10 月 21 日发布,敬请关注!

包管理器

RuyiSDK 0.41 对应的包管理器版本也为 0.41.0,已于今日发布。您可移步 GitHub ReleasesPyPIISCAS 镜像源下载体验。

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

如果您在 RISC-V 设备上安装 ruyi 时遇到问题,建议使用其他安装方法。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • ruyi update 在访问网络前后会打印提示信息了。
  • 如果执行 ruyi 命令时触发了软件源同步动作,会打印提示信息了。
  • ruyi news(不带子命令调用时)会提示当前未读新闻的信息了。
  • 当您在 bash 或 zsh 环境下首次执行单文件发行版的 ruyi 时,会提示配置 Shell 自动补全了。
  • RuyiSDK 设备安装器在询问 dd 命令的目标设备文件时,会检查其是否当前正被挂载,并拒绝您填入正被挂载的设备了。
  • 工程化迭代:
    • 为方便发行版打包工作,重新提供了兼容 Poetry 1.0.7 版本的 Python 项目元数据。
    • 为方便测试工作,现在会为 Debian、deepin、Ubuntu 三种发行版为每个 ruyi tag 自动化打包了。

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

  • 新增软件包:
    • source/jdk23u: OpenJDK 23 源码。
    • source/llvm: LLVM 源码。
    • source/llvm-plct: PLCT 维护的 LLVM 源码,带 RVP 扩展支持。
    • source/opencv: OpenCV 源码。
    • source/qemu: QEMU 源码。
    • source/qemu-plct: PLCT 维护的 QEMU 源码,带 RVP 扩展支持。
    • source/v8: V8 JavaScript 引擎。
  • 更新软件包:
    • toolchain/gnu-plct: PLCT 维护的 GNU 工具链,0.20250912.0 版本。
    • toolchain/llvm-plct: PLCT 维护的 LLVM 工具链,21.1.0 版本。
    • toolchain/llvm-upstream: 上游版本 LLVM 工具链,21.1.1 版本。
  • 完善了设备支持:
    • board-image/freebsd-riscv64-mini-live: 移除无法使用的旧版本,更新了新版本。
    • board-image/openbsd-riscv64-live: 移除无法使用的旧版本,更新了新版本。
    • board-image/ubuntu-server-riscv64-sifive-unmatched: 移除无法使用的旧版本,更新了新版本。
    • ruyi 虚拟环境新增了 manual profile 支持。该 profile 不会代您配置任何编译参数,适用于需要自行控制 -march-mabi-mcpu 等参数的使用场景。
  • 工程化迭代:
    • 移除了 ruyi 0.33.0 及更早版本的支持,以降低维护负担。
    • 系统性地为第三方软件源配置了相应的镜像列表。

感谢 @weilinfox 的贡献!

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

IDE

VSCode 插件: 新增 VS Code 插件对 Ruyi 的检测与安装支持。主要包括:

  • 新增 ruyi.detect 命令:启动自动检测,缺失时提示安装或打开指南
  • 新增 ruyi.install 命令:通过 PyPI 安装/升级 Ruyi,仅支持 Linux
  • 在 extension.ts 注册命令并触发检测
  • feat: add Ruyi detect & install commands

Eclipse 插件: 本期无新增特性,欢迎对Eclipse插件开发有兴趣的小伙伴加入开发团队,详情参考 J159 RuyiSDK IDE 开发实习生 ,期待您的加入。

GCC

修复了Binutils中p扩展支持的一些编码问题,更新了GCC回归测试中发现的部分错误。 提交了Zvabd的binutils支持,正在处理Binutils寄存器对使用编号不正确的问题。

LLVM

upstream:

xtheadvector:

V8

PLCT提交并合入的patch:

  1. [riscv] Fix SimdCrossCompilerDeterminismTest.TestTernOp failed.
    [RISC-V] 修复 SimdCrossCompilerDeterminismTest.TestTernOp 测试失败问题
    chromium-review.googlesource.com/c/6965545
  2. [riscv] Add Extension Zimop
    [RISC-V] 添加 Zimop 扩展
    chromium-review.googlesource.com/c/6955146
  3. [riscv] Fix build for v8_enable_external_code_space
    [RISC-V] 修复 v8_enable_external_code_space 的构建问题
    chromium-review.googlesource.com/c/6934203
  4. [riscv][wasmfx][jspi] Allow JSPI to suspend multiple stacks at once
    [RISC-V][wasmfx][JSPI] 允许 JSPI 同时挂起多个栈
    chromium-review.googlesource.com/c/6937846
  5. [riscv] Fix custom-descriptors-inlining.js failed
    [RISC-V] 修复 custom-descriptors-inlining.js 执行失败问题
    chromium-review.googlesource.com/c/6928701

审阅并合入的patch:

  1. [riscv] Only compile vlen intrinsic for RVV targets
    [RISC-V] 仅为 RVV 目标编译 vlen 内在函数
    chromium-review.googlesource.com/c/6959231
  2. [riscv] Fix IsNodeUnsigned bug
    [RISC-V] 修复 IsNodeUnsigned 函数的漏洞
    chromium-review.googlesource.com/c/6958729
  3. [riscv] Support architectures with 256-bit vector units
    [RISC-V] 支持带有 256 位向量单元的架构
    chromium-review.googlesource.com/c/6948289
  4. [riscv] Replace more auipc+jalr into addi+jal
    [RISC-V] 将更多 auipc+jalr 指令组合替换为 addi+jal
    chromium-review.googlesource.com/c/6874383
  5. [riscv] Refactor WASM Simd128 operations
    [RISC-V] 重构 WebAssembly 的 Simd128 操作
    chromium-review.googlesource.com/c/6948067
  6. [riscv] Add more checks in IsNodeUnsigned to eliminate slli instructions
    [RISC-V] 在 IsNodeUnsigned 中添加更多检查以消除 slli 指令
    chromium-review.googlesource.com/c/6933681
  7. [riscv] Fix compilation error and disassembling error when enabling the RISC-V C extension
    [RISC-V] 修复启用 RISC-V C 扩展时的编译错误和反汇编错误
    chromium-review.googlesource.com/c/6934163

操作系统支持矩阵

版本测试及遗留问题

RuyiSDK 0.41.0 版本已通过发版测试。该 版本测试是基于 0.41.0-beta.20250922 和 0.41.0-beta.20250926 两个测试版本开展的,预期 0.41.0 版本将基于 0.41.0-beta.20250926 版本代码发版。下面的表格记录了 0.41.0-beta.20250922 版本缺陷,该缺陷已在 0.41.0-beta.20250926 版本修复:

缺陷问题等级判定依据
[Feature Request] Provide information prompts when automatically running ruyi update #352修复在 0.41.0-beta-20250926 修复

同时可以参考下面的表格来跟踪历史遗留问题的修复进度:

缺陷问题等级备注
关于 fastboot 的文档提示 #95严重建立新的 issue 进行更新,且已拟订相关修复版本号为 0.42.0 版本
关于使用 pip 安装 ruyi 的文档提示 #96严重已有文档整体更新计划,已有具体时间节点和时间表安排
有一部分包无法下载 #37一般已有相关 issue 回复且已经在修复中
BananaPi BPI-F3 eMMC storage variant did not refer to any combo #101一般软件自带修复功能,且已有相关 issue 回复

这些遗留问题并不会影响 Ruyi 包管理器核心功能的实现,但可能影响用户体验,故建议在下载和更新您的 Ruyi 包管理器版本前了 解。其中 packages-index 相关问题将主要影响 ruyi device provision 功能,请不要使用 BananaPi BPI-F3 开发板的 BananaPi BPI-F3 (eMMC storage) 镜像和 Pine64 Star64 开发板的 Armbian for Pine64 Star64 镜像,相关缺陷修 复后可以通过 ruyi update 解决。

第 052 期·2025 年 09 月 11 日

· 7 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

各位 RuyiSDK 的小伙伴们,大家好!

欢迎阅读第 52 期《RuyiSDK 双周进展》!

本期我们重点优化了发版测试流程,进一步加强了版本发布前的兼容性与文档测试。经过 2 天集中修复,RuyiSDK 0.40 现已正式发布。该版本存在一些已知问题(详见文档末尾),但不影响核心功能。请您在下载和使用前仔细阅读相关说明。

我们计划在 9 月 30 日发布 RuyiSDK 0.41,为您的假期折腾奉上额外一周的更新。我们将持续为大家带来更多新特性与体验优化,敬请期待~也欢迎大家随时来 RuyiSDK 技术社区 找我们交流想法、提出建议!

此外,别忘了我们的 RuyiSDK Office Hours 每双周四都会定期举办,欢迎一起来聊聊技术、聊聊进展~

包管理器

RuyiSDK 0.40 对应的包管理器版本也为 0.40.0,已于 9 月 9 日发布。您可移步 GitHub ReleasesPyPIISCAS 镜像源下载体验。

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

如果您在 RISC-V 设备上安装 ruyi 时遇到问题,建议使用其他安装方法。

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

  • 完善了设备支持:
    • Sipeed LicheeRV Nano 的 fishwaldo 构建的 Debian:新增了历史版本 1.2.0 与 1.3.0。
    • Milk-V Pioneer 的 RevyOS:更新了 0.20250901.0 版本。
  • 工程化迭代:
    • 修复了 board-image/debian-desktop-sdk-milkv-mars-cm-sd 的数据结构,并以 CI 形式确保了类似问题不会再发生。

感谢 @weilinfox 的贡献!

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

IDE

Eclipse 插件本期无新增特性,欢迎对Eclipse插件开发有兴趣的小伙伴加入开发团队,详情参考 J159 RuyiSDK IDE 开发实习生 ,期待您的加入。

GCC

为官方工具链添加了'--with-profiles'选项用来指定构建时默认使能的RISC-V Profiles, 将GCC上游中Profiles定义整理至'riscv-profiles.def'中, 更新了RVP的Intrinsics文档,GCC同步实现中。

V8

PLCT提交并合入的patch:

  1. [riscv] Optimize Overflow check when right operand is Immediate
    [RISC-V] 当右操作数为立即数时优化溢出检查
    chromium-review.googlesource.com/c/6732519
  2. [riscv][sandbox] Bottleneck kUnknownIndirectPointerTag
    [RISC-V][sandbox] 处理 kUnknownIndirectPointerTag的性能瓶颈
    chromium-review.googlesource.com/c/6907272
  3. [riscv][wasm, codegen] Add skipped write barrier verification to Liftoff
    [RISC-V][WebAssembly,codegen] 向 Liftoff 添加跳过的写屏障验证
    chromium-review.googlesource.com/c/6914315
  4. [riscv] Revert "Reland "Reland "[turboshaft] Direct call for known functions"""
    [RISC-V] 撤销 "Reland"Reland "[turboshaft] Direct call for known functions"""
    chromium-review.googlesource.com/c/6907270
  5. [riscv][wasmfx] Implement the resume instruction
    [RISC-V][wasmfx] 实现 resume 指令
    chromium-review.googlesource.com/c/6908524

审阅并合入的patch:

  1. [riscv] Remove branch instrution in AssembleReturn
    [RISC-V] 移除 AssembleReturn 中的分支指令
    chromium-review.googlesource.com/c/6873604
  2. [risc-v] Use bexti for kRiscvCvtDS
    [RISC-V] 对 kRiscvCvtDS 使用 bexti 指令
    chromium-review.googlesource.com/c/6873191
  3. [riscv] Hoisting sign extension for switch table
    [RISC-V] 为切换表提升符号扩展操作
    chromium-review.googlesource.com/c/6873189
  4. [risc-v] Remove sll32 instruction if r2 is less than 0x7FFFFFFF
    [RISC-V] 若 r2 小于 0x7FFFFFFF 则移除 sll32 指令
    chromium-review.googlesource.com/c/6873603
  5. [riscv] Use zextw in DecompressTagged to reduce the number of instructions
    [RISC-V] 在 DecompressTagged 中使用 zextw 以减少指令数量
    chromium-review.googlesource.com/c/6873192
  6. [riscv] Handle kRiscvPeek with simd128 output
    [RISC-V] 处理带有 simd128 输出的 kRiscvPeek
    chromium-review.googlesource.com/c/6879783
  7. [risc-v] Only save clobbered registers when calling RecordWrite
    [RISC-V] 调用 RecordWrite 时仅保存被破坏的寄存器
    chromium-review.googlesource.com/c/6873602
  8. [riscv] Don't round to zero when doing an i32x4-mul operation
    [RISC-V] 执行 i32x4-mul 操作时不向零舍入
    chromium-review.googlesource.com/c/6916101
  9. [riscv] Use a function to save and restore Wasm params
    [RISC-V] 使用函数来保存和恢复 WebAssembly 参数
    chromium-review.googlesource.com/c/6842159
  10. [riscv][compiler] Support skipped skipped write barrier verification in Turbofan
    [RISC-V][compiler] 在 Turbofan 中支持跳过的写屏障验证
    chromium-review.googlesource.com/c/6917460
  11. [riscv][maglev] Reset last young allocation in stack checks
    [RISC-V][Maglev] 在栈检查中重置最后的年轻代分配
    chromium-review.googlesource.com/c/6904549
  12. [riscv] Use shxadd instruction to calculate address for load & store
    [RISC-V] 使用 shxadd 指令计算加载和存储的地址
    chromium-review.googlesource.com/c/6873190

操作系统支持矩阵

版本测试及遗留问题

RuyiSDK 0.40 已通过发版测试。该 RuyiSDK 版本存在部分不影响核心功能的已知问题,请您在下载使用前务必了解相关情况,审慎评估,以避免可能的不良体验或损失。

缺陷问题等级备注
文档代码块格式不统一 #93修复见 issue 下方更新
链接中的 RuyiSDK 大小写问题 #94修复见 issue 下方更新
关于 fastboot 的文档提示 #95严重建立新的 issue 进行更新,且已拟订相关修复版本号为 0.42.0 版本
关于使用 pip 安装 ruyi 的文档提示 #96严重已有文档整体更新计划,已有具体时间节点和时间表安排
有一部分包无法下载 #37一般已有相关 issue 回复且已经在修复中
BananaPi BPI-F3 eMMC storage variant did not refer to any combo #101一般软件自带修复功能,且已有相关 issue 回复

第 051 期·2025 年 08 月 26 日

· 6 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

各位RuyiSDK的小伙伴们,大家好呀!

来查收RuyiSDK第51期双周进展啦!首先要小小声跟大家说一声,这期咱们暂时没有新版本发布~主要是因为团队小伙伴最近全跑去深圳赶展啦(Elexcon 2025 深圳国际电子展暨嵌入式展,8.26-8.28)!展会现场我们团队小伙伴都积极与嵌入式小伙伴们面基聊技术、换想法💡,相信会带来一些新的感受和灵感~

这期虽然没有新包可搓,但动态还是要追的嘛!近期除了活动的筹备,同时也在偷偷升级我们的发版质检流程🧪,希望以后给大家更稳健的体验。更多板块的进展已经在下方汇总啦,欢迎大家关注。

下一期(9月9日)咱们很快见!也随时欢迎来 RuyiSDK 技术社区 找我们唠嗑、提点子,等你哦!

包管理器

由于 RuyiSDK 团队正在对当前的 CI 流程深度整合以确保所有发布内容都能通过严格的测试,且主要成员正在 2025 深圳国际电子展暨嵌入式展(elexcon2025)现场,RuyiSDK 包管理器的 0.40.0 版本将在下一期正式发布。您仍可通过以下渠道下载 RuyiSDK 包管理器的 0.39.0 版本:

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

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

  • 完善了设备支持:
    • Sipeed LicheePi 4A 的 RevyOS:新增 0.20250729.0 版本。
    • Sipeed LicheePi Console 4A 的 RevyOS:新增 20250720 与 20250729 版本。
    • Milk-V Meles 的 RevyOS:新增 1.20250729.0 版本。
    • SpacemiT K1 的 Bianbu Desktop 与 Bianbu Minimal,SD 卡版本:新增 v2.0.0 到 v3.0.1 之间的所有版本。
    • Milk-V Mars CM 的 Debian Desktop SDK:新增历史版本 1.0.5+3.6.1
  • 工程化迭代:
    • 修复了 board-image/bianbu-bpi-f3board-image/bianbu-desktop-spacemit-k1-sd 的文件校验和。
    • 更新了 board-image/bianbu-{desktop,minimal}-spacemit-k1-sd 两包的上游版本元数据。

感谢 @weilinfox 的贡献!

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

IDE

Eclipse 插件本期无进展,欢迎对Eclipse插件开发有兴趣的小伙伴加入开发团队,详情参考 J159 RuyiSDK IDE 开发实习生 ,期待您的加入。

GCC

更新了RUYISDK-Toolchain仓库的gcc版本编号,生成了新的release包文件。 向上游提交了Zvabd扩展的支持,正在完善P扩展的gcc实现部分,在Smmtt扩展工作组讨论了特权寄存器的地址问题。

V8

PLCT提交并合入的代码:

  1. [riscv] Optimize StackPointerGreaterThanOp Compare and Branch
    [RISC-V] 优化 StackPointerGreaterThanOp 的比较与分支操作
    chromium-review.googlesource.com/c/6862026
  2. [riscv] Optimize addi and signextend into addiw
    [RISC-V] 将 addi(立即数加法)与 signextend(符号扩展)优化合并为 addiw 指令
    chromium-review.googlesource.com/c/6861481
  3. [highway] fix compilation on riscv64
    [Highway 库] 修复在 riscv64 架构上的编译问题
    chromium-review.googlesource.com/c/6841716
  4. [riscv][turboshaft] Direct call for known functions
    [RISC-V][Turboshaft 编译器优化模块] 对已知函数采用直接调用方式
    chromium-review.googlesource.com/c/6838685

PLCT 审核并合入的代码:

  1. [risc-v] Only save clobbered registers when calling RecordWrite
    [RISC-V] 调用 RecordWrite 时仅保存被破坏的寄存器
    chromium-review.googlesource.com/c/6873602
  2. [riscv] Lower maximal code range size on riscv32 (2GB -> 256MB)
    [RISC-V] 降低 riscv32 上的最大代码范围大小(从 2GB 调整为 256MB)
    chromium-review.googlesource.com/c/6867912
  3. [riscv][liftoff] Block trampoline pool in OOL stack frame setup
    [RISC-V][Liftoff] 在 OOL 栈帧设置中阻塞蹦床池
    chromium-review.googlesource.com/c/6859316
  4. [riscv][wasm] Reverse order of spilled parameters in frame setup
    [RISC-V][WebAssembly] 在帧设置中反转溢出参数的顺序
    chromium-review.googlesource.com/c/6839045
  5. [riscv] Allow trampoline blocking to generate code in jump table tests
    [RISC-V] 允许蹦床阻塞在跳转表测试中生成代码
    chromium-review.googlesource.com/c/6842298
  6. [riscv] Fix alignment of jump table entries in assembler tests
    [RISC-V] 修复汇编测试中跳转表条目的对齐问题
    chromium-review.googlesource.com/c/6813493

操作系统支持矩阵

第 050 期·2025 年 08 月 12 日

· 9 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

欢迎阅读第50期《RuyiSDK双周进展》!

本期,值得欣喜的是:ruyi 现已在 PyPI 同步发布!您只需在 Python 环境中执行 pip install ruyi 命令,即可轻松安装 RuyiSDK 包管理器,开启您的 RISC-V 开发之旅。

如果您在使用过程中遇到任何问题,还可以通过以下方式获得支持:

根据当前规划,下一个开发版本将于 8月26日 发布,我们将持续优化功能体验,为大家带来更多惊喜。期待与您共同见证 RuyiSDK 的成长!

包管理器

RuyiSDK 0.39 对应的包管理器版本也为 0.39.0,已于今日发布。您可移步 GitHub ReleasesPyPIISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • ruyi 现已在 PyPI 同步发布。只要您有 Python 环境,您就可以使用 pip install ruyi 或类似的命令安装 RuyiSDK 包管理器了。
  • 如用户自定义了软件源 Git 仓库的存放路径,当该仓库当前分支的远端 URL 与 ruyi 的相应配置项不同时,ruyi update 会报错退出了,而不再将用户配置覆盖。
  • 继续打磨 Shell 自动补全:
    • 优化了常规(非自动补全)模式下的 ruyi 启动延迟;
    • 如本地没有同步过软件源,不会在补全命令行时尝试同步了。
  • 工程化迭代:
    • 现在会给每个 PR 进行端到端的集成测试了,以确保常规命令行使用方式不被破坏。
    • 将 Shell 自动补全脚本整合进了 ruyi 源码发行:位于 contrib/shell-completions 目录。发行版打包人员可进行集成了。
    • 为给 Ubuntu 22.04 LTS 打包做好准备:支持以 pytest 6.2.5 运行测试套件了。
    • 在构建 ruyi 的单文件发行版时,为 RISC-V 架构使用了预制的 cffipygit2,以节省构建时间。
    • 简化了 ruyi 的发版工作:支持了自助打 tag 并触发发版流程。

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

  • 更新软件包:
    • source/milkv-duo-examples: Milk-V Duo 示例代码,20241219 版本。
  • 完善了设备支持:
    • Milk-V Meles(4/8/16G 变体)的 RevyOS U-Boot:补齐了上游版本。
    • Milk-V Pioneer、Milk-V Meles 的 RevyOS:补齐缺失版本
    • Sipeed LicheeRV Nano 的 buildroot SDK:补齐了上游版本。
  • 工程化迭代:
    • 自动格式化了所有包版本描述,并以 CI 形式确保了新增的包遵循统一格式。

感谢 @Cyl18@weilinfox 的贡献!

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

IDE

为了方便开发协作,RuyiSDK IDE 插件项目(ruyisdk-eclipse-plugins) 近期进行了一些代码规范化改进,制定了Java Code 规范指南,明确代码样式要求,并对部分代码进行了格式规范化调整。

此外,欢迎对Eclipse插件开发有兴趣的小伙伴加入开发团队,详情参考 J159 RuyiSDK IDE 开发实习生 ,期待您的加入。

GCC

根据社区review建议,修复了部分指令的立即数编码问题,已同步至ruyisdk-binutils仓库

正在实现p扩展的gcc支持,预计本月底完成初步实现

LLVM

根据社区的建议,在 XTHeadVector 拓展开启时一同开启 zfh 拓展,解决 intrinsic 遇到 float16 无法提升的问题。

V8

PLCT 提交并合入的代码:

  1. Add Kasper Lund to RISC-V owners list
    将 RIVOS 贡献者(V8 创始阶段参与者之一)Kapser 加入 V8 RISCV 后端维护者列表
    chromium-review.googlesource.com/c/6826483

  2. [riscv] Optimize SignExtend Opcode emit
    优化 SignExtend 操作码的生成
    chromium-review.googlesource.com/c/6774564

  3. [risc-v] Use sign-extension (via sext.w) to replace slliw when the shift amount is zero
    当移位量为零时(即 slliw rd, rs, 0),使用符号扩展(通过 sext.w)替代 slliw,使代码更规范
    chromium-review.googlesource.com/c/6726075

  4. [riscv][wasm][growable-stacks] Record missing safepoint entry
    实现 wasm 可增长栈功能,记录缺失的安全点入口
    chromium-review.googlesource.com/c/6808523

  5. [riscv][wasm][jspi][sandbox] Avoid writes to StackMemory from sandboxed code
    避免沙箱代码对栈内存进行写入
    chromium-review.googlesource.com/c/6808522

  6. [riscv] Optimize Change [Truncate] and Change [SignExtend] IR emit.
    优化 Change [Truncate] 和 Change [SignExtend] 的中间表示(IR)生成
    chromium-review.googlesource.com/c/6795158

  7. [riscv] Optimize emit of sext.w when CompareZero/WordShl/Word32Shr/Word32Sar
    在 CompareZero/WordShl/Word32Shr/Word32Sar 时优化 sext.w 的生成
    chromium-review.googlesource.com/c/6780050

PLCT 审核并合入的代码:

  1. [riscv][maglev] Fix compilation
    修复 maglev 新特性引起的编译问题
    chromium-review.googlesource.com/c/6831542

  2. [riscv] Handle indirect pointer slots when recording writes
    记录写入操作时处理间接指针槽
    chromium-review.googlesource.com/c/6818368

  3. [riscv] Clean up MacroAssembler::StoreReturnAddressAndCall
    整理 MacroAssembler::StoreReturnAddressAndCall 方法
    chromium-review.googlesource.com/c/6818339

  4. [riscv] Restore status registers after tests
    在测试后恢复状态寄存器
    chromium-review.googlesource.com/c/6827265

  5. [riscv] Fail in the simulator if the vector unit wasn't initialized
    若向量单元未初始化则使模拟器运行失败
    chromium-review.googlesource.com/c/6826963

  6. [riscv] Fix load-transforms to setup the vector unit first
    修复加载转换以先设置向量单元
    chromium-review.googlesource.com/c/6826962

  7. [riscv] Fix duplicated comment
    修复重复的注释
    chromium-review.googlesource.com/c/6827141

  8. [riscv] Implement register constraints for more operations
    为更多操作实现寄存器约束
    chromium-review.googlesource.com/c/6760111

  9. [riscv] Don't use kSimd128RegZero in the code-generator
    在代码生成器中不使用 kSimd128RegZero,避免当 kSimd128RegZero 未正确初始化时产生错误
    chromium-review.googlesource.com/c/6760119

  10. [riscv] Avoid unnecessary moves
    避免不必要的 move 操作
    chromium-review.googlesource.com/c/6760118

  11. [riscv] Use register constraints for I8x16Shuffle
    为 I8x16Shuffle 使用寄存器约束
    chromium-review.googlesource.com/c/6760117

  12. [riscv] Avoid temp and unique registers for ExtAddPairwise
    为 ExtAddPairwise 避免使用临时和唯一寄存器
    chromium-review.googlesource.com/c/6760116

  13. [riscv] Remove register uniqueness constraints for some instructions
    移除部分指令的寄存器唯一性约束
    chromium-review.googlesource.com/c/6760115

  14. [riscv] Avoid unique register in VisitRRIR
    在 VisitRRIR 中避免使用唯一寄存器
    chromium-review.googlesource.com/c/6760114

  15. [riscv] Add register constraints
    添加寄存器约束,简化 codegen 逻辑
    chromium-review.googlesource.com/c/6760110

  16. [riscv] Move forward declarations of Set Hi20/Lo12 Offset
    移动 Set Hi20/Lo12 Offset 的前置声明
    chromium-review.googlesource.com/c/6760071

  17. [riscv] Implement register constraints for I32x4DotI8x16I7x16AddS
    为 I32x4DotI8x16I7x16AddS 实现寄存器约束
    chromium-review.googlesource.com/c/6760113

  18. [riscv] Implement more register constraints
    实现更多 opcode 代码生成的寄存器约束
    chromium-review.googlesource.com/c/6760112

操作系统支持矩阵

第 049 期·2025 年 07 月 22 日

· 7 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

近期,RISC-V 生态发展迎来了一系列重要活动——"RISC-V 中国峰会"、"RISC-V校园行·香港城市大学站"等活动相继举办。团队小伙伴积极参与其中,不仅展示了我们的成果,也与行业同仁进行了深入交流,共同探讨技术发展趋势。由于这段时间的精力部分投入在这些行业活动中,本期更新内容相对精简,还请大家理解。后续我们将持续带来更多精彩内容,敬请关注!

我们特别欣喜地发现,RuyiSDK 论坛 正变得越来越活跃,我们也收到了一些开发者在这里分享使用心得、提出宝贵建议。大家的每一条反馈我们都在认真对待,并已着手进行针对性优化——正是这些真诚的声音推动着我们不断进步,在此向所有支持者致以衷心感谢!也欢迎更多小伙伴加入,一起打造更好的 RuyiSDK。

如果您在使用过程中遇到任何问题,还可以通过以下方式获得支持:

根据当前规划,下一个开发版本将于 8月12日 发布,我们将持续优化功能体验,为大家带来更多惊喜。期待与您共同见证 RuyiSDK 的成长!

包管理器

RuyiSDK 0.38 对应的包管理器版本也为 0.38.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 为 RuyiSDK 设备安装器新增了 ruyi device flash 这一别名,以便理解记忆。感谢 RuyiSDK 社区论坛的 @Sequel 同学反馈!
  • ruyi 需要调用某些外部命令但无法找到时,如果当前终端可以交互,会等待您安装以便重试了。您可以在另一个终端下安装所需命令,再回到 ruyi 所在终端按回车键继续。您也可以按 Ctrl+C 退出。感谢 RuyiSDK 社区论坛的 @Sequel 同学反馈!

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

  • 完善了设备支持:
    • 新增了 Sipeed LicheePi 4A 的 RevyOS 的历史版本。感谢 @Cyl18 的贡献!
    • 新增了 Milk-V Duo 的 Arduino 的 1.1.2 与 1.1.4 两个版本。感谢 @Cyl18 的贡献!

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

IDE

RuyiSDK IDE 进展:

  • 新增了自定义统一日志和Console管理功能:
    • 统一日志管理:集成控制台输出、文件日志和Eclipse日志系统
    • 多级日志输出:支持DEBUG/INFO/WARN/ERROR分级输出
    • 日志存储:日志文件存储路径兼容XDG规范,默认存储于标准目录(~/.local/state/ruyisdkide/logs)
  • 代码规范化管理:对代码格式进行规范化调整,进行中

GCC

  • 支持了P扩展 v015 版本与B扩展、K扩展的重复部分指令编码,添加了相关测试用例,已同步至RUYISDK仓库与社区
  • 初步完成了P扩展 v015 版本的 intrinsic 草案,正在进行GCC开发支持
  • Rebase了P扩展 v0911 版本的GCC支持到 GCC15

V8

操作系统支持矩阵

第 048 期·2025 年 07 月 08 日

· 7 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

欢迎阅读第48期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。

为了让RISC-V开发者更方便的交流,https://ruyisdk.cn 新网站已经上线了!目前有PLCT实验室超过百名RISC-V开发人员和活跃爱好者帮助回答问题,欢迎注册并参与讨论分享。

如果您在 RuyiSDK 的使用中遇到问题,可以在 RuyiSDK讨论区 反馈,或者参加 7月17日(周四)下午 15:00 开展的 “第九次 RuyiSDK Office Hours” 获得在线答疑支持服务。

下个开发版本计划7月22日发布,我们将持续带来更多改进。

包管理器

RuyiSDK 0.37 对应的包管理器版本也为 0.37.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 新增了基本的命令行自动补全支持,初期支持 Bash 与 Zsh 两种 shells。感谢 @wychlw 的贡献!

    要使用命令行自动补全功能,请在您的 shell profile(如 .bashrc.zshrc)的合适位置引入 ruyi 的自动补全脚本:

    sh
    # zsh 用户请将 bash 字样替换为 zsh
    eval "$(ruyi --output-completion-script=bash)"
    

    目前支持 ruyi 子命令与 ruyi install 等命令的软件包参数的自动补全。

  • 使用 ruyi self clean 清除本地数据时,如果新闻已读状态文件不存在,不会报错崩溃了。感谢 @weilinfox 报告问题!

  • 拉取远端 Git 仓库失败时,不会将 Python 错误信息暴露给用户了。

  • 只有在文件的下载 URL 协议为 FTP 时,才会为 curlwget 启用 FTP 被动模式了。这修复了部分 RuyiSDK 用户由于cURL 8.14.1 的 bug 而无法下载任何文件的问题。感谢 @weilinfoxruyi 项目报告问题!

  • 重构了 ruyi 的捆绑资源处理方式,将其从虚拟环境机制中剥离了,以便后续捆绑其他非虚拟环境相关资源,如命令行自动补全脚本、多语言字符串文件等等。同时,也以 CI 方式确保了 ruyi 所含的压缩资源总与原始文件保持同步。

  • 新增了对于 OpenCloudOS 9.4、openEuler 24.03 LTS SP2、openEuler 25.03、openKylin 2.0 的支持情况。ruyi 的 Python 依赖包在这些发行版上均有少量缺失,但其余依赖包的版本满足要求,我们预计将在 2025 年 10 月完成对它们的支持。

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

  • 实体数据库更新:
    • 新增了 SpacemiT X60 微架构。
    • 新增了 SpacemiT K1 处理器型号。
    • 新增了 BananaPi BPI-F3 的 eMMC 与 SD 存储两种设备变体。
  • 完善了设备支持:
    • 更新了 Milk-V Duo(64 & 256M RAM)、Duo S(SD 存储)的 Buildroot SDK。感谢 @Cyl18 的贡献!
    • 支持了 BananaPi BPI-F3 的 SD 存储型号,有 SpacemiT 提供的 Bianbu Desktop 与 Bianbu Minimal 两种系统供使用。感谢 @wychlw 的贡献!

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

IDE

  • 实验性新增:添加新的插件projectcreator来为特定的开发板导入示例演示,并自动配置工具链和定制编译配置。提供了新建项目向导,预置开发板项目模板和自定义构建器用于一键在ruyi虚拟环境内构建项目。

GCC

LLVM

V8

操作系统支持矩阵

RuyiSDK GNU 工具链测试(GCC 16):https://github.com/QA-Team-lo/ruyisdk-gnu-tests

第 047 期·2025 年 06 月 24 日

· 6 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

欢迎阅读第47期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在7月3日),也可以在 RuyiSDK讨论区 反馈。

下个开发版本计划7月8日发布,我们将持续带来更多改进。

包管理器

RuyiSDK 0.36 对应的包管理器版本也为 0.36.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 每次 ruyi update 完成后,会报告哪些已安装的软件包有更新版本可供安装了。考虑到具体项目对工具链版本的需求可能较为精确,您可自行 ruyi install 更新的版本,并自行重做相应的虚拟环境。
  • 可以用 ruyi uninstall 卸载已安装的软件包了。另有更简短的别名 ruyi removeruyi rm 可用。
  • ruyi list 的输出中,可以看到软件包的安装文件是否完全下载了。
  • 在同时启用机读模式(porcelain mode)与调试输出(RUYI_DEBUG=y)时,最先输出的几条日志不会以错误格式输出了。
  • 优化了 ruyi 工具的启动速度,现在每次运行 ruyi 都能省下 200-300ms 时间(视机器性能而定),有助于后续实现低延迟的命令行补全特性。并以 CI 检查的方式确保了后续代码变更不会影响本次优化效果。

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

  • 更新了 toolchain/gnu-plct:由 PLCT 维护并构建的 GNU RISC-V 工具链,包含 GNU binutils 2.45 的预览版、GCC 15.1.0 以及 glibc 2.40。
  • 更新了实体数据库中的 RISC-V 微架构定义,新增以下微架构:
    • 香山昆明湖
    • 玄铁 C908、C908V、C910V2、C920、C920V2
    • MIPS P8700
    • 8-宽 Tenstorrent Ascalon
  • 修正了玄铁 C910 的 RISC-V ISA 字符串为上游主线 GCC 接受的标准形式。

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

IDE

RuyiSDK IDE 插件版本 0.0.6 发布:https://github.com/ruyisdk/ruyisdk-eclipse-plugins/releases/tag/v0.0.6

  • 软件包资源:
    • 新增接入软件包资源管理器适配设备型号接口,支持显示Ruyi包管理器已集成的设备型号;
    • 界面优化,优化设备展示窗口尺寸;
    • 代码优化,修复存在安全漏洞的代码;
  • 定制 Welcome 界面:
    • 修复以插件方式运行时存在的 icon 等资源找不到的问题;

GCC

  • 更新了-mcpu的默认参数,使用generic替代具体的rocket cpu模型
  • 同步了-mtune的配置设置,将branch_cost更新为4,以便更好的适配Zicond扩展,生成对应的分支指令

LLVM

V8

操作系统支持矩阵

第 046 期·2025 年 06 月 10 日

· 6 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

欢迎阅读第46期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在6月19日),也可以在 RuyiSDK讨论区 反馈。

下个开发版本计划6月24日发布,我们将持续带来更多改进。

包管理器

RuyiSDK 0.35 对应的包管理器版本也为 0.35.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 现在会记录软件包的安装状态了。该信息在 ruyi list 输出中也会体现,并且支持在 ruyi list 时传入 --is-installed y/n 参数进行过滤。
  • ruyi entity list 可以带一个或多个 -t / --entity-type 参数,用来列举特定类型的实体了。
  • ruyi entity list 现在支持机读模式(porcelain mode)输出了。

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

  • 新增了 Milk-V Duo (128M & 156M) 开发板镜像的历史版本。
  • 修复了 Milk-V Duo (128M & 256M) 开发板镜像 2.0.0 版本的配置。
  • 更新了多个 Milk-V Meles 的 RevyOS 镜像。
  • 修复了 Milk-V Meles 的 RevyOS 镜像 1.20250123.0 版本的配置。
  • 更新了一些文档链接的指向。
  • 清理了已于 RuyiSDK 0.33 版本弃用的 RuyiSDK 设备安装器的旧版配置数据。

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

IDE

  • RuyiSDK IDE 插件近期新增了自定义的 Welcome 欢迎页面的插件。通过自定义 Welcome,将产品简介、官网、博客、联系我们等常用链接都挂到了页面中;此外还提供了 New Project、Open Project、Setting的快速入口;还有Support Matrix、Documents、Discussions 链接。功能目前已经就绪,但是在以插件方式运行时还存在icon资源找不到的问题,预计下个周期发布。可通过Draft链接下载尝鲜。

GCC

  • 添加香山昆明湖CPU到gcc RISC-V后端,目前已合入gcc上游,添加时补充了一系列gcc缺失的特权模式扩展指令集。
  • 修复了binutils中smnrmi缺失zicsr依赖的问题。

V8

  1. 在turbofan RISC-V后端中支持非经典NAN
  2. 在wasm的liftoff编译器RISC-V后端中支持代码覆盖统计
  3. 在RISC-V架构上实现JS undefined value的floating nan boxing
  4. 指令选择优化compare zero
  5. 调整maglev中临时寄存器分配作用域,使临时寄存器能尽快被使用
  6. 审阅并合入syntacore的针对jalr和jal指令的RAS特性所做的优化
  7. 审阅并合入syntacore的代码生成优化
  8. 修复指针压缩模式下对tagged smi的加减法溢出处理
  9. 实现优化JITed代码中的diapatch handle正确性保证代码
  10. 删除InstructionSelectorAdapter,为删除turbofan的SON IR,全面使用turboshaft IR做好准备,

操作系统支持矩阵

第 045 期·2025 年 05 月 27 日

· 8 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

第45期《RuyiSDK双周进展》准时送达!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在6月5日),也可以在 RuyiSDK讨论区 反馈。

下个开发版本计划6月10日发布,我们将持续带来更多改进。

包管理器

RuyiSDK 0.34 对应的包管理器版本也为 0.34.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新的部分软件包需要最新版本的 RuyiSDK 包管理器才能正常解析、工作,因此强烈建议您在 ruyi update 之余,将您的 ruyi 也升级到最新版本。此外,已在 RuyiSDK 0.33 弃用的旧版设备安装器支持也将于 RuyiSDK 0.35(下个版本)移除。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 支持了部分解包 tar 归档文件,以适应个别厂商在其官方渠道将多个软件打成一个包分发的做法。
  • 允许用 ruyi venv --extra-commands-from 为虚拟环境提供额外的与目标元组(target tuple)无关的命令,如特定厂商的刷写工具等。
  • ruyi admin format-manifest 会保留文件头部和尾部的注释了。
  • 遥测功能更新:
    • 当用户在终端首次运行 ruyi 时,现在会一次性询问用户是否允许立即上传安装信息。
    • 修复了 ruyi 的命令转发模式下遥测事件未被记录的问题。
    • 支持在软件源级别记录软件包的安装动作,以便第一方或第三方软件源的维护者们了解其软件的使用情况。
  • 重构了 ruyi 命令行工具的入口点和 ruyi 的日志处理方式,消除了大部分全局量的使用,以便后续 RuyiSDK 生态的其他 Python 组件复用 ruyi 的功能。

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

  • 软件源格式更新:
    • 明确了官方软件源的 ID 为 ruyisdk,以便后续与第三方源和谐共存。
    • 术语更新:将那些指代非标准行为的“flavor”重命名为了“quirk”。
    • 为支持软件包声明其含有的可执行命令,为 binary 元数据新增了 commands 可选字段。
    • 为支持 tar 归档文件的部分解包,为 distfile 元数据新增了 prefixes_to_unpack 可选字段。
  • 完善了设备支持:
    • board-image/revyos-sipeed-lpi4a: 更新了 Sipeed LicheePi 4A 的 RevyOS 镜像版本至 20250420,修复了 20250323 版本的信息。
    • 将 Milk-V Duo 系列设备的 1.0.7 版本的 "Python" 镜像与非 "Python" 镜像调换了名称。
  • 新增软件包:
    • board-util/wlink: 社区独立实现的 WCH-Link 刷写与调试工具。
    • source/wch-ch32v103-evt: WCH CH32V103 EVT 官方代码示例包。
    • source/wch-ch32v20x-evt: WCH CH32V20x EVT 官方代码示例包。
    • source/wch-ch32v307-evt: WCH CH32V30x & CH32V317 EVT 官方代码示例包。
    • toolchain/gnu-wch-mrs-toolchain-gcc12-bin: WCH MounRiver Studio (MRS) 工具链的官方 2.1.0 版本,其中的 GCC 12.x 工具链。仅支持 x86_64 架构。
    • toolchain/gnu-wch-mrs-toolchain-gcc8-bin: WCH MounRiver Studio (MRS) 工具链的官方 2.1.0 版本,其中的 GCC 8.x 工具链。仅支持 x86_64 架构。
  • 更新软件包:
    • toolchain/gnu-plct-xthead: 采用玄铁官方源码、由 PLCT 构建的玄铁工具链的 3.0.1 版本,GCC 版本为 14.1.1。
  • 实体数据库更新:
    • 新增了 WCH 微架构、CPU 的实体定义。
    • 修正了 WCH 开发板的 CPU 信息。
  • 插件系统更新:
    • 新增了初步的 RISC-V 32 位配置文件支持。
  • 修复了一些软件包声明的格式错误。

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

IDE

RuyiSDK IDE 插件版本 0.0.5 发布:https://github.com/ruyisdk/ruyisdk-eclipse-plugins/releases/tag/v0.0.5

  • ruyi 安装/更新:
    • 针对 ruyi 安装向导中下载进度条不能达到100%的问题进行了修复;
    • 删除 ruyi 安装向导中将 ruyi 加入到 path 路径的设定和步骤,改为使用 ruyi 绝对路径
  • 软件包资源:
    • 通过树状结构分类展示软件包资源,并通过 checkbox 状态表示软件包资源的下载状态
    • 实现对软件包的下载
    • 支持打开软件包资源的本地缓存等路径,方便查看缓存文件

GCC

  • Binutils上游已合并Profiles RV20/22/23支持,更新了Smcdeleg,Ssccfg扩展支持
  • 向FFmpeg上游提交了gcc构建时配置选项的修改,目前仍在讨论中

LLVM

V8

  • wasm struct.atomic 特性在RISC-V平台上的实现
  • 修复trampoline emit和scratch寄存器使用的bug
  • 审阅和合入进迭时空comparisionOP 代码生成,load word unsigned op的0扩展优化

操作系统支持矩阵

官网

新实习生的加入,推动 ruyisdk.org 首页焕然一新。不过当前尚余一些小问题需要修复,具体见 issue #135。大家觉得新的首页怎么样呢,欢迎在该 issue 下添加评论!

第 044 期·2025 年 05 月 13 日

· 6 min read
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

欢迎阅读《RuyiSDK 双周进展汇报》第 44 期,包管理器 和 ide 都有版本更新,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在5月22日),也可以在 RuyiSDK讨论区 反馈。

下个开发版本计划 5月27日发布,我们将持续带来更多改进。

包管理器

RuyiSDK 0.33 对应的包管理器版本也为 0.33.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 将设备安装器的数据源迁移到了实体数据库,以降低维护成本、避免频繁更新时潜在的合并冲突等。

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

  • 完善了设备支持:
    • 新增支持了 Milk-V Meles 的 16G RAM 型号,支持 RevyOS 系统。
  • 实体数据库更新:
    • 设备实体定义更新:设备型号变体现已被拆分为单独实体类型 device-variant 了。
    • 新增了“设备适用系统信息”实体 image-combo
  • 现已弃用旧版设备安装器支持,请尽快更新您的 RuyiSDK 包管理器。该支持将于 RuyiSDK 0.35 移除。

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

  • 新增了官方软件源的新闻条目阅读 API。
  • 新增了按版本号查询 RuyiSDK 版本发行注记的 API。
  • 将官方软件源当前目录结构下的所有子目录都纳入了下载量统计范围。
  • 改进了服务容器的构建方式。

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

IDE

  • RuyiSDK IDE 插件版本 0.0.4 发布:

    • 新增 ruyi 包管理器检测、安装及版本更新向导。

    • 新增 RuyiSDK 配置面板 (Windows > Preferences > RuyiSDK):

      • Ruyi 配置项:开机自动检测开关、 Ruyi 安装路径设置、软件源配置、遥测模式选择
      • RISC-V 开发板管理(添加/编辑/删除/设默认)。
  • 安装步骤:

    1. 从 ISCAS 镜像 下载并解压 ruyisdk-0.0.3
    2. 下载 org.ruyisdk.ide_0.0.4.zip,解压后将 plugins/ 下所有 JAR 文件复制到 ruyisdk/dropins/。
    3. 启动/重启 ruyisdk。
  • 使用说明:

    • 启动时自动弹出 ruyi 安装/更新向导。
    • 手动操作:RuyiSDK > Ruyi Installation。
    • 配置路径:Windows > Preferences > RuyiSDK > Ruyi Config。

GCC

  • 更新了 RUYISDK 仓库中的 gcc 版本到 gcc15, binutils 版本到 binutils-2.45。支持了 Profiles 特性,包括 RV20/22/23A|B, 使用 -march=Profiles 可直接使能 Profiles 规定的强制支持扩展
  • 支持了 Sha扩展组合,该扩展为 RVA23S64 中针对 RISC-V 虚拟化特性提出的最新扩展组合,用于高效实现虚拟化特性。修复回归测试中发现的 gcc 错误,限制了错误测试 case 中
  • -mgeneral-regs-only 选项对应的架构范围,已被上游接收

LLVM

V8

  • 增加从 isolate 中加载 JS Dispatch Table 的机制
  • 增加 riscv zfh 指令集支持
  • 添加 wasm growble stack 的特性

操作系统支持矩阵