comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: How to cache output of the compiler aka ccache
Date: 18 Mar 2005 19:22:00 +0000
Date: 2005-03-18T19:22:00+00:00	[thread overview]
Message-ID: <x7vekeciwtj.fsf@smaug.pushface.org> (raw)
In-Reply-To: 877jk65a2f.fsf@insalien.org

Ludovic Brenta <ludovic.brenta@insalien.org> writes:

>                                and "gnatmake -m" does minimal
> recompilation.  This really speeds things up.

We absolutely rely on this; the handwritten code is in separate proper
bodies, 99% of specs and package bodies are generated, and the only
way to change them is to change the model and re-generate.

One thing to watch out for is that when deciding whether a unit needs
to be recompiled GNAT first checks the timestamp of each dependency;
it the timestamp is different it checks the contents of the dependency
and only recompiles if there's a semantic difference.

So recreating lots of identical source will mean that the dependencies
have to be at least parsed. This can take quite a time (I think mainly
the overhead of opening/closing the files).

We had an interesting bug with 3.16a1 on Windows where compilations
ran slower if the compiler had been installed in the winter months
(outside daylight saving time) -- a feature involving the Windows
installer, I think; the timestamps in the library were all one hour
out.

-- 
Simon Wright                               100% Ada, no bugs.



  reply	other threads:[~2005-03-18 19:22 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-17 18:54 How to cache output of the compiler aka ccache i-google-iasuhdkajsh
2005-03-17 19:40 ` Robert A Duff
2005-03-17 20:04   ` Ludovic Brenta
2005-03-17 21:27     ` Marius Amado Alves
2005-03-18  1:24       ` Ludovic Brenta
2005-03-18  2:08         ` Robert A Duff
2005-03-17 19:47 ` Ludovic Brenta
2005-03-18 19:22   ` Simon Wright [this message]
2005-03-18 20:04     ` Randy Brukardt
2005-03-18 22:10       ` Florian Weimer
2005-03-19  3:25       ` Larry Kilgallen
2005-03-18  6:58 ` i-google-iasuhdkajsh
2005-03-18 13:33   ` Robert A Duff
2005-03-18 14:01     ` Vinzent 'Gadget' Hoefler
2005-03-18 14:41       ` Florian Weimer
2005-03-18 15:08         ` Vinzent 'Gadget' Hoefler
2005-03-18 16:24           ` Florian Weimer
2005-03-21  8:16             ` Vinzent 'Gadget' Hoefler
2005-03-21  8:54               ` Florian Weimer
2005-03-21 11:26                 ` Vinzent 'Gadget' Hoefler
2005-03-18  8:07 ` Martin Krischik
2005-03-18 18:50 ` i-google-iasuhdkajsh
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox