Weitere ähnliche Inhalte Ähnlich wie Elixir lang bootstrap (20) Mehr von Tsunenori Oohara (17) Elixir lang bootstrap4. elixir-langのインストール
$ git clone git@github.com:elixir-
lang/elixir.gitgit@github.com:elixir-lang/elixir.git
$ make clean
$ make ★今日の話
$ make test
$ make install
5. ディレクトリ構成
elixir_repo
|- Makefile
|- bin # 実行ファイル(elixir,elixirc,iex,mix)、実体はerlのシェルスクリプト
|- lib
|- elixir ★
| |- ebin # beamファイルの出力先
| |- src # コンパイラ(rebarでerlangコードをコンパイル)
| |- lib # カーネル/コアモジュール(elixircでelixirコードをコンパイル)
|- eex
|- iex
|- logger
|- mix
7. compile elixir
1. elixirコンパイラ(erlang)のコンパイル
– lib/elixir/src 以下のerlファイル,use rebar
2. コア/カーネルモジュールのコンパイル
– elixir_compilerモジュール/core関数の実行
• lib/elixir/lib 以下のコアルモジュールハンドリング
3. lib/elixir/lib/*.ex のコンパイル(elixirc)
4. Unicodeモジュールのコンパイル(elixirc)
– lib/elixir/unicode # String.Unicode module
8. compile elixir compiler
• lib/elixir/src/*.erl
– Rebarでコンパイル
– lib/elixir/ebin/elixir_xxx.beam を吐く
– Core: elixir_compiler.erl
• Behaviour
– Application
• elixir.erl
– GenServer
• elixir_config.erl
• elixir_counter.erl
• elixir_code_server.erl
– Supervisour
• elixir_sup.erl
10. compile elixir kernel
• lib/elixir/lib/*.ex, */*.ex, */*/*.ex
– elixircでコンパイル
– lib/elixir/ebin_/Elixir.XXX.beam を吐く
11. bin
• elixir/elixirc
– 実体はシェルスクリプト
– やっている事はerlコマンドの実行
• erl –s Mod Func # ModモジュールのFunc関数を実行
• iex:
– elixirモジュール,start_cli関数 を実行
– 実体はElixir.Kernel.CLI.main の実行
• mix: Mix.CLI.mainをbin/elixirで実行