On Fri, 2022-02-04 at 09:13 +0000, Sergei Trofimovich wrote: > 1. Enable parallel builds by GNU make by default > > 2. Do not run dependencies in deterministic order by default:
GNU make (unlike Ninja) is bound by the POSIX standard in terms of its behaviors. The POSIX standard makes very clear the way in which make operates on prerequisites and neither of these changes are conforming to the standard. So, it's not possible to modify the default behavior of GNU make in these ways. Not to mention that GNU make is also a foundational component of hundreds of thousands of build systems and changes that would cause a large number of them to break isn't acceptable, even in pursuit of a good cause. The idea of having a non-deterministic order of prerequisite builds is something others have suggested but no one has implemented. Of course it would not be possible to move the first prerequisite as that one is special but randomly rearranging the rest of them could be done. This would require an option to enable of course; it could not be the default behavior.