Speaker
Description
The D programming language has been at the forefront of the memory safe programming languages scene. However, its adoption has been hindered by the scarce availability of 3rd party tools that aid software development such as: linters, code analyzers, integrated development envirnments (IDE) etc. The fundamental reason for this absence is the underdeveloped compiler library, that does not offer a flexible, easy to use interface and misses some of the important features such as symbol resolution and scope retrieval.
In this work, we aim at improving the D compiler library by defining a proper interface and adding the currently missing features. To understand what are the needs of a well rounded compiler interface, we analyze existing 3rd party tools and extract a series of common needs. Further, we implement these interfaces directly into the source code of the reference D compiler, with no performance loss. Finally, we upgrade existing tools to use the newly defined compiler interface. By doing so, we unify the different implementations of the same logic. This has the advantage that once the compiler is upgraded to a newer version, all the tools that leverage the compiler library will no longer need to be updated.