跳至主要内容

開源貢獻紀錄

貢獻散在四個不同的系統上:GitHub PR、AOSP 的 Gerrit(android-review)、 OpenBMC 的 Gerrit,以及 Linux 和 U-Boot 的 mailing list(用 patchwork 追蹤)。 各邊的狀態字眼還不一樣(merged / MERGED / NEW / ABANDONED / New / RFC), 所以這頁統一成同一套圖例,並在最後附上重新查詢的指令,讓它可以隨時更新。

資料以 2026-10-17 查詢結果為準。

圖例:✅ 已合入 | 🔄 review 中 | ⏸ 暫停(等前置條件或併入別的討論) | ⛔ 已關閉(未合入)


一覽​

平台專案✅ 已合入🔄 review 中
AOSP Gerritkernel/common(Android Common Kernel)5 個 change + 1 筆 backport(含 automerge 共 16 筆)—
AOSP Gerritplatform/hardware/interfaces—12
AOSP Gerritplatform/hardware/libhardware—5
AOSP Gerritplatform/bootable/libbootloader(GBL)3—
OpenBMC Gerritopenbmc/libpldm—4
GitHubsysprog21(elfuse / codetrial / frama-c-mcp / shecc / rv32emu)177
GitHubu-root、vmtest、llama.cpp、sse2neon85
GitHubARM-software、DMTF、OpenPRoT35
GitHubtriton-cpu、spine-triton、UCAgent33
GitHub其他(cert-tools、os-in-1000-lines)3—
Mailing listLinux(dma-buf、SpacemiT K1 DT)—3
Mailing listU-Boot(virtio RTC、QEMU RISC-V、TPM、SpacemiT K1)—8(另 ⏸ 1)

主題大致分四塊:Android kernel、HAL 與 bootloader 的文件/健壯性修補、RISC-V 與 SIMD 相關的 效能與模擬器工作、韌體協定(PLDM、SPDM)的邊界檢查,以及新開的 Triton CPU backend。


依領域分類​

同一筆會出現在多個領域(例如 llama.cpp 的 SpacemiT kernel 同時是 RISC-V 和 LLM), 這裡不做互斥切分。

領域✅ 已合入🔄 review 中
資料中心 / 伺服器811
RISC-V711
Compiler / 工具鏈 / 執行環境159
LLM / AI144
Android917
韌體 / 開機1116

資料中心 / 伺服器​

貢獻狀態為什麼算這一類
u-root #3733、#3735、#3750✅u-root 是 LinuxBoot 的 userland,拿 Linux 取代 UEFI DXE 的那套做法,主要使用者就是 OCP 系的伺服器韌體
u-root #3762、#3761✅ / 🔄同一個 LinuxBoot userland 的 CI:讓整合測試真的在 riscv64 上開機跑
u-root #3774、#3775、#3776✅ / 🔄 / 🔄同一個 userland 的開機路徑:kexec 失敗訊息、boot menu 的 shell、universal payload 載入
DMTF/libspdm #3816、#4087✅SPDM 是 PCIe/CXL 裝置認證與量測的協定,用在伺服器內部元件的信任建立
DMTF/libspdm #4088、#4122🔄同一套 SPDM 參考實作的演算法協商:協商失敗時把已寫入的選擇還原
OpenPRoT/pldm-lib #21✅PRoT(Platform Root of Trust)+ PLDM,伺服器主板上的信任根
OpenPRoT/pldm-lib #32、#33🔄#21 的後續:解碼失敗也要回應、descriptor 字串長度的邊界
openbmc/libpldm ×4🔄BMC 就是伺服器的管理控制器,PLDM 是它對外的協定之一

RISC-V​

貢獻狀態為什麼算這一類
llama.cpp #27961、#28479✅SpacemiT X60 的 IME 矩陣加速路徑,RISC-V 向量/矩陣擴充的實際應用
u-root #3733✅riscv64 的 kexec 支援
u-root #3762、#3761✅ / 🔄#3733 的後續:CI 原本只編 riscv64 不開機。#3762 把 QEMU 網卡改用 -netdev/-device,讓 riscv64 virt 機器真的有 NIC;#3761 補上 riscv64 的 kexec_load 整合測試
hugelgupf/vmtest #132🔄把 u-root CI 用的 riscv64 測試 kernel 從 v6.6 升到 v6.18:riscv 的 kexec_file_load 要到 6.16 才收 Image,舊 kernel 上這個測試只能跳過
rv32emu ×5🔄RVV(向量擴充)指令實作與 cross-EEW overlap 規則
AOSP libbootloader 4314126✅GBL 的 riscv64 QEMU 範例:riscv64 virt 機器沒有預設的 block controller,要明確掛 virtio-blk-device,U-Boot 才找得到 ESP
os-in-1000-lines #101、#131✅這本教材的目標平台就是 RISC-V(qemu-system-riscv32);繁體中文版在上游 README 掛名
spine-triton #38🔄SpacemiT 的 Triton backend:X60 的 xsmtvdot 擴充名稱寫錯,在 K1 上實測才發現
Linux:K1 DT 標 bootph-pre-ram ×2🔄讓 SpacemiT K1 的 SPL 需要的節點直接寫在 Linux 的 device tree 裡,U-Boot 不必再自己補
U-Boot:Milk-V Jupiter⏸把 Jupiter 板子加進 mainline U-Boot,等上面的 Linux DT 先進
U-Boot:QEMU RISC-V 用 fw_cfg 開 -kernel ×4🔄讓 qemu-riscv64 的 U-Boot 預設開 QFW、改用 standard boot,-kernel 給的 kernel 不用再手動載

Compiler / 工具鏈 / 執行環境​

貢獻狀態為什麼算這一類
shecc #339✅自我編譯的教學用 C 最佳化編譯器,補的是暫存器配置相關的測試
sse2neon #774、#773✅ / 🔄SSE intrinsics 轉 NEON/SVE2,是編譯器 intrinsics 層的工作
ARM optimized-routines #97🔄libc 例程的最佳化實作與量測
frama-c-mcp ×3✅Frama-C 的靜態分析/形式驗證(EVA、WP)工具鏈
rv32emu ×5🔄指令集模擬器,本身帶 JIT
elfuse ×8✅ ×7 / 🔄 ×1嚴格說是執行環境不是編譯器:在 macOS 上跑 Linux ELF,做的是 ELF 載入與 syscall 語意轉譯
triton-cpu #324、#329、#330✅Triton 的 CPU backend(MLIR lowering):tl.histogram 的 mask、沒有原生 bf16 指令時 fp32→bf16 的 round-to-nearest-even、多開 43 個測試
spine-triton #38🔄Triton backend 傳給 LLVM 的 -mattr 名稱

LLM / AI​

貢獻狀態為什麼算這一類
llama.cpp #27961、#28479✅推論引擎的 CPU kernel(Q8_0 量化矩陣乘)
frama-c-mcp ×3✅MCP server,把形式驗證工具接給 AI agent 用
codetrial ×6✅Gemini 驅動的即時技術面試模擬器;含在瀏覽器讀 JD/履歷 PDF(#98)、讓模型扮演候選人來檢查面試規則(#107)
codetrial #110🔄讓報告與行為檢查改由本機模型產生(併入了原本的 #99)
triton-cpu #324、#329、#330✅Triton 是寫 GPU/AI kernel 的語言與編譯器,PyTorch torch.compile 的 kernel 就是用它產生
spine-triton #38🔄同一套 Triton,跑在 SpacemiT 的 AI CPU 上
XS-MLVP/UCAgent #140、#141🔄用 LLM agent 做晶片單元驗證(香山/UnityChip);補上 PR 測試的 CI,並讓 skill script 用 agent 自己的 Python 跑

Android​

貢獻狀態為什麼算這一類
kernel/common ×5(dma-heap、dma-buf、binder、scsi/ufs)✅Android Common Kernel(ACK)
platform/hardware/interfaces ×12🔄HAL 範例實作的 service fuzzer 與生命週期修補
platform/hardware/libhardware ×5🔄HID report descriptor 解析的邊界問題
android17-6.18 的 scsi/ufs 重送✅同一個 change 往穩定分支的 backport
platform/bootable/libbootloader ×3✅GBL(Generic Bootloader)的 QEMU 範例與除錯腳本修正

韌體 / 開機​

貢獻狀態為什麼算這一類
u-root #3733、#3735、#3750✅kexec、zimage 解析、reboot——都在「把下一個 kernel 帶起來」這條路徑上
u-root #3762、#3761、vmtest #132✅ / 🔄 / 🔄riscv64 kexec 路徑的整合測試,以及它需要的測試 kernel
u-root #3774、#3775、#3776✅ / 🔄 / 🔄kexec 失敗時說清楚原因、boot menu 進 shell 改成 exec 取代自己、universal payload 的載入錯誤與警告分開回傳
AOSP libbootloader ×3✅GBL 是 Android 的 UEFI app 型 bootloader,修的是它在 QEMU 上的開機與除錯路徑(OVMF 韌體路徑、riscv64 磁碟掛載、rust-gdb 位置)
DMTF/libspdm #3816、#4087✅裝置韌體的認證與 session key 管理;#4087 是 #3816 review 時答應補的測試
DMTF/libspdm #4088、#4122🔄Responder 與 Requester 兩側的 NEGOTIATE_ALGORITHMS 失敗還原
OpenPRoT/pldm-lib #21✅PLDM 是韌體之間(BMC ↔ 裝置)的管理協定
OpenPRoT/pldm-lib #32、#33、openbmc/libpldm ×4🔄同上
Linux:K1 DT 標 bootph-pre-ram ×2🔄標出 SPL 階段就要用到的節點(時脈、UART、SD/eMMC、SPI NOR),讓 U-Boot 直接沿用 Linux 的 DT
U-Boot:virtio RTC driver ×3🔄新 driver:讓 U-Boot 從 QEMU 的 virtio-rtc 裝置讀時間,並在 MAINTAINERS 加上 VIRTIO RTC 這一項
U-Boot:tpm2_get_random() 的長度欄位🔄TPM2 回應裡亂數長度是 16 位元,卻被當 32 位元讀;用 gdb 在 QEMU+swtpm 上追到
U-Boot:QEMU RISC-V standard boot ×4🔄開機流程從 distro boot 換成 standard boot,並支援 fw_cfg 傳入的 kernel
U-Boot:Milk-V Jupiter⏸見下方 Mailing list

不屬於上述任一類:cert-tools #55(區塊鏈證書工具的日期解析修正)、 Linux dma-buf 的 kernel-doc(和 AOSP 那筆修同一段文件)。


依影響力排序​

「影響力」沒有客觀分數,這裡用三個軸排,並在每一列寫出它為什麼在這個位置, 好讓排序可以被質疑而不是只能被接受:

  1. 觸及範圍——這段程式碼最後會跑在多少裝置、多少人手上(專案規模只是代理指標)。
  2. 變更性質——新功能/效能路徑 > 正確性與邊界修補 > 文件與測試補強。
  3. 狀態——已合入 > review 中 > 已關閉。

已合入​

#貢獻專案規模為什麼排在這裡
1llama.cpp #27961、#28479 — SpacemiT IME kernel sources 與 Q8_0 IME1 矩陣 kernel129k ★觸及範圍最大,而且兩步都進了:#27961 讓 RISC-V 加速路徑編得進去,#28479 是 kernel 本身
2u-root #3733 — pkg/boot riscv64 kexec support3.1k ★新功能,而且落在開機鏈核心:u-root 是 LinuxBoot/firmware 場景的 userland
3libspdm #3816、#4087 — key update rollback 與它的測試191 ★star 數不高但身分特殊:DMTF 的 SPDM 參考實作。修的是 KEY_UPDATE 失敗時金鑰只換了一半、無法回復的正確性問題;#4087 是 review 時答應補的 callback 順序測試
4triton-cpu #329、#330、#324 — histogram 的 mask、沒有 avx512bf16 時 bf16 的 RNE、多開 43 個測試214 ★(上游 triton 20k ★)兩個都是算錯數字的正確性 bug,而且 CI(GNR、Arm)抓不到,只有在沒有 AVX-512 的 x86 上才會出現;triton-cpu 直接 merge 進上游,作者身分保留
5sse2neon #774 — 拿掉 <fenv.h> 依賴1.5k ★影響所有 includer——header 汙染是會傳染給下游的那種 bug
6u-root #3750、#3735、#3774、#3762 — reboot 指令、zimage 長度上限、kexec 失敗訊息、riscv64 CI 的網卡3.1k ★一個新指令、一個邊界修正、一個錯誤回報,同樣在開機路徑上;#3762 是 CI,讓 riscv64 整合測試有網路可用
7elfuse ×7 — futex、pty hangup、AT_EMPTY_PATH、CLONE_THREAD 的 SIGCHLD…268 ★專案規模小,但技術深度最高:syscall 語意層級的行為正確性,錯了不會有人幫你發現
8AOSP kernel/common ×5(dma-heap、dma-buf、binder、scsi/ufs)Android ACK觸及範圍其實最廣(進 ACK 並 automerge 到 6 條分支,往下就是所有 Android 裝置的 kernel 樹),但性質是 kernel-doc 修補,所以沒有排在功能型變更之前
9AOSP libbootloader ×3 — OVMF 韌體路徑、launch_qemu_gdb.sh 的 rust-gdb 路徑、riscv64 範例掛上 virtio-blkAndroid GBL照官方說明跑 QEMU 範例會直接失敗的三個問題,擋住的是每個第一次上手 GBL 的人;但性質是範例與開發腳本,不進產品映像
10pldm-lib #21 — wire 上版本字串長度以目的端為上限2 ★韌體協定的邊界檢查,性質重要但專案還很新,採用面有限
11shecc #339 — 參數 slot 尚未建立前的逃逸讀取測試1.4k ★教學用 C 編譯器,補的是會被後續重構踩到的測試
12frama-c-mcp ×3、codetrial ×631 / 62 ★工具鏈與服務端的實用修補,觸及範圍最小
13os-in-1000-lines #101、#131 — 繁體中文翻譯與校稿3.6k ★讀者觸及很廣,但不是程式碼,另成一類
14cert-tools #5542 ★2022 年的單點 bug 修正

Review 中(潛在影響)​

同樣三個軸,但狀態全部是 🔄,所以這裡排的是「如果合入會有多大影響」。

#貢獻專案規模為什麼排在這裡
1AOSP hardware/interfaces ×12、libhardware ×5Android給預設/範例 HAL 補 service fuzzer 並修出生命週期問題。廠商常以範例實作為起點,所以修在這裡會往下游擴散
2Linux:K1 DT 標 bootph-pre-ram ×2Linux mainline進了就是 mainline kernel 的 DT,所有 K1 板子的 U-Boot SPL 都會沿用;也是 U-Boot 那邊 Jupiter patch 的前置條件
3U-Boot virtio RTC ×3、QEMU RISC-V standard boot ×4、tpm2_get_random()U-Boot mainlinevirtio RTC 是新 driver,VirtIO 維護者已經對 doc 與 MAINTAINERS 給了 Reviewed-by;QEMU RISC-V 那組改的是所有人跑 qemu-riscv64 U-Boot 的預設開機流程;TPM 那筆是會讀錯長度的正確性 bug
4libspdm #4088、#4122 — NEGOTIATE_ALGORITHMS 失敗時還原已協商的演算法191 ★SPDM 參考實作的狀態一致性;#4122 是維護者在 #4088 review 時指出 Requester 端也有同樣問題後補的
5u-root #3775、#3776 — boot menu 的 shell、universal payload 的回傳值3.1k ★都在開機路徑上:#3775 修的是進 shell 後 boot 程序還留在底下、離開 shell 被當成錯誤;#3776 是 API 整理
6sse2neon #773 — SVE2 fast path1.5k ★效能路徑,opt-in 所以風險可控
7optimized-routines #97 — strcmp benchmark711 ★Arm 官方倉庫,但性質是 benchmark 而非實作
8rv32emu ×5 — RVV 指令實作590 ★量大且偏功能,但侷限在單一模擬器內
9u-root #3761、vmtest #132 — riscv64 的 kexec 整合測試與測試 kernel3.1k / 42 ★替已合入的 #3733 補上真正會開機的測試;維護者希望升級 vmtest 的 riscv64 kernel,而不是在 u-root 繞過 v6.6 的限制,所以拆出 vmtest #132。性質是 CI,不改產品程式碼
10libpldm ×4(OpenBMC)、pldm-lib #32、#33OpenBMC / 新專案韌體協定的邊界檢查,影響面取決於這兩個 library 被採用的程度
11UCAgent #140、#141 — PR 跑測試的 CI、skill script 用對 Python230 ★晶片驗證 agent;#140 順手修了 main 上兩個已經壞掉的測試
12spine-triton #38 — xsmtvdot 名稱與範例的 import15 ★修的是 X60 矩陣擴充根本開不起來的問題,但專案剛開源、使用者少
13Linux dma-buf kernel-docLinux mainline和 AOSP 已合入那筆修同一段文件;性質是文件修補,至今沒有回應
14codetrial #11062 ★功能型但侷限在單一小專案

AOSP(android-review.googlesource.com)​

kernel/common — Android Common Kernel​

ACK 的 kernel-doc 與註解修補。合入 android-mainline 之後,automerger 會把同一個 change 自動傳播到 android-mainline-desktop、android-mainline-riscv64 等分支 (標題帶 am: 的那些),所以一個 change 在 Gerrit 上會出現好幾筆。

變更主分支狀態傳播到
ANDROID: dma-heap: restore struct dma_heap kernel-doc lost in a mergeandroid-mainline✅-desktop ✅、-riscv64 ✅
ANDROID: dma-buf: fix kernel-doc for dma_buf_set_name()android14-6.1✅android14-kiwi-6.1 ✅
ANDROID: binder: fix kernel-doc for struct binder_priorityandroid-mainline✅android17-6.18 ✅、-desktop ✅、-riscv64 ✅
ANDROID: scsi: ufs: fix kernel-doc for the UPIU prepare helpersandroid-mainline✅-desktop ✅、-riscv64 ✅、android17-6.18 ✅(第一次送的 4267244 已 abandon 後重送)
ANDROID: dma-heap: document the return values of the exported helpersandroid-mainline✅-desktop ✅、-riscv64 ✅

platform/hardware/interfaces — HAL 範例實作的 fuzzer 與生命週期修補​

12 筆,目前都在 review(🔄)。主軸是替預設/範例 HAL 實作補 service fuzzer, 順手修出 fuzzer 會踩到的生命週期問題。

子系統變更
gnssstop double owning the Gnss service、do not call a null callback、stop the reporting thread before destroying it、let a restarted reporting thread stop、do not sleep out a caller's batching interval、add a service fuzzer
secure_elementmove the emulated card out of main.cpp、add a service fuzzer
rebootescrowreject keys the encoder cannot encode、add a service fuzzer
contexthubadd a service fuzzer
tetheroffloadadd a service fuzzer

platform/hardware/libhardware — HID report descriptor 解析​

5 筆,都在 review(🔄)。先補 fuzzer,再修 fuzzer 找出來的解析邊界問題。

變更
HidUtils: add a report descriptor parser fuzzer
HidUtils: fix undefined shifts in HidItem
HidUtils: reject zero bit reports
HidUtils: reject out of range unit exponent
HidUtils: bound local item range expansion

platform/bootable/libbootloader — GBL 的 QEMU 範例與除錯腳本​

GBL(Generic Bootloader)的 gbl-mainline 分支,背景見 Android GBL 介紹。 三筆都是「照官方說明做會直接失敗」的問題。

變更狀態內容
Fix OVMF firmware path in standalone QEMU instructions✅x86_64 範例指向的 OVMF_CODE.fd 在現行 Debian/Ubuntu 的 ovmf 套件已不存在(只剩 4M 版本),改指 OVMF_CODE_4M.fd
Fix rust-gdb prebuilt path in launch_qemu_gdb.sh✅腳本找的 rust-gdb 路徑與 manifest 實際 checkout 的 Rust toolchain 位置不同,腳本一開始就中止
Attach virtio-blk in riscv64 QEMU example✅riscv64 virt 機器沒有預設 block controller,只給 -drive 不會掛上任何裝置,U-Boot 找不到 ESP 就停在提示字元

OpenBMC(gerrit.openbmc.org)​

openbmc/libpldm 的參數驗證與對齊問題,4 筆都在 review(🔄)。

變更
platform: Reject a compositeEffecterCount of zero
platform: Reject a NULL field argument
platform: Avoid unaligned loads in value encoders
platform: Use the sensor data-size constants

Mailing list​

Linux 和 U-Boot 不收 PR,patch 用 git send-email 寄到 mailing list,狀態看 patchwork(kernel.org、ozlabs)。 patchwork 的 New 只代表「還沒有人改狀態」,不等於有人在看。

專案Patch狀態後續
Linux(riscv / devicetree)riscv: dts: spacemit: k1: mark boot-critical SoC nodes bootph-pre-ram、mark K1 board boot devices bootph-pre-ram🔄U-Boot reviewer 希望 SPL 用的 bootph-pre-ram 先進 Linux 的 DT,再讓 U-Boot 沿用,所以先送這組
Linux(dma-buf)dma-buf: fix stale return value documentation for dma_buf_set_name()🔄與 AOSP 已合入的那筆修的是同一段 kernel-doc;linux-media 的 patchwork 標成 Not Applicable(dma-buf 走 drm-misc),dri-devel 上還沒有回應
U-Boot(virtio)virtio: rtc: Add virtio RTC driver v2 ×3🔄v1 的 review 指出 probe 時還不能碰 virtqueue(要等 DRIVER_OK),v2 改成第一次讀時間才查 UTC clock;doc 與 MAINTAINERS 兩筆已有 VirtIO 維護者的 Reviewed-by。寫 QEMU virtio-rtc 裝置的人也在 review,v3 等他看完再送
U-Boot(QEMU RISC-V)riscv: qemu: Boot a kernel passed with -kernel ×4🔄QEMU 只有在 U-Boot 從 pflash 開機時才會用 fw_cfg 交出 -kernel;這組讓 U-Boot 預設就去 fw_cfg 找
U-Boot(TPM)tpm: v2: Fix the size of the random data in tpm2_get_random()🔄回應裡的長度欄位是 u16,舊程式當成 u32 讀
U-Boot(SpacemiT K1)spacemit: k1: add Milk-V Jupiter⏸等上面的 Linux DT 進了再送 v2。實機上 mainline SPL+U-Boot 已經能從 SD 開到提示字元;過程中找到的 SPI NOR、DRAM 容量等問題會另外送修正
U-Boot(SpacemiT K1)RFC: mmc: k1: do not require max-frequency in the device tree ×2⛔已撤回:同一件事改用 DT 的 assigned-clock-* 處理,併入既有的 MMC 討論;在那串回報了 Jupiter 上 SD 訊號電壓設成 1.8 V 導致多區塊讀取失敗的問題

GitHub​

✅ 已合入​

專案PR內容
sysprog21/elfuse#350Prove the futex words behind Linux's refusals
#352Bound the pty hangup reads with an alarm
#353Answer AT_EMPTY_PATH before the path resolver
#358Drain the deferred stack unmap before the tid
#361Stop faking SIGCHLD on a CLONE_THREAD exit
#363Name deferral as a register class
#374Decide the commit-message rules in the C locale
sysprog21/frama-c-mcp#25Compare the machine model before calling variants duplicates
#29Count a timeout retry's flips instead of forbidding them
#32Key the opam cache on the opam that reads it
sysprog21/codetrial#3、#5、#17、#21連線中斷後續跑、prelude 缺的 header、錄影長度上限、把長度傳給頁面
#98Read JD and resume PDFs in the browser
#107Hold played candidates to the interview rules
sysprog21/shecc#339Test an escaped parameter read before its slot exists
u-root/u-root#3733pkg/boot: add riscv64 kexec support
#3735pkg/boot/zimage: accept a longer kernel size entry
#3750cmds/core/reboot: add reboot command
#3762integration: attach socket NICs with -netdev/-device
#3774kexec: explain kexec_file_load failures
triton-lang/triton-cpu#324Enable 43 more test_core.py tests on the CPU backend
#329Honor the mask in tl.histogram
#330Round fp32 to bf16 to nearest even without native support
ggml-org/llama.cpp#27961ggml-cpu: conditionally add SpacemiT IME kernel sources
#28479ggml-cpu: add Q8_0 IME1 matrix kernel for SpacemiT X60
DMTF/libspdm#3816Fix key update rollback for Specula cluster A.1 and A.3
#4087Assert the exact key update callback sequence in KEY_UPDATE tests
OpenPRoT/pldm-lib#21pldm-common: bound wire version-string lengths by the destination
DLTcollab/sse2neon#774Drop the <fenv.h> dependency to stop leaking FE_* into includers
nuta/operating-system-in-1000-lines#101繁體中文版翻譯
#131繁體中文版校稿
blockchain-certificates/cert-tools#55prevent isoformat error

🔄 Review 中​

專案PR內容
sysprog21/rv32emu#766、#767、#768、#770、#774RVV 整數指令、whole vector register move、單倍寬浮點轉換,以及 widening 運算的 cross-EEW overlap 規則
DLTcollab/sse2neon#773Add opt-in SVE2 fast path for _SIDD_CMP_EQUAL_ANY
ARM-software/optimized-routines#97bench: add strcmp benchmark
OpenPRoT/pldm-lib#32pldm-interface: answer requests that fail to decode
#33pldm-common: bound descriptor and downstream string lengths
DMTF/libspdm#4088Restore negotiated algorithms when NEGOTIATE_ALGORITHMS fails
#4122Restore negotiated algorithms when the ALGORITHMS response is rejected
sysprog21/elfuse#365Give each restated rule one owner
u-root/u-root#3761integration: run kexec_load tests on riscv64
#3775menu: exec the shell instead of running it as a child
#3776universalpayload: return the load error last
hugelgupf/vmtest#132kernel-riscv64: bump to Linux 6.18.54
sysprog21/codetrial#110Run reports and the behaviour check on a local model
spacemit-com/spine-triton#38Fix xsmtvdot feature name and stale imports in examples
XS-MLVP/UCAgent#140ci: run unit tests on PRs and fix two stale prompt assertions
#141fix(skill): run Python skill scripts with the current interpreter

⛔ 已關閉(未合入)​

留著是因為它們通常有下文:被拆小、被重送,或被維護者換了做法。

專案PR後續
ggml-org/llama.cpp#28025重送為 #28479
u-root/u-root#3736arm kexec,riscv64 那條(#3733)先進
sysprog21/rv32emu#769、#771、#772、#773RVV 浮點系列,改以其他 PR 重整
sysprog21/elfuse#362AGENTS.md 的組織方式,維護者另有想法
sysprog21/codetrial#4lobby 控制項位置
#99本機模型寫報告,維護者要求併入 #110 一起審
#104中文 JD 的需求擷取,維護者表示目前不考慮中文 JD

未收錄​

  • 自己的 repo(alanhc/*)的 PR,以及學生時期社團/課程 repo 的練習 PR。
  • 直接 push、沒有走 PR 的 commit。
  • 以其他帳號或信箱送出的變更(這頁只查得到目前用的兩組 Gerrit 身分、GitHub 帳號與寄 patch 的信箱)。

資料來源與更新方式​

四邊都有公開 API,更新這頁不需要人工翻紀錄:

# GitHub:已合入 / review 中 / 已關閉
gh search prs --author alanhc --merged --limit 100 \
--json repository,title,number,url,createdAt
gh search prs --author alanhc --state open --limit 50 \
--json repository,title,number,url,createdAt
# closed 同時包含已合入的,要扣掉上面 --merged 的結果才是「已關閉未合入」
gh search prs --author alanhc --state closed --limit 100 \
--json repository,title,number,url,closedAt

# Gerrit REST API(回傳開頭有 )]}' 前綴,要先去掉才能餵給 JSON parser)
curl -s 'https://android-review.googlesource.com/changes/?q=author:%22Alan%20Tseng%22&n=100' # 引號與空白要 URL 編碼,否則可能回空
curl -s 'https://gerrit.openbmc.org/changes/?q=owner:alanhc&n=100'

# Mailing list:Linux 系在 kernel.org 的 patchwork,U-Boot 在 ozlabs
curl -s 'https://patchwork.kernel.org/api/patches/?submitter=alan.tseng.cs@gmail.com&per_page=50'
curl -s 'https://patchwork.ozlabs.org/api/patches/?submitter=alan.tseng.cs@gmail.com&per_page=50'

lore.kernel.org 對 curl 會擋(防機器人驗證),所以腳本查 patchwork; patchwork 只有狀態沒有討論內容,回覆要回信箱或用瀏覽器看 lore。

Gerrit 查詢要注意兩件事:

  • owner: 和 author: 不是同一件事。 AOSP 的 automerger 會用機器人帳號重送同一個 change,那些 change 的 owner 是 android-build-automerger-*,只有 author: 查得到自己。
  • 狀態字眼要換算:Gerrit 的 NEW 是「還在 review」,不是「新的還沒送」; ABANDONED 對應 GitHub 的 closed。