Tool information
-
Tool names: defacto C++ compilers: GCC and Clang
-
Add or update? Add
-
Desired versions: Latest version available in standard package repositories. Currently these are:
| Compiler |
Version |
OS |
Package Manager(s) |
| GCC |
9 |
all |
apt, Brew, MacPorts, and MSYS2 |
| Clang |
8 |
Ubuntu-19.04 |
apt |
| Clang |
9 |
macOS and Windows |
Brew and Chocolatey |
-
Approximate size: Clang depends on GCC (that's why it often makes sense to simply install both; in addition to their technical differences). Typically the combo is a couple GB on Windows and smaller on macOS and Linux.
-
Brief description of packages: These C++ compilers are used to build literally every C++ autotools/cmake project out there (tens of thousands of open-source applications and tools; perhaps more on GitHub).
The main goal of this request is to allow the vast majority of open source C/C++ packages to be ./configure'd and built with either compiler (assuming the user pulls in any package-specific dependencies) "out of the box".
-
Homepages: GCC - https://gcc.gnu.org/, Clang - https://clang.llvm.org/
Virtual environments affected
- ☑️ macOS 10.15
- ☑️Ubuntu 16.04 LTS
- ☑️ Ubuntu 18.04 LTS
- ☑️ Windows Server 2016 R2
- ☑️ Windows Server 2019
Can they be installed during the build?
Yes. I'm currently installing the following in my workflow:
| Compilers |
OS |
Package Manager |
Time |
| GCC and Clang |
Ubuntu |
apt |
< 60s |
| GCC |
macOS |
Brew and MacPorts |
between 3 min and 5 min |
| GCC and Clang |
Windows |
MSYS2's pacman |
between 8 min and 12 min |
Compiling my application takes less time than installing these.
Because of this excessive time and resource usage, I made use of GitHub's new cache feature available in CI workflows, however, the cache limit is (currently) too small to save most of these development stacks.
Because it seems absurd that GitHub's cache size cannot accommodate C++ "hello world", I flagged
it here to which GitHub staff member @chrispat suggested that I shouldn't be caching C++ dependencies and instead they should be available in the baseline VMs.
Are you willing to submit a PR?
Yes
Tool information
Tool names: defacto C++ compilers: GCC and Clang
Add or update? Add
Desired versions: Latest version available in standard package repositories. Currently these are:
Approximate size: Clang depends on GCC (that's why it often makes sense to simply install both; in addition to their technical differences). Typically the combo is a couple GB on Windows and smaller on macOS and Linux.
Brief description of packages: These C++ compilers are used to build literally every C++ autotools/cmake project out there (tens of thousands of open-source applications and tools; perhaps more on GitHub).
The main goal of this request is to allow the vast majority of open source C/C++ packages to be ./configure'd and built with either compiler (assuming the user pulls in any package-specific dependencies) "out of the box".
Homepages: GCC - https://gcc.gnu.org/, Clang - https://clang.llvm.org/
Virtual environments affected
Can they be installed during the build?
Yes. I'm currently installing the following in my workflow:
Compiling my application takes less time than installing these.
Because of this excessive time and resource usage, I made use of GitHub's new cache feature available in CI workflows, however, the cache limit is (currently) too small to save most of these development stacks.
Because it seems absurd that GitHub's cache size cannot accommodate C++ "hello world", I flagged
it here to which GitHub staff member @chrispat suggested that I shouldn't be caching C++ dependencies and instead they should be available in the baseline VMs.
Are you willing to submit a PR?
Yes