当我有一个elixir文件并将编译它时,编译器首先做什么?将ex编译为erlang或直接编译为字节码?
当我将以下代码写入会话交互时
iex(4)> double = fn x -> x * 2 end
#Function<6.54118792/1 in :erl_eval.expr/5>
编译器做什么?将它编译为erlang还是直接编译为字节码?
答案 0 :(得分:2)
它将代码编译为Erlang AST,然后由OTP的compile module编译为字节码。相关的源代码位于elixir_compiler.erl:
compile:noenv_forms([no_auto_import()|Forms], [return, {source, Source}|ErlOpts])