@scriptc/compiler 0.0.35 → 0.1.1
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.
- package/ambient/scriptc-node-fallback.d.ts +14 -11
- package/ambient/scriptc-overrides.d.ts +0 -7
- package/ambient/scriptc.d.ts +1 -1
- package/dist/backend/build-cache.d.ts +44 -0
- package/dist/backend/build-cache.js +241 -0
- package/dist/backend/build-cache.js.map +1 -0
- package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
- package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
- package/dist/backend/c/async.js.map +1 -0
- package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
- package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
- package/dist/backend/c/c-emitter.js.map +1 -0
- package/dist/backend/c/exprs.d.ts +8 -0
- package/dist/backend/c/exprs.js +7937 -0
- package/dist/backend/c/exprs.js.map +1 -0
- package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
- package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
- package/dist/backend/c/island.js.map +1 -0
- package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
- package/dist/backend/{emission → c}/may-throw.js +4 -1
- package/dist/backend/c/may-throw.js.map +1 -0
- package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
- package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
- package/dist/backend/c/shapes.js.map +1 -0
- package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
- package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +395 -343
- package/dist/backend/c/stmts.js.map +1 -0
- package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
- package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
- package/dist/backend/c/types.js.map +1 -0
- package/dist/backend/c/types.test.js +25 -0
- package/dist/backend/c/types.test.js.map +1 -0
- package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
- package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +242 -304
- package/dist/backend/c/walkers.js.map +1 -0
- package/dist/backend/external-c.d.ts +33 -0
- package/dist/backend/external-c.js +51 -0
- package/dist/backend/external-c.js.map +1 -0
- package/dist/backend/ffi-callbacks.d.ts +1 -1
- package/dist/backend/ffi-callbacks.js +4 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
- package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
- package/dist/backend/library-identity-markers.js.map +1 -0
- package/dist/backend/link-plan.d.ts +37 -0
- package/dist/backend/link-plan.js +26 -0
- package/dist/backend/link-plan.js.map +1 -0
- package/dist/backend/linker.d.ts +22 -0
- package/dist/backend/linker.js +236 -0
- package/dist/backend/linker.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +4 -0
- package/dist/backend/llvm/blocks.js +29 -0
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +2 -19
- package/dist/backend/llvm/classes.js +20 -52
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +4 -0
- package/dist/backend/llvm/common.js +27 -0
- package/dist/backend/llvm/common.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +3 -8
- package/dist/backend/llvm/dyn.js +159 -224
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +4 -1
- package/dist/backend/llvm/emitter.js +548 -9988
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.d.ts +4 -0
- package/dist/backend/llvm/expr-async.js +726 -0
- package/dist/backend/llvm/expr-async.js.map +1 -0
- package/dist/backend/llvm/expr-bytes.d.ts +13 -0
- package/dist/backend/llvm/expr-bytes.js +456 -0
- package/dist/backend/llvm/expr-bytes.js.map +1 -0
- package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
- package/dist/backend/llvm/expr-callbacks.js +520 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -0
- package/dist/backend/llvm/expr-calls.d.ts +2 -0
- package/dist/backend/llvm/expr-calls.js +618 -0
- package/dist/backend/llvm/expr-calls.js.map +1 -0
- package/dist/backend/llvm/expr-containers.d.ts +25 -0
- package/dist/backend/llvm/expr-containers.js +637 -0
- package/dist/backend/llvm/expr-containers.js.map +1 -0
- package/dist/backend/llvm/expr-context.d.ts +255 -0
- package/dist/backend/llvm/expr-context.js +2 -0
- package/dist/backend/llvm/expr-context.js.map +1 -0
- package/dist/backend/llvm/expr-control.d.ts +2 -0
- package/dist/backend/llvm/expr-control.js +473 -0
- package/dist/backend/llvm/expr-control.js.map +1 -0
- package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
- package/dist/backend/llvm/expr-dispatch.js +153 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -0
- package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
- package/dist/backend/llvm/expr-dynamic.js +810 -0
- package/dist/backend/llvm/expr-dynamic.js.map +1 -0
- package/dist/backend/llvm/expr-island.d.ts +15 -0
- package/dist/backend/llvm/expr-island.js +690 -0
- package/dist/backend/llvm/expr-island.js.map +1 -0
- package/dist/backend/llvm/expr-primitives.d.ts +6 -0
- package/dist/backend/llvm/expr-primitives.js +642 -0
- package/dist/backend/llvm/expr-primitives.js.map +1 -0
- package/dist/backend/llvm/expr-records.d.ts +9 -0
- package/dist/backend/llvm/expr-records.js +299 -0
- package/dist/backend/llvm/expr-records.js.map +1 -0
- package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
- package/dist/backend/llvm/expr-stream-bridges.js +420 -0
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
- package/dist/backend/llvm/lib-dispatch.js +267 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -0
- package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
- package/dist/backend/llvm/lib-filesystem.js +594 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -0
- package/dist/backend/llvm/lib-network.d.ts +2 -0
- package/dist/backend/llvm/lib-network.js +429 -0
- package/dist/backend/llvm/lib-network.js.map +1 -0
- package/dist/backend/llvm/lib-process.d.ts +5 -0
- package/dist/backend/llvm/lib-process.js +585 -0
- package/dist/backend/llvm/lib-process.js.map +1 -0
- package/dist/backend/llvm/lib-shared.d.ts +6 -0
- package/dist/backend/llvm/lib-shared.js +687 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -0
- package/dist/backend/llvm/lib-stream.d.ts +2 -0
- package/dist/backend/llvm/lib-stream.js +470 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +12 -2
- package/dist/backend/llvm/shapes.js +66 -307
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +52 -0
- package/dist/backend/llvm/shapes.test.js.map +1 -0
- package/dist/backend/llvm/unsupported.d.ts +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -3
- package/dist/backend/llvm/walkers.js +195 -222
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +45 -0
- package/dist/backend/native-codegen.js +275 -0
- package/dist/backend/native-codegen.js.map +1 -0
- package/dist/backend/native-codegen.test.js +226 -0
- package/dist/backend/native-codegen.test.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +96 -0
- package/dist/backend/native-link-info.js +243 -0
- package/dist/backend/native-link-info.js.map +1 -0
- package/dist/backend/native-link-info.test.d.ts +1 -0
- package/dist/backend/native-link-info.test.js +134 -0
- package/dist/backend/native-link-info.test.js.map +1 -0
- package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +54 -34
- package/dist/backend/{cc.js → native-toolchain.js} +231 -810
- package/dist/backend/native-toolchain.js.map +1 -0
- package/dist/backend/native-toolchain.test.d.ts +1 -0
- package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +219 -7
- package/dist/backend/native-toolchain.test.js.map +1 -0
- package/dist/backend/object-localize.js +1 -1
- package/dist/backend/runtime-abi.d.ts +10 -0
- package/dist/backend/runtime-abi.js +11 -0
- package/dist/backend/runtime-abi.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.d.ts +1 -0
- package/dist/backend/runtime-pack-targets.test.js +54 -0
- package/dist/backend/runtime-pack-targets.test.js.map +1 -0
- package/dist/backend/runtime-pack.d.ts +112 -0
- package/dist/backend/runtime-pack.js +305 -0
- package/dist/backend/runtime-pack.js.map +1 -0
- package/dist/backend/runtime-pack.test.d.ts +1 -0
- package/dist/backend/runtime-pack.test.js +473 -0
- package/dist/backend/runtime-pack.test.js.map +1 -0
- package/dist/backend/targets.d.ts +76 -0
- package/dist/backend/targets.js +262 -0
- package/dist/backend/targets.js.map +1 -0
- package/dist/backend/targets.test.d.ts +1 -0
- package/dist/backend/targets.test.js +41 -0
- package/dist/backend/targets.test.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +41 -0
- package/dist/backend/vendor-archives.js +462 -0
- package/dist/backend/vendor-archives.js.map +1 -0
- package/dist/compat/fetch-profile.d.ts +0 -1
- package/dist/compat/fetch-profile.js +0 -1
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js +3 -3
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +35 -33
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +11 -12
- package/dist/diagnostics/diagnostic.js +19 -17
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/render.d.ts +1 -1
- package/dist/diagnostics/render.js +1 -1
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/errors.d.ts +5 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/dist/executable/{early-cache.d.ts → executable-cache.d.ts} +2 -2
- package/dist/executable/{early-cache.js → executable-cache.js} +36 -98
- package/dist/executable/executable-cache.js.map +1 -0
- package/dist/executable/executable-cache.test.d.ts +1 -0
- package/dist/executable/{early-cache.test.js → executable-cache.test.js} +3 -3
- package/dist/executable/executable-cache.test.js.map +1 -0
- package/dist/ffi/{profile.js → ffi-manifest.js} +1 -1
- package/dist/ffi/ffi-manifest.js.map +1 -0
- package/dist/frontend/builtin-modules.d.ts +21 -0
- package/dist/frontend/builtin-modules.js +82 -0
- package/dist/frontend/builtin-modules.js.map +1 -0
- package/dist/frontend/cjs-lexer.d.ts +7 -0
- package/dist/frontend/cjs-lexer.js +15 -17
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/dts-paths.d.ts +26 -0
- package/dist/frontend/dts-paths.js +41 -0
- package/dist/frontend/dts-paths.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +0 -2
- package/dist/frontend/input-tracker.js +1 -4
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/lib-contract.d.ts +1 -5
- package/dist/frontend/lib-contract.js +1 -1
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lib-exports.d.ts +1 -1
- package/dist/frontend/lowering/array-values.d.ts +8 -0
- package/dist/frontend/lowering/array-values.js +60 -0
- package/dist/frontend/lowering/array-values.js.map +1 -0
- package/dist/frontend/lowering/call-position.d.ts +4 -0
- package/dist/frontend/lowering/call-position.js +7 -0
- package/dist/frontend/lowering/call-position.js.map +1 -0
- package/dist/frontend/lowering/callback-arg.d.ts +20 -0
- package/dist/frontend/lowering/callback-arg.js +44 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
- package/dist/frontend/lowering/lib-boundary.js +34 -34
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +22 -0
- package/dist/frontend/lowering/lower-array-sort.js +619 -0
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.d.ts +3 -3
- package/dist/frontend/lowering/lower-assert.js +214 -241
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
- package/dist/frontend/lowering/lower-builtins.js +1285 -1233
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +59 -192
- package/dist/frontend/lowering/lower-calls.js +1644 -1506
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +62 -125
- package/dist/frontend/lowering/lower-classes.js +832 -866
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
- package/dist/frontend/lowering/lower-comptime.js +32 -31
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +35 -135
- package/dist/frontend/lowering/lower-containers.js +1984 -2227
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
- package/dist/frontend/lowering/lower-dgram.js +97 -111
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +4 -4
- package/dist/frontend/lowering/lower-enums.js +30 -30
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
- package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.d.ts +5 -5
- package/dist/frontend/lowering/lower-expando.js +40 -40
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +60 -264
- package/dist/frontend/lowering/lower-exprs.js +2361 -1765
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +6 -6
- package/dist/frontend/lowering/lower-generators.js +73 -72
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
- package/dist/frontend/lowering/lower-inspect.js +273 -261
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +39 -49
- package/dist/frontend/lowering/lower-island.js +447 -513
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
- package/dist/frontend/lowering/lower-mixins.js +85 -85
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +12 -18
- package/dist/frontend/lowering/lower-modules.js +284 -283
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
- package/dist/frontend/lowering/lower-namespaces.js +123 -115
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +18 -25
- package/dist/frontend/lowering/lower-server.js +909 -899
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
- package/dist/frontend/lowering/lower-stmts.js +1463 -1285
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +12 -12
- package/dist/frontend/lowering/lower-stream.js +300 -301
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +5 -5
- package/dist/frontend/lowering/lower-test.js +82 -82
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +134 -22
- package/dist/frontend/lowering/lowerer.js +1277 -126
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
- package/dist/frontend/lowering/pairs-snapshot.js +85 -0
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +6 -0
- package/dist/frontend/lowering/static-this.js +24 -0
- package/dist/frontend/lowering/static-this.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +24 -35
- package/dist/frontend/lowering/surfaces.js +78 -66
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.js +6 -28
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static.d.ts +0 -10
- package/dist/frontend/npm-static.js +4 -7
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +0 -24
- package/dist/frontend/npm.js +11 -85
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -1
- package/dist/frontend/program.js +9 -4
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance-registry.d.ts +0 -2
- package/dist/frontend/provenance-registry.js +0 -10
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/provenance.js +4 -7
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +7 -2
- package/dist/frontend/resolve.js +12 -17
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.d.ts +1 -0
- package/dist/frontend/resolve.test.js +29 -0
- package/dist/frontend/resolve.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +2 -2
- package/dist/frontend/ts7/adapter.js +1 -1
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/checker.js +2 -36
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/enums.js +2 -1
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
- package/dist/frontend/ts7/program-adapter.js.map +1 -0
- package/dist/frontend/ts7/world-check.d.ts +1 -3
- package/dist/frontend/ts7/world-check.js +3 -1
- package/dist/frontend/ts7/world-check.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +8 -0
- package/dist/frontend/tsc-codes.js +109 -0
- package/dist/frontend/tsc-codes.js.map +1 -0
- package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
- package/dist/frontend/{types.js → type-mapper.js} +12 -11
- package/dist/frontend/type-mapper.js.map +1 -0
- package/dist/frontend/workspace-registry.d.ts +26 -0
- package/dist/frontend/workspace-registry.js +71 -0
- package/dist/frontend/workspace-registry.js.map +1 -0
- package/dist/index.d.ts +113 -31
- package/dist/index.js +536 -128
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +37 -0
- package/dist/ir/analysis.js +118 -0
- package/dist/ir/analysis.js.map +1 -0
- package/dist/ir/analysis.test.d.ts +1 -0
- package/dist/ir/analysis.test.js +21 -0
- package/dist/ir/analysis.test.js.map +1 -0
- package/dist/ir/build.d.ts +9 -0
- package/dist/ir/build.js +33 -0
- package/dist/ir/build.js.map +1 -0
- package/dist/ir/integer-loops.d.ts +1 -1
- package/dist/ir/{nodes.d.ts → ir.d.ts} +119 -37
- package/dist/ir/{nodes.js → ir.js} +170 -166
- package/dist/ir/ir.js.map +1 -0
- package/dist/ir/ir.test.d.ts +1 -0
- package/dist/ir/ir.test.js +17 -0
- package/dist/ir/ir.test.js.map +1 -0
- package/dist/ir/serialize.d.ts +2 -2
- package/dist/ir/serialize.js +3 -2
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/validate.d.ts +1 -1
- package/dist/ir/validate.js +93 -41
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +24 -0
- package/dist/library/cache-primitives.js +83 -0
- package/dist/library/cache-primitives.js.map +1 -0
- package/dist/library/cache-reset.test.d.ts +1 -0
- package/dist/library/cache-reset.test.js +47 -0
- package/dist/library/cache-reset.test.js.map +1 -0
- package/dist/library/{implementation-identity.js → compiler-self-identity.js} +1 -1
- package/dist/library/compiler-self-identity.js.map +1 -0
- package/dist/library/fence-eval.d.ts +3 -1
- package/dist/library/fence-eval.js +8 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.d.ts +1 -36
- package/dist/library/int-infer.js +29 -18
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
- package/dist/library/{early-cache.js → library-cache.js} +34 -89
- package/dist/library/library-cache.js.map +1 -0
- package/dist/library/library-cache.test.d.ts +1 -0
- package/dist/library/{early-cache.test.js → library-cache.test.js} +7 -7
- package/dist/library/library-cache.test.js.map +1 -0
- package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
- package/dist/library/{profile.js → library-profile.js} +18 -11
- package/dist/library/library-profile.js.map +1 -0
- package/dist/library/semantic-source.js +2 -1
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar.d.ts +5 -2
- package/dist/library/sidecar.js +11 -5
- package/dist/library/sidecar.js.map +1 -1
- package/dist/startup-cache.d.ts +11 -3
- package/dist/startup-cache.js +17 -2
- package/dist/startup-cache.js.map +1 -1
- package/package.json +19 -2
- package/surface-manifest.json +5 -5
- package/dist/backend/cc-cache.test.js.map +0 -1
- package/dist/backend/cc.js.map +0 -1
- package/dist/backend/emission/emit-async.js.map +0 -1
- package/dist/backend/emission/emit-exprs.d.ts +0 -13
- package/dist/backend/emission/emit-exprs.js +0 -7407
- package/dist/backend/emission/emit-exprs.js.map +0 -1
- package/dist/backend/emission/emit-island.js.map +0 -1
- package/dist/backend/emission/emit-shapes.js.map +0 -1
- package/dist/backend/emission/emit-stmts.js.map +0 -1
- package/dist/backend/emission/emit-types.js.map +0 -1
- package/dist/backend/emission/emit-walkers.js.map +0 -1
- package/dist/backend/emission/emitter.js.map +0 -1
- package/dist/backend/emission/may-throw.js.map +0 -1
- package/dist/backend/library-identity.js.map +0 -1
- package/dist/executable/early-cache.js.map +0 -1
- package/dist/executable/early-cache.test.js.map +0 -1
- package/dist/ffi/profile.js.map +0 -1
- package/dist/frontend/lowering/lower-emitter.js.map +0 -1
- package/dist/frontend/shared.d.ts +0 -82
- package/dist/frontend/shared.js +0 -308
- package/dist/frontend/shared.js.map +0 -1
- package/dist/frontend/ts7/program.js.map +0 -1
- package/dist/frontend/types.js.map +0 -1
- package/dist/ir/nodes.js.map +0 -1
- package/dist/library/early-cache.js.map +0 -1
- package/dist/library/early-cache.test.js.map +0 -1
- package/dist/library/implementation-identity.js.map +0 -1
- package/dist/library/profile.js.map +0 -1
- /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
- /package/dist/{executable/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
- /package/dist/{library/early-cache.test.d.ts → backend/native-codegen.test.d.ts} +0 -0
- /package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +0 -0
- /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
- /package/dist/library/{implementation-identity.d.ts → compiler-self-identity.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/backend/c/async.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { IrBytesElem, IrGlobal, IrRecordShape, IrExpr,
|
|
1
|
+
import type { IrBytesElem, IrGlobal, IrRecordShape, IrExpr, IrFfiImport, IrFunction, IrLocal, IrModule, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
|
|
2
2
|
import { type FfiCallbackAdapter } from "../ffi-callbacks.js";
|
|
3
|
-
import { VtSlot, ClassMeta } from "./
|
|
3
|
+
import { VtSlot, ClassMeta } from "./shapes.js";
|
|
4
4
|
export interface CEmitOptions {
|
|
5
5
|
/** Library archive assembly may move the volatile identity getters into a
|
|
6
6
|
* separate translation unit. Public/direct emission keeps them by default. */
|
|
7
7
|
emitLibraryIdentity?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function emitCModule(mod: IrModule, sourceText?: string, options?: CEmitOptions): string;
|
|
10
10
|
/** A declared C value with its IR type — the unit frames and scopes track
|
|
11
11
|
* so releases can be type-directed. */
|
|
12
12
|
export interface Temp {
|
|
@@ -18,7 +18,6 @@ export interface Temp {
|
|
|
18
18
|
export interface ScopeEntry extends Temp {
|
|
19
19
|
boxed?: boolean;
|
|
20
20
|
}
|
|
21
|
-
export declare function ffiNativeTypeC(cls: IrFfiCallbackParamClass | IrFfiValueParamClass | IrFfiReturnClass): string;
|
|
22
21
|
export declare class CEmitter {
|
|
23
22
|
readonly mod: IrModule;
|
|
24
23
|
private readonly options;
|
|
@@ -189,7 +188,7 @@ export declare class CEmitter {
|
|
|
189
188
|
readonly liveDynUnionRefAdapters: Map<string, string>;
|
|
190
189
|
readonly dynPromiseAdapters: Map<string, string>;
|
|
191
190
|
/** The checked-dynamic function boundary's per-signature helpers (see
|
|
192
|
-
*
|
|
191
|
+
* walkers.ts): call thunks (sc_dfk_*), box builders (sc_dfb_*),
|
|
193
192
|
* and dynCheck adapters (sc_dfa_*), each per func typeKey. */
|
|
194
193
|
readonly dynFuncThunks: Map<string, string>;
|
|
195
194
|
readonly dynFuncBoxes: Map<string, string>;
|
|
@@ -211,7 +210,7 @@ export declare class CEmitter {
|
|
|
211
210
|
/** TYPED island host-call adapters, interned per full signature (param
|
|
212
211
|
* typeKeys + return classification): each incoming engine argument
|
|
213
212
|
* converts to the param's static type through the exit machinery before
|
|
214
|
-
* the closure runs — see islandTypedAdapter (
|
|
213
|
+
* the closure runs — see islandTypedAdapter (island.ts). */
|
|
215
214
|
readonly islandTypedAdapters: Map<string, string>;
|
|
216
215
|
/** Enclosing break/continue targets. An unlabeled `break` binds to the
|
|
217
216
|
* innermost loop-or-switch entry (labeled BLOCK entries are skipped); an
|
|
@@ -349,7 +348,6 @@ export declare class CEmitter {
|
|
|
349
348
|
type: IrType;
|
|
350
349
|
}[];
|
|
351
350
|
}): void;
|
|
352
|
-
dynDesc(t: IrType): string;
|
|
353
351
|
islandAdapter(arity: number, retKind: "void" | "jsval" | "f64" | "bool" | "string"): string;
|
|
354
352
|
islandTypedAdapter(fn: IrType & {
|
|
355
353
|
kind: "func";
|
|
@@ -404,11 +402,6 @@ export declare class CEmitter {
|
|
|
404
402
|
* label are still on the jump's path (return passes 0/0 — it leaves the
|
|
405
403
|
* whole function). */
|
|
406
404
|
releaseForJump(frameDepth: number, scopeDepth: number): void;
|
|
407
|
-
/** True when the last statement is a jump — its emission already released
|
|
408
|
-
* everything it had to, and the fall-through releases after it would be
|
|
409
|
-
* dead double-release code. `throw` counts: it unwinds (to a handler or
|
|
410
|
-
* out of the function) through the same release path. */
|
|
411
|
-
endsWithJump(stmts: IrStmt[]): boolean;
|
|
412
405
|
/** THE unwind path at a point where an exception is pending: release
|
|
413
406
|
* everything between here and the innermost try handler — or the whole
|
|
414
407
|
* function — via releaseForJump, then jump to the handler / return a
|
|
@@ -432,16 +425,6 @@ export declare class CEmitter {
|
|
|
432
425
|
* literal table is still open (bodies emit before the file assembles —
|
|
433
426
|
* the regex-literal discipline). */
|
|
434
427
|
classObjSym(className: string): string;
|
|
435
|
-
/** True when construction through a classval of `className` can throw:
|
|
436
|
-
* the runtime callee is the static class's constructor or any strict
|
|
437
|
-
* descendant's (classval flows never leave the subtree). */
|
|
438
|
-
newValueMayThrow(className: string): boolean;
|
|
439
|
-
/** The undefined arm's tag of a union type, or -1 (not a union / no
|
|
440
|
-
* undefined arm). A record FIELD with such a type is optional-flavored:
|
|
441
|
-
* the JSON serializer DROPS it while it holds the undefined arm and the
|
|
442
|
-
* dynCheck builder produces the undefined arm for a MISSING key — both
|
|
443
|
-
* exactly Node's optional-field behavior. */
|
|
444
|
-
undefinedArmTag(t: IrType): number;
|
|
445
428
|
/** The interned immortal instance for a UNIT arm of a union — asserts the
|
|
446
429
|
* arm really is payload-less (undefined/null). */
|
|
447
430
|
internUnitInstance(unionId: string, tag: number): string;
|
|
@@ -503,7 +486,7 @@ export declare class CEmitter {
|
|
|
503
486
|
childDataThunkFor(param: IrType): string;
|
|
504
487
|
closeBindThunkFor(cbUnion: IrType, retServer: boolean): string;
|
|
505
488
|
closeOverrideWrapFor(cbUnion: IrType, retServer: boolean): string;
|
|
506
|
-
|
|
489
|
+
childExitSignalThunkFor(codeParam: IrType, sigParam: IrType): string;
|
|
507
490
|
dgramMsgThunkFor(param: IrType): string;
|
|
508
491
|
dnsLookupThunkFor(cbT: IrType): string;
|
|
509
492
|
fsRenameThunkFor(cbT: IrType): string;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalCompilerError } from "../../errors.js";
|
|
2
|
+
import { ffiCallbackType, funcOf, isFfiCallbackParam, isFfiContextParam, isFfiReleaseParam, isRefCounted, isUnitType, mapOf, moduleEmbedsCompressedNpm, moduleUsesDgram, moduleUsesDynInvoke, moduleEmbedsBuiltin, moduleUsesFetch, moduleUsesFsWatch, moduleUsesHttp2, moduleUsesHttpServer, moduleUsesNet, moduleUsesNodeTest, moduleUsesProcessEvents, moduleUsesStream, moduleUsesTls, moduleUsesTlsCa, POINTER_KINDS, RUNTIME_EMITTER_CLASS, STRING, VOID } from "../../ir/ir.js";
|
|
3
|
+
import { undefinedArmTag } from "../../ir/analysis.js";
|
|
2
4
|
import { allocateFfiCallbackAdapters, hasForeignFfiCallback, hasRetainedFfiCallback } from "../ffi-callbacks.js";
|
|
3
5
|
import { mangleAsyncSpawn, mangleGenSpawn, mangleClassObj, mangleField, mangleGlobal, mangleFnClosure, mangleFunction, mangleLocal, mangleRawParam, mangleVtSlot, mangleWrapper, } from "../mangle.js";
|
|
4
|
-
import { cFnPtrCast, cType, releaseCallC, cStringLiteral, cDecl } from "./
|
|
6
|
+
import { cFnPtrCast, cType, releaseCallC, cStringLiteral, cDecl } from "./types.js";
|
|
5
7
|
import { computeMayThrow } from "./may-throw.js";
|
|
6
|
-
import {
|
|
7
|
-
import { emitStructDefs, vtEntriesFor, vtSlotParams, emitVtableDecls, emitVtableInstances, emitVtAdapterDefs, emitHierarchyClassHelpers, emitClassObjs, emitCtorThunkDefs, errorVtStampLines, emitterVtStampLines, streamVtStampLines, traceAdapterC, traceArgC, boxNewC, arrNewC } from "./
|
|
8
|
-
import { emitAsyncScaffolding, childDataThunkFor, childExitThunkFor,
|
|
9
|
-
import { emitNpmEmbedding, islandAdapter, islandTypedAdapter } from "./
|
|
10
|
-
import { emitFunction, emitBlock, emitStmts, emitStmt, emitTryCatch, emitSwitch, mergeBrace, emitBranchInto, emitCondition } from "./
|
|
11
|
-
import { emitExpr } from "./
|
|
12
|
-
import { emitLibraryIdentityLines } from "../library-identity.js";
|
|
13
|
-
export function
|
|
8
|
+
import { unionTruthyHelper, unionEqHelper, unionToStrHelper, unionJoinHelper, jsonWriteHelper, jsonIndentHelper, dynMatchHelper, dynCheckHelper, dynFuncBoxHelper, dynToStrHelper, caughtToDynHelper, toDynHelper, recordKeyGetHelper, recordKeySetHelper } from "./walkers.js";
|
|
9
|
+
import { emitStructDefs, vtEntriesFor, vtSlotParams, emitVtableDecls, emitVtableInstances, emitVtAdapterDefs, emitHierarchyClassHelpers, emitClassObjs, emitCtorThunkDefs, errorVtStampLines, emitterVtStampLines, streamVtStampLines, traceAdapterC, traceArgC, boxNewC, arrNewC } from "./shapes.js";
|
|
10
|
+
import { emitAsyncScaffolding, childDataThunkFor, childExitThunkFor, childExitSignalThunkFor, closeBindThunkFor, connectResThunkFor, connectSockThunkFor, closeOverrideWrapFor, dgramMsgThunkFor, dnsLookupThunkFor, fsRenameThunkFor, netLookupAnswerThunkFor, emitterInvokeThunkFor, streamCbThunkFor, streamDataThunkFor, raceAdapterFor, resolveThunkFor, sniAnswerThunkFor } from "./async.js";
|
|
11
|
+
import { emitNpmEmbedding, islandAdapter, islandTypedAdapter } from "./island.js";
|
|
12
|
+
import { emitFunction, emitBlock, emitStmts, emitStmt, emitTryCatch, emitSwitch, mergeBrace, emitBranchInto, emitCondition } from "./stmts.js";
|
|
13
|
+
import { emitExpr } from "./exprs.js";
|
|
14
|
+
import { emitLibraryIdentityLines } from "../library-identity-markers.js";
|
|
15
|
+
export function emitCModule(mod, sourceText, options = {}) {
|
|
14
16
|
return new CEmitter(mod, sourceText, options).emit();
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
function ffiNativeTypeC(cls) {
|
|
17
19
|
switch (cls) {
|
|
18
20
|
case "f64":
|
|
19
21
|
return "double";
|
|
@@ -28,7 +30,7 @@ export function ffiNativeTypeC(cls) {
|
|
|
28
30
|
return "const char *";
|
|
29
31
|
case "string":
|
|
30
32
|
case "bytes":
|
|
31
|
-
throw new
|
|
33
|
+
throw new InternalCompilerError(`emitter bug: span class '${cls}' has no scalar C type`);
|
|
32
34
|
case "void":
|
|
33
35
|
return "void";
|
|
34
36
|
}
|
|
@@ -218,7 +220,7 @@ export class CEmitter {
|
|
|
218
220
|
liveDynUnionRefAdapters = new Map();
|
|
219
221
|
dynPromiseAdapters = new Map();
|
|
220
222
|
/** The checked-dynamic function boundary's per-signature helpers (see
|
|
221
|
-
*
|
|
223
|
+
* walkers.ts): call thunks (sc_dfk_*), box builders (sc_dfb_*),
|
|
222
224
|
* and dynCheck adapters (sc_dfa_*), each per func typeKey. */
|
|
223
225
|
dynFuncThunks = new Map();
|
|
224
226
|
dynFuncBoxes = new Map();
|
|
@@ -240,7 +242,7 @@ export class CEmitter {
|
|
|
240
242
|
/** TYPED island host-call adapters, interned per full signature (param
|
|
241
243
|
* typeKeys + return classification): each incoming engine argument
|
|
242
244
|
* converts to the param's static type through the exit machinery before
|
|
243
|
-
* the closure runs — see islandTypedAdapter (
|
|
245
|
+
* the closure runs — see islandTypedAdapter (island.ts). */
|
|
244
246
|
islandTypedAdapters = new Map();
|
|
245
247
|
/** Enclosing break/continue targets. An unlabeled `break` binds to the
|
|
246
248
|
* innermost loop-or-switch entry (labeled BLOCK entries are skipped); an
|
|
@@ -359,7 +361,7 @@ export class CEmitter {
|
|
|
359
361
|
continue;
|
|
360
362
|
const base = this.classMeta.get(meta.def.base);
|
|
361
363
|
if (!base)
|
|
362
|
-
throw new
|
|
364
|
+
throw new InternalCompilerError(`emitter bug: undeclared base class ${meta.def.base}`);
|
|
363
365
|
meta.base = base;
|
|
364
366
|
base.children.push(meta);
|
|
365
367
|
}
|
|
@@ -411,7 +413,7 @@ export class CEmitter {
|
|
|
411
413
|
continue;
|
|
412
414
|
}
|
|
413
415
|
if (!fn)
|
|
414
|
-
throw new
|
|
416
|
+
throw new InternalCompilerError(`emitter bug: missing method function %${m.def.name}.${method}`);
|
|
415
417
|
// Sibling branches can each own a slot for the same method name
|
|
416
418
|
// (each root-most in its own subtree — mixin layers make this
|
|
417
419
|
// routine): the member name disambiguates by occurrence.
|
|
@@ -817,18 +819,18 @@ export class CEmitter {
|
|
|
817
819
|
// Fetch-referencing programs register the native fetch bridge before any
|
|
818
820
|
// island entry (the engine's lazy boot consults it): the ONLY
|
|
819
821
|
// reference to scr_fetch.c, so fetch-free builds never compile or
|
|
820
|
-
// link it (
|
|
822
|
+
// link it (native-toolchain.ts gates on the same predicate). moduleUsesFetch is
|
|
821
823
|
// true only for fetch-referencing embedded graphs and for USER-code
|
|
822
824
|
// fetch (the island-backed ambient's globalGet) — both boot the
|
|
823
825
|
// engine before the global is read.
|
|
824
826
|
...(moduleUsesFetch(this.mod) ? [` scr_fetch_install();`] : []),
|
|
825
827
|
// Embedded graphs that import node:zlib register the island's zlib
|
|
826
828
|
// bridge before any island entry — the ONLY reference to
|
|
827
|
-
// scr_zlib_island.c (
|
|
829
|
+
// scr_zlib_island.c (native-toolchain.ts compiles it on the same predicate), so
|
|
828
830
|
// zlib-free dynamic builds keep the island's clear refusal.
|
|
829
831
|
...(moduleEmbedsBuiltin(this.mod, "node:zlib") ? [` scr_zlib_island_install();`] : []),
|
|
830
832
|
// Embedded graphs that import node:http/https register the island's
|
|
831
|
-
// http client bridge (scr_net_island.c —
|
|
833
|
+
// http client bridge (scr_net_island.c — native-toolchain.ts compiles it and the
|
|
832
834
|
// socket units on the same predicate; native-fetch builds also
|
|
833
835
|
// register it from scr_fetch_install, idempotently).
|
|
834
836
|
...(moduleEmbedsBuiltin(this.mod, "node:http") || moduleEmbedsBuiltin(this.mod, "node:https")
|
|
@@ -836,26 +838,26 @@ export class CEmitter {
|
|
|
836
838
|
: []),
|
|
837
839
|
// Event-surface programs (signal/exit listeners, stdin events) fill
|
|
838
840
|
// the loop's nullable event hooks before %main — the events unit
|
|
839
|
-
// (scr_events.c) links only when this line is emitted (
|
|
841
|
+
// (scr_events.c) links only when this line is emitted (native-toolchain.ts gates
|
|
840
842
|
// on the same predicate, like fetch).
|
|
841
843
|
...(moduleUsesProcessEvents(this.mod) ? [` scr_events_install();`] : []),
|
|
842
844
|
// Net-surface programs fill the loop's net hooks before %main — the
|
|
843
|
-
// net unit (scr_net.c) links only when this line is emitted (
|
|
845
|
+
// net unit (scr_net.c) links only when this line is emitted (native-toolchain.ts
|
|
844
846
|
// gates on the same predicate, like events). The dyn-install twin
|
|
845
847
|
// stamps the netSocket handle-dispatch ops into the dyn core so
|
|
846
848
|
// sockets can cross the checked-dynamic boundary (SCR_DYN_HANDLE).
|
|
847
849
|
...(moduleUsesNet(this.mod) ? [` scr_net_install();`, ` scr_net_dyn_install();`] : []),
|
|
848
850
|
// Http-surface programs additionally stamp the httpReq/httpRes
|
|
849
851
|
// handle-dispatch ops (scr_http.c links exactly when this line is
|
|
850
|
-
// emitted —
|
|
852
|
+
// emitted — native-toolchain.ts's http gate).
|
|
851
853
|
...(moduleUsesHttpServer(this.mod) ? [` scr_http_dyn_install();`] : []),
|
|
852
854
|
// http2-surface programs stamp the h2 session/stream handle-dispatch
|
|
853
|
-
// ops (scr_http2.c links exactly when this line is emitted —
|
|
855
|
+
// ops (scr_http2.c links exactly when this line is emitted — native-toolchain.ts's
|
|
854
856
|
// http2 gate).
|
|
855
857
|
...(moduleUsesHttp2(this.mod) ? [` scr_http2_dyn_install();`] : []),
|
|
856
858
|
// Stream-surface programs fill the loop's stream hook (the deferred
|
|
857
859
|
// next-tick emissions) before %main — scr_stream.c links only when
|
|
858
|
-
// this line is emitted (
|
|
860
|
+
// this line is emitted (native-toolchain.ts gates on the same predicate).
|
|
859
861
|
...(moduleUsesStream(this.mod) ? [` scr_stream_install();`] : []),
|
|
860
862
|
// Dgram/dns-surface programs fill the loop's dgram hooks the same
|
|
861
863
|
// way — scr_dgram.c links only when this line is emitted.
|
|
@@ -866,7 +868,7 @@ export class CEmitter {
|
|
|
866
868
|
// The embedded npm tables must be registered before %main: the %init
|
|
867
869
|
// functions it calls import from them. Static data only — the engine
|
|
868
870
|
// still boots lazily, on the first island entry. Compressed module
|
|
869
|
-
// text (
|
|
871
|
+
// text (island.ts stores big sources as raw DEFLATE) needs the
|
|
870
872
|
// inflater installed first — scr_zlib.c joins the link on the same
|
|
871
873
|
// moduleEmbedsCompressedNpm predicate (index.ts's zlib switch), so
|
|
872
874
|
// compression-free dynamic builds keep their exact link line.
|
|
@@ -1001,14 +1003,15 @@ export class CEmitter {
|
|
|
1001
1003
|
out.push(`const char *const scr_library_trap_overlays[] = { ${cells.join(", ")} };`);
|
|
1002
1004
|
}
|
|
1003
1005
|
out.push(`const size_t scr_library_trap_overlays_len = ${lib.trapOverlays.length};`, ``);
|
|
1004
|
-
out.push(`void ${lib.initSymbol}(void) {`, ` scr_library_entry(true, "${lib.initSymbol}"); /* init always resets the result arena */`, ` sc_lib_release_globals();`, ` scr_library_reset();`, ...this.errorVtStampLines(), ...emitterVtStampLines(this), ` ${mangleFunction(this.mod.entry)}();`, ` scr_library_check_exc();`, `}`, ``, `void ${lib.sinkRegisterSymbol}(void (*fn)(void *ctx, const uint8_t *msg, size_t msg_len, uint64_t address), void *ctx) {`, ` scr_library_set_sink(fn, ctx);`, `}`, ``);
|
|
1006
|
+
out.push(`void ${lib.initSymbol}(void) {`, ` scr_library_entry(true, "${lib.initSymbol}"); /* init always resets the result arena */`, ` sc_lib_release_globals();`, ` scr_library_reset();`, ...this.errorVtStampLines(), ...emitterVtStampLines(this), ` ${mangleFunction(this.mod.entry)}();`, ` scr_library_check_exc();`, `}`, ``, `void ${lib.sinkRegisterSymbol}(void (*fn)(void *ctx, const uint8_t *msg, size_t msg_len, uint64_t address), void *ctx) {`, ` scr_library_callback_entry_guard("${lib.sinkRegisterSymbol}");`, ` scr_library_set_sink(fn, ctx);`, `}`, ``);
|
|
1005
1007
|
if (lib.callbacks !== undefined && lib.callbacks.length > 0) {
|
|
1006
1008
|
// Host-callback registration: a pure store dispatch (the sink
|
|
1007
1009
|
// registration's rule — no entry prologue, no poison guard, legal
|
|
1008
|
-
// before init)
|
|
1010
|
+
// before init) except the first operation rejects callback-time
|
|
1011
|
+
// re-entry (SC4026). The channel name selects the slot; an unknown or
|
|
1009
1012
|
// NULL name is a defined -1, never a store. Latest registration
|
|
1010
1013
|
// wins; a NULL fn clears the channel.
|
|
1011
|
-
out.push(`int32_t ${lib.callbackRegisterSymbol}(const char *name, void (*fn)(void), void *ctx) {`, ` if (name == NULL) return -1;`);
|
|
1014
|
+
out.push(`int32_t ${lib.callbackRegisterSymbol}(const char *name, void (*fn)(void), void *ctx) {`, ` scr_library_callback_entry_guard("${lib.callbackRegisterSymbol}");`, ` if (name == NULL) return -1;`);
|
|
1012
1015
|
for (const cb of lib.callbacks) {
|
|
1013
1016
|
out.push(` if (strcmp(name, ${cStringLiteral(Buffer.from(cb.name, "utf8"))}) == 0) {`, ` scr_library_cb_set(${cb.slot}, fn, ctx); /* channel '${cb.name}' */`, ` return 0;`, ` }`);
|
|
1014
1017
|
}
|
|
@@ -1163,9 +1166,6 @@ export class CEmitter {
|
|
|
1163
1166
|
* value (+1) or throw a path-annotated TypeError through the exception
|
|
1164
1167
|
* cell. Recursion terminates because recursive shapes/unions are rejected
|
|
1165
1168
|
* by the frontend. */
|
|
1166
|
-
dynDesc(t) {
|
|
1167
|
-
return dynDesc(this, t);
|
|
1168
|
-
}
|
|
1169
1169
|
islandAdapter(arity, retKind) {
|
|
1170
1170
|
return islandAdapter(this, arity, retKind);
|
|
1171
1171
|
}
|
|
@@ -1332,7 +1332,7 @@ export class CEmitter {
|
|
|
1332
1332
|
currentFrame() {
|
|
1333
1333
|
const frame = this.frames[this.frames.length - 1];
|
|
1334
1334
|
if (!frame)
|
|
1335
|
-
throw new
|
|
1335
|
+
throw new InternalCompilerError("emitter bug: no active statement frame");
|
|
1336
1336
|
return frame;
|
|
1337
1337
|
}
|
|
1338
1338
|
/** Strike a refcounted temp from its frame: ownership is being moved. */
|
|
@@ -1346,7 +1346,7 @@ export class CEmitter {
|
|
|
1346
1346
|
return;
|
|
1347
1347
|
}
|
|
1348
1348
|
}
|
|
1349
|
-
throw new
|
|
1349
|
+
throw new InternalCompilerError(`emitter bug: moved temp ${t.name} not found in any frame`);
|
|
1350
1350
|
}
|
|
1351
1351
|
/** The release call for one owned refcounted value. */
|
|
1352
1352
|
releaseValue(name, type) {
|
|
@@ -1373,14 +1373,6 @@ export class CEmitter {
|
|
|
1373
1373
|
for (let i = this.scopes.length - 1; i >= scopeDepth; i--)
|
|
1374
1374
|
this.releaseFrame(this.scopes[i]);
|
|
1375
1375
|
}
|
|
1376
|
-
/** True when the last statement is a jump — its emission already released
|
|
1377
|
-
* everything it had to, and the fall-through releases after it would be
|
|
1378
|
-
* dead double-release code. `throw` counts: it unwinds (to a handler or
|
|
1379
|
-
* out of the function) through the same release path. */
|
|
1380
|
-
endsWithJump(stmts) {
|
|
1381
|
-
const last = stmts[stmts.length - 1]?.kind;
|
|
1382
|
-
return last === "return" || last === "break" || last === "continue" || last === "throw" || last === "rethrow" || last === "runtimeFence";
|
|
1383
|
-
}
|
|
1384
1376
|
/** THE unwind path at a point where an exception is pending: release
|
|
1385
1377
|
* everything between here and the innermost try handler — or the whole
|
|
1386
1378
|
* function — via releaseForJump, then jump to the handler / return a
|
|
@@ -1448,40 +1440,19 @@ export class CEmitter {
|
|
|
1448
1440
|
if (!sym) {
|
|
1449
1441
|
const meta = this.classMeta.get(className);
|
|
1450
1442
|
if (!meta)
|
|
1451
|
-
throw new
|
|
1443
|
+
throw new InternalCompilerError(`emitter bug: classRef to unknown class ${className}`);
|
|
1452
1444
|
this.internLiteral(meta.def.jsName ?? "");
|
|
1453
1445
|
sym = mangleClassObj(className);
|
|
1454
1446
|
this.classObjs.set(className, sym);
|
|
1455
1447
|
}
|
|
1456
1448
|
return sym;
|
|
1457
1449
|
}
|
|
1458
|
-
/** True when construction through a classval of `className` can throw:
|
|
1459
|
-
* the runtime callee is the static class's constructor or any strict
|
|
1460
|
-
* descendant's (classval flows never leave the subtree). */
|
|
1461
|
-
newValueMayThrow(className) {
|
|
1462
|
-
const meta = this.classMeta.get(className);
|
|
1463
|
-
if (!meta)
|
|
1464
|
-
throw new Error(`emitter bug: newValue on unknown class ${className}`);
|
|
1465
|
-
const any = (m) => this.mayThrow.has(`%${m.def.name}.constructor`) || m.children.some(any);
|
|
1466
|
-
return any(meta);
|
|
1467
|
-
}
|
|
1468
|
-
/** The undefined arm's tag of a union type, or -1 (not a union / no
|
|
1469
|
-
* undefined arm). A record FIELD with such a type is optional-flavored:
|
|
1470
|
-
* the JSON serializer DROPS it while it holds the undefined arm and the
|
|
1471
|
-
* dynCheck builder produces the undefined arm for a MISSING key — both
|
|
1472
|
-
* exactly Node's optional-field behavior. */
|
|
1473
|
-
undefinedArmTag(t) {
|
|
1474
|
-
if (t.kind !== "union")
|
|
1475
|
-
return -1;
|
|
1476
|
-
const def = this.unionsById.get(t.unionId);
|
|
1477
|
-
return def ? def.arms.findIndex((a) => a.kind === "undefinedT") : -1;
|
|
1478
|
-
}
|
|
1479
1450
|
/** The interned immortal instance for a UNIT arm of a union — asserts the
|
|
1480
1451
|
* arm really is payload-less (undefined/null). */
|
|
1481
1452
|
internUnitInstance(unionId, tag) {
|
|
1482
1453
|
const arm = this.unionsById.get(unionId)?.arms[tag];
|
|
1483
1454
|
if (!arm || !isUnitType(arm)) {
|
|
1484
|
-
throw new
|
|
1455
|
+
throw new InternalCompilerError(`emitter bug: unit instance for non-unit arm ${tag} of ${unionId}`);
|
|
1485
1456
|
}
|
|
1486
1457
|
const key = `${unionId}:${tag}`;
|
|
1487
1458
|
let sym = this.unitInstances.get(key);
|
|
@@ -1515,7 +1486,7 @@ export class CEmitter {
|
|
|
1515
1486
|
if (t.kind === "jsval") {
|
|
1516
1487
|
return [` o->${mangleField(name)} = scr_jsval_undefined(); /* ${name} starts undefined */`];
|
|
1517
1488
|
}
|
|
1518
|
-
const tag =
|
|
1489
|
+
const tag = undefinedArmTag(t, this.unionsById);
|
|
1519
1490
|
if (tag < 0 || t.kind !== "union")
|
|
1520
1491
|
return [];
|
|
1521
1492
|
return [` o->${mangleField(name)} = ${this.unitInstanceRef(t.unionId, tag)}; /* ${name} starts undefined */`];
|
|
@@ -1524,7 +1495,7 @@ export class CEmitter {
|
|
|
1524
1495
|
ffiCallbackAdapter(binding, id) {
|
|
1525
1496
|
const adapter = this.ffiCallbackAdapters.get(`${binding}:${id}`);
|
|
1526
1497
|
if (!adapter)
|
|
1527
|
-
throw new
|
|
1498
|
+
throw new InternalCompilerError(`emitter bug: no callback adapter for ${binding}:${id}`);
|
|
1528
1499
|
return adapter;
|
|
1529
1500
|
}
|
|
1530
1501
|
/** C-callable trampolines for format-2/3/4 callbacks. The external callback
|
|
@@ -1552,7 +1523,7 @@ export class CEmitter {
|
|
|
1552
1523
|
const contextParam = cb.params.findIndex(isFfiContextParam);
|
|
1553
1524
|
if (cb.invoke === "foreign") {
|
|
1554
1525
|
if (adapter.table === null || contextParam < 0 || cb.returns !== "void") {
|
|
1555
|
-
throw new
|
|
1526
|
+
throw new InternalCompilerError("emitter bug: invalid foreign FFI callback descriptor");
|
|
1556
1527
|
}
|
|
1557
1528
|
const dispatch = `${adapter.symbol}_dispatch`;
|
|
1558
1529
|
const ft = ffiCallbackType(cb);
|
|
@@ -1758,6 +1729,15 @@ export class CEmitter {
|
|
|
1758
1729
|
* `x == x` rejects NaN, `x != 0` rejects both zeros; strings only need
|
|
1759
1730
|
* their length — no runtime call, no ownership change. */
|
|
1760
1731
|
truthyC(t) {
|
|
1732
|
+
if (POINTER_KINDS.has(t.type.kind) &&
|
|
1733
|
+
t.type.kind !== "string" && t.type.kind !== "union" &&
|
|
1734
|
+
t.type.kind !== "dyn" && t.type.kind !== "jsval" &&
|
|
1735
|
+
t.type.kind !== "caught") {
|
|
1736
|
+
// JS objects are ALWAYS truthy ([] and {} included). These are
|
|
1737
|
+
// non-NULL pointers, so the honest constant reads as a pointer
|
|
1738
|
+
// test (no unused-value warnings, operand still evaluated).
|
|
1739
|
+
return `${t.name} != NULL`;
|
|
1740
|
+
}
|
|
1761
1741
|
switch (t.type.kind) {
|
|
1762
1742
|
case "bool":
|
|
1763
1743
|
return t.name;
|
|
@@ -1778,40 +1758,6 @@ export class CEmitter {
|
|
|
1778
1758
|
// helper (switch on tag: unit arms false, scalar/string arms by
|
|
1779
1759
|
// value, ref arms true, jsval arms ask the engine).
|
|
1780
1760
|
return `${this.unionTruthyHelper(t.type.unionId)}(${t.name})`;
|
|
1781
|
-
case "array":
|
|
1782
|
-
case "map":
|
|
1783
|
-
case "set":
|
|
1784
|
-
case "regex":
|
|
1785
|
-
case "url":
|
|
1786
|
-
case "searchParams":
|
|
1787
|
-
case "symbol":
|
|
1788
|
-
case "stats":
|
|
1789
|
-
case "fileHandle":
|
|
1790
|
-
case "spawnRes":
|
|
1791
|
-
case "child":
|
|
1792
|
-
case "netServer":
|
|
1793
|
-
case "netSocket":
|
|
1794
|
-
case "http2Session":
|
|
1795
|
-
case "http2Stream":
|
|
1796
|
-
case "dgramSocket":
|
|
1797
|
-
case "testCtx":
|
|
1798
|
-
case "httpReq":
|
|
1799
|
-
case "httpRes":
|
|
1800
|
-
case "httpClientReq":
|
|
1801
|
-
case "secureCtx":
|
|
1802
|
-
case "fsWatcher":
|
|
1803
|
-
case "childStream":
|
|
1804
|
-
case "bytes":
|
|
1805
|
-
case "func":
|
|
1806
|
-
case "object":
|
|
1807
|
-
case "classval":
|
|
1808
|
-
case "record":
|
|
1809
|
-
case "promise":
|
|
1810
|
-
case "generator":
|
|
1811
|
-
// JS objects are ALWAYS truthy ([] and {} included). These are
|
|
1812
|
-
// non-NULL pointers, so the honest constant reads as a pointer
|
|
1813
|
-
// test (no unused-value warnings, operand still evaluated).
|
|
1814
|
-
return `${t.name} != NULL`;
|
|
1815
1761
|
case "procStream":
|
|
1816
1762
|
// A stream value is a JS object (always truthy); the scalar fd
|
|
1817
1763
|
// representation is 1 or 2, so the honest constant reads as its
|
|
@@ -1825,13 +1771,13 @@ export class CEmitter {
|
|
|
1825
1771
|
case "undefinedT":
|
|
1826
1772
|
case "nullT":
|
|
1827
1773
|
case "caught":
|
|
1828
|
-
throw new
|
|
1774
|
+
throw new InternalCompilerError(`emitter bug: truthiness of ${t.type.kind}`);
|
|
1829
1775
|
case "void":
|
|
1830
|
-
throw new
|
|
1776
|
+
throw new InternalCompilerError("emitter bug: truthiness of void");
|
|
1831
1777
|
default: {
|
|
1832
1778
|
const _exhaustive = t.type;
|
|
1833
1779
|
void _exhaustive;
|
|
1834
|
-
throw new
|
|
1780
|
+
throw new InternalCompilerError("unreachable");
|
|
1835
1781
|
}
|
|
1836
1782
|
}
|
|
1837
1783
|
}
|
|
@@ -1851,8 +1797,8 @@ export class CEmitter {
|
|
|
1851
1797
|
closeOverrideWrapFor(cbUnion, retServer) {
|
|
1852
1798
|
return closeOverrideWrapFor(this, cbUnion, retServer);
|
|
1853
1799
|
}
|
|
1854
|
-
|
|
1855
|
-
return
|
|
1800
|
+
childExitSignalThunkFor(codeParam, sigParam) {
|
|
1801
|
+
return childExitSignalThunkFor(this, codeParam, sigParam);
|
|
1856
1802
|
}
|
|
1857
1803
|
dgramMsgThunkFor(param) {
|
|
1858
1804
|
return dgramMsgThunkFor(this, param);
|
|
@@ -1891,4 +1837,4 @@ export class CEmitter {
|
|
|
1891
1837
|
return resolveThunkFor(this, inner);
|
|
1892
1838
|
}
|
|
1893
1839
|
}
|
|
1894
|
-
//# sourceMappingURL=emitter.js.map
|
|
1840
|
+
//# sourceMappingURL=c-emitter.js.map
|