Files
AILang/bench/baseline_compile.json
T
Brummel c5eca7e91d bench: re-ratify compile_check baseline (closes #45)
Re-baseline bench/baseline_compile.json, last ratified 2026-05-15
(20add51, mut.4-tidy). check_ms shifted +35..47% uniformly across all
12 fixtures (~1.8-3.3ms -> ~2.4-4.7ms); build_O0_ms rose ~10%
(90->100ms) but stayed inside its 20% tolerance and so never tripped.

RATIFY, not a regression. The decisive signal is that the check_ms
drift is *uniform* across every fixture regardless of complexity
(hello +35%, nested_pat +35%). Fixture-independent drift means the
cost lives in shared per-invocation work, not in any fixture-specific
checker path. Two concrete shared-cost growths fully account for it:

  - examples/prelude.ail grew 116 -> 153 lines (+32%); every
    `ail check` parses and typechecks the full prelude.
  - the kernel_stub module is now injected alongside prelude on every
    check (landed in raw-buf prep.3, 9339279, #33) — a whole extra
    module parsed + typechecked per invocation.

Both are real modules added by wanted features, not a quadratic
blow-up. There is no fixable type-checker regression hiding here; the
+0.8ms is the parse+typecheck cost of more shared source. The throughput
baseline (bench/baseline.json) was already re-ratified 2026-05-28
(de4399d); this brings the compile baseline back in sync.

Corrects the record: the #44 cycle-close audit body (7321826) wrongly
attributed the compile_check exit-1 to transient machine load. main is
sacrosanct so 7321826 cannot be amended; #45 and this commit are the
forward correction.

Verified: compile_check.py -n5 -> 24 metrics, 0 regressed, 24 stable.
2026-05-30 15:31:04 +02:00

107 lines
2.5 KiB
JSON

{
"version": 1,
"captured": "2026-05-30",
"captured_via": "bench/compile_check.py",
"note": "Compile-time bench. `check_ms` is `ail check FILE`; `build_O0_ms` is `ail build --opt=-O0 FILE`. Wall-clock includes subprocess spawn (~5-10 ms on Linux) and, for build, the clang link step. Tolerances are tuned for noise on a quiet developer machine, not as the language correctness bar.",
"check_ms": {
"hello": {
"baseline_ms": 2.41,
"tolerance_pct": 25
},
"list_map_poly": {
"baseline_ms": 2.74,
"tolerance_pct": 25
},
"local_rec_capture": {
"baseline_ms": 2.64,
"tolerance_pct": 25
},
"borrow_own_demo": {
"baseline_ms": 2.65,
"tolerance_pct": 25
},
"nested_pat": {
"baseline_ms": 4.66,
"tolerance_pct": 25
},
"bench_list_sum": {
"baseline_ms": 2.75,
"tolerance_pct": 25
},
"bench_tree_walk": {
"baseline_ms": 2.69,
"tolerance_pct": 25
},
"bench_closure_chain": {
"baseline_ms": 2.66,
"tolerance_pct": 25
},
"bench_hof_pipeline": {
"baseline_ms": 2.81,
"tolerance_pct": 25
},
"bench_compute_intsum": {
"baseline_ms": 2.61,
"tolerance_pct": 25
},
"bench_compute_collatz": {
"baseline_ms": 2.62,
"tolerance_pct": 25
},
"bench_list_sum_explicit": {
"baseline_ms": 2.82,
"tolerance_pct": 25
}
},
"build_O0_ms": {
"hello": {
"baseline_ms": 100.07,
"tolerance_pct": 20
},
"list_map_poly": {
"baseline_ms": 103.14,
"tolerance_pct": 20
},
"local_rec_capture": {
"baseline_ms": 102.03,
"tolerance_pct": 20
},
"borrow_own_demo": {
"baseline_ms": 102.71,
"tolerance_pct": 20
},
"nested_pat": {
"baseline_ms": 107.33,
"tolerance_pct": 20
},
"bench_list_sum": {
"baseline_ms": 104.09,
"tolerance_pct": 20
},
"bench_tree_walk": {
"baseline_ms": 102.01,
"tolerance_pct": 20
},
"bench_closure_chain": {
"baseline_ms": 103.84,
"tolerance_pct": 20
},
"bench_hof_pipeline": {
"baseline_ms": 103.74,
"tolerance_pct": 20
},
"bench_compute_intsum": {
"baseline_ms": 101.15,
"tolerance_pct": 20
},
"bench_compute_collatz": {
"baseline_ms": 102.45,
"tolerance_pct": 20
},
"bench_list_sum_explicit": {
"baseline_ms": 103.0,
"tolerance_pct": 20
}
}
}