mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 15:14:02 -05:00
This PR adds a detailed Configuration.md document that comprehensively explains the Compiler Explorer configuration system. It covers: - Configuration file structure and hierarchical loading - Property types and automatic conversions - List separators and specialized formats - Group inheritance and compiler configuration - Variable substitution mechanisms - Advanced features like remote compilers and property debugging Additionally, it updates all related documentation to reference this central document for configuration details, reducing duplication and ensuring consistency. This document will serve as the foundation for future configuration system improvements by providing clear documentation of the current implementation.
2.0 KiB
2.0 KiB
This is an overview of what building and adding a compiler to the site looks like, using GCC as an example, but note that the process is similar for all other types of compilers.
- Build GCC versions with the relevant magic. We build all our own GCCs using Docker from this repo
- For non-trunk builds we manually run the docker image. For trunk dailies we have a cron job that runs a script to build them.
- Built tarballs are uploaded to S3, and installed by our custom tool from a YAML configuration file
- The installation puts compilers on a shared NFS drive at
/opt/compiler-explorer/gcc-some-version/ - We then configure CE to look for the compiler here. See Configuration.md for details on the configuration system.
- If we need to customise the way we execute the compiler and/or display the results, then we can change the "driver" for the compiler. Usually we can just override a few aspects of the driver, relying on the defaults from the base driver.
- Any UI changes are a bit more work.
More info still in Adding a Compiler, and if you can bear listening to Matt, here's a talk about some behind the scenes stuff, with slides online.