On 19/01/2018 8:08 AM, Jonathan M Davis wrote:
On Friday, January 19, 2018 06:53:16 Rel via Digitalmars-d wrote:
On Wednesday, 17 January 2018 at 12:31:35 UTC, Kagamin wrote:
https://wiki.dlang.org/Build_D_for_Android
https://wiki.dlang.org/Building_LDC_runtime_libraries
https://github.com/ldc-developers/ldc/pull/2142#issuecomment-304472412

As far as I understand I will need a C toolchain that
allows cross-compilation to target OS in order to build
runtime libraries, is it correct? Why is D's runtime library
is written in C? I thought that D is pretty much capable to
have runtime libraries written in D, especially after the
introduction of -betterC flag.

D's runtime is not written in C. It's written in D. However, the C linker is
used to link, and by default, it's used by calling the C/C++ compiler (at
least, that's what dmd does). ldc would be using LLVM's linker and possibly
using it through clang.

It's in built into LLVM. No requirements on having clang (we already have it on offer).

However, D's runtime does _call_ into various C functions, because they're
part of the OS' API, and that means that D is ultimately using the C runtime
in addition to its own. So, C is also used in that way even though none of
D's runtime is written in C.

- Jonathan M Davis


Reply via email to