mill
mill copied to clipboard
Support for `make` jobserver protocol or system load-based job management
The idea is to reduce / avoid overscheduling due to running multiple Mill instances in parallel or concurrently to other build tools.
Here is a nice discussion of the issue and some solutions:
https://blogs.gentoo.org/mgorny/2025/11/30/one-jobserver-to-rule-them-all/
Technically, we should be able to dynamically adjust the maximum job could by replacing the fixed thread pool by a more dynamic one.
We could either try to limit the job count by watching the current system load, e.g. something analog to make -j8 -l9.
We could also try to support existing job server protocols, like the make jobserver protocol, which is already adopted by many build tools.