@scriptc/compiler 0.3.4 → 0.3.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 (219) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +131 -10
  2. package/dist/backend/llvm/array-search.js +1 -1
  3. package/dist/backend/llvm/array-search.js.map +1 -1
  4. package/dist/backend/llvm/call-lifetimes.d.ts +6 -0
  5. package/dist/backend/llvm/call-lifetimes.js +19 -0
  6. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  7. package/dist/backend/llvm/constant-callbacks.d.ts +2 -21
  8. package/dist/backend/llvm/constant-callbacks.js +36 -219
  9. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  10. package/dist/backend/llvm/constant-callbacks.test.js +22 -0
  11. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  12. package/dist/backend/llvm/dense-array-access.d.ts +9 -0
  13. package/dist/backend/llvm/dense-array-access.js +27 -1
  14. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  15. package/dist/backend/llvm/dyn.d.ts +6 -0
  16. package/dist/backend/llvm/dyn.js +40 -6
  17. package/dist/backend/llvm/dyn.js.map +1 -1
  18. package/dist/backend/llvm/emitter.d.ts +75 -1
  19. package/dist/backend/llvm/emitter.js +408 -38
  20. package/dist/backend/llvm/emitter.js.map +1 -1
  21. package/dist/backend/llvm/expr-async.js +17 -7
  22. package/dist/backend/llvm/expr-async.js.map +1 -1
  23. package/dist/backend/llvm/expr-bytes.js +1 -1
  24. package/dist/backend/llvm/expr-callbacks.d.ts +11 -0
  25. package/dist/backend/llvm/expr-callbacks.js +53 -0
  26. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  27. package/dist/backend/llvm/expr-calls.js +88 -2
  28. package/dist/backend/llvm/expr-calls.js.map +1 -1
  29. package/dist/backend/llvm/expr-containers.js +50 -27
  30. package/dist/backend/llvm/expr-containers.js.map +1 -1
  31. package/dist/backend/llvm/expr-primitives.js +9 -1
  32. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  33. package/dist/backend/llvm/expr-stream-bridges.js +4 -0
  34. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  35. package/dist/backend/llvm/integer-clones.d.ts +103 -0
  36. package/dist/backend/llvm/integer-clones.js +1336 -0
  37. package/dist/backend/llvm/integer-clones.js.map +1 -0
  38. package/dist/backend/llvm/integer-clones.test.d.ts +1 -0
  39. package/dist/backend/llvm/integer-clones.test.js +219 -0
  40. package/dist/backend/llvm/integer-clones.test.js.map +1 -0
  41. package/dist/backend/llvm/lib-datagram.js +14 -0
  42. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  43. package/dist/backend/llvm/lib-dispatch.js +4 -0
  44. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  45. package/dist/backend/llvm/lib-process.js +24 -0
  46. package/dist/backend/llvm/lib-process.js.map +1 -1
  47. package/dist/backend/llvm/lib-shared.js +34 -2
  48. package/dist/backend/llvm/lib-shared.js.map +1 -1
  49. package/dist/backend/llvm/lib-tls.js +6 -0
  50. package/dist/backend/llvm/lib-tls.js.map +1 -1
  51. package/dist/backend/llvm/local-array-reads.js +1 -1
  52. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  53. package/dist/backend/llvm/map-entry-fusion.d.ts +28 -0
  54. package/dist/backend/llvm/map-entry-fusion.js +233 -0
  55. package/dist/backend/llvm/map-entry-fusion.js.map +1 -0
  56. package/dist/backend/llvm/map-entry-fusion.test.d.ts +1 -0
  57. package/dist/backend/llvm/map-entry-fusion.test.js +183 -0
  58. package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -0
  59. package/dist/backend/llvm/map-number-lookup.d.ts +2 -0
  60. package/dist/backend/llvm/map-number-lookup.js +1 -1
  61. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  62. package/dist/backend/llvm/map-number-lookup.test.js +10 -11
  63. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  64. package/dist/backend/llvm/map-read-lifetimes.d.ts +2 -0
  65. package/dist/backend/llvm/map-read-lifetimes.js +3 -0
  66. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  67. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  68. package/dist/backend/llvm/publish.d.ts +16 -0
  69. package/dist/backend/llvm/publish.js +81 -10
  70. package/dist/backend/llvm/publish.js.map +1 -1
  71. package/dist/backend/llvm/publish.test.d.ts +1 -0
  72. package/dist/backend/llvm/publish.test.js +94 -0
  73. package/dist/backend/llvm/publish.test.js.map +1 -0
  74. package/dist/backend/llvm/record-results.js +76 -2
  75. package/dist/backend/llvm/record-results.js.map +1 -1
  76. package/dist/backend/llvm/record-sources.d.ts +7 -0
  77. package/dist/backend/llvm/record-sources.js +14 -0
  78. package/dist/backend/llvm/record-sources.js.map +1 -0
  79. package/dist/backend/llvm/shapes.d.ts +9 -3
  80. package/dist/backend/llvm/shapes.js +18 -14
  81. package/dist/backend/llvm/shapes.js.map +1 -1
  82. package/dist/backend/llvm/shapes.test.js +5 -3
  83. package/dist/backend/llvm/shapes.test.js.map +1 -1
  84. package/dist/backend/llvm/string-lifetimes.test.js +75 -1
  85. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  86. package/dist/backend/llvm/walkers.d.ts +17 -0
  87. package/dist/backend/llvm/walkers.js +123 -0
  88. package/dist/backend/llvm/walkers.js.map +1 -1
  89. package/dist/backend/native/contracts.d.ts +2 -1
  90. package/dist/backend/native/executable.js +3 -1
  91. package/dist/backend/native/executable.js.map +1 -1
  92. package/dist/backend/runtime-abi.d.ts +2 -2
  93. package/dist/backend/runtime-abi.js +2 -2
  94. package/dist/backend/runtime-pack-targets.test.js +1 -1
  95. package/dist/backend/runtime-pack.test.js +1 -1
  96. package/dist/frontend/lowering/builtin-calls.js +3 -0
  97. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  98. package/dist/frontend/lowering/builtins/callable-aliases.js +54 -8
  99. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  100. package/dist/frontend/lowering/builtins/child-process-async.d.ts +8 -6
  101. package/dist/frontend/lowering/builtins/child-process-async.js +45 -29
  102. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  103. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +2 -0
  104. package/dist/frontend/lowering/builtins/filesystem-calls.js +5 -0
  105. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  106. package/dist/frontend/lowering/builtins/filesystem.js +60 -0
  107. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  108. package/dist/frontend/lowering/builtins/fs-streams.d.ts +26 -0
  109. package/dist/frontend/lowering/builtins/fs-streams.js +131 -0
  110. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -0
  111. package/dist/frontend/lowering/builtins/module-calls.js +5 -1
  112. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  113. package/dist/frontend/lowering/class-dynamic-dispatch.js +150 -8
  114. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  115. package/dist/frontend/lowering/containers/bytes.js +33 -12
  116. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  117. package/dist/frontend/lowering/devirtualize.js +20 -7
  118. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  119. package/dist/frontend/lowering/lower-calls.js +58 -3
  120. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  121. package/dist/frontend/lowering/lower-classes.js +7 -0
  122. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  123. package/dist/frontend/lowering/lower-dgram.js +55 -15
  124. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  125. package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -1
  126. package/dist/frontend/lowering/lower-event-emitter.js +78 -0
  127. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  128. package/dist/frontend/lowering/lower-exprs.d.ts +4 -0
  129. package/dist/frontend/lowering/lower-exprs.js +132 -58
  130. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  131. package/dist/frontend/lowering/lower-inspect.js +26 -0
  132. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  133. package/dist/frontend/lowering/lower-server.d.ts +2 -1
  134. package/dist/frontend/lowering/lower-server.js +73 -5
  135. package/dist/frontend/lowering/lower-server.js.map +1 -1
  136. package/dist/frontend/lowering/lower-stmts.js +12 -6
  137. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  138. package/dist/frontend/lowering/lower-stream.js +8 -0
  139. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  140. package/dist/frontend/lowering/lowerer.d.ts +3 -1
  141. package/dist/frontend/lowering/lowerer.js +2 -2
  142. package/dist/frontend/lowering/lowerer.js.map +1 -1
  143. package/dist/frontend/lowering/record-sources.d.ts +15 -0
  144. package/dist/frontend/lowering/record-sources.js +46 -0
  145. package/dist/frontend/lowering/record-sources.js.map +1 -0
  146. package/dist/frontend/lowering/surfaces.js +33 -1
  147. package/dist/frontend/lowering/surfaces.js.map +1 -1
  148. package/dist/frontend/type-mapper.d.ts +3 -0
  149. package/dist/frontend/type-mapper.js +53 -0
  150. package/dist/frontend/type-mapper.js.map +1 -1
  151. package/dist/ir/analysis.d.ts +10 -0
  152. package/dist/ir/analysis.js +35 -0
  153. package/dist/ir/analysis.js.map +1 -1
  154. package/dist/ir/analysis.test.js +69 -1
  155. package/dist/ir/analysis.test.js.map +1 -1
  156. package/dist/ir/builtin-effects.js +36 -0
  157. package/dist/ir/builtin-effects.js.map +1 -1
  158. package/dist/ir/builtin-signatures.d.ts +1 -1
  159. package/dist/ir/builtin-signatures.js +91 -7
  160. package/dist/ir/builtin-signatures.js.map +1 -1
  161. package/dist/ir/capture-values.d.ts +107 -0
  162. package/dist/ir/capture-values.js +850 -0
  163. package/dist/ir/capture-values.js.map +1 -0
  164. package/dist/ir/capture-values.test.d.ts +1 -0
  165. package/dist/ir/capture-values.test.js +268 -0
  166. package/dist/ir/capture-values.test.js.map +1 -0
  167. package/dist/ir/field-values.d.ts +16 -0
  168. package/dist/ir/field-values.js +128 -0
  169. package/dist/ir/field-values.js.map +1 -0
  170. package/dist/ir/field-values.test.d.ts +1 -0
  171. package/dist/ir/field-values.test.js +160 -0
  172. package/dist/ir/field-values.test.js.map +1 -0
  173. package/dist/ir/final-fields.d.ts +4 -1
  174. package/dist/ir/final-fields.js +11 -3
  175. package/dist/ir/final-fields.js.map +1 -1
  176. package/dist/ir/function-references.test.js +1 -1
  177. package/dist/ir/function-references.test.js.map +1 -1
  178. package/dist/ir/init-only-globals.d.ts +16 -0
  179. package/dist/ir/init-only-globals.js +121 -0
  180. package/dist/ir/init-only-globals.js.map +1 -0
  181. package/dist/ir/init-only-globals.test.d.ts +1 -0
  182. package/dist/ir/init-only-globals.test.js +115 -0
  183. package/dist/ir/init-only-globals.test.js.map +1 -0
  184. package/dist/ir/initializer-bindings.d.ts +18 -1
  185. package/dist/ir/initializer-bindings.js +91 -1
  186. package/dist/ir/initializer-bindings.js.map +1 -1
  187. package/dist/ir/initializer-bindings.test.js +57 -2
  188. package/dist/ir/initializer-bindings.test.js.map +1 -1
  189. package/dist/ir/int32-slots.d.ts +22 -0
  190. package/dist/ir/int32-slots.js +376 -13
  191. package/dist/ir/int32-slots.js.map +1 -1
  192. package/dist/ir/int32-slots.test.js +91 -8
  193. package/dist/ir/int32-slots.test.js.map +1 -1
  194. package/dist/ir/integer-loop-facts.d.ts +19 -1
  195. package/dist/ir/integer-loop-facts.js +155 -7
  196. package/dist/ir/integer-loop-facts.js.map +1 -1
  197. package/dist/ir/integer-ranges.d.ts +8 -5
  198. package/dist/ir/integer-ranges.js +147 -55
  199. package/dist/ir/integer-ranges.js.map +1 -1
  200. package/dist/ir/integer-ranges.test.js +225 -7
  201. package/dist/ir/integer-ranges.test.js.map +1 -1
  202. package/dist/ir/ir.d.ts +9 -1
  203. package/dist/ir/ir.js.map +1 -1
  204. package/dist/ir/property-bags.d.ts +14 -0
  205. package/dist/ir/property-bags.js +121 -0
  206. package/dist/ir/property-bags.js.map +1 -0
  207. package/dist/ir/receiver-readers.d.ts +21 -0
  208. package/dist/ir/receiver-readers.js +217 -0
  209. package/dist/ir/receiver-readers.js.map +1 -0
  210. package/dist/ir/runtime-features.js +6 -1
  211. package/dist/ir/runtime-features.js.map +1 -1
  212. package/dist/ir/validate.js +26 -0
  213. package/dist/ir/validate.js.map +1 -1
  214. package/dist/ir/validate.test.js +21 -0
  215. package/dist/ir/validate.test.js.map +1 -1
  216. package/dist/library/int-infer.js +3 -0
  217. package/dist/library/int-infer.js.map +1 -1
  218. package/package.json +20 -20
  219. package/surface-manifest.json +28 -2
@@ -1,4 +1,3 @@
1
- import { isBorrowSafeMath } from "../../ir/analysis.js";
2
1
  import { exprFunctionReference, moduleFunctionReferences } from "../../ir/function-references.js";
3
2
  import { everyStmtList } from "../../ir/traverse.js";
4
3
  /** Closed direct-call consumers can devirtualize a callback when every
@@ -16,9 +15,10 @@ export function findConstantCallbacks(mod, lifetimes) {
16
15
  // Authored declarations, plus the frontend's synthetic array
17
16
  // HOF loops (`%arr.<method>.<n>`): those are plain direct-call
18
17
  // functions, and a literal callback gets a helper of its own.
19
- (fn.ownsPrototype || fn.name.startsWith("%arr.")) &&
20
- !fn.async &&
21
- !fn.generator &&
18
+ // Generator declarations are entered through their spawn wrapper,
19
+ // which moves the same arguments into the generator's frame.
20
+ (fn.ownsPrototype || fn.name.startsWith("%arr.") || fn.generator !== undefined) &&
21
+ (!fn.async || fn.generator !== undefined) &&
22
22
  !fn.captures &&
23
23
  !fn.classCaptures &&
24
24
  fn.params.some((param) => param.type.kind === "func"))
@@ -46,12 +46,35 @@ export function findConstantCallbacks(mod, lifetimes) {
46
46
  const immutable = new Set(fn.locals.filter((local) => !local.mutable && local.type.kind === "func").map((l) => l.id));
47
47
  const callees = new Set();
48
48
  const stable = lifetimes.bindings.get(fn.name);
49
+ // A hoisted function declaration binds its box with `varDecl f null`
50
+ // and fills it with one `assign f = closure`: with no other write, that
51
+ // value is the binding's only definition.
52
+ const hoisted = new Set(fn.locals
53
+ .filter((local) => local.mutable && local.type.kind === "func")
54
+ .map((local) => local.id));
55
+ const emptyDecls = new Map();
56
+ const assigned = new Map();
57
+ const rebound = new Set();
49
58
  everyStmtList(fn.body, {
50
59
  stmt: (stmt) => {
51
60
  if (stmt.kind === "varDecl" && stmt.init?.type.kind === "func" && stable?.has(stmt.localId))
52
61
  defs.set(stmt.localId, stmt.init);
53
62
  if (stmt.kind === "varDecl" && immutable.has(stmt.localId))
54
63
  consts.set(stmt.localId, consts.has(stmt.localId) ? null : stmt.init);
64
+ if (stmt.kind === "varDecl" && hoisted.has(stmt.localId)) {
65
+ if (stmt.init !== null)
66
+ rebound.add(stmt.localId);
67
+ emptyDecls.set(stmt.localId, (emptyDecls.get(stmt.localId) ?? 0) + 1);
68
+ }
69
+ if (stmt.kind === "assign" && hoisted.has(stmt.localId)) {
70
+ const values = assigned.get(stmt.localId) ?? [];
71
+ values.push(stmt.value);
72
+ assigned.set(stmt.localId, values);
73
+ }
74
+ if (stmt.kind === "forOf" || stmt.kind === "rethrow")
75
+ rebound.add(stmt.localId);
76
+ if (stmt.kind === "tryCatch" && stmt.catchLocalId !== null)
77
+ rebound.add(stmt.catchLocalId);
55
78
  if (stmt.kind === "assign") {
56
79
  if (globalIds.has(stmt.localId)) {
57
80
  if (globals.has(stmt.localId))
@@ -80,9 +103,14 @@ export function findConstantCallbacks(mod, lifetimes) {
80
103
  }
81
104
  if ((expr.kind === "assignExpr" || expr.kind === "incDec") && globalIds.has(expr.localId))
82
105
  writes.add(expr.localId);
106
+ if (expr.kind === "assignExpr" || expr.kind === "incDec")
107
+ rebound.add(expr.localId);
83
108
  return true;
84
109
  },
85
110
  });
111
+ for (const [id, values] of assigned)
112
+ if (emptyDecls.get(id) === 1 && values.length === 1 && !rebound.has(id))
113
+ consts.set(id, values[0]);
86
114
  definitions.set(fn.name, defs);
87
115
  constDefinitions.set(fn.name, consts);
88
116
  indirectCallees.set(fn.name, callees);
@@ -194,7 +222,9 @@ export function findConstantCallbacks(mod, lifetimes) {
194
222
  fn.params.forEach((param, index) => {
195
223
  if (!needed.has(param.localId) ||
196
224
  param.type.kind !== "func" ||
197
- !lifetimes.borrowed.get(fn.name)?.has(index))
225
+ !(fn.generator !== undefined
226
+ ? lifetimes.generatorParameters.get(fn.name)?.has(param.localId)
227
+ : lifetimes.borrowed.get(fn.name)?.has(index)))
198
228
  return;
199
229
  let target = null;
200
230
  for (const call of calls) {
@@ -215,218 +245,5 @@ export function findConstantCallbacks(mod, lifetimes) {
215
245
  }
216
246
  return result;
217
247
  }
218
- /** Expression kinds that run no user code of their own and never consult
219
- * the ambient receiver stack. Calls are admitted here and resolved through
220
- * the module call graph below; callValue brackets its own receiver. */
221
- const RECEIVER_FREE_EXPRS = new Set([
222
- "numLit",
223
- "boolLit",
224
- "strLit",
225
- "unitLit",
226
- "varRef",
227
- "bin",
228
- "unary",
229
- "logical",
230
- "ternary",
231
- "seqExpr",
232
- "incDec",
233
- "fieldIncDec",
234
- "assignExpr",
235
- "toBool",
236
- "toString",
237
- "strConcat",
238
- "strEq",
239
- "strCmp",
240
- "nullish",
241
- "orDefault",
242
- "unionWrap",
243
- "unionRetype",
244
- "unionNarrow",
245
- "unionIsTag",
246
- "unionEq",
247
- "unionDisc",
248
- "upcast",
249
- "downcast",
250
- "instanceOf",
251
- "fieldGet",
252
- "recordGet",
253
- "recordLit",
254
- "recordClone",
255
- "arrayGet",
256
- "arrayHas",
257
- "arrayState",
258
- "arrayLit",
259
- "arrayNewLen",
260
- "selfRef",
261
- "closure",
262
- "callValue",
263
- "call",
264
- "new",
265
- "virtualCall",
266
- "libCall",
267
- "arrIntrinsic",
268
- "strIntrinsic",
269
- "mapIntrinsic",
270
- "setIntrinsic",
271
- "mapNew",
272
- "setNew",
273
- ]);
274
- const RECEIVER_FREE_STMTS = new Set([
275
- "varDecl",
276
- "assign",
277
- "exprStmt",
278
- "return",
279
- "if",
280
- "while",
281
- "doWhile",
282
- "for",
283
- "switch",
284
- "block",
285
- "break",
286
- "continue",
287
- "fieldSet",
288
- "recordSet",
289
- "arraySet",
290
- "arraySetUndefined",
291
- "arraySetLength",
292
- "throw",
293
- "rethrow",
294
- "tryCatch",
295
- // The deferred compile fence throws a fixed catchable Error
296
- // (scr_throw_error_msg_code).
297
- "runtimeFence",
298
- ]);
299
- /** Runtime library calls beyond scalar Math that only compute or build and
300
- * park a native error: the f64[] folds behind Math.max/min(...xs),
301
- * `new Error(message)` (scr_error_new), and the checked-read TypeError
302
- * (scr_throw_node_coded). */
303
- const RECEIVER_FREE_LIB_FNS = new Set([
304
- "math.maxArr",
305
- "math.minArr",
306
- "error.new",
307
- "error.nodeThrow",
308
- ]);
309
- /** Typed container and string operations. Their runtime paths compare and
310
- * copy values but never call back into compiled code, as long as no
311
- * operand is a function or a checked value. */
312
- /** Operands of a data intrinsic (receiver first), or null when `e` is not
313
- * one. A switch over the kinds keeps this inside the self-hosted subset,
314
- * which has no `in` on IR expression unions. */
315
- function dataIntrinsicOperands(e) {
316
- switch (e.kind) {
317
- case "arrIntrinsic":
318
- case "strIntrinsic":
319
- case "mapIntrinsic":
320
- case "setIntrinsic":
321
- return [e.receiver, ...e.args];
322
- case "mapNew":
323
- case "setNew":
324
- return [];
325
- default:
326
- return null;
327
- }
328
- }
329
- function opaqueOperand(e) {
330
- const kind = e.type.kind;
331
- return kind === "func" || kind === "dyn" || kind === "caught";
332
- }
333
- /** The functions that may observe the ambient receiver stack when entered
334
- * without a fresh binding: the JS `this` read (libCall dyn.this), async and
335
- * generator creation (which snapshot it), checked-value operations,
336
- * diagnostics-channel stores, and anything outside the admitted kinds; then
337
- * every function that can reach one through a direct call, constructor or
338
- * virtual dispatch (a backward reachability fixpoint, so recursion such as
339
- * a tree walker's `evaluate` resolves exactly). A known callback outside
340
- * this set needs no receiver bracket. */
341
- export class AmbientReceiverReaders {
342
- functions;
343
- readers = null;
344
- constructor(functions) {
345
- this.functions = functions;
346
- }
347
- ignores(fn) {
348
- if (fn.async || fn.generator)
349
- return false;
350
- return !this.compute().has(fn.name);
351
- }
352
- compute() {
353
- if (this.readers)
354
- return this.readers;
355
- const byMethod = new Map();
356
- for (const name of this.functions.keys()) {
357
- const dot = name.lastIndexOf(".");
358
- if (!name.startsWith("%") || dot < 0)
359
- continue;
360
- const method = name.slice(dot + 1);
361
- const list = byMethod.get(method) ?? [];
362
- list.push(name);
363
- byMethod.set(method, list);
364
- }
365
- const readers = new Set();
366
- const callers = new Map();
367
- for (const fn of this.functions.values()) {
368
- const callees = new Set();
369
- let reads = fn.async === true || fn.generator !== undefined;
370
- const edge = (name) => {
371
- if (!this.functions.has(name))
372
- return false;
373
- callees.add(name);
374
- return true;
375
- };
376
- if (!reads)
377
- reads = !everyStmtList(fn.body, {
378
- stmt: (stmt) => RECEIVER_FREE_STMTS.has(stmt.kind),
379
- expr: (expr) => {
380
- if (!RECEIVER_FREE_EXPRS.has(expr.kind))
381
- return false;
382
- switch (expr.kind) {
383
- case "call":
384
- return edge(expr.callee);
385
- case "new":
386
- return edge(`%${expr.className}.constructor`);
387
- case "virtualCall": {
388
- // Any class's override may run: admit only when every
389
- // same-named method is itself receiver-free.
390
- const targets = byMethod.get(expr.method) ?? [];
391
- return targets.length > 0 && targets.every(edge);
392
- }
393
- case "libCall":
394
- return isBorrowSafeMath(expr.fn) || RECEIVER_FREE_LIB_FNS.has(expr.fn);
395
- case "toString":
396
- return !opaqueOperand(expr.operand);
397
- default: {
398
- const operands = dataIntrinsicOperands(expr);
399
- return operands === null || !operands.some(opaqueOperand);
400
- }
401
- }
402
- },
403
- });
404
- if (reads)
405
- readers.add(fn.name);
406
- for (const callee of callees) {
407
- const list = callers.get(callee) ?? [];
408
- list.push(fn.name);
409
- callers.set(callee, list);
410
- }
411
- }
412
- const work = [...readers];
413
- while (work.length > 0) {
414
- for (const caller of callers.get(work.pop()) ?? []) {
415
- if (readers.has(caller))
416
- continue;
417
- readers.add(caller);
418
- work.push(caller);
419
- }
420
- }
421
- this.readers = readers;
422
- return readers;
423
- }
424
- }
425
- /** A known callback that cannot observe ambient this needs no receiver
426
- * stack bracket. Standalone form of AmbientReceiverReaders over the given
427
- * functions (by default only the callback itself, so any call stays on the
428
- * ABI path). */
429
- export function callbackIgnoresReceiver(fn, functions = new Map([[fn.name, fn]])) {
430
- return new AmbientReceiverReaders(functions).ignores(fn);
431
- }
248
+ export { AmbientReceiverReaders, callbackIgnoresReceiver } from "../../ir/receiver-readers.js";
432
249
  //# sourceMappingURL=constant-callbacks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constant-callbacks.js","sourceRoot":"","sources":["../../../src/backend/llvm/constant-callbacks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constant-callbacks.js","sourceRoot":"","sources":["../../../src/backend/llvm/constant-callbacks.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,28 @@ test.each(["multiple", "escape", "write", "metadata", "suspend", "synthetic"])("
97
97
  delete consumer.ownsPrototype;
98
98
  expect(facts(mod).get("consume")?.has("test")).not.toBe(true);
99
99
  });
100
+ test.each(["sync", "async"])("a %s generator's unchanged callback parameter specializes through its spawn calls", (kind) => {
101
+ const mod = fixture();
102
+ const consumer = mod.functions[1];
103
+ delete consumer.ownsPrototype;
104
+ consumer.generator = {
105
+ yieldT: BOOL,
106
+ nextT: VOID,
107
+ resultType: { kind: "record", shapeId: "r0" },
108
+ };
109
+ if (kind === "async")
110
+ consumer.async = true;
111
+ expect(analyzeCallLifetimes(new Map(mod.functions.map((fn) => [fn.name, fn])))).toMatchObject({
112
+ generatorParameters: new Map([["consume", new Set(["test"])]]),
113
+ });
114
+ expect(facts(mod).get("consume")?.get("test")).toBe("predicate");
115
+ // A rebound or captured parameter is no stable owner.
116
+ consumer.body.unshift({ kind: "assign", localId: "test", value: closure("predicate"), loc });
117
+ expect(facts(mod).get("consume")?.has("test")).not.toBe(true);
118
+ consumer.body.shift();
119
+ consumer.locals[0].boxed = true;
120
+ expect(facts(mod).get("consume")?.has("test")).not.toBe(true);
121
+ });
100
122
  test("global closure aliases resolve without borrowing the caller's local namespace", () => {
101
123
  const mod = fixture();
102
124
  const entry = mod.functions[2];
@@ -1 +1 @@
1
- {"version":3,"file":"constant-callbacks.test.js","sourceRoot":"","sources":["../../../src/backend/llvm/constant-callbacks.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constant-callbacks.test.js","sourceRoot":"","sources":["../../../src/backend/llvm/constant-callbacks.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,15 @@ import type { LlValue, LlvmEmitterContext } from "./expr-context.js";
6
6
  * array header loads out of loops whose only calls are these cold paths. */
7
7
  export declare const READ_FALLBACK = " cold memory(read, inaccessiblemem: readwrite)";
8
8
  export type ArrayAccess = "f64" | "bool" | "ref";
9
+ /** Before a self-append (`a[i] = a[i] + suffix`) replaces a reference
10
+ * element: when `index` lies in the hole-free prefix and the slot still
11
+ * holds `expected` (the caller's owned snapshot of the old element), the
12
+ * slot takes `placeholder` (an immortal value of the element type) and the
13
+ * array's reference is released, so a snapshot nobody else holds becomes
14
+ * unique and the append can extend it in place. The caller must store into
15
+ * the same slot before any code can observe the array again. Every other
16
+ * index leaves the array untouched. */
17
+ export declare function emitDenseSlotUnlink(host: LlvmEmitterContext, array: string, index: LlValue, indexExpr: IrExpr | undefined, expected: string, placeholder: string, element: IrType): void;
9
18
  /** Strict element read with the runtime getter's result contract: a
10
19
  * double, an i1, or a pointer that is +1 (`retain`) or borrowed. The
11
20
  * runtime getter keeps the trap for holes, present undefined, and missing
@@ -63,7 +63,7 @@ function emitDenseGuard(host, array, index, indexExpr, slow, requireBelowLen, fi
63
63
  const loadChecked = () => {
64
64
  B.line(`${lenPtr} = getelementptr inbounds %ScrArr, ptr ${array}, i32 0, i32 1`);
65
65
  host.markMemoryPointer(lenPtr, "array:header");
66
- B.line(`${len} = load ${size}, ptr ${lenPtr}${host.fieldAliasAttachment(lenPtr)}`);
66
+ B.line(`${len} = load ${size}, ptr ${lenPtr}${host.fieldAliasAttachment(lenPtr)}${host.arrayLengthRange}`);
67
67
  B.line(`${capPtr} = getelementptr inbounds %ScrArr, ptr ${array}, i32 0, i32 2`);
68
68
  host.markMemoryPointer(capPtr, "array:header");
69
69
  B.line(`${cap} = load ${size}, ptr ${capPtr}${host.fieldAliasAttachment(capPtr)}`);
@@ -164,6 +164,32 @@ function loadState(host, guard) {
164
164
  host.B.line(`${state} = load i8, ptr ${ptr}${host.fieldAliasAttachment(ptr)}`);
165
165
  return state;
166
166
  }
167
+ /** Before a self-append (`a[i] = a[i] + suffix`) replaces a reference
168
+ * element: when `index` lies in the hole-free prefix and the slot still
169
+ * holds `expected` (the caller's owned snapshot of the old element), the
170
+ * slot takes `placeholder` (an immortal value of the element type) and the
171
+ * array's reference is released, so a snapshot nobody else holds becomes
172
+ * unique and the append can extend it in place. The caller must store into
173
+ * the same slot before any code can observe the array again. Every other
174
+ * index leaves the array untouched. */
175
+ export function emitDenseSlotUnlink(host, array, index, indexExpr, expected, placeholder, element) {
176
+ const B = host.B;
177
+ const unlink = B.newLabel("arr.unlink"), swap = B.newLabel("arr.unlink.swap"), done = B.newLabel("arr.unlink.done");
178
+ const guard = emitDenseGuard(host, array, index, indexExpr, done, true, unlink);
179
+ // The state-checked dense block: leave holes and the tail to the store.
180
+ B.br(done);
181
+ B.startBlock(unlink);
182
+ const valuePtr = valuePointer(host, guard, "ref");
183
+ const current = B.tmp(), same = B.tmp();
184
+ B.line(`${current} = load ptr, ptr ${valuePtr}${host.fieldAliasAttachment(valuePtr)}`);
185
+ B.line(`${same} = icmp eq ptr ${current}, ${expected}`);
186
+ B.condBr(same, swap, done);
187
+ B.startBlock(swap);
188
+ B.line(`store ptr ${placeholder}, ptr ${valuePtr}${host.fieldAliasAttachment(valuePtr)}`);
189
+ host.releaseValue(current, element);
190
+ B.br(done);
191
+ B.startBlock(done);
192
+ }
167
193
  /** Strict element read with the runtime getter's result contract: a
168
194
  * double, an i1, or a pointer that is +1 (`retain`) or borrowed. The
169
195
  * runtime getter keeps the trap for holes, present undefined, and missing
@@ -1 +1 @@
1
- {"version":3,"file":"dense-array-access.js","sourceRoot":"","sources":["../../../src/backend/llvm/dense-array-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dense-array-access.js","sourceRoot":"","sources":["../../../src/backend/llvm/dense-array-access.ts"],"names":[],"mappings":"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"}
@@ -168,6 +168,7 @@ export declare class LlDyn {
168
168
  dynMatchHelper(t: IrType, preserveRefs?: boolean): string;
169
169
  private readonly jsonSchemas;
170
170
  private readonly jsonParsers;
171
+ private readonly recordNameTables;
171
172
  /** Targets the one-pass parser (scr_json_parse_schema) can build
172
173
  * directly: number, boolean and string leaves inside arrays and plain
173
174
  * records (no tuple, index signature, internal '%' slot or `__proto__`
@@ -178,6 +179,11 @@ export declare class LlDyn {
178
179
  * fields in declaration order — the order JSON.stringify writes — so the
179
180
  * runtime's next-field guess usually matches without a scan. */
180
181
  private jsonSchema;
182
+ /** The declared-name tables scr_record_source_note scans: parallel
183
+ * constant arrays of field-name bytes and byte lengths in declaration
184
+ * order (the order the record serializes), interned per shape. Internal
185
+ * '%'-fields follow, so they never count as undeclared source keys. */
186
+ private recordNameTable;
181
187
  /** `sc_jp_<n>(ptr text) -> T` for `JSON.parse(text) as T`, or null when T
182
188
  * is not a schema target. Tries the one-pass schema parser; when it
183
189
  * declines (any input the checked route might reject or read