D seems interesting, but...

Gerry Weaver gerryw at compvia.com
Mon Oct 15 00:23:39 PDT 2012


On Monday, 15 October 2012 at 07:12:03 UTC, Iain Buclaw wrote:
> On 15 October 2012 04:10, Gerry Weaver <gerryw at 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



More information about the Digitalmars-d mailing list