コンパイラ改造時の豆知識: core coreboot partialclean

コンパイラ自体を改造していると make world, make bootstrap にイライラする。いまや make world/bootstrap は、otherlibs, ocamldoc, camlp4, ocamlbuild など周辺ライブラリやアプリまでコンパイルするので、昔と比べてかなり実行に時間がかかるようになってしまったからだ。コンパイラをちょっと直してコンパイルしなおして、また直して、という仕事の場合、world や bootstrap は今や使えない。

そこで、 make core と make coreboot を使う。make core は make world, make coreboot は make bootstrap と同じだが、上記の周辺部分はビルドしないので、コンパイラ本体に必須な部分だけを処理してくれる。だから快適。

もちろん、他のコードを改造したコンパイラコンパイルしてみるのも、テストとして重要だ。だから、ときどき、作業が一段落付いたら、coreboot 後に world してやるとよい。

って、Makefile 見たら、コメントが書いてあったね。

  • make partialclean : inconsistent assumptions と言われたとき。ocamlrun の C コードのコンパイル以外は clean してくれる。
  • make restore : bootstrap に失敗した場合、前の boot コンパイラのバックアップからリストアする
  • make cleanboot : boot コンパイラバックアップを消去する。通常はしないほうがいい。俺俺コンパイラが完璧だという自身のある神向け。