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:
2026-07-19 22:46:45 +03:00
parent 53b43b0f79
commit eb81856565
26 changed files with 983 additions and 52 deletions
+11
View File
@@ -191,10 +191,20 @@ proc cmpOpToLir(op: TokenKind): LirKind =
proc lowerExpr(ctx: var LowerToLirCtx, node: HirNode): LirValue
proc lowerStmt(ctx: var LowerToLirCtx, node: HirNode)
proc setSourceLoc(ctx: var LowerToLirCtx, node: HirNode) =
## Stamp LIR instructions with HIR source locations for #line / DWARF.
if node == nil: return
if node.loc.line > 0:
ctx.builder.commentLine = int(node.loc.line)
if node.loc.file.len > 0:
ctx.builder.commentFile = node.loc.file
ctx.currentFile = node.loc.file
# ── Lowering: Expressions → LirValue ──
proc lowerExpr(ctx: var LowerToLirCtx, node: HirNode): LirValue =
if node == nil: return lirInt(0)
setSourceLoc(ctx, node)
template b: var LirBuilder = ctx.builder
case node.kind
@@ -623,6 +633,7 @@ proc buildLval(ctx: var LowerToLirCtx, n: HirNode): string =
proc lowerStmt(ctx: var LowerToLirCtx, node: HirNode) =
if node == nil: return
setSourceLoc(ctx, node)
template b: var LirBuilder = ctx.builder
case node.kind