CI: Add more legacy compiler tests and move to scheduled workflow #1700
CI: Add more legacy compiler tests and move to scheduled workflow #1700mkannwischer wants to merge 2 commits into
Conversation
bbe637f to
17b9957
Compare
|
For a long time I tried many other ways to install such old compilers. The main reason for not using nix was the fear that cache entries in the nix binary cache will eventually disappear forcing our CI to build the compilers from source. So far we have not seen that, so I think we can defer solving this problem until it actually materializes. There is some on going discussion on garbage collecting in the nix binary cache as their S3 bill is apparently quite high, so we may eventually be affected. |
e16878f to
ca1b51f
Compare
Our compiler tests and constant-time tests have been steadily growing over time which is not sustainable in the medium term. This commit solves that by splitting the set up of compiler versions into two 1) Regular compilers - tested as before on every PR. These are compilers that are supported by the most recent nixpkgs release. 2) Legacy compilers - tested in a scheduled job or when `legacy-compiler-tests` label is added to the PR. Currently the job is scheduled to run daily, but in the long term we may want to switch it to weekly. Legacy compiler shells and overlay overrides live in nix/legacy/, with their own nixpkgs revisions pinned via fetchTarball. The main flake.lock therefore stays free of legacy inputs. This allows us to extend comiler coverage by gcc 6, 8, 9, 10, zig 0.10+0.11, and clang 6..13 for both CT and compiler tests. My expectation is that the legacy compilers only get changed whenever nixpkgs drops a compiler version. Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
ca1b51f to
a4c8b16
Compare
Works around the following error we have been seeing for
valgrind on aarch64 when compiling mlkem-native with
clang8-13:
vex: priv/host_arm64_defs.c:2832 (genSpill_ARM64):
Assertion `offsetB < 4096' failed.
Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
CBMC Results (ML-KEM-1024)Full Results (191 proofs)
|
CBMC Results (ML-KEM-768)Full Results (191 proofs)
|
CBMC Results (ML-KEM-512)Full Results (191 proofs)
|
Our compiler tests and constant-time tests have been steadily
growing over time which is not sustainable in the medium term.
This commit solves that by splitting the set up of compiler versions
into two
Regular compilers - tested as before on every PR. These are compilers
that are supported by the most recent nixpkgs release.
Legacy compilers - tested in a scheduled job or when
legacy-compiler-testslabel is added to the PR. Currently thejob is scheduled to run daily, but in the long term we may want
to switch it to weekly.
Legacy compiler shells and overlay overrides live in nix/legacy/, with
their own nixpkgs revisions pinned via fetchTarball.
The main flake.lock therefore stays free of legacy inputs.
This allows us to extend comiler coverage by gcc 6, 8, 9, 10, zig 0.10 +0.11,
and clang 6..13 for both CT and compiler tests.
My expectation is that the legacy compilers only get changed
whenever nixpkgs drops a compiler version.
nixpkgsfor compiler tests and constant-time tests #1557