@scriptc/compiler 0.1.7 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +98 -39
- package/ambient/scriptc-overrides.d.ts +10 -6
- package/ambient/scriptc.d.ts +15 -0
- 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 +108 -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/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 +1 -1
- package/dist/backend/link-plan.js +16 -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 +1 -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 +2 -0
- package/dist/backend/llvm/blocks.js +9 -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 +88 -30
- 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.js +2 -7
- package/dist/backend/llvm/debug-info.js.map +1 -1
- 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 +21 -2
- package/dist/backend/llvm/dyn.js +647 -251
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +596 -1
- package/dist/backend/llvm/emitter.js +769 -425
- 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 +2 -2
- package/dist/backend/llvm/expr-bytes.js +60 -31
- 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 +10 -6
- 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 +78 -81
- 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 +62 -31
- 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 +54 -7
- 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 +220 -131
- 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 +30 -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 +44 -19
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +162 -3
- 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 +42 -131
- package/dist/backend/llvm/shapes.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 +12 -30
- package/dist/backend/native-toolchain.js +83 -233
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +77 -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 +73 -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/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 +103 -34
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +72 -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 +37 -7
- 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.js +5 -10
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +3 -4
- package/dist/executable/executable-cache.js +5 -6
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +16 -17
- 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 +1 -3
- package/dist/frontend/arguments-usage.js.map +1 -1
- 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 +74 -0
- package/dist/frontend/lowering/class-callbacks.js.map +1 -0
- package/dist/frontend/lowering/class-construction.d.ts +12 -0
- package/dist/frontend/lowering/class-construction.js +156 -0
- package/dist/frontend/lowering/class-construction.js.map +1 -0
- package/dist/frontend/lowering/class-descriptors.d.ts +10 -0
- package/dist/frontend/lowering/class-descriptors.js +114 -0
- package/dist/frontend/lowering/class-descriptors.js.map +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +51 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1158 -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 +93 -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 +67 -0
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
- package/dist/frontend/lowering/class-method-values.d.ts +13 -0
- package/dist/frontend/lowering/class-method-values.js +235 -0
- package/dist/frontend/lowering/class-method-values.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.d.ts +19 -0
- package/dist/frontend/lowering/class-prototypes.js +242 -0
- package/dist/frontend/lowering/class-prototypes.js.map +1 -0
- package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
- package/dist/frontend/lowering/class-runtime-statics.js +66 -0
- package/dist/frontend/lowering/class-runtime-statics.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 +208 -163
- 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 +58 -63
- 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 +14 -0
- package/dist/frontend/lowering/error-methods.js +177 -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 +51 -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 +132 -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 +509 -183
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -4
- package/dist/frontend/lowering/expressions/optional-chains.js +88 -24
- 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 +101 -0
- package/dist/frontend/lowering/function-context.js +109 -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 +11 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +143 -0
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +4 -1
- package/dist/frontend/lowering/lib-boundary.js +112 -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 +18 -0
- package/dist/frontend/lowering/lower-builtin-values.js +249 -0
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +33 -46
- package/dist/frontend/lowering/lower-builtins.js +676 -365
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +28 -22
- package/dist/frontend/lowering/lower-calls.js +1660 -412
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +95 -57
- package/dist/frontend/lowering/lower-classes.js +1491 -404
- 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 +36 -32
- package/dist/frontend/lowering/lower-containers.js +925 -181
- 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 +3 -2
- 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 +37 -13
- package/dist/frontend/lowering/lower-exprs.js +2163 -863
- 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 +88 -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 +7 -8
- package/dist/frontend/lowering/lower-island.js +66 -33
- 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 +445 -39
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-modules.test.js +39 -0
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -0
- 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 +17 -17
- package/dist/frontend/lowering/lower-stmts.js +855 -514
- 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 +20 -11
- 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 +140 -190
- package/dist/frontend/lowering/lowerer.js +1193 -712
- 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 +172 -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 +10 -3
- package/dist/frontend/lowering/surfaces.js +86 -37
- 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 +12 -0
- package/dist/frontend/lowering/text-decoder-encoding.js +82 -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 +121 -38
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +9 -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 +39 -20
- package/dist/frontend/program.js +393 -189
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +105 -2
- package/dist/frontend/program.test.js.map +1 -1
- 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 +25 -18
- 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 +47 -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 +34 -18
- package/dist/frontend/type-mapper.js +552 -131
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +146 -2
- package/dist/frontend/type-mapper.test.js.map +1 -1
- 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 -198
- package/dist/index.js +369 -1572
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +16 -4
- package/dist/ir/analysis.js +23 -4
- 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 +334 -176
- package/dist/ir/ir.js +710 -903
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +162 -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 +33 -14
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.d.ts +1 -0
- package/dist/ir/serialize.test.js +57 -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 +2018 -1498
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +536 -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/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 +137 -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 +94 -0
- package/dist/native/toolchain.js.map +1 -0
- package/dist/native/toolchain.test.d.ts +1 -0
- package/dist/native/toolchain.test.js +85 -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 +107 -98
- 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 -536
- package/dist/backend/c/c-emitter.js +0 -1932
- 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 -8847
- 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 -1108
- 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 -1772
- 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";
|
|
@@ -46,7 +51,7 @@ function stableTestMemo(cache, key, probe) {
|
|
|
46
51
|
});
|
|
47
52
|
return pending;
|
|
48
53
|
}
|
|
49
|
-
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_url_params.c", "scr_json.c", "scr_node_builtin.c", "scr_async.c", "scr_crypto_async.c", "scr_child.c", "scr_cycle.c"];
|
|
50
55
|
/**
|
|
51
56
|
* Per-target section-elimination recipe. This belongs beside the native
|
|
52
57
|
* driver rather than a particular build path: one-shot compilation, cached
|
|
@@ -83,102 +88,6 @@ export function executableSectionEliminationFlags(platform) {
|
|
|
83
88
|
return { compile: [], link: [] };
|
|
84
89
|
}
|
|
85
90
|
}
|
|
86
|
-
/** Environment variables consumed by clang, its linker/subtools, or the
|
|
87
|
-
* platform SDK selection. They are implicit command-line inputs: changing one
|
|
88
|
-
* must never reuse an artifact produced under the old toolchain posture. */
|
|
89
|
-
const TOOLCHAIN_ENV_KEYS = [
|
|
90
|
-
"COMPILER_PATH",
|
|
91
|
-
"GCC_EXEC_PREFIX",
|
|
92
|
-
"CPATH",
|
|
93
|
-
"C_INCLUDE_PATH",
|
|
94
|
-
"CPLUS_INCLUDE_PATH",
|
|
95
|
-
"OBJC_INCLUDE_PATH",
|
|
96
|
-
"OBJCPLUS_INCLUDE_PATH",
|
|
97
|
-
"LIBRARY_PATH",
|
|
98
|
-
"LD_LIBRARY_PATH",
|
|
99
|
-
"LD_RUN_PATH",
|
|
100
|
-
"DYLD_LIBRARY_PATH",
|
|
101
|
-
"DYLD_FRAMEWORK_PATH",
|
|
102
|
-
"DYLD_FALLBACK_LIBRARY_PATH",
|
|
103
|
-
"DYLD_FALLBACK_FRAMEWORK_PATH",
|
|
104
|
-
"SDKROOT",
|
|
105
|
-
"DEVELOPER_DIR",
|
|
106
|
-
"MACOSX_DEPLOYMENT_TARGET",
|
|
107
|
-
"IPHONEOS_DEPLOYMENT_TARGET",
|
|
108
|
-
"TVOS_DEPLOYMENT_TARGET",
|
|
109
|
-
"WATCHOS_DEPLOYMENT_TARGET",
|
|
110
|
-
"DRIVERKIT_DEPLOYMENT_TARGET",
|
|
111
|
-
"XROS_DEPLOYMENT_TARGET",
|
|
112
|
-
"CCC_OVERRIDE_OPTIONS",
|
|
113
|
-
"CCC_ADD_ARGS",
|
|
114
|
-
"CLANG_CONFIG_FILE_SYSTEM_DIR",
|
|
115
|
-
"CLANG_CONFIG_FILE_USER_DIR",
|
|
116
|
-
"CC",
|
|
117
|
-
"CFLAGS",
|
|
118
|
-
"CPPFLAGS",
|
|
119
|
-
"LDFLAGS",
|
|
120
|
-
"AR",
|
|
121
|
-
"RANLIB",
|
|
122
|
-
"CMAKE_GENERATOR",
|
|
123
|
-
"CMAKE_TOOLCHAIN_FILE",
|
|
124
|
-
"ZIG_LIB_DIR",
|
|
125
|
-
"ZIG_LIBC",
|
|
126
|
-
"SOURCE_DATE_EPOCH",
|
|
127
|
-
"ZERO_AR_DATE",
|
|
128
|
-
"LANG",
|
|
129
|
-
"LC_ALL",
|
|
130
|
-
"LC_CTYPE",
|
|
131
|
-
];
|
|
132
|
-
/** Toolchain variables whose values name mutable files/directories consumed
|
|
133
|
-
* while compiling a TU (or can inject arbitrary compiler options). Hashing the
|
|
134
|
-
* value is insufficient: a header, SDK, config, compiler helper, or loaded
|
|
135
|
-
* dylib can change in place while the spelling remains stable. In that posture
|
|
136
|
-
* neither complete artifacts nor per-TU runtime objects are safe to reuse. */
|
|
137
|
-
const MUTABLE_COMPILE_ENV_KEYS = [
|
|
138
|
-
"COMPILER_PATH",
|
|
139
|
-
"GCC_EXEC_PREFIX",
|
|
140
|
-
"CPATH",
|
|
141
|
-
"C_INCLUDE_PATH",
|
|
142
|
-
"CPLUS_INCLUDE_PATH",
|
|
143
|
-
"OBJC_INCLUDE_PATH",
|
|
144
|
-
"OBJCPLUS_INCLUDE_PATH",
|
|
145
|
-
"LD_LIBRARY_PATH",
|
|
146
|
-
"DYLD_LIBRARY_PATH",
|
|
147
|
-
"DYLD_FRAMEWORK_PATH",
|
|
148
|
-
"DYLD_FALLBACK_LIBRARY_PATH",
|
|
149
|
-
"DYLD_FALLBACK_FRAMEWORK_PATH",
|
|
150
|
-
"SDKROOT",
|
|
151
|
-
"DEVELOPER_DIR",
|
|
152
|
-
"CCC_OVERRIDE_OPTIONS",
|
|
153
|
-
"CCC_ADD_ARGS",
|
|
154
|
-
"CLANG_CONFIG_FILE_SYSTEM_DIR",
|
|
155
|
-
"CLANG_CONFIG_FILE_USER_DIR",
|
|
156
|
-
// `zig cc` resolves its bundled headers/runtime through ZIG_LIB_DIR and a
|
|
157
|
-
// caller-selected native libc description through ZIG_LIBC. Both values name
|
|
158
|
-
// mutable compiler inputs whose contents can change behind a stable path.
|
|
159
|
-
"ZIG_LIB_DIR",
|
|
160
|
-
"ZIG_LIBC",
|
|
161
|
-
];
|
|
162
|
-
/** These variables only redirect link-time inputs. Runtime objects remain
|
|
163
|
-
* reusable, but a complete executable could otherwise retain a library that
|
|
164
|
-
* was rebuilt in place behind the same search-path spelling. */
|
|
165
|
-
const MUTABLE_LINK_ENV_KEYS = ["LIBRARY_PATH", "LD_RUN_PATH"];
|
|
166
|
-
export function toolchainEnvironmentCachePolicy(env = process.env) {
|
|
167
|
-
const mutableCompileInput = MUTABLE_COMPILE_ENV_KEYS.some((name) => env[name] !== undefined);
|
|
168
|
-
const mutableLinkInput = MUTABLE_LINK_ENV_KEYS.some((name) => env[name] !== undefined);
|
|
169
|
-
return {
|
|
170
|
-
completeArtifacts: !mutableCompileInput && !mutableLinkInput,
|
|
171
|
-
runtimeObjects: !mutableCompileInput,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
export function toolchainEnvironmentFingerprint(env = process.env) {
|
|
175
|
-
const hash = createHash("sha256").update("toolchain-env-v1\0");
|
|
176
|
-
for (const name of TOOLCHAIN_ENV_KEYS) {
|
|
177
|
-
const value = env[name];
|
|
178
|
-
hash.update(name).update(value === undefined ? "\0unset\0" : "\0set\0").update(value ?? "").update("\0");
|
|
179
|
-
}
|
|
180
|
-
return hash.digest("hex");
|
|
181
|
-
}
|
|
182
91
|
/** Inputs that can change which native tool/runtime implementation an
|
|
183
92
|
* executable build selects before compileC has a chance to rediscover it.
|
|
184
93
|
* The early whole-program cache keys this exact posture before restoring a
|
|
@@ -299,50 +208,6 @@ export function isZigDriver(driver) {
|
|
|
299
208
|
* embedder's side of the contract: Xcode links iOS archives against the
|
|
300
209
|
* selected SDK, and Gradle/NDK builds link Android archives against the
|
|
301
210
|
* API-26+ bionic stubs. */
|
|
302
|
-
export const IPHONEOS_MIN_VERSION = "15.0";
|
|
303
|
-
export const ANDROID_MIN_API = 26;
|
|
304
|
-
const MOBILE_LIBRARY_TARGETS = [
|
|
305
|
-
"aarch64-apple-ios",
|
|
306
|
-
"aarch64-apple-ios-simulator",
|
|
307
|
-
"aarch64-linux-android",
|
|
308
|
-
];
|
|
309
|
-
export function isIosTarget(target) {
|
|
310
|
-
return target === "aarch64-apple-ios" || target === "aarch64-apple-ios-simulator";
|
|
311
|
-
}
|
|
312
|
-
export function isAndroidTarget(target) {
|
|
313
|
-
return target === "aarch64-linux-android";
|
|
314
|
-
}
|
|
315
|
-
export function isMobileTarget(target) {
|
|
316
|
-
return isIosTarget(target) || isAndroidTarget(target);
|
|
317
|
-
}
|
|
318
|
-
/** The canonical mobile triple SCRIPTC_TARGET selects, or null when the
|
|
319
|
-
* environment names none. Pure string inspection — safe to consult before
|
|
320
|
-
* any toolchain discovery runs. */
|
|
321
|
-
export function mobileLibraryTarget(env = process.env) {
|
|
322
|
-
const target = env["SCRIPTC_TARGET"] ?? "";
|
|
323
|
-
return isMobileTarget(target) ? target : null;
|
|
324
|
-
}
|
|
325
|
-
/** The admission verdict for a mobile-family triple: null when the spelling
|
|
326
|
-
* and host pairing are supported, otherwise the refusal text (the same text
|
|
327
|
-
* resolveCc throws and compileLibrary reports as SC3002). Pure string/host
|
|
328
|
-
* inspection — no discovery, no subprocess. */
|
|
329
|
-
export function mobileTargetRefusal(target, hostPlatform = process.platform) {
|
|
330
|
-
if (isIosTarget(target)) {
|
|
331
|
-
return hostPlatform === "darwin"
|
|
332
|
-
? null
|
|
333
|
-
: `${target} library archives build on macOS hosts only (the Apple iOS SDK sysroot and Mach-O symbol localization live there); this host is ${hostPlatform}`;
|
|
334
|
-
}
|
|
335
|
-
if (isAndroidTarget(target))
|
|
336
|
-
return null;
|
|
337
|
-
// A near-miss mobile spelling must refuse with the supported set named,
|
|
338
|
-
// never reach zig with no sysroot wired (the compile would fail on the
|
|
339
|
-
// first libc header) or produce an artifact for an unverified device
|
|
340
|
-
// class.
|
|
341
|
-
if (/(?:^|-)(?:ios|tvos|watchos|visionos|android)/.test(target)) {
|
|
342
|
-
return `unsupported mobile target '${target}' (supported: ${MOBILE_LIBRARY_TARGETS.join(", ")})`;
|
|
343
|
-
}
|
|
344
|
-
return null;
|
|
345
|
-
}
|
|
346
211
|
/** The Apple SDK root for one mobile platform, discovered through xcrun the
|
|
347
212
|
* way Xcode's own build system selects it. Memoized per SDK name and
|
|
348
213
|
* selection environment: production rediscovers per process, and the two
|
|
@@ -544,33 +409,6 @@ function isMuslTarget(driver) {
|
|
|
544
409
|
* analyze(): the FRONTEND consults it too (path.sep / os.EOL literals and
|
|
545
410
|
* the path-module binding follow the target — a win32 triple compiles
|
|
546
411
|
* Node-on-Windows semantics, path.win32 backing the bare module). */
|
|
547
|
-
export function configuredTargetPlatform(env = process.env, hostPlatform = process.platform) {
|
|
548
|
-
const target = env["SCRIPTC_TARGET"] ?? "";
|
|
549
|
-
if (target === "")
|
|
550
|
-
return hostPlatform;
|
|
551
|
-
if (target === "wasm32-wasi")
|
|
552
|
-
return "wasi";
|
|
553
|
-
if (target.includes("wasi")) {
|
|
554
|
-
throw new Error(`unsupported WASI target '${target}' (supported: wasm32-wasi)`);
|
|
555
|
-
}
|
|
556
|
-
// iOS is a darwin-family target: Mach-O objects, ld64 localization,
|
|
557
|
-
// POSIX path/EOL semantics. Android falls to the linux arm below —
|
|
558
|
-
// bionic is a linux libc and its archives are ordinary ELF.
|
|
559
|
-
if (isIosTarget(target))
|
|
560
|
-
return "darwin";
|
|
561
|
-
if (isAndroidTarget(target))
|
|
562
|
-
return "linux";
|
|
563
|
-
if (/(?:^|-)(?:ios|tvos|watchos|visionos|android)/.test(target)) {
|
|
564
|
-
throw new Error(`unsupported mobile target '${target}' (supported: ${MOBILE_LIBRARY_TARGETS.join(", ")})`);
|
|
565
|
-
}
|
|
566
|
-
if (target.includes("linux"))
|
|
567
|
-
return "linux";
|
|
568
|
-
if (target.includes("windows"))
|
|
569
|
-
return "win32";
|
|
570
|
-
if (target.includes("macos") || target.includes("darwin"))
|
|
571
|
-
return "darwin";
|
|
572
|
-
throw new Error(`unsupported target '${target}' (supported OS families: linux, windows, macos/darwin, wasm32-wasi)`);
|
|
573
|
-
}
|
|
574
412
|
export function targetPlatform(driver) {
|
|
575
413
|
if (driver.target === null)
|
|
576
414
|
return process.platform;
|
|
@@ -722,12 +560,11 @@ export async function compileLibArchive(opts) {
|
|
|
722
560
|
...(isMuslTarget(driver) ? ["scr_musl.c"] : []),
|
|
723
561
|
...(regex ? ["scr_regex.c"] : []),
|
|
724
562
|
...(opts.assert || regex || opts.symbol ? ["scr_assert.c"] : []),
|
|
725
|
-
...(opts.inspect ? ["scr_inspect.c"] : []),
|
|
563
|
+
...(opts.inspect ? ["scr_inspect.c", "scr_console_native.c"] : []),
|
|
726
564
|
...(opts.symbol ? ["scr_symbol.c"] : []),
|
|
727
|
-
...(opts.bigint ? ["scr_bigint.c"] : []),
|
|
728
565
|
...(opts.assert && opts.bigint ? ["scr_bigint_assert.c"] : []),
|
|
729
|
-
...(opts.searchParams ? ["scr_url_params.c"] : []),
|
|
730
566
|
...(opts.emitter ? ["scr_events_emitter.c", "scr_dyn_handle.c"] : []),
|
|
567
|
+
...(opts.dynInvoke ? ["scr_dyn_invoke.c"] : []),
|
|
731
568
|
...(opts.zlib ? ["scr_zlib.c"] : []),
|
|
732
569
|
...(opts.copying ? ["scr_copying.c"] : []),
|
|
733
570
|
];
|
|
@@ -820,9 +657,9 @@ export async function compileLibArchive(opts) {
|
|
|
820
657
|
let cachedProgramBytes = opts.programSource === undefined
|
|
821
658
|
? null
|
|
822
659
|
: Buffer.from(opts.programSource, "utf8");
|
|
823
|
-
const identityBytes = opts.
|
|
660
|
+
const identityBytes = opts.identityLlvmSource === undefined
|
|
824
661
|
? null
|
|
825
|
-
: Buffer.from(opts.
|
|
662
|
+
: Buffer.from(opts.identityLlvmSource, "utf8");
|
|
826
663
|
if (persistentCache !== null) {
|
|
827
664
|
try {
|
|
828
665
|
const [cv, fingerprint, programBytes] = await Promise.all([
|
|
@@ -1098,7 +935,7 @@ export async function compileLibArchive(opts) {
|
|
|
1098
935
|
const identityObject = identityBytes === null
|
|
1099
936
|
? null
|
|
1100
937
|
: await (async () => {
|
|
1101
|
-
const source = join(buildDir, "identity.
|
|
938
|
+
const source = join(buildDir, "identity.ll");
|
|
1102
939
|
await writeFile(source, identityBytes);
|
|
1103
940
|
return compileOne(source, `${stem}.identity.o`);
|
|
1104
941
|
})();
|
|
@@ -1268,8 +1105,7 @@ export async function compileLibArchive(opts) {
|
|
|
1268
1105
|
* mirrors MSVC link.exe; zig's COFF driver refuses multi-object
|
|
1269
1106
|
* merges) and llvm-objcopy rejects symbol-scope flags for
|
|
1270
1107
|
* COFF, so no tool pairing exists to shell out to. */
|
|
1271
|
-
async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, supportObjects, keepSymbols, stem) {
|
|
1272
|
-
const platform = targetPlatform(driver);
|
|
1108
|
+
export async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, supportObjects, keepSymbols, stem, platform = targetPlatform(driver)) {
|
|
1273
1109
|
const combined = join(buildDir, `${stem}.localized.o`);
|
|
1274
1110
|
const staging = join(buildDir, `${stem}.localize-staging.a`);
|
|
1275
1111
|
const keepFile = join(buildDir, "localize-keep.syms");
|
|
@@ -1355,9 +1191,9 @@ async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, sup
|
|
|
1355
1191
|
* (every .c/.h in the runtime src dir plus the vendor pin
|
|
1356
1192
|
* QJS_COMMIT), the caller's dependency identity, the
|
|
1357
1193
|
* compiler-visible TU path, Darwin output basename, the
|
|
1358
|
-
* FULL normalized command line, and the emitted
|
|
1359
|
-
* Emitted
|
|
1360
|
-
*
|
|
1194
|
+
* FULL normalized command line, and the emitted LLVM bytes).
|
|
1195
|
+
* Emitted LLVM is
|
|
1196
|
+
* deterministic, so unchanged programs
|
|
1361
1197
|
* hit; any flag difference — e.g. the sanitized lane's
|
|
1362
1198
|
* -O1/-fsanitize=address/-DSCR_RC_AUDIT — lands in a
|
|
1363
1199
|
* naturally distinct key. On a hit the cached binary is
|
|
@@ -1386,7 +1222,7 @@ async function localizeLibraryObjects(driver, arArgv, buildDir, rootObjects, sup
|
|
|
1386
1222
|
* obj/<set>/<f>.o — per-flavor runtime objects for cache-miss builds. The
|
|
1387
1223
|
* historical single invocation recompiles every runtime
|
|
1388
1224
|
* TU per program (~1.3s at -O2); with cached objects a
|
|
1389
|
-
* miss compiles
|
|
1225
|
+
* miss compiles only the program's LLVM and links (~0.15s).
|
|
1390
1226
|
* Library-mode -DSCR_LIB objects use a distinct flavor.
|
|
1391
1227
|
* The clang driver hands every input the same option set,
|
|
1392
1228
|
* so per-TU `-c` compiles with those options plus a final
|
|
@@ -2139,29 +1975,6 @@ function implicitToolchainFingerprints(driver, environmentFingerprint) {
|
|
|
2139
1975
|
function implicitToolchainFingerprint(driver, environmentFingerprint) {
|
|
2140
1976
|
return implicitToolchainFingerprints(driver, environmentFingerprint).then((fingerprints) => fingerprints.complete);
|
|
2141
1977
|
}
|
|
2142
|
-
function linkTraceCandidate(line) {
|
|
2143
|
-
const trimmed = line.trim().replace(/^(?:LOAD|load)\s+/, "");
|
|
2144
|
-
if (trimmed === "")
|
|
2145
|
-
return [];
|
|
2146
|
-
const unquoted = (trimmed.startsWith('"') && trimmed.endsWith('"')) ||
|
|
2147
|
-
(trimmed.startsWith("'") && trimmed.endsWith("'"))
|
|
2148
|
-
? trimmed.slice(1, -1)
|
|
2149
|
-
: trimmed;
|
|
2150
|
-
const candidates = [unquoted];
|
|
2151
|
-
const member = unquoted.lastIndexOf("(");
|
|
2152
|
-
if (member > 0 && unquoted.endsWith(")"))
|
|
2153
|
-
candidates.push(unquoted.slice(0, member));
|
|
2154
|
-
return candidates;
|
|
2155
|
-
}
|
|
2156
|
-
function driverTraceCandidates(line) {
|
|
2157
|
-
const candidates = [];
|
|
2158
|
-
for (const match of line.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'|(\S+)/g)) {
|
|
2159
|
-
const token = (match[1] ?? match[2] ?? match[3] ?? "").replace(/\\(["\\])/g, "$1");
|
|
2160
|
-
if (token !== "")
|
|
2161
|
-
candidates.push(token);
|
|
2162
|
-
}
|
|
2163
|
-
return candidates;
|
|
2164
|
-
}
|
|
2165
1978
|
async function existingDriverTracePaths(output, cwd, excludedRoot) {
|
|
2166
1979
|
const candidates = new Set();
|
|
2167
1980
|
for (const line of output.split(/\r?\n/)) {
|
|
@@ -2660,6 +2473,8 @@ function localArtifactIdentity(opts, driver, environmentFingerprint, compilerIde
|
|
|
2660
2473
|
hash.update("optimization-linker-flags\0")
|
|
2661
2474
|
.update(executableOptimizationFlags.join("\x1f")).update("\0");
|
|
2662
2475
|
}
|
|
2476
|
+
if (opts.sanitize && opts.optimization === "dev")
|
|
2477
|
+
hash.update("sanitized-runtime-o1-v1\0");
|
|
2663
2478
|
if (programShardMerge !== null) {
|
|
2664
2479
|
updateProgramShardCacheIdentity(hash, opts.programShards, opts.programPublicSymbols, programShardMerge);
|
|
2665
2480
|
}
|
|
@@ -2867,8 +2682,9 @@ export async function stageRuntimeObjects(objects, stageDir) {
|
|
|
2867
2682
|
}
|
|
2868
2683
|
/** Compiles one C program together with the runtime sources.
|
|
2869
2684
|
* With caching disabled, the runtime (a dozen small files) is recompiled on
|
|
2870
|
-
* every build
|
|
2871
|
-
*
|
|
2685
|
+
* every build — no cached-archive staleness bugs. Sanitized dev builds compile
|
|
2686
|
+
* the program separately so its O0 setting does not slow the O1 runtime.
|
|
2687
|
+
* Other builds use one clang invocation. --dynamic additionally compiles
|
|
2872
2688
|
* scr_island.c under SCR_DYNAMIC and links the cached engine archive (built
|
|
2873
2689
|
* lazily, see above); regex-using programs additionally compile scr_regex.c
|
|
2874
2690
|
* and link libregexp (the cached objects, or the archive's own copy under
|
|
@@ -2907,6 +2723,10 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
2907
2723
|
const tlsCa = (opts.tlsCa ?? false) || tls;
|
|
2908
2724
|
const driver = resolveCc();
|
|
2909
2725
|
const darwinDebugSymbols = needsDarwinDebugSymbols(targetPlatform(driver), optimization, opts.strip);
|
|
2726
|
+
if (opts.frameworks?.length && targetPlatform(driver) !== "darwin")
|
|
2727
|
+
throw new Error("FFI frameworks require a Darwin target");
|
|
2728
|
+
if (opts.frameworks?.some(name => !/^[A-Za-z][A-Za-z0-9_]*$/.test(name)))
|
|
2729
|
+
throw new Error("Invalid FFI framework name");
|
|
2910
2730
|
const debugFlags = optimization === "dev" && !opts.strip
|
|
2911
2731
|
? ["-gline-tables-only", ...(opts.cPath.endsWith(".ll") ? [] : ["-gno-column-info"])]
|
|
2912
2732
|
: [];
|
|
@@ -2990,7 +2810,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
2990
2810
|
const persistentDriverCache = cachePolicy.runtimeObjects &&
|
|
2991
2811
|
configuredCacheRoot !== null &&
|
|
2992
2812
|
await compilerDriverSupportsPersistentCache(driver, toolchainEnv);
|
|
2993
|
-
// Only compiler-generated TUs opt in. Arbitrary `compileC`
|
|
2813
|
+
// Only compiler-generated TUs opt in. Arbitrary `compileC` inputs
|
|
2994
2814
|
// inputs may include caller-owned headers whose contents are not otherwise
|
|
2995
2815
|
// represented in this key, so they retain the fully uncached historical
|
|
2996
2816
|
// path unless the caller supplies its own complete dependency identity.
|
|
@@ -3025,6 +2845,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3025
2845
|
cachePolicy.completeArtifacts &&
|
|
3026
2846
|
persistentCache.identity === "scriptc-generated-v1" &&
|
|
3027
2847
|
(opts.linkInputs?.length ?? 0) === 0 &&
|
|
2848
|
+
(opts.frameworks?.length ?? 0) === 0 &&
|
|
3028
2849
|
(opts.systemLibraries?.length ?? 0) === 0 &&
|
|
3029
2850
|
process.env["SCRIPTC_TEST_TRUST_COMPILER_WRAPPER"] !== "1") {
|
|
3030
2851
|
try {
|
|
@@ -3228,20 +3049,20 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3228
3049
|
...driver.targetArgs,
|
|
3229
3050
|
...threadArgs,
|
|
3230
3051
|
...(sanitize
|
|
3231
|
-
? [
|
|
3052
|
+
? ["-O1", "-fsanitize=address", "-DSCR_RC_AUDIT"]
|
|
3232
3053
|
: [optimization === "dev" ? "-O0" : "-O2"]),
|
|
3233
3054
|
...executableSectionFlags.compile,
|
|
3234
3055
|
...(opts.textDecoderLegacy ? ["-DSCR_TEXT_DECODER_LEGACY"] : []),
|
|
3235
3056
|
"-fno-math-errno",
|
|
3236
|
-
// The
|
|
3057
|
+
// The runtime object model uses type-punned C: a hierarchy
|
|
3237
3058
|
// upcast is a raw pointer cast, so one object's header (rc, vt) and
|
|
3238
3059
|
// fields are read and written through BOTH the base and derived struct
|
|
3239
3060
|
// types (sc_retain_Derived vs sc_release_Base on the same object).
|
|
3240
3061
|
// C's effective-type rule calls that UB, and clang's TBAA at -O2
|
|
3241
3062
|
// reorders/elides the rc updates once everything inlines — an upcast
|
|
3242
3063
|
// identity compare frees the object while a global still owns it.
|
|
3243
|
-
// The LLVM backend emits no TBAA metadata
|
|
3244
|
-
//
|
|
3064
|
+
// The LLVM backend emits no TBAA metadata; this flag preserves
|
|
3065
|
+
// matching memory semantics in the runtime. Mirrored in the
|
|
3245
3066
|
// cache-miss cflags below and compileLibArchive — the three option
|
|
3246
3067
|
// sets must stay in lockstep.
|
|
3247
3068
|
"-fno-strict-aliasing",
|
|
@@ -3267,10 +3088,10 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3267
3088
|
? ["-I", vendorEngineDir(), rt(join(rtDir, "scr_regex.c")), ...lreObjects]
|
|
3268
3089
|
: []),
|
|
3269
3090
|
...(opts.assert || regex || opts.symbol ? [rt(join(rtDir, "scr_assert.c"))] : []),
|
|
3270
|
-
...(opts.inspect ? [rt(join(rtDir, "scr_inspect.c"))] : []),
|
|
3091
|
+
...(opts.inspect ? [rt(join(rtDir, "scr_inspect.c")), rt(join(rtDir, "scr_console_native.c"))] : []),
|
|
3271
3092
|
...((opts.dynInvoke || nativeFetch) ? [rt(join(rtDir, "scr_dyn_invoke.c"))] : []),
|
|
3272
3093
|
...(opts.dc ? [rt(join(rtDir, "scr_dc.c"))] : []),
|
|
3273
|
-
...(opts.dynAsync || opts.dynInvoke || opts.dc || nativeFetch ? [rt(join(rtDir, "scr_async_dyn.c"))] : []),
|
|
3094
|
+
...(opts.dynAsync || opts.dynInvoke || opts.dc || opts.fileHandle || nativeFetch ? [rt(join(rtDir, "scr_async_dyn.c"))] : []),
|
|
3274
3095
|
// The zlib UNIT (scr_zlib.c) gates on zlib.* IR use; the LINK (system
|
|
3275
3096
|
// libz on the default host-clang build, vendored objects on Zig builds)
|
|
3276
3097
|
// also serves the native fetch's gzip decoder — spread exactly once.
|
|
@@ -3295,9 +3116,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3295
3116
|
// their exact size class.
|
|
3296
3117
|
...(opts.emitter || net ? [rt(join(rtDir, "scr_dyn_handle.c"))] : []),
|
|
3297
3118
|
...(opts.symbol ? [rt(join(rtDir, "scr_symbol.c"))] : []),
|
|
3298
|
-
...(opts.bigint ? [rt(join(rtDir, "scr_bigint.c"))] : []),
|
|
3299
3119
|
...(opts.assert && opts.bigint ? [rt(join(rtDir, "scr_bigint_assert.c"))] : []),
|
|
3300
|
-
...(opts.searchParams ? [rt(join(rtDir, "scr_url_params.c"))] : []),
|
|
3301
3120
|
...(opts.qs ? [rt(join(rtDir, "scr_qs.c"))] : []),
|
|
3302
3121
|
...(opts.parseArgs ? [rt(join(rtDir, "scr_util.c"))] : []),
|
|
3303
3122
|
...(opts.stream ? [rt(join(rtDir, "scr_stream.c"))] : []),
|
|
@@ -3399,6 +3218,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3399
3218
|
build.programPath ?? opts.cPath,
|
|
3400
3219
|
...(opts.linkInputs ?? []),
|
|
3401
3220
|
...(opts.systemLibraries ?? []).map((name) => `-l${name}`),
|
|
3221
|
+
...(opts.frameworks ?? []).flatMap(name => ["-framework", name]),
|
|
3402
3222
|
// GNU ld resolves libraries from left to right and commonly enables
|
|
3403
3223
|
// --as-needed: host-clang libz must follow scr_zlib.c/scr_fetch.c and every
|
|
3404
3224
|
// generated/native input that references inflate symbols. Cross
|
|
@@ -3413,16 +3233,15 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3413
3233
|
...executableLinkFlags,
|
|
3414
3234
|
"-o", build.outPath ?? opts.outPath,
|
|
3415
3235
|
];
|
|
3416
|
-
//
|
|
3417
|
-
//
|
|
3418
|
-
// historical single clang invocation.
|
|
3236
|
+
// Runtime-object flags. Program compilation and dependency discovery add
|
|
3237
|
+
// the dev sanitizer override below so both cache identities match reality.
|
|
3419
3238
|
const cflags = [
|
|
3420
3239
|
"-std=c11",
|
|
3421
3240
|
...debugFlags,
|
|
3422
3241
|
...driver.targetArgs,
|
|
3423
3242
|
...threadArgs,
|
|
3424
3243
|
...(sanitize
|
|
3425
|
-
? [
|
|
3244
|
+
? ["-O1", "-fsanitize=address", "-DSCR_RC_AUDIT"]
|
|
3426
3245
|
: [optimization === "dev" ? "-O0" : "-O2"]),
|
|
3427
3246
|
...executableSectionFlags.compile,
|
|
3428
3247
|
...(opts.textDecoderLegacy ? ["-DSCR_TEXT_DECODER_LEGACY"] : []),
|
|
@@ -3436,9 +3255,15 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3436
3255
|
...(tlsArchive !== null ? ["-I", join(vendorTlsDir(), "include")] : []),
|
|
3437
3256
|
...(dynamic ? ["-DSCR_DYNAMIC"] : []),
|
|
3438
3257
|
];
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3258
|
+
// Keep sanitizer runtime objects optimized in both postures. Large dev
|
|
3259
|
+
// programs still compile at O0, avoiding an expensive LLVM optimization
|
|
3260
|
+
// pass while retaining ASan and reference-count checks in every runtime unit.
|
|
3261
|
+
const separateSanitizedProgram = sanitize && optimization === "dev";
|
|
3262
|
+
const programCompilerArgs = [
|
|
3263
|
+
...cflags,
|
|
3264
|
+
...(separateSanitizedProgram ? ["-O0"] : []),
|
|
3265
|
+
...(opts.cPath.endsWith(".ll") ? ["-Wno-override-module"] : []),
|
|
3266
|
+
];
|
|
3442
3267
|
const programSourceExtension = opts.cPath.endsWith(".ll") ? ".ll" : ".c";
|
|
3443
3268
|
const ccName = driver.argv.join(" ");
|
|
3444
3269
|
const runClang = async (args) => {
|
|
@@ -3448,20 +3273,44 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3448
3273
|
catch (err) {
|
|
3449
3274
|
const stderr = subprocessFailureDetail(err);
|
|
3450
3275
|
const guidance = (opts.linkInputs?.length ?? 0) > 0 ||
|
|
3276
|
+
(opts.frameworks?.length ?? 0) > 0 ||
|
|
3451
3277
|
(opts.systemLibraries?.length ?? 0) > 0
|
|
3452
3278
|
? "This build includes native FFI link inputs. Check that every symbol and system library exists, " +
|
|
3453
3279
|
"that archive/object ordering is correct, and that each input matches the selected target."
|
|
3454
|
-
: `
|
|
3455
|
-
`${ccName} itself is missing/broken.`;
|
|
3280
|
+
: `Check the supplied native source and the selected ${ccName} toolchain.`;
|
|
3456
3281
|
throw new CcCompileError(ccName, stderr, `${ccName} failed compiling ${opts.cPath}.\n` +
|
|
3457
3282
|
`${guidance}\n\n${stderr}`);
|
|
3458
3283
|
}
|
|
3459
3284
|
};
|
|
3285
|
+
const buildExecutable = async (runtimeInput, build = {}) => {
|
|
3286
|
+
if (!separateSanitizedProgram) {
|
|
3287
|
+
await runClang(buildArgs(runtimeInput, build));
|
|
3288
|
+
return;
|
|
3289
|
+
}
|
|
3290
|
+
const stage = await mkdtemp(join(tmpdir(), "scriptc-sanitized-program-"));
|
|
3291
|
+
try {
|
|
3292
|
+
const object = join(stage, "program.o");
|
|
3293
|
+
await runClang([
|
|
3294
|
+
...programCompilerArgs,
|
|
3295
|
+
...(build.compilerVisibleSource === undefined ? [] : [
|
|
3296
|
+
`-ffile-prefix-map=${build.programPath}=${build.compilerVisibleSource}`,
|
|
3297
|
+
"-iquote", dirname(resolve(build.compilerVisibleSource)),
|
|
3298
|
+
]),
|
|
3299
|
+
"-c", build.programPath ?? opts.cPath, "-o", object,
|
|
3300
|
+
]);
|
|
3301
|
+
await runClang(buildArgs(runtimeInput, { programPath: object, outPath: build.outPath ?? opts.outPath }));
|
|
3302
|
+
if (darwinDebugSymbols)
|
|
3303
|
+
await createDarwinDebugSymbols(build.outPath ?? opts.outPath);
|
|
3304
|
+
}
|
|
3305
|
+
finally {
|
|
3306
|
+
await rm(stage, { recursive: true, force: true });
|
|
3307
|
+
}
|
|
3308
|
+
};
|
|
3460
3309
|
const runUncachedBuild = async () => {
|
|
3461
3310
|
const privateVendorRoot = transientVendorRoot ?? join(tmpdir(), `scriptc-vendor-fallback-${process.pid}-${Math.random().toString(36).slice(2)}`);
|
|
3462
3311
|
try {
|
|
3463
3312
|
await materializeVendorPrerequisites(undefined, privateVendorRoot);
|
|
3464
|
-
await
|
|
3313
|
+
await buildExecutable((p) => p);
|
|
3465
3314
|
}
|
|
3466
3315
|
finally {
|
|
3467
3316
|
await rm(privateVendorRoot, { recursive: true, force: true }).catch(() => undefined);
|
|
@@ -3510,7 +3359,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3510
3359
|
if (compileMetadataStamp === null) {
|
|
3511
3360
|
const [runtimeInvocation, programInvocation] = await Promise.all([
|
|
3512
3361
|
effectiveCompilerInvocationFingerprint(driver, toolchainEnv, cflags),
|
|
3513
|
-
programSourceExtension === ".ll"
|
|
3362
|
+
programSourceExtension === ".ll" || separateSanitizedProgram
|
|
3514
3363
|
? effectiveCompilerInvocationFingerprint(driver, toolchainEnv, programCompilerArgs, programSourceExtension)
|
|
3515
3364
|
: Promise.resolve(null),
|
|
3516
3365
|
]);
|
|
@@ -3573,6 +3422,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3573
3422
|
let cacheCompleteArtifact = !cacheWarmOnly &&
|
|
3574
3423
|
cachePolicy.completeArtifacts &&
|
|
3575
3424
|
(opts.linkInputs?.length ?? 0) === 0 &&
|
|
3425
|
+
(opts.frameworks?.length ?? 0) === 0 &&
|
|
3576
3426
|
(opts.systemLibraries?.length ?? 0) === 0;
|
|
3577
3427
|
let programDependencies = null;
|
|
3578
3428
|
const linkProbeArgs = [
|
|
@@ -3593,7 +3443,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3593
3443
|
// compile/link flag shape: wrappers commonly inject flags or native inputs
|
|
3594
3444
|
// conditionally on optimization, sanitizer, dynamic, or platform switches.
|
|
3595
3445
|
const effectiveLinkInvocationArgs = [
|
|
3596
|
-
...programCompilerArgs,
|
|
3446
|
+
...(separateSanitizedProgram ? cflags : programCompilerArgs),
|
|
3597
3447
|
...(targetPlatform(driver) === "win32"
|
|
3598
3448
|
? ["-ladvapi32", "-liphlpapi", "-lws2_32"]
|
|
3599
3449
|
: []),
|
|
@@ -3647,7 +3497,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3647
3497
|
linkMetadataStamp = null;
|
|
3648
3498
|
}
|
|
3649
3499
|
[programDependencies, implicitLinker] = await Promise.all([
|
|
3650
|
-
translationUnitDependencyFingerprint(driver,
|
|
3500
|
+
translationUnitDependencyFingerprint(driver, programCompilerArgs, opts.cPath, cBytes, toolchainEnv),
|
|
3651
3501
|
linkMetadataStamp === null
|
|
3652
3502
|
? implicitLinkerFingerprint(driver, toolchainEnv, linkProbeArgs, effectiveLinkInvocationArgs, linkTraceInvocationArgs)
|
|
3653
3503
|
: Promise.resolve(implicitLinker),
|
|
@@ -3712,7 +3562,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3712
3562
|
if (cacheWarmOnly && preBuildDependencies === null) {
|
|
3713
3563
|
try {
|
|
3714
3564
|
const [dependencies, invocation] = await Promise.all([
|
|
3715
|
-
translationUnitDependencyFingerprint(driver,
|
|
3565
|
+
translationUnitDependencyFingerprint(driver, programCompilerArgs, opts.cPath, cBytes, toolchainEnv),
|
|
3716
3566
|
effectiveCompilerInvocationFingerprint(driver, toolchainEnv, cflags),
|
|
3717
3567
|
]);
|
|
3718
3568
|
programDependencies = dependencies;
|
|
@@ -3874,7 +3724,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3874
3724
|
return null;
|
|
3875
3725
|
try {
|
|
3876
3726
|
const programDependencyHash = programDependencies ??
|
|
3877
|
-
await translationUnitDependencyFingerprint(driver,
|
|
3727
|
+
await translationUnitDependencyFingerprint(driver, programCompilerArgs, opts.cPath, cBytes, toolchainEnv);
|
|
3878
3728
|
const stem = basename(opts.cPath, ".ll");
|
|
3879
3729
|
const entries = programShards.map((shard, index) => {
|
|
3880
3730
|
const sourcePath = join(buildDir, shard.name);
|
|
@@ -3930,7 +3780,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3930
3780
|
runtimeFingerprint(rtDir),
|
|
3931
3781
|
implicitToolchainFingerprints(driver, toolchainEnv),
|
|
3932
3782
|
effectiveCompilerInvocationFingerprint(driver, toolchainEnv, programCompilerArgs, ".ll"),
|
|
3933
|
-
translationUnitDependencyFingerprint(driver,
|
|
3783
|
+
translationUnitDependencyFingerprint(driver, programCompilerArgs, opts.cPath, cBytes, toolchainEnv),
|
|
3934
3784
|
ccVersion(driver.argv, toolchainEnv, true),
|
|
3935
3785
|
resolveProgramShardMergeIdentity(driver),
|
|
3936
3786
|
]);
|
|
@@ -3962,9 +3812,9 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3962
3812
|
// cache key describing a successful shard projection/merge.
|
|
3963
3813
|
cacheInputsStable = false;
|
|
3964
3814
|
}
|
|
3965
|
-
await
|
|
3815
|
+
await buildExecutable((p) => objects?.get(p) ?? p, shardedProgramObject === null
|
|
3966
3816
|
? { programPath, outPath: privateOut, compilerVisibleSource: opts.cPath }
|
|
3967
|
-
: { programPath: shardedProgramObject, outPath: privateOut })
|
|
3817
|
+
: { programPath: shardedProgramObject, outPath: privateOut });
|
|
3968
3818
|
if (darwinDebugSymbols) {
|
|
3969
3819
|
// clang invokes dsymutil when compiling a source TU while linking.
|
|
3970
3820
|
// A sharded program is already an object, so run it explicitly while
|
|
@@ -3985,7 +3835,7 @@ async function compileCInternal(opts, cacheWarmOnly, cacheWarmPaths) {
|
|
|
3985
3835
|
implicitToolchainFingerprint(driver, toolchainEnv).catch(() => null),
|
|
3986
3836
|
effectiveCompilerInvocationFingerprint(driver, toolchainEnv, cflags).catch(() => null),
|
|
3987
3837
|
effectiveCompilerInvocationFingerprint(driver, toolchainEnv, programCompilerArgs, programSourceExtension).catch(() => null),
|
|
3988
|
-
translationUnitDependencyFingerprint(driver,
|
|
3838
|
+
translationUnitDependencyFingerprint(driver, programCompilerArgs, opts.cPath, cBytes, toolchainEnv).catch(() => null),
|
|
3989
3839
|
implicitLinkerFingerprint(driver, toolchainEnv, linkProbeArgs, effectiveLinkInvocationArgs, linkTraceInvocationArgs).catch(() => null),
|
|
3990
3840
|
ccVersion(driver.argv, toolchainEnv, true).catch(() => null),
|
|
3991
3841
|
programShards === null
|