跳到主要内容

RuyiSDK 双周报

每两周获得最新开发进展

第 030 期·2024 年 09 月 30 日

· 阅读需 10 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK V0.19 版本已于今日发布。包管理器工具为 ruyi venv 新增了多工具链支持,目前可以为一个虚拟环境配置多个 target tuple 互不相同的工具链包,满足sdk构建时多工具链的需求。同时,RuyiSDK 开始了基础的遥测功能采集用户数据,目前完成了基础数据的采集(当前存储在用户本地),后续上传功能会在用户隐私协议、后端服务器就绪后正式启用。收集的 ruyi 安装信息、ruyi install 执行信息将帮助我们了解 RuyiSDK 的装机情况、编译器等工具的安装情况等。

此外,ruyi 工具基于主流的Linux发行版的打包工作基本完成,已经基于Debian、Ubuntu、Fedora、openEuler、Arch Linux等多个Linux发行版的流行版本完成了 ruyi v0.18 的打包,目前初步开放供用户尝鲜。

Eclipse 上游初步支持 RISC-V每日构建镜像已经可以下载试用。 Visual Studio Code IDE插件也正式开启开发,并输出视频教程以吸引更多开发者参与,第一课将于十月一日零点推送,欢迎关注

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.20 版本将在 10 月 22 日发布。

包管理器

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

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

  • 修复了当环境 locale 配置在本机上无效时,ruyi news list 在官方软件源上崩溃的问题。这也是 RuyiSDK 包管理器的首个来自外部贡献者的贡献。感谢 RekiDunois
  • 为打包工作者新增了 ruyi admin format-manifest 命令,用来自动格式化软件包描述文件,确保符合标准格式。
  • ruyi venv 新增了多工具链支持:可以为一个虚拟环境配置多个 target tuple 互不相同的工具链包了。
  • 新增了 ruyi self clean 命令,用来清理 Ruyi 产生的各种数据,释放存储空间。
  • 对于发行版直接再次分发 RuyiSDK 官方编译 ruyi 二进制的情况,为发行版打包工作者提供了手段来阻止用户不慎 ruyi self uninstall
  • 基础的遥测功能,目前不支持数据上传。详见“遥测”一节。

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

遥测

为帮助 RuyiSDK 团队更好了解用户使用习惯以改进体验,我们为 RuyiSDK 包管理器增加了基础的遥测功能。有以下 3 种遥测模式:

  • local: 仅收集数据,不主动上报。这是默认模式。
  • on: 收集数据并周期性上报。目前未实现。
  • off: 完全禁用遥测。

目前我们将收集以下的数据:

  • 首次运行 ruyi 时,将一次性收集少量设备信息。
    • 仅从系统随机数生成唯一的安装 ID,与任何系统配置、本地数据均无关;
    • 当前运行环境是否为几种知名 CI 服务之一,如 GitHub Actions、GitLab CI、Travis CI 等;
    • 操作系统内核种类与处理器架构;
    • C 运行库种类与版本(形如 glibc 2.40);
    • Linux 发行版代号与版本;
    • 如处理器架构为 RISC-V,还将收集由设备树指定的系统型号与 /proc/cpuinfo 所暴露的 CPU 核数、微架构、ISA 字符串等 RISC-V 特定信息。
  • 每次运行 ruyi,将记录调用的命令种类,不含参数。
  • 每次运行 Ruyi 虚拟环境中的工具链代理,将记录被调用的命令名。

如果您不希望参与遥测,请在运行新版 ruyi 之前做以下两种操作之一即可。要么确保环境变量中存在 RUYI_TELEMETRY_OPTOUT=1(请注意:不是 OUTPUT),要么在配置文件 ~/.config/ruyi/config.toml 加入以下内容:

[telemetry]
mode = "off"

在 RuyiSDK 完全支持遥测数据上传之前的一个版本,我们将会告知您此事,您可自行决定是否删除先前的遥测数据,以及是否禁用遥测。您可用 ruyi self clean --telemetry 删除所有的遥测信息,包括设备信息。

Linux 发行版打包

一直以来,RuyiSDK 包管理器都是在 GitHub Release 或 ISCAS 镜像源渠道分发二进制。用户需要自行下载、调整文件权限、重命名、安排进 $PATH 才能使用,些许不便,且打包后的二进制每次使用都要校验解压文件完整性,性能欠佳。为此,RuyiSDK 团队计划为主流 Linux 发行版打包 ruyi。目前,已经为如下的发行版完成了 ruyi v0.18.0 的实验性打包:

  • Debian 13 ("trixie")
  • Fedora 39, 40, 41
  • openEuler 24.03
  • Ubuntu 22.04 ("jammy"), 24.04 ("noble")

其中除 Fedora 39、Fedora 41 未有 riscv64 架构包之外,均提供三种官方支持架构即 amd64arm64riscv64 的二进制包。

目前,您可根据实际情况找到适合您的安装方式与尝鲜软件源:

后续我们将会在 RuyiSDK 新版本发布时同步完成二进制软件包的打包,并为各大主流发行版搭建正式的第三方软件源,敬请期待。

IDE

Visual Studio Code IDE插件正式开启开发,并输出视频教程。第一课将于十月一日零点准时推送!为国庆献礼~ 视频可以在观看。欢迎点赞关注一键三连!

Eclipse 上游初步支持 RISC-V,每日构建镜像已经可以下载试用:https://riscv.org/blog-chinese/2024/09/eclipse-riscv64-support-upstreamed/ RevyOS 小队的工程师联合其他开源社区开发者,成功为 Eclipse 上游代码仓库引入了对 riscv64 架构的初步支持。期间创建了二十余个 Issue/PR,涵盖了包括 SWT、Equinox 在内的关键组件。目前,Eclipse 已支持在 riscv64 平台上基于 OpenJDK 开发 Java 项目。

GCC

添加了Smrnmi扩展的支持,将riscv-gnu-toolchain仓库中的GCC版本同步更新至14.2,更新了allowlist中的测试列表

LLVM

本期暂无进展。

V8

  1. 合入Maglev JIT,正式在RISCV64架构上支持Tier-2的优化编译器。
  2. 实施了若干分支优化,包括将jalr优化到jal,zicond优化,jump to table优化,call address优化。
  3. 开始支持wasm deopt特性。

官网

为了了解 RuyiSDK 的安装和使用情况,提出了用户数据收集的需求,目前已经在 ruyi 工具中完成了初步的数据收集。

操作系统支持矩阵

我们对支持矩阵日渐膨胀的主文档进行了一定的重写,按照 Linux 发行版、RTOS、BSD 和其他类型进行了分类,并且新增&修改了一些测试报告。

第 029 期·2024 年 09 月 14 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK V0.18 版本已于今日发布。本期 RuyiSDK 重点针对 Milk-V Duo 开发板进行支持,调研并集成了演示示例 milkv-duo-examples,并集成了由 Milk-V 提供的、在 x86_64 平台上交叉编译 milkv-duo-examples 所需的自定义工具链,提供了一套 Milk-V Duo 的配套开发资源。同时软件源对 WPS Office、RV64ILP32 裸机工具链等软件进行了升级维护。

操作系统支持矩阵项目新增了 Microchip PIC64GX Curiosity Kit 开发板的调研,但是我们没有开发板所以还未能完成相关测试验证,我们欢迎有该开发板的热心朋友参与进来协助完成验证。 同时,支持矩阵项目通过一段时间的自动化工具研发,已经产生了第一个使用自动化工具完成的测试报告。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.19 版本将在 9 月 30 日发布。

包管理器

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

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

  • 进一步完善了 issue #181 的修复:先前虽然修复了代码块的折行缺字问题,但不经意间也让长度超过一行的 Markdown 列表项、块状引用等内容被截断了。
  • 完成了 issue #193: 为方便发行版的打包工作,移除了对 python-frontmatter 这一第三方库的依赖。

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

  • 更新了 WPS Office 到上游最新版本。
  • 更新了 RV64ILP32 裸机工具链 toolchain/gnu-plct-rv64ilp32-elf 到当前最新版本。
  • 更新了 Milk-V Duo 的支持:
    • 新增打包了 Milk-V Duo 官方实例代码库 source/milkv-duo-examples。您可在一个新的目录下,用 ruyi extract 命令解压它。
    • 新增打包了 Milk-V 官方提供的 Milk-V Duo 宿主工具链如下。请注意:它们是 RuyiSDK 受权对上游 https://github.com/milkv-duo/host-tools 仓库进行的重新打包;且上游仅提供了 x86_64 架构的二进制。
      • toolchain/gnu-milkv-milkv-duo-bin:适用于 Linux glibc 环境。
      • toolchain/gnu-milkv-milkv-duo-elf-bin:适用于裸机环境。
      • toolchain/gnu-milkv-milkv-duo-musl-bin:适用于 Linux musl 环境。
    • 更新了 Milk-V Duo 官方系统镜像包到上游最新版本。RuyiSDK 受权对这些镜像进行了重新打包,以便后续所有通过 RuyiSDK 渠道分发的系统镜像都能以 ruyisdk 用户名与密码登录,方便您的评估。

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

IDE

开始启动 RuyiSDK VSCode IDE 插件开发和 RuyiSDK Eclispe IDE 开发。计划在开发的同时输出短视频吸引新人加入。

GCC

更新了Zcmt的实现,修复了gcc14.2回归测试中发现的一些问题,正在进行Smrnmi扩展的支持中。

LLVM

本期暂无进展。

V8

  1. 在 RISC-V 平台适配 leaptier 特性,提高 JIT 编译器 tier-up 和 tier-down 的安全性和性能。

  2. 对 jalr 进行优化:

    (1)将编译时跳转偏移可以满足 jal 立即数域编码要求的 jalr 指令,替换为 jal 指令。

    (2)对必须进行寄存器间接地址+编译时额外跳转偏移的情况,将能够满足 jalr 立即数编码域条件的跳转编译编码至jalr 指令,不再适用额外指令进行跳转目标寄存器的计算。

  3. 使用 zicond 指令集扩展对 codegen 进行优化。

官网

梳理了用户数据收集需求,计划在用户允许的情况下通过数据收集的方式了解 ruyi 包管理器的安装和使用情况,协助我们提升和改进产品。

操作系统支持矩阵

第 028 期·2024 年 09 月 03 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.17 版本已于今日发布。RuyiSDK 包管理器修复了一些已知的缺陷,RuyiSDK 软件源更新了 Box64 和 WPS Office;RuyiSDK 官网也新增 algolia search,现在可以搜索网站上的任何内容了。

此外,RuyiSDK 在第四届 RISC-V 中国峰会(RISC-V Summit China 2024)上,进行了包括 RuyiSDK 介绍、Ruyi 包管理器的自动化测试、RISC-V 操作系统支持矩阵 等报告;RuyiSDK 还亮相 elexcon 2024深圳国际电子展,展示了近期的工作成果。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.18 版本将在 9 月 14 日发布。

包管理器

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

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

  • 修复了 issue #181: 现在在宽度较短的终端窗口中使用 ruyi news read 等功能时,Markdown 代码块中的长行不会缺字了,行首、行尾也不再存在影响复制粘贴的空格。代价是覆盖整行宽度的漂亮的背景色无法实现了。

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

  • 更新了 Box64 到上游最新开发版本。
  • 更新了 WPS Office 到上游最新版本。请注意:上游移除了 AArch64 架构的原生支持。这部分用户也将需要依赖二进制翻译方案来运行 WPS Office 了。
  • 明确了软件源内容的开源许可证:Apache 2.0 许可证,与 Ruyi 包管理器本体一致。

此外,我们已经着手设计、实现 ruyi 包管理器分发渠道与 RuyiSDK 软件源的服务端组件。未来,这将使得 RuyiSDK 能够更加频繁地、自动化地更新软件源中的包;也能在取得用户明确授权的前提下,使 RuyiSDK 用户与测试人员能够向 RuyiSDK 团队反馈一定的使用信息,有助于未来的设计与维护工作。

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

IDE

本期暂无进展。

GCC

  • 支持了Zimop扩展
  • 修复了部分回归测试中发现的错误

LLVM

  • 支持了对 tuple type 的 vget/vset/vcreate 操作。
  • 修复在指定 XTHeadVector 拓展时,编译器未定义 __riscv_vector 的问题,现在编译器行为与 GCC 一致。

V8

  1. 提交patch,使V8 for Android RISCV64在 NDK r27 版本获得标准构建支持(无需在手工配置NDK toolchain)。
  2. 继续实现TurboShaft SIMD IR 到RVV的指令选择。
  3. 移植central stack switches特性。

官网

截止今日9月3日,RuyiSDK 网站访问人数986人,新增152人,访问页面7622次,新增2755次。RuyiSDK 微信交流群132人,新增49人。

官网新增 algolia search,现在可以搜索网站上的任何内容啦!

RuyiSDK 亮相 elexcon 2024深圳国际电子展

操作系统支持矩阵

  • 修正了部分 typo 和 i18n / 英文翻译。
  • lintestor 应用软件可用性测试项目继续更新中
    • 重写了测试调度相关的代码
    • 添加了全局前置环境配置
    • 改进了测试结果报告
    • 新增了更多软件包的测试用例

第 027 期·2024 年 08 月 13 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.16 版本已于今日发布。包管理器完成了设备安装器(ruyi device provision)的插件化改造,后续升级程序将更加方便。此外,RuyiSDK 完善了Canaan Kendryte K230D 开发板的支持,对 K230D SDK 源码进行了更新和完善,同时建立了SDK自动构建CI,并联合玄铁团队和嘉楠科技进行了标题为“嘉楠勘智 K230D: 首款基于新 32 位 RuyiSDK 的 AIoT 量产芯片”的宣发,展示了基于 K230D RuyiSDK 源码的性能对比结果和其它合作成果。

操作系统支持矩阵持续更新中,同时开始启动操作系统中语言运行时环境、语言虚拟机等运行支持软件在不同Linux发行版中的支持情况(应用软件支持矩阵),如系统包管理器是否提供安装,以及软件版本信息。目前已经完成了 Debian 的部分测试用例。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.17 版本将在 9 月 3 日发布。此外RuyiSDK报名了2024年8月27日-29日在深圳会展中心举办的深圳国际电子展,欢迎关注。

包管理器

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

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

  • 完成了设备安装器(ruyi device provision)的插件化改造。今后对不常见刷写步骤的支持将更加方便了:不一定需要更新 ruyi 本体了。

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

IDE

本期暂无进展。

GCC

RUYISDK-GNU-Toolchain发布了基于GCC14.2与Binutils2.43的linux工具链,修复了回归测试中发现的一些问题。

LLVM

本期暂无进展。

V8

审核新一代基线编译器maglev的riscv支持框架。

官网

截止今日 8 月 13 日,订阅人数一共 40 人(增加 2 人)。RuyiSDK 网站访问人数 834 人(增加 266 人),访问页面 4907 次(增加 2197 次)。RuyiSDK 微信交流群 83 人。

嘉楠勘智 K230D: 首款基于新 32 位 RuyiSDK 的 AIoT 量产芯片,详情阅读官网博客 https://ruyisdk.org/blog/2024/07/30/k230d/

操作系统支持矩阵

本期更新:

  • Milk-V Duo S / NuttX RTOS: 同步最新主线版本
  • Milk-V Pioneer : 新增 Deepin RISC-V
  • StarFive VisionFive 2: 重测了 Deepin RISC-V CI build,已确认可用
  • 主表格:同步 Deepin 测试结果

自动化测试/应用软件支持矩阵准备:lintestor

  • 目前已完成了 Debian 的部分测试用例,结果见此处

第 026 期·2024 年 07 月 23 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.15 版本已于今日发布。 这个版本,包管理器为多语言支持进行了准备,完成了用户系统区域、语言配置与包管理器语言版本的匹配;同时包管理器支持了不依赖 Docker 的构建方式,为 Linux 发行版打包 ruyi 和将 ruyi 集成到 Linux 发行版提供了更多样的构建方式。RuyiSDK 软件源随着 Box64 上游版本的更新,将Box64 版本更新到 0.3.0 版本,并完善了对 WPS 的支持和文档

此外,RuyiSDK 初步集成了 Canaan Kendryte K230D 开发板,由 RuyiSDK 受权打包的 CanMV Linux SDK 镜像,附带演示程序(提供 LP64 与 RV64ILP32 两种 ABI),不过相关资源依然在更新和完善,RuyiSDK 也将及时更新集成的 SDK 资源。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。

因 8 月亚洲多地(日本、中国)RISC-V 活动或峰会的开展,RuyiSDK 的部分小伙伴也有积极参与,因此近期的版本发布时间将有所调整,下一个开发版本 RuyiSDK V0.16 版本将在 8 月 13 日发布(RuyiSDK V0.17 版本将在 9 月 3 日发布)。

这里附上 RISC-V 近期一些会议链接,欢迎关注:

包管理器

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

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

  • 为多语言支持做好准备:在需要输出本地化内容,如软件包的手工下载步骤说明等内容时,当用户系统的区域、语言配置与当前内容的可选区域、语言版本不完全匹配时,现在会尽可能地匹配了。

    例如:如果您将系统配置为新加坡英语,而某条内容仅提供美国英语与中国大陆中文两种版本,那么 ruyi 0.15.0 将为您展示美国英语内容,而非崩溃。

  • 支持了不依赖 Docker 的构建方式,以方便发行版打包者,或不使用官方支持架构、系统组合的用户尝鲜 ruyi

    需要注意的是:因为目前 RuyiSDK 官方软件源的内容分发形式以二进制为主,所以想在非官方支持系统上使用 ruyi 的用户将需要组织起来,自行搭建另一套软件源。RuyiSDK 团队无法保证此种情况下的用户体验。

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

  • 软件源的结构不再与 ruyi 0.7.0 或更低版本兼容。是时候升级到最新版本了。
  • emulator/box64-upstream 已更新到 0.3.0。
  • 用 Box64 运行 WPS Office 的操作文档已更新。
  • Ruyi 设备安装器现已新增支持以下设备型号与系统:
    • Canaan Kendryte K230D:由 RuyiSDK 受权打包的 CanMV Linux SDK 镜像,附带演示程序。提供 LP64 与 RV64ILP32 两种 ABI。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

开发方面暂无进展;基于 Milkv Duo 开发板,调研并跑通了一些 Demo,作为集成的 SDK 的部分内容。

GCC

Gprofng 的 RISC-V 后端支持已被上游合并,将作为 binutils 2.43 的新特性 更新了 P 扩展的 binutils 支持,正在开发 P 扩展的 draft 草案支持中

LLVM

尝试使用该 LLVM 编译器,对 OpenCV 进行交叉编译,发现了如下缺失的 intrinsic,已经修复:

  • 支持 Clang 内建函数 vssra/vssrl
  • 支持 LLVM 内建函数 vssra/vssrl

官网

截止今日 7 月 23 日,订阅人数一共 38 人(增加 1 人)。RuyiSDK 网站访问人数 568 人(增加 62 人),访问页面 2710 次(增加 1286 次)。RuyiSDK 微信交流群 76 人。

Ruyi 包管理器下载量达 7009 次。Youtube 出现 RuyiSDK 俄语视频: Чё? Прошивать Milk-V Duo S за 2 минуты!

操作系统支持矩阵

本期更新:

  • Deepin RISC-V
    • StarFive VisionFive
    • StarFive VisionFive 2
    • Sipeed Lichee Pi 4A
  • openKylin RISC-V 2.0 RC
    • StarFive VisionFive 2
  • Bianbu
    • Milk-V Jupiter (CFT)
  • Debian
    • Milk-V Duo S 更新至最新版 v1.4.0
  • 一些小的 Typo Fix

内容请详见:ruyisdk/support-matrix

第 025 期·2024 年 07 月 09 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.14 版本已于今日发布。 在这个版本中,包管理器正式引入插件架构ruyi 虚拟环境的 profile 相关处理现在完全由插件负责了。此外 PLCT 完成了 Box64 的 RISC-V 架构适配,并将代码合入上游,RuyiSDK 软件源此次增加了 Box64 模拟器并初步实现了在 Box64 中打开 wps-linux-x86_64 writer。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.15 版本将在 7 月 23 日发布。

包管理器

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

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

  • 正式引入插件架构:ruyi 虚拟环境的 profile 相关处理现在完全由插件负责了。
  • 支持了 Debian 软件包格式 *.deb 的解包操作。
  • 再次完善了对“预发布版本”的判断:先前会对非完全由数字结尾的该类版本号判断错误。 但该潜在问题不会被当前的 RuyiSDK 软件源内容触发。
  • 修复了 riscv64 Python 3.12 环境下 pygit2 的构建失败问题:先前需要在 pygit2 构建开始之后、试图在其虚拟环境中执行 setup.py 前,人工干预,在该环境中安装 setuptools——从 Python 3.12 起该包已经不会被自动安装。

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

  • 增加了从上游源码打包的 Box64 架构模拟器:emulator/box64-upstream
  • 增加了办公套件 extra/wps-office。请注意:由于是商业软件的缘故,首次运行该软件包时需要操作接受一份《最终用户许可协议》。
  • 您可按照 ruyi news 的指引,在您的 RISC-V 桌面设备上用 Box64 运行 WPS Office 进行办公了。

为了支持刷写方式复杂、需要夹杂人工干预、镜像文件需要手工下载等复杂情况下的设备初始化,我们正在将设备安装器重构为基于插件架构的形式。 由于本开发周期临时加入了 Box64 运行 WPS Office 的 PoC 内容,设备安装器的插件化重构工作暂缓,但仍将在未来的版本上线。届时旧版 ruyi 的设备安装器功能将不可用,请先升级再进行体验。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期无进展。

GCC

  • 提交了 gprofng 的 patch,目前已通过 review 修改,正在等待合并。
  • 更新了 profiles 的支持。

LLVM

  • 新建 Tuning-SPEC-CPU 分支,用于 Spec CPU 较高性能的优化
  • 支持了使用 vgetvset 在不同 LMUL 的寄存器组上进行操作
  • 完善相关测试用例,增加更多真实世界的代码片段作为测试

V8

  1. 新增 RISCV32 的 Turboshaft 单元测试支持。
  2. 新增 RISC-V SV39 支持。

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

官网

RuyiSDK 社区参与的 MoonBit 第三次 Meetup 活动回顾来了!🎉

由 MoonBit 联合 RuyiSDK 和 Intel 举办的第三次 Meetup 活动圆满结束啦!本次活动嘉宾云集,涵盖了从云原生开发平台到 WebAssembly 模块化技术、编程语言垃圾回收技术的最新进展、RuyiSDK 包管理器以及 RevyOS 最新进展多个热点话题。

截止今日 7 月 8 日,订阅人数一共 37 人(增加 1 人)。RuyiSDK 网站访问人数 502 人(增加 103 人),访问页面 1424 次(增加 339 次)。RuyiSDK 微信交流群 70 人。

操作系统支持矩阵

  • Ubuntu 24.04 LTS
    • StarFive VisionFive 2
    • HiFive Unmatched
  • openEuler RISC-V 24.03 LTS
    • Sipeed Lichee Pi 4A
    • Milk-V Pioneer (v1.3)
  • 一些小的 typo 修复

内容请详见:ruyisdk/support-matrix

第 024 期·2024 年 06 月 24 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.13 版本已于今日发布。 在这个版本中,操作系统支持矩阵增加了开发板的 IP Core 信息,同时完成了英文版本的支持。RuyiSDK 包管理器修复并完善了一些缺陷,同时为引入插件架构做了准备,以达到后续更新不需要每次都必须下载最新版的 ruyi 工具。同时 ruyi 包管理器增加了新发布的 openEuler 24.03 LTS 系统的支持和测试

此外,RuyiSDK 还参加了两期活动:MoonBit Meetup 第三期2024 上海国际嵌入式展 ,在这两个活动中介绍了 RuyiSDK 包管理器。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.14 版本将在 7 月 9 日发布。

包管理器

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

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

  • 修复了 issue #158: coremark 包的两个版本,解压后的目录布局不统一。现在都会在当前工作目录下“摊开”了。
  • 修复了 issue #159: 对“预发布版本”判断方式的不统一。
  • 随着 Python 3.12 的正式发布,官方 ruyi 二进制也在 Python 3.12 环境构建了。
  • 为引入插件架构做好准备:引入了 Starlark 语言支持,并支持在 CI 自动化构建。Starlark 是一种极度简化的 Python 方言,被 Bazel、BUCK 等构建系统广泛采用;这是为了让所有了解 Python 语言的开发者都可使用熟悉的语法撰写 RuyiSDK 包管理器插件。

为了支持刷写方式复杂、需要夹杂人工干预、镜像文件需要手工下载等复杂情况下的设备初始化,我们正在将设备安装器重构为基于插件架构的形式,预计将于下个版本付诸测试。届时旧版 ruyi 的设备安装器功能将不可用,请先升级再进行体验。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期暂无进展。

GCC

  • 发布了新的 rv64ilp32 release 版本,修复了 gdb 在 rv64ilp32 调试时的问题。
  • 完成了 P 扩展在 GCC14 上的 Rebase 工作,已合入 RUYISDK GCC14 分支。
  • 添加了 Sm/scsrind 扩展的支持。
  • 正在添加 Ssccft/Smcdeleg 扩展的支持中。

LLVM

修复了如下问题:

  • 支持了 vlmul_truncvlmul_ext 等 bitcast 操作
  • 支持 vreinterpret 在向量布尔值和整数之间的转换
  • LLVM 对向量 Mask 操作支持使用 nvx1i1/nvx2i1/nvx4i1 类型的操作数
  • Clang 对向量 Mask 操作支持了 vbool16/32/64_t 类型的操作数
  • 修复了 RISCVInsertVSETVLI 中对 handleAVLImm 的处理
  • 修复了对 XTHeadVector 中支持的 VSETIVLI 指令的模拟的过程

V8

  1. 添加 RISC-V 平台的 TurboShaft SIMD IR 支持。
  2. 添加 CallApi 支持。

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

官网

以用户视角,调整并更新了部分使用文档。 截止今日 6 月 25 日,订阅人数一共 36 人(增加 3 人)。RuyiSDK 网站访问人数 399 人(增加 108 人),访问页面 1085 次(增加 237 次)。RuyiSDK 微信交流群 57 人(ruyisdk meetup 和 展会吸引)。

操作系统支持矩阵

操作系统支持矩阵本次更新:

  • Ubuntu
    • Nezha D1: 更新至 24.04 版本
    • Lichee RV D1: 更新至 24.04 版本
  • Arch Linux
    • D1h(新增)

以及最重要的:我们终于有 i18n / 英文翻译啦 🎉

共计 448 个文件修改,数十次 Review,这可能是支持矩阵创立以来最大的一次修改,在此感谢各位贡献者的参与~

第 023 期·2024 年 06 月 11 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.12 版本已于今日发布。 在这个版本中,操作系统支持矩阵为3 款开发板新增了其支持的操作系统,RuyiSDK 包管理器本期重点修复并完善了一些缺陷,并增加了 Ubuntu 24.04 LTS 系统的支持和测试;官网建设方面申请了公用邮箱contact@ruyisdk.cn,优化了订阅体验。

RuyiSDK 目前采用先调研摸底、然后包管理器集成支持(含设备安装器集成支持)、再 IDE 集成支持的大致路线推进。前期初步完成了首批 RISC-V 开发板的初步调研(50 款),并优先在包管理器和安装器中提供了集成化的系统镜像安装服务。随着 RuyiSDK 对开发板的深入支持,计划与厂商对接,一起合作推动相关工作的开展。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.13 版本将在 6 月 25 日发布。

包管理器

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

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

  • 修复了先前 Pine64 Star64 Armbian 镜像无法下载的问题。
  • 对于部分必须由用户手工下载的文件,支持了相应的用户体验:按照当前系统语言设置,渲染相应的提示语。
  • 升级了 pygit2 依赖库版本到 1.5.0,以支持 libgit2 的 1.8 版本。
  • 修复了 XDG_STATE_HOME 环境变量被无视的问题。

为了支持刷写方式复杂、需要夹杂人工干预、镜像文件需要手工下载等复杂情况下的设备初始化,我们正在对设备安装器进行重构,预计将于下个版本付诸测试。届时旧版 ruyi 的设备安装器功能将不可用,请先升级再进行体验。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

基于 VSCode IDE,以及包管理器提供的数据接口,在 VSCode 中实现获取全部的 environment。

GCC

支持了 Zimop, Zfbfmin 等多个新扩展,更新修复了 GCC14 的部分回归测试问题。

LLVM

项目大部分 intrinsic 函数已经得到支持,目前正在完善测试流程和测试数据。 至上次更新依赖,新修复了如下问题:

  • 修复了 __riscv_v_elen__riscv_v_elen_fp 在开启 XTHeadVector 拓展时的定义缺失的问题
  • 新增加了两个工具内建函数:vundefinedvreinterpret
  • 将带 mask 的 RVV intrinsic 函数的 policy 从默认的 TAMA (tail agnostic and masked-off agnostic) 修改为 TAMU (tail agnostic and masked-off undisturbed), 使得这些内建函数符合 T-Head Vector 规范。
  • 新增了更多测试用例:例如 rvv_index.c, rvv_branch.c 等。

V8

  1. 继续添加 TurboShaft IR 的指令选择支持。
  2. 添加 WASM 新特性 JSPI 的支持。

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

官网

增加了contact@ruyisdk.cn邮箱,优化了订阅体验。

截止今日 6 月 11 日,订阅人数一共 33 人(增加 1 人)。RuyiSDK 网站访问人数 291 人(增加 114 人),访问页面 848 次(增加 440 次)。

操作系统支持矩阵

本周在支持矩阵中新增了更多开发板和操作系统:

  • Milk-V Mars: BuildRoot
  • Milk-V Duo/Duo S/Duo 256M: Zephyr
  • D1: Arch Linux

内容请详见:ruyisdk/support-matrix

第 022 期·2024 年 05 月 28 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.11 版本已于今日发布。 RuyiSDK 社区首次线下 Meetup 成功举办。RuyiSDK 包管理器本期重点修复并完善了一些缺陷,同时 RuyiSDK 软件源增加支持了 Pine64 Star64 开发板,此外正在设计第三方系统镜像在如意软件源的二次分发管理(很多系统镜像存放在网盘、Google Drive、MEGA 等平台上,不便于下载)、以及根据源码自构建出的系统镜像的管理(一些开发板未提供二进制,仅提供源码,需要用户自己编译构建系统镜像),后续将为用户提供更方便的镜像服务。

支持矩阵参考 RISC-V Open Hours 中汇总的 RISC-V 开发板,针对国外主流开发板进行了补充,此外增补了全志处理器的一些开发板的调研,目前支持矩阵已经覆盖了 milkv、矽速、嘉楠、赛昉、沁恒微电子、全志、芯来 这 7 家企业几乎全部 RISC-V 开发板(已知的)、5 款较为流行的国外 RISC-V 开发板,已提交调研和测试结果的开发板数量已有 49 款;RuyiSDK 计划集成所有流行的 RISC-V 开发板,欢迎大家继续补充遗漏的开发板型号。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.12 版本将在 6 月 11 日发布。

包管理器

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

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

  • 去除了先前唯一的 LGPL 依赖。现在 RuyiSDK 包管理器及其所有依赖都采用宽松开源许可证了,方便下游用户在商业场景取用。

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

  • Ruyi 设备安装器现已新增支持以下设备型号:
    • Pine64 Star64

我们注意到越来越多的设备型号,甚至如最新面世的 BananaPi BPI-F3 等等,其系统镜像仅以网盘(百度网盘、Google Drive、MEGA 等服务)方式分发。对这些设备型号的妥善支持面临挑战;在接下来的版本迭代中,我们将尝试支持此场景,敬请期待或参与进来。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

基于 VSCode IDE,以及包管理器提供的数据接口,初步在 VSCode 中实现了 news、如意软件源工具链、demo 等资源的获取,初步可以展示 news(软件更新新闻),软件源工具链资源的选择和安装、基于虚拟环境的 demo 的编译等初步模块化功能。

GCC

更新了 RV64ILP32 的支持,,包括 Binutils,QEMU,说明文档等,发布了新的 release 工具版本。

LLVM

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 14.7. Vector Floating-Point Square-Root Operations
    • 14.10. Vector Floating-Point MIN/MAX Operations
    • 14.11. Vector Floating-Point Sign-Injection Operations
    • 14.12. Vector Floating-Point Compare Operations
    • 14.13. Vector Floating-Point Classify Operations
    • 14.14. Vector Floating-Point Merge Operations
    • 14.15. Vector Floating-Point Move Operations
    • 14.16. Single-Width Floating-Point/Integer Type-Convert Operations
    • 14.17. Widening Floating-Point/Integer Type-Convert Operations
    • 14.18. Narrowing Floating-Point/Integer Type-Convert Operations
  • 完善测试流程和测试数据
    • 增加了 rvv-intrinsic-doc 仓库中位于 examples/ 目录下的测试用例
    • 在 GitHub Actions 中使用 qemu 6.2 对编译器输出的程序进行模拟运行测试
    • 重新整理 clang 部分对 RVV intrinsic 的测试用例,使其符合用例规范

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

官网

RuyiSDK 首次线下 Meetup 圆满结束,下次见!

RuyiSDK 网站添加统计功能,增加了德语支持。ruyisdk.cn 域名 ICP 备案完成,技术论坛筹备中。

截止今日 5 月 28 日,订阅人数增加 14 人(由 meetup 引流),一共 32 人。RuyiSDK 网站自 5 月 16 日添加统计功能后,访问人数 177 人,访问页面 408 次。

操作系统支持矩阵

本周在支持矩阵中新增了更多开发板和操作系统:

  • R128
  • BeagleV-Ahead
  • BeagleV-Fire
  • Star64
  • MongoPi MQ Pro
  • Duo 256M
  • BPi-F3
  • DongshanPI-哪吒 STU
  • DongshanPI D1s
  • D1s NeZha
  • Mangopi MQ
  • CH573
  • Polarfire SoC FPGA Icicle Kit

内容请详见:ruyisdk/support-matrix

至此,操作系统支持矩阵已覆盖了近 50 款开发板,撒花~

第 021 期·2024 年 05 月 14 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.10 版本已于今日发布。 如意软件源仓库发布了 PLCT 实验室提交的支持 T-Head Vector 的 LLVM 17.0.6 版本。RISC-V 设备集成与支持方面,RuyiSDK 完成了对沁恒微电子现有 RISC-V 全产品系列的调研,并在设备系统安装器中添加支持。 此外,全志、芯来RISC-V 处理器的开发板也已经加入集成设备清单,目前相关开发板大部分已经完成调研,接下来也会集成到如意设备安装器中。

为了完善国内注册功能,如意官网在进一步的完善后端服务端和推进 ruyisdk.cn 域名备案。RuyiSDK 推广工作也开始筹备,RuyiSDK 社区首次线下 Meetup 完成筹备,将于 5 月 18 举办

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.11 版本将在 5 月 28 日发布。

包管理器

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

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

  • 支持了全局选项 --porcelain 以方便外部程序与 ruyi 交互。初期适配了 ruyi listruyi news list 两种操作。
  • ruyi news 在某条新闻存在当前系统语言翻译版本时,会优先展示此语言版本了。

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

  • 新增打包了 PLCT 维护的 LLVM 工具链 toolchain/llvm-plct,主要特色是 XTHeadVector 支持。
  • 新增支持了大量沁恒微电子(WCH)RISC-V MCU 评估板。Ruyi 设备安装器现已新增支持以下设备型号:
    • WCH CH32V103 评估板
    • WCH CH32V203 评估板
    • WCH CH32V208 评估板
    • WCH CH32V303 评估板
    • WCH CH32V305 评估板
    • WCH CH32V307 评估板
    • WCH CH582F 评估板
    • WCH CH592X 评估板

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期无可见交付进展。

GCC

更新了 RUYISDK GCC14 分支,目前正在 rebase rv64ilp32/SIMD/Profiles 等特性中。

LLVM

  • 增加针对 T-Head Vector 的优化 Pass

    • 增加了 RedundantVSETVLIElimination 优化过程,用于消除冗余的 vsetvli 指令
  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:

    • 14.1. Vector Single-Width Floating-Point Add/Subtract Operations
    • 14.2. Vector Widening Floating-Point Add/Subtract Operations
    • 14.3. Vector Single-Width Floating-Point Multiply/Divide Operations
    • 14.4. Vector Widening Floating-Point Multiply Operations
    • 14.5. Vector Single-Width Floating-Point Fused Multiply-Add Operations
    • 14.6. Vector Widening Floating-Point Fused Multiply-Add Operations
    • 14.7. Vector Floating-Point Square-Root Operations
    • 14.8. Vector Floating-Point Reciprocal Square-Root Estimate Operations
    • 14.9. Vector Floating-Point Reciprocal Estimate Operations
    • 14.10. Vector Floating-Point MIN/MAX Operations
    • 14.11. Vector Floating-Point Sign-Injection Operations
    • 14.12. Vector Floating-Point Compare Operations
    • 14.13. Vector Floating-Point Classify Operations
    • 14.14. Vector Floating-Point Merge Operations
    • 14.15. Vector Floating-Point Move Operations
    • 14.16. Single-Width Floating-Point/Integer Type-Convert Operations
    • 14.17. Widening Floating-Point/Integer Type-Convert Operations
    • 14.18. Narrowing Floating-Point/Integer Type-Convert Operations
    • 17.2. Integer Scalar Move Operations
    • 17.3. Floating-Point Scalar Move Operations
    • 17.4. Vector Slide Operations
    • 17.5. Vector Register Gather Operations
    • 17.6. Vector Compress Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:

    • 14.1. Vector Single-Width Floating-Point Add/Subtract Operations
    • 14.2. Vector Widening Floating-Point Add/Subtract Operations
    • 14.3. Vector Single-Width Floating-Point Multiply/Divide Operations
    • 14.4. Vector Widening Floating-Point Multiply Operations
    • 14.5. Vector Single-Width Floating-Point Fused Multiply-Add Operations
    • 14.6. Vector Widening Floating-Point Fused Multiply-Add Operations
    • 15.1. Vector Single-Width Integer Reduction Operations
    • 15.2. Vector Widening Integer Reduction Operations
    • 15.3. Vector Single-Width Floating-Point Reduction Operations
    • 15.4. Vector Widening Floating-Point Reduction Operations
    • 17.4. Vector Slide Operations
    • 17.5. Vector Register Gather Operations
    • 17.6. Vector Compress Operations

OpenJDK

  1. OpenJDK PRs:
  1. Reviewed riscv-port-jdk11u backport PRs:
  1. CFV: New RISC-V Port Committer: Gui Cao

V8

  1. 新增 fastcall 特性的 JavaScript 可重入特性。
  2. 修复内置模拟器 RVV 寄存器内容未初始化、指针压缩开启后,32 位模式下指针判零等 bug。

官网

RuyiSDK 社区首次线下 Meetup 来啦,5 月 18 日软件所见!

为了完善国内注册功能,如意官网在进一步的完善后端服务端和推进 ruyisdk.cn 域名备案。

操作系统支持矩阵

新增部分全志、芯来开发板的系统支持情况调研;基于现有开发板和相关文档展开测试验证,产出测试报告。

  • Milk-V Duo S
    • NuttX
      • 新版本重新测试
    • BuildRoot
    • Debian
  • CanMV / Kendryte K230
    • NuttX
    • RT-Thread
  • StarFive VisionFive 2
    • NuttX
  • Maix-I K210
    • NuttX
  • Nuclei DDR200T
    • FreeRTOS
    • RT-Thread
  • Longan Nano
    • RT-Thread
  • RV Star
    • FreeRTOS
    • RT-Thread
  • 100ASK-V853-PRO (Allwinner V853)
    • Melis
  • CM32M433R-START
    • FreeRTOS
    • RT-Thread
  • TinyVision
    • Melis
  • Allwinner V853
    • Melis
  • Youmu Pi
    • Melis

内容请详见:ruyisdk/support-matrix