XRPLF / rippled

Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++
https://xrpl.org
ISC License
4.53k stars 1.47k forks source link

In .github/workflow, bump gcc version to 12 (or later) and clang version to 16 (or later) #5153

Open Bronek opened 1 month ago

Bronek commented 1 month ago

Motivation

We cannot instantiate the instrumentation macros when using clang compiler version older than 16. Currently our workflow is using clang 14 (and gcc 11).

Even though in principle it is possible to create a new job which would instantiate instrumentation macros, by means of

  1. installing the required compiler version inside the workflow, then
  2. building all the dependencies with conan, and finally
  3. building rippled with the added -Dvoidstar=ON option

... the steps 1. and 2. would add an unnecessary load to the project actions. It is better to re-use the existing dependencies job in nix.yml, but for this to be useful we need to upgrade the clang compiler to version no older than 16. While we are at it, we can just as well upgrade gcc to version 12.

Since this would most likely involve upgrade of the build container to ubuntu 24.04 (Noble), we could just as well upgrade to clang-18 and gcc-14. I would suggest not, for parity with Apple macOS 15 (where clang-16 is the most recent version available) and Debian 12 (where clang-16 and gcc-12 are the most recent versions available)