Foreword
Welcome to the 48th issue of the “RuyiSDK Biweekly Progress Report”! The package manager has been updated to a new version, and we invite you to download and try it out.
To facilitate communication among RISC-V developers, the new website https://ruyisdk.cn is now live! Currently, over a hundred RISC-V developers and active enthusiasts from the PLCT lab are available to answer questions. We welcome you to register and participate in discussions and sharing.
If you encounter any issues while using RuyiSDK, you can provide feedback in the RuyiSDK discussion area or join the “Ninth RuyiSDK Office Hours” for online Q&A support on Thursday, July 17, at 15:00.
How to participate:
-
Join the Zoom meeting:
https://us02web.zoom.us/j/82424890125
-
Meeting ID: 824 2489 0125
-
Password: 233233
The next development version is scheduled for release on July 22, and we will continue to bring more improvements.
Package Manager
The RuyiSDK 0.37 corresponds to package manager version 0.37.0, which has been released today. You can download it from GitHub Releases or the ISCAS mirror source.
This update of the RuyiSDK package manager mainly includes the following content:
-
Added basic command-line auto-completion support, initially supporting Bash and Zsh shells. Thanks to @wychlw for the contribution!
To use the command-line auto-completion feature, please include the auto-completion script for
ruyiin the appropriate location of your shell profile (such as<span>.bashrc</span>or<span>.zshrc</span>):# For zsh users, replace bash with zsh eval "$(ruyi --output-completion-script=bash)" -
Currently supports auto-completion for
ruyisubcommands and commands likeruyi install. -
When using
ruyi self cleanto clear local data, it will not crash if the read status file does not exist. Thanks to @weilinfox for reporting the issue! -
When pulling from a remote Git repository fails, Python error messages will no longer be exposed to the user.
-
FTP passive mode will only be enabled for
curlorwgetwhen the download URL protocol is FTP. This fixes an issue where some RuyiSDK users could not download any files due to a bug in cURL 8.14.1. Thanks to @weilinfox for reporting the issue to theruyiproject! -
Refactored the resource handling method of
ruyi, separating it from the virtual environment mechanism to facilitate bundling other non-virtual environment-related resources, such as command-line auto-completion scripts and multilingual string files. Additionally, CI methods ensure that the compressed resources contained inruyiremain synchronized with the original files. -
Added support for OpenCloudOS 9.4, openEuler 24.03 LTS SP2, openEuler 25.03, and openKylin 2.0. The Python dependencies of
ruyihave some minor missing packages on these distributions, but the versions of the remaining dependencies meet the requirements. We expect to complete support for them by October 2025.
This update of the RuyiSDK software source mainly includes the following content:
- Entity database updates:
- Added SpacemiT X60 microarchitecture.
- Added SpacemiT K1 processor model.
- Added eMMC and SD storage device variants for BananaPi BPI-F3.
- Improved device support:
- Updated Buildroot SDK for Milk-V Duo (64 & 256M RAM) and Duo S (SD storage). Thanks to @Cyl18 for the contribution!
- Supported the SD storage model of BananaPi BPI-F3, with Bianbu Desktop and Bianbu Minimal systems provided by SpacemiT. Thanks to @wychlw for the contribution!
We welcome you to try it out or observe upstream; your needs are our goal and motivation for iterative development. You can also personally participate in the packaging and distribution of RuyiSDK software: currently, you can directly view and modify some of our packaging scripts and software source repositories on GitHub. In the future, according to this year’s development plan, we will also support authorized third-party contributors to upload packages, system images, and other distribution files programmatically to facilitate the packaging work.
IDE
- Experimental addition: A new plugin projectcreator has been added to import example demonstrations for specific development boards and automatically configure toolchains and custom build configurations. A new project wizard is provided, pre-setting development board project templates and custom builders for one-click project building within the ruyi virtual environment.
GCC
-
Updated the Binutils implementation of the P extension, rebased to version 2.44 here.
-
Rebased the P extension support of version 0.9.11 to gcc 15.1, currently under review here.
-
Ported RVA23 features to revyos-gcc 14.3 here.
LLVM
- xtheadvector: [Clang][XTHeadVector] implement zvlsseg indexed load/store: here.
- xtheadvector: [Clang][XTHeadVector] make zvlsseg indexed load/store compatible with RVV1.0: here.
V8
-
PLCT merged code
- Implemented optimizations in maglev 6656979: [riscv][maglev] Add some peephole optimisations
- Enabled wasm deopt test cases 6652018: [riscv][deoptimizer][wasm] Enable wasm deopt tests
-
Reviewed merges
- Refactored lane-size encoding method, implemented directly in opcode 6699489: [riscv] Refactor lane-size encoding
- Correctly recorded the pc_offset of Call functions 6652837: [riscv] Use pc_offset_for_safepoint instead of blocking trampolines
- To avoid issues with vector register checks failing in DEBUG mode, refactored some vector IR implementations 6668634: [riscv] Move F32x4 comp functions to code generator
Operating System Support Matrix
- Add test for booting from SATA on Megrez
- Jupiter/openKylin: Fix wrong
sys_ver - Duo S: Dump BuildRoot
- LiP4A: Fix broken download links
RuyiSDK GNU toolchain testing (GCC 16): here.