Google Summer of Code 2021

這不是一篇技術筆記,主要紀錄今年 Google Summer of Code 的參與。當然,對 LLVM 的參與並不會隨著專案告一個段落而結束。在此分享自己參與的方式與經驗,也想跟大家說 LLVM 社群真的是一個很酷的地方。

首先要感謝這次專案的導師 Whitney Tseng, Ettore Tiotto 還有一起參與專案的Toshiki Maekawa。感謝 Whitney 讓我有這個機會參與,並適時給出建議與介紹對優化更熟悉的前輩來幫忙引導或是做 code reveiw;感謝 Ettore 在週會上給出的建議;感謝 Toshiki 在群組聊天中的幫助。

現在的身份已經不是學生,在大學時一直知道「開源社群」這個概念但是不知道從何參與起。到了今年在下班閒暇之餘在網站上逛了今年 GSoC 的 LLVM 專案覺得 Utilizing LoopNest 十分有趣,可以熟悉 middle-end 的優化,決定鼓起勇氣寄信給 Whitney 詢問是否可以參與。這也是我認為開源社群最引人入勝的部分,社群成員會幫你 code review 與解答困惑。當然我對此抱持著感恩的心,也希望自己能變強回饋社群。很高興 Whitney 答應了,於是開始了這次的專案。

儘管大學時的編譯器課並不是 LLVM 的 pass infrastructure,但是拜工作之賜,trace 起來並不太費力。從五月底開始每個禮拜四的晚上 11 點是跟專案成員的週會。一開始對目標並沒有實作上的想像,但是在 Whitney 還有 Ettore 的幫助下逐漸有了了解。

LLVM 是用 Phabricator 來做專案的管理,並不像其他專案在 Github 上面送 pull request,而是在 Phabricator 上創造你這次更動的「patch」,並託付社群其他人來幫你 review,最後 patch 被 accept 後可以自己 commit 到 llvm/llvm-project 上。

隨著送 patch 的過程,其實也會發現原本實作的想像又不全然是正確的。我覺得這也是軟體開發過程中很有趣的一部份,能夠透過合作討論逐漸找到共識與比較好的作法。(當然一開始沒有直接做好做對也是因為我不夠強 TAT)。幫忙檢視的都是十分資深的工程師,來自世界各方,每次 patch 都能夠有一些收穫,實在是非常棒。

到了現在手上也一些 patch 正在進行(有機會再一一介紹),也逐漸知道該怎麼自己獨立與其他成員互動。雖然因為學生暑假要結束了,Toshiki 需要向 Google 繳交一個結案報告,但是我當然會持續這些 patch 的補完。覺得 GSoC 真的是一個很不錯的活動,能夠讓有心參與者能夠有一個開啟接觸開源的管道,也非常感謝那些志願幫忙的導師。

最後再謝謝一次 Whitney, Etorre, Toshiki。希望未來有機會繼續合作,來台灣再帶你們去吃好吃的!

Author: eopXD

Hi 我是 eop ,希望人生過得有趣有挑戰XD

Leave a Reply