The function is very short and the name doesn't communicate clearly what it does.
Significantly speeds up parallel builds.
Needed for the parallel builds.
It should not be used in packages ready for being distributed.
Fixes the problem with generating the haddock documentation contents page for all installed packages. Previously we were (accidentally) telling haddock to use all versions of each package and haddock would pick the first (lowest version). Now we correctly do what we were trying to do all along, which is to pick only the highest version of each package.
… patches. It adds a '-j N' (= 'number of jobs') option for the 'install' command, which can be used to specify the number of concurrent workers. If possible, at most N packages will be built concurrently. This version of the patch is less featureful than Mikhail's version but also rather simpler. The key difference compared to Mikhail's version is that this version is lacking the output serialisation and the ability to tag each output message with the task it came from. All output is interleaved. The next step will be to make parallel builds log to files rather than the console and only to display a summary on the console. In addition to not having to change the output functions, the code is a bit simpler by keep the structure of the code the same as before, rather than splitting it into a number of concurrent tasks with channels. Instead each task simply executes the same pattern of install actions and concurrency limits are enforced using semaphores.
We don't want 'InstallPlan.ready' to return packages that are currently being processed in other threads.
It can be non-obvious why a package is registered more than once.
We don't want FFI calls to block all Haskell threads, so we need to use the threaded runtime; -rtsopts is for experimenting with the number of capabilities.
I'm looking at you, ansi-terminal.
…te trace. This saves a bit of heap space when running the solver with unlimited backtracking enabled.
This saves a lot of heap space while exploring the tree and backtracking.
…SKELL__ In particular, this fixes building haskeline with its windows_cconv.h header.