
I am curious about the method used by cabal-install to distribute the compilation on several jobs (cores). By looking at the OS process list, I often see that initally, and at several times later, all cores are busy, but then there are states where only one job is running. That's presumably because all future compilations depend on this single job. Does cabal's scheduler take into account anything else besides the actual depencency relation - e.g., something about expected duration of compilations? (And would it help?) Oh, and I find it slightly annoying that I cannot see (from stdout) what actually is going on. I understand it's a design problem, and the current solution (showing just package names, not module names, for parallel builds) may indeed be better than printing too much.