How minimal I can go using D on GDC?

Mr. Anonymous mailnew4ster at gmail.com
Mon May 13 13:21:54 PDT 2013


On Sunday, 12 May 2013 at 17:13:30 UTC, Timo Sintonen wrote:
> On Sunday, 12 May 2013 at 15:27:04 UTC, Iain Buclaw wrote:
>> On 12 May 2013 15:41, Rel <relmail at rambler.ru> wrote:
>>
>>> Benjamin Thaut, yes I know. but here is an example, if I add 
>>> a class to
>>> the code like that:
>>>
>>>
>>> module main;
>>>
>>> extern (C) void* _Dmodule_ref = null;
>>> extern (C) void printf(const char*, ...);
>>>
>>> extern (C) void puts(const char*);
>>> extern (C) void exit(int);
>>>
>>> class A {
>>>        int a = 100;
>>>        int b = 200;
>>>
>>> };
>>>
>>> extern (C) void main() {
>>>        scope(exit) {
>>>                puts("Exiting!");
>>>                exit(0);
>>>        }
>>>
>>>        A a; printf("%d %d\n", a.a, a.b);
>>> }
>>>
>>
>> This code won't work.  classes are reference types and need to 
>> be
>> initialised with 'new'.  This requires TypeInfo_Class 
>> information to
>> do...   You could possible use 'scope A a = new A'.  But again 
>> your going
>> into the bounds of needing rtti for the initialiser var to 
>> assign it on the
>> stack.
>>
>> Structs would be your friend here...
>
> I have used the option -fno-emit-moduleinfo and got rid of 
> _Dmodule_ref
>
> Anything created with 'new' needs memory allocation. I have 
> just published a minimum memory allocation in my repo.
>
> The address of my minimum runtime environment repository is:
> bitbucket.org/timosi/minlibd

Will this minimum runtime environment work on Windows, too?
I'd like to try that out.


More information about the D.gnu mailing list