On Wed, Dec 18, 2013 at 11:40 PM, erik quanstrom <quanstro@quanstro.net> wrote:

to be more explicit.  if a is built from b and mtime(a) <= mtime(b), then
mk could fail to rebuild a when it needs to.  for correctness, mk must use <=
not <.

I was thinking about the problem and actually, at least in all circumstances I can think of, changing that one operation from <= to < would fix the problem.  If the times are on the same second, I would never have had time to change it.  This would fix the problem.  Perhaps this functionality can be controlled by an environment variable like NPROC.

I think this is important as follows.  If you are working on a project, edit some files, and then perform a mk, if files you haven't changed get built, I for one would constantly question myself, about whether or not I changed that file.  It would make things confusing.  Also, and perhaps more importantly, it may occur that a very long build is dependant on a very short preceding build.  So, the unnecessary rebuild of the fast process can unnecessarily trigger the very long process.  This really needs addressing for that reason especially IMO.

Thanks.

Blake