January 15
On 15/01/2024 1:23 AM, pizza_dox_9999 wrote:
> On Sunday, 14 January 2024 at 11:54:09 UTC, Richard (Rikki) Andrew Cattermole wrote:
>> On 15/01/2024 12:47 AM, pizza_dox_9999 wrote:
>>> OK to make it clear. I wanted to call d from c so that I can write a n64 game with d. But compiling the d object files while using higher features like classes, resulted in missing dependencys. So because GCC doesnt understands d I need an object file which has everything included d needs to run. Thats my understanding of this situation.
>>
>> My understanding is druntime is not ported to that platform.
>>
>> Too limited in resources.
>>
>> Getting a static library with all dependencies would not help you here.
>>
>> But yes, GCC does understand D, using GDC which is built on top (same frontend as DMD and LDC).
>>
>> You are either stuck using -betterC which does not support ``extern(D)`` classes, but does have ``extern(C++)`` classes. Or by using a custom runtime which you will likely have to write yourself and will likely break between compiler releases.
> 
> Thank you for the clarification.
> Are such things as string so platform dependent in d or the stuff for the class and interface declarations that they aren't cross platform? I meant the gcc used by the n64 toolchain (libdragon).

A string in D is a slice. A pointer + length. This is entirely platform agnostic.

A dynamic array, is a slice, backed by the GC. This requires the GC and with that druntime. Which means you cannot append to a slice without druntime.

Classes require a ton of infrastructure to work. They are not purely a compilation construct.
1 2
Next ›   Last »