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