参与贡献¶
LLVM 欢迎各种形式的贡献。要开始参与,请查看以下主题
- 为 LLVM 贡献代码
关于如何为 LLVM 做出贡献的概述。
- LLVM 开发者政策
LLVM 项目关于开发者及其贡献的政策。
- LLVM 代码审查政策与实践
LLVM 项目的代码审查流程。
- LLVM 社区支持政策
LLVM 针对核心和非核心组件的支持政策。
- Sphinx 快速入门模板
用于编写新的 Sphinx 文档的模板 + 教程。它旨在以源代码形式阅读。
- 如何提交 LLVM bug 报告
关于如何正确提交您在 LLVM 系统中遇到的任何 bug 信息的说明。
- LLVM Bug 生命周期
描述了 bug 如何被报告、分类和关闭。
- 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 添加新构建器的说明。
- 当前版本的发布说明
这描述了新功能、已知 bug 和其他限制。
论坛 & 邮件列表¶
如果您在这些文档中找不到您需要的内容,请尝试查阅 Discourse 论坛。还有针对 LLVM 项目所有提交的提交邮件列表。《LLVM 社区行为准则》适用于所有这些论坛和邮件列表。
- LLVM Discourse
关于 LLVM 和相关子项目的所有事物的论坛。其中有针对 LLVM 内各种领域的类别和子类别。您还可以查看标签或搜索特定主题。
- 提交存档 (llvm-commits)
此列表包含 LLVM 开发者向仓库提交代码更改时所做的所有提交消息。它也可用作补丁审查的论坛(即在此处发送补丁)。它对于那些想要紧跟 LLVM 开发前沿的人很有用。此列表的邮件量非常大。
- Bug & 补丁存档 (llvm-bugs)
每次 bug 被打开和关闭时,此列表都会收到电子邮件。它的邮件量比 LLVM-dev 列表更大。
- LLVM 公告
如果您只想了解项目范围内的公告,例如发布、开发者会议或博客文章,那么您应该查看 LLVM Discourse 上的公告类别。
在线同步会议¶
针对特定主题组织了许多定期通话。可以预料的是,主题范围会随着时间的推移而变化。在撰写本文时,组织了以下同步会议。《LLVM 社区行为准则》适用于所有在线同步会议。
如果您想组织新的同步会议,请在下表中添加信息。还请为其创建日历事件,并邀请 calendar@llvm.org 加入该事件,以便它显示在LLVM 社区日历上。请参阅关于在 LLVM 社区日历邀请中添加内容的指南,以获得关于在日历邀请中添加哪些内容的更多指导。
主题 |
频率 |
日历链接 |
会议纪要/文档链接 |
---|---|---|---|
循环优化工作组 |
每月第一个星期三 |
||
RISC-V |
每隔一周的星期四 |
||
ML 引导的编译器优化 |
每月 |
||
每月,每月第三个星期二 |
|||
每周,星期三 |
|||
flang |
多个会议系列,在此处记录 |
||
OpenMP |
多个会议系列,在此处记录 |
||
LLVM 别名分析 |
每 4 周的星期二 |
||
LLVM 指针认证 |
每月,星期一 |
||
LLVM 嵌入式工具链 |
每 4 周的星期四 |
||
Clang C 和 C++ 语言工作组 |
每月的第 1 个和第 3 个星期三 |
||
LLVM SPIR-V 后端工作组 |
每周,星期一 |
||
SYCL 上游工作组 |
每隔一周的星期一 |
||
向量化改进工作组 |
每月第三个星期二 |
对于事件所有者,我们的 Discord 机器人还支持发送即将到来的同步会议的自动公告。请参阅 Discord 机器人事件 Ping 部分以获取信息。
过往在线同步会议¶
一些在线同步会议已不再举行。我们在此处继续指出它们,以跟踪会议记录,并以防将来有人想要恢复它们。
主题 |
频率 |
日历链接 |
会议纪要/文档链接 |
---|---|---|---|
可扩展向量和 Arm SVE |
每月,每月第三个星期二 |
||
LLVM 中的 MemorySSA |
每 8 周的星期一 |
||
GlobalISel |
每月第二个星期二 |
||
向量谓词化 |
每隔一周的星期二,UTC 下午 3 点 |
||
MLIR 设计会议 |
每周,星期四 |
在线答疑¶
许多经验丰富的 LLVM 贡献者定期安排时间进行聊天,为任何寻求指导的人提供帮助。请查找谁在何时通过哪种媒介提供帮助,以及他们的专业领域是什么的列表。不要太害羞,请拨入!
在线答疑也列在LLVM 社区日历上。当然,人们有时会休假,所以如果您拨入但发现没有人,很可能是他们那天碰巧休息。
《LLVM 社区行为准则》适用于所有在线答疑。
姓名 |
范围内的主题 |
何时? |
哪里? |
语言 |
---|---|---|---|---|
Kristof Beyls |
关于如何为 LLVM 贡献代码的一般问题;组织聚会;提交演讲;以及其他与 LLVM 相关的一般主题。Arm/AArch64 代码生成。LLVM 安全组。LLVM 在线答疑。 |
每月的第 2 个和第 4 个星期三上午 9:30 CET,持续 30 分钟。ics |
英语,弗拉芒语,荷兰语 |
|
Alina Sbirlea |
关于如何为 LLVM 贡献代码的一般问题;女性在编译器领域;MemorySSA、BatchAA、各种循环优化 pass、新的 pass 管理器。 |
英语,罗马尼亚语 |
||
Aaron Ballman (他/他) |
Clang 内部原理;前端属性;clang-tidy;clang-query;AST 匹配器 |
英语,挪威语(不流利) |
||
Johannes Doerfert (他/他) |
OpenMP、LLVM-IR、过程间优化、Attributor、研讨会、研究,…… |
每周,星期三上午 9:30(太平洋时间),持续 1 小时。ics |
英语,德语 |
|
Tobias Grosser |
关于如何为 LLVM/MLIR 贡献代码的一般问题、Polly、循环优化、FPL、LLVM 研究、计算机科学博士学位、Google 编程之夏。 |
每月,最后一个星期一,伦敦时间 18:00(通常是太平洋时间上午 9 点),持续 30 分钟。 |
英语,德语,西班牙语,法语 |
|
Alexey Bader |
SYCL 编译器、offload 工具、OpenCL 和 SPIR-V、如何贡献代码。 |
每月,第二周星期一,太平洋时间上午 9:30,持续 30 分钟。 |
英语,俄语 |
|
Maksim Panchenko |
BOLT 内部原理、IR、新的 pass、提案等。 |
每月,第二周星期三,太平洋时间上午 11:00,持续 30 分钟。 |
英语,俄语 |
|
Quentin Colombet (他/他) |
LLVM/MLIR;代码生成(指令选择 (GlobalISel/SDISel)、机器 IR、寄存器分配等);优化;MCA |
英语,法语 |
||
Phoebe Wang (她/她) |
X86 后端、关于 X86 的一般问题、女性在编译器领域。 |
每月,第三个星期三,北京时间上午 8:30,持续 30 分钟。 |
英语,中文 |
|
Amara Emerson |
GlobalISel 问题。 |
每月,第四个星期三,太平洋时间上午 9:30,持续 30 分钟。 |
英语 |
|
Maksim Levental 和 Jeremy Kun |
MLIR 新手和一般讨论 (直播) |
每两周,星期三,美国太平洋时间下午 2:00,持续 90 分钟。 |
直播聊天或 Google meet |
英语 |
Renato Golin |
通用 LLVM、MLIR & Linalg、分布式计算、研究、社交。 |
每月第一个星期五,英国时间 14:00,持续 60 分钟。 |
英语,葡萄牙语 |
|
轮换主持人 |
入门、初学者问题、新贡献者。 |
每周二美国东部时间下午 2 点(太平洋时间上午 11 点),持续 30 分钟。 |
英语 |
对于活动所有者,我们的 Discord 机器人还支持发送即将到来的在线答疑的自动公告。请参阅 Discord 机器人事件 Ping 部分以获取信息。
在线答疑主持人指南¶
如果您有兴趣成为在线答疑主持人,请将您的信息添加到上面的列表中。请为其创建日历事件,并邀请 calendar@llvm.org 加入该事件,以便它显示在LLVM 社区日历上。请参阅关于在 LLVM 社区日历邀请中添加内容的指南,以获得关于在日历邀请中添加哪些内容的更多指导。
在开始在线答疑会话时,如果您尚未设置 Discord 机器人集成,请考虑在 #office-hours Discord 频道上输入类似 “大家好,在接下来的半小时内我将在 视频聊天 URL 提供聊天。我期待在视频聊天或此处进行对话。” 这样的内容。
- 这样做可以帮助
克服首次拨入的潜在焦虑,
喜欢在拨入之前先通过文本聊天交换几条消息的人,以及
提醒更广泛的社区在线答疑的存在。
如果您决定不再主持在线答疑,请从上面的列表中删除您的条目。
Discord¶
可以在社区的 Discord 聊天服务器上找到 LLVM 项目(包括 Clang 等子项目)的用户和开发者。服务器受到积极管理。
#buildbot-status 频道有一个用于 LLVM buildbot 状态更改的机器人。当构建从通过变为失败时,以及当构建从失败变回通过时,机器人将使用指向构建机器人的链接更新频道。这是主动监控构建状态的好方法。
当您的电子邮件出现在 blamelist 上时,机器人还支持 @mention-ing 您。有关更多详细信息,请向机器人发送 DM help
。
Discord 机器人事件 Ping¶
我们的 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 中包含文本 “欢迎加入我们的在线答疑!”
在发送 ping 前几分钟,机器人将再次检查事件是否已被取消。
如果您需要帮助进行故障排除,或者有功能请求/问题,请随时 ping @gburgessiv!
社区范围提案¶
关于社区行为方式以及如何更好地改进工作流程的重大变更提案。
- 将 LLVM 项目迁移到 GitHub
从 SVN/Git 迁移到 GitHub 的提案。
- Bugpoint 重新设计
Bugpoint 工具重新设计的文档。
- Test-Suite 扩展
针对 llvm 测试套件的附加基准/程序的提案。
- 变量名计划
更改变量名编码标准的提案。
- 向量谓词化路线图
关于 LLVM 中谓词向量指令的提案。
LLVM 社区日历¶
我们的目标是维护一个公开的日历视图,其中包含 LLVM 社区中发生的所有事件,例如 在线同步会议 和 在线答疑。日历可以在 https://calendar.google.com/calendar/u/0/embed?src=calendar@llvm.org 找到,也可以在下面内嵌查看
请注意,LLVM 社区日历的 Web 视图以协调世界时 (UTC) 显示事件。如果您使用 Google 日历,请考虑使用右下角的 + 按钮订阅它,以便在您的本地时区与其他日历一起查看所有事件。
关于在 LLVM 社区日历邀请中添加内容的指南¶
要添加您的事件,请为其创建日历事件,并邀请 calendar@llvm.org 加入。您的事件随后应显示在社区日历上。
请在您的日历邀请中添加以下信息
撰写一段文字描述事件的内容。包括事件的目标受众以及讨论的主题类型等信息。
明确声明《LLVM 社区行为准则》适用于此事件。
明确指出
组织者是谁。
在发生任何行为准则问题时,联系人是谁。通常,这将是组织者。
如果您有事件的会议纪要,请添加指向这些纪要的链接。会议纪要的一个好去处可以是 LLVM Discourse 上的帖子。
如果您正在主持同步会议或在线答疑活动,并希望通过 Discord 机器人进行公告,请添加相关的元数据(完整描述在 Discord 机器人事件 Ping 部分中提供)。
邀请示例如下
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.net.cn/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