Reporting period: Monday, November 2, 2026 through Friday, November 6, 2026 — 5 working days.

Sources: 5 issues of this publication’s daily RuyiAI update reports (2026-11-02 through 2026-11-06; each issue’s window runs from 04:30 the previous day to 04:30 of the issue date, with Monday covering the preceding 3 days including the weekend); plus a 168-hour repository audit of three organizations — RuyiAI-Stack, ruyisdk, and buddy-compiler — a full paginated commit-by-commit review of the main openRuyi-Project repository, dual-source verification against the RuyiSDK developer community and the openRuyi distribution news page, and three-page snapshots of the official RuyiAI homepage (verification coverage extends to the afternoon of 11-07).

Editorial note: This week saw the most concentrated structural changes of the quarter, with three main threads converging at once. First, the last mile of the distribution pipeline was opened up — openRuyi #1350, stalled for 43 days, was merged on 11-03, bringing the buddy-mlir, triton, and tilelang trio into the distribution as RPM specs for the first time. Second, triton-riscv spent a single day transforming itself from “maintaining a patched Triton fork” into “a plugin for upstream Triton,” netting over two thousand lines deleted and the patch directory disappearing entirely. Third, the AME/BOSCAME matrix backend landed two commits within the week: on the LLVM side, register classification and tile scheduling were added; on the buddy-mlir side, a single commit of 209 files and over forty thousand lines rolled out the Kernel Contract, SPM/DMA planner, runtime, and FPGA tooling together. The release side tells the other half of the story: ruyi shipped a beta after a 39-day gap, while the stable release and the openRuyi 2026.10 monthly release had still not landed by the end of this week. Beyond the daily-report material, this weekly adds five new verification findings (mostly after the daily-report windows or at period boundaries), listed in the appendix.


I. Weekly Highlights

  • openRuyi #1350 merged; the RuyiAI trio enters distro packaging after seven weeks: On 11-03 at 15:59, this PR—opened on 09-21 at 17:55—was merged after 43 days of review, ultimately landing three commits, ten files, and 838 added lines, bringing three specs into the SPECS directory: buddy-mlir (0.1.2, source anchored at 60f354a7, bundling a pinned LLVM snapshot 3845a205), python-triton-ruyiai (3.8.0+git20261103.da5291b), and python-tilelang-ruyiai (0+git20261028.0b7d66e). The trio shares a single LLVM/MLIR chain: buddy-mlir builds its own LLVM and installs it to /usr/lib64/buddy-mlir/llvm, while triton and tilelang depend on the buddy-mlir-llvm package. Later the same day at 20:16, #1575 fixed the source URL syntax for Source0/Source1, showing that this chain remains fragile but can now run through the merge process. Sources: PR #1350, PR #1575, buddy-mlir.spec

  • triton-riscv merges Triton 3.9.0 plugin refactor: patch set cleared, standalone distribution package retired: On 11-05 at 11:13, PR #98 was merged: 5 commits, 66 files, 1806 lines added, 3868 lines deleted—deletions roughly twice the additions. The backend now installs as a triton_shared plugin via the TRITON_PLUGIN_DIRS mechanism, registers entry points, and links the C++ plugin into libtriton.so; the patches/ directory and patch-application scripts are fully removed; release.sh no longer assembles a second wheel, and Makefile becomes the unified entry point for setup/build/test/lit/clean. The same day, #92 (rebased onto upstream Triton v3.8.0), which had been running in parallel in the previous issue, was closed unmerged, converging the two competing approaches onto following the mainline. Sources: PR #98, PR #92

  • AME/BOSCAME backend lands two commits in one week: LLVM adds register and scheduling support, buddy-mlir lays down 209 files: On 11-04 at 15:40, the riscv branch of RuyiAI-Stack/llvm-project added f346011 (8 files, +412/−1), registering nxv32i32 into AccReg as well, eliminating copies between the tile and accumulator register files on every loop edge, and keeping each tile configuration together with its consumers in a single ordered pseudo-instruction until expansion just before emit. On 11-06 at 15:39, buddy-mlir merged #1033 (209 files, +46131/−2305), adding in one go a target-independent Kernel Contract (annotation and verification), a planner and emitter lowering bufferized Linalg to bosc_ame SPM/DMA/tile IR, a runtime/boscame bare-metal runtime, and examples/BOSCAMEFPGA board tooling. This is the first time the “from RVV to Matrix” narrative lands on a runnable end-to-end path on the compiler side. Sources: commit f346011, PR #1033, PR #35

  • ruyi 0.54.0-beta.20261102 released, first jump after a 39-day gap; ABI compatibility moves from “scanning packages” to “judging hosts”: Released 11-02 at 18:37, with the tag commit at 15:16 and PyPI syncing 0.54.0b20261102. The release notes list thirteen PRs, but the comparison baseline is 0.52.0-alpha.20260714; diffed against 0.53.0, there are only four net-new PRs (#503, #508, #507, #509). The core is #507: it adds ruyi admin check-abi, which performs host ABI probing and compatibility determination for a given package, returning one of three states—compatible, incompatible, or undetermined—and distinguishing lenient from strict predicate sets; ruyi list shows remarks, and ruyi install warns when incompatible. On the RISC-V side it also handles ld.so.cache floating-point ABI filtering, parsing of versioned single-letter extensions, and stack alignment and weak-symbol edge cases. The patch is +5760/−834 across 64 files. Sources: 0.54.0-beta.20261102, PR #507

  • tilelang-riscv’s eighteen-day silence broken; PR #5 merges TileOps streaming load and quantization paths: Opened 11-03 at 13:44 and merged at 14:13—a 29-minute interval—with 21 files, +669/−112. The core change is in src/target/codegen_riscv.cc (+157/−1), adding a lowering helper for streaming load to raw TileOps operators and __fdividef handling for FP32; the test surface expands in parallel with three new tests—streaming load byte fidelity, IEEE arithmetic regression, and INT8 quantization—while operator_inventory.py also sees additions and deletions. Documentation focuses on BuildOnSG2044.md and removes machine-specific paths from tladapter/toolchain.py, switching to lookup from the distro layout—consistent with the direction of the same day’s openRuyi packaging patch. Sources: PR #5, merge commit 57c548c

  • Four upstream compiler and runtime lines report progress on the same day: OpenJDK JEP 544 AOT port enters mainline, three GCC Zb* optimizations enter the development mainline: Per issue 080, JEP 544 (Ahead-of-Time Code Compilation) passed functional testing for its RISC-V platform port with performance gains as expected and has been merged into the JDK mainline (PR #32311, 8390102 Support AOT Code Cache); nine PRs were reviewed and merged into the mainline over the same period, including enabling high general-purpose registers in C1, implementing the CRC32C intrinsic with Zbc, and switching C2 pointer constants to movptr2. On the GCC side, three RISC-V backend optimizations entered the development mainline on 10-27 (r17-5638 through r17-5640): Zba improves recognition of shift-add and integer-division combinations, Zbs exploits the shift-index semantics of bclr to eliminate redundant masks, and Zbkb corrects the cost model and match priority of packh. On the LLVM side, six P-ext and XTHeadBb upstream PRs were merged, and RuyiSDK’s LLVM branch adds preliminary RV32/RV64 matrix extension support per the Ztt spec v0.6. Sources: issue 080 article, JEP 544, JDK PR #32311

  • Buddy Compiler tightens VIR semantics: set_vl splits into “exact VLEN” and “arbitrary VLEN” paths: Merged #1028 on 11-04 at 23:54, making rvv-vlen denote the target’s exact VLEN (vscale = rvv-vlen / 64), with splitting done on full vectors; previously rvv-vlen was treated as a minimum VLEN, leaving masks in the code even when all were true—the kernel built for a 1024-bit vector width on K3 is a typical case of this path. Merged #1029 on 11-05 at 01:32, handling generic builds without rvv-vlen: strip-mined regions step at runtime by N times vscale, vectors are sized at a minimum of 128 bits, and set_vl with results is rejected outright with a “requires exact VLEN” error. Semantics no longer rely on “masks happening to be all true” as a fallback. Sources: PR #1028, PR #1029

  • The other half of the release story: openRuyi 2026.10 missing for the entire month, ruyi 0.54 slated for around November 11: The latest release announcement on the openRuyi news page is still 2026.09 from 09-30; the release paths for October and November both returned 404 as of the 11-07 check. Release dates over the previous four months were 6-30, 7-23, 8-27, and 9-30—no precedent for a full month’s gap. Issue 080 gives a clear timeline for the package manager: RuyiSDK 0.54 will be released around November 11, with the package manager version also 0.54.0; the headline feature is ABI compatibility detection between packages and the current system, with initial support for any Linux distribution using glibc or musl. Development has not stalled—the openRuyi main repo saw 156 commits this week; the bottleneck is the release process itself. Sources: openRuyi news page, issue 080 article, ruyi Releases


II. RuyiAI Stack Progress (PyTorch / Triton / TileLang RISC-V Adaptation)

Window Overview: The RuyiAI-Stack organization (18 repositories) concentrated almost all activity this week in two repos: triton-riscv and llvm-project. triton-riscv saw nine commits, four merged PRs (#98, #99, #100, #101), and four nightly builds; the riscv branch of llvm-project landed one BOSCAME backend commit after two full-branch replays; tilelang-riscv merged PR #5 after eighteen days of silence; the riscv branch of pytorch was replayed three times with zero functional increment; VecIntrinBench, IntrinTrans, FBGEMM, cpuinfo, harness, torq-tile, pytorch-ci, and dsh-osc had zero commits all week.

llvm-project riscv branch: one BOSCAME commit after two replays (11-01 to 11-04)

Date: 2026-11-01 to 2026-11-04 Sources: riscv branch commit list, commit f346011, PR #35

On the eve of the period start (11-01 23:00) and the night of the first day (11-02 23:00), the branch underwent a full replay each time: the former rewrote the commit timestamps of twenty-six branch-owned commits to a uniform 23:00:22 to 23:00:26, with head commit afdd0982 (content: the 10-29 “cancel preview, add contribution guide”); the latter replayed again, swapping the head commit to 375bf3e4 with unchanged content. At 11-03 11:57, bef335e2 “[workflows] Use workflow-scoped token for PR rebases” landed, switching the rebase workflow token from repository-scoped to workflow-scoped—automation maintenance.

The 11-04 15:40 f346011 is the week’s only genuine compiler change (8 files, +412/−1, author caihanyi111). It has two parts. First, register classification: loop-carried accumulator PHIs take their default register class from the type table, but nxv32i32 was previously registered only as TileReg, while the accumulator operands and results of mlce32.m, mqma.*, and msce32.m are restricted to AccReg—so every loop edge had to generate a copy between the tile and accumulator register files, and copyPhysReg cannot expand such cross-file copies into a single AME instruction. The fix registers nxv32i32 as AccReg as well, expands same-file whole-register copies using mmve64.t.t and mmve64.a.a, and keeps cross-file copies as a hard error. Second, scheduling: each tile configuration and its consumers are held in an ordered, side-effecting pseudo-instruction until just before emit, matrix registers become allocatable, MMA accumulators are tied, and zero-accumulator definitions no longer read old values. The commit also adds three tests covering configurable load/MMA/store ordering, same-file and cross-file copies, and both RVV and non-RVV selection.

One inconsistency remains unexplained: the author date of the branch’s most recent [SyncBots] Integrate LLVM at b3b5e33 is stuck at 09-29, but comparing the current head commit against the previous period’s head commit, the diff set includes the 10-30 upstream commit—that is, the replay advanced the upstream baseline while rewriting history, yet the sync bot’s record was not updated accordingly.

triton-riscv: from “patched branch” to “upstream plugin” in one day (11-05)

Date: 2026-11-05 Sources: PR #98, commit list, PR #92

The overhaul has three parts. First, backend form: Triton’s TRITON_PLUGIN_DIRS mechanism installs backend/ as a triton_shared backend plugin, registers the entry point, links the C++ plugin into libtriton.so, and copies triton-shared-opt into the package; the standalone distribution package disappears accordingly, imports in the code are unified to go through triton.backends.triton_shared, and the backend itself now locates buddy-opt, buddy-llc, mir-translate, and triton-shared-opt via paths.py, with the CPU driver declaring itself active only when no GPU backend is present.

Second, the patch set is zeroed out. The patches/ directory and the scripts that applied patches are all deleted. The patch set previously existed for two reasons: to let Triton build in environments without NVIDIA/AMD toolchains, and to cushion frequent LLVM API changes. Now that buddy-mlir’s LLVM distribution ships NVPTX/AMDGPU targets and lld (#1027), and Triton’s GPU dependency path points to a stub directory, neither reason holds.

Third, the packaging paths are merged. release.sh no longer assembles a second wheel—it just strips tools and runs bdist_wheel directly; Makefile becomes the unified entry point for setup, build, test, lit, and clean. A Python 3.14 pitfall was also fixed: in setup.py, shutil.which("lit") preferentially picks up the pip-installed lit console script, and the one bundled with the LLVM distribution calls main() without an if __name__ == "__main__" guard, so the forkserver multiprocessing re-runs it when importing the main module, causing the lit target to fail at 80-way concurrency.

The cost is written in the same PR’s description: Triton 3.9’s frontend reads fields such as backend_name from the backend, and without it every tl.atomic_* call throws AttributeError, failing 383 FlagGems cases on riscv64; only after adding the three fields backend_name, default_dot_input_precision, and deprecated_fp8_dot_operand_dtypes did the failure surface close. The examples side also made concessions: upstream rejected the frontend patches for asin/acos/atan/atan2, so the examples switched to libdevice, which lowers to the same __nv_* extern_elementwise and is then converted by triton-shared into MLIR math operators.

Three triton-riscv companions: nightly and weekend releases, 16-process pytest, cp312-abi3 wheel (11-05 to 11-06)

Date: 2026-11-05 to 2026-11-06 Sources: PR #99, PR #100, PR #101, Release list

#99 aligns the release cadence with buddy-mlir: the nightly job publishes nightly/<date>-<sha> prereleases, and the weekend job publishes release/<date>-<sha> marked as latest; runs are skipped when there are no new commits, releases stay in draft until all wheels are uploaded, and workflow_dispatch offers an out-of-band dev/patch choice. Two nightly builds were produced that day under this cadence.

On the test side, the pytest suite was switched to 16 processes, with measured justification: on a 207-case slice, 1 process took 360 s, 8 processes 89 s, 16 processes 67 s, and 24 processes 67 s, while 32 and 64 were actually slower—a single case is a serial chain of “compile, triton-shared-opt, llc, execute, compare,” and beyond a point more processes contend for the shared compilation cache. Previously, running serially, the FlagGems suite took 1 hour 14 minutes.

#100 builds a stable ABI wheel following upstream practice: setting TRITON_STABLE_ABI=ON, compiling nanobind against the limited API (macro Py_LIMITED_API set to 0x030C0000), tagging the wheel cp312-abi3, so one wheel covers 3.12 through 3.15 and the release matrix shrinks from three Pythons to one. The same branch also fixes release.sh’s manylinux toolchain detection: the script hardcoded /opt/rh/gcc-toolset-14/enable and checked for it before dnf install clang, while the image is a rolling :latest that by then shipped gcc-toolset-15, so the enable script never ran and clang could not find crtbeginS.o, -lstdc++, -lgcc (riscv64), or libstdc++’s <version> header (x64), failing builds on both architectures; now clang is installed first, then all toolchains are enabled by existence with the newest last. #101 merged at 11-06 12:52 (2 files, +17/−2), handling release workflow failures during the checkout cleanup phase.

tilelang-riscv: eighteen days of silence broken by PR #5, RVV mask and max reduction still uncovered (11-03)

Date: 2026-11-03 Sources: PR #5, PR #4, PR #2

The main branch’s last commit had been stuck at the 10-16 10:52 “Build Python extension in Buddy CI,” with no commits for eighteen consecutive days. PR #5, submitted by laz174, is mostly tests and docs across 21 files: three new tests covering streaming load byte fidelity (+81), IEEE arithmetic regression (+77), and INT8 quantization (+83); four existing tests realign the numerical paths of existing operators—INT8 dequantization, FP8 block quantization, paged KV cache writes, and elementwise activation; operator_inventory.py also sees additions and deletions (+9/−14).

After merge, the main branch head is 57c548c, with zero commits from 11-04 to 11-06. Two old PRs remain queued: #4 “RVV vector mask and max reduction lowering,” stuck since 09-28, and #2 “Add Codex-compatible RISC-V operator workflow,” stuck since June—neither merged, meaning this merge did not touch the RVV mask and max reduction path. On the distribution side, python-tilelang-ruyiai is anchored to the 10-28 0b7d66eb, and PR #5 has not entered any package.

pytorch: riscv branch replayed three times, baseline unchanged, patch set unchanged (11-02 to 11-06)

Date: 2026-11-02 to 2026-11-06 Sources: pytorch riscv branch, open PR list

The riscv branch underwent a full replay at 03:00 on 11-02, 11-03, and 11-04, rewriting the commit timestamps of twenty branch-owned commits to within the same second while preserving author dates; the head commits were b20942de, 81ecd427, and 6c89022 in turn, the message always [SyncBots] Integrate PyTorch at 3afdbd3, the baseline did not advance, and the patch set was unchanged—still the riscv64 local image (#51), the bytes_to_scalar floating-point fix (#44), the ULP tolerance for linear cross entropy (#42), and the inductor opinfo blocklist (#50). The branch had zero commits on 11-05 and 11-06.

The main branch synced twenty to fifty-five upstream commits per period; after checking each, none relate to RISC-V or RVV, with content concentrated in AOTI, inductor, cuDNN frontend, XPU/oneDNN, ROCm fallback, and Mooncake transport. The eight open PRs (#23, #35, #36, #38, #43, #46, #48, #51) saw no merges all week, among which #46 “RISC-V Vector Extension support for ATen” and #48 “Add RISC-V Vector CPU capability” remain the two main proposals for upstreaming RVV capability.

To be read alongside the distribution side is this misalignment: openRuyi’s python-torch-ruyiai (#1352) builds from branch artifacts, and the branch head changes SHA on every replay, so the pinned source commit in the package must be realigned; that PR was last updated at 10-27 09:51, has zero review comments, and saw no alignment action this period.


III. RuyiSDK Toolchain and Distributions (Package Manager, Distributions, Mirrors, and Support Matrix)

Window overview: The openRuyi main repository saw 156 commits this week (by Beijing-time calendar day: seven on 11-02, ninety-four on 11-03, ten on 11-04, forty-one on 11-05, four on 11-06); merged PRs covered patches, Node.js, firecracker, the RuyiAI trio, simdjson, debuginfo, the LibreOffice dependency chain, and more. The ruyi main repository saw activity on only one day this week, 11-02, and all three packages-index commits landed on 11-02. Biweekly progress issue 080 went from a two-section draft to a fully merged section.

openRuyi #1350 merged: what versions the three specs each target (11-03)

Date: 2026-11-03 Source: buddy-mlir.spec, python-triton-ruyiai.spec, python-tilelang-ruyiai.spec

The actual anchors of the three specs can be verified directly in the main repository:

  • buddy-mlir 0.1.2: Source0 points to buddy-compiler commit 60f354a7 (“[ci] Add the publish-models workflow #925”), and Source1 points to RuyiAI-Stack/llvm-project commit 3845a205; it bootstraps with clang/lld 22, uses BUDDY_ENABLE_TESTS=OFF, BUDDY_MLIR_ENABLE_PYTHON_PACKAGES=OFF, BUDDY_DOWNLOAD_CLI11=OFF, builds static libraries, and installs the LLVM prefix to /usr/lib64/buddy-mlir/llvm.
  • python-triton-ruyiai 3.8.0+git20261103.da5291b: Source0 is triton-lang/triton commit 5889527, and Source1 is the triton-riscv tag nightly/20260913-da5291b; two patches handle system build tools (cmake/ninja/nanobind) and tool lookup under /usr/lib64/buddy-mlir/llvm/bin respectively; runtime dependencies are buddy-mlir, buddy-mlir-llvm, and clang.
  • python-tilelang-ruyiai 0+git20261028.0b7d66e: the main source anchors to tilelang-riscv commit 0b7d66eb, and separately packages five submodules — TileLang/tvm 882a7748, dmlc-core 3031e4a6, rang cabe04d6, tvm-ffi ae346ec9, and DLPack 93c8f2a3; five patches handle the tvm-ffi version ceiling, torch-c-dlpack-ext and patchelf, buddy-mlir toolchain discovery, the z3 soname, and the libbacktrace switch; the build requires python3dist(torch).

All three specs share the same LLVM/MLIR chain, which dictates the upgrade order: touch buddy-mlir first, then the two Python packages; changing the anchor at any layer requires a synchronized rebuild. The bulk of the work in the 43-day review is not features but turning the paths stitched together from environment variables in the source tree into reproducible lookup rules, one by one.

Version anchors lag: triton stuck at 09-13, tilelang at 10-28, buddy at 0.1.2 (11-03)

Date: 2026-11-03 Source: triton-riscv nightly 09-13, tilelang-riscv commit 0b7d66e, BUDDY MLIR 0.1.3

All three packages have version strings that look very new, yet their code anchors differ: in triton’s 3.8.0+git20261103, the 20261103 is the packaging date, while the actual code comes from the 09-13 nightly/20260913-da5291b tag (release record 09-14 01:41 UTC), roughly fifty days before the merge; tilelang anchors to 0b7d66eb from 10-28, meaning PR #5, merged on 11-03, is not in the source snapshot packaged this time; the buddy-mlir package says 0.1.2, while upstream’s official release has reached 0.1.3 (released 10-31 23:01 UTC) and the nightly has reached 0.1.4.dev20261105.

The date in the version number is not the code date, and this has practical implications for distribution users: what gets installed is a snapshot, not the latest. Once a package is built and released, there is a fixed delay between its capabilities and the repository HEAD, and that delay must be shortened by subsequent bump commits; there were no bump commits this week.

ruyi 0.54.0-beta.20261102: only four of the thirteen-item changelog are new, ABI moves from scanning packages to judging hosts (11-02)

Date: 2026-11-02 Source: Release 0.54.0-beta.20261102, PR #507, PR #496, PR #509

Timeline: tagged at 15:16, single-file binaries and mirror directory published at 18:37, PyPI synced 0.54.0b20261102; the stable channel remains 0.53.0 from 09-24. This is the first new tag in the 39 days since 0.53.0 — the previous pre-release, 0.54.0-alpha.20260918, was six days earlier than 0.53.0, and no alpha or beta was released throughout October. The alpha-to-beta gap was 45 days, whereas the alpha→beta intervals for the 0.50 and 0.51 lines were both 28 days and for the 0.53 line 20 days.

The divergence reported by the comparison interface is worth noting: beta is diverged relative to 0.53.0, ahead by seventy commits and behind by three; the three behind are the version-number bumps for 0.53.0-beta and 0.53.0, plus a fix for “cross-repository detection of installed packages” — the same fix exists on beta under a different SHA, so no functionality is missing; it is just that the bookkeeping on the 0.53 release branch was not merged back into mainline.

The layers of ABI capability need to be distinguished: the ELF scanner from #496 was merged as early as 09-16 and shipped with 0.53.0; it can scan directories and tar/zip/deb archives, produce deterministic .abi.toml sidecars, and provides rescan-package-abi. What is new in this release is the consumer side, #507, which uses the sidecars to compare against the current host and answer “can this package run on this machine.” In the same version, #509 fixes failure reporting when fetching packages: non-2xx responses are no longer treated as “download successful” and left as an error page; resumable partial downloads are preserved; and HTTP status, redirects, connection failures, and stalled transfers each get their own message — this one is more directly useful to actual users than the ABI check.

packages-index: eleven ABI sidecars for three packages, coverage still single digits out of a three-digit denominator (11-02)

Date: 2026-11-02 Source: packages-index commits, gnu-ruyisdk riscv64 sidecar

The three commits landed within eighteen minutes before #507 was merged: at 13:09, 0.20260921.0 was added to toolchain/gnu-ruyisdk (with three sidecars); at 13:18, six sidecars across two versions were added to board-util/wlink; at 13:26, two amd64 sidecars were added to emulator/qemu-system-riscv-upstream.

Taking the gnu-ruyisdk riscv64 sidecar as an example, the scanning granularity is visible: of the archive’s 2178 files, 43 ELFs were identified and 5478 excluded; e_machines=[243], with dependencies on five sonames; version requirement ceilings are GLIBC 2.38, GLIBCXX 3.4.21, and CXXABI 1.3.9; ISA attributes are recorded at version-numbered granularity (rv64i2p1, m2p0, a2p1, f2p2, d2p2, c2p0, plus zicsr, zifencei, zmmul), with stack alignment 16. This is enough to support a judgment of “can the host run this toolchain.”

But coverage is a hard constraint: the index contains 327 package version description files in total, yet only 3 packages and 11 files have sidecars, and qemu has only two amd64 sidecars and no riscv64 one. A RISC-V user checking the vast majority of packages today will get “undetermined.” For sidecar coverage to catch up, the build pipeline will have to rescan package by package.

openRuyi main repository: 156 commits in a week, 75 Rust specs pushed in one go on 11-03 (11-02 to 11-06)

Date: 2026-11-02 to 2026-11-06 Source: openRuyi commit list, PR #1595, PR #1596

By Beijing-time calendar day, the counts are 7, 94, 10, 41, and 4. Of the ninety-four on 11-03, seventy-five were pushed in the same second: one for firecracker itself plus seventy-four Rust crate specs (including rust-vhost, rust-vm-allocator, rust-vm-superio, rust-bitcode, etc., the dependency closure of firecracker); the three at 15:59 are the RuyiAI trio; the rest are patch 2.8.1, Node.js 26.13.0, simdjson 5.0.8, debuginfo gating, and so on. The main authors are Jvlegod (75 commits), Leetfs (44), and Jingwiw (12).

Of the forty-one on 11-05, thirty-seven belong to the LibreOffice dependency chain, merged in two batches: PR #1595 (1/n, 25 files, +1383) adds twenty-one packages at once, covering WordPerfect (libwpd, libwps), Visio (libvisio), Publisher (libmspub), PageMaker (libpagemaker), QuarkXPress (libqxp), Zoner Draw (libzmf), StarOffice and legacy Office binaries (libstaroffice, libmwaw, libe-book), as well as liborcus, libepubgen, libodfgen, libetonyek, liblangtag, and mdds; PR #1596 (2/n, 17 files, +4633) fills in the font toolchain, packaging python-afdko and its dependencies (defcon, fontparts, fontpens, ufoprocessor, ufonormalizer, mutatormath) together with antlr4-cpp-runtime. This chain is not yet complete: #1600 (4/n, Firebird for the Base component) and #1602 (6/n, PDFium, ZXing, SANE, Box2D) are still under review, and #1603 (7/n) has been closed unmerged.

Four routine and security updates: libvirt 12.9.0 marked security-fixes, util-linux 2.42.4, clang-wrap 20261105, and gnupg splitting scdaemon into a separate subpackage. On the CI side there was one experiment: at 21:43 on 11-04 the update-package workflow was changed to run inside the openruyi container, reverted two hours later, after which apt-key was replaced with a scope-restricted OBS signing key.

openRuyi 2026.10 monthly release missing for the whole month, news page stuck in September (11-02 to 11-06)

Date: 2026-11-02 to 2026-11-07 (status) Source: openRuyi news page, Releases

The October 2026 monthly release announcement did not appear all week; the latest release announcement on the news page is still 2026.09 from 09-30; as of the 11-07 check, the release paths for 2026-10 and 2026-11 both return 404. Given the cadence of the previous four months — 6-30, 7-23, 8-27, 9-30 — this is the first full month without a release.

Two kinds of content need to be distinguished: the two October features (“openRuyi-Project: Public Infrastructure for the RISC-V Software Ecosystem” and “openRuyi Releases Ruyi Firmware”) are both dated 10-19 but were actually published by the official website repository in a single commit at 15:36 on 10-30; the experimental tags for 2026.05 through 2026.09 on the Releases page were backfilled all at once on 10-19 — neither can be counted as an October release.

Among these, Ruyi Firmware is directly relevant to the RuyiAI validation environment: the firmware is based on coreboot, OpenSBI, and EDK2, with public build and flashing procedures; it integrates MultiArchUefiPkg’s x64emu so that a RISC-V UEFI environment can execute some x64 graphics-card UEFI components (combination-tested on an AMD Radeon RX 6400), and for the RX 550 oprom issue caused by K3’s lack of DMA32 support it switches to the AArch64 oprom component; UEFI Setup adds a CPU mode selection (X100 only, X100 + A100, A100 only), of which A100 only supports vector extensions and can serve as a test environment for 1024-bit vlen. The release packages are versions 20261013, 20261014, and 20261015, and a Wayland desktop with glmark2-wayland was brought up on the SpacemiT K3 Pico ITX.

Issue 080: ruyi 0.54 slated for around November 11, K1/K3 toolchains enter the software source (11-05)

Date: 2026-11-05 Source: Issue 080 draft, ruyi open PRs

Issue 080 gives a clear date: RuyiSDK 0.54 will be released around November 11, with the package manager version also 0.54.0; the headline is ABI compatibility detection between software packages and the current system, initially supporting any Linux distribution whose C runtime is glibc or musl; second, download requests returning non-2xx status codes are now correctly judged as failures, and the troubleshooting guide for download failures adds two categories of factors: server issues and the terminal’s network environment. On the engineering side, dependency versions were updated, including TLS certificate-related security fixes since October; because pygit2 has not yet adapted to Python 3.15, CI does not use 3.15 for now.

The substantive change to the software source is that toolchain/gnu-ruyisdk adds toolchain adaptations for SpacemiT K1/K3 and fills in ABI compatibility information for some packages. Routine maintenance on the distribution side has not stopped: the vast majority of this week’s 156 commits are packaging; but the release aimed at the AI stack did not go out, and the blocker is the release process rather than development.


IV. Vector Extensions and Operator Optimization (VecIntrinBench / IntrinTrans / FBGEMM)

Three vector repos silent all week; latest commits stalled at 02-13, 06-25, and 07-13 respectively

Date: 2026-11-06 (status) Source: VecIntrinBench, IntrinTrans, FBGEMM

All three “vector”-themed repositories saw zero commits this week, with their latest commits dated VecIntrinBench 02-13, IntrinTrans 06-25, and FBGEMM 07-13 — stalled for nearly nine months, four months, and three months respectively. The three originally formed a triangle of “what to test, how to translate, how to implement operators”; they are now each cooling down independently rather than through a unified project termination.

VecIntrinBench has been stalled the longest, with the most direct impact on coverage assessment: with the benchmark not updated, the set of intrinsics it tests drifts ever further from the set the compiler actually supports — and the LLVM-side A100/AME fallback chain continued to expand this week.

Vector math filled in on the library side: four glibc libmvec functions, fourteen newlib functions (11-04 to 11-05)

Date: 2026-11-04 to 2026-11-05 Source: Issue 080 draft, article repo commit list

The two “basic components” sections of Issue 080 present the week’s most substantive batch of low-level work. On the base C library side: glibc ported sinpif, sqrt, sqrtf, and tanf into the existing libmvec framework; newlib ported 14 functions — atanhf, atan2f, atanpif, atan2pif, exp2f, cosf, coshf, cospif, exp10f, expf, log2f, log2p1f, rsqrtf, expm1f — into the existing vector math framework.

These functions are the foundation for low-precision inference and activation computation on RVV: when the vector math library lacks functions, operators can only fall back to scalar paths, and no amount of compiler-side RVV fallback can compensate. Echoing this is an arXiv study from 11-02 — the authors compared LLVM’s RISC-V auto-vectorization across multiply-add loops in fp32, int8, bf16, and fp16, and found that on the common -march=rv64gcv baseline, int8 and fp32 vectorize cleanly, while bf16 and fp16 degrade into heavy scalar fallback, with fp16 even degrading into per-element software conversion calls unless zvfbfmin/zvfbfwma and zvfhmin are additionally enabled; dynamic instruction counts under QEMU user mode show the baseline bf16 and fp16 kernels execute 17.0x and 75.9x the instructions of the extension-enabled versions. Missing library functions on one end and missing visibility of feature flags on the other are two sides of the same problem.

Compiler side: six LLVM P-ext and XTHeadBb patches, Ztt v0.6; three GCC Zb* patches; six V8 patches

Date: 2026-11-05 Source: LLVM PR 235306, LLVM PR 237815, GCC Zba commit, V8 CL 8714039

LLVM upstream merged six patches this week, concentrated on packed SIMD and bit manipulation: the P extension synthesizes more pm*add* plus subsequent-add patterns into pm*adda*-class instructions (#235306), improves codegen for 64-bit funnel shifts on RV32 (#235245), adds packed multiply-accumulate intrinsics with widening horizontal add (#234450), and adds signed, unsigned, and mixed-sign forms of the packed byte horizontal multiply-accumulate intrinsics to Clang (#234484); on the GlobalISel side, under XTHeadBb it first widens narrow-typed G_CTLZ_ZERO_POISON (#237815), and widens G_CTTZ to XLEN before going through G_CTLZ to select th.ff1 (#238214). RuyiSDK’s LLVM branch has two more: preliminary RV32/RV64 matrix extension support per the Ztt spec and intrinsics documentation v0.6, covering assembly and disassembly, Clang types and intrinsics, LLVM IR and codegen, plus M/ACC register allocation, copies, and spill handling (#169); and GitHub Actions CI for the AME branch (#170).

GCC’s three patches entered the development mainline on 10-27 (r17-5638 through r17-5640): Zba refines pattern recognition for shift-add combined with integer division and remainder; Zbs exploits bclr’s own shift-index semantics to eliminate redundant mask computation, improving RV32/RV64 bitmap operations; Zbkb fixes the packh cost model and match priority, resolving the issue where the better instruction could not be selected when Zbb and Zbkb are both enabled. On the toolchain CI side, RISE-CI connected the container service with GitHub Actions and added multilib build scenario checks; on the performance side, preparation began for real-hardware benchmarking based on SPEC CPU 2026, with a memory bottleneck identified for running the full SPECspeed 2026 on the candidate K3 platform, and other hardware options under evaluation.

On the V8 side, six patches were submitted and merged this period, and six reviewed and merged. The former include a trusted-pointer tag range check fix, zeroing out-of-bounds trusted pointers on tag underflow, Maglev saving zero-value constants via the zero register, deriving CPU features from the GN build configuration, preserving the NaN sign bit when converting Float64 to Float32, and Liftoff hoisting temporary register allocation for sub-word atomic RMW out of the loop; the latter include preserving the vector tail during scalar moves (CL 8714039), enabling VLEN=1024 (CL 8585179), implementing the missing RV64 Add643 operation, and generating only ebreak for stop() on hardware.


V. Buddy Compiler Updates (buddy-mlir Commits and Releases)

0.1.3 Release Notes vs. Commit Diff: Twelve of Sixteen Commits Touch the Vector Layer, Release Notes Mention Only the ABI (Eve of the Cycle Start)

Date: 2026-10-31 (Beijing time 11-01 07:01) Source: BUDDY MLIR 0.1.3, Commit diff between v0.1.2 and v0.1.3

This release landed on the eve of the cycle start and is the prerequisite for understanding all downstream anchors this week. The release notes expand on only one item: the new buddy-server ABI (#1015), which consolidates the per-modality model plugin handles into a unified interface, plus unified load, status query, invoke, streaming, and cancel paths. But pulling the commit diff between v0.1.2 and v0.1.3 reveals that this release actually contains sixteen commits across one hundred thirty-six files, of which ten are an entire block of RISC-V vectorization work under [midend][VIR], and another two belong to the VIR line but not under the [midend] prefix (the VIR dialect implementation of decode attention and the Python bindings for VIR). In other words, twelve of the sixteen commits touch the vector dialect layer, while the release notes say not a word about RISC-V or RVV.

The gap itself is information: readers of the release page would assume 0.1.3 is merely a server-side refactor, whereas what they actually get is a version with significantly advanced scalable vectorization capability. The direct downstream implication is that triton-riscv’s dependency anchor remains pinned at nightly/v0.1.3.dev20261030 (#91, merged 10-31 13:15), whose content is from the same source as the official release (0.1.3 was cut from the main branch head on 10-29), but under the existing renovate cadence, switching to release/v0.1.3 requires another round—still not switched by the end of this week.

This Week’s Three VIR Commits: set_vl Exact/Arbitrary VLEN Split, vir.shuffle Segmented Lowering, Kernel Lowering by llc Options (11-04 to 11-05)

Date: 2026-11-04 to 2026-11-05 Source: PR #1028, PR #1029, PR #1030, PR #1031

The tightening of set_vl semantics is covered in “This Week’s Highlights.” One implementation detail to add: #1029 requires that builds without rvv-vlen produce code valid for any VLEN, with strip-mined regions stepping at runtime by N times vscale and vectors sized to the minimum 128 bits; a set_vl with a result is rejected outright with “requires rvv-vlen, i.e., exact VLEN”—previously this pass only reported an error, with semantics relying on “masks happening to be all-true” as a fallback.

The two lowering changes on 11-05 target vir.shuffle and kernel lowering. Broadcast first goes through vector<[2]xT> and then takes the first half (vector.scalable.extract) to obtain vector<[1]xT>, because when vector.broadcast is applied directly to vector<[1]xT>, LLVM generates a shufflevector with mask [0], which createOrFold folds away as an identity operation, leaving the remaining vscale-1 lanes all poison; llc turns the insertelement into a vfmv.s.f that writes only lane 0, and once this value is stored to a register rather than fused into a .vf instruction, the result is wrong. Going through [2]xT lets llc use vfmv.v.f to complete the broadcast at the LMUL of [1]xT, with no increase in instruction count and one fewer instruction in the loop. The other commit lowers kernels according to llc options such as -mattr, with the test vir-broadcast-scalable-one.mlir covering both the strip-mined and set_vl-with-result paths.

#1033 BOSCAME SPM: 209 Files, +46131, Kernel Contract and FPGA Tooling Rolled Out Together (11-06)

Date: 2026-11-06 Source: PR #1033, Commit list

Merged at 15:39 on 11-06, this is the largest single commit of the week: 209 files, +46131/−2305. Per the PR description, it breaks into four parts: first, a new target-independent Kernel Contract (annotation and verification), plus the BOSCAME planner and emitter that lower bufferized Linalg to bosc_ame SPM/DMA/tile IR; second, extension of the bosc_ame dialect (SPM/DMA/tile contracts, LLVM export, SPM/DMA verification) and wiring of the related passes into buddy-opt; third, a new runtime/boscame bare-metal runtime and the on-board upload, audit, and simulation tooling in examples/BOSCAMEFPGA, plus host-side dialect examples in examples/BOSCAMEDialect; fourth, completed documentation (reading paths from the root README to the FPGA example, the runtime, docs/BOSCAMEKernelContractPipeline.md, and docs/KernelContract.md), with lit cases covering this path: one set on the KernelContract side, one on the BOSCAME conversion side.

This commit and the 11-04 LLVM commit are two ends of the same chain: the LLVM side solves the register classification and scheduling for “the i32 accumulator must stay in AccReg throughout,” while the buddy-mlir side solves “how the upper-level TTIR lowers to BOSCAME”—from contract, planning, and emission to runtime and FPGA tooling, giving a runnable end-to-end description for the first time. What calls for restraint is coverage: the PR provides no end-to-end model performance data, and how fast it actually runs has no answer this week.

Runtime Shared Serving Controller and Three CI Commits (11-04 to 11-05)

Date: 2026-11-04 to 2026-11-05 Source: PR #1018, PR #1026, PR #1027, PR #1025

#1018 adds a model-agnostic serving generation controller (18 files, +2045), letting runtime adapters share a single set of generated-token budgets, stop conditions, usage accounting, and streaming cleanup; callers can go through LLMSession’s host sampling or through a token source that supplies tokens directly on the device side. A few details are worth noting: string stop conditions match on raw bytes first and then decode UTF-8, avoiding misjudgment at multi-byte boundaries; the token budget counts both the first prediction and the EOS/stop token; repetition penalty is applied once per token ID after deduplication within the request’s history window. The first token comes from prefill, so throughput statistics attribute the first selection to prefill and subsequent selections to decode, reporting zero throughput when there is zero decode work. Follow-up adapter integration is tracked separately under DeepSeek R1 (#1021), Llama 3.1 TTNN (#1022), and Qwen3-VL, among others.

Of the three CI commits, #1026 adds pytorch 2.15 to the test matrix (covering 2.11 through 2.15), prompted by a real regression: under 2.15 the latest full check fails at the resize_enlarge case in the AOT operator tests, and the failure occurs before the importer—AOT autograd’s functionalization now rejects enlarging resize_ on an already-functionalized tensor, so the graph never reaches ResizeOp; the fix is to switch the test to the out-of-place aten.resize. #1027 makes the CI-published LLVM carry the NVPTX/AMDGPU targets and enables lld, and #1025 bumps LLVM to bef335e2143c.

Release Cadence: Two Nightly Builds After 0.1.3, Downstream Anchor Still on the Nightly Tag (11-03, 11-05)

Date: 2026-11-03, 2026-11-05 Source: Nightly dev20261103, Nightly dev20261105, Release list

0.1.4.dev20261103 came out at 18:23 on 11-03, three days after the previous release; 0.1.4.dev20261105 came out at 10:58 on 11-05. The official release is still 0.1.3 from 10-31. No new nightly package appeared after #1033 merged on 11-06—this forty-thousand-plus-line change will not reach downstream until the next build.

The shape of the anchor is unchanged: triton-riscv depends on the nightly tag nightly/v0.1.3.dev20261030, not the official release/v0.1.3. The two tags share the same source; the difference is reproducibility—nightly tags get their references overwritten by subsequent builds, official tags do not. For a stack that has already entered a release, anchoring to a nightly long-term means the source pinned in the package is not reproducible over time.


VI. Community, Events, and Official Website

Biweekly Progress Issue 080: From a two-section draft to a full-section merge, with the preface and official website documentation sections still empty (11-04 to 11-05)

Date: 2026-11-04 to 2026-11-05 Source: Issue 080 draft, article repository commit list

The article repository had four commits on 11-04: draft creation at 09:56, LIBC additions at 16:01, and two updates to the Issue 080 file at 18:02 and 19:35; at that point only the basic C library and V8 sections had content. Between 09:59 and 15:25 on 11-05, eight commits were merged, adding the package manager, IDE (two commits), development board support matrix, OpenJDK, GCC, Go, and ruyipkg sections.

On the development board side, new Chinese and English test reports were added for Bianbu 4.0.1 Desktop on Milk-V Jupiter2 and Bianbu 4.0.8 LXQt on SpacemiT K3 Pico-ITX, along with an updated Ubuntu 24.04.5 report for VisionFive 2 Lite; the examples repository added Dhrystone and SiFive Kernel Library examples for HiFive Premier P550, a llama-server deployment example for Jupiter2, and ROS 2 course entries for K3 CoM260 and K3 Pico-ITX.

The three sections still unfilled are the preface, version testing and outstanding issues, and official website & documentation; the QEMU section is likewise empty. The “GCC” subheading appears twice in the draft, an editorial oversight. On the forum side, no Issue 080 post had been published by the end of the week; the latest biweekly progress thread on the forum remains Issue 079 from 10-26.

Forum: Script installation guide on 11-03 and automotive MCU repost on 11-06, no Issue 080 post

Date: 2026-11-03, 2026-11-06 Source: ruyi script installation guide, Infineon automotive MCU repost, latest topics

At 17:50 on 11-03, #2902 “Instructions and Usage Guide for Installing and Upgrading ruyi via Script” was added, covering two scenarios: upgrade if ruyi is already installed locally, fresh installation if not; the script installs to ~/.local/bin and requires no administrator privileges. The post explicitly states that the binary version the script currently pulls is 0.52.0—one version behind the official release 0.53.0 and two levels behind 0.54.0-beta. A similar post, #2901, appeared in the same period but has been deleted by its author.

At 12:05 on 11-06, #2903 “[Repost] Infineon’s First RISC-V Automotive MCU Is Coming” was added; it is an industry repost and does not concern this stack. Apart from these, there were no new posts in the window, and the three summit-related posts from 10-29 remain on the front page.

Official Website: All three pages unchanged for the full week, two blog posts, twenty-three documentation chapters

Date: 2026-11-02 to 2026-11-07 (status) Source: RuyiAI official website, blog index, documentation index

The sha256 values of index.html (7246 bytes), blog.html (5632 bytes), and docs.html (10843 bytes) match the previous issue, with no changes all week: the homepage indexes 3 items, the blog has 2 posts (“RISC-V Adaptation of Triton” and “PyTorch RISC-V CI in Practice”), and the documentation has 23 chapters.

Viewed against this week’s technical progress, this silence is worth noting: the AME/BOSCAME backend landed two commits in a row and triton completed its plugin refactor—both structural changes worth communicating externally—yet there were no corresponding updates on the blog or documentation side. Both blog posts are “adaptation practice” pieces; what is missing is precisely stage-level explanation of the kind “where the matrix backend now stands” and “how to install it after the plugin refactor.”

External News and arXiv: Five rounds of targeted queries with zero hits all week, only one paper within the period

Date: 2026-11-02 to 2026-11-06 (status) Source: Google News RSS, arXiv 2611.03917

The Chinese and English targeted queries across five daily reports (e.g., RISC-V, RuyiSDK in Chinese and English, RuyiAI, Ruyi community open source, Ruyi RISC-V AI, openRuyi) returned zero hits all week. The only Chinese-language result containing “Ruyi” remains the 10-25 summit exhibition report, which falls outside the period and is unrelated to the Ruyi community; general RISC-V news did have items (OpenBSD 8.0 expanding RISC-V support, RISC-V memory copy selection in Linux 7.4, etc.), but these are not directly related to this topic and are excluded per the established criteria.

On the arXiv side, only one study within the period is directly related to RVV vectorization (2611.03917, 11-02), already noted in Chapter IV. The absence of external coverage does not conflict with the release observations—both missed monthly commitments are “things that did not happen,” and naturally there would be no news about them.


VII. Trend Observations

The distribution pipeline is connected, but “packaging complete” does not equal “capability synchronized”

The significance of #1350 lies not in the version number, but in the fact that the distribution path has been written into distro configuration for the first time: previously, to use this stack, you had to pull triton-riscv, tilelang-riscv, and buddy-mlir yourself and set variables like BUDDY_MLIR_BINARY_DIR per the documentation; now openRuyi’s packaging repo contains these three components, lowering the installation barrier from “can build a compiler” to “can install a package.”

But the code anchored by all three specs predates this period’s upstream: triton is stuck at 09-13, tilelang at 10-28, buddy at 0.1.2, while all three repos saw new activity this week. The most glaring case is tilelang—PR #5, merged on 11-03, was the first feature after eighteen days of silence, yet it is not in the RPM merged that same day. The version string 3.8.0+git20261103 reinforces misreading, mistaking the packaging date for the code date. To close this gap, either establish a regular bump process or state the snapshot date clearly in the package description; otherwise, with every feature merged, the gap between package and repo widens a little more.

Plug-in architecture trades patch cost for version binding; 383 failing test cases are the down payment

The benefit of triton-riscv is straightforward: following upstream version bumps no longer requires replaying patches, packaging yields a single wheel, and the installation surface drops from two distribution packages to one. The cost is equally clear, and it surfaced on the same day: Triton 3.9’s frontend reads the backend_name field from the backend, and its absence causes 383 FlagGems test cases to fail. Parasitizing upstream extension points means upstream frontend implicit contracts become mandatory interfaces—and these contracts are often undocumented, discoverable only by hitting them in tests.

Whether this refactor succeeds is not judged by how many lines were deleted today, but by the replay cost at the next upstream version bump, and whether downstream suites like FlagGems still need dedicated version-watching. By the end of this week, the path to following upstream is clear, but the accompanying acceptance pipeline is still not in place: #56 “Migrate additional FlagGems operators” remains open, and the question “can this batch of operators run on riscv64” can still only be answered inside PRs.

Backend becomes the week’s main axis; frontend and runtime stand still

Nearly all verifiable increments this week landed in “compilation and lowering”: LLVM’s AME backend added register classification and tile scheduling, buddy-mlir’s BOSCAME connected contracts to FPGA, VIR tightened the VLEN semantics of set_vl, and tilelang added a lowering path for streaming load. Meanwhile, pytorch’s RISC-V branch was replayed three times with zero feature increments, and none of the hundred-plus upstream syncs on the main side touched RISC-V.

This distribution shows that the focus at this stage is making existing operators lower correctly and run stably on RISC-V, rather than expanding frontend coverage. For downstream users, perceptible short-term changes will appear in compilation artifacts and JDK behavior, not in the list of newly supported frameworks. The corresponding weakness is in the same place: the only triton PR explicitly aimed at optimization, #85, is still stuck at 10-18, with no movement for half a month.

Release cadence: beta is out, but stable and monthly releases remain outside the window

Two monthly commitments both fell through at the end of October, and the first week of November brought half an answer for each: ruyi shipped 0.54.0-beta on 11-02, the first jump after a 39-day gap, with the 0.54 stable release set for around November 11; openRuyi’s 2026.10 monthly announcement still had not appeared as of 11-07, making it the first full month without a release.

Neither line is stalled on the code side—openRuyi’s main repo saw 156 commits this week, and ruyi landed ABI detection and package-fetch fixes—so the bottleneck lies in version freeze, announcement writing, image building, and publishing. This is consistent with last week’s judgment: in this ecosystem, “building things” and “shipping things” are two separate capabilities; the former advances across multiple repos simultaneously, while the latter has not completed on schedule even once in nearly two months.

Long-term benchmark gap makes “is the optimization effective” unanswerable

VecIntrinBench has been dormant for nearly nine months, IntrinTrans for four months, and FBGEMM for three months—all three repos saw zero commits all week. In the same week, glibc and newlib added eighteen vector math functions, LLVM merged six P-ext and Ztt v0.6 patches, and buddy-mlir rolled out a matrix backend across 209 files—capabilities are expanding, but measurement is not keeping up.

The consequences are not abstract: without an updated intrinsic benchmark, one cannot answer “how much has the compiler’s actual supported set grown”; without a standing performance baseline, one cannot answer “how much faster is the BOSCAME path than the old path.” Every performance-related statement this week is at the level of “no obvious regression observed,” and such statements cannot support technology selection.

Desktop packages and AI stack proceed in parallel, on different cadences

openRuyi saw 156 commits in a week, of which 74 were firecracker’s Rust dependency closure and 37 were the LibreOffice dependency chain—this is desktop office suite packaging advanced component by component. On the same day (11-05), the RuyiAI stack was entirely silent except for triton-riscv: pytorch’s RISC-V branch had zero commits, tilelang-riscv zero commits, and llvm-project’s riscv branch zero commits.

The two lines are driven by different people, different repos, and different cadences. For readers, mistaking packaging-side activity for AI-stack progress is a misreading; for the project, this division of labor is fine in itself, but at the weekly-report level they must be recorded separately—otherwise the “commit count” metric will keep giving a false sense of prosperity.


Appendix: Sources and Verification Notes

Source List

  • 2026-11-02 issue: window 10-30 04:30 ~ 11-02 04:30 (past 3 days, covering Saturday and Sunday).
  • 2026-11-03 issue: window 11-02 04:30 ~ 11-03 04:30.
  • 2026-11-04 issue: window 11-03 04:30 ~ 11-04 04:30.
  • 2026-11-05 issue: window 11-04 04:30 ~ 11-05 04:30.
  • 2026-11-06 issue: window 11-05 04:30 ~ 11-06 04:30.
  • Developments outside the cycle boundary (11-06 daytime through 11-07 afternoon) were verified via organization repositories, release pages, and community sources, then added; see “Items Added This Week Beyond the Daily Issues.”

Verification Methods and Conventions

  • Organization verification (168-hour window, covering through the morning of 11-07): commits, PRs, and releases across the three organizations RuyiAI-Stack, ruyisdk, and buddy-compiler were checked via both Atom feeds and web pages, without relying on API rate limits; commits from upstream forks (PyTorch riscv, LLVM riscv, LLVM main) were filtered by RISC-V, RVV, vector extension, and XuanTie-related keywords before inclusion. Within the window, the three organizations totaled 93 repository events.
  • openRuyi main repo statistics: after full paginated API re-verification, with the window starting at Beijing time 11-02 00:00 (UTC 11-01 16:00) and ending at 11-06 24:00, 156 commits were found; converted to Beijing time by committer timestamp, the calendar-day counts are 7, 94, 10, 41, 4. This convention differs from the 24-hour windows of the individual daily issues, so the numbers do not fully correspond to those in the single-issue dailies.
  • Supplementary verification of key repositories: the three SPECS packages of openRuyi; ruyi, packages-index, and wechat-articles of ruyisdk; buddy-mlir of buddy-compiler; and pytorch (riscv branch), triton-riscv, tilelang-riscv, and llvm-project (riscv branch) of RuyiAI-Stack.
  • Dual community sources: the RuyiSDK developer community forum (latest topics list, two posts this week) and the openRuyi distribution news page (including 404 re-checks of the 2026-10 and 2026-11 release paths).
  • Official homepage: snapshots and sha256 comparison of three pages of www.ruyiai.org — homepage, blog page, and docs page — with blog and docs index entries attached (2 blog posts, 23 doc chapters).
  • Time conventions: repository commits are converted to Beijing time by committer timestamp; “daily” descriptions follow consecutive calendar days; the weekly cycle is the five working days from 2026-11-02 to 2026-11-06.

Items Added This Week Beyond the Daily Issues

  • 11-06 15:39, buddy-mlir merged #1033 “Add SPM optimization for BOSCAME backend” (209 files, +46131/−2305), which falls after the 11-06 daily issue window (11-05 04:30 ~ 11-06 04:30); it is the largest single change this week and has been added to Chapter 5.
  • 11-06 12:05, the forum added #2903 “[Repost] Infineon’s First RISC-V Automotive MCU Is Coming,” after the daily issue window; it is an industry repost and has been added to Chapter 6.
  • 11-06 12:08, triton-riscv published nightly build nightly/20261106-aa51ac2, the second nightly build after the #98 plugin refactor (the first being the two rounds on 11-05); it has been added to Chapter 2.
  • 11-06 12:52, triton-riscv’s #101 “Fix the release wheel and the failing checkout cleanup” was merged (2 files, +17/−2). At the time the 11-06 daily issue was written it was still open; this issue records it under the merged convention; #102 “Add AMD support” from the same day was merged at 11-07 01:30 (outside the cycle) and is not counted this week.
  • Correction to the 11-03 commit count convention: the 11-04 daily issue recorded “twenty commits within the window”; after full paginated API re-verification, that calendar day actually had 94 commits, of which 75 were pushed in the same second at 15:22:02 (firecracker and 74 Rust crate specs). The daily issue at the time listed only twelve of them as representative; this issue records the full count.
  • Supplementary note at the 11-07 verification point: the latest ruyi Release is still 0.54.0-beta.20261102 from 11-02, with no stable release; both the 2026-10 and 2026-11 release paths of openRuyi return 404; the sha256 of the three official homepage pages is consistent with 11-02.

Source Verification Table

Source Verification Result
RuyiAI-Stack organization (all repos) triton-riscv: nine commits, four merged PRs (#98, #99, #100, #101), four nightly builds (including 20261101-ed0ccd1 at 11-02 06:14); llvm-project: two full-branch replays on the riscv branch (11-01, 11-02) + one CI token change + the 11-04 BOSCAME commit, with main last stopping at 11-02; tilelang-riscv: zero commits after PR #5 was merged on 11-03; pytorch: three replays on the riscv branch, zero functional increments, with main syncing twenty to fifty-five upstream commits per issue; ruyiai-daily five issues; FBGEMM, cpuinfo, VecIntrinBench, IntrinTrans, harness, torq-tile, pytorch-ci, dsh-osc no commits
ruyisdk organization (all repos) ruyi: released 0.54.0-beta.20261102 on 11-02 (also merged #503, #507, #508, #509), then zero commits and zero new tags, with the stable release still 0.53.0; packages-index: three ABI sidecar notes on 11-02, then zero commits; wechat-articles: issue 080 went from draft to full-section merge (four commits on 11-04, eight on 11-05); ruyi-imager, docs, support-matrix, ruyisdk-website, AME-operator, linux-xuantie-kernel no commits within the window
openRuyi-Project organization 156 commits in the main repo (seven on 11-02, ninety-four on 11-03, ten on 11-04, forty-one on 11-05, four on 11-06); merged PRs include #1350 (RuyiAI trio), #1575 (source URL fix), #1559 (firecracker), #1563 (Node.js 26.13.0), #1534 (simdjson 5.0.8), #1564 (debuginfo), #1595 and #1596 (LibreOffice 1/n, 2/n), #1591 (CI containerization), #1584 (expat 2.10.0), #1544 (firefox 159); both the 2026.10 and 2026.11 monthly release paths return 404
buddy-compiler organization buddy-mlir: stable 0.1.3 (10-31) + nightly builds dev20261103, dev20261105; commits within the window include #1017 (scalable VIR tile count narrowing), #1020 (torch version constraint), #1028 and #1029 (set_vl semantics), #1018 (serving controller), #1030 and #1031 (vir.shuffle and kernel lowering), #1033 (BOSCAME SPM, 11-06); #1011, #1013, #994 still not in the stable release
RuyiSDK developer community forum Two posts this week: #2902 script installation and upgrade guide (11-03), #2903 Infineon automotive MCU repost (11-06); issue 080 was not posted, and the forum biweekly progress is still at issue 079 (10-26)
openRuyi distribution news page The release announcement is still 2026.09 (09-30); October has only two feature articles (both marked as published 10-19 and 10-30); the 2026-10 and 2026-11 release paths return 404
ruyi package manager / Releases 0.54.0-beta.20261102 is the latest pre-release (11-02 10:37 UTC), with the stable release remaining 0.53.0 (09-24); the main repo had commits only on 11-02 this week
Official homepage (ruyiai.org) No changes across all three pages for the whole week: homepage index 3 entries, 2 blog posts, 23 doc chapters, with sha256 consistent with the previous issue (verified through 11-07)
Google News RSS (multiple Chinese and English queries) More than twenty targeted queries across five issues yielded zero hits all week; contemporaneous general RISC-V news was unrelated to the Ruyi community and was not included
arXiv (RISC-V) One paper within the cycle (2611.03917, 11-02, bf16/fp16 auto-vectorization); no new papers after 11-03

Complete Source List