Description
We do not currently document our minimum supported compiler versions (or which compilers we support in general), and that makes it hard to figure out which workarounds for older versions make sense.
For example, in #1395, I wanted to argue that we should always pass the flag to avoid the overhead of checking if it's supported because I suspected it's supported everywhere, but I couldn't make that argument without knowing this piece of information. It is also hard to create a CI step that tests older versions, if we don't know the range we target.
It would also make sense to have a policy around these; maybe we only bump requirements in minor versions?
I'm only certain about the Apple stuff, but I tried to do a bit of research:
Compiler | Minimum supported version | Year introduced |
---|---|---|
GCC | 3.2, same as required to build the minimum supported kernel version (3.2)? Or 5.1, same as currently required by the Linux kernel? Or base it on glibc version? Debian 11 has GCC 10 |
2002 / 2015 / 2022 / ... |
Clang | Current linux kernel requires 13.0.1. Debian 11 provides Clang 11.1.0 | 2022 / 2021 |
Apple Clang | 9.0.0 (LLVM 5.0.2) (Xcode 9.3, same as rustc ) |
2018 |
clang-cl |
? | ? |
MSVC | Visual Studio 14 (12 dropped in #1046) | 2015 |
Zig CC | ? | ? |
vxWorks | ? | ? |
qcc (QNX SDK) |
? | ? |
NVIDIA CUDA Compiler Driver | ? | ? |
Are we missing compilers in this table? Or is this the full list of compilers we support?
CC @ChrisDenton @NobodyXu WDYT?
CC @Darksonn, dunno if RfL uses cc-rs
, but if you do, what would be desired for you? (Both now and in the future).