Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
elixir-lang
bootstrap
tokyo.ex #1 LT
@ohrdev
self
おーはら
@ohrdev
好きなビヘイビア: GenEvent
beam-lang.tokyo/ElixirMeetup/tokyo.ex
写経/仏像彫り/寺社仏閣
所属:Drecom
Erlang/Elixir/Ruby/Rails...
Bootstrap(事始め)
• elixir-langのコードリーディング時の所感
– elixir-lang(自身)のソース、どこから読めば良いか
– elixir-lang(自身)のコンパイルの流れ
– リポジトリ/ビルド構成
elixir-langのインストール
$ git clone git@github.com:elixir-
lang/elixir.gitgit@github.com:elixir-lang/elixir.git
$ make clean
$ ...
ディレクトリ構成
elixir_repo
|- Makefile
|- bin # 実行ファイル(elixir,elixirc,iex,mix)、実体はerlのシェルスクリプト
|- lib
|- elixir ★
| |- ebin # be...
make
• elixir(コンパイラ/カーネル)のコンパイル
– コンパイラ:erlangコード
– コア:elixir_compiler.erl # elixir:core
– カーネル:elixirコード
• mixのコンパイル(elix...
compile elixir
1. elixirコンパイラ(erlang)のコンパイル
– lib/elixir/src 以下のerlファイル,use rebar
2. コア/カーネルモジュールのコンパイル
– elixir_compilerモ...
compile elixir compiler
• lib/elixir/src/*.erl
– Rebarでコンパイル
– lib/elixir/ebin/elixir_xxx.beam を吐く
– Core: elixir_compiler...
compile elixir core
• コアモジュール
– elixir_compiler.erl
• core()
• target -> core_main()
compile elixir kernel
• lib/elixir/lib/*.ex, */*.ex, */*/*.ex
– elixircでコンパイル
– lib/elixir/ebin_/Elixir.XXX.beam を吐く
bin
• elixir/elixirc
– 実体はシェルスクリプト
– やっている事はerlコマンドの実行
• erl –s Mod Func # ModモジュールのFunc関数を実行
• iex:
– elixirモジュール,start_c...
まとめ
• Makefileを読めば大体のフローが把握できる
• Elixirコンパイラ
– Erlangコード,rebarでコンパイル
– lib/elixir/src => lib/elixir/ebin/elixir_xxxx.beam
...
Prochain SlideShare
Chargement dans…5
×

Elixir lang bootstrap

tokyo.ex #1 LT

  • Soyez le premier à commenter

Elixir lang bootstrap

  1. 1. elixir-lang bootstrap tokyo.ex #1 LT @ohrdev
  2. 2. self おーはら @ohrdev 好きなビヘイビア: GenEvent beam-lang.tokyo/ElixirMeetup/tokyo.ex 写経/仏像彫り/寺社仏閣 所属:Drecom Erlang/Elixir/Ruby/Rails/Lisp/…
  3. 3. Bootstrap(事始め) • elixir-langのコードリーディング時の所感 – elixir-lang(自身)のソース、どこから読めば良いか – elixir-lang(自身)のコンパイルの流れ – リポジトリ/ビルド構成
  4. 4. 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. 5. ディレクトリ構成 elixir_repo |- Makefile |- bin # 実行ファイル(elixir,elixirc,iex,mix)、実体はerlのシェルスクリプト |- lib |- elixir ★ | |- ebin # beamファイルの出力先 | |- src # コンパイラ(rebarでerlangコードをコンパイル) | |- lib # カーネル/コアモジュール(elixircでelixirコードをコンパイル) |- eex |- iex |- logger |- mix
  6. 6. make • elixir(コンパイラ/カーネル)のコンパイル – コンパイラ:erlangコード – コア:elixir_compiler.erl # elixir:core – カーネル:elixirコード • mixのコンパイル(elixirコード) • ex_unitのコンパイル(elixirコード) • loggerのコンパイル(elixirコード) • eexのコンパイル(elixirコード) • iexのコンパイル(elixirコード)
  7. 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. 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
  9. 9. compile elixir core • コアモジュール – elixir_compiler.erl • core() • target -> core_main()
  10. 10. compile elixir kernel • lib/elixir/lib/*.ex, */*.ex, */*/*.ex – elixircでコンパイル – lib/elixir/ebin_/Elixir.XXX.beam を吐く
  11. 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で実行
  12. 12. まとめ • Makefileを読めば大体のフローが把握できる • Elixirコンパイラ – Erlangコード,rebarでコンパイル – lib/elixir/src => lib/elixir/ebin/elixir_xxxx.beam • Elixirカーネル/コアモジュール – Elixirコード,elixircでコンパイル – lib/elixir/lib => lib/elixir/ebin/Elixir.XXXX.beam

    Soyez le premier à commenter

    Identifiez-vous pour voir les commentaires

  • KanSakamoto

    Apr. 19, 2016
  • pememo

    Apr. 25, 2016
  • piacere_ex

    Nov. 2, 2017

tokyo.ex #1 LT

Vues

Nombre de vues

3 273

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

1 483

Actions

Téléchargements

8

Partages

0

Commentaires

0

Mentions J'aime

3

×