@scriptc/compiler 0.1.6 → 0.2.0
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 +73 -25
- package/ambient/scriptc-overrides.d.ts +10 -6
- package/ambient/scriptc.d.ts +28 -5
- package/dist/backend/build-cache.d.ts +1 -3
- package/dist/backend/build-cache.js +3 -22
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cache-root.d.ts +3 -0
- package/dist/backend/cache-root.js +23 -0
- package/dist/backend/cache-root.js.map +1 -0
- package/dist/backend/cycle-analysis.d.ts +15 -0
- package/dist/backend/cycle-analysis.js +107 -0
- package/dist/backend/cycle-analysis.js.map +1 -0
- package/dist/backend/cycle-analysis.test.js +124 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -0
- package/dist/backend/debug-symbols.d.ts +8 -0
- package/dist/backend/debug-symbols.js +52 -0
- package/dist/backend/debug-symbols.js.map +1 -0
- package/dist/backend/executable-features.d.ts +4 -0
- package/dist/backend/executable-features.js +42 -0
- package/dist/backend/executable-features.js.map +1 -0
- package/dist/backend/external-c.d.ts +5 -27
- package/dist/backend/external-c.js +5 -40
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.d.ts +2 -3
- package/dist/backend/ffi-callbacks.js +2 -3
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.d.ts +4 -9
- package/dist/backend/library-identity-markers.js +11 -49
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +5 -0
- package/dist/backend/library-pack.js +123 -0
- package/dist/backend/library-pack.js.map +1 -0
- package/dist/backend/link-plan-core.d.ts +20 -0
- package/dist/backend/link-plan-core.js +18 -0
- package/dist/backend/link-plan-core.js.map +1 -0
- package/dist/backend/link-plan.d.ts +2 -1
- package/dist/backend/link-plan.js +18 -17
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/link-trace.d.ts +2 -0
- package/dist/backend/link-trace.js +24 -0
- package/dist/backend/link-trace.js.map +1 -0
- package/dist/backend/linker.js +9 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.d.ts +9 -0
- package/dist/backend/literals.js +35 -0
- package/dist/backend/literals.js.map +1 -0
- package/dist/backend/literals.test.d.ts +1 -0
- package/dist/backend/literals.test.js +53 -0
- package/dist/backend/literals.test.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +4 -0
- package/dist/backend/llvm/blocks.js +25 -4
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/blocks.test.d.ts +1 -0
- package/dist/backend/llvm/blocks.test.js +91 -0
- package/dist/backend/llvm/blocks.test.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +14 -8
- package/dist/backend/llvm/classes.js +70 -28
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +5 -1
- package/dist/backend/llvm/common.js +45 -4
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/debug-info.d.ts +32 -0
- package/dist/backend/llvm/debug-info.js +198 -0
- package/dist/backend/llvm/debug-info.js.map +1 -0
- package/dist/backend/llvm/debug-info.test.d.ts +1 -0
- package/dist/backend/llvm/debug-info.test.js +110 -0
- package/dist/backend/llvm/debug-info.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +16 -2
- package/dist/backend/llvm/dyn.js +498 -175
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +598 -1
- package/dist/backend/llvm/emitter.js +739 -409
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.d.ts +1 -0
- package/dist/backend/llvm/emitter.test.js +179 -0
- package/dist/backend/llvm/emitter.test.js.map +1 -0
- package/dist/backend/llvm/expr-async.js +23 -14
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +1 -1
- package/dist/backend/llvm/expr-bytes.js +32 -14
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-callbacks.js +25 -22
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +136 -35
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +1 -1
- package/dist/backend/llvm/expr-containers.js +43 -14
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +5 -260
- package/dist/backend/llvm/expr-control.js +9 -5
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.d.ts +1 -1
- package/dist/backend/llvm/expr-dispatch.js +2 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +72 -74
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.d.ts +1 -1
- package/dist/backend/llvm/expr-island.js +11 -7
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +51 -30
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +1 -1
- package/dist/backend/llvm/expr-records.d.ts +5 -1
- package/dist/backend/llvm/expr-records.js +43 -4
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +4 -4
- package/dist/backend/llvm/expr-stream-bridges.js +102 -121
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.d.ts +1 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js +55 -0
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -0
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +12 -12
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/layouts.d.ts +19 -0
- package/dist/backend/llvm/layouts.js +12 -0
- package/dist/backend/llvm/layouts.js.map +1 -0
- package/dist/backend/llvm/lib-abi.d.ts +19 -0
- package/dist/backend/llvm/lib-abi.js +82 -0
- package/dist/backend/llvm/lib-abi.js.map +1 -0
- package/dist/backend/llvm/lib-connect.d.ts +2 -0
- package/dist/backend/llvm/lib-connect.js +51 -0
- package/dist/backend/llvm/lib-connect.js.map +1 -0
- package/dist/backend/llvm/lib-datagram.d.ts +2 -0
- package/dist/backend/llvm/lib-datagram.js +135 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -0
- package/dist/backend/llvm/lib-dispatch.js +50 -6
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +59 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.d.ts +2 -0
- package/dist/backend/llvm/lib-http2.js +215 -0
- package/dist/backend/llvm/lib-http2.js.map +1 -0
- package/dist/backend/llvm/lib-lookup.d.ts +2 -0
- package/dist/backend/llvm/lib-lookup.js +39 -0
- package/dist/backend/llvm/lib-lookup.js.map +1 -0
- package/dist/backend/llvm/lib-network.js +25 -2
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +21 -16
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +125 -1
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +3 -2
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.d.ts +2 -0
- package/dist/backend/llvm/lib-test.js +34 -0
- package/dist/backend/llvm/lib-test.js.map +1 -0
- package/dist/backend/llvm/lib-tls.d.ts +2 -0
- package/dist/backend/llvm/lib-tls.js +82 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +10 -9
- package/dist/backend/llvm/shapes.js +35 -130
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/split.js +4 -1
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +26 -1
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/unsupported.d.ts +1 -0
- package/dist/backend/llvm/unsupported.js +1 -2
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js +1 -7
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.d.ts +2 -2
- package/dist/backend/mangle.js +16 -5
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/{c/may-throw.d.ts → may-throw.d.ts} +1 -1
- package/dist/backend/{c/may-throw.js → may-throw.js} +51 -46
- package/dist/backend/may-throw.js.map +1 -0
- package/dist/backend/may-throw.test.d.ts +1 -0
- package/dist/backend/may-throw.test.js +58 -0
- package/dist/backend/may-throw.test.js.map +1 -0
- package/dist/backend/native-codegen-core.d.ts +22 -0
- package/dist/backend/native-codegen-core.js +44 -0
- package/dist/backend/native-codegen-core.js.map +1 -0
- package/dist/backend/native-codegen.d.ts +3 -19
- package/dist/backend/native-codegen.js +5 -44
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +2 -2
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +94 -0
- package/dist/backend/native-link-info-core.js +62 -0
- package/dist/backend/native-link-info-core.js.map +1 -0
- package/dist/backend/native-link-info.d.ts +3 -88
- package/dist/backend/native-link-info.js +12 -243
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +41 -146
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +10 -25
- package/dist/backend/native-toolchain.js +89 -219
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +15 -5
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +24 -0
- package/dist/backend/native-tools.js +33 -0
- package/dist/backend/native-tools.js.map +1 -0
- package/dist/backend/object-localize.js +19 -8
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +22 -0
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +101 -0
- package/dist/backend/runtime-pack-core.js +172 -0
- package/dist/backend/runtime-pack-core.js.map +1 -0
- package/dist/backend/runtime-pack-native.d.ts +21 -0
- package/dist/backend/runtime-pack-native.js +70 -0
- package/dist/backend/runtime-pack-native.js.map +1 -0
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.d.ts +3 -83
- package/dist/backend/runtime-pack.js +8 -151
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +24 -1
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/source-locations.d.ts +12 -0
- package/dist/backend/source-locations.js +32 -0
- package/dist/backend/source-locations.js.map +1 -0
- package/dist/backend/source-locations.test.d.ts +1 -0
- package/dist/backend/source-locations.test.js +16 -0
- package/dist/backend/source-locations.test.js.map +1 -0
- package/dist/backend/target-diagnostics.d.ts +22 -0
- package/dist/backend/target-diagnostics.js +108 -0
- package/dist/backend/target-diagnostics.js.map +1 -0
- package/dist/backend/target-platform.d.ts +15 -0
- package/dist/backend/target-platform.js +72 -0
- package/dist/backend/target-platform.js.map +1 -0
- package/dist/backend/targets.d.ts +13 -4
- package/dist/backend/targets.js +95 -30
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +65 -4
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.d.ts +6 -0
- package/dist/backend/toolchain-environment.js +99 -0
- package/dist/backend/toolchain-environment.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +1 -9
- package/dist/backend/vendor-archives.js +2 -9
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +9 -0
- package/dist/backend/vendor-inputs.js +10 -0
- package/dist/backend/vendor-inputs.js.map +1 -0
- package/dist/backend/warm-cache.d.ts +3 -0
- package/dist/backend/warm-cache.js +41 -0
- package/dist/backend/warm-cache.js.map +1 -0
- package/dist/cli/command.d.ts +3 -0
- package/dist/cli/command.js +328 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/host.d.ts +24 -0
- package/dist/cli/host.js +2 -0
- package/dist/cli/host.js.map +1 -0
- package/dist/cli/output-options.d.ts +26 -0
- package/dist/cli/output-options.js +60 -0
- package/dist/cli/output-options.js.map +1 -0
- package/dist/cli/paths.d.ts +12 -0
- package/dist/cli/paths.js +42 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/usage.d.ts +74 -0
- package/dist/cli/usage.js +86 -0
- package/dist/cli/usage.js.map +1 -0
- package/dist/cli/wasi-paths.d.ts +8 -0
- package/dist/cli/wasi-paths.js +41 -0
- package/dist/cli/wasi-paths.js.map +1 -0
- package/dist/cli/wasi-runner.d.ts +2 -0
- package/dist/cli/wasi-runner.js +28 -0
- package/dist/cli/wasi-runner.js.map +1 -0
- package/dist/compat/fetch-profile.js +3 -3
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/compile-types.d.ts +162 -0
- package/dist/compile-types.js +2 -0
- package/dist/compile-types.js.map +1 -0
- package/dist/coverage/report.js +11 -5
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +5 -2
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +4 -0
- package/dist/diagnostics/diagnostic.js +15 -3
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +3 -4
- package/dist/executable/executable-cache.js +33 -10
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +38 -16
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.d.ts +14 -0
- package/dist/executable/prepare.js +66 -0
- package/dist/executable/prepare.js.map +1 -0
- package/dist/ffi/ffi-manifest.d.ts +11 -4
- package/dist/ffi/ffi-manifest.js +170 -58
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.d.ts +1 -0
- package/dist/ffi/ffi-manifest.test.js +111 -0
- package/dist/ffi/ffi-manifest.test.js.map +1 -0
- package/dist/format-integer.d.ts +3 -0
- package/dist/format-integer.js +14 -0
- package/dist/format-integer.js.map +1 -0
- package/dist/frontend/analysis.d.ts +5 -0
- package/dist/frontend/analysis.js +88 -0
- package/dist/frontend/analysis.js.map +1 -0
- package/dist/frontend/arguments-usage.d.ts +4 -0
- package/dist/frontend/arguments-usage.js +40 -0
- package/dist/frontend/arguments-usage.js.map +1 -0
- package/dist/frontend/binding-source.d.ts +4 -0
- package/dist/frontend/binding-source.js +18 -0
- package/dist/frontend/binding-source.js.map +1 -0
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -1
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-lexer.d.ts +4 -25
- package/dist/frontend/cjs-lexer.js +6 -806
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/cjs-resolve.d.ts +5 -0
- package/dist/frontend/cjs-resolve.js +429 -0
- package/dist/frontend/cjs-resolve.js.map +1 -0
- package/dist/frontend/cjs-syntax.d.ts +26 -0
- package/dist/frontend/cjs-syntax.js +806 -0
- package/dist/frontend/cjs-syntax.js.map +1 -0
- package/dist/frontend/comptime-node.d.ts +4 -0
- package/dist/frontend/comptime-node.js +16 -0
- package/dist/frontend/comptime-node.js.map +1 -0
- package/dist/frontend/comptime-node.test.d.ts +1 -0
- package/dist/frontend/comptime-node.test.js +37 -0
- package/dist/frontend/comptime-node.test.js.map +1 -0
- package/dist/frontend/dts-paths.d.ts +3 -4
- package/dist/frontend/dts-paths.js +15 -8
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.js +2 -2
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/helper-tokens.d.ts +1 -0
- package/dist/frontend/helper-tokens.js +147 -0
- package/dist/frontend/helper-tokens.js.map +1 -0
- package/dist/frontend/helper-tokens.test.d.ts +1 -0
- package/dist/frontend/helper-tokens.test.js +35 -0
- package/dist/frontend/helper-tokens.test.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.d.ts +5 -0
- package/dist/frontend/inferred-js-diagnostics.js +69 -0
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.d.ts +1 -0
- package/dist/frontend/inferred-js-diagnostics.test.js +58 -0
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -0
- package/dist/frontend/input-tracker.d.ts +5 -2
- package/dist/frontend/input-tracker.js +24 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +23 -0
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +32 -24
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.d.ts +4 -0
- package/dist/frontend/literal-values.js +21 -0
- package/dist/frontend/literal-values.js.map +1 -0
- package/dist/frontend/literal-values.test.d.ts +1 -0
- package/dist/frontend/literal-values.test.js +91 -0
- package/dist/frontend/literal-values.test.js.map +1 -0
- package/dist/frontend/lowering/abstract-equality.d.ts +1 -1
- package/dist/frontend/lowering/abstract-equality.js +3 -0
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +11 -6
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +4 -1
- package/dist/frontend/lowering/array-values.js +43 -1
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/callback-arg.js +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/class-callbacks.d.ts +12 -0
- package/dist/frontend/lowering/class-callbacks.js +63 -0
- package/dist/frontend/lowering/class-callbacks.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +9 -0
- package/dist/frontend/lowering/class-descriptors.js +73 -0
- package/dist/frontend/lowering/class-descriptors.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +41 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +803 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.d.ts +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +92 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -0
- package/dist/frontend/lowering/class-instance-constructor.d.ts +7 -0
- package/dist/frontend/lowering/class-instance-constructor.js +64 -0
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.d.ts +10 -0
- package/dist/frontend/lowering/class-method-values.js +170 -0
- package/dist/frontend/lowering/class-method-values.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.d.ts +16 -0
- package/dist/frontend/lowering/class-prototypes.js +134 -0
- package/dist/frontend/lowering/class-prototypes.js.map +1 -0
- package/dist/frontend/lowering/class-static-data.d.ts +6 -0
- package/dist/frontend/lowering/class-static-data.js +56 -0
- package/dist/frontend/lowering/class-static-data.js.map +1 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.d.ts +4 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js +26 -0
- package/dist/frontend/lowering/containers/buffer-numeric-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +11 -7
- package/dist/frontend/lowering/containers/bytes.js +164 -155
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +2 -2
- package/dist/frontend/lowering/containers/string-and-regexp.js +39 -16
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.d.ts +7 -0
- package/dist/frontend/lowering/containers/string-replacement.js +217 -0
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -0
- package/dist/frontend/lowering/error-methods.d.ts +11 -0
- package/dist/frontend/lowering/error-methods.js +78 -0
- package/dist/frontend/lowering/error-methods.js.map +1 -0
- package/dist/frontend/lowering/expressions/global-symbols.d.ts +6 -0
- package/dist/frontend/lowering/expressions/global-symbols.js +11 -0
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -0
- package/dist/frontend/lowering/expressions/native-proxy.d.ts +7 -0
- package/dist/frontend/lowering/expressions/native-proxy.js +49 -0
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.d.ts +6 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js +124 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.d.ts +8 -8
- package/dist/frontend/lowering/expressions/object-literals.js +485 -185
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +5 -6
- package/dist/frontend/lowering/expressions/optional-chains.js +27 -14
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/try-lower-expression.js +1 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.d.ts +8 -0
- package/dist/frontend/lowering/expressions/union-field-write.js +71 -0
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -0
- package/dist/frontend/lowering/function-context.d.ts +93 -0
- package/dist/frontend/lowering/function-context.js +103 -0
- package/dist/frontend/lowering/function-context.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +7 -0
- package/dist/frontend/lowering/generator-delegation.js +85 -0
- package/dist/frontend/lowering/generator-delegation.js.map +1 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +10 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +105 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +2 -1
- package/dist/frontend/lowering/lib-boundary.js +59 -20
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.d.ts +1 -0
- package/dist/frontend/lowering/lib-boundary.test.js +45 -0
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.d.ts +1 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +12 -0
- package/dist/frontend/lowering/lower-builtin-values.js +139 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +27 -41
- package/dist/frontend/lowering/lower-builtins.js +553 -346
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +22 -26
- package/dist/frontend/lowering/lower-calls.js +1373 -380
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +83 -45
- package/dist/frontend/lowering/lower-classes.js +952 -339
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +23 -32
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +27 -32
- package/dist/frontend/lowering/lower-containers.js +796 -151
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.d.ts +1 -1
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.d.ts +1 -1
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +30 -1
- package/dist/frontend/lowering/lower-event-emitter.js +58 -26
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.d.ts +7 -1
- package/dist/frontend/lowering/lower-expando.js +14 -6
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +35 -11
- package/dist/frontend/lowering/lower-exprs.js +1785 -790
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +2 -5
- package/dist/frontend/lowering/lower-generators.js +77 -46
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +7 -0
- package/dist/frontend/lowering/lower-global-value.js +17 -0
- package/dist/frontend/lowering/lower-global-value.js.map +1 -0
- package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
- package/dist/frontend/lowering/lower-inspect.js +17 -8
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +5 -8
- package/dist/frontend/lowering/lower-island.js +34 -23
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.d.ts +2 -2
- package/dist/frontend/lowering/lower-mixins.js +5 -3
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +252 -38
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +1 -1
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +1 -1
- package/dist/frontend/lowering/lower-node-module.js +13 -10
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +1 -1
- package/dist/frontend/lowering/lower-server.js +6 -10
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +10 -14
- package/dist/frontend/lowering/lower-stmts.js +731 -532
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +1 -1
- package/dist/frontend/lowering/lower-stream.js +19 -10
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.d.ts +1 -1
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-url.d.ts +6 -0
- package/dist/frontend/lowering/lower-url.js +77 -0
- package/dist/frontend/lowering/lower-url.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +113 -189
- package/dist/frontend/lowering/lowerer.js +1033 -663
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.d.ts +1 -0
- package/dist/frontend/lowering/lowerer.test.js +26 -0
- package/dist/frontend/lowering/lowerer.test.js.map +1 -0
- package/dist/frontend/lowering/native-ffi.d.ts +5 -0
- package/dist/frontend/lowering/native-ffi.js +40 -0
- package/dist/frontend/lowering/native-ffi.js.map +1 -0
- package/dist/frontend/lowering/object-enumeration-receiver.d.ts +7 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js +33 -0
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.d.ts +8 -0
- package/dist/frontend/lowering/object-factory-new.js +68 -0
- package/dist/frontend/lowering/object-factory-new.js.map +1 -0
- package/dist/frontend/lowering/optional-arguments.js +6 -1
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +2 -1
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.d.ts +14 -0
- package/dist/frontend/lowering/runtime-optional-locals.js +41 -0
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js +85 -0
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.d.ts +8 -0
- package/dist/frontend/lowering/sanitize-class-types.js +79 -0
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js +60 -0
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/static-this.d.ts +5 -1
- package/dist/frontend/lowering/static-this.js +28 -2
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.d.ts +7 -0
- package/dist/frontend/lowering/string-index.js +39 -0
- package/dist/frontend/lowering/string-index.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +9 -4
- package/dist/frontend/lowering/surfaces.js +98 -35
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.d.ts +22 -0
- package/dist/frontend/lowering/symbol-fields.js +183 -0
- package/dist/frontend/lowering/symbol-fields.js.map +1 -0
- package/dist/frontend/lowering/symbol-methods.d.ts +7 -0
- package/dist/frontend/lowering/symbol-methods.js +30 -0
- package/dist/frontend/lowering/symbol-methods.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.d.ts +10 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +77 -0
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.d.ts +1 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js +38 -0
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.d.ts +9 -0
- package/dist/frontend/lowering/union-narrow.js +59 -0
- package/dist/frontend/lowering/union-narrow.js.map +1 -0
- package/dist/frontend/lowering/union-narrow.test.d.ts +1 -0
- package/dist/frontend/lowering/union-narrow.test.js +72 -0
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -0
- package/dist/frontend/lowering/union-retag.d.ts +43 -0
- package/dist/frontend/lowering/union-retag.js +259 -0
- package/dist/frontend/lowering/union-retag.js.map +1 -0
- package/dist/frontend/lowering/union-retag.test.d.ts +1 -0
- package/dist/frontend/lowering/union-retag.test.js +405 -0
- package/dist/frontend/lowering/union-retag.test.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.d.ts +14 -0
- package/dist/frontend/lowering/unregistered-class-types.js +94 -0
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.d.ts +1 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js +65 -0
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -0
- package/dist/frontend/lowering/width-lift.d.ts +40 -0
- package/dist/frontend/lowering/width-lift.js +2 -0
- package/dist/frontend/lowering/width-lift.js.map +1 -0
- package/dist/frontend/module-syntax.d.ts +58 -0
- package/dist/frontend/module-syntax.js +123 -0
- package/dist/frontend/module-syntax.js.map +1 -0
- package/dist/frontend/module-syntax.test.d.ts +1 -0
- package/dist/frontend/module-syntax.test.js +78 -0
- package/dist/frontend/module-syntax.test.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.d.ts +17 -0
- package/dist/frontend/npm-fetch-analysis.js +100 -0
- package/dist/frontend/npm-fetch-analysis.js.map +1 -0
- package/dist/frontend/npm-fetch-analysis.test.d.ts +1 -0
- package/dist/frontend/npm-fetch-analysis.test.js +107 -0
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -0
- package/dist/frontend/npm-fetch-node.d.ts +2 -0
- package/dist/frontend/npm-fetch-node.js +12 -0
- package/dist/frontend/npm-fetch-node.js.map +1 -0
- package/dist/frontend/npm-fetch-syntax.d.ts +6 -0
- package/dist/frontend/npm-fetch-syntax.js +207 -0
- package/dist/frontend/npm-fetch-syntax.js.map +1 -0
- package/dist/frontend/npm-node.d.ts +10 -0
- package/dist/frontend/npm-node.js +14 -0
- package/dist/frontend/npm-node.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.d.ts +8 -0
- package/dist/frontend/npm-static-bundled-cjs.js +236 -0
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.d.ts +1 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js +69 -0
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -0
- package/dist/frontend/npm-static-declaration-syntax.d.ts +57 -0
- package/dist/frontend/npm-static-declaration-syntax.js +944 -0
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -0
- package/dist/frontend/npm-static-declarations.d.ts +11 -39
- package/dist/frontend/npm-static-declarations.js +22 -561
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +245 -6
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.d.ts +1 -1
- package/dist/frontend/npm-static-prune.js +5 -4
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +1 -1
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.d.ts +4 -0
- package/dist/frontend/npm-static-rewrite-host.js +179 -0
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -0
- package/dist/frontend/npm-static-rewrite-syntax.d.ts +16 -0
- package/dist/frontend/npm-static-rewrite-syntax.js +905 -0
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -0
- package/dist/frontend/npm-static-rewrite.d.ts +0 -5
- package/dist/frontend/npm-static-rewrite.js +2 -1079
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.d.ts +5 -0
- package/dist/frontend/npm-static-subtyping.js +55 -0
- package/dist/frontend/npm-static-subtyping.js.map +1 -0
- package/dist/frontend/npm-static-subtyping.test.d.ts +1 -0
- package/dist/frontend/npm-static-subtyping.test.js +58 -0
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +7 -15
- package/dist/frontend/npm-static.js +19 -28
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +8 -69
- package/dist/frontend/npm.js +21 -361
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +2 -2
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.d.ts +6 -0
- package/dist/frontend/pipeline-native.js +32 -0
- package/dist/frontend/pipeline-native.js.map +1 -0
- package/dist/frontend/pipeline.d.ts +54 -0
- package/dist/frontend/pipeline.js +382 -0
- package/dist/frontend/pipeline.js.map +1 -0
- package/dist/frontend/pipeline.test.d.ts +1 -0
- package/dist/frontend/pipeline.test.js +77 -0
- package/dist/frontend/pipeline.test.js.map +1 -0
- package/dist/frontend/program-analysis.d.ts +10 -0
- package/dist/frontend/program-analysis.js +14 -0
- package/dist/frontend/program-analysis.js.map +1 -0
- package/dist/frontend/program-node.d.ts +9 -0
- package/dist/frontend/program-node.js +48 -0
- package/dist/frontend/program-node.js.map +1 -0
- package/dist/frontend/program.d.ts +43 -19
- package/dist/frontend/program.js +556 -197
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.d.ts +1 -0
- package/dist/frontend/program.test.js +202 -0
- package/dist/frontend/program.test.js.map +1 -0
- package/dist/frontend/provenance-core.d.ts +9 -0
- package/dist/frontend/provenance-core.js +435 -0
- package/dist/frontend/provenance-core.js.map +1 -0
- package/dist/frontend/provenance.d.ts +0 -4
- package/dist/frontend/provenance.js +4 -459
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/resolve.d.ts +3 -1
- package/dist/frontend/resolve.js +6 -3
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.d.ts +4 -3
- package/dist/frontend/runtime-resolve.js +22 -18
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +53 -0
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.d.ts +5 -0
- package/dist/frontend/services-node.js +19 -0
- package/dist/frontend/services-node.js.map +1 -0
- package/dist/frontend/services-node.test.d.ts +1 -0
- package/dist/frontend/services-node.test.js +70 -0
- package/dist/frontend/services-node.test.js.map +1 -0
- package/dist/frontend/services.d.ts +44 -0
- package/dist/frontend/services.js +90 -0
- package/dist/frontend/services.js.map +1 -0
- package/dist/frontend/services.test.d.ts +1 -0
- package/dist/frontend/services.test.js +174 -0
- package/dist/frontend/services.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +3 -3
- package/dist/frontend/ts7/adapter.js +14 -31
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/api.d.ts +16 -0
- package/dist/frontend/ts7/api.js +24 -0
- package/dist/frontend/ts7/api.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.d.ts +31 -0
- package/dist/frontend/ts7/ast-bytes.js +137 -0
- package/dist/frontend/ts7/ast-bytes.js.map +1 -0
- package/dist/frontend/ts7/ast-bytes.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-bytes.test.js +73 -0
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.generated.d.ts +353 -0
- package/dist/frontend/ts7/ast-guards.generated.js +1951 -0
- package/dist/frontend/ts7/ast-guards.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-guards.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-guards.test.js +43 -0
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -0
- package/dist/frontend/ts7/ast-node.d.ts +194 -0
- package/dist/frontend/ts7/ast-node.js +448 -0
- package/dist/frontend/ts7/ast-node.js.map +1 -0
- package/dist/frontend/ts7/ast-node.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-node.test.js +266 -0
- package/dist/frontend/ts7/ast-node.test.js.map +1 -0
- package/dist/frontend/ts7/ast-schema.generated.d.ts +503 -0
- package/dist/frontend/ts7/ast-schema.generated.js +1446 -0
- package/dist/frontend/ts7/ast-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-text.d.ts +6 -0
- package/dist/frontend/ts7/ast-text.js +124 -0
- package/dist/frontend/ts7/ast-text.js.map +1 -0
- package/dist/frontend/ts7/ast-text.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-text.test.js +38 -0
- package/dist/frontend/ts7/ast-text.test.js.map +1 -0
- package/dist/frontend/ts7/ast-tokens.generated.d.ts +2 -0
- package/dist/frontend/ts7/ast-tokens.generated.js +155 -0
- package/dist/frontend/ts7/ast-tokens.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.d.ts +42 -0
- package/dist/frontend/ts7/ast-types.generated.d.ts +1615 -0
- package/dist/frontend/ts7/ast-types.generated.js +5 -0
- package/dist/frontend/ts7/ast-types.generated.js.map +1 -0
- package/dist/frontend/ts7/ast-types.js +3 -0
- package/dist/frontend/ts7/ast-types.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.d.ts +58 -0
- package/dist/frontend/ts7/ast-wire.js +267 -0
- package/dist/frontend/ts7/ast-wire.js.map +1 -0
- package/dist/frontend/ts7/ast-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/ast-wire.test.js +151 -0
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -0
- package/dist/frontend/ts7/ast.d.ts +14 -14
- package/dist/frontend/ts7/ast.js +21 -15
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -0
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.d.ts +48 -0
- package/dist/frontend/ts7/checker-cache.js +92 -0
- package/dist/frontend/ts7/checker-cache.js.map +1 -0
- package/dist/frontend/ts7/checker.d.ts +19 -46
- package/dist/frontend/ts7/checker.js +231 -161
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.d.ts +1 -0
- package/dist/frontend/ts7/checker.test.js +335 -0
- package/dist/frontend/ts7/checker.test.js.map +1 -0
- package/dist/frontend/ts7/enums.d.ts +4 -27
- package/dist/frontend/ts7/enums.generated.d.ts +878 -0
- package/dist/frontend/ts7/enums.generated.js +1313 -0
- package/dist/frontend/ts7/enums.generated.js.map +1 -0
- package/dist/frontend/ts7/enums.js +4 -45
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/enums.test.d.ts +1 -0
- package/dist/frontend/ts7/enums.test.js +48 -0
- package/dist/frontend/ts7/enums.test.js.map +1 -0
- package/dist/frontend/ts7/native-api.d.ts +10 -0
- package/dist/frontend/ts7/native-api.js +10 -0
- package/dist/frontend/ts7/native-api.js.map +1 -0
- package/dist/frontend/ts7/native-host.d.ts +2 -0
- package/dist/frontend/ts7/native-host.js +11 -0
- package/dist/frontend/ts7/native-host.js.map +1 -0
- package/dist/frontend/ts7/native-process.d.ts +14 -0
- package/dist/frontend/ts7/native-process.js +62 -0
- package/dist/frontend/ts7/native-process.js.map +1 -0
- package/dist/frontend/ts7/program-adapter.d.ts +10 -98
- package/dist/frontend/ts7/program-adapter.js +16 -310
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +115 -0
- package/dist/frontend/ts7/program-host.js +347 -0
- package/dist/frontend/ts7/program-host.js.map +1 -0
- package/dist/frontend/ts7/program-host.test.d.ts +1 -0
- package/dist/frontend/ts7/program-host.test.js +207 -0
- package/dist/frontend/ts7/program-host.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-api.d.ts +12 -0
- package/dist/frontend/ts7/rpc-api.js +23 -0
- package/dist/frontend/ts7/rpc-api.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.d.ts +27 -0
- package/dist/frontend/ts7/rpc-client.js +102 -0
- package/dist/frontend/ts7/rpc-client.js.map +1 -0
- package/dist/frontend/ts7/rpc-client.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-client.test.js +133 -0
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.d.ts +16 -0
- package/dist/frontend/ts7/rpc-filesystem.js +42 -0
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js +89 -0
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.d.ts +2 -0
- package/dist/frontend/ts7/rpc-process.js +148 -0
- package/dist/frontend/ts7/rpc-process.js.map +1 -0
- package/dist/frontend/ts7/rpc-process.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-process.test.js +29 -0
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.d.ts +46 -0
- package/dist/frontend/ts7/rpc-wire.js +195 -0
- package/dist/frontend/ts7/rpc-wire.js.map +1 -0
- package/dist/frontend/ts7/rpc-wire.test.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.test.js +168 -0
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.d.ts +137 -0
- package/dist/frontend/ts7/semantic-checker.js +221 -0
- package/dist/frontend/ts7/semantic-checker.js.map +1 -0
- package/dist/frontend/ts7/semantic-checker.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-checker.test.js +119 -0
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.d.ts +5 -0
- package/dist/frontend/ts7/semantic-json.js +52 -0
- package/dist/frontend/ts7/semantic-json.js.map +1 -0
- package/dist/frontend/ts7/semantic-json.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-json.test.js +42 -0
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.d.ts +222 -0
- package/dist/frontend/ts7/semantic-model.js +423 -0
- package/dist/frontend/ts7/semantic-model.js.map +1 -0
- package/dist/frontend/ts7/semantic-model.test.d.ts +1 -0
- package/dist/frontend/ts7/semantic-model.test.js +322 -0
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -0
- package/dist/frontend/ts7/semantic-schema.generated.d.ts +283 -0
- package/dist/frontend/ts7/semantic-schema.generated.js +222 -0
- package/dist/frontend/ts7/semantic-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/semantic-types.d.ts +5 -0
- package/dist/frontend/ts7/semantic-types.js +2 -0
- package/dist/frontend/ts7/semantic-types.js.map +1 -0
- package/dist/frontend/ts7/session-cache.d.ts +17 -0
- package/dist/frontend/ts7/session-cache.js +97 -0
- package/dist/frontend/ts7/session-cache.js.map +1 -0
- package/dist/frontend/ts7/session-cache.test.d.ts +1 -0
- package/dist/frontend/ts7/session-cache.test.js +87 -0
- package/dist/frontend/ts7/session-cache.test.js.map +1 -0
- package/dist/frontend/ts7/session-path.d.ts +18 -0
- package/dist/frontend/ts7/session-path.js +203 -0
- package/dist/frontend/ts7/session-path.js.map +1 -0
- package/dist/frontend/ts7/session-path.test.d.ts +1 -0
- package/dist/frontend/ts7/session-path.test.js +34 -0
- package/dist/frontend/ts7/session-path.test.js.map +1 -0
- package/dist/frontend/ts7/session-schema.generated.d.ts +167 -0
- package/dist/frontend/ts7/session-schema.generated.js +5 -0
- package/dist/frontend/ts7/session-schema.generated.js.map +1 -0
- package/dist/frontend/ts7/session-timing.d.ts +50 -0
- package/dist/frontend/ts7/session-timing.js +61 -0
- package/dist/frontend/ts7/session-timing.js.map +1 -0
- package/dist/frontend/ts7/session-timing.test.d.ts +1 -0
- package/dist/frontend/ts7/session-timing.test.js +52 -0
- package/dist/frontend/ts7/session-timing.test.js.map +1 -0
- package/dist/frontend/ts7/session.d.ts +105 -0
- package/dist/frontend/ts7/session.js +233 -0
- package/dist/frontend/ts7/session.js.map +1 -0
- package/dist/frontend/ts7/session.test.d.ts +1 -0
- package/dist/frontend/ts7/session.test.js +215 -0
- package/dist/frontend/ts7/session.test.js.map +1 -0
- package/dist/frontend/ts7/source-parser-node.d.ts +6 -0
- package/dist/frontend/ts7/source-parser-node.js +15 -0
- package/dist/frontend/ts7/source-parser-node.js.map +1 -0
- package/dist/frontend/ts7/source-parser.d.ts +25 -0
- package/dist/frontend/ts7/source-parser.js +96 -0
- package/dist/frontend/ts7/source-parser.js.map +1 -0
- package/dist/frontend/ts7/source-parser.test.d.ts +1 -0
- package/dist/frontend/ts7/source-parser.test.js +151 -0
- package/dist/frontend/ts7/source-parser.test.js.map +1 -0
- package/dist/frontend/ts7/syntax.d.ts +3 -0
- package/dist/frontend/ts7/syntax.js +4 -0
- package/dist/frontend/ts7/syntax.js.map +1 -0
- package/dist/frontend/tsc-codes.js +3 -0
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +29 -19
- package/dist/frontend/type-mapper.js +713 -306
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.d.ts +1 -0
- package/dist/frontend/type-mapper.test.js +207 -0
- package/dist/frontend/type-mapper.test.js.map +1 -0
- package/dist/frontend/union-discriminants.d.ts +16 -0
- package/dist/frontend/union-discriminants.js +98 -0
- package/dist/frontend/union-discriminants.js.map +1 -0
- package/dist/frontend/union-discriminants.test.d.ts +1 -0
- package/dist/frontend/union-discriminants.test.js +182 -0
- package/dist/frontend/union-discriminants.test.js.map +1 -0
- package/dist/index.d.ts +7 -197
- package/dist/index.js +369 -1567
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +16 -4
- package/dist/ir/analysis.js +25 -6
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -2
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/constant-tables.js +67 -49
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +1 -1
- package/dist/ir/control-flow.d.ts +6 -0
- package/dist/ir/control-flow.js +142 -0
- package/dist/ir/control-flow.js.map +1 -0
- package/dist/ir/control-flow.test.d.ts +1 -0
- package/dist/ir/control-flow.test.js +113 -0
- package/dist/ir/control-flow.test.js.map +1 -0
- package/dist/ir/integer-loops.js +7 -18
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-ranges.js +53 -27
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/ir.d.ts +309 -164
- package/dist/ir/ir.js +588 -879
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +127 -1
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/scalar-records.js +165 -134
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +1 -1
- package/dist/ir/serialize.d.ts +4 -2
- package/dist/ir/serialize.js +19 -12
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.d.ts +1 -0
- package/dist/ir/serialize.test.js +53 -0
- package/dist/ir/serialize.test.js.map +1 -0
- package/dist/ir/traverse.d.ts +41 -0
- package/dist/ir/traverse.js +660 -0
- package/dist/ir/traverse.js.map +1 -0
- package/dist/ir/traverse.test.d.ts +1 -0
- package/dist/ir/traverse.test.js +242 -0
- package/dist/ir/traverse.test.js.map +1 -0
- package/dist/ir/validate.js +1956 -1496
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +476 -2
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.d.ts +2 -3
- package/dist/library/cache-primitives.js +4 -6
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/compiler-self-identity.d.ts +1 -1
- package/dist/library/compiler-self-identity.js +31 -15
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/compiler-self-identity.test.d.ts +1 -0
- package/dist/library/compiler-self-identity.test.js +93 -0
- package/dist/library/compiler-self-identity.test.js.map +1 -0
- package/dist/library/fence-eval.js +2 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/int-infer.js +7 -6
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/library-cache.d.ts +3 -2
- package/dist/library/library-cache.js +5 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +54 -41
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.d.ts +3 -1
- package/dist/library/library-profile.js +15 -6
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.d.ts +15 -0
- package/dist/library/prepare.js +584 -0
- package/dist/library/prepare.js.map +1 -0
- package/dist/library/semantic-source.d.ts +1 -1
- package/dist/library/semantic-source.js +8 -6
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/sidecar-validate.js +4 -4
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.d.ts +2 -0
- package/dist/library/sidecar.js +10 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/cache.d.ts +11 -0
- package/dist/native/cache.js +113 -0
- package/dist/native/cache.js.map +1 -0
- package/dist/native/cache.test.d.ts +1 -0
- package/dist/native/cache.test.js +66 -0
- package/dist/native/cache.test.js.map +1 -0
- package/dist/native/cli.d.ts +1 -0
- package/dist/native/cli.js +112 -0
- package/dist/native/cli.js.map +1 -0
- package/dist/native/compiler.d.ts +15 -0
- package/dist/native/compiler.js +336 -0
- package/dist/native/compiler.js.map +1 -0
- package/dist/native/compiler.test.d.ts +1 -0
- package/dist/native/compiler.test.js +174 -0
- package/dist/native/compiler.test.js.map +1 -0
- package/dist/native/comptime.d.ts +5 -0
- package/dist/native/comptime.js +73 -0
- package/dist/native/comptime.js.map +1 -0
- package/dist/native/comptime.test.d.ts +1 -0
- package/dist/native/comptime.test.js +65 -0
- package/dist/native/comptime.test.js.map +1 -0
- package/dist/native/executable-cache.d.ts +26 -0
- package/dist/native/executable-cache.js +228 -0
- package/dist/native/executable-cache.js.map +1 -0
- package/dist/native/executable-cache.test.d.ts +1 -0
- package/dist/native/executable-cache.test.js +151 -0
- package/dist/native/executable-cache.test.js.map +1 -0
- package/dist/native/file-identity.d.ts +4 -0
- package/dist/native/file-identity.js +14 -0
- package/dist/native/file-identity.js.map +1 -0
- package/dist/native/file-identity.test.d.ts +1 -0
- package/dist/native/file-identity.test.js +43 -0
- package/dist/native/file-identity.test.js.map +1 -0
- package/dist/native/library.d.ts +22 -0
- package/dist/native/library.js +83 -0
- package/dist/native/library.js.map +1 -0
- package/dist/native/prepare.d.ts +21 -0
- package/dist/native/prepare.js +174 -0
- package/dist/native/prepare.js.map +1 -0
- package/dist/native/prepare.test.d.ts +1 -0
- package/dist/native/prepare.test.js +70 -0
- package/dist/native/prepare.test.js.map +1 -0
- package/dist/native/sanitizer.d.ts +11 -0
- package/dist/native/sanitizer.js +135 -0
- package/dist/native/sanitizer.js.map +1 -0
- package/dist/native/sanitizer.test.d.ts +1 -0
- package/dist/native/sanitizer.test.js +58 -0
- package/dist/native/sanitizer.test.js.map +1 -0
- package/dist/native/task.d.ts +4 -0
- package/dist/native/task.js +16 -0
- package/dist/native/task.js.map +1 -0
- package/dist/native/task.test.d.ts +1 -0
- package/dist/native/task.test.js +17 -0
- package/dist/native/task.test.js.map +1 -0
- package/dist/native/toolchain.d.ts +45 -0
- package/dist/native/toolchain.js +74 -0
- package/dist/native/toolchain.js.map +1 -0
- package/dist/native/toolchain.test.d.ts +1 -0
- package/dist/native/toolchain.test.js +33 -0
- package/dist/native/toolchain.test.js.map +1 -0
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +2 -5
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.d.ts +4 -0
- package/dist/timing.js +19 -0
- package/dist/timing.js.map +1 -0
- package/dist/wasi-paths.js +10 -7
- package/dist/wasi-paths.js.map +1 -1
- package/package.json +28 -19
- package/surface-manifest.json +171 -18
- package/dist/backend/c/async.d.ts +0 -171
- package/dist/backend/c/async.js +0 -1317
- package/dist/backend/c/async.js.map +0 -1
- package/dist/backend/c/c-emitter.d.ts +0 -531
- package/dist/backend/c/c-emitter.js +0 -1917
- package/dist/backend/c/c-emitter.js.map +0 -1
- package/dist/backend/c/exprs.d.ts +0 -15
- package/dist/backend/c/exprs.js +0 -8803
- package/dist/backend/c/exprs.js.map +0 -1
- package/dist/backend/c/island.d.ts +0 -45
- package/dist/backend/c/island.js +0 -281
- package/dist/backend/c/island.js.map +0 -1
- package/dist/backend/c/may-throw.js.map +0 -1
- package/dist/backend/c/shapes.d.ts +0 -142
- package/dist/backend/c/shapes.js +0 -603
- package/dist/backend/c/shapes.js.map +0 -1
- package/dist/backend/c/stmts.d.ts +0 -76
- package/dist/backend/c/stmts.js +0 -1084
- package/dist/backend/c/stmts.js.map +0 -1
- package/dist/backend/c/types.d.ts +0 -71
- package/dist/backend/c/types.js +0 -459
- package/dist/backend/c/types.js.map +0 -1
- package/dist/backend/c/types.test.js +0 -32
- package/dist/backend/c/types.test.js.map +0 -1
- package/dist/backend/c/walkers.d.ts +0 -134
- package/dist/backend/c/walkers.js +0 -1773
- package/dist/backend/c/walkers.js.map +0 -1
- /package/dist/backend/{c/types.test.d.ts → cycle-analysis.test.d.ts} +0 -0
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { driverTraceCandidates, linkTraceCandidate } from "./link-trace.js";
|
|
2
|
+
import { toolchainEnvironmentCachePolicy, toolchainEnvironmentFingerprint } from "./toolchain-environment.js";
|
|
3
|
+
export { toolchainEnvironmentCachePolicy, toolchainEnvironmentFingerprint } from "./toolchain-environment.js";
|
|
4
|
+
import { IPHONEOS_MIN_VERSION, ANDROID_MIN_API, isIosTarget, isAndroidTarget, isMobileTarget, mobileLibraryTarget, mobileTargetRefusal, configuredTargetPlatform } from "./target-platform.js";
|
|
5
|
+
export { IPHONEOS_MIN_VERSION, ANDROID_MIN_API, isIosTarget, isAndroidTarget, isMobileTarget, mobileLibraryTarget, mobileTargetRefusal, configuredTargetPlatform } from "./target-platform.js";
|
|
1
6
|
import { InternalCompilerError } from "../errors.js";
|
|
2
7
|
import { execFile, spawnSync } from "node:child_process";
|
|
3
8
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -11,6 +16,7 @@ import { fileURLToPath } from "node:url";
|
|
|
11
16
|
import { promisify } from "node:util";
|
|
12
17
|
import { localizeElfObject, mergeAndLocalizeCoffObjects } from "./object-localize.js";
|
|
13
18
|
import { executableOptimizationLinkerArgs, executableStripLinkerArgs, windowsSubsystemLinkerArgs } from "./targets.js";
|
|
19
|
+
import { createDarwinDebugSymbols, installDarwinDebugSymbols, needsDarwinDebugSymbols, readDarwinDebugSymbols } from "./debug-symbols.js";
|
|
14
20
|
import { createVendorArchives, MBEDTLS_VERSION, QJS_COMMIT, ZLIB_VERSION, } from "./vendor-archives.js";
|
|
15
21
|
import { cacheDigestPath, cacheRootDir, copyValidCachedFile, ensurePrivateCacheRoot, fileDigest, fileExists, installArtifact, privateSiblingPath, protectCachedArtifact, pruneCache, publishCachedFile, validCachedFile, } from "./build-cache.js";
|
|
16
22
|
export { buildCacheRoot, prepareBuildCacheRoot, pruneBuildCache, resolveBuildCacheRoot, } from "./build-cache.js";
|
|
@@ -45,7 +51,7 @@ function stableTestMemo(cache, key, probe) {
|
|
|
45
51
|
});
|
|
46
52
|
return pending;
|
|
47
53
|
}
|
|
48
|
-
export const EXECUTABLE_RUNTIME_SOURCES = ["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_crypto_async.c", "scr_child.c", "scr_cycle.c"];
|
|
54
|
+
export const EXECUTABLE_RUNTIME_SOURCES = ["scr_number.c", "scr_bigint.c", "scr_string.c", "scr_grapheme.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_node_builtin.c", "scr_async.c", "scr_crypto_async.c", "scr_child.c", "scr_cycle.c"];
|
|
49
55
|
/**
|
|
50
56
|
* Per-target section-elimination recipe. This belongs beside the native
|
|
51
57
|
* driver rather than a particular build path: one-shot compilation, cached
|
|
@@ -82,102 +88,6 @@ export function executableSectionEliminationFlags(platform) {
|
|
|
82
88
|
return { compile: [], link: [] };
|
|
83
89
|
}
|
|
84
90
|
}
|
|
85
|
-
/** Environment variables consumed by clang, its linker/subtools, or the
|
|
86
|
-
* platform SDK selection. They are implicit command-line inputs: changing one
|
|
87
|
-
* must never reuse an artifact produced under the old toolchain posture. */
|
|
88
|
-
const TOOLCHAIN_ENV_KEYS = [
|
|
89
|
-
"COMPILER_PATH",
|
|
90
|
-
"GCC_EXEC_PREFIX",
|
|
91
|
-
"CPATH",
|
|
92
|
-
"C_INCLUDE_PATH",
|
|
93
|
-
"CPLUS_INCLUDE_PATH",
|
|
94
|
-
"OBJC_INCLUDE_PATH",
|
|
95
|
-
"OBJCPLUS_INCLUDE_PATH",
|
|
96
|
-
"LIBRARY_PATH",
|
|
97
|
-
"LD_LIBRARY_PATH",
|
|
98
|
-
"LD_RUN_PATH",
|
|
99
|
-
"DYLD_LIBRARY_PATH",
|
|
100
|
-
"DYLD_FRAMEWORK_PATH",
|
|
101
|
-
"DYLD_FALLBACK_LIBRARY_PATH",
|
|
102
|
-
"DYLD_FALLBACK_FRAMEWORK_PATH",
|
|
103
|
-
"SDKROOT",
|
|
104
|
-
"DEVELOPER_DIR",
|
|
105
|
-
"MACOSX_DEPLOYMENT_TARGET",
|
|
106
|
-
"IPHONEOS_DEPLOYMENT_TARGET",
|
|
107
|
-
"TVOS_DEPLOYMENT_TARGET",
|
|
108
|
-
"WATCHOS_DEPLOYMENT_TARGET",
|
|
109
|
-
"DRIVERKIT_DEPLOYMENT_TARGET",
|
|
110
|
-
"XROS_DEPLOYMENT_TARGET",
|
|
111
|
-
"CCC_OVERRIDE_OPTIONS",
|
|
112
|
-
"CCC_ADD_ARGS",
|
|
113
|
-
"CLANG_CONFIG_FILE_SYSTEM_DIR",
|
|
114
|
-
"CLANG_CONFIG_FILE_USER_DIR",
|
|
115
|
-
"CC",
|
|
116
|
-
"CFLAGS",
|
|
117
|
-
"CPPFLAGS",
|
|
118
|
-
"LDFLAGS",
|
|
119
|
-
"AR",
|
|
120
|
-
"RANLIB",
|
|
121
|
-
"CMAKE_GENERATOR",
|
|
122
|
-
"CMAKE_TOOLCHAIN_FILE",
|
|
123
|
-
"ZIG_LIB_DIR",
|
|
124
|
-
"ZIG_LIBC",
|
|
125
|
-
"SOURCE_DATE_EPOCH",
|
|
126
|
-
"ZERO_AR_DATE",
|
|
127
|
-
"LANG",
|
|
128
|
-
"LC_ALL",
|
|
129
|
-
"LC_CTYPE",
|
|
130
|
-
];
|
|
131
|
-
/** Toolchain variables whose values name mutable files/directories consumed
|
|
132
|
-
* while compiling a TU (or can inject arbitrary compiler options). Hashing the
|
|
133
|
-
* value is insufficient: a header, SDK, config, compiler helper, or loaded
|
|
134
|
-
* dylib can change in place while the spelling remains stable. In that posture
|
|
135
|
-
* neither complete artifacts nor per-TU runtime objects are safe to reuse. */
|
|
136
|
-
const MUTABLE_COMPILE_ENV_KEYS = [
|
|
137
|
-
"COMPILER_PATH",
|
|
138
|
-
"GCC_EXEC_PREFIX",
|
|
139
|
-
"CPATH",
|
|
140
|
-
"C_INCLUDE_PATH",
|
|
141
|
-
"CPLUS_INCLUDE_PATH",
|
|
142
|
-
"OBJC_INCLUDE_PATH",
|
|
143
|
-
"OBJCPLUS_INCLUDE_PATH",
|
|
144
|
-
"LD_LIBRARY_PATH",
|
|
145
|
-
"DYLD_LIBRARY_PATH",
|
|
146
|
-
"DYLD_FRAMEWORK_PATH",
|
|
147
|
-
"DYLD_FALLBACK_LIBRARY_PATH",
|
|
148
|
-
"DYLD_FALLBACK_FRAMEWORK_PATH",
|
|
149
|
-
"SDKROOT",
|
|
150
|
-
"DEVELOPER_DIR",
|
|
151
|
-
"CCC_OVERRIDE_OPTIONS",
|
|
152
|
-
"CCC_ADD_ARGS",
|
|
153
|
-
"CLANG_CONFIG_FILE_SYSTEM_DIR",
|
|
154
|
-
"CLANG_CONFIG_FILE_USER_DIR",
|
|
155
|
-
// `zig cc` resolves its bundled headers/runtime through ZIG_LIB_DIR and a
|
|
156
|
-
// caller-selected native libc description through ZIG_LIBC. Both values name
|
|
157
|
-
// mutable compiler inputs whose contents can change behind a stable path.
|
|
158
|
-
"ZIG_LIB_DIR",
|
|
159
|
-
"ZIG_LIBC",
|
|
160
|
-
];
|
|
161
|
-
/** These variables only redirect link-time inputs. Runtime objects remain
|
|
162
|
-
* reusable, but a complete executable could otherwise retain a library that
|
|
163
|
-
* was rebuilt in place behind the same search-path spelling. */
|
|
164
|
-
const MUTABLE_LINK_ENV_KEYS = ["LIBRARY_PATH", "LD_RUN_PATH"];
|
|
165
|
-
export function toolchainEnvironmentCachePolicy(env = process.env) {
|
|
166
|
-
const mutableCompileInput = MUTABLE_COMPILE_ENV_KEYS.some((name) => env[name] !== undefined);
|
|
167
|
-
const mutableLinkInput = MUTABLE_LINK_ENV_KEYS.some((name) => env[name] !== undefined);
|
|
168
|
-
return {
|
|
169
|
-
completeArtifacts: !mutableCompileInput && !mutableLinkInput,
|
|
170
|
-
runtimeObjects: !mutableCompileInput,
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
export function toolchainEnvironmentFingerprint(env = process.env) {
|
|
174
|
-
const hash = createHash("sha256").update("toolchain-env-v1\0");
|
|
175
|
-
for (const name of TOOLCHAIN_ENV_KEYS) {
|
|
176
|
-
const value = env[name];
|
|
177
|
-
hash.update(name).update(value === undefined ? "\0unset\0" : "\0set\0").update(value ?? "").update("\0");
|
|
178
|
-
}
|
|
179
|
-
return hash.digest("hex");
|
|
180
|
-
}
|
|
181
91
|
/** Inputs that can change which native tool/runtime implementation an
|
|
182
92
|
* executable build selects before compileC has a chance to rediscover it.
|
|
183
93
|
* The early whole-program cache keys this exact posture before restoring a
|
|
@@ -298,50 +208,6 @@ export function isZigDriver(driver) {
|
|
|
298
208
|
* embedder's side of the contract: Xcode links iOS archives against the
|
|
299
209
|
* selected SDK, and Gradle/NDK builds link Android archives against the
|
|
300
210
|
* API-26+ bionic stubs. */
|
|
301
|
-
export const IPHONEOS_MIN_VERSION = "15.0";
|
|
302
|
-
export const ANDROID_MIN_API = 26;
|
|
303
|
-
const MOBILE_LIBRARY_TARGETS = [
|
|
304
|
-
"aarch64-apple-ios",
|
|
305
|
-
"aarch64-apple-ios-simulator",
|
|
306
|
-
"aarch64-linux-android",
|
|
307
|
-
];
|
|
308
|
-
export function isIosTarget(target) {
|
|
309
|
-
return target === "aarch64-apple-ios" || target === "aarch64-apple-ios-simulator";
|
|
310
|
-
}
|
|
311
|
-
export function isAndroidTarget(target) {
|
|
312
|
-
return target === "aarch64-linux-android";
|
|
313
|
-
}
|
|
314
|
-
export function isMobileTarget(target) {
|
|
315
|
-
return isIosTarget(target) || isAndroidTarget(target);
|
|
316
|
-
}
|
|
317
|
-
/** The canonical mobile triple SCRIPTC_TARGET selects, or null when the
|
|
318
|
-
* environment names none. Pure string inspection — safe to consult before
|
|
319
|
-
* any toolchain discovery runs. */
|
|
320
|
-
export function mobileLibraryTarget(env = process.env) {
|
|
321
|
-
const target = env["SCRIPTC_TARGET"] ?? "";
|
|
322
|
-
return isMobileTarget(target) ? target : null;
|
|
323
|
-
}
|
|
324
|
-
/** The admission verdict for a mobile-family triple: null when the spelling
|
|
325
|
-
* and host pairing are supported, otherwise the refusal text (the same text
|
|
326
|
-
* resolveCc throws and compileLibrary reports as SC3002). Pure string/host
|
|
327
|
-
* inspection — no discovery, no subprocess. */
|
|
328
|
-
export function mobileTargetRefusal(target, hostPlatform = process.platform) {
|
|
329
|
-
if (isIosTarget(target)) {
|
|
330
|
-
return hostPlatform === "darwin"
|
|
331
|
-
? null
|
|
332
|
-
: `${target} library archives build on macOS hosts only (the Apple iOS SDK sysroot and Mach-O symbol localization live there); this host is ${hostPlatform}`;
|
|
333
|
-
}
|
|
334
|
-
if (isAndroidTarget(target))
|
|
335
|
-
return null;
|
|
336
|
-
// A near-miss mobile spelling must refuse with the supported set named,
|
|
337
|
-
// never reach zig with no sysroot wired (the compile would fail on the
|
|
338
|
-
// first libc header) or produce an artifact for an unverified device
|
|
339
|
-
// class.
|
|
340
|
-
if (/(?:^|-)(?:ios|tvos|watchos|visionos|android)/.test(target)) {
|
|
341
|
-
return `unsupported mobile target '${target}' (supported: ${MOBILE_LIBRARY_TARGETS.join(", ")})`;
|
|
342
|
-
}
|
|
343
|
-
return null;
|
|
344
|
-
}
|
|
345
211
|
/** The Apple SDK root for one mobile platform, discovered through xcrun the
|
|
346
212
|
* way Xcode's own build system selects it. Memoized per SDK name and
|
|
347
213
|
* selection environment: production rediscovers per process, and the two
|
|
@@ -543,33 +409,6 @@ function isMuslTarget(driver) {
|
|
|
543
409
|
* analyze(): the FRONTEND consults it too (path.sep / os.EOL literals and
|
|
544
410
|
* the path-module binding follow the target — a win32 triple compiles
|
|
545
411
|
* Node-on-Windows semantics, path.win32 backing the bare module). */
|
|
546
|
-
export function configuredTargetPlatform(env = process.env, hostPlatform = process.platform) {
|
|
547
|
-
const target = env["SCRIPTC_TARGET"] ?? "";
|
|
548
|
-
if (target === "")
|
|
549
|
-
return hostPlatform;
|
|
550
|
-
if (target === "wasm32-wasi")
|
|
551
|
-
return "wasi";
|
|
552
|
-
if (target.includes("wasi")) {
|
|
553
|
-
throw new Error(`unsupported WASI target '${target}' (supported: wasm32-wasi)`);
|
|
554
|
-
}
|
|
555
|
-
// iOS is a darwin-family target: Mach-O objects, ld64 localization,
|
|
556
|
-
// POSIX path/EOL semantics. Android falls to the linux arm below —
|
|
557
|
-
// bionic is a linux libc and its archives are ordinary ELF.
|
|
558
|
-
if (isIosTarget(target))
|
|
559
|
-
return "darwin";
|
|
560
|
-
if (isAndroidTarget(target))
|
|
561
|
-
return "linux";
|
|
562
|
-
if (/(?:^|-)(?:ios|tvos|watchos|visionos|android)/.test(target)) {
|
|
563
|
-
throw new Error(`unsupported mobile target '${target}' (supported: ${MOBILE_LIBRARY_TARGETS.join(", ")})`);
|
|
564
|
-
}
|
|
565
|
-
if (target.includes("linux"))
|
|
566
|
-
return "linux";
|
|
567
|
-
if (target.includes("windows"))
|
|
568
|
-
return "win32";
|
|
569
|
-
if (target.includes("macos") || target.includes("darwin"))
|
|
570
|
-
return "darwin";
|
|
571
|
-
throw new Error(`unsupported target '${target}' (supported OS families: linux, windows, macos/darwin, wasm32-wasi)`);
|
|
572
|
-
}
|
|
573
412
|
export function targetPlatform(driver) {
|
|
574
413
|
if (driver.target === null)
|
|
575
414
|
return process.platform;
|
|
@@ -721,12 +560,12 @@ export async function compileLibArchive(opts) {
|
|
|
721
560
|
...(isMuslTarget(driver) ? ["scr_musl.c"] : []),
|
|
722
561
|
...(regex ? ["scr_regex.c"] : []),
|
|
723
562
|
...(opts.assert || regex || opts.symbol ? ["scr_assert.c"] : []),
|
|
724
|
-
...(opts.inspect ? ["scr_inspect.c"] : []),
|
|
563
|
+
...(opts.inspect ? ["scr_inspect.c", "scr_console_native.c"] : []),
|
|
725
564
|
...(opts.symbol ? ["scr_symbol.c"] : []),
|
|
726
|
-
...(opts.bigint ? ["scr_bigint.c"] : []),
|
|
727
565
|
...(opts.assert && opts.bigint ? ["scr_bigint_assert.c"] : []),
|
|
728
566
|
...(opts.searchParams ? ["scr_url_params.c"] : []),
|
|
729
567
|
...(opts.emitter ? ["scr_events_emitter.c", "scr_dyn_handle.c"] : []),
|
|
568
|
+
...(opts.dynInvoke ? ["scr_dyn_invoke.c"] : []),
|
|
730
569
|
...(opts.zlib ? ["scr_zlib.c"] : []),
|
|
731
570
|
...(opts.copying ? ["scr_copying.c"] : []),
|
|
732
571
|
];
|
|
@@ -819,9 +658,9 @@ export async function compileLibArchive(opts) {
|
|
|
819
658
|
let cachedProgramBytes = opts.programSource === undefined
|
|
820
659
|
? null
|
|
821
660
|
: Buffer.from(opts.programSource, "utf8");
|
|
822
|
-
const identityBytes = opts.
|
|
661
|
+
const identityBytes = opts.identityLlvmSource === undefined
|
|
823
662
|
? null
|
|
824
|
-
: Buffer.from(opts.
|
|
663
|
+
: Buffer.from(opts.identityLlvmSource, "utf8");
|
|
825
664
|
if (persistentCache !== null) {
|
|
826
665
|
try {
|
|
827
666
|
const [cv, fingerprint, programBytes] = await Promise.all([
|
|
@@ -1097,7 +936,7 @@ export async function compileLibArchive(opts) {
|
|
|
1097
936
|
const identityObject = identityBytes === null
|
|
1098
937
|
? null
|
|
1099
938
|
: await (async () => {
|
|
1100
|
-
const source = join(buildDir, "identity.
|
|
939
|
+
const source = join(buildDir, "identity.ll");
|
|
1101
940
|
await writeFile(source, identityBytes);
|
|
1102
941
|
return compileOne(source, `${stem}.identity.o`);
|
|
1103
942
|
})();
|
|
@@ -1267,8 +1106,7 @@ export async function compileLibArchive(opts) {
|
|
|
1267
1106
|
* mirrors MSVC link.exe; zig's COFF driver refuses multi-object
|
|
1268
1107
|
* merges) and llvm-objcopy rejects symbol-scope flags for
|
|
1269
1108
|
* COFF, so no tool pairing exists to shell out to. */
|
|
1270
|
-
async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, supportObjects, keepSymbols, stem) {
|
|
1271
|
-
const platform = targetPlatform(driver);
|
|
1109
|
+
export async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, supportObjects, keepSymbols, stem, platform = targetPlatform(driver)) {
|
|
1272
1110
|
const combined = join(buildDir, `${stem}.localized.o`);
|
|
1273
1111
|
const staging = join(buildDir, `${stem}.localize-staging.a`);
|
|
1274
1112
|
const keepFile = join(buildDir, "localize-keep.syms");
|
|
@@ -1354,9 +1192,9 @@ async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, sup
|
|
|
1354
1192
|
* (every .c/.h in the runtime src dir plus the vendor pin
|
|
1355
1193
|
* QJS_COMMIT), the caller's dependency identity, the
|
|
1356
1194
|
* compiler-visible TU path, Darwin output basename, the
|
|
1357
|
-
* FULL normalized command line, and the emitted
|
|
1358
|
-
* Emitted
|
|
1359
|
-
*
|
|
1195
|
+
* FULL normalized command line, and the emitted LLVM bytes).
|
|
1196
|
+
* Emitted LLVM is
|
|
1197
|
+
* deterministic, so unchanged programs
|
|
1360
1198
|
* hit; any flag difference — e.g. the sanitized lane's
|
|
1361
1199
|
* -O1/-fsanitize=address/-DSCR_RC_AUDIT — lands in a
|
|
1362
1200
|
* naturally distinct key. On a hit the cached binary is
|
|
@@ -1385,7 +1223,7 @@ async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, sup
|
|
|
1385
1223
|
* obj/<set>/<f>.o — per-flavor runtime objects for cache-miss builds. The
|
|
1386
1224
|
* historical single invocation recompiles every runtime
|
|
1387
1225
|
* TU per program (~1.3s at -O2); with cached objects a
|
|
1388
|
-
* miss compiles
|
|
1226
|
+
* miss compiles only the program's LLVM and links (~0.15s).
|
|
1389
1227
|
* Library-mode -DSCR_LIB objects use a distinct flavor.
|
|
1390
1228
|
* The clang driver hands every input the same option set,
|
|
1391
1229
|
* so per-TU `-c` compiles with those options plus a final
|
|
@@ -2138,29 +1976,6 @@ function implicitToolchainFingerprints(driver, environmentFingerprint) {
|
|
|
2138
1976
|
function implicitToolchainFingerprint(driver, environmentFingerprint) {
|
|
2139
1977
|
return implicitToolchainFingerprints(driver, environmentFingerprint).then((fingerprints) => fingerprints.complete);
|
|
2140
1978
|
}
|
|
2141
|
-
function linkTraceCandidate(line) {
|
|
2142
|
-
const trimmed = line.trim().replace(/^(?:LOAD|load)\s+/, "");
|
|
2143
|
-
if (trimmed === "")
|
|
2144
|
-
return [];
|
|
2145
|
-
const unquoted = (trimmed.startsWith('"') && trimmed.endsWith('"')) ||
|
|
2146
|
-
(trimmed.startsWith("'") && trimmed.endsWith("'"))
|
|
2147
|
-
? trimmed.slice(1, -1)
|
|
2148
|
-
: trimmed;
|
|
2149
|
-
const candidates = [unquoted];
|
|
2150
|
-
const member = unquoted.lastIndexOf("(");
|
|
2151
|
-
if (member > 0 && unquoted.endsWith(")"))
|
|
2152
|
-
candidates.push(unquoted.slice(0, member));
|
|
2153
|
-
return candidates;
|
|
2154
|
-
}
|
|
2155
|
-
function driverTraceCandidates(line) {
|
|
2156
|
-
const candidates = [];
|
|
2157
|
-
for (const match of line.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'|(\S+)/g)) {
|
|
2158
|
-
const token = (match[1] ?? match[2] ?? match[3] ?? "").replace(/\\(["\\])/g, "$1");
|
|
2159
|
-
if (token !== "")
|
|
2160
|
-
candidates.push(token);
|
|
2161
|
-
}
|
|
2162
|
-
return candidates;
|
|
2163
|
-
}
|
|
2164
1979
|
async function existingDriverTracePaths(output, cwd, excludedRoot) {
|
|
2165
1980
|
const candidates = new Set();
|
|
2166
1981
|
for (const line of output.split(/\r?\n/)) {
|
|
@@ -2680,7 +2495,7 @@ function localArtifactStampIntegrity(stamp) {
|
|
|
2680
2495
|
.update(JSON.stringify(stamp))
|
|
2681
2496
|
.digest("hex");
|
|
2682
2497
|
}
|
|
2683
|
-
async function localArtifactHit(stampPath, outPath, key) {
|
|
2498
|
+
async function localArtifactHit(stampPath, outPath, key, darwinDebugSymbols = false) {
|
|
2684
2499
|
try {
|
|
2685
2500
|
const stamp = JSON.parse(await readFile(stampPath, "utf8"));
|
|
2686
2501
|
const output = await lstat(outPath);
|
|
@@ -2688,6 +2503,8 @@ async function localArtifactHit(stampPath, outPath, key) {
|
|
|
2688
2503
|
if (stamp.version !== 2 ||
|
|
2689
2504
|
stamp.key !== key ||
|
|
2690
2505
|
!/^[0-9a-f]{64}$/.test(stamp.digest ?? "") ||
|
|
2506
|
+
(darwinDebugSymbols !== (stamp.debugSymbolsDigest !== undefined)) ||
|
|
2507
|
+
(stamp.debugSymbolsDigest !== undefined && !/^[0-9a-f]{64}$/.test(stamp.debugSymbolsDigest)) ||
|
|
2691
2508
|
!Array.isArray(stamp.dependencies) ||
|
|
2692
2509
|
!/^[0-9a-f]{64}$/.test(stamp.integrity ?? "") ||
|
|
2693
2510
|
localArtifactStampIntegrity({
|
|
@@ -2695,6 +2512,7 @@ async function localArtifactHit(stampPath, outPath, key) {
|
|
|
2695
2512
|
key: stamp.key,
|
|
2696
2513
|
digest: stamp.digest,
|
|
2697
2514
|
dependencies: stamp.dependencies,
|
|
2515
|
+
...(stamp.debugSymbolsDigest === undefined ? {} : { debugSymbolsDigest: stamp.debugSymbolsDigest }),
|
|
2698
2516
|
}) !== stamp.integrity ||
|
|
2699
2517
|
!output.isFile() ||
|
|
2700
2518
|
(output.mode & 0o777) !== expectedMode ||
|
|
@@ -2718,7 +2536,8 @@ async function localArtifactHit(stampPath, outPath, key) {
|
|
|
2718
2536
|
typeof dependency.targetMtimeMs !== "number" ||
|
|
2719
2537
|
typeof dependency.targetCtimeMs !== "number")) ||
|
|
2720
2538
|
!(await nativeArtifactDependenciesStillMatch(stamp.dependencies)) ||
|
|
2721
|
-
await fileDigest(outPath) !== stamp.digest
|
|
2539
|
+
await fileDigest(outPath) !== stamp.digest ||
|
|
2540
|
+
darwinDebugSymbols && createHash("sha256").update(await readDarwinDebugSymbols(outPath)).digest("hex") !== stamp.debugSymbolsDigest) {
|
|
2722
2541
|
return null;
|
|
2723
2542
|
}
|
|
2724
2543
|
const now = new Date();
|
|
@@ -2729,7 +2548,7 @@ async function localArtifactHit(stampPath, outPath, key) {
|
|
|
2729
2548
|
return null;
|
|
2730
2549
|
}
|
|
2731
2550
|
}
|
|
2732
|
-
async function publishLocalArtifactStamp(stampPath, outPath, key, dependencyPaths, recursiveDirectories = [], recursiveExclusions = []) {
|
|
2551
|
+
async function publishLocalArtifactStamp(stampPath, outPath, key, dependencyPaths, recursiveDirectories = [], recursiveExclusions = [], darwinDebugSymbols = false) {
|
|
2733
2552
|
await mkdir(dirname(stampPath), { recursive: true });
|
|
2734
2553
|
const tmp = `${stampPath}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;
|
|
2735
2554
|
try {
|
|
@@ -2739,6 +2558,9 @@ async function publishLocalArtifactStamp(stampPath, outPath, key, dependencyPath
|
|
|
2739
2558
|
key,
|
|
2740
2559
|
digest: await fileDigest(outPath),
|
|
2741
2560
|
dependencies,
|
|
2561
|
+
...(darwinDebugSymbols
|
|
2562
|
+
? { debugSymbolsDigest: createHash("sha256").update(await readDarwinDebugSymbols(outPath)).digest("hex") }
|
|
2563
|
+
: {}),
|
|
2742
2564
|
};
|
|
2743
2565
|
const stamp = {
|
|
2744
2566
|
...unsigned,
|
|
@@ -2898,6 +2720,14 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
2898
2720
|
const tls = (opts.tls ?? false) || nativeFetch || netIsland;
|
|
2899
2721
|
const tlsCa = (opts.tlsCa ?? false) || tls;
|
|
2900
2722
|
const driver = resolveCc();
|
|
2723
|
+
const darwinDebugSymbols = needsDarwinDebugSymbols(targetPlatform(driver), optimization, opts.strip);
|
|
2724
|
+
if (opts.frameworks?.length && targetPlatform(driver) !== "darwin")
|
|
2725
|
+
throw new Error("FFI frameworks require a Darwin target");
|
|
2726
|
+
if (opts.frameworks?.some(name => !/^[A-Za-z][A-Za-z0-9_]*$/.test(name)))
|
|
2727
|
+
throw new Error("Invalid FFI framework name");
|
|
2728
|
+
const debugFlags = optimization === "dev" && !opts.strip
|
|
2729
|
+
? ["-gline-tables-only", ...(opts.cPath.endsWith(".ll") ? [] : ["-gno-column-info"])]
|
|
2730
|
+
: [];
|
|
2901
2731
|
const shardNames = new Set();
|
|
2902
2732
|
const programShardsValid = opts.programShards?.every((shard) => {
|
|
2903
2733
|
if (basename(shard.name) !== shard.name || !shard.name.endsWith(".ll") ||
|
|
@@ -2978,7 +2808,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
2978
2808
|
const persistentDriverCache = cachePolicy.runtimeObjects &&
|
|
2979
2809
|
configuredCacheRoot !== null &&
|
|
2980
2810
|
await compilerDriverSupportsPersistentCache(driver, toolchainEnv);
|
|
2981
|
-
// Only compiler-generated TUs opt in. Arbitrary `compileC`
|
|
2811
|
+
// Only compiler-generated TUs opt in. Arbitrary `compileC` inputs
|
|
2982
2812
|
// inputs may include caller-owned headers whose contents are not otherwise
|
|
2983
2813
|
// represented in this key, so they retain the fully uncached historical
|
|
2984
2814
|
// path unless the caller supplies its own complete dependency identity.
|
|
@@ -3013,6 +2843,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3013
2843
|
cachePolicy.completeArtifacts &&
|
|
3014
2844
|
persistentCache.identity === "scriptc-generated-v1" &&
|
|
3015
2845
|
(opts.linkInputs?.length ?? 0) === 0 &&
|
|
2846
|
+
(opts.frameworks?.length ?? 0) === 0 &&
|
|
3016
2847
|
(opts.systemLibraries?.length ?? 0) === 0 &&
|
|
3017
2848
|
process.env["SCRIPTC_TEST_TRUST_COMPILER_WRAPPER"] !== "1") {
|
|
3018
2849
|
try {
|
|
@@ -3032,7 +2863,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3032
2863
|
programBytes,
|
|
3033
2864
|
compilerPath: effectiveCompiler.canonicalPath,
|
|
3034
2865
|
};
|
|
3035
|
-
const hit = await localArtifactHit(stampPath, opts.outPath, key);
|
|
2866
|
+
const hit = await localArtifactHit(stampPath, opts.outPath, key, darwinDebugSymbols);
|
|
3036
2867
|
if (hit !== null) {
|
|
3037
2868
|
await opts.onArtifactReady?.({ dependencies: hit.dependencies }).catch(() => undefined);
|
|
3038
2869
|
return;
|
|
@@ -3212,23 +3043,24 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3212
3043
|
// the historical single invocation, cached-.o substitution on cache misses.
|
|
3213
3044
|
const buildArgs = (rt, build = {}) => [
|
|
3214
3045
|
"-std=c11",
|
|
3046
|
+
...debugFlags,
|
|
3215
3047
|
...driver.targetArgs,
|
|
3216
3048
|
...threadArgs,
|
|
3217
3049
|
...(sanitize
|
|
3218
|
-
? ["-O1", "-fsanitize=address", "-DSCR_RC_AUDIT"]
|
|
3050
|
+
? [optimization === "dev" ? "-O0" : "-O1", "-fsanitize=address", "-DSCR_RC_AUDIT"]
|
|
3219
3051
|
: [optimization === "dev" ? "-O0" : "-O2"]),
|
|
3220
3052
|
...executableSectionFlags.compile,
|
|
3221
3053
|
...(opts.textDecoderLegacy ? ["-DSCR_TEXT_DECODER_LEGACY"] : []),
|
|
3222
3054
|
"-fno-math-errno",
|
|
3223
|
-
// The
|
|
3055
|
+
// The runtime object model uses type-punned C: a hierarchy
|
|
3224
3056
|
// upcast is a raw pointer cast, so one object's header (rc, vt) and
|
|
3225
3057
|
// fields are read and written through BOTH the base and derived struct
|
|
3226
3058
|
// types (sc_retain_Derived vs sc_release_Base on the same object).
|
|
3227
3059
|
// C's effective-type rule calls that UB, and clang's TBAA at -O2
|
|
3228
3060
|
// reorders/elides the rc updates once everything inlines — an upcast
|
|
3229
3061
|
// identity compare frees the object while a global still owns it.
|
|
3230
|
-
// The LLVM backend emits no TBAA metadata
|
|
3231
|
-
//
|
|
3062
|
+
// The LLVM backend emits no TBAA metadata; this flag preserves
|
|
3063
|
+
// matching memory semantics in the runtime. Mirrored in the
|
|
3232
3064
|
// cache-miss cflags below and compileLibArchive — the three option
|
|
3233
3065
|
// sets must stay in lockstep.
|
|
3234
3066
|
"-fno-strict-aliasing",
|
|
@@ -3254,10 +3086,10 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3254
3086
|
? ["-I", vendorEngineDir(), rt(join(rtDir, "scr_regex.c")), ...lreObjects]
|
|
3255
3087
|
: []),
|
|
3256
3088
|
...(opts.assert || regex || opts.symbol ? [rt(join(rtDir, "scr_assert.c"))] : []),
|
|
3257
|
-
...(opts.inspect ? [rt(join(rtDir, "scr_inspect.c"))] : []),
|
|
3089
|
+
...(opts.inspect ? [rt(join(rtDir, "scr_inspect.c")), rt(join(rtDir, "scr_console_native.c"))] : []),
|
|
3258
3090
|
...((opts.dynInvoke || nativeFetch) ? [rt(join(rtDir, "scr_dyn_invoke.c"))] : []),
|
|
3259
3091
|
...(opts.dc ? [rt(join(rtDir, "scr_dc.c"))] : []),
|
|
3260
|
-
...(opts.dynAsync || opts.dynInvoke || opts.dc || nativeFetch ? [rt(join(rtDir, "scr_async_dyn.c"))] : []),
|
|
3092
|
+
...(opts.dynAsync || opts.dynInvoke || opts.dc || opts.fileHandle || nativeFetch ? [rt(join(rtDir, "scr_async_dyn.c"))] : []),
|
|
3261
3093
|
// The zlib UNIT (scr_zlib.c) gates on zlib.* IR use; the LINK (system
|
|
3262
3094
|
// libz on the default host-clang build, vendored objects on Zig builds)
|
|
3263
3095
|
// also serves the native fetch's gzip decoder — spread exactly once.
|
|
@@ -3282,7 +3114,6 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3282
3114
|
// their exact size class.
|
|
3283
3115
|
...(opts.emitter || net ? [rt(join(rtDir, "scr_dyn_handle.c"))] : []),
|
|
3284
3116
|
...(opts.symbol ? [rt(join(rtDir, "scr_symbol.c"))] : []),
|
|
3285
|
-
...(opts.bigint ? [rt(join(rtDir, "scr_bigint.c"))] : []),
|
|
3286
3117
|
...(opts.assert && opts.bigint ? [rt(join(rtDir, "scr_bigint_assert.c"))] : []),
|
|
3287
3118
|
...(opts.searchParams ? [rt(join(rtDir, "scr_url_params.c"))] : []),
|
|
3288
3119
|
...(opts.qs ? [rt(join(rtDir, "scr_qs.c"))] : []),
|
|
@@ -3386,6 +3217,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3386
3217
|
build.programPath ?? opts.cPath,
|
|
3387
3218
|
...(opts.linkInputs ?? []),
|
|
3388
3219
|
...(opts.systemLibraries ?? []).map((name) => `-l${name}`),
|
|
3220
|
+
...(opts.frameworks ?? []).flatMap(name => ["-framework", name]),
|
|
3389
3221
|
// GNU ld resolves libraries from left to right and commonly enables
|
|
3390
3222
|
// --as-needed: host-clang libz must follow scr_zlib.c/scr_fetch.c and every
|
|
3391
3223
|
// generated/native input that references inflate symbols. Cross
|
|
@@ -3405,10 +3237,11 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3405
3237
|
// historical single clang invocation.
|
|
3406
3238
|
const cflags = [
|
|
3407
3239
|
"-std=c11",
|
|
3240
|
+
...debugFlags,
|
|
3408
3241
|
...driver.targetArgs,
|
|
3409
3242
|
...threadArgs,
|
|
3410
3243
|
...(sanitize
|
|
3411
|
-
? ["-O1", "-fsanitize=address", "-DSCR_RC_AUDIT"]
|
|
3244
|
+
? [optimization === "dev" ? "-O0" : "-O1", "-fsanitize=address", "-DSCR_RC_AUDIT"]
|
|
3412
3245
|
: [optimization === "dev" ? "-O0" : "-O2"]),
|
|
3413
3246
|
...executableSectionFlags.compile,
|
|
3414
3247
|
...(opts.textDecoderLegacy ? ["-DSCR_TEXT_DECODER_LEGACY"] : []),
|
|
@@ -3434,11 +3267,11 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3434
3267
|
catch (err) {
|
|
3435
3268
|
const stderr = subprocessFailureDetail(err);
|
|
3436
3269
|
const guidance = (opts.linkInputs?.length ?? 0) > 0 ||
|
|
3270
|
+
(opts.frameworks?.length ?? 0) > 0 ||
|
|
3437
3271
|
(opts.systemLibraries?.length ?? 0) > 0
|
|
3438
3272
|
? "This build includes native FFI link inputs. Check that every symbol and system library exists, " +
|
|
3439
3273
|
"that archive/object ordering is correct, and that each input matches the selected target."
|
|
3440
|
-
: `
|
|
3441
|
-
`${ccName} itself is missing/broken.`;
|
|
3274
|
+
: `Check the supplied native source and the selected ${ccName} toolchain.`;
|
|
3442
3275
|
throw new CcCompileError(ccName, stderr, `${ccName} failed compiling ${opts.cPath}.\n` +
|
|
3443
3276
|
`${guidance}\n\n${stderr}`);
|
|
3444
3277
|
}
|
|
@@ -3559,6 +3392,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3559
3392
|
let cacheCompleteArtifact = !cacheWarmOnly &&
|
|
3560
3393
|
cachePolicy.completeArtifacts &&
|
|
3561
3394
|
(opts.linkInputs?.length ?? 0) === 0 &&
|
|
3395
|
+
(opts.frameworks?.length ?? 0) === 0 &&
|
|
3562
3396
|
(opts.systemLibraries?.length ?? 0) === 0;
|
|
3563
3397
|
let programDependencies = null;
|
|
3564
3398
|
const linkProbeArgs = [
|
|
@@ -3761,12 +3595,29 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3761
3595
|
if (!(await copyValidCachedFile(cachedBin, tmpOut))) {
|
|
3762
3596
|
throw new Error("invalid cached executable");
|
|
3763
3597
|
}
|
|
3598
|
+
if (darwinDebugSymbols) {
|
|
3599
|
+
const cachedSymbols = `${cachedBin}.dsym`;
|
|
3600
|
+
const symbolsCopy = privateSiblingPath(opts.outPath, "dsym-hit");
|
|
3601
|
+
try {
|
|
3602
|
+
if (!(await copyValidCachedFile(cachedSymbols, symbolsCopy)))
|
|
3603
|
+
throw new Error("invalid cached dSYM");
|
|
3604
|
+
const bytes = await readFile(symbolsCopy);
|
|
3605
|
+
// A concurrent publisher may replace either payload. The sidecar
|
|
3606
|
+
// also names its binary digest so a mixed pair always misses.
|
|
3607
|
+
if (bytes.subarray(0, 32).toString("hex") !== await fileDigest(tmpOut))
|
|
3608
|
+
throw new Error("mismatched cached dSYM");
|
|
3609
|
+
await installDarwinDebugSymbols(bytes.subarray(32), opts.outPath);
|
|
3610
|
+
}
|
|
3611
|
+
finally {
|
|
3612
|
+
await rm(symbolsCopy, { force: true });
|
|
3613
|
+
}
|
|
3614
|
+
}
|
|
3764
3615
|
// Match a fresh linker output under the caller's current umask. Reusing a
|
|
3765
3616
|
// cache entry populated by a less restrictive shell must not widen access.
|
|
3766
3617
|
await chmod(tmpOut, 0o777 & ~process.umask());
|
|
3767
3618
|
await rename(tmpOut, opts.outPath);
|
|
3768
3619
|
if (localArtifact !== null && localArtifactDependencyPaths !== null) {
|
|
3769
|
-
const stamp = await publishLocalArtifactStamp(localArtifact.stampPath, opts.outPath, localArtifact.key, localArtifactDependencyPaths, [dirname(resolve(opts.cPath))], [persistentCache.root]).catch(() => null);
|
|
3620
|
+
const stamp = await publishLocalArtifactStamp(localArtifact.stampPath, opts.outPath, localArtifact.key, localArtifactDependencyPaths, [dirname(resolve(opts.cPath))], [persistentCache.root], darwinDebugSymbols).catch(() => null);
|
|
3770
3621
|
if (stamp !== null) {
|
|
3771
3622
|
await opts.onArtifactReady?.({ dependencies: stamp.dependencies }).catch(() => undefined);
|
|
3772
3623
|
}
|
|
@@ -3934,6 +3785,14 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3934
3785
|
await runClang(buildArgs((p) => objects?.get(p) ?? p, shardedProgramObject === null
|
|
3935
3786
|
? { programPath, outPath: privateOut, compilerVisibleSource: opts.cPath }
|
|
3936
3787
|
: { programPath: shardedProgramObject, outPath: privateOut }));
|
|
3788
|
+
if (darwinDebugSymbols) {
|
|
3789
|
+
// clang invokes dsymutil when compiling a source TU while linking.
|
|
3790
|
+
// A sharded program is already an object, so run it explicitly while
|
|
3791
|
+
// the merged object and staged runtime inputs still exist.
|
|
3792
|
+
if (shardedProgramObject !== null)
|
|
3793
|
+
await createDarwinDebugSymbols(privateOut);
|
|
3794
|
+
await installDarwinDebugSymbols(await readDarwinDebugSymbols(privateOut), opts.outPath);
|
|
3795
|
+
}
|
|
3937
3796
|
await installArtifact(privateOut, opts.outPath);
|
|
3938
3797
|
if (cachedBin !== null && keyHex !== null) {
|
|
3939
3798
|
// Metadata comparison catches ordinary changes cheaply, but cannot by
|
|
@@ -3972,6 +3831,14 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3972
3831
|
// generated code and embedded literals private; the hit path reapplies
|
|
3973
3832
|
// the caller's current executable mode to its destination copy.
|
|
3974
3833
|
await publishCachedFile(privateOut, cachedBin);
|
|
3834
|
+
if (darwinDebugSymbols) {
|
|
3835
|
+
const symbols = privateSiblingPath(privateOut, "debug-symbols");
|
|
3836
|
+
await writeFile(symbols, Buffer.concat([
|
|
3837
|
+
Buffer.from(await fileDigest(privateOut), "hex"),
|
|
3838
|
+
await readDarwinDebugSymbols(privateOut),
|
|
3839
|
+
]));
|
|
3840
|
+
await publishCachedFile(symbols, `${cachedBin}.dsym`);
|
|
3841
|
+
}
|
|
3975
3842
|
}
|
|
3976
3843
|
catch {
|
|
3977
3844
|
/* publishing is best-effort */
|
|
@@ -3981,7 +3848,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3981
3848
|
localArtifactDependencyPaths !== null &&
|
|
3982
3849
|
cacheCompleteArtifact &&
|
|
3983
3850
|
cacheInputsStable) {
|
|
3984
|
-
const stamp = await publishLocalArtifactStamp(localArtifact.stampPath, opts.outPath, localArtifact.key, localArtifactDependencyPaths, [dirname(resolve(opts.cPath))], [persistentCache.root]).catch(() => null);
|
|
3851
|
+
const stamp = await publishLocalArtifactStamp(localArtifact.stampPath, opts.outPath, localArtifact.key, localArtifactDependencyPaths, [dirname(resolve(opts.cPath))], [persistentCache.root], darwinDebugSymbols).catch(() => null);
|
|
3985
3852
|
if (stamp !== null) {
|
|
3986
3853
|
await opts.onArtifactReady?.({ dependencies: stamp.dependencies }).catch(() => undefined);
|
|
3987
3854
|
}
|
|
@@ -3997,6 +3864,9 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3997
3864
|
export async function compileC(opts) {
|
|
3998
3865
|
clearCcCaches();
|
|
3999
3866
|
await compileCInternal(opts, false);
|
|
3867
|
+
if (targetPlatform(resolveCc()) === "darwin" && !needsDarwinDebugSymbols("darwin", opts.optimization, opts.strip)) {
|
|
3868
|
+
await rm(`${opts.outPath}.dSYM`, { recursive: true, force: true });
|
|
3869
|
+
}
|
|
4000
3870
|
}
|
|
4001
3871
|
export function supportedNativeCacheWarmProfiles(driver) {
|
|
4002
3872
|
if (isMobileTarget(driver.target) || targetPlatform(driver) === "wasi")
|