The Spectre Compiler compiles source files into target files. Increasing source program sizes result in
- increased compilation times and
- increased target program sizes.
This causes various interruptions of the day-to-day workflow.
The purpose of this topic is to find solutions for these problems.
The Spectre Compiler compiles source files of the Spectre language into target files for various target languages (e.g. C, Java, C#, ...). The amount of Spectre source code in our projects gradually increased over the past years: In our C based projects, Spectre code makes up 47% of the projects total source code. The increasing amount of source code compiled and the increasing amount of target code generated in such projects results in several disruptions of the day-to-day workflow.
- Spectre Compiler compilation Times The Spectre compiler is more or less I/O bound. However, due to the number of target language files generated, the compilation (well actually the I/O times) increase. I recall that it was 2 minutes a few months ago for the <name redacted> project. As the number of generated output files increased, the compilation time increased to 3 minutes now. In my book, compilation times beyond 3 minutes are disrupting the day-to-day workflow.
- Visual Studio's IntelliSense The Spectre Compiler writes all the output files (if the program is well formed). Visual Studio's IntelliSense consequently considers all these files as modified and regenerates the IntelliSense database. More precisely, it bugs out on this task most of the time. This can be fixed by closing and re-opening Visual Studio, which is - again - disrupting the day-to-day workflow.