The reference compiler for the D programming language, enabling development of efficient and expressive systems software.
DMD is the reference compiler for the D programming language, translating D source code into efficient native executables. It serves as the primary implementation that defines the language's behavior and toolchain, enabling developers to build high-performance systems software with modern language features.
Systems programmers, software engineers, and developers working on performance-critical applications who want a language combining C++-level efficiency with productivity features like garbage collection, metaprogramming, and functional constructs.
As the official reference compiler, DMD guarantees correct implementation of the D language specification and provides a stable, well-tested toolchain. Developers choose it for its reliability, integration with the D ecosystem, and role as the standard for language compliance.
dmd D Programming Language compiler
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As the official compiler, DMD strictly adheres to the D language specification, ensuring correct semantics and behavior for all D code, which defines the standard for compliance.
It works seamlessly with D's standard library (Phobos) and runtime (druntime), providing a complete toolchain out of the box for systems programming.
The compiler includes a comprehensive test suite and infrastructure in the compiler/test directory, ensuring high reliability through continuous validation.
Multiple CI services like Cirrus CI, CircleCI, and Azure Pipelines are used, as shown by the badges, for consistent build quality and release management.
Compared to LDC, which leverages LLVM for aggressive optimizations, DMD may not produce the fastest executables, prioritizing correctness over peak performance.
Building DMD from source requires an existing D compiler, creating a circular dependency that can be challenging for new contributors, as noted in the build instructions.
Internal documentation in the compiler/docs directory might be sparse, which could hinder deep customization or understanding of compiler internals for advanced users.