Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Oct 2001 14:57:42 -0400
From:      Garance A Drosihn <drosih@rpi.edu>
To:        tlambert2@mindspring.com, Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        arch@FreeBSD.ORG
Subject:   Re: 64 bit times revisited..
Message-ID:  <p0510101db7ff501c2b27@[128.113.24.47]>
In-Reply-To: <3BD993A6.E6B12512@mindspring.com>
References:  <2912.1004113233@critter.freebsd.dk> <3BD993A6.E6B12512@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>Also: no one has ever justified this for anything other
>than "make", which looks only at mtime, so having such
>high resolution for atime and ctime is really not necessary,
>unless it can be justified.

>The "mtime" argument is really only valid in the case that
>you rerun a build in a subsecond time with generated source
>code, such that the generate code ends up with the same
>mtime timestamp as the previously generated object code.  I
>fully admit that subsecond resolution on mtime is necessary
>to avoid stale files in the case that you can regenerate
>them with different contents in under a second since the
>previous build.

As an aside, let me make an observation about 'make'.  It is
just an observation about 'make' and timestamps though.  I
do completely support the idea of having higher-resolution
timestamps for many purposes, including 'mtime'.

However, when the specific example of 'make' comes up, I think
people are naive to think that even infinite-resolution
timestamps will fully address the issue of make.  When 'make'
is processing it:
      a) checks timestamps of source files vs target
      b) noticed target is out-of-date.
      c) executes commands to create the new target
      d) at the end of all those commands, a new timestamp
         is set on the target file.

Step c can be many commands, and can easily require millions
or billions of instructions.  It can not be done in zero time.

If any *other* process changes any of the source files at the
same time that 'make' is doing steps b&c, then the target
should be remade, but the timestamp set in step d will be
"after" the change made to the source file.

So, we should have higher-resolution timestamps, but they
will not really solve all the problems of 'make'...

-- 
Garance Alistair Drosehn            =   gad@eclipse.acs.rpi.edu
Senior Systems Programmer           or  gad@freebsd.org
Rensselaer Polytechnic Institute    or  drosih@rpi.edu

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p0510101db7ff501c2b27>