双周报
Get the latest development progress every two weeks
欢迎阅读第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 Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
-
新增了基本的命令行自动补全支持,初期支持 Bash 与 Zsh 两种 shells。感谢 @wychlw 的贡献!
要使用命令行自动补全功能,请在您的 shell profile(如 .bashrc 或 .zshrc)的合适位置引入
ruyi 的自动补全脚本:
# zsh 用户请将 bash 字样替换为 zsh
eval "$(ruyi --output-completion-script=bash)"
目前支持 ruyi 子命令与 ruyi install 等命令的软件包参数的自动补全。
-
使用 ruyi self clean 清除本地数据时,如果新闻已读状态文件不存在,不会报错崩溃了。感谢 @weilinfox 报告问题!
-
拉取远端 Git 仓库失败时,不会将 Python 错误信息暴露给用户了。
-
只有在文件的下载 URL 协议为 FTP 时,才会为 curl 或 wget 启用 FTP 被动模式了。这修复了部分 RuyiSDK 用户由于cURL 8.14.1 的 bug 而无法下载任何文件的问题。感谢 @weilinfox 向 ruyi 项目报告问题!
-
重构了 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 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
- 实验性新增:添加新的插件projectcreator来为特定的开发板导入示例演示,并自动配置工具链和定制编译配置。提供了新建项目向导,预置开发板项目模板和自定义构建器用于一键在ruyi虚拟环境内构建项目。
RuyiSDK GNU 工具链测试(GCC 16):https://github.com/QA-Team-lo/ruyisdk-gnu-tests
欢迎阅读第47期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在7月3日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划7月8日发布,我们将持续带来更多改进。
RuyiSDK 0.36 对应的包管理器版本也为 0.36.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 每次
ruyi update 完成后,会报告哪些已安装的软件包有更新版本可供安装了。考虑到具体项目对工具链版本的需求可能较为精确,您可自行 ruyi install 更新的版本,并自行重做相应的虚拟环境。
- 可以用
ruyi uninstall 卸载已安装的软件包了。另有更简短的别名 ruyi remove 或 ruyi 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 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
RuyiSDK IDE 插件版本 0.0.6 发布:https://github.com/ruyisdk/ruyisdk-eclipse-plugins/releases/tag/v0.0.6
- 软件包资源:
- 新增接入软件包资源管理器适配设备型号接口,支持显示Ruyi包管理器已集成的设备型号;
- 界面优化,优化设备展示窗口尺寸;
- 代码优化,修复存在安全漏洞的代码;
- 定制 Welcome 界面:
- 修复以插件方式运行时存在的 icon 等资源找不到的问题;
- 更新了-mcpu的默认参数,使用generic替代具体的rocket cpu模型
- 同步了-mtune的配置设置,将branch_cost更新为4,以便更好的适配Zicond扩展,生成对应的分支指令
- 实现struct/array.atomic.rmw.xchg的原子交换操作
- 将 suspender 对象迁移到可信空间
- 引入简单的截断优化pass
- 在release模式中在常量池前增加检查
- 避免在JSPI内置函数中进行可信写入
- 在Maglev中加入额外的peephole优化
欢迎阅读第46期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在6月19日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划6月24日发布,我们将持续带来更多改进。
RuyiSDK 0.35 对应的包管理器版本也为 0.35.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 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 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
- RuyiSDK IDE 插件近期新增了自定义的 Welcome 欢迎页面的插件。通过自定义 Welcome,将产品简介、官网、博客、联系我们等常用链接都挂到了页面中;此外还提供了 New Project、Open Project、Setting的快速入口;还有Support Matrix、Documents、Discussions 链接。功能目前已经就绪,但是在以插件方式运行时还存在icon资源找不到的问题,预计下个周期发布。可通过Draft链接下载尝鲜。
- 添加香山昆明湖CPU到gcc RISC-V后端,目前已合入gcc上游,添加时补充了一系列gcc缺失的特权模式扩展指令集。
- 修复了binutils中smnrmi缺失zicsr依赖的问题。
- 在turbofan RISC-V后端中支持非经典NAN
- 在wasm的liftoff编译器RISC-V后端中支持代码覆盖统计
- 在RISC-V架构上实现JS undefined value的floating nan boxing
- 指令选择优化compare zero
- 调整maglev中临时寄存器分配作用域,使临时寄存器能尽快被使用
- 审阅并合入syntacore的针对jalr和jal指令的RAS特性所做的优化
- 审阅并合入syntacore的代码生成优化
- 修复指针压缩模式下对tagged smi的加减法溢出处理
- 实现优化JITed代码中的diapatch handle正确性保证代码
- 删除InstructionSelectorAdapter,为删除turbofan的SON IR,全面使用turboshaft IR做好准备,
第45期《RuyiSDK双周进展》准时送达!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在6月5日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划6月10日发布,我们将持续带来更多改进。
RuyiSDK 0.34 对应的包管理器版本也为 0.34.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次更新的部分软件包需要最新版本的 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 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
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 状态表示软件包资源的下载状态
- 实现对软件包的下载
- 支持打开软件包资源的本地缓存等路径,方便查看缓存文件
- Binutils上游已合并Profiles RV20/22/23支持,更新了Smcdeleg,Ssccfg扩展支持
- 向FFmpeg上游提交了gcc构建时配置选项的修改,目前仍在讨论中
- wasm struct.atomic 特性在RISC-V平台上的实现
- 修复trampoline emit和scratch寄存器使用的bug
- 审阅和合入进迭时空comparisionOP 代码生成,load word unsigned op的0扩展优化