kateinoigakukunのブログ

思考垂れ流しObserver

2020年のオープンソース活動

2020年はOSS開発に多く時間を使ってきたなぁと思ったのと、GitHub Sponsorsからの振り込みがあったので、報告を兼ねて軽く今年何をしてきたか振り返ってみようと思います。

SwiftWasm

年間を通してずっと開発していたプロジェクトの一つです。このプロジェクト関連でコンパイラやリンカ、デバッガなどいろいろなものを作ってきました。 必要に迫られてLLVMICUなどの有名どころのプロジェクトにもコントリビューションする機会がありました。

ツールチェーンがおおよそ動くようになってからは、コントリビュータを増やすための発信をしたりディスカッションの場を用意したり、といった活動もしています。 最近は来るSwift 6に導入予定のasync/awaitのWasm上でのプロトタイプを実装しています。

進捗報告

つくったもの

GSoC

4月の時点でSwiftWasmはおおよそ動くようになっていたので、あとはバイナリサイズの縮小のための最適化をやりたいなと思っていたところ、運の良いことにちょうど良いプロジェクトがあったので応募してみました。

実際には5月から8月までGoogle Summer of Codeの学生としてSwiftのリンク時最適化を実装していました。詳しい話はSwiftコンパイラの勉強会「わいわいswiftc」で話したので興味がある方はスライドか動画をみてください。

実証実験としてある程度の成果はあったもののメインストリームにはまだ入っていません。2021年内には入れたいです。

f:id:kateinoigaku:20201231230651p:plain

IBLinter

かれこれ作ってから3年目になりました。SwiftUIが登場してお役御免になるかと思いきや、まだ暫くは使っていただけている様子で、ちょこちょこ新しい機能が追加されています。 今年面白かったのは@r_plusさんのPRで実装されたUIStackViewのbackgroundColor検知機能です。

Periphery

使われていないコードを検出してくれるツールなのですが、暫く開発が止まっており最新のXcodeで動かなくなっていたのでPRを投げていたところメンテナになりました。その後はSourceKitベースの解析をIndexStoreベースの解析に切り替えたり、Xcodeのアップデートに追従したりといったコントリビューションをしていました。最近オリジナル作者の @ileitchさんが開発を再開していますが、スター数の割にコントリビュータが少ないのが少々不安です。興味がある方はぜひ。

まとめ

ここに書いたほぼすべての活動は、インターン先であるメルペイの業務時間でコミュニティ活動として行われています。会社の支援がなければ学業と両立してここまでやってこれていないので本当に良い社だと思います。

また、ありがたいことにGitHub Sponsorsで支援してくださる方もいらっしゃり、活動のモチベーションの維持に大きくプラスになっています。いつもありがとうございます。

来年も継続して活動していけるよう頑張っていきます。