Zum Hauptinhalt springen

双周报

Erhalten Sie alle zwei Wochen die neuesten Entwicklungsupdates

第 058 期·2025 年 12 月 16 日

· 5 Minuten Lesezeit

卷首语

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

本周我们迎来一场线下之约:RISC-V校园行活动将于2025年12月17日下午在 上海海事大学(临港校区) 举办,欢迎上海的小伙伴们前来交流学习 !

线上生态同样精彩:IDE插件即将发布,软件源持续为更多设备提供支持,V8项目也获得了RISE基金会的关注。这些成就都离不开社区的每一位贡献者。感谢大家的参与和反馈,我们诚挚邀请您常来 RuyiSDK 技术社区 交流想法,共同成长 。

下个版本计划在 12 月 30 发布,敬请期待!

包管理器

由于 RuyiSDK 发版周期调整,RuyiSDK 包管理器的 0.44.0 版本预期将在 12 月底正式发布。您仍可通过以下渠道下载 RuyiSDK 包管理器的 0.43.0 版本:

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

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

  • 新增设备支持:
    • Milk-V Megrez: 搭载使用 SiFive P550 微架构的 ESWIN EIC7700X CPU,兼容各类 RockOS 镜像。
  • 完善了设备支持:
    • OpenBSD: 更新到 7.8。
    • FreeBSD Mini Live: 更新到 15.0。
    • Milk-V Pioneer 的 RevyOS: 更新到 20251115。
    • SiFive Unmatched 的 OpenWrt: 更新到 24.10.4。
    • Sipeed Laptop 4A 的 RevyOS: 更新到 20251115。
    • Sipeed LicheePi 4A 的 RevyOS: 更新到 20251115。
    • Sipeed LicheePi Console 4A 的 RevyOS: 更新到 20251115。
    • Sipeed LicheeRV Nano 的 Buildroot SDK: 更新到 20251202。
    • Sipeed Meles 的 RevyOS: 更新到 20251115。

感谢 @weilinfox 的贡献!

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

IDE

VSCode 插件:

  • 添加 Release CI
  • 预发布 1.0 版本

Eclipse 插件:

  • 将依赖库交由 Maven 管理,清理不需要的项目文件。
  • 添加并测试“虚拟环境”模块。
  • 进行发布前的测试。

GCC

更新P扩展支持至018版本,正在修复gcc15.2回归测试中出现的问题。

V8

本期亮点:

  1. RISE基金会官网报道了V8的最新进展: https://riseproject.dev/2025/12/09/a-glimpse-into-v8-development-for-risc-v/

本期提交的patch:

  1. [riscv] rename x0 to tmp1 in ByteSwap
    [RISC-V] 在ByteSwap中将x0重命名为tmp1(https://chromium-review.googlesource.com/c/7220250)
  2. [frames] Track stack frame iteration depth in StackFrameIterator
    [栈帧实现] 在StackFrameIterator中跟踪栈帧迭代深度(https://chromium-review.googlesource.com/c/7206634)
  3. [riscv][maglev] Fix clobbering the data view length
    [RISC-V][Maglev编译器] 修复数据视图长度被覆盖的问题(https://chromium-review.googlesource.com/c/7250928)
  4. [riscv][maglev] Materialize undefined for undefined nan on exception
    [RISC-V][Maglev编译器] 针对异常场景下未定义的NaN,显式生成undefined值(https://chromium-review.googlesource.com/c/7252469)
  5. [riscv][wasmfx] Support return values in stack wrapper
    [RISC-V][WebAssemblyFx扩展] 在栈包装器中支持返回值(https://chromium-review.googlesource.com/c/7255074)
  6. [riscv][api] Flatten v8::FunctionCallbackInfo<T> [RISC-V][API] 扁平化v8::FunctionCallbackInfo<T>结构(https://chromium-review.googlesource.com/c/7259655)

本期审阅的patch:

  1. [riscv] Change 'zextw + add' to 'add.uw'
    [RISC-V] 将“zextw + add”组合操作改为“add.uw”指令(https://chromium-review.googlesource.com/c/v8/v8/+/7255075)

第 057 期·2025 年 12 月 02 日

· 7 Minuten Lesezeit

卷首语

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

包管理器 0.43.0 版本正式发布,不仅解锁容器环境 root 运行权限,适配 CI 等受控场景需求,更在虚拟环境元数据记录、依赖精简与测试框架完善上完成迭代,让开发流程更顺畅、功能稳定性更有保障。软件源生态持续扩容,新增多款热门硬件设备支持,同时优化镜像适配方案,兼顾新增需求与老旧设备的生命周期管理,让更多开发者能便捷接入 RuyiSDK 生态。

VSCode IDE插件重构核心模块、新增实用功能并修复多项细节问题,准备下个发布节点给大家带来初版体验。Eclipse 插件也在积极稳步的推进。此外,GCC 发布 gcc-15 版本并更新 --with-cpu 构建选项支持,LLVM 完成 DAG 模块指令匹配与向量压缩相关优化,以及 V8 引擎针对 RISC-V 架构的指令优化,进一步夯实了底层技术底座,让应用运行效率再获提升。

每一项进展都离不开社区的支持与贡献,感谢所有开发者的参与和反馈,欢迎大家到 RuyiSDK 技术社区 交流想法、提出建议~

下个版本计划在 12 月 30 发布,敬请期待!

包管理器

RuyiSDK 0.43 已于 11 月 26 日发布,对应的包管理器版本也为 0.43.0。您可前往以下位置之一下载 RuyiSDK 包管理器:

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

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

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

  • 允许在容器环境下以 root 身份运行 ruyi 了,以方便 CI 等受控场景。
  • 会在新创建的 Ruyi 虚拟环境中记录所用 RuyiSDK 软件包的包名、版本号等元数据了,以便 RuyiSDK IDE 等 RuyiSDK 生态组件取用。
  • 工程化迭代:
    • 支持了 Python 3.14 运行环境。
    • 移除了 ruyipackaging 的依赖。请打包人员更新依赖声明。
    • 新增了集成测试框架,作为 ruyi-litester 的补充,有助于持续保证 ruyi 在小众场景下的功能不受破坏。

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

  • 新增软件包:
    • source/riscv-gnu-toolchain-plct: toolchain/gnu-plct 的源码仓库集合。
  • 新增设备支持:
    • Milk-V Jupiter: 兼容各类 Bianbu 镜像。
    • Sipeed LicheePi 3A: 兼容各类 Bianbu 镜像。
    • SpacemiT MUSE Book: 兼容各类 Bianbu 镜像。
    • SpacemiT MUSE Box: 兼容各类 Bianbu 镜像。
    • 香山南湖笔记本: 兼容 RedleafOS。
  • 完善了设备支持:
    • 移除 Pine64 Star64 的 Armbian 支持: 上游已停止维护并不再提供系统镜像下载。
    • 适用各类 SpacemiT K1 设备的 Bianbu Desktop 与 Bianbu Minimal: 新增适用于 eMMC 存储设备的镜像。
    • 新增适用各类 SpacemiT K1 设备的 Bianbu Desktop Lite。

感谢 @weilinfox 的贡献!

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

IDE

VSCode 插件:

  • 重构news、home、packages、telemetry等模块,统一导出风格,改用异步API
  • 新增包搜索、延迟加载、版本支持、多安装管理
  • 修复venv创建激活、新闻页缓存、遥测配置等问题

Eclipse 插件:

  • 制定代码风格约束,审查所有代码。
  • 添加“新闻”模块。

GCC

发布了gcc-15tag,更新了--with-cpu构建选项支持,同步了binutils支持RV架构记录测试结果的补丁。

LLVM

  1. [DAG] Update canCreateUndefOrPoison to handle ISD::VECTOR_COMPRESS
  2. [DAG] Add generic m_TernaryOp() / m_c_TernaryOp() matchers

V8

本期亮点:Zba扩展的shxadd指令可融合移位与加法,加速RISC-V的地址计算。V8实现了这项优化,结合偏移调整,加载指令数可减半(从4条指令降低为2条)。

本期提交的patch:

  1. [riscv] Encode AccessMode with kMemoryAccessProtectedNullDereference in visitAtomicLoad
    [RISC-V] 在visitAtomicLoad中使用kMemoryAccessProtectedNullDereference对AccessMode进行编码(https://chromium-review.googlesource.com/c/7165988)
  2. [riscv] Optimize Word64Add with shxadd instruction on RISC-V
    [RISC-V] 在RISC-V架构上通过shxadd指令优化Word64Add操作(https://chromium-review.googlesource.com/c/7155850)
  3. [riscv] Make the index as a immediate whenever possible
    [RISC-V] 尽可能将索引处理为立即数(https://chromium-review.googlesource.com/c/7155768)
  4. [riscv][wasmfx] Implement tag parameters and returns
    [RISC-V][wasmfx] 实现标签参数与返回值功能(https://chromium-review.googlesource.com/c/7202304)
  5. [riscv][maglev] Fix an issue where SMI values do not overflow correctly
    [RISC-V][Maglev] 修复SMI值溢出处理不正确的问题(https://chromium-review.googlesource.com/c/7202584)
  6. [riscv][codegen] Remove IsolateAddressId in favour of IsolateFieldId
    [RISC-V][代码生成] 移除IsolateAddressId,改用IsolateFieldId(https://chromium-review.googlesource.com/c/7214846)

审阅的patch:

  1. [riscv] Reset the rounding mode when returning from API
    [RISC-V] 从API返回时重置舍入模式(https://chromium-review.googlesource.com/c/6994659)
  2. [riscv] Fix loading of InstanceType in BaselineAssembler
    [RISC-V] 修复 BaselineAssembler 中 InstanceType 的加载逻辑问题(https://chromium-review.googlesource.com/c/7190169)

第 056 期·2025 年 11 月 18 日

· 7 Minuten Lesezeit

卷首语

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

本期,开发团队的主要工作集中在以下几个方面:

  • 为加强 ruyi 的质量保障,覆盖更多常见及特殊使用场景,我们正在为其构建一套集成测试套件。

  • 持续扩展 packages-index,增加对更多 RISC-V 设备的支持。

  • IDE 插件的功能开发与优化也在同步进行中,目前第一版 VSCode 插件已开始进入内部测试。

下个版本计划在 11 月 25 发布,敬请期待!也欢迎大家随时来 RuyiSDK 技术社区 交流想法、提出建议~

包管理器

由于 RuyiSDK 发版周期调整,RuyiSDK 包管理器的 0.43.0 版本预期将在 11 月底正式发布。您仍可通过以下渠道下载 RuyiSDK 包管理器的 0.42.0 版本:

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

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

  • 新增软件包:
    • source/riscv-gnu-toolchain-plct: toolchain/gnu-plct 的源码仓库集合。
  • 新增设备支持:
    • Milk-V Jupiter: 兼容各类 Bianbu 镜像。
    • Sipeed LicheePi 3A: 兼容各类 Bianbu 镜像。
    • SpacemiT MUSE Book: 兼容各类 Bianbu 镜像。
    • SpacemiT MUSE Box: 兼容各类 Bianbu 镜像。
    • 香山南湖笔记本: 兼容 RedleafOS。
  • 完善了设备支持:
    • 移除 Pine64 Star64 的 Armbian 支持: 上游已停止维护并不再提供系统镜像下载。
    • 适用各类 SpacemiT K1 设备的 Bianbu Desktop 与 Bianbu Minimal: 新增适用于 eMMC 存储设备的镜像。
    • 新增适用各类 SpacemiT K1 设备的 Bianbu Desktop Lite。

感谢 @weilinfox 的贡献!

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

IDE

VS Code插件:

  • 添加解压 source 功能
  • 添加下载进度
  • 添加虚拟环境管理图形化入口
  • 将配置项(Ruyi 包管理器目录、遥测信息)移动至插件设置
  • 交付测试团队准备上架 vscode marketplace

Eclipse 插件:

  • 引入 CI 检查 DCO 规范并在 GitHub Pages 自动发布插件
  • 重构插件目录、优化现有文档
  • 解决 Eclipse SDK IDE 中的开发、调试问题

GCC

修复了回归测试中发现的一些BUG,对仓库说明文档添加了中文支持,对Binutils测试模块进行了更新。

V8

提交并合入的patch:

  1. [riscv][wasm][liftoff][growable-stacks] Do not change cache state in branch
    [RISC-V][WebAssembly][Liftoff编译器][可增长栈] 不在分支中修改缓存状态(https://chromium-review.googlesource.com/c/7123119)
  2. [riscv][cctest] Make max_heap_size larger in cctest/SetStackLimitInThreadAndStackOverflow
    [RISC-V][C++测试] 增大 cctest/SetStackLimitInThreadAndStackOverflow 中的最大堆大小(https://chromium-review.googlesource.com/c/7123484)
  3. [riscv][simulator] Only use read/write mutexes if we're multithreaded
    [RISC-V][模拟器] 仅在多线程场景下使用读写互斥锁(https://chromium-review.googlesource.com/c/7116238)
  4. [riscv][maglev] Cache the DataView's byteLength for the bounds check
    [RISC-V][Maglev编译器] 缓存 DataView 的 byteLength 用于边界检查(https://chromium-review.googlesource.com/c/7129740)
  5. [riscv] Fix native build failed
    [RISC-V] 修复原生构建失败问题(https://chromium-review.googlesource.com/c/7090433)
  6. [riscv] Use normal fp semantics in JSEntry
    [RISC-V] 在 JSEntry 中使用标准浮点语义(https://chromium-review.googlesource.com/c/7130358)
  7. [riscv] Catch wasm mem trap in amoswap
    [RISC-V] 在 amoswap 指令中捕获 WebAssembly 内存陷阱(https://chromium-review.googlesource.com/c/7144820)
  8. [riscv] Use amo instr in codegen
    [RISC-V] 在代码生成中使用 amo 系列指令(https://chromium-review.googlesource.com/c/7138845)
  9. [riscv][maglev] No implicit Float64 <=> HoleyFloat64 conversion [RISC-V][Maglev编译器] 不允许 Float64 与 HoleyFloat64 的隐式转换(https://chromium-review.googlesource.com/c/7149258)
  10. [riscv] Enable v8_enable_external_code_space
    [RISC-V] 启用 v8_enable_external_code_space(外部代码空间)功能(https://chromium-review.googlesource.com/c/7149198)
  11. [riscv] Fix missing AccessModeField encode
    [RISC-V] 修复缺失的 AccessModeField 编码逻辑(https://chromium-review.googlesource.com/c/7154551)
  12. [maglev][riscv] Replace the DataViewElementOperand with StoreDataViewElement/LoadDataViewElement
    [Maglev编译器][RISC-V] 将 DataViewElementOperand 替换为 StoreDataViewElement/LoadDataViewElement(https://chromium-review.googlesource.com/c/7155968)

审阅并合入的patch:

  1. [riscv] Fix deoptimization failure due to register clobbering
    [RISC-V] 修复因寄存器被破坏导致的去优化失败问题(https://chromium-review.googlesource.com/c/7139894)
  2. [riscv] Fix kIndirectPointer issue in store node selection
    [RISC-V] 修复存储节点选择中 kIndirectPointer 相关问题(https://chromium-review.googlesource.com/c/7123745)
  3. [riscv] Fix loading of is_marking_flag
    [RISC-V] 修复 is_marking_flag 的加载逻辑(https://chromium-review.googlesource.com/c/7126739)
  4. [riscv] Fix loading of ParameterCount
    [RISC-V] 修复 ParameterCount 的加载逻辑(https://chromium-review.googlesource.com/c/7134140)
  5. [riscv] Add right shift to extract the true ExternalPointerTag
    [RISC-V] 添加右移操作以提取真实的 ExternalPointerTag(https://chromium-review.googlesource.com/c/7123565)
  6. [riscv] Use ToSimd128Register directly.
    [RISC-V] 直接使用 ToSimd128Register 方法(https://chromium-review.googlesource.com/c/7137621)
  7. [riscv] Use tail-undisturbed and avoid overwriting inputs
    [RISC-V] 采用RVV的tail-undisturbed模式,避免覆盖输入数据(https://chromium-review.googlesource.com/c/6989490)
  8. [riscv] Fix uintptr_t format specifiers in simulator
    [RISC-V] 修复模拟器中 uintptr_t 类型的格式说明符问题(https://chromium-review.googlesource.com/c/7117264)

第 055 期·2025 年 11 月 04 日

· 5 Minuten Lesezeit

卷首语

小伙伴们是不是在期待新的版本?按照我们上期公布的月度发版策略,下一个版本计划于 11 月 25 日与大家见面,我们的双周进展汇报仍会保持原有节奏,持续为大家同步最新动态。

目前,开发团队正在全力推进各项开发工作:

  • 为加强 ruyi 的质量保障,覆盖更多常见及特殊使用场景,我们正在为其构建一套集成测试套件。

  • 持续扩展 packages-index,增加对更多 RISC-V 设备的支持。

  • IDE 插件的功能开发与优化也在同步进行中,我们期望能在年底为大家提供一个初步版本进行体验。

感谢大家的持续关注与支持,我们将继续努力,为大家带来更稳定、更强大的开发体验!

包管理器

由于 RuyiSDK 发版周期调整,RuyiSDK 包管理器的 0.43.0 版本预期将在 11 月底正式发布。您仍可通过以下渠道下载 RuyiSDK 包管理器的 0.42.0 版本:

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

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

  • 完善了设备支持:
    • Milk-V Meles 的 RevyOS: 更新到 20251025 版本。
    • Milk-V Pioneer 的 RevyOS: 更新到 20251030 版本。
    • Sipeed Laptop 4A 的 RevyOS: 新增支持,最新版本为 20251025。
    • Sipeed LicheePi 4A 的 RevyOS: 更新到 20251025 版本。
    • Sipeed LicheePi Console 4A 的 RevyOS: 更新到 20251025 版本。

感谢 @weilinfox 的贡献!

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

IDE

VSCode 插件:

  • 新闻:
    • 将新闻缓存到本地供离线查看
    • 新闻列表可手动刷新
    • 新闻列表由树状改为卡片式
  • 虚拟环境:
    • 创建新的虚拟环境
    • 管理当前激活的虚拟环境
    • 删除虚拟环境
    • 发现已存在的虚拟环境
  • 遥测: 提供配置选项
  • 管理 Ruyi:
    • 检查 Ruyi 版本更新
    • 提供多种安装 Ruyi 的方式
  • 优化代码结构,更新依赖,更新 linter

Eclipse 插件:

  • 支持构建包含 RuyiSDK 插件的 RuyiSDK IDE

GCC

更新了RVP测试中发现的构建问题,修复了zpsfoperand命名不一致的问题

LLVM

Upstream:

V8

提交的patch:

  1. [riscv] Fix incorrect check supports_wasm_simd_128
    [RISC-V] 修复 supports_wasm_simd_128 的错误检查逻辑(https://chromium-review.googlesource.com/c/v8/v8/+/7087478)
  2. [riscv][simulator] Only use read/write mutexes if we're multithreaded
    [RISC-V][模拟器] 仅在多线程场景下使用读写互斥锁(https://chromium-review.googlesource.com/c/v8/v8/+/7116238)
  3. [riscv] Fix native build failed
    [RISC-V] 修复原生构建失败问题(https://chromium-review.googlesource.com/c/v8/v8/+/7090433)

第 054 期·2025 年 10 月 24 日

· 12 Minuten Lesezeit

卷首语

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

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

经过多轮测试和打磨,RuyiSDK 0.42.0 终于和大家见面了!这个版本带来了多项重要改进,让您的使用体验更加顺畅和贴心。

我们特别关注了用户隐私和系统集成的需求,将遥测功能的默认模式调整为 local。现在,所有数据都会在本地记录,只有您主动选择时才会上传(请放心,所有数据均经过匿名化处理)。同时,首次运行 ruyi 时会贴心地询问您的数据收集偏好,帮您完成配置。

为了让大家的工作目录更加整洁,我们优化了 ruyi extract 命令的默认行为,现在会自动创建以软件包名和版本命名的独立目录。命令行界面也进行了多项细节优化,为您带来更友好的交互体验。

IDE 插件的开发团队也迎来了新成员,相关工作正在积极推进中,敬请期待!

由于一些变化,操作系统支持矩阵章节将从本期起移出双周进展的同步内容。关注该项目的小伙伴可以前往 support-matrix 仓库 关注其最新动态。

【重要通知】从本期开始,我们将调整版本发布节奏,从双周发布改为月度发布。 这能让我们有更充裕的时间进行深度测试、完善功能细节并提升整体质量,力求为每一位用户带来更稳定、更完善的使用体验。

下个版本计划在 11 月下旬发布(默认每月最后一周的周二),敬请期待!也欢迎大家随时来 RuyiSDK 技术社区交流想法、提出建议~

包管理器

RuyiSDK 0.42 对应的包管理器版本也为 0.42.0,已于 10 月 24 日发布。您可移步 PyPIGitHub ReleasesISCAS 镜像源下载体验。

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

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

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

  • 默认遥测模式现已变更为 local——收集数据但不会自动上传。
    • 相应地,在终端界面首次运行 ruyi 时,ruyi 会询问您的数据收集偏好,并帮您写入用户配置文件。
  • ruyi extract 命令的默认行为变更与其他改进:
    • ruyi extract 现在会将所请求的软件包内容解压到以软件包名、版本命名的独立目录下了。之前会直接解压到当前工作目录,如用户不提前阅读文档,可能会将用户的目录弄乱。如仍然需要先前的行为,可传入新增的 --extract-without-subdir 选项。
    • ruyi extract 现在支持 --dest-dir-d 选项,以便指定解压到非当前工作目录的其他目录了。
    • ruyi extract 也新增了 --fetch-only-f 选项,与 ruyi install 相应选项保持一致。
  • 打磨了命令行用户体验:
    • 在受支持的终端下,ruyi 会把重要的手工操作用红色加粗样式体现了。
    • 首次运行 ruyi 前,当您尝试命令行自动补全时,不会错误地打印出提示信息了。
    • 用来下载软件包但不安装或解压的 ruyi install -f 现在支持下载源码类型的软件包了。
    • 若用户下载了 ruyi 的单二进制文件发行版,但忘记将其重命名为 ruyiruyi 会在运行时提醒用户这么做了。
  • 修复了一些问题:
    • repo.local 的值为空字符串或与默认值相等时,不会被判定为自定义了软件源本地路径了。
    • 修复了自动管理软件源远程分支时,变更了 repo.remote 之后需要两次 ruyi update 才会体现的问题。
    • ruyi clean --all 不会残留软件包安装状态记录了。
    • 不再允许使用用户配置文件去覆盖那些不面向用户的配置项了。
  • 更新了文档:
    • 写明了 ruyi 配置文件的系统全局搜索路径,供打包人员、系统管理员等参考。感谢 @bkmgit 的贡献!
  • 工程化迭代:
    • ruyipackaging 的依赖已不再必要,将于 0.43.0 版本移除。届时请打包人员更新依赖声明。

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

  • 实体数据库更新:
    • Ruyi 虚拟环境所用的 profiles 现已通过 profile-v1 实体类型暴露,如 profile-v1:generic
  • 工程化迭代:
    • 修复了一些第三方软件源镜像地址的配置问题。感谢 @weilinfox 的贡献!

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

IDE

VSCode 插件:

  • 新增 ruyi.news 命令:在 VS Code 左侧栏显示新闻,支持内容筛选和搜索
  • 新增 ruyi.packages 命令:在 VS Code 内直接查看、安装、卸载 Ruyi 管理的软件包
  • 新增首页模块: 为用户提供各功能导航
  • 改良 ruyi.detect 和 ruyi.install 命令: 支持通过 pipx 安装的 Ruyi
  • 改良 ruyi.install 命令: 在安装 Ruyi 后重新载入窗口
  • 添加 CI: 自动化构建插件
  • 优化代码结构,更新依赖,更新 linter

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

GCC

修复了RUYISDK-GCC回归测试中发现的一些问题,更新了RVP 0.9.11版本的支持,对部分ABI引起的冲突进行了解决。

V8

PLCT提交并合入的patch:

  1. [riscv] Implement Zicfiss for simulator
    [RISC-V] 为模拟器实现 Zicfiss 扩展
    chromium-review.googlesource.com/c/6987768
  2. [riscv] Refactor the DEBUG_RISCV to support dumping log to a file.
    [RISC-V] 重构 DEBUG_RISCV 以支持将日志转储到文件
    chromium-review.googlesource.com/c/6979424
  3. [riscv] zicfiss assembler and disassembler
    [RISC-V] Zicfiss 扩展的汇编器和反汇编器
    chromium-review.googlesource.com/c/6978248
  4. [riscv][deopt] Change deopt entries into builtins
    [RISC-V][反优化] 将反优化入口转换为内置函数
    chromium-review.googlesource.com/c/7000607

审阅并合入的patch:

  1. [riscv][maglev/turbolev] Optimize Math.max/min Float64 cases
    [RISC-V][Maglev/Turbolev] 优化 Math.max/min 的 Float64 场景
    chromium-review.googlesource.com/c/7066840
  2. [riscv][wasmfx] Implement suspend instruction
    [RISC-V][wasmfx] 实现 suspend 指令
    chromium-review.googlesource.com/c/7045130
  3. [riscv] Remove inactive owners
    [RISC-V] 移除不活跃的所有者
    chromium-review.googlesource.com/c/6905229
  4. [riscv] Preserve signalling NaNs for float32.
    [RISC-V] 保留 float32 类型的信号 NaN
    chromium-review.googlesource.com/c/6973906

版本测试及遗留问题

RuyiSDK 0.42.0 版本已通过发版测试。该版本测试是基于 0.42.0-alpha.20251013、 0.42.0-beta.20251015 和 0.42.0-beta.20251017 三个测试版本开展的,预期 0.42.0 版本将基于 0.42.0-beta.20251017 版本代码发版。下面的表格记录了 0.42.0-beta.20251017 版本新增未修复缺陷:

缺陷问题等级判定依据
A large number of old revyos images were deleted #116一般软件自带修复功能,预期将在 0.43.0 版本前修复

由于 RevyOS 删除大量历史版本镜像,导致 RevyOS 上游、操作系统支持矩阵和 Ruyi 包管理器软件源两两均不对应。 已经确认修复细节,并定于 0.43.0 版本前修复。

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

缺陷问题等级备注
关于 fastboot 的文档提示 #95严重建立新的 issue 进行更新,且已拟订相关修复版本号为 0.43.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 解决。

第 053 期·2025 年 09 月 30 日

· 10 Minuten Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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

操作系统支持矩阵