Campfire Boots
Three days ago I wrote that when Campfire builds — "and it will build, then break, then build again".
As of today, it builds for the first time.
| host | compiler | make build |
binary |
|---|---|---|---|
| macOS 25.5, arm64 | clang | 30.7 s | 4,363,384 bytes |
| Ubuntu 24.04, x86-64 | gcc 13.3 | 157 s | 5,664,624 bytes |
Zero C errors on both, a clean link on both, and both boot. / redirects
to /session/new redirects to /first_run, which is exactly what Rails
does with an empty database. The emit is 1,003 files and exit 0 — 111
warnings, no errors. Still no changes to Campfire's source, still no
sig/ directory, still not one .rbs file in the application. And no
stubs spliced: this is the tree as the transpiler actually produces it.
As to the differences in compile times, my linux box has clang 18 alongside gcc 13, so the same main.c and the same command separate them cleanly:
- clang on both machines → 17.3 s vs 60.3 s = 3.5×, pure hardware.
- gcc vs clang on linux → 95.6 s vs 60.3 s = 1.59×, pure compiler.
Browse the output. Change the input and see what is produced.
That is item one of a six-item gate. Items two through six are the sockets — the part I actually care about — and they are barely started. This is a floor, not a finish.
Roundhouse is open source: dual-licensed MIT / Apache-2.0. Issues and discussion welcome.