I think it is uncontroversial that many tools would benefit from access to the frontend. But what is the interface to the frontend? There is tremendous diversity among frontends; it&#x27;s the key distinguishing feature of most languages. What exactly are you going to expose? How should the build system interact with this?<p>LLVM is a great example of a modular compiler which is a pain to program against, because it is being constantly being refactored with BC-breaking changes. As silvas has said, &quot;LLVM is loosely coupled from a software architecture standpoint, but very tightly coupled from a development standpoint&quot;. &lt;<a href="https:&#x2F;&#x2F;lwn.net&#x2F;Articles&#x2F;583271&#x2F;&gt;" rel="nofollow">https:&#x2F;&#x2F;lwn.net&#x2F;Articles&#x2F;583271&#x2F;&gt;</a>  In contrast, I can generally expect a command mode which dumps out Makefile-formatted dependencies to be stable across versions.  Modularity is not useful for external developers without stability!