@@ -15,7 +15,7 @@ defmodule Mix.Compilers.Elixir do
1515 """
1616 def compile ( manifest , srcs , skip , exts , dest , force , on_start ) do
1717 all = Mix.Utils . extract_files ( srcs -- skip , exts )
18- { all_entries , skip_entries } = read_manifest ( manifest , skip )
18+ { all_entries , skip_entries } = read_manifest ( manifest , dest , skip )
1919
2020 removed =
2121 for { _b , _m , source , _d , _f , _bin } <- all_entries , not ( source in all ) , do: source
@@ -181,28 +181,32 @@ defmodule Mix.Compilers.Elixir do
181181
182182 # Reads the manifest returning the results as tuples.
183183 # The beam files are read, removed and stored in memory.
184- defp read_manifest ( manifest , skip_paths ) do
184+ defp read_manifest ( manifest , dest , skip_paths ) do
185185 initial = { [ ] , [ ] }
186186
187187 case File . read ( manifest ) do
188188 { :ok , contents } ->
189189 skip_paths = Enum . map ( skip_paths , & ( & 1 <> "/" ) )
190190 Enum . reduce String . split ( contents , "\n " ) , initial , fn x , acc ->
191- read_manifest_entry ( String . split ( x , "\t " ) , acc , skip_paths )
191+ read_manifest_entry ( String . split ( x , "\t " ) , acc , dest , skip_paths )
192192 end
193193 { :error , _ } ->
194194 initial
195195 end
196196 end
197197
198- defp read_manifest_entry ( [ beam , module , source | deps ] , { keep , skip } , skip_paths ) do
198+ defp read_manifest_entry ( [ _beam , module , source | deps ] , { keep , skip } , dest , skip_paths ) do
199199 { deps , files } =
200200 case Enum . split_while ( deps , & ( & 1 != "Elixir" ) ) do
201201 { deps , [ "Elixir" | files ] } -> { deps , files }
202202 { deps , _ } -> { deps , [ ] }
203203 end
204204
205- entry = { beam , module , source , deps , files , nil }
205+ # TODO: Notice we do not use beam from the file.
206+ # Once Elixir v1.1 is out, we can start writing "1"
207+ # instead of the beam file in write_manifest/2.
208+ entry = { Path . join ( dest , module <> ".beam" ) , module , source ,
209+ deps , files , nil }
206210
207211 if String . starts_with? ( source , skip_paths ) do
208212 { keep , [ entry | skip ] }
@@ -211,7 +215,7 @@ defmodule Mix.Compilers.Elixir do
211215 end
212216 end
213217
214- defp read_manifest_entry ( _ , acc , _skip_paths ) do
218+ defp read_manifest_entry ( _ , acc , _dest , _skip_paths ) do
215219 acc
216220 end
217221
0 commit comments