www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - SCons D support

reply Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I have started having a go at a revamp (but may turn out to be a total
rewrite) of the SCons support for D builds. My focus is entirely on
64-bit Linux so unless other folk chip in, support for obscure platforms
like Windows will be minimal ;-)

The dmd tool now works with dmd and gdmd. I have the beginnings of a gdc
tool which works, and I have put in place the beginnings of an ldc tool
but this fails not least because it supports only a very old D version
but also because the packaging for Debian seems to have something wrong:

        ldc -I=3D. -c -of=3DhelloWorld.o helloWorld.d
        object.d: Error: module object cannot read file 'object.d'

This is the first time I have ever run the ldc command so it may be user
error.

The aim is to refactor all these to create toolchain specific tools and
that to put over the top a d_lang tool which infers a toolchain to use.

Currently the overall process is to use a D compiler to create object
code and then use a linker to link things.  The dmd tool (from 2003 long
before I fiddled with it) seems to just use GCC as linker rather than
using DMD or GDMD. I am still not sure if this is a good or a bad thing,
or whether it is just that the "smart linking" code is broken.

Anyone interested feel free to join in, the focus is at
https://bitbucket.org/russel/scons_d_support

--=20
Russel.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder ekiga.n=
et
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
May 10 2012
next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 10 May 2012 at 09:14:10 UTC, Russel Winder wrote:
 The dmd tool now works with dmd and gdmd. I have the beginnings 
 of a gdc
 tool which works, and I have put in place the beginnings of an 
 ldc tool
 but this fails not least because it supports only a very old D 
 version
 but also because the packaging for Debian seems to have 
 something wrong:

         ldc -I=. -c -of=helloWorld.o helloWorld.d
         object.d: Error: module object cannot read file 
 'object.d'

 This is the first time I have ever run the ldc command so it 
 may be user
 error.

LDC packages unfortunately are in a sorry state right now – the easiest way to get a working, up-to-date installation is probably to just build it from Git (CMake required). The compiler binary for D2 produced is called ldc2. The specific error you mentioned is a frontend error and means that the druntime (resp. Tango in case of D1) headers are either not installed on your system, or ldc.conf doesn't contain the correct path to it – just as with a wrong/missing dmd.conf in case of DMD. David
May 10 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
[I have been trying to post this via forum.dlang.org for some 
hours, hopefully it finally makes its way to the NG now…]

---

On Thursday, 10 May 2012 at 09:14:10 UTC, Russel Winder wrote:
 The dmd tool now works with dmd and gdmd. I have the beginnings 
 of a gdc
 tool which works, and I have put in place the beginnings of an 
 ldc tool
 but this fails not least because it supports only a very old D 
 version
 but also because the packaging for Debian seems to have 
 something wrong:

         ldc -I=. -c -of=helloWorld.o helloWorld.d
         object.d: Error: module object cannot read file 
 'object.d'

 This is the first time I have ever run the ldc command so it 
 may be user
 error.

LDC packages unfortunately are in a sorry state right now – the easiest way to get a working, up-to-date installation is probably to just build it from Git (CMake required). The compiler binary for D2 produced is called ldc2. The specific error you mentioned is a frontend error and means that the druntime (resp. Tango in case of D1) headers are either not installed on your system, or ldc.conf doesn't contain the correct path to it – just as with a wrong/missing dmd.conf in case of DMD. David
May 10 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Thu, May 10, 2012 at 09:05:14PM +0200, David Nadlinger wrote:
 [I have been trying to post this via forum.dlang.org for some hours,
 hopefully it finally makes its way to the NG now…]

I see this as a duplicate post, actually. I wonder if the NG is just lagged (maybe due to the recent load issues?). T -- The peace of mind---from knowing that viruses which exploit Microsoft system vulnerabilities cannot touch Linux---is priceless. -- Frustrated system administrator.
May 10 2012
prev sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, 10 May 2012 19:35:02 +0200
"David Nadlinger" <see klickverbot.at> wrote:

 LDC packages unfortunately are in a sorry state right now =E2=80=93 the=20
 easiest way to get a working, up-to-date installation is probably=20
 to just build it from Git (CMake required). The compiler binary=20
 for D2 produced is called ldc2.

Let me say that ldc is in the official 'community' repo of Archlinux. :-) Sincerely, Gour --=20 Perform your prescribed duty, for doing so is better than not=20 working. One cannot even maintain one's physical body without work. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
May 10 2012