Parallelism?
What changes would it take for cover to instrument and run test modules in parallel?
-
https://github.com/florence/cover/issues/102 to avoid recompiling which is one of the slowest parts of cover. Annother issue here is because cover annotates higher phases a lot of the extra run time is in compilation, because compilation does coverage. And I'm not sure how to parallelize that.
-
Changes to the module instantiation protocol to sharing the coverage between places (possibly using
shared-fxvectors? or keeping things the same then sharing the coverage table after the run is done?). -
Something smarts to keep the memory usage down. A naive implementation would duplicate the coverage table per place which is bad (
shared-fxvectors would be a solution here too maybe). Also this would reinstantiate a lot of modules, which isn't great because cover massively increases code size, and therefore memory usage.
But the TL;DR here is that because of 1, I'm not sure if its feasible. It's not on my current road map at least.