@@ -27,7 +27,7 @@ string(Contents, File) when is_list(Contents), is_binary(File) ->
27
27
try
28
28
put (elixir_compiled , []),
29
29
Forms = elixir_translator :'forms!' (Contents , 1 , File , []),
30
- eval_forms (Forms , 1 , File , [], elixir :scope_for_eval ([{file ,File }])),
30
+ eval_forms (Forms , 1 , [], elixir :scope_for_eval ([{file ,File }])),
31
31
lists :reverse (get (elixir_compiled ))
32
32
after
33
33
put (elixir_compiled , Previous )
@@ -49,24 +49,7 @@ file_to_path(File, Path) when is_binary(File), is_binary(Path) ->
49
49
50
50
% % Evaluates the contents/forms by compiling them to an Erlang module.
51
51
52
- eval_forms (Forms , Line , Vars , # elixir_scope {module = nil } = S ) ->
53
- eval_forms (Forms , Line , nil , Vars , S );
54
-
55
- eval_forms (Forms , Line , Vars , # elixir_scope {module = Value } = S ) ->
56
- eval_forms (Forms , Line , Value , Vars , S ).
57
-
58
- eval_forms (Forms , Line , Value , Vars , S ) ->
59
- case (Value == nil ) andalso allows_fast_compilation (Forms ) of
60
- true -> eval_compilation (Forms , Vars , S );
61
- false -> code_loading_compilation (Forms , Line , Value , Vars , S )
62
- end .
63
-
64
- eval_compilation (Forms , Vars , S ) ->
65
- Binding = [{ { Var , Kind }, Value } || { _ , Kind , Var , Value } <- Vars ],
66
- { Result , _Binding , FS } = elixir :eval_forms (Forms , [{'_@MODULE' ,nil }|Binding ], S ),
67
- { Result , FS }.
68
-
69
- code_loading_compilation (Forms , Line , Value , Vars , S ) ->
52
+ eval_forms (Forms , Line , Vars , S ) ->
70
53
{ Module , I } = retrieve_module_name (),
71
54
{ Exprs , FS } = elixir_translator :translate (Forms , S ),
72
55
ModuleForm = module_form (Exprs , Line , S # elixir_scope .file , Module , Vars ),
@@ -76,7 +59,7 @@ code_loading_compilation(Forms, Line, Value, Vars, S) ->
76
59
% % Pass { native, false } to speed up bootstrap
77
60
% % process when native is set to true
78
61
{ module (ModuleForm , S # elixir_scope .file , [{native ,false }], true , fun (_ , _ ) ->
79
- Res = Module :'BOOTSTRAP' (Value , Args ),
62
+ Res = Module :'BOOTSTRAP' (S # elixir_scope . module , Args ),
80
63
code :delete (Module ),
81
64
case code :soft_purge (Module ) of
82
65
true -> return_module_name (I );
@@ -142,12 +125,6 @@ module_form(Exprs, Line, File, Module, Vars) when
142
125
] }
143
126
].
144
127
145
- % % Fast compilation is available?
146
-
147
- allows_fast_compilation ([{defmodule ,_ ,_ }|T ]) -> allows_fast_compilation (T );
148
- allows_fast_compilation ([]) -> true ;
149
- allows_fast_compilation (_ ) -> false .
150
-
151
128
% % Generate module names from code server.
152
129
153
130
retrieve_module_name () ->
0 commit comments