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.

Reply via email to