@scriptc/compiler 0.2.5 → 0.2.6

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 (307) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +57 -30
  2. package/dist/backend/cycle-analysis.test.js +1 -1
  3. package/dist/backend/executable-features.js +1 -0
  4. package/dist/backend/executable-features.js.map +1 -1
  5. package/dist/backend/link-plan-core.d.ts +2 -0
  6. package/dist/backend/link-plan-core.js +1 -0
  7. package/dist/backend/link-plan-core.js.map +1 -1
  8. package/dist/backend/link-plan.d.ts +1 -0
  9. package/dist/backend/link-plan.js +3 -0
  10. package/dist/backend/link-plan.js.map +1 -1
  11. package/dist/backend/llvm/byte-numbers.js +32 -4
  12. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  13. package/dist/backend/llvm/byte-windows.d.ts +31 -0
  14. package/dist/backend/llvm/byte-windows.js +334 -0
  15. package/dist/backend/llvm/byte-windows.js.map +1 -0
  16. package/dist/backend/llvm/byte-windows.test.d.ts +1 -0
  17. package/dist/backend/llvm/byte-windows.test.js +244 -0
  18. package/dist/backend/llvm/byte-windows.test.js.map +1 -0
  19. package/dist/backend/llvm/call-lifetimes.d.ts +2 -2
  20. package/dist/backend/llvm/call-lifetimes.js +17 -7
  21. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  22. package/dist/backend/llvm/classes.d.ts +14 -1
  23. package/dist/backend/llvm/classes.js +80 -9
  24. package/dist/backend/llvm/classes.js.map +1 -1
  25. package/dist/backend/llvm/classes.test.d.ts +1 -0
  26. package/dist/backend/llvm/classes.test.js +99 -0
  27. package/dist/backend/llvm/classes.test.js.map +1 -0
  28. package/dist/backend/llvm/constant-callbacks.d.ts +11 -0
  29. package/dist/backend/llvm/constant-callbacks.js +213 -0
  30. package/dist/backend/llvm/constant-callbacks.js.map +1 -0
  31. package/dist/backend/llvm/constant-callbacks.test.d.ts +1 -0
  32. package/dist/backend/llvm/constant-callbacks.test.js +124 -0
  33. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -0
  34. package/dist/backend/llvm/dyn.d.ts +1 -1
  35. package/dist/backend/llvm/dyn.js +7 -34
  36. package/dist/backend/llvm/dyn.js.map +1 -1
  37. package/dist/backend/llvm/emitter.d.ts +19 -0
  38. package/dist/backend/llvm/emitter.js +274 -46
  39. package/dist/backend/llvm/emitter.js.map +1 -1
  40. package/dist/backend/llvm/emitter.test.js +17 -11
  41. package/dist/backend/llvm/emitter.test.js.map +1 -1
  42. package/dist/backend/llvm/expr-bytes.js +11 -0
  43. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  44. package/dist/backend/llvm/expr-calls.js +91 -23
  45. package/dist/backend/llvm/expr-calls.js.map +1 -1
  46. package/dist/backend/llvm/expr-containers.js +21 -9
  47. package/dist/backend/llvm/expr-containers.js.map +1 -1
  48. package/dist/backend/llvm/expr-dynamic.js +36 -3
  49. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  50. package/dist/backend/llvm/expr-primitives.js +7 -0
  51. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  52. package/dist/backend/llvm/expr-primitives.test.js +1 -1
  53. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  54. package/dist/backend/llvm/integer-remainder.d.ts +7 -0
  55. package/dist/backend/llvm/integer-remainder.js +26 -0
  56. package/dist/backend/llvm/integer-remainder.js.map +1 -0
  57. package/dist/backend/llvm/layouts.js +1 -1
  58. package/dist/backend/llvm/layouts.js.map +1 -1
  59. package/dist/backend/llvm/lib-abi.js +7 -0
  60. package/dist/backend/llvm/lib-abi.js.map +1 -1
  61. package/dist/backend/llvm/lib-dispatch.js +7 -22
  62. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  63. package/dist/backend/llvm/lib-shared.js +15 -0
  64. package/dist/backend/llvm/lib-shared.js.map +1 -1
  65. package/dist/backend/llvm/local-array-reads.d.ts +8 -2
  66. package/dist/backend/llvm/local-array-reads.js +89 -68
  67. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  68. package/dist/backend/llvm/local-array-reads.test.js +28 -4
  69. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  70. package/dist/backend/llvm/local-union-storage.test.js +1 -1
  71. package/dist/backend/llvm/loop-array-borrows.d.ts +11 -0
  72. package/dist/backend/llvm/loop-array-borrows.js +70 -0
  73. package/dist/backend/llvm/loop-array-borrows.js.map +1 -0
  74. package/dist/backend/llvm/loop-array-borrows.test.d.ts +1 -0
  75. package/dist/backend/llvm/loop-array-borrows.test.js +145 -0
  76. package/dist/backend/llvm/loop-array-borrows.test.js.map +1 -0
  77. package/dist/backend/llvm/map-read-lifetimes.d.ts +5 -0
  78. package/dist/backend/llvm/map-read-lifetimes.js +20 -5
  79. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  80. package/dist/backend/llvm/map-read-lifetimes.test.js +1 -1
  81. package/dist/backend/llvm/reference-effects.d.ts +2 -1
  82. package/dist/backend/llvm/reference-effects.js +7 -0
  83. package/dist/backend/llvm/reference-effects.js.map +1 -1
  84. package/dist/backend/llvm/shapes.d.ts +4 -1
  85. package/dist/backend/llvm/shapes.js +22 -7
  86. package/dist/backend/llvm/shapes.js.map +1 -1
  87. package/dist/backend/llvm/split-loops.d.ts +48 -0
  88. package/dist/backend/llvm/split-loops.js +183 -0
  89. package/dist/backend/llvm/split-loops.js.map +1 -0
  90. package/dist/backend/llvm/split.js +0 -7
  91. package/dist/backend/llvm/split.js.map +1 -1
  92. package/dist/backend/llvm/split.test.js +66 -2
  93. package/dist/backend/llvm/split.test.js.map +1 -1
  94. package/dist/backend/llvm/stack-callbacks.d.ts +14 -0
  95. package/dist/backend/llvm/stack-callbacks.js +73 -0
  96. package/dist/backend/llvm/stack-callbacks.js.map +1 -0
  97. package/dist/backend/llvm/stack-captures.d.ts +25 -0
  98. package/dist/backend/llvm/stack-captures.js +150 -0
  99. package/dist/backend/llvm/stack-captures.js.map +1 -0
  100. package/dist/backend/llvm/stack-unions.test.js +1 -1
  101. package/dist/backend/llvm/string-construction.test.js +1 -1
  102. package/dist/backend/llvm/string-lifetimes.test.js +8 -4
  103. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  104. package/dist/backend/llvm/string-slices.d.ts +20 -0
  105. package/dist/backend/llvm/string-slices.js +87 -0
  106. package/dist/backend/llvm/string-slices.js.map +1 -0
  107. package/dist/backend/llvm/string-slices.test.d.ts +1 -0
  108. package/dist/backend/llvm/string-slices.test.js +98 -0
  109. package/dist/backend/llvm/string-slices.test.js.map +1 -0
  110. package/dist/backend/llvm/switch-dispatch.test.js +1 -1
  111. package/dist/backend/llvm/walkers.d.ts +4 -14
  112. package/dist/backend/llvm/walkers.js +53 -311
  113. package/dist/backend/llvm/walkers.js.map +1 -1
  114. package/dist/backend/may-throw.js +1 -1
  115. package/dist/backend/may-throw.js.map +1 -1
  116. package/dist/backend/may-throw.test.js +1 -1
  117. package/dist/backend/native/contracts.d.ts +2 -0
  118. package/dist/backend/native/executable.js +12 -4
  119. package/dist/backend/native/executable.js.map +1 -1
  120. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  121. package/dist/backend/native/runtime-inputs.js +2 -0
  122. package/dist/backend/native/runtime-inputs.js.map +1 -1
  123. package/dist/backend/native-codegen-core.d.ts +6 -0
  124. package/dist/backend/native-codegen-core.js +21 -0
  125. package/dist/backend/native-codegen-core.js.map +1 -1
  126. package/dist/backend/native-codegen.d.ts +4 -0
  127. package/dist/backend/native-codegen.js +34 -18
  128. package/dist/backend/native-codegen.js.map +1 -1
  129. package/dist/backend/native-codegen.test.js +47 -2
  130. package/dist/backend/native-codegen.test.js.map +1 -1
  131. package/dist/backend/native-link-info-core.d.ts +1 -0
  132. package/dist/backend/native-link-info-core.js.map +1 -1
  133. package/dist/backend/native-tools.d.ts +3 -1
  134. package/dist/backend/native-tools.js +6 -4
  135. package/dist/backend/native-tools.js.map +1 -1
  136. package/dist/backend/runtime-abi.d.ts +2 -2
  137. package/dist/backend/runtime-abi.js +2 -2
  138. package/dist/backend/runtime-pack-core.d.ts +1 -0
  139. package/dist/backend/runtime-pack-core.js +8 -1
  140. package/dist/backend/runtime-pack-core.js.map +1 -1
  141. package/dist/backend/runtime-pack-targets.test.js +41 -4
  142. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  143. package/dist/backend/runtime-pack.test.js +11 -1
  144. package/dist/backend/runtime-pack.test.js.map +1 -1
  145. package/dist/backend/target-diagnostics.test.js +1 -1
  146. package/dist/executable/executable-cache.d.ts +1 -0
  147. package/dist/executable/executable-cache.js +2 -1
  148. package/dist/executable/executable-cache.js.map +1 -1
  149. package/dist/executable/executable-cache.test.js +15 -0
  150. package/dist/executable/executable-cache.test.js.map +1 -1
  151. package/dist/frontend/fork-target.d.ts +5 -0
  152. package/dist/frontend/fork-target.js +40 -8
  153. package/dist/frontend/fork-target.js.map +1 -1
  154. package/dist/frontend/fork-target.test.d.ts +1 -0
  155. package/dist/frontend/fork-target.test.js +59 -0
  156. package/dist/frontend/fork-target.test.js.map +1 -0
  157. package/dist/frontend/lowering/binding-analysis.js +2 -2
  158. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  159. package/dist/frontend/lowering/builtins/atomics.d.ts +2 -11
  160. package/dist/frontend/lowering/builtins/atomics.js +64 -28
  161. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  162. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +3 -0
  163. package/dist/frontend/lowering/builtins/filesystem-calls.js +51 -4
  164. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  165. package/dist/frontend/lowering/builtins/module-calls.js +6 -1
  166. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  167. package/dist/frontend/lowering/builtins/workers.d.ts +5 -0
  168. package/dist/frontend/lowering/builtins/workers.js +65 -0
  169. package/dist/frontend/lowering/builtins/workers.js.map +1 -0
  170. package/dist/frontend/lowering/class-assertions.d.ts +7 -0
  171. package/dist/frontend/lowering/class-assertions.js +96 -0
  172. package/dist/frontend/lowering/class-assertions.js.map +1 -0
  173. package/dist/frontend/lowering/class-protocols.d.ts +17 -0
  174. package/dist/frontend/lowering/class-protocols.js +126 -0
  175. package/dist/frontend/lowering/class-protocols.js.map +1 -0
  176. package/dist/frontend/lowering/containers/array-callbacks.d.ts +7 -11
  177. package/dist/frontend/lowering/containers/array-callbacks.js +52 -87
  178. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  179. package/dist/frontend/lowering/containers/bytes.js +12 -34
  180. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  181. package/dist/frontend/lowering/containers/string-and-regexp.js +22 -3
  182. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  183. package/dist/frontend/lowering/expressions/object-literals.js +2 -6
  184. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  185. package/dist/frontend/lowering/generic-functions.d.ts +2 -5
  186. package/dist/frontend/lowering/generic-functions.js +13 -10
  187. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  188. package/dist/frontend/lowering/instantiation-path.d.ts +8 -0
  189. package/dist/frontend/lowering/instantiation-path.js +10 -0
  190. package/dist/frontend/lowering/instantiation-path.js.map +1 -0
  191. package/dist/frontend/lowering/instantiation-path.test.d.ts +1 -0
  192. package/dist/frontend/lowering/instantiation-path.test.js +23 -0
  193. package/dist/frontend/lowering/instantiation-path.test.js.map +1 -0
  194. package/dist/frontend/lowering/lower-builtin-values.js +11 -7
  195. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  196. package/dist/frontend/lowering/lower-calls.js +36 -3
  197. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  198. package/dist/frontend/lowering/lower-classes.d.ts +5 -0
  199. package/dist/frontend/lowering/lower-classes.js +121 -53
  200. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  201. package/dist/frontend/lowering/lower-event-emitter.js +1 -1
  202. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  203. package/dist/frontend/lowering/lower-exprs.js +31 -10
  204. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  205. package/dist/frontend/lowering/lower-functions.d.ts +1 -1
  206. package/dist/frontend/lowering/lower-functions.js +2 -2
  207. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  208. package/dist/frontend/lowering/lower-island.js +1 -1
  209. package/dist/frontend/lowering/lower-island.js.map +1 -1
  210. package/dist/frontend/lowering/lower-modules.d.ts +1 -0
  211. package/dist/frontend/lowering/lower-modules.js +44 -9
  212. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  213. package/dist/frontend/lowering/lower-stmts.js +13 -11
  214. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  215. package/dist/frontend/lowering/lower-stream.js +1 -1
  216. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  217. package/dist/frontend/lowering/lowerer.d.ts +13 -1
  218. package/dist/frontend/lowering/lowerer.js +51 -9
  219. package/dist/frontend/lowering/lowerer.js.map +1 -1
  220. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  221. package/dist/frontend/lowering/split-consumers.d.ts +7 -0
  222. package/dist/frontend/lowering/split-consumers.js +64 -0
  223. package/dist/frontend/lowering/split-consumers.js.map +1 -0
  224. package/dist/frontend/lowering/surfaces.d.ts +3 -4
  225. package/dist/frontend/lowering/surfaces.js +35 -7
  226. package/dist/frontend/lowering/surfaces.js.map +1 -1
  227. package/dist/frontend/module-source-candidates.d.ts +10 -0
  228. package/dist/frontend/module-source-candidates.js +40 -0
  229. package/dist/frontend/module-source-candidates.js.map +1 -0
  230. package/dist/frontend/module-source-candidates.test.d.ts +1 -0
  231. package/dist/frontend/module-source-candidates.test.js +53 -0
  232. package/dist/frontend/module-source-candidates.test.js.map +1 -0
  233. package/dist/frontend/pipeline.js +2 -2
  234. package/dist/frontend/pipeline.js.map +1 -1
  235. package/dist/frontend/program-analysis.d.ts +2 -0
  236. package/dist/frontend/program-analysis.js +2 -0
  237. package/dist/frontend/program-analysis.js.map +1 -1
  238. package/dist/frontend/program.js +17 -29
  239. package/dist/frontend/program.js.map +1 -1
  240. package/dist/frontend/ts7/ast-node.js +6 -8
  241. package/dist/frontend/ts7/ast-node.js.map +1 -1
  242. package/dist/frontend/ts7/ast-node.test.js +42 -1
  243. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  244. package/dist/frontend/ts7/ast-wire.d.ts +4 -0
  245. package/dist/frontend/ts7/ast-wire.js +28 -0
  246. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  247. package/dist/frontend/ts7/ast.d.ts +2 -1
  248. package/dist/frontend/ts7/ast.js +8 -4
  249. package/dist/frontend/ts7/ast.js.map +1 -1
  250. package/dist/frontend/ts7/checker.d.ts +8 -2
  251. package/dist/frontend/ts7/checker.js +41 -5
  252. package/dist/frontend/ts7/checker.js.map +1 -1
  253. package/dist/frontend/ts7/checker.test.js +42 -0
  254. package/dist/frontend/ts7/checker.test.js.map +1 -1
  255. package/dist/frontend/ts7/program-host.d.ts +7 -0
  256. package/dist/frontend/ts7/program-host.js +26 -2
  257. package/dist/frontend/ts7/program-host.js.map +1 -1
  258. package/dist/frontend/ts7/program-host.test.js +29 -0
  259. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  260. package/dist/frontend/type-mapper.d.ts +3 -0
  261. package/dist/frontend/type-mapper.js +44 -2
  262. package/dist/frontend/type-mapper.js.map +1 -1
  263. package/dist/frontend/worker-target.d.ts +6 -0
  264. package/dist/frontend/worker-target.js +108 -0
  265. package/dist/frontend/worker-target.js.map +1 -0
  266. package/dist/frontend/worker-target.test.d.ts +1 -0
  267. package/dist/frontend/worker-target.test.js +71 -0
  268. package/dist/frontend/worker-target.test.js.map +1 -0
  269. package/dist/index.js +24 -7
  270. package/dist/index.js.map +1 -1
  271. package/dist/ir/builtin-effects.js +12 -0
  272. package/dist/ir/builtin-effects.js.map +1 -1
  273. package/dist/ir/builtin-signatures.d.ts +1 -1
  274. package/dist/ir/builtin-signatures.js +13 -12
  275. package/dist/ir/builtin-signatures.js.map +1 -1
  276. package/dist/ir/constant-tables.test.js +1 -1
  277. package/dist/ir/initializer-bindings.test.js +1 -1
  278. package/dist/ir/ir.d.ts +9 -10
  279. package/dist/ir/ir.js.map +1 -1
  280. package/dist/ir/numeric-call-specialization.d.ts +8 -0
  281. package/dist/ir/numeric-call-specialization.js +198 -0
  282. package/dist/ir/numeric-call-specialization.js.map +1 -0
  283. package/dist/ir/runtime-features.js +4 -3
  284. package/dist/ir/runtime-features.js.map +1 -1
  285. package/dist/ir/scalar-records.test.js +1 -1
  286. package/dist/ir/serialize.d.ts +1 -1
  287. package/dist/ir/serialize.js +3 -3
  288. package/dist/ir/serialize.js.map +1 -1
  289. package/dist/ir/validate.js +89 -23
  290. package/dist/ir/validate.js.map +1 -1
  291. package/dist/ir/validate.test.js +91 -4
  292. package/dist/ir/validate.test.js.map +1 -1
  293. package/dist/library/fence-eval.test.js +1 -1
  294. package/dist/library/int-infer.test.js +4 -4
  295. package/dist/library/ir-policy.js +2 -0
  296. package/dist/library/ir-policy.js.map +1 -1
  297. package/dist/library/library-cache.test.js +5 -5
  298. package/dist/native/compiler.js +24 -11
  299. package/dist/native/compiler.js.map +1 -1
  300. package/dist/native/compiler.test.js +7 -3
  301. package/dist/native/compiler.test.js.map +1 -1
  302. package/dist/native/prepare.js +2 -0
  303. package/dist/native/prepare.js.map +1 -1
  304. package/dist/native/sanitizer.test.js +1 -0
  305. package/dist/native/sanitizer.test.js.map +1 -1
  306. package/package.json +20 -20
  307. package/surface-manifest.json +30 -2
@@ -601,7 +601,7 @@ interface BufferConstructor {
601
601
  from(data: string, encoding?: BufferEncoding): Buffer;
602
602
  /* The ArrayBuffer form is the VIEW construction: x.buffer with an
603
603
  * optional byte offset/length shares x's storage (the subarray rule). */
604
- from(data: ArrayBuffer, byteOffset?: number, length?: number): Buffer;
604
+ from(data: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer;
605
605
  from(data: Uint8Array | readonly number[]): Buffer;
606
606
  alloc(size: number, fill?: string | number | Uint8Array, encoding?: BufferEncoding): Buffer;
607
607
  compare(buf1: Uint8Array, buf2: Uint8Array): number;
@@ -1118,24 +1118,13 @@ interface ImportMeta {
1118
1118
  * directory, open 'x'"). `rmSync` removes FILES only (like Node without
1119
1119
  * `recursive`); empty directories go through `rmdirSync`. */
1120
1120
  declare module "node:fs" {
1121
- /* The lowered forms first. The string-encoding overload's result is
1122
- * CONDITIONAL so a runtime encoding value (an untyped JS parameter —
1123
- * test/common fixtures.js's readFixtureKey(name, enc)) infers `any`
1124
- * (the lowering dispatches at runtime: undefined/null read Buffers,
1125
- * utf8 a string, anything else throws) while a literal utf8 keeps the
1126
- * string result TypeScript callers chain on. The encoding-less
1127
- * overload is the Buffer read. */
1128
- export function readFileSync<T extends string>(
1129
- path: string,
1130
- encoding: T,
1131
- ): T extends "utf8" ? string : T extends "utf-8" ? string : any;
1132
- export function readFileSync(path: string): Buffer;
1133
- /* The file-descriptor forms — a read(2) loop to EOF from the current
1134
- * position; the stdin pattern is readFileSync(0, "utf8"). */
1135
- export function readFileSync(fd: number, encoding: "utf8" | "utf-8"): string;
1136
- export function readFileSync(fd: number): Buffer;
1137
- /* The options-object spelling of the utf8 form. */
1138
- export function readFileSync(path: string, options: { encoding: "utf8" | "utf-8" }): string;
1121
+ export function readFileSync(path: string | number, encoding: BufferEncoding): string;
1122
+ export function readFileSync(
1123
+ path: string | number,
1124
+ options: { encoding: BufferEncoding },
1125
+ ): string;
1126
+ export function readFileSync(path: string | number): Buffer;
1127
+ export function readFileSync(path: string, options: unknown): string | Buffer;
1139
1128
  /* Error-first callbacks select string or Buffer data from their encoding.
1140
1129
  * Unknown options retain that union until the caller validates the value. */
1141
1130
  export function readFile(
@@ -4107,23 +4096,61 @@ declare module "node:dns" {
4107
4096
  export * from "dns";
4108
4097
  }
4109
4098
 
4110
- /* node:worker_threads — the MAIN-THREAD slice only. A compiled binary is
4111
- * always the main thread (no JS-engine thread machinery exists), so
4112
- * isMainThread lowers to `true` and threadId to 0 — Node's main-thread
4113
- * answers exactly. Worker itself is declared surface without a lowering:
4114
- * constructing one fences at the site; the CLASS as a value participates
4115
- * in identity-only flows. */
4099
+ /* node:worker_threads — native workers use statically compiled entry points.
4100
+ * Lowering and runtime diagnostics define the supported options and methods. */
4116
4101
  declare module "worker_threads" {
4117
4102
  export const isMainThread: boolean;
4103
+ export const isInternalThread: boolean;
4118
4104
  export const threadId: number;
4105
+ export interface WorkerOptions {
4106
+ workerData?: unknown;
4107
+ transferList?: readonly unknown[];
4108
+ argv?: readonly unknown[];
4109
+ name?: string;
4110
+ [option: string]: unknown;
4111
+ }
4119
4112
  export class Worker {
4120
- constructor(filename: string | URL, options?: unknown);
4121
- on(event: string, listener: (...args: unknown[]) => void): void;
4122
- postMessage(value: unknown): void;
4113
+ constructor(filename: string | URL, options?: WorkerOptions);
4114
+ readonly threadId: number;
4115
+ on(event: "online", listener: () => void): this;
4116
+ on(event: "message", listener: (value: any) => void): this;
4117
+ on(event: "error", listener: (error: Error) => void): this;
4118
+ on(event: "exit", listener: (code: number) => void): this;
4119
+ on(event: string, listener: (...args: any[]) => void): this;
4120
+ once(event: string, listener: (...args: any[]) => void): this;
4121
+ off(event: string, listener: (...args: any[]) => void): this;
4122
+ addListener(event: string, listener: (...args: any[]) => void): this;
4123
+ removeListener(event: string, listener: (...args: any[]) => void): this;
4124
+ prependListener(event: string, listener: (...args: any[]) => void): this;
4125
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
4126
+ postMessage(value: unknown, transferList?: readonly unknown[]): void;
4127
+ ref(): void;
4128
+ unref(): void;
4123
4129
  terminate(): Promise<number>;
4130
+ removeAllListeners(event?: string): this;
4131
+ listenerCount(event: string, listener?: (...args: any[]) => void): number;
4132
+ }
4133
+ export class MessagePort {
4134
+ on(event: "message", listener: (value: any) => void): this;
4135
+ on(event: "close", listener: () => void): this;
4136
+ on(event: string, listener: (...args: any[]) => void): this;
4137
+ once(event: string, listener: (...args: any[]) => void): this;
4138
+ off(event: string, listener: (...args: any[]) => void): this;
4139
+ addListener(event: string, listener: (...args: any[]) => void): this;
4140
+ removeListener(event: string, listener: (...args: any[]) => void): this;
4141
+ prependListener(event: string, listener: (...args: any[]) => void): this;
4142
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
4143
+ postMessage(value: unknown, transferList?: readonly unknown[]): void;
4144
+ start(): void;
4145
+ close(callback?: () => void): void;
4146
+ ref(): void;
4147
+ unref(): void;
4148
+ hasRef(): boolean;
4149
+ removeAllListeners(event?: string): this;
4150
+ listenerCount(event: string, listener?: (...args: any[]) => void): number;
4124
4151
  }
4125
- export const parentPort: unknown;
4126
- export const workerData: unknown;
4152
+ export const parentPort: MessagePort | null;
4153
+ export const workerData: any;
4127
4154
  }
4128
4155
  declare module "node:worker_threads" {
4129
4156
  export * from "worker_threads";
@@ -5,7 +5,7 @@ import { computeTraced as llvmTraced } from "./llvm/shapes.js";
5
5
  const loc = { file: "cycles.ts", start: 0, end: 1 };
6
6
  function module() {
7
7
  return {
8
- irVersion: 13,
8
+ irVersion: 14,
9
9
  sourceFile: loc.file,
10
10
  entry: "main",
11
11
  functions: [{ name: "main", locals: [], params: [], returnType: VOID, body: [], loc }],
@@ -5,6 +5,7 @@ import { hasForeignFfiCallback } from "./ffi-callbacks.js";
5
5
  export function executableLinkFeatures(mod, dynamic) {
6
6
  const features = moduleRuntimeFeatures(mod);
7
7
  return {
8
+ ...(mod.workers ? { workers: true } : {}),
8
9
  dynamic,
9
10
  regex: features.regex,
10
11
  copying: features.copying,
@@ -1 +1 @@
1
- {"version":3,"file":"executable-features.js","sourceRoot":"","sources":["../../src/backend/executable-features.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CAAC,GAAa,EAAE,OAAgB;IACpE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,OAAO;QACP,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,SAAS,EACP,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC;YACrC,mBAAmB,CAAC,GAAG,EAAE,YAAY,CAAC;YACtC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC;YACpC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,yBAAyB,CAAC,GAAG,CAAC;QACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"executable-features.js","sourceRoot":"","sources":["../../src/backend/executable-features.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CAAC,GAAa,EAAE,OAAgB;IACpE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO;QACP,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,SAAS,EACP,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC;YACrC,mBAAmB,CAAC,GAAG,EAAE,YAAY,CAAC;YACtC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC;YACpC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,yBAAyB,CAAC,GAAG,CAAC;QACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
@@ -8,6 +8,8 @@ export interface ExecutableLinkInputs {
8
8
  export declare function executableLinkInputs(options: {
9
9
  target: NativeTargetSpec;
10
10
  programObject: string;
11
+ /** Further objects of the same partitioned program. */
12
+ programPartitions?: readonly string[];
11
13
  ffiLibraries: readonly string[];
12
14
  ffiSystemLibraries: readonly string[];
13
15
  ffiFrameworks: readonly string[];
@@ -6,6 +6,7 @@ export function executableLinkInputs(options) {
6
6
  return {
7
7
  inputs: [
8
8
  options.programObject,
9
+ ...(options.programPartitions ?? []),
9
10
  ...options.ffiLibraries,
10
11
  ...options.runtimeObjects,
11
12
  ...options.runtimeArchives,
@@ -1 +1 @@
1
- {"version":3,"file":"link-plan-core.js","sourceRoot":"","sources":["../../src/backend/link-plan-core.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,0BAA0B,GAG3B,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,oBAAoB,CAAC,OAYpC;IACC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAC5E,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,OAAO;QACL,MAAM,EAAE;YACN,OAAO,CAAC,aAAa;YACrB,GAAG,OAAO,CAAC,YAAY;YACvB,GAAG,OAAO,CAAC,cAAc;YACzB,GAAG,OAAO,CAAC,eAAe;SAC3B;QACD,eAAe,EAAE;YACf,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;SAC/E;QACD,WAAW,EAAE;YACX,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAChE,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC9D,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CACrF;YACD,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC;YAClF,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;YAC7E,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC;SACjF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"link-plan-core.js","sourceRoot":"","sources":["../../src/backend/link-plan-core.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,0BAA0B,GAG3B,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,oBAAoB,CAAC,OAcpC;IACC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAC5E,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,OAAO;QACL,MAAM,EAAE;YACN,OAAO,CAAC,aAAa;YACrB,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;YACpC,GAAG,OAAO,CAAC,YAAY;YACvB,GAAG,OAAO,CAAC,cAAc;YACzB,GAAG,OAAO,CAAC,eAAe;SAC3B;QACD,eAAe,EAAE;YACf,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;SAC/E;QACD,WAAW,EAAE;YACX,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAChE,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC9D,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CACrF;YACD,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC;YAClF,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;YAC7E,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC;SACjF;KACF,CAAC;AACJ,CAAC"}
@@ -28,6 +28,7 @@ export interface NativeLinkPlan {
28
28
  export declare function createNativeLinkPlan(options: {
29
29
  target: NativeTargetSpec;
30
30
  programObject: string;
31
+ programPartitions?: readonly string[];
31
32
  outPath: string;
32
33
  features: NativeLinkFeatures;
33
34
  ffi: FfiProfile | null;
@@ -12,6 +12,9 @@ export async function createNativeLinkPlan(options) {
12
12
  ...executableLinkInputs({
13
13
  target: options.target,
14
14
  programObject: options.programObject,
15
+ ...(options.programPartitions === undefined
16
+ ? {}
17
+ : { programPartitions: options.programPartitions }),
15
18
  ffiLibraries: options.ffi?.libraries ?? [],
16
19
  ffiSystemLibraries: options.ffi?.systemLibraries ?? [],
17
20
  ffiFrameworks: options.ffi?.frameworks ?? [],
@@ -1 +1 @@
1
- {"version":3,"file":"link-plan.js","sourceRoot":"","sources":["../../src/backend/link-plan.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA6B,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAY1C;IACC,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACzE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,kBAAkB,EAAE,uBAAuB,CACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,EACvB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,KAAK,CACd;QACD,UAAU,EAAE,OAAO,CAAC,OAAO;QAC3B,GAAG,oBAAoB,CAAC;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;YAC1C,kBAAkB,EAAE,OAAO,CAAC,GAAG,EAAE,eAAe,IAAI,EAAE;YACtD,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE;YAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,eAAe,EAAE,WAAW,CAAC,QAAQ;YACrC,sBAAsB,EAAE,WAAW,CAAC,eAAe;YACnD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;SACpD,CAAC;QACF,eAAe,EAAE,CAAC,GAAG,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACpF,yBAAyB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACzE,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"link-plan.js","sourceRoot":"","sources":["../../src/backend/link-plan.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA6B,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAa1C;IACC,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACzE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,kBAAkB,EAAE,uBAAuB,CACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,EACvB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,KAAK,CACd;QACD,UAAU,EAAE,OAAO,CAAC,OAAO;QAC3B,GAAG,oBAAoB,CAAC;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;gBACzC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACrD,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;YAC1C,kBAAkB,EAAE,OAAO,CAAC,GAAG,EAAE,eAAe,IAAI,EAAE;YACtD,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE;YAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,eAAe,EAAE,WAAW,CAAC,QAAQ;YACrC,sBAAsB,EAAE,WAAW,CAAC,eAAe;YACnD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;SACpD,CAAC;QACF,eAAe,EAAE,CAAC,GAAG,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACpF,yBAAyB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACzE,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -33,12 +33,20 @@ function endianBits(host, raw, width, little) {
33
33
  * DataView's ToIndex behavior, and exception cleanup through the host. All
34
34
  * operands have already been evaluated, exactly once and in source order. */
35
35
  export function emitByteNumber(host, e, spec, receiver, offset, value, little, fallback) {
36
+ if (host.mod.workers)
37
+ return fallback();
36
38
  const B = host.B, size = host.sizeType;
37
39
  const slow = B.newLabel("bytes.number.slow"), access = B.newLabel("bytes.number.access");
38
40
  const fastDone = B.newLabel("bytes.number.fast.done"), slowDone = B.newLabel("bytes.number.slow.done");
39
41
  const done = B.newLabel("bytes.number.done");
40
42
  const bits = spec.width * 8;
41
43
  const integer = exactInteger(host, offset, e.args[spec.offsetArg]);
44
+ const valueRange = spec.write && !spec.dataView && !spec.floating ? byteNumberRange(spec) : null;
45
+ const knownValue = valueRange ? host.integerRanges.get(e.args[spec.valueArg]) : null;
46
+ const checked = !(integer &&
47
+ host.bytesBounds.has(e) &&
48
+ (!valueRange ||
49
+ (knownValue && knownValue.min >= valueRange.min && knownValue.max <= valueRange.max)));
42
50
  let index, fits, room = "true";
43
51
  if (integer && host.bytesBounds.has(e)) {
44
52
  const wide = widenInteger(host, integer);
@@ -112,8 +120,11 @@ export function emitByteNumber(host, e, spec, receiver, offset, value, little, f
112
120
  }
113
121
  }
114
122
  }
115
- let valid = B.tmp();
116
- B.line(`${valid} = and i1 ${room}, ${fits}`);
123
+ let valid = "true";
124
+ if (checked) {
125
+ valid = B.tmp();
126
+ B.line(`${valid} = and i1 ${room}, ${fits}`);
127
+ }
117
128
  if (spec.write && !spec.dataView && !spec.floating) {
118
129
  const range = byteNumberRange(spec);
119
130
  const known = host.integerRanges.get(e.args[spec.valueArg]);
@@ -128,8 +139,10 @@ export function emitByteNumber(host, e, spec, receiver, offset, value, little, f
128
139
  valid = both;
129
140
  }
130
141
  }
131
- B.condBr(valid, access, slow);
132
- B.startBlock(access);
142
+ if (checked) {
143
+ B.condBr(valid, access, slow);
144
+ B.startBlock(access);
145
+ }
133
146
  const data = host.emitBytesData(receiver.name), pointer = B.tmp();
134
147
  B.line(`${pointer} = getelementptr inbounds i8, ptr ${data}, ${size} ${index}`);
135
148
  let fastResult = "", fastInteger = "";
@@ -204,6 +217,21 @@ export function emitByteNumber(host, e, spec, receiver, offset, value, little, f
204
217
  }
205
218
  }
206
219
  }
220
+ if (!checked) {
221
+ if (e.type.kind === "void")
222
+ return { name: "", type: e.type };
223
+ if (!readRange)
224
+ return { name: fastResult, type: e.type };
225
+ const uint32 = integerType === "i32" ? fastInteger : B.tmp();
226
+ if (integerType !== "i32")
227
+ B.line(`${uint32} = trunc i64 ${fastInteger} to i32`);
228
+ return {
229
+ name: fastResult,
230
+ type: e.type,
231
+ uint32,
232
+ integer: { name: fastInteger, type: integerType, signed: spec.signed, range: readRange },
233
+ };
234
+ }
207
235
  B.br(fastDone);
208
236
  B.startBlock(fastDone);
209
237
  B.br(done);
@@ -1 +1 @@
1
- {"version":3,"file":"byte-numbers.js","sourceRoot":"","sources":["../../../src/backend/llvm/byte-numbers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAyB,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEjE;gFACgF;AAChF,SAAS,UAAU,CAAC,IAAwB,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;IACtF,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IACjD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EACd,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,YAAY,IAAI,IAAI,GAAG,QAAQ,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,YAAY,QAAQ,iBAAiB,QAAQ,KAAK,QAAQ,GAAG,CAAC,CAAC;IAC5E,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,YAAY,QAAQ,iBAAiB,QAAQ,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IAC3F,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,EACrB,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,YAAY,QAAQ,IAAI,OAAO,KAAK,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,aAAa,QAAQ,IAAI,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,gBAAgB,MAAM,MAAM,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;6EAG6E;AAC7E,MAAM,UAAU,cAAc,CAC5B,IAAwB,EACxB,CAAsC,EACtC,IAAsB,EACtB,QAAiB,EACjB,MAAe,EACf,KAAqB,EACrB,MAAc,EACd,QAAuB;IAEvB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EACd,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAC1C,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EACnD,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,IAAI,KAAa,EACf,IAAY,EACZ,IAAI,GAAG,MAAM,CAAC;IAChB,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,KAAK;YAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,EACvB,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,EAChB,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,4CAA4C,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC;QAC9F,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,IAAI,SAAS,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,UAAU,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAChD,IAAI,IAAI,KAAK,KAAK;gBAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,IAAI,IAAI,QAAQ,SAAS,CAAC,CAAC;YACvE,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACjE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAClB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,IAAI,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YACD,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACxC,IAAI,IAAI,KAAK,KAAK;gBAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,gBAAgB,GAAG,YAAY,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzF,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;gBACvD,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,yCAAyC,YAAY,GAAG,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,EAClB,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,EACvB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,EAC1B,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,IAAI,IAAI,QAAQ,YAAY,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,sBAAsB,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,sBAAsB,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC;YAC7D,oEAAoE;YACpE,oEAAoE;YACpE,CAAC,CAAC,IAAI,CACJ,GAAG,aAAa,sBAAsB,UAAU,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAClG,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,aAAa,KAAK,KAAK,aAAa,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,aAAa,IAAI,KAAK,YAAY,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACtB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,UAAU,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,aAAa,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,sBAAsB,SAAS,KAAK,UAAU,EAAE,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,EAC5B,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,eAAe,IAAI,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,aAAa,IAAI,KAAK,cAAc,EAAE,CAAC,CAAC;YAC7D,IAAI,GAAG,WAAW,CAAC;YACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAClB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,sBAAsB,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EACnB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EACf,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,EACnB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACjB,kEAAkE;YAClE,kEAAkE;YAClE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,sBAAsB,KAAM,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,sBAAsB,KAAM,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,aAAa,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC;YAClD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IACD,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5C,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,qCAAqC,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAChF,IAAI,UAAU,GAAG,EAAE,EACjB,WAAW,GAAG,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,MAAM,GAAG,KAAM,CAAC,IAAI,CAAC;YACzB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,KAAM,CAAC,IAAI,WAAW,CAAC,CAAC;YAC/D,CAAC;YACD,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,QAAQ,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAM,CAAC,MAAM,CAAC,CAAC;YACpF,GAAG,GAAG,MAAM,CAAC;YACb,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;gBACd,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACd,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,MAAM,QAAQ,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,KAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvE,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChE,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC;gBACxB,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC;oBACrC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBACd,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,EACpB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,KAAM,CAAC,IAAI,KAAK,KAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,gBAAgB,GAAG,YAAY,MAAM,CAAC,CAAC,CAAC,YAAY,KAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvF,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,UAAU,SAAS,CAAC,CAAC;gBACxD,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACd,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,MAAM,SAAS,OAAO,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,kBAAkB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,IAAI,SAAS,OAAO,WAAW,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,kBAAkB,GAAG,WAAW,CAAC,CAAC;gBACjD,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,kBAAkB,KAAK,YAAY,CAAC,CAAC;YAC3D,CAAC;;gBAAM,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,kBAAkB,GAAG,YAAY,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC;YACzF,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,GAAG,GAAG,CAAC;gBAClB,IAAI,IAAI,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;oBAC/B,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,CAAC,CAAC,IAAI,CACJ,GAAG,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,OAAO,WAAW,EAAE,CACtF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACf,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,SAAS,EAAE,CAAC;QACd,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC,CAAC,IAAI,CACJ,GAAG,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,WAAW,OAAO,CAAC,IAAI,OAAO,WAAW,EAAE,CACjG,CAAC;IACJ,CAAC;IACD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACf,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CACJ,GAAG,MAAM,mBAAmB,UAAU,MAAM,QAAQ,SAAS,OAAO,CAAC,IAAI,MAAM,QAAQ,IAAI,CAC5F,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CACJ,GAAG,OAAO,UAAU,WAAW,MAAM,WAAW,MAAM,QAAQ,SAAS,WAAW,MAAM,QAAQ,IAAI,CACrG,CAAC;QACF,MAAM,MAAM,GAAG,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACzD,IAAI,WAAW,KAAK,KAAK;YAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,OAAO,SAAS,CAAC,CAAC;QAC7E,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;SACrF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"byte-numbers.js","sourceRoot":"","sources":["../../../src/backend/llvm/byte-numbers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { LlvmEmitterContext } from "./expr-context.js";
2
+ import type { IrExpr, IrFunction, IrLocal, IrStmt } from "../../ir/ir.js";
3
+ import type { IntegerRanges } from "../../ir/integer-ranges.js";
4
+ import type { IntegerCountedForLoop } from "../../ir/integer-loops.js";
5
+ export interface ByteWindow {
6
+ receiver: IrExpr;
7
+ stride: number;
8
+ bounds: ReadonlySet<IrExpr | IrStmt>;
9
+ ranges: IntegerRanges;
10
+ targets: {
11
+ receiver: IrExpr;
12
+ cursor: IrExpr & {
13
+ kind: "varRef";
14
+ };
15
+ stride: number;
16
+ }[];
17
+ }
18
+ /** Extra receivers are read before the loop only when their initialization
19
+ * dominates its head. In particular, a zero-iteration loop must not start
20
+ * reading an otherwise unused, uninitialized output binding. */
21
+ export declare function findInitializedByteLoopBindings(fn: IrFunction): ReadonlyMap<IrStmt, ReadonlySet<string>>;
22
+ /** A complete-record guard proves both the last field's extent and exact
23
+ * affine offsets. The checked loop remains authoritative for partial input.
24
+ * Only bounded, synchronous bodies with stable direct receivers qualify. */
25
+ export declare function matchByteWindow(loop: IrStmt & {
26
+ kind: "for";
27
+ }, counted: IntegerCountedForLoop, locals: ReadonlyMap<string, IrLocal>, captured: ReadonlySet<string>, ranges: IntegerRanges, initialized: ReadonlySet<string>): ByteWindow | null;
28
+ /** Compare record capacities with division so expanding output records
29
+ * cannot overflow either target's address width. Raw extents establish
30
+ * safe-number limits separately from each field's value validation. */
31
+ export declare function emitByteWindowGuard(host: LlvmEmitterContext, window: ByteWindow): string;