Repository navigation
v0.12.0 — i686 and wasm32 legs: gcc.yml arch x86, and emscripten.yml
Two 32-bit targets, for the code that takes size_t to be 64 bits, alignof(std::int64_t) to be 8, or __int128 to exist. Every leg before this one builds for a 64-bit target, where none of that shows. The two targets fail differently, so each catches what the other cannot (#57, #58).
| Target | Workflow | size_t |
alignof(std::int64_t) in a class |
__int128 |
Tests run under |
|---|---|---|---|---|---|
| i686 | gcc.yml with arch: x86 |
unsigned int |
4 | no | the runner, natively |
| wasm32 | emscripten.yml |
unsigned long |
8 | yes | node |
gcc.yml takes arch
arch: x86 does four things:
- adds
-m32; - installs the GCC's multilib through
install-gcc's newmultilibinput; - builds the dependencies from the new
x86-linux-gccoverlay triplet; - ignores
vcpkg_triplet, since the leg has its own triplet.
The trunk snapshot has no 32-bit runtime, so an i686 ladder names released rungs only. The default, x64, builds exactly as before.
emscripten.yml is new
It takes one Emscripten release, emsdk_version (default 6.0.12), rather than a ladder, and builds Debug by default. Its dependencies come from wasm32-emscripten-eh, vcpkg's community triplet with exceptions compiled in, and node from the emsdk runs the tests. It accepts the same vcpkg_features, cxx_flags, scan_for_modules, debug_flags and cmake_args as the other ladders, plus linker_flags, whose default turns on memory growth, an 8 MB stack and EXIT_RUNTIME. Its gate is <job> / all.
To add both legs
i686:
uses: rhalbersma/cpp-ci/.github/workflows/gcc.yml@<sha> # v0.12.0
with:
arch: x86
tiers: stable
build_types: Debug
wasm32:
uses: rhalbersma/cpp-ci/.github/workflows/emscripten.yml@<sha> # v0.12.0No existing check names change
The ladders resolve as in v0.11.1. gcc.yml's vcpkg cache key now carries the arch, so the first run after the bump rebuilds the dependencies once. The internal actions are repinned to #57's commit. Both legs ran green on xstd-ints (rhalbersma/xstd-ints#284) and xstd-misc (rhalbersma/xstd-misc#39) before this tag.