From: i-google-iasuhdkajsh@rf.risimo.net
Subject: Re: How to cache output of the compiler aka ccache
Date: 18 Mar 2005 10:50:22 -0800
Date: 2005-03-18T10:50:22-08:00 [thread overview]
Message-ID: <7f8cfe1b.0503181050.10ed86ce@posting.google.com> (raw)
In-Reply-To: 1111085641.211767.56950@f14g2000cwb.googlegroups.com
> Hi
>
> I have a 1mio LOC project and it takes multiple hours to
> build and rebuild. The C/C++ world has a nice tools (ccache
> is well known here) which cache the output of the compiler.
> This especially speeds up the time for a "make clean;make".
>
> Is there such a thing for Ada in general and gcc's gnat
> specially? Any other way to speed up the compilation?
Thanks for your input. I'm more a C/C++ guy than an Ada one.
So please correct anything below.
There are two main gains scenarios where a cache helps.
1) make clean;make
You think that there are no reason for this.
However I disagree. There are cases you need to rerun
configure and afterwards the make clean;make idoim. Reasons
for this could be:
- you have changed the version/flags of tools you use
- you have changed the configuration somehow (adding
sound support for example)
- poor/bad make files for non-Ada code
In my project are multiple compilper generators and
C/C++ and Java source code. So there is a configure and
make clean;make is a good way to make sure you have a
good build.
2) Sharing between trees
I also want to give here two examples. The first is when
a group of local developers share such a cache. If now an
external CVS change comes in only one developer has to
wait. In the best case you could do a background cache
filling based on new CVS code with cron and co.
The second case for sharing is multiple tress. Let me
give you an example:
$ cd tree.clean
$ make
$ cd ..;cp -a tree.clean tree.patched; cd tree.patched
$ patch -p1 <....
$ make
# nothing gained so far. Two days later however there
# is an external CVS change.
$ cd ../tree.clean
$ cvs up;make
# testing ... ok. Let's test the patched version
$ cd ../tree.patched
$ cvs up
$ make
# The last make should really be speed up.
So you see there are more or less valid reasons for a compile cache.
Thanks for the -m switch hint. I will try it.
Thomas
prev parent reply other threads:[~2005-03-18 18:50 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
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 [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox