2016-02-06 69 views
1

當我有一個elixir文件並編譯它時,編譯器首先做什麼?編譯ex到erlang或直接編譯成字節碼?
當我寫下面的代碼到會話交互ex文件如何編譯

iex(4)> double = fn x -> x * 2 end 
#Function<6.54118792/1 in :erl_eval.expr/5> 

是什麼編譯器呢?將它編譯爲erlang還是直接編譯爲字節碼?

回答

2

它將代碼編譯爲Erlang AST,然後通過OTP的compile module將其編譯爲字節碼。相關的源代碼是elixir_compiler.erl

compile:noenv_forms([no_auto_import()|Forms], [return, {source, Source}|ErlOpts])