2020年のオープンソース活動
2020年はOSS開発に多く時間を使ってきたなぁと思ったのと、GitHub Sponsorsからの振り込みがあったので、報告を兼ねて軽く今年何をしてきたか振り返ってみようと思います。
SwiftWasm
年間を通してずっと開発していたプロジェクトの一つです。このプロジェクト関連でコンパイラやリンカ、デバッガなどいろいろなものを作ってきました。 必要に迫られてLLVMやICUなどの有名どころのプロジェクトにもコントリビューションする機会がありました。
ツールチェーンがおおよそ動くようになってからは、コントリビュータを増やすための発信をしたりディスカッションの場を用意したり、といった活動もしています。 最近は来るSwift 6に導入予定のasync/awaitのWasm上でのプロトタイプを実装しています。
進捗報告
つくったもの
- WebAssembly向けのデバッガを開発しました - kateinoigakukunのブログ
- github.com
- github.com
- Wasmリンカのつくりかた - Speaker Deck
- github.com
- github.com
GSoC
4月の時点でSwiftWasmはおおよそ動くようになっていたので、あとはバイナリサイズの縮小のための最適化をやりたいなと思っていたところ、運の良いことにちょうど良いプロジェクトがあったので応募してみました。
実際には5月から8月までGoogle Summer of Codeの学生としてSwiftのリンク時最適化を実装していました。詳しい話はSwiftコンパイラの勉強会「わいわいswiftc」で話したので興味がある方はスライドか動画をみてください。
実証実験としてある程度の成果はあったもののメインストリームにはまだ入っていません。2021年内には入れたいです。
IBLinter
かれこれ作ってから3年目になりました。SwiftUIが登場してお役御免になるかと思いきや、まだ暫くは使っていただけている様子で、ちょこちょこ新しい機能が追加されています。 今年面白かったのは@r_plusさんのPRで実装されたUIStackViewのbackgroundColor検知機能です。
IBLinterの最新バージョンをリリースしました。
— kateinoigakukun (@kateinoigakukun) 2020年9月26日
xibとstoryboardにおいて、UIStackViewのbackgroundColor設定していると警告を出すルールが追加されました。これでiOS14以上で意図せず背景色がついてしまう問題を機械的に対処できます. Thanks @r_plus !
https://t.co/VarZdcefNP
Periphery
使われていないコードを検出してくれるツールなのですが、暫く開発が止まっており最新のXcodeで動かなくなっていたのでPRを投げていたところメンテナになりました。その後はSourceKitベースの解析をIndexStoreベースの解析に切り替えたり、Xcodeのアップデートに追従したりといったコントリビューションをしていました。最近オリジナル作者の @ileitchさんが開発を再開していますが、スター数の割にコントリビュータが少ないのが少々不安です。興味がある方はぜひ。
まとめ
ここに書いたほぼすべての活動は、インターン先であるメルペイの業務時間でコミュニティ活動として行われています。会社の支援がなければ学業と両立してここまでやってこれていないので本当に良い社だと思います。
また、ありがたいことにGitHub Sponsorsで支援してくださる方もいらっしゃり、活動のモチベーションの維持に大きくプラスになっています。いつもありがとうございます。
来年も継続して活動していけるよう頑張っていきます。