guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mtime of fresh .go


From: Ludovic Courtès
Subject: Re: mtime of fresh .go
Date: Tue, 20 Jul 2010 00:17:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Hello!

Andy Wingo <address@hidden> writes:

> On Mon 19 Jul 2010 00:31, address@hidden (Ludovic Courtès) writes:
>
>> Andy Wingo <address@hidden> writes:
>>
>>> On Fri 16 Jul 2010 10:07, address@hidden (Ludovic Courtès) writes:
>>>
>>>>   commit 535fb833b34dfc3cc11a679d39390b06fd7e9180
>>>>   Author: Andy Wingo <address@hidden>
>>>>   Date:   Fri Jun 5 10:51:21 2009 +0200
>>>>
>>>>       stamp .go with timestamp of .scm; a fresh go has same mtime of .scm
>>>>
>>>>       * libguile/load.c (compiled_is_fresh): Rename from compiled_is_newer.
>>>>         Check that the mtines of the .go and .scm match exactly, so we 
>>>> don't
>>>>         get fooled by rsync-like modifications of the filesystem.
>>>>
>>>> When packaging things “normally”, the .go has an mtime strictly greater
>>>> than that of the source file, so checking for equality doesn’t work.
>>>
>>> But when reinstalling code from a binary packaging system, sometimes the
>>> mtime can go backwards.
>>
>> Please forgive my ignorance, but can you give an example of how this can
>> happen?
>
> Well there are two cases really:
>
>  * RPM or Deb systems typically timestamp their files based on the times
>    they were built, not installed, and we don't have guarantees that
>    upgrading a package won't actually move the mtime into the past.

What matters is that the mtime(.go) >= mtime(.scm), and I’d expect it to
be preserved by packaging systems, even after an upgrade, no?

(My understanding is that RPMs/Debs are tar-like archives containing
meta-data such as the mtime, which is restored upon extraction.)

>  * When installing source code (via _SOURCES / _DATA), you don't have
>    any guarantees about the relations between the times of the SOURCE
>    and DATA files, *as installed*.

Apparently “make install” preserves mtimes on my system.  IOW, since
uninstalled .gos have mtime >= uninstalled .scms, the same holds for
installed .gos and .scms.

We’d need to ask the Automake people to check whether this is always the
case.

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]