Shiika/分割コンパイル
モチベーション
コンパイル時間は短いほうがいい
一行変更するたびに、ライブラリから全部コンパイルするとかはしたくない
変更したクラスだけコンパイルし直せるといい?
それやるとしたら1ファイル1クラスにしないといけなそう?
わかっていること
ここにない関数もdeclareでインターフェイスを宣言してやれば呼ぶことができる
わかっていないこと
llvm関数名って被るとまずい?
@lambda_1 とか被るとどうなるのか
あるファイルが提供し得るもの
llvm type
クラスごとに1つ
llvm const
文字列リテラル
クラス定数(::Foo)
クラスのvtable
llvm func
メソッドごとに1つ
クロージャごとに1つ
定数ごとに1つ(const_init)
その他
トップレベルの式
要検討
@init_constants
stdlibが提供するもの(上記以外)
declare
GC_malloc等
ランタイム関数
box_bool等
実行ファイル作成時に必要なもの
@user_main
@main