On Thursday, 26 April 2018 at 03:53:54 UTC, Mike Franklin wrote:

I suggest reading the following 2 items before digging deeper:
https://dlang.org/blog/2017/08/23/d-as-a-better-c/
https://dlang.org/changelog/2.079.0.html#minimal_runtime

I didn’t know D had begun offering serious decoupling like that. With something like this, we may very well be able to avoid writing C entirely, at least in-house! Thank you for bringing that up.

On Thursday, 26 April 2018 at 03:53:54 UTC, Mike Franklin wrote:
The compiler uses the C compiler (unfortunately again) to do its linking; and it becomes evident that D is in some ways a layer on top of C.

You can compile some D programs without linking libphobos2, but will require separate compilation and linking because the compiler itself actually hard-codes the call to the linker (actually the C compiler as demonstrated above). Example 3 at https://dlang.org/changelog/2.079.0.html#minimal_runtime demonstrates this.

If you use that method, you won't be able to use certain features of D that have runtime implementations. The obvious ones are classes, dynamic arrays, and exceptions.

I could go on, but I'd have to make some assumptions about what you're really after. Feel free to ask more specific questions and I'll be happy to share what I know (or at least what I think I know; sometimes I'm wrong).

Mike

So in a way, the D runtime is similar to libstdc++, providing implementations of runtime language features. But it is also like C++ in that those language features can be avoided, correct? At least with the use of minimal D, I mean. This means that as a language, there is enough granularity to theoretically provide as few or as many features as one desires for their use case, making the penning of new C and C++ code redundant? Do I get this right?

Reply via email to