@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,134 @@
|
|
|
1
|
+
import { mkdtemp, writeFile } from "node:fs/promises";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { describe, expect, test } from "vitest";
|
|
5
|
+
import { loadFfiProfile } from "../ffi/ffi-manifest.js";
|
|
6
|
+
import { createNativeLinkInfo } from "./native-link-info.js";
|
|
7
|
+
import { MACOS_ARM64_TARGET } from "./targets.js";
|
|
8
|
+
const BASE = {
|
|
9
|
+
dynamic: false,
|
|
10
|
+
regex: false,
|
|
11
|
+
copying: false,
|
|
12
|
+
textDecoderLegacy: false,
|
|
13
|
+
fileHandle: false,
|
|
14
|
+
fetch: false,
|
|
15
|
+
netIsland: false,
|
|
16
|
+
zlib: false,
|
|
17
|
+
assert: false,
|
|
18
|
+
inspect: false,
|
|
19
|
+
dynInvoke: false,
|
|
20
|
+
dc: false,
|
|
21
|
+
dynAsync: false,
|
|
22
|
+
events: false,
|
|
23
|
+
emitter: false,
|
|
24
|
+
symbol: false,
|
|
25
|
+
searchParams: false,
|
|
26
|
+
qs: false,
|
|
27
|
+
parseArgs: false,
|
|
28
|
+
stream: false,
|
|
29
|
+
net: false,
|
|
30
|
+
http: false,
|
|
31
|
+
http2: false,
|
|
32
|
+
dgram: false,
|
|
33
|
+
watch: false,
|
|
34
|
+
foreignFfi: false,
|
|
35
|
+
nodeTest: false,
|
|
36
|
+
tls: false,
|
|
37
|
+
tlsCa: false,
|
|
38
|
+
};
|
|
39
|
+
describe("native link info recipes", () => {
|
|
40
|
+
test("feature source sets reproduce runtime and vendor gates", async () => {
|
|
41
|
+
const info = await createNativeLinkInfo({
|
|
42
|
+
programObject: "/out/app.o",
|
|
43
|
+
target: MACOS_ARM64_TARGET,
|
|
44
|
+
features: {
|
|
45
|
+
...BASE,
|
|
46
|
+
dynamic: true,
|
|
47
|
+
regex: true,
|
|
48
|
+
inspect: true,
|
|
49
|
+
zlib: true,
|
|
50
|
+
tls: true,
|
|
51
|
+
},
|
|
52
|
+
ffi: null,
|
|
53
|
+
});
|
|
54
|
+
const runtime = info.runtime_pack.source_sets.find((set) => set.name === "runtime");
|
|
55
|
+
expect(runtime.sources).toEqual(expect.arrayContaining([
|
|
56
|
+
"src/scr_regex.c",
|
|
57
|
+
"src/scr_assert.c",
|
|
58
|
+
"src/scr_inspect.c",
|
|
59
|
+
"src/scr_zlib.c",
|
|
60
|
+
"src/scr_zlib_island.c",
|
|
61
|
+
"src/scr_tls.c",
|
|
62
|
+
"src/scr_tls_ca.c",
|
|
63
|
+
"src/scr_island.c",
|
|
64
|
+
"src/scr_web.c",
|
|
65
|
+
"src/scr_inspect_island.c",
|
|
66
|
+
]));
|
|
67
|
+
expect(info.runtime_pack.source_sets.map((set) => set.name)).toEqual([
|
|
68
|
+
"runtime", "quickjs", "mbedtls",
|
|
69
|
+
]);
|
|
70
|
+
expect(info.runtime_pack.source_sets.find((set) => set.name === "mbedtls").sources.length)
|
|
71
|
+
.toBeGreaterThan(100);
|
|
72
|
+
expect(info.link.system_libraries).toEqual(["System", "z", "m"]);
|
|
73
|
+
});
|
|
74
|
+
test("dev object recipes keep runtime optimization in lockstep", async () => {
|
|
75
|
+
const info = await createNativeLinkInfo({
|
|
76
|
+
programObject: "/out/app.o",
|
|
77
|
+
target: MACOS_ARM64_TARGET,
|
|
78
|
+
features: BASE,
|
|
79
|
+
ffi: null,
|
|
80
|
+
optimization: "dev",
|
|
81
|
+
});
|
|
82
|
+
expect(info.runtime_pack.source_sets[0]?.c_flags).toContain("-O0");
|
|
83
|
+
expect(info.runtime_pack.source_sets[0]?.c_flags).not.toContain("-O2");
|
|
84
|
+
// External objects are compiled separately and the driver recipe is an
|
|
85
|
+
// executable link. The two halves must not leak into each other's recipe.
|
|
86
|
+
expect(info.runtime_pack.source_sets[0]?.c_flags).not.toContain("-Wl,-dead_strip");
|
|
87
|
+
expect(info.link.driver_flags).toContain("-Wl,-dead_strip");
|
|
88
|
+
});
|
|
89
|
+
test("static external-object links dead-strip just like dynamic links", async () => {
|
|
90
|
+
const info = await createNativeLinkInfo({
|
|
91
|
+
programObject: "/out/app.o",
|
|
92
|
+
target: MACOS_ARM64_TARGET,
|
|
93
|
+
features: BASE,
|
|
94
|
+
ffi: null,
|
|
95
|
+
});
|
|
96
|
+
expect(info.link.driver_flags).toContain("-Wl,-dead_strip");
|
|
97
|
+
});
|
|
98
|
+
test("FFI symbols and resolved inputs remain ordered before the runtime", async () => {
|
|
99
|
+
const dir = await mkdtemp(join(tmpdir(), "scriptc-native-link-info-unit-"));
|
|
100
|
+
const library = join(dir, "native.o");
|
|
101
|
+
const manifest = join(dir, "ffi.json");
|
|
102
|
+
await writeFile(library, "fixture");
|
|
103
|
+
await writeFile(manifest, JSON.stringify({
|
|
104
|
+
ffi_format: 1,
|
|
105
|
+
functions: [{
|
|
106
|
+
name: "nativeScale",
|
|
107
|
+
symbol: "native_scale",
|
|
108
|
+
params: ["f64"],
|
|
109
|
+
returns: "f64",
|
|
110
|
+
}],
|
|
111
|
+
libraries: ["./native.o"],
|
|
112
|
+
system_libraries: ["sqlite3"],
|
|
113
|
+
}));
|
|
114
|
+
const loaded = loadFfiProfile(manifest);
|
|
115
|
+
if (!loaded.ok)
|
|
116
|
+
throw new Error(loaded.diagnostics[0]?.message);
|
|
117
|
+
const info = await createNativeLinkInfo({
|
|
118
|
+
programObject: "/out/app.o",
|
|
119
|
+
target: MACOS_ARM64_TARGET,
|
|
120
|
+
features: BASE,
|
|
121
|
+
ffi: loaded.profile,
|
|
122
|
+
});
|
|
123
|
+
expect(info.ffi).toEqual({
|
|
124
|
+
format: 1,
|
|
125
|
+
symbols: ["native_scale"],
|
|
126
|
+
libraries: [library],
|
|
127
|
+
});
|
|
128
|
+
expect(info.link.input_order.slice(0, 3)).toEqual([
|
|
129
|
+
"/out/app.o", library, "runtime/*.o",
|
|
130
|
+
]);
|
|
131
|
+
expect(info.link.system_libraries).toEqual(["sqlite3", "System"]);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=native-link-info.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-link-info.test.js","sourceRoot":"","sources":["../../src/backend/native-link-info.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
export { buildCacheRoot, prepareBuildCacheRoot, pruneBuildCache, resolveBuildCacheRoot, } from "./build-cache.js";
|
|
2
|
+
export declare const EXECUTABLE_RUNTIME_SOURCES: readonly ["scr_number.c", "scr_string.c", "scr_array.c", "scr_bytes.c", "scr_bytes_io.c", "scr_map.c", "scr_closure.c", "scr_ffi.c", "scr_object.c", "scr_union.c", "scr_exception.c", "scr_error.c", "scr_console.c", "scr_lib.c", "scr_path.c", "scr_url.c", "scr_json.c", "scr_async.c", "scr_child.c", "scr_cycle.c"];
|
|
3
|
+
/**
|
|
4
|
+
* Per-executable section-elimination recipe. This belongs beside the native
|
|
5
|
+
* driver rather than a particular build path: one-shot compilation, cached
|
|
6
|
+
* runtime objects, external object recipes, and runtime packs must all agree
|
|
7
|
+
* on what their final executable linker is allowed to discard.
|
|
8
|
+
*
|
|
9
|
+
* Archives and compile-only object/library recipes deliberately do not use
|
|
10
|
+
* the link half. In particular, `--lib` preserves its established object and
|
|
11
|
+
* archive contract; section GC is an executable-link optimization only.
|
|
12
|
+
*/
|
|
13
|
+
export declare function executableSectionEliminationFlags(platform: string): {
|
|
14
|
+
compile: string[];
|
|
15
|
+
link: string[];
|
|
16
|
+
};
|
|
1
17
|
export interface ToolchainEnvironmentCachePolicy {
|
|
2
18
|
completeArtifacts: boolean;
|
|
3
19
|
runtimeObjects: boolean;
|
|
@@ -50,15 +66,17 @@ export interface CcOptions {
|
|
|
50
66
|
* cached runtime objects. */
|
|
51
67
|
systemLibraries?: readonly string[];
|
|
52
68
|
/** Embed the dynamic-island engine (--dynamic): compiles scr_island.c,
|
|
53
|
-
* defines SCR_DYNAMIC, and links the cached libqjs.a. Off
|
|
54
|
-
*
|
|
69
|
+
* defines SCR_DYNAMIC, and links the cached libqjs.a. Off retains the
|
|
70
|
+
* static runtime selection; executable section GC may still remove
|
|
71
|
+
* unreachable static-runtime code. */
|
|
55
72
|
dynamic?: boolean;
|
|
56
73
|
/** The program contains a regex construct (index.ts detects it on the
|
|
57
74
|
* IR): compiles scr_regex.c and links the vendored libregexp — as cached
|
|
58
75
|
* standalone objects in static builds, from the engine archive under
|
|
59
76
|
* --dynamic (one libregexp per binary; its host hooks want the island's
|
|
60
77
|
* JSContext there). Off = regex-free: the command line is exactly the
|
|
61
|
-
* historical
|
|
78
|
+
* historical runtime selection; executable section GC may remove unrelated
|
|
79
|
+
* unreachable code. */
|
|
62
80
|
regex?: boolean;
|
|
63
81
|
/** The program uses one of the copying/typed-array bridge intrinsics
|
|
64
82
|
* implemented in scr_copying.c (index.ts detects them on the IR).
|
|
@@ -95,10 +113,11 @@ export interface CcOptions {
|
|
|
95
113
|
netIsland?: boolean;
|
|
96
114
|
/** The program uses zlib (index.ts detects zlib.* libCalls on the IR):
|
|
97
115
|
* compiles scr_zlib.c — the regex/curl gating precedent, so zlib-free
|
|
98
|
-
* binaries keep their exact link line.
|
|
99
|
-
* (macOS ships it), byte-identical to the historical line;
|
|
100
|
-
*
|
|
101
|
-
* has no libz in its sysroots). Compressed bytes may
|
|
116
|
+
* binaries keep their exact link line. The default host-clang build links
|
|
117
|
+
* the SYSTEM libz (macOS ships it), byte-identical to the historical line;
|
|
118
|
+
* every Zig build compiles the vendored zlib with the selected driver instead
|
|
119
|
+
* (ensureZlibObjects — zig has no libz in its sysroots). Compressed bytes may
|
|
120
|
+
* differ between the
|
|
102
121
|
* system and vendored libraries, which is why the corpus only ever
|
|
103
122
|
* compares round-trips and fixed-blob inflation, never raw deflate
|
|
104
123
|
* output. */
|
|
@@ -258,6 +277,10 @@ export interface CcDriver {
|
|
|
258
277
|
/** Platform libraries appended after every object/archive input. */
|
|
259
278
|
linkArgs: string[];
|
|
260
279
|
}
|
|
280
|
+
/** Whether the selected compiler driver is Zig. This is deliberately based on
|
|
281
|
+
* the executable prefix rather than target presence: targetless Zig is still
|
|
282
|
+
* a Zig build, while target presence is only the platform/target contract. */
|
|
283
|
+
export declare function isZigDriver(driver: Pick<CcDriver, "argv">): boolean;
|
|
261
284
|
export declare const IPHONEOS_MIN_VERSION = "15.0";
|
|
262
285
|
export declare const ANDROID_MIN_API = 26;
|
|
263
286
|
export declare function isIosTarget(target: string | null): boolean;
|
|
@@ -273,31 +296,19 @@ export declare function mobileLibraryTarget(env?: NodeJS.ProcessEnv): string | n
|
|
|
273
296
|
* inspection — no discovery, no subprocess. */
|
|
274
297
|
export declare function mobileTargetRefusal(target: string, hostPlatform?: NodeJS.Platform): string | null;
|
|
275
298
|
export declare function resolveCc(env?: NodeJS.ProcessEnv, hostPlatform?: NodeJS.Platform): CcDriver;
|
|
276
|
-
/** Musl intentionally has no predefined libc macro. The explicit Zig target
|
|
277
|
-
* is therefore the source of truth for selecting its small runtime shim. */
|
|
278
|
-
export declare function isMuslTarget(driver: Pick<CcDriver, "target">): boolean;
|
|
279
299
|
/** The OS the produced binary runs on: the triple's OS under SCRIPTC_TARGET,
|
|
280
300
|
* the host's otherwise — so platform-conditional link flags follow the
|
|
281
301
|
* TARGET, not the machine running the compiler. Exported for compile()/
|
|
282
302
|
* analyze(): the FRONTEND consults it too (path.sep / os.EOL literals and
|
|
283
303
|
* the path-module binding follow the target — a win32 triple compiles
|
|
284
304
|
* Node-on-Windows semantics, path.win32 backing the bare module). */
|
|
305
|
+
export declare function configuredTargetPlatform(env?: NodeJS.ProcessEnv, hostPlatform?: NodeJS.Platform): string;
|
|
285
306
|
export declare function targetPlatform(driver: CcDriver): string;
|
|
286
307
|
/** Architecture identity for host-native cache entries. Explicit cross targets
|
|
287
308
|
* already name their complete target triple; native builds need the process
|
|
288
309
|
* architecture too because one per-user cache can serve both native and
|
|
289
310
|
* emulated processes (arm64 and Rosetta on macOS, for example). */
|
|
290
311
|
export declare function cacheTargetIdentity(driver: Pick<CcDriver, "target">, hostPlatform?: NodeJS.Platform, hostArch?: string): string;
|
|
291
|
-
/** Cross targets already carry their architecture in the explicit triple.
|
|
292
|
-
* Host-native prerequisites need the same separation: a checkout/package can
|
|
293
|
-
* be used by both arm64 Node and Rosetta/x64 Node on macOS. */
|
|
294
|
-
export declare function vendorCacheTargetFlavor(driver: Pick<CcDriver, "target">, hostPlatform?: NodeJS.Platform, hostArch?: string): string;
|
|
295
|
-
/** Vendor prerequisites live outside the content-addressed build root, so
|
|
296
|
-
* their directory name must carry the environment, resolved compiler, owned
|
|
297
|
-
* source bytes, and build-recipe identity of the artifacts that consume them.
|
|
298
|
-
* The short digest keeps the cache path readable while preventing build-order
|
|
299
|
-
* and cross-installation contamination. */
|
|
300
|
-
export declare function vendorCacheBuildIdentity(environmentFingerprint: string, compilerIdentity: string, nativeSourceIdentity: string): string;
|
|
301
312
|
export interface LibArchiveOptions {
|
|
302
313
|
/** The program TU (.c or .ll — clang compiles either with -c). */
|
|
303
314
|
cPath: string;
|
|
@@ -365,20 +376,14 @@ export interface LibArchiveOptions {
|
|
|
365
376
|
textDecoderLegacy?: boolean;
|
|
366
377
|
}
|
|
367
378
|
export declare function compileLibArchive(opts: LibArchiveOptions): Promise<void>;
|
|
368
|
-
/**
|
|
369
|
-
*
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
export declare function
|
|
375
|
-
|
|
376
|
-
* the artifact caches. Failure disables only the optional caller's tier. */
|
|
377
|
-
export declare function prepareBuildCacheRoot(root: string | null): Promise<string | null>;
|
|
378
|
-
/** Register a successful compiler-level cache write with the shared bounded
|
|
379
|
-
* LRU policy. */
|
|
380
|
-
export declare function pruneBuildCache(root: string | null): Promise<void>;
|
|
381
|
-
export declare function ccVersionOnce(argv: string[], environmentFingerprint?: string, fresh?: boolean): Promise<string>;
|
|
379
|
+
/** Persistent caches require an inspectable compiler driver. A general
|
|
380
|
+
* wrapper can branch on the real source/object paths or argument topology and
|
|
381
|
+
* inject inputs only into the final invocation; no synthetic metadata probe
|
|
382
|
+
* can safely represent that behavior. Accept direct Clang/Zig drivers (plus
|
|
383
|
+
* Apple's system shim) and conservatively keep wrapper-driven builds on the
|
|
384
|
+
* uncached path. */
|
|
385
|
+
export declare function compilerDriverSupportsPersistentCache(driver: Pick<CcDriver, "argv" | "targetArgs" | "target">, environmentFingerprint: string): Promise<boolean>;
|
|
386
|
+
export declare function ccVersion(argv: string[], environmentFingerprint?: string, fresh?: boolean): Promise<string>;
|
|
382
387
|
/** Every system-header spelling consumed by a source tree scriptc owns. The
|
|
383
388
|
* dependency probe preprocesses these spellings with the selected driver and
|
|
384
389
|
* hashes the resolved files. Runtime-local and vendored source/header bytes
|
|
@@ -387,7 +392,18 @@ export declare function ccVersionOnce(argv: string[], environmentFingerprint?: s
|
|
|
387
392
|
* libregexp, mbedTLS, zlib, curl, and Ryū translation units. */
|
|
388
393
|
export declare function implicitDependencyProbeIncludes(rtDir: string): Promise<string[]>;
|
|
389
394
|
export declare function parseLinkTraceFiles(output: string, cwd: string, excludedRoot: string, driverDryRun?: boolean): Promise<string[]>;
|
|
395
|
+
/** Resolve the exact files consumed by one compiler-driver link invocation.
|
|
396
|
+
* Runtime packs reuse the native toolchain's strict dry-run plus real linker
|
|
397
|
+
* trace so a PATH-selected Clang carries its own linker, SDK, compiler
|
|
398
|
+
* runtime, and injected inputs into the executable cache proof. */
|
|
399
|
+
export declare function nativeLinkerDependencyPaths(linker: string, linkArgs: readonly string[]): Promise<string[]>;
|
|
400
|
+
/** Reset process observations whose validity is bounded to one public native
|
|
401
|
+
* build. A long-lived caller may change PATH or install/remove ccache between
|
|
402
|
+
* invocations; the next build must probe that environment again. */
|
|
403
|
+
export declare function clearCcCaches(): void;
|
|
390
404
|
export declare function runtimeFingerprint(rtDir: string): Promise<string>;
|
|
405
|
+
declare const vendorCacheTargetFlavor: (driver: Pick<CcDriver, "target">, hostPlatform?: NodeJS.Platform, hostArch?: string) => string, vendorCacheBuildIdentity: (environmentFingerprint: string, compilerIdentity: string, nativeSourceIdentity: string) => string;
|
|
406
|
+
export { vendorCacheBuildIdentity, vendorCacheTargetFlavor };
|
|
391
407
|
export interface NativeArtifactDependency {
|
|
392
408
|
path: string;
|
|
393
409
|
kind: "file" | "directory" | "symlink";
|
|
@@ -409,6 +425,10 @@ export interface NativeArtifactDependency {
|
|
|
409
425
|
treeDigest?: string;
|
|
410
426
|
treeExclusions?: string[];
|
|
411
427
|
}
|
|
428
|
+
/** Capture exact filesystem identities for inputs produced outside the C
|
|
429
|
+
* toolchain but consumed by its cache proofs. Callers carry this snapshot
|
|
430
|
+
* forward so later stages can prove the same inputs remained installed. */
|
|
431
|
+
export declare function snapshotNativeArtifactDependencies(dependencyPaths: readonly string[]): Promise<NativeArtifactDependency[]>;
|
|
412
432
|
export declare function nativeArtifactDependenciesStillMatch(dependencies: readonly NativeArtifactDependency[]): Promise<boolean>;
|
|
413
433
|
/** Give one active link/archive operation private names for its cached
|
|
414
434
|
* runtime objects. A hard link keeps the inode alive if another process's LRU
|