參與貢獻

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 社群日曆邀請中應包含內容的指南」,以取得關於在日曆邀請中應新增內容的更多指南。

表 128 LLVM 定期同步會議通話

主題

頻率

日曆連結

會議記錄/文件連結

迴圈最佳化工作小組

每月第一個星期三

ics

會議記錄/文件

RISC-V

每兩週的星期四

ics gcal

會議記錄/文件

ML 引導的編譯器最佳化

每月

會議記錄/文件

LLVM 安全性群組

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

ics gcal

會議記錄/文件

CIRCT

每週,星期三

會議記錄/文件

flang

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

OpenMP

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

LLVM 別名分析

每四週的星期二

ics

會議記錄/文件

LLVM 指標驗證

每月星期一

ics

會議記錄/文件

LLVM 嵌入式工具鏈

每四週的星期四

ics gcal

會議記錄/文件

Clang C 和 C++ 語言工作小組

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

gcal

會議記錄/文件

LLVM SPIR-V 後端工作小組

每週星期一

會議詳細資訊/議程

SYCL 上游工作小組

每兩週的星期一

gcal

會議詳細資訊/議程

向量化器改進工作小組

每月的第三個星期二

ics

會議詳細資訊/議程

對於活動擁有者,我們的 Discord 機器人也支援發送即將到來的同步會議的自動公告。請參閱「Discord 機器人事件提醒」章節以取得資訊。

過去的線上同步會議

有些線上同步會議已不再舉行。我們在此處保留指向它們,以追蹤會議記錄,並以防將來有人想要恢復它們。

表 129 LLVM 已停止舉行的同步會議通話

主題

頻率

日曆連結

會議記錄/文件連結

可擴展向量和 Arm SVE

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

ics gcal

會議記錄/文件

LLVM 中的 MemorySSA

每八週的星期一

ics gcal

會議記錄/文件

GlobalISel

每月第二個星期二

gcal

會議詳細資訊/議程

向量述詞

每兩週的星期二,UTC 下午 3 點

會議記錄/文件

MLIR 設計會議

每週,星期四

會議記錄/文件

諮詢時間

許多經驗豐富的 LLVM 貢獻者定期安排時間提供諮詢,對象是任何尋求指導的人。請查看列表,了解誰在何時透過何種媒介提供諮詢,以及他們的專業領域是什麼。不要太害羞,請撥入!

諮詢時間也列在LLVM 社群日曆上。當然,人們偶爾會休假,所以如果您撥入但沒有人出現,很可能是他們那天休假。

LLVM 社群行為準則》適用於所有諮詢時間。

表 130 LLVM 諮詢時間

姓名

範圍內主題

時間?

地點?

語言

Kristof Beyls

關於如何貢獻 LLVM 的一般問題;組織聚會;提交演講;以及其他一般 LLVM 相關主題。Arm/AArch64 程式碼產生。LLVM 安全性群組。LLVM 諮詢時間。

每月第二和第四個星期三上午 9:30 (CET),持續 30 分鐘。 ics

Jitsi

英語、弗拉芒語、荷蘭語

Alina Sbirlea

關於如何貢獻 LLVM 的一般問題;女性在編譯器領域;MemorySSA、BatchAA、各種迴圈傳遞、新傳遞管理器。

每月,第二個星期二,上午 10:00 (PT)/晚上 7:00 (CET),持續 30 分鐘。 ics gcal

GoogleMeet

英語、羅馬尼亞語

Aaron Ballman (he/him)

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

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

GoogleMeet

英語、挪威語(不流利)

Johannes Doerfert (he/him)

OpenMP、LLVM-IR、跨程序最佳化、Attributor、工作坊、研究,…

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

MS Teams

英語、德語

Tobias Grosser

關於如何貢獻 LLVM/MLIR、Polly、迴圈最佳化、FPL、LLVM 研究、電腦科學博士、程式碼夏令營的一般問題。

每月,當月最後一個星期一下午 6:00 (倫敦時間,通常為太平洋時間上午 9 點),持續 30 分鐘。

視訊通話

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

Alexey Bader

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

每月,當月第二個星期一上午 9:30 (PT),持續 30 分鐘。

GoogleMeet

英語、俄語

Maksim Panchenko

BOLT 內部結構、IR、新傳遞、提案等。

每月,當月第二個星期三上午 11:00 (PT),持續 30 分鐘。

Zoom

英語、俄語

Quentin Colombet (he/him)

LLVM/MLIR;程式碼產生 (指令選擇 (GlobalISel/SDISel)、機器 IR、暫存器分配等);最佳化;MCA

每月,當月第一個星期三上午 8:00 (PT),持續 30 分鐘。 ics gcal

Google Meet

英語、法語

Phoebe Wang (she/her)

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

每月,當月第三個星期三上午 8:30 (北京時間),持續 30 分鐘。

MS Teams

英語、中文

Amara Emerson

GlobalISel 問題。

每月,當月第四個星期三上午 9:30 (PT),持續 30 分鐘。

Google Meet

英語

Maksim Levental 和 Jeremy Kun

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

每兩週,星期三下午 2:00 (美國太平洋時間),持續 90 分鐘。

直播聊天或 Google Meet

英語

Renato Golin

一般 LLVM、MLIR 和 Linalg、分散式運算、研究、社交。

每月第一個星期五,下午 2:00 (英國時間),持續 60 分鐘。

Google Meet

英語、葡萄牙語

輪值主持人

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

每週二下午 2 點 (美東時間) (太平洋時間上午 11 點),持續 30 分鐘。

Google Meet

英語

對於活動擁有者,我們的 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-hourssync-up

  • discord-bot-channels-to-mention - **有時必填**。要發布通知的 Discord 頻道的逗號分隔列表。如果您的 discord-bot-event-typeoffice-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 Socials 的使用者群組。我們非常鼓勵您加入您所在城市的群組。如果沒有,請開始一個新的群組

如何在您的城鎮開始 LLVM Social

社群廣泛提案

關於社群行為方式和工作流程如何能更好的大規模變更提案。

將 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