A work-in-progress D compiler with supporting tools, built as a library to improve the D toolchain.
SDC (The Snazzy D Compiler) is an experimental compiler for the D programming language that provides both a compiler executable and a compiler library (libd). It aims to improve the D toolchain by enabling development of new tools through its library architecture, though it's currently a work in progress and not suitable for production use.
D language enthusiasts, compiler developers, and tooling engineers interested in experimenting with D compiler internals or building new development tools for the D ecosystem.
SDC offers a unique library-based approach to D compilation, focusing first on implementing the language's most complex features to create a solid foundation for future tool development, unlike traditional monolithic compilers.
The Snazzy D 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.
Provides libd, a D compiler library that enables the development of new tools for the D ecosystem, as stated in the README's goals to improve the overall toolchain.
Implements complex D features like static ifs, string mixins, and CTFE first, building a solid architectural base for future development, per the README's philosophy.
Includes sdc (the compiler), sdunit (unit test runner), and sdfmt (code formatter), offering a cohesive set of experimental tools for D development workflows.
Uses LLVM and libd-llvm for code generation and JIT CTFE, leveraging modern compiler infrastructure for efficient and extensible code processing.
Explicitly stated as unusable for any production work and not expected to compile arbitrary code, severely limiting practical application in real-world projects.
Focuses on advanced features while missing many basic D language features, hindering the compilation of standard or existing D codebases.
Requires latest DMD release, LLVM 20, and specific configuration on different OSes (e.g., using Homebrew or Nix), making installation and compilation challenging for casual users.