@scriptc/compiler 0.0.25 → 0.0.27

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 (69) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +15 -7
  2. package/dist/backend/cc.d.ts +22 -0
  3. package/dist/backend/cc.js +128 -10
  4. package/dist/backend/cc.js.map +1 -1
  5. package/dist/backend/emission/emit-exprs.js +81 -10
  6. package/dist/backend/emission/emit-exprs.js.map +1 -1
  7. package/dist/backend/emission/emitter.d.ts +14 -1
  8. package/dist/backend/emission/emitter.js +126 -13
  9. package/dist/backend/emission/emitter.js.map +1 -1
  10. package/dist/backend/emission/may-throw.js +11 -1
  11. package/dist/backend/emission/may-throw.js.map +1 -1
  12. package/dist/backend/ffi-callbacks.d.ts +11 -0
  13. package/dist/backend/ffi-callbacks.js +33 -0
  14. package/dist/backend/ffi-callbacks.js.map +1 -0
  15. package/dist/backend/llvm/classes.js +21 -21
  16. package/dist/backend/llvm/classes.js.map +1 -1
  17. package/dist/backend/llvm/dyn.d.ts +7 -4
  18. package/dist/backend/llvm/dyn.js +145 -141
  19. package/dist/backend/llvm/dyn.js.map +1 -1
  20. package/dist/backend/llvm/emitter.d.ts +7 -1
  21. package/dist/backend/llvm/emitter.js +961 -303
  22. package/dist/backend/llvm/emitter.js.map +1 -1
  23. package/dist/backend/llvm/shapes.d.ts +4 -0
  24. package/dist/backend/llvm/shapes.js +26 -24
  25. package/dist/backend/llvm/shapes.js.map +1 -1
  26. package/dist/backend/llvm/unsupported.js +1 -1
  27. package/dist/backend/llvm/unsupported.js.map +1 -1
  28. package/dist/backend/llvm/walkers.d.ts +2 -0
  29. package/dist/backend/llvm/walkers.js +50 -46
  30. package/dist/backend/llvm/walkers.js.map +1 -1
  31. package/dist/coverage/surface-manifest.js +1 -1
  32. package/dist/coverage/surface-manifest.js.map +1 -1
  33. package/dist/diagnostics/diagnostic.d.ts +1 -1
  34. package/dist/diagnostics/diagnostic.js +3 -2
  35. package/dist/diagnostics/diagnostic.js.map +1 -1
  36. package/dist/ffi/profile.d.ts +20 -2
  37. package/dist/ffi/profile.js +130 -6
  38. package/dist/ffi/profile.js.map +1 -1
  39. package/dist/frontend/lowering/lower-calls.js +58 -22
  40. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  41. package/dist/frontend/lowering/lower-exprs.js +17 -7
  42. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  43. package/dist/frontend/lowering/lower-server.d.ts +5 -0
  44. package/dist/frontend/lowering/lower-server.js +129 -37
  45. package/dist/frontend/lowering/lower-server.js.map +1 -1
  46. package/dist/frontend/lowering/lower-stmts.js +8 -1
  47. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  48. package/dist/frontend/lowering/surfaces.d.ts +3 -2
  49. package/dist/frontend/lowering/surfaces.js +4 -3
  50. package/dist/frontend/lowering/surfaces.js.map +1 -1
  51. package/dist/frontend/npm.d.ts +16 -0
  52. package/dist/frontend/npm.js +257 -0
  53. package/dist/frontend/npm.js.map +1 -1
  54. package/dist/index.d.ts +7 -4
  55. package/dist/index.js +188 -5
  56. package/dist/index.js.map +1 -1
  57. package/dist/ir/nodes.d.ts +54 -13
  58. package/dist/ir/nodes.js +49 -7
  59. package/dist/ir/nodes.js.map +1 -1
  60. package/dist/ir/validate.js +10 -22
  61. package/dist/ir/validate.js.map +1 -1
  62. package/dist/library/profile.d.ts +11 -0
  63. package/dist/library/profile.js +74 -2
  64. package/dist/library/profile.js.map +1 -1
  65. package/dist/wasi-paths.d.ts +5 -0
  66. package/dist/wasi-paths.js +22 -0
  67. package/dist/wasi-paths.js.map +1 -0
  68. package/package.json +2 -2
  69. package/surface-manifest.json +2 -2
@@ -5,6 +5,10 @@ export interface ShapeHost {
5
5
  declare(decl: string): void;
6
6
  /** Request the shared OOM abort helper (@sc_oom) — emitted once. */
7
7
  needOom(): void;
8
+ /** The target C ABI's `size_t` / refcount integer type. */
9
+ readonly sizeType: "i32" | "i64";
10
+ /** Byte offset from an object pointer back to ScrCycHdr.color. */
11
+ readonly cycleColorOffset: number;
8
12
  readonly tracedShapes: Set<string>;
9
13
  readonly tracedUnions: Set<string>;
10
14
  readonly recordsById: Map<string, IrRecordShape>;
@@ -479,12 +479,12 @@ export function arrNewCall(host, elem, capText) {
479
479
  elem.kind === "regex" || // RegExp values: scr_regex_* adapters, no trace (no refs inside)
480
480
  (elem.kind === "array" && traceAdapter(host, elem) !== null);
481
481
  if (!useRef) {
482
- host.declare(`declare ptr @scr_arr_new(i32, i64)`);
483
- return `call ptr @scr_arr_new(i32 ${elemKindNum(elem)}, i64 ${capText})`;
482
+ host.declare(`declare ptr @scr_arr_new(i32, ${host.sizeType})`);
483
+ return `call ptr @scr_arr_new(i32 ${elemKindNum(elem)}, ${host.sizeType} ${capText})`;
484
484
  }
485
485
  const v = vAdapters(host, elem);
486
- host.declare(`declare ptr @scr_arr_new_ref(ptr, ptr, ptr, i64)`);
487
- return `call ptr @scr_arr_new_ref(ptr ${v.retain}, ptr ${v.release}, ptr ${traceArg(host, elem)}, i64 ${capText})`;
486
+ host.declare(`declare ptr @scr_arr_new_ref(ptr, ptr, ptr, ${host.sizeType})`);
487
+ return `call ptr @scr_arr_new_ref(ptr ${v.retain}, ptr ${v.release}, ptr ${traceArg(host, elem)}, ${host.sizeType} ${capText})`;
488
488
  }
489
489
  /* ── capture boxes ────────────────────────────────────────────────────── */
490
490
  /** Box construction call text (boxNewC's dispatch): plain-kind boxes for
@@ -609,24 +609,26 @@ function rcMembers(shape) {
609
609
  ];
610
610
  }
611
611
  /** The immortal-skip + mark-live retain body shared by every shape. The
612
- * cycle header sits 32 bytes before the object; `color` is at header+16,
612
+ * cycle header sits before the object; `color` is at obj-16 on 64-bit
613
+ * targets and obj-12 on wasm32,
613
614
  * so mark-live is one i32 store at obj-16 (scr_cyc_mark_live inlined —
614
615
  * the runtime's is a static inline with no external symbol). */
615
- function retainBody(fnName, traced) {
616
+ function retainBody(host, fnName, traced) {
617
+ const S = host.sizeType;
616
618
  return [
617
619
  `define internal ptr @${fnName}(ptr %o) ${FN_ATTRS} {`,
618
620
  `entry:`,
619
621
  ` %isnull = icmp eq ptr %o, null`,
620
622
  ` br i1 %isnull, label %done, label %check`,
621
623
  `check:`,
622
- ` %rc = load i64, ptr %o`,
623
- ` %imm = icmp eq i64 %rc, -1`,
624
+ ` %rc = load ${S}, ptr %o`,
625
+ ` %imm = icmp eq ${S} %rc, -1`,
624
626
  ` br i1 %imm, label %done, label %inc`,
625
627
  `inc:`,
626
- ` %n = add i64 %rc, 1`,
627
- ` store i64 %n, ptr %o`,
628
+ ` %n = add ${S} %rc, 1`,
629
+ ` store ${S} %n, ptr %o`,
628
630
  ...(traced
629
- ? [` %colorp = getelementptr i8, ptr %o, i64 -16`, ` store i32 0, ptr %colorp ; mark live`]
631
+ ? [` %colorp = getelementptr i8, ptr %o, ${S} -${host.cycleColorOffset}`, ` store i32 0, ptr %colorp ; mark live`]
630
632
  : []),
631
633
  ` br label %done`,
632
634
  `done:`,
@@ -653,7 +655,7 @@ export function emitRecordShapes(host, mod) {
653
655
  const fieldTys = shape.fields.map((f) => llFieldType(f.type));
654
656
  if (shape.indexValue)
655
657
  fieldTys.push("ptr"); // the overflow ScrMap *
656
- typeDefs.push(`%${struct} = type { i64${fieldTys.length ? ", " + fieldTys.join(", ") : ""} } ` +
658
+ typeDefs.push(`%${struct} = type { ${host.sizeType}${fieldTys.length ? ", " + fieldTys.join(", ") : ""} } ` +
657
659
  `; record ${shape.id} { ${shape.fields.map((f) => f.name).join("; ")}${shape.indexValue ? "; [key: string]" : ""} }`);
658
660
  }
659
661
  for (const shape of records) {
@@ -661,8 +663,8 @@ export function emitRecordShapes(host, mod) {
661
663
  const traced = host.tracedShapes.has(`record:${shape.id}`);
662
664
  const members = rcMembers(shape);
663
665
  const refMembers = members.filter((m) => isRefCounted(m.type));
664
- const sizeOf = `ptrtoint (ptr getelementptr (%${struct}, ptr null, i32 1) to i64)`;
665
- defs.push(...retainBody(mangleRecordRetain(shape.id), traced), ``);
666
+ const sizeOf = `ptrtoint (ptr getelementptr (%${struct}, ptr null, i32 1) to ${host.sizeType})`;
667
+ defs.push(...retainBody(host, mangleRecordRetain(shape.id), traced), ``);
666
668
  // release: NULL-tolerant, immortal-skip; at rc == 0 release every
667
669
  // refcounted member (runtime releases are NULL-tolerant) and free —
668
670
  // traced shapes route through the collector (on_dead/on_release,
@@ -673,13 +675,13 @@ export function emitRecordShapes(host, mod) {
673
675
  ` %isnull = icmp eq ptr %o, null`,
674
676
  ` br i1 %isnull, label %done, label %check`,
675
677
  `check:`,
676
- ` %rc = load i64, ptr %o`,
677
- ` %imm = icmp eq i64 %rc, -1`,
678
+ ` %rc = load ${host.sizeType}, ptr %o`,
679
+ ` %imm = icmp eq ${host.sizeType} %rc, -1`,
678
680
  ` br i1 %imm, label %done, label %dec`,
679
681
  `dec:`,
680
- ` %n = sub i64 %rc, 1`,
681
- ` store i64 %n, ptr %o`,
682
- ` %dead = icmp eq i64 %n, 0`,
682
+ ` %n = sub ${host.sizeType} %rc, 1`,
683
+ ` store ${host.sizeType} %n, ptr %o`,
684
+ ` %dead = icmp eq ${host.sizeType} %n, 0`,
683
685
  ` br i1 %dead, label %free, label %${traced ? "root" : "done"}`,
684
686
  `free:`,
685
687
  ];
@@ -712,15 +714,15 @@ export function emitRecordShapes(host, mod) {
712
714
  `entry:`,
713
715
  ];
714
716
  if (traced) {
715
- host.declare(`declare ptr @scr_cyc_alloc(i64, ptr, ptr)`);
716
- nw.push(` %o = call ptr @scr_cyc_alloc(i64 ${sizeOf}, ptr @${mangleRecordTrace(shape.id)}, ptr @${mangleRecordGcFree(shape.id)})`);
717
+ host.declare(`declare ptr @scr_cyc_alloc(${host.sizeType}, ptr, ptr)`);
718
+ nw.push(` %o = call ptr @scr_cyc_alloc(${host.sizeType} ${sizeOf}, ptr @${mangleRecordTrace(shape.id)}, ptr @${mangleRecordGcFree(shape.id)})`);
717
719
  }
718
720
  else {
719
- host.declare(`declare ptr @calloc(i64, i64)`);
721
+ host.declare(`declare ptr @calloc(${host.sizeType}, ${host.sizeType})`);
720
722
  host.needOom();
721
- nw.push(` %o = call ptr @calloc(i64 1, i64 ${sizeOf})`, ` %isnull = icmp eq ptr %o, null`, ` br i1 %isnull, label %oom, label %ok`, `oom:`, ` call void @sc_oom()`, ` unreachable`, `ok:`);
723
+ nw.push(` %o = call ptr @calloc(${host.sizeType} 1, ${host.sizeType} ${sizeOf})`, ` %isnull = icmp eq ptr %o, null`, ` br i1 %isnull, label %oom, label %ok`, `oom:`, ` call void @sc_oom()`, ` unreachable`, `ok:`);
722
724
  }
723
- nw.push(` store i64 1, ptr %o`);
725
+ nw.push(` store ${host.sizeType} 1, ptr %o`);
724
726
  if (shape.indexValue) {
725
727
  // The overflow map (string-keyed): value handling is type-directed
726
728
  // exactly like emit-shapes.ts's overflowNewC.
@@ -1 +1 @@
1
- {"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../src/backend/llvm/shapes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../src/backend/llvm/shapes.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export class LlvmUnsupportedError extends Error {
3
3
  loc;
4
4
  constructor(kind, loc) {
5
5
  super(`the LLVM backend does not support this construct yet (${kind}); ` +
6
- `build with the reference C backend (--backend c, or the default's transparent fallback)`);
6
+ `build with the debugging C backend (--backend c, or the native default's transparent fallback)`);
7
7
  this.kind = kind;
8
8
  this.loc = loc;
9
9
  this.name = "LlvmUnsupportedError";
@@ -1 +1 @@
1
- {"version":3,"file":"unsupported.js","sourceRoot":"","sources":["../../../src/backend/llvm/unsupported.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IACA;IAFX,YACW,IAAY,EACZ,GAAY;QAErB,KAAK,CACH,yDAAyD,IAAI,KAAK;YAChE,yFAAyF,CAC5F,CAAC;QANO,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAS;QAMrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"unsupported.js","sourceRoot":"","sources":["../../../src/backend/llvm/unsupported.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IACA;IAFX,YACW,IAAY,EACZ,GAAY;QAErB,KAAK,CACH,yDAAyD,IAAI,KAAK;YAChE,gGAAgG,CACnG,CAAC;QANO,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAS;QAMrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
@@ -23,6 +23,8 @@ export declare class LlWalkers {
23
23
  /** Emitted function definitions, in interning order. */
24
24
  readonly defs: string[];
25
25
  constructor(host: WalkerHost);
26
+ private get S();
27
+ private abiOffset;
26
28
  /** The value-parameter LLVM type of a writer for `t`. */
27
29
  private valTy;
28
30
  private putc;
@@ -22,6 +22,10 @@ export class LlWalkers {
22
22
  constructor(host) {
23
23
  this.host = host;
24
24
  }
25
+ get S() { return this.host.sizeType; }
26
+ abiOffset(native64, wasm32) {
27
+ return this.S === "i32" ? wasm32 : native64;
28
+ }
25
29
  /** The value-parameter LLVM type of a writer for `t`. */
26
30
  valTy(t) {
27
31
  return t.kind === "f64" ? "double" : t.kind === "bool" ? "i1" : "ptr";
@@ -41,11 +45,11 @@ export class LlWalkers {
41
45
  const len = B.tmp();
42
46
  const data = B.tmp();
43
47
  B.line(`${lenp} = getelementptr inbounds %ScrStr, ptr ${s}, i64 0, i32 1`);
44
- B.line(`${len} = load i64, ptr ${lenp}`);
45
- B.line(`${data} = getelementptr inbounds i8, ptr ${s}, i64 24 ; ->data`);
48
+ B.line(`${len} = load ${this.S}, ptr ${lenp}`);
49
+ B.line(`${data} = getelementptr inbounds i8, ptr ${s}, i64 ${this.abiOffset(24, 12)} ; ->data`);
46
50
  const jSlot = B.slot();
47
- B.entryAllocas.push(`${jSlot} = alloca i64`);
48
- B.line(`store i64 0, ptr ${jSlot}`);
51
+ B.entryAllocas.push(`${jSlot} = alloca ${this.S}`);
52
+ B.line(`store ${this.S} 0, ptr ${jSlot}`);
49
53
  const lc = B.newLabel("ps.c");
50
54
  const lb = B.newLabel("ps.b");
51
55
  const le = B.newLabel("ps.e");
@@ -53,18 +57,18 @@ export class LlWalkers {
53
57
  B.startBlock(lc);
54
58
  const j = B.tmp();
55
59
  const cont = B.tmp();
56
- B.line(`${j} = load i64, ptr ${jSlot}`);
57
- B.line(`${cont} = icmp ult i64 ${j}, ${len}`);
60
+ B.line(`${j} = load ${this.S}, ptr ${jSlot}`);
61
+ B.line(`${cont} = icmp ult ${this.S} ${j}, ${len}`);
58
62
  B.condBr(cont, lb, le);
59
63
  B.startBlock(lb);
60
64
  const cp = B.tmp();
61
65
  const c = B.tmp();
62
- B.line(`${cp} = getelementptr inbounds i8, ptr ${data}, i64 ${j}`);
66
+ B.line(`${cp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${j}`);
63
67
  B.line(`${c} = load i8, ptr ${cp}`);
64
68
  this.putc(B, buf, c);
65
69
  const j2 = B.tmp();
66
- B.line(`${j2} = add i64 ${j}, 1`);
67
- B.line(`store i64 ${j2}, ptr ${jSlot}`);
70
+ B.line(`${j2} = add ${this.S} ${j}, 1`);
71
+ B.line(`store ${this.S} ${j2}, ptr ${jSlot}`);
68
72
  B.br(lc);
69
73
  B.startBlock(le);
70
74
  }
@@ -108,8 +112,8 @@ export class LlWalkers {
108
112
  B.line(`call void @scr_jb_edge_prop(ptr %b, ptr ${this.host.cstr(name)}) ; ${JSON.stringify(name)}`);
109
113
  }
110
114
  jbEdgeIdx(B, idx) {
111
- this.host.declare(`declare void @scr_jb_edge_idx(ptr, i64)`);
112
- B.line(`call void @scr_jb_edge_idx(ptr %b, i64 ${idx})`);
115
+ this.host.declare(`declare void @scr_jb_edge_idx(ptr, ${this.S})`);
116
+ B.line(`call void @scr_jb_edge_idx(ptr %b, ${this.S} ${idx})`);
113
117
  }
114
118
  /* ── type-directed JSON serializers (jsonWriteHelper, ported) ─────────── */
115
119
  jsonWriteHelper(t) {
@@ -332,7 +336,7 @@ export class LlWalkers {
332
336
  B.line(`${val} = call ptr @scr_map_get_str_ref(ptr ${ovf}, ptr ${k}) ; value (+1)`);
333
337
  }
334
338
  // Undefined-valued entries drop, exactly the optional-field rule: a
335
- // dyn value whose dyn kind is SCR_DYN_UNDEF (i32 at offset 8, enum
339
+ // dyn value whose dyn kind follows its size_t RC word (enum
336
340
  // member 6 — scr_runtime.h's ScrDynKind), or a union holding its
337
341
  // undefined arm.
338
342
  let skipUndef = null;
@@ -340,7 +344,7 @@ export class LlWalkers {
340
344
  const kp = B.tmp();
341
345
  const kd = B.tmp();
342
346
  const isu = B.tmp();
343
- B.line(`${kp} = getelementptr inbounds i8, ptr ${val}, i64 8 ; ->kind`);
347
+ B.line(`${kp} = getelementptr inbounds i8, ptr ${val}, i64 ${this.abiOffset(8, 4)} ; ->kind`);
344
348
  B.line(`${kd} = load i32, ptr ${kp}`);
345
349
  B.line(`${isu} = icmp eq i32 ${kd}, 6 ; SCR_DYN_UNDEF (NULL is 0 — null members DO serialize)`);
346
350
  skipUndef = isu;
@@ -432,7 +436,7 @@ export class LlWalkers {
432
436
  B.startBlock(lj);
433
437
  if (cyclic) {
434
438
  const idx = B.tmp();
435
- B.line(`${idx} = fptoui double ${i} to i64`);
439
+ B.line(`${idx} = fptoui double ${i} to ${this.S}`);
436
440
  this.jbEdgeIdx(B, idx);
437
441
  }
438
442
  if (elem.kind === "f64" || elem.kind === "bool") {
@@ -524,24 +528,24 @@ export class LlWalkers {
524
528
  host.declare(`declare ptr @scr_jb_finish(ptr)`);
525
529
  host.declare(`declare void @scr_jb_putc(ptr, i8)`);
526
530
  // The newline + depth * indent writer, shared by the three break sites.
527
- this.defs.push(`define internal void @sc_ji_ind(ptr %b, i64 %depth, ptr %ind, i64 %ilen) ${FN_ATTRS} { ; stringify gap indent`, `entry:`, ` call void @scr_jb_putc(ptr %b, i8 10)`, ` br label %oc`, `oc:`, ` %d = phi i64 [ 0, %entry ], [ %d2, %ie ]`, ` %ocont = icmp ult i64 %d, %depth`, ` br i1 %ocont, label %ic0, label %done`, `ic0:`, ` br label %ic`, `ic:`, ` %k = phi i64 [ 0, %ic0 ], [ %k2, %ib ]`, ` %icont = icmp ult i64 %k, %ilen`, ` br i1 %icont, label %ib, label %ie`, `ib:`, ` %cp = getelementptr inbounds i8, ptr %ind, i64 %k`, ` %c = load i8, ptr %cp`, ` call void @scr_jb_putc(ptr %b, i8 %c)`, ` %k2 = add i64 %k, 1`, ` br label %ic`, `ie:`, ` %d2 = add i64 %d, 1`, ` br label %oc`, `done:`, ` ret void`, `}`, ``);
531
+ this.defs.push(`define internal void @sc_ji_ind(ptr %b, ${this.S} %depth, ptr %ind, ${this.S} %ilen) ${FN_ATTRS} { ; stringify gap indent`, `entry:`, ` call void @scr_jb_putc(ptr %b, i8 10)`, ` br label %oc`, `oc:`, ` %d = phi ${this.S} [ 0, %entry ], [ %d2, %ie ]`, ` %ocont = icmp ult ${this.S} %d, %depth`, ` br i1 %ocont, label %ic0, label %done`, `ic0:`, ` br label %ic`, `ic:`, ` %k = phi ${this.S} [ 0, %ic0 ], [ %k2, %ib ]`, ` %icont = icmp ult ${this.S} %k, %ilen`, ` br i1 %icont, label %ib, label %ie`, `ib:`, ` %cp = getelementptr inbounds i8, ptr %ind, ${this.S} %k`, ` %c = load i8, ptr %cp`, ` call void @scr_jb_putc(ptr %b, i8 %c)`, ` %k2 = add ${this.S} %k, 1`, ` br label %ic`, `ie:`, ` %d2 = add ${this.S} %d, 1`, ` br label %oc`, `done:`, ` ret void`, `}`, ``);
528
532
  const B = new BlockBuilder();
529
533
  const buf = "%jb";
530
534
  B.entryAllocas.push(`${buf} = alloca %ScrJsonBuf`);
531
535
  const depth = "%depth";
532
536
  const instr = "%instr";
533
537
  const iSlot = "%i";
534
- B.entryAllocas.push(`${depth} = alloca i64`, `${instr} = alloca i1`, `${iSlot} = alloca i64`);
538
+ B.entryAllocas.push(`${depth} = alloca ${this.S}`, `${instr} = alloca i1`, `${iSlot} = alloca ${this.S}`);
535
539
  B.line(`call void @scr_jb_init(ptr ${buf})`);
536
- B.line(`store i64 0, ptr ${depth}`);
540
+ B.line(`store ${this.S} 0, ptr ${depth}`);
537
541
  B.line(`store i1 false, ptr ${instr}`);
538
- B.line(`store i64 0, ptr ${iSlot}`);
542
+ B.line(`store ${this.S} 0, ptr ${iSlot}`);
539
543
  const np = B.tmp();
540
544
  const n = B.tmp();
541
545
  const data = B.tmp();
542
546
  B.line(`${np} = getelementptr inbounds %ScrStr, ptr %compact, i64 0, i32 1`);
543
- B.line(`${n} = load i64, ptr ${np}`);
544
- B.line(`${data} = getelementptr inbounds i8, ptr %compact, i64 24 ; ->data`);
547
+ B.line(`${n} = load ${this.S}, ptr ${np}`);
548
+ B.line(`${data} = getelementptr inbounds i8, ptr %compact, i64 ${this.abiOffset(24, 12)} ; ->data`);
545
549
  const loop = B.newLabel("ji.c");
546
550
  const body = B.newLabel("ji.b");
547
551
  const inc = B.newLabel("ji.n");
@@ -550,13 +554,13 @@ export class LlWalkers {
550
554
  B.startBlock(loop);
551
555
  const i = B.tmp();
552
556
  const cont = B.tmp();
553
- B.line(`${i} = load i64, ptr ${iSlot}`);
554
- B.line(`${cont} = icmp ult i64 ${i}, ${n}`);
557
+ B.line(`${i} = load ${this.S}, ptr ${iSlot}`);
558
+ B.line(`${cont} = icmp ult ${this.S} ${i}, ${n}`);
555
559
  B.condBr(cont, body, end);
556
560
  B.startBlock(body);
557
561
  const cp = B.tmp();
558
562
  const c = B.tmp();
559
- B.line(`${cp} = getelementptr inbounds i8, ptr ${data}, i64 ${i}`);
563
+ B.line(`${cp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i}`);
560
564
  B.line(`${c} = load i8, ptr ${cp}`);
561
565
  const ins = B.tmp();
562
566
  B.line(`${ins} = load i1, ptr ${instr}`);
@@ -571,8 +575,8 @@ export class LlWalkers {
571
575
  const hasNext = B.tmp();
572
576
  const escTake = B.tmp();
573
577
  B.line(`${isbs} = icmp eq i8 ${c}, 92 ; backslash`);
574
- B.line(`${i1p} = add i64 ${i}, 1`);
575
- B.line(`${hasNext} = icmp ult i64 ${i1p}, ${n}`);
578
+ B.line(`${i1p} = add ${this.S} ${i}, 1`);
579
+ B.line(`${hasNext} = icmp ult ${this.S} ${i1p}, ${n}`);
576
580
  B.line(`${escTake} = and i1 ${isbs}, ${hasNext}`);
577
581
  const esc = B.newLabel("ji.se");
578
582
  const noesc = B.newLabel("ji.sq");
@@ -580,10 +584,10 @@ export class LlWalkers {
580
584
  B.startBlock(esc);
581
585
  const ecp = B.tmp();
582
586
  const ec = B.tmp();
583
- B.line(`${ecp} = getelementptr inbounds i8, ptr ${data}, i64 ${i1p}`);
587
+ B.line(`${ecp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i1p}`);
584
588
  B.line(`${ec} = load i8, ptr ${ecp}`);
585
589
  this.putc(B, buf, ec);
586
- B.line(`store i64 ${i1p}, ptr ${iSlot} ; consumed the escaped char`);
590
+ B.line(`store ${this.S} ${i1p}, ptr ${iSlot} ; consumed the escaped char`);
587
591
  B.br(inc);
588
592
  B.startBlock(noesc);
589
593
  const isq = B.tmp();
@@ -614,8 +618,8 @@ export class LlWalkers {
614
618
  this.putc(B, buf, c);
615
619
  const i1b = B.tmp();
616
620
  const hasNextB = B.tmp();
617
- B.line(`${i1b} = add i64 ${i}, 1`);
618
- B.line(`${hasNextB} = icmp ult i64 ${i1b}, ${n}`);
621
+ B.line(`${i1b} = add ${this.S} ${i}, 1`);
622
+ B.line(`${hasNextB} = icmp ult ${this.S} ${i1b}, ${n}`);
619
623
  const chk = B.newLabel("ji.opc");
620
624
  const deep = B.newLabel("ji.opd");
621
625
  const inline = B.newLabel("ji.opi");
@@ -624,25 +628,25 @@ export class LlWalkers {
624
628
  const ncp = B.tmp();
625
629
  const nc = B.tmp();
626
630
  const isClose = B.tmp();
627
- B.line(`${ncp} = getelementptr inbounds i8, ptr ${data}, i64 ${i1b}`);
631
+ B.line(`${ncp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i1b}`);
628
632
  B.line(`${nc} = load i8, ptr ${ncp}`);
629
633
  B.line(`${isClose} = icmp eq i8 ${nc}, ${closer}`);
630
634
  B.condBr(isClose, inline, deep);
631
635
  B.startBlock(inline);
632
636
  const nc2p = B.tmp();
633
637
  const nc2 = B.tmp();
634
- B.line(`${nc2p} = getelementptr inbounds i8, ptr ${data}, i64 ${i1b}`);
638
+ B.line(`${nc2p} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i1b}`);
635
639
  B.line(`${nc2} = load i8, ptr ${nc2p}`);
636
640
  this.putc(B, buf, nc2);
637
- B.line(`store i64 ${i1b}, ptr ${iSlot} ; empty {} / [] stay inline, like Node`);
641
+ B.line(`store ${this.S} ${i1b}, ptr ${iSlot} ; empty {} / [] stay inline, like Node`);
638
642
  B.br(inc);
639
643
  B.startBlock(deep);
640
644
  const d0 = B.tmp();
641
645
  const d1 = B.tmp();
642
- B.line(`${d0} = load i64, ptr ${depth}`);
643
- B.line(`${d1} = add i64 ${d0}, 1`);
644
- B.line(`store i64 ${d1}, ptr ${depth}`);
645
- B.line(`call void @sc_ji_ind(ptr ${buf}, i64 ${d1}, ptr %ind, i64 %ilen)`);
646
+ B.line(`${d0} = load ${this.S}, ptr ${depth}`);
647
+ B.line(`${d1} = add ${this.S} ${d0}, 1`);
648
+ B.line(`store ${this.S} ${d1}, ptr ${depth}`);
649
+ B.line(`call void @sc_ji_ind(ptr ${buf}, ${this.S} ${d1}, ptr %ind, ${this.S} %ilen)`);
646
650
  B.br(inc);
647
651
  };
648
652
  openBody(lOpenB, 125); // '{' closes with '}'
@@ -650,17 +654,17 @@ export class LlWalkers {
650
654
  B.startBlock(lClose);
651
655
  const dc0 = B.tmp();
652
656
  const dc1 = B.tmp();
653
- B.line(`${dc0} = load i64, ptr ${depth}`);
654
- B.line(`${dc1} = sub i64 ${dc0}, 1`);
655
- B.line(`store i64 ${dc1}, ptr ${depth}`);
656
- B.line(`call void @sc_ji_ind(ptr ${buf}, i64 ${dc1}, ptr %ind, i64 %ilen)`);
657
+ B.line(`${dc0} = load ${this.S}, ptr ${depth}`);
658
+ B.line(`${dc1} = sub ${this.S} ${dc0}, 1`);
659
+ B.line(`store ${this.S} ${dc1}, ptr ${depth}`);
660
+ B.line(`call void @sc_ji_ind(ptr ${buf}, ${this.S} ${dc1}, ptr %ind, ${this.S} %ilen)`);
657
661
  this.putc(B, buf, c);
658
662
  B.br(inc);
659
663
  B.startBlock(lComma);
660
664
  this.putc(B, buf, "44");
661
665
  const dm = B.tmp();
662
- B.line(`${dm} = load i64, ptr ${depth}`);
663
- B.line(`call void @sc_ji_ind(ptr ${buf}, i64 ${dm}, ptr %ind, i64 %ilen)`);
666
+ B.line(`${dm} = load ${this.S}, ptr ${depth}`);
667
+ B.line(`call void @sc_ji_ind(ptr ${buf}, ${this.S} ${dm}, ptr %ind, ${this.S} %ilen)`);
664
668
  B.br(inc);
665
669
  B.startBlock(lColon);
666
670
  this.putc(B, buf, "58");
@@ -672,15 +676,15 @@ export class LlWalkers {
672
676
  B.startBlock(inc);
673
677
  const iN = B.tmp();
674
678
  const iN2 = B.tmp();
675
- B.line(`${iN} = load i64, ptr ${iSlot}`);
676
- B.line(`${iN2} = add i64 ${iN}, 1`);
677
- B.line(`store i64 ${iN2}, ptr ${iSlot}`);
679
+ B.line(`${iN} = load ${this.S}, ptr ${iSlot}`);
680
+ B.line(`${iN2} = add ${this.S} ${iN}, 1`);
681
+ B.line(`store ${this.S} ${iN2}, ptr ${iSlot}`);
678
682
  B.br(loop);
679
683
  B.startBlock(end);
680
684
  const r = B.tmp();
681
685
  B.line(`${r} = call ptr @scr_jb_finish(ptr ${buf})`);
682
686
  B.terminate(`ret ptr ${r}`);
683
- this.defs.push(`define internal ptr @${name}(ptr %compact, ptr %ind, i64 %ilen) ${FN_ATTRS} { ; stringify space re-indent (Node's gap algorithm)`, B.render(), `}`, ``);
687
+ this.defs.push(`define internal ptr @${name}(ptr %compact, ptr %ind, ${this.S} %ilen) ${FN_ATTRS} { ; stringify space re-indent (Node's gap algorithm)`, B.render(), `}`, ``);
684
688
  return name;
685
689
  }
686
690
  /* ── the per-union ToString / Array#join pair (ported) ────────────────── */