3 ms·
The problem of DAG is solved by make very well. So well that it is why people insist on using it. In theory they would have made a good choice. The issue is th
by ptsneves 6y ago
The problem of DAG is solved by make very well. So well that it is why people insist on using it. In theory they would have made a good choice.
The issue is that "make" made sure to put enough traps so that people with less knowledge of the pitfalls tend to fall through. How many times I have seen recursive make calls without the $(MAKE) variable lead to funny races or lost compilation flags? How many paralelizable targets running in single thread because somebody did not understand some strange out of order execution(due to wrong Dependency mapping)? How many programs which are only partially built? How many projects were not actually built for huge periods of time because somebody forgot to put PHONY target? How many Frankenstein build systems exist which create Meta languages around make(kbuild)
?
My latest adventure was a dormant fork bomb for 4 years in a daily updated project in the clean target! Whole development server farms being resource starved because the clean target started being executed as part of the normal build. How did the fork bomb happen? The usual recursive make.
Make is perfect actually,but we are not perfect in its usage.