参与贡献

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 社区日历邀请中添加内容的指南

表 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 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:00),持续 30 分钟。

视频通话

英语、德语、西班牙语、法语

Anastasia Stulova

Clang 内部针对 C/C++ 语言扩展和方言、OpenCL、GPU、SPIR-V 的内容,以及如何贡献代码、编译器领域的女性等话题。

每月,每月第一个星期二英国夏令时 17:00(伦敦时间)(太平洋时间上午 9:00,除了春季的两个星期),时长 30 分钟。

GoogleMeet

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

Alexey Bader

SYCL 编译器、卸载工具、OpenCL 和 SPIR-V,以及如何贡献代码。

每月,每月第二个星期一太平洋时间上午 9:30,时长 30 分钟。

GoogleMeet

英语、俄语

Maksim Panchenko

BOLT 内部机制、IR、新的 Pass、提案等。

每月,每月第二个星期三太平洋时间上午 11:00,时长 30 分钟。

Zoom

英语、俄语

Quentin Colombet (he/him)

LLVM/MLIR;代码生成(指令选择(GlobalISel/SDISel)、机器 IR、寄存器分配等);优化;MCA

每月,每月第一个星期三太平洋时间上午 8:00,时长 30 分钟。 ics gcal

Google meet

英语、法语

Phoebe Wang (she/her)

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 聊天频道中键入类似“您好,我将在接下来的半小时内在 视频聊天 URL 进行聊天。我期待在视频聊天或这里进行对话。”的内容。这些可能包括

    这样做可以帮助
    • 克服首次打电话参与的潜在焦虑,

    • 更偏向于在拨打之前先通过文本聊天交换一些信息的人,以及

    • 提醒更广泛的社区办公时间的存在。

  • 如果您决定不再主持办公时间,请从上面的列表中删除您的条目。

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/[email protected] 中找到,也可以在下面内联查看

请注意,LLVM 社区日历的网页视图以协调世界时 (UTC) 显示事件。如果您使用 Google 日历,请考虑使用右下角的“+”按钮订阅它,以便在您的其他日历旁边以您的本地时区查看所有事件。

关于在 LLVM 社区日历邀请中添加哪些内容的指南

要添加您的事件,请为此创建一个日历事件并邀请 calendar@llvm.org 参加。您的事件随后将显示在社区日历上。

请在您的日历邀请中添加以下信息

  • 写一段描述该事件内容的文字。包括该事件面向谁以及讨论哪些主题等信息。

  • 明确说明 LLVM 社区行为准则 适用于此事件。

  • 明确说明谁是

    • 组织者。

    • 如果出现任何行为准则问题,需要联系的人。通常,这将是组织者。

  • 如果您有事件的会议记录,请添加指向其所在位置的指针。会议记录的理想位置可能是 LLVM Discourse 上的帖子。

示例邀请如下所示

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 [email protected].

Agenda/Meeting Minutes: Link to minutes

Organizer(s): First Surname ([email protected])