Thread overview
command line option or other method for determining the front end version of gdc
Jul 24, 2016
dan
Jul 24, 2016
Iain Buclaw
Jul 24, 2016
dan
July 24, 2016
One of my machines (running ubuntu mate 16.04) did some update and gdc is no longer able to compile a library that i like to use (gtkd).

So i want to build a gdc using an earlier front-end to avoid the problem.

However, i don't know what front end is compiled into gdc, so i'm unclear on which front-end to try get an earlier version of.

If i run the command
    gdc --version
it gives me the gcc version.

The command
    gdc --verbose --version
gives a lot more information, but i can't tell the front end version from that either.

Even running commands like
    strings /usr/bin/gdc | grep .....
doesn't seem to reveal the version.  (I think the version is probably 2.06* but '2.06' and '206' do not appear in the strings.)

Nevertheless i'm sure the information must be there.

TIA for any info!
July 24, 2016
On 24 July 2016 at 19:00, dan via D.gnu <d.gnu@puremagic.com> wrote:
> One of my machines (running ubuntu mate 16.04) did some update and gdc is no
> longer able to compile a library that i like to use (gtkd).
>
> So i want to build a gdc using an earlier front-end to avoid the problem.
>
> However, i don't know what front end is compiled into gdc, so i'm unclear on which front-end to try get an earlier version of.
>
> If i run the command
>     gdc --version
> it gives me the gcc version.
>
> The command
>     gdc --verbose --version
> gives a lot more information, but i can't tell the front end version from
> that either.
>
> Even running commands like
>     strings /usr/bin/gdc | grep .....
> doesn't seem to reveal the version.  (I think the version is probably 2.06*
> but '2.06' and '206' do not appear in the strings.)
>
> Nevertheless i'm sure the information must be there.
>
> TIA for any info!

Later versions will write this out during compilation of a file under -v.

  $ gdc -v test.d
  # ...
  version   v2.068.2
  # ...

For earlier versions, there is a universal way to do it in code.

pragma(msg, __VERSION__);
July 24, 2016
On Sunday, 24 July 2016 at 17:16:59 UTC, Iain Buclaw wrote:
> On 24 July 2016 at 19:00, dan via D.gnu <d.gnu@puremagic.com> wrote:
.....
>> However, i don't know what front end is compiled into gdc, so i'm unclear on which front-end to try get an earlier version of.
.....
>
> Later versions will write this out during compilation of a file under -v.
>
>   $ gdc -v test.d
>   # ...
>   version   v2.068.2
>   # ...
>
> For earlier versions, there is a universal way to do it in code.
>
> pragma(msg, __VERSION__);

Thanks Iain, this works and gives me the right information.

For reference, including that pragma causes the version (such as 2066L or 2067L) to be emitted during compilation.

(And when i run it, i can see that 2067 is the offending version so at least i know what to try to roll back to.)

dan