Closed pdawyndt closed 10 months ago
Currently, if compilation fails, we try to compile each "execution unit" individually (this used to be per context, but since we have runs, it is per execution unit). However, with this change, an execution unit is potentially a complete test suite, rendering the fallback compilation mode moot.
Thus, should we try again by compiling each tab separately, or should we compile each context separately? The first is far more efficient, but the second one is "more" correct. A third alternative would be to first try compiling per tab, and then per context. If we want to make things complicated, we could even determine this per tab, e.g:
We could thus have a scenario where the first tab is compiled as a unit, after which tab 2 is compiled per context.
Merged processing of contexts is now restricted to contexts in a single tab. This gives an overhead for exercises with multiple tabs that could be eradicated if contexts could be merged across tabs.