參與 LLVM

LLVM 歡迎各種形式的貢獻。開始之前,請先查看以下主題

貢獻 LLVM

如何貢獻 LLVM 的概述。

LLVM 開發者政策

LLVM 專案針對開發者及其貢獻的政策。

LLVM 程式碼審查政策與實務

LLVM 專案的程式碼審查流程。

LLVM 社群支援政策

LLVM 核心和非核心元件的支援政策。

Sphinx 快速入門範本

用於撰寫新 Sphinx 文件的範本和教學。建議以原始碼形式閱讀。

如何提交 LLVM 錯誤報告

有關正確提交在 LLVM 系統中遇到的任何錯誤的說明。

LLVM 錯誤生命週期

描述如何報告、分類和關閉錯誤。

LLVM 編碼標準

詳細說明 LLVM 編碼標準,並提供有關撰寫有效率 C++ 程式碼的實用資訊。

LLVM GitHub 使用者指南

描述如何使用 llvm-project 儲存庫和 GitHub 上的程式碼審查。

二分搜尋 LLVM 程式碼

描述如何在 LLVM 的儲存庫上使用 git bisect

git 儲存庫的政策

有關 git 儲存庫的政策集合。

開發流程

有關 LLVM 開發流程的資訊。

建立 LLVM 專案

針對*使用* LLVM 基礎架構的新專案的指南和範本。範本(目錄組織、Makefile 和測試樹)允許專案程式碼位於 llvm/ 樹狀目錄之外(或之內),同時使用 LLVM 標頭檔和程式庫。

如何將 LLVM 發布給大眾

這是準備 LLVM 發布版本的指南。大多數開發者可以忽略它。

如何驗證新版本

這是用於在發布過程中驗證新版本的指南。大多數開發者可以忽略它。

如何將您的建置組態新增至 LLVM Buildbot 基礎架構

將新的建置器新增至 LLVM buildbot 主機的說明。

目前版本的發行說明

這描述了新功能、已知錯誤和其他限制。

論壇與郵件清單

如果在這些文件中找不到您需要的資訊,請嘗試諮詢 Discourse 論壇。所有提交至 LLVM 專案的提交都有提交郵件清單。LLVM 社群行為準則 適用於所有這些論壇和郵件清單。

LLVM Discourse

LLVM 及其相關子專案的論壇。其中包含 LLVM 內部各種領域的類別和子類別。您也可以查看標籤或搜尋特定主題。

提交存檔 (llvm-commits)

此清單包含 LLVM 開發人員在將程式碼變更提交到儲存庫時所做的所有提交訊息。它也作為審查修補程式的論壇(即在此發送修補程式)。對於那些想要保持在 LLVM 開發最前線的人來說,這非常有用。此清單的數量非常龐大。

錯誤與修補程式存檔 (llvm-bugs)

每次開啟和關閉錯誤時,都會透過電子郵件發送此清單。它的數量比 LLVM-dev 清單還要多。

LLVM 公告

如果您只想查看專案範圍內的公告,例如發佈、開發人員會議或部落格文章,則應查看 LLVM 論壇上的公告類別。

線上同步會議

針對特定主題會定期舉行電話會議。預計主題範圍會隨著時間而改變。在撰寫本文時,已安排了以下同步會議。LLVM 社群行為準則適用於所有線上同步會議。

如果您想安排新的同步會議,請在下表中新增資訊。另請為其建立日曆活動,並邀請 calendar@llvm.org 參加活動,以便它會顯示在 LLVM 社群日曆 上。如需有關在日曆邀請中新增哪些內容的更多指南,請參閱 有關在 LLVM 社群日曆邀請中新增哪些內容的指南

表 120 LLVM 定期同步會議

主題

頻率

日曆連結

會議記錄/文件連結

迴圈最佳化工作群組

每月的第一個星期三

ics

會議記錄/文件

RISC-V

每兩週的星期四

ics gcal

會議記錄/文件

機器學習引導的編譯器最佳化

每月

會議記錄/文件

LLVM 安全群組

每月,每月的第三個星期二

ics gcal

會議記錄/文件

CIRCT

每週,星期三

會議記錄/文件

flang

多個會議系列,文件在此處

OpenMP

多個會議系列,文件在此處

LLVM 別名分析

每 4 週的星期二

ics

會議記錄/文件

LLVM 指標驗證

每月的星期一

ics

會議記錄/文件

LLVM 嵌入式工具鏈

每 4 週的星期四

ics gcal

會議記錄/文件

Clang C 與 C++ 語言工作群組

每月的第一個和第三個星期三

gcal

會議記錄/文件

LLVM SPIR-V 後端工作群組

每週星期一

會議詳細資訊/議程

SYCL 上游工作群組

每兩週的星期一

gcal

會議詳細資訊/議程

浮點數工作群組

每月的第三個星期三

ics gcal

會議詳細資訊/議程

向量化器改進工作群組

每月的第三個星期四

ics

會議詳細資訊/議程

過去的線上同步會議

有些線上同步會議已經不再舉行。我們在此保留這些會議的資訊,以便追蹤會議記錄,並供日後有人想要恢復會議時參考。

表 121 LLVM 不再舉行的同步會議

主題

頻率

日曆連結

會議記錄/文件連結

可擴展向量和 Arm SVE

每月,每月的第三個星期二

ics gcal

會議記錄/文件

LLVM 中的 MemorySSA

每 8 週的星期一

ics gcal

會議記錄/文件

GlobalISel

每月的第二個星期二

gcal

會議詳細資訊/議程

向量預測

每兩週的星期二,世界協調時間下午 3 點

會議記錄/文件

MLIR 設計會議

每週四

會議記錄/文件

辦公時間

一些經驗豐富的 LLVM 貢獻者會定期安排時間,與任何需要指導的人進行線上聊天。請在此查看有哪些人可以提供協助、時間安排、溝通管道以及他們的專業領域。別害羞,歡迎隨時加入!

辦公時間也列在 LLVM 社群行事曆 上。當然,人們偶爾也會休假,所以如果您在線上找不到任何人,他們很可能那天剛好休假。

LLVM 社群行為準則 適用於所有辦公時間。

表 122 LLVM 辦公時間

姓名

討論範圍

時間

地點

語言

Kristof Beyls

有關如何貢獻 LLVM 的一般性問題;組織聚會;提交演講稿;以及其他與 LLVM 相關的一般性主題。Arm/AArch64 程式碼生成。LLVM 安全小組。LLVM 辦公時間。

每月的第二和第四個星期三,歐洲中部時間上午 9:30,持續 30 分鐘。 ics

Jitsi

英語、佛萊明語、荷蘭語

Alina Sbirlea

有關如何貢獻 LLVM 的一般性問題;女性在編譯器領域的發展;MemorySSA、BatchAA、各種迴圈優化、新的 Pass 管理器。

每月第二個星期二,太平洋時間上午 10:00/歐洲中部時間下午 7:00,持續 30 分鐘。 ics gcal

Google Meet

英語、羅馬尼亞語

Aaron Ballman (他)

Clang 內部結構;前端屬性;clang-tidy;clang-query;AST 比對器

每月第二個星期一和第三個星期五的美國東部時間上午 10:00 和下午 2:00,持續 60 分鐘。 ics gcal

Google Meet

英語、挪威語(不流利)

Johannes Doerfert (他)

OpenMP、LLVM-IR、程序間優化、Attributor、研討會、研究…

每週三,太平洋時間上午 9:30,持續 1 小時。 ics

MS Teams

英語、德語

Tobias Grosser

關於如何貢獻 LLVM/MLIR、Polly、迴圈最佳化、FPL、LLVM 研究、CS 博士學位、程式碼之夏等一般性問題。

每月,在倫敦時間每月最後一個星期一的 18:00(通常是太平洋時間上午 9 點),進行 30 分鐘。

視訊通話

英語、德語、西班牙語、法語

Anastasia Stulova

Clang 內部結構,適用於 C/C++ 語言擴展和方言、OpenCL、GPU、SPIR-V、如何貢獻、編譯器領域的女性。

每月,在英國夏令時間每月第一個星期二的 17:00(倫敦時間)(太平洋時間上午 9:00,春季有 2 週除外),進行 30 分鐘。

Google Meet

英語、俄語、德語(不流利)

Alexey Bader

SYCL 編譯器、卸載工具、OpenCL 和 SPIR-V、如何貢獻。

每月,在太平洋時間每月第二個星期一的上午 9:30,進行 30 分鐘。

Google Meet

英語、俄語

Maksim Panchenko

BOLT 內部結構、IR、新的遍歷、提案等。

每月,在太平洋時間每月第二個星期三的上午 11:00,進行 30 分鐘。

Zoom

英語、俄語

Quentin Colombet(他)

LLVM/MLIR;代碼生成(指令選擇(GlobalISel/SDISel)、機器 IR、寄存器分配等);最佳化;MCA

每月,在太平洋時間每月第一個星期三的上午 8:00,進行 30 分鐘。 ics gcal

Google Meet

英語、法語

Phoebe Wang(她)

X86 後端、X86 的一般性問題、編譯器領域的女性。

每月,在北京時間每月第三個星期三的上午 8:30,進行 30 分鐘。

MS Teams

英語、中文

Amara Emerson

GlobalISel 的問題。

每月,在太平洋時間每月第四個星期三的上午 9:30,進行 30 分鐘。

Google Meet

英語

Maksim Levental 和 Jeremy Kun

MLIR 新手和一般性討論(直播

每兩週,在美國太平洋時間下午 2:00,進行 90 分鐘。

直播聊天或 Google Meet

英語

Renato Golin

一般的 LLVM、MLIR 和 Linalg、分佈式計算、研究、社交。

每月第一個星期二,英國時間上午 11:00,進行 60 分鐘。

Google Meet

英語、葡萄牙語

輪流主持

入門、初學者問題、新的貢獻者。

每週二,美國東部時間下午 2 點(太平洋時間上午 11 點),進行 30 分鐘。

Google Meet

英語

辦公時間主持人的指南

  • 如果您有興趣成為辦公時間主持人,請將您的資訊添加到上面的清單中。請為其建立日曆活動,並邀請 calendar@llvm.org 參加活動,以便它會顯示在 LLVM 社群日曆 上。請參閱 關於在 LLVM 社群日曆邀請中應包含哪些內容的指南,以獲取有關添加到日曆邀請中的內容的更多指南。

  • 開始辦公時間環節時,請考慮在您已加入的 LLVM 聊天頻道上輸入類似「*嗨,我在接下來的半小時內有空在* 視訊聊天網址 *進行聊天。我期待在視訊聊天或這裡與您交談。*」的內容。這些頻道可能包括

    這樣做可以幫助
    • 克服第一次撥入電話時的潛在焦慮,

    • 那些喜歡在撥入電話之前先通過文字聊天交換幾條訊息的人,以及

    • 提醒更廣泛的社群辦公時間確實存在。

  • 如果您決定不再主持辦公時間,請從上面的清單中刪除您的條目。

IRC

LLVM 專案(包含 Clang 等子專案)的使用者和開發者可以在 irc.oftc.net 的 #llvm 頻道找到彼此。此頻道有專人管理。

#llvm-build 頻道有一個用於 LLVM 自動建置系統 狀態變更的機器人。當建置從成功轉為失敗時,機器人會發佈一條包含自動建置系統連結和責任清單的訊息;當建置從失敗轉回成功時,它會再次發佈訊息(不含責任清單)。這個頻道適合用於主動監控建置狀態,但由於自動訊息的緣故,它會是一個訊息量大的頻道。此頻道沒有專人管理。

除了傳統的 IRC 之外,還有一個 Discord 聊天伺服器可供使用。如需註冊,請使用此 邀請連結

聚會和社交活動

除了開發者 會議 之外,還有幾個名為 LLVM 社群 的使用者群組。我們非常鼓勵您加入您所在城市的群組。如果沒有,也可以創建一個新的。

如何在您的城市創建 LLVM 社群

社群廣泛提案

關於社群運作方式和工作流程如何改進的大規模變革提案。

將 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 論壇上的文章可以作為會議記錄的存放位置。

範例邀請函如下所示

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)