Slide 9
Slide 9 text
Compileフロー
● Makefile( https://github.com/elixir-lang/elixir/blob/v1.9.1/Makefile )のcompileタスク
● 大きく以下の3フェーズに分類
○ erlangタスク
■ erlangのバージョンチェック ( https://github.com/elixir-lang/elixir/blob/v1.9.1/Makefile#L27 )
■ パーサージェネレーターの生成 ( https://github.com/elixir-lang/elixir/blob/v1.9.1/Makefile#L78 )
■ erlangコードのコンパイル( https://github.com/elixir-lang/elixir/blob/v1.9.1/Makefile#L76 )
○ lib/elixir/ebin/elixir.appを生成
■ elixir.appファイルをescriptで作成( https://github.com/elixir-lang/elixir/blob/v1.9.1/Makefile#L100 )
■ escriptは https://github.com/elixir-lang/elixir/blob/v1.9.1/lib/elixir/generate_app.escript
○ elixirタスク
■ stdlib, EEx.beam, mix, ex_unit, logger, eex, iexを生成
■ elixir本体はstdlibの中のKERNEL(後述)