eb81856565
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
17 lines
366 B
Nim
17 lines
366 B
Nim
## 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}"
|