跳到主要内容

双周报

每两周获得最新开发进展

第 048 期·2025 年 07 月 08 日

· 阅读需 7 分钟
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 分钟
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 分钟
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 分钟
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 分钟
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 的特性

操作系统支持矩阵

第 043 期·2025 年 04 月 22 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管
狐坂澪夜
RuyiSDK 测试经理

卷首语

近两周进展已呈上,欢迎阅读《RuyiSDK 双周进展汇报》第 43 期。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在4月25日),也可以在 RuyiSDK讨论区 反馈。

受五一假期影响,下个开发版本将顺延至5月13日发布,我们将持续带来更多创新改进。

包管理器

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

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

  • 新增了贡献指南文档,使社区成员更容易参与项目贡献。
  • 为流程合规,现在要求所有向 RuyiSDK 发起的拉取请求(Pull Requests)都包含开发者原创声明(Developer's Certificate of Origin, DCO)了。

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

  • 完善了设备支持:
    • 新增支持了适用于 SpacemiT K1 设备的特殊刷写策略。
    • 修复了设备安装器调用 fastboot 失败的问题。
    • 更新了 Sipeed LicheeRV Nano 的 Buildroot SDK 镜像。
    • 更新了 Sipeed LicheePi 4A 的 RevyOS 镜像版本并修复问题。
    • 更新了 Milk-V Meles 的 RevyOS 镜像。
  • 重命名了软件包 board-image/revyos-sg2042-milkv-pioneerboard-image/revyos-milkv-pioneer 以符合当前的软件包命名规范。
  • 实体数据库更新:
    • 设备实体定义现已与设备安装器支持范围对齐。补充了 Milk-V、Sipeed、Canaan、StarFive、WCH 等厂商的设备定义。

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

  • 优化了 ruyisdk.org 官网数据统计页面的性能。
  • 集成了 GitHub Releases 渠道的下载量到官网数据统计页面的 RuyiSDK 包管理器下载计数中,使统计数据更准确、全面。
  • 将原先位于 RuyiSDK 包管理器仓库、需要手工配置生效的镜像源同步脚本迁移到了服务端。

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

IDE

  • 将插件仓库规范化迁移到ruyisdk-eclipse-plugins ,并对代码进行了重构和优化:
    • 重构插件组织,基础类调整到 org.ruyisdk.core 包下,作为其它插件的依赖项;实现XDG规范目录的设置和路径获取;
    • 重构和优化设备管理,调整配置文件到 ~/.config/ruyisdkide 下,并将UI从继承 viewpart 实现修改为 PreferencePage,实现了通过 Windows > preferences > Device Manage 进行管理,更加符合使用场景。
  • 新增 ruyi 包管理器安装检测、版本检测等基础类;

GCC

  • 添加了zama16b,sdtrig,zvfbfmin 扩展的支持,重新提交了ssnpm 的 patch。

LLVM

V8

  • 处理 scriptcontext 里面 let 涉及的常量和变量,避免重复堆分配和垃圾回收开销。
  • 修复了构建错误和段错误 bug。
  • 优化 RiscvCmpDouble 和 RiscvCmpSingle 的 codegen。

操作系统支持矩阵

官网

第 042 期·2025 年 04 月 08 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管

卷首语

大家好,RuyiSDK 近期在持续迭代的基础上,也在用户支持上做出更多努力。围绕 RuyiSDK 的使用、问题与缺陷、改进建议等在线会议 RuyiSDK Office Hours 本周四将迎来第二次会议,欢迎您的关注与加入。

第2次RuyiSDK Office Hours会议安排如下:

我们期待在会议中与您交流,共同推动 RuyiSDK 的发展!

参考链接:

下一个开发版本预计将在 2025 年 4 月 22 日发布。感谢您一直以来的支持与关注,如有任何问题,欢迎联系我们,您的反馈是我们前进的动力!

包管理器

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

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

  • RuyiSDK 设备安装器在需要安装的软件包不止一个可用版本的时候,会额外允许您选择一个非默认(最新)的版本了。如果您的开发板需要旧版本的系统,该功能对您可能有所帮助。
  • 新增了实验模式开关:环境变量 RUYI_EXPERIMENTAL,用于启用一些我们暂不承诺兼容性的实验性功能。
  • 新增了实验性功能:实体数据库。
    • 该功能有助于 RuyiSDK 为您提供与手头设备关联的有用信息。例如,可用 ruyi list --related-to-entity device:sipeed-lpi4a 查询适用于 Sipeed LicheePi 4A 的各种软件包了。
    • 初期支持 CPU 微架构(如香山南湖、玄铁 C910 等等)、CPU 型号(如香山南湖、玄铁 TH1520 等等)、设备型号(如 Sipeed LicheePi 4A 等等)、软件包等四种实体类型。
    • 这些功能为预览版,后续不排除作出不兼容变更以适应需求,因此仅在启用实验模式时才可用。如您有使用场景,请保持您的 ruyi 与软件源为最新。
  • 工程化迭代:
    • 为避免 CI 物理机资源的临时下线等原因影响到发版,将 RISC-V 架构的构建任务也暂时迁移至 GitHub Actions 公开免费提供的实例上了。
    • 将构建 ruyi 的单文件分发版本所用的 Python 版本升级到了 3.13.2。

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

  • 更新了 toolchain/gnu-plcttoolchain/gnu-upstream 两种工具链包到 0.20250401.0。敬请试用!
    • 其中,gnu-plct 工具链套件提供的软件版本如下:
      • binutils 2.42,PLCT 维护分支
      • gcc 14.1.0,PLCT 维护分支,含 P 扩展与 RV64ILP32 ABI 支持
      • gdb 16.0,PLCT 维护分支
      • glibc 2.40,PLCT 维护分支
      • linux-headers 6.13
    • gnu-upstream 工具链套件提供的软件版本如下:
      • binutils 2.43.1
      • gcc 14.2.0
      • gdb 16.2
      • glibc 2.41
      • linux-headers 6.13

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

IDE

  • RuyiSDK IDE 近期正在优化启动功能,增加包管理器的安装检查、安装、版本检查、升级等功能;及执行过程中的执行状态显示;
  • RuyiSDK IDE 正在招聘插件开发实习生,详情参考 J159 RuyiSDK IDE 开发实习生 ,欢迎加入。

GCC

  • 修复了zicbop 的回归测试问题,正在实现 zvfbfa 扩展支持。

LLVM

  • 在 17.1.6 版本中修复了 vector reduction 内建指令的指令选择问题。

V8

  • Atomic views 适配 Tuboshaft IR;修复trap handler崩溃的问题
  • 优化后端 opcde , 删除 RiscvCtz/RiscvPopcnt

操作系统支持矩阵

第 041 期·2025 年 03 月 25 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管

卷首语

大家好,RuyiSDK 项目组为了更好地帮助开发者掌握 RuyiSDK 的使用,让开发团队能更加深入了解大家的需求从而改进产品,我们诚挚邀请您参加 RuyiSDK Office Hours 线上会议(类似于RISC-V技术答疑时间)。我们期待与您通过线上会议的方式相聚,共同探讨如何提升 RuyiSDK 的用户体验。会议内容将主要围绕 RuyiSDK 的使用、问题与缺陷、改进建议等话题进行交流,同时也欢迎大家讨论与 RISC-V 相关的任何问题。

会议安排如下:

我们期待在会议中与您交流,共同推动 RuyiSDK 的发展!

参考链接:

下一个开发版本预计将在 2025 年 4 月 8 日发布。感谢您一直以来的支持与关注,如有任何问题,欢迎联系我们,您的反馈是我们前进的动力!

包管理器

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

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

  • 修复了 ruyi list --category-contains 不工作的问题。
  • 修复了全新安装 ruyi 之后直接进行 ruyi install 会崩溃的问题。
  • 软件源格式更新:
    • 基于目前的设备安装器配置数据,新增实验性的结构化设备型号描述数据库,初期支持为每种设备型号描述其 CPU 与微架构能力。
  • 工程化迭代:
    • 将 AArch64 架构的构建任务迁移至 GitHub Actions 公开免费提供的实例上,以降低 RuyiSDK 团队的维护成本。
    • 修复了 CI 开源许可证检查任务。

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

IDE

RuyiSDK IDE 近期正在实现基于包管理器(ruyi list)的软件包资源管理,功能开发中。

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

GCC

提交了Ssnpm, Smnpm与Smmpm 的工具链支持,在社区中对玄铁C系列RISC-V芯片添加了mcpu选项支持

LLVM

  • 在 17.1.6 版本中新增默认 _mu_tum 类 policy 的 XTHeadVector 内建指令,与 RVV 1.0 的命名方式提供更好的兼容性。
  • 在 17.1.6 中修复 mask 版本的 vector bitwise logical 内建指令的指令选择问题。
  • 在 17.1.6 中补全 vector integer merge 和 vector floating-point merge 相关的内建指令。

V8

  • 继续增加 WASM JSPI 的支持功能:
    • in-sandbox chain of stacks
    • 删除 jump buffer 外部指针
  • 增加 C++ 垃圾回收模块的 Scan simulator stack and registers 功能
  • 修复 WASM OOB Trap Handler 特性中,Fault Address Register 没有在 mcontext 中被正确设置的 bug
  • 审阅并合入 syntacore 的2个 patch :
    • 优化32位比较操作代码生成
    • 类型转换优化
  • 修复非对齐 load/store 的代码生成中临时寄存器不够用的问题
  • 在指令选择阶段内联 Adapter's DeoptimizeView

操作系统支持矩阵

第 040 期·2025 年 03 月 11 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管

卷首语

欢迎阅读《RuyiSDK 双周进展汇报》第 40 期。在过去的两周里,我们团队持续努力,推进各项功能的开发与优化,具体进展将在下文中详细呈现。

我们期待在 2025 年 3 月 25 日发布下一个开发版本,届时将带来更多创新与改进。感谢您一直以来的支持与关注,您的反馈是我们前进的动力!

包管理器

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

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

  • 修复了 ruyi news list 命令的机读模式(porcelain mode)支持。
  • ruyi news read 增加了机读模式(porcelain mode)支持,返回格式与 ruyi news list 相同。
  • 软件源格式更新:
    • 不再支持以 JSON 格式撰写软件源全局配置与软件包描述。RuyiSDK 官方软件源已于 0.18 版本完成了升级,预期不受此变更影响。如您仍未升级您的 ruyi 版本,建议您重新安装 ruyi 并重做虚拟环境(如有)。
    • 为软件包版本描述新增了可选的 upstream_version 字段,用来记录相应上游对该版本的称呼。由于 RuyiSDK 软件源普遍采用语义化版本,经常需要对不采用语义化版本的上游版本号进行映射;新增该字段有助于 RuyiSDK 生态的软件包管理工具正确理解该类映射关系。
    • 为未来的软件包级别的公共信息作了向后兼容的预留。

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

IDE

  • RuyiSDK IDE Plugins 插件,新增 RISC-V 开发板管理功能,支持添加、编辑、删除及设置默认开发板。

    插件使用说明:

    1. 下载 org.ruyisdk.ide_0.0.3.jar
    2. 访问 https://mirror.iscas.ac.cn/ruyisdk/ide/0.0.3/ 下载 ruyisdk-0.0.3 并解压。
    3. 将 org.ruyisdk.ide_0.0.3.jar 放入 ruyisdk ide 的 dropins 目录。
    4. 执行 ./ruyisdk 重启 IDE。
    5. 启动后在菜单栏点击 "RuyiSDK" > "Open Board Manager" 即可打开 "RISC-V Board Manager" View 进行添加、编辑、删除及设置默认开发板等操作。

GCC

  • 更新了p扩展寄存器对指令的工具链支持,正在实现RVA23S的有关特权指令扩展中。

LLVM

  • 在 19.1.6 版本中修复了 Greedy Register Allocator 在某些 XTHeadVector intrinsic 上导致的编译器内部错误的问题
  • 在 17.1.6 版本中新增部分 XTHeadVector intrinsic 的操作数范围检查,和 RVV 1.0 行为对齐

V8

  • 在陆续添加TurborShaft IR支持后,删除TurboFan SON IR相关的旧代码
  • 审核类型转换优化、32bit比较优化patch(来自syntacore)
  • 实现Wasm JSPI功能中沙盒内的chain of stacks功能
  • 删除RISCV指令集不支持的ByteSwap 代码生成支持

操作系统支持矩阵

第 039 期·2025 年 02 月 25 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
xen0n
RuyiSDK 技术主管

卷首语

欢迎阅读《RuyiSDK 双周进展汇报》第 39 期。在过去的两周里,我们团队持续努力,推进各项功能的开发与优化,具体进展将在下文中详细呈现。

我们期待在2025年3月11日发布下一个开发版本,届时将带来更多创新与改进。感谢您一直以来的支持与关注,您的反馈是我们前进的动力!

包管理器

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

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

  • 运行不依赖软件源的命令时,如软件源仓库尚未拉取到本地,现在不会多余做拉取动作了。
  • ruyi list 现在支持基本的过滤查询了:使用 --category-is 查询某个分类下的软件包,使用 --name-contains 查询名称中包含特定字样的软件包。
  • 考虑到软件包的数量持续增加,不带任何参数的 ruyi list 不再受到支持。如果您有依赖先前行为的脚本等,请按照提示修改使用方式。

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

  • 新增了以下软件包:
    • source/wiringx: wiringX 项目的官方源码。wiringX 是模块化的 GPIO 支持组件。
  • 更新了以下软件包:
    • board-image/bianbu-bpi-f3
    • board-image/revyos-milkv-meles
    • board-image/revyos-sg2042-milkv-pioneer
  • 修复了 board-image/revyos-milkv-melesboot 分区的文件类型标记。

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

IDE

  • 实现 Eclipse 插件的三种导出和安装方式,输出操作文档

  • 继续 RuyiSDK IDE Plugins 插件功能开发:

    • 增加启动时执行 ruyi update 命令,并展示未读的 ruyi news 信息(基于接口协议)
    • 实现关于缓存/配置路径的 RuyiPaths 工具类

    插件使用说明:

    1. 环境要求:要求环境中已经安装好了 ruyi ,您可以参考文档安装
    2. 下载 org.ruyisdk.ide_0.0.2.jar
    3. 访问 https://mirror.iscas.ac.cn/ruyisdk/ide/0.0.3/ 下载 ruyisdk-0.0.3 并解压。
    4. 将 org.ruyisdk.ide_0.0.2.jar 放入 ruyisdk ide 的 dropins 目录。
    5. 执行 ./ruyisdk 重启 IDE。启动后会自动弹出未读 News。

GCC

实现了 Xqc 系列自定义厂商扩展支持,等待上游 review 中,继续维护 p 扩展实现,修复了工具链构建中的一些问题。

LLVM

  • 在 17.1.6 版本中修复了缺少 th.vloxeith.vsoxei 指令的问题
  • 在 17.1.6 版本中新增对部分内建函数操作数合法性检查的过程
  • 在 17.1.6 版本中修复部分包装函数名称不符合 RVV 1.0 规范的问题,选择这些包装函数将同时提供 1.0 和 0.7.1 规范下的函数名,以便更方便地进行迁移
  • 在 19.1.6 版本中修复了 MC 汇编器生成部分指令会出现编译器内部错误的问题

V8

  • Review 并合入 Leaptiering 支持
  • 添加模拟器中对 fp16 类型指令的模拟例程
  • 继续增加 Maglev 的特性支持

操作系统支持矩阵