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.

Reply via email to