Skip to content

Extended performance and safety results ​

These results cover August 1.0.0 on Apple M5, darwin 25.6.0 arm64, recorded 2026-10-07. August uses LLVM 23.1.2. Every measured program produced its expected result. These measurements apply to this host and workload.

Eight more C comparisons ​

Eight August and C programs

Median ms · shorter is better. Each panel starts at zero and scales to the implementations shown.

Compare

Floating-point loopCode and spec ↗

  • August2.16 ms
  • C1.62 ms

Labeled callsCode and spec ↗

  • August3.6 ms
  • C1.77 ms

List traversalCode and spec ↗

  • August1.97 ms
  • C1.18 ms

String processingCode and spec ↗

  • August9.46 ms
  • C2.74 ms

Map deletion and refillCode and spec ↗

  • August4.71 ms
  • C4.17 ms

Checked failuresCode and spec ↗

  • August1.57 ms
  • C1.12 ms

Record allocationCode and spec ↗

  • August10.89 ms
  • C2.06 ms

Task schedulingCode and spec ↗

  • August4.05 ms
  • C1.12 ms
Exact values and sample ranges
Eight August and C programs · ms
ProgramImplementationMedianMinimumMaximumSamples
Floating-point loopAugust2.162.072.4830
Floating-point loopC1.621.552.1630
Labeled callsAugust3.63.444.7330
Labeled callsC1.771.672.6330
List traversalAugust1.971.793.6230
List traversalC1.181.061.9130
String processingAugust9.468.9310.1530
String processingC2.742.443.0630
Map deletion and refillAugust4.714.545.4730
Map deletion and refillC4.174.014.9130
Checked failuresAugust1.571.42.1130
Checked failuresC1.120.951.7830
Record allocationAugust10.899.8512.9430
Record allocationC2.061.852.4430
Task schedulingAugust4.053.785.7530
Task schedulingC1.121.031.6830

Each value is the median of 30 fresh executable processes after 3 warmups. Order rotates within a separate measurement process. Timings include startup and exclude compilation. Both implementations use O2 without LTO or fast-math. Raw samples, build times and code sizes also include the same August programs compiled through the C migration backend.

Program and code/specWork per runAugustCAugust / C
Floating-point loop1,000,0002.16 ms1.62 ms1.33
Labeled function calls200,0003.60 ms1.77 ms2.04
List traversal100,0001.97 ms1.18 ms1.68
String processing20,0009.46 ms2.74 ms3.45
Map deletion and refill4,0004.71 ms4.17 ms1.13
Checked failures20,0001.57 ms1.12 ms1.40
Record allocation50,00010.89 ms2.06 ms5.28
Task scheduling2,0004.05 ms1.12 ms3.61

Ratios above 1 mean August took longer. The C references use concrete values and explicit cleanup. Their ordered map uses linear searches and their task case makes sequential calls; it does not pay for a scheduler. The string reference copies each part, while August also creates managed strings and a list. Records retain individually allocated values in both programs, with different layouts and lifetime tracking. The timings include these differences in the work performed. Read the C references before drawing conclusions.

The float program checks its exact accumulated binary-fraction result. The call loop carries each result into the next call. Lists and records retain data and read it afterward. Map deletion checks reinsertion order as well as values. Error cases verify both the sum and number of failures; task cases verify the joined sum. Their downloadable projects show code beside compiled specs in either indentation or braces style.

Safety qualification ​

Seed 877966, generator version 1, 256 generated vectors per exercise plus fixed edge cases. Both development and optimized LLVM builds ran the corpus.

ExerciseVectors executed across both buildsResult
arithmetic516Passed; both behavioral mutations detected
floating-point520Passed; both behavioral mutations detected
collections516Passed; both behavioral mutations detected
control-flow516Passed; both behavioral mutations detected
checked-bounds520Passed; both behavioral mutations detected
cleanup512Passed; both behavioral mutations detected
tasks512Passed; both behavioral mutations detected

The suite executed 3612 generated/edge-case checks, rejected 8 forbidden contracts, and detected 14 valid behavioral mutants. Each deliberately faulty program compiled and finished, but produced a wrong result or cleanup count compared with the independent oracle.

Additional circuitExecuted testsSkipped testsResult
source-mutations30passed
ownership-concurrency530passed
native-boundaries20passed
package-integrity370passed
http-boundaries60passed
sanitizersLLVM instrumentation + overflow negative control0passed

The full report includes original and faulty source units, inputs, expected and actual results, cleanup counts, compiler source identity and commands. Source mutation includes 5,000 parser cases and 1,000 checker cases. Core sanitizers instrument August LLVM accesses and the C runtime; they do not instrument the interiors of prebuilt foreign libraries or establish a whole-process leak proof.

The safety gym guide explains each gate and its limits. Contributor commands reproduce these reports or explore another seed. New-platform CI reports remain separate until that target completes qualification.

Source identity ​

Both reports use source SHA-256 b0908546922a5b6d88fe4bc0436629dc67331d96049d935989a9b85bef0a1b44. This fingerprints compiler, runtime, native platform inputs, package contracts, configuration, dependencies, test fixtures, generators and measured programs. These results describe that snapshot. Rerun the suite to measure changed code.

The world runs on language