ClangVSX on GitHub

Years before Godbolt would solve this problem conclusively, Matthew Wilson wrote in his excellent Imperfect C++ book:

A few years ago, when I started to focus more on code portability, I conceived of a tool that would act as a compiler, but which would actually dispatch a requested compilation among a group of real compilers, to provide the best overall coverage of warnings and errors.

Thus was Arturius born. The name is an Old English form of Arthur, of Round Table fame. The idea is that the suite of one’s installed compilers would represent a round table of wise knights, who would collectively proclaim wisdoms to which any single compiler could only hope to aspire

I remember reading this, relishing the idea, discovering that Arturius was stuck unreleased last seen 2006 ? and deciding to try building something similar myself. An aborted attempt in 2008 called Hydrapiler (cool name though, right?) was duly simplified, targeting just one extra compiler rather than 4. As a lazy IDE-coddled scrub, I decided I wanted the chance to experiment with the exciting new Clang/LLVM tools from the relative safety of my daily driver, Visual Studio.

By the end, ClangVSX provided Visual Studio 2010 - 2013 with a drop-in option to build the current solution directly with the Clang/LLVM C/C++ compiler, translating any given MSBuild project to an appropriate Clang/GCC command line and processing the resulting object files into a functioning executable with the existing MSVC linker.

clang vsx ui

I also took the opportunity to build in features that I missed from my days fighting with CodeWarrior for the PlayStation 2 - namely the ability to right-click any file and quickly view the preprocessed or disassembled output I still miss these features! Although, yes, it would sometimes emit bogus machine code or just crash on compilation, some parts of CodeWarrior were really neat.

clang vsx right click menu

It included a Windows build of Clang 3.x too, a time-saver at the time as the Clang team had not got into the habit of building for everyone’s least favourite OS. That extra is thankfully now obsolete .

The project is retired and archived for multiple reasons, not least because a deep Clang integration is now included in Visual Studio 2019 onwards . I have uploaded a final snapshot of both the VSX and the Clang build to the releases section of the GitHub project for posterity; alternatively they are stashed on archive.org