Re: Support for color diagnostics

interfaSys Sàrl <[email protected]>
Newsgroups gmane.comp.compilers.ccache
Message-ID <[email protected]>
Hello,

I've just tested the patch with a patched gcc48 with -fdiagnostics-color support 
on FreeBSD 9 and it works with one exception.

GCC's documentations says:
"‘auto’ means to use color only when the standard error is a terminal"

So, if my understanding is correct, this means that, when using 
-fdiagnostics-color=auto , I should be seeing colours when using the 
terminal and indeed, that's the normal behaviour when ccache falls back to 
the compiler (I see colours).

With that patch, I don't see the colours in auto mode. It only works in 
always mode.

Cheers,

Olivier



On Friday, November 29, 2013 12:39:25 PM UTC+1, Lubos Lunak wrote:
>
>
>  Hello, 
>
>  the attached patch adds ccache support for compiler color diagnostics 
> (also 
> reported by somebody as #10075). 
>
>  Clang automatically uses colors for output automatically if used in 
> terminal. 
> Ccache's redirecting to a file disables this. GCC 4.8 has got a similar 
> support, except that it apparently requires also $GCC_COLORS or an 
> explicit 
> option. 
>
>  The patch detects if the compiler would use colors if used without ccache 
> and 
> explicitly forces an option to achieve this. Note that I do not have GCC 
> 4.8 
> here, so I tested with Clang's alias and the GCC_COLORS support is done 
> based 
> on documentation. 
>
> Caveats: 
>
> - GCC developers decided to roll their own name for the option when 
> introducing it. Clang has an alias for the GCC way, but versions predating 
> that obviously can't support it, so it's necessary to detect the compiler. 
> As 
> ccache doesn't do that (and I don't find it worth much effort, as it can't 
> be 
> 100% reliable anyway), the code merely guesses from the binary name. If 
> the 
> compiler used will be e.g. the 'cc' symlink, there'll be no colors. No big 
> deal. 
>
> - Since the stderr is different, obviously compiling with and without 
> colors 
> has different results as well. That means that such a compile 
> is "duplicated". It's hopefully not such a common case, although it's 
> perfectly possible. I don't know if it's worth the effort to try to be 
> smart 
> here. A possibly simple improvement could be to search the cache with and 
> without the option set and if stderr is empty, reuse the result regardless 
> of 
> the option. I'm not quite sure where exactly this should happen in the 
> code. 
>
>  I expect it'd make sense to add $CCACHE_NOCOLORS to disable this support? 
>
>  I can also create manpage section for this color support, but I first 
> wanted 
> to check here with the code. 
>
> -- 
>  Lubos Lunak 
>

_______________________________________________
ccache mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/ccache
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.