[M3devel] incremental build always rebuilds cm3, never produces the same thing -- what time is "now"?

Olaf Wagner wagner at elegosoft.com
Fri Jan 18 23:57:31 CET 2008


Quoting Jay <jayk123 at hotmail.com>:

> In m3-sys\cm3, incremental build always rebuilds cm3, never produces  
>  the same thing.
>
> I know exactly why. My modification to Olaf's timestamping (which I   
> think he approved,
> but perhaps didn't realize this outcome).

I know of this problem and don't think it's of much importance.

> Because we generate a source file with the current time, and it   
> always changes.

It's not only that: we could fix the time and it would still rebuild,
because the Version module is always generated, regardless if it's
needed or not. Of course this could be fixed, too.

> Is this ok with people?I know it has downsides, but it might be ok.
> You know:
>   1) incremental build should really never do anything, never   
> writing anything, fast
>       which is important -- never write, or be fast? both?
>   2) You might want to compare two full builds and determine they   
> are identical; the less of this sort of thing the better
> If not, what do people suggest for a way to determine when to update  
>  the time?
> The logic before I think was essentially never, unless you went and   
> deleted a specific file.
> Perhaps that is right, once it is discovered and publicized.
> Perhaps another output directory is needed -- say <cvsroot>/<target>  
>  -- that upgrade and make-dist, perhaps, know to delete, and maybe   
> realclean...of cm3? deletes? Hey, maybe just declare an output, with  
>  "..", in the m3makefile, so merely clean and realclean update the   
> time, but incremental builds do not? This seems obviously the way to  
>  go right now, but still slightly debatable. Like, maybe an accurate  
>  timestamp is needed. Maybe if any other source or .lib changes, the  
>  timestamp should change -- so, like, m3_back/m3_link could   
> regenerate the file, except that might be too late.
>
> Should "now" be less granular than a second? That mitigates the   
> problem but i think is not satisfactory.Should "now" be overridable   
> on the command line or with an environment variable?

Again I think it's not worth bothering about. The cm3 package will
only be rebuilt by its developers and maintainers, and they can
easily disable the mechanism if they want to. Or by end users
performing an upgrade, but they should do it based on a script.

The correct time to use would indeed be the last modification time
of all the sources files compiled and linked into cm3. I've thought
about this for half a day, but it would be a hell of an effort to
program based on CVS. (If anybody finds an easy solution to do this,
I'd be very interested.)

The time stamp is just to imprint in releases and snapshots when
the compiler was actually built and helps to relate problem reports
to system releases.

Olaf
-- 
Olaf Wagner -- elego Software Solutions GmbH
                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194




More information about the M3devel mailing list