コミットへの道

ヘビーユーザからコミッタへ昇格。
しばらくは細かいバグ修正業。Mingw/Cygwinのコードをコミットしていく予定*1

テスト環境の整理

従来はコミットしないことが前提だったので、オリジナルのソースには縦横無尽に編集を加えてあとで纏めるという方式を取っていたけど、これからは、変更部分が常にtrunkと同期できるように配慮する必要が有る。
今までは時折しか行っていなかった完全テストをもうちょっと高頻度で行う(コミットメールが来たらテストを走らせて結果をTwitterに投げるレベル)が必要。
今のbuildbotは全面的にbashで書かれていて、

>./goto 1401
>./checkthrough 1431

のようにして、変更されたリビジョン全部をチェックアウトして、32bit環境と64bit環境の両方でテストを走行させたうえで目でビルドログを見て問題を抽出していた。これは無駄が多い。

今までのmake check方式の問題点は :

  • アーキテクチャによって通らないテストが含まれている
  • makeコマンドがないとチェックできない
  • テストデータがまとまっていない

等があってこの用途には辛いものがある。
S式で

というのを表現するフレームワークが必要。

ビルドログの収集

makeの個々のコマンドのstdout/stderrや、アクセスしたファイルを収集したい。
これはSHELL環境変数に適当なproxy-shellを設定すれば良さそう。毎回moshを起動していると大変なことになってしまう*2のでスレッド版moshを常駐させて、ソケット経由でS式を渡す方式を想定。
moshBash互換ライブラリが揃っていると色々と面白いことが出来るが、そのためにはまずパーサのライブラリが必要。。

*1:./configureでの対応等ビルドシステム側の変更は0.0.8以降で予定。

*2:Cygwinはforkをエミュレーションするので絶望的に遅い