pkg.go.dev API 正式推出:Go 套件元資料首次開放程式化查詢
The Go Blog · 2026-05-21
Go 團隊於 2026 年 5 月 21 日宣布 pkg.go.dev API 正式上線,這是 Go 套件文件站首次提供程式化存取介面,讓開發者工具、IDE 外掛、AI 輔助編程工具能直接查詢 Go 模組與套件的元資料。API 目前處於 v1beta 路徑,承諾向後相容現有整合。
核心端點
| 端點 | 說明 |
|---|---|
/v1beta/package/{path} | 查詢特定套件的文件與元資料 |
/v1beta/module/{path} | 查詢模組資訊 |
/v1beta/versions/{path} | 列出所有模組版本 |
/v1beta/search?q={query} | 搜尋套件 |
/v1beta/symbols/{path} | 列出套件匯出符號 |
/v1beta/imported-by/{path} | 查詢哪些套件 import 了此套件 |
/v1beta/vulns/{path} | 查詢模組/套件已知漏洞 |
規格細節
API 採用無狀態、GET-only 設計,適合高效率快取。OpenAPI 規格檔位於 https://pkg.go.dev/v1beta/openapi.yaml。版本查詢支援 semver tag(?version=v1.2.3)和分支名稱(?version=main,自動解析為 pseudo-version)。
設計哲學是「精確優先」:同一套件路徑可能存在於多個模組(例如 example.com/a/b/c 同時存在於 example.com/a 和 example.com/a/b),API 遇到歧義時直接回傳錯誤,要求呼叫方明確指定模組,而非沉默選擇。這與 pkg.go.dev 網頁的「最長路徑優先」自動解析行為不同。
$ curl https://pkg.go.dev/v1beta/package/github.com/google/go-cmp/cmp | jq .
{
"modulePath": "github.com/google/go-cmp",
"version": "v0.7.0",
"isLatest": true,
"path": "github.com/google/go-cmp/cmp",
"synopsis": "Package cmp determines equality of values."
}影響範圍
官方同步釋出 pkgsite-cli 作為參考實作,透過 go install golang.org/x/pkgsite/cmd/internal/pkgsite-cli@latest 安裝。CLI 的介面尚未穩定,但 HTTP API 承諾向後相容。對於 AI 輔助編程工具而言,/v1beta/symbols 和 /v1beta/vulns 端點提供了過去必須爬取 HTML 才能取得的資訊,有助於提升程式碼補全的精確度。
Rust nvptx64-nvidia-cuda Target 最低門檻提升至 SM 7.0:Maxwell/Pascal GPU 不再支援
Rust Blog · 2026-05-01
Rust 編譯器團隊於 2026 年 5 月 1 日宣布提升 nvptx64-nvidia-cuda Target 的硬體門檻:最低要求從 PTX ISA 6.x 提升至 PTX ISA 7.0,對應 CUDA 11 驅動程式與 SM 7.0(Volta 架構)。compute capability 低於 7.0 的 Maxwell、Pascal 架構 GPU 不再受到官方支援。
提升門檻的技術原因
維持對舊架構支援的主要障礙是編譯器的正確性缺陷。過去存在數個已知問題,會使有效的 Rust 程式碼在針對舊版 GPU 編譯時觸發編譯器 crash 或產生錯誤的機器碼(miscompilation)。這些問題的根本原因在於舊版 PTX ISA 的限制與 Rust codegen 假設之間的不匹配。
受影響的舊架構(Maxwell 發布於 2014 年、Pascal 發布於 2016 年)均已超出 NVIDIA 的活躍支援週期。提升門檻讓編譯器團隊得以專注改善受支援硬體上的正確性,而非繼續為已停止維護的架構維持相容性層。
受影響版本與遷移路徑
受影響的 GPU 包括所有 compute capability 6.x 及以下的卡,例如 GTX 1080(Pascal, CC 6.1)、GTX 980(Maxwell, CC 5.2)。CUDA 計算 capability 7.0 起(Volta V100、Turing RTX 20 系列等)不受影響。
遷移步驟:移除或更新任何指定舊架構的 -C target-cpu=sm_60 等 flag,改用 sm_70 或更新的目標;確認 CUDA 驅動版本為 11 以上。預設行為現在是 sm_70。
原始來源:Rust Blog — Raising the baseline for nvptx64-nvidia-cuda
LLVM Foundation 提議支持 ISO C/C++ 標準文件開放存取
LLVM Discourse · 2026-05-22
LLVM Foundation 在 2026 年 5 月 22 日發布 RFC,提議以基金會名義發表聲明,支持 C 與 C++ ISO 標準文件開放存取(免費取得)。核心論點是:工具鏈開發者若需付費取得標準文件才能正確實作語言,會對開源生態造成不公平門檻。
背景
目前 ISO C(C23)和 C++(C++26)的官方標準文件均需付費取得,ANSI 售價約 60–200 美元不等。Working Draft(工作草稿)雖可免費取得,但與最終標準之間存在差異,且不具正式法律效力。對個人貢獻者和小型組織而言,這個成本並不微不足道。
Lobsters 的討論串(score: 39)指出,這個問題在 LLVM 社群特別突出:Clang 和 LLVM 的實作需要準確理解標準措辭,尤其在未定義行為(UB)和實作定義行為(IDB)的邊界情況上,工作草稿的措辭與最終版本有時存在實質差異。
RFC 的具體訴求
LLVM Foundation 希望以機構身分加入 WG21(C++ 標準委員會)和 WG14(C 標準委員會)倡議免費存取的討論,並可能提供財務支持以取得機構授權供專案成員使用。聲明本身不具約束力,但旨在藉由主要工具鏈組織的公開支持增加推動力。目前 RFC 仍在討論階段,尚未定案。
原始來源:LLVM Discourse RFC