https://github.com/elixir-lang/elixir/commit/d9028a8d0405d19076418376ab50bdc83ff72974
On Tue, Jun 22, 2021 at 7:28 PM José Valim <jose.va...@dashbit.co> wrote: > Oh, just now I understand your previous point: we could simply order the > files by their last modified time. The most recently modified is likely the > one we should try first anyway. This seems like a very trivial change to > make, I am on it. > > On Tue, Jun 22, 2021 at 7:26 PM José Valim <jose.va...@dashbit.co> wrote: > >> > 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/CAGnRm4Kn9Ph79z1r5ZmbUiL3txJPRgpyXROH41fqwwH47MAeZA%40mail.gmail.com.