Re: [ccache] does ccache include source code modified time into hash?

2014-11-13 Thread Egmont Koblinger
On Thu, Nov 13, 2014 at 2:27 PM, Andrew Stubbs a...@codesourcery.com wrote:

  Probably there was a timestamp in a generated header somewhere.


Another similar issue might be if you embed the build ID (the git commit
ID) in some weird way, like e.g. midnight commander does, so that every
tiny git commit causes a total loss of the cache.

e.
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


[ccache] New release (with color) any time soon?

2014-10-18 Thread Egmont Koblinger
Hi,

It's been an unusually long time since the last ccache release.

I've just upgraded to Ubuntu Utopic (beta) which ships gcc-4.9 with its
nice coloring support, and ccache-3.1.9 which is unable to leverage this
feature.  Fedora 21 is about to ship these versions, too.

Coloring support has been in ccache git for almost a year now.  I've just
simply compiled and installed it, overwriting Ubuntu's package, and it
works like a charm for me.

Distros are very likely to pick up new mainstream stable releases, but are
very unlikely to start cherrypicking from their git branch.

Could you please consider releasing a new stable ccache in the not too
distant future, like maybe in a month or two? It would be really cool if
the next release of distros (e.g. Ubuntu V V 15.04) shipped the coloring
feature out of the box.

Thanks a lot,
egmont
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


Re: [ccache] New release (with color) any time soon?

2014-10-18 Thread Egmont Koblinger
On Sat, Oct 18, 2014 at 7:23 PM, Paul Smith p...@mad-scientist.net wrote:


 Can someone describe the ccache support for this?  I wonder how it might
 (or might not) interact with GNU make's method of determining whether
 there's a controlling TTY, in cases where make's output synchronization
 is enabled.


I'm really not the right guy to answer this, but here's what I believe
happens (after playing a bit with ccache+colors and taking a glimpse at the
patch that introduced this feature, and also quickly checking make's
--output-sync now).

The most important thing is that ccache should always remain totally
transparent, and this is guaranteed with coloring too.  ccache figures out
what kind of coloring gcc would use if it was called directly (rather than
via ccache), depending on whether the stdout/err is a tty, on
-f(no-)diagnostics-color=xx and $GCC_COLORS.  It includes all these values
in the hash(*) and forces gcc to use color if necessary (because the actual
gcc's output is not a tty).

(*) This means that if you perform the same complications with tty output
(colors enabled) and with redirected output (no colors), it won't share the
cache. This causes some performance regression in case you first do a
colored gcc to your tty, but upon seeing tons of errors you decide to run
gcc | less to examine them. Also if you alter GCC_COLORS you won't get
any cache hits.

(Theoretically, ccache could instead always invoke gcc by forcing one
particular color set where every kind of message has a different color, and
then do a search-replace to the actual runtime colors or no colors; then it
could share cache results. That would be the more conventional and better
stacking order: caching below, coloring above. I understand it's harder to
implement/maintain and the benefits would be quite low compared to the
current solution.)

make's --output-sync causes gcc (without ccache) not to use any coloring by
default (since gcc's output is not a tty but a pipe or tmpfile to make),
and having ccache in front of gcc doesn't change this.  You might specify
-fdiagnostics-color=always in your Makefile, again, I believe the presence
of ccache should be transparent and you'd get colors.

Don't trust me blindly, I might be wrong in anything I said above :)


egmont
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


Re: [ccache] New release (with color) any time soon?

2014-10-18 Thread Egmont Koblinger
s/complications/compilations/

On Sat, Oct 18, 2014 at 7:46 PM, Egmont Koblinger egm...@gmail.com wrote:

 On Sat, Oct 18, 2014 at 7:23 PM, Paul Smith p...@mad-scientist.net
 wrote:


 Can someone describe the ccache support for this?  I wonder how it might
 (or might not) interact with GNU make's method of determining whether
 there's a controlling TTY, in cases where make's output synchronization
 is enabled.


 I'm really not the right guy to answer this, but here's what I believe
 happens (after playing a bit with ccache+colors and taking a glimpse at the
 patch that introduced this feature, and also quickly checking make's
 --output-sync now).

 The most important thing is that ccache should always remain totally
 transparent, and this is guaranteed with coloring too.  ccache figures out
 what kind of coloring gcc would use if it was called directly (rather than
 via ccache), depending on whether the stdout/err is a tty, on
 -f(no-)diagnostics-color=xx and $GCC_COLORS.  It includes all these values
 in the hash(*) and forces gcc to use color if necessary (because the actual
 gcc's output is not a tty).

 (*) This means that if you perform the same complications with tty output
 (colors enabled) and with redirected output (no colors), it won't share the
 cache. This causes some performance regression in case you first do a
 colored gcc to your tty, but upon seeing tons of errors you decide to run
 gcc | less to examine them. Also if you alter GCC_COLORS you won't get
 any cache hits.

 (Theoretically, ccache could instead always invoke gcc by forcing one
 particular color set where every kind of message has a different color, and
 then do a search-replace to the actual runtime colors or no colors; then it
 could share cache results. That would be the more conventional and better
 stacking order: caching below, coloring above. I understand it's harder to
 implement/maintain and the benefits would be quite low compared to the
 current solution.)

 make's --output-sync causes gcc (without ccache) not to use any coloring
 by default (since gcc's output is not a tty but a pipe or tmpfile to make),
 and having ccache in front of gcc doesn't change this.  You might specify
 -fdiagnostics-color=always in your Makefile, again, I believe the presence
 of ccache should be transparent and you'd get colors.

 Don't trust me blindly, I might be wrong in anything I said above :)


 egmont

___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


[ccache] Why not using MD5?

2004-11-15 Thread Egmont Koblinger
On Mon, Nov 15, 2004 at 06:25:49PM +1100, Martin Pool wrote:

 The other factor is whether the cache will grow to include a million
 files.

We're building a distribution using a build system completely created by us
and it intensively uses ccache. We have approx 1000 packages, including, of
course, all the standard linux applications.

Through about 1.5 years we've had one huge ccache pool for all our packages
and sometimes manually dropped old files after a change that caused old
files not to match anymore (gcc, glibc etc. upgrade). The ccache size was
around 5-10 GB.

Recently we changed to use separate pool for each package, but for other
reasons, not because we've met any collision. Fortunately we didn't meet
any, but I didn't even realize that we've been not far from it...

(If you're curious I can easily count the number of entries in our ccache
pools later this day.)

So there's one more vote here for md5. It doesn't hurt if ccache is prepared
for extreme use. :-)) And it's perfect time to do it now since the
2.4-2.5 version number change would reflect the md4-md5 change :-


PS. AFAIK no-one has ever found two different files with the same md5. Am I
right?


bye,

Egmont