On Monday, 15 October 2012 at 07:12:03 UTC, Iain Buclaw wrote:
On 15 October 2012 04:10, Gerry Weaver <ger...@compvia.com>
wrote:
Hello All,
I have been looking at D off and on for several years.
Initially I worked
through a very painful experience to get D compiling on Linux.
After that
experience, I concluded that I should wait for it to become
more mature.
Since then, I do a very simple test. I install the latest
package and try to
build "Hello World". I figure that if "Hello World" builds
successfully, I
will continue further. I have just downloaded the latest .deb
package and
installed it on Ubuntu 12.04 32bit. Once again it fails this
incredibly
simple test. I've read many discussions about how/why,
has/hasn't,
will/won't D hit the mainstream in programming languages. I
think this
situation may offer at least one data point. I'm struggling to
think of any
other language (and I use several) that won't build code out
of the box. D
seems to have a lot of potential, but this needs to be fixed.
I am not
asking for help on this. I honestly don't care what the
solution is. I just
wanted the D developers to know why at least one developer is
not using the
language. I sincerely hope that the situation will improve.
I'm looking
forward to programming in D.
Thanks for your time,
-G
Here is the code:
import std.stdio;
void main()
{
writeln("Hello, world!");
}
Here is the command:
dmd hello.d
Here is the output:
/usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In
function
`_D2rt6dmain24mainUiPPaZi7runMainMFZv':
src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
undefined
reference to `_Dmain'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In
function
`_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
undefined reference to `_tlsend'
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
undefined reference to `_tlsstart'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In
function
`thread_attachThis':
src/core/thread.d:(.text.thread_attachThis+0xb7): undefined
reference to
`_tlsstart'
src/core/thread.d:(.text.thread_attachThis+0xbc): undefined
reference to
`_tlsend'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In
function
`_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
undefined reference to `_tlsend'
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
undefined reference to `_tlsstart'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In
function
`_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
undefined reference to `_tlsend'
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
undefined reference to `_tlsstart'
/usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In
function
`_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
undefined reference to `_deh_beg'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
undefined reference to `_deh_beg'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
undefined reference to `_deh_end'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
undefined reference to `_deh_end'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In
function
`thread_entryPoint':
src/core/thread.d:(.text.thread_entryPoint+0x64): undefined
reference to
`_tlsend'
src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined
reference to
`_tlsstart'
collect2: ld returned 1 exit status
--- errorlevel 1
Try and paste the output of the following:
dmd -c hello.d
objdump -d hello.o
Regards
Hi,
Here you go.
hello.o: file format elf32-i386
Disassembly of section .text:
00000000 <.text>:
0: b8 10 00 00 00 mov $0x10,%eax
5: b9 00 00 00 00 mov $0x0,%ecx
a: 8b 11 mov (%ecx),%edx
c: 89 10 mov %edx,(%eax)
e: 89 01 mov %eax,(%ecx)
10: c3 ret
Thanks,
-G