@scriptc/compiler 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +145 -9
  2. package/dist/backend/cc.d.ts +23 -0
  3. package/dist/backend/cc.js +89 -0
  4. package/dist/backend/cc.js.map +1 -1
  5. package/dist/backend/emission/emit-async.js +2 -2
  6. package/dist/backend/emission/emit-async.js.map +1 -1
  7. package/dist/backend/emission/emit-exprs.js +37 -2
  8. package/dist/backend/emission/emit-exprs.js.map +1 -1
  9. package/dist/backend/emission/emit-shapes.js +3 -2
  10. package/dist/backend/emission/emit-shapes.js.map +1 -1
  11. package/dist/backend/emission/emit-walkers.js +7 -8
  12. package/dist/backend/emission/emit-walkers.js.map +1 -1
  13. package/dist/backend/emission/emitter.d.ts +1 -0
  14. package/dist/backend/emission/emitter.js +123 -3
  15. package/dist/backend/emission/emitter.js.map +1 -1
  16. package/dist/backend/llvm/emitter.js +198 -15
  17. package/dist/backend/llvm/emitter.js.map +1 -1
  18. package/dist/backend/llvm/shapes.js +1 -0
  19. package/dist/backend/llvm/shapes.js.map +1 -1
  20. package/dist/diagnostics/diagnostic.d.ts +25 -0
  21. package/dist/diagnostics/diagnostic.js +88 -2
  22. package/dist/diagnostics/diagnostic.js.map +1 -1
  23. package/dist/frontend/lib-exports.d.ts +16 -0
  24. package/dist/frontend/lib-exports.js +35 -0
  25. package/dist/frontend/lib-exports.js.map +1 -0
  26. package/dist/frontend/lowering/lib-boundary.js +76 -6
  27. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  28. package/dist/frontend/lowering/lower-builtins.d.ts +37 -4
  29. package/dist/frontend/lowering/lower-builtins.js +240 -6
  30. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  31. package/dist/frontend/lowering/lower-calls.js +124 -34
  32. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  33. package/dist/frontend/lowering/lower-classes.d.ts +34 -2
  34. package/dist/frontend/lowering/lower-classes.js +257 -34
  35. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  36. package/dist/frontend/lowering/lower-containers.js +25 -3
  37. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  38. package/dist/frontend/lowering/lower-exprs.d.ts +10 -0
  39. package/dist/frontend/lowering/lower-exprs.js +411 -10
  40. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  41. package/dist/frontend/lowering/lower-inspect.d.ts +16 -1
  42. package/dist/frontend/lowering/lower-inspect.js +132 -5
  43. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  44. package/dist/frontend/lowering/lower-island.js +25 -4
  45. package/dist/frontend/lowering/lower-island.js.map +1 -1
  46. package/dist/frontend/lowering/lower-mixins.js +4 -2
  47. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  48. package/dist/frontend/lowering/lower-modules.d.ts +6 -5
  49. package/dist/frontend/lowering/lower-modules.js +56 -18
  50. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  51. package/dist/frontend/lowering/lower-stmts.js +163 -0
  52. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  53. package/dist/frontend/lowering/lowerer.d.ts +72 -2
  54. package/dist/frontend/lowering/lowerer.js +339 -19
  55. package/dist/frontend/lowering/lowerer.js.map +1 -1
  56. package/dist/frontend/lowering/surfaces.d.ts +9 -2
  57. package/dist/frontend/lowering/surfaces.js +44 -7
  58. package/dist/frontend/lowering/surfaces.js.map +1 -1
  59. package/dist/frontend/npm-static-rewrite.d.ts +3 -0
  60. package/dist/frontend/npm-static-rewrite.js +677 -0
  61. package/dist/frontend/npm-static-rewrite.js.map +1 -0
  62. package/dist/frontend/npm-static.d.ts +8 -1
  63. package/dist/frontend/npm-static.js +159 -18
  64. package/dist/frontend/npm-static.js.map +1 -1
  65. package/dist/frontend/npm.js +2 -2
  66. package/dist/frontend/npm.js.map +1 -1
  67. package/dist/frontend/program.d.ts +6 -0
  68. package/dist/frontend/program.js +110 -22
  69. package/dist/frontend/program.js.map +1 -1
  70. package/dist/frontend/resolve.js +120 -5
  71. package/dist/frontend/resolve.js.map +1 -1
  72. package/dist/frontend/shared.d.ts +8 -2
  73. package/dist/frontend/shared.js +22 -6
  74. package/dist/frontend/shared.js.map +1 -1
  75. package/dist/frontend/ts7/checker.js +1 -1
  76. package/dist/frontend/ts7/checker.js.map +1 -1
  77. package/dist/frontend/types.d.ts +25 -1
  78. package/dist/frontend/types.js +121 -7
  79. package/dist/frontend/types.js.map +1 -1
  80. package/dist/index.d.ts +22 -0
  81. package/dist/index.js +256 -17
  82. package/dist/index.js.map +1 -1
  83. package/dist/ir/nodes.d.ts +86 -1
  84. package/dist/ir/nodes.js +183 -0
  85. package/dist/ir/nodes.js.map +1 -1
  86. package/dist/ir/validate.js +89 -6
  87. package/dist/ir/validate.js.map +1 -1
  88. package/dist/library/profile.d.ts +52 -0
  89. package/dist/library/profile.js +232 -0
  90. package/dist/library/profile.js.map +1 -0
  91. package/package.json +2 -2
  92. package/surface-manifest.json +67 -2
@@ -492,7 +492,8 @@ export class CEmitter {
492
492
  }
493
493
  if (this.unitInstances.size > 0)
494
494
  out.push("");
495
- out.push(...structDefs);
495
+ for (const line of structDefs)
496
+ out.push(line); // program-sized: never spread
496
497
  for (const [key, sym] of this.regexInstances) {
497
498
  // One immortal ScrRegex per (pattern, flags) literal, pointing at the
498
499
  // interned source/flags strings. `.bc` starts NULL: the runtime
@@ -561,9 +562,27 @@ export class CEmitter {
561
562
  // Type-directed JSON walkers (jsonStringify serializers, dynCheck
562
563
  // matchers/builders), interned per type during body emission above.
563
564
  if (this.walkerProtos.length > 0) {
564
- out.push("", ...this.walkerProtos, "", ...this.walkerDefs);
565
+ out.push("");
566
+ for (const line of this.walkerProtos)
567
+ out.push(line);
568
+ out.push("");
569
+ for (const line of this.walkerDefs)
570
+ out.push(line);
571
+ }
572
+ // Loop-appended, never spread: `body` scales with the PROGRAM (a large
573
+ // embedded graph emits hundreds of thousands of lines), and a spread
574
+ // push passes every line as a call argument — the engine's stack
575
+ // overflows long before memory matters.
576
+ out.push("");
577
+ for (const line of body)
578
+ out.push(line);
579
+ if (this.mod.lib !== undefined) {
580
+ // LIBRARY mode: no main(), no scr_init/scr_lib_init, no event
581
+ // loop — the profile-declared external symbols instead. Everything
582
+ // above is unchanged (still all internal linkage).
583
+ this.emitLibEntries(out, globals);
584
+ return out.join("\n");
565
585
  }
566
- out.push("", ...body);
567
586
  const refGlobals = globals.filter((g) => isRefCounted(g.type));
568
587
  // Interned function-value closures are IMMORTAL (rc == SIZE_MAX), so
569
588
  // an own-property table Object.defineProperties hung on one would
@@ -722,6 +741,107 @@ export class CEmitter {
722
741
  : [` return 0;`]), `}`, ``);
723
742
  return out.join("\n");
724
743
  }
744
+ /* ── library mode ─────────────────────────────────────────────────────
745
+ * The program TU's ONLY external-linkage definitions: the export-map
746
+ * wrappers plus the mode-provided init / sink-registration / reset /
747
+ * collect entries, all delegating their runtime halves to scr_library.c so
748
+ * both backends' emitted bodies are trivially identical. The init entry
749
+ * IS module-graph evaluation: full deterministic reset (program globals
750
+ * released and zeroed — run-once guards included — then the runtime's
751
+ * session reset), the error-vt interval stamps verbatim from today's
752
+ * main, then %main, then the escaped-exception check. */
753
+ emitLibEntries(out, globals) {
754
+ const lib = this.mod.lib;
755
+ const autoReset = lib.resultResetSymbol === null;
756
+ out.push(``, `/* ── library-mode entries (profile: ${lib.profileName}) ── */`, ``);
757
+ // Session reset of PROGRAM state: release every refcounted global and
758
+ // zero everything (the run-once module guards included), putting the
759
+ // program back at the not-yet-evaluated state.
760
+ out.push(`static void sc_lib_release_globals(void) {`);
761
+ for (const g of globals) {
762
+ const name = mangleGlobal(g.id);
763
+ if (isRefCounted(g.type)) {
764
+ out.push(` ${releaseCallC(g.type, name)}; ${name} = NULL; /* ${g.name} */`);
765
+ }
766
+ else if (g.type.kind === "bool") {
767
+ out.push(` ${name} = false; /* ${g.name} */`);
768
+ }
769
+ else {
770
+ out.push(` ${name} = 0; /* ${g.name} */`);
771
+ }
772
+ }
773
+ if (globals.length === 0)
774
+ out.push(` /* no globals */`);
775
+ out.push(`}`, ``);
776
+ out.push(`void ${lib.initSymbol}(void) {`, ` scr_library_entry(true); /* init always resets the result arena */`, ` sc_lib_release_globals();`, ` scr_library_reset();`, ...this.errorVtStampLines(), ...emitterVtStampLines(this), ` ${mangleFunction(this.mod.entry)}();`, ` scr_library_check_exc();`, `}`, ``, `void ${lib.sinkRegisterSymbol}(void (*fn)(void *ctx, const uint8_t *msg, size_t msg_len, uint64_t address), void *ctx) {`, ` scr_library_set_sink(fn, ctx);`, `}`, ``);
777
+ if (lib.resultResetSymbol !== null) {
778
+ out.push(`void ${lib.resultResetSymbol}(void) {`, ` scr_library_entry(false);`, ` scr_library_arena_reset();`, `}`, ``);
779
+ }
780
+ if (lib.collectSymbol !== null) {
781
+ out.push(`void ${lib.collectSymbol}(void) {`, ` scr_library_entry(false);`, ` scr_library_collect(); /* arena reset + a full cycle collection */`, `}`, ``);
782
+ }
783
+ for (const e of lib.exports) {
784
+ const params = [];
785
+ const args = [];
786
+ e.params.forEach((cls, i) => {
787
+ switch (cls) {
788
+ case "f64":
789
+ params.push(`double a${i}`);
790
+ args.push(`a${i}`);
791
+ break;
792
+ case "bool":
793
+ params.push(`uint8_t a${i}`);
794
+ args.push(`(a${i} != 0)`);
795
+ break;
796
+ case "u8":
797
+ params.push(`uint8_t a${i}`);
798
+ args.push(`(double)a${i}`);
799
+ break;
800
+ case "u32":
801
+ params.push(`uint32_t a${i}`);
802
+ args.push(`(double)a${i}`);
803
+ break;
804
+ case "i32":
805
+ params.push(`int32_t a${i}`);
806
+ args.push(`(double)a${i}`);
807
+ break;
808
+ case "string":
809
+ params.push(`const uint8_t *a${i}_ptr`, `size_t a${i}_len`);
810
+ args.push(`scr_library_str_in(a${i}_ptr, a${i}_len)`);
811
+ break;
812
+ case "bytes":
813
+ params.push(`const uint8_t *a${i}_ptr`, `size_t a${i}_len`);
814
+ args.push(`scr_library_bytes_in(a${i}_ptr, a${i}_len)`);
815
+ break;
816
+ }
817
+ });
818
+ if (e.returns === "string" || e.returns === "bytes") {
819
+ params.push(`const uint8_t **out`, `size_t *out_len`);
820
+ }
821
+ const retType = e.returns === "f64" ? "double" : e.returns === "bool" ? "uint8_t" : "void";
822
+ const call = `${mangleFunction(e.fnName)}(${args.join(", ")})`;
823
+ out.push(`${retType} ${e.symbol}(${params.length > 0 ? params.join(", ") : "void"}) {`);
824
+ out.push(` scr_library_entry(${autoReset ? "true" : "false"});`);
825
+ switch (e.returns) {
826
+ case "void":
827
+ out.push(` ${call};`, ` scr_library_check_exc();`);
828
+ break;
829
+ case "f64":
830
+ out.push(` double sc_r = ${call};`, ` scr_library_check_exc();`, ` return sc_r;`);
831
+ break;
832
+ case "bool":
833
+ out.push(` bool sc_r = ${call};`, ` scr_library_check_exc();`, ` return (uint8_t)(sc_r ? 1 : 0);`);
834
+ break;
835
+ case "string":
836
+ out.push(` ScrStr *sc_r = ${call};`, ` scr_library_check_exc();`, ` scr_library_str_out(sc_r, out, out_len);`);
837
+ break;
838
+ case "bytes":
839
+ out.push(` ScrBytes *sc_r = ${call};`, ` scr_library_check_exc();`, ` scr_library_bytes_out(sc_r, out, out_len);`);
840
+ break;
841
+ }
842
+ out.push(`}`, ``);
843
+ }
844
+ }
725
845
  emitAsyncScaffolding(out) {
726
846
  return emitAsyncScaffolding(this, out);
727
847
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/backend/emission/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/backend/emission/emitter.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,7 @@ const LIB_FN_SYMS = {
104
104
  "process.versionsOpenssl": "scr_process_versions_openssl",
105
105
  "process.umask": "scr_process_umask",
106
106
  "process.uptime": "scr_process_uptime",
107
+ "perf.now": "scr_perf_now",
107
108
  "process.availableMemory": "scr_available_memory",
108
109
  "process.constrainedMemory": "scr_constrained_memory",
109
110
  "process.cpuUser": "scr_cpu_user",
@@ -260,6 +261,14 @@ const LIB_FN_SYMS = {
260
261
  "sp.toString": "scr_sp_to_string",
261
262
  "sp.keyAt": "scr_sp_key_at",
262
263
  "sp.valAt": "scr_sp_val_at",
264
+ // node:querystring (scr_qs.c): unescape/stringify are plain generic
265
+ // calls (never throw; string results +1), and escape IS the component
266
+ // encoder (Node's qsEscape set equals encodeURIComponent's) so it emits
267
+ // the always-linked codec. qs.parse is special-cased in emitLibCall
268
+ // (the result dictionary's construction).
269
+ "qs.escape": "scr_str_encode_uri_component",
270
+ "qs.unescape": "scr_qs_unescape",
271
+ "qs.stringify": "scr_qs_stringify",
263
272
  // Timer handle bookkeeping (never throws; the comma-shaped chaining
264
273
  // forms are special-cased in emitLibCall).
265
274
  "timers.hasRef": "scr_timer_has_ref",
@@ -992,6 +1001,28 @@ class LlEmitter {
992
1001
  this.declare(`declare void @scr_loop_run()`);
993
1002
  this.declare(`declare zeroext i1 @scr_report_unhandled_rejections()`);
994
1003
  }
1004
+ // LIBRARY mode: the runtime entry points the generated library
1005
+ // symbols delegate to — declared before the extern block flushes.
1006
+ if (this.mod.lib !== undefined) {
1007
+ this.declare(`declare void @scr_library_entry(i1 zeroext)`);
1008
+ this.declare(`declare void @scr_library_reset()`);
1009
+ this.declare(`declare void @scr_library_check_exc()`);
1010
+ this.declare(`declare void @scr_library_set_sink(ptr, ptr)`);
1011
+ this.declare(`declare void @scr_library_arena_reset()`);
1012
+ this.declare(`declare void @scr_library_collect()`);
1013
+ if (this.mod.lib.exports.some((e) => e.params.includes("string"))) {
1014
+ this.declare(`declare ptr @scr_library_str_in(ptr, i64)`);
1015
+ }
1016
+ if (this.mod.lib.exports.some((e) => e.params.includes("bytes"))) {
1017
+ this.declare(`declare ptr @scr_library_bytes_in(ptr, i64)`);
1018
+ }
1019
+ if (this.mod.lib.exports.some((e) => e.returns === "string")) {
1020
+ this.declare(`declare void @scr_library_str_out(ptr, ptr, ptr)`);
1021
+ }
1022
+ if (this.mod.lib.exports.some((e) => e.returns === "bytes")) {
1023
+ this.declare(`declare void @scr_library_bytes_out(ptr, ptr, ptr)`);
1024
+ }
1025
+ }
995
1026
  // Helpers assemble BEFORE the declaration table flushes (they add
996
1027
  // write/abort declarations).
997
1028
  const helpers = this.helperDefs();
@@ -1142,13 +1173,20 @@ class LlEmitter {
1142
1173
  out.push(`declare void @scr_error_set_traced()`, ``);
1143
1174
  stamps.push(` call void @scr_error_set_traced()`);
1144
1175
  }
1145
- if (entryMayThrow || runsLoop) {
1176
+ if ((entryMayThrow || runsLoop) && this.mod.lib === undefined) {
1146
1177
  // Declared inline: the extern block already flushed (LLVM is
1147
1178
  // order-free — the scr_error_set_traced precedent). Only the
1148
1179
  // printer emits here (nothing else declares it); scr_exc_pending
1149
1180
  // and the loop entry points rode the Set before the flush.
1150
1181
  out.push(`declare void @scr_exc_print_uncaught()`, ``);
1151
1182
  }
1183
+ if (this.mod.lib !== undefined) {
1184
+ // LIBRARY mode: no @main — the profile-declared external
1185
+ // symbols instead, from the same IR facts the C emission consumes.
1186
+ out.push(...this.emitLibDefs(globals, globalReleaseLines, stamps));
1187
+ out.push(`attributes #0 = { sanitize_address }`, ``);
1188
+ return out.join("\n");
1189
+ }
1152
1190
  out.push(`define i32 @main(i32 %argc, ptr %argv) ${FN_ATTRS} {`, `entry:`, ` call void @scr_init()`, ...stamps,
1153
1191
  // Event-surface programs (signal/exit listeners) fill the loop's
1154
1192
  // nullable event hooks before %main — scr_events.c links only when
@@ -1199,16 +1237,116 @@ class LlEmitter {
1199
1237
  `attributes #0 = { sanitize_address }`, ``);
1200
1238
  return out.join("\n");
1201
1239
  }
1240
+ /** LIBRARY mode: the profile-declared external definitions — the
1241
+ * export-map wrappers plus init / sink-registration / reset / collect.
1242
+ * Plain `define` (not `define internal`) — the exact linkage distinction
1243
+ * that separates the executable lane's @main from everything else. The
1244
+ * bodies delegate every runtime half to scr_library.c, mirroring the C
1245
+ * emission line for line, so the two lanes are identical by
1246
+ * construction. */
1247
+ emitLibDefs(globals, globalReleaseLines, stamps) {
1248
+ const lib = this.mod.lib;
1249
+ const autoReset = lib.resultResetSymbol === null;
1250
+ const out = [``, `; ── library-mode entries (profile: ${lib.profileName}) ──`, ``];
1251
+ // The init entry: full deterministic reset-and-reevaluate. Program
1252
+ // globals release and zero first (run-once guards included), then the
1253
+ // runtime session reset, the error-vt interval stamps verbatim from
1254
+ // the executable main, %main itself, and the escaped-exception check.
1255
+ const zeroStores = globals.map((g) => {
1256
+ const ty = this.llType(g.type);
1257
+ const zero = ty === "double" ? f64Lit(0) : ty === "ptr" ? "null" : "false";
1258
+ return ` store ${ty} ${zero}, ptr @${mangleGlobal(g.id)} ; ${g.name}`;
1259
+ });
1260
+ out.push(`define void @${lib.initSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext true) ; init always resets the result arena`, ...globalReleaseLines("ci"), ...zeroStores, ` call void @scr_library_reset()`, ...stamps, ` call void @${mangleFunction(this.mod.entry)}()`, ` call void @scr_library_check_exc()`, ` ret void`, `}`, ``, `define void @${lib.sinkRegisterSymbol}(ptr %fn, ptr %ctx) ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_set_sink(ptr %fn, ptr %ctx)`, ` ret void`, `}`, ``);
1261
+ if (lib.resultResetSymbol !== null) {
1262
+ out.push(`define void @${lib.resultResetSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext false)`, ` call void @scr_library_arena_reset()`, ` ret void`, `}`, ``);
1263
+ }
1264
+ if (lib.collectSymbol !== null) {
1265
+ out.push(`define void @${lib.collectSymbol}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_library_entry(i1 zeroext false)`, ` call void @scr_library_collect() ; arena reset + a full cycle collection`, ` ret void`, `}`, ``);
1266
+ }
1267
+ for (const e of lib.exports) {
1268
+ const params = [];
1269
+ const body = [` call void @scr_library_entry(i1 zeroext ${autoReset ? "true" : "false"})`];
1270
+ const args = [];
1271
+ e.params.forEach((cls, i) => {
1272
+ switch (cls) {
1273
+ case "f64":
1274
+ params.push(`double %a${i}`);
1275
+ args.push(`double %a${i}`);
1276
+ break;
1277
+ case "bool":
1278
+ params.push(`i8 %a${i}`);
1279
+ body.push(` %c${i} = icmp ne i8 %a${i}, 0`);
1280
+ args.push(`i1 %c${i}`);
1281
+ break;
1282
+ case "u8":
1283
+ params.push(`i8 %a${i}`);
1284
+ body.push(` %c${i} = uitofp i8 %a${i} to double`);
1285
+ args.push(`double %c${i}`);
1286
+ break;
1287
+ case "u32":
1288
+ params.push(`i32 %a${i}`);
1289
+ body.push(` %c${i} = uitofp i32 %a${i} to double`);
1290
+ args.push(`double %c${i}`);
1291
+ break;
1292
+ case "i32":
1293
+ params.push(`i32 %a${i}`);
1294
+ body.push(` %c${i} = sitofp i32 %a${i} to double`);
1295
+ args.push(`double %c${i}`);
1296
+ break;
1297
+ case "string":
1298
+ params.push(`ptr %a${i}_ptr`, `i64 %a${i}_len`);
1299
+ body.push(` %c${i} = call ptr @scr_library_str_in(ptr %a${i}_ptr, i64 %a${i}_len)`);
1300
+ args.push(`ptr %c${i}`);
1301
+ break;
1302
+ case "bytes":
1303
+ params.push(`ptr %a${i}_ptr`, `i64 %a${i}_len`);
1304
+ body.push(` %c${i} = call ptr @scr_library_bytes_in(ptr %a${i}_ptr, i64 %a${i}_len)`);
1305
+ args.push(`ptr %c${i}`);
1306
+ break;
1307
+ }
1308
+ });
1309
+ if (e.returns === "string" || e.returns === "bytes") {
1310
+ params.push(`ptr %out`, `ptr %out_len`);
1311
+ }
1312
+ const target = `@${mangleFunction(e.fnName)}`;
1313
+ const callArgs = args.join(", ");
1314
+ let retType = "void";
1315
+ switch (e.returns) {
1316
+ case "void":
1317
+ body.push(` call void ${target}(${callArgs})`, ` call void @scr_library_check_exc()`, ` ret void`);
1318
+ break;
1319
+ case "f64":
1320
+ retType = "double";
1321
+ body.push(` %r = call double ${target}(${callArgs})`, ` call void @scr_library_check_exc()`, ` ret double %r`);
1322
+ break;
1323
+ case "bool":
1324
+ retType = "i8";
1325
+ body.push(` %r = call i1 ${target}(${callArgs})`, ` call void @scr_library_check_exc()`, ` %z = zext i1 %r to i8`, ` ret i8 %z`);
1326
+ break;
1327
+ case "string":
1328
+ body.push(` %r = call ptr ${target}(${callArgs})`, ` call void @scr_library_check_exc()`, ` call void @scr_library_str_out(ptr %r, ptr %out, ptr %out_len)`, ` ret void`);
1329
+ break;
1330
+ case "bytes":
1331
+ body.push(` %r = call ptr ${target}(${callArgs})`, ` call void @scr_library_check_exc()`, ` call void @scr_library_bytes_out(ptr %r, ptr %out, ptr %out_len)`, ` ret void`);
1332
+ break;
1333
+ }
1334
+ out.push(`define ${retType} @${e.symbol}(${params.join(", ")}) ${FN_ATTRS} { ; library export ${e.fnName}`, `entry:`, ...body, `}`, ``);
1335
+ }
1336
+ return out;
1337
+ }
1202
1338
  /** The shared abort helpers (emitted only when referenced): the OOM
1203
1339
  * abort of untraced shape allocation and the invalid-union-tag abort —
1204
1340
  * both print the C emitter's exact message on fd 2 and abort. */
1205
1341
  helperDefs() {
1206
1342
  const defs = [];
1207
1343
  const msgHelper = (fnName, msgSym, msg) => {
1344
+ // The message routes through the runtime's trap funnel: executable
1345
+ // builds expand to the historical bytes-on-stderr + abort; library
1346
+ // builds route to the registered panic sink (scr_runtime.h).
1208
1347
  const bytes = Buffer.byteLength(msg, "utf8");
1209
- this.declare(`declare i64 @write(i32, ptr, i64)`);
1210
- this.declare(`declare void @abort()`);
1211
- defs.push(`@${msgSym} = internal constant [${bytes} x i8] c"${llStrBytes(msg).slice(0, -3)}"`, `define internal void @${fnName}() ${FN_ATTRS} {`, `entry:`, ` %w = call i64 @write(i32 2, ptr @${msgSym}, i64 ${bytes})`, ` call void @abort()`, ` unreachable`, `}`, ``);
1348
+ this.declare(`declare void @scr_trap(ptr)`);
1349
+ defs.push(`@${msgSym} = internal constant [${bytes + 1} x i8] c"${llStrBytes(msg)}"`, `define internal void @${fnName}() ${FN_ATTRS} {`, `entry:`, ` call void @scr_trap(ptr @${msgSym})`, ` unreachable`, `}`, ``);
1212
1350
  };
1213
1351
  if (this.needsOom)
1214
1352
  msgHelper("sc_oom", "sc_oom_msg", "scriptc: out of memory\n");
@@ -4543,18 +4681,37 @@ class LlEmitter {
4543
4681
  // Type-directed serialization: the STATIC type picks an emitted
4544
4682
  // serializer (interned per typeKey) — no DOM, no runtime dispatch.
4545
4683
  // The value temp is BORROWED (released with this statement's
4546
- // frame); the result string is owned (+1). Never throws.
4684
+ // frame); the result string is owned (+1). Never throws — except
4685
+ // the dyn root below.
4547
4686
  const v = this.emitExpr(e.value);
4548
- const helper = this.walkers.jsonWriteHelper(e.value.type);
4549
- this.declare(`declare void @scr_jb_init(ptr)`);
4550
- this.declare(`declare ptr @scr_jb_finish(ptr)`);
4551
- const buf = B.slot();
4552
- B.entryAllocas.push(`${buf} = alloca %ScrJsonBuf`);
4553
- B.line(`call void @scr_jb_init(ptr ${buf})`);
4554
- B.line(`call void @${helper}(ptr ${buf}, ${this.llType(e.value.type)} ${v.name})`);
4555
- const t = B.tmp();
4556
- B.line(`${t} = call ptr @scr_jb_finish(ptr ${buf})`);
4557
- const compact = this.own({ name: t, type: e.type });
4687
+ let compact;
4688
+ if (e.value.type.kind === "dyn") {
4689
+ // A dyn root: the runtime's DOM walker (scr_dyn_format_j — the
4690
+ // C backend's dispatch exactly): number/string/bool/null/array/
4691
+ // object exact, dropped members omitted, and a dropped ROOT
4692
+ // becomes the TEXT "undefined" (JSON.stringify(undefined) is
4693
+ // the undefined value; printing it spells the word — Node's
4694
+ // answer, where the nested-position writer would spell null).
4695
+ // Fallible (a runtime handle inside the tree throws) — the
4696
+ // pending check runs.
4697
+ this.declare(`declare ptr @scr_dyn_format_j(ptr)`);
4698
+ const t = B.tmp();
4699
+ B.line(`${t} = call ptr @scr_dyn_format_j(ptr ${v.name})`);
4700
+ compact = this.own({ name: t, type: e.type });
4701
+ this.emitPendingCheck();
4702
+ }
4703
+ else {
4704
+ const helper = this.walkers.jsonWriteHelper(e.value.type);
4705
+ this.declare(`declare void @scr_jb_init(ptr)`);
4706
+ this.declare(`declare ptr @scr_jb_finish(ptr)`);
4707
+ const buf = B.slot();
4708
+ B.entryAllocas.push(`${buf} = alloca %ScrJsonBuf`);
4709
+ B.line(`call void @scr_jb_init(ptr ${buf})`);
4710
+ B.line(`call void @${helper}(ptr ${buf}, ${this.llType(e.value.type)} ${v.name})`);
4711
+ const t = B.tmp();
4712
+ B.line(`${t} = call ptr @scr_jb_finish(ptr ${buf})`);
4713
+ compact = this.own({ name: t, type: e.type });
4714
+ }
4558
4715
  // A pretty-print form (`stringify(v, null, 2)`): the frontend
4559
4716
  // resolved the space to a compile-time indent string (Node's
4560
4717
  // clamp/truncate rules); the interned re-indenter rewrites the
@@ -8693,6 +8850,32 @@ class LlEmitter {
8693
8850
  this.emitExpr(a);
8694
8851
  return { name: "", type: e.type };
8695
8852
  }
8853
+ if (e.fn === "qs.parse") {
8854
+ // The ParsedUrlQuery dictionary: a fresh pure-index-signature
8855
+ // record whose overflow map the runtime scan fills
8856
+ // (scr_qs_parse_into groups repeats into string[] buckets) — the
8857
+ // C emitter's shape exactly. The frontend verified the structure;
8858
+ // lookups here only guard emitter bugs. Args: qs, sep, eq, maxKeys.
8859
+ if (e.type.kind !== "record")
8860
+ throw new Error("llvm emitter bug: qs.parse result is not a record");
8861
+ const dictShape = this.recordsById.get(e.type.shapeId);
8862
+ const iv = dictShape?.indexValue;
8863
+ if (!dictShape || iv?.kind !== "union")
8864
+ throw new Error("llvm emitter bug: qs.parse dict shape");
8865
+ const ivDef = this.unionsById.get(iv.unionId);
8866
+ const strTag = ivDef?.arms.findIndex((a) => a.kind === "string") ?? -1;
8867
+ const arrTag = ivDef?.arms.findIndex((a) => a.kind === "array") ?? -1;
8868
+ if (strTag < 0 || arrTag < 0)
8869
+ throw new Error("llvm emitter bug: qs.parse index union lacks its arms");
8870
+ const args = e.args.map((a) => this.emitExpr(a));
8871
+ this.declare(`declare void @scr_qs_parse_into(ptr, ptr, ptr, ptr, double, i32, i32)`);
8872
+ const dict = B.tmp();
8873
+ B.line(`${dict} = call ptr @${mangleRecordNew(e.type.shapeId)}()`);
8874
+ const out = this.own({ name: dict, type: e.type });
8875
+ const ovf = this.recordOvfPtr(dict, e.type.shapeId);
8876
+ B.line(`call void @scr_qs_parse_into(ptr ${ovf}, ptr ${args[0].name}, ptr ${args[1].name}, ptr ${args[2].name}, double ${args[3].name}, i32 ${strTag}, i32 ${arrTag})`);
8877
+ return out;
8878
+ }
8696
8879
  if (e.fn === "os.networkInterfaces") {
8697
8880
  // The Dict<NetworkInterfaceInfo[]> record, built inline from a
8698
8881
  // getifaddrs(3) snapshot — emit-exprs.ts's builder, block-lowered.