|
10 | 10 | "A cell is one CI job. Inside it the harness sweeps every engine x variant x", |
11 | 11 | "scenario, so those axes are per-cell lists rather than more jobs: they share a", |
12 | 12 | "checkout, a toolchain install and a fixture, and splitting them would multiply", |
13 | | - "runner minutes without adding a single measurement." |
| 13 | + "runner minutes without adding a single measurement.", |
| 14 | + "meson is deliberately absent, not missing: meson 1.10.2 has no way to declare a translation unit to be a module INTERFACE, so every module cell was an `unavailable` row. An engine that cannot express the thing being measured is not a comparison point, and keeping it produced one honest row and five empty ones per report." |
14 | 15 | ], |
15 | | - |
16 | 16 | "baseline": "cmake", |
17 | 17 | "_baseline_note": "Every ratio in every report is against cmake. See SPEC.md S2.", |
18 | | - |
19 | 18 | "axes": { |
20 | | - "os": ["linux", "macos", "windows"], |
21 | | - "toolchain": ["gcc", "clang", "msvc"], |
22 | | - "engine": ["mcpp", "cmake", "xmake", "meson", "bazel"], |
23 | | - "project": ["fixture", "mcpp", "xlings"], |
24 | | - "variant": ["headers", "modules", "modules-impl"], |
25 | | - "scenario": ["cold", "noop", "touch-hub", "touch-leaf", "edit-body", "edit-comment"] |
| 19 | + "os": [ |
| 20 | + "linux", |
| 21 | + "macos", |
| 22 | + "windows" |
| 23 | + ], |
| 24 | + "toolchain": [ |
| 25 | + "gcc", |
| 26 | + "clang", |
| 27 | + "msvc" |
| 28 | + ], |
| 29 | + "engine": [ |
| 30 | + "mcpp", |
| 31 | + "cmake", |
| 32 | + "xmake", |
| 33 | + "bazel" |
| 34 | + ], |
| 35 | + "project": [ |
| 36 | + "fixture", |
| 37 | + "mcpp", |
| 38 | + "xlings" |
| 39 | + ], |
| 40 | + "variant": [ |
| 41 | + "headers", |
| 42 | + "modules", |
| 43 | + "modules-impl" |
| 44 | + ], |
| 45 | + "scenario": [ |
| 46 | + "cold", |
| 47 | + "noop", |
| 48 | + "touch-hub", |
| 49 | + "touch-leaf", |
| 50 | + "edit-body", |
| 51 | + "edit-comment" |
| 52 | + ] |
26 | 53 | }, |
27 | | - |
28 | 54 | "runners": { |
29 | | - "linux": "ubuntu-24.04", |
30 | | - "macos": "macos-14", |
| 55 | + "linux": "ubuntu-24.04", |
| 56 | + "macos": "macos-14", |
31 | 57 | "windows": "windows-2022" |
32 | 58 | }, |
33 | | - |
34 | 59 | "cells": [ |
35 | 60 | { |
36 | | - "os": "linux", "toolchain": "gcc", "project": "fixture", |
37 | | - "engines": "mcpp,cmake,xmake,meson", |
| 61 | + "os": "linux", |
| 62 | + "toolchain": "gcc", |
| 63 | + "project": "fixture", |
| 64 | + "engines": "mcpp,cmake,xmake", |
38 | 65 | "variants": "headers,modules,modules-impl", |
39 | 66 | "scenarios": "cold,noop,touch-hub,touch-leaf,edit-body,edit-comment", |
40 | 67 | "preset": "standard", |
41 | 68 | "note": "bazel omitted: its module support requires a clang driver (see the bazel engine's unsupported_reason)" |
42 | 69 | }, |
43 | 70 | { |
44 | | - "os": "linux", "toolchain": "clang", "project": "fixture", |
45 | | - "engines": "mcpp,cmake,xmake,meson,bazel", |
| 71 | + "os": "linux", |
| 72 | + "toolchain": "clang", |
| 73 | + "project": "fixture", |
| 74 | + "engines": "mcpp,cmake,xmake,bazel", |
46 | 75 | "variants": "headers,modules,modules-impl", |
47 | 76 | "scenarios": "cold,noop,touch-hub,touch-leaf,edit-body,edit-comment", |
48 | 77 | "preset": "standard" |
49 | 78 | }, |
50 | 79 | { |
51 | | - "os": "macos", "toolchain": "clang", "project": "fixture", |
52 | | - "engines": "mcpp,cmake,xmake,meson,bazel", |
| 80 | + "os": "macos", |
| 81 | + "toolchain": "clang", |
| 82 | + "project": "fixture", |
| 83 | + "engines": "mcpp,cmake,xmake,bazel", |
53 | 84 | "variants": "headers,modules,modules-impl", |
54 | 85 | "scenarios": "cold,noop,touch-hub,touch-leaf,edit-body,edit-comment", |
55 | 86 | "preset": "standard" |
56 | 87 | }, |
57 | 88 | { |
58 | | - "os": "windows", "toolchain": "clang", "project": "fixture", |
59 | | - "engines": "mcpp,cmake,xmake,meson,bazel", |
| 89 | + "os": "windows", |
| 90 | + "toolchain": "clang", |
| 91 | + "project": "fixture", |
| 92 | + "engines": "mcpp,cmake,xmake,bazel", |
60 | 93 | "variants": "headers,modules,modules-impl", |
61 | 94 | "scenarios": "cold,noop,touch-hub,touch-leaf,edit-body,edit-comment", |
62 | 95 | "preset": "standard" |
63 | 96 | }, |
64 | 97 | { |
65 | | - "os": "windows", "toolchain": "msvc", "project": "fixture", |
66 | | - "engines": "mcpp,cmake,xmake,meson", |
| 98 | + "os": "windows", |
| 99 | + "toolchain": "msvc", |
| 100 | + "project": "fixture", |
| 101 | + "engines": "mcpp,cmake,xmake", |
67 | 102 | "variants": "headers,modules,modules-impl", |
68 | 103 | "scenarios": "cold,noop,touch-hub,touch-leaf,edit-body,edit-comment", |
69 | 104 | "preset": "standard", |
70 | 105 | "note": "bazel omitted: same clang-driver requirement as the gcc cell" |
71 | 106 | }, |
72 | | - |
73 | 107 | { |
74 | | - "os": "linux", "toolchain": "gcc", "project": "mcpp", |
75 | | - "engines": "mcpp,cmake,xmake,meson", |
| 108 | + "os": "linux", |
| 109 | + "toolchain": "gcc", |
| 110 | + "project": "mcpp", |
| 111 | + "engines": "mcpp,cmake,xmake", |
76 | 112 | "variants": "native", |
77 | 113 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment", |
78 | 114 | "note": "touch-leaf omitted: a real tree has no unit nobody imports that is also stable enough to name" |
79 | 115 | }, |
80 | 116 | { |
81 | | - "os": "linux", "toolchain": "clang", "project": "mcpp", |
82 | | - "engines": "mcpp,cmake,xmake,meson,bazel", |
| 117 | + "os": "linux", |
| 118 | + "toolchain": "clang", |
| 119 | + "project": "mcpp", |
| 120 | + "engines": "mcpp,cmake,xmake,bazel", |
83 | 121 | "variants": "native", |
84 | 122 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment" |
85 | 123 | }, |
86 | 124 | { |
87 | | - "os": "macos", "toolchain": "clang", "project": "mcpp", |
88 | | - "engines": "mcpp,cmake,xmake,meson,bazel", |
| 125 | + "os": "macos", |
| 126 | + "toolchain": "clang", |
| 127 | + "project": "mcpp", |
| 128 | + "engines": "mcpp,cmake,xmake,bazel", |
89 | 129 | "variants": "native", |
90 | 130 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment" |
91 | 131 | }, |
92 | 132 | { |
93 | | - "os": "windows", "toolchain": "clang", "project": "mcpp", |
94 | | - "engines": "mcpp,cmake,xmake,meson,bazel", |
| 133 | + "os": "windows", |
| 134 | + "toolchain": "clang", |
| 135 | + "project": "mcpp", |
| 136 | + "engines": "mcpp,cmake,xmake,bazel", |
95 | 137 | "variants": "native", |
96 | 138 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment" |
97 | 139 | }, |
98 | | - |
99 | 140 | { |
100 | | - "os": "linux", "toolchain": "gcc", "project": "xlings", |
101 | | - "engines": "mcpp,cmake", |
| 141 | + "os": "linux", |
| 142 | + "toolchain": "gcc", |
| 143 | + "project": "xlings", |
| 144 | + "engines": "mcpp,cmake,xmake", |
102 | 145 | "variants": "native", |
103 | 146 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment", |
104 | 147 | "note": "mcpp-vs-mcpp is the point here (see projects/xlings/README.md); the cmake arm compiles all 110 units and is expected to stop at the link" |
105 | 148 | }, |
106 | 149 | { |
107 | | - "os": "linux", "toolchain": "clang", "project": "xlings", |
108 | | - "engines": "mcpp,cmake", |
| 150 | + "os": "linux", |
| 151 | + "toolchain": "clang", |
| 152 | + "project": "xlings", |
| 153 | + "engines": "mcpp,cmake,xmake", |
109 | 154 | "variants": "native", |
110 | 155 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment" |
111 | 156 | }, |
112 | 157 | { |
113 | | - "os": "macos", "toolchain": "clang", "project": "xlings", |
114 | | - "engines": "mcpp,cmake", |
| 158 | + "os": "macos", |
| 159 | + "toolchain": "clang", |
| 160 | + "project": "xlings", |
| 161 | + "engines": "mcpp,cmake,xmake", |
115 | 162 | "variants": "native", |
116 | 163 | "scenarios": "cold,noop,touch-hub,edit-body,edit-comment" |
117 | 164 | } |
118 | 165 | ], |
119 | | - |
120 | 166 | "excluded": [ |
121 | 167 | { |
122 | | - "os": "macos", "toolchain": "gcc", |
| 168 | + "os": "macos", |
| 169 | + "toolchain": "gcc", |
123 | 170 | "reason": "no gcc payload exists for macOS in mcpp's registry, and a Homebrew gcc would make the cell a comparison of distributions rather than of engines" |
124 | 171 | }, |
125 | 172 | { |
126 | | - "os": "windows", "toolchain": "gcc", |
| 173 | + "os": "windows", |
| 174 | + "toolchain": "gcc", |
127 | 175 | "reason": "mcpp supports x86_64-windows-gnu, but the other four engines would each have to be pointed at an msys2 gcc that mcpp does not use. KNOWN GAP, not a decision: the cell is meaningful and is simply not wired up yet" |
128 | 176 | }, |
129 | 177 | { |
130 | | - "os": "linux", "toolchain": "msvc", |
| 178 | + "os": "linux", |
| 179 | + "toolchain": "msvc", |
131 | 180 | "reason": "msvc is Windows-only" |
132 | 181 | }, |
133 | 182 | { |
134 | | - "os": "macos", "toolchain": "msvc", |
| 183 | + "os": "macos", |
| 184 | + "toolchain": "msvc", |
135 | 185 | "reason": "msvc is Windows-only" |
136 | 186 | }, |
137 | 187 | { |
138 | | - "os": "windows", "toolchain": "msvc", "project": "mcpp", |
| 188 | + "os": "windows", |
| 189 | + "toolchain": "msvc", |
| 190 | + "project": "mcpp", |
139 | 191 | "reason": "mcpp's own schedule policy reports msvc as unmeasured (src/build/schedule/policy.cppm), so the mcpp arm would be measuring a shape nobody has validated" |
140 | 192 | }, |
141 | 193 | { |
142 | | - "os": "windows", "toolchain": "msvc", "project": "xlings", |
| 194 | + "os": "windows", |
| 195 | + "toolchain": "msvc", |
| 196 | + "project": "xlings", |
143 | 197 | "reason": "same as the mcpp project on msvc" |
144 | 198 | }, |
145 | 199 | { |
146 | | - "os": "windows", "toolchain": "clang", "project": "xlings", |
| 200 | + "os": "windows", |
| 201 | + "toolchain": "clang", |
| 202 | + "project": "xlings", |
147 | 203 | "reason": "xlings has not been shown to build on Windows at all. KNOWN GAP: verify the plain build first, then add the cell — a bench cell that cannot build is not a measurement" |
| 204 | + }, |
| 205 | + { |
| 206 | + "os": "*", |
| 207 | + "toolchain": "clang", |
| 208 | + "project": "*", |
| 209 | + "engine": "xmake", |
| 210 | + "reason": "KNOWN GAP, xmake+clang only: xmake locates libc++'s std module through lib/libc++.modules.json, which mcpp's llvm payload does not ship (it has share/libc++/v1/std.cppm). xmake warns 'std and std.compat modules not found' and build.c++.modules.std degrades SILENTLY — the arm would then measure a project without `import std;` against ones with it. The cell still runs; read its note before quoting the number" |
148 | 211 | } |
149 | 212 | ] |
150 | 213 | } |
0 commit comments