參與貢獻¶
LLVM 歡迎各種形式的貢獻。若要開始,請檢閱以下主題
- 貢獻 LLVM
關於如何貢獻 LLVM 的概述。
- LLVM 開發者政策
LLVM 專案針對開發者及其貢獻的政策。
- LLVM 程式碼審查政策與實務
LLVM 專案的程式碼審查流程。
- LLVM 社群支援政策
LLVM 針對核心與非核心組件的支援政策。
- Sphinx 快速入門範本
用於撰寫新的 Sphinx 文件的範本 + 教學。旨在以原始碼形式閱讀。
- 如何提交 LLVM 錯誤報告
關於正確提交您在 LLVM 系統中遇到的任何錯誤資訊的說明。
- LLVM 錯誤生命週期
描述錯誤如何被報告、分類和關閉。
- LLVM 編碼標準
詳細說明 LLVM 編碼標準,並提供撰寫高效 C++ 程式碼的實用資訊。
- LLVM GitHub 使用者指南
描述如何在 GitHub 上使用 llvm-project 儲存庫和程式碼審查。
- 二分法搜尋 LLVM 程式碼
描述如何在 LLVM 的儲存庫上使用
git bisect
。- 關於 git 儲存庫的政策
關於 git 儲存庫的政策彙集。
開發流程¶
關於 LLVM 開發流程的資訊。
- 建立 LLVM 專案
針對 *使用* LLVM 基礎架構的新專案的操作指南與範本。這些範本(目錄組織、Makefile 和測試樹)允許專案程式碼位於
llvm/
樹之外(或之內),同時使用 LLVM 標頭檔和函式庫。- 如何公開發布 LLVM
這是準備 LLVM 發布版本的指南。大多數開發者可以忽略它。
- 如何驗證新發布版本
這是發布過程中驗證新發布版本的指南。大多數開發者可以忽略它。
- 如何將您的建置配置新增至 LLVM Buildbot 基礎架構
用於將新建置器新增至 LLVM buildbot master 的說明。
- 目前發布版本的發行說明
這描述了新功能、已知錯誤和其他限制。
論壇與郵件列表¶
如果您在這些文件中找不到您需要的資訊,請嘗試查閱 Discourse 論壇。還有針對 LLVM 專案所有提交的提交郵件列表。《LLVM 社群行為準則》適用於所有這些論壇和郵件列表。
- LLVM Discourse
關於 LLVM 和相關子專案的所有事項的論壇。針對 LLVM 內部的各種領域設有類別和子類別。您也可以檢視標籤或搜尋特定主題。
- 提交封存 (llvm-commits)
此列表包含 LLVM 開發者將程式碼變更提交至儲存庫時所做的所有提交訊息。它也作為修補程式審查的論壇(即在此處發送修補程式)。對於想要保持在 LLVM 開發最前沿的人來說非常有用。此列表的量非常大。
- 錯誤與修補程式封存 (llvm-bugs)
每次錯誤被開啟和關閉時,此列表都會收到電子郵件。它的量比 LLVM-dev 列表更高。
- LLVM 公告
如果您只想了解專案範圍內的公告,例如發布版本、開發者會議或部落格文章,那麼您應該查看 LLVM Discourse 上的「公告」類別。
線上同步會議¶
針對特定主題組織了許多定期通話。預計主題範圍會隨時間而變化。在撰寫本文時,組織了以下同步會議。《LLVM 社群行為準則》適用於所有線上同步會議。
如果您想組織新的同步會議,請在下表中新增資訊。也請為其建立日曆活動並邀請 calendar@llvm.org 參與活動,以便它顯示在LLVM 社群日曆上。請參閱「關於在 LLVM 社群日曆邀請中應包含內容的指南」,以取得關於在日曆邀請中應新增內容的更多指南。
主題 |
頻率 |
日曆連結 |
會議記錄/文件連結 |
---|---|---|---|
迴圈最佳化工作小組 |
每月第一個星期三 |
||
RISC-V |
每兩週的星期四 |
||
ML 引導的編譯器最佳化 |
每月 |
||
每月,每月的第三個星期二 |
|||
每週,星期三 |
|||
flang |
多個會議系列,文件在此處 |
||
OpenMP |
多個會議系列,文件在此處 |
||
LLVM 別名分析 |
每四週的星期二 |
||
LLVM 指標驗證 |
每月星期一 |
||
LLVM 嵌入式工具鏈 |
每四週的星期四 |
||
Clang C 和 C++ 語言工作小組 |
每月的第一個和第三個星期三 |
||
LLVM SPIR-V 後端工作小組 |
每週星期一 |
||
SYCL 上游工作小組 |
每兩週的星期一 |
||
向量化器改進工作小組 |
每月的第三個星期二 |
對於活動擁有者,我們的 Discord 機器人也支援發送即將到來的同步會議的自動公告。請參閱「Discord 機器人事件提醒」章節以取得資訊。
過去的線上同步會議¶
有些線上同步會議已不再舉行。我們在此處保留指向它們,以追蹤會議記錄,並以防將來有人想要恢復它們。
主題 |
頻率 |
日曆連結 |
會議記錄/文件連結 |
---|---|---|---|
可擴展向量和 Arm SVE |
每月,每月的第三個星期二 |
||
LLVM 中的 MemorySSA |
每八週的星期一 |
||
GlobalISel |
每月第二個星期二 |
||
向量述詞 |
每兩週的星期二,UTC 下午 3 點 |
||
MLIR 設計會議 |
每週,星期四 |
諮詢時間¶
許多經驗豐富的 LLVM 貢獻者定期安排時間提供諮詢,對象是任何尋求指導的人。請查看列表,了解誰在何時透過何種媒介提供諮詢,以及他們的專業領域是什麼。不要太害羞,請撥入!
諮詢時間也列在LLVM 社群日曆上。當然,人們偶爾會休假,所以如果您撥入但沒有人出現,很可能是他們那天休假。
《LLVM 社群行為準則》適用於所有諮詢時間。
姓名 |
範圍內主題 |
時間? |
地點? |
語言 |
---|---|---|---|---|
Kristof Beyls |
關於如何貢獻 LLVM 的一般問題;組織聚會;提交演講;以及其他一般 LLVM 相關主題。Arm/AArch64 程式碼產生。LLVM 安全性群組。LLVM 諮詢時間。 |
每月第二和第四個星期三上午 9:30 (CET),持續 30 分鐘。 ics |
英語、弗拉芒語、荷蘭語 |
|
Alina Sbirlea |
關於如何貢獻 LLVM 的一般問題;女性在編譯器領域;MemorySSA、BatchAA、各種迴圈傳遞、新傳遞管理器。 |
英語、羅馬尼亞語 |
||
Aaron Ballman (he/him) |
Clang 內部結構;前端屬性;clang-tidy;clang-query;AST 比對器 |
每月,第二個星期一和第三個星期五上午 10:00 (美東時間) 和下午 2:00 (美東時間) 各一次,持續 60 分鐘。 ics gcal |
英語、挪威語(不流利) |
|
Johannes Doerfert (he/him) |
OpenMP、LLVM-IR、跨程序最佳化、Attributor、工作坊、研究,… |
每週,星期三上午 9:30(太平洋時間),持續 1 小時。 ics |
英語、德語 |
|
Tobias Grosser |
關於如何貢獻 LLVM/MLIR、Polly、迴圈最佳化、FPL、LLVM 研究、電腦科學博士、程式碼夏令營的一般問題。 |
每月,當月最後一個星期一下午 6:00 (倫敦時間,通常為太平洋時間上午 9 點),持續 30 分鐘。 |
英語、德語、西班牙語、法語 |
|
Alexey Bader |
SYCL 編譯器、卸載工具、OpenCL 和 SPIR-V、如何貢獻。 |
每月,當月第二個星期一上午 9:30 (PT),持續 30 分鐘。 |
英語、俄語 |
|
Maksim Panchenko |
BOLT 內部結構、IR、新傳遞、提案等。 |
每月,當月第二個星期三上午 11:00 (PT),持續 30 分鐘。 |
英語、俄語 |
|
Quentin Colombet (he/him) |
LLVM/MLIR;程式碼產生 (指令選擇 (GlobalISel/SDISel)、機器 IR、暫存器分配等);最佳化;MCA |
英語、法語 |
||
Phoebe Wang (she/her) |
X86 後端、關於 X86 的一般問題、女性在編譯器領域。 |
每月,當月第三個星期三上午 8:30 (北京時間),持續 30 分鐘。 |
英語、中文 |
|
Amara Emerson |
GlobalISel 問題。 |
每月,當月第四個星期三上午 9:30 (PT),持續 30 分鐘。 |
英語 |
|
Maksim Levental 和 Jeremy Kun |
MLIR 新手和一般討論 (直播) |
每兩週,星期三下午 2:00 (美國太平洋時間),持續 90 分鐘。 |
直播聊天或 Google Meet |
英語 |
Renato Golin |
一般 LLVM、MLIR 和 Linalg、分散式運算、研究、社交。 |
每月第一個星期五,下午 2:00 (英國時間),持續 60 分鐘。 |
英語、葡萄牙語 |
|
輪值主持人 |
入門指南、初學者問題、新貢獻者。 |
每週二下午 2 點 (美東時間) (太平洋時間上午 11 點),持續 30 分鐘。 |
英語 |
對於活動擁有者,我們的 Discord 機器人也支援發送即將到來的諮詢時間的自動公告。請參閱「Discord 機器人事件提醒」章節以取得資訊。
諮詢時間主持人的指南¶
如果您有興趣成為諮詢時間主持人,請將您的資訊新增至上面的列表。請為其建立日曆活動並邀請 calendar@llvm.org 參與活動,以便它顯示在LLVM 社群日曆上。請參閱「關於在 LLVM 社群日曆邀請中應包含內容的指南」,以取得關於在日曆邀請中應新增內容的更多指南。
在開始諮詢時間時,如果您尚未設定 Discord 機器人整合,請考慮在 #office-hours Discord 頻道上輸入類似「嗨,接下來半小時我可以在視訊聊天網址提供諮詢。我期待在視訊聊天或此處與您交談。」的訊息。
- 這樣做可以幫助
克服第一次撥入的潛在焦慮,
喜歡在撥入之前先透過文字聊天交換一些訊息的人,以及
提醒更廣泛的社群,諮詢時間確實存在。
如果您決定不再主持諮詢時間,請從上面的列表中移除您的條目。
Discord¶
LLVM 專案(包括 Clang 等子專案)的使用者和開發者可以在社群的 Discord 聊天伺服器上找到。該伺服器受到積極管理。
#buildbot-status 頻道有一個機器人用於 LLVM buildbot 狀態變更。當建置從通過變為失敗時,以及當建置從失敗變回通過時,機器人都會使用建置機器人的連結更新頻道。這是主動監控建置狀態的好方法。
當您的電子郵件出現在 blamelist 上時,機器人也支援 @mention 您。如需更多詳細資訊,請向機器人發送 DM help
。
Discord 機器人事件提醒¶
我們的 Discord 機器人支援自動發送關於 LLVM 社群日曆上即將到來的活動的訊息到 Discord。此行為基於每個活動進行控制,透過活動描述中的元資料。每個元資料應在其自己的行中。
目前支援的元資料是
discord-bot-event-type
- **必填**。指定事件類型。有效值為office-hours
和sync-up
。discord-bot-channels-to-mention
- **有時必填**。要發布通知的 Discord 頻道的逗號分隔列表。如果您的discord-bot-event-type
是office-hours
,則#office-hours
頻道將隱式附加到此列表(因此,您不需要指定此項目)。否則,您必須在此處指定一個值。discord-bot-mention
- **選填**。要在每個事件通知中 ping 的人員的逗號分隔列表。所有提及的名稱都必須是 Discord 使用者名稱,並且必須帶有前導@
。例如,@foo, @bar
。discord-bot-reminder-time-before-start
- **選填**。在事件開始前多少分鐘發送 ping。這應該格式化為整數。預設為 30。discord-bot-message
- **選填**。要附加到所有事件 ping 的文字。
具有有效元資料的事件描述範例是
Regular office hours to chat with people about LLVM! We can help with
questions, troubleshooting bugs, etc.
discord-bot-channels-to-mention: #beginners, #foo
discord-bot-event-type: office-hours
discord-bot-mention: @gburgessiv, @bar
discord-bot-message: Come join us for office hours!
discord-bot-reminder-time-before-start: 5
此元資料將提示 Discord 機器人
在給定事件開始前 5 分鐘發送 ping,在 ping 中提及
@gburgessiv
和@bar
將 ping 發送到
#beginners
、#foo
和#office-hours
頻道在 ping 中包含文字「Come join us for office hours!」
在發送 ping 前幾分鐘,機器人將再次檢查事件是否已取消。
如果您需要疑難排解方面的協助,或有功能請求/問題,請隨時 ping @gburgessiv!
社群廣泛提案¶
關於社群行為方式和工作流程如何能更好的大規模變更提案。
- 將 LLVM 專案移至 GitHub
從 SVN/Git 遷移到 GitHub 的提案。
- Bugpoint 重新設計
Bugpoint 工具重新設計的設計文件。
- 測試套件擴展
關於 llvm 測試套件的額外基準/程式的提案。
- 變數名稱計畫
變更變數名稱編碼標準的提案。
- 向量述詞路線圖
關於 LLVM 中述詞向量指令的提案。
LLVM 社群日曆¶
我們的目標是維護 LLVM 社群中所有活動的公開日曆檢視,例如線上同步會議和諮詢時間。日曆可以在 https://calendar.google.com/calendar/u/0/embed?src=calendar@llvm.org 找到,也可以在下方內嵌檢視
請注意,LLVM 社群日曆的網頁檢視以協調世界時間 (UTC) 顯示事件。如果您使用 Google 日曆,請考慮使用右下角的 + 按鈕訂閱它,以便在您的其他日曆旁邊檢視您當地時區的所有事件。
關於在 LLVM 社群日曆邀請中應包含內容的指南¶
若要新增您的活動,請為其建立日曆活動並邀請 calendar@llvm.org 參與。您的活動應隨後顯示在社群日曆上。
請在您的日曆邀請中放入以下資訊
撰寫一個段落描述活動的內容。包含活動是為誰舉辦以及討論哪些類型的主題等資訊。
明確聲明《LLVM 社群行為準則》適用於此活動。
明確說明誰是
組織者。
在發生任何行為準則問題時的聯絡人。通常,這會是組織者。
如果您有活動的會議記錄,請新增指向這些記錄位置的指標。會議記錄的好去處可以是 LLVM Discourse 上的貼文。
如果您正在主持同步會議或諮詢時間活動,並希望由 Discord 機器人公告,請新增相關元資料(完整描述可在「Discord 機器人事件提醒」章節中找到)。
邀請範例看起來如下
This event is a meetup for all developers of LLDB. Meeting agendas are posted
on discourse before the event.
Attendees are required to adhere to the LLVM Code of Conduct
(https://llvm.dev.org.tw/docs/CodeOfConduct.html). For any Code of Conduct reports,
please contact the organizers, and also email conduct@llvm.org.
Agenda/Meeting Minutes: Link to minutes
Organizer(s): First Surname (name@email.com)
discord-bot-channels-to-mention: #lldb
discord-bot-event-type: sync-up
discord-bot-mention: @host-username, @another-host
discord-bot-message: Come join us to chat about LLDB!
discord-bot-reminder-time-before-start: 30