@scriptc/compiler 0.0.35 → 0.0.36

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 (418) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +7 -6
  2. package/dist/backend/build-cache.d.ts +44 -0
  3. package/dist/backend/build-cache.js +241 -0
  4. package/dist/backend/build-cache.js.map +1 -0
  5. package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
  6. package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
  7. package/dist/backend/c/async.js.map +1 -0
  8. package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
  9. package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
  10. package/dist/backend/c/c-emitter.js.map +1 -0
  11. package/dist/backend/c/exprs.d.ts +8 -0
  12. package/dist/backend/c/exprs.js +7913 -0
  13. package/dist/backend/c/exprs.js.map +1 -0
  14. package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
  15. package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
  16. package/dist/backend/c/island.js.map +1 -0
  17. package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
  18. package/dist/backend/{emission → c}/may-throw.js +1 -1
  19. package/dist/backend/c/may-throw.js.map +1 -0
  20. package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
  21. package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
  22. package/dist/backend/c/shapes.js.map +1 -0
  23. package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
  24. package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +377 -343
  25. package/dist/backend/c/stmts.js.map +1 -0
  26. package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
  27. package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
  28. package/dist/backend/c/types.js.map +1 -0
  29. package/dist/backend/c/types.test.js +25 -0
  30. package/dist/backend/c/types.test.js.map +1 -0
  31. package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
  32. package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +238 -298
  33. package/dist/backend/c/walkers.js.map +1 -0
  34. package/dist/backend/ffi-callbacks.d.ts +1 -1
  35. package/dist/backend/ffi-callbacks.js +4 -3
  36. package/dist/backend/ffi-callbacks.js.map +1 -1
  37. package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
  38. package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
  39. package/dist/backend/library-identity-markers.js.map +1 -0
  40. package/dist/backend/llvm/blocks.d.ts +4 -0
  41. package/dist/backend/llvm/blocks.js +29 -0
  42. package/dist/backend/llvm/blocks.js.map +1 -1
  43. package/dist/backend/llvm/classes.d.ts +2 -19
  44. package/dist/backend/llvm/classes.js +20 -52
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/common.d.ts +4 -0
  47. package/dist/backend/llvm/common.js +27 -0
  48. package/dist/backend/llvm/common.js.map +1 -0
  49. package/dist/backend/llvm/dyn.d.ts +3 -8
  50. package/dist/backend/llvm/dyn.js +152 -224
  51. package/dist/backend/llvm/dyn.js.map +1 -1
  52. package/dist/backend/llvm/emitter.d.ts +4 -1
  53. package/dist/backend/llvm/emitter.js +514 -9981
  54. package/dist/backend/llvm/emitter.js.map +1 -1
  55. package/dist/backend/llvm/expr-async.d.ts +4 -0
  56. package/dist/backend/llvm/expr-async.js +726 -0
  57. package/dist/backend/llvm/expr-async.js.map +1 -0
  58. package/dist/backend/llvm/expr-bytes.d.ts +13 -0
  59. package/dist/backend/llvm/expr-bytes.js +456 -0
  60. package/dist/backend/llvm/expr-bytes.js.map +1 -0
  61. package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
  62. package/dist/backend/llvm/expr-callbacks.js +520 -0
  63. package/dist/backend/llvm/expr-callbacks.js.map +1 -0
  64. package/dist/backend/llvm/expr-calls.d.ts +2 -0
  65. package/dist/backend/llvm/expr-calls.js +618 -0
  66. package/dist/backend/llvm/expr-calls.js.map +1 -0
  67. package/dist/backend/llvm/expr-containers.d.ts +25 -0
  68. package/dist/backend/llvm/expr-containers.js +623 -0
  69. package/dist/backend/llvm/expr-containers.js.map +1 -0
  70. package/dist/backend/llvm/expr-context.d.ts +255 -0
  71. package/dist/backend/llvm/expr-context.js +2 -0
  72. package/dist/backend/llvm/expr-context.js.map +1 -0
  73. package/dist/backend/llvm/expr-control.d.ts +2 -0
  74. package/dist/backend/llvm/expr-control.js +473 -0
  75. package/dist/backend/llvm/expr-control.js.map +1 -0
  76. package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
  77. package/dist/backend/llvm/expr-dispatch.js +151 -0
  78. package/dist/backend/llvm/expr-dispatch.js.map +1 -0
  79. package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
  80. package/dist/backend/llvm/expr-dynamic.js +810 -0
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -0
  82. package/dist/backend/llvm/expr-island.d.ts +15 -0
  83. package/dist/backend/llvm/expr-island.js +690 -0
  84. package/dist/backend/llvm/expr-island.js.map +1 -0
  85. package/dist/backend/llvm/expr-primitives.d.ts +6 -0
  86. package/dist/backend/llvm/expr-primitives.js +622 -0
  87. package/dist/backend/llvm/expr-primitives.js.map +1 -0
  88. package/dist/backend/llvm/expr-records.d.ts +9 -0
  89. package/dist/backend/llvm/expr-records.js +299 -0
  90. package/dist/backend/llvm/expr-records.js.map +1 -0
  91. package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
  92. package/dist/backend/llvm/expr-stream-bridges.js +396 -0
  93. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
  94. package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
  95. package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
  96. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
  97. package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
  98. package/dist/backend/llvm/lib-dispatch.js +267 -0
  99. package/dist/backend/llvm/lib-dispatch.js.map +1 -0
  100. package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
  101. package/dist/backend/llvm/lib-filesystem.js +594 -0
  102. package/dist/backend/llvm/lib-filesystem.js.map +1 -0
  103. package/dist/backend/llvm/lib-network.d.ts +2 -0
  104. package/dist/backend/llvm/lib-network.js +429 -0
  105. package/dist/backend/llvm/lib-network.js.map +1 -0
  106. package/dist/backend/llvm/lib-process.d.ts +5 -0
  107. package/dist/backend/llvm/lib-process.js +585 -0
  108. package/dist/backend/llvm/lib-process.js.map +1 -0
  109. package/dist/backend/llvm/lib-shared.d.ts +6 -0
  110. package/dist/backend/llvm/lib-shared.js +687 -0
  111. package/dist/backend/llvm/lib-shared.js.map +1 -0
  112. package/dist/backend/llvm/lib-stream.d.ts +2 -0
  113. package/dist/backend/llvm/lib-stream.js +470 -0
  114. package/dist/backend/llvm/lib-stream.js.map +1 -0
  115. package/dist/backend/llvm/shapes.d.ts +12 -2
  116. package/dist/backend/llvm/shapes.js +66 -307
  117. package/dist/backend/llvm/shapes.js.map +1 -1
  118. package/dist/backend/llvm/shapes.test.js +52 -0
  119. package/dist/backend/llvm/shapes.test.js.map +1 -0
  120. package/dist/backend/llvm/unsupported.d.ts +1 -1
  121. package/dist/backend/llvm/walkers.d.ts +2 -3
  122. package/dist/backend/llvm/walkers.js +164 -218
  123. package/dist/backend/llvm/walkers.js.map +1 -1
  124. package/dist/backend/native-codegen.d.ts +38 -0
  125. package/dist/backend/native-codegen.js +261 -0
  126. package/dist/backend/native-codegen.js.map +1 -0
  127. package/dist/backend/native-codegen.test.js +188 -0
  128. package/dist/backend/native-codegen.test.js.map +1 -0
  129. package/dist/backend/native-link-info.d.ts +96 -0
  130. package/dist/backend/native-link-info.js +219 -0
  131. package/dist/backend/native-link-info.js.map +1 -0
  132. package/dist/backend/native-link-info.test.d.ts +1 -0
  133. package/dist/backend/native-link-info.test.js +134 -0
  134. package/dist/backend/native-link-info.test.js.map +1 -0
  135. package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +54 -34
  136. package/dist/backend/{cc.js → native-toolchain.js} +231 -810
  137. package/dist/backend/native-toolchain.js.map +1 -0
  138. package/dist/backend/native-toolchain.test.d.ts +1 -0
  139. package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +214 -6
  140. package/dist/backend/native-toolchain.test.js.map +1 -0
  141. package/dist/backend/object-localize.js +1 -1
  142. package/dist/backend/runtime-abi.d.ts +10 -0
  143. package/dist/backend/runtime-abi.js +11 -0
  144. package/dist/backend/runtime-abi.js.map +1 -0
  145. package/dist/backend/runtime-pack.d.ts +137 -0
  146. package/dist/backend/runtime-pack.js +400 -0
  147. package/dist/backend/runtime-pack.js.map +1 -0
  148. package/dist/backend/runtime-pack.test.d.ts +1 -0
  149. package/dist/backend/runtime-pack.test.js +438 -0
  150. package/dist/backend/runtime-pack.test.js.map +1 -0
  151. package/dist/backend/targets.d.ts +30 -0
  152. package/dist/backend/targets.js +46 -0
  153. package/dist/backend/targets.js.map +1 -0
  154. package/dist/backend/targets.test.d.ts +1 -0
  155. package/dist/backend/targets.test.js +19 -0
  156. package/dist/backend/targets.test.js.map +1 -0
  157. package/dist/backend/vendor-archives.d.ts +41 -0
  158. package/dist/backend/vendor-archives.js +462 -0
  159. package/dist/backend/vendor-archives.js.map +1 -0
  160. package/dist/compat/fetch-profile.d.ts +0 -1
  161. package/dist/compat/fetch-profile.js +0 -1
  162. package/dist/compat/fetch-profile.js.map +1 -1
  163. package/dist/coverage/report.js +3 -3
  164. package/dist/coverage/report.js.map +1 -1
  165. package/dist/coverage/surface-manifest.js +25 -32
  166. package/dist/coverage/surface-manifest.js.map +1 -1
  167. package/dist/diagnostics/diagnostic.d.ts +11 -12
  168. package/dist/diagnostics/diagnostic.js +19 -17
  169. package/dist/diagnostics/diagnostic.js.map +1 -1
  170. package/dist/diagnostics/render.d.ts +1 -1
  171. package/dist/diagnostics/render.js +1 -1
  172. package/dist/diagnostics/render.js.map +1 -1
  173. package/dist/errors.d.ts +5 -0
  174. package/dist/errors.js +9 -0
  175. package/dist/errors.js.map +1 -0
  176. package/dist/executable/{early-cache.d.ts → executable-cache.d.ts} +2 -2
  177. package/dist/executable/{early-cache.js → executable-cache.js} +36 -98
  178. package/dist/executable/executable-cache.js.map +1 -0
  179. package/dist/executable/executable-cache.test.d.ts +1 -0
  180. package/dist/executable/{early-cache.test.js → executable-cache.test.js} +3 -3
  181. package/dist/executable/executable-cache.test.js.map +1 -0
  182. package/dist/ffi/{profile.js → ffi-manifest.js} +1 -1
  183. package/dist/ffi/ffi-manifest.js.map +1 -0
  184. package/dist/frontend/builtin-modules.d.ts +21 -0
  185. package/dist/frontend/builtin-modules.js +82 -0
  186. package/dist/frontend/builtin-modules.js.map +1 -0
  187. package/dist/frontend/cjs-lexer.d.ts +7 -0
  188. package/dist/frontend/cjs-lexer.js +15 -17
  189. package/dist/frontend/cjs-lexer.js.map +1 -1
  190. package/dist/frontend/dts-paths.d.ts +26 -0
  191. package/dist/frontend/dts-paths.js +41 -0
  192. package/dist/frontend/dts-paths.js.map +1 -0
  193. package/dist/frontend/input-tracker.d.ts +0 -2
  194. package/dist/frontend/input-tracker.js +1 -4
  195. package/dist/frontend/input-tracker.js.map +1 -1
  196. package/dist/frontend/lib-contract.d.ts +1 -5
  197. package/dist/frontend/lib-contract.js +1 -1
  198. package/dist/frontend/lib-contract.js.map +1 -1
  199. package/dist/frontend/lib-exports.d.ts +1 -1
  200. package/dist/frontend/lowering/call-position.d.ts +4 -0
  201. package/dist/frontend/lowering/call-position.js +7 -0
  202. package/dist/frontend/lowering/call-position.js.map +1 -0
  203. package/dist/frontend/lowering/callback-arg.d.ts +20 -0
  204. package/dist/frontend/lowering/callback-arg.js +44 -0
  205. package/dist/frontend/lowering/callback-arg.js.map +1 -0
  206. package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
  207. package/dist/frontend/lowering/lib-boundary.js +34 -34
  208. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  209. package/dist/frontend/lowering/lower-assert.d.ts +3 -3
  210. package/dist/frontend/lowering/lower-assert.js +214 -241
  211. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  212. package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
  213. package/dist/frontend/lowering/lower-builtins.js +1124 -1232
  214. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  215. package/dist/frontend/lowering/lower-calls.d.ts +56 -188
  216. package/dist/frontend/lowering/lower-calls.js +1397 -1492
  217. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  218. package/dist/frontend/lowering/lower-classes.d.ts +62 -125
  219. package/dist/frontend/lowering/lower-classes.js +832 -866
  220. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  221. package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
  222. package/dist/frontend/lowering/lower-comptime.js +32 -31
  223. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  224. package/dist/frontend/lowering/lower-containers.d.ts +35 -135
  225. package/dist/frontend/lowering/lower-containers.js +1384 -1700
  226. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  227. package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
  228. package/dist/frontend/lowering/lower-dgram.js +97 -111
  229. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  230. package/dist/frontend/lowering/lower-enums.d.ts +4 -4
  231. package/dist/frontend/lowering/lower-enums.js +30 -30
  232. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  233. package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
  234. package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
  235. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
  236. package/dist/frontend/lowering/lower-expando.d.ts +5 -5
  237. package/dist/frontend/lowering/lower-expando.js +40 -40
  238. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  239. package/dist/frontend/lowering/lower-exprs.d.ts +56 -264
  240. package/dist/frontend/lowering/lower-exprs.js +1624 -1696
  241. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  242. package/dist/frontend/lowering/lower-generators.d.ts +6 -6
  243. package/dist/frontend/lowering/lower-generators.js +73 -72
  244. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  245. package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
  246. package/dist/frontend/lowering/lower-inspect.js +236 -238
  247. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  248. package/dist/frontend/lowering/lower-island.d.ts +34 -45
  249. package/dist/frontend/lowering/lower-island.js +437 -508
  250. package/dist/frontend/lowering/lower-island.js.map +1 -1
  251. package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
  252. package/dist/frontend/lowering/lower-mixins.js +85 -85
  253. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  254. package/dist/frontend/lowering/lower-modules.d.ts +12 -18
  255. package/dist/frontend/lowering/lower-modules.js +284 -283
  256. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  257. package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
  258. package/dist/frontend/lowering/lower-namespaces.js +123 -115
  259. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  260. package/dist/frontend/lowering/lower-server.d.ts +18 -25
  261. package/dist/frontend/lowering/lower-server.js +899 -899
  262. package/dist/frontend/lowering/lower-server.js.map +1 -1
  263. package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
  264. package/dist/frontend/lowering/lower-stmts.js +1175 -1228
  265. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  266. package/dist/frontend/lowering/lower-stream.d.ts +12 -12
  267. package/dist/frontend/lowering/lower-stream.js +300 -301
  268. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  269. package/dist/frontend/lowering/lower-test.d.ts +5 -5
  270. package/dist/frontend/lowering/lower-test.js +82 -82
  271. package/dist/frontend/lowering/lower-test.js.map +1 -1
  272. package/dist/frontend/lowering/lowerer.d.ts +60 -20
  273. package/dist/frontend/lowering/lowerer.js +191 -117
  274. package/dist/frontend/lowering/lowerer.js.map +1 -1
  275. package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
  276. package/dist/frontend/lowering/pairs-snapshot.js +85 -0
  277. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
  278. package/dist/frontend/lowering/static-this.d.ts +6 -0
  279. package/dist/frontend/lowering/static-this.js +24 -0
  280. package/dist/frontend/lowering/static-this.js.map +1 -0
  281. package/dist/frontend/lowering/surfaces.d.ts +14 -33
  282. package/dist/frontend/lowering/surfaces.js +63 -63
  283. package/dist/frontend/lowering/surfaces.js.map +1 -1
  284. package/dist/frontend/npm-static-rewrite.js +6 -28
  285. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  286. package/dist/frontend/npm-static.d.ts +0 -10
  287. package/dist/frontend/npm-static.js +4 -7
  288. package/dist/frontend/npm-static.js.map +1 -1
  289. package/dist/frontend/npm.d.ts +0 -24
  290. package/dist/frontend/npm.js +11 -85
  291. package/dist/frontend/npm.js.map +1 -1
  292. package/dist/frontend/program.d.ts +3 -1
  293. package/dist/frontend/program.js +9 -4
  294. package/dist/frontend/program.js.map +1 -1
  295. package/dist/frontend/provenance-registry.d.ts +0 -2
  296. package/dist/frontend/provenance-registry.js +0 -10
  297. package/dist/frontend/provenance-registry.js.map +1 -1
  298. package/dist/frontend/provenance.js +4 -7
  299. package/dist/frontend/provenance.js.map +1 -1
  300. package/dist/frontend/resolve.d.ts +7 -2
  301. package/dist/frontend/resolve.js +12 -17
  302. package/dist/frontend/resolve.js.map +1 -1
  303. package/dist/frontend/resolve.test.d.ts +1 -0
  304. package/dist/frontend/resolve.test.js +29 -0
  305. package/dist/frontend/resolve.test.js.map +1 -0
  306. package/dist/frontend/ts7/adapter.d.ts +2 -2
  307. package/dist/frontend/ts7/adapter.js +1 -1
  308. package/dist/frontend/ts7/adapter.js.map +1 -1
  309. package/dist/frontend/ts7/checker.js +2 -36
  310. package/dist/frontend/ts7/checker.js.map +1 -1
  311. package/dist/frontend/ts7/enums.js +2 -1
  312. package/dist/frontend/ts7/enums.js.map +1 -1
  313. package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
  314. package/dist/frontend/ts7/program-adapter.js.map +1 -0
  315. package/dist/frontend/ts7/world-check.d.ts +1 -3
  316. package/dist/frontend/ts7/world-check.js +3 -1
  317. package/dist/frontend/ts7/world-check.js.map +1 -1
  318. package/dist/frontend/tsc-codes.d.ts +8 -0
  319. package/dist/frontend/tsc-codes.js +109 -0
  320. package/dist/frontend/tsc-codes.js.map +1 -0
  321. package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
  322. package/dist/frontend/{types.js → type-mapper.js} +12 -11
  323. package/dist/frontend/type-mapper.js.map +1 -0
  324. package/dist/frontend/workspace-registry.d.ts +26 -0
  325. package/dist/frontend/workspace-registry.js +71 -0
  326. package/dist/frontend/workspace-registry.js.map +1 -0
  327. package/dist/index.d.ts +112 -30
  328. package/dist/index.js +512 -126
  329. package/dist/index.js.map +1 -1
  330. package/dist/ir/analysis.d.ts +37 -0
  331. package/dist/ir/analysis.js +118 -0
  332. package/dist/ir/analysis.js.map +1 -0
  333. package/dist/ir/analysis.test.d.ts +1 -0
  334. package/dist/ir/analysis.test.js +21 -0
  335. package/dist/ir/analysis.test.js.map +1 -0
  336. package/dist/ir/build.d.ts +9 -0
  337. package/dist/ir/build.js +33 -0
  338. package/dist/ir/build.js.map +1 -0
  339. package/dist/ir/integer-loops.d.ts +1 -1
  340. package/dist/ir/{nodes.d.ts → ir.d.ts} +54 -26
  341. package/dist/ir/{nodes.js → ir.js} +145 -141
  342. package/dist/ir/ir.js.map +1 -0
  343. package/dist/ir/ir.test.d.ts +1 -0
  344. package/dist/ir/ir.test.js +17 -0
  345. package/dist/ir/ir.test.js.map +1 -0
  346. package/dist/ir/serialize.d.ts +1 -1
  347. package/dist/ir/serialize.js +2 -1
  348. package/dist/ir/serialize.js.map +1 -1
  349. package/dist/ir/validate.d.ts +1 -1
  350. package/dist/ir/validate.js +10 -5
  351. package/dist/ir/validate.js.map +1 -1
  352. package/dist/library/cache-primitives.d.ts +24 -0
  353. package/dist/library/cache-primitives.js +83 -0
  354. package/dist/library/cache-primitives.js.map +1 -0
  355. package/dist/library/cache-reset.test.d.ts +1 -0
  356. package/dist/library/cache-reset.test.js +47 -0
  357. package/dist/library/cache-reset.test.js.map +1 -0
  358. package/dist/library/{implementation-identity.js → compiler-self-identity.js} +1 -1
  359. package/dist/library/compiler-self-identity.js.map +1 -0
  360. package/dist/library/fence-eval.d.ts +3 -1
  361. package/dist/library/fence-eval.js +5 -1
  362. package/dist/library/fence-eval.js.map +1 -1
  363. package/dist/library/int-infer.d.ts +1 -36
  364. package/dist/library/int-infer.js +17 -17
  365. package/dist/library/int-infer.js.map +1 -1
  366. package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
  367. package/dist/library/{early-cache.js → library-cache.js} +34 -89
  368. package/dist/library/library-cache.js.map +1 -0
  369. package/dist/library/library-cache.test.d.ts +1 -0
  370. package/dist/library/{early-cache.test.js → library-cache.test.js} +2 -2
  371. package/dist/library/library-cache.test.js.map +1 -0
  372. package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
  373. package/dist/library/{profile.js → library-profile.js} +18 -11
  374. package/dist/library/library-profile.js.map +1 -0
  375. package/dist/library/semantic-source.js +2 -1
  376. package/dist/library/semantic-source.js.map +1 -1
  377. package/dist/library/sidecar.d.ts +5 -2
  378. package/dist/library/sidecar.js +11 -5
  379. package/dist/library/sidecar.js.map +1 -1
  380. package/dist/startup-cache.d.ts +3 -3
  381. package/dist/startup-cache.js +2 -2
  382. package/dist/startup-cache.js.map +1 -1
  383. package/package.json +6 -2
  384. package/surface-manifest.json +1 -1
  385. package/dist/backend/cc-cache.test.js.map +0 -1
  386. package/dist/backend/cc.js.map +0 -1
  387. package/dist/backend/emission/emit-async.js.map +0 -1
  388. package/dist/backend/emission/emit-exprs.d.ts +0 -13
  389. package/dist/backend/emission/emit-exprs.js +0 -7407
  390. package/dist/backend/emission/emit-exprs.js.map +0 -1
  391. package/dist/backend/emission/emit-island.js.map +0 -1
  392. package/dist/backend/emission/emit-shapes.js.map +0 -1
  393. package/dist/backend/emission/emit-stmts.js.map +0 -1
  394. package/dist/backend/emission/emit-types.js.map +0 -1
  395. package/dist/backend/emission/emit-walkers.js.map +0 -1
  396. package/dist/backend/emission/emitter.js.map +0 -1
  397. package/dist/backend/emission/may-throw.js.map +0 -1
  398. package/dist/backend/library-identity.js.map +0 -1
  399. package/dist/executable/early-cache.js.map +0 -1
  400. package/dist/executable/early-cache.test.js.map +0 -1
  401. package/dist/ffi/profile.js.map +0 -1
  402. package/dist/frontend/lowering/lower-emitter.js.map +0 -1
  403. package/dist/frontend/shared.d.ts +0 -82
  404. package/dist/frontend/shared.js +0 -308
  405. package/dist/frontend/shared.js.map +0 -1
  406. package/dist/frontend/ts7/program.js.map +0 -1
  407. package/dist/frontend/types.js.map +0 -1
  408. package/dist/ir/nodes.js.map +0 -1
  409. package/dist/library/early-cache.js.map +0 -1
  410. package/dist/library/early-cache.test.js.map +0 -1
  411. package/dist/library/implementation-identity.js.map +0 -1
  412. package/dist/library/profile.js.map +0 -1
  413. /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
  414. /package/dist/{executable/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
  415. /package/dist/{library/early-cache.test.d.ts → backend/native-codegen.test.d.ts} +0 -0
  416. /package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +0 -0
  417. /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
  418. /package/dist/library/{implementation-identity.d.ts → compiler-self-identity.d.ts} +0 -0
@@ -1,13 +1,6 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { Lowerer } from "./lowerer.js";
3
- import { IrExpr, IrType } from "../../ir/nodes.js";
4
- /** Wall-clock budget for one comptime callback. Evaluation happens inside
5
- * the compiler (node:vm), so a runaway loop would hang the BUILD — the vm
6
- * timeout turns it into a diagnostic instead. */
7
- export declare const COMPTIME_TIMEOUT_MS = 2000;
8
- /** Names a compile-time-computed JS value in a comptime result diagnostic
9
- * ("expected 'number' at $.t[2], got undefined"). */
10
- export declare function describeComptimeValue(v: unknown): string;
3
+ import { IrExpr, IrType } from "../../ir/ir.js";
11
4
  /** `comptime(() => ...)`: the callback is extracted SOURCE-TEXTUALLY,
12
5
  * executed at compile time in an isolated node:vm context (real JavaScript
13
6
  * semantics — the compiler's own Node process), and the returned value is
@@ -31,12 +24,12 @@ export declare function describeComptimeValue(v: unknown): string;
31
24
  * 6. the returned VALUE is checked against T, path-annotated
32
25
  * (dynCheck-style) — NaN/Infinity, undefined/null/functions, and shape
33
26
  * mismatches are rejected, never miscompiled. */
34
- export declare function lowerComptime(L: Lowerer, expr: ts.CallExpression): IrExpr;
27
+ export declare function lowerComptime(lowerer: Lowerer, expr: ts.CallExpression): IrExpr;
35
28
  /** True when a comptime result of this type can be written as a literal
36
29
  * expression: number/string/boolean, arrays and record shapes of those,
37
30
  * nested. Closures, class instances, unions, promises, dyn, and void
38
31
  * cannot be baked. */
39
- export declare function comptimeBakeable(L: Lowerer, t: IrType): boolean;
32
+ export declare function comptimeBakeable(lowerer: Lowerer, t: IrType): boolean;
40
33
  /** The self-containment fence: every identifier inside the callback must
41
34
  * resolve to a declaration INSIDE the callback (its own locals/functions)
42
35
  * or to the standard library (whose JS intrinsics exist in the vm; what
@@ -46,8 +39,8 @@ export declare function comptimeBakeable(L: Lowerer, t: IrType): boolean;
46
39
  * Type-position references (annotations, `as` targets) are exempt: they
47
40
  * are erased before evaluation. Nested comptime calls are rejected up
48
41
  * front with their own message (the vm context has no `comptime`). */
49
- export declare function rejectComptimeCaptures(L: Lowerer, cb: ts.ArrowFunction | ts.FunctionExpression): void;
42
+ export declare function rejectComptimeCaptures(lowerer: Lowerer, cb: ts.ArrowFunction | ts.FunctionExpression): void;
50
43
  /** A JS value computed at compile time → literal IR of the expected type,
51
44
  * recursively. Mismatches are SC1110 with the offending path
52
45
  * (dynCheck-style: `$.items[2].price`) and both sides rendered. */
53
- export declare function comptimeValueToIr(L: Lowerer, value: unknown, expected: IrType, path: string, blame: ts.Node): IrExpr;
46
+ export declare function comptimeValueToIr(lowerer: Lowerer, value: unknown, expected: IrType, path: string, blame: ts.Node): IrExpr;
@@ -1,3 +1,4 @@
1
+ import { InternalCompilerError } from "../../errors.js";
1
2
  /* comptime(fn) lowering: run the closed callback under node:vm at compile
2
3
  * time (with a timeout), then bake the produced VALUE into the IR as
3
4
  * literals — records/arrays/unions included, subject to comptimeBakeable. */
@@ -10,10 +11,10 @@ import { PoisonError } from "./lowerer.js";
10
11
  /** Wall-clock budget for one comptime callback. Evaluation happens inside
11
12
  * the compiler (node:vm), so a runaway loop would hang the BUILD — the vm
12
13
  * timeout turns it into a diagnostic instead. */
13
- export const COMPTIME_TIMEOUT_MS = 2000;
14
+ const COMPTIME_TIMEOUT_MS = 2000;
14
15
  /** Names a compile-time-computed JS value in a comptime result diagnostic
15
16
  * ("expected 'number' at $.t[2], got undefined"). */
16
- export function describeComptimeValue(v) {
17
+ function describeComptimeValue(v) {
17
18
  if (v === undefined)
18
19
  return "undefined";
19
20
  if (v === null)
@@ -46,27 +47,27 @@ export function describeComptimeValue(v) {
46
47
  * 6. the returned VALUE is checked against T, path-annotated
47
48
  * (dynCheck-style) — NaN/Infinity, undefined/null/functions, and shape
48
49
  * mismatches are rejected, never miscompiled. */
49
- export function lowerComptime(L, expr) {
50
+ export function lowerComptime(lowerer, expr) {
50
51
  // 1. Inline function literal only (tsc guarantees the arity/type; the
51
52
  // literal-ness is our requirement — source extraction needs the source).
52
53
  let cb = expr.arguments[0];
53
54
  while (cb && ts.isParenthesizedExpression(cb))
54
55
  cb = cb.expression;
55
56
  if (!cb || !(ts.isArrowFunction(cb) || ts.isFunctionExpression(cb))) {
56
- L.unsupported("SC1090", expr.arguments[0] ?? expr, "comptime arguments other than inline function literals " +
57
+ lowerer.unsupported("SC1090", expr.arguments[0] ?? expr, "comptime arguments other than inline function literals " +
57
58
  "(write the callback directly in the call: comptime(() => ...))");
58
59
  }
59
60
  // 2. Async/generator callbacks have no bakeable result.
60
61
  if (ts.isFunctionExpression(cb) && cb.asteriskToken ||
61
62
  cb.modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword)) {
62
- L.unsupported("SC1090", cb, "async or generator comptime callbacks");
63
+ lowerer.unsupported("SC1090", cb, "async or generator comptime callbacks");
63
64
  }
64
65
  // 3. Self-containment.
65
- L.rejectComptimeCaptures(cb);
66
+ lowerer.rejectComptimeCaptures(cb);
66
67
  // 4. The checker's type for the call is the bake target.
67
- const target = L.irTypeOf(expr);
68
- if (!L.comptimeBakeable(target)) {
69
- L.unsupported("SC1090", expr, `baking comptime results of type '${L.fmt(target)}' into the binary ` +
68
+ const target = lowerer.irTypeOf(expr);
69
+ if (!lowerer.comptimeBakeable(target)) {
70
+ lowerer.unsupported("SC1090", expr, `baking comptime results of type '${lowerer.fmt(target)}' into the binary ` +
70
71
  `(only number, string, boolean, arrays, and records lower to literals)`);
71
72
  }
72
73
  // 5. Evaluate. Types are stripped first (the extracted text is
@@ -96,27 +97,27 @@ export function lowerComptime(L, expr) {
96
97
  const detail = err?.code === "ERR_SCRIPT_EXECUTION_TIMEOUT"
97
98
  ? `evaluation exceeded the ${COMPTIME_TIMEOUT_MS}ms compile-time budget`
98
99
  : `the callback threw: ${err && typeof err.message === "string" ? err.message : String(e)}`;
99
- L.pushDiag(comptimeFailedDiag(detail, locOf(cb)));
100
+ lowerer.pushDiag(comptimeFailedDiag(detail, locOf(cb)));
100
101
  throw new PoisonError();
101
102
  }
102
103
  // 6. Result → literal IR, checked against T.
103
- return L.comptimeValueToIr(result, target, "$", cb);
104
+ return lowerer.comptimeValueToIr(result, target, "$", cb);
104
105
  }
105
106
  /** True when a comptime result of this type can be written as a literal
106
107
  * expression: number/string/boolean, arrays and record shapes of those,
107
108
  * nested. Closures, class instances, unions, promises, dyn, and void
108
109
  * cannot be baked. */
109
- export function comptimeBakeable(L, t) {
110
+ export function comptimeBakeable(lowerer, t) {
110
111
  switch (t.kind) {
111
112
  case "f64":
112
113
  case "string":
113
114
  case "bool":
114
115
  return true;
115
116
  case "array":
116
- return L.comptimeBakeable(t.elem);
117
+ return lowerer.comptimeBakeable(t.elem);
117
118
  case "record": {
118
- const shape = L.shapes.get(t.shapeId);
119
- return !!shape && shape.fields.every((f) => L.comptimeBakeable(f.type));
119
+ const shape = lowerer.shapes.get(t.shapeId);
120
+ return !!shape && shape.fields.every((f) => lowerer.comptimeBakeable(f.type));
120
121
  }
121
122
  default:
122
123
  return false;
@@ -131,7 +132,7 @@ export function comptimeBakeable(L, t) {
131
132
  * Type-position references (annotations, `as` targets) are exempt: they
132
133
  * are erased before evaluation. Nested comptime calls are rejected up
133
134
  * front with their own message (the vm context has no `comptime`). */
134
- export function rejectComptimeCaptures(L, cb) {
135
+ export function rejectComptimeCaptures(lowerer, cb) {
135
136
  const sf = cb.getSourceFile();
136
137
  const inTypePosition = (node) => {
137
138
  for (let p = node.parent; p && p !== cb; p = p.parent) {
@@ -150,14 +151,14 @@ export function rejectComptimeCaptures(L, cb) {
150
151
  (ts.isPropertyAssignment(parent) && parent.name === node);
151
152
  if (!isPropertyName && !inTypePosition(node)) {
152
153
  const symbol = ts.isShorthandPropertyAssignment(parent)
153
- ? L.checker.getShorthandAssignmentValueSymbol(parent)
154
- : L.checker.getSymbolAtLocation(node);
155
- const decls = symbol ? L.checker.declarationsOf(symbol) : undefined;
154
+ ? lowerer.checker.getShorthandAssignmentValueSymbol(parent)
155
+ : lowerer.checker.getSymbolAtLocation(node);
156
+ const decls = symbol ? lowerer.checker.declarationsOf(symbol) : undefined;
156
157
  if (symbol && decls && decls.length > 0) {
157
158
  const ownLocal = decls.every((d) => d.getSourceFile() === sf && d.pos >= cb.pos && d.end <= cb.end);
158
159
  if (!ownLocal) {
159
- if (node.text === "comptime" && L.isStdlibSymbol(symbol)) {
160
- L.unsupported("SC1090", node, "comptime calls inside comptime callbacks " +
160
+ if (node.text === "comptime" && lowerer.isStdlibSymbol(symbol)) {
161
+ lowerer.unsupported("SC1090", node, "comptime calls inside comptime callbacks " +
161
162
  "(the callback already runs at compile time — compute the value directly)");
162
163
  }
163
164
  // console is the one ambient global V8 installs on every vm
@@ -166,12 +167,12 @@ export function rejectComptimeCaptures(L, cb) {
166
167
  // Rejected so side effects can't silently vanish; the other
167
168
  // Node-isms (process, setTimeout) don't exist in the vm and
168
169
  // fail loudly at evaluation.
169
- if (node.text === "console" && L.isStdlibSymbol(symbol)) {
170
- L.unsupported("SC1090", node, "console calls inside comptime callbacks " +
170
+ if (node.text === "console" && lowerer.isStdlibSymbol(symbol)) {
171
+ lowerer.unsupported("SC1090", node, "console calls inside comptime callbacks " +
171
172
  "(the callback computes a value at compile time — return it and log at runtime)");
172
173
  }
173
- if (!L.isStdlibSymbol(symbol)) {
174
- L.unsupported("SC1090", node, `comptime callbacks referencing outer bindings ` +
174
+ if (!lowerer.isStdlibSymbol(symbol)) {
175
+ lowerer.unsupported("SC1090", node, `comptime callbacks referencing outer bindings ` +
175
176
  `('${node.text}' — the callback runs at compile time in an isolated ` +
176
177
  `context and must be self-contained)`);
177
178
  }
@@ -186,10 +187,10 @@ export function rejectComptimeCaptures(L, cb) {
186
187
  /** A JS value computed at compile time → literal IR of the expected type,
187
188
  * recursively. Mismatches are SC1110 with the offending path
188
189
  * (dynCheck-style: `$.items[2].price`) and both sides rendered. */
189
- export function comptimeValueToIr(L, value, expected, path, blame) {
190
+ export function comptimeValueToIr(lowerer, value, expected, path, blame) {
190
191
  const loc = locOf(blame);
191
192
  const fail = (got) => {
192
- L.pushDiag(comptimeFailedDiag(`expected '${L.fmt(expected)}' at ${path}, got ${got}`, loc));
193
+ lowerer.pushDiag(comptimeFailedDiag(`expected '${lowerer.fmt(expected)}' at ${path}, got ${got}`, loc));
193
194
  throw new PoisonError();
194
195
  };
195
196
  switch (expected.kind) {
@@ -214,14 +215,14 @@ export function comptimeValueToIr(L, value, expected, path, blame) {
214
215
  case "array": {
215
216
  if (!Array.isArray(value))
216
217
  return fail(describeComptimeValue(value));
217
- const elems = value.map((el, i) => L.comptimeValueToIr(el, expected.elem, `${path}[${i}]`, blame));
218
+ const elems = value.map((el, i) => lowerer.comptimeValueToIr(el, expected.elem, `${path}[${i}]`, blame));
218
219
  return { kind: "arrayLit", elems, type: expected, loc };
219
220
  }
220
221
  case "record": {
221
222
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
222
223
  return fail(describeComptimeValue(value));
223
224
  }
224
- const shape = L.shapes.get(expected.shapeId); // bakeable-checked
225
+ const shape = lowerer.shapes.get(expected.shapeId); // bakeable-checked
225
226
  const obj = value;
226
227
  const declared = new Set(shape.fields.map((f) => f.name));
227
228
  for (const key of Object.keys(obj)) {
@@ -232,13 +233,13 @@ export function comptimeValueToIr(L, value, expected, path, blame) {
232
233
  }
233
234
  const fields = shape.fields.map((f) => ({
234
235
  name: f.name,
235
- value: L.comptimeValueToIr(obj[f.name], f.type, `${path}.${f.name}`, blame),
236
+ value: lowerer.comptimeValueToIr(obj[f.name], f.type, `${path}.${f.name}`, blame),
236
237
  }));
237
238
  return { kind: "recordLit", fields, type: expected, loc };
238
239
  }
239
240
  default:
240
241
  // comptimeBakeable already fenced these off.
241
- throw new Error(`lowerer bug: unbakeable comptime target '${expected.kind}'`);
242
+ throw new InternalCompilerError(`lowerer bug: unbakeable comptime target '${expected.kind}'`);
242
243
  }
243
244
  }
244
245
  //# sourceMappingURL=lower-comptime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lower-comptime.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-comptime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower-comptime.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-comptime.ts"],"names":[],"mappings":"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"}