Thread overview
Descent with gdc
Feb 21, 2008
Jason House
Feb 21, 2008
Ary Borenszweig
Feb 21, 2008
Jason House
Feb 21, 2008
Ary Borenszweig
Feb 21, 2008
Jason House
Feb 22, 2008
Robert Fraser
Mar 10, 2008
Graham St Jack
February 21, 2008
I'm setting up a new system and I only have gdc on it at the moment.

When I go to windows->preferences->d->installed compilers, and enter gdc as the type and name, I initially get a "libraries can not be empty" error. After adding the library folder (tango), I get no error but can't click ok. Entering a compiler home directory erases what I put in the libraries area and gives the error "Target is not a DMD installation Root.  DMD executable was not found"

Am I mistakenly trying to use descent with gdc?  Is the error text bogus and I'm entering the home directory incorrectly?

Any tips would be greatly appreciated.
February 21, 2008
Jason House escribió:
> I'm setting up a new system and I only have gdc on it at the moment.
> 
> When I go to windows->preferences->d->installed compilers, and enter gdc as
> the type and name, I initially get a "libraries can not be empty" error. After adding the library folder (tango), I get no error but can't click ok. Entering a compiler home directory erases what I put in the libraries area
> and gives the error "Target is not a DMD installation Root.  DMD executable
> was not found"
> 
> Am I mistakenly trying to use descent with gdc?  Is the error text bogus and
> I'm entering the home directory incorrectly?
> 
> Any tips would be greatly appreciated.

I just tested it and it works, although I found a bug I already created a ticket for (56).

I did this:
- In compiler type, select gdc
- Click the "Browse..." button and select your gdc directory. That directory should have a bin folder with gdc inside it.

Now, if you are on Windows, "gdc/inlcude/d/3.4.5" is going to be suggested as the standard library. Press ok, go to edit the compiler you just created, remove the library and add tango as an external include path (if you do it without saving, exiting, and editing, it doesn't work... that's the bug).

If you are on linux, no standard library should appear. Add tango as an external include path, press ok, go to edit, and add it again (because of the bug). If this still doesn't work (strange), you can try creating a symlink "gdc/include/d/3.4.5" to the tango folder. Maybe you can trick Descent that way (or a hardlink? Sorry, I don't know much about linux).

But... re-reading your post now, maybe you didn't change to "gdc" compiler type, because of the error message you get: "Target is not a DMD installation Root.  DMD executable was not found" :-)
February 21, 2008
Ary Borenszweig wrote:

> Jason House escribió:
>> I'm setting up a new system and I only have gdc on it at the moment.
>> 
>> When I go to windows->preferences->d->installed compilers, and enter gdc
>> as the type and name, I initially get a "libraries can not be empty"
>> error. After adding the library folder (tango), I get no error but can't
>> click ok. Entering a compiler home directory erases what I put in the
>> libraries area
>> and gives the error "Target is not a DMD installation Root.  DMD
>> executable was not found"
>> 
>> Am I mistakenly trying to use descent with gdc?  Is the error text bogus and I'm entering the home directory incorrectly?
>> 
>> Any tips would be greatly appreciated.
> 
> I just tested it and it works, although I found a bug I already created
> a ticket for (56).
> 
> I did this:
> - In compiler type, select gdc
> - Click the "Browse..." button and select your gdc directory. That
> directory should have a bin folder with gdc inside it.
> 
> Now, if you are on Windows, "gdc/inlcude/d/3.4.5" is going to be suggested as the standard library. Press ok, go to edit the compiler you just created, remove the library and add tango as an external include path (if you do it without saving, exiting, and editing, it doesn't work... that's the bug).
> 
> If you are on linux, no standard library should appear. Add tango as an external include path, press ok, go to edit, and add it again (because of the bug). If this still doesn't work (strange), you can try creating a symlink "gdc/include/d/3.4.5" to the tango folder. Maybe you can trick Descent that way (or a hardlink? Sorry, I don't know much about linux).
> 
> But... re-reading your post now, maybe you didn't change to "gdc" compiler type, because of the error message you get: "Target is not a DMD installation Root.  DMD executable was not found" :-)

The DMD error message is certainly strange.  I did select the compiler type
correctly as GDC.  I'm using linux, and here's as far as I get:
Compiler type: GDC
Compiler name: gdc
Compiler home directory: /usr/bin
Compiler system libraries: /usr/include/d/4.1.3
(Error at bottom)
  Target is not a DMD installation Root.  DMD executable was not found.

Ok button is greyed out and the "?" icon does not do anything.
February 21, 2008
Il Thu, 21 Feb 2008 11:10:03 -0500, Jason House ha scritto:

> The DMD error message is certainly strange.  I did select the compiler
> type correctly as GDC.  I'm using linux, and here's as far as I get:
> Compiler type: GDC
> Compiler name: gdc
> Compiler home directory: /usr/bin
> Compiler system libraries: /usr/include/d/4.1.3 (Error at bottom)
>   Target is not a DMD installation Root.  DMD executable was not found.

I don'e even reach that point.
I am under Linux (Debian testing) too:

- Compiler type: GDC (Error: Libraries cannot be empty)

- Compiler name: gdc-4.2 (Error: the same)

- Compiler home dir: /usr (Error: Target is not a DMD installation Root. DMD executable was not found)

- Compiler home dir: /usr/bin (Error: the same)


Even with DMD (installed from dmd-nonfree.deb packages):

- Compiler type: DMD (no error)

- Compiler name: dmd (Error: Libraries cannot be empty)

- Compiler home dir: /usr (Error: the same)

- Compiler home dir: /usr/bin (Error: Target is not a DMD installation Root. DMD executable was not found)


I even have not understood what I need to put in libraries paths. :(

Thank you very much for any help.
Bye.
February 21, 2008
I will check that later when I'll have time.

As a workaround, because the compiler is not used yet (just the path to object.d and the rest of the files), just ignore the "installed compilers" page, right click the project you are working on, properties, d build path, and in the "libraries" tab add the include paths for tango, phobos, or whaterver.

Alessandro Pellizzari escribió:
> Il Thu, 21 Feb 2008 11:10:03 -0500, Jason House ha scritto:
> 
>> The DMD error message is certainly strange.  I did select the compiler
>> type correctly as GDC.  I'm using linux, and here's as far as I get:
>> Compiler type: GDC
>> Compiler name: gdc
>> Compiler home directory: /usr/bin
>> Compiler system libraries: /usr/include/d/4.1.3 (Error at bottom)
>>   Target is not a DMD installation Root.  DMD executable was not found.
> 
> I don'e even reach that point.
> I am under Linux (Debian testing) too:
> 
> - Compiler type: GDC (Error: Libraries cannot be empty)
> 
> - Compiler name: gdc-4.2 (Error: the same)
> 
> - Compiler home dir: /usr (Error: Target is not a DMD installation Root. DMD executable was not found)
> 
> - Compiler home dir: /usr/bin (Error: the same)
> 
> 
> Even with DMD (installed from dmd-nonfree.deb packages):
> 
> - Compiler type: DMD (no error)
> 
> - Compiler name: dmd (Error: Libraries cannot be empty)
> 
> - Compiler home dir: /usr (Error: the same)
> 
> - Compiler home dir: /usr/bin (Error: Target is not a DMD installation Root. DMD executable was not found)
> 
> 
> I even have not understood what I need to put in libraries paths. :(
> 
> Thank you very much for any help.
> Bye.
February 21, 2008
I've done Ary's workaround (not listing installed compilers and
adding /usr/include/d/4.1.3 to the include path), and stuff is almost
working.  I have two files that compile correctly from the command line but
give errors in descent: "No return at end of function", "line 6".

At a minimum, the line numbers are way off.  It says the error is on line 6 but highlights line 4.  Both of those lines are within a large (GPL) comment at the top of the file.  Any idea what could be going wrong?

The simpler source file with this problem is attached.




February 22, 2008
Jason House wrote:
> I've done Ary's workaround (not listing installed compilers and
> adding /usr/include/d/4.1.3 to the include path), and stuff is almost
> working.  I have two files that compile correctly from the command line but
> give errors in descent: "No return at end of function", "line 6".
> 
> At a minimum, the line numbers are way off.  It says the error is on line 6
> but highlights line 4.  Both of those lines are within a large (GPL)
> comment at the top of the file.  Any idea what could be going wrong?
> 
> The simpler source file with this problem is attached.
> 
> 
> 

Solution: turn of descent semantic errors ;-). Go into Project > Properties > D Compiler and set "show semantic errors" to "none". It's still a *very* alpha-stage feature.
March 10, 2008
On Wed, 20 Feb 2008 23:17:25 -0500, Jason House wrote:
I'm using Descent 0.5.1 on Linux, installed just yesterday, and it is
working fine with gdc (with one problem). I entered /usr as the location,
and Descent found everything ok.

The problem is that gdc puts config.d and fonfigunix.d into a platform- specific subdirectory of /usr/include/d/4.1.3 called i486-linux-gnu. This makes a lot of sense because this is the code that has to be different on different architectures.

Unfortunately Descent won't let me add this directory to the library paths because it is inside the main one. I worked around this by copying the two files I needed into /usr/include/d/4.1.3/gcc.

It would be nice if Descent would sort this out for me.

Other than this (and building of course), Descent is really great.