= Runtime Specification = The D runtime is made up of three logically separate parts: a compiler runtime library, a garbage collector, and a common application layer. Each of these parts represents a specific subset of functionality required for the proper functioning of any D program, and each may only interact with the others through a set of well-defined C routines, described herein. Any remaining external dependencies should be limited to standard or platform-specific C libraries. The rationale behind this design is to simplify the addition of support for new compilers, memory management strategies, and so on, and to allow the appropriate set of features to be chosen by the user at link-time. Whenever possible, the runtime spec is identical across language version. However, as the language evolves and features are added, some differences become unavoidable. Separate versions of this spec will be provided for each language version, as well as a list of differences from the spec for the prior language version. == D 2.0 == * [wiki:GarbageCollectorD2_0 Garbage Collector] * [wiki:CompilerRuntimeD2_0 Compiler Runtime] * [wiki:RuntimeCoreD2_0 Runtime Core] * [wiki:ChangesFromD1_0 Changes from D 1.0] == D 1.0 == * [wiki:GarbageCollectorD1_0 Garbage Collector] * [wiki:CompilerRuntimeD1_0 Compiler Runtime] * [wiki:RuntimeCoreD1_0 Runtime Core]