Re: Idea: Automatically correct timestamps

2019-06-10 Thread dmitrii . pasechnik
On Sun, Jun 09, 2019 at 10:11:32PM -0400, Paul Smith wrote: > On Sun, 2019-06-09 at 18:24 -0400, David A. Wheeler wrote: > > Proposed solution: > > By default, make should check the timestamp of the non-.PHONY target(s) > > produced after > > executing a rule, and ensure that their timestamps are

Re: Idea: Automatically correct timestamps

2019-06-09 Thread Jeffrey Walton
On Sun, Jun 9, 2019 at 10:38 PM Paul Smith wrote: > On Sun, 2019-06-09 at 18:24 -0400, David A. Wheeler wrote: > > ... > > In many cases I suspect this would eliminate calls for using md5 > > hashes and special state; I suspect many of those requests are really > > trying to deal with problems of

Re: Idea: Automatically correct timestamps

2019-06-09 Thread David A. Wheeler
On Sun, 09 Jun 2019 22:11:32 -0400, Paul Smith wrote: > I don't think this can work, as-is. > > It's a common paradigm in make (including POSIX make) where there is a > rule that could cause a very expensive operation to be started, to > instead make a cheap test and if it determines the expensiv

Re: Idea: Automatically correct timestamps

2019-06-09 Thread Paul Smith
On Sun, 2019-06-09 at 18:24 -0400, David A. Wheeler wrote: > Proposed solution: > By default, make should check the timestamp of the non-.PHONY target(s) > produced after > executing a rule, and ensure that their timestamps are at least equal to the > timestamps to the files that caused execution

Re: Idea: Automatically correct timestamps

2019-06-09 Thread David A. Wheeler
Replying to myself: If people are uncomfortable making this the default behavior, then MAKETIMEADJUSTMAX could default to undefined or 0, and then the outer check would be if {defined(MAKETIMEADJUST) && MAKETIMEADJUST>0) { ... } That would mean that people would have to opt into the behavior

Idea: Automatically correct timestamps

2019-06-09 Thread David A. Wheeler
I'd like to propose that "make" automatically correct timestamps by default. Details below. Problem: Distributed systems are cheap now, enabling "make" to gets lots done in a short amount of wall clock. Unfortunately, it's impossible to keep clocks exactly aligned in a distributed system. Network