www.digitalmars.com         C & C++   DMDScript  

D.gnu - colors in gdc errors

reply "eles" <eles eles.com> writes:
It would be possible to implement this for gdc, too:

http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index-fdiagnostics-color-239

?
Also, error messages more similar to those spitted out by gcc. 
Compare:

test01.c:3:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or 
‘__attribute__’ before ‘int’
  int main() {
  ^

with

test01.d:3: Error: no identifier for declarator eroare
test01.d:3: Error: semicolon expected, not 'int'

that is: also provide column, display the offending line, add a 
caret on the next line.

I know it is not the end of the world, but it would be nice. Did 
not test with ldc...
Sep 03 2013
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 3 September 2013 16:54, eles <eles eles.com> wrote:
 It would be possible to implement this for gdc, too:

 http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index=

-fdiagnostics-color-239
 ?
 Also, error messages more similar to those spitted out by gcc. Compare:

 test01.c:3:1: error: expected =91=3D=92, =91,=92, =91;=92, =91asm=92 or =

=91__attribute__=92 before
 =91int=92
  int main() {
  ^

 with

 test01.d:3: Error: no identifier for declarator eroare
 test01.d:3: Error: semicolon expected, not 'int'

 that is: also provide column, display the offending line, add a caret on =

the
 next line.

 I know it is not the end of the world, but it would be nice. Did not test
 with ldc...

The front-end would have to track column numbering for to allow use to use carets in errors. As for errors, only errors that go through the gcc error system shows in colours. So would have to modify the frontend accordingly in that case... eg: void main() { int a =3D void; } gdc -fdiagnostics-color -Wunused foo.d gdc -fdiagnostics-color -Wunused -Werror foo.d Regards --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Sep 03 2013
prev sibling parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:
 It would be possible to implement this for gdc, too:

 http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#inde=


x-fdiagnostics-color-239
 ?
 Also, error messages more similar to those spitted out by gcc. Compare:

 test01.c:3:1: error: expected =91=3D=92, =91,=92, =91;=92, =91asm=92 or =


=91__attribute__=92 before
 =91int=92
  int main() {
  ^

 with

 test01.d:3: Error: no identifier for declarator eroare
 test01.d:3: Error: semicolon expected, not 'int'

 that is: also provide column, display the offending line, add a caret on=


the
 next line.

 I know it is not the end of the world, but it would be nice. Did not tes=


t
 with ldc...

The front-end would have to track column numbering for to allow use to use carets in errors. As for errors, only errors that go through the gcc error system shows in colours. So would have to modify the frontend accordingly in that case...

https://github.com/D-Programming-GDC/GDC/commit/b2a4421180f70475b52497a75ab= 0fe760ebc82d7 --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Sep 30 2013
parent reply "eles" <eles eles.com> writes:
On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw wrote:
 On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> 
 wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:
 It would be possible to implement this for gdc, too:

As for errors, only errors that go through the gcc error system shows in colours. So would have to modify the frontend accordingly in that case...

https://github.com/D-Programming-GDC/GDC/commit/b2a4421180f70475b52497a75ab0fe760ebc82d7

Great! Could you make fdiagnostic-color=auto by default? (instead of never). Just like gcc. Thank you.
Oct 01 2013
parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On Oct 1, 2013 8:20 AM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw wrote:
 On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:
 It would be possible to implement this for gdc, too:

As for errors, only errors that go through the gcc error system shows in colours. So would have to modify the frontend accordingly in that case...



https://github.com/D-Programming-GDC/GDC/commit/b2a4421180f70475b52497a75ab0fe760ebc82d7
 Great! Could you make fdiagnostic-color=auto by default? (instead of

never). Just like gcc.
 Thank you.

I'll check to see if you are correct. :) Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Oct 01 2013
parent reply "eles" <eles eles.com> writes:
On Tuesday, 1 October 2013 at 09:57:38 UTC, Iain Buclaw wrote:
 On Oct 1, 2013 8:20 AM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw wrote:
 On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> 
 wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:
 It would be possible to implement this for gdc, too:

As for errors, only errors that go through the gcc error system shows in colours. So would have to modify the frontend accordingly in that case...



https://github.com/D-Programming-GDC/GDC/commit/b2a4421180f70475b52497a75ab0fe760ebc82d7
 Great! Could you make fdiagnostic-color=auto by default? 
 (instead of

never). Just like gcc.

Sorry, I think I made a mistake. Actually, it depends of the state of the variable GCC_COLORS: "-fno-diagnostics-color Use color in diagnostics. WHEN is ‘never’, ‘always’, or ‘auto’. The default is ‘never’ if GCC_COLORS environment variable isn't present in the environment, and ‘auto’ otherwise. ‘auto’ means to use color only when the standard error is a terminal. The forms -fdiagnostics-color and -fno-diagnostics-color are aliases for -fdiagnostics-color=always and -fdiagnostics-color=never, respectively." http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html It seems to work the same way.
Oct 01 2013
parent reply "eles" <eles eles.com> writes:
On Tuesday, 1 October 2013 at 11:47:31 UTC, eles wrote:
 On Tuesday, 1 October 2013 at 09:57:38 UTC, Iain Buclaw wrote:
 On Oct 1, 2013 8:20 AM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw wrote:
 On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> 
 wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:





"-fno-diagnostics-color Use color in diagnostics. WHEN is ‘never’, ‘always’, or ‘auto’. The default is ‘never’ if GCC_COLORS environment variable isn't present in the environment, and ‘auto’ otherwise. ‘auto’ means to use color only when the standard error is a terminal. The forms -fdiagnostics-color and -fno-diagnostics-color are aliases for -fdiagnostics-color=always and -fdiagnostics-color=never, respectively." http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html It seems to work the same way.

Wowo, it *really* works if i set up the GCC_COLORS For the record, here's mine: export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01;36:quote=01'
Oct 01 2013
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On Oct 1, 2013 12:50 PM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 11:47:31 UTC, eles wrote:
 On Tuesday, 1 October 2013 at 09:57:38 UTC, Iain Buclaw wrote:
 On Oct 1, 2013 8:20 AM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw wrote:
 On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:





"-fno-diagnostics-color Use color in diagnostics. WHEN is =91never=92, =91always=92, or =91auto=


=92. The default is =91never=92 if GCC_COLORS environment variable isn't present in = the environment, and =91auto=92 otherwise. =91auto=92 means to use color only w= hen the standard error is a terminal. The forms -fdiagnostics-color and -fno-diagnostics-color are aliases for -fdiagnostics-color=3Dalways and -fdiagnostics-color=3Dnever, respectively."
 http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html

 It seems to work the same way.

Wowo, it *really* works if i set up the GCC_COLORS

Doesn't surprise me. A lot of gcc features work without front end interaction. :) Regards --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Oct 01 2013
prev sibling parent reply "Dejan Lekic" <dejan.lekic gmail.com> writes:
On Tuesday, 1 October 2013 at 11:49:54 UTC, eles wrote:
 On Tuesday, 1 October 2013 at 11:47:31 UTC, eles wrote:
 On Tuesday, 1 October 2013 at 09:57:38 UTC, Iain Buclaw wrote:
 On Oct 1, 2013 8:20 AM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw 
 wrote:
 On 3 September 2013 17:03, Iain Buclaw <ibuclaw ubuntu.com> 
 wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:





"-fno-diagnostics-color Use color in diagnostics. WHEN is ‘never’, ‘always’, or ‘auto’. The default is ‘never’ if GCC_COLORS environment variable isn't present in the environment, and ‘auto’ otherwise. ‘auto’ means to use color only when the standard error is a terminal. The forms -fdiagnostics-color and -fno-diagnostics-color are aliases for -fdiagnostics-color=always and -fdiagnostics-color=never, respectively." http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html It seems to work the same way.

Wowo, it *really* works if i set up the GCC_COLORS For the record, here's mine: export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01;36:quote=01'

Thanks for this info, I did not know about it. :) \o/
Oct 07 2013
parent "eles" <eles eles.com> writes:
On Monday, 7 October 2013 at 13:00:10 UTC, Dejan Lekic wrote:
 On Tuesday, 1 October 2013 at 11:49:54 UTC, eles wrote:
 On Tuesday, 1 October 2013 at 11:47:31 UTC, eles wrote:
 On Tuesday, 1 October 2013 at 09:57:38 UTC, Iain Buclaw wrote:
 On Oct 1, 2013 8:20 AM, "eles" <eles eles.com> wrote:
 On Tuesday, 1 October 2013 at 03:36:09 UTC, Iain Buclaw 
 wrote:
 On 3 September 2013 17:03, Iain Buclaw 
 <ibuclaw ubuntu.com> wrote:
 On 3 September 2013 16:54, eles <eles eles.com> wrote:






export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01;36:quote=01'

Thanks for this info, I did not know about it. :) \o/

glad it is useful
Oct 07 2013