@geastack/compiler 1.0.15
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/LICENSE +202 -0
- package/README.md +149 -0
- package/dist/cli-analyze.d.ts +1 -0
- package/dist/cli-analyze.js +61 -0
- package/dist/cli-coverage.d.ts +1 -0
- package/dist/cli-coverage.js +329 -0
- package/dist/cli-emit.d.ts +10 -0
- package/dist/cli-emit.js +398 -0
- package/dist/cli-module-graph.d.ts +18 -0
- package/dist/cli-module-graph.js +123 -0
- package/dist/cli-package-source.d.ts +5 -0
- package/dist/cli-package-source.js +116 -0
- package/dist/cli-project.d.ts +2 -0
- package/dist/cli-project.js +60 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +199 -0
- package/dist/compiler.d.ts +228 -0
- package/dist/compiler.js +1029 -0
- package/dist/conversion/algebra.d.ts +218 -0
- package/dist/conversion/algebra.js +155 -0
- package/dist/conversion/build.d.ts +67 -0
- package/dist/conversion/build.js +1378 -0
- package/dist/conversion/derive.d.ts +37 -0
- package/dist/conversion/derive.js +260 -0
- package/dist/conversion/graph-validation.d.ts +8 -0
- package/dist/conversion/graph-validation.js +97 -0
- package/dist/conversion/native-callable-adapter.d.ts +13 -0
- package/dist/conversion/native-callable-adapter.js +53 -0
- package/dist/conversion/native-class-reference.d.ts +12 -0
- package/dist/conversion/native-class-reference.js +39 -0
- package/dist/conversion/native-payload-transport.d.ts +25 -0
- package/dist/conversion/native-payload-transport.js +33 -0
- package/dist/conversion/native-selection.d.ts +49 -0
- package/dist/conversion/native-selection.js +135 -0
- package/dist/conversion/native-sum.d.ts +42 -0
- package/dist/conversion/native-sum.js +115 -0
- package/dist/conversion/nodes.d.ts +55 -0
- package/dist/conversion/nodes.js +91 -0
- package/dist/conversion/operand-view.d.ts +14 -0
- package/dist/conversion/operand-view.js +20 -0
- package/dist/conversion/record-view.d.ts +157 -0
- package/dist/conversion/record-view.js +273 -0
- package/dist/conversion/registry.d.ts +217 -0
- package/dist/conversion/registry.js +1 -0
- package/dist/diagnostics/model.d.ts +76 -0
- package/dist/diagnostics/model.js +60 -0
- package/dist/diagnostics/sweep.d.ts +31 -0
- package/dist/diagnostics/sweep.js +112 -0
- package/dist/identity/ids.d.ts +179 -0
- package/dist/identity/ids.js +212 -0
- package/dist/ir/absent-class-arm.d.ts +48 -0
- package/dist/ir/absent-class-arm.js +157 -0
- package/dist/ir/borrow-effects.d.ts +23 -0
- package/dist/ir/borrow-effects.js +151 -0
- package/dist/ir/borrowed-call-arguments.d.ts +40 -0
- package/dist/ir/borrowed-call-arguments.js +117 -0
- package/dist/ir/build.d.ts +168 -0
- package/dist/ir/build.js +459 -0
- package/dist/ir/call-dispatch.d.ts +38 -0
- package/dist/ir/call-dispatch.js +502 -0
- package/dist/ir/call-entry.d.ts +142 -0
- package/dist/ir/call-entry.js +386 -0
- package/dist/ir/callable-class-flow.d.ts +27 -0
- package/dist/ir/callable-class-flow.js +1386 -0
- package/dist/ir/callable-field-slots.d.ts +22 -0
- package/dist/ir/callable-field-slots.js +166 -0
- package/dist/ir/callable-identity-demand.d.ts +52 -0
- package/dist/ir/callable-identity-demand.js +460 -0
- package/dist/ir/callable-member-candidates.d.ts +9 -0
- package/dist/ir/callable-member-candidates.js +39 -0
- package/dist/ir/callable-records.d.ts +21 -0
- package/dist/ir/callable-records.js +411 -0
- package/dist/ir/captures.d.ts +26 -0
- package/dist/ir/captures.js +335 -0
- package/dist/ir/certificate.d.ts +45 -0
- package/dist/ir/certificate.js +47 -0
- package/dist/ir/certify/carrier-keys.d.ts +73 -0
- package/dist/ir/certify/carrier-keys.js +221 -0
- package/dist/ir/certify/function-source.d.ts +4 -0
- package/dist/ir/certify/function-source.js +28 -0
- package/dist/ir/certify/has-property-key.d.ts +88 -0
- package/dist/ir/certify/has-property-key.js +116 -0
- package/dist/ir/certify/instanceof-key.d.ts +24 -0
- package/dist/ir/certify/instanceof-key.js +35 -0
- package/dist/ir/certify/property-access-keys.d.ts +172 -0
- package/dist/ir/certify/property-access-keys.js +291 -0
- package/dist/ir/certify/property-access.d.ts +3 -0
- package/dist/ir/certify/property-access.js +597 -0
- package/dist/ir/certify/runtime-helper.d.ts +3 -0
- package/dist/ir/certify/runtime-helper.js +326 -0
- package/dist/ir/certify/typeof-operand.d.ts +14 -0
- package/dist/ir/certify/typeof-operand.js +16 -0
- package/dist/ir/certify.d.ts +123 -0
- package/dist/ir/certify.js +481 -0
- package/dist/ir/class-evaluation.d.ts +26 -0
- package/dist/ir/class-evaluation.js +50 -0
- package/dist/ir/class-static-fields.d.ts +60 -0
- package/dist/ir/class-static-fields.js +108 -0
- package/dist/ir/construct-entry.d.ts +26 -0
- package/dist/ir/construct-entry.js +117 -0
- package/dist/ir/dead-values.d.ts +90 -0
- package/dist/ir/dead-values.js +184 -0
- package/dist/ir/deferral.d.ts +99 -0
- package/dist/ir/deferral.js +409 -0
- package/dist/ir/dense-loops.d.ts +230 -0
- package/dist/ir/dense-loops.js +697 -0
- package/dist/ir/dominance.d.ts +82 -0
- package/dist/ir/dominance.js +268 -0
- package/dist/ir/emission-representations.d.ts +71 -0
- package/dist/ir/emission-representations.js +350 -0
- package/dist/ir/facts.d.ts +218 -0
- package/dist/ir/facts.js +181 -0
- package/dist/ir/fixed-data-definition.d.ts +19 -0
- package/dist/ir/fixed-data-definition.js +49 -0
- package/dist/ir/generator-split.d.ts +38 -0
- package/dist/ir/generator-split.js +329 -0
- package/dist/ir/hoist.d.ts +55 -0
- package/dist/ir/hoist.js +375 -0
- package/dist/ir/instantiation.d.ts +61 -0
- package/dist/ir/instantiation.js +137 -0
- package/dist/ir/integer-storage.d.ts +170 -0
- package/dist/ir/integer-storage.js +822 -0
- package/dist/ir/integers.d.ts +161 -0
- package/dist/ir/integers.js +539 -0
- package/dist/ir/integrity-restrictions.d.ts +50 -0
- package/dist/ir/integrity-restrictions.js +118 -0
- package/dist/ir/local-iterators.d.ts +4 -0
- package/dist/ir/local-iterators.js +27 -0
- package/dist/ir/lower-allocation.d.ts +4 -0
- package/dist/ir/lower-allocation.js +325 -0
- package/dist/ir/lower-completion.d.ts +15 -0
- package/dist/ir/lower-completion.js +25 -0
- package/dist/ir/lower-destructuring.d.ts +5 -0
- package/dist/ir/lower-destructuring.js +693 -0
- package/dist/ir/lower-element.d.ts +29 -0
- package/dist/ir/lower-element.js +111 -0
- package/dist/ir/lower-exceptions.d.ts +47 -0
- package/dist/ir/lower-exceptions.js +92 -0
- package/dist/ir/lower-flow.d.ts +137 -0
- package/dist/ir/lower-flow.js +600 -0
- package/dist/ir/lower-graph.d.ts +218 -0
- package/dist/ir/lower-graph.js +687 -0
- package/dist/ir/lower-invocation.d.ts +4 -0
- package/dist/ir/lower-invocation.js +514 -0
- package/dist/ir/lower-narrow.d.ts +53 -0
- package/dist/ir/lower-narrow.js +320 -0
- package/dist/ir/lower-operands.d.ts +272 -0
- package/dist/ir/lower-operands.js +461 -0
- package/dist/ir/lower-property.d.ts +21 -0
- package/dist/ir/lower-property.js +132 -0
- package/dist/ir/lower-protocol.d.ts +11 -0
- package/dist/ir/lower-protocol.js +118 -0
- package/dist/ir/lower-short-circuit.d.ts +41 -0
- package/dist/ir/lower-short-circuit.js +63 -0
- package/dist/ir/lower.d.ts +82 -0
- package/dist/ir/lower.js +1346 -0
- package/dist/ir/model.d.ts +1474 -0
- package/dist/ir/model.js +6 -0
- package/dist/ir/native-absent-property.d.ts +3 -0
- package/dist/ir/native-absent-property.js +13 -0
- package/dist/ir/native-array-transport.d.ts +7 -0
- package/dist/ir/native-array-transport.js +46 -0
- package/dist/ir/native-callable-bind.d.ts +9 -0
- package/dist/ir/native-callable-bind.js +30 -0
- package/dist/ir/native-carrier-predicate.d.ts +34 -0
- package/dist/ir/native-carrier-predicate.js +49 -0
- package/dist/ir/native-class-accessor.d.ts +18 -0
- package/dist/ir/native-class-accessor.js +52 -0
- package/dist/ir/native-class-construction.d.ts +16 -0
- package/dist/ir/native-class-construction.js +71 -0
- package/dist/ir/native-class-initialization.d.ts +15 -0
- package/dist/ir/native-class-initialization.js +56 -0
- package/dist/ir/native-class-origins.d.ts +13 -0
- package/dist/ir/native-class-origins.js +237 -0
- package/dist/ir/native-dictionary-transport.d.ts +6 -0
- package/dist/ir/native-dictionary-transport.js +37 -0
- package/dist/ir/native-enumeration.d.ts +14 -0
- package/dist/ir/native-enumeration.js +26 -0
- package/dist/ir/native-equality.d.ts +10 -0
- package/dist/ir/native-equality.js +18 -0
- package/dist/ir/native-field-owner.d.ts +37 -0
- package/dist/ir/native-field-owner.js +183 -0
- package/dist/ir/native-fixed-layout.d.ts +41 -0
- package/dist/ir/native-fixed-layout.js +232 -0
- package/dist/ir/native-host-construction.d.ts +53 -0
- package/dist/ir/native-host-construction.js +62 -0
- package/dist/ir/native-key-query.d.ts +4 -0
- package/dist/ir/native-key-query.js +38 -0
- package/dist/ir/native-merge-transport.d.ts +25 -0
- package/dist/ir/native-merge-transport.js +71 -0
- package/dist/ir/native-record-index-transport.d.ts +11 -0
- package/dist/ir/native-record-index-transport.js +34 -0
- package/dist/ir/native-record-index.d.ts +12 -0
- package/dist/ir/native-record-index.js +27 -0
- package/dist/ir/native-reflect-field.d.ts +5 -0
- package/dist/ir/native-reflect-field.js +33 -0
- package/dist/ir/native-sequence-transport.d.ts +7 -0
- package/dist/ir/native-sequence-transport.js +53 -0
- package/dist/ir/numeric-intrinsics.d.ts +13 -0
- package/dist/ir/numeric-intrinsics.js +57 -0
- package/dist/ir/object-value-conversions.d.ts +20 -0
- package/dist/ir/object-value-conversions.js +50 -0
- package/dist/ir/physical-class-reflection.d.ts +9 -0
- package/dist/ir/physical-class-reflection.js +57 -0
- package/dist/ir/presence-proof.d.ts +42 -0
- package/dist/ir/presence-proof.js +490 -0
- package/dist/ir/program-facts.d.ts +106 -0
- package/dist/ir/program-facts.js +319 -0
- package/dist/ir/proven-branches.d.ts +16 -0
- package/dist/ir/proven-branches.js +219 -0
- package/dist/ir/queries.d.ts +41 -0
- package/dist/ir/queries.js +213 -0
- package/dist/ir/reflection-demand.d.ts +64 -0
- package/dist/ir/reflection-demand.js +1394 -0
- package/dist/ir/refusal.d.ts +43 -0
- package/dist/ir/refusal.js +28 -0
- package/dist/ir/shake.d.ts +37 -0
- package/dist/ir/shake.js +1078 -0
- package/dist/ir/static-callables.d.ts +11 -0
- package/dist/ir/static-callables.js +163 -0
- package/dist/ir/string-layout-reuse.d.ts +13 -0
- package/dist/ir/string-layout-reuse.js +39 -0
- package/dist/ir/string-length-reuse.d.ts +8 -0
- package/dist/ir/string-length-reuse.js +47 -0
- package/dist/ir/transfer.d.ts +78 -0
- package/dist/ir/transfer.js +270 -0
- package/dist/ir/type-query-results.d.ts +25 -0
- package/dist/ir/type-query-results.js +96 -0
- package/dist/ir/typed-property-access.d.ts +100 -0
- package/dist/ir/typed-property-access.js +161 -0
- package/dist/ir/verify.d.ts +19 -0
- package/dist/ir/verify.js +355 -0
- package/dist/plugins/apple/constructors.d.ts +112 -0
- package/dist/plugins/apple/constructors.js +217 -0
- package/dist/plugins/apple/host.d.ts +181 -0
- package/dist/plugins/apple/host.js +262 -0
- package/dist/plugins/apple/jsx.d.ts +2 -0
- package/dist/plugins/apple/jsx.js +293 -0
- package/dist/plugins/apple/members.d.ts +16 -0
- package/dist/plugins/apple/members.js +190 -0
- package/dist/plugins/apple/plugin.d.ts +2 -0
- package/dist/plugins/apple/plugin.js +156 -0
- package/dist/plugins/gea/component-classes.d.ts +25 -0
- package/dist/plugins/gea/component-classes.js +162 -0
- package/dist/plugins/gea/component-inline.d.ts +13 -0
- package/dist/plugins/gea/component-inline.js +532 -0
- package/dist/plugins/gea/constructors.d.ts +23 -0
- package/dist/plugins/gea/constructors.js +100 -0
- package/dist/plugins/gea/contract.d.ts +150 -0
- package/dist/plugins/gea/contract.js +195 -0
- package/dist/plugins/gea/element-ref.d.ts +31 -0
- package/dist/plugins/gea/element-ref.js +45 -0
- package/dist/plugins/gea/host.d.ts +520 -0
- package/dist/plugins/gea/host.js +762 -0
- package/dist/plugins/gea/lower.d.ts +6 -0
- package/dist/plugins/gea/lower.js +195 -0
- package/dist/plugins/gea/members.d.ts +22 -0
- package/dist/plugins/gea/members.js +221 -0
- package/dist/plugins/gea/plugin.d.ts +22 -0
- package/dist/plugins/gea/plugin.js +307 -0
- package/dist/plugins/gea/prelude.d.ts +78 -0
- package/dist/plugins/gea/prelude.js +153 -0
- package/dist/plugins/gea/producer.d.ts +5 -0
- package/dist/plugins/gea/producer.js +52 -0
- package/dist/plugins/gea/reactive-slots.d.ts +49 -0
- package/dist/plugins/gea/reactive-slots.js +578 -0
- package/dist/plugins/gea/render-bridge.d.ts +6 -0
- package/dist/plugins/gea/render-bridge.js +281 -0
- package/dist/plugins/gea/slots.d.ts +15 -0
- package/dist/plugins/gea/slots.js +36 -0
- package/dist/plugins/gea/template-analysis.d.ts +151 -0
- package/dist/plugins/gea/template-analysis.js +346 -0
- package/dist/plugins/gea/user-agent-styles.d.ts +9 -0
- package/dist/plugins/gea/user-agent-styles.js +94 -0
- package/dist/plugins/installed.d.ts +19 -0
- package/dist/plugins/installed.js +21 -0
- package/dist/plugins/load.d.ts +7 -0
- package/dist/plugins/load.js +207 -0
- package/dist/plugins/model.d.ts +735 -0
- package/dist/plugins/model.js +47 -0
- package/dist/plugins/webgl/host.d.ts +77 -0
- package/dist/plugins/webgl/host.js +162 -0
- package/dist/plugins/webgl/plugin.d.ts +40 -0
- package/dist/plugins/webgl/plugin.js +99 -0
- package/dist/preflight/obligations.d.ts +206 -0
- package/dist/preflight/obligations.js +36 -0
- package/dist/preflight/report.d.ts +20 -0
- package/dist/preflight/report.js +61 -0
- package/dist/preflight/run.d.ts +39 -0
- package/dist/preflight/run.js +403 -0
- package/dist/project-preparation.d.ts +33 -0
- package/dist/project-preparation.js +314 -0
- package/dist/projection/abi.d.ts +82 -0
- package/dist/projection/abi.js +349 -0
- package/dist/projection/apply-arguments.d.ts +12 -0
- package/dist/projection/apply-arguments.js +20 -0
- package/dist/projection/bindings.d.ts +250 -0
- package/dist/projection/bindings.js +340 -0
- package/dist/projection/callee.d.ts +196 -0
- package/dist/projection/callee.js +444 -0
- package/dist/projection/class-property-presence.d.ts +28 -0
- package/dist/projection/class-property-presence.js +58 -0
- package/dist/projection/class-prototype.d.ts +5 -0
- package/dist/projection/class-prototype.js +23 -0
- package/dist/projection/class-storage.d.ts +26 -0
- package/dist/projection/class-storage.js +236 -0
- package/dist/projection/classes.d.ts +283 -0
- package/dist/projection/classes.js +944 -0
- package/dist/projection/coercions.d.ts +20 -0
- package/dist/projection/coercions.js +33 -0
- package/dist/projection/dispatch.d.ts +167 -0
- package/dist/projection/dispatch.js +379 -0
- package/dist/projection/fields.d.ts +123 -0
- package/dist/projection/fields.js +383 -0
- package/dist/projection/instance-test.d.ts +78 -0
- package/dist/projection/instance-test.js +156 -0
- package/dist/projection/slots.d.ts +146 -0
- package/dist/projection/slots.js +663 -0
- package/dist/projection/synthesized-abi.d.ts +61 -0
- package/dist/projection/synthesized-abi.js +94 -0
- package/dist/representation/array-index.d.ts +14 -0
- package/dist/representation/array-index.js +17 -0
- package/dist/representation/callable-object.d.ts +3 -0
- package/dist/representation/callable-object.js +6 -0
- package/dist/representation/collections.d.ts +84 -0
- package/dist/representation/collections.js +139 -0
- package/dist/representation/derive.d.ts +159 -0
- package/dist/representation/derive.js +2546 -0
- package/dist/representation/difference.d.ts +30 -0
- package/dist/representation/difference.js +240 -0
- package/dist/representation/field-descriptor-policy.d.ts +19 -0
- package/dist/representation/field-descriptor-policy.js +39 -0
- package/dist/representation/function-constructor.d.ts +13 -0
- package/dist/representation/function-constructor.js +9 -0
- package/dist/representation/host-abi.d.ts +32 -0
- package/dist/representation/host-abi.js +97 -0
- package/dist/representation/host-templates.d.ts +67 -0
- package/dist/representation/host-templates.js +94 -0
- package/dist/representation/intersection.d.ts +84 -0
- package/dist/representation/intersection.js +149 -0
- package/dist/representation/literal-destination.d.ts +43 -0
- package/dist/representation/literal-destination.js +133 -0
- package/dist/representation/merge.d.ts +18 -0
- package/dist/representation/merge.js +83 -0
- package/dist/representation/model.d.ts +1160 -0
- package/dist/representation/model.js +1019 -0
- package/dist/representation/numeric-index.d.ts +13 -0
- package/dist/representation/numeric-index.js +29 -0
- package/dist/representation/object-shape.d.ts +109 -0
- package/dist/representation/object-shape.js +123 -0
- package/dist/representation/optional.d.ts +12 -0
- package/dist/representation/optional.js +87 -0
- package/dist/representation/plan.d.ts +60 -0
- package/dist/representation/plan.js +78 -0
- package/dist/representation/policies.d.ts +589 -0
- package/dist/representation/policies.js +107 -0
- package/dist/representation/primitive-domain.d.ts +1 -0
- package/dist/representation/primitive-domain.js +1 -0
- package/dist/representation/primitives.d.ts +44 -0
- package/dist/representation/primitives.js +78 -0
- package/dist/representation/publish.d.ts +49 -0
- package/dist/representation/publish.js +648 -0
- package/dist/representation/record-fields.d.ts +96 -0
- package/dist/representation/record-fields.js +116 -0
- package/dist/representation/template-object.d.ts +11 -0
- package/dist/representation/template-object.js +26 -0
- package/dist/representation/union.d.ts +30 -0
- package/dist/representation/union.js +324 -0
- package/dist/representation/value-records.d.ts +3 -0
- package/dist/representation/value-records.js +307 -0
- package/dist/representation/verify.d.ts +17 -0
- package/dist/representation/verify.js +221 -0
- package/dist/semantics/alias-this-field-declaration-transform.d.ts +4 -0
- package/dist/semantics/alias-this-field-declaration-transform.js +207 -0
- package/dist/semantics/ambient-type-realization-transform.d.ts +62 -0
- package/dist/semantics/ambient-type-realization-transform.js +168 -0
- package/dist/semantics/ambient.d.ts +24 -0
- package/dist/semantics/ambient.js +119 -0
- package/dist/semantics/borrowed-builtin-call-bind-source-transform.d.ts +4 -0
- package/dist/semantics/borrowed-builtin-call-bind-source-transform.js +341 -0
- package/dist/semantics/callable-origins.d.ts +46 -0
- package/dist/semantics/callable-origins.js +354 -0
- package/dist/semantics/class-alias.d.ts +7 -0
- package/dist/semantics/class-alias.js +37 -0
- package/dist/semantics/class-heritage.d.ts +34 -0
- package/dist/semantics/class-heritage.js +104 -0
- package/dist/semantics/commonjs-wrapper.d.ts +69 -0
- package/dist/semantics/commonjs-wrapper.js +231 -0
- package/dist/semantics/constructor-slot-subclasses.d.ts +28 -0
- package/dist/semantics/constructor-slot-subclasses.js +112 -0
- package/dist/semantics/declaration-overlay-transform.d.ts +35 -0
- package/dist/semantics/declaration-overlay-transform.js +2157 -0
- package/dist/semantics/define-property-source-transform.d.ts +4 -0
- package/dist/semantics/define-property-source-transform.js +437 -0
- package/dist/semantics/diagnostic-source-preparation.d.ts +24 -0
- package/dist/semantics/diagnostic-source-preparation.js +82 -0
- package/dist/semantics/documentation-ranges.d.ts +22 -0
- package/dist/semantics/documentation-ranges.js +36 -0
- package/dist/semantics/dynamic-fallback.d.ts +86 -0
- package/dist/semantics/dynamic-fallback.js +249 -0
- package/dist/semantics/frontend-timing.d.ts +6 -0
- package/dist/semantics/frontend-timing.js +35 -0
- package/dist/semantics/frontend.d.ts +504 -0
- package/dist/semantics/frontend.js +1157 -0
- package/dist/semantics/host-declaration-provenance.d.ts +11 -0
- package/dist/semantics/host-declaration-provenance.js +18 -0
- package/dist/semantics/host-methods.d.ts +24 -0
- package/dist/semantics/host-methods.js +74 -0
- package/dist/semantics/host-protocols.d.ts +429 -0
- package/dist/semantics/host-protocols.js +1501 -0
- package/dist/semantics/inherited-accessor.d.ts +7 -0
- package/dist/semantics/inherited-accessor.js +48 -0
- package/dist/semantics/interface-families.d.ts +70 -0
- package/dist/semantics/interface-families.js +180 -0
- package/dist/semantics/interface-implementors.d.ts +53 -0
- package/dist/semantics/interface-implementors.js +87 -0
- package/dist/semantics/jsdoc-namepath-transform.d.ts +4 -0
- package/dist/semantics/jsdoc-namepath-transform.js +85 -0
- package/dist/semantics/model/coverage.d.ts +68 -0
- package/dist/semantics/model/coverage.js +73 -0
- package/dist/semantics/model/edges.d.ts +103 -0
- package/dist/semantics/model/edges.js +20 -0
- package/dist/semantics/model/graph.d.ts +55 -0
- package/dist/semantics/model/graph.js +129 -0
- package/dist/semantics/model/operands.d.ts +159 -0
- package/dist/semantics/model/operands.js +26 -0
- package/dist/semantics/model/operations.d.ts +496 -0
- package/dist/semantics/model/operations.js +2 -0
- package/dist/semantics/model/primitive-domain.d.ts +26 -0
- package/dist/semantics/model/primitive-domain.js +38 -0
- package/dist/semantics/model/selected-signature.d.ts +261 -0
- package/dist/semantics/model/selected-signature.js +55 -0
- package/dist/semantics/model/structural-type-table.d.ts +93 -0
- package/dist/semantics/model/structural-type-table.js +237 -0
- package/dist/semantics/model/structural-types.d.ts +367 -0
- package/dist/semantics/model/structural-types.js +200 -0
- package/dist/semantics/module-resolution.d.ts +23 -0
- package/dist/semantics/module-resolution.js +227 -0
- package/dist/semantics/new-callee-class-tag-source-transform.d.ts +4 -0
- package/dist/semantics/new-callee-class-tag-source-transform.js +64 -0
- package/dist/semantics/node-project.d.ts +13 -0
- package/dist/semantics/node-project.js +107 -0
- package/dist/semantics/node-source-hooks.d.ts +1 -0
- package/dist/semantics/node-source-hooks.js +63 -0
- package/dist/semantics/normalize/absent-globals.d.ts +143 -0
- package/dist/semantics/normalize/absent-globals.js +191 -0
- package/dist/semantics/normalize/arguments-objects.d.ts +43 -0
- package/dist/semantics/normalize/arguments-objects.js +60 -0
- package/dist/semantics/normalize/asserted-arm-absence.d.ts +28 -0
- package/dist/semantics/normalize/asserted-arm-absence.js +61 -0
- package/dist/semantics/normalize/assignment-patterns.d.ts +70 -0
- package/dist/semantics/normalize/assignment-patterns.js +147 -0
- package/dist/semantics/normalize/bag-absence.d.ts +8 -0
- package/dist/semantics/normalize/bag-absence.js +42 -0
- package/dist/semantics/normalize/binding-fixpoint.d.ts +36 -0
- package/dist/semantics/normalize/binding-fixpoint.js +140 -0
- package/dist/semantics/normalize/callback-parameter-contracts.d.ts +16 -0
- package/dist/semantics/normalize/callback-parameter-contracts.js +91 -0
- package/dist/semantics/normalize/cells/agreement.d.ts +46 -0
- package/dist/semantics/normalize/cells/agreement.js +34 -0
- package/dist/semantics/normalize/cells/candidates.d.ts +17 -0
- package/dist/semantics/normalize/cells/candidates.js +35 -0
- package/dist/semantics/normalize/cells/facts.d.ts +19 -0
- package/dist/semantics/normalize/cells/facts.js +90 -0
- package/dist/semantics/normalize/cells/index.d.ts +10 -0
- package/dist/semantics/normalize/cells/index.js +6 -0
- package/dist/semantics/normalize/cells/model.d.ts +98 -0
- package/dist/semantics/normalize/cells/model.js +2 -0
- package/dist/semantics/normalize/cells/policies/bag.d.ts +44 -0
- package/dist/semantics/normalize/cells/policies/bag.js +114 -0
- package/dist/semantics/normalize/cells/policies/collection.d.ts +42 -0
- package/dist/semantics/normalize/cells/policies/collection.js +218 -0
- package/dist/semantics/normalize/cells/policies/field.d.ts +28 -0
- package/dist/semantics/normalize/cells/policies/field.js +40 -0
- package/dist/semantics/normalize/cells/policies/index.d.ts +49 -0
- package/dist/semantics/normalize/cells/policies/index.js +58 -0
- package/dist/semantics/normalize/cells/policies/local.d.ts +18 -0
- package/dist/semantics/normalize/cells/policies/local.js +37 -0
- package/dist/semantics/normalize/cells/policies/parameter.d.ts +28 -0
- package/dist/semantics/normalize/cells/policies/parameter.js +39 -0
- package/dist/semantics/normalize/cells/policies/return.d.ts +26 -0
- package/dist/semantics/normalize/cells/policies/return.js +45 -0
- package/dist/semantics/normalize/cells/policies/shared.d.ts +33 -0
- package/dist/semantics/normalize/cells/policies/shared.js +45 -0
- package/dist/semantics/normalize/cells/policy.d.ts +72 -0
- package/dist/semantics/normalize/cells/policy.js +18 -0
- package/dist/semantics/normalize/cells/registry.d.ts +14 -0
- package/dist/semantics/normalize/cells/registry.js +17 -0
- package/dist/semantics/normalize/census-refusal.d.ts +62 -0
- package/dist/semantics/normalize/census-refusal.js +27 -0
- package/dist/semantics/normalize/census.d.ts +109 -0
- package/dist/semantics/normalize/census.js +667 -0
- package/dist/semantics/normalize/collection-bindings.d.ts +278 -0
- package/dist/semantics/normalize/collection-bindings.js +677 -0
- package/dist/semantics/normalize/commonjs-module-record.d.ts +21 -0
- package/dist/semantics/normalize/commonjs-module-record.js +289 -0
- package/dist/semantics/normalize/commonjs-require.d.ts +13 -0
- package/dist/semantics/normalize/commonjs-require.js +1527 -0
- package/dist/semantics/normalize/contribution.d.ts +63 -0
- package/dist/semantics/normalize/contribution.js +172 -0
- package/dist/semantics/normalize/dead-typeof-guards.d.ts +64 -0
- package/dist/semantics/normalize/dead-typeof-guards.js +152 -0
- package/dist/semantics/normalize/deferred-intrinsic-protocols.d.ts +57 -0
- package/dist/semantics/normalize/deferred-intrinsic-protocols.js +109 -0
- package/dist/semantics/normalize/derived-expression-type.d.ts +1070 -0
- package/dist/semantics/normalize/derived-expression-type.js +3463 -0
- package/dist/semantics/normalize/evaluation-order.d.ts +16 -0
- package/dist/semantics/normalize/evaluation-order.js +37 -0
- package/dist/semantics/normalize/field-bindings.d.ts +167 -0
- package/dist/semantics/normalize/field-bindings.js +1125 -0
- package/dist/semantics/normalize/flow/array-element-continuation.d.ts +27 -0
- package/dist/semantics/normalize/flow/array-element-continuation.js +1452 -0
- package/dist/semantics/normalize/flow/callable-array-origins.d.ts +42 -0
- package/dist/semantics/normalize/flow/callable-array-origins.js +318 -0
- package/dist/semantics/normalize/flow/callable-completions.d.ts +45 -0
- package/dist/semantics/normalize/flow/callable-completions.js +82 -0
- package/dist/semantics/normalize/flow/callable-reach.d.ts +237 -0
- package/dist/semantics/normalize/flow/callable-reach.js +7174 -0
- package/dist/semantics/normalize/flow/class-family-member-read.d.ts +16 -0
- package/dist/semantics/normalize/flow/class-family-member-read.js +992 -0
- package/dist/semantics/normalize/flow/collection-value-continuation.d.ts +21 -0
- package/dist/semantics/normalize/flow/collection-value-continuation.js +192 -0
- package/dist/semantics/normalize/flow/component-solver.d.ts +199 -0
- package/dist/semantics/normalize/flow/component-solver.js +587 -0
- package/dist/semantics/normalize/flow/computed-key-set.d.ts +84 -0
- package/dist/semantics/normalize/flow/computed-key-set.js +660 -0
- package/dist/semantics/normalize/flow/export-importers.d.ts +24 -0
- package/dist/semantics/normalize/flow/export-importers.js +269 -0
- package/dist/semantics/normalize/flow/host-text-sink.d.ts +25 -0
- package/dist/semantics/normalize/flow/host-text-sink.js +87 -0
- package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.d.ts +84 -0
- package/dist/semantics/normalize/flow/intrinsic-array-callback-frames.js +180 -0
- package/dist/semantics/normalize/flow/intrinsic-data-definition.d.ts +35 -0
- package/dist/semantics/normalize/flow/intrinsic-data-definition.js +140 -0
- package/dist/semantics/normalize/flow/invocation-facts.d.ts +98 -0
- package/dist/semantics/normalize/flow/invocation-facts.js +257 -0
- package/dist/semantics/normalize/flow/member-call-forwarding.d.ts +122 -0
- package/dist/semantics/normalize/flow/member-call-forwarding.js +835 -0
- package/dist/semantics/normalize/flow/model.d.ts +357 -0
- package/dist/semantics/normalize/flow/model.js +177 -0
- package/dist/semantics/normalize/flow/native-collection-protocol.d.ts +24 -0
- package/dist/semantics/normalize/flow/native-collection-protocol.js +252 -0
- package/dist/semantics/normalize/flow/node-path-token.d.ts +3 -0
- package/dist/semantics/normalize/flow/node-path-token.js +53 -0
- package/dist/semantics/normalize/flow/object-binding-continuation.d.ts +11 -0
- package/dist/semantics/normalize/flow/object-binding-continuation.js +42 -0
- package/dist/semantics/normalize/flow/origin-authority.d.ts +56 -0
- package/dist/semantics/normalize/flow/origin-authority.js +2 -0
- package/dist/semantics/normalize/flow/owned-class-receivers.d.ts +35 -0
- package/dist/semantics/normalize/flow/owned-class-receivers.js +191 -0
- package/dist/semantics/normalize/flow/parameter-values.d.ts +27 -0
- package/dist/semantics/normalize/flow/parameter-values.js +251 -0
- package/dist/semantics/normalize/flow/proof-hypotheses.d.ts +66 -0
- package/dist/semantics/normalize/flow/proof-hypotheses.js +162 -0
- package/dist/semantics/normalize/flow/record-alias-closure.d.ts +27 -0
- package/dist/semantics/normalize/flow/record-alias-closure.js +298 -0
- package/dist/semantics/normalize/flow/seeded-origins.d.ts +43 -0
- package/dist/semantics/normalize/flow/seeded-origins.js +54 -0
- package/dist/semantics/normalize/flow/source-class-data.d.ts +132 -0
- package/dist/semantics/normalize/flow/source-class-data.js +838 -0
- package/dist/semantics/normalize/flow/source-class-instanceof.d.ts +13 -0
- package/dist/semantics/normalize/flow/source-class-instanceof.js +37 -0
- package/dist/semantics/normalize/flow/source-class-static-data.d.ts +16 -0
- package/dist/semantics/normalize/flow/source-class-static-data.js +47 -0
- package/dist/semantics/normalize/flow/source-construction-frames.d.ts +12 -0
- package/dist/semantics/normalize/flow/source-construction-frames.js +118 -0
- package/dist/semantics/normalize/flow/source-invocation-frame-layout.d.ts +34 -0
- package/dist/semantics/normalize/flow/source-invocation-frame-layout.js +78 -0
- package/dist/semantics/normalize/flow/source-invocation-receiver.d.ts +37 -0
- package/dist/semantics/normalize/flow/source-invocation-receiver.js +95 -0
- package/dist/semantics/normalize/flow/source-prototype-method-identity.d.ts +23 -0
- package/dist/semantics/normalize/flow/source-prototype-method-identity.js +81 -0
- package/dist/semantics/normalize/flow/source-record-data.d.ts +29 -0
- package/dist/semantics/normalize/flow/source-record-data.js +626 -0
- package/dist/semantics/normalize/flow/source-value-session.d.ts +77 -0
- package/dist/semantics/normalize/flow/source-value-session.js +3089 -0
- package/dist/semantics/normalize/flow/targets.d.ts +118 -0
- package/dist/semantics/normalize/flow/targets.js +405 -0
- package/dist/semantics/normalize/flow/value-flow.d.ts +36 -0
- package/dist/semantics/normalize/flow/value-flow.js +823 -0
- package/dist/semantics/normalize/flow/value-provenance.d.ts +31 -0
- package/dist/semantics/normalize/flow/value-provenance.js +112 -0
- package/dist/semantics/normalize/gating.d.ts +51 -0
- package/dist/semantics/normalize/gating.js +560 -0
- package/dist/semantics/normalize/generic-function-choice.d.ts +31 -0
- package/dist/semantics/normalize/generic-function-choice.js +115 -0
- package/dist/semantics/normalize/global-host-mutations.d.ts +51 -0
- package/dist/semantics/normalize/global-host-mutations.js +5989 -0
- package/dist/semantics/normalize/host-effect-contracts.d.ts +77 -0
- package/dist/semantics/normalize/host-effect-contracts.js +143 -0
- package/dist/semantics/normalize/host-mutation-computed-keys.d.ts +38 -0
- package/dist/semantics/normalize/host-mutation-computed-keys.js +26 -0
- package/dist/semantics/normalize/host-mutation-key-reader.d.ts +66 -0
- package/dist/semantics/normalize/host-mutation-key-reader.js +192 -0
- package/dist/semantics/normalize/host-mutation-keys.d.ts +114 -0
- package/dist/semantics/normalize/host-mutation-keys.js +183 -0
- package/dist/semantics/normalize/identities.d.ts +172 -0
- package/dist/semantics/normalize/identities.js +426 -0
- package/dist/semantics/normalize/implicit-arguments-tuple.d.ts +97 -0
- package/dist/semantics/normalize/implicit-arguments-tuple.js +197 -0
- package/dist/semantics/normalize/implicit-arguments.d.ts +11 -0
- package/dist/semantics/normalize/implicit-arguments.js +39 -0
- package/dist/semantics/normalize/instantiation.d.ts +73 -0
- package/dist/semantics/normalize/instantiation.js +399 -0
- package/dist/semantics/normalize/intrinsic-property-call.d.ts +18 -0
- package/dist/semantics/normalize/intrinsic-property-call.js +69 -0
- package/dist/semantics/normalize/intrinsic-prototype.d.ts +41 -0
- package/dist/semantics/normalize/intrinsic-prototype.js +87 -0
- package/dist/semantics/normalize/intrinsic-static-member.d.ts +14 -0
- package/dist/semantics/normalize/intrinsic-static-member.js +23 -0
- package/dist/semantics/normalize/jsdoc-type-names.d.ts +32 -0
- package/dist/semantics/normalize/jsdoc-type-names.js +512 -0
- package/dist/semantics/normalize/keyof.d.ts +32 -0
- package/dist/semantics/normalize/keyof.js +110 -0
- package/dist/semantics/normalize/local-bindings.d.ts +176 -0
- package/dist/semantics/normalize/local-bindings.js +1826 -0
- package/dist/semantics/normalize/logical-result-type.d.ts +16 -0
- package/dist/semantics/normalize/logical-result-type.js +102 -0
- package/dist/semantics/normalize/namespace-paths.d.ts +57 -0
- package/dist/semantics/normalize/namespace-paths.js +108 -0
- package/dist/semantics/normalize/normalize.d.ts +57 -0
- package/dist/semantics/normalize/normalize.js +68 -0
- package/dist/semantics/normalize/object-bag-bindings.d.ts +305 -0
- package/dist/semantics/normalize/object-bag-bindings.js +1290 -0
- package/dist/semantics/normalize/omitted-stated-parameter.d.ts +53 -0
- package/dist/semantics/normalize/omitted-stated-parameter.js +59 -0
- package/dist/semantics/normalize/open-type-form.d.ts +10 -0
- package/dist/semantics/normalize/open-type-form.js +32 -0
- package/dist/semantics/normalize/parameter-bindings.d.ts +361 -0
- package/dist/semantics/normalize/parameter-bindings.js +3339 -0
- package/dist/semantics/normalize/parameter-slot.d.ts +264 -0
- package/dist/semantics/normalize/parameter-slot.js +491 -0
- package/dist/semantics/normalize/physical-overload-result.d.ts +77 -0
- package/dist/semantics/normalize/physical-overload-result.js +99 -0
- package/dist/semantics/normalize/primitive-property-absence.d.ts +12 -0
- package/dist/semantics/normalize/primitive-property-absence.js +60 -0
- package/dist/semantics/normalize/producer-context.d.ts +376 -0
- package/dist/semantics/normalize/producer-context.js +1 -0
- package/dist/semantics/normalize/producers/allocations.d.ts +3 -0
- package/dist/semantics/normalize/producers/allocations.js +863 -0
- package/dist/semantics/normalize/producers/binding-kind.d.ts +37 -0
- package/dist/semantics/normalize/producers/binding-kind.js +36 -0
- package/dist/semantics/normalize/producers/bindings.d.ts +85 -0
- package/dist/semantics/normalize/producers/bindings.js +710 -0
- package/dist/semantics/normalize/producers/boundary.d.ts +34 -0
- package/dist/semantics/normalize/producers/boundary.js +123 -0
- package/dist/semantics/normalize/producers/class-lifecycle.d.ts +3 -0
- package/dist/semantics/normalize/producers/class-lifecycle.js +902 -0
- package/dist/semantics/normalize/producers/computations.d.ts +3 -0
- package/dist/semantics/normalize/producers/computations.js +613 -0
- package/dist/semantics/normalize/producers/control-loops.d.ts +30 -0
- package/dist/semantics/normalize/producers/control-loops.js +91 -0
- package/dist/semantics/normalize/producers/control.d.ts +30 -0
- package/dist/semantics/normalize/producers/control.js +923 -0
- package/dist/semantics/normalize/producers/declaration-lifecycle.d.ts +3 -0
- package/dist/semantics/normalize/producers/declaration-lifecycle.js +390 -0
- package/dist/semantics/normalize/producers/destructuring.d.ts +45 -0
- package/dist/semantics/normalize/producers/destructuring.js +1180 -0
- package/dist/semantics/normalize/producers/dynamic-language.d.ts +3 -0
- package/dist/semantics/normalize/producers/dynamic-language.js +70 -0
- package/dist/semantics/normalize/producers/erasure.d.ts +51 -0
- package/dist/semantics/normalize/producers/erasure.js +90 -0
- package/dist/semantics/normalize/producers/installed.d.ts +3 -0
- package/dist/semantics/normalize/producers/installed.js +55 -0
- package/dist/semantics/normalize/producers/invocations.d.ts +35 -0
- package/dist/semantics/normalize/producers/invocations.js +1796 -0
- package/dist/semantics/normalize/producers/iteration-yield.d.ts +59 -0
- package/dist/semantics/normalize/producers/iteration-yield.js +235 -0
- package/dist/semantics/normalize/producers/jsx.d.ts +3 -0
- package/dist/semantics/normalize/producers/jsx.js +360 -0
- package/dist/semantics/normalize/producers/mint.d.ts +39 -0
- package/dist/semantics/normalize/producers/mint.js +44 -0
- package/dist/semantics/normalize/producers/nullish.d.ts +16 -0
- package/dist/semantics/normalize/producers/nullish.js +27 -0
- package/dist/semantics/normalize/producers/object-assignment.d.ts +8 -0
- package/dist/semantics/normalize/producers/object-assignment.js +204 -0
- package/dist/semantics/normalize/producers/object-tag.d.ts +9 -0
- package/dist/semantics/normalize/producers/object-tag.js +119 -0
- package/dist/semantics/normalize/producers/optional-chain.d.ts +44 -0
- package/dist/semantics/normalize/producers/optional-chain.js +75 -0
- package/dist/semantics/normalize/producers/properties.d.ts +21 -0
- package/dist/semantics/normalize/producers/properties.js +1053 -0
- package/dist/semantics/normalize/producers/protocol.d.ts +67 -0
- package/dist/semantics/normalize/producers/protocol.js +695 -0
- package/dist/semantics/normalize/producers/references.d.ts +53 -0
- package/dist/semantics/normalize/producers/references.js +1027 -0
- package/dist/semantics/normalize/producers/shared.d.ts +561 -0
- package/dist/semantics/normalize/producers/shared.js +1683 -0
- package/dist/semantics/normalize/producers/spread-arguments.d.ts +72 -0
- package/dist/semantics/normalize/producers/spread-arguments.js +375 -0
- package/dist/semantics/normalize/producers/tagged-template.d.ts +5 -0
- package/dist/semantics/normalize/producers/tagged-template.js +307 -0
- package/dist/semantics/normalize/producers/tuple-spread.d.ts +189 -0
- package/dist/semantics/normalize/producers/tuple-spread.js +279 -0
- package/dist/semantics/normalize/property-key-domain.d.ts +36 -0
- package/dist/semantics/normalize/property-key-domain.js +150 -0
- package/dist/semantics/normalize/reachability.d.ts +189 -0
- package/dist/semantics/normalize/reachability.js +1057 -0
- package/dist/semantics/normalize/reassigned-bindings.d.ts +13 -0
- package/dist/semantics/normalize/reassigned-bindings.js +41 -0
- package/dist/semantics/normalize/record-storage-families.d.ts +11 -0
- package/dist/semantics/normalize/record-storage-families.js +109 -0
- package/dist/semantics/normalize/return-bindings.d.ts +260 -0
- package/dist/semantics/normalize/return-bindings.js +1311 -0
- package/dist/semantics/normalize/return-paths.d.ts +2 -0
- package/dist/semantics/normalize/return-paths.js +28 -0
- package/dist/semantics/normalize/script-global-redefinition.d.ts +44 -0
- package/dist/semantics/normalize/script-global-redefinition.js +75 -0
- package/dist/semantics/normalize/specialization.d.ts +201 -0
- package/dist/semantics/normalize/specialization.js +1824 -0
- package/dist/semantics/normalize/structural-array-element.d.ts +176 -0
- package/dist/semantics/normalize/structural-array-element.js +700 -0
- package/dist/semantics/normalize/structural-array-read.d.ts +13 -0
- package/dist/semantics/normalize/structural-array-read.js +124 -0
- package/dist/semantics/normalize/structural-callable.d.ts +12 -0
- package/dist/semantics/normalize/structural-callable.js +82 -0
- package/dist/semantics/normalize/structural-creation-order.d.ts +32 -0
- package/dist/semantics/normalize/structural-creation-order.js +111 -0
- package/dist/semantics/normalize/structural-declarations.d.ts +395 -0
- package/dist/semantics/normalize/structural-declarations.js +968 -0
- package/dist/semantics/normalize/structural-declared-body.d.ts +25 -0
- package/dist/semantics/normalize/structural-declared-body.js +147 -0
- package/dist/semantics/normalize/structural-generics.d.ts +56 -0
- package/dist/semantics/normalize/structural-generics.js +120 -0
- package/dist/semantics/normalize/structural-indexed-access.d.ts +11 -0
- package/dist/semantics/normalize/structural-indexed-access.js +126 -0
- package/dist/semantics/normalize/structural-instantiated-member.d.ts +64 -0
- package/dist/semantics/normalize/structural-instantiated-member.js +407 -0
- package/dist/semantics/normalize/structural-joins.d.ts +44 -0
- package/dist/semantics/normalize/structural-joins.js +143 -0
- package/dist/semantics/normalize/structural-layout-relevance.d.ts +29 -0
- package/dist/semantics/normalize/structural-layout-relevance.js +391 -0
- package/dist/semantics/normalize/structural-layout-type.d.ts +11 -0
- package/dist/semantics/normalize/structural-layout-type.js +1468 -0
- package/dist/semantics/normalize/structural-leaves.d.ts +49 -0
- package/dist/semantics/normalize/structural-leaves.js +125 -0
- package/dist/semantics/normalize/structural-local-union.d.ts +13 -0
- package/dist/semantics/normalize/structural-local-union.js +133 -0
- package/dist/semantics/normalize/structural-members.d.ts +26 -0
- package/dist/semantics/normalize/structural-members.js +84 -0
- package/dist/semantics/normalize/structural-mutable-method.d.ts +15 -0
- package/dist/semantics/normalize/structural-mutable-method.js +109 -0
- package/dist/semantics/normalize/structural-parts.d.ts +131 -0
- package/dist/semantics/normalize/structural-parts.js +737 -0
- package/dist/semantics/normalize/structural-receiver.d.ts +66 -0
- package/dist/semantics/normalize/structural-receiver.js +551 -0
- package/dist/semantics/normalize/structural-rules.d.ts +112 -0
- package/dist/semantics/normalize/structural-rules.js +93 -0
- package/dist/semantics/normalize/structural-self-reference.d.ts +150 -0
- package/dist/semantics/normalize/structural-self-reference.js +494 -0
- package/dist/semantics/normalize/structural.d.ts +202 -0
- package/dist/semantics/normalize/structural.js +4218 -0
- package/dist/semantics/normalize/unreduced-type-form.d.ts +41 -0
- package/dist/semantics/normalize/unreduced-type-form.js +53 -0
- package/dist/semantics/normalize/unresolvable-names.d.ts +56 -0
- package/dist/semantics/normalize/unresolvable-names.js +140 -0
- package/dist/semantics/package-sources.d.ts +16 -0
- package/dist/semantics/package-sources.js +365 -0
- package/dist/semantics/program.d.ts +151 -0
- package/dist/semantics/program.js +667 -0
- package/dist/semantics/prototype-install-source-transform.d.ts +4 -0
- package/dist/semantics/prototype-install-source-transform.js +341 -0
- package/dist/semantics/prototype-object-class-source-transform.d.ts +4 -0
- package/dist/semantics/prototype-object-class-source-transform.js +525 -0
- package/dist/semantics/prototype-reparenting.d.ts +50 -0
- package/dist/semantics/prototype-reparenting.js +317 -0
- package/dist/semantics/stable-checker.d.ts +10 -0
- package/dist/semantics/stable-checker.js +148 -0
- package/dist/semantics/subclass-member-overlay-transform.d.ts +35 -0
- package/dist/semantics/subclass-member-overlay-transform.js +1418 -0
- package/dist/semantics/symbol-keyed-expando-source-transform.d.ts +4 -0
- package/dist/semantics/symbol-keyed-expando-source-transform.js +66 -0
- package/dist/semantics/this-constructor-source-transform.d.ts +4 -0
- package/dist/semantics/this-constructor-source-transform.js +122 -0
- package/dist/semantics/uninstantiable-classes.d.ts +22 -0
- package/dist/semantics/uninstantiable-classes.js +75 -0
- package/dist/targets/cpp/balanced-units.d.ts +3 -0
- package/dist/targets/cpp/balanced-units.js +58 -0
- package/dist/targets/cpp/borrowed-call-entry.d.ts +30 -0
- package/dist/targets/cpp/borrowed-call-entry.js +68 -0
- package/dist/targets/cpp/captures.d.ts +68 -0
- package/dist/targets/cpp/captures.js +269 -0
- package/dist/targets/cpp/class-layout.d.ts +313 -0
- package/dist/targets/cpp/class-layout.js +483 -0
- package/dist/targets/cpp/class-properties/computed-method-value.d.ts +25 -0
- package/dist/targets/cpp/class-properties/computed-method-value.js +22 -0
- package/dist/targets/cpp/class-properties/emit-class-properties.d.ts +216 -0
- package/dist/targets/cpp/class-properties/emit-class-properties.js +917 -0
- package/dist/targets/cpp/class-properties/native-prototype.d.ts +11 -0
- package/dist/targets/cpp/class-properties/native-prototype.js +101 -0
- package/dist/targets/cpp/class-ref-transport.d.ts +12 -0
- package/dist/targets/cpp/class-ref-transport.js +32 -0
- package/dist/targets/cpp/conversions.d.ts +3 -0
- package/dist/targets/cpp/conversions.js +2027 -0
- package/dist/targets/cpp/deferral-safety.d.ts +82 -0
- package/dist/targets/cpp/deferral-safety.js +86 -0
- package/dist/targets/cpp/direct-call-receivers.d.ts +37 -0
- package/dist/targets/cpp/direct-call-receivers.js +79 -0
- package/dist/targets/cpp/document.d.ts +74 -0
- package/dist/targets/cpp/document.js +106 -0
- package/dist/targets/cpp/emit-allocation.d.ts +60 -0
- package/dist/targets/cpp/emit-allocation.js +573 -0
- package/dist/targets/cpp/emit-arrays.d.ts +119 -0
- package/dist/targets/cpp/emit-arrays.js +1047 -0
- package/dist/targets/cpp/emit-binding-reference.d.ts +17 -0
- package/dist/targets/cpp/emit-binding-reference.js +120 -0
- package/dist/targets/cpp/emit-bindings.d.ts +158 -0
- package/dist/targets/cpp/emit-bindings.js +769 -0
- package/dist/targets/cpp/emit-buffers.d.ts +156 -0
- package/dist/targets/cpp/emit-buffers.js +573 -0
- package/dist/targets/cpp/emit-callable.d.ts +230 -0
- package/dist/targets/cpp/emit-callable.js +2154 -0
- package/dist/targets/cpp/emit-carrier-members.d.ts +406 -0
- package/dist/targets/cpp/emit-carrier-members.js +1224 -0
- package/dist/targets/cpp/emit-coercion.d.ts +26 -0
- package/dist/targets/cpp/emit-coercion.js +39 -0
- package/dist/targets/cpp/emit-context.d.ts +1882 -0
- package/dist/targets/cpp/emit-context.js +904 -0
- package/dist/targets/cpp/emit-dynamic-properties.d.ts +174 -0
- package/dist/targets/cpp/emit-dynamic-properties.js +1249 -0
- package/dist/targets/cpp/emit-equality.d.ts +39 -0
- package/dist/targets/cpp/emit-equality.js +472 -0
- package/dist/targets/cpp/emit-exceptions.d.ts +104 -0
- package/dist/targets/cpp/emit-exceptions.js +513 -0
- package/dist/targets/cpp/emit-field-owner.d.ts +4 -0
- package/dist/targets/cpp/emit-field-owner.js +27 -0
- package/dist/targets/cpp/emit-in.d.ts +31 -0
- package/dist/targets/cpp/emit-in.js +426 -0
- package/dist/targets/cpp/emit-instanceof.d.ts +19 -0
- package/dist/targets/cpp/emit-instanceof.js +601 -0
- package/dist/targets/cpp/emit-integers.d.ts +68 -0
- package/dist/targets/cpp/emit-integers.js +184 -0
- package/dist/targets/cpp/emit-iterator.d.ts +100 -0
- package/dist/targets/cpp/emit-iterator.js +1137 -0
- package/dist/targets/cpp/emit-json.d.ts +73 -0
- package/dist/targets/cpp/emit-json.js +823 -0
- package/dist/targets/cpp/emit-jsx.d.ts +74 -0
- package/dist/targets/cpp/emit-jsx.js +806 -0
- package/dist/targets/cpp/emit-mixed-binary.d.ts +51 -0
- package/dist/targets/cpp/emit-mixed-binary.js +60 -0
- package/dist/targets/cpp/emit-namespaces.d.ts +101 -0
- package/dist/targets/cpp/emit-namespaces.js +133 -0
- package/dist/targets/cpp/emit-narrowing.d.ts +738 -0
- package/dist/targets/cpp/emit-narrowing.js +3967 -0
- package/dist/targets/cpp/emit-native-equality.d.ts +3 -0
- package/dist/targets/cpp/emit-native-equality.js +14 -0
- package/dist/targets/cpp/emit-native-selection.d.ts +5 -0
- package/dist/targets/cpp/emit-native-selection.js +37 -0
- package/dist/targets/cpp/emit-object-tag.d.ts +4 -0
- package/dist/targets/cpp/emit-object-tag.js +108 -0
- package/dist/targets/cpp/emit-owned-record.d.ts +2 -0
- package/dist/targets/cpp/emit-owned-record.js +15 -0
- package/dist/targets/cpp/emit-presence.d.ts +78 -0
- package/dist/targets/cpp/emit-presence.js +376 -0
- package/dist/targets/cpp/emit-properties.d.ts +105 -0
- package/dist/targets/cpp/emit-properties.js +1640 -0
- package/dist/targets/cpp/emit-record-view.d.ts +20 -0
- package/dist/targets/cpp/emit-record-view.js +354 -0
- package/dist/targets/cpp/emit-return.d.ts +5 -0
- package/dist/targets/cpp/emit-return.js +237 -0
- package/dist/targets/cpp/emit-sum-widening.d.ts +10 -0
- package/dist/targets/cpp/emit-sum-widening.js +69 -0
- package/dist/targets/cpp/emit-tonumber.d.ts +38 -0
- package/dist/targets/cpp/emit-tonumber.js +177 -0
- package/dist/targets/cpp/emit-tostring.d.ts +92 -0
- package/dist/targets/cpp/emit-tostring.js +556 -0
- package/dist/targets/cpp/emit-typeof.d.ts +49 -0
- package/dist/targets/cpp/emit-typeof.js +317 -0
- package/dist/targets/cpp/emit-union-properties.d.ts +181 -0
- package/dist/targets/cpp/emit-union-properties.js +1281 -0
- package/dist/targets/cpp/emit.d.ts +45 -0
- package/dist/targets/cpp/emit.js +2225 -0
- package/dist/targets/cpp/error-types.d.ts +4 -0
- package/dist/targets/cpp/error-types.js +11 -0
- package/dist/targets/cpp/function-source-reads.d.ts +72 -0
- package/dist/targets/cpp/function-source-reads.js +148 -0
- package/dist/targets/cpp/host/atomics.d.ts +25 -0
- package/dist/targets/cpp/host/atomics.js +63 -0
- package/dist/targets/cpp/host/core-globals.d.ts +108 -0
- package/dist/targets/cpp/host/core-globals.js +158 -0
- package/dist/targets/cpp/host/dynamic-argument-members.d.ts +42 -0
- package/dist/targets/cpp/host/dynamic-argument-members.js +61 -0
- package/dist/targets/cpp/host/emit-host-arity.d.ts +139 -0
- package/dist/targets/cpp/host/emit-host-arity.js +232 -0
- package/dist/targets/cpp/host/emit-host-invoke.d.ts +91 -0
- package/dist/targets/cpp/host/emit-host-invoke.js +1105 -0
- package/dist/targets/cpp/host/emit-host-object.d.ts +55 -0
- package/dist/targets/cpp/host/emit-host-object.js +2206 -0
- package/dist/targets/cpp/host/emit-host-properties.d.ts +69 -0
- package/dist/targets/cpp/host/emit-host-properties.js +533 -0
- package/dist/targets/cpp/host/emit-host-reflect.d.ts +4 -0
- package/dist/targets/cpp/host/emit-host-reflect.js +180 -0
- package/dist/targets/cpp/host/emit-host-value.d.ts +120 -0
- package/dist/targets/cpp/host/emit-host-value.js +392 -0
- package/dist/targets/cpp/host/host-members.d.ts +505 -0
- package/dist/targets/cpp/host/host-members.js +819 -0
- package/dist/targets/cpp/host/host-method-aliases.d.ts +30 -0
- package/dist/targets/cpp/host/host-method-aliases.js +76 -0
- package/dist/targets/cpp/host/native-protocols.d.ts +47 -0
- package/dist/targets/cpp/host/native-protocols.js +183 -0
- package/dist/targets/cpp/host/object-protocol.d.ts +351 -0
- package/dist/targets/cpp/host/object-protocol.js +671 -0
- package/dist/targets/cpp/host-namespace-reads.d.ts +83 -0
- package/dist/targets/cpp/host-namespace-reads.js +113 -0
- package/dist/targets/cpp/manifest/capabilities.d.ts +39 -0
- package/dist/targets/cpp/manifest/capabilities.js +1484 -0
- package/dist/targets/cpp/manifest.d.ts +23 -0
- package/dist/targets/cpp/manifest.js +113 -0
- package/dist/targets/cpp/native-error-base.d.ts +38 -0
- package/dist/targets/cpp/native-error-base.js +74 -0
- package/dist/targets/cpp/native-narrowing-transport.d.ts +12 -0
- package/dist/targets/cpp/native-narrowing-transport.js +151 -0
- package/dist/targets/cpp/native-selection-helpers.d.ts +11 -0
- package/dist/targets/cpp/native-selection-helpers.js +46 -0
- package/dist/targets/cpp/native-symbol-keys.d.ts +8 -0
- package/dist/targets/cpp/native-symbol-keys.js +34 -0
- package/dist/targets/cpp/ownership.d.ts +43 -0
- package/dist/targets/cpp/ownership.js +38 -0
- package/dist/targets/cpp/owning-conversion-input.d.ts +14 -0
- package/dist/targets/cpp/owning-conversion-input.js +12 -0
- package/dist/targets/cpp/property-read-claims.d.ts +62 -0
- package/dist/targets/cpp/property-read-claims.js +23 -0
- package/dist/targets/cpp/property-store-claims.d.ts +62 -0
- package/dist/targets/cpp/property-store-claims.js +26 -0
- package/dist/targets/cpp/prototype/emit-prototype-array.d.ts +111 -0
- package/dist/targets/cpp/prototype/emit-prototype-array.js +602 -0
- package/dist/targets/cpp/prototype/emit-prototype-date.d.ts +133 -0
- package/dist/targets/cpp/prototype/emit-prototype-date.js +515 -0
- package/dist/targets/cpp/prototype/emit-prototype-error.d.ts +13 -0
- package/dist/targets/cpp/prototype/emit-prototype-error.js +54 -0
- package/dist/targets/cpp/prototype/emit-prototype-invoke.d.ts +34 -0
- package/dist/targets/cpp/prototype/emit-prototype-invoke.js +1003 -0
- package/dist/targets/cpp/prototype/emit-prototype-iterator.d.ts +47 -0
- package/dist/targets/cpp/prototype/emit-prototype-iterator.js +250 -0
- package/dist/targets/cpp/prototype/emit-prototype-promise.d.ts +46 -0
- package/dist/targets/cpp/prototype/emit-prototype-promise.js +143 -0
- package/dist/targets/cpp/prototype/emit-prototype-regexp.d.ts +335 -0
- package/dist/targets/cpp/prototype/emit-prototype-regexp.js +853 -0
- package/dist/targets/cpp/prototype/emit-prototype-string.d.ts +42 -0
- package/dist/targets/cpp/prototype/emit-prototype-string.js +252 -0
- package/dist/targets/cpp/prototype/prototype-method-reads.d.ts +25 -0
- package/dist/targets/cpp/prototype/prototype-method-reads.js +182 -0
- package/dist/targets/cpp/reactive-dependencies.d.ts +140 -0
- package/dist/targets/cpp/reactive-dependencies.js +432 -0
- package/dist/targets/cpp/reactive-origins.d.ts +44 -0
- package/dist/targets/cpp/reactive-origins.js +82 -0
- package/dist/targets/cpp/records.d.ts +277 -0
- package/dist/targets/cpp/records.js +2427 -0
- package/dist/targets/cpp/recursive-containers.d.ts +43 -0
- package/dist/targets/cpp/recursive-containers.js +144 -0
- package/dist/targets/cpp/regexp-types.d.ts +56 -0
- package/dist/targets/cpp/regexp-types.js +59 -0
- package/dist/targets/cpp/substrate.d.ts +125 -0
- package/dist/targets/cpp/substrate.js +12 -0
- package/dist/targets/cpp/translation-unit.d.ts +219 -0
- package/dist/targets/cpp/translation-unit.js +2063 -0
- package/dist/targets/cpp/types.d.ts +280 -0
- package/dist/targets/cpp/types.js +1135 -0
- package/dist/targets/cpp/virtual-methods.d.ts +95 -0
- package/dist/targets/cpp/virtual-methods.js +264 -0
- package/package.json +95 -0
- package/src/targets/cpp/runtime/gea_dynamic_proxy.h +824 -0
- package/src/targets/cpp/runtime/gea_eval.h +1376 -0
- package/src/targets/cpp/runtime/gea_native_class_prototype.h +44 -0
- package/src/targets/cpp/runtime/gea_runtime.h +29222 -0
- package/src/targets/cpp/runtime/gea_runtime_builtins.cpp +55 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import { spawn } from 'node:child_process';
|
|
5
|
+
import { discoverNodeProject } from './semantics/node-project.js';
|
|
6
|
+
import { ensureDependencies } from './project-preparation.js';
|
|
7
|
+
export const isNodeProjectArguments = (argv) => {
|
|
8
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
9
|
+
const argument = argv[index];
|
|
10
|
+
if (argument === '--translation-units') {
|
|
11
|
+
const value = argv[index + 1];
|
|
12
|
+
if (value !== 'single' && value !== 'per-file' && value !== 'balanced')
|
|
13
|
+
return false;
|
|
14
|
+
index += 1;
|
|
15
|
+
}
|
|
16
|
+
else if (!['--dynamic-fallback', '--debug', '--emit-only', '--verbose'].includes(argument ?? '')) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return true;
|
|
21
|
+
};
|
|
22
|
+
export const runNodeProject = async (argv) => {
|
|
23
|
+
if (!isNodeProjectArguments(argv))
|
|
24
|
+
throw new Error(`Unknown or invalid project option: ${argv.join(' ')}`);
|
|
25
|
+
let directory = process.cwd();
|
|
26
|
+
while (!existsSync(join(directory, 'package.json'))) {
|
|
27
|
+
const parent = dirname(directory);
|
|
28
|
+
if (parent === directory)
|
|
29
|
+
throw new Error('No package.json found. Run geatsc inside a Node project.');
|
|
30
|
+
directory = parent;
|
|
31
|
+
}
|
|
32
|
+
ensureDependencies(directory);
|
|
33
|
+
const project = discoverNodeProject(directory);
|
|
34
|
+
const packageRequire = createRequire(import.meta.url);
|
|
35
|
+
const driver = packageRequire.resolve('@geastack/node-compat/build');
|
|
36
|
+
for (const entry of project.entries) {
|
|
37
|
+
if (!/^[\w.-]+$/.test(entry.name) || entry.name === '.' || entry.name === '..')
|
|
38
|
+
throw new Error(`Invalid executable name: ${entry.name}`);
|
|
39
|
+
const dist = join(project.root, 'dist');
|
|
40
|
+
const out = join(dist, '.geatsc', entry.name);
|
|
41
|
+
mkdirSync(out, { recursive: true });
|
|
42
|
+
const executable = join(dist, process.platform === 'win32' ? `${entry.name}.exe` : entry.name);
|
|
43
|
+
console.error(`[geatsc] ${entry.file} -> ${executable}`);
|
|
44
|
+
const args = [driver, entry.file, '--out', out, '--exe', executable, '--report', join(out, 'report.json'), ...argv];
|
|
45
|
+
if (project.projectFile)
|
|
46
|
+
args.push('--source-project', project.projectFile);
|
|
47
|
+
const status = await new Promise((resolveStatus, reject) => {
|
|
48
|
+
const child = spawn(process.execPath, args, {
|
|
49
|
+
cwd: project.root,
|
|
50
|
+
stdio: 'inherit',
|
|
51
|
+
env: process.env
|
|
52
|
+
});
|
|
53
|
+
child.on('error', reject);
|
|
54
|
+
child.on('exit', (code) => resolveStatus(code ?? 1));
|
|
55
|
+
});
|
|
56
|
+
if (status !== 0)
|
|
57
|
+
return status;
|
|
58
|
+
}
|
|
59
|
+
return 0;
|
|
60
|
+
};
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { isNodeProjectArguments, runNodeProject } from './cli-project.js';
|
|
3
|
+
import { compile } from './compiler.js';
|
|
4
|
+
import { runEmit } from './cli-emit.js';
|
|
5
|
+
import { runAnalyze } from './cli-analyze.js';
|
|
6
|
+
import { runCoverage } from './cli-coverage.js';
|
|
7
|
+
import { findProjectFile } from './semantics/program.js';
|
|
8
|
+
import { preflightReportLines } from './preflight/report.js';
|
|
9
|
+
import { structuralShapeKey } from './semantics/model/structural-types.js';
|
|
10
|
+
import { closeSync, openSync, writeSync } from 'node:fs';
|
|
11
|
+
/**
|
|
12
|
+
* `--project <tsconfig.json>` names the project explicitly; `--no-project`
|
|
13
|
+
* compiles the roots under this compiler's own defaults. With neither, the
|
|
14
|
+
* project nearest the first root file is used -- because a file's meaning is
|
|
15
|
+
* the meaning its own project gives it, and silently compiling it under
|
|
16
|
+
* different options reports defects the application does not have.
|
|
17
|
+
*/
|
|
18
|
+
const parseArguments = (argv) => {
|
|
19
|
+
const positional = argv.filter((argument) => !argument.startsWith('--'));
|
|
20
|
+
const flagIndex = argv.indexOf('--project');
|
|
21
|
+
const named = flagIndex >= 0 ? (argv[flagIndex + 1] ?? null) : null;
|
|
22
|
+
const rootFileNames = named ? positional.filter((argument) => argument !== named) : positional;
|
|
23
|
+
const first = rootFileNames[0];
|
|
24
|
+
const discovered = first ? findProjectFile(first.slice(0, Math.max(0, first.lastIndexOf('/'))) || '.') : null;
|
|
25
|
+
return {
|
|
26
|
+
rootFileNames,
|
|
27
|
+
preflight: argv.includes('--preflight'),
|
|
28
|
+
emit: argv.includes('--emit'),
|
|
29
|
+
projectFileName: argv.includes('--no-project') ? null : (named ?? discovered)
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const formatDiagnostic = (diagnostic) => {
|
|
33
|
+
const where = diagnostic.location
|
|
34
|
+
? `${diagnostic.location.file}:${diagnostic.location.line}:${diagnostic.location.column}`
|
|
35
|
+
: diagnostic.component;
|
|
36
|
+
const primitive = diagnostic.missingPrimitive ? ` [${diagnostic.missingPrimitive}]` : '';
|
|
37
|
+
// A bounded projection, not a truncation: a derived row in a large component
|
|
38
|
+
// cites every root in it, and printing all of them on every row buries the
|
|
39
|
+
// roots themselves. `--preflight` writes the complete census.
|
|
40
|
+
const causes = diagnostic.causedBy.length === 0
|
|
41
|
+
? ''
|
|
42
|
+
: diagnostic.causedBy.length <= 3
|
|
43
|
+
? `\n caused by: ${diagnostic.causedBy.join(', ')}`
|
|
44
|
+
: `\n caused by: ${diagnostic.causedBy.length} root row(s) in this component; see --preflight`;
|
|
45
|
+
return ` ${diagnostic.severity.padEnd(11)} ${where}${primitive}\n ${diagnostic.message}${causes}`;
|
|
46
|
+
};
|
|
47
|
+
const usage = 'usage: geatsc [--dynamic-fallback] [--debug] [--emit-only] [--verbose] [--translation-units single|per-file|balanced] (build the current Node project)\n' +
|
|
48
|
+
'usage: geatsc <file.ts...> [--project <tsconfig.json>] [--no-project] [--preflight] [--emit] [--dynamic-fallback]\n' +
|
|
49
|
+
' geatsc compile <input> --out-dir <dir> [--project <tsconfig.json>] [--target cpp] [--entry-symbol <symbol>] [--translation-units single|per-file|balanced] [--dynamic-fallback] [--closed-script-scope]\n' +
|
|
50
|
+
' geatsc compile-module-graph <manifest> --entry <file> --out-dir <dir> [compile options, including --closed-script-scope]\n' +
|
|
51
|
+
' --closed-script-scope asserts this compile is the complete classic-script lexical realm; it does not close globalThis or object mutation\n' +
|
|
52
|
+
' compile options include [--plugin <module>]... [--plugin-option <key>=<value>]...\n' +
|
|
53
|
+
' geatsc analyze <entry> --plugin <module>\n' +
|
|
54
|
+
' geatsc coverage <entry> [--project <tsconfig.json>] [--no-project] [--plugin <module>] [--json] [--no-derived] [--no-boxed]';
|
|
55
|
+
export const main = async (argv) => {
|
|
56
|
+
// `compile` is the build pipeline's own spelling (`build-gea-vite-geatsc.mjs`
|
|
57
|
+
// invokes `<bin> compile <input> --out-dir ...`), so it is dispatched before
|
|
58
|
+
// anything else parses argv: that command writes files and reports on stderr,
|
|
59
|
+
// where this one reports a census on stdout, and folding the two would make
|
|
60
|
+
// the diagnostic output part of a build's stdout contract.
|
|
61
|
+
if (argv[0] === 'compile')
|
|
62
|
+
return runEmit(argv.slice(1));
|
|
63
|
+
if (argv[0] === 'compile-module-graph')
|
|
64
|
+
return runEmit(argv.slice(1), true);
|
|
65
|
+
const parsed = parseArguments(argv);
|
|
66
|
+
if (parsed.rootFileNames.length === 0) {
|
|
67
|
+
process.stdout.write(`${usage}\n`);
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
70
|
+
const result = compile({
|
|
71
|
+
rootFileNames: parsed.rootFileNames,
|
|
72
|
+
projectFileName: parsed.projectFileName,
|
|
73
|
+
dynamicFallback: argv.includes('--dynamic-fallback')
|
|
74
|
+
});
|
|
75
|
+
const lines = [];
|
|
76
|
+
lines.push(`semantics: ${result.graph.operations.size} operation(s), ${result.graph.structuralTypes.size} structural type(s), ` +
|
|
77
|
+
`${result.graph.edges.length} edge(s)`);
|
|
78
|
+
if (result.uninstalledFamilies.length > 0) {
|
|
79
|
+
lines.push(`uninstalled families: ${[...result.uninstalledFamilies].sort().join(', ')}`);
|
|
80
|
+
}
|
|
81
|
+
lines.push(`representations: ${result.representations.plan.selected.size} selected, ${result.representations.committed.length} component(s) ` +
|
|
82
|
+
`committed, ${result.representations.blocked.length} blocked, ${result.representations.violations.length} guard violation(s)`);
|
|
83
|
+
lines.push(`preflight: ${result.preflight.totals.mandatory.satisfied} satisfied, ${result.preflight.totals.mandatory.missing} missing, ` +
|
|
84
|
+
`${result.preflight.totals.mandatory.unsupported} unsupported, ${result.preflight.totals.mandatory.blockedByUpstream} blocked`);
|
|
85
|
+
// The certificate gates emission, not lowering: an uncertified program still
|
|
86
|
+
// lowers whatever its plan verified, and the IR certification's refusals
|
|
87
|
+
// print below like any other's (certification covers the lowered IR).
|
|
88
|
+
lines.push(result.certificate ? `certificate: ${result.certificate.id}` : 'certificate: not minted; nothing is emitted');
|
|
89
|
+
if (result.certificate) {
|
|
90
|
+
lines.push(result.source
|
|
91
|
+
? `emitted: ${result.source.split('\n').length} line(s) of C++`
|
|
92
|
+
: `emitted: nothing; ${result.loweringBlockers.length} body/bodies have no IR lowering yet`);
|
|
93
|
+
}
|
|
94
|
+
// One list, every stage. A refused body is the answer, not an omission, so
|
|
95
|
+
// each row says which owner it is and what it lacked; a refused calling
|
|
96
|
+
// convention is a cause, not a consequence, and prints beside the bodies it
|
|
97
|
+
// stopped rather than being computed and shown to nobody.
|
|
98
|
+
//
|
|
99
|
+
// The `census` stage is SUMMARISED rather than enumerated, because it answers
|
|
100
|
+
// a different question from the rest of the list. An abi/lower/certify/print
|
|
101
|
+
// row says why a body produced no C++, and there are as many of those as
|
|
102
|
+
// there are refused bodies. A census row says why one CELL went untyped --
|
|
103
|
+
// the program still emits, just dynamically -- and a large program has
|
|
104
|
+
// thousands. Printing them beside the emission refusals would bury the
|
|
105
|
+
// answer this summary exists to give under the boxing report, so the counts
|
|
106
|
+
// per root go here and `CompileResult.refusals` keeps every row for the
|
|
107
|
+
// caller that wants them.
|
|
108
|
+
const censusRefusals = result.refusals.filter((refusal) => refusal.stage === 'census');
|
|
109
|
+
for (const refusal of result.refusals) {
|
|
110
|
+
if (refusal.stage === 'census')
|
|
111
|
+
continue;
|
|
112
|
+
lines.push(` ${refusal.stage.padEnd(11)} ${refusal.owner}\n ${refusal.reason}`);
|
|
113
|
+
}
|
|
114
|
+
if (censusRefusals.length > 0) {
|
|
115
|
+
const byRoot = new Map();
|
|
116
|
+
for (const refusal of censusRefusals)
|
|
117
|
+
byRoot.set(refusal.key, (byRoot.get(refusal.key) ?? 0) + 1);
|
|
118
|
+
lines.push(`census: ${censusRefusals.length} cell(s) untyped`);
|
|
119
|
+
for (const [key, count] of [...byRoot].sort((left, right) => right[1] - left[1]))
|
|
120
|
+
lines.push(` ${String(count).padStart(6)} ${key}`);
|
|
121
|
+
}
|
|
122
|
+
if (result.diagnostics.diagnostics.length > 0) {
|
|
123
|
+
lines.push(`diagnostics (${result.diagnostics.diagnostics.length}):`);
|
|
124
|
+
for (const diagnostic of result.diagnostics.diagnostics)
|
|
125
|
+
lines.push(formatDiagnostic(diagnostic));
|
|
126
|
+
}
|
|
127
|
+
process.stdout.write(`${lines.join('\n')}\n`);
|
|
128
|
+
// Written in bounded chunks, never as one string: see `preflightReportLines`.
|
|
129
|
+
if (parsed.preflight) {
|
|
130
|
+
let chunk = '';
|
|
131
|
+
for (const line of preflightReportLines(result.preflight)) {
|
|
132
|
+
chunk += line;
|
|
133
|
+
if (chunk.length >= 1 << 16) {
|
|
134
|
+
process.stdout.write(chunk);
|
|
135
|
+
chunk = '';
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (chunk.length > 0)
|
|
139
|
+
process.stdout.write(chunk);
|
|
140
|
+
}
|
|
141
|
+
// The structural type table beside the census, one `id<TAB>key` line per
|
|
142
|
+
// type, so a `type|N` a report row cites can be read back to the declared
|
|
143
|
+
// name (and, through `decl|fN|ordinal`, to its source) without re-running
|
|
144
|
+
// the frontend. An instrument like `GEA_STAGE_TIMING`, not a flag.
|
|
145
|
+
const dumpTypes = process.env['GEA_DUMP_STRUCTURAL_TYPES'];
|
|
146
|
+
if (dumpTypes) {
|
|
147
|
+
const out = openSync(dumpTypes, 'w');
|
|
148
|
+
let chunk = '';
|
|
149
|
+
for (const [id, type] of result.graph.structuralTypes) {
|
|
150
|
+
chunk += `${id}\t${structuralShapeKey(type.shape)}\n`;
|
|
151
|
+
if (chunk.length >= 1 << 16) {
|
|
152
|
+
writeSync(out, chunk);
|
|
153
|
+
chunk = '';
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (chunk.length > 0)
|
|
157
|
+
writeSync(out, chunk);
|
|
158
|
+
closeSync(out);
|
|
159
|
+
}
|
|
160
|
+
if (parsed.emit && result.source)
|
|
161
|
+
process.stdout.write(`${result.source}\n`);
|
|
162
|
+
return result.certificate ? 0 : 1;
|
|
163
|
+
};
|
|
164
|
+
const argv = process.argv.slice(2);
|
|
165
|
+
// Compilation commands and host analysis load plugin modules asynchronously.
|
|
166
|
+
if (argv.includes('--help') || argv.includes('-h')) {
|
|
167
|
+
process.stdout.write(`${usage}\n`);
|
|
168
|
+
}
|
|
169
|
+
else if (isNodeProjectArguments(argv)) {
|
|
170
|
+
void runNodeProject(argv)
|
|
171
|
+
.then((code) => {
|
|
172
|
+
process.exitCode = code;
|
|
173
|
+
})
|
|
174
|
+
.catch((error) => {
|
|
175
|
+
console.error(`[geatsc] ${error instanceof Error ? error.message : String(error)}`);
|
|
176
|
+
process.exitCode = 1;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
else if (argv[0] === 'analyze') {
|
|
180
|
+
void runAnalyze(argv.slice(1)).then((code) => {
|
|
181
|
+
process.exitCode = code;
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else if (argv[0] === 'coverage') {
|
|
185
|
+
// `coverage` may load a plugin module too, so it shares the asynchronous path.
|
|
186
|
+
void runCoverage(argv.slice(1)).then((code) => {
|
|
187
|
+
process.exitCode = code;
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
void main(argv)
|
|
192
|
+
.then((code) => {
|
|
193
|
+
process.exitCode = code;
|
|
194
|
+
})
|
|
195
|
+
.catch((error) => {
|
|
196
|
+
console.error(`[geatsc] ${error instanceof Error ? error.message : String(error)}`);
|
|
197
|
+
process.exitCode = 1;
|
|
198
|
+
});
|
|
199
|
+
}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import type { PackageSource } from './semantics/package-sources.js';
|
|
2
|
+
import { type AbiProjectionBlocker } from './projection/abi.js';
|
|
3
|
+
import { type PhysicalClassLayoutPublication } from './projection/classes.js';
|
|
4
|
+
import type { ConversionNode } from './conversion/algebra.js';
|
|
5
|
+
import { type ConversionCensus } from './conversion/nodes.js';
|
|
6
|
+
import type { ConversionRuntimeRegistry } from './conversion/registry.js';
|
|
7
|
+
import type { DiagnosticLocation, DiagnosticReport } from './diagnostics/model.js';
|
|
8
|
+
import type { DeclarationId, FunctionId, NodeId, OperationFamily, SemanticResultId } from './identity/ids.js';
|
|
9
|
+
import type { CallableAbi } from './representation/model.js';
|
|
10
|
+
import type { ClassLayout } from './projection/classes.js';
|
|
11
|
+
import type { BindingPlacement } from './projection/bindings.js';
|
|
12
|
+
import type { SlotHook } from './projection/slots.js';
|
|
13
|
+
import type { CapabilityCertificate } from './ir/certificate.js';
|
|
14
|
+
import { type Refusal } from './ir/refusal.js';
|
|
15
|
+
import type { TargetRuntimeManifest } from './preflight/obligations.js';
|
|
16
|
+
import type { PreflightReport } from './preflight/run.js';
|
|
17
|
+
import type { RepresentationPublication } from './representation/publish.js';
|
|
18
|
+
import { type CensusAccounting } from './semantics/frontend.js';
|
|
19
|
+
import type { CellFactsPublication } from './semantics/normalize/cells/index.js';
|
|
20
|
+
import type { DiagnosticSourcePreparationAudit } from './semantics/diagnostic-source-preparation.js';
|
|
21
|
+
import type { SemanticGraph } from './semantics/model/graph.js';
|
|
22
|
+
import type { CompilerPlugin, PluginInstance, PluginOptions } from './plugins/model.js';
|
|
23
|
+
import type { IrLoweringBlocker } from './ir/lower.js';
|
|
24
|
+
import type { SlotDrift } from './ir/lower-operands.js';
|
|
25
|
+
import { type IrCertification } from './ir/certify.js';
|
|
26
|
+
import type { IrBody } from './ir/model.js';
|
|
27
|
+
import { type EmissionRepresentationPublication } from './ir/emission-representations.js';
|
|
28
|
+
import { type ReflectionExposure } from './ir/reflection-demand.js';
|
|
29
|
+
import type { PrinterDrift } from './targets/cpp/emit-narrowing.js';
|
|
30
|
+
import type { RenderedCppSource } from './targets/cpp/document.js';
|
|
31
|
+
import { type CppEmissionRefusal, type CppRenderedUnit, type CppTranslationUnitLayout } from './targets/cpp/translation-unit.js';
|
|
32
|
+
/**
|
|
33
|
+
* The compilation pipeline.
|
|
34
|
+
*
|
|
35
|
+
* The stage order here is the architecture's mandatory publication order, and
|
|
36
|
+
* every stage consumes only what the previous one sealed:
|
|
37
|
+
*
|
|
38
|
+
* normalize -> publish carriers -> derive conversions -> preflight -> certify
|
|
39
|
+
* -> project ABIs -> lower to IR -> render
|
|
40
|
+
*
|
|
41
|
+
* Lowering is gated on the plan, emission on the certificate. A program whose
|
|
42
|
+
* frontend, census and plan raised nothing (`DiagnosticReport.planClean`)
|
|
43
|
+
* lowers whether or not preflight certified it, and every body lowering
|
|
44
|
+
* cannot build is a `Refusal` row beside preflight's own; this is what lets
|
|
45
|
+
* certification move onto the IR --
|
|
46
|
+
* a check over operations that exist rather than a model of operations that
|
|
47
|
+
* would. Text is still produced only under a certificate with every body
|
|
48
|
+
* lowered: a stage that renders before the certificate exists can discover,
|
|
49
|
+
* halfway through emission, that a capability it needed was never installed,
|
|
50
|
+
* which is the failure mode preflight exists to remove.
|
|
51
|
+
*/
|
|
52
|
+
export interface CompilationRequest {
|
|
53
|
+
/** Package checkouts prepared by the project loader; the compiler discovers their implementation entries. */
|
|
54
|
+
readonly packageSources?: readonly PackageSource[];
|
|
55
|
+
/** Opt in to boxed C++ carriers where static specialization cannot select storage. */
|
|
56
|
+
readonly dynamicFallback?: boolean;
|
|
57
|
+
readonly rootFileNames: readonly string[];
|
|
58
|
+
/** The project file defining this program. `null` compiles the roots under this compiler's own defaults. */
|
|
59
|
+
readonly projectFileName?: string | null;
|
|
60
|
+
/** The target's installed conversion primitives; empty means none are built yet. */
|
|
61
|
+
readonly conversionRegistry?: ConversionRuntimeRegistry;
|
|
62
|
+
/** Libraries whose meaning this program depends on. Defaults to what this build installs. */
|
|
63
|
+
readonly plugins?: readonly CompilerPlugin[];
|
|
64
|
+
/** What the build told those libraries -- see `PluginOptions`. Empty when the caller passed none. */
|
|
65
|
+
readonly pluginOptions?: PluginOptions;
|
|
66
|
+
/**
|
|
67
|
+
* The C++ name the target starts this program at, or `null` to emit no entry.
|
|
68
|
+
*
|
|
69
|
+
* The gea runtimes call `__gea_top_level`, which is why that is the default:
|
|
70
|
+
* `core/gea_app_entry.cpp` declares it and `Application::init` invokes it, so
|
|
71
|
+
* an emitted unit links against the engine as it stands. A resident-app build
|
|
72
|
+
* gives each app its own prefixed entry so several link together, and a
|
|
73
|
+
* caller inspecting a unit rather than linking it can ask for none.
|
|
74
|
+
*/
|
|
75
|
+
readonly entrySymbol?: string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Legacy explicit JavaScript admission. JavaScript dependencies are now admitted automatically.
|
|
78
|
+
*
|
|
79
|
+
* The gea build pipeline hands its compiler a vite bundle, not the app's
|
|
80
|
+
* TypeScript: plain JS with JSDoc annotations and a generated `.d.ts`
|
|
81
|
+
* reference. Saying so is a statement about the input; what the checker is
|
|
82
|
+
* then configured with is `semantics/`'s to decide (`FrontendInput`).
|
|
83
|
+
*/
|
|
84
|
+
readonly javaScriptSources?: boolean;
|
|
85
|
+
/** File text this compilation uses instead of what is on disk, by absolute path. */
|
|
86
|
+
readonly sourceOverlay?: ReadonlyMap<string, string>;
|
|
87
|
+
/** How each file's own import specifiers resolve, when the build is the authority. */
|
|
88
|
+
readonly moduleResolution?: ReadonlyMap<string, ReadonlyMap<string, string>>;
|
|
89
|
+
/** Whether this request states the module set -- see `ProgramInput.statedModuleSet`. */
|
|
90
|
+
readonly statedModuleSet?: boolean;
|
|
91
|
+
/** Caller-stated classic-script lexical realm boundary; see `ProgramInput.closedScriptScope`. */
|
|
92
|
+
readonly closedScriptScope?: boolean;
|
|
93
|
+
/** Whether the emitted unit is one of several a single binary links -- see `TranslationUnitInput.isolateSymbols`. */
|
|
94
|
+
readonly isolateSymbols?: boolean;
|
|
95
|
+
/** Retain final IR in the result for diagnostics. Off by default so normal builds can release it. */
|
|
96
|
+
readonly includeIr?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* How many C++ files the program becomes -- see `CppTranslationUnitLayout`.
|
|
99
|
+
* `single` (the default) is one unit; `per-file` is one unit per source file
|
|
100
|
+
* plus a shared header and a program unit.
|
|
101
|
+
*/
|
|
102
|
+
readonly translationUnits?: CppTranslationUnitLayout;
|
|
103
|
+
/**
|
|
104
|
+
* The stem the emitted files are named from (`<stem>.cpp`, and under
|
|
105
|
+
* `per-file` also `<stem>.hpp` and `<stem>.<module>.cpp`). The CLI passes the
|
|
106
|
+
* input's own base name; the default is `unit`.
|
|
107
|
+
*/
|
|
108
|
+
readonly unitBaseName?: string;
|
|
109
|
+
}
|
|
110
|
+
export interface CompilationResult {
|
|
111
|
+
readonly dynamicFallback: {
|
|
112
|
+
readonly enabled: boolean;
|
|
113
|
+
readonly valueCount: number;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Where a node identity is, for display -- the frontend's own identity walk
|
|
117
|
+
* (`FrontendResult.locationOfNode`). Exposed so a reader of the plan can put
|
|
118
|
+
* a carrier at a place in the program: the diagnostic sweep already does this
|
|
119
|
+
* for every failing row, and `cli-coverage.ts` asks the same question of the
|
|
120
|
+
* rows that did NOT fail -- which carriers boxed, and where.
|
|
121
|
+
*/
|
|
122
|
+
readonly locationOfNode: (node: NodeId) => DiagnosticLocation | null;
|
|
123
|
+
/** `locationOfNode`'s twin for a DeclarationId (`FrontendResult.locationOfDeclaration`) -- see `AbiProjectionBlocker.location`. */
|
|
124
|
+
readonly locationOfDeclaration: (declaration: DeclarationId) => DiagnosticLocation | null;
|
|
125
|
+
/** The node's source text, for display (`FrontendResult.textOfNode`). */
|
|
126
|
+
readonly textOfNode: (node: NodeId) => string | null;
|
|
127
|
+
readonly graph: SemanticGraph;
|
|
128
|
+
/** Stable file identities used in declaration and function ids, mapped to display paths. */
|
|
129
|
+
readonly sourceFileNames: ReadonlyMap<string, string>;
|
|
130
|
+
/** Diagnostic-proven stale package-source directives removed before the final checker pass. */
|
|
131
|
+
readonly sourcePreparations: readonly DiagnosticSourcePreparationAudit[];
|
|
132
|
+
readonly representations: RepresentationPublication;
|
|
133
|
+
readonly manifest: TargetRuntimeManifest;
|
|
134
|
+
readonly preflight: PreflightReport;
|
|
135
|
+
/** Non-null only when every mandatory obligation was satisfied. */
|
|
136
|
+
readonly certificate: CapabilityCertificate | null;
|
|
137
|
+
readonly diagnostics: DiagnosticReport;
|
|
138
|
+
readonly uninstalledFamilies: readonly OperationFamily[];
|
|
139
|
+
/** What each write-discovery census bound and why it refused the rest -- see `FrontendOutput.censusAccounting`. */
|
|
140
|
+
readonly censusAccounting: ReadonlyMap<string, CensusAccounting>;
|
|
141
|
+
/**
|
|
142
|
+
* The frontend's per-cell fact table, forwarded verbatim (`FrontendResult.cellFacts`).
|
|
143
|
+
* Exposed so a caller can ask `cellFacts.table.twoOwnerClaims` -- the cells two
|
|
144
|
+
* independent write-discovery censuses both claimed -- without threading a new
|
|
145
|
+
* field through every stage that already forwards `frontend.graph` the same way.
|
|
146
|
+
*/
|
|
147
|
+
readonly cellFacts: CellFactsPublication;
|
|
148
|
+
/**
|
|
149
|
+
* The derived conversion graph, keyed by carrier.
|
|
150
|
+
*
|
|
151
|
+
* Exposed because a `conversion-capability` obligation carries only its
|
|
152
|
+
* predicate STRING -- `return-conversion:<source key>-><target key>` -- and
|
|
153
|
+
* a bare "absent" says nothing about why. The node's own `capability` holds
|
|
154
|
+
* the `never` REASON the derivation stated, which is the actual root: 35
|
|
155
|
+
* distinct carrier pairs on the three.js app collapsed to a handful of reasons the
|
|
156
|
+
* first time this was asked, and the pair keys had been ranked as 35
|
|
157
|
+
* separate problems until then.
|
|
158
|
+
*/
|
|
159
|
+
readonly conversionNodes: ReadonlyMap<string, ConversionNode>;
|
|
160
|
+
/**
|
|
161
|
+
* The conversion census over the same registry: one node per carrier
|
|
162
|
+
* pair, the eager graph's where it minted one and otherwise minted on
|
|
163
|
+
* demand from the registry's tables (`conversion/nodes.ts`). This is the
|
|
164
|
+
* authority the lowering's `convert` instructions name.
|
|
165
|
+
*/
|
|
166
|
+
readonly conversionCensus: ConversionCensus;
|
|
167
|
+
/** Physical carrier dependencies and reflection demands of the final emitted program. */
|
|
168
|
+
readonly emissionRepresentations: EmissionRepresentationPublication | null;
|
|
169
|
+
readonly reflection: ReflectionExposure | null;
|
|
170
|
+
/** Final IR supplied to certification, including published callable identities. Null unless requested by includeIr. */
|
|
171
|
+
readonly irBodies: readonly IrBody[] | null;
|
|
172
|
+
readonly physicalClasses: PhysicalClassLayoutPublication | null;
|
|
173
|
+
/**
|
|
174
|
+
* The program as one unit. Non-null only when a certificate was minted,
|
|
175
|
+
* every body lowered, and the layout is `single`; under `per-file` the
|
|
176
|
+
* program is `units`, and there is no one text that is all of it.
|
|
177
|
+
*/
|
|
178
|
+
readonly source: RenderedCppSource | null;
|
|
179
|
+
/** Every C++ file the layout produced, named and in write order; empty whenever `source` would be null for a `single` layout. */
|
|
180
|
+
readonly units: readonly CppRenderedUnit[];
|
|
181
|
+
/** Bodies the IR refused, each naming what has no primitive yet. */
|
|
182
|
+
readonly loweringBlockers: readonly IrLoweringBlocker[];
|
|
183
|
+
/** Every refusal past the plan -- ABI, lowering and printer -- as one list (`ir/refusal.ts`). */
|
|
184
|
+
/** The IR certification's verdict, or `null` for a program that did not lower; `certificate` is minted from it. */
|
|
185
|
+
readonly certification: IrCertification | null;
|
|
186
|
+
readonly refusals: readonly Refusal[];
|
|
187
|
+
/** Slots lowering left unconverted because the conversion census has no node for the pair (`ir/lower-operands.ts`'s `SlotDrift`). */
|
|
188
|
+
readonly slotDrift: readonly SlotDrift[];
|
|
189
|
+
/** Every chain call the printer still made on a pair lowering had not aligned; `emit-narrowing.ts`'s `PrinterDrift`. */
|
|
190
|
+
readonly printerDrift: readonly PrinterDrift[];
|
|
191
|
+
/** Functions whose calling convention could not be projected, each naming why. */
|
|
192
|
+
readonly abiBlockers: readonly AbiProjectionBlocker[];
|
|
193
|
+
/** Bodies the C++ emitter refused, each naming the capability it lacked. */
|
|
194
|
+
readonly emissionRefusals: readonly CppEmissionRefusal[];
|
|
195
|
+
/** The whole-program projections lowering consumes, published so the slot census can be asked outside the pipeline. */
|
|
196
|
+
readonly projection: {
|
|
197
|
+
readonly abis: ReadonlyMap<FunctionId, CallableAbi>;
|
|
198
|
+
readonly constructs: ReadonlyMap<FunctionId, CallableAbi>;
|
|
199
|
+
readonly callableOrigins: ReadonlyMap<SemanticResultId, FunctionId>;
|
|
200
|
+
readonly classes: ReadonlyMap<DeclarationId, ClassLayout>;
|
|
201
|
+
readonly placements: ReadonlyMap<DeclarationId, BindingPlacement>;
|
|
202
|
+
readonly slotHooks: readonly SlotHook[];
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* The installed plugins' own `writeArtifacts`, for the caller to run against
|
|
206
|
+
* its output directory once it has written a unit.
|
|
207
|
+
*
|
|
208
|
+
* Returned rather than called here because this function does not know where
|
|
209
|
+
* -- or whether -- anything is written. `compile` produces a result; the CLI
|
|
210
|
+
* decides that the result is worth putting on disk and where it goes, and an
|
|
211
|
+
* artifact a plugin's host requires beside the unit is part of that same
|
|
212
|
+
* decision. Empty for every compilation whose plugins state one.
|
|
213
|
+
*/
|
|
214
|
+
readonly artifacts: readonly ((outDir: string) => void)[];
|
|
215
|
+
/**
|
|
216
|
+
* Header paths the caller's `generated_support.hpp` must state, unioned from
|
|
217
|
+
* the installed plugins -- see `PluginCapabilities.generatedSupportIncludes`.
|
|
218
|
+
* Returned for the same reason `artifacts` is: this function does not write
|
|
219
|
+
* files, and what a unit is compiled against is a fact of the compilation
|
|
220
|
+
* rather than of the directory it lands in.
|
|
221
|
+
*/
|
|
222
|
+
readonly generatedSupportIncludes: readonly string[];
|
|
223
|
+
}
|
|
224
|
+
export declare const sourceTransformsFor: (plugins: readonly PluginInstance[]) => readonly ((input: {
|
|
225
|
+
readonly fileName: string;
|
|
226
|
+
readonly text: string;
|
|
227
|
+
}) => string | null)[];
|
|
228
|
+
export declare const compile: (request: CompilationRequest) => CompilationResult;
|