@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
|
@@ -5,7 +5,7 @@ import { chmod, cp, mkdir, mkdtemp, readdir, readFile, rm, stat, symlink, utimes
|
|
|
5
5
|
import { tmpdir } from "node:os";
|
|
6
6
|
import { delimiter, join } from "node:path";
|
|
7
7
|
import { afterAll, afterEach, expect, test as vitestTest } from "vitest";
|
|
8
|
-
import { cacheTargetIdentity,
|
|
8
|
+
import { cacheTargetIdentity, ccVersion, compileC, compileLibArchive, executableSectionEliminationFlags, executableNativeEnvironmentFingerprint, implicitDependencyProbeIncludes, parseLinkTraceFiles, resolveBuildCacheRoot, runtimeFingerprint, runtimeSrcDir, stageRuntimeObjects, supportedNativeCacheWarmProfiles, toolchainEnvironmentCachePolicy, toolchainEnvironmentFingerprint, vendorCacheBuildIdentity, vendorCacheTargetFlavor, warmNativeCaches, } from "./native-toolchain.js";
|
|
9
9
|
import { splitLlvmProgram } from "./llvm/split.js";
|
|
10
10
|
const scratch = [];
|
|
11
11
|
const TEST_CACHE_IDENTITY = "cc-cache-tests-v1";
|
|
@@ -96,6 +96,21 @@ test("the production cache root follows overrides, platform defaults, and the ha
|
|
|
96
96
|
expect(resolveBuildCacheRoot({}, "darwin", "/Users/tester")).toBe("/Users/tester/Library/Caches/scriptc/build");
|
|
97
97
|
expect(resolveBuildCacheRoot({ LOCALAPPDATA: "/Users/tester/AppData/Local" }, "win32", "/Users/tester")).toBe("/Users/tester/AppData/Local/scriptc/cache/build");
|
|
98
98
|
});
|
|
99
|
+
test("executable section elimination flags are target-aware and never enter library recipes", () => {
|
|
100
|
+
expect(executableSectionEliminationFlags("darwin")).toEqual({
|
|
101
|
+
compile: [],
|
|
102
|
+
link: ["-Wl,-dead_strip"],
|
|
103
|
+
});
|
|
104
|
+
expect(executableSectionEliminationFlags("linux")).toEqual({
|
|
105
|
+
compile: ["-ffunction-sections", "-fdata-sections"],
|
|
106
|
+
link: ["-Wl,--gc-sections"],
|
|
107
|
+
});
|
|
108
|
+
expect(executableSectionEliminationFlags("win32")).toEqual({
|
|
109
|
+
compile: ["-ffunction-sections", "-fdata-sections"],
|
|
110
|
+
link: ["-Wl,--gc-sections"],
|
|
111
|
+
});
|
|
112
|
+
expect(executableSectionEliminationFlags("wasi")).toEqual({ compile: [], link: [] });
|
|
113
|
+
});
|
|
99
114
|
test.skipIf(process.platform === "win32")("the early executable identity follows a compiler selected behind a stable driver", async () => {
|
|
100
115
|
const dir = await mkdtemp(join(tmpdir(), "scriptc-effective-compiler-"));
|
|
101
116
|
scratch.push(dir);
|
|
@@ -134,6 +149,95 @@ test("native cache identities separate host architectures while cross targets re
|
|
|
134
149
|
expect(vendorCacheTargetFlavor({ target: null }, "darwin", "x64")).toBe("native-darwin-x64");
|
|
135
150
|
expect(vendorCacheTargetFlavor({ target: "x86_64-linux-gnu.2.36" }, "darwin", "arm64")).toBe("x86_64-linux-gnu.2.36");
|
|
136
151
|
});
|
|
152
|
+
test.skipIf(process.platform === "win32" || zigExecutable === undefined ||
|
|
153
|
+
clangExecutable === undefined || arExecutable === undefined)("targetless Zig vendor caches are separate from host-clang and reusable", async () => {
|
|
154
|
+
const dir = await mkdtemp(join(tmpdir(), "scriptc-zig-vendor-cache-"));
|
|
155
|
+
scratch.push(dir);
|
|
156
|
+
const cacheRoot = join(dir, "cache");
|
|
157
|
+
const vendorRoot = join(dir, "vendor-cache");
|
|
158
|
+
const cPath = join(dir, "program.c");
|
|
159
|
+
const oldCacheDir = process.env["SCRIPTC_CACHE_DIR"];
|
|
160
|
+
const oldNoCache = process.env["SCRIPTC_NO_CACHE"];
|
|
161
|
+
const oldVendorCacheDir = process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"];
|
|
162
|
+
const oldCc = process.env["SCRIPTC_CC"];
|
|
163
|
+
const oldTarget = process.env["SCRIPTC_TARGET"];
|
|
164
|
+
try {
|
|
165
|
+
await writeFile(cPath, "int main(void) { return 0; }\n");
|
|
166
|
+
process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
|
|
167
|
+
process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"] = vendorRoot;
|
|
168
|
+
delete process.env["SCRIPTC_NO_CACHE"];
|
|
169
|
+
delete process.env["SCRIPTC_TARGET"];
|
|
170
|
+
process.env["SCRIPTC_CC"] = "clang";
|
|
171
|
+
await compileC({
|
|
172
|
+
cPath,
|
|
173
|
+
outPath: join(dir, "host"),
|
|
174
|
+
cacheIdentity: TEST_CACHE_IDENTITY,
|
|
175
|
+
dynamic: true,
|
|
176
|
+
net: true,
|
|
177
|
+
http: true,
|
|
178
|
+
tls: true,
|
|
179
|
+
zlib: true,
|
|
180
|
+
// Keep the complete executable tier out of this test: the second Zig
|
|
181
|
+
// invocation must walk the vendor cache and prove its artifacts are
|
|
182
|
+
// reusable independently of the output path.
|
|
183
|
+
systemLibraries: ["m"],
|
|
184
|
+
});
|
|
185
|
+
const hostEngine = (await readdir(vendorRoot)).find((name) => /^3c8f3d689539-plain-/.test(name));
|
|
186
|
+
const hostTls = (await readdir(vendorRoot)).find((name) => name.startsWith("mbedtls-"));
|
|
187
|
+
expect(hostEngine).toBeDefined();
|
|
188
|
+
expect(hostTls).toBeDefined();
|
|
189
|
+
process.env["SCRIPTC_CC"] = "zigcc";
|
|
190
|
+
const zigOptions = {
|
|
191
|
+
cPath,
|
|
192
|
+
cacheIdentity: TEST_CACHE_IDENTITY,
|
|
193
|
+
dynamic: true,
|
|
194
|
+
net: true,
|
|
195
|
+
http: true,
|
|
196
|
+
tls: true,
|
|
197
|
+
zlib: true,
|
|
198
|
+
systemLibraries: ["m"],
|
|
199
|
+
};
|
|
200
|
+
await compileC({ ...zigOptions, outPath: join(dir, "zig-first") });
|
|
201
|
+
let vendorEntries = await readdir(vendorRoot);
|
|
202
|
+
expect(vendorEntries.filter((name) => /^3c8f3d689539-plain-/.test(name))).toHaveLength(2);
|
|
203
|
+
expect(vendorEntries.filter((name) => name.startsWith("mbedtls-")).length).toBe(2);
|
|
204
|
+
// Host clang uses system zlib, so only the Zig build materializes a zlib
|
|
205
|
+
// object family in the shared vendor root.
|
|
206
|
+
expect(vendorEntries.filter((name) => name.startsWith("zlib-")).length).toBe(1);
|
|
207
|
+
// Invalidate the host archive. A targetless Zig rebuild must continue to
|
|
208
|
+
// use the separately keyed Zig archive instead of repairing or consuming
|
|
209
|
+
// the host-clang entry.
|
|
210
|
+
await writeFile(join(vendorRoot, hostEngine, "libqjs.a"), "host archive intentionally invalid\n");
|
|
211
|
+
await writeFile(join(vendorRoot, hostTls, "libmbedtls.a"), "host archive intentionally invalid\n");
|
|
212
|
+
await compileC({ ...zigOptions, outPath: join(dir, "zig-second") });
|
|
213
|
+
vendorEntries = await readdir(vendorRoot);
|
|
214
|
+
expect(vendorEntries.filter((name) => /^3c8f3d689539-plain-/.test(name))).toHaveLength(2);
|
|
215
|
+
expect(await readFile(join(vendorRoot, hostEngine, "libqjs.a"), "utf8")).toBe("host archive intentionally invalid\n");
|
|
216
|
+
expect(await readFile(join(vendorRoot, hostTls, "libmbedtls.a"), "utf8")).toBe("host archive intentionally invalid\n");
|
|
217
|
+
}
|
|
218
|
+
finally {
|
|
219
|
+
if (oldCacheDir === undefined)
|
|
220
|
+
delete process.env["SCRIPTC_CACHE_DIR"];
|
|
221
|
+
else
|
|
222
|
+
process.env["SCRIPTC_CACHE_DIR"] = oldCacheDir;
|
|
223
|
+
if (oldNoCache === undefined)
|
|
224
|
+
delete process.env["SCRIPTC_NO_CACHE"];
|
|
225
|
+
else
|
|
226
|
+
process.env["SCRIPTC_NO_CACHE"] = oldNoCache;
|
|
227
|
+
if (oldVendorCacheDir === undefined)
|
|
228
|
+
delete process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"];
|
|
229
|
+
else
|
|
230
|
+
process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"] = oldVendorCacheDir;
|
|
231
|
+
if (oldCc === undefined)
|
|
232
|
+
delete process.env["SCRIPTC_CC"];
|
|
233
|
+
else
|
|
234
|
+
process.env["SCRIPTC_CC"] = oldCc;
|
|
235
|
+
if (oldTarget === undefined)
|
|
236
|
+
delete process.env["SCRIPTC_TARGET"];
|
|
237
|
+
else
|
|
238
|
+
process.env["SCRIPTC_TARGET"] = oldTarget;
|
|
239
|
+
}
|
|
240
|
+
}, 600_000);
|
|
137
241
|
test("Zig COFF dry-run parsing retains every linker input on its single command line", async () => {
|
|
138
242
|
const dir = await mkdtemp(join(tmpdir(), "scriptc-link-trace-"));
|
|
139
243
|
scratch.push(dir);
|
|
@@ -218,7 +322,7 @@ printf 'fake zig cc version probe\n'
|
|
|
218
322
|
// Zig 0.16 creates cwd/a.o for `zig cc --version`. Model that side
|
|
219
323
|
// effect directly so this regression does not depend on Zig being
|
|
220
324
|
// installed in every generic test shard.
|
|
221
|
-
await
|
|
325
|
+
await ccVersion([fakeCompiler, "cc"], `version-probe-${dir}`);
|
|
222
326
|
expect(await readdir(probeTmp)).toEqual([]);
|
|
223
327
|
}
|
|
224
328
|
finally {
|
|
@@ -349,6 +453,69 @@ test("implicit dependency seeds include separately compiled vendor system header
|
|
|
349
453
|
// to the native object/cache identity.
|
|
350
454
|
expect(includes).toContain("<stdatomic.h>");
|
|
351
455
|
});
|
|
456
|
+
test.skipIf(process.platform === "win32" || clangExecutable === undefined || arExecutable === undefined ||
|
|
457
|
+
ldExecutable === undefined)("public native builds re-probe ccache availability after PATH changes", async () => {
|
|
458
|
+
const dir = await mkdtemp(join(tmpdir(), "scriptc-ccache-reset-"));
|
|
459
|
+
scratch.push(dir);
|
|
460
|
+
const binDir = join(dir, "bin");
|
|
461
|
+
const cacheRoot = join(dir, "cache");
|
|
462
|
+
const cPath = join(dir, "program.c");
|
|
463
|
+
const ccacheLog = join(dir, "ccache.log");
|
|
464
|
+
const oldCacheDir = process.env["SCRIPTC_CACHE_DIR"];
|
|
465
|
+
const oldNoCache = process.env["SCRIPTC_NO_CACHE"];
|
|
466
|
+
const oldPath = process.env["PATH"];
|
|
467
|
+
const oldCcacheLog = process.env["SCRIPTC_TEST_CCACHE_LOG"];
|
|
468
|
+
try {
|
|
469
|
+
await Promise.all([mkdir(binDir), mkdir(cacheRoot, { mode: 0o700 })]);
|
|
470
|
+
await Promise.all([
|
|
471
|
+
symlink(clangExecutable, join(binDir, "clang")),
|
|
472
|
+
symlink(arExecutable, join(binDir, "ar")),
|
|
473
|
+
symlink(ldExecutable, join(binDir, "ld")),
|
|
474
|
+
writeFile(cPath, "int main(void) { return 0; }\n"),
|
|
475
|
+
]);
|
|
476
|
+
process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
|
|
477
|
+
process.env["PATH"] = binDir;
|
|
478
|
+
delete process.env["SCRIPTC_NO_CACHE"];
|
|
479
|
+
await compileC({
|
|
480
|
+
cPath,
|
|
481
|
+
outPath: join(dir, "first"),
|
|
482
|
+
cacheIdentity: TEST_CACHE_IDENTITY,
|
|
483
|
+
regex: true,
|
|
484
|
+
});
|
|
485
|
+
await writeFile(join(binDir, "ccache"), `#!/bin/sh
|
|
486
|
+
if [ "$1" = "--version" ]; then exit 0; fi
|
|
487
|
+
printf '%s\n' "$*" >> "$SCRIPTC_TEST_CCACHE_LOG"
|
|
488
|
+
exec "$@"
|
|
489
|
+
`);
|
|
490
|
+
await chmod(join(binDir, "ccache"), 0o755);
|
|
491
|
+
process.env["SCRIPTC_TEST_CCACHE_LOG"] = ccacheLog;
|
|
492
|
+
await compileC({
|
|
493
|
+
cPath,
|
|
494
|
+
outPath: join(dir, "second"),
|
|
495
|
+
cacheIdentity: TEST_CACHE_IDENTITY,
|
|
496
|
+
dynamic: true,
|
|
497
|
+
});
|
|
498
|
+
expect((await readFile(ccacheLog, "utf8")).trim()).not.toBe("");
|
|
499
|
+
}
|
|
500
|
+
finally {
|
|
501
|
+
if (oldCacheDir === undefined)
|
|
502
|
+
delete process.env["SCRIPTC_CACHE_DIR"];
|
|
503
|
+
else
|
|
504
|
+
process.env["SCRIPTC_CACHE_DIR"] = oldCacheDir;
|
|
505
|
+
if (oldNoCache === undefined)
|
|
506
|
+
delete process.env["SCRIPTC_NO_CACHE"];
|
|
507
|
+
else
|
|
508
|
+
process.env["SCRIPTC_NO_CACHE"] = oldNoCache;
|
|
509
|
+
if (oldPath === undefined)
|
|
510
|
+
delete process.env["PATH"];
|
|
511
|
+
else
|
|
512
|
+
process.env["PATH"] = oldPath;
|
|
513
|
+
if (oldCcacheLog === undefined)
|
|
514
|
+
delete process.env["SCRIPTC_TEST_CCACHE_LOG"];
|
|
515
|
+
else
|
|
516
|
+
process.env["SCRIPTC_TEST_CCACHE_LOG"] = oldCcacheLog;
|
|
517
|
+
}
|
|
518
|
+
});
|
|
352
519
|
test.skipIf(process.platform === "win32")("opaque compiler wrappers bypass persistent caches", async () => {
|
|
353
520
|
const dir = await mkdtemp(join(tmpdir(), "scriptc-cache-compiler-wrapper-"));
|
|
354
521
|
scratch.push(dir);
|
|
@@ -2560,7 +2727,11 @@ done
|
|
|
2560
2727
|
exec "$SCRIPTC_TEST_REAL_CLANG" "$@"
|
|
2561
2728
|
`);
|
|
2562
2729
|
await chmod(wrapper, 0o755);
|
|
2563
|
-
|
|
2730
|
+
// Keep the injected datum reachable. With executable section GC an
|
|
2731
|
+
// unreferenced test-only global is rightly removed before the binary
|
|
2732
|
+
// assertion below can observe it.
|
|
2733
|
+
await writeFile(cPath, "extern int scriptc_runtime_race_marker(void);\n" +
|
|
2734
|
+
"int main(void) { return scriptc_runtime_race_marker(); }\n");
|
|
2564
2735
|
process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
|
|
2565
2736
|
process.env["SCRIPTC_TEST_RUNTIME_SRC_DIR"] = fakeRuntime;
|
|
2566
2737
|
process.env["SCRIPTC_TEST_REAL_CLANG"] = realClang;
|
|
@@ -2585,7 +2756,11 @@ exec "$SCRIPTC_TEST_REAL_CLANG" "$@"
|
|
|
2585
2756
|
throw new Error("timed out waiting for runtime compile");
|
|
2586
2757
|
await new Promise((resolveWait) => setTimeout(resolveWait, 10));
|
|
2587
2758
|
}
|
|
2588
|
-
await writeFile(raceSource, `${originalRuntimeSource}\
|
|
2759
|
+
await writeFile(raceSource, `${originalRuntimeSource}\n` +
|
|
2760
|
+
`volatile const char scriptc_runtime_race_marker_data[] = "${marker}";\n` +
|
|
2761
|
+
"int scriptc_runtime_race_marker(void) {\n" +
|
|
2762
|
+
" return scriptc_runtime_race_marker_data[0] == '\\0';\n" +
|
|
2763
|
+
"}\n");
|
|
2589
2764
|
await writeFile(release, "go");
|
|
2590
2765
|
await firstBuild;
|
|
2591
2766
|
expect((await readFile(firstOut)).includes(Buffer.from(marker))).toBe(true);
|
|
@@ -2814,6 +2989,39 @@ test("frontend-generated same-output builds no-op only while output and dependen
|
|
|
2814
2989
|
process.umask(oldUmask);
|
|
2815
2990
|
}
|
|
2816
2991
|
});
|
|
2992
|
+
test("pre-section-GC output-local stamps cannot restore an old executable", async () => {
|
|
2993
|
+
const dir = await mkdtemp(join(tmpdir(), "scriptc-section-gc-local-stamp-"));
|
|
2994
|
+
scratch.push(dir);
|
|
2995
|
+
const cacheRoot = join(dir, "cache");
|
|
2996
|
+
const cPath = join(dir, "program.c");
|
|
2997
|
+
const outPath = join(dir, "program");
|
|
2998
|
+
const oldCacheDir = process.env["SCRIPTC_CACHE_DIR"];
|
|
2999
|
+
const oldNoCache = process.env["SCRIPTC_NO_CACHE"];
|
|
3000
|
+
try {
|
|
3001
|
+
process.env["SCRIPTC_CACHE_DIR"] = cacheRoot;
|
|
3002
|
+
delete process.env["SCRIPTC_NO_CACHE"];
|
|
3003
|
+
await writeFile(cPath, "int main(void) { return 0; }\n");
|
|
3004
|
+
await compileC({ cPath, outPath, cacheIdentity: "scriptc-generated-v1" });
|
|
3005
|
+
const stampPath = join(cacheRoot, "local", createHash("sha256").update(outPath).digest("hex"));
|
|
3006
|
+
const current = JSON.parse(await readFile(stampPath, "utf8"));
|
|
3007
|
+
const legacy = { ...current, key: "old-non-gc-output", version: 1 };
|
|
3008
|
+
await writeFile(stampPath, `${JSON.stringify(legacy)}\n`);
|
|
3009
|
+
const pinnedTime = new Date("2001-01-01T00:00:00.000Z");
|
|
3010
|
+
await utimes(outPath, pinnedTime, pinnedTime);
|
|
3011
|
+
await compileC({ cPath, outPath, cacheIdentity: "scriptc-generated-v1" });
|
|
3012
|
+
expect((await stat(outPath)).mtimeMs).toBeGreaterThan(pinnedTime.getTime());
|
|
3013
|
+
}
|
|
3014
|
+
finally {
|
|
3015
|
+
if (oldCacheDir === undefined)
|
|
3016
|
+
delete process.env["SCRIPTC_CACHE_DIR"];
|
|
3017
|
+
else
|
|
3018
|
+
process.env["SCRIPTC_CACHE_DIR"] = oldCacheDir;
|
|
3019
|
+
if (oldNoCache === undefined)
|
|
3020
|
+
delete process.env["SCRIPTC_NO_CACHE"];
|
|
3021
|
+
else
|
|
3022
|
+
process.env["SCRIPTC_NO_CACHE"] = oldNoCache;
|
|
3023
|
+
}
|
|
3024
|
+
});
|
|
2817
3025
|
test("artifact-ready callbacks expose native dependencies on builds and validated hits", async () => {
|
|
2818
3026
|
const dir = await mkdtemp(join(tmpdir(), "scriptc-artifact-ready-"));
|
|
2819
3027
|
scratch.push(dir);
|
|
@@ -2930,7 +3138,7 @@ test("fresh processes preserve output-local dependency coverage after source edi
|
|
|
2930
3138
|
delete childEnv["SCRIPTC_NO_CACHE"];
|
|
2931
3139
|
delete childEnv["SCRIPTC_TEST_STABLE_TOOLCHAIN"];
|
|
2932
3140
|
delete childEnv["SCRIPTC_TEST_TRUST_COMPILER_WRAPPER"];
|
|
2933
|
-
await writeFile(helperPath, `import { compileC } from ${JSON.stringify(new URL("./
|
|
3141
|
+
await writeFile(helperPath, `import { compileC } from ${JSON.stringify(new URL("./native-toolchain.ts", import.meta.url).href)};\n` +
|
|
2934
3142
|
`await compileC({ cPath: process.argv[2], outPath: process.argv[3], cacheIdentity: "scriptc-generated-v1" });\n`);
|
|
2935
3143
|
const compileInFreshProcess = () => {
|
|
2936
3144
|
execFileSync(process.execPath, ["--import", "tsx", helperPath, cPath, outPath], {
|
|
@@ -3805,7 +4013,11 @@ test.skipIf(process.platform === "win32" || clangExecutable === undefined || arE
|
|
|
3805
4013
|
const probeSource = join(dir, "probe.c");
|
|
3806
4014
|
const probe = join(dir, "probe");
|
|
3807
4015
|
await writeFile(probeSource, "long long public_value(void);\nint main(void) { return public_value() != 7; }\n");
|
|
3808
|
-
|
|
4016
|
+
// The failed linker belongs only to the shard-merge probe. Link the
|
|
4017
|
+
// resulting archive with the real host tools to verify its fallback.
|
|
4018
|
+
execFileSync(clangExecutable, [probeSource, outPath, "-lm", "-o", probe], {
|
|
4019
|
+
env: { ...process.env, PATH: oldPath },
|
|
4020
|
+
});
|
|
3809
4021
|
expect(execFileSync(probe, { encoding: "utf8" })).toBe("");
|
|
3810
4022
|
// The canonical retry is valid for this invocation, but must not occupy a
|
|
3811
4023
|
// key describing merged shard bytes. A repaired merge tool retries the
|
|
@@ -3895,4 +4107,4 @@ test.skipIf(process.platform === "win32" || zigExecutable === undefined)("cross-
|
|
|
3895
4107
|
process.env["SCRIPTC_TARGET"] = oldTarget;
|
|
3896
4108
|
}
|
|
3897
4109
|
});
|
|
3898
|
-
//# sourceMappingURL=
|
|
4110
|
+
//# sourceMappingURL=native-toolchain.test.js.map
|