お魚大好き

大規模ソフトウェア実験でfish shellを手探るブログ。

【祝】fish shellにwaitコマンドがマージされた

はじめに

この記事は、東京大学電気電子・電子情報工学科で行われた「大規模ソフトウェアを手探る」実験においてfish shellのソースコードを読み、機能の追加を行った記録である。 waitコマンドを実装した詳細については、

fish2017.hatenablog.com

を参照のこと。

マージされました

前回送ったプルリクがmasterブランチにマージされました!!!!!!やったね

github.com

素直に嬉しい。

どうやら次期バージョンfish-3.0からwaitコマンドが有効になるらしい。 masterブランチには既にマージ済なので、本家fish-shellのgithubからcloneしてビルドすればwaitコマンドが使えるようになっている...。感動...。

fish-3.0のリリースが待ち遠しい。

加えられた修正

マージされるまでにレビューを受けて修正、といった作業が必要になるのかと思っていたが、そのままマージされて少し驚いた。 しかしよく見てみるとマージ後に若干の修正が加えられているようで、

github.com

上のリンクのようにCMakeやXcodeのためのビルド設定の追加や、関数の引数にvectorを渡すときに参照渡しになっていなかったのを直されたりしている。 また、

github.com

このようにモダンな文法に修正されたりしているようだ。 モダンな文法というのは

job_t *j;
if (j = ...

if (job_t *j = ...

と書く、といった程度のことで、大きな修正は加えられていないようだった。

if文の中でも変数定義できたのか...。

感想など

正直、学生実験としてfish shellを手探ることになった時、マージまでされるような機能を実装できるとは思っていなかった。 大規模ソフトウェアをこうして手探ってみた感想として、必要な知識を揃え、そのソフトウェア特有の慣習を理解すれば、あとは授業で習ったような普通のプログラムが動いているだけなのだなと感じた。

とにかく、マージされて嬉しかったので今は他のソフトウェアにも手を出してみたい気持ちである。

実験開始後すぐは自分の能力で実験内容についていけるのか心配だったが、手厚いサポートと優秀なペアのおかげでメチャクチャなんとかなった。なんとかなりすぎてマージされた。やったー!!! うれしー!!!
テーマ決めから実際の作業まで、いろいろと助言をくださった田浦先生やTAさんには感謝してもしきれません。楽しい実験でした。