> Still, is it not true that when recompiling <n> files, any compilation error occurring at any point in the process will insure that all the <n> files will have to be recompiled next time, for any kind of interdependence of these <n> files?
Correct. All I am saying is that the notion of Z being last is not necessarily the case. In practice we likely have several files completing about the same time. :) We spawn one process per file, correct, and the number of processes is based on the number of cores. Indeed we could prioritize the file that failed first, this seems considerably simpler than any kind of checkpointing. It is mostly a matter of where to store this information? We likely don't want to touch the manifest in case of failures. On Tue, Jun 22, 2021 at 7:18 PM Marc-André Lafortune < marc-an...@marc-andre.ca> wrote: > I probably gave an overly simplified scenario. > > Still, is it not true that when recompiling <n> files, any compilation > error occurring at any point in the process will insure that all the <n> > files will have to be recompiled next time, for any kind of interdependence > of these <n> files? > > Xavier Noria: thanks for your post. Do I read correctly that the number of > processes involved depends on the number of cores? That sounds more tricky > to implement than having one process per file to compile. If that's the > case, files within a process could be prioritized (e.g. if they failed last > time and/or by modification date), no? > > On Tuesday, 22 June 2021 at 12:31:30 UTC-4 José Valim wrote: > >> I mean, even the impression of ordering is wrong. The compiler is running >> in parallel, so it may be that all of them are being compiled at the same >> time and none of them actually completes. :) >> >> On Tue, Jun 22, 2021 at 6:27 PM Marc-André Lafortune < >> marc-...@marc-andre.ca> wrote: >> >>> It is a separate topic, but I find that very frustrating also. >>> >>> Typical scenario: >>> A is a compile-time dependency of a lot of files B to Z, which >>> themselves are not dependencies of anything. >>> 1) Change A >>> 2) `mix compile` => compiles A, B, C, ... Y, and then produces an error >>> in Z. >>> 3) Fix Z >>> 4) `mix compile` => recompiles A, B, C, ...Y and finally Z. If there is >>> still an error, goto 3. A-Y should already be compiled. I haven't doubled >>> checked, but it is my impression that the compiler doesn't prioritize >>> latest modified file either? >>> >> >>> -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elixir-lang-core+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/c42b3501-34f2-4eee-8d9b-70ac12a3a3e2n%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/c42b3501-34f2-4eee-8d9b-70ac12a3a3e2n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2BZXrfc0_crVX%2BG2EaGAr-W23SYQppK7TgHEtmNbbPh%3Dw%40mail.gmail.com.