欢迎 LLVM Outreachy 实习生!
LLVM 项目首次参与 Outreachy 计划。两位实习生入选:Sushma Unnibhavi 和 Pooja Yadav。
Outreachy 提供带薪远程实习,旨在增加开源领域的包容性。Outreachy 实习生与开源社区的导师合作,从事编程、用户体验、文档、插图、图形设计、数据科学、项目营销、用户倡导或社区活动策划方面的项目。
Pooja 将与她的导师 Kit Barton 合作,开展项目“创建 LLVM 全局指令选择框架的文档和教程”。Sushma 将与她的导师 Anshil Gandhi 合作,开展项目“在 LLVM 中为 M68k 后端实现 GlobalISel”。
感谢 赞助商 支持 LLVM 基金会,他们的支持使这些实习成为可能。此外,我们还要特别感谢 Kit 和 Anshil 的指导!
我们向 Sushma 和 Pooja 提问了几个关于她们自己和她们正在从事的项目的问题。以下是她们的回答
Sushma Unnibhavi
你能告诉我们关于你自己和你背景的信息吗?
我叫 Sushma,来自印度,是一名信息科学与工程专业的四年级本科生。我的爱好包括绘画、舞蹈和阅读。我喜欢写代码。我一直痴迷于用软件来解决实际问题。我喜欢深入研究问题并利用现代技术来解决它们。我不断学习,因为我从不满足。我专注于做出高质量的决定,喜欢结识新朋友并聆听不同的观点。我的专长包括学习新技能和编程语言以及解决问题。
你是如何得知 Outreachy 的,你为什么申请它?
我最初是从我哥哥那里得知 Outreachy 的,然后立即搜索了它。我发现 Outreachy 寻找的是有才华且有学习热情的实习生,而大多数其他实习项目则要求有经验。我一直想为开源做出贡献,但一直没有得到合适的指导。然后我读了以前 Outreachy 实习生的经历,这真的激励了我。他们中许多人没有任何先前经验,但得到了导师的大力支持,使他们取得了更大的成就。这让我思考……如果他们能做到,为什么我不能?因此,我决定申请 Outreachy。在贡献期间的一个月内,我通过为 LLVM 做出贡献而取得的成长令我感到惊讶。
你将参与哪个项目?
我将为 M68k 实现 GloballSel。我将添加必要的最少支持,以选择一个返回两个 i32 值之和的函数。这包括一些非常原始和硬编码的参数/返回值降低,以及在全局选择管道中处理复制和加法指令。我将还实现对操作的降低,包括加法、减法、乘法、除法、比较、phi、加载和存储。
在实习期间,你最期待什么?
我在这段实习中期待的一件事是获得良好的学习体验。当我最初开始为 LLVM 做出贡献时,我认为我可能没有机会,因为我从未参与过拥有如此庞大代码库的项目,而且对编译器的研究对我来说简直是噩梦。通过这次实习,我想克服这种恐惧,变得更加自信。我想向自己证明,只要努力和坚持,没有什么是不可能的。
Pooja Yadav
你能告诉我们关于你自己和你背景的信息吗?
你好!我叫 Pooja Yadav,来自印度。我现在就读于印度果阿国家理工学院,学习计算机科学与工程专业,正在攻读本科。我一直对计算机科学感兴趣,很幸运地在印度的一所重点大学获得了我的 Btech 学位的计算机科学专业。我喜欢羽毛球和跳绳运动,并且在高中时曾是跳绳运动的国家级运动员。有时,为了放松自己,我会画一些素描,偶尔也会玩玩颜料。这真的很有治疗效果。
我也支持科技领域的公平与多元化。我是我们学院 SPIE 学生分会的秘书,我们组织了许多活动来支持公平、多样性和包容性。
你是如何得知 Outreachy 的,你为什么申请它?
我在大学二年级时从我的一个学长那里听说 Outreachy 的,他也是一位 Outreachy 校友。因此,我也想参加它。Outreachy 为在技术行业受到系统性偏见和代表性不足的人们提供了极好的机会。这正是我鼓励我参加 Outreachy 的原因。我在大学一年级就被计算机科学领域的广阔海洋所吸引,这对我来说似乎太庞大了。因此,我认为 Outreachy 会是一个很好的起点,这就是我开始了解开源的原因。我去年也尝试过 Outreachy 实习,但我的最终申请没有被选中。然而,我学到了很多东西,并决心今年再次尝试。我在贡献期间遇到了很多很棒的人。所有的导师和参与者都非常友好,和他们交谈总是一件乐事。导师们非常耐心地回答我所有的问题,即使是最愚蠢的问题。此外,项目非常令人兴奋,我想深入其中,因为我知道这会将我的学习曲线提升到另一个水平。而今年我将参与的 LLVM 项目引起了我的兴趣。因此,我决定为它做出贡献,幸运的是,我被选中了。
你将参与哪个项目?
我正在从事的项目是“创建 LLVM 全局指令选择框架的文档和教程”。在我的贡献期间,参与这个项目非常冒险,而且目前我正在学习很多东西。这个项目是关于阅读 GlobalISel 的现有文档,并进行更新或必要的更改。然后为 GlobalISel 制作一个好的教程,这将帮助未来的许多贡献者,包括初学者和专业人士。为了创建文档和教程,我必须了解有关 GlobalISel 的所有内容。因此,我正在随着项目的推进不断学习。
在实习期间,你最期待什么?
我以前从未听说过 LLVM IR。当我第一次阅读有关它的信息时,我被用另一个中间表示(即机器 IR)来提高编译器性能的想法所吸引,以及我们如何为编译器编写通用的 IR,这样我们就无需为每个后端从头开始编写它。我在参与这个项目时学到了很多东西,包括除项目主题之外的其他内容,例如编译器的概念、git、开源贡献规则、与其他贡献者的互动、沟通技巧等等。
我期待着更多地了解这个项目,并为它做出最大的贡献。我喜欢探索不同的领域,这是一个很好的机会来观察其他贡献者在做什么,并从他们的项目中学习。