feat: HTTP registry, app/bench harnesses, and DWARF #line maps
Ship QUALITY_PLAN sessions 31–33: fetchable package index URLs, showcase app and micro/nexus benchmarks, and debugger-friendly C codegen. - Registry: BUX_REGISTRY accepts http(s) URLs (curl/wget → ~/.bux/cache) - E.2: make test-apps smoke for nexus/boko/simpledb/jwt-pitbul - E.5: benches/micro + C/Nim/Zig twins; make bench-nexus (wrk) - E.4: HIR locs → #line .bux; default -O0 -g; --release -O2; make test-dwarf
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
## Nim twin of benches/c/fib.c — recursive fib(30)
|
||||
import std/[times, strformat]
|
||||
|
||||
proc fib(n: int): int =
|
||||
if n <= 1: return n
|
||||
fib(n - 1) + fib(n - 2)
|
||||
|
||||
proc nowUs(): int64 =
|
||||
int64(epochTime() * 1_000_000.0)
|
||||
|
||||
discard fib(20)
|
||||
let t0 = nowUs()
|
||||
let r = fib(30)
|
||||
let t1 = nowUs()
|
||||
if r < 0: quit(1)
|
||||
echo &"BENCH fib30 iters=1 total_us={t1 - t0} us_per_op={t1 - t0}"
|
||||
@@ -0,0 +1,15 @@
|
||||
## Nim twin of benches/c/int_loop.c — 1e6 integer arithmetic loop
|
||||
import std/[times, strformat]
|
||||
|
||||
proc nowUs(): int64 =
|
||||
int64(epochTime() * 1_000_000.0)
|
||||
|
||||
const iters = 1_000_000
|
||||
var acc = 0
|
||||
let t0 = nowUs()
|
||||
for i in 0 ..< iters:
|
||||
acc = acc + i * 3 - 1
|
||||
let t1 = nowUs()
|
||||
if acc == 0 and iters > 0: quit(1)
|
||||
let total = t1 - t0
|
||||
echo &"BENCH int_loop iters={iters} total_us={total} us_per_op={total div iters}"
|
||||
Reference in New Issue
Block a user