From 1562d086091c56471fff8948ee81f4d2be9748fd Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Fri, 23 Oct 2026 13:09:08 -0500 Subject: [PATCH 001/128] Merge the loader branch, key the build by the libnode pack, and pick musl packs --- .github/workflows/ci.yml | 6 +- .github/workflows/libnode-packs.yml | 4 +- docs/content/docs/dependencies.mdx | 2 +- .../builtin-apis/streams-and-readline.mdx | 9 +- packages/cli/src/bootstrap.ts | 5 +- packages/cli/test/native-link-info.test.ts | 4 +- packages/compiler/src/backend/llvm/dyn.ts | 39 +- .../compiler/src/backend/llvm/emit-module.ts | 38 +- packages/compiler/src/backend/llvm/emitter.ts | 5 + .../src/backend/llvm/expr-stream-callbacks.ts | 11 + .../compiler/src/backend/llvm/lib-shared.ts | 3 + .../compiler/src/backend/llvm/lib-stream.ts | 3 + packages/compiler/src/backend/runtime-abi.ts | 4 +- .../src/backend/runtime-pack-targets.test.ts | 2 +- .../compiler/src/backend/runtime-pack.test.ts | 2 +- packages/compiler/src/cli/usage.ts | 6 +- .../compiler/src/diagnostics/diagnostic.ts | 15 +- .../src/executable/executable-cache.ts | 17 +- .../compiler/src/frontend/input-tracker.ts | 27 + .../frontend/lowering/builtins/readline.ts | 51 +- .../lowering/containers/string-replacement.ts | 64 +- .../frontend/lowering/expressions/binary.ts | 18 + .../lowering/expressions/narrowing.ts | 3 + .../src/frontend/lowering/lower-calls.ts | 27 + .../src/frontend/lowering/lower-classes.ts | 6 +- .../frontend/lowering/lower-node-island.ts | 39 +- .../src/frontend/lowering/lower-stream.ts | 329 +++++++- .../compiler/src/frontend/lowering/lowerer.ts | 20 +- .../src/frontend/lowering/var-hoisting.ts | 60 +- .../npm-static-bundled-chunks.test.ts | 11 +- .../src/frontend/npm-static-bundled-chunks.ts | 20 +- .../src/frontend/npm-static-rewrite-syntax.ts | 14 +- packages/compiler/src/frontend/npm-static.ts | 25 +- packages/compiler/src/frontend/program.ts | 16 +- packages/compiler/src/index.ts | 57 +- packages/compiler/src/ir/builtin-effects.ts | 1 + .../compiler/src/ir/builtin-signatures.ts | 6 + .../src/ir/function-references.test.ts | 6 + packages/compiler/src/ir/ir.ts | 26 +- packages/compiler/src/ir/runtime-features.ts | 2 + packages/compiler/src/ir/validate.ts | 3 + .../src/node-islands/libnode-pack.test.ts | 26 +- .../compiler/src/node-islands/libnode.test.ts | 49 +- packages/compiler/src/node-islands/libnode.ts | 131 +++- .../compiler/src/node-islands/modules.test.ts | 188 +++++ packages/compiler/src/node-islands/modules.ts | 627 ++++++++++++++++ packages/compiler/src/startup-cache.ts | 1 + .../test/native-codegen-integration.test.ts | 4 +- .../7447-union-record-arm-width.mjs.json | 6 + .../7448-union-record-arm-width.ts.json | 6 + .../corpus/7460-transform-writev.mjs.json | 6 + .../corpus/7461-transform-writev.cjs.json | 6 + .../corpus/7462-transform-writev.ts.json | 6 + .../corpus/7463-stream-option-values.ts.json | 6 + .../corpus/7464-stream-option-values.mjs.json | 6 + .../7465-transform-callback-values.ts.json | 6 + .../7466-stream-construct-assign.mjs.json | 6 + .../7500-pipeline-callback-undefined.ts.json | 6 + .../7501-pipeline-callback-undefined.mjs.json | 6 + .../7502-readline-cursor-undefined.ts.json | 6 + .../7543-var-list-declarator-order.js.json | 6 + ...545-string-regex-checked-arguments.js.json | 6 + .../main.cjs.json | 7 + .../main.cjs.json | 8 + ...7553-var-for-in-of-zero-iterations.js.json | 6 + .../7620-js-class-view-descriptors.js.json | 6 + .../7661-node-call-modules/main.ts.json | 6 + .../7662-node-call-exit-events/main.ts.json | 6 + .../stream-runtime-option-order.ts.json | 6 + .../7546-minified-esm-rules/main.ts.json | 6 + .../7547-minified-cjs-chunks/main.ts.json | 6 + .../libnode-common/bridge/scr_node_bridge.cc | 97 ++- packages/libnode-common/scripts/smoke.mjs | 7 +- packages/libnode-common/test/bridge.test.ts | 2 +- packages/libnode-linux-arm64-gnu/package.json | 3 + packages/libnode-linux-x64-gnu/package.json | 3 + packages/node/README.md | 2 + packages/node/index.d.ts | 2 + .../runtime-darwin-arm64/scripts/build.mjs | 2 +- .../runtime-pack-common/scripts/build.mjs | 2 +- packages/runtime/src/scr_console.c | 2 +- packages/runtime/src/scr_core.h | 2 +- packages/runtime/src/scr_dyn_builtin_stream.c | 9 +- packages/runtime/src/scr_fetch.c | 4 + packages/runtime/src/scr_json.c | 73 +- packages/runtime/src/scr_node_bridge.h | 12 +- packages/runtime/src/scr_node_island.c | 702 +++++++++++++++++- packages/runtime/src/scr_node_island.h | 9 + packages/runtime/src/scr_node_island_host.cjs | 66 +- packages/runtime/src/scr_node_island_host.h | 66 +- packages/runtime/src/scr_stream.c | 90 ++- packages/runtime/src/scr_stream.h | 12 + packages/runtime/test/test_json.c | 86 +++ tests/corpus/7447-union-record-arm-width.mjs | 37 + tests/corpus/7448-union-record-arm-width.ts | 21 + tests/corpus/7460-transform-writev.mjs | 33 + tests/corpus/7461-transform-writev.cjs | 33 + tests/corpus/7462-transform-writev.ts | 109 +++ tests/corpus/7463-stream-option-values.ts | 58 ++ tests/corpus/7464-stream-option-values.mjs | 28 + .../corpus/7465-transform-callback-values.ts | 41 + tests/corpus/7466-stream-construct-assign.mjs | 46 ++ .../7500-pipeline-callback-undefined.ts | 120 +++ .../7501-pipeline-callback-undefined.mjs | 22 + .../corpus/7502-readline-cursor-undefined.ts | 28 + .../corpus/7543-var-list-declarator-order.js | 66 ++ .../7545-string-regex-checked-arguments.js | 89 +++ .../lib.cjs | 10 + .../main.cjs | 19 + .../7549-cjs-minified-esmodule-stamp/main.cjs | 7 + .../module-stamped.cjs | 3 + .../stamped.cjs | 5 + .../7553-var-for-in-of-zero-iterations.js | 18 + .../corpus/7620-js-class-view-descriptors.js | 91 +++ .../7661-node-call-modules/lib/entry.cjs | 14 + .../corpus/7661-node-call-modules/lib/esm.mjs | 5 + .../7661-node-call-modules/lib/factor.mjs | 1 + .../corpus/7661-node-call-modules/lib/util.js | 5 + tests/corpus/7661-node-call-modules/main.ts | 12 + .../node_modules/greeter/data/message.txt | 1 + .../node_modules/greeter/index.js | 8 + .../node_modules/greeter/package.json | 1 + .../node_modules/shout/index.js | 2 + .../node_modules/shout/package.json | 1 + .../7661-node-call-modules/settings.json | 1 + .../7662-node-call-exit-events/listeners.cjs | 13 + .../corpus/7662-node-call-exit-events/main.ts | 8 + .../stream-runtime-option-order.ts | 42 ++ tests/fixtures/node-island/gc-stress.ts | 24 + tests/fixtures/node-island/gc.cjs | 41 + tests/fixtures/node-island/helper.cjs | 20 + tests/fixtures/node-island/lifecycle.ts | 8 + tests/fixtures/node-island/worker.ts | 18 + .../npm/cases/7546-minified-esm-rules/main.ts | 22 + .../cases/7547-minified-cjs-chunks/main.ts | 12 + .../node_modules/gtminicache/dist/index.d.ts | 7 + .../node_modules/gtminicache/dist/index.js | 1 + .../npm/node_modules/gtminicache/package.json | 7 + .../node_modules/gtminimark/dist/index.d.ts | 1 + .../npm/node_modules/gtminimark/dist/index.js | 1 + .../npm/node_modules/gtminimark/package.json | 8 + .../stream-runtime-option-order.ts.txt | 26 + tests/harness/ci-stack-scope.test.ts | 16 + .../7447-union-record-arm-width.mjs.json | 1 + .../7448-union-record-arm-width.ts.json | 1 + .../7460-transform-writev.mjs.json | 1 + .../7461-transform-writev.cjs.json | 1 + .../7462-transform-writev.ts.json | 1 + .../7463-stream-option-values.ts.json | 1 + .../7464-stream-option-values.mjs.json | 1 + .../7465-transform-callback-values.ts.json | 1 + .../7466-stream-construct-assign.mjs.json | 1 + .../7500-pipeline-callback-undefined.ts.json | 1 + .../7501-pipeline-callback-undefined.mjs.json | 1 + .../7502-readline-cursor-undefined.ts.json | 1 + .../7543-var-list-declarator-order.js.json | 1 + ...545-string-regex-checked-arguments.js.json | 1 + .../main.cjs.json | 1 + .../main.cjs.json | 1 + ...7553-var-for-in-of-zero-iterations.js.json | 1 + .../7620-js-class-view-descriptors.js.json | 1 + .../7661-node-call-modules/main.ts.json | 1 + .../7662-node-call-exit-events/main.ts.json | 1 + tests/harness/library-mode.test.ts | 26 +- tests/harness/library-static-types.test.ts | 23 +- tests/harness/node-island.test.ts | 161 +++- tests/harness/npm-static.test.ts | 18 + .../self-hosting-native-toolchain.test.ts | 2 +- tests/library-mode/npm-refuse/lib-minified.ts | 4 +- tests/library-mode/npm-static/lib.ts | 2 +- .../npm-static/node_modules/mathkit/index.js | 2 +- 171 files changed, 4583 insertions(+), 311 deletions(-) create mode 100644 packages/compiler/src/node-islands/modules.test.ts create mode 100644 packages/compiler/src/node-islands/modules.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7447-union-record-arm-width.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7448-union-record-arm-width.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7460-transform-writev.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7461-transform-writev.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7462-transform-writev.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7463-stream-option-values.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7464-stream-option-values.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7465-transform-callback-values.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7466-stream-construct-assign.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7500-pipeline-callback-undefined.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7501-pipeline-callback-undefined.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7502-readline-cursor-undefined.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7543-var-list-declarator-order.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7545-string-regex-checked-arguments.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7553-var-for-in-of-zero-iterations.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7620-js-class-view-descriptors.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7661-node-call-modules/main.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7662-node-call-exit-events/main.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/stream-runtime-option-order.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts.json create mode 100644 tests/corpus/7447-union-record-arm-width.mjs create mode 100644 tests/corpus/7448-union-record-arm-width.ts create mode 100644 tests/corpus/7460-transform-writev.mjs create mode 100644 tests/corpus/7461-transform-writev.cjs create mode 100644 tests/corpus/7462-transform-writev.ts create mode 100644 tests/corpus/7463-stream-option-values.ts create mode 100644 tests/corpus/7464-stream-option-values.mjs create mode 100644 tests/corpus/7465-transform-callback-values.ts create mode 100644 tests/corpus/7466-stream-construct-assign.mjs create mode 100644 tests/corpus/7500-pipeline-callback-undefined.ts create mode 100644 tests/corpus/7501-pipeline-callback-undefined.mjs create mode 100644 tests/corpus/7502-readline-cursor-undefined.ts create mode 100644 tests/corpus/7543-var-list-declarator-order.js create mode 100644 tests/corpus/7545-string-regex-checked-arguments.js create mode 100644 tests/corpus/7548-cjs-receiverless-builtin-calls/lib.cjs create mode 100644 tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs create mode 100644 tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs create mode 100644 tests/corpus/7549-cjs-minified-esmodule-stamp/module-stamped.cjs create mode 100644 tests/corpus/7549-cjs-minified-esmodule-stamp/stamped.cjs create mode 100644 tests/corpus/7553-var-for-in-of-zero-iterations.js create mode 100644 tests/corpus/7620-js-class-view-descriptors.js create mode 100644 tests/corpus/7661-node-call-modules/lib/entry.cjs create mode 100644 tests/corpus/7661-node-call-modules/lib/esm.mjs create mode 100644 tests/corpus/7661-node-call-modules/lib/factor.mjs create mode 100644 tests/corpus/7661-node-call-modules/lib/util.js create mode 100644 tests/corpus/7661-node-call-modules/main.ts create mode 100644 tests/corpus/7661-node-call-modules/node_modules/greeter/data/message.txt create mode 100644 tests/corpus/7661-node-call-modules/node_modules/greeter/index.js create mode 100644 tests/corpus/7661-node-call-modules/node_modules/greeter/package.json create mode 100644 tests/corpus/7661-node-call-modules/node_modules/shout/index.js create mode 100644 tests/corpus/7661-node-call-modules/node_modules/shout/package.json create mode 100644 tests/corpus/7661-node-call-modules/settings.json create mode 100644 tests/corpus/7662-node-call-exit-events/listeners.cjs create mode 100644 tests/corpus/7662-node-call-exit-events/main.ts create mode 100644 tests/diagnostics/stream-runtime-option-order.ts create mode 100644 tests/fixtures/node-island/gc-stress.ts create mode 100644 tests/fixtures/node-island/gc.cjs create mode 100644 tests/fixtures/node-island/worker.ts create mode 100644 tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts create mode 100644 tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts create mode 100644 tests/fixtures/npm/node_modules/gtminicache/dist/index.d.ts create mode 100644 tests/fixtures/npm/node_modules/gtminicache/dist/index.js create mode 100644 tests/fixtures/npm/node_modules/gtminicache/package.json create mode 100644 tests/fixtures/npm/node_modules/gtminimark/dist/index.d.ts create mode 100644 tests/fixtures/npm/node_modules/gtminimark/dist/index.js create mode 100644 tests/fixtures/npm/node_modules/gtminimark/package.json create mode 100644 tests/harness/__snapshots__/stream-runtime-option-order.ts.txt create mode 100644 tests/harness/corpus-costs/7447-union-record-arm-width.mjs.json create mode 100644 tests/harness/corpus-costs/7448-union-record-arm-width.ts.json create mode 100644 tests/harness/corpus-costs/7460-transform-writev.mjs.json create mode 100644 tests/harness/corpus-costs/7461-transform-writev.cjs.json create mode 100644 tests/harness/corpus-costs/7462-transform-writev.ts.json create mode 100644 tests/harness/corpus-costs/7463-stream-option-values.ts.json create mode 100644 tests/harness/corpus-costs/7464-stream-option-values.mjs.json create mode 100644 tests/harness/corpus-costs/7465-transform-callback-values.ts.json create mode 100644 tests/harness/corpus-costs/7466-stream-construct-assign.mjs.json create mode 100644 tests/harness/corpus-costs/7500-pipeline-callback-undefined.ts.json create mode 100644 tests/harness/corpus-costs/7501-pipeline-callback-undefined.mjs.json create mode 100644 tests/harness/corpus-costs/7502-readline-cursor-undefined.ts.json create mode 100644 tests/harness/corpus-costs/7543-var-list-declarator-order.js.json create mode 100644 tests/harness/corpus-costs/7545-string-regex-checked-arguments.js.json create mode 100644 tests/harness/corpus-costs/7548-cjs-receiverless-builtin-calls/main.cjs.json create mode 100644 tests/harness/corpus-costs/7549-cjs-minified-esmodule-stamp/main.cjs.json create mode 100644 tests/harness/corpus-costs/7553-var-for-in-of-zero-iterations.js.json create mode 100644 tests/harness/corpus-costs/7620-js-class-view-descriptors.js.json create mode 100644 tests/harness/corpus-costs/7661-node-call-modules/main.ts.json create mode 100644 tests/harness/corpus-costs/7662-node-call-exit-events/main.ts.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ffecc8e2..57e79148a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,9 +52,13 @@ jobs: const stackBase = pr?.stack?.base?.ref; const prBase = pr?.base?.ref; // Position 1 can already be merged; compare the current base branches. + // A PR into the default branch is the lowest unmerged layer of any + // stack, whatever the stack metadata names as its base. + const defaultBranch = event.repository?.default_branch; const upperLayer = process.env.GITHUB_EVENT_NAME === 'pull_request' && sameRepository && trustedAuthor && typeof stackBase === 'string' && stackBase.length > 0 && - typeof prBase === 'string' && prBase.length > 0 && stackBase !== prBase; + typeof prBase === 'string' && prBase.length > 0 && stackBase !== prBase && + prBase !== defaultBranch; const full = !upperLayer; appendFileSync(process.env.GITHUB_OUTPUT, `full=${full}\n`); console.log(full ? 'Run full CI' : 'Defer full CI until this PR becomes the lowest unmerged layer'); diff --git a/.github/workflows/libnode-packs.yml b/.github/workflows/libnode-packs.yml index ebe928145..fab3b630f 100644 --- a/.github/workflows/libnode-packs.yml +++ b/.github/workflows/libnode-packs.yml @@ -32,7 +32,9 @@ on: - ".github/workflows/libnode-packs.yml" concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + # A fixed name: under workflow_call, github.workflow is the caller's, and + # sharing the caller's group would cancel the run as a deadlock. + group: libnode-packs-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} permissions: diff --git a/docs/content/docs/dependencies.mdx b/docs/content/docs/dependencies.mdx index 14130b234..a9c5ae138 100644 --- a/docs/content/docs/dependencies.mdx +++ b/docs/content/docs/dependencies.mdx @@ -53,7 +53,7 @@ Type-only imports follow Node.js's type stripping. `import type` and `export typ scriptc compiles a package automatically when it: - ships its own type declarations, or is typed by its DefinitelyTyped `@types/` package, or is a dependency of another package that has no declarations at all, and -- ships readable JavaScript: unminified, or minified by a bundler whose helpers keep their names. +- ships JavaScript that isn't a webpack bundle. Minified JavaScript compiles like unminified JavaScript. The declarations check your program; the package's JavaScript compiles with the types scriptc infers from it. A program that doesn't typecheck against the inferred types, for example because an `@types/` package describes another release, fails the build at that use. diff --git a/docs/content/limitations/builtin-apis/streams-and-readline.mdx b/docs/content/limitations/builtin-apis/streams-and-readline.mdx index fe6bb2dfb..45a784742 100644 --- a/docs/content/limitations/builtin-apis/streams-and-readline.mdx +++ b/docs/content/limitations/builtin-apis/streams-and-readline.mdx @@ -18,7 +18,7 @@ Stages may take the `{ signal }` argument. With a function destination, `pipeline()` returns an object-mode PassThrough that receives an async generator destination's values, or an async function destination's value unless it is `null` or `undefined`. `@types/node` types that result as `NodeJS.WritableStream`, so `for await` over it needs the `PassThrough` type (`pipeline(...) as PassThrough`, or a JSDoc `@type`). - In typed code, the callback of a pipeline with an async function destination receives `null` instead of `undefined` when there is no error. + In typed code, a pipeline callback with an async function or async generator destination receives `null` for no error when its error parameter cannot hold `undefined` (@types/node declares it `NodeJS.ErrnoException | null`), and `undefined` when it can, as in Node. `Readable.from` accepts `objectMode` and `highWaterMark` options. The `Readable` operators (`map`, `filter`, `forEach`, `toArray`, `some`, `find`, `every`, `flatMap`, `drop`, `take`, and `reduce`) accept `concurrency`, `highWaterMark`, and `signal` options. Their callbacks may take the `{ signal }` argument, `map` may return any value, and `flatMap` may return any iterable, async iterable, or stream. @@ -32,9 +32,10 @@ `readable.compose(stage, { signal })` is `stream.compose(readable, stage)` with the signal added; the options are an object literal whose `signal` is a variable or a property read. `pipeline` from `node:stream/promises` accepts a trailing `{ signal, end }` object, with or without function stages, and `finished` accepts `readable`, `writable`, `error`, `cleanup`, and `signal` options, with boolean literals for the flags. Stream constructors accept a `signal` option in an options object literal, and `stream.addAbortSignal` accepts any stream. - The `construct` option and `_construct` method, `decodeStrings`, and `defaultEncoding` work on every stream class, and the `writev` option and `_writev` method on Writable and Duplex; `writev` on a Transform or PassThrough, assigning `_construct` after construction, and a non-literal `decodeStrings` or `defaultEncoding` in an options object literal are unsupported. + The `construct` option and `_construct` method, `decodeStrings`, and `defaultEncoding` work on every stream class, and the `writev` option and `_writev` method on every class with a writable side. + A `decodeStrings` or `defaultEncoding` value known only at run time is unsupported after an option member whose value has effects (a call or an assignment). + In typed code, a `writev` entry's `encoding` declared as a string receives `""` where Node passes `undefined` or `null` (an object-mode write). `setDefaultEncoding()` takes any encoding Node knows. - A `transform` or `flush` option callback whose completion callback types `data` as `any`, as @types/node's `TransformCallback` does, may pass a Buffer, a string, or nothing; any other value throws a TypeError where the callback is called, instead of Node's `ERR_INVALID_ARG_TYPE` stream error. `node:readline` and `node:readline/promises` (also reached as `readline.promises`) interfaces, from `createInterface(options)` or `createInterface(input, output, completer, terminal)`, read `process.stdin` or a readable stream: `question`, `prompt`, `write` (with a key object literal of `name`, `ctrl`, `meta`, and `shift`), `pause`, `resume`, `'line'`/`'close'`/`'pause'`/`'resume'`/`'error'`/`'history'`/`'SIGINT'`/`'SIGTSTP'`/`'SIGCONT'` listeners, and `for await` compile. `on`, `once`, and `addListener` return the interface, so registrations chain. The `history`, `historySize`, `removeHistoryDuplicates`, `completer`, `tabSize`, and `escapeCodeTimeout` options are validated as in Node. @@ -42,7 +43,7 @@ The output's `'resize'` event does not redraw the line. The cursor never stops between the two UTF-16 units of a supplementary character: where Node's Up or Down movement through a multiline line would, the cursor moves to the character's start or end. In JavaScript, a `'history'` listener receives a copy of the history; its changes are written back when the listener returns, but the copy is not `rl.history` itself. - `rl.history`, `historySize`, `historyIndex`, `crlfDelay`, `tabSize`, `escapeCodeTimeout`, `line`, `cursor`, and `terminal` read as in Node, except that `rl.cursor` of an interface that is not a terminal throws instead of answering `undefined`. + `rl.history`, `historySize`, `historyIndex`, `crlfDelay`, `tabSize`, `escapeCodeTimeout`, `line`, `cursor`, and `terminal` read as in Node; `rl.cursor` is `undefined` on an interface that is not a terminal. `rl[Symbol.dispose]()` closes the interface, and `instanceof` with `readline.Interface` or `readlinePromises.Interface` answers whether the interface came from that module, as in Node. In JavaScript, the input and output can be any expression that evaluates to a stream, such as a function's result or an object's member; a value that is not a stream is unsupported. In JavaScript, `question()` and `setPrompt()` accept a value that is not a string: when such a prompt is written, an interface that is not a terminal throws `ERR_INVALID_ARG_TYPE` as Node does (the `readline/promises` question rejects with it) and the question stays pending, and a terminal interface writes `String(value)`. diff --git a/packages/cli/src/bootstrap.ts b/packages/cli/src/bootstrap.ts index 9eb49f823..c8c927739 100644 --- a/packages/cli/src/bootstrap.ts +++ b/packages/cli/src/bootstrap.ts @@ -70,9 +70,6 @@ async function tryFastPath(): Promise { values["profile-generate"] !== undefined || values["profile-use"] !== undefined || values.sparse || - // The full compiler keys these builds by the recorded libnode pack. - values.libnode !== undefined || - process.env["SCRIPTC_LIBNODE"] !== undefined || (values["external-types"] ?? []).length > 0 ) return null; @@ -159,6 +156,8 @@ async function tryFastPath(): Promise { ) : startup.executableNativeEnvironmentFingerprint(), nodeVersion: process.version, + // An entry of a program that calls into Node.js serves only the same pack. + libnodeIdentity: () => startup.libnodeCacheKey(values.libnode, process.env, dirname(input)), }); if (hit === null) return null; if (!values["keep-llvm"]) await rm(hit.llvmPath, { force: true }); diff --git a/packages/cli/test/native-link-info.test.ts b/packages/cli/test/native-link-info.test.ts index a5edb11bb..8ac579449 100644 --- a/packages/cli/test/native-link-info.test.ts +++ b/packages/cli/test/native-link-info.test.ts @@ -72,7 +72,7 @@ describe.runIf(supported)("macOS arm64 native link info", () => { minimum_os: "14.0", }, program: { object, entry_symbol: "main" }, - runtime_abi: { version: 36, marker: "scr_runtime_abi_v36" }, + runtime_abi: { version: 37, marker: "scr_runtime_abi_v37" }, runtime_pack: { kind: "precompiled", package: "@scriptc/runtime-darwin-arm64", @@ -165,6 +165,6 @@ describe.runIf(supported)("macOS arm64 native link info", () => { () => null, (failure: { stderr?: string }) => failure, ); - expect(error?.stderr).toContain("scr_runtime_abi_v36"); + expect(error?.stderr).toContain("scr_runtime_abi_v37"); }); }); diff --git a/packages/compiler/src/backend/llvm/dyn.ts b/packages/compiler/src/backend/llvm/dyn.ts index 94581cfa0..86626d304 100644 --- a/packages/compiler/src/backend/llvm/dyn.ts +++ b/packages/compiler/src/backend/llvm/dyn.ts @@ -370,6 +370,36 @@ export class LlDyn { B.line(`call void @scr_dyn_build_add(ptr %d, ptr @${name}, ptr ${value})`); } + /** The order a dyn value tries a union's arms in: the canonical order, + * except that among the record arms, those with more required fields go + * first, then those with more fields. Records are width-tolerant, so an + * arm with fewer fields (`{}`, or one whose fields are all optional, + * matches every object) would otherwise take an object that a wider arm + * also matches and drop the fields only the wider arm has. */ + private unionArmOrder(def: IrUnionDef): number[] { + const width = (i: number): [number, number] | null => { + const arm = def.arms[i]!; + if (arm.kind !== "record") return null; + const shape = this.host.recordsById.get(arm.shapeId); + if (!shape || shape.tuple) return null; + const required = shape.fields.filter( + (field) => + field.type.kind !== "union" || + !this.host.unionsById.get(field.type.unionId)?.arms.some((x) => x.kind === "undefinedT"), + ).length; + return [required, shape.fields.length]; + }; + const order = def.arms.map((_, i) => i); + const records = order.filter((i) => width(i) !== null); + const widest = [...records].sort((x, y) => { + const [rx, fx] = width(x)!; + const [ry, fy] = width(y)!; + return ry - rx || fy - fx || x - y; + }); + records.forEach((slot, k) => (order[slot] = widest[k]!)); + return order; + } + /** Branch to a variant only after its literal discriminator and complete * structure match. Use the same path for predicates and builders. */ private unionArmMatch( @@ -2368,9 +2398,10 @@ export class LlDyn { throw new InternalCompilerError( `llvm emitter bug: dynCheck of unknown union ${t.unionId}`, ); - // Arms in CANONICAL order, first FULL match wins. The matched - // arm's builder can no longer fail. - def.arms.forEach((arm, i) => { + // Arms in unionArmOrder, first FULL match wins. The matched arm's + // builder can no longer fail. + for (const i of this.unionArmOrder(def)) { + const arm = def.arms[i]!; const lHit = B.newLabel("dcu.h"); const lNext = B.newLabel("dcu.n"); this.unionArmMatch(B, def, i, lHit, lNext, preserveRefs); @@ -2414,7 +2445,7 @@ export class LlDyn { B.terminate(`ret ptr ${u}`); } B.startBlock(lNext); - }); + } if (preserveRefs) { B.line( `call void @scr_dyn_check_fail(ptr %path, ptr ${host.cstr("reference with its original layout")}, ptr %d)`, diff --git a/packages/compiler/src/backend/llvm/emit-module.ts b/packages/compiler/src/backend/llvm/emit-module.ts index c16834910..f4f3bd0f1 100644 --- a/packages/compiler/src/backend/llvm/emit-module.ts +++ b/packages/compiler/src/backend/llvm/emit-module.ts @@ -17,6 +17,7 @@ import { } from "../mangle.js"; import { type IrGlobal, + type IrNodeIslandModules, type IrType, RUNTIME_ERROR_CLASSES, RUNTIME_EVENT_CLASS, @@ -57,7 +58,8 @@ import { ffiNativeTypeLl, } from "./common.js"; import { literalCapWord, literalCapWord32 } from "./string-key-hash.js"; -import { hasLoneSurrogate, wtf8Bytes } from "../literals.js"; +import { hasLoneSurrogate, llvmBytes, wtf8Bytes } from "../literals.js"; +import { nodeIslandManifest } from "../../node-islands/modules.js"; import { undefinedArmTag } from "../../ir/analysis.js"; import { NULLABLE_ABSENT, NULLABLE_NULL } from "./nullable-unions.js"; import { literalEqualityDefinition } from "./string-literal-equality.js"; @@ -381,6 +383,11 @@ export function emitModuleParts(emitter: LlEmitter): string[] { emitter.cstr(emitter.mod.nodeIsland?.nodeVersion ?? ""), ] : null; + // The island module tree: its manifest, and its files unless they ship + // beside the executable (node-islands/modules.ts). + const nodeIslandModules = usesNodeIsland ? emitter.mod.nodeIsland?.modules : undefined; + const nodeIslandModulesCall = + nodeIslandModules === undefined ? null : nodeIslandModulesInstall(emitter, nodeIslandModules); if (emitter.ffiHasForeignCallback) emitter.declare(`declare void @scr_ffi_install()`); if (usesStream) emitter.declare(`declare void @scr_stream_install()`); if (usesNetLookup) emitter.declare(`declare void @scr_net_lookup_install()`); @@ -732,6 +739,7 @@ export function emitModuleParts(emitter: LlEmitter): string[] { for (let site = 0; site < emitter.jsIcSiteCount; site++) out.push(`@sc_js_ic_${site} = internal ${tl}global [${JS_IC_WORDS} x i64] zeroinitializer`); } + if (nodeIslandModulesCall !== null) out.push(...nodeIslandModulesCall.globals); for (const table of emitter.constantNumericTables.values()) { const n = table.values.length; let tableTmp = 0; @@ -1027,6 +1035,7 @@ export function emitModuleParts(emitter: LlEmitter): string[] { ` call void @scr_node_island_install(ptr ${nodeIslandConfig[0]}, ptr ${nodeIslandConfig[1]})`, ] : []), + ...(nodeIslandModulesCall === null ? [] : [nodeIslandModulesCall.call]), ...(emitter.ffiHasForeignCallback ? [` call void @scr_ffi_install()`] : []), ...(snapshotsTlsCa ? [` call void @scr_tls_ca_install()`] : []), ...(usesFetch ? [` call void @scr_fetch_install()`] : []), @@ -1171,6 +1180,33 @@ export function emitModuleParts(emitter: LlEmitter): string[] { /** The shared abort helpers (emitted only when referenced): the OOM * abort of untraced shape allocation and the invalid-union-tag abort — * both print the runtime ABI’s exact message on fd 2 and abort. */ +/** The island module tree's install call before %main, and the constant + * that carries its files when the executable ships them itself + * (scr_node_island.c: scr_node_island_install_modules). */ +function nodeIslandModulesInstall( + emitter: LlEmitter, + modules: IrNodeIslandModules, +): { call: string; globals: string[] } { + emitter.declare( + `declare void @scr_node_island_install_modules(ptr, ${emitter.sizeType}, ptr, ${emitter.sizeType}, ptr)`, + ); + const manifest = nodeIslandManifest(modules); + const manifestPtr = emitter.cstr(manifest); + const location = emitter.cstr(modules.location ?? ""); + const data = modules.location === undefined ? emitter.nodeIslandModuleData : null; + const globals = + data === null || data.length === 0 + ? [] + : [ + `@sc_node_island_modules = private unnamed_addr constant [${data.length} x i8] c"${llvmBytes(data, false)}", align 16`, + ]; + const st = emitter.sizeType; + return { + call: ` call void @scr_node_island_install_modules(ptr ${manifestPtr}, ${st} ${Buffer.byteLength(manifest, "utf8")}, ptr ${globals.length > 0 ? "@sc_node_island_modules" : "null"}, ${st} ${globals.length > 0 ? data!.length : 0}, ptr ${location})`, + globals, + }; +} + export function helperDefs(emitter: LlEmitter): string[] { const defs: string[] = []; const msgHelper = (fnName: string, msgSym: string, msg: string): void => { diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index 050c3fb90..545d146a4 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -473,6 +473,9 @@ export interface LlvmTargetOptions { * teardown after `process.exit` to a helper process (`--detached-exit`). * Executables only; the runtime's weak default keeps it off. */ detachedExit?: boolean; + /** The files of the program's Node island module tree, in manifest order + * (node-islands/modules.ts), when the executable carries the tree. */ + nodeIslandModuleData?: Uint8Array; /** Translated WebAssembly memories check bounds explicitly instead of * relying on guard pages (wasm-modules.ts wasmBoundsChecks). */ wasmBoundsChecks?: boolean; @@ -1036,6 +1039,7 @@ export class LlEmitter { readonly emitLibraryIdentity: boolean; readonly runtimeAbiMarker: boolean; readonly detachedExit: boolean; + readonly nodeIslandModuleData: Uint8Array | null; readonly wasmBoundsChecks: boolean; /** Interned string literals: UTF-8 text → { symbol, byte length } — * first-use order, the runtime ABI’s determinism discipline. */ @@ -1618,6 +1622,7 @@ export class LlEmitter { this.emitLibraryIdentity = options.emitLibraryIdentity !== false; this.runtimeAbiMarker = options.runtimeAbiMarker === true; this.detachedExit = options.detachedExit === true; + this.nodeIslandModuleData = options.nodeIslandModuleData ?? null; this.wasmBoundsChecks = options.wasmBoundsChecks === true || wasmBoundsChecks({ diff --git a/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts b/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts index 14a2e3432..b368c91f4 100644 --- a/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts +++ b/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts @@ -727,6 +727,17 @@ export function streamCbThunkFor( const ty = host.llType(p); host.declare(`declare zeroext i1 @scr_exc_pending()`); if (hasThis) host.declare(`declare void @scr_stream_release_v(ptr)`); + // An entry `encoding` declared as a string (the declarations' + // `encoding: string`) receives "" where Node passes undefined or + // null (an object-mode write), as a write's encoding parameter does. + const entry = + p.kind === "array" && p.elem.kind === "record" + ? host.recordsById.get(p.elem.shapeId) + : undefined; + if (entry?.fields.some((f) => f.name === "encoding" && f.type.kind === "string")) { + host.declare(`declare void @scr_stream_writev_fill_encodings(ptr)`); + d.push(` call void @scr_stream_writev_fill_encodings(ptr %chunks)`); + } d.push( ` %vt${i} = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr %chunks, ptr null)`, ` %vtbad${i} = call zeroext i1 @scr_exc_pending()`, diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index 52af89584..2ad98ab7c 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -1142,6 +1142,8 @@ export const LIB_FN_SYMS: Record = { "readable.pushEncoding": "scr_stream_set_push_encoding", "stream.objectMode": "scr_stream_object_mode", "stream.decodeStrings": "scr_stream_decode_strings", + "stream.optionValues": "scr_stream_option_values", + "stream.checkEncodingOption": "scr_stream_check_encoding_option", "stream.duplexFromGen": "scr_stream_duplex_from_gen", "stream.duplexFromDyn": "scr_stream_duplex_from_dyn", "stream.duplexifyReadable": "scr_stream_duplexify_readable", @@ -1776,6 +1778,7 @@ export const USES_TIMERS_LIB_FNS = new Set([ "stream.setTransform", "stream.setFlush", "stream.setConstruct", + "stream.replaceConstruct", "stream.duplexFromGen", "stream.duplexFromDyn", "stream.duplexifyReadable", diff --git a/packages/compiler/src/backend/llvm/lib-stream.ts b/packages/compiler/src/backend/llvm/lib-stream.ts index 5fd4af1a9..fdbf13d4f 100644 --- a/packages/compiler/src/backend/llvm/lib-stream.ts +++ b/packages/compiler/src/backend/llvm/lib-stream.ts @@ -189,6 +189,7 @@ export function emitStreamLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlV e.fn === "stream.setTransform" || e.fn === "stream.setFlush" || e.fn === "stream.setConstruct" || + e.fn === "stream.replaceConstruct" || e.fn === "stream.setWritev" || e.fn === "stream.setWritevDefault" ) { @@ -203,6 +204,7 @@ export function emitStreamLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlV "stream.setTransform": "t", "stream.setFlush": "l", "stream.setConstruct": "c", + "stream.replaceConstruct": "c", "stream.setWritev": "v", "stream.setWritevDefault": "v", }; @@ -214,6 +216,7 @@ export function emitStreamLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlV "stream.setTransform": "scr_stream_set_transform", "stream.setFlush": "scr_stream_set_flush", "stream.setConstruct": "scr_stream_set_construct", + "stream.replaceConstruct": "scr_stream_replace_construct", "stream.setWritev": "scr_stream_set_writev", "stream.setWritevDefault": "scr_stream_set_writev_default", }; diff --git a/packages/compiler/src/backend/runtime-abi.ts b/packages/compiler/src/backend/runtime-abi.ts index 582e516ae..11bde6c2b 100644 --- a/packages/compiler/src/backend/runtime-abi.ts +++ b/packages/compiler/src/backend/runtime-abi.ts @@ -2,8 +2,8 @@ * of the link contract: a program object keeps this symbol undefined and the * matching runtime defines it, so incompatible manual links fail before the * program can start. */ -export const RUNTIME_ABI_VERSION = 36 as const; -export const RUNTIME_ABI_MARKER = "scr_runtime_abi_v36" as const; +export const RUNTIME_ABI_VERSION = 37 as const; +export const RUNTIME_ABI_MARKER = "scr_runtime_abi_v37" as const; /** Object consumption is useful today, but the complete scr_* surface may * still change before 1.0. The versioned marker prevents accidental mixing; diff --git a/packages/compiler/src/backend/runtime-pack-targets.test.ts b/packages/compiler/src/backend/runtime-pack-targets.test.ts index 739f6a385..44c3d6290 100644 --- a/packages/compiler/src/backend/runtime-pack-targets.test.ts +++ b/packages/compiler/src/backend/runtime-pack-targets.test.ts @@ -52,7 +52,7 @@ async function fixture(target: NativeTargetSpec, workers = false) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 36, marker: "scr_runtime_abi_v36" }, + runtime_abi: { version: 37, marker: "scr_runtime_abi_v37" }, compiler: { command: "fixture", identity: "fixture", target: target.llvmTriple }, macros: { executable: [], excluded: ["SCR_LIB"], sanitizer: "external-toolchain-required" }, flavors: { diff --git a/packages/compiler/src/backend/runtime-pack.test.ts b/packages/compiler/src/backend/runtime-pack.test.ts index 74bc32e73..e3bc999a7 100644 --- a/packages/compiler/src/backend/runtime-pack.test.ts +++ b/packages/compiler/src/backend/runtime-pack.test.ts @@ -127,7 +127,7 @@ async function fixture(target: NativeTargetSpec = MACOS_ARM64_TARGET) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 36, marker: "scr_runtime_abi_v36" }, + runtime_abi: { version: 37, marker: "scr_runtime_abi_v37" }, compiler: { command: "clang", identity: "fixture clang", diff --git a/packages/compiler/src/cli/usage.ts b/packages/compiler/src/cli/usage.ts index ca3ade8f6..570d81a8f 100644 --- a/packages/compiler/src/cli/usage.ts +++ b/packages/compiler/src/cli/usage.ts @@ -82,9 +82,9 @@ Options: --npm-static compile the named npm packages' shipped JS statically as program modules (repeatable; "auto" opts in every eligible - direct import: own .d.ts, unminified JS, no build-transform - markers; "pkg..." also names every package pkg depends - on). Packages that fail preflight are refused with a + direct import: own .d.ts, no build-transform markers; + "pkg..." also names every package pkg depends on). + Packages that fail preflight are refused with a diagnostic. Eligible dependencies compile automatically. --provenance-sources EXPERIMENTAL: compile npm dependencies from their diff --git a/packages/compiler/src/diagnostics/diagnostic.ts b/packages/compiler/src/diagnostics/diagnostic.ts index 6d6e81516..96b639b96 100644 --- a/packages/compiler/src/diagnostics/diagnostic.ts +++ b/packages/compiler/src/diagnostics/diagnostic.ts @@ -66,7 +66,8 @@ * likely-hot functions that use untyped values (SC6101, * diagnostics/dynamic-tier.ts) * SC8xxx Node islands: the program calls into Node.js, and the build - * finds no usable libnode pack (SC8005) + * finds no usable libnode pack (SC8005), or cannot collect the + * modules a call loads (SC8006) * SC9xxx internal compiler errors (still source-anchored) */ import type { SrcLoc } from "../ir/ir.js"; @@ -133,6 +134,18 @@ export function nodeIslandNodeDiag(message: string, file: string): ScrDiagnostic }; } +/** SC8006 — a Node island call whose modules the build cannot collect into + * the executable: a computed specifier, or a module of the program that + * loads others through computed specifiers. */ +export function nodeIslandModuleDiag(message: string, loc: SrcLoc): ScrDiagnostic { + return { + code: "SC8006", + message, + loc, + hint: "name the module with a string literal (a relative path or a package name); the build ships the modules it can see with the executable", + }; +} + /* ── SC6xxx: divergences from Node (warnings) ─────────────────────────── */ /** SC6001 — a value passed to (or declared as) a narrower record type is diff --git a/packages/compiler/src/executable/executable-cache.ts b/packages/compiler/src/executable/executable-cache.ts index b9be0724d..664b23f65 100644 --- a/packages/compiler/src/executable/executable-cache.ts +++ b/packages/compiler/src/executable/executable-cache.ts @@ -121,6 +121,9 @@ interface EarlyExecutableCacheStamp { native: EarlyExecutableNativeFeatures; /** The build's performance warnings (SC61xx), which a cache hit repeats. */ performance?: ScrDiagnostic[]; + /** Programs that call into Node.js: the libnode pack identity the build + * recorded (EarlyExecutableCacheOptions.libnodeIdentity). */ + libnode?: string; integrity: string; } @@ -139,9 +142,12 @@ export interface EarlyExecutableCacheOptions { windowsSubsystem?: "gui"; /** Omitted unless --detached-exit is set. */ detachedExit?: true; - /** Omitted unless --libnode or SCRIPTC_LIBNODE is set (calls into Node.js - * record the pack). */ - libnode?: string; + /** The identity of the libnode pack a program that calls into Node.js + * records (node-islands/libnode.ts libnodeCacheKey), or undefined when the + * build names none. Not part of the key: an entry of a program that calls + * into Node records it, and a hit requires the same identity, so the pack + * settings never change the key of a program that does not. */ + libnodeIdentity?: () => string | undefined; /** Omitted without --profile-generate/--profile-use; otherwise the * pattern, or the digest of the profile's bytes. */ profile?: string; @@ -283,7 +289,6 @@ function cacheKey(options: EarlyExecutableCacheOptions): string { ...(options.strip ? ["strip"] : []), ...(options.windowsSubsystem === "gui" ? ["windows-subsystem-gui"] : []), ...(options.detachedExit ? ["detached-exit"] : []), - ...(options.libnode !== undefined ? [`libnode:${options.libnode}`] : []), ...(options.profile !== undefined ? [options.profile] : []), ...(options.checker !== undefined ? [`checker:${options.checker}`] : []), ...(options.youngNursery ? ["young-nursery"] : []), @@ -326,7 +331,6 @@ function routeKey(options: Omit = { line: 0, @@ -1341,7 +1358,7 @@ export function lowerReadlineCreateCall( /** Property reads on an Interface: `history` (the history option itself, * or the interface's own empty array), `historySize`, `historyIndex`, * `crlfDelay`, `tabSize`, `escapeCodeTimeout`, `line`, `terminal` and - * `cursor` (a non-terminal interface's undefined cursor throws SC2020). + * `cursor` (undefined on a non-terminal interface). * Null for other receivers. */ export function lowerReadlineProperty( lowerer: Lowerer, @@ -1373,10 +1390,38 @@ export function lowerReadlineProperty( loc, }; } - const reads: Record = { + if (name === "cursor") { + // `number | undefined`: a non-terminal interface has no cursor + const recv = lowerer.lowerExprExpecting(access.expression, F64); + const type: IrType = { kind: "union", unionId: lowerer.unions.intern([F64, UNDEFINED_T]) }; + const local = recv.kind === "varRef" ? null : lowerer.declareHiddenLocal("%rlCursor", F64); + const id: IrExpr = local ? { kind: "varRef", localId: local.id, type: F64, loc } : recv; + const result: IrExpr = { + kind: "ternary", + cond: { kind: "libCall", fn: "rl.isTerminal", args: [id], type: BOOL, loc }, + then: lowerer.coerceToExpected( + { kind: "libCall", fn: "rl.cursor", args: [id], type: F64, loc }, + type, + ), + else_: lowerer.coerceToExpected( + { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc }, + type, + ), + type, + loc, + }; + if (!local) return result; + return { + kind: "seqExpr", + stmts: [{ kind: "varDecl", localId: local.id, init: recv, loc }], + result, + type, + loc, + }; + } + const reads: Record = { line: ["rl.line", STRING], terminal: ["rl.isTerminal", BOOL], - cursor: ["rl.cursor", F64], }; const read = reads[name]; if (read !== undefined) { diff --git a/packages/compiler/src/frontend/lowering/containers/string-replacement.ts b/packages/compiler/src/frontend/lowering/containers/string-replacement.ts index 780c77d0f..156f74869 100644 --- a/packages/compiler/src/frontend/lowering/containers/string-replacement.ts +++ b/packages/compiler/src/frontend/lowering/containers/string-replacement.ts @@ -2,6 +2,7 @@ import { keyedHelperName } from "../stable-names.js"; import * as ts from "../../ts7/adapter.js"; import { BOOL, + DYN, F64, REGEX, STRING, @@ -14,7 +15,7 @@ import { type IrType, type SrcLoc, } from "../../../ir/ir.js"; -import { numLit, strLit, varRef } from "../../../ir/build.js"; +import { dynUndefinedExpr, numLit, strLit, varRef } from "../../../ir/build.js"; import { InternalCompilerError } from "../../../errors.js"; import { locOf } from "../../program.js"; import type { Lowerer } from "../lowerer.js"; @@ -65,14 +66,14 @@ export function lowerStringReplacement( const search = argument(args[0], false); const replacement = argument(args[1], true); if (search.type.kind === "dyn" || replacement.type.kind === "dyn") { - if (replacement.type.kind === "func") { - lowerer.noLowering(`string .${method} with checked search values and callbacks`, call); - } // Evaluate all inputs once before choosing the search protocol. Regexes // retain their native pattern; plain values use the string-search helper. + // A typed callback receives the regex match's arguments or the plain + // search's (match, offset, subject). const values = [receiver, search, replacement]; const locals = values.map((value) => lowerer.declareHiddenLocal("%replaceArg", value.type)); const refs = locals.map((local) => varRef(local.id, local.type, loc)); + const callback = replacement.type.kind === "func"; const checkedReplacement = replacement.type.kind === "dyn" ? lowerer.coerceInto(args[1] ?? call, refs[2]!, STRING) @@ -91,14 +92,27 @@ export function lowerStringReplacement( ? { kind: "ternary", cond: { kind: "libCall", fn: "dyn.nativeRegexIs", args: [refs[1]!], type: BOOL, loc }, - then: { - kind: "regexIntrinsic", - method, - receiver: refs[0]!, - args: [lowerer.coerceInto(args[0] ?? call, refs[1]!, REGEX), checkedReplacement], - type: STRING, - loc, - }, + then: callback + ? { + kind: "libCall", + fn: "regex.replaceCallback", + args: [ + refs[0]!, + lowerer.coerceInto(args[0] ?? call, refs[1]!, REGEX), + lowerer.coerceToExpected(refs[2]!, DYN), + { kind: "boolLit", value: method === "replaceAll", type: BOOL, loc }, + ], + type: STRING, + loc, + } + : { + kind: "regexIntrinsic", + method, + receiver: refs[0]!, + args: [lowerer.coerceInto(args[0] ?? call, refs[1]!, REGEX), checkedReplacement], + type: STRING, + loc, + }, else_: plain, type: STRING, loc, @@ -148,11 +162,17 @@ function lowerStringReplacementValues( if (callback.kind !== "func") { throw new InternalCompilerError(`string .${method} replacement of type ${callback.kind}`); } + // A checked parameter receives the boxed argument (undefined after the + // subject), and a checked, number or boolean result converts with + // ToString. const full = [STRING, F64, STRING]; + const ret = callback.ret.kind; if ( - callback.ret.kind !== "string" || - callback.params.length > full.length || - !callback.params.every((type, index) => typeEquals(type, full[index]!)) + (ret !== "string" && ret !== "dyn" && ret !== "f64" && ret !== "bool") || + !callback.params.every( + (type, index) => + type.kind === "dyn" || (index < full.length && typeEquals(type, full[index]!)), + ) ) { lowerer.noLowering( `string .${method} callback signature`, @@ -175,13 +195,21 @@ function lowerStringReplacementValues( const chunksType = arrayOf(STRING); const chunks = varRef("chunks.0", chunksType, loc); const builder = stringBuilder(loc, chunks); - const value: IrExpr = { + const result: IrExpr = { kind: "callValue", callee: replace, - args: [needle, match, subject].slice(0, callback.params.length), - type: STRING, + args: callback.params.map((type, index) => { + const arg = [needle, match, subject][index]; + if (arg === undefined) return dynUndefinedExpr(loc); + return type.kind === "dyn" ? lowerer.coerceToExpected(arg, DYN) : arg; + }), + type: callback.ret, loc, }; + const value: IrExpr = + ret === "dyn" + ? { kind: "libCall", fn: "dyn.toStringCoerce", args: [result], type: STRING, loc } + : lowerer.ensureString(result, call); const stop: IrStmt = { kind: "break", loc }; const body: IrStmt[] = [ builder.declare("chunks.0", { kind: "arrayLit", elems: [], type: chunksType, loc }), diff --git a/packages/compiler/src/frontend/lowering/expressions/binary.ts b/packages/compiler/src/frontend/lowering/expressions/binary.ts index 58f6e16b5..17aef7b85 100644 --- a/packages/compiler/src/frontend/lowering/expressions/binary.ts +++ b/packages/compiler/src/frontend/lowering/expressions/binary.ts @@ -2841,6 +2841,24 @@ function lowerLogicalPair(lowerer: Lowerer, expr: ts.BinaryExpression, left: IrE loc, }; } + // A JavaScript default that tsc types `any` (`e.title || null` in an + // instance of a function with untyped parameters, where `e.title` is a + // string): the checked domain, as for union operands above. + if ( + target === null && + isJsSourceFile(ts.getSourceFileOfNode(expr)) && + lowerer.dynConvertible(left.type) && + lowerer.dynConvertible(right.type) + ) { + return { + kind: "logical", + op: op === ts.SyntaxKind.AmpersandAmpersandToken ? "&&" : "||", + left: lowerer.coerceInto(expr.left, left, DYN), + right: lowerer.coerceInto(expr.right, right, DYN), + type: DYN, + loc, + }; + } lowerer.unsupported("SC1042", expr); } return { diff --git a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts index fa8ad686f..01cab9901 100644 --- a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts +++ b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts @@ -33,6 +33,7 @@ import { isOptionalProcessVersionsRead, } from "../builtins/process.js"; import { requestGeneralStreamSurface } from "../general-streams.js"; +import { isOptionalReadlineCursorRead } from "../builtins/readline.js"; import { literalValues } from "../../literal-values.js"; import { literalUnionArm } from "../../union-discriminants.js"; import { checkedArmExtraction } from "../coercions/unions.js"; @@ -617,6 +618,8 @@ export function maybeNarrow(lowerer: Lowerer, expr: IrExpr, node: ts.Node): IrEx if (ts.isPropertyAccessExpression(node) && isOptionalProcessStreamProperty(lowerer, node)) return expr; if (isOptionalProcessVersionsRead(lowerer, node)) return expr; + if (ts.isPropertyAccessExpression(node) && isOptionalReadlineCursorRead(lowerer, node)) + return expr; // Represented fields and index values can include undefined even when // checker inference or lib.d.ts declares strings (RegExp captures). diff --git a/packages/compiler/src/frontend/lowering/lower-calls.ts b/packages/compiler/src/frontend/lowering/lower-calls.ts index 6b00ddb44..6363a1110 100644 --- a/packages/compiler/src/frontend/lowering/lower-calls.ts +++ b/packages/compiler/src/frontend/lowering/lower-calls.ts @@ -308,6 +308,22 @@ function mayHoldError(lowerer: Lowerer, type: ts.Type, errorType: ts.Type | null ); } +/** The `f` of a `(0, f)` callee (a numeric left operand, so dropping it + * changes only the call's receiver), or null. */ +function receiverlessCalleeOf(callee: ts.Expression): ts.Expression | null { + let e = callee; + while (ts.isParenthesizedExpression(e)) e = e.expression; + if ( + !ts.isBinaryExpression(e) || + e.operatorToken.kind !== ts.SyntaxKind.CommaToken || + !ts.isNumericLiteral(e.left) + ) + return null; + let right = e.right; + while (ts.isParenthesizedExpression(right)) right = right.expression; + return right; +} + export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { const loc = locOf(expr); if (lowerer.errorAccessorReflection === null) noteErrorAccessorReflection(lowerer, expr); @@ -331,6 +347,17 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { const json = lowerJsonRequireCall(lowerer, expr); if (json) return json; + // `(0, ns.member)(...)` over a builtin module (tsc's and esbuild's call + // without a receiver): Node's module functions do not read `this`, so it + // is the member call. + { + const member = receiverlessCalleeOf(expr.expression); + if (member !== null && ts.isPropertyAccessExpression(member)) { + const builtin = lowerer.lowerNamespaceBuiltinCall(expr, member); + if (builtin) return builtin; + } + } + // eval(...) and Function(...): Node's EvalError under // --disallow-code-generation-from-strings (code-generation.ts). { diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index 29afbb4fe..42c72c653 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -2738,8 +2738,8 @@ export function collectClassShapeInner( // state, so an override or shadowing field would split-brain. // Underscore methods are the SUPPORTED override form — but only // the ones the class's own base consumes (a `_read` on a - // Transform, or `_writev`/`_construct` anywhere, would be consumed - // by Node machinery that has no lowering here). + // Transform, or `_writev` on a Readable, would be consumed by Node + // machinery that has no lowering here). if (memberName && ts.isIdentifier(memberName)) { const streamBase = (() => { for (let c = base; c; c = c.base) if (c.builtinStream) return c; @@ -2758,7 +2758,7 @@ export function collectClassShapeInner( lowerer.unsupported( "SC1090", memberName, - `declaring '_writev' on a ${streamBase.def.name.slice(1)} subclass (batched writes are supported on Writable and Duplex subclasses)`, + `declaring '_writev' on a ${streamBase.def.name.slice(1)} subclass (a Readable has no writable side)`, ); } const accepted = streamCtorShape(streamBase.def.name).accepted; diff --git a/packages/compiler/src/frontend/lowering/lower-node-island.ts b/packages/compiler/src/frontend/lowering/lower-node-island.ts index 080a6862c..bab5f15a1 100644 --- a/packages/compiler/src/frontend/lowering/lower-node-island.ts +++ b/packages/compiler/src/frontend/lowering/lower-node-island.ts @@ -8,7 +8,11 @@ * Semantics, shared with packages/node/index.js (the Node implementation): * the arguments are copied with JSON.stringify of the argument array; the * module loads with require() from the calling module, so relative - * specifiers resolve from it; the result crosses as its JSON copy and is + * specifiers resolve from it. The specifier is a string literal: the build + * collects the module and what it loads into the executable + * (node-islands/modules.ts), and the call names its caller by its path in + * that tree, never by a path on the build machine. The result crosses as + * its JSON copy and is * checked against the declared result type, like `JSON.parse(s) as T`; a * thrown Error crosses as its nearest intrinsic class with its message and * string `code`. */ @@ -16,7 +20,8 @@ import { realpathSync } from "node:fs"; import * as ts from "../ts7/adapter.js"; import { locOf } from "../program.js"; import type { NodeApiMember } from "../node-api-import.js"; -import { type Lowerer } from "./lowerer.js"; +import { PoisonError, type Lowerer } from "./lowerer.js"; +import { nodeIslandModuleDiag } from "../../diagnostics/diagnostic.js"; import { DYN, STRING, type IrExpr, type IrType } from "../../ir/ir.js"; const JSON_HINT = @@ -89,7 +94,20 @@ export function lowerNodeApiCall( "pass the module specifier, the export name and each argument explicitly", ); } - const specifier = lowerer.lowerExprExpecting(argNodes[0]!, STRING); + const specifierNode = argNodes[0]!; + if (!ts.isStringLiteral(specifierNode) && !ts.isNoSubstitutionTemplateLiteral(specifierNode)) { + lowerer.pushDiag( + nodeIslandModuleDiag(`${surface} with a computed module specifier`, locOf(specifierNode)), + ); + throw new PoisonError(); + } + const caller = callerPath(call); + const problem = lowerer.nodeIslandModules.add(caller, specifierNode.text); + if (problem !== null) { + lowerer.pushDiag(nodeIslandModuleDiag(`${surface}: ${problem}`, locOf(specifierNode))); + throw new PoisonError(); + } + const specifier = lowerer.lowerExprExpecting(specifierNode, STRING); const name = lowerer.lowerExprExpecting(argNodes[1]!, STRING); const values = argNodes.slice(2).map((arg) => { const value = lowerer.lowerExpr(arg); @@ -109,15 +127,18 @@ export function lowerNodeApiCall( lowerer.noLowering(`'${lowerer.fmt(bad)}' results of ${surface}`, call, JSON_HINT); } lowerer.usesNodeIsland = true; + // The caller's tree path is known once every call is collected (Lowerer). + const callerLiteral: IrExpr & { kind: "strLit" } = { + kind: "strLit", + value: caller, + type: STRING, + loc, + }; + lowerer.nodeIslandCallers.push({ literal: callerLiteral, caller }); const raw: IrExpr = { kind: "libCall", fn: member === "call" ? "nodeIsland.call" : "nodeIsland.callSync", - args: [ - { kind: "strLit", value: callerPath(call), type: STRING, loc }, - specifier, - name, - { kind: "dynArrLit", elems: values, type: DYN, loc }, - ], + args: [callerLiteral, specifier, name, { kind: "dynArrLit", elems: values, type: DYN, loc }], type: member === "call" ? { kind: "promise", inner: DYN } : DYN, loc, }; diff --git a/packages/compiler/src/frontend/lowering/lower-stream.ts b/packages/compiler/src/frontend/lowering/lower-stream.ts index c37ae9074..04c2fa043 100644 --- a/packages/compiler/src/frontend/lowering/lower-stream.ts +++ b/packages/compiler/src/frontend/lowering/lower-stream.ts @@ -106,6 +106,61 @@ function pureRead(node: ts.Expression): boolean { return false; } +/** A literal, `undefined`, or a function expression: a value that reads + * no binding or property. */ +function constantOptionValue(node: ts.Expression): boolean { + let e = node; + while (ts.isParenthesizedExpression(e) || ts.isAsExpression(e) || ts.isTypeAssertion(e)) + e = e.expression; + if (ts.isIdentifier(e)) return e.text === "undefined"; + if ( + ts.isPrefixUnaryExpression(e) && + (e.operator === ts.SyntaxKind.MinusToken || + e.operator === ts.SyntaxKind.PlusToken || + e.operator === ts.SyntaxKind.ExclamationToken) + ) + return constantOptionValue(e.operand); + return ( + ts.isStringLiteralLike(e) || + ts.isNumericLiteral(e) || + ts.isBigIntLiteral(e) || + e.kind === ts.SyntaxKind.TrueKeyword || + e.kind === ts.SyntaxKind.FalseKeyword || + e.kind === ts.SyntaxKind.NullKeyword || + ts.isArrowFunction(e) || + ts.isFunctionExpression(e) + ); +} + +/** Whether a runtime decodeStrings or defaultEncoding value (`prop`'s + * `value`) may be read before the other option members. Those values are + * read into locals before the constructor evaluates the other members, + * while Node evaluates the members in order, so every earlier member must + * evaluate without effects, and when the value itself has effects, every + * earlier member must also read nothing those effects could change. */ +function earlierOptionsPure( + options: ts.ObjectLiteralExpression, + prop: ts.Node, + value: ts.Expression, +): boolean { + const valueHasEffects = !sideEffectFreeOptionValue(value) && !pureRead(value); + for (const member of options.properties.nodes) { + if (member === prop) return true; + if (ts.isPropertyAssignment(member)) { + const init = member.initializer; + if ( + valueHasEffects + ? !constantOptionValue(init) + : !sideEffectFreeOptionValue(init) && !pureRead(init) + ) + return false; + } else if (ts.isShorthandPropertyAssignment(member)) { + if (valueHasEffects) return false; + } else if (ts.isSpreadAssignment(member)) return false; + } + return true; +} + /** The stream sides of a receiver class: the nearest stream-class * ancestor's, or null off the stream hierarchy. */ export function streamSidesOf( @@ -179,15 +234,15 @@ export const UNDERSCORE_METHODS: ReadonlyMap = new Map([ /** The option callbacks applied after construction rather than through * the constructor's callback slots (option name → method name): construct - * on every stream class, and writev on the writable classes whose - * machinery hands it batches (Writable and Duplex). */ + * on every stream class, and writev on every class with a writable side + * (a Transform's batches reach writev, not the transform, as in Node). */ export const STREAM_EXTRA_CALLBACKS: ReadonlyMap = new Map([ ["construct", "_construct"], ["writev", "_writev"], ]); export function streamExtraCallbacks(cls: string): readonly string[] { - return cls === "%Writable" || cls === "%Duplex" ? ["construct", "writev"] : ["construct"]; + return cls === "%Readable" ? ["construct"] : ["construct", "writev"]; } /** The completion callback's parameter position in each underscore @@ -442,6 +497,13 @@ interface StreamOptions { * right after construction (Node's constructors call addAbortSignal * once the state exists), or null when absent. */ signal: IrExpr | null; + /** Non-literal decodeStrings and defaultEncoding values: valueDecls + * evaluates them into locals before construction (the defaultEncoding + * validated there, as the state constructors throw before the stream + * exists), and stream.optionValues applies them to the fresh stream. */ + valueDecls: IrStmt[]; + decodeStringsValue: IrExpr | null; + defaultEncodingValue: IrExpr | null; /** The objectMode option's sides (a Duplex's readableObjectMode and * writableObjectMode set one side): applied with stream.objectMode * right after construction. */ @@ -732,6 +794,12 @@ function pinAnyDataCompletion( if (!symbol || lowerer.stageSourceTypes.has(symbol)) return null; const declared = lowerer.paramShape(param).type; if (declared.kind !== "func" || declared.rest || declared.params[1]?.kind !== "dyn") return null; + // Only when every use calls the callback with a Buffer, a string or + // nothing as `data`: another value (or a callback that escapes) keeps + // `data` checked-dynamic, so the runtime pushes it as push(data) does + // and reports ERR_INVALID_ARG_TYPE through 'error', as Node does. + if (fnNode.body === undefined || !completionDataIsChunk(lowerer, fnNode.body, symbol, param.name)) + return null; const data = unionOf(lowerer, [BYTES, STRING, { kind: "undefinedT" }]); lowerer.stageSourceTypes.set( symbol, @@ -740,6 +808,59 @@ function pinAnyDataCompletion( return symbol; } +/** Whether every reference to the completion callback `symbol` in `body` + * calls it with a `data` argument that is a Buffer, a string, null or + * undefined (or with no data). */ +function completionDataIsChunk( + lowerer: Lowerer, + body: ts.Node, + symbol: ts.Symbol, + declaration: ts.Node, +): boolean { + let ok = true; + const visit = (node: ts.Node): void => { + if (!ok) return; + if ( + ts.isIdentifier(node) && + node !== declaration && + lowerer.checker.getSymbolAtLocation(node) === symbol + ) { + const call = node.parent; + if (!call || !ts.isCallExpression(call) || call.expression !== node) { + ok = false; + return; + } + const data = call.arguments.nodes[1]; + if (data !== undefined) { + let t: IrType | null; + try { + t = lowerer.mapTypeOf(lowerer.typeOf(data)); + } catch { + t = null; + } + const arms = + t?.kind === "union" ? (lowerer.unions.get(t.unionId)?.arms ?? null) : t ? [t] : null; + if ( + arms === null || + !arms.every( + (a) => + (a.kind === "bytes" && a.elem === "u8") || + a.kind === "string" || + a.kind === "undefinedT" || + a.kind === "nullT", + ) + ) { + ok = false; + return; + } + } + } + ts.forEachChild(node, visit); + }; + visit(body); + return ok; +} + /** Parses the options object literal of a stream constructor. `which` * names the callbacks this class accepts, in canonical flag order. */ function parseStreamOptions( @@ -767,6 +888,9 @@ function parseStreamOptions( badEncoding: null, pushEncoding: null, signal: null, + valueDecls: [], + decodeStringsValue: null, + defaultEncodingValue: null, readableObject: false, writableObject: false, decodeStringsOff: false, @@ -802,6 +926,21 @@ function parseStreamOptions( optsLit !== undefined && ts.isObjectLiteralExpression(optsLit) && literalWritesValues(optsLit, ctorName !== "Readable" && ctorName !== "Writable"); + // In JavaScript a decodeStrings value known only at run time may let + // string writes through, so the write and transform callbacks' chunk + // parameters read as any (the declarations type it Buffer). + const runtimeDecodeStrings = + optsLit !== undefined && + isJsSourceFile(ts.getSourceFileOfNode(optsLit)) && + ts.isObjectLiteralExpression(optsLit) && + (optsLit.properties?.nodes ?? []).some( + (p) => + ts.isPropertyAssignment(p) && + (ts.isIdentifier(p.name) || ts.isStringLiteral(p.name)) && + p.name.text === "decodeStrings" && + p.initializer.kind !== ts.SyntaxKind.TrueKeyword && + p.initializer.kind !== ts.SyntaxKind.FalseKeyword, + ); if (out.readableObject) out.hwmR = numLit(16, loc); if (out.writableObject) out.hwmW = numLit(16, loc); const tuples = cbTuples(lowerer); @@ -851,6 +990,7 @@ function parseStreamOptions( } const full = tuples[name]!.map((t) => (t === "fn" ? null : t)); const pinned = out.readableObject ? null : pinAnyDataCompletion(lowerer, name, fnNode); + let anyChunk: ts.Symbol | undefined; try { // The completion-callback tail: typed by the checker contextually; // accept the user's declared func type as the tuple's entry so the @@ -867,12 +1007,22 @@ function parseStreamOptions( } return declared ?? funcOf([], VOID); }); + const chunkParam = + runtimeDecodeStrings && (name === "write" || name === "transform") + ? fnNode.parameters.nodes[0] + : undefined; + anyChunk = + chunkParam !== undefined && ts.isIdentifier(chunkParam.name) && !chunkParam.type + ? lowerer.checker.getSymbolAtLocation(chunkParam.name) + : undefined; + if (anyChunk) lowerer.anySymbols.add(anyChunk); present.set( name, lowerStreamCallback(lowerer, name, fnNode, thisType, tuple, writesValues), ); } finally { if (pinned) lowerer.stageSourceTypes.delete(pinned); + if (anyChunk) lowerer.anySymbols.delete(anyChunk); } continue; } @@ -925,11 +1075,25 @@ function parseStreamOptions( if (writableClass) out.decodeStringsOff = true; break; } - lowerer.noLowering( - `${ctorName} with a runtime 'decodeStrings' value`, - prop, - "write 'decodeStrings: true' or 'decodeStrings: false'", - ); + // a runtime value: WritableState's `options.decodeStrings !== false` + if ( + optsLit !== undefined && + ts.isObjectLiteralExpression(optsLit) && + !earlierOptionsPure(optsLit, prop, value) + ) + lowerer.noLowering( + `the ${ctorName} option 'decodeStrings' with a runtime value that an earlier option value could observe or change`, + prop, + "compute the option values into consts before the options object (the runtime value is read before the other options run)", + ); + const local = lowerer.declareHiddenLocal("%decodeStrings", DYN); + out.valueDecls.push({ + kind: "varDecl", + localId: local.id, + init: lowerer.lowerExprExpecting(value, DYN), + loc, + }); + if (writableClass) out.decodeStringsValue = varRef(local.id, DYN, loc); break; } case "encoding": { @@ -973,11 +1137,43 @@ function parseStreamOptions( break; } } - lowerer.noLowering( - `the ${ctorName} option 'defaultEncoding' with a runtime value`, - prop, - "write the encoding as a string literal", - ); + { + // a runtime value: null, undefined and utf8 are the default, + // another name Buffer.isEncoding knows is kept as given, and any + // other value throws ERR_UNKNOWN_ENCODING before construction + if ( + optsLit !== undefined && + ts.isObjectLiteralExpression(optsLit) && + !earlierOptionsPure(optsLit, prop, value) + ) + lowerer.noLowering( + `the ${ctorName} option 'defaultEncoding' with a runtime value that an earlier option value could observe or change`, + prop, + "compute the option values into consts before the options object (the runtime value is read before the other options run)", + ); + const local = lowerer.declareHiddenLocal("%defaultEncoding", DYN); + const ref = varRef(local.id, DYN, loc); + out.valueDecls.push( + { + kind: "varDecl", + localId: local.id, + init: lowerer.lowerExprExpecting(value, DYN), + loc, + }, + { + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "stream.checkEncodingOption", + args: [ref], + type: VOID, + loc, + }, + loc, + }, + ); + out.defaultEncodingValue = ref; + } break; case "signal": { // `if (options.signal) addAbortSignal(options.signal, this)`: @@ -1041,9 +1237,7 @@ function parseStreamOptions( lowerer.noLowering( `the ${ctorName} option 'writev'`, prop, - ctorName === "Readable" - ? "a Readable has no writable side" - : "batched writes on a Transform would bypass its transform — writev is supported on Writable and Duplex", + "a Readable has no writable side", ); break; default: @@ -1083,6 +1277,9 @@ function streamCtorArgs( badEncoding: string | null; pushEncoding: string | null; signal: IrExpr | null; + valueDecls: IrStmt[]; + decodeStringsValue: IrExpr | null; + defaultEncodingValue: IrExpr | null; readableObject: boolean; writableObject: boolean; decodeStringsOff: boolean; @@ -1117,6 +1314,9 @@ function streamCtorArgs( badEncoding: o.badEncoding, pushEncoding: o.pushEncoding, signal: o.signal, + valueDecls: o.valueDecls, + decodeStringsValue: o.decodeStringsValue, + defaultEncodingValue: o.defaultEncodingValue, readableObject: o.readableObject, writableObject: o.writableObject, decodeStringsOff: o.decodeStringsOff, @@ -1237,6 +1437,18 @@ export function lowerStreamNew(lowerer: Lowerer, expr: ts.NewExpression, info: C loc, }; } + const values = optionValuesArgs(parsed, loc); + if (values) { + // runtime decodeStrings and defaultEncoding values (answers the + // receiver +1) + built = { + kind: "libCall", + fn: "stream.optionValues", + args: [built, ...values], + type: thisType, + loc, + }; + } if (parsed.pushEncoding !== null) { // { defaultEncoding }: chain the push-side decode default (the // setEncoding chaining shape — answers the receiver +1). @@ -1269,8 +1481,11 @@ export function lowerStreamNew(lowerer: Lowerer, expr: ts.NewExpression, info: C loc, }; } - if (!parsed.decodeStringsOff && parsed.writeEncoding === null && parsed.extras.length === 0) - return built; + if (!parsed.decodeStringsOff && parsed.writeEncoding === null && parsed.extras.length === 0) { + return parsed.valueDecls.length > 0 + ? { kind: "seqExpr", stmts: parsed.valueDecls, result: built, type: thisType, loc } + : built; + } const fresh = lowerer.declareHiddenLocal("%stream", thisType); const followUps = streamOptionFollowUps( parsed, @@ -1280,13 +1495,30 @@ export function lowerStreamNew(lowerer: Lowerer, expr: ts.NewExpression, info: C ); return { kind: "seqExpr", - stmts: [{ kind: "varDecl", localId: fresh.id, init: built, loc }, ...followUps], + stmts: [ + ...parsed.valueDecls, + { kind: "varDecl", localId: fresh.id, init: built, loc }, + ...followUps, + ], result: varRef(fresh.id, thisType, loc), type: thisType, loc, }; } +/** stream.optionValues' (decodeStrings, defaultEncoding) arguments, or + * null when both options are literals or absent. */ +function optionValuesArgs( + parsed: { decodeStringsValue: IrExpr | null; defaultEncodingValue: IrExpr | null }, + loc: SrcLoc, +): IrExpr[] | null { + if (parsed.decodeStringsValue === null && parsed.defaultEncodingValue === null) return null; + return [ + parsed.decodeStringsValue ?? dynUndefinedExpr(loc), + parsed.defaultEncodingValue ?? dynUndefinedExpr(loc), + ]; +} + /** True when a value of Node's argument type `passed` widens implicitly * into the declared parameter type `declared` (one of its union arms, or a * sub-union of it). */ @@ -1589,6 +1821,7 @@ export function lowerStreamSuperCall( ]; } const out: IrStmt[] = [ + ...parsed.valueDecls, { kind: "exprStmt", expr: { @@ -1614,6 +1847,20 @@ export function lowerStreamSuperCall( loc, }); } + const values = optionValuesArgs(parsed, loc); + if (values) { + out.push({ + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "stream.optionValues", + args: [thisRef(), ...values], + type: thisType, + loc, + }, + loc, + }); + } if (parsed.pushEncoding !== null) { out.push({ kind: "exprStmt", @@ -1697,16 +1944,15 @@ export function lowerStreamUnderscoreAssign( const loc = locOf(expr); const cls = base.def.name; const clsName = cls.slice(1); - if (methodName === "_construct") { - // Node's constructor reads _construct once; a later assignment has no - // effect there - lowerer.noLowering( - `assigning '${methodName}' on a ${clsName}`, - expr.left, - "declare _construct on the class or pass the construct option", - ); - } - const which = methodName === "_writev" ? "writev" : optionByMethod.get(methodName)!; + // `_construct`: Node's constructNT reads it on the construction tick, so + // an assignment before that tick replaces a scheduled hook + // (stream.replaceConstruct) and has no effect after it or without one. + const which = + methodName === "_writev" + ? "writev" + : methodName === "_construct" + ? "construct" + : optionByMethod.get(methodName)!; const { accepted } = streamCtorShape(cls); if (!accepted.includes(which) && !streamExtraCallbacks(cls).includes(which)) { lowerer.noLowering( @@ -1745,6 +1991,7 @@ export function lowerStreamUnderscoreAssign( transform: "stream.setTransform", flush: "stream.setFlush", writev: "stream.setWritev", + construct: "stream.replaceConstruct", }; return { kind: "exprStmt", @@ -2699,6 +2946,22 @@ class StreamArgTypeThrow extends Error { } } +/** Whether a checked-dynamic pipeline callback can take undefined as its + * error: a callback that is already checked-dynamic, one without + * parameters, and one whose first parameter (or rest element) type holds + * undefined. */ +function callbackErrorAdmitsUndefined(lowerer: Lowerer, cb: IrExpr): boolean { + if (cb.kind !== "dynFrom" || cb.value.type.kind !== "func") return true; + const fnT = cb.value.type; + const first = fnT.params[0]; + if (first === undefined) return true; + const p0 = + fnT.rest === true && fnT.params.length === 1 && first.kind === "array" ? first.elem : first; + if (p0.kind === "dyn" || p0.kind === "jsval" || p0.kind === "undefinedT") return true; + if (p0.kind !== "union") return false; + return lowerer.unions.get(p0.unionId)?.arms.some((a) => a.kind === "undefinedT") ?? false; +} + /** The finished/pipeline completion callback: an inline function lowers * through the option-callback machinery (leading `this`, an `Error | * null` prefix — Node binds the stream and passes the error); any other @@ -3160,12 +3423,16 @@ export function lowerStreamModuleCall( // an async generator) reaches the callback through the // checked-dynamic path. const cb = lowerer.lowerExprExpecting(args[args.length - 1]!, DYN); - // SCR_PIPE_TYPED_CB: typed code's callback takes null for no error + // SCR_PIPE_TYPED_CB: a typed callback whose error parameter cannot + // hold undefined takes null for no error; others take undefined. const stagedArgs = [...staged.args]; const flagsArg = stagedArgs[3]!; if (flagsArg.kind !== "numLit") throw new InternalCompilerError("pipeline flags not a literal"); - if (!isJsSourceFile(ts.getSourceFileOfNode(call))) + if ( + !isJsSourceFile(ts.getSourceFileOfNode(call)) && + !callbackErrorAdmitsUndefined(lowerer, cb) + ) stagedArgs[3] = numLit(flagsArg.value | 128, loc); return staged.wrap({ kind: "libCall", diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 83adae9f8..4b6b0acdf 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -496,7 +496,7 @@ import { lowerBuiltinExtraProperty } from "./builtins/properties.js"; import { registerPromisifiedBuiltinDecl } from "./builtins/callable-aliases.js"; import { lowerExecFileAsyncCall } from "./builtins/child-process-async.js"; import { lowerStringDecoderMethodCall, lowerTextCodecCall } from "./builtins/text-codecs.js"; -import { lowerReadlineMethodCall } from "./builtins/readline.js"; +import { isOptionalReadlineCursorRead, lowerReadlineMethodCall } from "./builtins/readline.js"; import { lowerDiagnosticsChannelMethodCall, lowerDiagnosticsChannelProperty, @@ -675,6 +675,7 @@ import { maybePromiseUnionOf, promiseArmedUnionOf, } from "./maybe-promise.js"; +import { NodeIslandModuleCollector } from "../../node-islands/modules.js"; /** Entry function name. '%' cannot appear in a TS identifier, so a user * function can never collide with it (mangling is injective per prefix). */ @@ -3140,6 +3141,10 @@ export class Lowerer { /** The program calls into Node.js (@scriptc/node): the module carries * the nodeIsland record, which the executable build fills in. */ usesNodeIsland = false; + /** The modules Node island calls load (lower-node-island.ts). */ + readonly nodeIslandModules = new NodeIslandModuleCollector(); + /** Each call's caller literal, set to its tree path when lowering ends. */ + readonly nodeIslandCallers: { literal: IrExpr & { kind: "strLit" }; caller: string }[] = []; /** Per-directory answers of experimental-import.ts's declaration-file test. */ readonly experimentalFiles = new Map(); /** Interned LifetimeRegion.run helpers, by callback type key. */ @@ -5558,6 +5563,7 @@ export class Lowerer { if (isIndexedRead(e)) return true; if (ts.isPropertyAccessExpression(e) && isRecordIndexPropertyRead(e)) return true; if (ts.isPropertyAccessExpression(e) && isOptionalProcessStreamProperty(this, e)) return true; + if (ts.isPropertyAccessExpression(e) && isOptionalReadlineCursorRead(this, e)) return true; if (isOptionalProcessVersionsRead(this, e)) return true; if (ts.isPropertyAccessExpression(e) && isSettledIteratorValueRead(this, e)) return true; if (ts.isPropertyAccessExpression(e) && isOsConstantsSymbol(symbolOf(e.expression), this)) @@ -7804,7 +7810,7 @@ export class Lowerer { entry: ENTRY_NAME, ...(this.usesWorkers ? { workers: true } : {}), ...(this.usesLifetimeRegions ? { lifetimeRegions: true as const } : {}), - ...(this.usesNodeIsland ? { nodeIsland: { libnode: "", nodeVersion: "" } } : {}), + ...(this.usesNodeIsland ? { nodeIsland: this.nodeIslandRecord() } : {}), ...(this.declBoundary ? { declBoundary: true as const } : {}), ...(this.threadSlotKeys.size > 0 ? { threadSlotKeys: [...this.threadSlotKeys].sort() } @@ -8643,6 +8649,16 @@ export class Lowerer { this.diags.push(d); } + /** The module's Node island record: the collected module tree, with each + * call's caller literal set to its path in that tree. The executable + * build fills in the libnode pack (index.ts). */ + private nodeIslandRecord(): NonNullable { + const modules = this.nodeIslandModules.tree(); + for (const { literal, caller } of this.nodeIslandCallers) + literal.value = NodeIslandModuleCollector.callerPath(modules, caller); + return { libnode: "", nodeVersion: "", ...(modules === null ? {} : { modules }) }; + } + unsupported( code: keyof typeof UNSUPPORTED & `SC${number}`, node: ts.Node, diff --git a/packages/compiler/src/frontend/lowering/var-hoisting.ts b/packages/compiler/src/frontend/lowering/var-hoisting.ts index 3f950f3ca..0b415bb3d 100644 --- a/packages/compiler/src/frontend/lowering/var-hoisting.ts +++ b/packages/compiler/src/frontend/lowering/var-hoisting.ts @@ -6,9 +6,11 @@ * * A binding settles at the first statement of its hoisting scope (the * function body or the source file) that stores it unconditionally: a - * direct `var x = e`, `x = e;`, or a loop declaring it (`for (var i = 0; - * ...)`, `for (var k in o)`), whose own condition, update and body run - * after the store. A read settles when it runs after that statement: + * direct `var x = e`, `x = e;`, or a `for` loop declaring it (`for (var + * i = 0; ...)`), whose own condition, update and body run after the store. + * A `for (var k in o)` or `for (var v of xs)` loop stores the binding only + * when it iterates, so it settles the reads in its body and no others. A + * read settles when it runs after the settling statement: * - a read in the scope's own code, in a TypeScript file: tsc's * definite-assignment analysis rejects any earlier one; * - a read in the scope's own code, in a JavaScript file: its statement @@ -194,6 +196,18 @@ function referencesBySymbol( return out; } +/** Where a binding is first stored unconditionally: the scope statement's + * index, and for a declarator of a `var` statement or a `for` initializer, + * the list and the declarator's end. */ +interface Settle { + index: number; + list: ts.VariableDeclarationList | null; + end: number; + /** The first for-in/of loop declaring the binding before `index`, whose + * body runs after its store, or -1. */ + loop: number; +} + class ScopeAnalysis { private readonly js: boolean; /** Whether a function declaration's references all settle, by scope @@ -214,10 +228,13 @@ class ScopeAnalysis { } /** The index of the scope statement that first stores `symbol` - * unconditionally, or Infinity. */ - settleIndex(scope: Scope, symbol: ts.Symbol): number { + * unconditionally (Infinity when none does), and, when that statement + * declares it in a `var` statement or a `for` initializer, the end of the + * storing declarator: later declarators of the list run after it. */ + settleIndex(scope: Scope, symbol: ts.Symbol): Settle { const statements = statementsOf(scope); const checker = this.lowerer.checker; + let loopIndex = -1; for (let i = 0; i < statements.length; i++) { const s = statements[i]!; const list = ts.isVariableStatement(s) @@ -233,8 +250,10 @@ class ScopeAnalysis { if ( (d.initializer !== undefined || loop) && boundIdentifiersOf(d.name).some((n) => checker.getSymbolAtLocation(n) === symbol) - ) - return i; + ) { + if (!loop) return { index: i, list, end: d.end, loop: loopIndex }; + if (loopIndex < 0) loopIndex = i; + } } } else if ( ts.isExpressionStatement(s) && @@ -243,20 +262,21 @@ class ScopeAnalysis { ts.isIdentifier(s.expression.left) && checker.getSymbolAtLocation(s.expression.left) === symbol ) { - return i; + return { index: i, list: null, end: -1, loop: loopIndex }; } } - return Infinity; + return { index: Infinity, list: null, end: -1, loop: loopIndex }; } /** Whether `ref` (inside `scope`, or in another module) runs only after - * the statement at index `settle`. `read`: `ref` reads the binding - * itself, so tsc vouches for one in the scope's own code. */ - settles(scope: Scope, settle: number, ref: ts.Identifier, read = true): boolean { + * the store `settle` describes. `read`: `ref` reads the binding itself, + * so tsc vouches for one in the scope's own code. */ + settles(scope: Scope, settle: Settle, ref: ts.Identifier, read = true): boolean { if (ts.getSourceFileOfNode(ref) !== this.sf) return true; const statements = statementsOf(scope); let deferred: ts.Node | null = null; let top: ts.Node | null = null; + const container: ts.Node | undefined = ts.isSourceFile(scope) ? scope : scope.body; for (let n: ts.Node = ref; n.parent !== undefined && n !== scope; n = n.parent) { if ( ts.isFunctionLike(n) || @@ -265,18 +285,26 @@ class ScopeAnalysis { ts.isClassStaticBlockDeclaration(n) ) deferred = n; - if (n.parent === scope || (!ts.isSourceFile(scope) && n.parent === scope.body)) top = n; + // The scope's own statement, not the function body that holds it. + if (n.parent === container) top = n; } if (top === null) return false; if (deferred === null && read && !this.js) return true; if (deferred !== null && ts.isFunctionDeclaration(deferred) && deferred.name !== undefined) return this.functionSettles(scope, settle, deferred); const index = statements.indexOf(top as ts.Statement); - return index > settle || (index === settle && settlesWithin(top, ref)); + return ( + index > settle.index || + (index === settle.index && + (settlesWithin(top, ref) || + // A later declarator of the storing list (`var a = {}, b = { ...a }`). + (settle.list !== null && isInside(ref, settle.list) && ref.pos >= settle.end))) || + (index === settle.loop && settlesWithin(top, ref)) + ); } - private functionSettles(scope: Scope, settle: number, fn: ts.FunctionDeclaration): boolean { - const key = `${fn.pos}:${settle}`; + private functionSettles(scope: Scope, settle: Settle, fn: ts.FunctionDeclaration): boolean { + const key = `${fn.pos}:${settle.index}:${settle.end}:${settle.loop}`; const known = this.functionMemo.get(key); if (known !== undefined) return known; this.functionMemo.set(key, true); diff --git a/packages/compiler/src/frontend/npm-static-bundled-chunks.test.ts b/packages/compiler/src/frontend/npm-static-bundled-chunks.test.ts index 0779db3ce..dc238c622 100644 --- a/packages/compiler/src/frontend/npm-static-bundled-chunks.test.ts +++ b/packages/compiler/src/frontend/npm-static-bundled-chunks.test.ts @@ -276,13 +276,14 @@ export default require_f(); ).toBeNull(); }); -test("an identifier-minified bundle names its lost helper names", () => { - // esbuild --minify output: the helper shapes survive, their names do not. - const result = split( +test("an identifier-minified bundle splits through its helper's shape", () => { + // esbuild --minify output: the helper shape survives, its name does not. + const answer = expectSameBehavior( `var c=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);` + - `var x=c((t,m)=>{m.exports={v:1}});console.log(x().v);`, + `var x=c((t,m)=>{m.exports={v:1}});var y=c(t=>{t.w=x().v+1});` + + `console.log(x().v,y().w,x()===x());`, ); - expect(result).toEqual({ degrade: expect.stringContaining("identifier-minified") as string }); + expect(answer.chunks.map((c) => basename(c.path))).toEqual(["index.js.x.cjs", "index.js.y.cjs"]); }); test("an ES-module bundle of CommonJS chunks names the chunk interop", () => { diff --git a/packages/compiler/src/frontend/npm-static-bundled-chunks.ts b/packages/compiler/src/frontend/npm-static-bundled-chunks.ts index 37a74f2be..66c25403b 100644 --- a/packages/compiler/src/frontend/npm-static-bundled-chunks.ts +++ b/packages/compiler/src/frontend/npm-static-bundled-chunks.ts @@ -525,7 +525,7 @@ export function splitBundledChunks( } } } - const helperNames = [...top.keys()].filter((n) => helperBase(n) === "__commonJS"); + let helperNames = [...top.keys()].filter((n) => helperBase(n) === "__commonJS"); // Every name a recognizer relies on is written nowhere and declared // once at the top level; `Object` itself is never rebound. @@ -552,18 +552,14 @@ export function splitBundledChunks( ); }; if (helperNames.length === 0) { - // The helper's shape under another name: an identifier-minified bundle, - // whose other interop helpers lost their names as well. - for (const [name, t] of top) { + // An identifier-minified bundle: the helper's shape under another name. + helperNames = [...top].flatMap(([name, t]) => { const init = ts.isVariableDeclaration(t.node) ? t.node.initializer : undefined; - if (init !== undefined && stable(name) && helperForm(init, sf, ownNames) !== null) - return { - degrade: - "its shipped JS is an identifier-minified bundle whose bundler-interop helpers " + - "(__commonJS and the rest) have lost the names the recognizers verify", - }; - } - return null; + return init !== undefined && stable(name) && helperForm(init, sf, ownNames) !== null + ? [name] + : []; + }); + if (helperNames.length === 0) return null; } const forms = new Map(); for (const name of helperNames) { diff --git a/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts b/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts index c48420625..917041603 100644 --- a/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts +++ b/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts @@ -260,11 +260,21 @@ function definePropertyExportOf( value = getterReturnOf(p); } } - const esModuleStamp = - name === "__esModule" && value !== null && value.kind === ts.SyntaxKind.TrueKeyword; + const esModuleStamp = name === "__esModule" && value !== null && isTrueLiteral(value); return { name, value, esModuleStamp }; } +/** `true`, or `!0`, its minified spelling. */ +function isTrueLiteral(expr: ts.Expression): boolean { + return ( + expr.kind === ts.SyntaxKind.TrueKeyword || + (ts.isPrefixUnaryExpression(expr) && + expr.operator === ts.SyntaxKind.ExclamationToken && + ts.isNumericLiteral(expr.operand) && + expr.operand.text === "0") + ); +} + /** Space-pads [start, end) of `text` preserving newlines — the recognized * statement disappears while every original offset survives. */ function padSpan(text: string, start: number, end: number): string { diff --git a/packages/compiler/src/frontend/npm-static.ts b/packages/compiler/src/frontend/npm-static.ts index 800d02eff..eed02c95c 100644 --- a/packages/compiler/src/frontend/npm-static.ts +++ b/packages/compiler/src/frontend/npm-static.ts @@ -614,27 +614,12 @@ export function clearProgramBuiltinAliasCache(): void { * but the bundler-emitted CJS export rewrite (npm-static-rewrite.ts) * types the getter-table shapes and the offender attribution degrades a * package whose surface still breaks its consumers — so those bundles are - * worth ATTEMPTING: eligible when the .d.ts and unminified criteria hold, - * gracefully per-package-degraded when the attempt fails. */ + * worth ATTEMPTING: eligible when the .d.ts criteria hold, gracefully + * per-package-degraded when the attempt fails. Minified JS is attempted + * too: a minified dist is ordinary JavaScript, and the bundle recognizers + * know esbuild's __commonJS helper by its shape under any name. */ const TRANSFORM_MARKERS = ["__webpack_require__"]; -/** Unminified-JS heuristic over an entry source: at least two lines and - * an average line length under 200 characters (minified dists are one - * enormous line; readable code averages well under 100). */ -function looksUnminified(source: string): boolean { - const lines = source.split("\n"); - if (lines.length < 2) return false; - return source.length / lines.length <= 200; -} - -/** A whitespace/syntax-minified bundler dist whose interop helpers keep - * their names (`var __toESM=…,__toCommonJS=mod=>…`): the recognizers - * verify those shapes and refuse the package precisely when they cannot, - * so the minification heuristic need not refuse it up front. */ -function namedBundlerHelpers(source: string): boolean { - return /\b__(?:toCommonJS|commonJS|toESM)\d*\s*=\s*(?:\(|[A-Za-z_$][\w$]*\s*=>)/.test(source); -} - function hasTransformMarkers(source: string): boolean { return TRANSFORM_MARKERS.some((m) => source.includes(m)); } @@ -676,8 +661,6 @@ export function npmStaticIneligibleReason( if (jsEntry === null) return "no runtime JS entry resolves"; const source = trackedReadFile(jsEntry); if (source === null) return `its runtime entry ${jsEntry} cannot be read`; - if (!looksUnminified(source) && !namedBundlerHelpers(source)) - return "its shipped JS looks minified"; if (hasTransformMarkers(source)) { return "its shipped JS carries build-transform markers (bundled/transpiled dist)"; } diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index 68b649b07..932ac7054 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -1436,8 +1436,20 @@ function requiresOf7( return out; } +/** `true`, or `!0`, its minified spelling. */ +function isTrueLiteral(expr: ts.Expression): boolean { + return ( + expr.kind === ts.SyntaxKind.TrueKeyword || + (ts.isPrefixUnaryExpression(expr) && + expr.operator === ts.SyntaxKind.ExclamationToken && + ts.isNumericLiteral(expr.operand) && + expr.operand.text === "0") + ); +} + /** The exact `Object.defineProperty(exports|module.exports, "__esModule", - * { value: true })` interop stamp (shared by preflight and the no-op lowering). */ + * { value: true })` interop stamp (shared by preflight and the no-op lowering); + * `{ value: !0 }` is the same stamp. */ export function isEsModuleStamp(expr: ts.Expression): boolean { if (!ts.isCallExpression(expr) || expr.questionDotToken !== undefined) return false; const callee = expr.expression; @@ -1471,7 +1483,7 @@ export function isEsModuleStamp(expr: ts.Expression): boolean { ts.isPropertyAssignment(p) && ts.isIdentifier(p.name) && p.name.text === "value" && - p.initializer.kind === ts.SyntaxKind.TrueKeyword + isTrueLiteral(p.initializer) ); } diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index ca84bc18f..bbdab43bc 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -111,9 +111,11 @@ import { iceDiag, nativeCodegenDiag, nodeIslandNodeDiag, + nodeIslandModuleDiag, type ScrDiagnostic, } from "./diagnostics/diagnostic.js"; import { libnodeCacheKey, libnodeRecord } from "./node-islands/libnode.js"; +import { placeNodeIslandModules, readNodeIslandModules } from "./node-islands/modules.js"; import { loadLibraryProfile, type LibraryProfile } from "./library/library-profile.js"; import { clearFenceEvalCaches, decorateLibraryRefusals } from "./library/fence-eval.js"; import { @@ -785,7 +787,32 @@ async function prepareExecutableInput( const recorded = libnodeRecord(opts.libnode, opts.outPath, process.env, dirname(entryPath)); if (typeof recorded === "string") return { ok: false, diagnostics: [nodeIslandNodeDiag(recorded, entryPath)], sourceTexts }; - mod.nodeIsland = recorded; + mod.nodeIsland = { ...mod.nodeIsland, ...recorded }; + } + } + // The island module tree ships with the program: beside the executable + // with --libnode=beside, else inside it (node-islands/modules.ts). + let nodeIslandModuleData: Uint8Array | undefined; + const islandModules = mod.nodeIsland?.modules; + if (islandModules !== undefined && outputKind !== "ir") { + if (outputKind === "exe" && opts.libnode === "beside") { + const problem = placeNodeIslandModules(islandModules, `${opts.outPath}.libnode/modules`); + if (problem !== null) + return { + ok: false, + diagnostics: [nodeIslandModuleDiag(problem, { file: entryPath, start: 0, end: 0 })], + sourceTexts, + }; + islandModules.location = `$ORIGIN/${basename(opts.outPath)}.libnode/modules`; + } else { + const data = readNodeIslandModules(islandModules); + if (typeof data === "string") + return { + ok: false, + diagnostics: [nodeIslandModuleDiag(data, { file: entryPath, start: 0, end: 0 })], + sourceTexts, + }; + nodeIslandModuleData = data; } } if (warningSink !== undefined && prepared.warnings.length > 0) { @@ -820,6 +847,7 @@ async function prepareExecutableInput( lowRegion: lowRegionTarget(buildPlatform, opts.sanitize === true), ...(opts.sanitize === true ? { wasmBoundsChecks: true } : {}), ...inlineRcOption(opts.optimization, opts.sanitize === true), + ...(nodeIslandModuleData === undefined ? {} : { nodeIslandModuleData }), }); } catch (err) { if (!(err instanceof LlvmUnsupportedError)) throw err; @@ -890,6 +918,7 @@ async function prepareExecutableInput( ...(opts.sanitize === true ? { wasmBoundsChecks: true } : {}), ...inlineRcOption(opts.optimization, opts.sanitize === true), ...(opts.detachedExit === true ? { detachedExit: true } : {}), + ...(nodeIslandModuleData === undefined ? {} : { nodeIslandModuleData }), }); } catch (err) { if (!(err instanceof LlvmUnsupportedError)) throw err; @@ -1469,8 +1498,6 @@ async function compileTracked( if (outputKind === "exe") { const helperObjectRoute = opts.nativeProgramObject === true || usesPrecompiledRuntimePack(opts, "llvm"); - // Calls into Node record the libnode pack, keyed by its manifest (node-islands/libnode.ts). - const libnodeKey = libnodeCacheKey(opts.libnode); const routeOptions: Omit< EarlyExecutableCacheOptions, "implementation" | "implementationDependencies" | "nativeEnvironment" @@ -1485,7 +1512,9 @@ async function compileTracked( ...(opts.strip ? { strip: true as const } : {}), ...(opts.windowsSubsystem === "gui" ? { windowsSubsystem: "gui" as const } : {}), ...(opts.detachedExit === true ? { detachedExit: true as const } : {}), - ...(libnodeKey === undefined ? {} : { libnode: libnodeKey }), + // Calls into Node record the libnode pack; their entries record its + // identity (node-islands/libnode.ts) and a hit requires it unchanged. + libnodeIdentity: () => libnodeCacheKey(opts.libnode, process.env, dirname(entryPath)), ...(profile === undefined ? {} : { profile: nativeProfileKey(profile) }), ...checkerField(), ...(youngNurseryRequested() ? { youngNursery: true as const } : {}), @@ -1531,26 +1560,22 @@ async function compileTracked( implementationDependencies: implementation.dependencies, }; } - const earlyHit = + const cachedHit = earlyCacheOptions === null ? null : await readEarlyExecutableCache(cacheRoot, earlyCacheOptions); + // A --libnode=beside build that calls into Node places its island modules + // next to the executable from the lowered module, which a cache hit does + // not have: such builds take the full path. + const earlyHit = + cachedHit !== null && cachedHit.native.nodeIsland === true && opts.libnode === "beside" + ? null + : cachedHit; if (earlyHit !== null) { timing("executable-cache-hit"); if (earlyCacheOptions === null) { throw new InternalCompilerError("executable cache hit without executable cache options"); } - // The pack a --libnode=beside build places next to the executable is an output of the - // build, like the executable: a restored executable that calls into Node gets it again. - if (earlyHit.native.nodeIsland === true && opts.libnode === "beside") { - const recorded = libnodeRecord(opts.libnode, opts.outPath); - if (typeof recorded === "string") - return { - ok: false, - diagnostics: [nodeIslandNodeDiag(recorded, entryPath)], - sourceTexts: new Map(), - }; - } // A cached build repeats its performance warning (SC6101): the code it // names is just as untyped as when it was built. if (warningSink !== undefined && earlyHit.performance !== undefined) { diff --git a/packages/compiler/src/ir/builtin-effects.ts b/packages/compiler/src/ir/builtin-effects.ts index 76431450d..6ac3c9068 100644 --- a/packages/compiler/src/ir/builtin-effects.ts +++ b/packages/compiler/src/ir/builtin-effects.ts @@ -366,6 +366,7 @@ export const MAY_THROW_LIB_FNS: ReadonlySet = new Set([ "transform.newDyn", "passthrough.newDyn", "readable.initDyn", + "stream.checkEncodingOption", "writable.initDyn", "duplex.initDyn", "transform.initDyn", diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index 06a9c73ea..afb06b737 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -4004,6 +4004,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ "stream.setTransform": { argTypes: [null, null], result: VOID }, "stream.setFlush": { argTypes: [null, null], result: VOID }, "stream.setConstruct": { argTypes: [null, null], result: VOID }, + "stream.replaceConstruct": { argTypes: [null, null], result: VOID }, "stream.setWritev": { argTypes: [null, null], result: VOID }, "stream.setWritevDefault": { argTypes: [null, null], result: VOID }, /** The dyn-options twins (a checked-dynamic options record — the JS @@ -4140,6 +4141,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ * after construction; answers the receiver (+1, the chaining shape). */ "stream.objectMode": { argTypes: [null, BOOL, BOOL], result: VOID }, "stream.decodeStrings": { argTypes: [null, BOOL], result: VOID }, + /** Runtime decodeStrings and defaultEncoding option values, applied + * after construction (answers the receiver +1); the encoding was + * validated by stream.checkEncodingOption before construction. */ + "stream.optionValues": { argTypes: [null, DYN, DYN], result: VOID }, + "stream.checkEncodingOption": { argTypes: [DYN], result: VOID }, "stream.duplexFromGen": { argTypes: [null, null, null, null, null, null], result: VOID }, "stream.duplexFromDyn": { argTypes: [DYN], result: VOID }, /** Duplex.from over a lone Readable or Writable, or a { readable, diff --git a/packages/compiler/src/ir/function-references.test.ts b/packages/compiler/src/ir/function-references.test.ts index 0e09a7567..9541cb723 100644 --- a/packages/compiler/src/ir/function-references.test.ts +++ b/packages/compiler/src/ir/function-references.test.ts @@ -221,6 +221,12 @@ const MODULE_FIELDS: Record>, Role> = { "threadSlotKeys[]": "other", "nodeIsland.libnode": "other", "nodeIsland.nodeVersion": "other", + "nodeIsland.modules.root": "other", + "nodeIsland.modules.location": "other", + "nodeIsland.modules.files[].path": "other", + "nodeIsland.modules.files[].sha256": "other", + "nodeIsland.modules.links[].path": "other", + "nodeIsland.modules.links[].target": "other", }; const loc = { file: "references.ts", start: 0, end: 0 }; diff --git a/packages/compiler/src/ir/ir.ts b/packages/compiler/src/ir/ir.ts index 667e6de44..e458c9045 100644 --- a/packages/compiler/src/ir/ir.ts +++ b/packages/compiler/src/ir/ir.ts @@ -1009,6 +1009,18 @@ export function isRefCounted(t: IrType): boolean { /* ── module ────────────────────────────────────────────────────────────── */ +/** The island module tree of a program (node-islands/modules.ts): paths + * relative to `root`, the directory on the build machine that holds them. + * Only the relative paths enter an executable. */ +export interface IrNodeIslandModules { + root: string; + files: { path: string; size: number; sha256: string }[]; + links: { path: string; target: string }[]; + /** Where the executable finds the tree: absent when it carries the tree + * itself, else a `$ORIGIN/` path (`--libnode=beside`). */ + location?: string; +} + export interface IrModule { /** Bumped on any breaking IR change; serialize.ts refuses mismatches. */ irVersion: 17; @@ -1067,7 +1079,13 @@ export interface IrModule { * executable) and the exact Node version its bridge links. Set by the * executable build (node-islands/libnode.ts); the emitted main records * both before %main. */ - nodeIsland?: { libnode: string; nodeVersion: string }; + nodeIsland?: { + libnode: string; + nodeVersion: string; + /** The modules the calls load (node-islands/modules.ts), when any call + * loads a file. */ + modules?: IrNodeIslandModules; + }; /** Outbound native FFI declarations used by `ffiCall` expressions. * These are link-time C ABI imports, not runtime dynamic-library handles: * executable builds resolve their symbols from the manifest's archive @@ -3904,8 +3922,10 @@ export type IrExpr = * not shape equality; missing or wrong-typed fields throw, EXCEPT that a * missing key for an undefined-armed union field — an optional field — * builds the interned undefined arm instead); arrays check every element; - * unions try arms in canonical order and the first FULL match wins (no - * match → throw; an undefined arm matches no dyn value); JSON null matches + * unions try arms in canonical order, except that record arms with more + * required fields and then more fields go first, and the first FULL match + * wins (no match → throw; an undefined arm matches no dyn value); JSON + * null matches * exactly the nullT arm of a union target (bare null targets cannot * exist). MAY THROW: * backends' may-throw analyses must treat it like a `throw` statement. diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index 244d8ef22..9c4c493be 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -220,6 +220,8 @@ const STREAM_LIB_FNS: ReadonlySet = new Set([ "stream.chunkDone", "stream.objectMode", "stream.decodeStrings", + "stream.optionValues", + "stream.checkEncodingOption", "stream.duplexFromGen", "stream.duplexFromDyn", "stream.duplexFromPromise", diff --git a/packages/compiler/src/ir/validate.ts b/packages/compiler/src/ir/validate.ts index 02825f0de..a404c918a 100644 --- a/packages/compiler/src/ir/validate.ts +++ b/packages/compiler/src/ir/validate.ts @@ -5500,6 +5500,7 @@ function validateFunction( e.fn === "stream.destroyErr" || e.fn === "stream.objectMode" || e.fn === "stream.decodeStrings" || + e.fn === "stream.optionValues" || e.fn === "stream.duplexFromGen" || e.fn === "stream.duplexFromDyn" || e.fn === "stream.duplexifyReadable" || @@ -5510,6 +5511,7 @@ function validateFunction( e.fn === "stream.duplexFromGenSignal" || e.fn === "stream.duplexFromAsyncFnSignal" || e.fn === "stream.setConstruct" || + e.fn === "stream.replaceConstruct" || e.fn === "stream.setWritev" || e.fn === "stream.setWritevDefault" || e.fn === "stream.iteratorClose" || @@ -5872,6 +5874,7 @@ function validateFunction( e.fn === "readable.pushEncoding" || e.fn === "stream.objectMode" || e.fn === "stream.decodeStrings" || + e.fn === "stream.optionValues" || e.fn === "writable.writeEncoding" || e.fn === "writable.setDefaultEncoding" || e.fn === "stream.destroy" || diff --git a/packages/compiler/src/node-islands/libnode-pack.test.ts b/packages/compiler/src/node-islands/libnode-pack.test.ts index 8ba25b30a..3508733f7 100644 --- a/packages/compiler/src/node-islands/libnode-pack.test.ts +++ b/packages/compiler/src/node-islands/libnode-pack.test.ts @@ -4,6 +4,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; import { afterEach, describe, expect, test } from "vitest"; +import { compilerReleaseVersion } from "../library/sidecar.js"; import { NODE_BRIDGE_ABI, libnodeRecord } from "./libnode.js"; import { LIBNODE_PACK_SCHEMA, @@ -48,7 +49,10 @@ function fakePack( writeFileSync(join(dir, "libnode.so.137"), libnode); writeFileSync(join(dir, "libscr_node_bridge.so"), bridge); writeFileSync(join(dir, "LICENSE"), "Node.js is licensed for use as follows:\n\nMIT\n"); - writeFileSync(join(dir, "package.json"), JSON.stringify({ name, version: "0.4.1" })); + writeFileSync( + join(dir, "package.json"), + JSON.stringify({ name, version: compilerReleaseVersion() }), + ); const manifest: Record = { schema: LIBNODE_PACK_SCHEMA, nodeVersion: "24.22.0", @@ -59,7 +63,7 @@ function fakePack( libnode: "libnode.so.137", bridge: "libscr_node_bridge.so", package: name, - version: "0.4.1", + version: compilerReleaseVersion(), target: "linux-x64-gnu", license: "LICENSE", files: { "libnode.so.137": entry(libnode), "libscr_node_bridge.so": entry(bridge) }, @@ -180,6 +184,22 @@ describe("finding the installed pack", () => { }); }); +test("an installed pack of another scriptc version is refused", () => { + const root = temp(); + const name = libnodePackPackage(hostLibnodeTarget()); + if (name === null) return; + const pack = fakePack( + join(root, "node_modules", name), + (m) => { + m["version"] = "0.0.1"; + }, + name, + ); + expect(libnodeRecord(undefined, join(root, "app"), {}, root)).toBe( + `the installed libnode pack ${name} at ${pack} is version 0.0.1; this scriptc is ${compilerReleaseVersion()}: install ${name}@${compilerReleaseVersion()}`, + ); +}); + describe("readLibnodePack", () => { test("reads a pack in build-pack.mjs's format and checks its package", () => { const pack = fakePack(join(temp(), "pack")); @@ -233,7 +253,7 @@ test("the license notices carry Node's LICENSE", () => { expect(path).toBe(`${out}.licenses.txt`); expect(readFileSync(path, "utf8")).toBe( [ - "server runs part of its code in Node.js 24.22.0, loaded from libnode.so.137 (@scriptc/libnode-linux-x64-gnu@0.4.1).", + `server runs part of its code in Node.js 24.22.0, loaded from libnode.so.137 (@scriptc/libnode-linux-x64-gnu@${compilerReleaseVersion()}).`, "Node.js and the components it bundles are licensed as follows. The scriptc bridge,", "libscr_node_bridge.so, is licensed under Apache-2.0.", "", diff --git a/packages/compiler/src/node-islands/libnode.test.ts b/packages/compiler/src/node-islands/libnode.test.ts index d6ca4bf83..fd775be5d 100644 --- a/packages/compiler/src/node-islands/libnode.test.ts +++ b/packages/compiler/src/node-islands/libnode.test.ts @@ -3,7 +3,8 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { describe, expect, test } from "vitest"; import { USES_TIMERS_LIB_FNS } from "../backend/llvm/lib-shared.js"; -import { libnodeCacheKey, libnodeRecord, NODE_BRIDGE_ABI } from "./libnode.js"; +import { libnodeCacheKey, libnodeRecord, libnodeTarget, NODE_BRIDGE_ABI } from "./libnode.js"; +import { libnodePackPackage } from "./libnode-pack.js"; import { findInstalledLibnodePack, hostLibnodeTarget } from "./libnode-pack.js"; function pack(nodeVersion: string, bridgeAbi = NODE_BRIDGE_ABI): string { @@ -84,6 +85,31 @@ describe("the recorded libnode pack", () => { expect(readFileSync(join(out, "app.libnode/libscr_node_bridge.so"), "utf8")).toBe("bridge"); }); + test("beside refuses to replace the pack it copies", () => { + const out = mkdtempSync(join(tmpdir(), "scriptc-libnode-out-")); + const first = pack("24.22.0"); + libnodeRecord("beside", join(out, "app"), { SCRIPTC_LIBNODE: first }); + // The placed copy as the source of the next beside build. + const placed = join(out, "app.libnode"); + expect(libnodeRecord("beside", join(out, "app"), { SCRIPTC_LIBNODE: placed })).toMatch( + /^--libnode=beside would replace the libnode pack it copies/, + ); + expect(readFileSync(join(placed, "libscr_node_bridge.so"), "utf8")).toBe("bridge"); + }); + + test("beside refuses manifest file names outside the pack", () => { + const dir = pack("24.22.0"); + writeFileSync( + join(dir, "manifest.json"), + JSON.stringify({ nodeVersion: "24.22.0", bridgeAbi: NODE_BRIDGE_ABI, files: { "../x": {} } }), + ); + const out = mkdtempSync(join(tmpdir(), "scriptc-libnode-out-")); + expect(libnodeRecord("beside", join(out, "app"), { SCRIPTC_LIBNODE: dir })).toBe( + `the libnode pack at ${dir} lists a file outside the pack ('../x')`, + ); + expect(existsSync(join(out, "app.libnode"))).toBe(false); + }); + test("a pack the deployment places beside the executable needs no manifest at build time", () => { expect(libnodeRecord("$ORIGIN/node", "/out/app", {})).toEqual({ libnode: "$ORIGIN/node", @@ -92,9 +118,24 @@ describe("the recorded libnode pack", () => { }); }); -describe("the libnode pack in an executable's cache key", () => { - test("is absent without --libnode or SCRIPTC_LIBNODE", () => { - expect(libnodeCacheKey(undefined, {})).toBeUndefined(); +describe("the libnode pack identity a cached build keeps", () => { + test("is absent when no pack is named or installed", () => { + expect(libnodeCacheKey(undefined, {}, "/nonexistent")).toBeUndefined(); + }); + + test("names the installed pack, and changes with it", () => { + const project = mkdtempSync(join(tmpdir(), "scriptc-libnode-project-")); + const name = libnodePackPackage(libnodeTarget({})); + if (name === null) return; + const installed = join(project, "node_modules", name); + mkdirSync(installed, { recursive: true }); + writeFileSync(join(installed, "manifest.json"), JSON.stringify({ nodeVersion: "24.22.0" })); + const before = libnodeCacheKey(undefined, {}, project); + expect(before).toContain(installed); + writeFileSync(join(installed, "manifest.json"), JSON.stringify({ nodeVersion: "24.23.0" })); + expect(libnodeCacheKey(undefined, {}, project)).not.toBe(before); + rmSync(installed, { recursive: true, force: true }); + expect(libnodeCacheKey(undefined, {}, project)).toBeUndefined(); }); test("changes when the pack in the same directory is upgraded", () => { diff --git a/packages/compiler/src/node-islands/libnode.ts b/packages/compiler/src/node-islands/libnode.ts index cb4e7e21c..e52339b30 100644 --- a/packages/compiler/src/node-islands/libnode.ts +++ b/packages/compiler/src/node-islands/libnode.ts @@ -13,9 +13,26 @@ * executable and its Node travel together; a recorded `$ORIGIN/` path is * also the hook for bundling Node into the executable itself later. */ import { createHash } from "node:crypto"; -import { copyFileSync, linkSync, mkdirSync, readFileSync, rmSync, statSync } from "node:fs"; -import { basename, isAbsolute, join, resolve } from "node:path"; -import { findInstalledLibnodePack, hostLibnodeTarget, libnodePackPackage } from "./libnode-pack.js"; +import { + copyFileSync, + linkSync, + mkdirSync, + readFileSync, + realpathSync, + rmSync, + statSync, +} from "node:fs"; +import { basename, isAbsolute, join, resolve, sep } from "node:path"; +import { compilerReleaseVersion } from "../library/sidecar.js"; +import { nativeCodegenTarget } from "../backend/targets.js"; +import { + findInstalledLibnodePack, + hostLibnodeTarget, + LibnodePackError, + libnodePackPackage, + readLibnodePack, + type LibnodePack, +} from "./libnode-pack.js"; /** The oldest Node.js release Node islands support: synchronous * module.registerHooks, which shared modules need, is a release candidate @@ -23,7 +40,7 @@ import { findInstalledLibnodePack, hostLibnodeTarget, libnodePackPackage } from export const NODE_ISLAND_MIN_NODE = "24.13.1"; /** The bridge ABI this compiler's runtime speaks (scr_node_bridge.h). */ -export const NODE_BRIDGE_ABI = 2; +export const NODE_BRIDGE_ABI = 3; /** The prefix of a recorded path relative to the executable's directory. */ export const ORIGIN = "$ORIGIN/"; @@ -68,23 +85,66 @@ function readManifest(dir: string): PackManifest | string { }; } -/** Copies the pack next to the executable (hard links where possible). */ -function placeBeside(source: string, manifest: PackManifest, target: string): void { +/** Copies the pack next to the executable (hard links where possible), or + * returns why it cannot: the target would replace the pack itself, or the + * manifest names a file outside the pack. */ +function placeBeside(source: string, manifest: PackManifest, target: string): string | undefined { + const names = ["manifest.json", "LICENSE", ...Object.keys(manifest.files)]; + const unsafe = names.find( + (name) => name === "" || name === "." || name === ".." || /[/\\]/.test(name), + ); + if (unsafe !== undefined) + return `the libnode pack at ${source} lists a file outside the pack ('${unsafe}')`; + const from = realpathOr(source); + const to = realpathOr(target); + if (from === to || from.startsWith(to + sep) || to.startsWith(from + sep)) + return `--libnode=beside would replace the libnode pack it copies (${source}); point SCRIPTC_LIBNODE at a pack outside ${target}`; rmSync(target, { recursive: true, force: true }); mkdirSync(target, { recursive: true }); - for (const name of ["manifest.json", "LICENSE", ...Object.keys(manifest.files)]) { - const from = join(source, name); + for (const name of names) { + const file = join(source, name); try { - statSync(from); + statSync(file); } catch { continue; } try { - linkSync(from, join(target, name)); + linkSync(file, join(target, name)); } catch { - copyFileSync(from, join(target, name)); + copyFileSync(file, join(target, name)); } } + return undefined; +} + +/** The canonical path of `path`, or `path` resolved when it does not exist. */ +function realpathOr(path: string): string { + try { + return realpathSync(path); + } catch { + return resolve(path); + } +} + +/** The native target whose libnode pack a build records: the codegen + * target (SCRIPTC_TARGET, and the host's libc), else the host. */ +export function libnodeTarget(env: NodeJS.ProcessEnv = process.env): string { + return nativeCodegenTarget(env)?.name ?? hostLibnodeTarget(); +} + +/** Why the installed pack in `dir` cannot serve this compiler, or null: it + * must be the target's package at the compiler's own version. */ +function installedPackProblem(dir: string, packageName: string): string | null { + let pack: LibnodePack; + try { + pack = readLibnodePack(dir, { packageName }); + } catch (error) { + return error instanceof LibnodePackError ? error.message : String(error); + } + const version = compilerReleaseVersion(); + if (pack.manifest.version !== version) + return `the installed libnode pack ${packageName} at ${dir} is version ${pack.manifest.version ?? "unknown"}; this scriptc is ${version}: install ${packageName}@${version}`; + return null; } /** What to record for a program that calls into Node, or the reason the @@ -98,13 +158,23 @@ export function libnodeRecord( const fromEnv = env["SCRIPTC_LIBNODE"]; const beside = option === "beside"; const explicit = option !== undefined && !beside ? option : fromEnv; - // Without an explicit pack, the installed @scriptc/libnode-. - const source = + const target = libnodeTarget(env); + // Without an explicit pack, the installed @scriptc/libnode-. + const installed = explicit !== undefined && explicit !== "" - ? explicit - : findInstalledLibnodePack({ targetName: hostLibnodeTarget(), projectDir }); - if (source === undefined || source === null || source === "") - return `this program calls into Node.js (@scriptc/node), but no libnode pack is installed: install ${libnodePackPackage(hostLibnodeTarget()) ?? "a libnode pack"}, set SCRIPTC_LIBNODE or pass --libnode=`; + ? null + : findInstalledLibnodePack({ targetName: target, projectDir }); + const source = installed ?? explicit; + if (source === undefined || source === null || source === "") { + const pack = libnodePackPackage(target); + return pack === null + ? `this program calls into Node.js (@scriptc/node), but there is no libnode pack for ${target}: set SCRIPTC_LIBNODE or pass --libnode=` + : `this program calls into Node.js (@scriptc/node), but no libnode pack is installed: install ${pack}, set SCRIPTC_LIBNODE or pass --libnode=`; + } + if (installed !== null) { + const problem = installedPackProblem(installed, libnodePackPackage(target)!); + if (problem !== null) return problem; + } if (source.startsWith(ORIGIN)) { // A pack the deployment places next to the executable: nothing to read. return { libnode: source, nodeVersion: "" }; @@ -114,25 +184,30 @@ export function libnodeRecord( if (typeof manifest === "string") return manifest; if (!beside) return { libnode: resolve(source), nodeVersion: manifest.nodeVersion }; const name = `${basename(outPath)}.libnode`; - placeBeside(source, manifest, `${outPath}.libnode`); + const refused = placeBeside(source, manifest, `${outPath}.libnode`); + if (refused !== undefined) return refused; return { libnode: `${ORIGIN}${name}`, nodeVersion: manifest.nodeVersion }; } -/** The part of an executable's cache key that names its libnode pack, or - * undefined when neither --libnode nor SCRIPTC_LIBNODE is set. It holds the - * option, the pack directory and a digest of the pack's manifest.json, so - * that a pack upgraded in place (another Node version, bridge ABI or file - * list) gives cached executables a new key instead of their old record. - * An installed @scriptc/libnode- pack needs no part: it versions - * in lockstep with the compiler, whose version every key already holds, so - * the bootstrap's routed cache keeps serving builds where one is installed. */ +/** The identity of the libnode pack a build that calls into Node.js + * records, which the program's executable cache entry keeps + * (EarlyExecutableCacheOptions.libnodeIdentity): the option, the pack + * directory (named by --libnode or SCRIPTC_LIBNODE, or the installed pack + * found from `projectDir`), and a digest of the pack's manifest.json. A pack + * upgraded in place, removed, or replaced by another installed pack changes + * it. Undefined when no pack is named or installed. */ export function libnodeCacheKey( option: string | undefined, env: NodeJS.ProcessEnv = process.env, + projectDir: string = process.cwd(), ): string | undefined { const fromEnv = env["SCRIPTC_LIBNODE"]; - if (option === undefined && fromEnv === undefined) return undefined; - const source = option !== undefined && option !== "beside" ? option : (fromEnv ?? ""); + const explicit = option !== undefined && option !== "beside" ? option : fromEnv; + const source = + explicit !== undefined && explicit !== "" + ? explicit + : findInstalledLibnodePack({ targetName: libnodeTarget(env), projectDir }); + if (source === undefined || source === null) return option === undefined ? undefined : option; let manifest = "none"; if (isAbsolute(source)) { try { diff --git a/packages/compiler/src/node-islands/modules.test.ts b/packages/compiler/src/node-islands/modules.test.ts new file mode 100644 index 000000000..6badf376a --- /dev/null +++ b/packages/compiler/src/node-islands/modules.test.ts @@ -0,0 +1,188 @@ +import { mkdirSync, mkdtempSync, realpathSync, symlinkSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { dirname, join } from "node:path"; +import { describe, expect, test } from "vitest"; +import { + NodeIslandModuleCollector, + nodeIslandManifest, + readNodeIslandModules, + scanModuleSpecifiers, +} from "./modules.js"; + +function project(files: Record): string { + const root = realpathSync(mkdtempSync(join(tmpdir(), "scriptc-island-modules-"))); + for (const [path, text] of Object.entries(files)) { + mkdirSync(dirname(join(root, path)), { recursive: true }); + writeFileSync(join(root, path), text); + } + return root; +} + +describe("module specifiers in JavaScript", () => { + test("string-literal loads in every form", () => { + const scan = scanModuleSpecifiers(` + const a = require("./a"); + const b = require.resolve('./b.json'); + import c from "c"; + import * as d from "d/sub"; + import { e } from "./e.mjs"; + import "./side"; + export * from "./f"; + export { g } from "./g"; + const h = await import("./h.js"); + import.meta.url; + obj.require("x"); + const t = \`\${require("./t")}\`; + `); + expect(scan.specifiers).toEqual([ + "./a", + "./b.json", + "c", + "d/sub", + "./e.mjs", + "./side", + "./f", + "./g", + "./h.js", + "./t", + ]); + expect(scan.computed).toEqual([]); + }); + + test("comments, strings and regular expressions hide nothing and invent nothing", () => { + const scan = scanModuleSpecifiers(` + // require("./commented") + /* import x from "./block" */ + const s = "require('./in-string')"; + const r = /require\\("\\.\\/in-regex"\\)/g; + const q = a / b / c; + const real = require("./real"); + `); + expect(scan.specifiers).toEqual(["./real"]); + expect(scan.computed).toEqual([]); + }); + + test("computed loads are reported", () => { + const forms = (text: string) => scanModuleSpecifiers(text).computed.map((c) => c.form); + expect(forms("require(name)")).toEqual(["require() with a computed specifier"]); + expect(forms("require('./a' + b)")).toEqual(["require() with a computed specifier"]); + expect(forms("import(`./x/${y}`)")).toEqual(["import() with a computed specifier"]); + expect(forms("const r = require; r('./a')")).toEqual(["require as a value"]); + expect(forms("createRequire(import.meta.url)('./a')")).toEqual([ + "a require() from createRequire()", + ]); + expect(forms("function require(x) {} typeof require")).toEqual([]); + }); +}); + +describe("the collected module tree", () => { + test("a relative module and what it loads; missing modules are not shipped", () => { + const root = project({ + "src/main.ts": "", + "src/math.cjs": + "module.exports = require('./util');\ntry { require('./optional'); } catch {}", + "src/util.js": "exports.x = require('../data.json');", + "data.json": "{}", + "src/unused.js": "", + }); + const collector = new NodeIslandModuleCollector(); + expect(collector.add(join(root, "src/main.ts"), "./math.cjs")).toBeNull(); + expect(collector.add(join(root, "src/main.ts"), "./does-not-exist.cjs")).toBeNull(); + expect(collector.add(join(root, "src/main.ts"), "node:fs")).toBeNull(); + const tree = collector.tree()!; + expect(tree.root).toBe(root); + expect(tree.files.map((f) => f.path)).toEqual(["data.json", "src/math.cjs", "src/util.js"]); + expect(NodeIslandModuleCollector.callerPath(tree, join(root, "src/main.ts"))).toBe( + "src/main.ts", + ); + }); + + test("a module of the program ships with the package.json that scopes it", () => { + const root = project({ + "package.json": JSON.stringify({ type: "module" }), + "src/main.ts": "", + "src/esm.js": "export const x = 1;", + }); + const collector = new NodeIslandModuleCollector(); + expect(collector.add(join(root, "src/main.ts"), "./esm.js")).toBeNull(); + expect(collector.tree()!.files.map((f) => f.path)).toEqual(["package.json", "src/esm.js"]); + }); + + test("a computed load in a module of the program is refused", () => { + const root = project({ "main.ts": "", "dyn.cjs": "module.exports = require(process.env.X);" }); + const problem = new NodeIslandModuleCollector().add(join(root, "main.ts"), "./dyn.cjs"); + expect(problem).toBe( + `${join(root, "dyn.cjs")}:1 loads a module through require() with a computed specifier; a module that runs in a Node island loads modules by string-literal specifiers only`, + ); + }); + + test("a package ships whole, with its dependencies, but not its nested node_modules", () => { + const root = project({ + "main.ts": "", + "node_modules/pkg/package.json": JSON.stringify({ dependencies: { dep: "1", absent: "1" } }), + "node_modules/pkg/index.js": "module.exports = require(process.env.ANYTHING_GOES);", + "node_modules/pkg/lib/extra.json": "{}", + "node_modules/pkg/node_modules/.bin/x": "", + "node_modules/dep/package.json": "{}", + "node_modules/dep/index.js": "", + "node_modules/other/index.js": "", + }); + const collector = new NodeIslandModuleCollector(); + expect(collector.add(join(root, "main.ts"), "pkg/lib/extra.json")).toBeNull(); + expect(collector.tree()!.files.map((f) => f.path)).toEqual([ + "node_modules/dep/index.js", + "node_modules/dep/package.json", + "node_modules/pkg/index.js", + "node_modules/pkg/lib/extra.json", + "node_modules/pkg/package.json", + ]); + }); + + test("pnpm's links between package directories stay links inside the tree", () => { + const root = project({ + "app/main.ts": "", + "app/node_modules/.pnpm/a@1/node_modules/a/package.json": JSON.stringify({ + dependencies: { b: "1" }, + }), + "app/node_modules/.pnpm/a@1/node_modules/a/index.js": "", + "app/node_modules/.pnpm/b@1/node_modules/b/index.js": "", + }); + symlinkSync(".pnpm/a@1/node_modules/a", join(root, "app/node_modules/a")); + symlinkSync( + "../../b@1/node_modules/b", + join(root, "app/node_modules/.pnpm/a@1/node_modules/b"), + ); + const collector = new NodeIslandModuleCollector(); + expect(collector.add(join(root, "app/main.ts"), "a")).toBeNull(); + const tree = collector.tree()!; + expect(tree.root).toBe(join(root, "app")); + expect(tree.links).toEqual([ + { path: "node_modules/.pnpm/a@1/node_modules/b", target: "../../b@1/node_modules/b" }, + { path: "node_modules/a", target: ".pnpm/a@1/node_modules/a" }, + ]); + expect(tree.files.map((f) => f.path)).toEqual([ + "node_modules/.pnpm/a@1/node_modules/a/index.js", + "node_modules/.pnpm/a@1/node_modules/a/package.json", + "node_modules/.pnpm/b@1/node_modules/b/index.js", + ]); + }); + + test("built-in modules alone ship no tree", () => { + const root = project({ "main.ts": "" }); + const collector = new NodeIslandModuleCollector(); + expect(collector.add(join(root, "main.ts"), "os")).toBeNull(); + expect(collector.tree()).toBeNull(); + expect(NodeIslandModuleCollector.callerPath(null, join(root, "main.ts"))).toBe("main.ts"); + }); + + test("the manifest names relative paths only, and the data is checked against it", () => { + const root = project({ "main.ts": "", "m.cjs": "exports.f = () => 1;" }); + const collector = new NodeIslandModuleCollector(); + collector.add(join(root, "main.ts"), "./m.cjs"); + const tree = collector.tree()!; + expect(nodeIslandManifest(tree)).not.toContain(root); + expect(readNodeIslandModules(tree)).toEqual(new TextEncoder().encode("exports.f = () => 1;")); + writeFileSync(join(root, "m.cjs"), "exports.f = () => 2;"); + expect(readNodeIslandModules(tree)).toBe(`${join(root, "m.cjs")} changed during the build`); + }); +}); diff --git a/packages/compiler/src/node-islands/modules.ts b/packages/compiler/src/node-islands/modules.ts new file mode 100644 index 000000000..0d63dc333 --- /dev/null +++ b/packages/compiler/src/node-islands/modules.ts @@ -0,0 +1,627 @@ +/* The island module tree: the JavaScript a program's Node island calls load, + * collected at build time and shipped with the executable, so a deployed + * binary never reads modules from the machine that built it. + * + * Each `call`/`callSync` names its module with a string literal. The build + * resolves it from the calling module as Node's require() does: + * - a relative or absolute specifier names a module of the program: the + * module and every module its string-literal `require()`, `import` and + * `export ... from` reach are collected; a computed specifier in such a + * module is refused, since the build cannot know what it loads; + * - a package specifier names a package: its whole directory is collected + * (computed requires inside packages keep working), and so are its + * `dependencies`, `optionalDependencies` and `peerDependencies`, found as + * Node finds them; + * - a Node built-in module needs nothing, and neither does a module the + * build cannot find: loading it throws MODULE_NOT_FOUND when the call + * runs, as under Node. + * Paths keep their layout relative to one root directory (the deepest + * directory that holds every collected path), with symbolic links between + * package directories (pnpm's layout) kept as links. Only these relative + * paths enter the executable. Every read goes through the frontend input + * tracker, so an edit to an island module invalidates cached builds. */ +import { createHash } from "node:crypto"; +import { mkdirSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { builtinModules } from "node:module"; +import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path"; +import { + trackedAccessibleEntries, + trackedDirectoryExists, + trackedFileExists, + trackedReadBytes, + trackedReadFile, + trackedRealpath, +} from "../frontend/input-tracker.js"; +import type { IrNodeIslandModules } from "../ir/ir.js"; + +export type NodeIslandModuleTree = IrNodeIslandModules; +type NodeIslandModuleFile = IrNodeIslandModules["files"][number]; +type NodeIslandModuleLink = IrNodeIslandModules["links"][number]; + +const BUILTINS: ReadonlySet = new Set(builtinModules); + +/** Extensions require() tries for an extensionless file, in its order. */ +const FILE_EXTENSIONS = [".js", ".json", ".node"]; + +/** Module files whose imports are traced. */ +const TRACED = /\.(?:[cm]?js|[cm]?ts)$/; + +function isBuiltin(specifier: string): boolean { + return specifier.startsWith("node:") || BUILTINS.has(specifier); +} + +function isPathSpecifier(specifier: string): boolean { + return ( + specifier === "." || + specifier === ".." || + specifier.startsWith("./") || + specifier.startsWith("../") || + isAbsolute(specifier) + ); +} + +function packageName(specifier: string): string { + const parts = specifier.split("/"); + return specifier.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0]!; +} + +/** The file require() loads for `base` (a file, an extension away, or a + * directory with a package.json main or an index file), or null. */ +function resolveFile(base: string): string | null { + if (trackedFileExists(base)) return base; + for (const extension of FILE_EXTENSIONS) + if (trackedFileExists(base + extension)) return base + extension; + if (!trackedDirectoryExists(base)) return null; + const manifest = trackedReadFile(join(base, "package.json")); + if (manifest !== null) { + let main: unknown; + try { + main = (JSON.parse(manifest) as { main?: unknown }).main; + } catch { + main = undefined; + } + if (typeof main === "string" && main !== "") { + const target = join(base, main); + const found = resolveFile(target) ?? resolveFile(join(target, "index")); + if (found !== null) return found; + } + } + for (const extension of FILE_EXTENSIONS) { + const index = join(base, `index${extension}`); + if (trackedFileExists(index)) return index; + } + return null; +} + +/** The directory of package `name` as require() finds it from `fromDir`: + * `node_modules/` in `fromDir` and each ancestor not itself named + * node_modules. */ +function packageDirectory(fromDir: string, name: string): string | null { + for (let dir = fromDir; ;) { + if (basename(dir) !== "node_modules") { + const candidate = join(dir, "node_modules", name); + if (trackedDirectoryExists(candidate)) return candidate; + } + const parent = dirname(dir); + if (parent === dir) return null; + dir = parent; + } +} + +/** The package.json nearest to `dir`, as Node finds a module's package + * scope, or null. */ +function packageScope(dir: string): string | null { + for (let at = dir; ;) { + if (basename(at) === "node_modules") return null; + const candidate = join(at, "package.json"); + if (trackedFileExists(candidate)) return candidate; + const parent = dirname(at); + if (parent === at) return null; + at = parent; + } +} + +function sha256(bytes: Uint8Array): string { + return createHash("sha256").update(bytes).digest("hex"); +} + +/** The deepest directory that contains every path. */ +function commonDirectory(paths: readonly string[]): string { + let common = paths[0]!.split(sep); + for (const path of paths.slice(1)) { + const parts = path.split(sep); + let n = 0; + while (n < common.length && n < parts.length && common[n] === parts[n]) n++; + common = common.slice(0, n); + } + const joined = common.join(sep); + return joined === "" ? sep : joined; +} + +function portable(path: string): string { + return sep === "/" ? path : path.split(sep).join("/"); +} + +export class NodeIslandModuleCollector { + /** Real paths of collected files. */ + private readonly files = new Set(); + /** Link path (its directory real) → real target. */ + private readonly links = new Map(); + private readonly packages = new Set(); + private readonly traced = new Set(); + /** Real paths of the calling modules. */ + private readonly callers = new Set(); + + /** Collects the module `specifier` names from `caller` (a real path). + * Returns null, or the reason the build cannot ship it. */ + add(caller: string, specifier: string): string | null { + this.callers.add(caller); + return this.resolveFrom(caller, specifier); + } + + /** The collected tree, or null when no call loads a file. */ + tree(): NodeIslandModuleTree | null { + if (this.files.size === 0 && this.links.size === 0) return null; + const anchors = [ + ...this.files, + ...this.links.keys(), + ...this.links.values(), + ...[...this.callers].map((caller) => dirname(caller)), + ]; + const root = commonDirectory(anchors); + const files: NodeIslandModuleFile[] = []; + for (const file of [...this.files].sort()) { + const bytes = trackedReadBytes(file); + if (bytes === null) continue; + files.push({ + path: portable(relative(root, file)), + size: bytes.length, + sha256: sha256(bytes), + }); + } + const links: NodeIslandModuleLink[] = [...this.links] + .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)) + .map(([path, target]) => ({ + path: portable(relative(root, path)), + target: portable(relative(dirname(path), target)), + })); + return { root, files, links }; + } + + /** The tree path a caller's module has: relative to the tree root. */ + static callerPath(tree: NodeIslandModuleTree | null, caller: string): string { + return tree === null ? basename(caller) : portable(relative(tree.root, caller)); + } + + private resolveFrom(fromFile: string, specifier: string): string | null { + if (isBuiltin(specifier)) return null; + if (specifier.startsWith("#")) + return `'${specifier}' is a package import ("imports" in package.json), which Node island modules of the program cannot use`; + if (specifier.startsWith("file:") || /^[a-z][a-z0-9+.-]*:/i.test(specifier)) + return `'${specifier}' is a URL; name the module by its relative path or package name`; + // A module the build cannot find is not shipped: loading it throws + // MODULE_NOT_FOUND when the call runs, as it does under Node (an + // optional require in a try block keeps working). + if (isPathSpecifier(specifier)) { + const target = resolveFile(resolve(dirname(fromFile), specifier)); + return target === null ? null : this.addModule(this.placed(target)); + } + const dir = packageDirectory(dirname(fromFile), packageName(specifier)); + if (dir !== null) this.addPackage(dir); + return null; + } + + /** The real path of `path`, recording a link when `path` itself (not an + * ancestor) is a symbolic link. */ + private placed(path: string): string { + const target = trackedRealpath(path) ?? path; + const parent = trackedRealpath(dirname(path)) ?? dirname(path); + const link = join(parent, basename(path)); + if (link !== target) this.links.set(link, target); + return target; + } + + /** A module of the program: collected with the package.json that scopes + * it (Node reads its "type"), and its imports traced. */ + private addModule(file: string): string | null { + if (this.traced.has(file)) return null; + this.traced.add(file); + this.files.add(file); + const scope = packageScope(dirname(file)); + if (scope !== null) this.files.add(scope); + if (!TRACED.test(file)) return null; + const text = trackedReadFile(file); + if (text === null) return `cannot read ${file}`; + const scan = scanModuleSpecifiers(text); + if (scan.computed.length > 0) { + const first = scan.computed[0]!; + const line = text.slice(0, first.at).split("\n").length; + return `${file}:${line} loads a module through ${first.form}; a module that runs in a Node island loads modules by string-literal specifiers only`; + } + for (const specifier of scan.specifiers) { + const problem = this.resolveFrom(file, specifier); + if (problem !== null) return problem; + } + return null; + } + + /** A package: its whole directory, then its dependencies. */ + private addPackage(found: string): void { + const dir = this.placed(found); + if (this.packages.has(dir)) return; + this.packages.add(dir); + this.addDirectory(dir, new Set()); + const manifest = trackedReadFile(join(dir, "package.json")); + if (manifest === null) return; + let parsed: Record; + try { + parsed = JSON.parse(manifest) as Record; + } catch { + return; + } + const names = new Set(); + for (const field of ["dependencies", "optionalDependencies", "peerDependencies"]) { + const deps = parsed[field]; + if (deps !== null && typeof deps === "object") + for (const name of Object.keys(deps)) names.add(name); + } + for (const name of [...names].sort()) { + // A dependency that is not installed (optional, or a peer the program + // does not use) is not loaded either. + const depDir = packageDirectory(dir, name); + if (depDir !== null) this.addPackage(depDir); + } + } + + /** Every file below `dir`, except nested node_modules (dependencies come + * through package.json) and .git. */ + private addDirectory(dir: string, visited: Set): void { + const real = trackedRealpath(dir) ?? dir; + if (visited.has(real)) return; + visited.add(real); + const entries = trackedAccessibleEntries(dir); + if (entries === null) return; + for (const file of entries.files) this.files.add(join(dir, file)); + for (const sub of entries.directories) { + if (sub === "node_modules" || sub === ".git") continue; + this.addDirectory(join(dir, sub), visited); + } + } +} + +/* ── module specifiers in JavaScript source ───────────────────────────── */ + +interface Token { + kind: "name" | "string" | "punct" | "other"; + value: string; + at: number; +} + +/** Keywords after which a `/` starts a regular expression. */ +const REGEX_AFTER = new Set([ + "return", + "typeof", + "instanceof", + "in", + "of", + "new", + "delete", + "void", + "throw", + "case", + "do", + "else", + "yield", + "await", +]); + +function isNameStart(c: string): boolean { + return /[A-Za-z_$\u0080-￿]/.test(c); +} + +function isNamePart(c: string): boolean { + return /[A-Za-z0-9_$\u0080-￿]/.test(c); +} + +/** The significant tokens of a JavaScript or TypeScript source: names, + * string literals (cooked) and punctuators, without comments, template + * text or regular expressions. */ +export function moduleTokens(text: string): Token[] { + const tokens: Token[] = []; + /** Brace depths at which a template literal's `${` was opened. */ + const templates: number[] = []; + let depth = 0; + let i = 0; + const n = text.length; + const regexAllowed = (): boolean => { + const last = tokens[tokens.length - 1]; + if (last === undefined) return true; + if (last.kind === "name") return REGEX_AFTER.has(last.value); + if (last.kind === "punct") + return last.value !== ")" && last.value !== "]" && last.value !== "}"; + return false; + }; + const template = (start: number): void => { + // From just after a backtick or a closing `}` to the end of the + // template or the next `${`. + while (i < n) { + const c = text[i]!; + if (c === "\\") { + i += 2; + continue; + } + if (c === "`") { + i++; + tokens.push({ kind: "other", value: "`", at: start }); + return; + } + if (c === "$" && text[i + 1] === "{") { + i += 2; + templates.push(depth); + depth++; + tokens.push({ kind: "punct", value: "${", at: start }); + return; + } + i++; + } + }; + while (i < n) { + const c = text[i]!; + if (c === " " || c === "\t" || c === "\n" || c === "\r" || c === "\f" || c === "\v") { + i++; + continue; + } + if (c === "/" && text[i + 1] === "/") { + while (i < n && text[i] !== "\n") i++; + continue; + } + if (c === "/" && text[i + 1] === "*") { + const end = text.indexOf("*/", i + 2); + i = end < 0 ? n : end + 2; + continue; + } + if (c === "#" && i === 0 && text[1] === "!") { + while (i < n && text[i] !== "\n") i++; + continue; + } + if (c === "'" || c === '"') { + const start = i; + let value = ""; + i++; + while (i < n && text[i] !== c && text[i] !== "\n") { + if (text[i] === "\\") { + const e = text[i + 1] ?? ""; + value += e === "n" ? "\n" : e === "t" ? "\t" : e === "r" ? "\r" : e === "\n" ? "" : e; + i += 2; + continue; + } + value += text[i]; + i++; + } + i++; + tokens.push({ kind: "string", value, at: start }); + continue; + } + if (c === "`") { + const start = i; + i++; + template(start); + continue; + } + if (c === "/" && regexAllowed()) { + const start = i; + i++; + let inClass = false; + while (i < n && text[i] !== "\n") { + const r = text[i]!; + if (r === "\\") { + i += 2; + continue; + } + if (r === "[") inClass = true; + else if (r === "]") inClass = false; + else if (r === "/" && !inClass) break; + i++; + } + i++; + while (i < n && isNamePart(text[i]!)) i++; + tokens.push({ kind: "other", value: "/re/", at: start }); + continue; + } + if (isNameStart(c)) { + const start = i; + while (i < n && isNamePart(text[i]!)) i++; + tokens.push({ kind: "name", value: text.slice(start, i), at: start }); + continue; + } + if (/[0-9]/.test(c) || (c === "." && /[0-9]/.test(text[i + 1] ?? ""))) { + const start = i; + while (i < n && /[0-9A-Za-z_.]/.test(text[i]!)) i++; + tokens.push({ kind: "other", value: text.slice(start, i), at: start }); + continue; + } + if (c === "{") depth++; + if (c === "}") { + if (templates.length > 0 && templates[templates.length - 1] === depth - 1) { + templates.pop(); + depth--; + const start = i; + i++; + tokens.push({ kind: "punct", value: "}", at: start }); + template(start); + continue; + } + depth--; + } + if (c === "." && text[i + 1] === "." && text[i + 2] === ".") { + tokens.push({ kind: "punct", value: "...", at: i }); + i += 3; + continue; + } + if (c === "?" && text[i + 1] === ".") { + tokens.push({ kind: "punct", value: "?.", at: i }); + i += 2; + continue; + } + tokens.push({ kind: "punct", value: c, at: i }); + i++; + } + return tokens; +} + +export interface ModuleSpecifierScan { + /** String-literal specifiers of require(), require.resolve(), import() + * and import/export declarations, in source order. */ + specifiers: string[]; + /** Loads whose module the source does not name with a string literal. */ + computed: { at: number; form: string }[]; +} + +export function scanModuleSpecifiers(text: string): ModuleSpecifierScan { + const tokens = moduleTokens(text); + const specifiers: string[] = []; + const computed: { at: number; form: string }[] = []; + const at = (k: number): Token | undefined => tokens[k]; + const is = (k: number, kind: Token["kind"], value?: string): boolean => { + const t = tokens[k]; + return t !== undefined && t.kind === kind && (value === undefined || t.value === value); + }; + /** A call `(` at k whose single argument is a string literal. */ + const literalCall = (k: number): string | null => + is(k, "punct", "(") && + is(k + 1, "string") && + (is(k + 2, "punct", ")") || is(k + 2, "punct", ",")) + ? at(k + 1)!.value + : null; + for (let k = 0; k < tokens.length; k++) { + const t = tokens[k]!; + if (t.kind !== "name") continue; + const member = is(k - 1, "punct", ".") || is(k - 1, "punct", "?."); + if (t.value === "require" && !member && !is(k + 1, "punct", ":")) { + if (is(k - 1, "name", "function") || is(k - 1, "name", "typeof")) continue; + let call = k + 1; + let form = "require()"; + if (is(k + 1, "punct", ".") && is(k + 2, "name", "resolve")) { + call = k + 3; + form = "require.resolve()"; + } else if (is(k + 1, "punct", ".")) { + continue; + } + if (!is(call, "punct", "(")) { + computed.push({ at: t.at, form: "require as a value" }); + continue; + } + const literal = literalCall(call); + if (literal === null) computed.push({ at: t.at, form: `${form} with a computed specifier` }); + else specifiers.push(literal); + continue; + } + if (t.value === "createRequire" && !member && is(k + 1, "punct", "(")) { + computed.push({ at: t.at, form: "a require() from createRequire()" }); + continue; + } + if (t.value === "import" && !member) { + if (is(k + 1, "punct", ".")) continue; // import.meta + if (is(k + 1, "punct", "(")) { + const literal = literalCall(k + 1); + if (literal === null) + computed.push({ at: t.at, form: "import() with a computed specifier" }); + else specifiers.push(literal); + continue; + } + if (is(k + 1, "string")) { + specifiers.push(at(k + 1)!.value); + continue; + } + for (let j = k + 1; j < tokens.length && j < k + 400; j++) { + if (is(j, "punct", ";")) break; + if (is(j, "name", "from") && is(j + 1, "string")) { + specifiers.push(at(j + 1)!.value); + break; + } + } + continue; + } + if (t.value === "export" && !member) { + let j = k + 1; + if (is(j, "name", "type")) j++; + if (is(j, "punct", "*")) { + for (; j < tokens.length && j < k + 400; j++) { + if (is(j, "punct", ";")) break; + if (is(j, "name", "from") && is(j + 1, "string")) { + specifiers.push(at(j + 1)!.value); + break; + } + } + } else if (is(j, "punct", "{")) { + while (j < tokens.length && !is(j, "punct", "}")) j++; + if (is(j + 1, "name", "from") && is(j + 2, "string")) specifiers.push(at(j + 2)!.value); + } + } + } + return { specifiers, computed }; +} + +/* ── shipping the tree ────────────────────────────────────────────────── */ + +/** The manifest the executable records (scr_node_island.c reads it): + * `{"files":[[path,size,sha256],...],"links":[[path,target],...]}`. Its + * SHA-256 names the tree. */ +export function nodeIslandManifest(modules: IrNodeIslandModules): string { + return JSON.stringify({ + files: modules.files.map((file) => [file.path, file.size, file.sha256]), + links: modules.links.map((link) => [link.path, link.target]), + }); +} + +/** The tree's files concatenated in manifest order, each checked against + * the digest the build recorded, or the reason one no longer matches. */ +export function readNodeIslandModules(modules: IrNodeIslandModules): Uint8Array | string { + const parts: Uint8Array[] = []; + let total = 0; + for (const file of modules.files) { + const path = join(modules.root, ...file.path.split("/")); + let bytes: Uint8Array; + try { + bytes = new Uint8Array(readFileSync(path)); + } catch { + return `${path} was removed during the build`; + } + if (bytes.length !== file.size || sha256(bytes) !== file.sha256) + return `${path} changed during the build`; + parts.push(bytes); + total += bytes.length; + } + const data = new Uint8Array(total); + let offset = 0; + for (const part of parts) { + data.set(part, offset); + offset += part.length; + } + return data; +} + +/** Writes the tree to `target` (replacing it), for `--libnode=beside`, or + * returns the reason it cannot. */ +export function placeNodeIslandModules( + modules: IrNodeIslandModules, + target: string, +): string | null { + const data = readNodeIslandModules(modules); + if (typeof data === "string") return data; + rmSync(target, { recursive: true, force: true }); + mkdirSync(target, { recursive: true }); + let offset = 0; + for (const file of modules.files) { + const path = join(target, ...file.path.split("/")); + mkdirSync(dirname(path), { recursive: true }); + writeFileSync(path, data.subarray(offset, offset + file.size)); + offset += file.size; + } + for (const link of modules.links) { + const path = join(target, ...link.path.split("/")); + mkdirSync(dirname(path), { recursive: true }); + symlinkSync(link.target, path); + } + return null; +} diff --git a/packages/compiler/src/startup-cache.ts b/packages/compiler/src/startup-cache.ts index 1bc74bef0..950a96d08 100644 --- a/packages/compiler/src/startup-cache.ts +++ b/packages/compiler/src/startup-cache.ts @@ -2,6 +2,7 @@ * full lowering/emitter graph; exact builds need only these cache/native * identity primitives before deciding whether that graph is necessary. */ export { readRoutedExecutableCache } from "./executable/executable-cache.js"; +export { libnodeCacheKey } from "./node-islands/libnode.js"; export type { EarlyExecutableRouteOptions } from "./executable/executable-cache.js"; export { executableNativeEnvironmentFingerprint, diff --git a/packages/compiler/test/native-codegen-integration.test.ts b/packages/compiler/test/native-codegen-integration.test.ts index d398fa1d3..cecebb49c 100644 --- a/packages/compiler/test/native-codegen-integration.test.ts +++ b/packages/compiler/test/native-codegen-integration.test.ts @@ -378,7 +378,7 @@ done: expect(await symbols(helperObject, ["-u"])).toEqual(await symbols(clangObject, ["-u"])); expect(await symbols(helperObject, ["-gU"])).toEqual(await symbols(clangObject, ["-gU"])); expect(await symbols(helperObject, ["-gU"])).toEqual(["0000000000000000 T _main"]); - expect(await symbols(helperObject, ["-u"])).toContain("_scr_runtime_abi_v36"); + expect(await symbols(helperObject, ["-u"])).toContain("_scr_runtime_abi_v37"); const clangExe = join(dir, "clang-program"); const linkDriver = join(dir, "clang-driver.c"); @@ -712,7 +712,7 @@ done: .split("\n"); expect(undefinedSymbols).toContain("_sf_scale"); expect(undefinedSymbols).toContain("_sf_callback_mix"); - expect(undefinedSymbols).toContain("_scr_runtime_abi_v36"); + expect(undefinedSymbols).toContain("_scr_runtime_abi_v37"); }); test("helper and clang object paths retain the same outbound FFI C ABI", async () => { diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7447-union-record-arm-width.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7447-union-record-arm-width.mjs.json new file mode 100644 index 000000000..68bd750d9 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7447-union-record-arm-width.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7447-union-record-arm-width.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7448-union-record-arm-width.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7448-union-record-arm-width.ts.json new file mode 100644 index 000000000..498ee884a --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7448-union-record-arm-width.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7448-union-record-arm-width.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7460-transform-writev.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7460-transform-writev.mjs.json new file mode 100644 index 000000000..1015e1354 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7460-transform-writev.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7460-transform-writev.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7461-transform-writev.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7461-transform-writev.cjs.json new file mode 100644 index 000000000..4d3c86215 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7461-transform-writev.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7461-transform-writev.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7462-transform-writev.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7462-transform-writev.ts.json new file mode 100644 index 000000000..9b42f2d60 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7462-transform-writev.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7462-transform-writev.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7463-stream-option-values.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7463-stream-option-values.ts.json new file mode 100644 index 000000000..5aa543dea --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7463-stream-option-values.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7463-stream-option-values.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7464-stream-option-values.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7464-stream-option-values.mjs.json new file mode 100644 index 000000000..2a438d418 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7464-stream-option-values.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7464-stream-option-values.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7465-transform-callback-values.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7465-transform-callback-values.ts.json new file mode 100644 index 000000000..17633d208 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7465-transform-callback-values.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7465-transform-callback-values.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7466-stream-construct-assign.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7466-stream-construct-assign.mjs.json new file mode 100644 index 000000000..f5bb52517 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7466-stream-construct-assign.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7466-stream-construct-assign.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7500-pipeline-callback-undefined.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7500-pipeline-callback-undefined.ts.json new file mode 100644 index 000000000..fe65b63f0 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7500-pipeline-callback-undefined.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7500-pipeline-callback-undefined.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7501-pipeline-callback-undefined.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7501-pipeline-callback-undefined.mjs.json new file mode 100644 index 000000000..8d52980fe --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7501-pipeline-callback-undefined.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7501-pipeline-callback-undefined.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7502-readline-cursor-undefined.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7502-readline-cursor-undefined.ts.json new file mode 100644 index 000000000..6fd23042e --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7502-readline-cursor-undefined.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7502-readline-cursor-undefined.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7543-var-list-declarator-order.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7543-var-list-declarator-order.js.json new file mode 100644 index 000000000..d193e84ed --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7543-var-list-declarator-order.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7543-var-list-declarator-order.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7545-string-regex-checked-arguments.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7545-string-regex-checked-arguments.js.json new file mode 100644 index 000000000..03b3197c4 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7545-string-regex-checked-arguments.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7545-string-regex-checked-arguments.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs.json new file mode 100644 index 000000000..f3b8ba419 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs.json @@ -0,0 +1,7 @@ +{ + "order": [ + "/tests/corpus/7548-cjs-receiverless-builtin-calls/lib.cjs", + "/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs.json new file mode 100644 index 000000000..08adae885 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs.json @@ -0,0 +1,8 @@ +{ + "order": [ + "/tests/corpus/7549-cjs-minified-esmodule-stamp/stamped.cjs", + "/tests/corpus/7549-cjs-minified-esmodule-stamp/module-stamped.cjs", + "/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7553-var-for-in-of-zero-iterations.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7553-var-for-in-of-zero-iterations.js.json new file mode 100644 index 000000000..9f470ca37 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7553-var-for-in-of-zero-iterations.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7553-var-for-in-of-zero-iterations.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7620-js-class-view-descriptors.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7620-js-class-view-descriptors.js.json new file mode 100644 index 000000000..2cb1ece22 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7620-js-class-view-descriptors.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7620-js-class-view-descriptors.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7661-node-call-modules/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7661-node-call-modules/main.ts.json new file mode 100644 index 000000000..85440ddc4 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7661-node-call-modules/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7661-node-call-modules/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7662-node-call-exit-events/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7662-node-call-exit-events/main.ts.json new file mode 100644 index 000000000..455735463 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7662-node-call-exit-events/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7662-node-call-exit-events/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/stream-runtime-option-order.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/stream-runtime-option-order.ts.json new file mode 100644 index 000000000..40b64edac --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/stream-runtime-option-order.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/stream-runtime-option-order.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts.json new file mode 100644 index 000000000..d026fb402 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts.json new file mode 100644 index 000000000..212551ccd --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts" + ], + "diags": [] +} diff --git a/packages/libnode-common/bridge/scr_node_bridge.cc b/packages/libnode-common/bridge/scr_node_bridge.cc index 1b578a0f7..ef60851d6 100644 --- a/packages/libnode-common/bridge/scr_node_bridge.cc +++ b/packages/libnode-common/bridge/scr_node_bridge.cc @@ -49,6 +49,7 @@ node::EmbedderSnapshotData::Pointer g_snapshot; std::unique_ptr g_setup; Locker *g_locker = nullptr; Global g_call; +Global g_finish; char *Copy(const std::string &text, size_t *len) { char *out = static_cast(std::malloc(text.size() + 1)); @@ -59,11 +60,23 @@ char *Copy(const std::string &text, size_t *len) { return out; } +// The start of the runtime's stack when the caller runs on it (see the +// v8::base::Stack definitions at the end of this file), else 0. +uintptr_t HostStackStart() { + return g_host != nullptr && g_host->stack_start != nullptr ? g_host->stack_start() : 0; +} + Local Utf8(Isolate *isolate, const char *text, size_t len) { return String::NewFromUtf8(isolate, text, NewStringType::kNormal, static_cast(len)) .ToLocalChecked(); } +// A string longer than V8 can hold is empty instead of a fatal error. +v8::MaybeLocal MaybeUtf8(Isolate *isolate, const char *text, size_t len) { + if (len > static_cast(String::kMaxLength)) return {}; + return String::NewFromUtf8(isolate, text, NewStringType::kNormal, static_cast(len)); +} + Local Utf8(Isolate *isolate, const char *text) { return Utf8(isolate, text, std::strlen(text)); } @@ -75,15 +88,20 @@ std::string ToStdString(Isolate *isolate, Local value) { // The outcome of an exception the dispatcher itself did not catch (a stack // overflow, for example): an Error copy with its message. +// Reading the message runs user code (a getter, a toString), which may throw +// again; the copy then has an empty message. std::string ThrownOutcome(Isolate *isolate, Local context, Local exception) { + TryCatch inner(isolate); Local message = exception; if (exception->IsObject()) { Local own; if (exception.As()->Get(context, Utf8(isolate, "message")).ToLocal(&own)) message = own; } + Local text; Local quoted; - if (!v8::JSON::Stringify(context, message->ToString(context).ToLocalChecked()).ToLocal("ed)) + if (!message->ToString(context).ToLocal(&text) || + !v8::JSON::Stringify(context, text).ToLocal("ed)) return "T{\"error\":{\"kind\":0,\"message\":\"\"}}"; return "T{\"error\":{\"kind\":0,\"message\":" + ToStdString(isolate, quoted) + "}}"; } @@ -106,12 +124,18 @@ char *Start(const ScrNodeBridgeHost *host, const char *bootstrap, const char *ar if (dladdr(reinterpret_cast(&napi_create_function), &info) && info.dli_fname) dlopen(info.dli_fname, RTLD_NOW | RTLD_NOLOAD | RTLD_GLOBAL); std::vector args = {argv0}; + // The program is not a node process: NODE_OPTIONS from its environment + // does not apply, and Node leaves the process's resource limits and code + // pages as they are. auto result = node::InitializeOncePerProcess( args, {node::ProcessInitializationFlags::kNoInitializeV8, node::ProcessInitializationFlags::kNoInitializeNodeV8Platform, node::ProcessInitializationFlags::kNoStdioInitialization, node::ProcessInitializationFlags::kNoDefaultSignalHandling, - node::ProcessInitializationFlags::kNoPrintHelpOrVersionOutput}); + node::ProcessInitializationFlags::kNoPrintHelpOrVersionOutput, + node::ProcessInitializationFlags::kDisableNodeOptionsEnv, + node::ProcessInitializationFlags::kNoAdjustResourceLimits, + node::ProcessInitializationFlags::kNoUseLargePages}); if (result->early_return() || result->exit_code() != 0) { std::string message = "Node initialization failed"; for (const std::string &error : result->errors()) message += ": " + error; @@ -121,9 +145,12 @@ char *Start(const ScrNodeBridgeHost *host, const char *bootstrap, const char *ar v8::V8::InitializePlatform(g_platform.get()); v8::V8::Initialize(); g_snapshot = node::EmbedderSnapshotData::BuiltinSnapshotData(); + // Modules resolve inside the program's own module tree, never from + // NODE_PATH or the user's global module directories. auto flags = static_cast( node::EnvironmentFlags::kDefaultFlags | node::EnvironmentFlags::kNoCreateInspector | - node::EnvironmentFlags::kNoStartDebugSignalHandler); + node::EnvironmentFlags::kNoStartDebugSignalHandler | + node::EnvironmentFlags::kNoGlobalSearchPaths); std::vector errors; g_setup = g_snapshot ? node::CommonEnvironmentSetup::CreateFromSnapshot( g_platform.get(), &errors, g_snapshot.get(), result->args(), @@ -171,12 +198,16 @@ char *Start(const ScrNodeBridgeHost *host, const char *bootstrap, const char *ar } Local dispatcher; Local call; + Local finish; if (!global->Get(context, Utf8(isolate, "__scriptcNodeIsland")).ToLocal(&dispatcher) || !dispatcher->IsObject() || !dispatcher.As()->Get(context, Utf8(isolate, "call")).ToLocal(&call) || - !call->IsFunction()) + !call->IsFunction() || + !dispatcher.As()->Get(context, Utf8(isolate, "finish")).ToLocal(&finish) || + !finish->IsFunction()) return Copy("the Node island bootstrap left no dispatcher", nullptr); g_call.Reset(isolate, call.As()); + g_finish.Reset(isolate, finish.As()); global->Delete(context, Utf8(isolate, "__scriptcNodeIsland")).FromMaybe(false); global->Delete(context, Utf8(isolate, "__scriptcNodeIslandHost")).FromMaybe(false); return nullptr; @@ -192,12 +223,23 @@ char *Call(uint32_t id, int sync, const char *file, const char *specifier, const { node::CallbackScope scope(isolate, context->Global(), node::async_context{0, 0}); TryCatch try_catch(isolate); + Local args_text; + if (!MaybeUtf8(isolate, args, args_len).ToLocal(&args_text)) { + // The argument JSON is longer than V8's string limit: the RangeError + // V8 throws for such a string. + outcome = "T{\"error\":{\"kind\":2,\"message\":\"Invalid string length\"}}"; + if (!sync) { + g_host->settle(id, outcome.data(), outcome.size()); + return nullptr; + } + return Copy(outcome, len); + } Local argv[] = {Integer::NewFromUnsigned(isolate, id), v8::Boolean::New(isolate, sync != 0), Utf8(isolate, file), Utf8(isolate, specifier), Utf8(isolate, name), - Utf8(isolate, args, args_len)}; + args_text}; Local result; if (g_call.Get(isolate) ->Call(context, v8::Undefined(isolate), sizeof argv / sizeof argv[0], argv) @@ -232,11 +274,29 @@ void Pump() { g_platform->DrainTasks(isolate); } +// The program ends with `code`: Node's process ends with it too. Node's +// 'beforeExit' runs (and the work it schedules), then 'exit'; the result +// is the exit code Node's process ends with (process.exitCode). +int Finish(int code) { + if (!g_setup) return code; + Isolate *isolate = g_setup->isolate(); + { + HandleScope handles(isolate); + Local context = g_setup->context(); + Context::Scope context_scope(context); + TryCatch try_catch(isolate); + Local argv[] = {Integer::New(isolate, code)}; + (void)g_finish.Get(isolate)->Call(context, v8::Undefined(isolate), 1, argv); + } + return node::SpinEventLoop(g_setup->env()).FromMaybe(code); +} + void Stop() { if (!g_setup) return; Isolate *isolate = g_setup->isolate(); node::Stop(g_setup->env()); g_call.Reset(); + g_finish.Reset(); isolate->Exit(); delete g_locker; g_locker = nullptr; @@ -249,10 +309,37 @@ void Stop() { const ScrNodeBridge kBridge = { SCR_NODE_BRIDGE_ABI, NODE_VERSION_STRING, NODE_MODULE_VERSION, Start, Call, Release, BackendFd, BackendTimeout, Alive, Pump, Stop, + Finish, }; } // namespace +#if defined(__linux__) +// V8 asks v8::base::Stack for the start of the current thread's stack when +// it records the bound of its conservative stack scan (isolate creation, +// Locker). libnode calls these exported functions through its PLT, and this +// library precedes libnode in the lookup scope, so the definitions below +// answer for it: the runtime's stack while the caller runs on it, else +// libnode's own answer (RTLD_NEXT). Without them a garbage collection that +// scans the stack while JavaScript runs on the runtime's stack walks from +// that stack up to the main thread's and faults in the unmapped gap. +// (macOS binds libnode's calls inside libnode; its packs need another way.) +#define SCR_V8_STACK_START(fn, symbol) \ + extern "C" __attribute__((visibility("default"))) void *fn() __asm__(symbol); \ + extern "C" void *fn() { \ + static void *(*next)() = nullptr; \ + uintptr_t start = HostStackStart(); \ + if (start != 0) return reinterpret_cast(start); \ + if (next == nullptr) next = reinterpret_cast(dlsym(RTLD_NEXT, symbol)); \ + return next != nullptr ? next() : nullptr; \ + } +SCR_V8_STACK_START(ScrV8GetStackStart, "_ZN2v84base5Stack13GetStackStartEv") +SCR_V8_STACK_START(ScrV8GetStackStartUnchecked, "_ZN2v84base5Stack22GetStackStartUncheckedEv") +SCR_V8_STACK_START(ScrV8ObtainCurrentThreadStackStart, + "_ZN2v84base5Stack29ObtainCurrentThreadStackStartEv") +#undef SCR_V8_STACK_START +#endif + extern "C" __attribute__((visibility("default"))) const ScrNodeBridge *scr_node_bridge_v1() { return &kBridge; } diff --git a/packages/libnode-common/scripts/smoke.mjs b/packages/libnode-common/scripts/smoke.mjs index 578a926a0..caf2d7725 100644 --- a/packages/libnode-common/scripts/smoke.mjs +++ b/packages/libnode-common/scripts/smoke.mjs @@ -84,10 +84,13 @@ if (process.argv[1] === fileURLToPath(import.meta.url)) { const { values } = parseArgs({ options: { pack: { type: "string" }, platform: { type: "string" } }, }); + // An explicit --pack or --platform names the pack; SCRIPTC_LIBNODE only + // replaces the host's default. const pack = resolve( values.pack ?? - process.env.SCRIPTC_LIBNODE ?? - join(repoRoot, "packages", `libnode-${values.platform ?? hostPlatform()}`), + (values.platform !== undefined + ? join(repoRoot, "packages", `libnode-${values.platform}`) + : (process.env.SCRIPTC_LIBNODE ?? join(repoRoot, "packages", `libnode-${hostPlatform()}`))), ); const manifest = JSON.parse(readFileSync(join(pack, "manifest.json"), "utf8")); const { status, stdout, stderr } = runSmoke(pack); diff --git a/packages/libnode-common/test/bridge.test.ts b/packages/libnode-common/test/bridge.test.ts index 1ab6ab95b..4c37b31a3 100644 --- a/packages/libnode-common/test/bridge.test.ts +++ b/packages/libnode-common/test/bridge.test.ts @@ -45,7 +45,7 @@ exports.quit = (code) => process.exit(code); expect(result.stderr).toBe(""); expect(result.stdout).toBe( [ - "abi 2 ok 1", + "abi 3 ok 1", "sync add -> R5", 'sync fails -> T{"error":{"kind":2,"message":"out of range","code":"ERR_X"}}', `sync missing -> T{"error":{"kind":1,"message":"'missing' exported by './smoke.cjs' is not a function"}}`, diff --git a/packages/libnode-linux-arm64-gnu/package.json b/packages/libnode-linux-arm64-gnu/package.json index 2b6e9b66f..6ac8aa7c3 100644 --- a/packages/libnode-linux-arm64-gnu/package.json +++ b/packages/libnode-linux-arm64-gnu/package.json @@ -16,6 +16,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "files": [ "libnode.so.137", "libscr_node_bridge.so", diff --git a/packages/libnode-linux-x64-gnu/package.json b/packages/libnode-linux-x64-gnu/package.json index 05e36bd1e..e47e01f93 100644 --- a/packages/libnode-linux-x64-gnu/package.json +++ b/packages/libnode-linux-x64-gnu/package.json @@ -16,6 +16,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "files": [ "libnode.so.137", "libscr_node_bridge.so", diff --git a/packages/node/README.md b/packages/node/README.md index 77002db49..7b1c3656d 100644 --- a/packages/node/README.md +++ b/packages/node/README.md @@ -10,6 +10,8 @@ const config = await call<{ regions: string[] }>("config-parser", "parse", sourc ``` - The module loads with `require()` from the calling module: relative specifiers resolve from its directory, bare ones from its `node_modules`. +- In scriptc builds the specifier is a string literal. The build collects the module into the executable: a module of the program with the modules its string-literal `require()` and `import` reach, or a whole package with its dependencies. The executable loads them from its own copy, never from the build machine's files. A module of the program that loads others through computed specifiers is refused (SC8006); a module the build cannot find throws `MODULE_NOT_FOUND` when the call runs. +- The executable extracts its modules into `$XDG_CACHE_HOME/scriptc/node-islands/` (or `~/.cache/scriptc/node-islands/`) and checks every file against the build's digests on each start. With `--libnode=beside` they are written next to the executable instead, in `.libnode/modules/`. - Arguments and results cross as JSON copies; scriptc checks the result against the declared type. - A thrown `Error` crosses as its nearest intrinsic error class with its `message` and string `code`. - The executable loads Node from the libnode pack recorded at build time (`SCRIPTC_LIBNODE` or `scriptc build --libnode=`; `--libnode=beside` copies the pack next to the executable). `SCRIPTC_LIBNODE` overrides it at run time. A program that never calls into Node never loads it. diff --git a/packages/node/index.d.ts b/packages/node/index.d.ts index 10642b098..87a8eb541 100644 --- a/packages/node/index.d.ts +++ b/packages/node/index.d.ts @@ -9,6 +9,8 @@ * - the module loads with require() from the calling module, so a relative * specifier resolves from the caller's directory and a bare one from its * node_modules (ES modules load through require(esm)); + * - in scriptc builds `specifier` is a string literal: the build ships the + * module, and what it loads, inside the executable; * - the arguments cross as a copy, `JSON.parse(JSON.stringify(args))`, and * the function runs with the module namespace as `this`; * - the result crosses as its JSON copy (undefined stays undefined), and diff --git a/packages/runtime-darwin-arm64/scripts/build.mjs b/packages/runtime-darwin-arm64/scripts/build.mjs index 069cb66e9..e492c36b4 100644 --- a/packages/runtime-darwin-arm64/scripts/build.mjs +++ b/packages/runtime-darwin-arm64/scripts/build.mjs @@ -340,7 +340,7 @@ async function build() { package: packageManifest.name, version: packageManifest.version, target: RUNTIME_PACK_MATRIX.target, - runtime_abi: { version: 36, marker: "scr_runtime_abi_v36" }, + runtime_abi: { version: 37, marker: "scr_runtime_abi_v37" }, compiler: { command: compiler, identity: compilerVersion, diff --git a/packages/runtime-pack-common/scripts/build.mjs b/packages/runtime-pack-common/scripts/build.mjs index 54563ff64..b31ebe819 100644 --- a/packages/runtime-pack-common/scripts/build.mjs +++ b/packages/runtime-pack-common/scripts/build.mjs @@ -437,7 +437,7 @@ async function build() { package: packageManifest.name, version: packageManifest.version, target: matrix.target, - runtime_abi: { version: 36, marker: "scr_runtime_abi_v36" }, + runtime_abi: { version: 37, marker: "scr_runtime_abi_v37" }, compiler: { command: compiler, identity: compilerVersion, diff --git a/packages/runtime/src/scr_console.c b/packages/runtime/src/scr_console.c index 6def8d866..086340014 100644 --- a/packages/runtime/src/scr_console.c +++ b/packages/runtime/src/scr_console.c @@ -148,7 +148,7 @@ static void scr_enable_utf8_console_output(void) { } #endif -void scr_runtime_abi_v36(void) {} +void scr_runtime_abi_v37(void) {} void scr_init(void) { #ifdef SCR_WORKERS diff --git a/packages/runtime/src/scr_core.h b/packages/runtime/src/scr_core.h index f9cc8cc5f..3707b8d50 100644 --- a/packages/runtime/src/scr_core.h +++ b/packages/runtime/src/scr_core.h @@ -81,7 +81,7 @@ void scr_init(void); /* Program objects emitted by the bundled LLVM helper reference this symbol. * Its versioned spelling makes a mismatched manual runtime link fail before * the program can start. */ -void scr_runtime_abi_v36(void); +void scr_runtime_abi_v37(void); void scr_runtime_workers_v8(void); /* ── the trap funnel (scr_console.c; scr_library.c under -DSCR_LIB) ────── diff --git a/packages/runtime/src/scr_dyn_builtin_stream.c b/packages/runtime/src/scr_dyn_builtin_stream.c index 926f85eea..2875cfa06 100644 --- a/packages/runtime/src/scr_dyn_builtin_stream.c +++ b/packages/runtime/src/scr_dyn_builtin_stream.c @@ -34,7 +34,7 @@ * receiver without a reference; the hook closures outlive the record. * * Not supported here (each throws the "not supported yet" Error where it - * runs): the options scr_stream.c's dyn option walk refuses, `_writev` and `_construct`, symbol event names, listeners() / + * runs): the options scr_stream.c's dyn option walk refuses, symbol event names, listeners() / * rawListeners(), `wrap()`, and pipes into values that are neither runtime * streams nor constructor-function streams. */ #include "scr_runtime.h" @@ -898,20 +898,15 @@ static ScrDyn *bcs_construct(int kind, ScrDyn *self, ScrDyn *const *args, size_t } bool failed = false; bool writes = kind != BCS_READABLE; - bool transformish = kind == BCS_TRANSFORM || kind == BCS_PASSTHROUGH; ScrDyn *opts = bcs_arg(args, argc, 0); /* Node's constructors assign options.writev and options.construct to * the instance (this._writev = options.writev), then read _writev and * _construct, so an option shadows the prototype's method. */ if (opts->kind == SCR_DYN_OBJ) { - if (writes && !transformish && !bcs_copy_option(self, opts, "writev", "_writev")) return NULL; + if (writes && !bcs_copy_option(self, opts, "writev", "_writev")) return NULL; if (!bcs_copy_option(self, opts, "construct", "_construct")) return NULL; } bool has_writev = writes && bcs_is_function(self, "_writev", &failed); - if (has_writev && transformish) { - bcs_unsupported("_writev on a constructor-function Transform is not supported yet"); - return NULL; - } bool has_construct = !failed && bcs_is_function(self, "_construct", &failed); if (failed) return NULL; ScrStream *s = kind == BCS_READABLE ? scr_stream_new_readable_dyn(opts) diff --git a/packages/runtime/src/scr_fetch.c b/packages/runtime/src/scr_fetch.c index 6049a4936..aebe62659 100644 --- a/packages/runtime/src/scr_fetch.c +++ b/packages/runtime/src/scr_fetch.c @@ -3358,6 +3358,10 @@ static bool sf_header_value_ok(const ScrStr *value) { } static ScrStr *sf_header_value_bytestring(ScrStr *value) { + /* An ASCII value is its own ByteString: each byte is one UTF-16 unit. */ + size_t ascii = 0; + while (ascii < value->len && (unsigned char)value->data[ascii] < 0x80) ascii++; + if (ascii == value->len) return scr_str_retain(value); size_t len = (size_t)scr_str_utf16_len(value); char *bytes = malloc(len ? len : 1); if (!bytes) sf_oom(); diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index 14d0a901f..da18a1c0b 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -13898,19 +13898,74 @@ ScrDyn *scr_dyn_object_rest(const ScrDyn *source, const ScrDyn *excluded) { /* Compiler-owned native class views retain every property and its flags, * including nonenumerable data, without invoking accessors. */ -ScrDyn *scr_dyn_copy_property_descriptors(ScrDyn *target, const ScrDyn *src) { - if (!src || src->kind == SCR_DYN_UNDEF) return scr_dyn_retain(target); - ScrDyn *keys = scr_dyn_obj_own_keys(src); - if (!keys) return NULL; - for (size_t i = 0; i < keys->v.arr.len; i++) { - ScrDyn *key = keys->v.arr.items[i]; - ScrDyn *descriptor = scr_dyn_own_descriptor(src, key->v.str); +static void scr_dyn_copy_property_descriptor(ScrDyn *target, const ScrDyn *src, + const ScrDynEntry *from) { + /* Exactly scr_dyn_define_property(target, key, own descriptor of key) + * when `target` has no such property and accepts new ones: the entry + * takes the source's attributes, value or accessor pair. */ + ScrDynEntry *prior = scr_dyn_find_entry(target, from->key, from->key_len); + if (prior || target->non_extensible) { + ScrStr *name = scr_str_new(from->key, from->key_len); + ScrDyn *key = scr_dyn_new_str(name); + ScrDyn *descriptor = scr_dyn_own_descriptor(src, name); ScrDyn *result = descriptor ? scr_dyn_define_property(target, key, descriptor) : NULL; scr_dyn_release(descriptor); scr_dyn_release(result); - if (scr_exc_pending()) break; + scr_dyn_release(key); + scr_str_release(name); + return; + } + /* The names whose definition may move into a native Error's slots + * (scr_error_sync_slots). */ + static const char *const slots[] = {"cause", "stack", "name", "message", "code"}; + bool slot = false; + for (size_t i = 0; i < sizeof slots / sizeof *slots && !slot; i++) + slot = from->key_len == strlen(slots[i]) && memcmp(from->key, slots[i], from->key_len) == 0; + bool accessor = from->accessor, writable = !accessor && from->writable; + bool enumerable = from->enumerable, configurable = from->configurable; + ScrDyn *value = scr_dyn_retain(accessor ? scr_dyn_undefined() : from->value); + ScrDyn *getter = accessor && from->getter ? scr_dyn_retain(from->getter) : NULL; + ScrDyn *setter = accessor && from->setter ? scr_dyn_retain(from->setter) : NULL; + ScrStr *name = slot ? scr_str_new(from->key, from->key_len) : NULL; + scr_dyn_obj_set(target, from->key, from->key_len, value); + ScrDynEntry *entry = &target->v.obj.entries[target->v.obj.len - 1]; + entry->accessor = accessor; + entry->getter = getter; + entry->setter = setter; + entry->writable = writable; + entry->enumerable = enumerable; + entry->configurable = configurable; + if (name) { + scr_error_sync_cause(target, name); + scr_str_release(name); + } +} + +ScrDyn *scr_dyn_copy_property_descriptors(ScrDyn *target, const ScrDyn *src) { + if (!src || src->kind == SCR_DYN_UNDEF) return scr_dyn_retain(target); + if (src->kind == SCR_DYN_OBJ && target->kind == SCR_DYN_OBJ && src != target && + src != scr_builtin_object_prototype && target != scr_builtin_error_prototype) { + /* Plain objects on both sides: no fence, proxy trap or accessor runs, + * so each property is copied from its entry without building the key + * and descriptor objects the general path goes through. */ + if (src->v.obj.len) scr_dyn_region_store(target, NULL); + size_t *order = scr_dyn_obj_key_order(src); + for (size_t i = 0; i < src->v.obj.len && !scr_exc_pending(); i++) + scr_dyn_copy_property_descriptor(target, src, &src->v.obj.entries[order ? order[i] : i]); + free(order); + } else { + ScrDyn *keys = scr_dyn_obj_own_keys(src); + if (!keys) return NULL; + for (size_t i = 0; i < keys->v.arr.len; i++) { + ScrDyn *key = keys->v.arr.items[i]; + ScrDyn *descriptor = scr_dyn_own_descriptor(src, key->v.str); + ScrDyn *result = descriptor ? scr_dyn_define_property(target, key, descriptor) : NULL; + scr_dyn_release(descriptor); + scr_dyn_release(result); + if (scr_exc_pending()) break; + } + scr_dyn_release(keys); } - scr_dyn_release(keys); if (!scr_exc_pending()) { ScrDyn *symbols = scr_dyn_get_own_property_symbols(src); if (!symbols) return NULL; diff --git a/packages/runtime/src/scr_node_bridge.h b/packages/runtime/src/scr_node_bridge.h index 8ccdeaf8d..f88764691 100644 --- a/packages/runtime/src/scr_node_bridge.h +++ b/packages/runtime/src/scr_node_bridge.h @@ -16,7 +16,7 @@ #include #include -#define SCR_NODE_BRIDGE_ABI 2u +#define SCR_NODE_BRIDGE_ABI 3u /* The symbol a bridge library exports: `const ScrNodeBridge *(void)`. */ #define SCR_NODE_BRIDGE_ENTRY "scr_node_bridge_v1" @@ -27,6 +27,12 @@ typedef struct ScrNodeBridgeHost { /* Node ends the process (process.exit, an uncaught exception): the * runtime runs its exit sequence with this code and never returns. */ void (*exit)(int code); + /* The start (highest address) of the stack the caller runs on when the + * runtime provides it (Node's own stack), 0 for a thread's own stack. + * V8 scans the stack conservatively from the current position up to the + * start it records for the thread, so it must not record the thread's + * when JavaScript runs on the runtime's stack. */ + uintptr_t (*stack_start)(void); } ScrNodeBridgeHost; typedef struct ScrNodeBridge { @@ -58,6 +64,10 @@ typedef struct ScrNodeBridge { void (*pump)(void); /* Tears Node down at process exit. */ void (*stop)(void); + /* The program ends with `code`, before stop: Node's 'beforeExit' and + * 'exit' run, and the result is the code Node's process ends with + * (process.exitCode in Node, else `code`). */ + int (*finish)(int code); } ScrNodeBridge; #endif /* SCR_NODE_BRIDGE_H */ diff --git a/packages/runtime/src/scr_node_island.c b/packages/runtime/src/scr_node_island.c index 69aa6b225..e32f8da41 100644 --- a/packages/runtime/src/scr_node_island.c +++ b/packages/runtime/src/scr_node_island.c @@ -6,13 +6,15 @@ * dlopens the bridge library of a libnode pack (scr_node_bridge.h), which * links libnode, so a run that never calls into Node never maps it. * - * Locating Node. The pack directory is SCRIPTC_LIBNODE when set, else the - * path recorded at build time; a recorded path that starts with `$ORIGIN/` - * resolves against the directory of the running executable (the `beside` - * packaging, and the hook for shipping Node with the program). No search - * path is used. The bridge must speak SCR_NODE_BRIDGE_ABI and link the - * Node version recorded at build time; anything else is a fatal error at - * first use, never a silent use of another Node. + * Locating Node. The pack directory is SCRIPTC_LIBNODE when set (an + * absolute path), else the path recorded at build time; a recorded path + * that starts with `$ORIGIN/` resolves against the directory of the + * running executable (the `beside` packaging, and the hook for shipping + * Node with the program). A process with elevated privileges ignores + * SCRIPTC_LIBNODE and refuses `$ORIGIN/`. No search path is used. The + * bridge must speak SCR_NODE_BRIDGE_ABI and link the Node version recorded + * at build time; anything else is a fatal error at first use, never a + * silent use of another Node. * * Calls. A call serializes its arguments as JSON, enters JavaScript through * the bridge (a callback scope, so ticks and microtasks drain when it @@ -43,9 +45,17 @@ #if !defined(_WIN32) && !defined(__wasi__) #include "scr_node_island_host.h" +#include #include +#include +#include #include +#include #include +#include +#if defined(__linux__) +#include +#endif #ifdef __APPLE__ #define NI_BRIDGE_FILE "libscr_node_bridge.dylib" @@ -86,6 +96,15 @@ void scr_node_island_install(const char *libnode, const char *node_version) { SCR_COLD static void ni_oom(void) { scr_trap("scriptc: out of memory\n"); } +/* `len` bytes as a NUL-terminated malloc'd copy. */ +static char *ni_cstr_of(const char *bytes, size_t len) { + char *copy = malloc(len + 1); + if (copy == NULL) ni_oom(); + memcpy(copy, bytes, len); + copy[len] = '\0'; + return copy; +} + SCR_COLD static void ni_fatal(const char *message) { fflush(stdout); fputs(message, stderr); @@ -93,27 +112,600 @@ SCR_COLD static void ni_fatal(const char *message) { _Exit(1); } +/* True when the process runs with elevated privileges (setuid, setgid or + * file capabilities). The pack directory then comes only from an absolute + * path recorded at build time, as the dynamic linker ignores + * LD_LIBRARY_PATH and $ORIGIN for such processes. */ +static bool ni_secure(void) { +#if defined(__APPLE__) + return issetugid() != 0; +#elif defined(__linux__) + return getauxval(AT_SECURE) != 0; +#else + return false; +#endif +} + /* The pack directory: SCRIPTC_LIBNODE, else the recorded path with a - * leading `$ORIGIN/` resolved against the executable's own directory. */ + * leading `$ORIGIN/` resolved against the executable's own directory. + * Both must resolve to absolute paths. */ static const char *ni_pack_dir(void) { - const char *override = getenv("SCRIPTC_LIBNODE"); + bool secure = ni_secure(); + const char *override = secure ? NULL : getenv("SCRIPTC_LIBNODE"); + if (override != NULL && override[0] != '\0' && override[0] != '/') + ni_fatal("scriptc: SCRIPTC_LIBNODE must be an absolute path to a libnode pack directory\n"); const char *dir = override != NULL && override[0] != '\0' ? override : ni_libnode; if (dir == NULL || dir[0] == '\0') ni_fatal("scriptc: this program calls into Node.js (@scriptc/node), but no libnode pack was " "recorded at build time; set SCRIPTC_LIBNODE to a pack directory\n"); static const char origin[] = "$ORIGIN/"; + int written; if (dir != override && strncmp(dir, origin, sizeof origin - 1) == 0) { + if (secure) + ni_fatal("scriptc: a program running with elevated privileges cannot load a libnode pack " + "beside its executable; build it with an absolute SCRIPTC_LIBNODE\n"); ScrStr *self = scr_process_exec_path(); size_t len = self->len; while (len > 0 && self->data[len - 1] != '/') len--; - snprintf(ni_dir, sizeof ni_dir, "%.*s%s", (int)len, self->data, dir + sizeof origin - 1); + if (len == 0 || self->data[0] != '/') { + scr_str_release(self); + ni_fatal("scriptc: cannot locate this program's executable to find its libnode pack\n"); + } + written = snprintf(ni_dir, sizeof ni_dir, "%.*s%s", (int)len, self->data, + dir + sizeof origin - 1); scr_str_release(self); } else { - snprintf(ni_dir, sizeof ni_dir, "%s", dir); + written = snprintf(ni_dir, sizeof ni_dir, "%s", dir); } + if (written < 0 || (size_t)written >= sizeof ni_dir) + ni_fatal("scriptc: the libnode pack path is too long\n"); return ni_dir; } +/* ── the island module tree ───────────────────────────────────────────── */ + +/* The JavaScript the program's calls load (node-islands/modules.ts), named + * by a manifest of relative paths with their sizes and SHA-256 digests, plus + * the links between package directories. Before Node loads anything, the + * tree is made available at one directory, and every file is checked against + * the manifest: + * - beside the executable (`--libnode=beside`), at the recorded `$ORIGIN/` + * path, checked on every start; + * - otherwise from the executable itself, extracted once into + * $XDG_CACHE_HOME/scriptc/node-islands// (or + * ~/.cache/...), checked on every start; when that directory cannot be + * used, into a private directory under $TMPDIR removed at exit. + * Directories are created 0700 and owned by the process's user; no link is + * followed below the cache directory. A process with elevated privileges + * refuses the tree, as it refuses SCRIPTC_LIBNODE. A call names its module + * by its path relative to the tree. */ +static const char *ni_manifest = NULL; +static size_t ni_manifest_len = 0; +static const unsigned char *ni_modules = NULL; +static size_t ni_modules_len = 0; +static const char *ni_modules_location = NULL; +/* The tree's directory at run time; "/" when the calls load only Node's + * built-in modules. */ +static char ni_root[4096] = "/"; + +void scr_node_island_install_modules(const char *manifest, size_t manifest_len, + const unsigned char *data, size_t data_len, + const char *location) { + ni_manifest = manifest; + ni_manifest_len = manifest_len; + ni_modules = data; + ni_modules_len = data_len; + ni_modules_location = location; +} + +/* SHA-256 (FIPS 180-4), for the manifest's digests. */ +typedef struct { + uint32_t h[8]; + uint64_t bytes; + unsigned char tail[64]; + size_t tail_len; +} NiSha256; + +static const uint32_t ni_sha256_k[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2}; + +static uint32_t ni_rotr(uint32_t x, unsigned n) { return (x >> n) | (x << (32 - n)); } + +static void ni_sha256_block(uint32_t h[8], const unsigned char *p) { + uint32_t w[64]; + for (int i = 0; i < 16; i++) + w[i] = ((uint32_t)p[i * 4] << 24) | ((uint32_t)p[i * 4 + 1] << 16) | + ((uint32_t)p[i * 4 + 2] << 8) | (uint32_t)p[i * 4 + 3]; + for (int i = 16; i < 64; i++) { + uint32_t s0 = ni_rotr(w[i - 15], 7) ^ ni_rotr(w[i - 15], 18) ^ (w[i - 15] >> 3); + uint32_t s1 = ni_rotr(w[i - 2], 17) ^ ni_rotr(w[i - 2], 19) ^ (w[i - 2] >> 10); + w[i] = w[i - 16] + s0 + w[i - 7] + s1; + } + uint32_t a = h[0], b = h[1], c = h[2], d = h[3], e = h[4], f = h[5], g = h[6], k = h[7]; + for (int i = 0; i < 64; i++) { + uint32_t t1 = k + (ni_rotr(e, 6) ^ ni_rotr(e, 11) ^ ni_rotr(e, 25)) + ((e & f) ^ (~e & g)) + + ni_sha256_k[i] + w[i]; + uint32_t t2 = (ni_rotr(a, 2) ^ ni_rotr(a, 13) ^ ni_rotr(a, 22)) + ((a & b) ^ (a & c) ^ (b & c)); + k = g; + g = f; + f = e; + e = d + t1; + d = c; + c = b; + b = a; + a = t1 + t2; + } + h[0] += a; + h[1] += b; + h[2] += c; + h[3] += d; + h[4] += e; + h[5] += f; + h[6] += g; + h[7] += k; +} + +static void ni_sha256_init(NiSha256 *s) { + static const uint32_t initial[8] = {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19}; + memcpy(s->h, initial, sizeof initial); + s->bytes = 0; + s->tail_len = 0; +} + +static void ni_sha256_update(NiSha256 *s, const unsigned char *data, size_t len) { + s->bytes += len; + while (len > 0) { + if (s->tail_len == 0 && len >= 64) { + ni_sha256_block(s->h, data); + data += 64; + len -= 64; + continue; + } + size_t take = 64 - s->tail_len < len ? 64 - s->tail_len : len; + memcpy(s->tail + s->tail_len, data, take); + s->tail_len += take; + data += take; + len -= take; + if (s->tail_len == 64) { + ni_sha256_block(s->h, s->tail); + s->tail_len = 0; + } + } +} + +static void ni_sha256_final(NiSha256 *s, unsigned char out[32]) { + uint64_t bits = s->bytes * 8; + unsigned char pad[72] = {0x80}; + size_t padding = (s->tail_len < 56 ? 56 : 120) - s->tail_len; + for (int i = 0; i < 8; i++) pad[padding + i] = (unsigned char)(bits >> (56 - 8 * i)); + ni_sha256_update(s, pad, padding + 8); + for (int i = 0; i < 8; i++) + for (int b = 0; b < 4; b++) out[i * 4 + b] = (unsigned char)(s->h[i] >> (24 - 8 * b)); +} + +typedef struct { + char *path; + size_t size; + unsigned char sha256[32]; + size_t offset; /* into ni_modules */ +} NiFile; + +typedef struct { + char *path, *target; +} NiLink; + +static NiFile *ni_files = NULL; +static size_t ni_nfiles = 0; +static NiLink *ni_links = NULL; +static size_t ni_nlinks = 0; + +SCR_COLD static void ni_bad_manifest(void) { + ni_fatal("scriptc: this program's Node island module manifest is malformed\n"); +} + +static char *ni_dup_str(const ScrDyn *d) { + if (d == NULL || d->kind != SCR_DYN_STR) ni_bad_manifest(); + if (memchr(d->v.str->data, '\0', d->v.str->len) != NULL) ni_bad_manifest(); + return ni_cstr_of(d->v.str->data, d->v.str->len); +} + +/* A relative path inside the tree: no leading `/`, no empty, `.` or `..` + * component. */ +static bool ni_relative_inside(const char *path) { + if (path[0] == '\0' || path[0] == '/') return false; + for (const char *p = path;;) { + const char *slash = strchr(p, '/'); + size_t n = slash != NULL ? (size_t)(slash - p) : strlen(p); + if (n == 0 || (n == 1 && p[0] == '.') || (n == 2 && p[0] == '.' && p[1] == '.')) return false; + if (slash == NULL) return true; + p = slash + 1; + } +} + +/* A link target that, read from the link's directory, stays inside the + * tree. */ +static bool ni_link_inside(const char *link, const char *target) { + if (target[0] == '\0' || target[0] == '/') return false; + long depth = 0; + for (const char *p = link; (p = strchr(p, '/')) != NULL; p++) depth++; + for (const char *p = target;;) { + const char *slash = strchr(p, '/'); + size_t n = slash != NULL ? (size_t)(slash - p) : strlen(p); + if (n == 2 && p[0] == '.' && p[1] == '.') { + if (--depth < 0) return false; + } else if (n == 0 || !(n == 1 && p[0] == '.')) { + if (n == 0) return false; + depth++; + } + if (slash == NULL) return true; + p = slash + 1; + } +} + +static int ni_hex(char c) { + return c >= '0' && c <= '9' ? c - '0' : c >= 'a' && c <= 'f' ? c - 'a' + 10 : -1; +} + +static void ni_parse_manifest(void) { + ScrStr *text = scr_str_new(ni_manifest, ni_manifest_len); + ScrDyn *body = scr_json_parse(text); + scr_str_release(text); + if (body == NULL || body->kind != SCR_DYN_OBJ) ni_bad_manifest(); + ScrDyn *files = scr_dyn_obj_get(body, "files", 5); + ScrDyn *links = scr_dyn_obj_get(body, "links", 5); + if (files == NULL || files->kind != SCR_DYN_ARR || links == NULL || links->kind != SCR_DYN_ARR) + ni_bad_manifest(); + ni_nfiles = (size_t)scr_dyn_arr_len(files); + ni_nlinks = (size_t)scr_dyn_arr_len(links); + ni_files = calloc(ni_nfiles + 1, sizeof *ni_files); + ni_links = calloc(ni_nlinks + 1, sizeof *ni_links); + if (ni_files == NULL || ni_links == NULL) ni_oom(); + size_t offset = 0; + for (size_t i = 0; i < ni_nfiles; i++) { + ScrDyn *entry = scr_dyn_arr_at(files, (double)i); + if (entry->kind != SCR_DYN_ARR || scr_dyn_arr_len(entry) != 3) ni_bad_manifest(); + ScrDyn *path = scr_dyn_arr_at(entry, 0), *size = scr_dyn_arr_at(entry, 1), + *digest = scr_dyn_arr_at(entry, 2); + NiFile *f = &ni_files[i]; + f->path = ni_dup_str(path); + if (!ni_relative_inside(f->path) || size->kind != SCR_DYN_NUM || size->v.num < 0 || + digest->kind != SCR_DYN_STR || digest->v.str->len != 64) + ni_bad_manifest(); + f->size = (size_t)size->v.num; + for (int b = 0; b < 32; b++) { + int hi = ni_hex(digest->v.str->data[b * 2]), lo = ni_hex(digest->v.str->data[b * 2 + 1]); + if (hi < 0 || lo < 0) ni_bad_manifest(); + f->sha256[b] = (unsigned char)(hi * 16 + lo); + } + f->offset = offset; + offset += f->size; + scr_dyn_release(path); + scr_dyn_release(size); + scr_dyn_release(digest); + scr_dyn_release(entry); + } + if (ni_modules != NULL && offset != ni_modules_len) ni_bad_manifest(); + for (size_t i = 0; i < ni_nlinks; i++) { + ScrDyn *entry = scr_dyn_arr_at(links, (double)i); + if (entry->kind != SCR_DYN_ARR || scr_dyn_arr_len(entry) != 2) ni_bad_manifest(); + ScrDyn *path = scr_dyn_arr_at(entry, 0), *target = scr_dyn_arr_at(entry, 1); + ni_links[i].path = ni_dup_str(path); + ni_links[i].target = ni_dup_str(target); + if (!ni_relative_inside(ni_links[i].path) || + !ni_link_inside(ni_links[i].path, ni_links[i].target)) + ni_bad_manifest(); + scr_dyn_release(path); + scr_dyn_release(target); + scr_dyn_release(entry); + } + scr_dyn_release(body); +} + +/* The directory `name` in `dirfd`, never through a link; created 0700 when + * `create` and absent. -1 when it cannot be opened. */ +static int ni_dir_at(int dirfd, const char *name, bool create) { + if (create && mkdirat(dirfd, name, 0700) != 0 && errno != EEXIST) return -1; + return openat(dirfd, name, O_RDONLY | O_DIRECTORY | O_NOFOLLOW | O_CLOEXEC); +} + +/* The parent directory of the relative `path` below `rootfd` (its last + * component is left in *base), opened component by component without + * following links; created when `create`. -1 when it cannot be opened. */ +static int ni_parent_at(int rootfd, const char *path, bool create, const char **base) { + int fd = dup(rootfd); + const char *p = path; + for (const char *slash; fd >= 0 && (slash = strchr(p, '/')) != NULL; p = slash + 1) { + char component[256]; + size_t n = (size_t)(slash - p); + if (n >= sizeof component) { + close(fd); + return -1; + } + memcpy(component, p, n); + component[n] = '\0'; + int next = ni_dir_at(fd, component, create); + close(fd); + fd = next; + } + *base = p; + return fd; +} + +/* A directory this process may trust: owned by its user, writable by no + * one else. */ +static bool ni_private_dir(int fd) { + struct stat st; + return fd >= 0 && fstat(fd, &st) == 0 && S_ISDIR(st.st_mode) && st.st_uid == geteuid() && + (st.st_mode & 022) == 0; +} + +static bool ni_digest_matches(const unsigned char *data, size_t len, + const unsigned char expected[32]) { + NiSha256 s; + unsigned char got[32]; + ni_sha256_init(&s); + ni_sha256_update(&s, data, len); + ni_sha256_final(&s, got); + return memcmp(got, expected, 32) == 0; +} + +/* Whether the tree below `rootfd` holds exactly the manifest's files (by + * size and digest) and links. */ +static bool ni_tree_matches(int rootfd) { + for (size_t i = 0; i < ni_nfiles; i++) { + const char *base; + int dirfd = ni_parent_at(rootfd, ni_files[i].path, false, &base); + if (dirfd < 0) return false; + int fd = openat(dirfd, base, O_RDONLY | O_NOFOLLOW | O_CLOEXEC); + close(dirfd); + struct stat st; + if (fd < 0 || fstat(fd, &st) != 0 || !S_ISREG(st.st_mode) || + (size_t)st.st_size != ni_files[i].size) { + if (fd >= 0) close(fd); + return false; + } + NiSha256 s; + ni_sha256_init(&s); + unsigned char buffer[65536]; + size_t total = 0; + for (;;) { + ssize_t n = read(fd, buffer, sizeof buffer); + if (n < 0 && errno == EINTR) continue; + if (n <= 0) break; + ni_sha256_update(&s, buffer, (size_t)n); + total += (size_t)n; + } + close(fd); + unsigned char got[32]; + ni_sha256_final(&s, got); + if (total != ni_files[i].size || memcmp(got, ni_files[i].sha256, 32) != 0) return false; + } + for (size_t i = 0; i < ni_nlinks; i++) { + const char *base; + int dirfd = ni_parent_at(rootfd, ni_links[i].path, false, &base); + if (dirfd < 0) return false; + char target[4096]; + ssize_t n = readlinkat(dirfd, base, target, sizeof target - 1); + close(dirfd); + if (n < 0) return false; + target[n] = '\0'; + if (strcmp(target, ni_links[i].target) != 0) return false; + } + return true; +} + +/* Writes the executable's tree below `rootfd` (an empty directory). */ +static bool ni_extract(int rootfd) { + for (size_t i = 0; i < ni_nfiles; i++) { + const unsigned char *data = ni_modules + ni_files[i].offset; + if (!ni_digest_matches(data, ni_files[i].size, ni_files[i].sha256)) return false; + const char *base; + int dirfd = ni_parent_at(rootfd, ni_files[i].path, true, &base); + if (dirfd < 0) return false; + int fd = openat(dirfd, base, O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW | O_CLOEXEC, 0600); + close(dirfd); + if (fd < 0) return false; + size_t done = 0; + while (done < ni_files[i].size) { + ssize_t n = write(fd, data + done, ni_files[i].size - done); + if (n < 0 && errno == EINTR) continue; + if (n <= 0) break; + done += (size_t)n; + } + if (close(fd) != 0 || done != ni_files[i].size) return false; + } + for (size_t i = 0; i < ni_nlinks; i++) { + const char *base; + int dirfd = ni_parent_at(rootfd, ni_links[i].path, true, &base); + if (dirfd < 0) return false; + int status = symlinkat(ni_links[i].target, dirfd, base); + close(dirfd); + if (status != 0) return false; + } + return true; +} + +/* Removes everything below `dirfd` and closes it, never following links. */ +static void ni_remove_below(int dirfd) { + DIR *dir = fdopendir(dirfd); + if (dir == NULL) { + close(dirfd); + return; + } + for (struct dirent *e; (e = readdir(dir)) != NULL;) { + if (strcmp(e->d_name, ".") == 0 || strcmp(e->d_name, "..") == 0) continue; + int sub = openat(dirfd, e->d_name, O_RDONLY | O_DIRECTORY | O_NOFOLLOW | O_CLOEXEC); + if (sub >= 0) { + ni_remove_below(sub); + (void)unlinkat(dirfd, e->d_name, AT_REMOVEDIR); + } else { + (void)unlinkat(dirfd, e->d_name, 0); + } + } + closedir(dir); +} + + +static char ni_temp_root[4096] = ""; + +static void ni_remove_temp_root(void) { + int fd = open(ni_temp_root, O_RDONLY | O_DIRECTORY | O_NOFOLLOW | O_CLOEXEC); + if (fd >= 0) ni_remove_below(fd); + (void)rmdir(ni_temp_root); +} + +static bool ni_set_root(const char *a, const char *b, const char *c) { + int n = snprintf(ni_root, sizeof ni_root, "%s%s%s", a, b, c); + return n > 0 && (size_t)n < sizeof ni_root; +} + +/* The tree in the cache directory, extracted there when absent. */ +static bool ni_cached_root(const char *digest) { + const char *xdg = getenv("XDG_CACHE_HOME"); + const char *home = getenv("HOME"); + char base[4096]; + int n; + if (xdg != NULL && xdg[0] == '/') + n = snprintf(base, sizeof base, "%s", xdg); + else if (home != NULL && home[0] == '/') + n = snprintf(base, sizeof base, "%s/.cache", home); + else + return false; + if (n <= 0 || (size_t)n >= sizeof base) return false; + (void)mkdir(base, 0700); + int basefd = open(base, O_RDONLY | O_DIRECTORY | O_CLOEXEC); + if (basefd < 0) return false; + int scriptc = ni_dir_at(basefd, "scriptc", true); + close(basefd); + int islands = ni_private_dir(scriptc) ? ni_dir_at(scriptc, "node-islands", true) : -1; + if (scriptc >= 0) close(scriptc); + if (!ni_private_dir(islands)) { + if (islands >= 0) close(islands); + return false; + } + bool ok = false; + int tree = ni_dir_at(islands, digest, false); + if (tree < 0 && errno == ENOENT) { + /* Extract into a fresh sibling, then move it into place. */ + char staging[128]; + snprintf(staging, sizeof staging, "%s.%ld.tmp", digest, (long)getpid()); + int fd = ni_dir_at(islands, staging, true); + if (ni_private_dir(fd) && ni_extract(fd) && ni_tree_matches(fd) && + renameat(islands, staging, islands, digest) == 0) { + close(fd); + tree = ni_dir_at(islands, digest, false); + } else { + if (fd >= 0) ni_remove_below(fd); + (void)unlinkat(islands, staging, AT_REMOVEDIR); + tree = ni_dir_at(islands, digest, false); /* another process may have placed it */ + } + } + if (ni_private_dir(tree) && ni_tree_matches(tree)) + ok = ni_set_root(base, "/scriptc/node-islands/", digest); + if (tree >= 0) close(tree); + close(islands); + return ok; +} + +/* The tree in a private directory of this run, removed at exit. */ +static bool ni_temporary_root(void) { + const char *tmp = getenv("TMPDIR"); + if (tmp == NULL || tmp[0] != '/') tmp = "/tmp"; + int n = snprintf(ni_temp_root, sizeof ni_temp_root, "%s/scriptc-node-islands-XXXXXX", tmp); + if (n <= 0 || (size_t)n >= sizeof ni_temp_root || mkdtemp(ni_temp_root) == NULL) return false; + scr_atexit(ni_remove_temp_root); + int fd = open(ni_temp_root, O_RDONLY | O_DIRECTORY | O_NOFOLLOW | O_CLOEXEC); + bool ok = ni_private_dir(fd) && ni_extract(fd) && ni_tree_matches(fd); + if (fd >= 0) close(fd); + return ok && ni_set_root(ni_temp_root, "", ""); +} + +/* Makes the tree available and sets ni_root; fatal when it cannot. */ +static void ni_open_modules(void) { + if (ni_manifest == NULL) return; /* only built-in modules */ + if (ni_secure()) + ni_fatal("scriptc: a program running with elevated privileges cannot load Node island " + "modules\n"); + ni_parse_manifest(); + if (ni_modules_location != NULL && ni_modules_location[0] != '\0') { + static const char origin[] = "$ORIGIN/"; + if (strncmp(ni_modules_location, origin, sizeof origin - 1) != 0) ni_bad_manifest(); + ScrStr *self = scr_process_exec_path(); + size_t len = self->len; + while (len > 0 && self->data[len - 1] != '/') len--; + bool absolute = len > 0 && self->data[0] == '/'; + char dir[4096]; + int n = snprintf(dir, sizeof dir, "%.*s", (int)len, self->data); + scr_str_release(self); + if (!absolute || n <= 0 || (size_t)n >= sizeof dir || + !ni_set_root(dir, ni_modules_location + sizeof origin - 1, "")) + ni_fatal("scriptc: cannot locate this program's Node island modules\n"); + int fd = open(ni_root, O_RDONLY | O_DIRECTORY | O_CLOEXEC); + bool ok = fd >= 0 && ni_tree_matches(fd); + if (fd >= 0) close(fd); + if (!ok) { + char message[8192]; + snprintf(message, sizeof message, + "scriptc: the Node island modules at %s do not match this program\n", ni_root); + ni_fatal(message); + } + return; + } + NiSha256 s; + unsigned char digest[32]; + ni_sha256_init(&s); + ni_sha256_update(&s, (const unsigned char *)ni_manifest, ni_manifest_len); + ni_sha256_final(&s, digest); + char hex[65]; + for (int i = 0; i < 32; i++) snprintf(hex + i * 2, 3, "%02x", digest[i]); + if (ni_modules == NULL && ni_nfiles > 0) ni_bad_manifest(); + if (!ni_cached_root(hex) && !ni_temporary_root()) + ni_fatal("scriptc: cannot write this program's Node island modules to a private directory\n"); +} + +/* The calling module's path inside the tree: `/`. */ +static char *ni_caller_path(const ScrStr *relative) { + size_t root = strlen(ni_root); + bool slash = root > 0 && ni_root[root - 1] == '/'; + char *path = malloc(root + 1 + relative->len + 1); + if (path == NULL) ni_oom(); + memcpy(path, ni_root, root); + if (!slash) path[root++] = '/'; + memcpy(path + root, relative->data, relative->len); + path[root + relative->len] = '\0'; + return path; +} + +/* The bootstrap: the tree root for the host's resolution guard, then the + * host script. +1 malloc'd. */ +static char *ni_bootstrap(void) { + size_t host = strlen(scr_node_island_host_js); + size_t cap = 64 + strlen(ni_root) * 6 + host; + char *out = malloc(cap); + if (out == NULL) ni_oom(); + size_t n = (size_t)snprintf(out, cap, "globalThis.__scriptcNodeIslandRoot = \""); + for (const char *p = ni_root; *p != '\0'; p++) { + unsigned char c = (unsigned char)*p; + if (c == '"' || c == '\\') + n += (size_t)snprintf(out + n, cap - n, "\\%c", c); + else if (c < 0x20) + n += (size_t)snprintf(out + n, cap - n, "\\u%04x", c); + else + out[n++] = (char)c; + } + n += (size_t)snprintf(out + n, cap - n, "\";\n"); + memcpy(out + n, scr_node_island_host_js, host + 1); + return out; +} + /* ── outcomes ─────────────────────────────────────────────────────────── */ /* The result of an "R" outcome: its JSON copy, or undefined. +1, or NULL @@ -180,7 +772,10 @@ static void ni_exit(int code) { ni_fatal(""); } -static const ScrNodeBridgeHost ni_host = {&ni_settle, &ni_exit}; +/* The start of Node's stack for callers on it (V8's stack-scan bound). */ +static uintptr_t ni_stack_start(void); + +static const ScrNodeBridgeHost ni_host = {&ni_settle, &ni_exit, &ni_stack_start}; /* ── the loop slot ────────────────────────────────────────────────────── */ @@ -191,7 +786,27 @@ static void ni_on_node_stack(void (*job)(void *), void *arg); static void ni_pump(void) { ni_on_node_stack(ni_pump_job, NULL); } static int ni_backend_fd(void) { return ni_bridge->backend_fd(); } static int ni_backend_timeout(void) { return ni_bridge->backend_timeout(); } -static void ni_stop_atexit(void) { ni_on_node_stack(ni_stop_job, NULL); } +typedef struct { + int code; +} NiFinish; +static void ni_finish_job(void *p); + +/* At exit, after the program's own exit work: Node's process ends with + * the program's code ('beforeExit', then 'exit'), and Node stops. A code + * Node's process changed (process.exitCode in Node) is the program's. */ +static void ni_stop_atexit(void) { + int code = (int)scr_process_exit_code_or_zero(); + NiFinish finish = {code}; + /* Node writes to the same stdout. */ + fflush(stdout); + ni_on_node_stack(ni_finish_job, &finish); + ni_on_node_stack(ni_stop_job, NULL); + if (finish.code != code) { + fflush(NULL); + if (ni_temp_root[0] != '\0') ni_remove_temp_root(); + _Exit(finish.code & 0xff); + } +} /* ── Node's stack ─────────────────────────────────────────────────────── */ @@ -219,6 +834,13 @@ static void ni_trampoline(void) { } } +static uintptr_t ni_stack_start(void) { + uintptr_t sp = (uintptr_t)__builtin_frame_address(0); + return ni_stack != NULL && sp >= (uintptr_t)ni_stack && sp < (uintptr_t)ni_stack + NI_STACK + ? (uintptr_t)ni_stack + NI_STACK + : 0; +} + /* Runs job(arg) on Node's stack (directly when already there). */ static void ni_on_node_stack(void (*job)(void *), void *arg) { if (ni_on_stack) { @@ -294,13 +916,21 @@ static void ni_stop_job(void *p) { ni_bridge->stop(); } +static void ni_finish_job(void *p) { + NiFinish *a = p; + a->code = ni_bridge->finish(a->code); +} + /* ── loading Node ─────────────────────────────────────────────────────── */ static void ni_start(void) { if (ni_bridge != NULL) return; const char *dir = ni_pack_dir(); + ni_open_modules(); char path[4352]; - snprintf(path, sizeof path, "%s/%s", dir, NI_BRIDGE_FILE); + int written = snprintf(path, sizeof path, "%s/%s", dir, NI_BRIDGE_FILE); + if (written < 0 || (size_t)written >= sizeof path) + ni_fatal("scriptc: the libnode pack path is too long\n"); /* RTLD_GLOBAL: native addons resolve napi_* and node::* from the global * namespace. The executable exports no symbols libnode could bind to. */ void *library = dlopen(path, RTLD_NOW | RTLD_GLOBAL); @@ -337,8 +967,10 @@ static void ni_start(void) { /* Flush first: Node writes to the same stdout. */ fflush(stdout); ni_bridge = bridge; - NiStart start = {scr_node_island_host_js, argv0, NULL}; + char *bootstrap = ni_bootstrap(); + NiStart start = {bootstrap, argv0, NULL}; ni_on_node_stack(ni_start_job, &start); + free(bootstrap); char *error = start.error; if (error != NULL) { char message[8192]; @@ -364,17 +996,11 @@ static ScrDyn *ni_args_json(ScrDyn *args) { } /* A borrowed ScrStr as a NUL-terminated copy for the bridge. */ -static char *ni_cstr(const ScrStr *s) { - char *copy = malloc(s->len + 1); - if (copy == NULL) ni_oom(); - memcpy(copy, s->data, s->len); - copy[s->len] = '\0'; - return copy; -} +static char *ni_cstr(const ScrStr *s) { return ni_cstr_of(s->data, s->len); } static char *ni_call(uint32_t id, bool sync, ScrStr *file, ScrStr *specifier, ScrStr *name, ScrDyn *json, size_t *len) { - char *f = ni_cstr(file), *s = ni_cstr(specifier), *n = ni_cstr(name); + char *f = ni_caller_path(file), *s = ni_cstr(specifier), *n = ni_cstr(name); NiCall call = {id, sync ? 1 : 0, f, s, n, json->v.str->data, json->v.str->len, 0, NULL}; ni_on_node_stack(ni_call_job, &call); char *outcome = call.outcome; @@ -385,7 +1011,23 @@ static char *ni_call(uint32_t id, bool sync, ScrStr *file, ScrStr *specifier, Sc return outcome; } +/* Node runs on the main thread only: its isolate is entered under the + * Locker the starting thread holds, and the loader's state and Node's + * stack are process-wide. A call from a worker thread throws an Error. */ +static bool ni_main_thread(void) { + if (scr_context_is_main()) return true; + ScrStr *code = scr_str_new("", 0); + static const char text[] = + "Node islands run on the main thread only; this call came from a worker thread"; + ScrStr *message = scr_str_new(text, sizeof text - 1); + scr_throw_node_coded(0, code, message); + scr_str_release(message); + scr_str_release(code); + return false; +} + ScrDyn *scr_node_island_call_sync(ScrStr *file, ScrStr *specifier, ScrStr *name, ScrDyn *args) { + if (!ni_main_thread()) return NULL; ScrDyn *json = ni_args_json(args); if (json == NULL) return NULL; ni_start(); @@ -400,6 +1042,10 @@ ScrDyn *scr_node_island_call_sync(ScrStr *file, ScrStr *specifier, ScrStr *name, ScrPromise *scr_node_island_call(ScrStr *file, ScrStr *specifier, ScrStr *name, ScrDyn *args) { ScrPromise *p = scr_promise_new(); + if (!ni_main_thread()) { + scr_promise_reject_pending(p); + return p; + } ScrDyn *json = ni_args_json(args); if (json == NULL) { scr_promise_reject_pending(p); @@ -434,6 +1080,16 @@ void scr_node_island_install(const char *libnode, const char *node_version) { (void)node_version; } +void scr_node_island_install_modules(const char *manifest, size_t manifest_len, + const unsigned char *data, size_t data_len, + const char *location) { + (void)manifest; + (void)manifest_len; + (void)data; + (void)data_len; + (void)location; +} + SCR_COLD static void ni_unsupported(void) { fputs("scriptc: Node islands are not supported on this target\n", stderr); fflush(stderr); diff --git a/packages/runtime/src/scr_node_island.h b/packages/runtime/src/scr_node_island.h index 9904047f5..33d1d17b4 100644 --- a/packages/runtime/src/scr_node_island.h +++ b/packages/runtime/src/scr_node_island.h @@ -14,6 +14,15 @@ * before %main. */ void scr_node_island_install(const char *libnode, const char *node_version); +/* Records the island module tree (node-islands/modules.ts): its manifest, + * and its files concatenated in manifest order when the executable carries + * them (NULL when they ship beside it at `location`, a `$ORIGIN/` path; "" + * otherwise). All static. The emitted main calls it after + * scr_node_island_install. */ +void scr_node_island_install_modules(const char *manifest, size_t manifest_len, + const unsigned char *data, size_t data_len, + const char *location); + /* @scriptc/node callSync(specifier, name, ...args): `file` is the calling * module's path (relative specifiers resolve from it), `args` the boxed * argument array, copied as JSON. Returns the JSON copy of the result, +1, diff --git a/packages/runtime/src/scr_node_island_host.cjs b/packages/runtime/src/scr_node_island_host.cjs index b18af6319..90c6187ab 100644 --- a/packages/runtime/src/scr_node_island_host.cjs +++ b/packages/runtime/src/scr_node_island_host.cjs @@ -13,10 +13,36 @@ * them in-process under Node: both must produce the same results, errors * and messages. Outcomes are "R" (returned; "R" alone is undefined) * or "T" (threw), the encoding of scr_node_bridge.h. */ -const { createRequire } = require("node:module"); +const { createRequire, registerHooks } = require("node:module"); const nativeHost = globalThis.__scriptcNodeIslandHost; +// The program's island module tree (scr_node_island.c prefixes this script +// with its root, then the bridge removes the global): modules resolve only +// to files inside it, never to a file elsewhere on the machine. +const islandRoot = globalThis.__scriptcNodeIslandRoot; +delete globalThis.__scriptcNodeIslandRoot; +if (typeof islandRoot === "string" && islandRoot !== "/") { + const { realpathSync } = require("node:fs"); + const { sep } = require("node:path"); + const { fileURLToPath } = require("node:url"); + const root = realpathSync(islandRoot); + const inside = root.endsWith(sep) ? root : root + sep; + registerHooks({ + resolve(specifier, context, nextResolve) { + const result = nextResolve(specifier, context); + if (result.url.startsWith("file:") && !fileURLToPath(result.url).startsWith(inside)) { + const error = new Error( + `Cannot find module '${specifier}': it is not one of the modules this program ships`, + ); + error.code = "MODULE_NOT_FOUND"; + throw error; + } + return result; + }, + }); +} + // Error classes that cross as copies, at their scr_error.h kind index. const ERROR_KINDS = [ [TypeError, 1], @@ -74,8 +100,18 @@ function errorKind(error) { } // A thrown value crosses as a copy: an Error as its nearest intrinsic -// class with its message and string code, anything else as JSON data. +// class with its message and string code, anything else as JSON data. An +// error whose class, message or code cannot be read crosses as an Error +// with an empty message. function thrown(error) { + try { + return thrownCopy(error); + } catch { + return 'T{"error":{"kind":0,"message":""}}'; + } +} + +function thrownCopy(error) { if (error instanceof Error) { const copy = { kind: errorKind(error), message: String(error.message) }; if (typeof error.code === "string") copy.code = error.code; @@ -125,4 +161,28 @@ for (const stream of [process.stdout, process.stderr]) { stream._handle.setBlocking(true); } -globalThis.__scriptcNodeIsland = { call }; +// The program ends with `code` (the bridge then runs Node's loop to its +// end, which emits 'beforeExit' and 'exit'): Node's process shares it, as +// it shares one process under Node. +function finish(code) { + if (code !== 0) process.exitCode = code; +} + +// process.execPath is this program, not a node executable: a fork without +// an execPath of its own would start the program again. +const childProcess = require("node:child_process"); +const nodeFork = childProcess.fork; +childProcess.fork = function fork(modulePath, args, options) { + const forkOptions = Array.isArray(args) ? options : args; + const execPath = + forkOptions === null || typeof forkOptions !== "object" ? undefined : forkOptions.execPath; + if (execPath === undefined || execPath === process.execPath) { + throw new Error( + "child_process.fork() in a Node island needs options.execPath (a node executable): process.execPath is this program", + ); + } + return Reflect.apply(nodeFork, this, arguments); +}; +require("node:module").syncBuiltinESMExports(); + +globalThis.__scriptcNodeIsland = { call, finish }; diff --git a/packages/runtime/src/scr_node_island_host.h b/packages/runtime/src/scr_node_island_host.h index 8a963535c..ed78c8951 100644 --- a/packages/runtime/src/scr_node_island_host.h +++ b/packages/runtime/src/scr_node_island_host.h @@ -19,10 +19,36 @@ static const char scr_node_island_host_js[] = " * them in-process under Node: both must produce the same results, errors\012" " * and messages. Outcomes are \"R\" (returned; \"R\" alone is undefined)\012" " * or \"T\" (threw), the encoding of scr_node_bridge.h. */\012" - "const { createRequire } = require(\"node:module\");\012" + "const { createRequire, registerHooks } = require(\"node:module\");\012" "\012" "const nativeHost = globalThis.__scriptcNodeIslandHost;\012" "\012" + "// The program's island module tree (scr_node_island.c prefixes this script\012" + "// with its root, then the bridge removes the global): modules resolve only\012" + "// to files inside it, never to a file elsewhere on the machine.\012" + "const islandRoot = globalThis.__scriptcNodeIslandRoot;\012" + "delete globalThis.__scriptcNodeIslandRoot;\012" + "if (typeof islandRoot === \"string\" && islandRoot !== \"/\") {\012" + " const { realpathSync } = require(\"node:fs\");\012" + " const { sep } = require(\"node:path\");\012" + " const { fileURLToPath } = require(\"node:url\");\012" + " const root = realpathSync(islandRoot);\012" + " const inside = root.endsWith(sep) \077 root : root + sep;\012" + " registerHooks({\012" + " resolve(specifier, context, nextResolve) {\012" + " const result = nextResolve(specifier, context);\012" + " if (result.url.startsWith(\"file:\") && !fileURLToPath(result.url).startsWith(inside)) {\012" + " const error = new Error(\012" + " `Cannot find module '${specifier}': it is not one of the modules this program ships`,\012" + " );\012" + " error.code = \"MODULE_NOT_FOUND\";\012" + " throw error;\012" + " }\012" + " return result;\012" + " },\012" + " });\012" + "}\012" + "\012" "// Error classes that cross as copies, at their scr_error.h kind index.\012" "const ERROR_KINDS = [\012" " [TypeError, 1],\012" @@ -80,8 +106,18 @@ static const char scr_node_island_host_js[] = "}\012" "\012" "// A thrown value crosses as a copy: an Error as its nearest intrinsic\012" - "// class with its message and string code, anything else as JSON data.\012" + "// class with its message and string code, anything else as JSON data. An\012" + "// error whose class, message or code cannot be read crosses as an Error\012" + "// with an empty message.\012" "function thrown(error) {\012" + " try {\012" + " return thrownCopy(error);\012" + " } catch {\012" + " return 'T{\"error\":{\"kind\":0,\"message\":\"\"}}';\012" + " }\012" + "}\012" + "\012" + "function thrownCopy(error) {\012" " if (error instanceof Error) {\012" " const copy = { kind: errorKind(error), message: String(error.message) };\012" " if (typeof error.code === \"string\") copy.code = error.code;\012" @@ -131,6 +167,30 @@ static const char scr_node_island_host_js[] = " stream._handle.setBlocking(true);\012" "}\012" "\012" - "globalThis.__scriptcNodeIsland = { call };\012"; + "// The program ends with `code` (the bridge then runs Node's loop to its\012" + "// end, which emits 'beforeExit' and 'exit'): Node's process shares it, as\012" + "// it shares one process under Node.\012" + "function finish(code) {\012" + " if (code !== 0) process.exitCode = code;\012" + "}\012" + "\012" + "// process.execPath is this program, not a node executable: a fork without\012" + "// an execPath of its own would start the program again.\012" + "const childProcess = require(\"node:child_process\");\012" + "const nodeFork = childProcess.fork;\012" + "childProcess.fork = function fork(modulePath, args, options) {\012" + " const forkOptions = Array.isArray(args) \077 options : args;\012" + " const execPath =\012" + " forkOptions === null || typeof forkOptions !== \"object\" \077 undefined : forkOptions.execPath;\012" + " if (execPath === undefined || execPath === process.execPath) {\012" + " throw new Error(\012" + " \"child_process.fork() in a Node island needs options.execPath (a node executable): process.execPath is this program\",\012" + " );\012" + " }\012" + " return Reflect.apply(nodeFork, this, arguments);\012" + "};\012" + "require(\"node:module\").syncBuiltinESMExports();\012" + "\012" + "globalThis.__scriptcNodeIsland = { call, finish };\012"; #endif /* SCR_NODE_ISLAND_HOST_H */ diff --git a/packages/runtime/src/scr_stream.c b/packages/runtime/src/scr_stream.c index 275c03039..cd95e12cd 100644 --- a/packages/runtime/src/scr_stream.c +++ b/packages/runtime/src/scr_stream.c @@ -269,6 +269,7 @@ struct ScrStreamState { * destroyed and runs its _destroy once construction completes. */ bool constructing, destroy_deferred; bool construct_finished; /* onConstruct ran: a second callback is ERR_MULTIPLE_CALLBACK */ + bool construct_called; /* the construct tick called the hook */ ScrError *destroy_err; /* owned: the deferred destroy's error */ ScrClosure *construct_cb; ScrStreamPlainInv construct_inv; @@ -2157,6 +2158,24 @@ static ScrDyn *scr_stream_wentry_encoding(const ScrStreamState *st, ScrDyn *enc) return scr_dyn_retain(enc ? enc : scr_dyn_undefined()); } +/* A compiled writev whose entries declare `encoding` a string: an entry + * without one (an object-mode write passes undefined or null) gets "". + * The batch array is the one this call receives. */ +void scr_stream_writev_fill_encodings(ScrDyn *chunks) { + if (!chunks || chunks->kind != SCR_DYN_ARR) return; + double n = scr_dyn_arr_len(chunks); + for (double i = 0; i < n; i++) { + ScrDyn *entry = scr_dyn_arr_at(chunks, i); /* +1 */ + ScrDyn *enc = entry->kind == SCR_DYN_OBJ ? scr_dyn_obj_get(entry, "encoding", 8) : NULL; + if (entry->kind == SCR_DYN_OBJ && (!enc || enc->kind == SCR_DYN_UNDEF || enc->kind == SCR_DYN_NULL)) { + ScrStr *empty = scr_str_new("", 0); + scr_dyn_obj_set(entry, "encoding", 8, scr_dyn_new_str(empty)); + scr_str_release(empty); + } + scr_dyn_release(entry); + } +} + /* A batch entry's callback: the write's callback, or Node's nop. */ static ScrDyn *scr_stream_writev_entry_cb_call(ScrClosure *clo, ScrDyn *const *args, size_t argc) { (void)args; @@ -2675,9 +2694,8 @@ void *scr_stream_native(ScrStream *s, void (*release)(void *)) { * way the compiler-emitted dyn thunks do (chunk as Buffer-flavored bytes, * encoding 'buffer', the error via the boundary encoding, the completion * callback as a callable dyn over the *_done glue). Options that Node's - * base WOULD consume but have no lowering here (objectMode truthy, - * decodeStrings:false, non-utf8 defaultEncoding, signal, construct, - * writev, and read/write/final on the transformish bases) throw the + * base WOULD consume but have no lowering here (signal, and + * read/write/final on the transformish bases) throw the * "not supported yet" Error — the compile-time fence's runtime twin. */ /* The boxed dyn callable (+1 — scr_box_get_ref retains; callers release @@ -2903,11 +2921,8 @@ static bool scr_stream_parse_dyn_opts(const ScrDyn *opts, char base, ScrStreamDy } } out->construct = scr_stream_dynopt_fn(opts, "construct", 9); + /* a Transform's batches reach writev, not the transform, as in Node */ if (base != 'r') out->writev = scr_stream_dynopt_fn(opts, "writev", 6); - if (transformish && out->writev != NULL) { - static const char m[] = "the stream option 'writev' on a Transform is not supported yet (batches would bypass the transform)"; - return scr_stream_dynopt_unsupported(m, sizeof m - 1); - } { /* a known encoding or ERR_UNKNOWN_ENCODING (the states' constructors) */ ScrDyn *v = scr_dyn_obj_get((ScrDyn *)opts, "defaultEncoding", 15); @@ -6296,6 +6311,55 @@ ScrStream *scr_stream_set_default_encoding(ScrStream *s, ScrDyn *enc) { return scr_stream_retain(s); } +/* Whether a defaultEncoding option value is the default: null, undefined, + * 'utf8' or 'utf-8' (the state constructors' kDefaultUTF8Encoding). */ +static bool scr_stream_default_encoding_value(const ScrDyn *v) { + if (!v || v->kind == SCR_DYN_UNDEF || v->kind == SCR_DYN_NULL) return true; + return v->kind == SCR_DYN_STR && ((v->v.str->len == 4 && memcmp(v->v.str->data, "utf8", 4) == 0) || + (v->v.str->len == 5 && memcmp(v->v.str->data, "utf-8", 5) == 0)); +} + +/* A runtime defaultEncoding option value, checked before construction as + * the state constructors check it: the default, a name Buffer.isEncoding + * knows, or ERR_UNKNOWN_ENCODING (thrown). Borrows v. */ +void scr_stream_check_encoding_option(ScrDyn *v) { + if (scr_stream_default_encoding_value(v)) return; + if (v->kind == SCR_DYN_STR) { + ScrStr *canonical = scr_bytes_normalize_encoding(v->v.str); + if (canonical) scr_str_release(canonical); + return; + } + ScrStr *shown = scr_dyn_string_coerce_js(v); + if (!shown) return; + char msg[128]; + int len = snprintf(msg, sizeof msg, "Unknown encoding: %.*s", (int)(shown->len < 64 ? shown->len : 64), + shown->data); + scr_str_release(shown); + scr_throw_error_msg_code(SCR_ERR_TYPE, msg, (size_t)(len < 0 ? 0 : len), "ERR_UNKNOWN_ENCODING"); +} + +/* Runtime decodeStrings and defaultEncoding option values over a fresh + * stream (after its objectMode): decodeStrings === false keeps string + * writes, and a known defaultEncoding is the write side's default as + * given and how a byte-mode readable side decodes push(string). Borrows + * both; answers the receiver (+1). */ +ScrStream *scr_stream_option_values(ScrStream *s, ScrDyn *decode_strings, ScrDyn *default_encoding) { + ScrStreamState *st = s->st; + if (st->has_w && decode_strings && decode_strings->kind == SCR_DYN_BOOL && !decode_strings->v.b) + scr_stream_set_decode_strings(s, false); + if (!scr_stream_default_encoding_value(default_encoding) && default_encoding->kind == SCR_DYN_STR) { + ScrStr *canonical = scr_bytes_normalize_encoding(default_encoding->v.str); + if (canonical) { + scr_stream_set_write_encoding(s, default_encoding->v.str); + if (st->has_r && !st->r.object_entries) scr_stream_release(scr_stream_set_push_encoding(s, canonical)); + scr_str_release(canonical); + } else if (scr_exc_pending()) { + scr_exc_clear(); /* checked before construction */ + } + } + return scr_stream_retain(s); +} + /* stream.objectMode: scr_stream_set_object_mode, answering the receiver * (+1). */ ScrStream *scr_stream_object_mode(ScrStream *s, bool readable, bool writable) { @@ -7460,6 +7524,17 @@ void scr_stream_set_construct(ScrStream *s, ScrClosure *cb /*moves*/, ScrStreamP scr_stream_construct(s, cb, inv); } +void scr_stream_replace_construct(ScrStream *s, ScrClosure *cb /*moves*/, ScrStreamPlainInv inv) { + ScrStreamState *st = s->st; + if (!st->constructing || st->construct_called || !st->construct_cb) { + scr_closure_release(cb); + return; + } + scr_closure_release(st->construct_cb); + st->construct_cb = cb; + st->construct_inv = inv; +} + /* A class's _writev under options that may carry their own writev (the * option, an instance property in Node, wins). */ void scr_stream_set_writev_default(ScrStream *s, ScrClosure *cb /*moves*/, ScrStreamWritevInv inv) { @@ -7728,6 +7803,7 @@ static void scr_stream_run_tick(ScrStreamTick *t) { scr_stream_error_buffer(s); break; case SCR_ST_CONSTRUCT: { + st->construct_called = true; if (st->construct_cb) { st->construct_inv(st->construct_cb, s); /* a throw inside _construct reaches onConstruct on a tick */ diff --git a/packages/runtime/src/scr_stream.h b/packages/runtime/src/scr_stream.h index d26077b5c..a4798c629 100644 --- a/packages/runtime/src/scr_stream.h +++ b/packages/runtime/src/scr_stream.h @@ -561,8 +561,15 @@ void scr_stream_set_writev_concat(ScrStream *s); /* The user construct option / _construct method (scheduled now; cb * moves), and the writev option / _writev method (cb moves). */ void scr_stream_set_construct(ScrStream *s, ScrClosure *cb, ScrStreamPlainInv inv); +/* `s._construct = fn` after construction: replaces a construct hook whose + * tick has not run yet (Node's constructNT reads _construct then), and has + * no effect otherwise (cb moves). */ +void scr_stream_replace_construct(ScrStream *s, ScrClosure *cb, ScrStreamPlainInv inv); void scr_stream_set_writev(ScrStream *s, ScrClosure *cb, ScrStreamWritevInv inv); void scr_stream_set_writev_default(ScrStream *s, ScrClosure *cb, ScrStreamWritevInv inv); +/* A compiled writev whose entries declare `encoding` a string: entries + * without an encoding (object mode) get "" before the conversion. */ +void scr_stream_writev_fill_encodings(struct ScrDyn *chunks); /* Duplex.from (duplexify.js): over an async generator function (the * compiled stage takes the source generator that the compiled source * makes from next() and ack(); all borrowed, helpers too), and over a @@ -605,6 +612,11 @@ ScrStream *scr_stream_duplex_from_promise(struct ScrPromise *p, ScrClosure *box) * forms answer the stream (+1). */ void scr_stream_set_decode_strings(ScrStream *s, bool decode); ScrStream *scr_stream_decode_strings(ScrStream *s, bool decode); +/* Runtime decodeStrings/defaultEncoding option values: checked before + * construction (ERR_UNKNOWN_ENCODING thrown), then applied to the fresh + * stream, answering it (+1). Values borrowed. */ +void scr_stream_check_encoding_option(struct ScrDyn *v); +ScrStream *scr_stream_option_values(ScrStream *s, struct ScrDyn *decode_strings, struct ScrDyn *default_encoding); void scr_stream_set_write_encoding(ScrStream *s, ScrStr *enc); ScrStream *scr_stream_write_encoding(ScrStream *s, ScrStr *enc); ScrStream *scr_stream_set_default_encoding(ScrStream *s, struct ScrDyn *enc); diff --git a/packages/runtime/test/test_json.c b/packages/runtime/test/test_json.c index 2c072006f..865f1c757 100644 --- a/packages/runtime/test/test_json.c +++ b/packages/runtime/test/test_json.c @@ -551,6 +551,91 @@ static void test_class_values(void) { scr_str_release(name); } +/* The class-view copy (scr_dyn_copy_property_descriptors) gives each + * property of the bag the attributes, value or accessors, and own-key + * position that defining it from its own descriptor would. */ +static ScrDyn *define_from(ScrDyn *target, const char *key, ScrDyn *value, bool writable, + bool enumerable, bool configurable) { + ScrDyn *descriptor = scr_dyn_new_obj(); + scr_dyn_obj_set(descriptor, "value", 5, value); + scr_dyn_obj_set(descriptor, "writable", 8, scr_dyn_new_bool(writable)); + scr_dyn_obj_set(descriptor, "enumerable", 10, scr_dyn_new_bool(enumerable)); + scr_dyn_obj_set(descriptor, "configurable", 12, scr_dyn_new_bool(configurable)); + ScrStr *name = S(key); + ScrDyn *k = scr_dyn_new_str(name); + ScrDyn *result = scr_dyn_define_property(target, k, descriptor); + scr_dyn_release(k); + scr_str_release(name); + scr_dyn_release(descriptor); + return result; +} + +static const ScrDynEntry *entry_of(const ScrDyn *obj, const char *key) { + for (size_t i = 0; i < obj->v.obj.len; i++) + if (obj->v.obj.entries[i].key_len == strlen(key) && + memcmp(obj->v.obj.entries[i].key, key, strlen(key)) == 0) + return &obj->v.obj.entries[i]; + return NULL; +} + +static void test_copy_property_descriptors(void) { + ScrDyn *bag = scr_dyn_new_obj(); + ScrDyn *getter = scr_dyn_new_obj(); + scr_dyn_release(define_from(bag, "label", scr_dyn_new_num(1), true, true, true)); + scr_dyn_release(define_from(bag, "hidden", scr_dyn_new_num(2), false, false, true)); + scr_dyn_obj_set(bag, "7", 1, scr_dyn_new_num(7)); + scr_dyn_obj_set(bag, "3", 1, scr_dyn_new_num(3)); + /* An accessor entry (the getter object stands in for its function). */ + scr_dyn_obj_set(bag, "computed", 8, scr_dyn_retain(scr_dyn_undefined())); + ScrDynEntry *accessor = (ScrDynEntry *)entry_of(bag, "computed"); + accessor->accessor = true; + accessor->getter = scr_dyn_retain(getter); + accessor->writable = false; + accessor->enumerable = false; + accessor->configurable = false; + + ScrDyn *view = scr_dyn_new_obj(); + scr_dyn_release(scr_dyn_copy_property_descriptors(view, bag)); + check(!scr_exc_pending() && view->v.obj.len == 5, "copy keeps every bag property"); + ScrDyn *keys = scr_dyn_obj_own_keys(view); + const char *order[] = {"3", "7", "label", "hidden", "computed"}; + bool ordered = keys->v.arr.len == 5; + for (size_t i = 0; ordered && i < 5; i++) ordered = str_is(keys->v.arr.items[i]->v.str, order[i]); + check(ordered, "copy keeps the bag's own-key order"); + scr_dyn_release(keys); + const ScrDynEntry *hidden = entry_of(view, "hidden"); + check(hidden && !hidden->accessor && hidden->value->v.num == 2 && !hidden->writable && + !hidden->enumerable && hidden->configurable, + "copy keeps data attributes"); + const ScrDynEntry *copied = entry_of(view, "computed"); + check(copied && copied->accessor && copied->getter == getter && !copied->setter && + !copied->writable && !copied->enumerable && !copied->configurable && + copied->value->kind == SCR_DYN_UNDEF, + "copy keeps an accessor without calling it"); + + /* A property the target already has is redefined like defineProperty. */ + ScrDyn *existing = scr_dyn_new_obj(); + scr_dyn_obj_set(existing, "label", 5, scr_dyn_new_num(9)); + scr_dyn_release(scr_dyn_copy_property_descriptors(existing, bag)); + const ScrDynEntry *label = entry_of(existing, "label"); + check(!scr_exc_pending() && existing->v.obj.len == 5 && existing->v.obj.entries[0].key_len == 5 && + label->value->v.num == 1, + "copy redefines an existing property in place"); + + /* A target that takes no new properties throws as defineProperty does. */ + ScrDyn *closed = scr_dyn_new_obj(); + scr_dyn_release(scr_dyn_prevent_extensions(closed)); + ScrDyn *refused = scr_dyn_copy_property_descriptors(closed, bag); + check(!refused && scr_exc_pending() && closed->v.obj.len == 0, "copy onto a non-extensible object throws"); + scr_exc_clear(); + + scr_dyn_release(closed); + scr_dyn_release(existing); + scr_dyn_release(view); + scr_dyn_release(bag); + scr_dyn_release(getter); +} + static void test_primitive_owners(void) { ScrDyn *values[] = {scr_dyn_new_null(), scr_dyn_new_bool(false), scr_dyn_new_bool(true)}; const char *texts[] = {"null", "false", "true"}; @@ -579,6 +664,7 @@ int main(void) { test_class_values(); scr_init(); test_primitive_owners(); + test_copy_property_descriptors(); /* ── primitives ─────────────────────────────────────────────────── */ ScrDyn *d = parse_ok("null", "parse null"); diff --git a/tests/corpus/7447-union-record-arm-width.mjs b/tests/corpus/7447-union-record-arm-width.mjs new file mode 100644 index 000000000..dc12f8a59 --- /dev/null +++ b/tests/corpus/7447-union-record-arm-width.mjs @@ -0,0 +1,37 @@ +// Values read back from arrays whose elements mix object literals of +// different widths, an empty object among them, keep every field: the +// record arm with more fields is tried before `{}`, which matches every +// object. +const pairs = [ + ["a", { publicKeyEncoding: 5 }], + ["b", {}], + ["c", { publicKeyEncoding: 6, extra: true }], +]; +for (const [label, value] of pairs) console.log(label, Object.keys(value), JSON.stringify(value)); + +const options = [ + ["rsa", { modulusLength: 1024 }], + ["ec", { namedCurve: "P-256", paramEncoding: "named" }], + ["none", {}], +]; +for (const [type, value] of options) { + const { modulusLength, namedCurve, paramEncoding } = value; + console.log(type, modulusLength, namedCurve, paramEncoding); +} + +const mixed = [{ a: 1 }, {}, "s", { a: 2, b: "two" }]; +for (const value of mixed) { + console.log(typeof value, JSON.stringify(value), typeof value === "object" ? Object.keys(value).length : -1); +} + +function describe(value) { + return Object.entries(value) + .map(([key, field]) => `${key}=${field}`) + .join(";"); +} +const rows = [ + [1, { x: 1, y: 2 }], + [2, {}], + [3, { x: 3 }], +]; +for (const [id, value] of rows) console.log(id, describe(value), value.x, value.y); diff --git a/tests/corpus/7448-union-record-arm-width.ts b/tests/corpus/7448-union-record-arm-width.ts new file mode 100644 index 000000000..1518dd575 --- /dev/null +++ b/tests/corpus/7448-union-record-arm-width.ts @@ -0,0 +1,21 @@ +// A checked cast to a union of record types keeps every field of the +// value: arms with more required fields, then more fields, are tried +// before an arm whose fields are all optional, which matches every object. +type Full = { p: number; q: string }; +type Bare = { p?: number }; +type Other = { r: boolean }; + +const values = JSON.parse('[{"p":5,"q":"x"},{},{"r":true},{"p":7}]') as (Full | Bare | Other)[]; +for (const value of values) { + const q = "q" in value ? value.q : "-"; + const r = "r" in value ? value.r : "-"; + console.log(JSON.stringify(value), "q" in value, "r" in value, q, r); +} + +const one = JSON.parse('{"p":1,"q":"y"}') as Bare | Full; +console.log(JSON.stringify(one), "q" in one ? one.q : "no q"); + +type Point = { x: number; y?: number }; +type Labeled = { x: number; label: string }; +const points = JSON.parse('[{"x":1,"label":"a"},{"x":2,"y":3},{"x":4}]') as (Point | Labeled)[]; +for (const point of points) console.log(point.x, "label" in point ? point.label : "none", "y" in point ? point.y : "none"); diff --git a/tests/corpus/7460-transform-writev.mjs b/tests/corpus/7460-transform-writev.mjs new file mode 100644 index 000000000..d78bdfc77 --- /dev/null +++ b/tests/corpus/7460-transform-writev.mjs @@ -0,0 +1,33 @@ +// writev on a Transform and a PassThrough (the writev option): a batch of +// buffered writes reaches writev instead of the transform, a lone write +// still reaches the transform, and the readable side gets what writev +// pushes. +import { Transform, PassThrough } from "node:stream"; +const t = new Transform({ + transform(chunk, enc, cb) { console.log("transform", String(chunk), enc); cb(null, chunk); }, + writev(chunks, cb) { + console.log("writev", chunks.map((c) => `${c.chunk}/${c.encoding}`).join(",")); + for (const { chunk } of chunks) this.push(String(chunk).toUpperCase()); + cb(); + }, +}); +t.on("data", (d) => console.log("data", String(d))); +t.on("finish", () => console.log("finish")); +t.on("end", () => console.log("end")); +t.write("a"); +t.cork(); +t.write("b"); +t.write("c", "latin1"); +process.nextTick(() => { t.uncork(); t.end("d"); }); + +const p = new PassThrough({ + objectMode: true, + writev(chunks, cb) { console.log("pt writev", JSON.stringify(chunks.map((c) => c.chunk))); cb(); }, +}); +p.on("data", (d) => console.log("pt data", JSON.stringify(d))); +p.cork(); +p.write({ x: 1 }); +p.write([2]); +p.uncork(); +p.write("solo"); +p.end(); diff --git a/tests/corpus/7461-transform-writev.cjs b/tests/corpus/7461-transform-writev.cjs new file mode 100644 index 000000000..dd45cf09d --- /dev/null +++ b/tests/corpus/7461-transform-writev.cjs @@ -0,0 +1,33 @@ +// Constructor-function Transform and PassThrough streams with _writev: +// the prototype's _writev takes the batches, and a writev option shadows +// it with the stream as this. +'use strict'; +const { Transform, PassThrough } = require('node:stream'); +function T(opts) { Transform.call(this, opts); } +Object.setPrototypeOf(T.prototype, Transform.prototype); +Object.setPrototypeOf(T, Transform); +T.prototype._transform = function (chunk, enc, cb) { cb(null, 'T(' + chunk + ')'); }; +T.prototype._writev = function (chunks, cb) { + this.push('V(' + chunks.map((c) => String(c.chunk)).join('+') + ')'); + cb(); +}; +const t = Object.create(T.prototype); +T.call(t, {}); +t.on('data', (d) => console.log('t data', String(d))); +t.on('end', () => console.log('t end')); +t.write('a'); +t.cork(); +t.write('b'); +t.write('c'); +process.nextTick(() => { t.uncork(); t.end(); }); +function P(opts) { PassThrough.call(this, opts); } +Object.setPrototypeOf(P.prototype, PassThrough.prototype); +Object.setPrototypeOf(P, PassThrough); +const p = Object.create(P.prototype); +P.call(p, { writev(chunks, cb) { console.log('p writev', chunks.length, this === p); cb(); } }); +p.on('data', (d) => console.log('p data', String(d))); +p.cork(); +p.write('x'); +p.write('y'); +p.uncork(); +p.write('z'); diff --git a/tests/corpus/7462-transform-writev.ts b/tests/corpus/7462-transform-writev.ts new file mode 100644 index 000000000..ca079b3c9 --- /dev/null +++ b/tests/corpus/7462-transform-writev.ts @@ -0,0 +1,109 @@ +// Typed writev on Transform and PassThrough: an options writev with +// decodeStrings: false and flush, a Transform subclass's _writev, a +// batch completing with an error, and object-mode entries whose +// encoding is declared as a string or as Node's string | null | +// undefined. +import { Transform, PassThrough, Writable } from "node:stream"; +type WritevChunks = Array<{ chunk: any; encoding: BufferEncoding }>; +type Cb = (error?: Error | null) => void; +type TransformCallback = (error?: Error | null, data?: any) => void; +const log: string[] = []; +const t = new Transform({ + decodeStrings: false, + transform(chunk: string, enc: BufferEncoding, cb: TransformCallback): void { + log.push(`transform ${chunk} ${enc}`); + cb(null, chunk); + }, + flush(cb: TransformCallback): void { + log.push("flush"); + cb(null, "!"); + }, + writev(chunks: WritevChunks, cb: Cb): void { + log.push(`writev ${chunks.map((c) => `${c.chunk}/${c.encoding}`).join(",")}`); + this.push(chunks.map((c) => String(c.chunk)).join("")); + cb(); + }, +}); +t.on("data", (d: Buffer) => log.push(`data ${d.toString()}`)); +t.on("end", () => log.push("end")); +t.on("finish", () => log.push("finish")); +t.on("close", () => { + console.log(log.join("\n")); + next(); +}); +t.write("one"); +t.cork(); +t.write("two", "latin1"); +t.write("three"); +t.uncork(); +t.end("four"); + +class Batcher extends Transform { + _transform(chunk: Buffer, _enc: BufferEncoding, cb: TransformCallback): void { + console.log("batcher transform", chunk.toString()); + cb(null, chunk); + } + _writev(chunks: Array<{ chunk: any; encoding: BufferEncoding }>, cb: Cb): void { + console.log("batcher writev", chunks.length); + this.push(Buffer.concat(chunks.map((c) => c.chunk as Buffer))); + cb(); + } +} + +function next(): void { + const b = new Batcher(); + b.on("data", (d: Buffer) => console.log("batcher data", d.toString())); + b.write("x"); + b.cork(); + b.write("y"); + b.write("z"); + process.nextTick(() => { + b.uncork(); + b.end(); + }); + b.on("finish", () => { + const p = new PassThrough({ + writev(chunks: WritevChunks, cb: Cb): void { + console.log("pt writev", chunks.length, String(chunks[0]!.chunk)); + cb(new Error("batch failed")); + }, + }); + p.on("error", (e: Error) => { + console.log("pt error", e.message); + objectEntries(); + }); + p.cork(); + p.write("1"); + p.write("2"); + p.uncork(); + }); +} + +function objectEntries(): void { + const declared = new Writable({ + objectMode: true, + write(_chunk: any, _enc: BufferEncoding, cb: Cb): void { cb(); }, + writev(chunks: WritevChunks, cb: Cb): void { + console.log("string encodings", JSON.stringify(chunks.map((c) => c.chunk))); + cb(); + }, + }); + declared.write({ n: 0 }); + declared.cork(); + declared.write({ n: 1 }); + declared.write({ n: 2 }, () => {}); + declared.uncork(); + const nodeTyped = new Writable({ + objectMode: true, + write(_chunk: any, _enc: BufferEncoding, cb: Cb): void { cb(); }, + writev(chunks: Array<{ chunk: any; encoding: string | null | undefined }>, cb: Cb): void { + console.log("node encodings", JSON.stringify(chunks.map((c) => [c.chunk, c.encoding === undefined ? "undefined" : c.encoding]))); + cb(); + }, + }); + nodeTyped.write({ n: 0 }); + nodeTyped.cork(); + nodeTyped.write({ n: 1 }); + nodeTyped.write({ n: 2 }, () => {}); + nodeTyped.uncork(); +} diff --git a/tests/corpus/7463-stream-option-values.ts b/tests/corpus/7463-stream-option-values.ts new file mode 100644 index 000000000..04f497b6b --- /dev/null +++ b/tests/corpus/7463-stream-option-values.ts @@ -0,0 +1,58 @@ +// Typed decodeStrings and defaultEncoding options whose values are known +// only at run time: decodeStrings === false keeps string writes, a known +// defaultEncoding is the write default as given and how push(string) +// decodes, null and utf8 are the default, an unknown name throws +// ERR_UNKNOWN_ENCODING before construction, and a subclass's super() +// options take them the same way. +import { Writable, Readable, Duplex } from "node:stream"; +type Cb = (error?: Error | null) => void; +const flags: boolean[] = JSON.parse("[false, true]"); +const encodings: Array = JSON.parse('["hex", "latin1", null, "UTF8"]'); +for (const decode of flags) { + const w = new Writable({ + decodeStrings: decode, + defaultEncoding: encodings[0] as BufferEncoding, + write(chunk: any, enc: string, cb: Cb): void { + console.log("write", decode, typeof chunk, enc, String(chunk)); + cb(); + }, + }); + w.write("6869"); +} +const r = new Readable({ defaultEncoding: encodings[1] as BufferEncoding, read(): void {} }); +r.push("é"); +r.push(null); +r.on("data", (d: Buffer) => console.log("readable", d.toString("hex"))); +const dflt = new Writable({ + defaultEncoding: encodings[2] as any, + write(chunk: Buffer, enc: string, cb: Cb): void { + console.log("null default", enc, chunk.toString()); + cb(); + }, +}); +dflt.write("ok"); +const upper = new Duplex({ + defaultEncoding: encodings[3] as BufferEncoding, + decodeStrings: flags[0], + read(): void {}, + write(chunk: any, enc: string, cb: Cb): void { + console.log("duplex", typeof chunk, enc); + cb(); + }, +}); +upper.write("x"); +try { + new Writable({ defaultEncoding: JSON.parse('"nope"') }); +} catch (e) { + console.log("bad", (e as Error & { code?: string }).code, (e as Error).message); +} +class Sink extends Writable { + constructor(decode: boolean, encoding: BufferEncoding) { + super({ decodeStrings: decode, defaultEncoding: encoding }); + } + _write(chunk: any, enc: string, cb: Cb): void { + console.log("sink", typeof chunk, enc); + cb(); + } +} +new Sink(flags[0]!, encodings[1] as BufferEncoding).write("y"); diff --git a/tests/corpus/7464-stream-option-values.mjs b/tests/corpus/7464-stream-option-values.mjs new file mode 100644 index 000000000..dfeb7a447 --- /dev/null +++ b/tests/corpus/7464-stream-option-values.mjs @@ -0,0 +1,28 @@ +// Option values known only at run time in JavaScript: decodeStrings and +// defaultEncoding read from an object, a write callback whose chunk is +// then a string, decodeStrings: 0 (only false turns decoding off), a +// defaultEncoding that is not a string, and a _construct assigned after +// construction, which Node's constructor never reads. +import { Writable, Readable } from "node:stream"; +const opts = { decode: false, enc: "base64" }; +const w = new Writable({ + decodeStrings: opts.decode, + defaultEncoding: opts.enc, + write(c, e, cb) { console.log("js", typeof c, e, String(c)); cb(); }, +}); +w.write("aGk="); +try { new Writable({ defaultEncoding: 5 }); } catch (e) { console.log("bad", e.code, e.message); } +const zero = new Writable({ decodeStrings: 0, write(c, e, cb) { console.log("zero", Buffer.isBuffer(c), e); cb(); } }); +zero.write("z"); +const late = new Writable({ write(chunk, enc, cb) { console.log("write", chunk.toString()); cb(); } }); +let ran = false; +late._construct = (cb) => { ran = true; cb(); }; +late.write("a"); +late.end(() => console.log("ended, construct ran:", ran)); +const r = new Readable({ read() {} }); +const order = []; +(order.push("receiver"), r)._construct = (order.push("value"), function (cb) { console.log("never"); cb(); }); +console.log(order.join(",")); +r.push("x"); +r.push(null); +r.on("data", (d) => console.log("data", d.toString())); diff --git a/tests/corpus/7465-transform-callback-values.ts b/tests/corpus/7465-transform-callback-values.ts new file mode 100644 index 000000000..e7003e894 --- /dev/null +++ b/tests/corpus/7465-transform-callback-values.ts @@ -0,0 +1,41 @@ +// A transform or flush callback passing a value that is not a Buffer or a +// string: the push reports Node's ERR_INVALID_ARG_TYPE through 'error' +// and destroys the stream, for option callbacks and _transform methods, +// while Buffer and string values take the typed path. +import { Transform } from "node:stream"; +type TransformCallback = (error?: Error | null, data?: any) => void; +const t = new Transform({ + transform(chunk: Buffer, _enc: BufferEncoding, cb: TransformCallback): void { + console.log("transform", chunk.toString()); + cb(null, 42); + }, +}); +t.on("error", (e: Error & { code?: string }) => console.log("error", e.name, e.code, e.message)); +t.on("data", (d: Buffer) => console.log("data", d.toString())); +t.on("close", () => console.log("close", t.destroyed)); +console.log("write", t.write("a")); +const f = new Transform({ + transform(chunk: Buffer, _enc: BufferEncoding, cb: TransformCallback): void { cb(null, chunk); }, + flush(cb: TransformCallback): void { cb(null, { tail: true }); }, +}); +f.on("error", (e: Error & { code?: string }) => console.log("flush error", e.code, e.message)); +f.on("data", (d: Buffer) => console.log("flush data", d.toString())); +f.on("close", () => console.log("flush close")); +f.end("z"); +class Bad extends Transform { + _transform(chunk: Buffer, _enc: BufferEncoding, cb: TransformCallback): void { + cb(null, chunk.length); + } +} +const bad = new Bad(); +bad.on("error", (e: Error & { code?: string }) => console.log("error", e.code, e.message)); +bad.on("close", () => console.log("close")); +bad.write("abc"); +class Good extends Transform { + _transform(chunk: Buffer, _enc: BufferEncoding, cb: TransformCallback): void { + cb(null, chunk.toString().toUpperCase()); + } +} +const good = new Good(); +good.on("data", (d: Buffer) => console.log("good", d.toString())); +good.end("xyz"); diff --git a/tests/corpus/7466-stream-construct-assign.mjs b/tests/corpus/7466-stream-construct-assign.mjs new file mode 100644 index 000000000..37684afcd --- /dev/null +++ b/tests/corpus/7466-stream-construct-assign.mjs @@ -0,0 +1,46 @@ +// Assigning _construct after construction: Node reads it on the +// construction tick, so an assignment before that tick replaces the +// scheduled hook, and one after it, or on a stream without a hook, has no +// effect. +import { Readable, Writable } from "node:stream"; + +const w = new Writable({ + construct(cb) { + console.log("original construct"); + cb(); + }, + write(chunk, _enc, cb) { + console.log("write", chunk.toString()); + cb(); + }, +}); +w._construct = function (cb) { + console.log("replacement construct"); + cb(); +}; +w.write("a"); +w.end(); +w.on("finish", () => { + w._construct = function (cb) { + console.log("late construct"); + cb(); + }; + console.log("finish"); + readable(); +}); + +// A stream without a construct hook: the assignment has no effect. +function readable() { + const r = new Readable({ + read() { + this.push("x"); + this.push(null); + }, + }); + r._construct = function (cb) { + console.log("never"); + cb(); + }; + r.on("data", (d) => console.log("data", d.toString())); + r.on("end", () => console.log("end")); +} diff --git a/tests/corpus/7500-pipeline-callback-undefined.ts b/tests/corpus/7500-pipeline-callback-undefined.ts new file mode 100644 index 000000000..e1503ff6b --- /dev/null +++ b/tests/corpus/7500-pipeline-callback-undefined.ts @@ -0,0 +1,120 @@ +// pipeline() with an async function or async generator destination: a +// typed callback whose error parameter admits undefined receives +// undefined when the pipeline succeeds, as in Node, and the error when it +// fails. +import { pipeline, Readable } from "node:stream"; + +function source(): Readable { + return Readable.from(["a", "b", "c"]); +} + +async function join(src: AsyncIterable): Promise { + let s = ""; + for await (const c of src) s += c; + return s; +} + +function optional(): Promise { + return new Promise((resolve) => { + pipeline(source(), join, (err?: Error | null, value?: string) => { + console.log("optional", err, err === undefined, value); + resolve(); + }); + }); +} + +function declared(): Promise { + return new Promise((resolve) => { + pipeline( + source(), + async function (src: AsyncIterable) { + let n = 0; + for await (const c of src) n += c.length; + return n; + }, + (err: Error | null | undefined, value?: number) => { + console.log("declared", err, typeof err, value); + resolve(); + }, + ); + }); +} + +function unknownParam(): Promise { + return new Promise((resolve) => { + pipeline(source(), join, (err: unknown, value: unknown) => { + console.log("unknown", err, value); + resolve(); + }); + }); +} + +function rest(): Promise { + return new Promise((resolve) => { + pipeline( + source(), + async function* (src: AsyncIterable) { + for await (const c of src) yield c.toUpperCase(); + }, + async function (src: AsyncIterable) { + for await (const c of src) void c; + }, + (...args: unknown[]) => { + console.log("rest", args.length, args); + resolve(); + }, + ); + }); +} + +function generatorDestination(): Promise { + return new Promise((resolve) => { + pipeline( + source(), + async function* (src: AsyncIterable) { + for await (const c of src) yield c; + }, + (err: Error | null | undefined, value: unknown) => { + console.log("generator", err, value); + resolve(); + }, + ); + }); +} + +function named(): Promise { + return new Promise((resolve) => { + function done(err: Error | null | undefined, value: string | undefined): void { + console.log("named", err, value); + resolve(); + } + pipeline(source(), join, done); + }); +} + +function failing(): Promise { + return new Promise((resolve) => { + pipeline( + source(), + async function (src: AsyncIterable) { + for await (const c of src) if (c === "b") throw new Error("boom at " + c); + return "never"; + }, + (err?: Error | null, value?: string) => { + console.log("failing", err?.message, value); + resolve(); + }, + ); + }); +} + +async function main(): Promise { + await optional(); + await declared(); + await unknownParam(); + await rest(); + await generatorDestination(); + await named(); + await failing(); +} +void main(); diff --git a/tests/corpus/7501-pipeline-callback-undefined.mjs b/tests/corpus/7501-pipeline-callback-undefined.mjs new file mode 100644 index 000000000..c51738e77 --- /dev/null +++ b/tests/corpus/7501-pipeline-callback-undefined.mjs @@ -0,0 +1,22 @@ +// pipeline() with an async function destination in JavaScript: the +// callback receives undefined and the destination's value on success. +import { pipeline, Readable } from "node:stream"; + +pipeline( + Readable.from(["x", "y"]), + async function (src) { + const out = []; + for await (const c of src) out.push(c); + return out.join("-"); + }, + (err, value) => { + console.log("callback", err, typeof err, value); + pipeline( + Readable.from(["z"]), + async function (src) { + for await (const c of src) void c; + }, + (...args) => console.log("no value", args), + ); + }, +); diff --git a/tests/corpus/7502-readline-cursor-undefined.ts b/tests/corpus/7502-readline-cursor-undefined.ts new file mode 100644 index 000000000..abac985cb --- /dev/null +++ b/tests/corpus/7502-readline-cursor-undefined.ts @@ -0,0 +1,28 @@ +// rl.cursor answers undefined on an interface that is not a terminal and +// the cursor position on a terminal interface. +import * as readline from "node:readline"; +import { PassThrough, Writable } from "node:stream"; + +const input = new PassThrough(); +const rl = readline.createInterface({ input }); +const c = rl.cursor; +console.log("cursor", c, typeof rl.cursor, rl.cursor === undefined); +console.log("arithmetic", rl.cursor + 1, Number.isNaN(rl.cursor * 2)); +console.log("fallback", rl.cursor ?? -1, `${rl.cursor}`); + +const interfaces = [rl]; +function first(): readline.Interface { + return interfaces[0]!; +} +console.log("call receiver", first().cursor); +rl.close(); + +const sink = new Writable({ + write(_chunk: Buffer, _enc, cb) { + cb(); + }, +}); +const terminal = readline.createInterface({ input: new PassThrough(), output: sink, terminal: true }); +terminal.write("abc"); +console.log("terminal", terminal.cursor, typeof terminal.cursor, terminal.cursor + 1); +terminal.close(); diff --git a/tests/corpus/7543-var-list-declarator-order.js b/tests/corpus/7543-var-list-declarator-order.js new file mode 100644 index 000000000..8fae06ff9 --- /dev/null +++ b/tests/corpus/7543-var-list-declarator-order.js @@ -0,0 +1,66 @@ +// A `var` read in a later declarator of the statement that stores it runs +// after the store; a read in the same or an earlier declarator sees undefined. +var base = { a: 1, b: "x" }, + more = { ...base, c: 2 }, + keys = Object.keys({ ...more }).join(","), + first = base.a + 1; +console.log(JSON.stringify(more), keys, first); + +function describeBase() { + return base.b + more.c; +} +var rules = { space: /\s+/, word: /\w+/ }, + merged = { ...rules, digit: /\d/ }, + described = describeBase(); +console.log(Object.keys(merged).join(","), merged.word.test("ab"), described); + +var table = { one: 1, two: 2 }, + lookup = function (key) { + return table[key]; + }, + arrow = (key) => ({ ...table })[key]; +console.log(lookup("one"), arrow("two")); + +var readLater = function () { + return later; + }, + early = readLater(), + later = { k: 1 }, + after = readLater().k; +console.log(early, after); + +var self = self ? 1 : 2; +console.log(self); + +for (var i = 0, j = i + 10; i < 2; i++) console.log(i, j); + +function nested() { + var inner = [1, 2, 3], + copy = [...inner, 4], + total = copy.reduce((sum, n) => sum + n, 0); + return { copy, total }; +} +console.log(JSON.stringify(nested())); + +function earlyInFunction() { + show("before"); + var point = { n: 1 }, + next = { m: point.n + 1 }; + show("after"); + function show(when) { + console.log(when, typeof point, point === undefined ? "none" : point.n, next === undefined ? "none" : next.m); + } + var check = () => console.log("check", items === undefined); + check(); + var items = [1]; + check(); +} +earlyInFunction(); + +function loopLists() { + for (var k = 0, sum = k; k < 3; k++) sum += k; + var doubled = sum * 2, + again = doubled + 1; + return [sum, doubled, again]; +} +console.log(JSON.stringify(loopLists())); diff --git a/tests/corpus/7545-string-regex-checked-arguments.js b/tests/corpus/7545-string-regex-checked-arguments.js new file mode 100644 index 000000000..a7ace9cdb --- /dev/null +++ b/tests/corpus/7545-string-regex-checked-arguments.js @@ -0,0 +1,89 @@ +// String search, match and replace with untyped pattern values: a RegExp +// is used as is, and any other value is converted as Node converts it. +const rules = JSON.parse('{"other":{}}'); +rules.other.space = /\s+/g; +rules.other.word = /o+/; +rules.other.text = "l"; +rules.other.dot = "."; +rules.other.none = undefined; +rules.other.nul = null; +rules.other.one = /(l)(o)/; +rules.other.many = /l+/g; +const t = " hello world"; + +console.log( + t.search(rules.other.word), + t.search(rules.other.text), + t.search(rules.other.none), + t.search(rules.other.nul), + t.search(rules.other.space), + "a.b".search(rules.other.dot), +); +console.log(rules.other.space.lastIndex); + +let conversions = 0; +rules.other.obj = { + toString() { + conversions++; + return "w"; + }, +}; +console.log(t.search(rules.other.obj), t.match(rules.other.obj)[0], conversions); + +const all = t.match(rules.other.many); +console.log(JSON.stringify(all), rules.other.many.lastIndex); +const pair = t.match(rules.other.one); +console.log(pair[0], pair[1], pair[2], pair.index, pair.length, pair.input === t); +const literal = t.match(rules.other.dot); +console.log(literal[0], literal.index, literal.length); +console.log(JSON.stringify(t.match(rules.other.none)), t.match(rules.other.zz)); +rules.other.zz = "zz"; +console.log(t.match(rules.other.zz)); +function first(text, re) { + const m = text.match(re); + return m ? m[0] : "none"; +} +console.log(first("abc", rules.other.dot), first("", rules.other.dot)); + +console.log(t.replace(rules.other.space, (m) => "[" + m.length + "]")); +console.log(t.replace(rules.other.word, (m, offset) => m.toUpperCase() + offset)); +console.log(t.replace(rules.other.text, (m, offset, subject) => "<" + m + offset + subject.length + ">")); +console.log(t.replaceAll(rules.other.text, (m) => m.toUpperCase())); +console.log(t.replaceAll(rules.other.space, () => "_")); +console.log(t.replace(rules.other.one, (m, p1, p2, offset) => p1 + "|" + p2 + "|" + offset)); +console.log(t.replace(rules.other.text, (m, offset, subject, extra) => typeof extra)); +console.log(t.replace(rules.other.text, (m) => m.length)); +try { + t.replaceAll(rules.other.word, (m) => m); +} catch (e) { + console.log(e.constructor.name, e.message); +} + +function tabs(text, width) { + let column = 0; + let out = ""; + for (const ch of text) { + if (ch === "\t") { + const pad = 4 - (column % 4); + out += " ".repeat(pad); + column += pad; + } else { + out += ch; + column++; + } + } + return out + width; +} +class Lexer { + constructor(table) { + this.rules = table; + } + indent(line, width) { + return line.replace(this.rules.leading, (w) => tabs(w, width)); + } + firstText(line) { + return line.search(this.rules.nonSpace); + } +} +const lexer = new Lexer({ leading: /^( {1,4}| {0,3}\t)/, nonSpace: /[^ ]/ }); +console.log(JSON.stringify(lexer.indent("\tabc", 2)), lexer.firstText(" x")); diff --git a/tests/corpus/7548-cjs-receiverless-builtin-calls/lib.cjs b/tests/corpus/7548-cjs-receiverless-builtin-calls/lib.cjs new file mode 100644 index 000000000..248e66270 --- /dev/null +++ b/tests/corpus/7548-cjs-receiverless-builtin-calls/lib.cjs @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: !0 }); +exports.label = exports.describe = void 0; +const node_util_1 = require("node:util"); +const node_path_1 = require("node:path"); +function describe(name, size) { + return (0, node_util_1.format)("%s holds %d (%s)", name, size, (0, node_path_1.basename)("/a/b/c.txt")); +} +exports.describe = describe; +exports.label = "lib"; diff --git a/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs b/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs new file mode 100644 index 000000000..6fd0b78a9 --- /dev/null +++ b/tests/corpus/7548-cjs-receiverless-builtin-calls/main.cjs @@ -0,0 +1,19 @@ +"use strict"; +// tsc and esbuild output: the __esModule stamp spelled { value: !0 }, and +// calls of builtin module functions without a receiver, (0, ns.member)(...). +const lib = require("./lib.cjs"); +const dc = require("node:diagnostics_channel"); +const util = require("node:util"); +const os = require("node:os"); +const path = require("node:path"); +console.log(lib.label, lib.describe("cache", 3)); +const metrics = (0, dc.channel)("cache:metrics"); +console.log(metrics.name, metrics.hasSubscribers); +const seen = []; +dc.subscribe("cache:metrics", (message) => seen.push(message.key)); +metrics.publish({ key: "a" }); +console.log(seen.join(","), metrics.hasSubscribers); +const tracing = (0, dc.tracingChannel)("cache"); +console.log(tracing.hasSubscribers); +console.log((0, util.inspect)({ a: [1, 2] }), (0, util.isDeepStrictEqual)([1], [1])); +console.log((0, path.join)("a", "b"), typeof (0, os.platform)()); diff --git a/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs b/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs new file mode 100644 index 000000000..c619a847a --- /dev/null +++ b/tests/corpus/7549-cjs-minified-esmodule-stamp/main.cjs @@ -0,0 +1,7 @@ +"use strict"; +// Minifiers spell `true` as `!0`: Object.defineProperty(exports, +// "__esModule", { value: !0 }) is the same interop stamp as { value: true }. +const stamped = require("./stamped.cjs"); +const moduleStamped = require("./module-stamped.cjs"); +console.log(stamped.answer, stamped.twice(4), moduleStamped.label); +console.log(typeof stamped.twice, moduleStamped.label.length); diff --git a/tests/corpus/7549-cjs-minified-esmodule-stamp/module-stamped.cjs b/tests/corpus/7549-cjs-minified-esmodule-stamp/module-stamped.cjs new file mode 100644 index 000000000..96a2aae7b --- /dev/null +++ b/tests/corpus/7549-cjs-minified-esmodule-stamp/module-stamped.cjs @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(module.exports, "__esModule", { value: !0 }); +module.exports.label = "module"; diff --git a/tests/corpus/7549-cjs-minified-esmodule-stamp/stamped.cjs b/tests/corpus/7549-cjs-minified-esmodule-stamp/stamped.cjs new file mode 100644 index 000000000..cd3b9c400 --- /dev/null +++ b/tests/corpus/7549-cjs-minified-esmodule-stamp/stamped.cjs @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: !0 }); +exports.answer = void 0; +exports.answer = 42; +exports.twice = (n) => n * 2; diff --git a/tests/corpus/7553-var-for-in-of-zero-iterations.js b/tests/corpus/7553-var-for-in-of-zero-iterations.js new file mode 100644 index 000000000..1a439f715 --- /dev/null +++ b/tests/corpus/7553-var-for-in-of-zero-iterations.js @@ -0,0 +1,18 @@ +// A for-in or for-of loop stores its var binding only when it iterates: +// after a loop that ran zero times, closures read undefined. +function f(o) { + for (var key in o) {} + const read = () => typeof key; + const same = () => key === undefined; + return [read(), same()]; +} +console.log(JSON.stringify(f({})), JSON.stringify(f({ a: 1 }))); +function g(xs) { + for (var x of xs) {} + const show = () => [typeof x, String(x)]; + return show(); +} +console.log(JSON.stringify(g([])), JSON.stringify(g([4]))); +for (var top in {}) {} +const readTop = () => typeof top; +console.log(readTop()); diff --git a/tests/corpus/7620-js-class-view-descriptors.js b/tests/corpus/7620-js-class-view-descriptors.js new file mode 100644 index 000000000..a0dc42813 --- /dev/null +++ b/tests/corpus/7620-js-class-view-descriptors.js @@ -0,0 +1,91 @@ +// An instance of a JS class with public fields keeps its own properties in +// a property bag, and untyped code that calls a method on it sees a view +// built from that bag: data properties with their attributes, accessors, +// index-like keys (which come first, in ascending order), symbols, and +// properties added or removed after construction. Every refresh of the view +// must copy the bag exactly. +'use strict'; + +class Box { + label = 'box'; + count = 0; + constructor(n) { + this.count = n; + } + describe() { + return `${this.label}:${this.count}`; + } + bump() { + this.count++; + return this; + } +} + +function call(target, method, ...args) { + return target[method](...args); +} + +function put(target, key, value) { + target[key] = value; +} + +function drop(target, key) { + delete target[key]; +} + +function show(title, target) { + const lines = []; + for (const key of Reflect.ownKeys(target)) { + const d = Object.getOwnPropertyDescriptor(target, key); + const kind = 'value' in d ? `value=${String(d.value)} writable=${d.writable}` : `get=${typeof d.get} set=${typeof d.set}`; + lines.push(` ${String(key)}: ${kind} enumerable=${d.enumerable} configurable=${d.configurable}`); + } + console.log(`${title}\n${lines.join('\n')}`); +} + +const box = new Box(2); +Object.defineProperty(box, 'hidden', { value: 42, enumerable: false, writable: false, configurable: true }); +Object.defineProperty(box, 'computed', { + get() { + return this.count * 10; + }, + set(v) { + this.count = v / 10; + }, + enumerable: true, + configurable: true, +}); +Object.defineProperty(box, 'getterOnly', { get: () => 'g', enumerable: false, configurable: false }); +put(box, 2, 'two'); +put(box, 1, 'one'); +put(box, 'extra', 'x'); +const tag = Symbol('tag'); +put(box, tag, 'symbol'); + +console.log(call(box, 'describe')); +show('after construction', box); +console.log('keys', Object.keys(box).join(',')); + +call(box, 'bump'); +put(box, 'computed', 70); +drop(box, 'extra'); +put(box, 'later', true); +console.log(call(box, 'describe')); +show('after changes', box); +console.log('computed', box.computed, 'hidden', box.hidden, 'getterOnly', box.getterOnly); + +// Many views in a row see the same, current properties. +let total = 0; +for (let i = 0; i < 5; i++) { + call(box, 'bump'); + total += Object.keys(box).length; +} +console.log('total keys', total, call(box, 'describe')); + +const other = new Box(7); +console.log(call(other, 'describe'), Object.keys(other).join(',')); +try { + call(box, 'missing'); +} catch (error) { + console.log(error instanceof TypeError, error.message); +} diff --git a/tests/corpus/7661-node-call-modules/lib/entry.cjs b/tests/corpus/7661-node-call-modules/lib/entry.cjs new file mode 100644 index 000000000..3fa55af87 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/lib/entry.cjs @@ -0,0 +1,14 @@ +"use strict"; +const { label } = require("./util"); +const settings = require("../settings.json"); + +exports.describe = (name) => `${label(name)} (${settings.mode})`; + +exports.hasOptional = () => { + try { + require("./not-shipped.cjs"); + return true; + } catch (error) { + return error.code !== "MODULE_NOT_FOUND"; + } +}; diff --git a/tests/corpus/7661-node-call-modules/lib/esm.mjs b/tests/corpus/7661-node-call-modules/lib/esm.mjs new file mode 100644 index 000000000..467987471 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/lib/esm.mjs @@ -0,0 +1,5 @@ +import { factor } from "./factor.mjs"; + +export function twice(n) { + return n * factor; +} diff --git a/tests/corpus/7661-node-call-modules/lib/factor.mjs b/tests/corpus/7661-node-call-modules/lib/factor.mjs new file mode 100644 index 000000000..adb2e40cb --- /dev/null +++ b/tests/corpus/7661-node-call-modules/lib/factor.mjs @@ -0,0 +1 @@ +export const factor = 2; diff --git a/tests/corpus/7661-node-call-modules/lib/util.js b/tests/corpus/7661-node-call-modules/lib/util.js new file mode 100644 index 000000000..ea7711f79 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/lib/util.js @@ -0,0 +1,5 @@ +// An ES module by the nearest package.json ("type": "module"), loaded with +// require() from a CommonJS module. +export function label(name) { + return `module of ${name}`; +} diff --git a/tests/corpus/7661-node-call-modules/main.ts b/tests/corpus/7661-node-call-modules/main.ts new file mode 100644 index 000000000..7f6f4ac76 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/main.ts @@ -0,0 +1,12 @@ +// @requires-libnode +// The modules island calls load ship with the program: a module of the +// program and the modules it loads, and whole packages with their +// dependencies, including files a package reads or loads by computed names. +import { callSync } from "@scriptc/node"; + +console.log(callSync("./lib/entry.cjs", "describe", "scriptc")); +console.log(callSync("greeter", "greet", "world")); +console.log(callSync("greeter", "fromData")); +console.log(callSync("greeter", "byName", "shout", "computed")); +console.log(callSync("./lib/entry.cjs", "hasOptional")); +console.log(callSync("./lib/esm.mjs", "twice", 21)); diff --git a/tests/corpus/7661-node-call-modules/node_modules/greeter/data/message.txt b/tests/corpus/7661-node-call-modules/node_modules/greeter/data/message.txt new file mode 100644 index 000000000..8e4d1b0c2 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/node_modules/greeter/data/message.txt @@ -0,0 +1 @@ +read from a file the package ships diff --git a/tests/corpus/7661-node-call-modules/node_modules/greeter/index.js b/tests/corpus/7661-node-call-modules/node_modules/greeter/index.js new file mode 100644 index 000000000..4e3f7bc55 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/node_modules/greeter/index.js @@ -0,0 +1,8 @@ +"use strict"; +const fs = require("node:fs"); +const path = require("node:path"); +const shout = require("shout"); + +exports.greet = (who) => shout(`hello, ${who}`); +exports.fromData = () => fs.readFileSync(path.join(__dirname, "data", "message.txt"), "utf8").trim(); +exports.byName = (name, text) => require(name)(text); diff --git a/tests/corpus/7661-node-call-modules/node_modules/greeter/package.json b/tests/corpus/7661-node-call-modules/node_modules/greeter/package.json new file mode 100644 index 000000000..07b35f1af --- /dev/null +++ b/tests/corpus/7661-node-call-modules/node_modules/greeter/package.json @@ -0,0 +1 @@ +{ "name": "greeter", "version": "1.0.0", "main": "index.js", "dependencies": { "shout": "1.0.0" } } diff --git a/tests/corpus/7661-node-call-modules/node_modules/shout/index.js b/tests/corpus/7661-node-call-modules/node_modules/shout/index.js new file mode 100644 index 000000000..6401aa6da --- /dev/null +++ b/tests/corpus/7661-node-call-modules/node_modules/shout/index.js @@ -0,0 +1,2 @@ +"use strict"; +module.exports = (text) => `${text.toUpperCase()}!`; diff --git a/tests/corpus/7661-node-call-modules/node_modules/shout/package.json b/tests/corpus/7661-node-call-modules/node_modules/shout/package.json new file mode 100644 index 000000000..d32731e21 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/node_modules/shout/package.json @@ -0,0 +1 @@ +{ "name": "shout", "version": "1.0.0", "main": "index.js" } diff --git a/tests/corpus/7661-node-call-modules/settings.json b/tests/corpus/7661-node-call-modules/settings.json new file mode 100644 index 000000000..42201c528 --- /dev/null +++ b/tests/corpus/7661-node-call-modules/settings.json @@ -0,0 +1 @@ +{ "mode": "shipped" } diff --git a/tests/corpus/7662-node-call-exit-events/listeners.cjs b/tests/corpus/7662-node-call-exit-events/listeners.cjs new file mode 100644 index 000000000..c21ad324f --- /dev/null +++ b/tests/corpus/7662-node-call-exit-events/listeners.cjs @@ -0,0 +1,13 @@ +"use strict"; +let beforeExit = 0; + +exports.register = () => { + process.on("beforeExit", (code) => { + beforeExit++; + console.log("beforeExit", code, beforeExit); + if (beforeExit === 1) setTimeout(() => console.log("work from beforeExit"), 1); + }); + process.on("exit", (code) => console.log("exit", code)); + process.exitCode = 4; + return true; +}; diff --git a/tests/corpus/7662-node-call-exit-events/main.ts b/tests/corpus/7662-node-call-exit-events/main.ts new file mode 100644 index 000000000..909550588 --- /dev/null +++ b/tests/corpus/7662-node-call-exit-events/main.ts @@ -0,0 +1,8 @@ +// @requires-libnode +// The program and the Node.js it loads end as one process: Node's +// 'beforeExit' and 'exit' run when the program ends, work that 'beforeExit' +// schedules runs first, and process.exitCode set in Node is the program's. +import { callSync } from "@scriptc/node"; + +console.log("registered", callSync("./listeners.cjs", "register")); +console.log("main done"); diff --git a/tests/diagnostics/stream-runtime-option-order.ts b/tests/diagnostics/stream-runtime-option-order.ts new file mode 100644 index 000000000..357907d5d --- /dev/null +++ b/tests/diagnostics/stream-runtime-option-order.ts @@ -0,0 +1,42 @@ +import { Writable } from "node:stream"; + +// Runtime decodeStrings and defaultEncoding values are read before the +// other option members are evaluated, while Node evaluates the members in +// order: a value after a member with effects refuses, and so does a value +// with effects after a member that reads a property those effects change. +let encoding = (process.env["STREAM_ENCODING"] ?? "utf8") as BufferEncoding; +let decode = process.env["STREAM_DECODE"] !== "0"; +function bump(): number { + encoding = "hex"; + decode = false; + return 16; +} +const sink = new Writable({ + highWaterMark: bump(), + defaultEncoding: encoding, + write(_chunk, _encoding, done) { + done(); + }, +}); +const other = new Writable({ + highWaterMark: bump(), + decodeStrings: decode, + write(_chunk, _encoding, done) { + done(); + }, +}); +const sizes = { hwm: 16 }; +function pickEncoding(): BufferEncoding { + sizes.hwm = 1; + return "hex"; +} +const third = new Writable({ + highWaterMark: sizes.hwm, + defaultEncoding: pickEncoding(), + write(_chunk, _encoding, done) { + done(); + }, +}); +sink.end(); +other.end(); +third.end(); diff --git a/tests/fixtures/node-island/gc-stress.ts b/tests/fixtures/node-island/gc-stress.ts new file mode 100644 index 000000000..8c71099d1 --- /dev/null +++ b/tests/fixtures/node-island/gc-stress.ts @@ -0,0 +1,24 @@ +// Full garbage collections in Node during island calls +// (tests/harness/node-island.test.ts): from the main stack, from deep native +// recursion, from async functions and from timers, with deep JavaScript +// recursion on Node's side. +import { call, callSync } from "@scriptc/node"; + +function nested(depth: number): number { + if (depth === 0) return callSync("./gc.cjs", "deep", 2000); + return nested(depth - 1) + 1; +} + +async function inFiber(n: number): Promise { + const later = await call("./gc.cjs", "later", n); + return later + callSync("./gc.cjs", "churn", 1); +} + +console.log("churn", callSync("./gc.cjs", "churn", 20)); +console.log("nested", nested(3000)); +console.log("deep", callSync("./gc.cjs", "deep", 8000)); +const results = await Promise.all([1, 2, 3, 4].map((n) => inFiber(n))); +console.log("fibers", results.join(",")); +setTimeout(() => { + console.log("timer", callSync("./gc.cjs", "churn", 5)); +}, 1); diff --git a/tests/fixtures/node-island/gc.cjs b/tests/fixtures/node-island/gc.cjs new file mode 100644 index 000000000..f8f5a32fa --- /dev/null +++ b/tests/fixtures/node-island/gc.cjs @@ -0,0 +1,41 @@ +"use strict"; +// Garbage-collection pressure inside Node island calls +// (tests/harness/node-island.test.ts): full collections while the call +// runs on Node's stack, at depth on both sides. +const v8 = require("node:v8"); +const vm = require("node:vm"); +v8.setFlagsFromString("--expose-gc"); +const gc = vm.runInNewContext("gc"); + +const kept = []; + +// Allocates `rounds` batches of objects that survive until the next batch, +// with a full collection after each. +exports.churn = (rounds) => { + let total = 0; + for (let r = 0; r < rounds; r++) { + const batch = []; + for (let i = 0; i < 100000; i++) batch.push({ i, s: `item ${i}`, tags: [i, i + 1] }); + kept[r % 4] = batch; + total += batch.length; + gc(); + } + return total; +}; + +// Recurses `depth` frames in JavaScript and collects at the bottom. +exports.deep = (depth) => { + if (depth === 0) { + gc(); + return 0; + } + const local = { depth, text: String(depth) }; + return 1 + exports.deep(depth - 1) + (local.depth > 0 ? 0 : 1); +}; + +// Collects after a timer, from Node's loop. +exports.later = async (n) => { + await new Promise((resolve) => setTimeout(resolve, 1)); + exports.churn(1); + return n; +}; diff --git a/tests/fixtures/node-island/helper.cjs b/tests/fixtures/node-island/helper.cjs index 903532b0c..92c4ac77b 100644 --- a/tests/fixtures/node-island/helper.cjs +++ b/tests/fixtures/node-island/helper.cjs @@ -1,3 +1,23 @@ "use strict"; exports.answer = () => 42; exports.echo = (value) => value; +// An error whose message cannot be read. +exports.unreadable = () => { + const error = new Error(); + Object.defineProperty(error, "message", { + get() { + throw Symbol("message"); + }, + }); + throw error; +}; +// A fork without an execPath of its own: in a program it would start the +// program again. +exports.forkSelf = () => { + try { + require("node:child_process").fork(__filename); + return "forked"; + } catch (error) { + return error.message; + } +}; diff --git a/tests/fixtures/node-island/lifecycle.ts b/tests/fixtures/node-island/lifecycle.ts index f18ec640d..262ab7a6b 100644 --- a/tests/fixtures/node-island/lifecycle.ts +++ b/tests/fixtures/node-island/lifecycle.ts @@ -16,4 +16,12 @@ if (mode !== "never") { console.log("mapped after", mapped()); } if (mode === "exit") process.exit(5); +if (mode === "fork") console.log(callSync("./helper.cjs", "forkSelf")); +if (mode === "unreadable") { + try { + callSync("./helper.cjs", "unreadable"); + } catch (error) { + console.log("caught", error instanceof Error, JSON.stringify((error as Error).message)); + } +} console.log("done"); diff --git a/tests/fixtures/node-island/worker.ts b/tests/fixtures/node-island/worker.ts new file mode 100644 index 000000000..c96196c8f --- /dev/null +++ b/tests/fixtures/node-island/worker.ts @@ -0,0 +1,18 @@ +// A call into Node from a worker thread (tests/harness/node-island.test.ts): +// Node islands run on the main thread only, so the worker's call throws. +import { Worker, isMainThread, parentPort } from "node:worker_threads"; +import { callSync } from "@scriptc/node"; + +if (isMainThread) { + console.log("main", callSync("./helper.cjs", "answer")); + const worker = new Worker(new URL(import.meta.url)); + worker.on("message", (message: string) => console.log("worker", message)); + worker.on("exit", (code: number) => console.log("exit", code)); +} else { + try { + callSync("./helper.cjs", "answer"); + parentPort!.postMessage("called"); + } catch (error) { + parentPort!.postMessage((error as Error).message); + } +} diff --git a/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts b/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts new file mode 100644 index 000000000..0c94acb0d --- /dev/null +++ b/tests/fixtures/npm/cases/7546-minified-esm-rules/main.ts @@ -0,0 +1,22 @@ +// A one-line minified ES module. Its module-level var statement spreads +// earlier declarators into later ones, its tokenizer reads regexes through +// an untyped rules table (search, match and replace with callbacks), and +// one function receives both typed and untyped link objects. +import { render } from "gtminimark"; + +const doc = [ + "# Title \\*one\\*", + "## Sub", + '[a](/x "T\\*")', + "[b](/y)", + '[r]: /ref "Ref"', + "[n]: /none", + "[R]", + "[n]", + "[z]", + "\tcode *em* line", + " three spaces *x* and *y*", + "plain words here", +].join("\n"); +console.log(render(doc)); +console.log(render(doc, { pedantic: true })); diff --git a/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts b/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts new file mode 100644 index 000000000..ad2303f47 --- /dev/null +++ b/tests/fixtures/npm/cases/7547-minified-cjs-chunks/main.ts @@ -0,0 +1,12 @@ +// An identifier-minified esbuild CommonJS bundle (lru-cache's shape): its +// __commonJS helper and chunk parameters lost their names, the chunks +// stamp __esModule with { value: !0 }, and they call node:util and +// node:diagnostics_channel functions in the (0, ns.member)(...) form. +import { Cache } from "gtminicache"; + +const cache = new Cache(2); +cache.set("a", 1).set("b", 2); +cache.get("a"); +cache.set("c", 3); +console.log(cache.keys().join(","), cache.get("b"), cache.get("c")); +console.log(cache.describe("cache")); diff --git a/tests/fixtures/npm/node_modules/gtminicache/dist/index.d.ts b/tests/fixtures/npm/node_modules/gtminicache/dist/index.d.ts new file mode 100644 index 000000000..5d12cad7e --- /dev/null +++ b/tests/fixtures/npm/node_modules/gtminicache/dist/index.d.ts @@ -0,0 +1,7 @@ +export declare class Cache { + constructor(max: number); + set(key: K, value: V): this; + get(key: K): V | undefined; + keys(): K[]; + describe(label: string): string; +} diff --git a/tests/fixtures/npm/node_modules/gtminicache/dist/index.js b/tests/fixtures/npm/node_modules/gtminicache/dist/index.js new file mode 100644 index 000000000..31c6deef9 --- /dev/null +++ b/tests/fixtures/npm/node_modules/gtminicache/dist/index.js @@ -0,0 +1 @@ +"use strict";var n=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var u=n(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.metrics=void 0;var o=require("node:diagnostics_channel");i.metrics=(0,o.channel)("gtminicache:metrics")});var d=n(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.describe=a;var l=require("node:util");function a(s,e){return(0,l.format)("%s holds %d",s,e)}});Object.defineProperty(exports,"__esModule",{value:!0});exports.Cache=void 0;var h=u(),_=d(),c=class{#e=new Map;#t;constructor(e){this.#t=e}set(e,t){for(this.#e.delete(e),this.#e.set(e,t);this.#e.size>this.#t;)this.#e.delete(this.#e.keys().next().value);return h.metrics.hasSubscribers&&h.metrics.publish({key:e}),this}get(e){let t=this.#e.get(e);return t!==void 0&&(this.#e.delete(e),this.#e.set(e,t)),t}keys(){return[...this.#e.keys()]}describe(e){return(0,_.describe)(e,this.#e.size)}};exports.Cache=c; diff --git a/tests/fixtures/npm/node_modules/gtminicache/package.json b/tests/fixtures/npm/node_modules/gtminicache/package.json new file mode 100644 index 000000000..3f57e1ae3 --- /dev/null +++ b/tests/fixtures/npm/node_modules/gtminicache/package.json @@ -0,0 +1,7 @@ +{ + "name": "gtminicache", + "version": "1.0.0", + "description": "tsc-style CommonJS modules bundled by esbuild 0.27.0 with --bundle --platform=node --format=cjs --minify: the __commonJS helper and the chunk parameters lose their names, the __esModule stamps read { value: !0 }, and calls into node:util and node:diagnostics_channel use the (0, ns.member)(...) form", + "main": "./dist/index.js", + "types": "./dist/index.d.ts" +} diff --git a/tests/fixtures/npm/node_modules/gtminimark/dist/index.d.ts b/tests/fixtures/npm/node_modules/gtminimark/dist/index.d.ts new file mode 100644 index 000000000..295430b86 --- /dev/null +++ b/tests/fixtures/npm/node_modules/gtminimark/dist/index.d.ts @@ -0,0 +1 @@ +export declare function render(src: string, options?: { pedantic?: boolean }): string; diff --git a/tests/fixtures/npm/node_modules/gtminimark/dist/index.js b/tests/fixtures/npm/node_modules/gtminimark/dist/index.js new file mode 100644 index 000000000..c5e1daa31 --- /dev/null +++ b/tests/fixtures/npm/node_modules/gtminimark/dist/index.js @@ -0,0 +1 @@ +var m = { heading: /^(#{1,6}) +(.*)$/, link: /^\[([^\]]*)\]\(([^ )]*)(?: "([^"]*)")?\)/, ref: /^\[([^\]]*)\]$/, lead: /^( {1,4}| {0,3}\t)/, nonSpace: /[^ ]/, punct: /\\([\\*_\[\]])/g, word: /\w+/g, def: /^\[([^\]]*)\]: (\S+)(?: "([^"]*)")?$/ },B = { ...m, emph: /\*([^*]+)\*/g },P = { ...B, word: /[a-z]+/g },K = { normal: { other: m, inline: B }, pedantic: { other: m, inline: P, strict: !0 } };function X(a, e) { let t = 0, n = ""; for (let i of a) if (i === "\t") { let r = 4 - t % 4; n += " ".repeat(r), t += r } else n += i, t++; return n + e; }function Se(a, e, t, n) { let r = e.href, o = e.title || null; n.links++; return { type: "link", raw: t, href: r, title: o, text: a[1] }; }class T {constructor() { this.state = { links: 0 }; }heading(s) { let c = s.match(this.rules.other.heading); return c ? "h" + c[1].length + ":" + c[2].replace(this.rules.other.punct, "$1") : null; }indent(s, w) { return s.replace(this.rules.other.lead, W => X(W, w)); }first(s) { return s.search(this.rules.other.nonSpace); }emph(s) { return s.replace(this.rules.inline.emph, (W, x) => "" + x + ""); }words(s) { let c = s.match(this.rules.inline.word); return c ? c.length : 0; }link(s) { let c = this.rules.other.link.exec(s); if (!c) return null; let r = c[2], o = ""; o = c[3] ? c[3] : ""; return Se(c, { href: r && r.replace(this.rules.other.punct, "$1"), title: o && o.replace(this.rules.other.punct, "$1") }, c[0], this.state); }ref(s, l) { let c = this.rules.other.ref.exec(s); if (!c) return null; let o = l[c[1].toLowerCase()]; return o ? Se(c, o, c[0], this.state) : { type: "text", raw: c[0] }; }}class L {constructor(e) { this.options = e || {}; this.links = {}; this.tokenizer = new T(); this.tokenizer.rules = this.options.pedantic ? K.pedantic : K.normal; }define(s) { let c = s.match(this.tokenizer.rules.other.def); if (c) this.links[c[1].toLowerCase()] = { href: c[2], title: c[3] || "" }; return !!c; }line(s) {let t = this.tokenizer, h = t.heading(s);if (h) return h;let k = t.link(s);if (k) return JSON.stringify(k);let f = t.ref(s, this.links);if (f) return JSON.stringify(f);return t.first(s) + "|" + JSON.stringify(t.indent(s, t.first(s))) + "|" + t.emph(s) + "|" + t.words(s);}}export function render(src, options) {let l = new L(options), out = [];for (let s of src.split("\n")) if (!l.define(s)) out.push(l.line(s));return out.join("\n") + "\nlinks " + l.tokenizer.state.links;} diff --git a/tests/fixtures/npm/node_modules/gtminimark/package.json b/tests/fixtures/npm/node_modules/gtminimark/package.json new file mode 100644 index 000000000..ff188c682 --- /dev/null +++ b/tests/fixtures/npm/node_modules/gtminimark/package.json @@ -0,0 +1,8 @@ +{ + "name": "gtminimark", + "version": "1.0.0", + "description": "A one-line minified ES module: a module-level var statement whose later declarators spread earlier ones, regexes read through an untyped rules table, and a function called with typed and untyped link objects", + "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts" +} diff --git a/tests/harness/__snapshots__/stream-runtime-option-order.ts.txt b/tests/harness/__snapshots__/stream-runtime-option-order.ts.txt new file mode 100644 index 000000000..ff7f10be1 --- /dev/null +++ b/tests/harness/__snapshots__/stream-runtime-option-order.ts.txt @@ -0,0 +1,26 @@ +stream-runtime-option-order.ts:16:3 - error SC2020: 'the Writable option 'defaultEncoding' with a runtime value that an earlier option value could observe or change' is part of the standard library types but has no scriptc lowering yet + + 15 | highWaterMark: bump(), + 16 | defaultEncoding: encoding, + | ^~~~~~~~~~~~~~~~~~~~~~~~~ + 17 | write(_chunk, _encoding, done) { + + hint: compute the option values into consts before the options object (the runtime value is read before the other options run) + +stream-runtime-option-order.ts:23:3 - error SC2020: 'the Writable option 'decodeStrings' with a runtime value that an earlier option value could observe or change' is part of the standard library types but has no scriptc lowering yet + + 22 | highWaterMark: bump(), + 23 | decodeStrings: decode, + | ^~~~~~~~~~~~~~~~~~~~~ + 24 | write(_chunk, _encoding, done) { + + hint: compute the option values into consts before the options object (the runtime value is read before the other options run) + +stream-runtime-option-order.ts:35:3 - error SC2020: 'the Writable option 'defaultEncoding' with a runtime value that an earlier option value could observe or change' is part of the standard library types but has no scriptc lowering yet + + 34 | highWaterMark: sizes.hwm, + 35 | defaultEncoding: pickEncoding(), + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 36 | write(_chunk, _encoding, done) { + + hint: compute the option values into consts before the options object (the runtime value is read before the other options run) \ No newline at end of file diff --git a/tests/harness/ci-stack-scope.test.ts b/tests/harness/ci-stack-scope.test.ts index 4abd321d0..9408433c4 100644 --- a/tests/harness/ci-stack-scope.test.ts +++ b/tests/harness/ci-stack-scope.test.ts @@ -62,6 +62,22 @@ test.each([ ["bottom layer", "pull_request", stacked("main", 1), true], ["new bottom after a merge", "pull_request", stacked("main", 2), true], ["upper layer", "pull_request", upper, false], + [ + "a PR into the default branch whose stack names another base", + "pull_request", + { + ...stacked("main"), + repository: { full_name: repository, default_branch: "main" }, + pull_request: { ...stacked("main").pull_request, stack: { base: { ref: "ni/base" } } }, + }, + true, + ], + [ + "upper layer with the default branch known", + "pull_request", + { ...upper, repository: { full_name: repository, default_branch: "main" } }, + false, + ], ["main push", "push", {}, true], ["push with stack metadata", "push", upper, true], ["merge queue group", "merge_group", upper, true], diff --git a/tests/harness/corpus-costs/7447-union-record-arm-width.mjs.json b/tests/harness/corpus-costs/7447-union-record-arm-width.mjs.json new file mode 100644 index 000000000..5648bd255 --- /dev/null +++ b/tests/harness/corpus-costs/7447-union-record-arm-width.mjs.json @@ -0,0 +1 @@ +{ "plain": 5785, "san": 5722 } diff --git a/tests/harness/corpus-costs/7448-union-record-arm-width.ts.json b/tests/harness/corpus-costs/7448-union-record-arm-width.ts.json new file mode 100644 index 000000000..c60a813c2 --- /dev/null +++ b/tests/harness/corpus-costs/7448-union-record-arm-width.ts.json @@ -0,0 +1 @@ +{ "plain": 3204, "san": 4052 } diff --git a/tests/harness/corpus-costs/7460-transform-writev.mjs.json b/tests/harness/corpus-costs/7460-transform-writev.mjs.json new file mode 100644 index 000000000..f6c21fd3d --- /dev/null +++ b/tests/harness/corpus-costs/7460-transform-writev.mjs.json @@ -0,0 +1 @@ +{ "plain": 2266, "san": 2991 } diff --git a/tests/harness/corpus-costs/7461-transform-writev.cjs.json b/tests/harness/corpus-costs/7461-transform-writev.cjs.json new file mode 100644 index 000000000..b5868c90b --- /dev/null +++ b/tests/harness/corpus-costs/7461-transform-writev.cjs.json @@ -0,0 +1 @@ +{ "plain": 1828, "san": 2413 } diff --git a/tests/harness/corpus-costs/7462-transform-writev.ts.json b/tests/harness/corpus-costs/7462-transform-writev.ts.json new file mode 100644 index 000000000..f8fd66c2a --- /dev/null +++ b/tests/harness/corpus-costs/7462-transform-writev.ts.json @@ -0,0 +1 @@ +{ "plain": 2178, "san": 2875 } diff --git a/tests/harness/corpus-costs/7463-stream-option-values.ts.json b/tests/harness/corpus-costs/7463-stream-option-values.ts.json new file mode 100644 index 000000000..0f66a4266 --- /dev/null +++ b/tests/harness/corpus-costs/7463-stream-option-values.ts.json @@ -0,0 +1 @@ +{ "plain": 1786, "san": 4192 } diff --git a/tests/harness/corpus-costs/7464-stream-option-values.mjs.json b/tests/harness/corpus-costs/7464-stream-option-values.mjs.json new file mode 100644 index 000000000..b609b128f --- /dev/null +++ b/tests/harness/corpus-costs/7464-stream-option-values.mjs.json @@ -0,0 +1 @@ +{ "plain": 1678, "san": 4502 } diff --git a/tests/harness/corpus-costs/7465-transform-callback-values.ts.json b/tests/harness/corpus-costs/7465-transform-callback-values.ts.json new file mode 100644 index 000000000..1c67bb43f --- /dev/null +++ b/tests/harness/corpus-costs/7465-transform-callback-values.ts.json @@ -0,0 +1 @@ +{ "plain": 1571, "san": 2074 } diff --git a/tests/harness/corpus-costs/7466-stream-construct-assign.mjs.json b/tests/harness/corpus-costs/7466-stream-construct-assign.mjs.json new file mode 100644 index 000000000..1c67bb43f --- /dev/null +++ b/tests/harness/corpus-costs/7466-stream-construct-assign.mjs.json @@ -0,0 +1 @@ +{ "plain": 1571, "san": 2074 } diff --git a/tests/harness/corpus-costs/7500-pipeline-callback-undefined.ts.json b/tests/harness/corpus-costs/7500-pipeline-callback-undefined.ts.json new file mode 100644 index 000000000..122c66b27 --- /dev/null +++ b/tests/harness/corpus-costs/7500-pipeline-callback-undefined.ts.json @@ -0,0 +1 @@ +{ "plain": 3783, "san": 4994 } diff --git a/tests/harness/corpus-costs/7501-pipeline-callback-undefined.mjs.json b/tests/harness/corpus-costs/7501-pipeline-callback-undefined.mjs.json new file mode 100644 index 000000000..d9c00a7de --- /dev/null +++ b/tests/harness/corpus-costs/7501-pipeline-callback-undefined.mjs.json @@ -0,0 +1 @@ +{ "plain": 2457, "san": 3243 } diff --git a/tests/harness/corpus-costs/7502-readline-cursor-undefined.ts.json b/tests/harness/corpus-costs/7502-readline-cursor-undefined.ts.json new file mode 100644 index 000000000..7a36db8f3 --- /dev/null +++ b/tests/harness/corpus-costs/7502-readline-cursor-undefined.ts.json @@ -0,0 +1 @@ +{ "plain": 2592, "san": 3421 } diff --git a/tests/harness/corpus-costs/7543-var-list-declarator-order.js.json b/tests/harness/corpus-costs/7543-var-list-declarator-order.js.json new file mode 100644 index 000000000..cc47657bd --- /dev/null +++ b/tests/harness/corpus-costs/7543-var-list-declarator-order.js.json @@ -0,0 +1 @@ +{ "plain": 4300, "san": 5900 } diff --git a/tests/harness/corpus-costs/7545-string-regex-checked-arguments.js.json b/tests/harness/corpus-costs/7545-string-regex-checked-arguments.js.json new file mode 100644 index 000000000..83b82ee18 --- /dev/null +++ b/tests/harness/corpus-costs/7545-string-regex-checked-arguments.js.json @@ -0,0 +1 @@ +{ "plain": 4900, "san": 4600 } diff --git a/tests/harness/corpus-costs/7548-cjs-receiverless-builtin-calls/main.cjs.json b/tests/harness/corpus-costs/7548-cjs-receiverless-builtin-calls/main.cjs.json new file mode 100644 index 000000000..8a603b2f4 --- /dev/null +++ b/tests/harness/corpus-costs/7548-cjs-receiverless-builtin-calls/main.cjs.json @@ -0,0 +1 @@ +{ "plain": 12300, "san": 13600 } diff --git a/tests/harness/corpus-costs/7549-cjs-minified-esmodule-stamp/main.cjs.json b/tests/harness/corpus-costs/7549-cjs-minified-esmodule-stamp/main.cjs.json new file mode 100644 index 000000000..d00a49ec8 --- /dev/null +++ b/tests/harness/corpus-costs/7549-cjs-minified-esmodule-stamp/main.cjs.json @@ -0,0 +1 @@ +{ "plain": 16000, "san": 21200 } diff --git a/tests/harness/corpus-costs/7553-var-for-in-of-zero-iterations.js.json b/tests/harness/corpus-costs/7553-var-for-in-of-zero-iterations.js.json new file mode 100644 index 000000000..566096d24 --- /dev/null +++ b/tests/harness/corpus-costs/7553-var-for-in-of-zero-iterations.js.json @@ -0,0 +1 @@ +{ "plain": 19400, "san": 25900 } diff --git a/tests/harness/corpus-costs/7620-js-class-view-descriptors.js.json b/tests/harness/corpus-costs/7620-js-class-view-descriptors.js.json new file mode 100644 index 000000000..ef439d096 --- /dev/null +++ b/tests/harness/corpus-costs/7620-js-class-view-descriptors.js.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 4500 } diff --git a/tests/harness/corpus-costs/7661-node-call-modules/main.ts.json b/tests/harness/corpus-costs/7661-node-call-modules/main.ts.json new file mode 100644 index 000000000..a970c2f16 --- /dev/null +++ b/tests/harness/corpus-costs/7661-node-call-modules/main.ts.json @@ -0,0 +1 @@ +{ "plain": 6000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7662-node-call-exit-events/main.ts.json b/tests/harness/corpus-costs/7662-node-call-exit-events/main.ts.json new file mode 100644 index 000000000..a970c2f16 --- /dev/null +++ b/tests/harness/corpus-costs/7662-node-call-exit-events/main.ts.json @@ -0,0 +1 @@ +{ "plain": 6000, "san": 9000 } diff --git a/tests/harness/library-mode.test.ts b/tests/harness/library-mode.test.ts index 0d4052952..db4fabb3e 100644 --- a/tests/harness/library-mode.test.ts +++ b/tests/harness/library-mode.test.ts @@ -50,8 +50,8 @@ * no-teachings default is pinned by K5/K7 over * the teachings-free traps profile * K13 npm-posture bare npm specifiers are static-or-refuse: an - * eligible package (own .d.ts, unminified JS, - * no transform markers) compiles statically + * eligible package (own .d.ts, no transform + * markers) compiles statically * into the library graph, its own npm deps * judged by the same bar; every ineligible one * refuses SC4020 naming the failed bar — never @@ -746,11 +746,11 @@ describe("K9: library-mode refusals", () => { * synthesized per test like K9's. Emission never engages — SC4020 is a * frontend verdict — so one lane suffices. */ let npmRefusalCounter = 0; -async function npmRefusal( +async function compileNpmFixture( entryFile: string, exports: unknown[], profilePatch: Record = {}, -): Promise<{ code: string; message: string; hint?: string; note?: string; file: string }[]> { +): Promise>> { const outDir = join(cacheDir, `npm-refusal-${npmRefusalCounter++}`); mkdirSync(outDir, { recursive: true }); const profile = { @@ -770,7 +770,15 @@ async function npmRefusal( }; const profilePath = join(outDir, "profile.json"); writeFileSync(profilePath, JSON.stringify(profile)); - const result = await compileLibrary({ profilePath, outDir }); + return compileLibrary({ profilePath, outDir }); +} + +async function npmRefusal( + entryFile: string, + exports: unknown[], + profilePatch: Record = {}, +): Promise<{ code: string; message: string; hint?: string; note?: string; file: string }[]> { + const result = await compileNpmFixture(entryFile, exports, profilePatch); expect(result.ok).toBe(false); if (result.ok) throw new Error("unreachable"); return result.diagnostics.map((d) => ({ @@ -795,13 +803,11 @@ describe("K13: library-mode npm refusals (SC4020, static-or-refuse)", () => { expect(diags[0]!.file.endsWith("lib-markers.ts")).toBe(true); }); - test("minified shipped JS refuses", async () => { - const diags = await npmRefusal("lib-minified.ts", [ + test("minified shipped JS compiles", async () => { + const result = await compileNpmFixture("lib-minified.ts", [ { export: "f", symbol: "kx_f", params: ["f64", "f64"], returns: "f64" }, ]); - expect(diags.map((d) => d.code)).toEqual(["SC4020"]); - expect(diags[0]!.message).toContain("'slimmed'"); - expect(diags[0]!.message).toContain("looks minified"); + expect(result.ok ? [] : result.diagnostics.map((d) => d.message)).toEqual([]); }); test("no own .d.ts refuses by name — never the generic import fence", async () => { diff --git a/tests/harness/library-static-types.test.ts b/tests/harness/library-static-types.test.ts index dfbd70bf9..36e2befac 100644 --- a/tests/harness/library-static-types.test.ts +++ b/tests/harness/library-static-types.test.ts @@ -81,7 +81,8 @@ test.each(["sample", "@scope/sample"])( expect(actual).toBe(reference); expect(actual).toBe("22\n"); } - // Opting in to one runtime package does not admit its untyped dependency. + // A dependency the package's JavaScript imports compiles without + // declarations of its own: no declaration checks that import. const dependency = join(dir, "node_modules/unchecked-dependency"); await mkdir(dependency, { recursive: true }); await writeFile( @@ -96,14 +97,18 @@ test.each(["sample", "@scope/sample"])( join(pkg, "index.js"), "import { adjust } from 'unchecked-dependency'; export function calculate(value) { return adjust(value) * 3 + 1; }\n", ); - const refused = await compileLibrary({ profilePath, outDir: join(dir, "refused") }); - expect(refused.ok).toBe(false); - if (!refused.ok) - expect( - refused.diagnostics.some( - (d) => d.code === "SC4020" && d.message.includes("unchecked-dependency"), - ), - ).toBe(true); + const withDependency = await compileLibrary({ profilePath, outDir: join(dir, "dependency") }); + if (!withDependency.ok) throw new Error(JSON.stringify(withDependency.diagnostics)); + if (process.env["SCRIPTC_PORTABLE_ONLY"] !== "1") { + const source = join(dir, "dependency-host.c"), + binary = join(dir, "dependency-host"); + await writeFile( + source, + '#include \nextern void st_init(void); extern double st_result(void);\nint main(void) { st_init(); printf("%.0f\\n", st_result()); }\n', + ); + execFileSync("clang", [source, withDependency.archivePath, "-lm", "-o", binary]); + expect(execFileSync(binary, { encoding: "utf8" })).toBe("22\n"); + } expect(await readFile(join(types, "index.d.ts"), "utf8")).toBe(declaration); } finally { await rm(dir, { recursive: true, force: true }); diff --git a/tests/harness/node-island.test.ts b/tests/harness/node-island.test.ts index 47a68e290..132af41f0 100644 --- a/tests/harness/node-island.test.ts +++ b/tests/harness/node-island.test.ts @@ -6,8 +6,19 @@ * (6800-6803) pins the call semantics against Node. Needs a libnode pack * in SCRIPTC_LIBNODE; required in the Linux x64 CI lanes (libnode.ts). */ import { execFile } from "node:child_process"; -import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; +import { + chmodSync, + copyFileSync, + cpSync, + existsSync, + mkdirSync, + readFileSync, + readdirSync, + rmSync, + statSync, + writeFileSync, +} from "node:fs"; +import { basename, join } from "node:path"; import { promisify } from "node:util"; import { beforeAll, describe, expect, test } from "vitest"; import { compile, deserializeModule } from "@scriptc/compiler"; @@ -36,10 +47,13 @@ let binary = ""; const before = `mapped before ${process.platform === "linux" ? "false" : "unknown"}`; const after = `mapped after ${process.platform === "linux" ? "true" : "unknown"}`; +// The island module cache of these runs (scr_node_island.c). +const cacheHome = join(outDir, "cache"); + async function run( path: string, args: string[], - env: NodeJS.ProcessEnv = process.env, + env: NodeJS.ProcessEnv = { ...process.env, XDG_CACHE_HOME: cacheHome }, ): Promise { try { const { stdout, stderr } = await execFileAsync(path, args, { env, encoding: "utf8" }); @@ -61,11 +75,11 @@ function comparable(stderr: string): string { .join("\n"); } -async function build(name: string, libnode?: string): Promise { +async function build(name: string, libnode?: string, entry = fixture): Promise { const dir = join(outDir, name); mkdirSync(dir, { recursive: true }); - const result = await compile(fixture, { - outPath: join(dir, "lifecycle"), + const result = await compile(entry, { + outPath: join(dir, basename(entry, ".ts")), outDir: dir, sanitize, ...(libnode === undefined ? {} : { libnode }), @@ -125,18 +139,57 @@ describe.skipIf(skip)("Node islands in-process", () => { expect(result.stdout).toBe(`${before}\n42\n${after}\n`); }); - test("beside packaging carries its own pack", async () => { + test("beside packaging carries its own pack and island modules", async () => { const beside = await build("beside", "beside"); expect(existsSync(join(outDir, "beside/lifecycle.libnode/manifest.json"))).toBe(true); - const env = { ...process.env }; + const helper = join(outDir, "beside/lifecycle.libnode/modules/helper.cjs"); + expect(readFileSync(helper, "utf8")).toBe( + readFileSync(join(repoRoot, "tests/fixtures/node-island/helper.cjs"), "utf8"), + ); + const env = { ...process.env, XDG_CACHE_HOME: cacheHome }; delete env["SCRIPTC_LIBNODE"]; const result = await run(beside, [], env); expect(result.stdout).toBe(`${before}\n42\n${after}\ndone\n`); expect(result.code).toBe(0); + // Modules that no longer match the executable are refused. + writeFileSync(helper, `${readFileSync(helper, "utf8")}\n// edited\n`); + const edited = await run(beside, [], env); + expect(edited.code).toBe(1); + expect(edited.stderr).toBe( + `scriptc: the Node island modules at ${join(outDir, "beside/lifecycle.libnode/modules")} do not match this program\n`, + ); }, 300_000); + test("the executable carries its island modules and no path of the build machine", async () => { + const bytes = readFileSync(binary); + expect(bytes.includes(Buffer.from(repoRoot))).toBe(false); + // A copy elsewhere runs with the modules it carries, extracted into a + // private cache directory named by the manifest's digest. + const moved = join(outDir, "moved"); + mkdirSync(moved, { recursive: true }); + copyFileSync(binary, join(moved, "app")); + chmodSync(join(moved, "app"), 0o755); + const cache = join(outDir, "moved-cache"); + rmSync(cache, { recursive: true, force: true }); + const env = { ...process.env, XDG_CACHE_HOME: cache }; + expect((await run(join(moved, "app"), [], env)).stdout).toBe(`${before}\n42\n${after}\ndone\n`); + const islands = join(cache, "scriptc/node-islands"); + const [digest] = readdirSync(islands); + expect(digest).toMatch(/^[0-9a-f]{64}$/); + expect(statSync(islands).mode & 0o777).toBe(0o700); + expect(statSync(join(islands, digest!)).mode & 0o777).toBe(0o700); + // An entry that no longer matches is not used: the run extracts the + // modules into a directory of its own instead. + writeFileSync(join(islands, digest!, "helper.cjs"), "exports.answer = () => 0;\n"); + expect((await run(join(moved, "app"), [], env)).stdout).toBe(`${before}\n42\n${after}\ndone\n`); + }); + test("a missing pack fails the first call", async () => { - const result = await run(binary, [], { ...process.env, SCRIPTC_LIBNODE: "/nonexistent/pack" }); + const result = await run(binary, [], { + ...process.env, + XDG_CACHE_HOME: cacheHome, + SCRIPTC_LIBNODE: "/nonexistent/pack", + }); expect(result.code).toBe(1); expect(result.stdout).toBe(`${before}\n`); expect(result.stderr).toMatch( @@ -144,9 +197,89 @@ describe.skipIf(skip)("Node islands in-process", () => { ); }); + test("SCRIPTC_LIBNODE must be an absolute path", async () => { + const result = await run(binary, [], { + ...process.env, + XDG_CACHE_HOME: cacheHome, + SCRIPTC_LIBNODE: "relative/pack", + }); + expect(result.code).toBe(1); + expect(result.stdout).toBe(`${before}\n`); + expect(result.stderr).toBe( + "scriptc: SCRIPTC_LIBNODE must be an absolute path to a libnode pack directory\n", + ); + }); + + test("an error whose message cannot be read crosses with an empty message", async () => { + expect(await run(binary, ["unreadable"])).toEqual({ + stdout: `${before}\n42\n${after}\ncaught true ""\ndone\n`, + stderr: "", + code: 0, + }); + }); + + test("a call from a worker thread throws", async () => { + const worker = await build( + "worker", + undefined, + join(repoRoot, "tests/fixtures/node-island/worker.ts"), + ); + expect(await run(worker, [])).toEqual({ + stdout: + "main 42\nworker Node islands run on the main thread only; this call came from a worker thread\nexit 0\n", + stderr: "", + code: 0, + }); + }, 300_000); + + test("full garbage collections during calls, at depth on both sides", async () => { + const stress = await build( + "gc-stress", + undefined, + join(repoRoot, "tests/fixtures/node-island/gc-stress.ts"), + ); + expect(await run(stress, [])).toEqual({ + stdout: + "churn 2000000\nnested 5000\ndeep 8000\nfibers 100001,100002,100003,100004\ntimer 500000\n", + stderr: "", + code: 0, + }); + }, 300_000); + + test("Node ignores NODE_OPTIONS from the program's environment", async () => { + const result = await run(binary, [], { + ...process.env, + XDG_CACHE_HOME: cacheHome, + NODE_OPTIONS: "--require /nonexistent/preload.cjs", + }); + expect(result).toEqual({ stdout: `${before}\n42\n${after}\ndone\n`, stderr: "", code: 0 }); + }); + + test("child_process.fork() needs an execPath of its own", async () => { + expect((await run(binary, ["fork"])).stdout).toBe( + `${before}\n42\n${after}\nchild_process.fork() in a Node island needs options.execPath (a node executable): process.execPath is this program\ndone\n`, + ); + }); + + test("a cached build follows a change of the recorded libnode pack", async () => { + // The same program built against a copy of the pack elsewhere records + // the copy: the executable cache does not serve the first build's entry. + const copy = join(outDir, "pack-copy"); + rmSync(copy, { recursive: true, force: true }); + cpSync(pack!, copy, { recursive: true }); + const first = readFileSync(await build("cached-pack", pack!)); + const second = readFileSync(await build("cached-pack", copy)); + expect(first.includes(Buffer.from(copy))).toBe(false); + expect(second.includes(Buffer.from(copy))).toBe(true); + }, 300_000); + test("a pack of another Node version fails the first call", async () => { const dir = await fakePack("old-node", "SCR_NODE_BRIDGE_ABI", "22.11.0"); - const result = await run(binary, [], { ...process.env, SCRIPTC_LIBNODE: dir }); + const result = await run(binary, [], { + ...process.env, + XDG_CACHE_HOME: cacheHome, + SCRIPTC_LIBNODE: dir, + }); expect(result.code).toBe(1); expect(result.stderr).toMatch( new RegExp( @@ -157,10 +290,14 @@ describe.skipIf(skip)("Node islands in-process", () => { test("a bridge of another ABI fails the first call", async () => { const dir = await fakePack("other-abi", "999u", "24.22.0"); - const result = await run(binary, [], { ...process.env, SCRIPTC_LIBNODE: dir }); + const result = await run(binary, [], { + ...process.env, + XDG_CACHE_HOME: cacheHome, + SCRIPTC_LIBNODE: dir, + }); expect(result.code).toBe(1); expect(result.stderr).toBe( - `scriptc: the libnode pack at ${dir} has an incompatible bridge (ABI 999; this program needs 2)\n`, + `scriptc: the libnode pack at ${dir} has an incompatible bridge (ABI 999; this program needs 3)\n`, ); }); diff --git a/tests/harness/npm-static.test.ts b/tests/harness/npm-static.test.ts index 7ee76307f..388da2138 100644 --- a/tests/harness/npm-static.test.ts +++ b/tests/harness/npm-static.test.ts @@ -1490,6 +1490,24 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { ]); }, 180_000); + // 7546: a one-line minified ES module: a var statement whose later + // declarators spread earlier ones, regexes read through an untyped rules + // table, and a function instantiated with typed and untyped arguments. + test("the minified module 7546-minified-esm-rules compiles statically and matches Node", async () => { + await expectNodeParity(join(fixturesRoot, "npm/cases/7546-minified-esm-rules/main.ts"), [ + "gtminimark", + ]); + }, 180_000); + + // 7547: an identifier-minified esbuild CommonJS bundle: the __commonJS + // helper and chunk parameters renamed, { value: !0 } stamps, and + // (0, ns.member)(...) calls of builtin module functions. + test("the identifier-minified bundle 7547-minified-cjs-chunks compiles statically and matches Node", async () => { + await expectNodeParity(join(fixturesRoot, "npm/cases/7547-minified-cjs-chunks/main.ts"), [ + "gtminicache", + ]); + }, 180_000); + // A whitespace/syntax-minified bundle whose helpers keep their names is // judged by the recognizers, not refused up front as minified. test("--npm-static=auto opts a minified bundle with named helpers in", () => { diff --git a/tests/harness/self-hosting-native-toolchain.test.ts b/tests/harness/self-hosting-native-toolchain.test.ts index 091d3f0b5..fb15e80a4 100644 --- a/tests/harness/self-hosting-native-toolchain.test.ts +++ b/tests/harness/self-hosting-native-toolchain.test.ts @@ -108,7 +108,7 @@ for (const backend of ["llvm"] as const) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 36, marker: "scr_runtime_abi_v36" }, + runtime_abi: { version: 37, marker: "scr_runtime_abi_v37" }, compiler: { command: "fixture", identity: "fixture", target: target.llvmTriple }, macros: { executable: [], excluded: [], sanitizer: "external-toolchain-required" }, flavors: { diff --git a/tests/library-mode/npm-refuse/lib-minified.ts b/tests/library-mode/npm-refuse/lib-minified.ts index 9e5c16e75..492cd5369 100644 --- a/tests/library-mode/npm-refuse/lib-minified.ts +++ b/tests/library-mode/npm-refuse/lib-minified.ts @@ -1,5 +1,5 @@ -// SC4020 fixture: slimmed ships a one-long-line dist — minified JS fails -// the eligibility bar. +// slimmed ships a one-long-line dist: minified JS compiles like any other +// eligible package. import { pick } from "slimmed"; export function f(a: number, b: number): number { diff --git a/tests/library-mode/npm-static/lib.ts b/tests/library-mode/npm-static/lib.ts index 27107f29d..15bad17a3 100644 --- a/tests/library-mode/npm-static/lib.ts +++ b/tests/library-mode/npm-static/lib.ts @@ -1,5 +1,5 @@ // Library-mode npm posture fixture (static-or-refuse): a bare specifier -// naming an ELIGIBLE package (own .d.ts, unminified shipped JS, no +// naming an ELIGIBLE package (own .d.ts, no // build-transform markers) compiles statically as part of the library // graph — no flag, no island — and the package's own top-level require // ("mathdep") joins through the same bar. The node:path import alongside diff --git a/tests/library-mode/npm-static/node_modules/mathkit/index.js b/tests/library-mode/npm-static/node_modules/mathkit/index.js index f9f9242c3..eadfefba9 100644 --- a/tests/library-mode/npm-static/node_modules/mathkit/index.js +++ b/tests/library-mode/npm-static/node_modules/mathkit/index.js @@ -1,6 +1,6 @@ "use strict"; // A vendored fake package for the library-mode npm posture: eligible by -// every bar (own .d.ts, unminified CJS, no build-transform markers), with +// every bar (own .d.ts, no build-transform markers), with // its OWN npm dep edge (mathdep) so the transitive fixpoint is exercised. const steps = require("mathdep"); From f0448238f1dc0900178457c0b315e9985a0a39b3 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Fri, 23 Oct 2026 14:06:42 -0500 Subject: [PATCH 002/128] Keep libnode pack manifest paths inside the bundle --- packages/cli/src/bootstrap.ts | 3 + packages/cli/test/bootstrap.test.ts | 55 +++++++++++++++++++ .../frontend/lowering/lower-node-island.ts | 7 +++ .../compiler/src/frontend/lowering/lowerer.ts | 8 +++ .../src/node-islands/libnode-pack.test.ts | 35 ++++++++++-- .../compiler/src/node-islands/libnode-pack.ts | 4 +- .../compiler/src/node-islands/libnode.test.ts | 43 ++++++++++++++- packages/compiler/src/node-islands/libnode.ts | 38 +++++++++---- .../compiler/src/node-islands/modules.test.ts | 27 +++++++++ packages/compiler/src/node-islands/modules.ts | 52 ++++++++++++++---- packages/libnode-common/smoke/smoke.c | 4 +- .../corpus/7662-node-call-exit-events/main.ts | 1 + 12 files changed, 247 insertions(+), 30 deletions(-) diff --git a/packages/cli/src/bootstrap.ts b/packages/cli/src/bootstrap.ts index c8c927739..77909610d 100644 --- a/packages/cli/src/bootstrap.ts +++ b/packages/cli/src/bootstrap.ts @@ -70,6 +70,9 @@ async function tryFastPath(): Promise { values["profile-generate"] !== undefined || values["profile-use"] !== undefined || values.sparse || + // A --libnode=beside build places the pack and the island modules next + // to the executable, which a routed hit does not do. + values.libnode === "beside" || (values["external-types"] ?? []).length > 0 ) return null; diff --git a/packages/cli/test/bootstrap.test.ts b/packages/cli/test/bootstrap.test.ts index 595b52ce5..53d6b63e1 100644 --- a/packages/cli/test/bootstrap.test.ts +++ b/packages/cli/test/bootstrap.test.ts @@ -123,6 +123,61 @@ test("bootstrap exact builds use the routed cache and source edits fall through" } }, 120_000); +test.skipIf(!persistentExecutable)( + "bootstrap leaves --libnode=beside builds to the full compiler", + async () => { + const dir = await mkdtemp(join(tmpdir(), "scriptc-bootstrap-beside-")); + const entry = join(dir, "main.ts"); + const outPath = join(dir, "program"); + const preload = join(dir, "reject-full-compiler.mjs"); + const env = { ...process.env, SCRIPTC_CACHE_DIR: join(dir, "cache") }; + delete env.SCRIPTC_NO_CACHE; + const build = (args: string[], rejectFullCompiler = false) => + execFileAsync( + process.execPath, + [ + ...(rejectFullCompiler ? ["--import", preload] : []), + bootstrap, + "build", + entry, + "-o", + outPath, + ...args, + ], + { env, maxBuffer: 4 * 1024 * 1024 }, + ); + try { + await Promise.all([ + writeFile(entry, 'console.log("beside");\n'), + writeFile( + preload, + [ + "import { registerHooks } from 'node:module';", + "registerHooks({ load(url, context, nextLoad) {", + " if (url.includes('/packages/compiler/dist/index.js')) throw new Error('compiler graph loaded');", + " return nextLoad(url, context);", + "}});", + "", + ].join("\n"), + ), + ]); + for (const args of [[], ["--libnode=beside"]]) { + await build(args); + await build(args); + } + await expect(build([], true)).resolves.toBeDefined(); + // A routed hit would skip placing the pack and the island modules. + await expect(build(["--libnode=beside"], true)).rejects.toMatchObject({ + stderr: expect.stringContaining("compiler graph loaded"), + }); + expect((await execFileAsync(outPath)).stdout).toBe("beside\n"); + } finally { + await rm(dir, { recursive: true, force: true }); + } + }, + 120_000, +); + test.skipIf(!runtimePackHost)( "bootstrap cache hits reuse LLVM executables", async () => { diff --git a/packages/compiler/src/frontend/lowering/lower-node-island.ts b/packages/compiler/src/frontend/lowering/lower-node-island.ts index bab5f15a1..fae8aa219 100644 --- a/packages/compiler/src/frontend/lowering/lower-node-island.ts +++ b/packages/compiler/src/frontend/lowering/lower-node-island.ts @@ -17,6 +17,7 @@ * thrown Error crosses as its nearest intrinsic class with its message and * string `code`. */ import { realpathSync } from "node:fs"; +import { isAbsolute } from "node:path"; import * as ts from "../ts7/adapter.js"; import { locOf } from "../program.js"; import type { NodeApiMember } from "../node-api-import.js"; @@ -108,6 +109,12 @@ export function lowerNodeApiCall( throw new PoisonError(); } const specifier = lowerer.lowerExprExpecting(specifierNode, STRING); + // An absolute specifier names a file of the build machine: the call names + // the shipped copy, relative to the caller inside the tree. + if (isAbsolute(specifierNode.text) && specifier.kind === "strLit") { + const target = lowerer.nodeIslandModules.resolvedPath(caller, specifierNode.text); + if (target !== null) lowerer.nodeIslandSpecifiers.push({ literal: specifier, caller, target }); + } const name = lowerer.lowerExprExpecting(argNodes[1]!, STRING); const values = argNodes.slice(2).map((arg) => { const value = lowerer.lowerExpr(arg); diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 4b6b0acdf..6594d8175 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -3145,6 +3145,12 @@ export class Lowerer { readonly nodeIslandModules = new NodeIslandModuleCollector(); /** Each call's caller literal, set to its tree path when lowering ends. */ readonly nodeIslandCallers: { literal: IrExpr & { kind: "strLit" }; caller: string }[] = []; + /** Absolute specifiers, rewritten to the shipped file relative to their caller. */ + readonly nodeIslandSpecifiers: { + literal: IrExpr & { kind: "strLit" }; + caller: string; + target: string; + }[] = []; /** Per-directory answers of experimental-import.ts's declaration-file test. */ readonly experimentalFiles = new Map(); /** Interned LifetimeRegion.run helpers, by callback type key. */ @@ -8656,6 +8662,8 @@ export class Lowerer { const modules = this.nodeIslandModules.tree(); for (const { literal, caller } of this.nodeIslandCallers) literal.value = NodeIslandModuleCollector.callerPath(modules, caller); + for (const { literal, caller, target } of this.nodeIslandSpecifiers) + literal.value = NodeIslandModuleCollector.relativeSpecifier(caller, target); return { libnode: "", nodeVersion: "", ...(modules === null ? {} : { modules }) }; } diff --git a/packages/compiler/src/node-islands/libnode-pack.test.ts b/packages/compiler/src/node-islands/libnode-pack.test.ts index 3508733f7..108e211f2 100644 --- a/packages/compiler/src/node-islands/libnode-pack.test.ts +++ b/packages/compiler/src/node-islands/libnode-pack.test.ts @@ -200,6 +200,18 @@ test("an installed pack of another scriptc version is refused", () => { ); }); +test("an installed pack whose files do not match their digests is refused", () => { + const root = temp(); + const name = libnodePackPackage(hostLibnodeTarget()); + if (name === null) return; + const pack = fakePack(join(root, "node_modules", name), () => {}, name); + // Same size, other bytes. + writeFileSync(join(pack, "libnode.so.137"), "stand-in libnodX"); + expect(libnodeRecord(undefined, join(root, "app"), {}, root)).toBe( + `libnode.so.137 in the libnode pack at ${pack} does not match its manifest`, + ); +}); + describe("readLibnodePack", () => { test("reads a pack in build-pack.mjs's format and checks its package", () => { const pack = fakePack(join(temp(), "pack")); @@ -215,16 +227,27 @@ describe("readLibnodePack", () => { ); }); - test("refuses other manifest schemas and nested file names", () => { + test("refuses other manifest schemas and file names outside the pack", () => { const schema = fakePack(join(temp(), "pack"), (m) => { m["schema"] = "scriptc.libnode-pack.v0"; }); expect(thrown(() => readLibnodePack(schema)).kind).toBe("invalid"); - const nested = fakePack(join(temp(), "pack"), (m) => { - m["libnode"] = "lib/libnode.so.137"; - m["files"] = { ...(m["files"] as object), "lib/libnode.so.137": entry("stand-in libnode") }; - }); - expect(thrown(() => readLibnodePack(nested)).message).toContain("nested file"); + for (const name of [ + "lib/libnode.so.137", + "../libnode.so.137", + "..", + "/etc/libnode.so", + "a\\b", + "a\0b", + ]) { + const pack = fakePack(join(temp(), "pack"), (m) => { + m["libnode"] = name; + m["files"] = { ...(m["files"] as object), [name]: entry("stand-in libnode") }; + }); + expect(thrown(() => readLibnodePack(pack)).message).toBe( + `the libnode pack at ${pack} names a file outside the pack (${JSON.stringify(name)})`, + ); + } }); test("checks sizes always and hashes on request", () => { diff --git a/packages/compiler/src/node-islands/libnode-pack.ts b/packages/compiler/src/node-islands/libnode-pack.ts index a43fde48e..4c4599b7b 100644 --- a/packages/compiler/src/node-islands/libnode-pack.ts +++ b/packages/compiler/src/node-islands/libnode-pack.ts @@ -135,7 +135,9 @@ export function parseLibnodePackManifest(json: unknown, where: string): LibnodeP const files = json["files"]; if (!isRecord(files)) return invalid("lists no files in manifest.json"); for (const name of [json["libnode"], json["bridge"]] as string[]) { - if (name.includes("/") || name.includes("\\")) return invalid(`names a nested file ${name}`); + if (name === "." || name === ".." || /[/\\\0]/.test(name) || isAbsolute(name)) { + return invalid(`names a file outside the pack (${JSON.stringify(name)})`); + } if (!isFileEntry(files[name])) return invalid(`lists no size and SHA-256 for ${name}`); } return json as unknown as LibnodePackManifest; diff --git a/packages/compiler/src/node-islands/libnode.test.ts b/packages/compiler/src/node-islands/libnode.test.ts index fd775be5d..661e6cf13 100644 --- a/packages/compiler/src/node-islands/libnode.test.ts +++ b/packages/compiler/src/node-islands/libnode.test.ts @@ -1,4 +1,12 @@ -import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { + existsSync, + mkdirSync, + mkdtempSync, + readFileSync, + rmSync, + symlinkSync, + writeFileSync, +} from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { describe, expect, test } from "vitest"; @@ -110,6 +118,39 @@ describe("the recorded libnode pack", () => { expect(existsSync(join(out, "app.libnode"))).toBe(false); }); + test("beside refuses manifest file names outside the pack", () => { + for (const name of ["..", ".", "../escaped", "/etc/passwd", "a/b", "a\\b", "x\u0000y"]) { + const dir = pack("24.22.0"); + writeFileSync( + join(dir, "manifest.json"), + JSON.stringify({ + nodeVersion: "24.22.0", + bridgeAbi: NODE_BRIDGE_ABI, + files: { [name]: {} }, + }), + ); + const out = mkdtempSync(join(tmpdir(), "scriptc-libnode-out-")); + expect(libnodeRecord("beside", join(out, "app"), { SCRIPTC_LIBNODE: dir })).toBe( + `the libnode pack at ${dir} lists a file outside the pack ('${name}')`, + ); + expect(existsSync(join(out, "app.libnode"))).toBe(false); + expect(existsSync(join(out, "escaped"))).toBe(false); + } + }); + + test("beside refuses pack files that are symbolic links", () => { + const dir = pack("24.22.0"); + const elsewhere = join(mkdtempSync(join(tmpdir(), "scriptc-libnode-elsewhere-")), "secret"); + writeFileSync(elsewhere, "secret"); + rmSync(join(dir, "libnode.so.137")); + symlinkSync(elsewhere, join(dir, "libnode.so.137")); + const out = mkdtempSync(join(tmpdir(), "scriptc-libnode-out-")); + expect(libnodeRecord("beside", join(out, "app"), { SCRIPTC_LIBNODE: dir })).toBe( + `the libnode pack at ${dir} holds libnode.so.137 as a symbolic link; pack files must be regular files`, + ); + expect(existsSync(join(out, "app.libnode"))).toBe(false); + }); + test("a pack the deployment places beside the executable needs no manifest at build time", () => { expect(libnodeRecord("$ORIGIN/node", "/out/app", {})).toEqual({ libnode: "$ORIGIN/node", diff --git a/packages/compiler/src/node-islands/libnode.ts b/packages/compiler/src/node-islands/libnode.ts index e52339b30..19820f064 100644 --- a/packages/compiler/src/node-islands/libnode.ts +++ b/packages/compiler/src/node-islands/libnode.ts @@ -14,13 +14,14 @@ * also the hook for bundling Node into the executable itself later. */ import { createHash } from "node:crypto"; import { + constants, copyFileSync, linkSync, + lstatSync, mkdirSync, readFileSync, realpathSync, rmSync, - statSync, } from "node:fs"; import { basename, isAbsolute, join, resolve, sep } from "node:path"; import { compilerReleaseVersion } from "../library/sidecar.js"; @@ -86,12 +87,15 @@ function readManifest(dir: string): PackManifest | string { } /** Copies the pack next to the executable (hard links where possible), or - * returns why it cannot: the target would replace the pack itself, or the - * manifest names a file outside the pack. */ + * returns why it cannot: the target would replace the pack itself, the + * manifest names a file outside the pack, or a pack file is not a regular + * file (a symbolic link could point anywhere). Every destination is checked + * to resolve inside the target directory. */ function placeBeside(source: string, manifest: PackManifest, target: string): string | undefined { const names = ["manifest.json", "LICENSE", ...Object.keys(manifest.files)]; const unsafe = names.find( - (name) => name === "" || name === "." || name === ".." || /[/\\]/.test(name), + (name) => + name === "" || name === "." || name === ".." || /[/\\\0]/.test(name) || isAbsolute(name), ); if (unsafe !== undefined) return `the libnode pack at ${source} lists a file outside the pack ('${unsafe}')`; @@ -99,19 +103,30 @@ function placeBeside(source: string, manifest: PackManifest, target: string): st const to = realpathOr(target); if (from === to || from.startsWith(to + sep) || to.startsWith(from + sep)) return `--libnode=beside would replace the libnode pack it copies (${source}); point SCRIPTC_LIBNODE at a pack outside ${target}`; - rmSync(target, { recursive: true, force: true }); - mkdirSync(target, { recursive: true }); + const present: string[] = []; for (const name of names) { - const file = join(source, name); + let info; try { - statSync(file); + info = lstatSync(join(source, name)); } catch { continue; } + if (!info.isFile()) + return `the libnode pack at ${source} holds ${name} as a ${info.isSymbolicLink() ? "symbolic link" : "non-regular file"}; pack files must be regular files`; + present.push(name); + } + rmSync(target, { recursive: true, force: true }); + mkdirSync(target, { recursive: true }); + const inside = resolve(target) + sep; + for (const name of present) { + const destination = resolve(target, name); + if (!destination.startsWith(inside)) + return `the libnode pack at ${source} lists a file outside the pack ('${name}')`; + const file = join(source, name); try { - linkSync(file, join(target, name)); + linkSync(file, destination); } catch { - copyFileSync(file, join(target, name)); + copyFileSync(file, destination, constants.COPYFILE_EXCL); } } return undefined; @@ -137,7 +152,8 @@ export function libnodeTarget(env: NodeJS.ProcessEnv = process.env): string { function installedPackProblem(dir: string, packageName: string): string | null { let pack: LibnodePack; try { - pack = readLibnodePack(dir, { packageName }); + // An installed pack is found, not named: check its files' digests too. + pack = readLibnodePack(dir, { packageName, verifyHashes: true }); } catch (error) { return error instanceof LibnodePackError ? error.message : String(error); } diff --git a/packages/compiler/src/node-islands/modules.test.ts b/packages/compiler/src/node-islands/modules.test.ts index 6badf376a..63201e1e0 100644 --- a/packages/compiler/src/node-islands/modules.test.ts +++ b/packages/compiler/src/node-islands/modules.test.ts @@ -167,6 +167,33 @@ describe("the collected module tree", () => { ]); }); + test("a require through a linked directory keeps the link in the tree", () => { + const root = project({ + "src/main.ts": "", + "src/entry.cjs": "module.exports = require('./lib/x.cjs');", + "shared/x.cjs": "exports.x = 1;", + }); + symlinkSync("../shared", join(root, "src/lib")); + const collector = new NodeIslandModuleCollector(); + expect(collector.add(join(root, "src/main.ts"), "./entry.cjs")).toBeNull(); + const tree = collector.tree()!; + expect(tree.links).toEqual([{ path: "src/lib", target: "../shared" }]); + expect(tree.files.map((f) => f.path)).toEqual(["shared/x.cjs", "src/entry.cjs"]); + }); + + test("an absolute specifier names the shipped file relative to its caller", () => { + const root = project({ "src/main.ts": "", "lib/m.cjs": "" }); + const collector = new NodeIslandModuleCollector(); + const target = collector.resolvedPath(join(root, "src/main.ts"), join(root, "lib/m.cjs"))!; + expect(target).toBe(join(root, "lib/m.cjs")); + expect(NodeIslandModuleCollector.relativeSpecifier(join(root, "src/main.ts"), target)).toBe( + "../lib/m.cjs", + ); + expect( + NodeIslandModuleCollector.relativeSpecifier(join(root, "main.ts"), join(root, "m.cjs")), + ).toBe("./m.cjs"); + }); + test("built-in modules alone ship no tree", () => { const root = project({ "main.ts": "" }); const collector = new NodeIslandModuleCollector(); diff --git a/packages/compiler/src/node-islands/modules.ts b/packages/compiler/src/node-islands/modules.ts index 0d63dc333..e1551c070 100644 --- a/packages/compiler/src/node-islands/modules.ts +++ b/packages/compiler/src/node-islands/modules.ts @@ -211,14 +211,34 @@ export class NodeIslandModuleCollector { return null; } - /** The real path of `path`, recording a link when `path` itself (not an - * ancestor) is a symbolic link. */ + /** The real path of `path`, recording a link for each component of it + * that is a symbolic link (a linked directory on the way, or the file + * itself), so that the path resolves inside the tree as it does here. */ private placed(path: string): string { - const target = trackedRealpath(path) ?? path; - const parent = trackedRealpath(dirname(path)) ?? dirname(path); - const link = join(parent, basename(path)); - if (link !== target) this.links.set(link, target); - return target; + let real: string = sep; + for (const part of resolve(path).split(sep)) { + if (part === "") continue; + const lexical = join(real, part); + const target = trackedRealpath(lexical) ?? lexical; + if (target !== lexical) this.links.set(lexical, target); + real = target; + } + return real; + } + + /** The real path of the file an absolute or relative `specifier` names + * from `fromFile`, or null when there is none. */ + resolvedPath(fromFile: string, specifier: string): string | null { + if (!isPathSpecifier(specifier)) return null; + const target = resolveFile(resolve(dirname(fromFile), specifier)); + return target === null ? null : (trackedRealpath(target) ?? target); + } + + /** A specifier that names `target` from `caller` inside the tree: the + * relative path between them, with `/` separators. */ + static relativeSpecifier(caller: string, target: string): string { + const path = portable(relative(dirname(caller), target)); + return path.startsWith("../") ? path : `./${path}`; } /** A module of the program: collected with the package.json that scopes @@ -609,17 +629,29 @@ export function placeNodeIslandModules( ): string | null { const data = readNodeIslandModules(modules); if (typeof data === "string") return data; + // Every path, and every link's target, stays inside the tree. + const inside = resolve(target) + sep; + const placed = (relativePath: string): string | null => { + const path = resolve(target, ...relativePath.split("/")); + return path.startsWith(inside) ? path : null; + }; + for (const entry of [...modules.files, ...modules.links]) { + const path = placed(entry.path); + if (path === null) return `the island module tree names a path outside it ('${entry.path}')`; + if ("target" in entry && !resolve(dirname(path), entry.target).startsWith(inside)) + return `the island module tree links outside it ('${entry.path}' to '${entry.target}')`; + } rmSync(target, { recursive: true, force: true }); mkdirSync(target, { recursive: true }); let offset = 0; for (const file of modules.files) { - const path = join(target, ...file.path.split("/")); + const path = placed(file.path)!; mkdirSync(dirname(path), { recursive: true }); - writeFileSync(path, data.subarray(offset, offset + file.size)); + writeFileSync(path, data.subarray(offset, offset + file.size), { flag: "wx" }); offset += file.size; } for (const link of modules.links) { - const path = join(target, ...link.path.split("/")); + const path = placed(link.path)!; mkdirSync(dirname(path), { recursive: true }); symlinkSync(link.target, path); } diff --git a/packages/libnode-common/smoke/smoke.c b/packages/libnode-common/smoke/smoke.c index cf09bd149..bf51ccfc8 100644 --- a/packages/libnode-common/smoke/smoke.c +++ b/packages/libnode-common/smoke/smoke.c @@ -28,7 +28,8 @@ /* The bootstrap runs as the environment's main script. It hands the bridge * a dispatcher that evaluates `name` as an expression and answers the * bridge's outcome strings: "R" when it returns, "T" when it - * throws; an asynchronous call settles through the host. */ + * throws; an asynchronous call settles through the host. Its `finish` is + * the program end the bridge reports, which the smoke test does not use. */ static const char kBootstrap[] = "const host = globalThis.__scriptcNodeIslandHost;\n" "globalThis.require = require;\n" @@ -42,6 +43,7 @@ static const char kBootstrap[] = " Promise.resolve(value).then((v) => host.settle(id, outcome(true, v)),\n" " (e) => host.settle(id, outcome(false, e)));\n" " },\n" + " finish(code) {},\n" "};\n"; static double now_ms(void) { diff --git a/tests/corpus/7662-node-call-exit-events/main.ts b/tests/corpus/7662-node-call-exit-events/main.ts index 909550588..15bb6ad5d 100644 --- a/tests/corpus/7662-node-call-exit-events/main.ts +++ b/tests/corpus/7662-node-call-exit-events/main.ts @@ -1,3 +1,4 @@ +// @exit: 4 // @requires-libnode // The program and the Node.js it loads end as one process: Node's // 'beforeExit' and 'exit' run when the program ends, work that 'beforeExit' From f0da37fa423971fcee011da2aa66137975c294c5 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Fri, 23 Oct 2026 19:52:48 -0500 Subject: [PATCH 003/128] Compile classes that extend Array A class declared `extends Array` (or `extends Array`) was refused with "extending classes not declared in the program ('Array')", which blocked lru-cache at module load. An instance is now an array of the class's element type: its struct begins with the runtime's array header, whose reference count it shares, and the class's own fields follow it. The class's TypeScript type maps to its element array type, so every array operation applies to an instance, and passing it where an array is expected passes the same object. The class's own fields, methods, accessors and statics read the array as the class object. super() follows the Array constructor: one number argument sets the length (a RangeError for an invalid one), other arguments become the elements, and the implicit constructor forwards its arguments the same way. The runtime finds the class through the array's ext (ScrArrClass: name, destroy, the own fields, the species constructor), so instanceof the class (or a binding that holds it) works on static, array-typed and dyn values, util.inspect prints `Name(length) [ ..., field: value ]`, Object.keys lists the own fields, and a release through any array path reaches the class's teardown. Instances whose elements or fields can form cycles carry the collector header and are traced. map, filter, slice, splice, concat, flat and flatMap construct their result through the class as ArraySpeciesCreate does: `new C(length)` with the specification's argument, then the elements, then the length where the specification sets it. A map to another element type retypes the new instance when its constructor added no elements. Array.of and Array.from called on the class construct through it. Programs that declare no Array subclass compile as before. A generic subclass, a subclass of such a class and `static [Symbol.species]` are refused at compile time; a species result the class's constructor cannot construct throws a TypeError. String() of an array with checked-dynamic elements now uses the runtime's String() instead of being refused. Corpus 7720-7726, diagnostics fixture array-subclass-fences.ts. --- docs/content/docs/limitations.mdx | 2 + .../array-subclasses.mdx | 3 + .../compiler/src/backend/cycle-analysis.ts | 4 + packages/compiler/src/backend/llvm/classes.ts | 135 +++- .../compiler/src/backend/llvm/expr-calls.ts | 12 + .../compiler/src/backend/llvm/lib-dispatch.ts | 48 ++ .../compiler/src/backend/llvm/lib-shared.ts | 5 + packages/compiler/src/backend/llvm/shapes.ts | 45 +- .../lowering/builtins/array-classes.ts | 610 ++++++++++++++++++ .../lowering/containers/array-construction.ts | 9 +- .../frontend/lowering/expressions/binary.ts | 6 + .../lowering/expressions/property-access.ts | 32 + .../lowering/expressions/relational.ts | 3 + .../src/frontend/lowering/lower-calls.ts | 18 + .../src/frontend/lowering/lower-classes.ts | 55 +- .../src/frontend/lowering/lower-exprs.ts | 42 +- .../src/frontend/lowering/lower-modules.ts | 6 + .../compiler/src/frontend/lowering/lowerer.ts | 41 +- packages/compiler/src/frontend/type-mapper.ts | 36 ++ .../compiler/src/ir/builtin-signatures.ts | 17 + .../src/ir/function-references.test.ts | 10 + .../compiler/src/ir/function-references.ts | 2 + packages/compiler/src/ir/ir.ts | 11 + packages/compiler/src/ir/traverse.ts | 1 + packages/compiler/src/ir/validate.ts | 43 ++ .../corpus/7720-array-subclass-basics.ts.json | 6 + .../7721-array-subclass-species.ts.json | 6 + .../7722-array-subclass-zero-array.js.json | 6 + .../7723-array-subclass-as-array.ts.json | 6 + .../corpus/7724-array-subclass-cycles.ts.json | 6 + .../7725-array-subclass-operations.ts.json | 6 + .../7726-array-subclass-expressions.js.json | 6 + .../diagnostics/array-subclass-fences.ts.json | 6 + packages/runtime/src/scr_array.c | 242 ++++++- packages/runtime/src/scr_array.h | 58 ++ packages/runtime/src/scr_inspect.c | 26 +- tests/corpus/7720-array-subclass-basics.ts | 44 ++ tests/corpus/7721-array-subclass-species.ts | 37 ++ .../corpus/7722-array-subclass-zero-array.js | 16 + tests/corpus/7723-array-subclass-as-array.ts | 21 + tests/corpus/7724-array-subclass-cycles.ts | 36 ++ .../corpus/7725-array-subclass-operations.ts | 46 ++ .../corpus/7726-array-subclass-expressions.js | 21 + tests/diagnostics/array-subclass-fences.ts | 21 + .../array-subclass-fences.ts.txt | 41 ++ .../7720-array-subclass-basics.ts.json | 1 + .../7721-array-subclass-species.ts.json | 1 + .../7722-array-subclass-zero-array.js.json | 1 + .../7723-array-subclass-as-array.ts.json | 1 + .../7724-array-subclass-cycles.ts.json | 1 + .../7725-array-subclass-operations.ts.json | 1 + .../7726-array-subclass-expressions.js.json | 1 + 52 files changed, 1818 insertions(+), 42 deletions(-) create mode 100644 docs/content/limitations/types-and-class-definitions/array-subclasses.mdx create mode 100644 packages/compiler/src/frontend/lowering/builtins/array-classes.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7720-array-subclass-basics.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7721-array-subclass-species.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7722-array-subclass-zero-array.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7723-array-subclass-as-array.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7724-array-subclass-cycles.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7725-array-subclass-operations.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7726-array-subclass-expressions.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/array-subclass-fences.ts.json create mode 100644 tests/corpus/7720-array-subclass-basics.ts create mode 100644 tests/corpus/7721-array-subclass-species.ts create mode 100644 tests/corpus/7722-array-subclass-zero-array.js create mode 100644 tests/corpus/7723-array-subclass-as-array.ts create mode 100644 tests/corpus/7724-array-subclass-cycles.ts create mode 100644 tests/corpus/7725-array-subclass-operations.ts create mode 100644 tests/corpus/7726-array-subclass-expressions.js create mode 100644 tests/diagnostics/array-subclass-fences.ts create mode 100644 tests/harness/__snapshots__/array-subclass-fences.ts.txt create mode 100644 tests/harness/corpus-costs/7720-array-subclass-basics.ts.json create mode 100644 tests/harness/corpus-costs/7721-array-subclass-species.ts.json create mode 100644 tests/harness/corpus-costs/7722-array-subclass-zero-array.js.json create mode 100644 tests/harness/corpus-costs/7723-array-subclass-as-array.ts.json create mode 100644 tests/harness/corpus-costs/7724-array-subclass-cycles.ts.json create mode 100644 tests/harness/corpus-costs/7725-array-subclass-operations.ts.json create mode 100644 tests/harness/corpus-costs/7726-array-subclass-expressions.js.json diff --git a/docs/content/docs/limitations.mdx b/docs/content/docs/limitations.mdx index a86ed217e..862e49b12 100644 --- a/docs/content/docs/limitations.mdx +++ b/docs/content/docs/limitations.mdx @@ -52,6 +52,8 @@ title: "Limitations" ../limitations/types-and-class-definitions/static-field-updates.mdx +../limitations/types-and-class-definitions/array-subclasses.mdx + ../limitations/types-and-class-definitions/local-class-expressions.mdx ../limitations/types-and-class-definitions/constructor-function-inheritance.mdx diff --git a/docs/content/limitations/types-and-class-definitions/array-subclasses.mdx b/docs/content/limitations/types-and-class-definitions/array-subclasses.mdx new file mode 100644 index 000000000..ea76e7313 --- /dev/null +++ b/docs/content/limitations/types-and-class-definitions/array-subclasses.mdx @@ -0,0 +1,3 @@ +- **Array subclasses:** A class that extends `Array` compiles: its instances are arrays, and `map`, `filter`, `slice` and the other methods that create arrays return instances of the subclass, as in Node.js. + A generic subclass (`class Bag extends Array`), a class that extends such a subclass, and a subclass that declares `Symbol.species` are unsupported. + A method whose result the subclass's constructor cannot construct throws a `TypeError`: the constructor's parameters must take the one length argument, and a `map` to another element type needs a constructor that adds no elements. diff --git a/packages/compiler/src/backend/cycle-analysis.ts b/packages/compiler/src/backend/cycle-analysis.ts index fbd96e854..b03979bd9 100644 --- a/packages/compiler/src/backend/cycle-analysis.ts +++ b/packages/compiler/src/backend/cycle-analysis.ts @@ -146,6 +146,10 @@ function analyzeCycles( ...(c.localCaptures !== undefined ? [{ name: "", type: { kind: "classval" as const, className: c.name } }] : []), + // An instance of a class that extends Array holds its elements. + ...(c.arrayElem !== undefined + ? [{ name: "", type: { kind: "array" as const, elem: c.arrayElem } }] + : []), ], })), ...(mod.records ?? []).map((r) => ({ diff --git a/packages/compiler/src/backend/llvm/classes.ts b/packages/compiler/src/backend/llvm/classes.ts index 82e34de90..d848b86fc 100644 --- a/packages/compiler/src/backend/llvm/classes.ts +++ b/packages/compiler/src/backend/llvm/classes.ts @@ -58,6 +58,7 @@ import { traceAdapter, type ShapeHost, youngEntryLines, + arrElemInit, } from "./shapes.js"; /** One virtual method slot of a hierarchy: the ROOT-MOST declaring class @@ -371,11 +372,34 @@ function runtimePrefixOf(meta: LlClassMeta): RuntimePrefix | null { * on classes rooted at a runtime base, then the stream-state slot on * stream-rooted ones. */ function headerEnd(meta: LlClassMeta): number { + if (meta.def.arrayElem !== undefined) return ARRAY_PREFIX.length + 1; if (!meta.hierarchy || meta.idInRc) return 1; if (streamRooted(meta)) return 5; return runtimePrefixOf(meta) ? 4 : 2; } +/** The array header a class declared `extends Array` begins with, after + * the size_t reference count: %ScrArr's len, cap, elem, cyc, spare, filled + * and data (scr_array.h). */ +const ARRAY_PREFIX = ["i32", "i32", "i8", "i8", "i16", "i32", "ptr"]; + +/** LLVM `c"..."` text of a string's UTF-8 bytes and a terminating NUL. */ +function nulTerminatedBytes(text: string): string { + let out = ""; + for (const byte of Buffer.from(text, "utf8")) + out += + byte >= 0x20 && byte < 0x7f && byte !== 0x22 && byte !== 0x5c + ? String.fromCharCode(byte) + : `\\${byte.toString(16).padStart(2, "0").toUpperCase()}`; + return out + "\\00"; +} + +/** The class descriptor (ScrArrClass: name, destroy) of a class declared + * `extends Array`. */ +export function arrayClassDescriptor(className: string): string { + return `@${mangleClassStruct(className)}.arrcls`; +} + /** The GEP index of the ThreadSlots slot word (an i32) in a class whose * hierarchy holds ThreadSlots keys: right after the header words, so every * member of the hierarchy has it at the same offset. */ @@ -473,7 +497,11 @@ export interface ClassHost extends ShapeHost { * hierarchy folds away. The cycle analysis leaves the hierarchy untraced, so * no trace adapter ever visits an instance (as for every untraced class). */ export function programLifetimeClass(host: ClassHost, meta: LlClassMeta): boolean { - return host.programLifetime?.has(meta.root.def.name) === true && meta.root.def.runtime !== true; + return ( + host.programLifetime?.has(meta.root.def.name) === true && + meta.root.def.runtime !== true && + meta.root.def.arrayElem === undefined + ); } /** The reference count a program-lifetime instance is created with: the @@ -725,7 +753,12 @@ export function assignCompactLayouts( ): void { const isCompact = (className: string): boolean => { const target = metaMap.get(className); - return target !== undefined && target.def.runtime !== true && compact(target.root); + return ( + target !== undefined && + target.def.runtime !== true && + target.root.def.arrayElem === undefined && + compact(target.root) + ); }; const byPre = [...metaMap.values()].sort((a, b) => a.pre - b.pre); for (const meta of byPre) { @@ -900,13 +933,15 @@ export function emitClassShapes( // usual pointer reinterprets. const runtimePrefix = runtimePrefixOf(meta); const prefix = - meta.hierarchy && !meta.idInRc - ? streamRooted(meta) - ? ["ptr", "ptr", "ptr", "ptr"] - : runtimePrefix - ? ["ptr", "ptr", "ptr"] - : ["ptr"] - : []; + cls.arrayElem !== undefined + ? ARRAY_PREFIX + : meta.hierarchy && !meta.idInRc + ? streamRooted(meta) + ? ["ptr", "ptr", "ptr", "ptr"] + : runtimePrefix + ? ["ptr", "ptr", "ptr"] + : ["ptr"] + : []; const members = [...prefix, ...(meta.threadSlot ? ["i32"] : []), ...fieldTys]; typeDefs.push( `%${mangleClassStruct(cls.name)} = type { ${host.sizeType}${members.length ? ", " + members.join(", ") : ""} } ` + @@ -993,6 +1028,7 @@ export function emitClassShapes( const types = ownedFields(cls).map(({ field }) => storedFieldType(cls, field)); for (const t of types) fieldTypes.push(t); if (programLifetimeClass(host, meta)) continue; + if (cls.arrayElem !== undefined) continue; if (meta.hierarchy && (meta.children.length !== 0 || meta.root.def.runtime === true)) continue; if (!types.some((t) => isRefCounted(t) && needsBoundedRelease(t))) continue; const release = mangleClassRelease(cls.name); @@ -1009,6 +1045,12 @@ export function emitClassShapes( } const directTargets = usedDirectTargets(host, candidates, fieldTypes); + // The descriptor entries of a class declared `extends Array`: a helper + // the module defines, or null (a class that is never constructed has + // neither). + const defined = new Set(mod.functions.map((fn) => fn.name)); + const arrayClassFn = (name: string | undefined): string => + name !== undefined && defined.has(name) ? `@${mangleFunction(name)}` : "null"; for (const cls of emitted) { const meta = metaMap.get(cls.name)!; const struct = mangleClassStruct(cls.name); @@ -1090,6 +1132,7 @@ export function emitClassShapes( const destroy = `${meta.hierarchy ? mangleClassReleaseDirect(cls.name) : mangleClassRelease(cls.name)}_destroy`; const segmented = chained && + cls.arrayElem === undefined && !meta.compact && runtimePrefix === null && !isStreamRooted && @@ -1105,7 +1148,12 @@ export function emitClassShapes( // members). Runs at rc == 0. const teardown = (lines: string[]): void => { const release = (prefix: string, f: (typeof refFields)[number], t: number): string[] => { - const direct = bounded ? directDestroyTarget(host, f.type, directTargets) : null; + // An Array subclass instance's destroy releases its fields plainly + // (it takes no chain length). + const direct = + bounded && cls.arrayElem === undefined + ? directDestroyTarget(host, f.type, directTargets) + : null; if (direct === null) return [ ` call void ${releaseSym(host, f.type)}(ptr %v${t}) ; ${llvmCommentText(f.name)}`, @@ -1236,6 +1284,45 @@ export function emitClassShapes( reld.push(`done:`, ` ret void`, `}`, ``); defs.push(...reld); } + } else if (cls.arrayElem !== undefined) { + // An instance is an array: its release is the array's, which reaches + // the class's destroy (the descriptor's) when the count reaches zero. + host.declare(`declare void @scr_arr_release(ptr)`); + host.declare(`declare void @scr_arr_subclass_drop(ptr)`); + const destroy = `${mangleClassRelease(cls.name)}.arrdestroy`; + const destroyBody: string[] = [ + `define internal void @${destroy}(ptr %o) ${FN_ATTRS} { ; destroy ${cls.name} (an Array subclass instance)`, + `entry:`, + ]; + const fieldsTeardown: string[] = []; + teardown(fieldsTeardown); + const free = emitObjectFree(host, traced); + destroyBody.push( + ...fieldsTeardown.slice(0, fieldsTeardown.length - free.length), + ` call void @scr_arr_subclass_drop(ptr %o)`, + ...free, + ` ret void`, + `}`, + ``, + ); + const displayName = cls.name.includes(".") + ? cls.name.slice(cls.name.lastIndexOf(".") + 1) + : cls.name; + const jsName = cls.jsName ?? displayName; + defs.push( + ...destroyBody, + // The name is the class's own copy: its address identifies the + // class in dyn snapshots of an instance (scr_arr_copy_metadata). + `${arrayClassDescriptor(cls.name)}.name = private constant [${Buffer.byteLength(jsName, "utf8") + 1} x i8] c"${nulTerminatedBytes(jsName)}"`, + `${arrayClassDescriptor(cls.name)} = internal constant { ptr, ptr, ptr, ptr } { ptr ${arrayClassDescriptor(cls.name)}.name, ptr @${destroy}, ptr ${arrayClassFn(cls.arrayFields)}, ptr ${arrayClassFn(cls.arraySpecies)} }`, + ``, + `define internal void @${mangleClassRelease(cls.name)}(ptr %o) ${FN_ATTRS} { ; release ${cls.name} (the array's)`, + `entry:`, + ` call void @scr_arr_release(ptr %o)`, + ` ret void`, + `}`, + ``, + ); } else { const freeBody: string[] = []; teardown(freeBody); @@ -1323,6 +1410,13 @@ export function emitClassShapes( nw.push( ` store ${host.sizeType} ${lifetime ? programLifetimeRc(host.sizeType) : 1}, ptr %o`, ); + if (cls.arrayElem !== undefined) { + const init = arrElemInit(host, cls.arrayElem); + host.declare(`declare void @scr_arr_subclass_init(ptr, i8, ptr, ptr, i1 zeroext)`); + nw.push( + ` call void @scr_arr_subclass_init(ptr %o, i8 ${init.kind}, ptr ${init.ops}, ptr ${arrayClassDescriptor(cls.name)}, i1 ${traced})`, + ); + } if (lifetime && audit) { // --sanitize builds: the RC audit skips its leak report when the // program keeps program-lifetime objects (scr_console.c), and @@ -1359,7 +1453,12 @@ export function emitClassShapes( // Young instances: program-owned traced classes. Classes rooted at a // runtime base (errors, emitters, events, streams) carry runtime state // and stay with trial deletion, like every runtime family. - if (traced && !lifetime && (!meta.hierarchy || meta.root.def.runtime !== true)) + if ( + traced && + !lifetime && + (!meta.hierarchy || meta.root.def.runtime !== true) && + cls.arrayElem === undefined + ) nw.push(...youngEntryLines(host)); nw.push(` ret ptr ${meta.hierarchy ? "%o.vt" : "%o"}`, `}`, ``); defs.push(...nw); @@ -1382,6 +1481,14 @@ export function emitClassShapes( tracedFields.forEach((f, i) => { tr.push(...traceFieldVisitLines(struct, f.index, i, llvmCommentText(f.name))); }); + // An Array subclass instance's elements, when they are cycle-capable. + const tracedElements = + cls.arrayElem !== undefined && + traceAdapter(host, { kind: "array", elem: cls.arrayElem }) !== null; + if (tracedElements) { + host.declare(`declare void @scr_arr_trace_v(ptr, ptr, ptr)`); + tr.push(` call void @scr_arr_trace_v(ptr %o, ptr %visit, ptr %ctx) ; the elements`); + } tr.push(` ret void`, `}`, ``); defs.push(...tr); @@ -1399,6 +1506,12 @@ export function emitClassShapes( ); }); if (meta.threadSlot) gf.push(...slotForgetLines(host, struct, meta, "gfw")); + if (cls.arrayElem !== undefined) { + // The elements: traced ones are the collector's, the others are + // released with the storage. + host.declare(`declare void @scr_arr_subclass_gc_drop(ptr, i1 zeroext)`); + gf.push(` call void @scr_arr_subclass_gc_drop(ptr %o, i1 ${tracedElements})`); + } gf.push(...emitObjectFree(host, true), ` ret void`, `}`, ``); defs.push(...gf); } diff --git a/packages/compiler/src/backend/llvm/expr-calls.ts b/packages/compiler/src/backend/llvm/expr-calls.ts index 6ff52619e..5a16dabf3 100644 --- a/packages/compiler/src/backend/llvm/expr-calls.ts +++ b/packages/compiler/src/backend/llvm/expr-calls.ts @@ -1,4 +1,5 @@ /* Focused LLVM expression emission extracted from emitter.ts. */ +import { arrayClassDescriptor } from "./classes.js"; import { InternalCompilerError } from "../../errors.js"; import { newValueMayThrow } from "../../ir/analysis.js"; import { @@ -1154,6 +1155,17 @@ export function emitCallExpr( return host.own({ name: v.name, type: e.type }); } case "instanceOf": { + // An array is an instance of a class declared `extends Array` when + // its ext names that class (scr_arr_class_of). + if (e.value.type.kind === "array") { + const v = emitBorrowedInputs(host, [e.value])[0]!; + host.declare(`declare ptr @scr_arr_class_of(ptr)`); + const cls = host.B.tmp(); + const result = host.B.tmp(); + host.B.line(`${cls} = call ptr @scr_arr_class_of(ptr ${v.name})`); + host.B.line(`${result} = icmp eq ptr ${cls}, ${arrayClassDescriptor(e.className)}`); + return { name: result, type: e.type }; + } // O(1) preorder-interval test against the vtable the object // carries; the target's interval is a compile-time constant. if (e.value.type.kind !== "object") diff --git a/packages/compiler/src/backend/llvm/lib-dispatch.ts b/packages/compiler/src/backend/llvm/lib-dispatch.ts index 9cd11feb1..06ac8aa0e 100644 --- a/packages/compiler/src/backend/llvm/lib-dispatch.ts +++ b/packages/compiler/src/backend/llvm/lib-dispatch.ts @@ -1,3 +1,4 @@ +import { arrayClassDescriptor } from "./classes.js"; import { emitBigIntWrap } from "./bigint-wrap.js"; import { emitBorrowedInput, emitBorrowedInputs } from "./borrowed-inputs.js"; import { borrowsIteratorInputs, borrowsJsonInputs } from "./checked-value-lifetimes.js"; @@ -276,6 +277,53 @@ export function emitGenericLibCall(host: LlvmEmitterContext, e: LibCallExpr): Ll host.dyn.emitRecordSourceSpread(B, built.name, value.name, type.shapeId); return { name: "", type: e.type }; } + if (e.fn === "array.speciesAdopt") { + // The receiver is borrowed; the method's result moves into the call, + // which answers it or the species instance that replaces it. + const receiver = emitBorrowedInput(host, e.args[0]!); + const result = host.emitExpr(e.args[1]!); + host.toHeap(result); + const length = host.emitExpr(e.args[2]!); + const setLength = host.emitExpr(e.args[3]!); + host.declare(`declare ptr @scr_arr_species_adopt(ptr, ptr, double, i1 zeroext)`); + const out = B.tmp(); + B.line( + `${out} = call ptr @scr_arr_species_adopt(ptr ${receiver.name}, ptr ${result.name}, double ${length.name}, i1 zeroext ${setLength.name})`, + ); + const value = host.own({ name: out, type: e.type }); + host.emitPendingCheck(); + return value; + } + if (e.fn === "array.dynIsClass") { + const className = e.args[1]!.kind === "strLit" ? e.args[1]!.value : null; + if (className === null) + throw new InternalCompilerError("llvm emitter bug: array.dynIsClass needs a class name"); + const value = emitBorrowedInput(host, e.args[0]!); + host.declare(`declare zeroext i1 @scr_dyn_is_array_class(ptr, ptr)`); + const out = B.tmp(); + B.line( + `${out} = call zeroext i1 @scr_dyn_is_array_class(ptr ${value.name}, ptr ${arrayClassDescriptor(className)})`, + ); + return { name: out, type: e.type }; + } + if (e.fn === "array.classConstructAdopt") { + const className = e.args[0]!.kind === "strLit" ? e.args[0]!.value : null; + if (className === null) + throw new InternalCompilerError( + "llvm emitter bug: array.classConstructAdopt needs a class name", + ); + const result = host.emitExpr(e.args[1]!); + host.toHeap(result); + const length = host.emitExpr(e.args[2]!); + host.declare(`declare ptr @scr_arr_class_construct_adopt(ptr, ptr, double)`); + const out = B.tmp(); + B.line( + `${out} = call ptr @scr_arr_class_construct_adopt(ptr ${arrayClassDescriptor(className)}, ptr ${result.name}, double ${length.name})`, + ); + const value = host.own({ name: out, type: e.type }); + host.emitPendingCheck(); + return value; + } if (e.fn === "dyn.typedRefIs" || e.fn === "dyn.typedRefKeyIs") { const literal = e.args[1]!.kind === "strLit" ? e.args[1]!.value : null; if (e.fn === "dyn.typedRefKeyIs" && literal === null) diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index c9b125cd7..c706fb187 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -1348,6 +1348,11 @@ export const LIB_FN_SYMS: Record = { "http.reqPipeSock": "scr_http_req_pipe_sock", "http.reqResume": "scr_http_req_resume", "http.reqPause": "scr_http_req_pause", + "array.subclassConstruct": "scr_arr_subclass_construct", + "array.subclassConstructDyn": "scr_arr_subclass_construct_dyn", + "array.speciesAdopt": "scr_arr_species_adopt", + "array.classConstructAdopt": "scr_arr_class_construct_adopt", + "array.dynIsClass": "scr_dyn_is_array_class", "http.reqDestroy": "scr_http_req_destroy", "http.reqSetEncoding": "scr_http_req_set_encoding", "http.resSetHeader": "scr_http_res_set_header", diff --git a/packages/compiler/src/backend/llvm/shapes.ts b/packages/compiler/src/backend/llvm/shapes.ts index b3f5084d3..08d0db9b4 100644 --- a/packages/compiler/src/backend/llvm/shapes.ts +++ b/packages/compiler/src/backend/llvm/shapes.ts @@ -1084,7 +1084,33 @@ export function arrNewCall( * live in its own block): capText must be "0". */ small = false, ): string { - const useRef = + const useRef = arrUsesRef(host, elem); + if (!useRef) { + if (small) { + host.declare(`declare ptr @scr_arr_new_small(i32)`); + return `call ptr @scr_arr_new_small(i32 ${elemKindNum(elem)})`; + } + host.declare(`declare ptr @scr_arr_new(i32, ${host.sizeType})`); + return `call ptr @scr_arr_new(i32 ${elemKindNum(elem)}, ${host.sizeType} ${capText})`; + } + if (small) { + host.declare(`declare ptr @scr_arr_new_ops_small(ptr)`); + return `call ptr @scr_arr_new_ops_small(ptr ${arrOps(host, elem)})`; + } + host.declare(`declare ptr @scr_arr_new_ops(ptr, ${host.sizeType})`); + return `call ptr @scr_arr_new_ops(ptr ${arrOps(host, elem)}, ${host.sizeType} ${capText})`; +} + +/** The ScrElemKind and ops descriptor (or `null`) an array of `elem` + * starts with: the arrays arrNewCall constructs, for the instances of a + * class that extends Array (scr_arr_subclass_init). */ +export function arrElemInit(host: ShapeHost, elem: IrType): { kind: number; ops: string } { + if (!arrUsesRef(host, elem)) return { kind: elemKindNum(elem), ops: "null" }; + return { kind: host.compactArrayElem?.(elem) === true ? 6 : 5, ops: arrOps(host, elem) }; +} + +function arrUsesRef(host: ShapeHost, elem: IrType): boolean { + return ( elem.kind === "record" || elem.kind === "object" || elem.kind === "union" || @@ -1101,21 +1127,8 @@ export function arrNewCall( elem.kind === "dyn" || // native collection seeds/drains: traced REF elem.kind === "regex" || // RegExp values: scr_regex_* adapters, no trace (no refs inside) elem.kind === "date" || // Date objects: scr_date_* adapters, no trace (no refs inside) - (elem.kind === "array" && traceAdapter(host, elem) !== null); - if (!useRef) { - if (small) { - host.declare(`declare ptr @scr_arr_new_small(i32)`); - return `call ptr @scr_arr_new_small(i32 ${elemKindNum(elem)})`; - } - host.declare(`declare ptr @scr_arr_new(i32, ${host.sizeType})`); - return `call ptr @scr_arr_new(i32 ${elemKindNum(elem)}, ${host.sizeType} ${capText})`; - } - if (small) { - host.declare(`declare ptr @scr_arr_new_ops_small(ptr)`); - return `call ptr @scr_arr_new_ops_small(ptr ${arrOps(host, elem)})`; - } - host.declare(`declare ptr @scr_arr_new_ops(ptr, ${host.sizeType})`); - return `call ptr @scr_arr_new_ops(ptr ${arrOps(host, elem)}, ${host.sizeType} ${capText})`; + (elem.kind === "array" && traceAdapter(host, elem) !== null) + ); } /** The %ScrArrOps descriptor (retain, release, trace, registry id) of a REF diff --git a/packages/compiler/src/frontend/lowering/builtins/array-classes.ts b/packages/compiler/src/frontend/lowering/builtins/array-classes.ts new file mode 100644 index 000000000..0136eca08 --- /dev/null +++ b/packages/compiler/src/frontend/lowering/builtins/array-classes.ts @@ -0,0 +1,610 @@ +/* Classes declared `extends Array`. An instance is an array of the class's + * element type: its struct begins with the runtime's array header (the + * reference count is the array's) and the class's own fields follow it, so + * every array operation applies to the instance unchanged and passing it + * where a plain array is expected passes the same object. The class's + * TypeScript type maps to its element array type; the class's own members, + * construction and `instanceof` view the array as the class object + * (arrayClassView). */ +import * as ts from "../../ts7/adapter.js"; +import { type Lowerer } from "../lowerer.js"; +import { isJsSourceFile, locOf } from "../../program.js"; +import { stripTypeWrappers } from "../typed-arguments.js"; +import { dynUndefinedExpr, nodeThrowExpr } from "../../../ir/build.js"; +import { lowerArrayFromCall, lowerArrayOfCall } from "../containers/array-construction.js"; +import { storedClassValueType, type ClassInfo } from "../lower-classes.js"; +import { + BOOL, + DYN, + F64, + STRING, + UNDEFINED_T, + arrayOf, + type IrExpr, + type IrFunction, + type IrLocal, + type IrStmt, + type IrType, + type SrcLoc, +} from "../../../ir/ir.js"; + +/** The element type of `class X extends Array` (`extends Array` in + * JavaScript reads `any[]`, whose elements are checked-dynamic). */ +export function arrayClassBase( + lowerer: Lowerer, + heritage: ts.ExpressionWithTypeArguments, +): { elem: IrType } { + const mapped = lowerer.mapTypeOf(lowerer.checker.getTypeAtLocation(heritage)); + // `extends Array` in JavaScript reads `any[]`: dyn elements. + if (isJsSourceFile(ts.getSourceFileOfNode(heritage)) && mapped?.kind !== "array") + return { elem: DYN }; + if (mapped?.kind !== "array") + lowerer.unsupported( + "SC1090", + heritage, + "extending Array with an element type that does not compile", + ); + return { elem: mapped!.kind === "array" ? mapped!.elem : DYN }; +} + +/** The class declared `extends Array` at the root of `info`'s chain, or null. */ +export function arrayRootOf(info: ClassInfo | null | undefined): ClassInfo | null { + for (let c = info ?? null; c; c = c.base) if (c.extendsArray) return c; + return null; +} + +/** The array a class instance is (a reinterpret: the same object). */ +export function arrayOfClassInstance(info: ClassInfo, value: IrExpr, loc: SrcLoc): IrExpr { + const root = arrayRootOf(info)!; + return { kind: "upcast", value, type: arrayOf(root.extendsArray!.elem), loc }; +} + +/** The class object an instance of `info` is, viewed from its array type + * (a reinterpret; the value is known to be an instance of the class). */ +export function arrayClassView(info: ClassInfo, value: IrExpr, loc: SrcLoc): IrExpr { + return { kind: "downcast", value, type: { kind: "object", className: info.def.name }, loc }; +} + +function thisArray(info: ClassInfo, thisLocal: IrLocal, loc: SrcLoc): IrExpr { + return arrayOfClassInstance( + info, + { + kind: "varRef", + localId: thisLocal.id, + type: { kind: "object", className: info.def.name }, + loc, + }, + loc, + ); +} + +/** The implicit constructor's super(...args): `pack` is its dyn argument + * array, applied with the Array constructor's length-or-elements rule. */ +export function arraySuperCall( + info: ClassInfo, + thisRef: IrExpr, + pack: IrExpr, + loc: SrcLoc, +): IrStmt { + const elem = arrayRootOf(info)!.extendsArray!.elem; + return { + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "array.subclassConstructDyn", + args: [ + arrayOfClassInstance(info, thisRef, loc), + pack, + { kind: "boolLit", value: elem.kind === "dyn", type: BOOL, loc }, + ], + type: { kind: "void" }, + loc, + }, + loc, + }; +} + +/** An explicit super(...) in a class declared `extends Array`: one number + * argument sets the length; otherwise the arguments (spreads included) + * become the elements, with the same one-number rule at run time. */ +export function lowerArraySuperCall( + lowerer: Lowerer, + info: ClassInfo, + thisLocal: IrLocal, + superCall: ts.CallExpression, +): IrStmt[] { + const loc = locOf(superCall); + const elem = arrayRootOf(info)!.extendsArray!.elem; + const args = superCall.arguments.nodes; + if (args.length === 0) return []; + const only = args.length === 1 && !ts.isSpreadElement(args[0]!) ? args[0]! : null; + if (only !== null && (lowerer.typeOf(only).flags & ts.TypeFlags.NumberLike) !== 0) { + return [ + { + kind: "arraySetLength", + arr: thisArray(info, thisLocal, loc), + length: lowerer.lowerExprExpecting(only, { kind: "f64" }), + loc, + }, + ]; + } + const arrT = arrayOf(elem); + const elements: IrExpr[] = []; + const spreads: number[] = []; + for (const arg of args) { + if (ts.isSpreadElement(arg)) { + spreads.push(elements.length); + elements.push(lowerer.lowerExprExpecting(arg.expression, arrT)); + } else elements.push(lowerer.lowerExprExpecting(arg, elem)); + } + const pack: IrExpr = { + kind: "arrayLit", + elems: elements, + ...(spreads.length > 0 ? { spreads } : {}), + type: arrT, + loc, + } as IrExpr; + return [ + { + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "array.subclassConstruct", + args: [ + thisArray(info, thisLocal, loc), + pack, + { kind: "boolLit", value: elem.kind === "dyn", type: BOOL, loc }, + ], + type: { kind: "void" }, + loc, + }, + loc, + }, + ]; +} + +/** The ClassInfo of a class declared `extends Array`, by its declaration. */ +export function arrayClassOfDecl( + lowerer: Lowerer, + decl: ts.ClassLikeDeclaration, +): ClassInfo | null { + const symbol = decl.name ? lowerer.checker.getSymbolAtLocation(decl.name) : undefined; + let info = symbol ? lowerer.classBySymbol.get(symbol) : undefined; + if (!info) + for (const candidate of lowerer.classes.values()) if (candidate.decl === decl) info = candidate; + return info && arrayRootOf(info) ? info : null; +} + +/** The class that declares the member `access` names when that class is + * declared `extends Array` (its own fields, methods and accessors), or null + * for the Array members it inherits and every other access. */ +export function arrayClassMemberOwner( + lowerer: Lowerer, + access: ts.PropertyAccessExpression, +): ClassInfo | null { + const symbol = lowerer.checker.getSymbolAtLocation(access.name); + const decl = symbol?.declarations?.[0]; + const owner = decl?.parent; + if (owner === undefined || !ts.isClassLikeDeclaration(owner)) return null; + const declarer = arrayClassOfDecl(lowerer, owner); + if (declarer === null) return null; + // The receiver's own class (a subclass member reached through a base + // spelling is the same instance). + const receiver = lowerer.typeOf(access.expression).getSymbol()?.valueDeclaration; + if (receiver !== undefined && ts.isClassLikeDeclaration(receiver)) + return arrayClassOfDecl(lowerer, receiver) ?? declarer; + return declarer; +} + +/** `x instanceof Array` on a static array (always true: every array value, + * subclass instances included, is an Array) and `x instanceof X` for a + * class X declared `extends Array`: the array's class, read from its ext + * at run time. Null for every other instanceof. */ +export function lowerArrayClassInstanceOf( + lowerer: Lowerer, + expr: ts.BinaryExpression, + loc: SrcLoc, +): IrExpr | null { + if (!ts.isIdentifier(expr.right)) return null; + const leftType = lowerer.mapTypeOf(lowerer.typeOf(expr.left)); + if (lowerer.isStdlibGlobal(expr.right, "Array")) { + // A checked-dynamic value: the Array.isArray test (one realm). + if (leftType?.kind === "dyn") + return { + kind: "dynTest", + test: "array", + value: lowerer.coerceInto(expr.left, lowerer.lowerExpr(expr.left), DYN), + type: BOOL, + loc, + } as IrExpr; + if (leftType?.kind !== "array") return null; + return { + kind: "seqExpr", + stmts: [{ kind: "exprStmt", expr: lowerer.lowerExpr(expr.left), loc }], + result: { kind: "boolLit", value: true, type: BOOL, loc }, + type: BOOL, + loc, + }; + } + const symbol = lowerer.resolveValueSymbol(expr.right); + const decl = symbol?.valueDeclaration; + let info: ClassInfo | null = null; + if (decl !== undefined && ts.isClassLikeDeclaration(decl)) { + info = arrayClassOfDecl(lowerer, decl); + } else { + // A binding that holds a class value (`const C = class extends Array + // {}`): its static class, the only class it can hold while nothing + // extends that class. + const stored = storedClassValueType(lowerer, expr.right); + const held = stored?.kind === "classval" ? lowerer.classes.get(stored.className) : undefined; + if (held === undefined || arrayRootOf(held) === null) return null; + if (held.subclasses.length > 0) + lowerer.unsupported( + "SC1090", + expr, + "'instanceof' against a binding holding a class that extends Array and has subclasses", + ); + info = held; + } + if (info === null) return null; + const value = lowerer.lowerExpr(expr.left); + if (value.type.kind === "array") + return { kind: "instanceOf", value, className: info.def.name, type: BOOL, loc }; + if (value.type.kind === "dyn") + return { + kind: "libCall", + fn: "array.dynIsClass", + args: [value, { kind: "strLit", value: info.def.name, type: STRING, loc }], + type: BOOL, + loc, + }; + if (value.type.kind === "object" && value.type.className === info.def.name) + return { + kind: "seqExpr", + stmts: [{ kind: "exprStmt", expr: value, loc }], + result: { kind: "boolLit", value: true, type: BOOL, loc }, + type: BOOL, + loc, + }; + return null; +} + +/** The class declared `extends Array` that a value of `type` is an instance + * of, or null. */ +export function arrayClassOfType(lowerer: Lowerer, type: ts.Type): ClassInfo | null { + const decl = type.getSymbol()?.valueDeclaration; + return decl !== undefined && ts.isClassLikeDeclaration(decl) + ? arrayClassOfDecl(lowerer, decl) + : null; +} + +/** `x.constructor` on an instance of a class declared `extends Array`: the + * class (the class has no subclasses, so the static type names it). */ +export function lowerArrayClassConstructorRead( + lowerer: Lowerer, + access: ts.PropertyAccessExpression, + loc: SrcLoc, +): IrExpr | null { + if (access.name.text !== "constructor") return null; + const info = arrayClassOfType(lowerer, lowerer.typeOf(access.expression)); + if (info === null) return null; + const value = lowerer.lowerExpr(access.expression); + const cls = lowerer.classValueRef(info, access); + return { + kind: "seqExpr", + stmts: [{ kind: "exprStmt", expr: value, loc }], + result: cls, + type: cls.type, + loc, + }; +} + +/** `%C.arrayFields(a)`: the own fields of an instance of a class declared + * `extends Array` as a dyn object, in declaration order (the descriptor's + * `fields`, which util.inspect and Object.keys read). Fields whose type + * has no dyn form are left out. Null when the class has no such field. */ +export function arrayClassFieldsFn(lowerer: Lowerer, info: ClassInfo): IrFunction | null { + const elem = arrayRootOf(info)!.extendsArray!.elem; + const arrT = arrayOf(elem); + const loc = info.def.loc; + const fields = info.def.fields.filter( + (f) => !f.name.startsWith("%") && !f.name.startsWith("#") && lowerer.dynConvertible(f.type), + ); + if (fields.length === 0) return null; + const name = `%${info.def.name}.arrayFields`; + const self = (): IrExpr => + arrayClassView(info, { kind: "varRef", localId: "a.0", type: arrT, loc }, loc); + const value: IrExpr = { + kind: "dynObjLit", + fields: fields.map((f) => ({ + key: { kind: "strLit", value: f.name, type: STRING, loc }, + value: lowerer.coerceToExpected( + { + kind: "fieldGet", + obj: self(), + className: info.def.name, + field: f.name, + type: f.type, + loc, + }, + DYN, + ), + })), + type: DYN, + loc, + }; + return { + name, + params: [{ localId: "a.0", name: "a", type: arrT }], + returnType: DYN, + locals: [{ id: "a.0", name: "a", type: arrT, mutable: false }], + body: [{ kind: "return", value, loc }], + loc, + }; +} + +/** `%C.species(n, withLength)`: `new C(n)`, or `new C()` without + * `withLength`, as ArraySpeciesCreate, Array.of and Array.from call it (the + * descriptor's `species`). Null when the constructor's parameters cannot + * take those arguments: they must be none, a forwarding rest (dyn or + * number), or a number first parameter whose others may be omitted (whose + * no-argument form throws). */ +export function arrayClassSpeciesFn(lowerer: Lowerer, info: ClassInfo): IrFunction | null { + const elem = arrayRootOf(info)!.extendsArray!.elem; + const arrT = arrayOf(elem); + const loc = info.def.loc; + const n = (): IrExpr => ({ kind: "varRef", localId: "n.0", type: F64, loc }); + const params = info.ctorParams; + // The constructor arguments with the length and without it (null: that + // form throws a TypeError). + let withLength: IrExpr[] | null = null; + let without: IrExpr[] | null = null; + if (params.length === 0) { + withLength = []; + without = []; + } else if (params.length === 1 && params[0]!.mode === "dynRest") { + withLength = [ + { + kind: "dynArrLit", + elems: [{ kind: "dynFrom", value: n(), type: DYN, loc }], + type: DYN, + loc, + }, + ]; + without = [{ kind: "dynArrLit", elems: [], type: DYN, loc }]; + } else if ( + params.length === 1 && + params[0]!.mode === "rest" && + params[0]!.type.kind === "array" && + params[0]!.type.elem.kind === "f64" + ) { + withLength = [{ kind: "arrayLit", elems: [n()], type: params[0]!.type, loc } as IrExpr]; + without = [{ kind: "arrayLit", elems: [], type: params[0]!.type, loc } as IrExpr]; + } else if ( + params[0]!.mode === "required" && + (params[0]!.type.kind === "f64" || params[0]!.type.kind === "dyn") && + params.slice(1).every((p) => p.mode === "omittable") + ) { + const rest = params + .slice(1) + .map((p) => + lowerer.coerceToExpected( + { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc } as IrExpr, + p.type, + ), + ); + // A dyn first parameter (a JavaScript `constructor(size)`) takes the + // length as a number, and undefined in the no-argument form. + if (params[0]!.type.kind === "dyn") without = [dynUndefinedExpr(loc), ...rest.map((e) => e)]; + withLength = [ + params[0]!.type.kind === "dyn" ? { kind: "dynFrom", value: n(), type: DYN, loc } : n(), + ...params + .slice(1) + .map((p) => + lowerer.coerceToExpected( + { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc } as IrExpr, + p.type, + ), + ), + ]; + } + if (withLength === null) return null; + const construct = (args: IrExpr[]): IrStmt => ({ + kind: "return", + value: arrayOfClassInstance( + info, + { + kind: "new", + className: info.def.name, + args, + type: { kind: "object", className: info.def.name }, + loc, + }, + loc, + ), + loc, + }); + const unsupported: IrStmt = { + kind: "exprStmt", + expr: nodeThrowExpr( + 1, + "", + `constructing ${info.def.jsName ?? info.def.name} without arguments is not supported yet`, + DYN, + loc, + ), + loc, + }; + return { + name: `%${info.def.name}.species`, + params: [ + { localId: "n.0", name: "n", type: F64 }, + { localId: "w.0", name: "withLength", type: BOOL }, + ], + returnType: arrT, + locals: [ + { id: "n.0", name: "n", type: F64, mutable: false }, + { id: "w.0", name: "withLength", type: BOOL, mutable: false }, + ], + body: [ + { + kind: "if", + cond: { kind: "varRef", localId: "w.0", type: BOOL, loc }, + then: [construct(withLength)], + else_: [without !== null ? construct(without) : unsupported], + loc, + }, + ], + loc, + }; +} + +/** Whether the program declares a class that extends Array. Array methods + * consult species only then. */ +export function programDeclaresArrayClass(lowerer: Lowerer): boolean { + for (const info of lowerer.classes.values()) if (info.extendsArray) return true; + return false; +} + +/** The Array methods that create their result through ArraySpeciesCreate: + * whether the species constructor receives the result's length (map, + * slice, splice; the others pass 0) and whether the length is set after + * the elements are defined (slice, splice, concat). */ +const SPECIES_METHODS: ReadonlyMap = new Map( + [ + ["map", { resultLength: true, setLength: false }], + ["filter", { resultLength: false, setLength: false }], + ["slice", { resultLength: true, setLength: true }], + ["splice", { resultLength: true, setLength: true }], + ["concat", { resultLength: false, setLength: true }], + ["flat", { resultLength: false, setLength: false }], + ["flatMap", { resultLength: false, setLength: false }], + ], +); + +/** An Array method call whose result an Array subclass instance creates + * through its species (scr_arr_species_adopt): the receiver is evaluated + * once into a hidden local that the method's lowering reads, and the + * method's plain result passes through the species constructor when the + * receiver is a subclass instance. Programs that declare no Array subclass + * keep the plain lowering. */ +export function lowerWithArraySpecies( + lowerer: Lowerer, + call: ts.CallExpression, + access: ts.PropertyAccessExpression, + lower: () => IrExpr | null, +): IrExpr | null { + const mode = SPECIES_METHODS.get(access.name.text); + if (mode === undefined || !programDeclaresArrayClass(lowerer)) return lower(); + const receiverType = lowerer.mapTypeOf(lowerer.typeOf(access.expression)); + if (receiverType?.kind !== "array") return lower(); + const loc = locOf(call); + const receiver = lowerer.lowerExpr(access.expression); + if (receiver.type.kind !== "array") return lower(); + const local = lowerer.declareHiddenLocal("%speciesReceiver", receiver.type); + const key = stripTypeWrappers(access.expression); + lowerer.stagedArguments.set(key, { localId: local.id, type: receiver.type }); + let result: IrExpr | null; + try { + result = lower(); + } finally { + lowerer.stagedArguments.delete(key); + } + if (result === null || result.type.kind !== "array") return result; + return { + kind: "seqExpr", + stmts: [{ kind: "varDecl", localId: local.id, init: receiver, loc }], + result: { + kind: "libCall", + fn: "array.speciesAdopt", + args: [ + { kind: "varRef", localId: local.id, type: receiver.type, loc }, + result, + { kind: "numLit", value: mode.resultLength ? -1 : 0, type: F64, loc }, + { kind: "boolLit", value: mode.setLength, type: BOOL, loc }, + ], + type: result.type, + loc, + }, + type: result.type, + loc, + }; +} + +/** `C.of(...items)` and `C.from(iterable)` on a class declared `extends + * Array` that declares neither: Array.of / Array.from's elements, in an + * instance the class constructs (`new C(items.length)` for of, `new C()` + * for an iterable's from), as Node's inherited statics do. */ +export function lowerArrayClassStaticCall( + lowerer: Lowerer, + call: ts.CallExpression, + access: ts.PropertyAccessExpression, +): IrExpr | null { + const name = access.name.text; + if (name !== "of" && name !== "from") return null; + if (!ts.isIdentifier(access.expression)) return null; + const symbol = lowerer.resolveValueSymbol(access.expression); + const decl = symbol?.valueDeclaration; + if (decl === undefined || !ts.isClassLikeDeclaration(decl)) return null; + const info = arrayClassOfDecl(lowerer, decl); + if (info === null || lowerer.findStaticOn(info, name)) return null; + const loc = locOf(call); + const args = call.arguments.nodes; + let ctorLength: number; + if (name === "of") { + if (args.some(ts.isSpreadElement)) + lowerer.unsupported("SC1090", call, "spreading arguments into Array.of on an Array subclass"); + ctorLength = args.length; + } else { + const source = args[0] ? lowerer.mapTypeOf(lowerer.typeOf(args[0])) : null; + if ( + source?.kind !== "array" && + source?.kind !== "string" && + source?.kind !== "set" && + source?.kind !== "map" + ) + lowerer.unsupported( + "SC1090", + call, + "Array.from on an Array subclass over a value that is not an array, string, Set or Map", + ); + ctorLength = -1; + } + const plain = + name === "of" + ? lowerArrayOfCall(lowerer, call, access, true) + : lowerArrayFromCall(lowerer, call, access, true); + if (plain === null || plain.type.kind !== "array") return plain; + return { + kind: "libCall", + fn: "array.classConstructAdopt", + args: [ + { kind: "strLit", value: info.def.name, type: STRING, loc }, + plain, + { kind: "numLit", value: ctorLength, type: F64, loc }, + ], + type: plain.type, + loc, + }; +} + +/** A class declared `extends Array` that defines `static [Symbol.species]` + * (Node would construct method results through that constructor). */ +export function refuseArrayClassSpecies(lowerer: Lowerer, decl: ts.ClassLikeDeclaration): void { + for (const member of decl.members.nodes) { + const name = member.name; + if ( + name !== undefined && + ts.isComputedPropertyName(name) && + ts.isPropertyAccessExpression(name.expression) && + name.expression.name.text === "species" && + ts.isIdentifier(name.expression.expression) && + name.expression.expression.text === "Symbol" + ) + lowerer.unsupported( + "SC1090", + member, + "Symbol.species on a class that extends Array (its methods' results construct the class itself)", + ); + } +} diff --git a/packages/compiler/src/frontend/lowering/containers/array-construction.ts b/packages/compiler/src/frontend/lowering/containers/array-construction.ts index 1f10640c0..284f87104 100644 --- a/packages/compiler/src/frontend/lowering/containers/array-construction.ts +++ b/packages/compiler/src/frontend/lowering/containers/array-construction.ts @@ -498,12 +498,15 @@ export function lowerArrayOfCall( lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression, + /** The receiver is a class declared `extends Array` (array-classes.ts + * constructs the result through it). */ + arrayClassReceiver = false, ): IrExpr | null { if ( call.questionDotToken || access.questionDotToken || access.name.text !== "of" || - !lowerer.isStdlibGlobal(access.expression, "Array") + (!arrayClassReceiver && !lowerer.isStdlibGlobal(access.expression, "Array")) ) return null; let result = lowerer.mapTypeOf(lowerer.typeOf(call)); @@ -856,9 +859,11 @@ export function lowerArrayFromCall( lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression, + /** The receiver is a class declared `extends Array` (array-classes.ts). */ + arrayClassReceiver = false, ): IrExpr | null { if (call.questionDotToken || access.questionDotToken) return null; - if (!lowerer.isStdlibGlobal(access.expression, "Array")) return null; + if (!arrayClassReceiver && !lowerer.isStdlibGlobal(access.expression, "Array")) return null; if (access.name.text !== "from") return null; const loc = locOf(call); const args = call.arguments.nodes; diff --git a/packages/compiler/src/frontend/lowering/expressions/binary.ts b/packages/compiler/src/frontend/lowering/expressions/binary.ts index 00a23caf5..dbe89544e 100644 --- a/packages/compiler/src/frontend/lowering/expressions/binary.ts +++ b/packages/compiler/src/frontend/lowering/expressions/binary.ts @@ -773,6 +773,12 @@ export function ensureString(lowerer: Lowerer, e: IrExpr, node: ts.Node): IrExpr isUnitType(a), ) ?? false); + // Checked-dynamic elements: the runtime's String() over the array's + // dyn form (its join, element by element). + if (elem.kind === "dyn") { + const boxed: IrExpr = { kind: "dynFrom", value: e, type: DYN, loc: e.loc }; + return { kind: "toString", operand: boxed, type: STRING, loc: e.loc }; + } if ( elem.kind === "f64" || elem.kind === "string" || diff --git a/packages/compiler/src/frontend/lowering/expressions/property-access.ts b/packages/compiler/src/frontend/lowering/expressions/property-access.ts index 8148e85f5..9d76a0f17 100644 --- a/packages/compiler/src/frontend/lowering/expressions/property-access.ts +++ b/packages/compiler/src/frontend/lowering/expressions/property-access.ts @@ -1,4 +1,9 @@ /* Property reads (`a.b`): lowerExprInner's property-access branch, intrinsic and union properties, field reads and targets, and match-group reads. */ +import { + arrayClassMemberOwner, + arrayClassView, + lowerArrayClassConstructorRead, +} from "../builtins/array-classes.js"; import { keyedHelperName } from "../stable-names.js"; import { staticallySelected } from "../static-typeof.js"; import * as ts from "../../ts7/adapter.js"; @@ -290,6 +295,8 @@ export function lowerPropertyAccessExpr( expr: ts.PropertyAccessExpression, loc: SrcLoc, ): IrExpr { + const arrayClassConstructor = lowerArrayClassConstructorRead(lowerer, expr, loc); + if (arrayClassConstructor !== null) return arrayClassConstructor; // `value.#x` on a checked-dynamic value, or on a checked extraction of // one: the field of the brand-checked receiver (checkedPrivateValue). if (ts.isPrivateIdentifier(expr.name)) { @@ -3717,6 +3724,31 @@ export function fieldTarget( ); } } + // A field declared by a class that extends Array, on an instance (whose + // type maps to its array): the class object's field. + { + const owner = arrayClassMemberOwner(lowerer, access); + const name = access.name.text; + if ( + owner !== null && + (owner.fields.has(name) || + lowerer.findMethodOn(owner, `get:${name}`) || + lowerer.findMethodOn(owner, `set:${name}`)) + ) { + const value = lowerer.lowerExpr(access.expression); + const receiver = + value.type.kind === "array" + ? arrayClassView(owner, value, locOf(access.expression)) + : value; + return classFieldTarget( + lowerer, + access.expression, + { kind: "object", className: owner.def.name }, + access.name.text, + receiver, + ); + } + } const stored = ts.isIdentifier(access.expression) ? (lowerer.peekLocal(access.expression)?.type ?? lowerer.globalOf(access.expression)?.type) : undefined; diff --git a/packages/compiler/src/frontend/lowering/expressions/relational.ts b/packages/compiler/src/frontend/lowering/expressions/relational.ts index 1651bf0d9..08987e538 100644 --- a/packages/compiler/src/frontend/lowering/expressions/relational.ts +++ b/packages/compiler/src/frontend/lowering/expressions/relational.ts @@ -1,4 +1,5 @@ /* instanceof and in, including private-name and runtime-key in. */ +import { lowerArrayClassInstanceOf } from "../builtins/array-classes.js"; import { dateRootOf } from "../builtins/date-classes.js"; import { keyedHelperName } from "../stable-names.js"; import * as ts from "../../ts7/adapter.js"; @@ -106,6 +107,8 @@ const NO_CLASS_INSTANCE_KINDS: ReadonlySet = new Set([ * Folding is limited to side-effect-free operands — dropping a computed * operand would skip its effects, so those are rejected instead. */ export function lowerInstanceOf(lowerer: Lowerer, expr: ts.BinaryExpression, loc: SrcLoc): IrExpr { + const arrayClassTest = lowerArrayClassInstanceOf(lowerer, expr, loc); + if (arrayClassTest !== null) return arrayClassTest; const webAssembly = lowerWebAssemblyInstanceof(lowerer, expr); if (webAssembly !== null) return webAssembly; refuseWebAssemblyUse(lowerer, expr.right); diff --git a/packages/compiler/src/frontend/lowering/lower-calls.ts b/packages/compiler/src/frontend/lowering/lower-calls.ts index 8ac97fd32..2be259226 100644 --- a/packages/compiler/src/frontend/lowering/lower-calls.ts +++ b/packages/compiler/src/frontend/lowering/lower-calls.ts @@ -1,3 +1,8 @@ +import { + arrayClassMemberOwner, + arrayClassView, + lowerArrayClassStaticCall, +} from "./builtins/array-classes.js"; import { keyedHelperName } from "./stable-names.js"; import { perKeyOrder } from "./key-order-witness.js"; import { isForwardedTupleSpread, lowerForwardingApply } from "./typed-arguments.js"; @@ -1669,6 +1674,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { lowerIteratorStaticFence(lowerer, expr, expr.expression) ?? lowerObjectStaticCall(lowerer, expr, expr.expression) ?? lowerObjectFromEntriesCall(lowerer, expr, expr.expression) ?? + lowerArrayClassStaticCall(lowerer, expr, expr.expression) ?? lowerArrayFromCall(lowerer, expr, expr.expression) ?? lowerArrayFromAsyncCall(lowerer, expr, expr.expression) ?? lowerArrayOfCall(lowerer, expr, expr.expression) ?? @@ -10075,6 +10081,12 @@ export function lowerObjectMethodCall( ? probe : null; if (specializedReceiver) mappedReceiver = specializedReceiver.type; + // A member declared by a class that extends Array, called on an instance + // (whose type maps to its array): the class's own method. + const arrayClassOwner = + mappedReceiver?.kind === "array" ? arrayClassMemberOwner(lowerer, access) : null; + if (arrayClassOwner !== null) + mappedReceiver = { kind: "object", className: arrayClassOwner.def.name }; if (mappedReceiver?.kind === "union") { const dispatched = lowerUnionObjectMethodCall(lowerer, call, access, mappedReceiver) ?? @@ -10108,6 +10120,12 @@ export function lowerObjectMethodCall( : null; if (receiverIr === null) return null; const lowerReceiver = (): IrExpr => { + if (arrayClassOwner !== null) { + const value = lowerer.lowerExpr(access.expression); + return value.type.kind === "array" + ? arrayClassView(arrayClassOwner, value, locOf(access.expression)) + : value; + } const receiver = specializedReceiver ?? lowerer.lowerExpr(access.expression); const optional = lowerer.runtimeOptionalPropertyReceiver( access.expression, diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index 3e49304d2..dfc27dd86 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -7,6 +7,14 @@ import { lowerDateSuperMethodCall, } from "./builtins/date-classes.js"; import { predeclareForwardClass } from "./lower-stmts.js"; +import { + arrayClassBase, + arrayClassFieldsFn, + arrayClassSpeciesFn, + arraySuperCall, + refuseArrayClassSpecies, + lowerArraySuperCall, +} from "./builtins/array-classes.js"; import { lowerDateStaticCall } from "./builtins/dates.js"; import { keyedHelperName } from "./stable-names.js"; import { lowerValueReturningConstructorNew } from "./js-dynamic-objects.js"; @@ -590,6 +598,10 @@ export interface ClassInfo { * constructor's rules, and the Date methods it does not declare lower * over that value. Subclasses inherit the field. */ extendsDate?: true; + /** A class declared `extends Array` (builtins/array-classes.ts): its + * instances are arrays of `elem` whose own fields follow the array + * header, and its TypeScript type maps to `elem[]`. */ + extendsArray?: { elem: IrType }; /** The synthetic LifetimeRegion class (@scriptc/experimental, * lifetime-regions.ts): its constructor is synthesized with the class, * and its methods lower at their call sites. */ @@ -1978,6 +1990,7 @@ export function collectClassShapeInner( let genericBase: ts.ExpressionWithTypeArguments | undefined; let callableBase: ClassInfo["callableBase"]; let extendsDate = false; + let extendsArray: { elem: IrType } | undefined; let factoryBaseExpression: ts.Expression | undefined; const adoptCallableBase = (expression: ts.Expression): boolean => { if (familyMode || inst || mixin) return false; @@ -2178,6 +2191,13 @@ export function collectClassShapeInner( if (t && adoptCallableBase(t.expression)) continue; lowerer.unsupported("SC1090", clause, "extending computed expressions"); } + if ((familyMode || inst) && lowerer.isStdlibGlobal(t.expression, "Array")) + lowerer.unsupported("SC1090", t, "a generic class that extends Array"); + if (!familyMode && !inst && !mixin && lowerer.isStdlibGlobal(t.expression, "Array")) { + extendsArray = arrayClassBase(lowerer, t); + refuseArrayClassSpecies(lowerer, decl); + continue; + } if (!familyMode && !inst && !mixin && lowerer.isStdlibGlobal(t.expression, "Date")) { if (t.typeArguments?.nodes) lowerer.unsupported("SC1090", t, "extending generic classes"); extendsDate = true; @@ -2278,6 +2298,12 @@ export function collectClassShapeInner( continue; } if (t.typeArguments?.nodes) lowerer.unsupported("SC1090", t, "extending generic classes"); + if (named?.extendsArray) + lowerer.unsupported( + "SC1090", + t, + `extending '${t.expression.text}', a class that extends Array (one level of Array subclass compiles)`, + ); base = named; if (!base) { if (adoptCallableBase(t.expression)) continue; @@ -4384,7 +4410,7 @@ export function collectClassShapeInner( ctor && !mixinForwarding ? lowerer.paramShapes(ctor.parameters.nodes) : (base?.ctorParams ?? - (callableBase || extendsDate ? [{ type: DYN, mode: "dynRest" }] : [])); + (callableBase || extendsDate || extendsArray ? [{ type: DYN, mode: "dynRest" }] : [])); if ( ctor && !mixinForwarding && @@ -4439,6 +4465,13 @@ export function collectClassShapeInner( return am.length > 0 ? { abstractMethods: am } : {}; })(), ...(inst ? { genericOf: inst.family.def.name } : {}), + ...(extendsArray + ? { + arrayElem: extendsArray.elem, + arrayFields: `%${className}.arrayFields`, + arraySpecies: `%${className}.species`, + } + : {}), loc: locOf(decl), }, fields, @@ -4455,6 +4488,7 @@ export function collectClassShapeInner( ...(genericBase ? { genericBase } : {}), ...(callableBase ? { callableBase } : {}), ...(extendsDate ? { extendsDate: true as const } : {}), + ...(extendsArray ? { extendsArray } : {}), ...(factoryBaseExpression ? { factoryBaseExpression } : {}), subclasses: [], throwingSetters, @@ -7926,6 +7960,12 @@ export function lowerClassMembers(lowerer: Lowerer, info: ClassInfo): IrFunction const diagsBefore = lowerer.diags.length; try { out.push(lowerer.lowerClassCtor(info)); + if (info.extendsArray) { + const fields = arrayClassFieldsFn(lowerer, info); + if (fields) out.push(fields); + const species = arrayClassSpeciesFn(lowerer, info); + if (species) out.push(species); + } } catch (e) { if (!(e instanceof PoisonError)) throw e; if (info.decl && isJsSourceFile(ts.getSourceFileOfNode(info.decl))) { @@ -7974,6 +8014,10 @@ export function lowerClassMembers(lowerer: Lowerer, info: ClassInfo): IrFunction * the base's signature — forward every param to super(), then run own * field initializers. */ export function lowerClassCtor(lowerer: Lowerer, info: ClassInfo): IrFunction { + if (info.extendsArray) { + lowerer.noteEdge(`%${info.def.name}.arrayFields`); + lowerer.noteEdge(`%${info.def.name}.species`); + } const cached = info.localClass?.bodies.get(`%${info.def.name}.constructor`); if (cached) return cached; return withInstanceBindings(lowerer, info, () => lowerClassCtorInner(lowerer, info)); @@ -8041,7 +8085,7 @@ function lowerClassCtorInner(lowerer: Lowerer, info: ClassInfo): IrFunction { lowerer.ctx.argumentsLocal = local; } body.push(...declared.prologue); - if (!ctorBase && !info.callableBase && !info.extendsDate) { + if (!ctorBase && !info.callableBase && !info.extendsDate && !info.extendsArray) { // Node's base-class order: field initializers run at the start // of construction, the parameter-property assignments open the // constructor body (probed — a field initializer reading a @@ -8053,7 +8097,7 @@ function lowerClassCtorInner(lowerer: Lowerer, info: ClassInfo): IrFunction { body.push(...lowerer.lowerDerivedCtorBody(info, thisLocal)); } } else { - if (ctorBase || info.callableBase || info.extendsDate) { + if (ctorBase || info.callableBase || info.extendsDate || info.extendsArray) { // Synthetic forwarding params (the inherited ABI signature). // Nothing references them by symbol — only the super call below, // which forwards the already-completed values UNCHANGED (defaults @@ -8972,7 +9016,9 @@ export function lowerDerivedCtorBody( loc, }, ]; - if (info.callableBase || info.extendsDate) { + if (info.extendsArray) { + statements.push(...lowerArraySuperCall(lowerer, info, thisLocal, superCall)); + } else if (info.callableBase || info.extendsDate) { if (superCall.arguments.nodes.some(ts.isSpreadElement)) lowerer.unsupported( "SC1090", @@ -9165,6 +9211,7 @@ export function superCallStmt( loc, }; if (info.extendsDate) return dateSuperCall(thisRef, info, args[0]!, loc); + if (info.extendsArray) return arraySuperCall(info, thisRef, args[0]!, loc); if (info.callableBase) return { kind: "exprStmt", diff --git a/packages/compiler/src/frontend/lowering/lower-exprs.ts b/packages/compiler/src/frontend/lowering/lower-exprs.ts index c790581d8..e178de2eb 100644 --- a/packages/compiler/src/frontend/lowering/lower-exprs.ts +++ b/packages/compiler/src/frontend/lowering/lower-exprs.ts @@ -1,3 +1,8 @@ +import { + arrayClassMemberOwner, + arrayOfClassInstance, + arrayRootOf, +} from "./builtins/array-classes.js"; import { keyedHelperName } from "./stable-names.js"; import { isNewTarget, @@ -499,7 +504,23 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { // noImplicitThis, so the generic scope walk here is preflight-safe. const local = lowerer.resolveThis(expr); if (local) { - const value: IrExpr = { kind: "varRef", localId: local.id, type: local.type, loc }; + let value: IrExpr = { kind: "varRef", localId: local.id, type: local.type, loc }; + // `this` in a class declared `extends Array` is the array, except as + // the receiver of a member the class declares. + if (local.type.kind === "object") { + const arrayClass = lowerer.classes.get(local.type.className); + const parent = expr.parent; + if ( + arrayClass && + arrayRootOf(arrayClass) && + !( + ts.isPropertyAccessExpression(parent) && + parent.expression === expr && + arrayClassMemberOwner(lowerer, parent) !== null + ) + ) + value = arrayOfClassInstance(arrayClass, value, loc); + } // `this.#x` in a function-local class's prototype method, whose `this` // is the call-site value: the field lives on the native instance of // this evaluation (checkedPrivateReceiver). @@ -575,7 +596,24 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { // any other super position (field reads, bare references) stays out. lowerer.unsupported("SC1090", expr, "'super' outside super() and super.method() calls"); } - if (ts.isNewExpression(expr)) return lowerer.lowerNew(expr); + if (ts.isNewExpression(expr)) { + const value = lowerer.lowerNew(expr); + // `new X()` for a class declared `extends Array` is the array, except + // as the receiver of a member the class declares (as `this` above). + if (value.type.kind !== "object") return value; + const arrayClass = lowerer.classes.get(value.type.className); + if (!arrayClass || !arrayRootOf(arrayClass)) return value; + let operand: ts.Expression = expr; + while (ts.isParenthesizedExpression(operand.parent)) operand = operand.parent; + const parent = operand.parent; + if ( + ts.isPropertyAccessExpression(parent) && + parent.expression === operand && + arrayClassMemberOwner(lowerer, parent) !== null + ) + return value; + return arrayOfClassInstance(arrayClass, value, loc); + } if (ts.isAwaitExpression(expr)) { if (!lowerer.ctx.isAsync) { // A tsc-clean occurrence here is outside both an async function diff --git a/packages/compiler/src/frontend/lowering/lower-modules.ts b/packages/compiler/src/frontend/lowering/lower-modules.ts index b0139aba9..b69805adf 100644 --- a/packages/compiler/src/frontend/lowering/lower-modules.ts +++ b/packages/compiler/src/frontend/lowering/lower-modules.ts @@ -949,6 +949,12 @@ export function moduleArtifacts( visitClass("%Readable"); visitClass("%Writable"); } + // A class declared `extends Array` named by its instanceof test + // or by X.of / X.from. + if (node.fn === "array.dynIsClass" && node.args[1]?.kind === "strLit") + visitClass(node.args[1].value); + if (node.fn === "array.classConstructAdopt" && node.args[0]?.kind === "strLit") + visitClass(node.args[0].value); break; case "dynFrom": if (boxedChild(node.value.type)) { diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 14af97de7..0845826d2 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -1,3 +1,10 @@ +import { + arrayClassFieldsFn, + arrayClassSpeciesFn, + arrayOfClassInstance, + arrayRootOf, + lowerWithArraySpecies, +} from "./builtins/array-classes.js"; import { isDeclBoundaryFile } from "../decl-projection.js"; import { relieveHeapPressure } from "../../heap-pressure.js"; import { moduleNamespaceObject } from "./module-namespace-elements.js"; @@ -8129,6 +8136,20 @@ export class Lowerer { lower: () => info.localClass && !info.localClass.ready ? null : this.lowerClassCtor(info), }); + // The descriptor helpers of a class that extends Array, reached + // from its constructor. + if (info.extendsArray) { + units.set(`%${cName}.arrayFields`, { + order: unitOrder++, + roots: [], + lower: () => arrayClassFieldsFn(this, info), + }); + units.set(`%${cName}.species`, { + order: unitOrder++, + roots: [], + lower: () => arrayClassSpeciesFn(this, info), + }); + } for (const { mName, member } of this.classMethodMembers(info)) { units.set(`%${cName}.${mName}`, { order: unitOrder++, @@ -8244,6 +8265,10 @@ export class Lowerer { register(`%${cName}.constructor`, classCtorRoots(info), () => info.localClass && !info.localClass.ready ? null : this.lowerClassCtor(info), ); + if (info.extendsArray) { + register(`%${cName}.arrayFields`, [], () => arrayClassFieldsFn(this, info)); + register(`%${cName}.species`, [], () => arrayClassSpeciesFn(this, info)); + } for (const { mName, member } of this.classMethodMembers(info)) { register(`%${cName}.${mName}`, functionRoots(member), () => info.localClass && !info.localClass.ready @@ -9608,6 +9633,18 @@ export class Lowerer { const result = this.coerceToExpected(expr.result, expected); return { ...expr, result, type: result.type }; } + // An instance of a class declared `extends Array` is its array (the + // same object); an array slot of another element type converts it as + // an array. + if (expr.type.kind === "object" && expected.kind !== "object") { + const arrayClass = this.classes.get(expr.type.className); + if (arrayClass && arrayRootOf(arrayClass)) { + const asArray = arrayOfClassInstance(arrayClass, expr, expr.loc); + return typeEquals(asArray.type, expected) + ? asArray + : this.coerceToExpected(asArray, expected); + } + } // A destination that holds undefined takes an unassigned deferred-init // field's slot as is (Node passes the undefined along). if (expected.kind === "union" && this.armTag(expected.unionId, UNDEFINED_T) >= 0) { @@ -13315,7 +13352,9 @@ export class Lowerer { call: ts.CallExpression, access: ts.PropertyAccessExpression, ): IrExpr | null { - return lowerArrayMethodCall(this, call, access); + return lowerWithArraySpecies(this, call, access, () => + lowerArrayMethodCall(this, call, access), + ); } lowerMapMethodCall(call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null { diff --git a/packages/compiler/src/frontend/type-mapper.ts b/packages/compiler/src/frontend/type-mapper.ts index fc159116f..4273eace0 100644 --- a/packages/compiler/src/frontend/type-mapper.ts +++ b/packages/compiler/src/frontend/type-mapper.ts @@ -1779,6 +1779,36 @@ export function isFetchHandleType( return handle; } +/** The array type a class declared `extends Array` maps to (its base type, + * `T[]`), or null for every other class. */ +function arrayClassBaseType( + classDecl: ts.ClassLikeDeclaration, + instance: ts.Type, + ctx: TypeMapperCtx, +): IrType | null { + const heritage = classDecl.heritageClauses?.nodes.find( + (clause) => clause.token === ts.SyntaxKind.ExtendsKeyword, + )?.types?.nodes[0]; + if (heritage === undefined || !ts.isIdentifier(heritage.expression)) return null; + if (heritage.expression.text !== "Array") return null; + // The polymorphic `this` type of the class names the class's own type. + const symbol = instance.getSymbol(); + const declared = + (instance.flags & ts.TypeFlags.TypeParameter) !== 0 && symbol !== undefined + ? ctx.checker.getDeclaredTypeOfSymbol(symbol) + : instance; + if ((declared.flags & ts.TypeFlags.Object) === 0) return null; + const target = declared.isTypeReference() ? (declared.getTarget() ?? declared) : declared; + const bases = ctx.checker.getBaseTypes(target as ts.InterfaceType); + const base = bases[0]; + if (base === undefined || !ctx.checker.isArrayType(base)) return null; + const mapped = mapType(base, ctx); + if (mapped?.kind === "array") return mapped; + // `extends Array` in JavaScript reads `any[]`: dyn elements (the class's + // arrayClassBase). + return isJsSourceFile(ts.getSourceFileOfNode(classDecl)) ? { kind: "array", elem: DYN } : null; +} + export function mapType(type: ts.Type, ctx: TypeMapperCtx): IrType | null { if (mapTypeDepth >= MAP_TYPE_MAX_DEPTH) return null; // These intrinsic domains cannot depend on generic bindings, declaration @@ -2546,6 +2576,12 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { return viaMixin; } } + // A class declared `extends Array` (frontend/lowering/builtins/ + // array-classes.ts): its instances are arrays of the base's elements. + { + const arrayBase = arrayClassBaseType(classDecl, widened, ctx); + if (arrayBase !== null) return arrayBase; + } if (classExprNeedsContext(classDecl)) { const local = ctx.localClassInstance?.(classDecl, widened); if (local) contextResolutions++; diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index ac7413c6a..db7dc81c3 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -3891,6 +3891,23 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ // The string keys `for...in` visits on an array (args[0], any element // type) after its indices. Borrowed; never throws. "array.namedKeys": { argTypes: [null], result: arrayOf(STRING) }, + /** super(...) in a class declared `extends Array`: the instance, the + * arguments (an array of its element type, or the implicit constructor's + * dyn argument array) and whether the elements are dyn values. */ + "array.subclassConstruct": { argTypes: [null, null, BOOL], result: VOID }, + "array.subclassConstructDyn": { argTypes: [null, DYN, BOOL], result: VOID }, + /** ArraySpeciesCreate over an Array method's plain result: the receiver + * (borrowed), the result (moved), the species constructor's length + * argument (-1: the result's length) and whether to set the length. The + * result has the second argument's type. */ + "array.speciesAdopt": { argTypes: [null, null, F64, BOOL], result: VOID }, + /** Array.of / Array.from on a class declared `extends Array`: the class + * (its name, a literal), the plain result (moved) and the constructor's + * length argument (negative: no argument). */ + "array.classConstructAdopt": { argTypes: [STRING, null, F64], result: VOID }, + /** `value instanceof C` for a dyn value and a class that extends Array + * (its name, a literal). */ + "array.dynIsClass": { argTypes: [DYN, STRING], result: BOOL }, // Whether the array (args[0]) still has the key (args[1]) from its // namedKeys list. Borrowed; never throws. "array.hasNamedKey": { argTypes: [null, STRING], result: BOOL }, diff --git a/packages/compiler/src/ir/function-references.test.ts b/packages/compiler/src/ir/function-references.test.ts index 91e1d5f05..33d68c621 100644 --- a/packages/compiler/src/ir/function-references.test.ts +++ b/packages/compiler/src/ir/function-references.test.ts @@ -157,6 +157,8 @@ const MODULE_FIELDS: Record>, Role> = { "classes[].errorNameAfter": "other", "classes[].prototypeDataHelper": "reference", "classes[].instancePrototypeHelper": "reference", + "classes[].arrayFields": "reference", + "classes[].arraySpecies": "reference", "classes[].localCaptures[].name": "other", "classes[].localCaptures[].localId": "other", "classes[].symbolFields[].field": "other", @@ -281,6 +283,14 @@ const REFERENCE_FIXTURES: Record IrModule> = { ...module(), classes: [{ name: "%m0.Cell", fields: [], instancePrototypeHelper: TARGET, loc }], }), + "classes[].arrayFields": () => ({ + ...module(), + classes: [{ name: "%m0.Row", fields: [], arrayElem: F64, arrayFields: TARGET, loc }], + }), + "classes[].arraySpecies": () => ({ + ...module(), + classes: [{ name: "%m0.Row", fields: [], arrayElem: F64, arraySpecies: TARGET, loc }], + }), "lib.exports[].fnName": () => ({ ...module(), lib: { diff --git a/packages/compiler/src/ir/function-references.ts b/packages/compiler/src/ir/function-references.ts index db474e9bb..da05e854c 100644 --- a/packages/compiler/src/ir/function-references.ts +++ b/packages/compiler/src/ir/function-references.ts @@ -24,6 +24,8 @@ export function moduleFunctionReferences(mod: IrModule): string[] { for (const cls of mod.classes ?? []) { if (cls.prototypeDataHelper !== undefined) names.push(cls.prototypeDataHelper); if (cls.instancePrototypeHelper !== undefined) names.push(cls.instancePrototypeHelper); + if (cls.arrayFields !== undefined) names.push(cls.arrayFields); + if (cls.arraySpecies !== undefined) names.push(cls.arraySpecies); } return names; } diff --git a/packages/compiler/src/ir/ir.ts b/packages/compiler/src/ir/ir.ts index 550333edd..b9849152c 100644 --- a/packages/compiler/src/ir/ir.ts +++ b/packages/compiler/src/ir/ir.ts @@ -1508,6 +1508,17 @@ export interface IrClassDef { * RUNTIME_ERROR_CLASSES). User subclasses are ordinary emitted classes * whose layout prefix embeds ScrError's fields. */ runtime?: true; + /** A class declared `extends Array`: its instances are arrays of this + * element type. The struct begins with the runtime's array header (the + * reference count is the array's, field 0) and the class's fields follow + * it; the runtime finds the class through the array's ext. */ + arrayElem?: IrType; + /** The function (array) => dyn listing such a class's own fields + * (ScrArrClass.fields); absent when it declares none. */ + arrayFields?: string; + /** The function (length) => array constructing such a class for + * ArraySpeciesCreate (ScrArrClass.species). */ + arraySpecies?: string; /** Base class name (single inheritance, `extends`). A class is IN A * HIERARCHY when it has a base or is some class's base; hierarchy classes * carry a vtable word after `rc` (backends), standalone classes are laid diff --git a/packages/compiler/src/ir/traverse.ts b/packages/compiler/src/ir/traverse.ts index 80425a056..e83bf5c42 100644 --- a/packages/compiler/src/ir/traverse.ts +++ b/packages/compiler/src/ir/traverse.ts @@ -140,6 +140,7 @@ export function everyModuleNode(mod: IrModule, visitor: IrModuleVisitor): boolea for (const cls of mod.classes ?? []) { for (const capture of cls.localCaptures ?? []) if (!type(capture.type, cls.loc)) return false; for (const field of cls.fields) if (!type(field.type, cls.loc)) return false; + if (cls.arrayElem !== undefined && !type(cls.arrayElem, cls.loc)) return false; } for (const global of mod.globals ?? []) if (!type(global.type, global.source?.loc ?? entryLoc)) return false; diff --git a/packages/compiler/src/ir/validate.ts b/packages/compiler/src/ir/validate.ts index d7eee18bf..0dea09d1e 100644 --- a/packages/compiler/src/ir/validate.ts +++ b/packages/compiler/src/ir/validate.ts @@ -2993,6 +2993,18 @@ function validateFunction( } break; } + // An instance of a class declared `extends Array` and its array + // are the same object: upcast to the array, downcast back. + { + const instance = e.kind === "upcast" ? e.value.type : e.type; + const array = e.kind === "upcast" ? e.type : e.value.type; + if (instance.kind === "object" && array.kind === "array") { + const elem = classes.get(instance.className)?.arrayElem; + if (elem === undefined || !typeEquals(elem, array.elem)) + err(`${e.kind}: "${instance.className}" is not an array of that element type`, e.loc); + break; + } + } if (e.type.kind !== "object" || e.value.type.kind !== "object") { err(`${e.kind} between non-class types`, e.loc); break; @@ -3100,6 +3112,15 @@ function validateFunction( case "instanceOf": { checkExpr(e.value); if (e.type.kind !== "bool") err("instanceOf must be bool", e.loc); + // An array against a class declared `extends Array` (its ext). + if (e.value.type.kind === "array") { + if (classes.get(e.className)?.arrayElem === undefined) + err( + `instanceOf of an array against "${e.className}", which does not extend Array`, + e.loc, + ); + break; + } if (!hierarchy.has(e.className)) { err(`instanceOf against non-hierarchy class "${e.className}"`, e.loc); } @@ -4190,6 +4211,28 @@ function validateFunction( } function checkLibValueCall(e: IrExpr & { kind: "libCall" }): boolean { + // ArraySpeciesCreate over an Array method's result, and Array.of / + // Array.from on a class that extends Array: the result has the plain + // result's array type. + if (e.fn === "array.dynIsClass") { + const cls = e.args[1]?.kind === "strLit" ? classes.get(e.args[1].value) : undefined; + if (cls?.arrayElem === undefined) + err("libCall array.dynIsClass must name a class that extends Array", e.loc); + return false; + } + if (e.fn === "array.speciesAdopt" || e.fn === "array.classConstructAdopt") { + const plain = e.args[1]; + if (plain?.type.kind !== "array" || !typeEquals(e.type, plain.type)) + err(`libCall ${e.fn} must have its array argument's type`, e.loc); + if (e.fn === "array.speciesAdopt" && e.args[0]?.type.kind !== "array") + err("libCall array.speciesAdopt receiver must be an array", e.loc); + if (e.fn === "array.classConstructAdopt") { + const cls = e.args[0]?.kind === "strLit" ? classes.get(e.args[0].value) : undefined; + if (cls?.arrayElem === undefined) + err("libCall array.classConstructAdopt must name a class that extends Array", e.loc); + } + return true; + } const cryptoPromise = CRYPTO_PROMISE_VALUES[e.fn]; if (cryptoPromise) { const inner = e.type.kind === "promise" ? e.type.inner : undefined; diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7720-array-subclass-basics.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7720-array-subclass-basics.ts.json new file mode 100644 index 000000000..11b1d8d51 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7720-array-subclass-basics.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7720-array-subclass-basics.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7721-array-subclass-species.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7721-array-subclass-species.ts.json new file mode 100644 index 000000000..41bd59eb2 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7721-array-subclass-species.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7721-array-subclass-species.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7722-array-subclass-zero-array.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7722-array-subclass-zero-array.js.json new file mode 100644 index 000000000..6cbc69c47 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7722-array-subclass-zero-array.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7722-array-subclass-zero-array.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7723-array-subclass-as-array.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7723-array-subclass-as-array.ts.json new file mode 100644 index 000000000..4671e20ea --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7723-array-subclass-as-array.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7723-array-subclass-as-array.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7724-array-subclass-cycles.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7724-array-subclass-cycles.ts.json new file mode 100644 index 000000000..7956c64c5 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7724-array-subclass-cycles.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7724-array-subclass-cycles.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7725-array-subclass-operations.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7725-array-subclass-operations.ts.json new file mode 100644 index 000000000..5d9c82a12 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7725-array-subclass-operations.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7725-array-subclass-operations.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7726-array-subclass-expressions.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7726-array-subclass-expressions.js.json new file mode 100644 index 000000000..7d49ce0ac --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7726-array-subclass-expressions.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7726-array-subclass-expressions.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/array-subclass-fences.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/array-subclass-fences.ts.json new file mode 100644 index 000000000..659372fdb --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/array-subclass-fences.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/array-subclass-fences.ts" + ], + "diags": [] +} diff --git a/packages/runtime/src/scr_array.c b/packages/runtime/src/scr_array.c index 4c7b84d98..aed1b5c0c 100644 --- a/packages/runtime/src/scr_array.c +++ b/packages/runtime/src/scr_array.c @@ -1590,8 +1590,8 @@ static inline __attribute__((always_inline)) void scr_arr_free(ScrArr *a) { scr_mem_free(a); } -static void scr_arr_destroy(void *object) { - ScrArr *a = object; +/* Releases an array's elements and ext contents (destroy's first half). */ +static void scr_arr_release_contents(ScrArr *a) { if (scr_arr_ext_of(a)) { scr_dyn_release(scr_arr_ext_of(a)->metadata); scr_arr_ext_of(a)->metadata = NULL; @@ -1657,10 +1657,209 @@ static void scr_arr_destroy(void *object) { } } } +} + +static void scr_arr_destroy(void *object) { + ScrArr *a = object; + scr_arr_release_contents(a); if (a->cyc) scr_arr_gc_free(a); else scr_arr_free(a); } +void scr_arr_subclass_init(ScrArr *a, uint8_t elem, const ScrArrOps *ops, const ScrArrClass *cls, + bool cyc) { + a->len = 0; + a->cap = 0; + a->elem = elem; + a->cyc = cyc ? 1 : 0; + uint32_t id = ops ? scr_arr_ops_id(ops) : 0; + a->spare = (uint16_t)(id << SCR_ARR_OPS_SHIFT); + a->filled = 0; + a->data = NULL; + ScrArrExt *x = scr_arr_ext(a); + if (id == SCR_ARR_OPS_OVERFLOW) x->ops = ops; + x->cls = cls; +#ifdef SCR_RC_AUDIT + scr_live_arrays++; +#endif +} + +/* super(...args) in a class that extends Array, as the Array constructor: + * one number argument sets the length (a RangeError for an invalid length), + * otherwise the arguments become the elements. `args` has the instance's + * element type and is borrowed; `dyn_elems` says its elements are dyn + * values, whose number test reads the value. */ +void scr_arr_subclass_construct(ScrArr *a, ScrArr *args, bool dyn_elems) { + if (args->len == 1) { + if (args->elem == SCR_ELEM_F64 || args->elem == SCR_ELEM_I32) { + scr_arr_set_len(a, scr_arr_get_number(args, 0)); + return; + } + if (dyn_elems) { + const ScrDyn *d = scr_arr_borrow_ref(args, 0); + if (d != NULL && d->kind == SCR_DYN_NUM) { + scr_arr_set_len(a, d->v.num); + return; + } + } + } + if (args->len > 0) (void)scr_arr_push_spread(a, args); +} + +/* The implicit constructor of a class that extends Array forwards its + * arguments (a dyn array) to super: the same rule, each argument converted + * to the element type. Element types other than numbers, booleans, strings + * and dyn values take only the length form. */ +void scr_arr_subclass_construct_dyn(ScrArr *a, const ScrDyn *args, bool dyn_elems) { + if (args == NULL || args->kind != SCR_DYN_ARR) return; + size_t n = args->v.arr.len; + ScrDyn *const *items = args->v.arr.items; + if (n == 1 && items[0] != NULL && items[0]->kind == SCR_DYN_NUM) { + scr_arr_set_len(a, items[0]->v.num); + return; + } + for (size_t i = 0; i < n; i++) { + ScrDyn *d = items[i]; + if (dyn_elems) { + (void)scr_arr_push_ref(a, scr_dyn_retain(d)); + continue; + } + if ((a->elem == SCR_ELEM_F64 || a->elem == SCR_ELEM_I32) && d && d->kind == SCR_DYN_NUM) { + (void)scr_arr_push_f64(a, d->v.num); + } else if (a->elem == SCR_ELEM_BOOL && d && d->kind == SCR_DYN_BOOL) { + (void)scr_arr_push_bool(a, d->v.b); + } else if (a->elem == SCR_ELEM_STR && d && d->kind == SCR_DYN_STR) { + (void)scr_arr_push_ref(a, scr_str_retain(d->v.str)); + } else { + static const char msg[] = + "constructing this Array subclass with element arguments is not supported yet"; + scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1); + return; + } + } +} + +static void scr_arr_set_slot(ScrArr *a, double i, uint64_t slot); + +static ScrArr *scr_arr_species_fill(const ScrArrClass *cls, ScrArr *result, double ctor_length, + bool with_length, bool set_length); + +/* Gives an Array subclass instance holding no elements (only holes) another + * element type: its storage is dropped and its length kept. */ +static void scr_arr_retype_empty(ScrArr *a, uint8_t elem, const ScrArrOps *ops) { + uint32_t len = a->len; + ScrArrExt *x = scr_arr_ext_of(a); + const ScrArrClass *cls = x->cls; + scr_arr_free_parts(a); + a->data = NULL; + a->len = a->cap = a->filled = 0; + a->elem = elem; + uint32_t id = ops ? scr_arr_ops_id(ops) : 0; + a->spare = (uint16_t)(id << SCR_ARR_OPS_SHIFT); + x = scr_arr_ext(a); + if (id == SCR_ARR_OPS_OVERFLOW) x->ops = ops; + x->cls = cls; + scr_arr_set_len(a, (double)len); +} + +ScrArr *scr_arr_species_adopt(ScrArr *recv, ScrArr *result, double ctor_length, bool set_length) { + const ScrArrClass *cls = scr_arr_class_of(recv); + if (cls == NULL) return result; + if (ctor_length < 0) ctor_length = (double)result->len; + return scr_arr_species_fill(cls, result, ctor_length, true, set_length); +} + +ScrArr *scr_arr_class_construct_adopt(const ScrArrClass *cls, ScrArr *result, double ctor_length) { + return scr_arr_species_fill(cls, result, ctor_length < 0 ? 0 : ctor_length, ctor_length >= 0, true); +} + +static ScrArr *scr_arr_species_fill(const ScrArrClass *cls, ScrArr *result, double ctor_length, + bool with_length, bool set_length) { + if (cls->species == NULL) { + static const char msg[] = + "this Array subclass's constructor cannot construct a species result (Symbol.species)"; + scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1); + return result; + } + ScrArr *species = cls->species(ctor_length, with_length); + if (scr_exc_pending()) { + scr_arr_release(species); + return result; + } + if (species->elem != result->elem || scr_arr_ops(species) != scr_arr_ops(result)) { + /* A result of another element type (map, flatMap): an instance the + * constructor left without elements takes the result's element type; + * its length stays. An instance whose collector header the elements + * would need, or that already holds elements, cannot. */ + const ScrArrOps *ops = scr_arr_ops(result); + bool traced = ops != NULL && ops->trace != NULL; + bool empty = true; + for (size_t i = 0; empty && i < species->len; i++) { + uint64_t slot; + empty = scr_arr_state_at(species, i, &slot) == SCR_ARR_HOLE; + } + if (!empty || (traced && !species->cyc)) { + static const char msg[] = + "an Array subclass's species result of another element type is not supported yet"; + scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1); + scr_arr_release(species); + return result; + } + scr_arr_retype_empty(species, result->elem, ops); + } + for (size_t i = 0; i < result->len; i++) { + uint64_t slot; + uint8_t state = scr_arr_state_at(result, i, &slot); + if (state == SCR_ARR_VALUE) scr_arr_set_slot(species, (double)i, scr_elem_retain_slot(result, slot)); + else if (state == SCR_ARR_UNDEFINED) scr_arr_set_undefined(species, (double)i); + } + if (set_length) scr_arr_set_len(species, (double)result->len); + scr_arr_release(result); + return species; +} + +bool scr_dyn_is_array_class(const ScrDyn *d, const ScrArrClass *cls) { + if (d == NULL) return false; + /* A live view of the native instance. */ + if (d->kind == SCR_DYN_TYPED_REF && d->v.typed_ref.array != NULL && !d->v.typed_ref.record && + !d->v.typed_ref.klass && !d->v.typed_ref.bag_class) + return scr_arr_class_of(d->v.typed_ref.ptr) == cls; + /* A snapshot: scr_arr_copy_metadata names the class by its name's + * address, which each class owns. */ + if (d->kind == SCR_DYN_ARR) { + const ScrDyn *props = d->v.arr.properties; + return props != NULL && props->v.obj.class_name == cls->name; + } + return false; +} + +const ScrArrClass *scr_arr_class_of(const ScrArr *a) { + if (!(a->spare & SCR_ARR_HAS_EXT)) return NULL; + return scr_arr_ext_of((ScrArr *)a)->cls; +} + +void scr_arr_subclass_gc_drop(ScrArr *a, bool traced) { + if (!traced) scr_arr_release_contents(a); + scr_arr_free_parts(a); + a->data = NULL; + a->len = a->cap = a->filled = 0; + a->spare &= (uint16_t)~SCR_ARR_HAS_EXT; +#ifdef SCR_RC_AUDIT + scr_live_arrays--; +#endif +} + +void scr_arr_subclass_drop(ScrArr *a) { + scr_arr_release_contents(a); + scr_arr_free_parts(a); + a->data = NULL; + a->len = a->cap = a->filled = 0; + a->spare &= (uint16_t)~SCR_ARR_HAS_EXT; +#ifdef SCR_RC_AUDIT + scr_live_arrays--; +#endif +} + /* Whether destroying `a`, an acyclic array, releases nothing: it has no ext * and its elements are numbers, booleans or compact references, or * references whose release does nothing (SCR_ARR_OPS_RELEASE_NOTHING). */ @@ -1674,6 +1873,12 @@ static inline bool scr_arr_releases_nothing(const ScrArr *a) { void scr_arr_release(ScrArr *a) { if (!a || a->rc == SIZE_MAX) return; /* NULL: an uninitialized `let` local */ if (--a->rc == 0) { + /* An Array subclass instance: its class tears it down. */ + if ((a->spare & SCR_ARR_HAS_EXT) && scr_arr_ext_of(a)->cls) { + if (a->cyc) scr_cyc_dead(a); + scr_arr_ext_of(a)->cls->destroy(a); + return; + } /* Nothing to tear down: free the storage without scr_rc_destroy's * queue (no release can recurse) or the element loop. */ if (!a->cyc && scr_arr_releases_nothing(a)) { @@ -5350,10 +5555,32 @@ bool scr_arr_numeric_key(const char *key, size_t len, double *out) { bool scr_arr_has_properties(const ScrArr *a) { const ScrArrExt *x = scr_arr_ext_of(a); - return x && (x->prop_len || x->metadata); + return x && (x->prop_len || x->metadata || x->cls); +} + +/* The own fields of an Array subclass instance (ScrArrClass.fields), a + * fresh dyn object, or NULL. */ +static ScrDyn *scr_arr_class_fields(ScrArr *a) { + const ScrArrClass *cls = scr_arr_class_of(a); + if (!cls || !cls->fields) return NULL; + return cls->fields(scr_arr_retain(a)); } void scr_arr_copy_metadata(ScrArr *a, ScrDyn *target) { + const ScrArrClass *cls = scr_arr_class_of(a); + if (cls) { + /* An Array subclass instance: the class name util.inspect prints before + * the elements, then the class's own fields as properties. */ + if (!target->v.arr.properties) target->v.arr.properties = scr_dyn_new_obj(); + target->v.arr.properties->v.obj.class_name = cls->name; + ScrDyn *fields = scr_arr_class_fields(a); + if (fields) { + for (size_t i = 0; i < fields->v.obj.len; i++) + scr_dyn_copy_entry(target, fields, &fields->v.obj.entries[i]); + scr_dyn_release(fields); + } + return; + } const ScrDyn *metadata = SCR_AX(a)->metadata; if (metadata && metadata->kind == SCR_DYN_HANDLE && metadata->v.handle.tag == SCR_DYNH_MATCH_SOURCE && scr_arr_match_copy(a, target)) @@ -5372,6 +5599,15 @@ ScrArr *scr_arr_named_keys(ScrArr *a) { ScrArr *keys = scr_arr_new(SCR_ELEM_STR, 0); for (size_t i = 0; i < x->prop_len; i++) scr_arr_push_ref(keys, scr_str_new(x->props[i].key, x->props[i].key_len)); + ScrDyn *fields = scr_arr_class_fields(a); + if (fields) { + for (size_t i = 0; i < fields->v.obj.len; i++) { + const ScrDynEntry *entry = &fields->v.obj.entries[i]; + if (entry->enumerable) scr_arr_push_ref(keys, scr_str_new(entry->key, entry->key_len)); + } + scr_dyn_release(fields); + return keys; + } const ScrDyn *metadata = x->metadata; if (metadata && metadata->kind == SCR_DYN_HANDLE && metadata->v.handle.tag == SCR_DYNH_MATCH_SOURCE) { static const char *const names[] = {"index", "input", "groups"}; diff --git a/packages/runtime/src/scr_array.h b/packages/runtime/src/scr_array.h index 23390a183..de51e2938 100644 --- a/packages/runtime/src/scr_array.h +++ b/packages/runtime/src/scr_array.h @@ -171,7 +171,31 @@ typedef struct ScrArrExt { /* The element ops of an array whose ops have no registry id * (SCR_ARR_OPS_OVERFLOW). */ const ScrArrOps *ops; + /* The class of an instance of a program class that extends Array + * (scr_arr_subclass_init); NULL for every other array. */ + const struct ScrArrClass *cls; } ScrArrExt; + +/* A program class that extends Array. Its instances are emitted structs + * that begin with a ScrArr (the reference count is the array's) and keep + * the class's own fields after it; they always have an ext, whose `cls` + * names the class. Every array entry point accepts them as arrays. */ +typedef struct ScrArrClass { + /* The class's name, as constructor.name reads it. */ + const char *name; + /* Destroys an instance whose count reached zero: releases the class's own + * fields, then scr_arr_subclass_drop, then frees the instance. */ + void (*destroy)(ScrArr *a); + /* The class's own fields as a dyn object in declaration order (the array + * is passed owned, +1), or NULL when the class declares none. util.inspect + * and Object.keys list them after the elements. */ + struct ScrDyn *(*fields)(ScrArr *a); + /* `new C(length)` (`new C()` without `with_length`): the instance + * ArraySpeciesCreate makes for map, filter, slice, splice, concat, flat + * and flatMap, and Array.of / Array.from called on the class. NULL when + * the class's constructor cannot take that argument. */ + ScrArr *(*species)(double length, bool with_length); +} ScrArrClass; /* The LLVM backend mirrors ScrArr as %ScrArr: its inline retain/release read * `cyc` (field 4, i8) to decide mark-live / candidate buffering exactly like * scr_arr_retain and scr_arr_release; its inline element access uses len and @@ -471,6 +495,40 @@ static inline ScrArr *scr_arr_retain(ScrArr *a) { * NULL-tolerant (uninitialized locals). Cycle-capable arrays (`cyc`) feed * the candidate-root buffer like every headered type. */ void scr_arr_release(ScrArr *a); +/* Initializes the ScrArr prefix of a zeroed, freshly allocated instance of + * an Array subclass (count already 1): no elements, the element kind and + * ops, and an ext naming the class. `cyc` says the instance carries the + * collector header (its class is cycle-capable). */ +void scr_arr_subclass_init(ScrArr *a, uint8_t elem, const ScrArrOps *ops, const ScrArrClass *cls, + bool cyc); +/* The collector's teardown of an Array subclass instance's storage: the + * elements are released unless they are the collector's (`traced`). */ +void scr_arr_subclass_gc_drop(ScrArr *a, bool traced); +/* super(...args) in a class that extends Array (the Array constructor's + * length-or-elements rule); `args` is borrowed. */ +void scr_arr_subclass_construct(ScrArr *a, ScrArr *args, bool dyn_elems); +/* The implicit constructor's super(...args) over its dyn argument array. */ +void scr_arr_subclass_construct_dyn(ScrArr *a, const struct ScrDyn *args, bool dyn_elems); +/* ArraySpeciesCreate over the result `result` (owned) of an Array method + * called on `recv` (borrowed): a plain receiver keeps the result; a + * subclass instance's result is `new C(ctor_length)`, whose indices then + * receive the result's present elements, and whose length is set to the + * result's when `set_length` (slice, splice and concat set it; map, + * filter, flat and flatMap do not). A negative `ctor_length` passes the + * result's length. Result owned. */ +ScrArr *scr_arr_species_adopt(ScrArr *recv, ScrArr *result, double ctor_length, bool set_length); +/* Array.of / Array.from called on an Array subclass: `new C(ctor_length)` + * (`new C()` when ctor_length is negative), then the elements of `result` + * (owned) and its length, as scr_arr_species_adopt. */ +ScrArr *scr_arr_class_construct_adopt(const ScrArrClass *cls, ScrArr *result, double ctor_length); +/* `value instanceof C` for a dyn value and a class that extends Array: a + * live view of an instance of C, or a snapshot of one. */ +bool scr_dyn_is_array_class(const struct ScrDyn *d, const ScrArrClass *cls); +/* The class of an Array subclass instance, or NULL for a plain array. */ +const ScrArrClass *scr_arr_class_of(const ScrArr *a); +/* Releases the elements of an Array subclass instance and frees its + * storage and ext, leaving the instance itself to its class's destroy. */ +void scr_arr_subclass_drop(ScrArr *a); void scr_arr_copy_metadata(ScrArr *a, struct ScrDyn *target); /* The commit of a live array view calls this on `a`, the array converted * from `view`, before `target` takes its storage: `a` takes the view's named diff --git a/packages/runtime/src/scr_inspect.c b/packages/runtime/src/scr_inspect.c index 79b2564ff..3ad34cb95 100644 --- a/packages/runtime/src/scr_inspect.c +++ b/packages/runtime/src/scr_inspect.c @@ -1513,8 +1513,25 @@ ScrStr *scr_insp_dyn(ScrDyn *d, double recurse, double depth) { const ScrDyn *props = d->v.arr.properties; size_t nprops = 0; for (size_t i = 0; props && i < props->v.obj.len; i++) nprops += props->v.obj.entries[i].enumerable; - if (len == 0 && nprops == 0) return scr_str_new("[]", 2); - if (recurse > depth) return scr_str_new("[Array]", 7); + /* An instance of a class that extends Array: Node's `Name(length) ` + * prefix (scr_arr_copy_metadata names the class). */ + const char *cls = props ? props->v.obj.class_name : NULL; + char prefix[160] = ""; + if (cls) snprintf(prefix, sizeof prefix, "%.120s(%zu) ", cls, len); + if (len == 0 && nprops == 0) { + InspBuf eb = {0}; + ib_cstr(&eb, prefix); + ib_cstr(&eb, "[]"); + return ib_take(&eb); + } + if (recurse > depth) { + if (!cls) return scr_str_new("[Array]", 7); + InspBuf eb = {0}; + ib_char(&eb, '['); + ib_cstr(&eb, cls); + ib_char(&eb, ']'); + return ib_take(&eb); + } scr_insp_begin(recurse + 1); /* Node's maxArrayLength (100) counts output entries; a run of holes * is one `` entry (formatSpecialArray). */ @@ -1568,7 +1585,10 @@ ScrStr *scr_insp_dyn(ScrDyn *d, double recurse, double depth) { * array has no properties). */ bool last_out = entries > 100; ScrStr *base = scr_str_new("", 0); - ScrStr *b0 = scr_str_new("[", 1); + InspBuf ob = {0}; + ib_cstr(&ob, prefix); + ib_char(&ob, '['); + ScrStr *b0 = ib_take(&ob); ScrStr *b1 = scr_str_new("]", 1); ScrStr *out = scr_insp_end(base, b0, b1, recurse + 1, true, last_out); scr_str_release(base); diff --git a/tests/corpus/7720-array-subclass-basics.ts b/tests/corpus/7720-array-subclass-basics.ts new file mode 100644 index 000000000..1e5130f9d --- /dev/null +++ b/tests/corpus/7720-array-subclass-basics.ts @@ -0,0 +1,44 @@ +// A class that extends Array: construction (one number argument sets the +// length, other arguments become the elements), length and index writes, +// Array.isArray, instanceof, constructor, inherited methods, the subclass's +// own fields and methods, and how console.log and JSON show the instance. +class Stack extends Array { + pushes = 0; + + top(): number | undefined { + return this[this.length - 1]; + } + + add(value: number): this { + this.push(value); + this.pushes++; + return this; + } +} + +const s = new Stack(); +s.add(1).add(2).add(3); +console.log(s.length, s.top(), s.pushes); +console.log(Array.isArray(s), s instanceof Stack, s instanceof Array, s.constructor === Stack); +console.log(s); +console.log(JSON.stringify(s)); +s[5] = 9; +console.log(s.length, s[4], s); +s.length = 2; +console.log(s, s.indexOf(2), s.includes(3), s.join("-")); +s.reverse(); +console.log(s.top(), s); + +const sized = new Stack(3); +console.log(sized.length, sized, 0 in sized); +const listed = new Stack(4, 5); +console.log(listed.length, listed); + +try { + new Stack(-1); +} catch (e) { + console.log((e as Error).name, (e as Error).message); +} + +for (const v of listed) console.log("item", v); +console.log([...listed, 6], Object.keys(listed)); diff --git a/tests/corpus/7721-array-subclass-species.ts b/tests/corpus/7721-array-subclass-species.ts new file mode 100644 index 000000000..03e0d19ab --- /dev/null +++ b/tests/corpus/7721-array-subclass-species.ts @@ -0,0 +1,37 @@ +// Array.prototype methods that create a new array construct it through the +// subclass (ArraySpeciesCreate): map, filter, slice, splice, concat, flat +// and flatMap return an instance of the subclass, built by calling its +// constructor with the length the specification passes. Methods that +// return the receiver keep it, and Array.of / Array.from inherited as +// statics construct the subclass too. +class Logged extends Array { + constructor(...args: number[]) { + super(...args); + console.log("construct", args.length === 1 ? `length ${args[0]}` : `items ${args.join(",")}`); + } + + sum(): number { + let total = 0; + for (const v of this) total += v; + return total; + } +} + +const base = Logged.of(1, 2, 3, 4); +console.log(base instanceof Logged, base); +const doubled = base.map((v) => v * 2); +console.log(doubled instanceof Logged, (doubled as Logged).sum(), doubled); +const even = base.filter((v) => v % 2 === 0); +console.log(even instanceof Logged, even); +const part = base.slice(1, 3); +console.log(part instanceof Logged, part); +const removed = base.splice(0, 1); +console.log(removed instanceof Logged, removed, base); +const joined = base.concat([7, 8]); +console.log(joined instanceof Logged, joined.length, joined); +const flat = base.flatMap((v) => [v, v]); +console.log(flat instanceof Logged, flat.length); +const filled = base.fill(0, 0, 1); +console.log(filled === base, base); +const from = Logged.from([5, 6]); +console.log(from instanceof Logged, (from as Logged).sum()); diff --git a/tests/corpus/7722-array-subclass-zero-array.js b/tests/corpus/7722-array-subclass-zero-array.js new file mode 100644 index 000000000..1ed52d386 --- /dev/null +++ b/tests/corpus/7722-array-subclass-zero-array.js @@ -0,0 +1,16 @@ +// lru-cache's ZeroArray: a JavaScript class extending Array whose +// constructor fills the new array with zeros, constructed directly and +// through map (species construction runs the constructor again). +class ZeroArray extends Array { + constructor(size) { + super(size); + this.fill(0); + } +} + +const z = new ZeroArray(4); +z[1] = 7; +console.log(z, z.length, z instanceof ZeroArray, Array.isArray(z)); +const m = z.map((v) => v + 1); +console.log(m, m instanceof ZeroArray); +console.log(z.slice(1) instanceof ZeroArray, String(z)); diff --git a/tests/corpus/7723-array-subclass-as-array.ts b/tests/corpus/7723-array-subclass-as-array.ts new file mode 100644 index 000000000..5faf5b13f --- /dev/null +++ b/tests/corpus/7723-array-subclass-as-array.ts @@ -0,0 +1,21 @@ +// A subclass instance passed where a plain array is expected is the same +// object: writes through either view are seen through the other, and +// species construction still applies in code typed with the plain array. +class Path extends Array { + label = "path"; +} + +function addSegment(parts: string[], segment: string): string[] { + parts.push(segment); + return parts.filter((part) => part.length > 0); +} + +const p = new Path(); +p.push("a", "", "b"); +const filtered = addSegment(p, "c"); +console.log(p.length, filtered.length, filtered instanceof Path, (filtered as Path).label); +const view: string[] = p; +view[0] = "z"; +console.log(p[0], view === p, p.label); +console.log(p.map((s) => s.toUpperCase())); +console.log(Object.keys(p)); diff --git a/tests/corpus/7724-array-subclass-cycles.ts b/tests/corpus/7724-array-subclass-cycles.ts new file mode 100644 index 000000000..9a1a7b813 --- /dev/null +++ b/tests/corpus/7724-array-subclass-cycles.ts @@ -0,0 +1,36 @@ +// An Array subclass whose elements and fields refer back to the instance: +// the cycles are collected once nothing outside them is reachable, and +// the elements and fields read back as Node reads them. +class Member { + name: string; + group: Group | undefined; + constructor(name: string, group: Group | undefined) { + this.name = name; + this.group = group; + } +} + +class Group extends Array { + owner: Member | undefined = undefined; + + add(name: string): Member { + const member = new Member(name, this); + this.push(member); + return member; + } +} + +function build(round: number): number { + const g = new Group(); + const lead = g.add(`lead${round}`); + g.add(`member${round}`); + g.owner = lead; + return g.length + (g[0]!.group === g ? 1 : 0) + (g.owner === lead ? 1 : 0); +} + +let total = 0; +for (let i = 0; i < 200; i++) total += build(i); +console.log(total); +const kept = new Group(); +kept.add("a").group?.add("b"); +console.log(kept.length, kept.map((m) => m.name).join(","), kept[1]!.group === kept); diff --git a/tests/corpus/7725-array-subclass-operations.ts b/tests/corpus/7725-array-subclass-operations.ts new file mode 100644 index 000000000..94cfa8b04 --- /dev/null +++ b/tests/corpus/7725-array-subclass-operations.ts @@ -0,0 +1,46 @@ +// Array operations on an Array subclass instance: iteration, spread, +// destructuring, the mutators that return the instance itself, searches, +// length writes, Array.isArray through unknown, instanceof through unknown, +// and JSON. +class Row extends Array { + tag = "row"; + #reads = 0; + + static of2(a: string, b: string): Row { + const row = new Row(); + row.push(a, b); + return row; + } + + get size(): number { + this.#reads++; + return this.length; + } + + get reads(): number { + return this.#reads; + } + + label(): string { + return `${this.tag}:${this.join("|")}`; + } +} + +const r = new Row(); +console.log(r.push("b", "a", "c"), r.length, r.label()); +const [first, ...rest] = r; +console.log(first, rest, [...r].length); +for (const [i, v] of r.entries()) console.log(i, v); +console.log(r.sort() === r, r.label(), r.reverse() === r, r.label()); +console.log(r.fill("x", 1) === r, r.label(), r.indexOf("x"), r.lastIndexOf("x"), r.at(-1)); +console.log(r.pop(), r.shift(), r.length, r.unshift("z"), r.label()); +r.length = 0; +console.log(r.length, r.label(), JSON.stringify({ r })); +const u: unknown = r; +console.log(Array.isArray(u), u instanceof Row, u instanceof Array); +const rows: Row[] = [new Row(), new Row()]; +rows[1]!.push("q"); +console.log(rows.map((row) => row.label()).join(" ")); +console.log({ nested: rows[1] }); +const pair = Row.of2("m", "n"); +console.log(pair.size, pair.size, pair.reads, pair.label(), pair instanceof Row); diff --git a/tests/corpus/7726-array-subclass-expressions.js b/tests/corpus/7726-array-subclass-expressions.js new file mode 100644 index 000000000..d2e5d2a04 --- /dev/null +++ b/tests/corpus/7726-array-subclass-expressions.js @@ -0,0 +1,21 @@ +// Classes extending Array reached through expressions rather than +// declarations and locals: a construction used in place, a class +// expression held by a binding, and an instanceof test whose class the +// program never constructs. +class Sized extends Array { + describe() { + return `sized ${this.length}`; + } +} + +console.log(new Sized(3).length, new Sized(2).describe(), new Sized(1, 2).join("-")); +console.log(new Sized(4).fill(1), (new Sized(2)).length); + +const Holder = class extends Array {}; +const held = new Holder(); +held.push("a", "b"); +console.log(held instanceof Holder, held instanceof Array, [] instanceof Holder, held.length); + +class Unbuilt extends Array {} +const values = [[1, 2], "text", new Sized(1)]; +for (const value of values) console.log(value instanceof Unbuilt, Array.isArray(value)); diff --git a/tests/diagnostics/array-subclass-fences.ts b/tests/diagnostics/array-subclass-fences.ts new file mode 100644 index 000000000..cc2966201 --- /dev/null +++ b/tests/diagnostics/array-subclass-fences.ts @@ -0,0 +1,21 @@ +// Array subclasses that do not compile yet, each refused where it is +// declared: a generic subclass, a subclass of a class that extends Array, +// and a class that declares its own Symbol.species. +class Bag extends Array { + firstOr(fallback: T): T { + return this.length > 0 ? this[0]! : fallback; + } +} + +class Base extends Array {} +class Derived extends Base {} + +class Speciated extends Array { + static get [Symbol.species](): ArrayConstructor { + return Array; + } +} + +console.log(new Bag().firstOr(1)); +console.log(new Derived().length); +console.log(new Speciated().length); diff --git a/tests/harness/__snapshots__/array-subclass-fences.ts.txt b/tests/harness/__snapshots__/array-subclass-fences.ts.txt new file mode 100644 index 000000000..3d81a58a9 --- /dev/null +++ b/tests/harness/__snapshots__/array-subclass-fences.ts.txt @@ -0,0 +1,41 @@ +array-subclass-fences.ts:4:22 - error SC1090: a generic class that extends Array is not supported yet + + 3 | // and a class that declares its own Symbol.species. + 4 | class Bag extends Array { + | ^~~~~~~~ + 5 | firstOr(fallback: T): T { + +array-subclass-fences.ts:11:23 - error SC1090: extending 'Base', a class that extends Array (one level of Array subclass compiles) is not supported yet + + 10 | class Base extends Array {} + 11 | class Derived extends Base {} + | ^~~~ + 12 | + +array-subclass-fences.ts:14:3 - error SC1090: Symbol.species on a class that extends Array (its methods' results construct the class itself) is not supported yet + + 13 | class Speciated extends Array { + 14 | static get [Symbol.species](): ArrayConstructor { + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 15 | return Array; + +array-subclass-fences.ts:19:13 - error SC1090: constructing values other than classes declared in the program is not supported yet + + 18 | + 19 | console.log(new Bag().firstOr(1)); + | ^~~~~~~~~~~~~~~~~ + 20 | console.log(new Derived().length); + +array-subclass-fences.ts:20:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + + 19 | console.log(new Bag().firstOr(1)); + 20 | console.log(new Derived().length); + | ^~~~~~~~~~~~~ + 21 | console.log(new Speciated().length); + +array-subclass-fences.ts:21:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + + 20 | console.log(new Derived().length); + 21 | console.log(new Speciated().length); + | ^~~~~~~~~~~~~~~ + 22 | \ No newline at end of file diff --git a/tests/harness/corpus-costs/7720-array-subclass-basics.ts.json b/tests/harness/corpus-costs/7720-array-subclass-basics.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7720-array-subclass-basics.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7721-array-subclass-species.ts.json b/tests/harness/corpus-costs/7721-array-subclass-species.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7721-array-subclass-species.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7722-array-subclass-zero-array.js.json b/tests/harness/corpus-costs/7722-array-subclass-zero-array.js.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7722-array-subclass-zero-array.js.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7723-array-subclass-as-array.ts.json b/tests/harness/corpus-costs/7723-array-subclass-as-array.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7723-array-subclass-as-array.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7724-array-subclass-cycles.ts.json b/tests/harness/corpus-costs/7724-array-subclass-cycles.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7724-array-subclass-cycles.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7725-array-subclass-operations.ts.json b/tests/harness/corpus-costs/7725-array-subclass-operations.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7725-array-subclass-operations.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7726-array-subclass-expressions.js.json b/tests/harness/corpus-costs/7726-array-subclass-expressions.js.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7726-array-subclass-expressions.js.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } From 82ebbd4df7f88682634541516213345369044eea Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Fri, 23 Oct 2026 23:31:58 -0500 Subject: [PATCH 004/128] Fix the species trace, deep release, iteration bound and optional length findings --- packages/compiler/src/backend/llvm/classes.ts | 18 ++- .../lowering/builtins/array-classes.ts | 127 +++++++++++++----- .../lowering/containers/array-callbacks.ts | 30 +++++ .../7730-array-subclass-retyped-trace.ts.json | 6 + .../7731-array-subclass-deep-release.ts.json | 6 + .../7732-array-subclass-species-bound.ts.json | 6 + ...733-array-subclass-optional-length.ts.json | 6 + packages/runtime/src/scr_array.c | 19 ++- packages/runtime/src/scr_array.h | 7 +- .../7730-array-subclass-retyped-trace.ts | 33 +++++ .../7731-array-subclass-deep-release.ts | 17 +++ .../7732-array-subclass-species-bound.ts | 32 +++++ .../7733-array-subclass-optional-length.ts | 26 ++++ tests/diagnostics/array-subclass-fences.ts | 6 +- .../array-subclass-fences.ts.txt | 62 +++++---- .../7730-array-subclass-retyped-trace.ts.json | 1 + .../7731-array-subclass-deep-release.ts.json | 1 + .../7732-array-subclass-species-bound.ts.json | 1 + ...733-array-subclass-optional-length.ts.json | 1 + 19 files changed, 334 insertions(+), 71 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7730-array-subclass-retyped-trace.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7731-array-subclass-deep-release.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7732-array-subclass-species-bound.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7733-array-subclass-optional-length.ts.json create mode 100644 tests/corpus/7730-array-subclass-retyped-trace.ts create mode 100644 tests/corpus/7731-array-subclass-deep-release.ts create mode 100644 tests/corpus/7732-array-subclass-species-bound.ts create mode 100644 tests/corpus/7733-array-subclass-optional-length.ts create mode 100644 tests/harness/corpus-costs/7730-array-subclass-retyped-trace.ts.json create mode 100644 tests/harness/corpus-costs/7731-array-subclass-deep-release.ts.json create mode 100644 tests/harness/corpus-costs/7732-array-subclass-species-bound.ts.json create mode 100644 tests/harness/corpus-costs/7733-array-subclass-optional-length.ts.json diff --git a/packages/compiler/src/backend/llvm/classes.ts b/packages/compiler/src/backend/llvm/classes.ts index d848b86fc..e80370405 100644 --- a/packages/compiler/src/backend/llvm/classes.ts +++ b/packages/compiler/src/backend/llvm/classes.ts @@ -1481,13 +1481,11 @@ export function emitClassShapes( tracedFields.forEach((f, i) => { tr.push(...traceFieldVisitLines(struct, f.index, i, llvmCommentText(f.name))); }); - // An Array subclass instance's elements, when they are cycle-capable. - const tracedElements = - cls.arrayElem !== undefined && - traceAdapter(host, { kind: "array", elem: cls.arrayElem }) !== null; - if (tracedElements) { - host.declare(`declare void @scr_arr_trace_v(ptr, ptr, ptr)`); - tr.push(` call void @scr_arr_trace_v(ptr %o, ptr %visit, ptr %ctx) ; the elements`); + // An Array subclass instance's elements, when its current element + // storage is cycle-capable (a species result can retype it). + if (cls.arrayElem !== undefined) { + host.declare(`declare void @scr_arr_subclass_trace(ptr, ptr, ptr)`); + tr.push(` call void @scr_arr_subclass_trace(ptr %o, ptr %visit, ptr %ctx) ; the elements`); } tr.push(` ret void`, `}`, ``); defs.push(...tr); @@ -1508,9 +1506,9 @@ export function emitClassShapes( if (meta.threadSlot) gf.push(...slotForgetLines(host, struct, meta, "gfw")); if (cls.arrayElem !== undefined) { // The elements: traced ones are the collector's, the others are - // released with the storage. - host.declare(`declare void @scr_arr_subclass_gc_drop(ptr, i1 zeroext)`); - gf.push(` call void @scr_arr_subclass_gc_drop(ptr %o, i1 ${tracedElements})`); + // released with the storage (the same test as the trace's). + host.declare(`declare void @scr_arr_subclass_gc_drop(ptr)`); + gf.push(` call void @scr_arr_subclass_gc_drop(ptr %o)`); } gf.push(...emitObjectFree(host, true), ` ret void`, `}`, ``); defs.push(...gf); diff --git a/packages/compiler/src/frontend/lowering/builtins/array-classes.ts b/packages/compiler/src/frontend/lowering/builtins/array-classes.ts index c4ae4a60d..b416a8bec 100644 --- a/packages/compiler/src/frontend/lowering/builtins/array-classes.ts +++ b/packages/compiler/src/frontend/lowering/builtins/array-classes.ts @@ -12,6 +12,7 @@ import { isJsSourceFile, locOf } from "../../program.js"; import { stripTypeWrappers } from "../typed-arguments.js"; import { dynUndefinedExpr, nodeThrowExpr } from "../../../ir/build.js"; import { lowerArrayFromCall, lowerArrayOfCall } from "../containers/array-construction.js"; +import { boundedArrayHofHelper } from "../containers/array-callbacks.js"; import { storedClassValueType, type ClassInfo } from "../lower-classes.js"; import { BOOL, @@ -34,6 +35,18 @@ export function arrayClassBase( lowerer: Lowerer, heritage: ts.ExpressionWithTypeArguments, ): { elem: IrType } { + const decl = heritage.parent?.parent; + const self = + decl && ts.isClassLikeDeclaration(decl) + ? lowerer.checker.getSymbolAtLocation(decl.name ?? decl) + : undefined; + const element = heritage.typeArguments?.nodes[0]; + if ( + self && + element && + mentionsClass(lowerer, lowerer.checker.getTypeAtLocation(element), self, new Set()) + ) + lowerer.unsupported("SC1090", heritage, "classes that extend an Array of their own instances"); const mapped = lowerer.mapTypeOf(lowerer.checker.getTypeAtLocation(heritage)); // `extends Array` in JavaScript reads `any[]`: dyn elements. if (isJsSourceFile(ts.getSourceFileOfNode(heritage)) && mapped?.kind !== "array") @@ -47,6 +60,26 @@ export function arrayClassBase( return { elem: mapped!.kind === "array" ? mapped!.elem : DYN }; } +/** Whether `type` is the class `self`'s instance type, or holds it through + * unions, intersections or type arguments (`Group | null`, `Group[]`, + * `Map`): the class's array type would contain itself. + * Another class's members do not count, its instances are references. */ +function mentionsClass( + lowerer: Lowerer, + type: ts.Type, + self: ts.Symbol, + seen: Set, +): boolean { + if (seen.has(type)) return false; + seen.add(type); + if (type.getSymbol() === self) return true; + if (type.isUnionType() || type.isIntersectionType()) + return ts.constituentTypes(type).some((part) => mentionsClass(lowerer, part, self, seen)); + return lowerer.checker + .getTypeArguments(type as ts.TypeReference) + .some((argument) => mentionsClass(lowerer, argument, self, seen)); +} + /** The class declared `extends Array` at the root of `info`'s chain, or null. */ export function arrayRootOf(info: ClassInfo | null | undefined): ClassInfo | null { for (let c = info ?? null; c; c = c.base) if (c.extendsArray) return c; @@ -349,6 +382,15 @@ export function arrayClassFieldsFn(lowerer: Lowerer, info: ClassInfo): IrFunctio * take those arguments: they must be none, a forwarding rest (dyn or * number), or a number first parameter whose others may be omitted (whose * no-argument form throws). */ +/** A constructor parameter the species length argument can fill: a + * number, a checked-dynamic value, or a union with a number arm + * (`length?: number`). */ +function takesLength(lowerer: Lowerer, type: IrType): boolean { + if (type.kind === "f64" || type.kind === "dyn") return true; + if (type.kind !== "union") return false; + return lowerer.unions.get(type.unionId)?.arms.some((arm) => arm.kind === "f64") === true; +} + export function arrayClassSpeciesFn(lowerer: Lowerer, info: ClassInfo): IrFunction | null { const elem = arrayRootOf(info)!.extendsArray!.elem; const arrT = arrayOf(elem); @@ -381,31 +423,35 @@ export function arrayClassSpeciesFn(lowerer: Lowerer, info: ClassInfo): IrFuncti withLength = [{ kind: "arrayLit", elems: [n()], type: params[0]!.type, loc } as IrExpr]; without = [{ kind: "arrayLit", elems: [], type: params[0]!.type, loc } as IrExpr]; } else if ( - params[0]!.mode === "required" && - (params[0]!.type.kind === "f64" || params[0]!.type.kind === "dyn") && + (params[0]!.mode === "required" || params[0]!.mode === "omittable") && + takesLength(lowerer, params[0]!.type) && params.slice(1).every((p) => p.mode === "omittable") ) { - const rest = params - .slice(1) - .map((p) => - lowerer.coerceToExpected( - { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc } as IrExpr, - p.type, - ), - ); - // A dyn first parameter (a JavaScript `constructor(size)`) takes the - // length as a number, and undefined in the no-argument form. - if (params[0]!.type.kind === "dyn") without = [dynUndefinedExpr(loc), ...rest.map((e) => e)]; - withLength = [ - params[0]!.type.kind === "dyn" ? { kind: "dynFrom", value: n(), type: DYN, loc } : n(), - ...params - .slice(1) - .map((p) => - lowerer.coerceToExpected( + // An omitted argument is what a call without it passes: the + // parameter's default, or undefined. + const blame = info.decl ?? null; + const omitted = (p: (typeof params)[number]): IrExpr => + p.callDefault ?? + (blame + ? lowerer.undefinedArgFor(p.type, loc, blame) + : lowerer.coerceToExpected( { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc } as IrExpr, p.type, - ), - ), + )); + const rest = params.slice(1).map(omitted); + // A dyn first parameter (a JavaScript `constructor(size)`) and an + // optional or defaulted one take the length as a number, and their + // omitted value in the no-argument form. + if (params[0]!.type.kind === "dyn" || params[0]!.mode === "omittable") + without = [ + params[0]!.type.kind === "dyn" ? dynUndefinedExpr(loc) : omitted(params[0]!), + ...rest, + ]; + withLength = [ + params[0]!.type.kind === "dyn" + ? { kind: "dynFrom", value: n(), type: DYN, loc } + : lowerer.coerceToExpected(n(), params[0]!.type), + ...params.slice(1).map(omitted), ]; } if (withLength === null) return null; @@ -517,14 +563,17 @@ export function lowerWithArraySpecies( const receiverRef: IrExpr = { kind: "varRef", localId: local.id, type: receiver.type, loc }; if (mode.callback) { // The species constructor runs before the first callback: the - // arguments are evaluated in order, then the instance is created (with - // the receiver's length for map, 0 otherwise), then the method runs and - // its elements move into the instance. - if ( - result.kind !== "call" || - result.args[0]?.kind !== "varRef" || - result.args[0].localId !== local.id - ) + // arguments are evaluated in order, the receiver's length is read, the + // instance is created (with that length for map, 0 otherwise), then + // the method runs to that length and its elements move into the + // instance. + const bounded = + result.kind === "call" && + result.args[0]?.kind === "varRef" && + result.args[0].localId === local.id + ? boundedArrayHofHelper(lowerer, result.callee) + : null; + if (bounded === null || result.kind !== "call") lowerer.unsupported( "SC1090", call, @@ -537,9 +586,25 @@ export function lowerWithArraySpecies( stmts.push({ kind: "varDecl", localId: held.id, init: arg, loc }); args.push({ kind: "varRef", localId: held.id, type: arg.type, loc }); } + const bound = lowerer.declareHiddenLocal("%speciesLength", F64); + stmts.push({ + kind: "varDecl", + localId: bound.id, + init: { + kind: "arrIntrinsic", + method: "length", + receiver: receiverRef, + args: [], + type: F64, + loc, + }, + loc, + }); + const boundRef: IrExpr = { kind: "varRef", localId: bound.id, type: F64, loc }; + args.push(boundRef); const instance = lowerer.declareHiddenLocal("%speciesInstance", receiver.type); const length: IrExpr = mode.resultLength - ? { kind: "arrIntrinsic", method: "length", receiver: receiverRef, args: [], type: F64, loc } + ? boundRef : { kind: "numLit", value: 0, type: F64, loc }; stmts.push({ kind: "varDecl", @@ -561,7 +626,7 @@ export function lowerWithArraySpecies( fn: "array.speciesFinish", args: [ { kind: "varRef", localId: instance.id, type: receiver.type, loc }, - { ...result, args }, + { ...result, callee: bounded, args }, { kind: "boolLit", value: mode.setLength, type: BOOL, loc }, ], type: result.type, diff --git a/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts b/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts index edf65ab2b..923224950 100644 --- a/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts +++ b/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts @@ -3171,3 +3171,33 @@ export function lowerTuplePredicateCall( loc, }; } + +/** The `%arr.` helper `name` (map, flatMap or filter) taking its + * iteration bound as a last parameter: the loop runs to the bound instead + * of the receiver's length when it starts. ArraySpeciesCreate reads the + * receiver's length before the species constructor runs, so a constructor + * that appends to the receiver does not extend the loop + * (lowerWithArraySpecies). Null when `name` is no such helper. */ +export function boundedArrayHofHelper(lowerer: Lowerer, name: string): string | null { + const info = lowerer.arrHofInfo.get(name); + if (!info || info.method === "forEach") return null; + const bounded = `${name}.bounded`; + if (lowerer.liftedFnNamed(bounded)) return bounded; + const fn = lowerer.liftedFnNamed(name); + if (!fn) return null; + let replaced = false; + const body = fn.body.map((stmt): IrStmt => { + if (replaced || stmt.kind !== "varDecl" || stmt.localId !== "n.0") return stmt; + replaced = true; + return { ...stmt, init: varRef("bound.0", F64, stmt.loc) }; + }); + if (!replaced) return null; + lowerer.liftedFns.push({ + ...fn, + name: bounded, + params: [...fn.params, { localId: "bound.0", name: "bound", type: F64 }], + locals: [...fn.locals, { id: "bound.0", name: "bound", type: F64, mutable: false }], + body, + }); + return bounded; +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7730-array-subclass-retyped-trace.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7730-array-subclass-retyped-trace.ts.json new file mode 100644 index 000000000..a02b66c5a --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7730-array-subclass-retyped-trace.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7730-array-subclass-retyped-trace.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7731-array-subclass-deep-release.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7731-array-subclass-deep-release.ts.json new file mode 100644 index 000000000..76a9b3988 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7731-array-subclass-deep-release.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7731-array-subclass-deep-release.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7732-array-subclass-species-bound.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7732-array-subclass-species-bound.ts.json new file mode 100644 index 000000000..c36a8a1ba --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7732-array-subclass-species-bound.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7732-array-subclass-species-bound.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7733-array-subclass-optional-length.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7733-array-subclass-optional-length.ts.json new file mode 100644 index 000000000..96cb08414 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7733-array-subclass-optional-length.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7733-array-subclass-optional-length.ts" + ], + "diags": [] +} diff --git a/packages/runtime/src/scr_array.c b/packages/runtime/src/scr_array.c index 3b243dbb0..40e0580a4 100644 --- a/packages/runtime/src/scr_array.c +++ b/packages/runtime/src/scr_array.c @@ -1868,8 +1868,21 @@ const ScrArrClass *scr_arr_class_of(const ScrArr *a) { return scr_arr_ext_of((ScrArr *)a)->cls; } -void scr_arr_subclass_gc_drop(ScrArr *a, bool traced) { - if (!traced) scr_arr_release_contents(a); +/* Whether an Array subclass instance's elements are the collector's: its + * current element ops trace them. A species result can retype an empty + * instance's storage (scr_arr_species_move), so this follows the storage, + * not the element type the class declares. */ +static bool scr_arr_subclass_elements_traced(const ScrArr *a) { + const ScrArrOps *ops = scr_arr_ops(a); + return ops != NULL && ops->trace != NULL; +} + +void scr_arr_subclass_trace(void *a, ScrTraceVisit visit, void *ctx) { + if (scr_arr_subclass_elements_traced((ScrArr *)a)) scr_arr_trace_v(a, visit, ctx); +} + +void scr_arr_subclass_gc_drop(ScrArr *a) { + if (!scr_arr_subclass_elements_traced(a)) scr_arr_release_contents(a); scr_arr_free_parts(a); a->data = NULL; a->len = a->cap = a->filled = 0; @@ -1906,7 +1919,7 @@ void scr_arr_release(ScrArr *a) { /* An Array subclass instance: its class tears it down. */ if ((a->spare & SCR_ARR_HAS_EXT) && scr_arr_ext_of(a)->cls) { if (a->cyc) scr_cyc_dead(a); - scr_arr_ext_of(a)->cls->destroy(a); + scr_rc_destroy(a, scr_arr_ext_of(a)->cls->destroy); return; } /* Nothing to tear down: free the storage without scr_rc_destroy's diff --git a/packages/runtime/src/scr_array.h b/packages/runtime/src/scr_array.h index 56b7511e2..84057ffc9 100644 --- a/packages/runtime/src/scr_array.h +++ b/packages/runtime/src/scr_array.h @@ -185,7 +185,7 @@ typedef struct ScrArrClass { const char *name; /* Destroys an instance whose count reached zero: releases the class's own * fields, then scr_arr_subclass_drop, then frees the instance. */ - void (*destroy)(ScrArr *a); + void (*destroy)(void *a); /* The class's own fields as a dyn object in declaration order (the array * is passed owned, +1), or NULL when the class declares none. util.inspect * and Object.keys list them after the elements. */ @@ -503,7 +503,10 @@ void scr_arr_subclass_init(ScrArr *a, uint8_t elem, const ScrArrOps *ops, const bool cyc); /* The collector's teardown of an Array subclass instance's storage: the * elements are released unless they are the collector's (`traced`). */ -void scr_arr_subclass_gc_drop(ScrArr *a, bool traced); +void scr_arr_subclass_gc_drop(ScrArr *a); +/* The collector trace of an Array subclass instance's elements: visits + * them when its current element ops trace them. */ +void scr_arr_subclass_trace(void *a, ScrTraceVisit visit, void *ctx); /* super(...args) in a class that extends Array (the Array constructor's * length-or-elements rule); `args` is borrowed. */ void scr_arr_subclass_construct(ScrArr *a, ScrArr *args, bool dyn_elems); diff --git a/tests/corpus/7730-array-subclass-retyped-trace.ts b/tests/corpus/7730-array-subclass-retyped-trace.ts new file mode 100644 index 000000000..d1546c0af --- /dev/null +++ b/tests/corpus/7730-array-subclass-retyped-trace.ts @@ -0,0 +1,33 @@ +// A cycle-capable class that extends Array (its elements and its own field +// can close a cycle) whose map results take other element types: the +// collector traces and tears down each instance by the elements it holds. +// Garbage cycles make the collector run while the results are alive. +class Holder { + group: Group | null = null; +} + +class Group extends Array { + owner: Holder | null = null; +} + +function churn(rounds: number): number { + let made = 0; + for (let i = 0; i < rounds; i++) { + const holder = new Holder(); + const group = new Group(); + group.owner = holder; + holder.group = group; + group.push(holder); + made++; + } + return made; +} + +const groups = new Group(); +groups.push(new Holder(), null, new Holder()); +const numbers = groups.map((_, i) => i * 1.5 + 1e6); +const labels = groups.map((_, i) => `label-${i}`); +console.log(churn(20000)); +console.log(numbers instanceof Group, numbers.length, numbers.join(",")); +console.log(labels instanceof Group, labels.join(",")); +console.log(churn(20000), numbers[2], labels[1]); diff --git a/tests/corpus/7731-array-subclass-deep-release.ts b/tests/corpus/7731-array-subclass-deep-release.ts new file mode 100644 index 000000000..6e4b4c352 --- /dev/null +++ b/tests/corpus/7731-array-subclass-deep-release.ts @@ -0,0 +1,17 @@ +// Releasing a long chain of instances of a class that extends Array, each +// holding the next one, tears them down without growing the native stack. +class Link extends Array { + next: Link | null = null; +} + +let head: Link | null = new Link(); +let tail = head; +for (let i = 0; i < 300000; i++) { + const link = new Link(); + link.push(i); + tail.next = link; + tail = link; +} +console.log(tail.length, tail[0]); +head = null; +console.log("released", head); diff --git a/tests/corpus/7732-array-subclass-species-bound.ts b/tests/corpus/7732-array-subclass-species-bound.ts new file mode 100644 index 000000000..715c51165 --- /dev/null +++ b/tests/corpus/7732-array-subclass-species-bound.ts @@ -0,0 +1,32 @@ +// map, filter and flatMap read the receiver's length before the species +// constructor runs: elements the constructor appends to the receiver are +// not visited. +let watched: Growing | null = null; + +class Growing extends Array { + constructor(...args: number[]) { + super(...args); + if (watched !== null) watched.push(watched.length * 100); + } +} + +const source = Growing.from([1, 2, 3]); +watched = source; +const visits: number[] = []; +const doubled = source.map((value) => { + visits.push(value); + return value * 2; +}); +console.log(doubled.join(","), visits.join(","), source.join(",")); +visits.length = 0; +const kept = source.filter((value) => { + visits.push(value); + return value > 1; +}); +console.log(kept.join(","), visits.join(","), source.length); +visits.length = 0; +const spread = source.flatMap((value) => { + visits.push(value); + return [value]; +}); +console.log(spread.length, visits.length, source.length); diff --git a/tests/corpus/7733-array-subclass-optional-length.ts b/tests/corpus/7733-array-subclass-optional-length.ts new file mode 100644 index 000000000..302fc22cb --- /dev/null +++ b/tests/corpus/7733-array-subclass-optional-length.ts @@ -0,0 +1,26 @@ +// A class that extends Array whose constructor's length parameter is +// optional or has a default takes the species length argument: map, +// filter and slice construct their results through it. +class Optional extends Array { + constructor(length?: number) { + super(length ?? 0); + } +} + +class Defaulted extends Array { + tag: string; + constructor(length = 0, tag = "none") { + super(length); + this.tag = tag; + } +} + +const optional = Optional.from([1, 2, 3]); +const mapped = optional.map((value) => value * 10); +console.log(mapped instanceof Optional, mapped.join(","), optional.slice(1) instanceof Optional); +console.log(optional.filter((value) => value !== 2).join(",")); + +const defaulted = new Defaulted(2).fill("x"); +const sliced = defaulted.slice(0, 1); +if (sliced instanceof Defaulted) console.log(sliced.length, sliced.tag); +console.log(defaulted.map((s) => s + "!").join(",")); diff --git a/tests/diagnostics/array-subclass-fences.ts b/tests/diagnostics/array-subclass-fences.ts index cc2966201..478e615f9 100644 --- a/tests/diagnostics/array-subclass-fences.ts +++ b/tests/diagnostics/array-subclass-fences.ts @@ -1,6 +1,7 @@ // Array subclasses that do not compile yet, each refused where it is // declared: a generic subclass, a subclass of a class that extends Array, -// and a class that declares its own Symbol.species. +// a class that declares its own Symbol.species, and a class whose elements +// are its own instances. class Bag extends Array { firstOr(fallback: T): T { return this.length > 0 ? this[0]! : fallback; @@ -16,6 +17,9 @@ class Speciated extends Array { } } +class Nested extends Array {} + console.log(new Bag().firstOr(1)); console.log(new Derived().length); console.log(new Speciated().length); +console.log(new Nested().length); diff --git a/tests/harness/__snapshots__/array-subclass-fences.ts.txt b/tests/harness/__snapshots__/array-subclass-fences.ts.txt index 3d81a58a9..97e7bdc8d 100644 --- a/tests/harness/__snapshots__/array-subclass-fences.ts.txt +++ b/tests/harness/__snapshots__/array-subclass-fences.ts.txt @@ -1,41 +1,55 @@ -array-subclass-fences.ts:4:22 - error SC1090: a generic class that extends Array is not supported yet +array-subclass-fences.ts:5:22 - error SC1090: a generic class that extends Array is not supported yet - 3 | // and a class that declares its own Symbol.species. - 4 | class Bag extends Array { + 4 | // are its own instances. + 5 | class Bag extends Array { | ^~~~~~~~ - 5 | firstOr(fallback: T): T { + 6 | firstOr(fallback: T): T { -array-subclass-fences.ts:11:23 - error SC1090: extending 'Base', a class that extends Array (one level of Array subclass compiles) is not supported yet +array-subclass-fences.ts:12:23 - error SC1090: extending 'Base', a class that extends Array (one level of Array subclass compiles) is not supported yet - 10 | class Base extends Array {} - 11 | class Derived extends Base {} + 11 | class Base extends Array {} + 12 | class Derived extends Base {} | ^~~~ - 12 | + 13 | -array-subclass-fences.ts:14:3 - error SC1090: Symbol.species on a class that extends Array (its methods' results construct the class itself) is not supported yet +array-subclass-fences.ts:15:3 - error SC1090: Symbol.species on a class that extends Array (its methods' results construct the class itself) is not supported yet - 13 | class Speciated extends Array { - 14 | static get [Symbol.species](): ArrayConstructor { + 14 | class Speciated extends Array { + 15 | static get [Symbol.species](): ArrayConstructor { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 15 | return Array; + 16 | return Array; -array-subclass-fences.ts:19:13 - error SC1090: constructing values other than classes declared in the program is not supported yet +array-subclass-fences.ts:20:22 - error SC1090: classes that extend an Array of their own instances are not supported yet - 18 | - 19 | console.log(new Bag().firstOr(1)); + 19 | + 20 | class Nested extends Array {} + | ^~~~~~~~~~~~~~~~~~~~ + 21 | + +array-subclass-fences.ts:22:13 - error SC1090: constructing values other than classes declared in the program is not supported yet + + 21 | + 22 | console.log(new Bag().firstOr(1)); | ^~~~~~~~~~~~~~~~~ - 20 | console.log(new Derived().length); + 23 | console.log(new Derived().length); -array-subclass-fences.ts:20:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet +array-subclass-fences.ts:23:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet - 19 | console.log(new Bag().firstOr(1)); - 20 | console.log(new Derived().length); + 22 | console.log(new Bag().firstOr(1)); + 23 | console.log(new Derived().length); | ^~~~~~~~~~~~~ - 21 | console.log(new Speciated().length); + 24 | console.log(new Speciated().length); -array-subclass-fences.ts:21:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet +array-subclass-fences.ts:24:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet - 20 | console.log(new Derived().length); - 21 | console.log(new Speciated().length); + 23 | console.log(new Derived().length); + 24 | console.log(new Speciated().length); | ^~~~~~~~~~~~~~~ - 22 | \ No newline at end of file + 25 | console.log(new Nested().length); + +array-subclass-fences.ts:25:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + + 24 | console.log(new Speciated().length); + 25 | console.log(new Nested().length); + | ^~~~~~~~~~~~ + 26 | \ No newline at end of file diff --git a/tests/harness/corpus-costs/7730-array-subclass-retyped-trace.ts.json b/tests/harness/corpus-costs/7730-array-subclass-retyped-trace.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7730-array-subclass-retyped-trace.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7731-array-subclass-deep-release.ts.json b/tests/harness/corpus-costs/7731-array-subclass-deep-release.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7731-array-subclass-deep-release.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7732-array-subclass-species-bound.ts.json b/tests/harness/corpus-costs/7732-array-subclass-species-bound.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7732-array-subclass-species-bound.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } diff --git a/tests/harness/corpus-costs/7733-array-subclass-optional-length.ts.json b/tests/harness/corpus-costs/7733-array-subclass-optional-length.ts.json new file mode 100644 index 000000000..a663de213 --- /dev/null +++ b/tests/harness/corpus-costs/7733-array-subclass-optional-length.ts.json @@ -0,0 +1 @@ +{ "plain": 11000, "san": 9000 } From 1e2f9b2dfcbe82867161d745b8a2d47c053599c8 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Fri, 23 Oct 2026 23:52:50 -0500 Subject: [PATCH 005/128] Resolve computed createRequire specifiers at run time In JavaScript dependencies, a createRequire require call with a computed specifier, and require.resolve called with a computed request or read as a value, now compile. The new runtime unit scr_require.c resolves the specifier with Node 24's CommonJS algorithm (builtins, relative and absolute paths with Node's extension search, package "main", "exports" and self-reference, node_modules and NODE_PATH lookup) when the call runs: - require.resolve returns the id or real path Node returns, and throws Node's MODULE_NOT_FOUND error when nothing resolves. - require throws the same MODULE_NOT_FOUND error when nothing resolves, so packages that probe for optional addons, such as pi-tui, take their absent branch as in Node. When the specifier resolves to a native addon, a builtin or another file, Node would load that module: the program prints an SC2020 error naming it and exits with status 1, without running the catch clause around the call. Coverage lists these calls as deferred to runtime. TypeScript sources keep the compile-time refusal. Refs #1777. --- docs/content/limitations/native-addons.mdx | 10 + .../src/backend/executable-features.ts | 1 + .../compiler/src/backend/llvm/lib-shared.ts | 2 + .../src/backend/native-link-info-core.ts | 3 + .../compiler/src/backend/native/contracts.ts | 3 + .../compiler/src/backend/native/executable.ts | 2 + .../compiler/src/backend/runtime-pack-core.ts | 2 + .../compiler/src/diagnostics/diagnostic.ts | 15 + .../src/executable/executable-cache.ts | 1 + .../lowering/builtins/module-resolution.ts | 158 +++- .../lowering/expressions/identifiers.ts | 8 +- .../lowering/expressions/property-access.ts | 14 + .../src/frontend/lowering/import-meta.ts | 13 +- packages/compiler/src/frontend/program.ts | 63 +- packages/compiler/src/index.ts | 1 + packages/compiler/src/ir/builtin-effects.ts | 2 + .../compiler/src/ir/builtin-signatures.ts | 12 + packages/compiler/src/ir/runtime-features.ts | 4 + .../compiler/src/native/sanitizer.test.ts | 1 + .../main.ts.json | 6 + .../main.ts.json | 6 + .../main.ts.json | 6 + .../runtime-pack-matrix.mjs | 2 + packages/runtime/src/scr_path.h | 19 +- packages/runtime/src/scr_require.c | 895 ++++++++++++++++++ .../8210-require-computed-missing/main.ts | 7 + .../node_modules/optional-probe/index.d.ts | 2 + .../node_modules/optional-probe/index.js | 46 + .../node_modules/optional-probe/package.json | 1 + .../8211-require-resolve-computed/main.ts | 7 + .../node_modules/@scope/scoped/lib/node.js | 1 + .../node_modules/@scope/scoped/lib/other.js | 1 + .../node_modules/@scope/scoped/package.json | 1 + .../node_modules/plain-index/index.js | 1 + .../node_modules/resolve-probe/data.json | 1 + .../node_modules/resolve-probe/index.d.ts | 1 + .../node_modules/resolve-probe/index.js | 50 + .../node_modules/resolve-probe/package.json | 1 + .../node_modules/with-exports/cjs.cjs | 1 + .../node_modules/with-exports/esm.mjs | 1 + .../node_modules/with-exports/lib/feature.js | 1 + .../node_modules/with-exports/lib/helper.js | 1 + .../node_modules/with-exports/main.js | 1 + .../node_modules/with-exports/package.json | 1 + .../node_modules/with-main/lib/entry.js | 1 + .../node_modules/with-main/package.json | 1 + .../main.ts | 18 + .../native-helper/dist/index.d.ts | 11 + .../node_modules/native-helper/dist/index.js | 2 + .../native-helper/dist/native-module-path.js | 20 + .../native-helper/dist/native-platform.js | 48 + .../linux-arm64/linux-helper-x11.node | 1 + .../prebuilds/linux-x64/linux-helper-x11.node | 1 + .../node_modules/native-helper/package.json | 1 + tests/fixtures/npm-static/addon-probe-cli.ts | 5 + .../npm-static/addon-probe-installed-cli.ts | 4 + .../node_modules/addon-probe/index.d.ts | 3 + .../node_modules/addon-probe/index.js | 38 + .../node_modules/addon-probe/installed.js | 1 + .../addon-probe/native/installed.node | 1 + .../node_modules/addon-probe/package.json | 7 + .../main.ts.json | 1 + .../main.ts.json | 1 + .../main.ts.json | 1 + tests/harness/npm-static.test.ts | 92 +- 65 files changed, 1597 insertions(+), 36 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8210-require-computed-missing/main.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8211-require-resolve-computed/main.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8212-native-helper-probe-no-display/main.ts.json create mode 100644 packages/runtime/src/scr_require.c create mode 100644 tests/corpus/8210-require-computed-missing/main.ts create mode 100644 tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.d.ts create mode 100644 tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.js create mode 100644 tests/corpus/8210-require-computed-missing/node_modules/optional-probe/package.json create mode 100644 tests/corpus/8211-require-resolve-computed/main.ts create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/node.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/other.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/package.json create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/plain-index/index.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/data.json create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.d.ts create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/package.json create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-exports/cjs.cjs create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-exports/esm.mjs create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/feature.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/helper.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-exports/main.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-exports/package.json create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-main/lib/entry.js create mode 100644 tests/corpus/8211-require-resolve-computed/node_modules/with-main/package.json create mode 100644 tests/corpus/8212-native-helper-probe-no-display/main.ts create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.d.ts create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.js create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-module-path.js create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-platform.js create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-arm64/linux-helper-x11.node create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-x64/linux-helper-x11.node create mode 100644 tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/package.json create mode 100644 tests/fixtures/npm-static/addon-probe-cli.ts create mode 100644 tests/fixtures/npm-static/addon-probe-installed-cli.ts create mode 100644 tests/fixtures/npm-static/node_modules/addon-probe/index.d.ts create mode 100644 tests/fixtures/npm-static/node_modules/addon-probe/index.js create mode 100644 tests/fixtures/npm-static/node_modules/addon-probe/installed.js create mode 100644 tests/fixtures/npm-static/node_modules/addon-probe/native/installed.node create mode 100644 tests/fixtures/npm-static/node_modules/addon-probe/package.json create mode 100644 tests/harness/corpus-costs/8210-require-computed-missing/main.ts.json create mode 100644 tests/harness/corpus-costs/8211-require-resolve-computed/main.ts.json create mode 100644 tests/harness/corpus-costs/8212-native-helper-probe-no-display/main.ts.json diff --git a/docs/content/limitations/native-addons.mdx b/docs/content/limitations/native-addons.mdx index 469d1cdd2..1df9470cd 100644 --- a/docs/content/limitations/native-addons.mdx +++ b/docs/content/limitations/native-addons.mdx @@ -2,5 +2,15 @@ Node-API (N-API) and V8 `.node` addons depend on Node.js itself, so compiled pro Direct `createRequire` calls to local addons are rejected at compile time. A package that requires an addon needs a JavaScript implementation that compiles, or a replacement through native FFI. +A package that looks for an optional addon at run time compiles with `--npm-static`. +In JavaScript dependencies, a `createRequire` require call with a computed specifier, and `require.resolve` called with a computed request or read as a value, resolve the specifier with the Node.js algorithm when the program runs. +`require.resolve` returns the path Node.js returns. +When nothing resolves, both throw the `MODULE_NOT_FOUND` error that Node.js throws, so a package that probes for a missing addon takes the same branch as in Node.js. +When the specifier of a require call resolves to a native addon, a builtin, or a file that is not part of the compiled program, the program prints an SC2020 error that names it and exits with status 1, because Node.js would load that module. +A `catch` clause around the call does not run in that case. +Resolution steps that the runtime does not reproduce, such as package `imports` specifiers, `require.resolve` options, and subpaths that a package does not export, end the program the same way. +Coverage lists these calls as deferred to runtime. +This applies until compiled programs can load addons through Node.js. + Use [Native FFI](/docs/ffi#replacing-a-node-api-addon) to call a plain C ABI function linked from an object or static archive. The guide includes a replacement for a small Node-API helper. diff --git a/packages/compiler/src/backend/executable-features.ts b/packages/compiler/src/backend/executable-features.ts index a9076af22..0eae21565 100644 --- a/packages/compiler/src/backend/executable-features.ts +++ b/packages/compiler/src/backend/executable-features.ts @@ -33,6 +33,7 @@ export function executableLinkFeatures(mod: IrModule): NativeLinkFeatures { ...(features.eventsOnceSignal ? { eventsOnceSignal: true } : {}), ...(features.dynBuffer ? { dynBuffer: true } : {}), ...(features.builtinValues ? { builtinValues: true } : {}), + ...(features.computedRequire ? { computedRequire: true } : {}), events: features.processEvents, emitter: features.emitter, symbol: features.symbol, diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index 014191314..49d0bed68 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -270,6 +270,8 @@ export const LIB_FN_SYMS: Record = { "module.id": "scr_module_id", "module.path": "scr_module_path", "module.paths": "scr_module_paths", + "module.requireComputed": "scr_require_computed", + "module.resolveComputed": "scr_require_resolve", "module.children": "scr_module_children", "module.parent": "scr_module_parent", "module.loaded": "scr_module_loaded", diff --git a/packages/compiler/src/backend/native-link-info-core.ts b/packages/compiler/src/backend/native-link-info-core.ts index c073bb9a6..3ff6b0423 100644 --- a/packages/compiler/src/backend/native-link-info-core.ts +++ b/packages/compiler/src/backend/native-link-info-core.ts @@ -62,6 +62,9 @@ export interface NativeLinkFeatures { /** Builtin functions read as values (Buffer.byteLength, Buffer.alloc, * fs.realpathSync) link scr_builtin_values.c; absent (false) otherwise. */ builtinValues?: boolean; + /** createRequire's computed require and require.resolve link + * scr_require.c; absent (false) otherwise. */ + computedRequire?: boolean; events: boolean; emitter: boolean; symbol: boolean; diff --git a/packages/compiler/src/backend/native/contracts.ts b/packages/compiler/src/backend/native/contracts.ts index 53e160984..6606745a3 100644 --- a/packages/compiler/src/backend/native/contracts.ts +++ b/packages/compiler/src/backend/native/contracts.ts @@ -131,6 +131,9 @@ export interface CcOptions { /** Buffer.prototype methods called on checked-dynamic values: * compiles scr_bytes_dyn.c. */ dynBuffer?: boolean; + /** createRequire's computed require and require.resolve: compiles + * scr_require.c. */ + computedRequire?: boolean; /** Builtin functions read as values: compiles scr_builtin_values.c. */ builtinValues?: boolean; /** The program constructs EventTarget/Event/CustomEvent values or diff --git a/packages/compiler/src/backend/native/executable.ts b/packages/compiler/src/backend/native/executable.ts index 1578a0c80..8fde247a7 100644 --- a/packages/compiler/src/backend/native/executable.ts +++ b/packages/compiler/src/backend/native/executable.ts @@ -186,6 +186,8 @@ const RUNTIME_UNITS: readonly RuntimeUnit[] = [ unit((u) => u.opts.dynBuffer === true && u.opts.dynInvoke, "scr_bytes_dyn.c"), // Builtin functions read as values in JavaScript dependencies. unit((u) => u.opts.builtinValues === true, "scr_builtin_values.c"), + // createRequire's computed require and require.resolve. + unit((u) => u.opts.computedRequire === true, "scr_require.c"), unit((u) => u.opts.dc, "scr_dc.c"), unit((u) => u.opts.dynTier, "scr_js_value.c", "scr_js_object.c"), unit((u) => u.opts.eventTarget || u.nativeFetch, "scr_event_target.c"), diff --git a/packages/compiler/src/backend/runtime-pack-core.ts b/packages/compiler/src/backend/runtime-pack-core.ts index 75953be59..4b8d20bac 100644 --- a/packages/compiler/src/backend/runtime-pack-core.ts +++ b/packages/compiler/src/backend/runtime-pack-core.ts @@ -91,6 +91,7 @@ export interface RuntimeFeatureSet extends NativeLinkFeatures { eventsOnceSignal: boolean; dynBuffer: boolean; builtinValues: boolean; + computedRequire: boolean; warningReplace: boolean; stdioExtended: boolean; nativeFetch: boolean; @@ -289,6 +290,7 @@ export function effectiveRuntimeFeatures( eventsOnceSignal: features.eventsOnceSignal === true, dynBuffer: features.dynBuffer === true, builtinValues: features.builtinValues === true, + computedRequire: features.computedRequire === true, warningReplace: features.warningReplace === true, stdioExtended: features.stdioExtended === true, nativeFetch, diff --git a/packages/compiler/src/diagnostics/diagnostic.ts b/packages/compiler/src/diagnostics/diagnostic.ts index 2fd8b6fb0..4579f637f 100644 --- a/packages/compiler/src/diagnostics/diagnostic.ts +++ b/packages/compiler/src/diagnostics/diagnostic.ts @@ -776,6 +776,21 @@ export function nativeAddonDiag(specifier: string, loc: SrcLoc): ScrDiagnostic { }; } +/** A createRequire require or require.resolve call whose specifier is + * computed at run time, where the runtime resolves it like Node + * (scr_require.c). Coverage lists the call as deferred: a require whose + * specifier resolves to a module ends the program with this code, because + * the module graph is fixed at build time. */ +export function computedRequireDiag(surface: string, loc: SrcLoc): ScrDiagnostic { + return { + code: "SC2020", + message: `${surface} with a computed specifier resolves at run time; a require of a specifier that resolves to a module, such as a native addon, ends the program`, + loc, + milestone: "later", + hint: 'require("") compiles the module into the program; native addons need a replacement through native FFI (https://scriptc.dev/ffi#replacing-a-node-api-addon)', + }; +} + /** Records are monomorphic structs, so a value's shape must match the * expected shape exactly OR narrow through the width-copy family * (recordWidthPlan / the overflow capture: target fields copied off the diff --git a/packages/compiler/src/executable/executable-cache.ts b/packages/compiler/src/executable/executable-cache.ts index 50f783761..a82fe967f 100644 --- a/packages/compiler/src/executable/executable-cache.ts +++ b/packages/compiler/src/executable/executable-cache.ts @@ -76,6 +76,7 @@ export interface EarlyExecutableNativeFeatures { eventsOnceSignal?: boolean; dynBuffer?: boolean; builtinValues?: boolean; + computedRequire?: boolean; events: boolean; emitter: boolean; symbol: boolean; diff --git a/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts b/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts index 6b2e9e589..f00e78b0a 100644 --- a/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts +++ b/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts @@ -1,8 +1,8 @@ -import { nodeThrowExpr, boolLit, strLit, varRef } from "../../../ir/build.js"; +import { dynUndefinedExpr, nodeThrowExpr, boolLit, strLit, varRef } from "../../../ir/build.js"; import { dirname, isAbsolute, resolve } from "node:path"; import * as ts from "../../ts7/adapter.js"; import { type Lowerer, PoisonError } from "../lowerer.js"; -import { canonicalBuiltinModule, isNodeEsmFile, locOf } from "../../program.js"; +import { canonicalBuiltinModule, isJsSourceFile, isNodeEsmFile, locOf } from "../../program.js"; import { isRelativeSpecifier } from "../../workspace-registry.js"; import { probeNodeRequireRefusal } from "../../npm.js"; import { isNpmStaticPackage } from "../../npm-static.js"; @@ -15,21 +15,25 @@ import { type RuntimeResolveResult, } from "../../runtime-resolve.js"; import { + computedRequireDiag, invalidJsonModuleDiag, nativeAddonDiag, unsupportedPackageImportDiag, } from "../../../diagnostics/diagnostic.js"; -import { NODE_BUILTIN_MODULES_V24 } from "../surfaces.js"; +import { NODE_BUILTIN_MODULES_V24, builtinModulesArrayLit } from "../surfaces.js"; +import { moduleFileName } from "../import-meta.js"; import { BOOL, DYN, type IrExpr, + type IrStmt, type IrType, NULL_T, STRING, type SrcLoc, UNDEFINED_T, arrayOf, + funcOf, } from "../../../ir/ir.js"; import { lowerFfiMemoryModule } from "../native-ffi.js"; import { @@ -38,6 +42,7 @@ import { createRequireCalleeFileOf, } from "./module-bindings.js"; import { stripTypeCasts } from "./arguments.js"; +import { keyedHelperName } from "../stable-names.js"; /** node:module's two compiler-only calls. isBuiltin compares one evaluated * string against the pinned Node 24 list (bare builtins also accept their @@ -134,6 +139,102 @@ export function lowerNodeModuleCall( }; } +/** The run-time arguments of scr_require.c's computed require and + * require.resolve after the specifier: the requiring file (Node's require + * stack names it), the call's "file:line" for the SC2020 refusal, and the + * builtin ids. The call joins the runtime-fence ledger, so coverage lists + * it as deferred to runtime. */ +function computedRequireArgs( + lowerer: Lowerer, + surface: string, + node: ts.Node, + baseFile: ts.SourceFile, +): IrExpr[] { + const loc = locOf(node); + lowerer.runtimeFences.push(computedRequireDiag(surface, loc)); + const line = ts.getLineAndCharacterOfPosition(ts.getSourceFileOfNode(node), loc.start).line + 1; + return [ + strLit(moduleFileName(lowerer, baseFile), loc), + strLit(`${loc.file}:${line}`, loc), + builtinModulesArrayLit(loc), + ]; +} + +/** A createRequire loader's require.resolve with a computed request, in + * JavaScript source: Node's resolution at run time (scr_require.c), with + * the options argument checked there. */ +function computedResolveCall( + lowerer: Lowerer, + node: ts.Node, + baseFile: ts.SourceFile, + request: IrExpr, + options: IrExpr, + loc: SrcLoc, +): IrExpr { + return { + kind: "libCall", + fn: "module.resolveComputed", + args: [ + request, + options, + ...computedRequireArgs(lowerer, "createRequire's require.resolve", node, baseFile), + ], + type: STRING, + loc, + }; +} + +/** A createRequire loader's `resolve` read as a value in JavaScript source + * (passed on, or picked by `??`): a function that resolves its request at + * run time, so `(options.resolve ?? require.resolve)(id)` behaves as in + * Node. */ +export function createRequireResolveValue( + lowerer: Lowerer, + access: ts.PropertyAccessExpression, + loc: SrcLoc, +): IrExpr { + const baseFile = createRequireCalleeFileOf(lowerer, access.expression); + if (baseFile === null || !isJsSourceFile(ts.getSourceFileOfNode(access))) { + lowerer.noLowering( + "createRequire's require.resolve as a value", + access, + 'call it with a string literal (require.resolve("")), which resolves at build time', + ); + } + const name = keyedHelperName(lowerer, "%createRequire.resolve", `${loc.file}:${loc.start}`); + if (!lowerer.liftedFns.some((fn) => fn.name === name)) { + const call = computedResolveCall( + lowerer, + access, + baseFile, + varRef("request", DYN, loc), + varRef("options", DYN, loc), + loc, + ); + lowerer.liftedFns.push({ + name, + params: [ + { localId: "request", name: "request", type: DYN }, + { localId: "options", name: "options", type: DYN }, + ], + locals: [ + { id: "request", name: "request", type: DYN, mutable: false }, + { id: "options", name: "options", type: DYN, mutable: false }, + ], + returnType: STRING, + body: [{ kind: "return", value: call, loc }], + loc, + }); + } + return { + kind: "dynFrom", + value: { kind: "closure", fnName: name, captures: [], type: funcOf([DYN, DYN], STRING), loc }, + fnName: access.name.text, + type: DYN, + loc, + }; +} + export function lowerCreateRequireCall( lowerer: Lowerer, call: ts.CallExpression, @@ -142,10 +243,35 @@ export function lowerCreateRequireCall( const cr = createRequireSpecOf(lowerer, call); if (cr === null) return null; if (cr.spec === null) { - lowerer.noLowering( - "createRequire's require with this argument shape", + const args = call.arguments.nodes; + if (!isJsSourceFile(ts.getSourceFileOfNode(call)) || args.some((a) => ts.isSpreadElement(a))) { + lowerer.noLowering( + "createRequire's require with this argument shape", + call, + 'the compiled module graph is fixed at build time — the one lowered form is require("")', + ); + } + // Node evaluates every argument, then requires the first. + const stmts: IrStmt[] = []; + let id = args.length > 0 ? lowerer.lowerExprExpecting(args[0]!, DYN) : dynUndefinedExpr(loc); + if (args.length > 1) { + const slot = lowerer.declareHiddenLocal("%require.id", DYN); + stmts.push({ kind: "varDecl", localId: slot.id, init: id, loc }); + for (const arg of args.slice(1)) + stmts.push({ kind: "exprStmt", expr: lowerer.lowerExpr(arg), loc: locOf(arg) }); + id = varRef(slot.id, DYN, loc); + } + const require: IrExpr = { + kind: "libCall", + fn: "module.requireComputed", + args: [id, ...computedRequireArgs(lowerer, "createRequire's require", call, cr.baseFile)], + type: DYN, + loc, + }; + return lowerer.coerceInto( call, - 'the compiled module graph is fixed at build time — the one lowered form is require("")', + stmts.length === 0 ? require : { kind: "seqExpr", stmts, result: require, type: DYN, loc }, + lowerer.irTypeOf(call), ); } const spec = cr.spec; @@ -380,6 +506,26 @@ export function lowerRequireResolveCall(lowerer: Lowerer, call: ts.CallExpressio ); } const specifier = staticString(call.arguments.nodes[0]); + // A computed request (or options) through a createRequire loader in + // JavaScript source resolves at run time. + if ( + (specifier === null || staticResolveOptionPaths(call.arguments.nodes[1]) === null) && + !pathsCall && + createRequireCalleeFileOf(lowerer, receiver) !== null && + isJsSourceFile(ts.getSourceFileOfNode(call)) + ) { + const [request, options] = call.arguments.nodes; + return computedResolveCall( + lowerer, + call, + baseFile, + lowerer.lowerExprExpecting(request!, DYN), + options === undefined + ? dynUndefinedExpr(locOf(call)) + : lowerer.lowerExprExpecting(options, DYN), + locOf(call), + ); + } if (specifier === null) { lowerer.noLowering( `${pathsCall ? "require.resolve.paths" : "require.resolve"} with a runtime-computed request`, diff --git a/packages/compiler/src/frontend/lowering/expressions/identifiers.ts b/packages/compiler/src/frontend/lowering/expressions/identifiers.ts index f7ba7a115..159873630 100644 --- a/packages/compiler/src/frontend/lowering/expressions/identifiers.ts +++ b/packages/compiler/src/frontend/lowering/expressions/identifiers.ts @@ -88,7 +88,7 @@ import { lowerGlobalValue } from "../lower-global-value.js"; import { fenceEnumObjectValue } from "../lower-enums.js"; import { mixinFnOfCallee } from "../lower-mixins.js"; import { isNavigatorGlobal, refuseNavigator } from "../builtins/navigator.js"; -import { wasiGuestPath } from "../../../wasi-paths.js"; +import { moduleFileName } from "../import-meta.js"; export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: SrcLoc): IrExpr { if (lowerer.isStdlibGlobal(expr, "console")) { @@ -1014,12 +1014,6 @@ export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: ); } -function moduleFileName(lowerer: Lowerer, sf: ts.SourceFile): string { - return lowerer.targetPlatform === "wasi" - ? (wasiGuestPath(sf.fileName) ?? sf.fileName.replace(/\\/g, "/")) - : sf.fileName; -} - /** A computed-key access (`value[key]` after `typeof value === "object"`) * of a runtime-optional binding the checker narrowed to one record arm of a * wider union. The binding re-tags to that record or undefined, so the keyed diff --git a/packages/compiler/src/frontend/lowering/expressions/property-access.ts b/packages/compiler/src/frontend/lowering/expressions/property-access.ts index 1a4883e5a..a26caf4d9 100644 --- a/packages/compiler/src/frontend/lowering/expressions/property-access.ts +++ b/packages/compiler/src/frontend/lowering/expressions/property-access.ts @@ -146,6 +146,8 @@ import { nullishGenericBindingUnitOf } from "../binding-analysis.js"; import { blockedBindingUseDiag } from "../../../diagnostics/diagnostic.js"; import { npmStaticPackageOfPath } from "../../npm-static.js"; import { importMetaField, isImportMeta } from "../import-meta.js"; +import { createRequireCalleeFileOf } from "../builtins/module-bindings.js"; +import { createRequireResolveValue } from "../builtins/module-resolution.js"; import { builtinPrototypeMethod, lowerArrayIsArrayValue, @@ -286,6 +288,14 @@ const DGRAM_METHOD_VALUES = new Set([ "unref", ]); +function isCreateRequireResolveValue(lowerer: Lowerer, expr: ts.PropertyAccessExpression): boolean { + return ( + expr.name.text === "resolve" && + !expr.questionDotToken && + createRequireCalleeFileOf(lowerer, expr.expression) !== null + ); +} + export function lowerPropertyAccessExpr( lowerer: Lowerer, expr: ts.PropertyAccessExpression, @@ -1275,6 +1285,10 @@ export function lowerPropertyAccessExpr( return declared && declared.kind !== "void" ? lowerer.coerceToExpected(read, declared) : read; } } + // A createRequire loader's resolve read as a value (passed on, or + // picked by `??`): a function that resolves its request at run time. + if (isCreateRequireResolveValue(lowerer, expr)) + return createRequireResolveValue(lowerer, expr, loc); // The lib fence's PROPERTY chokepoint: a stdlib-declared member that // no lowering above claimed ([1,2].entries, Math.SQRT2, Promise.all, // re.exec as a value, ...) reports SC2020 here. diff --git a/packages/compiler/src/frontend/lowering/import-meta.ts b/packages/compiler/src/frontend/lowering/import-meta.ts index 796e64b69..ccc86bfba 100644 --- a/packages/compiler/src/frontend/lowering/import-meta.ts +++ b/packages/compiler/src/frontend/lowering/import-meta.ts @@ -17,14 +17,19 @@ export function isImportMeta(expr: ts.Expression): boolean { ); } +/** The module's file name as the compiled program reports it + * (import.meta.filename): the WASI guest path on wasi targets. */ +export function moduleFileName(lowerer: Lowerer, sf: ts.SourceFile): string { + return lowerer.targetPlatform === "wasi" + ? (wasiGuestPath(sf.fileName) ?? sf.fileName.replace(/\\/g, "/")) + : sf.fileName; +} + /** File-backed metadata is fixed by the compiled module graph. Reads share * one implementation across dot access, folded keys and selected bindings. */ export function importMetaField(lowerer: Lowerer, node: ts.Node, name: string): IrExpr { const sf = ts.getSourceFileOfNode(node); - const fileName = - lowerer.targetPlatform === "wasi" - ? (wasiGuestPath(sf.fileName) ?? sf.fileName.replace(/\\/g, "/")) - : sf.fileName; + const fileName = moduleFileName(lowerer, sf); const loc = locOf(node); switch (name) { case "env": diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index 8075379b8..517b9accf 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -2519,12 +2519,29 @@ export function isCreateRequireBinding7(program: ts.Program, callee: ts.Identifi ); } -/** Only literal calls and literal resolution queries can erase the loader - * value. In particular, assignments, exported aliases, shorthand properties, - * optional calls, and passing the loader to user code cannot pass this test. */ -function staticCreateRequireUse7(expr: ts.Expression): boolean { +/** How a use of a createRequire loader lowers: + * - "static": a literal call or a literal resolution query, which erases + * the loader value. + * - "runtime": in JavaScript source, a call with a computed specifier, a + * require.resolve call with a computed request, or `resolve` read as a + * value. The runtime resolves the specifier like Node + * (module-resolution.ts, scr_require.c). + * - "computed": the same uses in TypeScript source. + * - "escaping": the loader itself as a value, writes, optional calls, + * spread arguments, `resolve.paths` with a computed request or as a + * value, and other members. */ +type CreateRequireUse7 = "static" | "runtime" | "computed" | "escaping"; + +function createRequireUse7(expr: ts.Expression): CreateRequireUse7 { + const use = createRequireUseShape7(expr); + return use === "runtime" && !isJsSourceFile(ts.getSourceFileOfNode(expr)) ? "computed" : use; +} + +function createRequireUseShape7(expr: ts.Expression): CreateRequireUse7 { let use: ts.Node = expr; while (ts.isParenthesizedExpression(use.parent)) use = use.parent; + let member = false; + let paths = false; if ( ts.isPropertyAccessExpression(use.parent) && use.parent.expression === use && @@ -2532,21 +2549,35 @@ function staticCreateRequireUse7(expr: ts.Expression): boolean { !use.parent.questionDotToken ) { use = use.parent; + member = true; if ( ts.isPropertyAccessExpression(use.parent) && use.parent.expression === use && use.parent.name.text === "paths" && !use.parent.questionDotToken - ) + ) { use = use.parent; + paths = true; + } } const call = use.parent; + if (ts.isCallExpression(call) && call.expression === use) { + if (call.questionDotToken) return "escaping"; + const args = call.arguments.nodes; + if (args.length === 1 && ts.isStringLiteralLike(args[0]!)) return "static"; + if (paths || args.some((arg) => ts.isSpreadElement(arg))) return "escaping"; + return member && (args.length === 0 || args.length > 2) ? "escaping" : "runtime"; + } + return member && !paths && !isAssignmentTarget7(use) ? "runtime" : "escaping"; +} + +function isAssignmentTarget7(node: ts.Node): boolean { + const parent = node.parent; return ( - ts.isCallExpression(call) && - call.expression === use && - !call.questionDotToken && - call.arguments.nodes.length === 1 && - ts.isStringLiteralLike(call.arguments.nodes[0]!) + ts.isBinaryExpression(parent) && + parent.left === node && + parent.operatorToken.kind >= ts.SyntaxKind.FirstAssignment && + parent.operatorToken.kind <= ts.SyntaxKind.LastAssignment ); } @@ -2582,9 +2613,11 @@ function stableCreateRequireBindingReason7( : checker.getSymbolAtLocation(ref); if (target && (target.flags & ts.SymbolFlags.Alias) !== 0) target = checker.getAliasedSymbol(target); - if (target === symbol && !staticCreateRequireUse7(ref)) { + if (target !== symbol) continue; + const use = createRequireUse7(ref); + if (use === "computed") return "its createRequire binding is reassigned, escapes, or uses a computed specifier"; - } + if (use === "escaping") return "its createRequire binding is reassigned or escapes"; } const preceding = stmt.declarationList.declarations.nodes.slice( 0, @@ -2647,10 +2680,12 @@ function npmStaticModuleImportReason7( checker.prefetchSymbolNodesExact(identifierOccurrences7(sf, specifier.name.text)); let reason: string | null = null; const checkUse = (expr: ts.Expression): void => { - if (!staticCreateRequireUse7(expr)) { + const use = createRequireUse7(expr); + if (use === "computed") reason = "its createRequire result escapes or is used with a computed specifier (static requires need literal specifiers)"; - } + else if (use === "escaping") + reason = "its createRequire result escapes (static requires need literal specifiers)"; }; ts.walkPreorder(sf, (node) => { if ( diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index c0b02e8db..63f6d2945 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -609,6 +609,7 @@ async function compileExecutableNative( ...(features.eventsOnceSignal ? { eventsOnceSignal: true } : {}), ...(features.dynBuffer ? { dynBuffer: true } : {}), ...(features.builtinValues ? { builtinValues: true } : {}), + ...(features.computedRequire ? { computedRequire: true } : {}), events: features.events, emitter: features.emitter, symbol: features.symbol, diff --git a/packages/compiler/src/ir/builtin-effects.ts b/packages/compiler/src/ir/builtin-effects.ts index 390c7fbc3..fbeb05dd3 100644 --- a/packages/compiler/src/ir/builtin-effects.ts +++ b/packages/compiler/src/ir/builtin-effects.ts @@ -679,6 +679,8 @@ export const MAY_THROW_LIB_FNS: ReadonlySet = new Set([ "process.builtinId", "process.builtinModule", "process.builtinUnsupported", + "module.requireComputed", + "module.resolveComputed", "fs.callbackValue", "fs.callbackCall", "dyn.keyDelete", diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index e6ad0614a..a3efc12c8 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -378,6 +378,18 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ "module.parent": { argTypes: [F64], result: F64 }, "module.loaded": { argTypes: [F64], result: BOOL }, "module.cacheGet": { argTypes: [STRING], result: F64 }, + /** createRequire's require(id) and require.resolve(request, options) + * with a specifier computed at run time (scr_require.c): the arguments, + * then the requiring file, the call's "file:line" and the builtin ids. + * Both resolve like Node at run time. requireComputed always throws + * (Node's argument errors or MODULE_NOT_FOUND), or ends the program with + * an SC2020 refusal when the specifier resolves; resolveComputed answers + * the resolved id or real path. */ + "module.requireComputed": { argTypes: [DYN, STRING, STRING, arrayOf(STRING)], result: DYN }, + "module.resolveComputed": { + argTypes: [DYN, DYN, STRING, STRING, arrayOf(STRING)], + result: STRING, + }, "module.cacheHas": { argTypes: [STRING], result: BOOL }, "module.cacheKeys": { argTypes: [], result: arrayOf(STRING) }, "timers.setTimeout": { argTypes: [{ kind: "func", params: [], ret: VOID }, F64], result: VOID }, diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index 2ae19375f..54c5ee5be 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -946,6 +946,9 @@ const RUNTIME_FEATURE_RULES = { fns: ["buffer.prototypeMember"], expr: (node, _tables) => node.kind === "dynInvoke" && DYN_BUFFER_METHODS.has(node.method), }), + /** createRequire's require and require.resolve with specifiers computed + * at run time (scr_require.c). */ + computedRequire: rule({ fns: ["module.requireComputed", "module.resolveComputed"] }), /** Builtin functions read as values (scr_builtin_values.c). */ builtinValues: rule({ fns: [ @@ -1182,6 +1185,7 @@ function noRuntimeFeatures(): RuntimeFeatures { dynForAwait: false, dynBuffer: false, builtinValues: false, + computedRequire: false, symbol: false, tls: false, tlsCa: false, diff --git a/packages/compiler/src/native/sanitizer.test.ts b/packages/compiler/src/native/sanitizer.test.ts index 33a4c19b9..c6063b2db 100644 --- a/packages/compiler/src/native/sanitizer.test.ts +++ b/packages/compiler/src/native/sanitizer.test.ts @@ -84,6 +84,7 @@ test.skipIf(process.platform !== "linux" && process.platform !== "darwin")( eventsOnceSignal: false, dynBuffer: false, builtinValues: false, + computedRequire: false, warningReplace: false, stdioExtended: false, regex: true, diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8210-require-computed-missing/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8210-require-computed-missing/main.ts.json new file mode 100644 index 000000000..659ee27aa --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8210-require-computed-missing/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8210-require-computed-missing/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8211-require-resolve-computed/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8211-require-resolve-computed/main.ts.json new file mode 100644 index 000000000..44f6cb75f --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8211-require-resolve-computed/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8211-require-resolve-computed/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8212-native-helper-probe-no-display/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8212-native-helper-probe-no-display/main.ts.json new file mode 100644 index 000000000..2a83db362 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8212-native-helper-probe-no-display/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8212-native-helper-probe-no-display/main.ts" + ], + "diags": [] +} diff --git a/packages/runtime-pack-common/runtime-pack-matrix.mjs b/packages/runtime-pack-common/runtime-pack-matrix.mjs index 0ab467236..0fc9fdf79 100644 --- a/packages/runtime-pack-common/runtime-pack-matrix.mjs +++ b/packages/runtime-pack-common/runtime-pack-matrix.mjs @@ -67,6 +67,8 @@ export const OPTIONAL_RUNTIME_SOURCES = [ ["scr_bytes_dyn.c", all("dynBuffer", "dynInvoke")], // Builtin functions read as values in JavaScript dependencies. ["scr_builtin_values.c", "builtinValues"], + // createRequire's computed require and require.resolve. + ["scr_require.c", "computedRequire"], ["scr_dc.c", "dc"], // The dynamic tier's jsval values (two-tier design I3): linked only into // programs whose IR has dynamic-tier operations. diff --git a/packages/runtime/src/scr_path.h b/packages/runtime/src/scr_path.h index 9600b5e95..de5e85491 100644 --- a/packages/runtime/src/scr_path.h +++ b/packages/runtime/src/scr_path.h @@ -1,5 +1,6 @@ -/* scriptc runtime — node:path (scr_path.c) and path globs (scr_glob.c). - * Included by scr_runtime.h, which says where new declarations go. */ +/* scriptc runtime — node:path (scr_path.c), path globs (scr_glob.c), and + * module resolution at run time (scr_require.c). Included by scr_runtime.h, + * which says where new declarations go. */ #ifndef SCR_PATH_H #define SCR_PATH_H @@ -89,4 +90,18 @@ void scr_fs_glob_callback(ScrDyn *args); ScrArr *scr_fsp_glob_strings(const ScrDyn *pattern, const ScrDyn *options); ScrDyn *scr_fsp_glob_error(void); +/* createRequire's require(id) and require.resolve(request, options) with a + * specifier computed at run time (scr_require.c). Both resolve with Node + * 24's CommonJS algorithm from `importer`, the requiring file; `builtins` + * lists the builtin ids (process.getBuiltinModule's table), and `site` is + * the call's "file:line" for the SC2020 refusal. All arguments are + * borrowed. scr_require_computed always leaves an exception pending and + * returns NULL: Node's argument errors, or MODULE_NOT_FOUND when nothing + * resolves; a specifier that resolves ends the program with the refusal. + * scr_require_resolve answers the resolved id or real path (+1), or NULL + * with Node's error pending. */ +ScrDyn *scr_require_computed(ScrDyn *id, ScrStr *importer, ScrStr *site, ScrArr *builtins); +ScrStr *scr_require_resolve(ScrDyn *request, ScrDyn *options, ScrStr *importer, ScrStr *site, + ScrArr *builtins); + #endif /* SCR_PATH_H */ diff --git a/packages/runtime/src/scr_require.c b/packages/runtime/src/scr_require.c new file mode 100644 index 000000000..645273bce --- /dev/null +++ b/packages/runtime/src/scr_require.c @@ -0,0 +1,895 @@ +/* createRequire's require(id) and require.resolve(request) with a specifier + * computed at run time (module-resolution.ts lowers both calls here). + * + * The compiled module graph is fixed at build time, so neither call loads a + * module. Both resolve the specifier with Node 24's CommonJS algorithm + * (lib/internal/modules/cjs/loader.js: Module._resolveFilename and + * Module._findPath, with package.json "main", "exports" and self-reference) + * against the file system at run time: + * + * - require.resolve returns what Node returns: the builtin's id, or the real + * path of the resolved file. It throws Node's MODULE_NOT_FOUND error when + * nothing resolves. + * - require throws the same MODULE_NOT_FOUND error when nothing resolves, so + * packages that probe for optional files take their absent branch as in + * Node. When the specifier resolves (a builtin, or a file such as a native + * addon), Node would load the module, which a compiled program cannot do: + * the program ends with an SC2020 refusal naming the module. The refusal is + * not an exception, so a `catch` clause cannot take a fallback that Node + * would not take. + * + * Resolution steps whose Node result this file does not reproduce (package + * "imports", invalid package configs or export targets, unexported subpaths, + * percent-encoded export targets, an export target that names no file, a + * "main" that names no file) end the program with the same SC2020 refusal, + * naming the step. */ +#include "scr_runtime.h" + +#include +#include +#include + +typedef struct { + ScrStr *request; /* borrowed */ + ScrStr *importer; /* borrowed: the requiring file */ + ScrArr *builtins; /* borrowed: Node 24's require-able builtin ids */ + /* Set when resolution reaches a step it does not reproduce; the caller + * refuses with this reason. Static text. */ + const char *refusal; +} ScrRequire; + +static ScrStr *req_cstr(const char *s) { return scr_str_new(s, strlen(s)); } + +static bool req_has_prefix(const ScrStr *s, const char *prefix) { + size_t n = strlen(prefix); + return s->len >= n && memcmp(s->data, prefix, n) == 0; +} + +static bool req_has_suffix(const ScrStr *s, const char *suffix) { + size_t n = strlen(suffix); + return s->len >= n && memcmp(s->data + s->len - n, suffix, n) == 0; +} + +static bool req_eq(const ScrStr *s, const char *text) { + size_t n = strlen(text); + return s->len == n && memcmp(s->data, text, n) == 0; +} + +static ScrStr *req_concat(const ScrStr *a, const char *b, size_t b_len) { + ScrJsonBuf out; + scr_jb_init(&out); + scr_jb_write(&out, a->data, a->len); + scr_jb_write(&out, b, b_len); + return scr_jb_finish(&out); +} + +static ScrStr *req_resolve2(ScrStr *a, ScrStr *b) { + ScrArr *parts = scr_arr_new(SCR_ELEM_STR, 2); + scr_arr_push_ref(parts, scr_str_retain(a)); + scr_arr_push_ref(parts, scr_str_retain(b)); +#ifdef _WIN32 + ScrStr *out = scr_path_win32_resolve(parts); +#else + ScrStr *out = scr_path_resolve(parts); +#endif + scr_arr_release(parts); + return out; +} + +static ScrStr *req_dirname(ScrStr *path) { +#ifdef _WIN32 + return scr_path_win32_dirname(path); +#else + return scr_path_dirname(path); +#endif +} + +static bool req_is_absolute(ScrStr *path) { +#ifdef _WIN32 + return scr_path_win32_is_absolute(path); +#else + return scr_path_is_absolute(path); +#endif +} + +/* Node's internalModuleStat: 0 for a file, 1 for a directory, -1 when the + * path does not exist or cannot be read. Never throws. */ +static int req_stat(ScrStr *path) { + ScrStats *stats = scr_fs_stat_probe(path, false, false); + if (stats == NULL) { + if (scr_exc_pending()) scr_exc_clear(); + return -1; + } + int kind = scr_stats_is_dir(stats) ? 1 : 0; + scr_stats_release(stats); + return kind; +} + +/* tryFile: the real path of `path` when it is a file (+1), else NULL. */ +static ScrStr *req_try_file(ScrStr *path) { + if (req_stat(path) != 0) return NULL; + ScrStr *real = scr_fs_realpath(path); + if (real != NULL) return real; + if (scr_exc_pending()) scr_exc_clear(); + return scr_str_retain(path); +} + +/* tryExtensions with Module._extensions' keys, in registration order. */ +static ScrStr *req_try_extensions(ScrStr *base) { + static const char *const extensions[] = { ".js", ".json", ".node" }; + for (size_t i = 0; i < sizeof extensions / sizeof extensions[0]; i++) { + ScrStr *candidate = req_concat(base, extensions[i], strlen(extensions[i])); + ScrStr *found = req_try_file(candidate); + scr_str_release(candidate); + if (found != NULL) return found; + } + return NULL; +} + +/* ── package.json ────────────────────────────────────────────────────── */ + +/* The package.json at `pjson` parsed (+1), or NULL when there is none. + * A file Node rejects as an invalid package config (unparsable JSON, a + * non-object document, a non-string "name" or "type") sets the refusal. */ +static ScrDyn *req_read_package(ScrRequire *r, ScrStr *pjson) { + if (req_stat(pjson) != 0) return NULL; + ScrStr *text = scr_fs_read_file(pjson); + if (text == NULL) { + if (scr_exc_pending()) scr_exc_clear(); + return NULL; + } + ScrDyn *pkg = scr_json_parse(text); + scr_str_release(text); + if (pkg == NULL) { + if (scr_exc_pending()) scr_exc_clear(); + r->refusal = "a package.json that is not valid JSON"; + return NULL; + } + const ScrDyn *name = pkg->kind == SCR_DYN_OBJ ? scr_dyn_obj_get(pkg, "name", 4) : NULL; + const ScrDyn *type = pkg->kind == SCR_DYN_OBJ ? scr_dyn_obj_get(pkg, "type", 4) : NULL; + if (pkg->kind != SCR_DYN_OBJ || (name != NULL && name->kind != SCR_DYN_STR) || + (type != NULL && type->kind != SCR_DYN_STR)) { + scr_dyn_release(pkg); + r->refusal = "an invalid package.json"; + return NULL; + } + return pkg; +} + +/* A string field of a parsed package.json (borrowed), or NULL. */ +static ScrStr *req_package_string(const ScrDyn *pkg, const char *key) { + const ScrDyn *value = scr_dyn_obj_get(pkg, key, strlen(key)); + return value != NULL && value->kind == SCR_DYN_STR ? value->v.str : NULL; +} + +/* "exports" or "imports" as Node keeps them: a string, an object or an + * array (borrowed); NULL for every other value. */ +static const ScrDyn *req_package_map(const ScrDyn *pkg, const char *key) { + const ScrDyn *value = scr_dyn_obj_get(pkg, key, strlen(key)); + if (value == NULL) return NULL; + return value->kind == SCR_DYN_STR || value->kind == SCR_DYN_OBJ || value->kind == SCR_DYN_ARR ? value : NULL; +} + +/* tryPackage: a directory's "main" entry, then its index files. */ +static ScrStr *req_try_package(ScrRequire *r, ScrStr *dir) { + ScrStr *pjson_name = req_cstr("package.json"); + ScrStr *pjson = req_resolve2(dir, pjson_name); + scr_str_release(pjson_name); + ScrDyn *pkg = req_read_package(r, pjson); + scr_str_release(pjson); + if (r->refusal != NULL) return NULL; + ScrStr *main = pkg != NULL ? req_package_string(pkg, "main") : NULL; + ScrStr *index_name = req_cstr("index"); + ScrStr *index = req_resolve2(dir, index_name); + ScrStr *found = NULL; + if (main == NULL) { + found = req_try_extensions(index); + } else { + ScrStr *filename = req_resolve2(dir, main); + found = req_try_file(filename); + if (found == NULL) found = req_try_extensions(filename); + if (found == NULL) { + ScrStr *main_index = req_resolve2(filename, index_name); + found = req_try_extensions(main_index); + scr_str_release(main_index); + } + scr_str_release(filename); + if (found == NULL) { + /* Node falls back to the index with a DEP0128 warning, or throws an + * error that names the "main" entry. */ + r->refusal = "a package.json \"main\" entry that names no file"; + } + } + scr_str_release(index); + scr_str_release(index_name); + if (pkg != NULL) scr_dyn_release(pkg); + return found; +} + +/* ── package exports (lib/internal/modules/esm/resolve.js) ───────────── */ + +/* A target or subpath segment Node rejects or warns about: "", ".", "..", + * "node_modules" in any case, and their percent-encoded spellings. The + * caller refuses '%' separately, so the plain spellings suffice. */ +static bool req_invalid_segment(const char *s, size_t len) { + size_t start = 0; + for (size_t i = 0; i <= len; i++) { + if (i < len && s[i] != '/' && s[i] != '\\') continue; + size_t n = i - start; + const char *seg = s + start; + if (n == 0 && i < len) return true; + if ((n == 1 && seg[0] == '.') || (n == 2 && seg[0] == '.' && seg[1] == '.')) return true; + if (n == 12) { + static const char nm[] = "node_modules"; + bool same = true; + for (size_t k = 0; k < 12 && same; k++) { + char c = seg[k]; + if (c >= 'A' && c <= 'Z') c = (char)(c - 'A' + 'a'); + same = c == nm[k]; + } + if (same) return true; + } + start = i + 1; + } + return false; +} + +/* Characters whose URL parsing changes the path Node resolves: percent + * escapes, backslashes, query and fragment delimiters, and the control + * characters the URL parser strips. */ +static bool req_url_sensitive(const char *s, size_t len) { + for (size_t i = 0; i < len; i++) { + unsigned char c = (unsigned char)s[i]; + if (c == '%' || c == '\\' || c == '?' || c == '#' || c < 0x20 || c == 0x7f) return true; + } + return false; +} + +typedef enum { REQ_TARGET_PATH, REQ_TARGET_NULL, REQ_TARGET_UNDEFINED, REQ_TARGET_INVALID } ScrRequireTarget; + +static bool req_condition(const ScrStr *key) { + return req_eq(key, "default") || req_eq(key, "require") || req_eq(key, "node") || + req_eq(key, "node-addons") || req_eq(key, "module-sync"); +} + +static bool req_array_index(const ScrStr *key) { + if (key->len == 0 || key->len > 10) return false; + if (key->len > 1 && key->data[0] == '0') return false; + double n = 0; + for (size_t i = 0; i < key->len; i++) { + if (key->data[i] < '0' || key->data[i] > '9') return false; + n = n * 10 + (key->data[i] - '0'); + } + return n < 4294967295.0; +} + +/* resolvePackageTarget for an "exports" target. `pkg_dir` is the package + * directory, `subpath` the part the target receives. A path result is in + * `*out` (+1, not yet checked against the file system). */ +static ScrRequireTarget req_resolve_target(ScrRequire *r, ScrStr *pkg_dir, const ScrDyn *target, + const char *subpath, size_t subpath_len, bool pattern, + ScrStr **out) { + if (target->kind == SCR_DYN_STR) { + ScrStr *t = target->v.str; + if (subpath_len != 0 && !pattern && !req_has_suffix(t, "/")) return REQ_TARGET_INVALID; + if (!req_has_prefix(t, "./")) return REQ_TARGET_INVALID; + if (req_url_sensitive(t->data, t->len) || req_url_sensitive(subpath, subpath_len) || + req_invalid_segment(t->data + 2, t->len - 2) || + (subpath_len != 0 && req_invalid_segment(subpath, subpath_len))) { + r->refusal = "a package \"exports\" target that Node rejects, warns about or decodes"; + return REQ_TARGET_INVALID; + } + if (pattern && memchr(pkg_dir->data, '*', pkg_dir->len) != NULL) { + /* Node substitutes the pattern in the whole URL, directory included. */ + r->refusal = "a package \"exports\" pattern in a directory whose path contains '*'"; + return REQ_TARGET_INVALID; + } + ScrJsonBuf path; + scr_jb_init(&path); + scr_jb_write(&path, pkg_dir->data, pkg_dir->len); + const char *rest = t->data + 1; /* keeps the '/' after "." */ + size_t rest_len = t->len - 1; + if (pattern) { + for (size_t i = 0; i < rest_len; i++) { + if (rest[i] == '*') + scr_jb_write(&path, subpath, subpath_len); + else + scr_jb_putc(&path, rest[i]); + } + } else { + scr_jb_write(&path, rest, rest_len); + scr_jb_write(&path, subpath, subpath_len); + } + ScrStr *joined = scr_jb_finish(&path); +#ifdef _WIN32 + *out = scr_path_win32_normalize(joined); +#else + *out = scr_path_normalize(joined); +#endif + scr_str_release(joined); + return REQ_TARGET_PATH; + } + if (target->kind == SCR_DYN_ARR) { + double n = scr_dyn_arr_len(target); + if (n == 0) return REQ_TARGET_NULL; + ScrRequireTarget last = REQ_TARGET_UNDEFINED; + for (double i = 0; i < n; i++) { + ScrDyn *item = scr_dyn_arr_at(target, i); + ScrRequireTarget result = req_resolve_target(r, pkg_dir, item, subpath, subpath_len, pattern, out); + scr_dyn_release(item); + if (r->refusal != NULL) return REQ_TARGET_INVALID; + if (result == REQ_TARGET_PATH) return result; + if (result == REQ_TARGET_INVALID) last = REQ_TARGET_INVALID; + else if (result == REQ_TARGET_NULL) last = REQ_TARGET_NULL; + } + return last == REQ_TARGET_UNDEFINED ? REQ_TARGET_UNDEFINED : last; + } + if (target->kind == SCR_DYN_OBJ) { + ScrDyn *keys = scr_dyn_obj_own_keys(target); + double n = scr_dyn_arr_len(keys); + ScrRequireTarget result = REQ_TARGET_UNDEFINED; + for (double i = 0; i < n; i++) { + ScrDyn *key = scr_dyn_arr_at(keys, i); + bool index = req_array_index(key->v.str); + scr_dyn_release(key); + if (index) { + r->refusal = "numeric keys in a package's \"exports\""; + scr_dyn_release(keys); + return REQ_TARGET_INVALID; + } + } + for (double i = 0; i < n && result == REQ_TARGET_UNDEFINED; i++) { + ScrDyn *key = scr_dyn_arr_at(keys, i); + if (req_condition(key->v.str)) { + const ScrDyn *value = scr_dyn_obj_get(target, key->v.str->data, key->v.str->len); + result = req_resolve_target(r, pkg_dir, value, subpath, subpath_len, pattern, out); + if (r->refusal != NULL) result = REQ_TARGET_INVALID; + } + scr_dyn_release(key); + } + scr_dyn_release(keys); + return result; + } + if (target->kind == SCR_DYN_NULL) return REQ_TARGET_NULL; + return REQ_TARGET_INVALID; +} + +/* patternKeyCompare(a, b) === 1: `b` is the better pattern match. */ +static bool req_pattern_better(const ScrStr *a, const ScrStr *b) { + const char *as = a ? memchr(a->data, '*', a->len) : NULL; + const char *bs = memchr(b->data, '*', b->len); + size_t a_len = a ? a->len : 0; + size_t base_a = as ? (size_t)(as - a->data) + 1 : a_len; + size_t base_b = bs ? (size_t)(bs - b->data) + 1 : b->len; + if (base_a > base_b) return false; + if (base_b > base_a) return true; + if (as == NULL) return true; + if (bs == NULL) return false; + return b->len > a_len; +} + +/* packageExportsResolve for `subpath` ("." or "./..."), then + * finalizeEsmResolution's file check. +1 real path, or NULL with the + * refusal set. */ +static ScrStr *req_exports_resolve(ScrRequire *r, ScrStr *pkg_dir, const ScrDyn *exports, ScrStr *subpath) { + bool sugar; + if (exports->kind != SCR_DYN_OBJ) { + sugar = true; + } else { + sugar = false; + ScrDyn *keys = scr_dyn_obj_own_keys(exports); + double n = scr_dyn_arr_len(keys); + for (double i = 0; i < n; i++) { + ScrDyn *key = scr_dyn_arr_at(keys, i); + bool conditional = key->v.str->len == 0 || key->v.str->data[0] != '.'; + scr_dyn_release(key); + if (i == 0) { + sugar = conditional; + } else if (sugar != conditional) { + scr_dyn_release(keys); + r->refusal = "a package \"exports\" object that mixes subpaths and conditions"; + return NULL; + } + } + scr_dyn_release(keys); + } + if (exports->kind == SCR_DYN_STR && exports->v.str->len > 0 && + (exports->v.str->data[0] == '[' || exports->v.str->data[0] == '{')) { + r->refusal = "a package \"exports\" string that Node parses as JSON"; + return NULL; + } + ScrStr *path = NULL; + ScrRequireTarget result = REQ_TARGET_UNDEFINED; + bool has_star = memchr(subpath->data, '*', subpath->len) != NULL; + if (sugar) { + if (req_eq(subpath, ".")) + result = req_resolve_target(r, pkg_dir, exports, "", 0, false, &path); + } else { + const ScrDyn *exact = has_star || req_has_suffix(subpath, "/") + ? NULL + : scr_dyn_obj_get(exports, subpath->data, subpath->len); + if (exact != NULL) { + result = req_resolve_target(r, pkg_dir, exact, "", 0, false, &path); + } else { + ScrStr *best = NULL; + size_t best_start = 0, best_end = 0; + ScrDyn *keys = scr_dyn_obj_own_keys(exports); + double n = scr_dyn_arr_len(keys); + for (double i = 0; i < n; i++) { + ScrDyn *key_value = scr_dyn_arr_at(keys, i); + ScrStr *key = key_value->v.str; + const char *star = memchr(key->data, '*', key->len); + size_t at = star ? (size_t)(star - key->data) : 0; + if (star != NULL && subpath->len >= at && memcmp(subpath->data, key->data, at) == 0) { + size_t trailer = key->len - at - 1; + bool single = memchr(star + 1, '*', trailer) == NULL; + if (subpath->len >= key->len && + memcmp(subpath->data + subpath->len - trailer, star + 1, trailer) == 0 && + req_pattern_better(best, key) && single) { + if (best) scr_str_release(best); + best = scr_str_retain(key); + best_start = at; + best_end = subpath->len - trailer; + } + } + scr_dyn_release(key_value); + } + scr_dyn_release(keys); + if (best != NULL) { + if (req_has_suffix(subpath, "/")) { + r->refusal = "a package \"exports\" pattern matched by a subpath ending in '/'"; + } else { + const ScrDyn *target = scr_dyn_obj_get(exports, best->data, best->len); + result = req_resolve_target(r, pkg_dir, target, subpath->data + best_start, + best_end - best_start, true, &path); + } + scr_str_release(best); + } + } + } + if (r->refusal != NULL) { + if (path) scr_str_release(path); + return NULL; + } + if (result != REQ_TARGET_PATH) { + r->refusal = result == REQ_TARGET_INVALID ? "an invalid package \"exports\" target" + : "a subpath that the package's \"exports\" do not export"; + return NULL; + } + ScrStr *found = req_try_file(path); + scr_str_release(path); + if (found == NULL) r->refusal = "a package \"exports\" target that names no file"; + return found; +} + +/* ── Module._findPath ────────────────────────────────────────────────── */ + +/* EXPORTS_PATTERN: /^((?:@[^/\\%]+\/)?[^./\\%][^/\\%]*)(\/.*)?$/ — the + * package name's length in `request`, or 0 when it does not match. */ +static size_t req_package_name_len(const ScrStr *request) { + const char *s = request->data; + size_t len = request->len, i = 0; + if (len > 0 && s[0] == '@') { + i = 1; + size_t start = i; + while (i < len && s[i] != '/' && s[i] != '\\' && s[i] != '%') i++; + if (i == start || i >= len || s[i] != '/') i = 0; + else i++; + } + if (i >= len || s[i] == '.' || s[i] == '/' || s[i] == '\\' || s[i] == '%') return 0; + while (i < len && s[i] != '/' && s[i] != '\\' && s[i] != '%') i++; + if (i < len && s[i] != '/') return 0; + return i; +} + +/* resolveExports: a package under `nm_dir` whose package.json has + * "exports". +1 real path; NULL when the package has no "exports" (or the + * refusal is set). */ +static ScrStr *req_resolve_exports(ScrRequire *r, ScrStr *nm_dir) { + size_t name_len = req_package_name_len(r->request); + if (name_len == 0) return NULL; + ScrStr *name = scr_str_new(r->request->data, name_len); + ScrStr *pkg_dir = req_resolve2(nm_dir, name); + scr_str_release(name); + ScrStr *pjson = req_concat(pkg_dir, "/package.json", 13); + ScrDyn *pkg = req_read_package(r, pjson); + scr_str_release(pjson); + ScrStr *found = NULL; + const ScrDyn *exports = pkg != NULL ? req_package_map(pkg, "exports") : NULL; + if (exports != NULL) { + ScrJsonBuf sub; + scr_jb_init(&sub); + scr_jb_putc(&sub, '.'); + scr_jb_write(&sub, r->request->data + name_len, r->request->len - name_len); + ScrStr *subpath = scr_jb_finish(&sub); + found = req_exports_resolve(r, pkg_dir, exports, subpath); + scr_str_release(subpath); + } + if (pkg != NULL) scr_dyn_release(pkg); + scr_str_release(pkg_dir); + return found; +} + +/* isRelative in Module._findPath: ".", "..", and "./" or "../" prefixes. */ +static bool req_is_relative(const ScrStr *request) { + if (req_eq(request, ".") || req_eq(request, "..")) return true; + if (req_has_prefix(request, "./") || req_has_prefix(request, "../")) return true; +#ifdef _WIN32 + if (req_has_prefix(request, ".\\") || req_has_prefix(request, "..\\")) return true; +#endif + return false; +} + +static bool req_trailing_slash(const ScrStr *request) { + const char *s = request->data; + size_t n = request->len; + if (n == 0) return false; + if (s[n - 1] == '/') return true; + if (s[n - 1] != '.') return false; + if (n == 1 || s[n - 2] == '/') return true; + return s[n - 2] == '.' && (n == 2 || s[n - 3] == '/'); +} + +/* Module._findPath over `paths` (borrowed strings). +1 real path or NULL. */ +static ScrStr *req_find_path(ScrRequire *r, ScrStr *const *paths, size_t count) { + ScrStr *request = r->request; + bool absolute = req_is_absolute(request); + ScrStr *empty = NULL; + if (absolute) { + empty = scr_str_new("", 0); + paths = ∅ + count = 1; + } + bool trailing = req_trailing_slash(request); + bool inside = true; + if (req_is_relative(request)) { +#ifdef _WIN32 + ScrStr *normalized = scr_path_win32_normalize(request); +#else + ScrStr *normalized = scr_path_normalize(request); +#endif + inside = !req_has_prefix(normalized, ".."); + scr_str_release(normalized); + } + ScrStr *found = NULL; + for (size_t i = 0; i < count && found == NULL && r->refusal == NULL; i++) { + ScrStr *dir = paths[i]; + if (inside && dir->len > 0 && req_stat(dir) < 1) continue; + if (!absolute) { + found = req_resolve_exports(r, dir); + if (found != NULL || r->refusal != NULL) break; + } + ScrStr *base = req_resolve2(dir, request); + int kind = req_stat(base); + if (!trailing) { + if (kind == 0) found = req_try_file(base); + if (found == NULL) found = req_try_extensions(base); + } + if (found == NULL && kind == 1) found = req_try_package(r, base); + scr_str_release(base); + } + if (empty) scr_str_release(empty); + return found; +} + +/* Module._nodeModulePaths(from) followed by Module.globalPaths' entries + * that come from the environment (NODE_PATH, then the home directory's + * .node_modules and .node_libraries). Node also searches the lib/node + * directory of its own installation prefix, which a compiled program does + * not have. Fills `out` (+1 each) and answers the count. */ +static size_t req_lookup_paths(ScrStr *from, ScrStr ***out) { + size_t cap = 16, n = 0; + ScrStr **paths = malloc(cap * sizeof *paths); + if (!paths) scr_trap("scriptc: out of memory\n"); +#define REQ_PUSH(value) \ + do { \ + if (n == cap) { \ + cap *= 2; \ + ScrStr **grown = realloc(paths, cap * sizeof *paths); \ + if (!grown) scr_trap("scriptc: out of memory\n"); \ + paths = grown; \ + } \ + paths[n++] = (value); \ + } while (0) + ScrStr *dot = scr_str_new(".", 1); + ScrStr *abs = req_resolve2(from, dot); + scr_str_release(dot); + static const char nm[] = "node_modules"; + const char *s = abs->data; +#ifdef _WIN32 + if (abs->len >= 2 && s[abs->len - 1] == '\\' && s[abs->len - 2] == ':') { + REQ_PUSH(req_concat(abs, "node_modules", 12)); + } else { + for (long i = (long)abs->len - 1, p = 0, last = (long)abs->len; i >= 0; --i) { + char c = s[i]; + if (c == '\\' || c == '/' || c == ':') { + if (p != 12) { + ScrStr *prefix = scr_str_new(s, (size_t)last); + REQ_PUSH(req_concat(prefix, "\\node_modules", 13)); + scr_str_release(prefix); + } + last = i; + p = 0; + } else if (p != -1) { + p = (p < 12 && nm[11 - p] == c) ? p + 1 : -1; + } + } + } +#else + if (abs->len == 1 && s[0] == '/') { + REQ_PUSH(scr_str_new("/node_modules", 13)); + } else { + for (long i = (long)abs->len - 1, p = 0, last = (long)abs->len; i >= 0; --i) { + char c = s[i]; + if (c == '/') { + if (p != 12) { + ScrStr *prefix = scr_str_new(s, (size_t)last); + REQ_PUSH(req_concat(prefix, "/node_modules", 13)); + scr_str_release(prefix); + } + last = i; + p = 0; + } else if (p != -1) { + p = (p < 12 && nm[11 - p] == c) ? p + 1 : -1; + } + } + REQ_PUSH(scr_str_new("/node_modules", 13)); + } +#endif + scr_str_release(abs); +#ifdef _WIN32 + const char *node_path = scr_getenv("NODE_PATH"); + const char *home = scr_getenv("USERPROFILE"); + const char delimiter = ';'; +#else + const char *node_path = scr_getenv("NODE_PATH"); + const char *home = scr_getenv("HOME"); + const char delimiter = ':'; +#endif + if (node_path != NULL) { + for (const char *p = node_path; *p;) { + const char *end = strchr(p, delimiter); + size_t len = end ? (size_t)(end - p) : strlen(p); + if (len > 0) REQ_PUSH(scr_str_new(p, len)); + p += len; + if (*p) p++; + } + } + if (home != NULL && *home) { + ScrStr *home_dir = req_cstr(home); + static const char *const globals[] = { ".node_modules", ".node_libraries" }; + for (size_t i = 0; i < 2; i++) { + ScrStr *name = req_cstr(globals[i]); + REQ_PUSH(req_resolve2(home_dir, name)); + scr_str_release(name); + } + scr_str_release(home_dir); + } +#undef REQ_PUSH + *out = paths; + return n; +} + +/* trySelf: the nearest package.json above the importer (Node stops below + * the root and at a node_modules directory) resolves the request through + * its own "exports" when its "name" prefixes it. */ +static ScrStr *req_try_self(ScrRequire *r) { + ScrStr *dir = req_dirname(r->importer); + ScrStr *found = NULL; + for (;;) { + ScrStr *parent = req_dirname(dir); + bool root = scr_str_eq(parent, dir); + scr_str_release(parent); + if (root) break; + ScrStr *dot = scr_str_new(".", 1); + ScrStr *abs = req_resolve2(dir, dot); + scr_str_release(dot); + bool boundary = req_has_suffix(abs, "/node_modules") +#ifdef _WIN32 + || req_has_suffix(abs, "\\node_modules") +#endif + ; + scr_str_release(abs); + if (boundary) break; + ScrStr *pjson_name = req_cstr("package.json"); + ScrStr *pjson = req_resolve2(dir, pjson_name); + scr_str_release(pjson_name); + ScrDyn *pkg = req_read_package(r, pjson); + scr_str_release(pjson); + if (r->refusal != NULL) break; + if (pkg != NULL) { + ScrStr *name = req_package_string(pkg, "name"); + const ScrDyn *exports = req_package_map(pkg, "exports"); + if (req_has_prefix(r->request, "#") && req_package_map(pkg, "imports") != NULL) { + r->refusal = "a package \"imports\" specifier"; + } else if (name != NULL && exports != NULL) { + bool whole = scr_str_eq(name, r->request); + bool prefixed = r->request->len > name->len && + memcmp(r->request->data, name->data, name->len) == 0 && + r->request->data[name->len] == '/'; + if (whole || prefixed) { + ScrJsonBuf sub; + scr_jb_init(&sub); + scr_jb_putc(&sub, '.'); + scr_jb_write(&sub, r->request->data + name->len, r->request->len - name->len); + ScrStr *subpath = scr_jb_finish(&sub); + found = req_exports_resolve(r, dir, exports, subpath); + scr_str_release(subpath); + } + } + scr_dyn_release(pkg); + break; + } + ScrStr *next = req_dirname(dir); + scr_str_release(dir); + dir = next; + } + scr_str_release(dir); + return found; +} + +/* The builtin id `request` names (+1), or NULL. */ +static ScrStr *req_builtin(ScrRequire *r) { + ScrDyn *id = scr_dyn_new_str(r->request); + ScrStr *bare = scr_process_builtin_id(id, r->builtins); + scr_dyn_release(id); + if (bare == NULL || bare->len == 0) { + if (bare) scr_str_release(bare); + return NULL; + } + scr_str_release(bare); + return scr_str_retain(r->request); +} + +/* Module._resolveFilename: +1 resolved id or path; NULL when nothing + * resolves (or the refusal is set). */ +static ScrStr *req_resolve_filename(ScrRequire *r) { + ScrStr *builtin = req_builtin(r); + if (builtin != NULL) return builtin; + ScrStr *found = req_try_self(r); + if (found != NULL || r->refusal != NULL) return found; + bool lookup = r->request->len == 0 || r->request->data[0] != '.' || + (r->request->len > 1 && r->request->data[1] != '.' && r->request->data[1] != '/' +#ifdef _WIN32 + && r->request->data[1] != '\\' +#endif + ); + if (lookup) { + ScrStr *dir = req_dirname(r->importer); + ScrStr **paths = NULL; + size_t count = req_lookup_paths(dir, &paths); + scr_str_release(dir); + found = req_find_path(r, paths, count); + for (size_t i = 0; i < count; i++) scr_str_release(paths[i]); + free(paths); + } else { + ScrStr *dir = req_dirname(r->importer); + found = req_find_path(r, &dir, 1); + scr_str_release(dir); + } + return found; +} + +/* ── entry points ────────────────────────────────────────────────────── */ + +/* Ends the program with the SC2020 refusal: it names the native addon, the + * builtin or file the specifier resolves to, or the resolution step, then + * the program exits with status 1 as after an uncaught error, running the + * 'exit' listeners. */ +static void req_refuse(ScrRequire *r, const char *call, const ScrStr *found, bool builtin, ScrStr *site) { + ScrJsonBuf text; + scr_jb_init(&text); + if (r->refusal != NULL) { + scr_jb_puts(&text, call); + scr_jb_puts(&text, " of '"); + scr_jb_write(&text, r->request->data, r->request->len); + scr_jb_puts(&text, "' reaches "); + scr_jb_puts(&text, r->refusal); + scr_jb_puts(&text, ", which scriptc does not resolve at run time"); + } else if (builtin) { + scr_jb_puts(&text, call); + scr_jb_puts(&text, " of the builtin '"); + scr_jb_write(&text, found->data, found->len); + scr_jb_puts(&text, "' with a computed specifier is not supported; require it with a string literal"); + } else if (req_has_suffix(found, ".node")) { + scr_jb_puts(&text, "native addon '"); + scr_jb_write(&text, found->data, found->len); + scr_jb_puts(&text, "' requires Node's addon runtime, which is unavailable in scriptc"); + } else { + scr_jb_puts(&text, call); + scr_jb_puts(&text, " of '"); + scr_jb_write(&text, r->request->data, r->request->len); + scr_jb_puts(&text, "' resolves to '"); + scr_jb_write(&text, found->data, found->len); + scr_jb_puts(&text, "', which is not part of the compiled program: the module graph is fixed at build time"); + } + scr_jb_puts(&text, " [SC2020 at "); + scr_jb_write(&text, site->data, site->len); + scr_jb_puts(&text, "]\n"); + ScrStr *message = scr_jb_finish(&text); + fflush(stdout); + fputs("scriptc: ", stderr); + fwrite(message->data, 1, message->len, stderr); + fflush(stderr); + scr_str_release(message); + scr_process_exit(1); +} + +static void req_throw(const char *code, const char *prefix, ScrRequire *r, bool stack) { + ScrJsonBuf text; + scr_jb_init(&text); + scr_jb_puts(&text, prefix); + scr_jb_write(&text, r->request->data, r->request->len); + if (stack) { + scr_jb_puts(&text, "'\nRequire stack:\n- "); + scr_jb_write(&text, r->importer->data, r->importer->len); + } + ScrStr *message = scr_jb_finish(&text); + scr_throw_error_msg_code(SCR_ERR_ERROR, message->data, message->len, code); + scr_str_release(message); +} + +ScrDyn *scr_require_computed(ScrDyn *id, ScrStr *importer, ScrStr *site, ScrArr *builtins) { + if (id->kind != SCR_DYN_STR) { + scr_dyn_arg_type_fail("id", "of type string", id); + return NULL; + } + if (id->v.str->len == 0) { + static const char message[] = "The argument 'id' must be a non-empty string. Received ''"; + scr_throw_error_msg_code(SCR_ERR_TYPE, message, sizeof message - 1, "ERR_INVALID_ARG_VALUE"); + return NULL; + } + ScrRequire r = { id->v.str, importer, builtins, NULL }; + ScrStr *builtin = req_builtin(&r); + if (builtin == NULL && req_has_prefix(r.request, "node:")) { + req_throw("ERR_UNKNOWN_BUILTIN_MODULE", "No such built-in module: ", &r, false); + return NULL; + } + ScrStr *found = builtin != NULL ? builtin : req_resolve_filename(&r); + if (found == NULL && r.refusal == NULL) { + req_throw("MODULE_NOT_FOUND", "Cannot find module '", &r, true); + return NULL; + } + req_refuse(&r, "createRequire's require", found, builtin != NULL, site); + if (found) scr_str_release(found); + return NULL; +} + +/* require.resolve's options: Node reads `paths` and `conditions` from an + * object; other values select the default lookup. */ +static const char *req_options_refusal(const ScrDyn *options) { + switch (options->kind) { + case SCR_DYN_UNDEF: + case SCR_DYN_NULL: + case SCR_DYN_NUM: + case SCR_DYN_BOOL: + case SCR_DYN_STR: + return NULL; + case SCR_DYN_OBJ: { + const ScrDyn *paths = scr_dyn_obj_get(options, "paths", 5); + const ScrDyn *conditions = scr_dyn_obj_get(options, "conditions", 10); + if (paths != NULL && paths->kind != SCR_DYN_UNDEF) return "require.resolve's paths option"; + if (conditions != NULL && conditions->kind != SCR_DYN_UNDEF) return "require.resolve's conditions option"; + return NULL; + } + default: + return "require.resolve options that are not a plain object"; + } +} + +ScrStr *scr_require_resolve(ScrDyn *request, ScrDyn *options, ScrStr *importer, ScrStr *site, + ScrArr *builtins) { + if (request->kind != SCR_DYN_STR) { + scr_dyn_arg_type_fail("request", "of type string", request); + return NULL; + } + ScrRequire r = { request->v.str, importer, builtins, req_options_refusal(options) }; + ScrStr *found = r.refusal == NULL ? req_resolve_filename(&r) : NULL; + if (r.refusal != NULL) { + if (found) scr_str_release(found); + req_refuse(&r, "createRequire's require.resolve", NULL, false, site); + return NULL; + } + if (found == NULL) req_throw("MODULE_NOT_FOUND", "Cannot find module '", &r, true); + return found; +} diff --git a/tests/corpus/8210-require-computed-missing/main.ts b/tests/corpus/8210-require-computed-missing/main.ts new file mode 100644 index 000000000..685222157 --- /dev/null +++ b/tests/corpus/8210-require-computed-missing/main.ts @@ -0,0 +1,7 @@ +// A package that probes for optional files through createRequire with +// computed specifiers. A specifier that names no file throws Node's error, +// so the package takes its absent branch as in Node. +import { probeAddon, requireErrors } from "optional-probe"; + +console.log(probeAddon("clipboard")); +for (const line of requireErrors()) console.log(line); diff --git a/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.d.ts b/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.d.ts new file mode 100644 index 000000000..4eb024b0c --- /dev/null +++ b/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.d.ts @@ -0,0 +1,2 @@ +export declare function probeAddon(name: string): string; +export declare function requireErrors(): string[]; diff --git a/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.js b/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.js new file mode 100644 index 000000000..c824302ba --- /dev/null +++ b/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/index.js @@ -0,0 +1,46 @@ +import { createRequire } from "node:module"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const importer = fileURLToPath(import.meta.url); +const load = createRequire(import.meta.url); +const here = dirname(importer); + +// Looks for a prebuilt addon in each packaging location. +export function probeAddon(name) { + const codes = []; + const dirs = [join(here, "prebuilds", `${process.platform}-${process.arch}`), join(here, "native"), here]; + for (const dir of dirs) { + try { + const addon = load(join(dir, `${name}.node`)); + return `loaded ${typeof addon}`; + } catch (error) { + codes.push(error.code); + } + } + return `absent: ${codes.join(", ")}`; +} + +function describe(spec) { + try { + load(spec); + return "loaded"; + } catch (error) { + return `${error.name} ${error.code}: ${error.message.replaceAll(importer, "")}`; + } +} + +export function requireErrors() { + const specs = [ + "./missing.js", + "./missing", + "../missing-directory/", + "scriptc-corpus-missing-package", + "@scriptc-corpus/missing/sub", + "node:not-a-builtin", + "", + 42, + undefined, + ]; + return specs.map((spec) => `${typeof spec === "string" ? JSON.stringify(spec) : String(spec)} -> ${describe(spec)}`); +} diff --git a/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/package.json b/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/package.json new file mode 100644 index 000000000..50ad53129 --- /dev/null +++ b/tests/corpus/8210-require-computed-missing/node_modules/optional-probe/package.json @@ -0,0 +1 @@ +{ "name": "optional-probe", "version": "1.0.0", "type": "module", "main": "index.js", "types": "index.d.ts" } diff --git a/tests/corpus/8211-require-resolve-computed/main.ts b/tests/corpus/8211-require-resolve-computed/main.ts new file mode 100644 index 000000000..d8e441d2f --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/main.ts @@ -0,0 +1,7 @@ +// require.resolve with requests computed at run time, called directly and +// read as a value, resolves like Node: builtins, relative files with +// Node's extension search, package "main" and "exports" entries, a +// package's own name, and MODULE_NOT_FOUND for requests that name nothing. +import { resolveAll } from "resolve-probe"; + +for (const line of resolveAll()) console.log(line); diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/node.js b/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/node.js new file mode 100644 index 000000000..c414b6b26 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/node.js @@ -0,0 +1 @@ +module.exports = "node"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/other.js b/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/other.js new file mode 100644 index 000000000..7f4090ad9 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/lib/other.js @@ -0,0 +1 @@ +module.exports = "other"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/package.json b/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/package.json new file mode 100644 index 000000000..25326e6e5 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/@scope/scoped/package.json @@ -0,0 +1 @@ +{ "name": "@scope/scoped", "version": "1.0.0", "exports": { "node": "./lib/node.js", "default": "./lib/other.js" } } diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/plain-index/index.js b/tests/corpus/8211-require-resolve-computed/node_modules/plain-index/index.js new file mode 100644 index 000000000..0d24e266f --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/plain-index/index.js @@ -0,0 +1 @@ +module.exports = "index"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/data.json b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/data.json new file mode 100644 index 000000000..6d94e13bd --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/data.json @@ -0,0 +1 @@ +{ "kind": "data" } diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.d.ts b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.d.ts new file mode 100644 index 000000000..1b8cc8a0e --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.d.ts @@ -0,0 +1 @@ +export declare function resolveAll(): string[]; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js new file mode 100644 index 000000000..870a14401 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js @@ -0,0 +1,50 @@ +import { createRequire } from "node:module"; +import { dirname, relative } from "node:path"; +import { fileURLToPath } from "node:url"; + +const importer = fileURLToPath(import.meta.url); +const root = dirname(dirname(dirname(importer))); +const load = createRequire(import.meta.url); + +function show(resolved) { + return resolved.startsWith("/") || /^[A-Za-z]:\\/.test(resolved) ? relative(root, resolved).replaceAll("\\", "/") : resolved; +} + +function describe(resolve, request) { + try { + return show(resolve(request)); + } catch (error) { + return `${error.name} ${error.code}: ${error.message.replaceAll(importer, "")}`; + } +} + +const requests = [ + "fs", + "node:fs", + "node:test", + "./data.json", + "./data", + "./index", + "resolve-probe", + "resolve-probe/data", + "with-exports", + "with-exports/feature", + "with-exports/lib/helper", + "with-main", + "plain-index", + "@scope/scoped", + "./missing", + "scriptc-corpus-missing-package", + "", + 42, +]; + +export function resolveAll(options = {}) { + const resolve = options.resolve ?? load.resolve; + const label = (request) => (typeof request === "string" ? JSON.stringify(request) : String(request)); + return [ + ...requests.map((request) => `call ${label(request)} -> ${describe((r) => load.resolve(r), request)}`), + ...requests.slice(0, 4).map((request) => `value ${label(request)} -> ${describe(resolve, request)}`), + `options ${describe((r) => load.resolve(r, {}), "with-main")}`, + ]; +} diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/package.json b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/package.json new file mode 100644 index 000000000..d0935f646 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/package.json @@ -0,0 +1 @@ +{ "name": "resolve-probe", "version": "1.0.0", "type": "module", "exports": { ".": { "types": "./index.d.ts", "default": "./index.js" }, "./data": "./data.json" } } diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/cjs.cjs b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/cjs.cjs new file mode 100644 index 000000000..2cd122bdc --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/cjs.cjs @@ -0,0 +1 @@ +module.exports = "cjs"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/esm.mjs b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/esm.mjs new file mode 100644 index 000000000..06c676e54 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/esm.mjs @@ -0,0 +1 @@ +export default "esm"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/feature.js b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/feature.js new file mode 100644 index 000000000..33535fc6f --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/feature.js @@ -0,0 +1 @@ +module.exports = "feature"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/helper.js b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/helper.js new file mode 100644 index 000000000..4f51f7bfa --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/lib/helper.js @@ -0,0 +1 @@ +module.exports = "helper"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/main.js b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/main.js new file mode 100644 index 000000000..0470f8201 --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/main.js @@ -0,0 +1 @@ +module.exports = "main"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/package.json b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/package.json new file mode 100644 index 000000000..09d74787c --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-exports/package.json @@ -0,0 +1 @@ +{ "name": "with-exports", "version": "1.0.0", "main": "./main.js", "exports": { ".": { "import": "./esm.mjs", "require": "./cjs.cjs" }, "./feature": "./lib/feature.js", "./lib/*": "./lib/*.js", "./private/*": null } } diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-main/lib/entry.js b/tests/corpus/8211-require-resolve-computed/node_modules/with-main/lib/entry.js new file mode 100644 index 000000000..6555fae7c --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-main/lib/entry.js @@ -0,0 +1 @@ +module.exports = "entry"; diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/with-main/package.json b/tests/corpus/8211-require-resolve-computed/node_modules/with-main/package.json new file mode 100644 index 000000000..8c473085d --- /dev/null +++ b/tests/corpus/8211-require-resolve-computed/node_modules/with-main/package.json @@ -0,0 +1 @@ +{ "name": "with-main", "version": "1.0.0", "main": "lib/entry" } diff --git a/tests/corpus/8212-native-helper-probe-no-display/main.ts b/tests/corpus/8212-native-helper-probe-no-display/main.ts new file mode 100644 index 000000000..a9e021017 --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/main.ts @@ -0,0 +1,18 @@ +// A terminal package that loads prebuilt native helpers the way pi-tui does: +// it builds candidate paths (through require.resolve read as a value) and +// requires each one inside a try block. On Linux without DISPLAY the +// clipboard helper is never loaded, and on other platforms no helper for +// the platform is installed, so the package uses its JavaScript fallback as +// in Node. +import { getNativeClipboard, getNativeModuleCandidates, isNativeModifierPressed } from "native-helper"; +import { relative } from "node:path"; + +delete process.env["DISPLAY"]; +console.log("clipboard", typeof getNativeClipboard()); +console.log("modifier", isNativeModifierPressed("shift")); +const root = import.meta.dirname; +for (const candidate of getNativeModuleCandidates("native/helper.node")) { + console.log("candidate", relative(root, candidate).replaceAll("\\", "/")); +} +const custom = getNativeModuleCandidates("native/helper.node", { resolvePackage: () => "/opt/helper/dist/index.js" }); +console.log("custom", custom[0]!.replaceAll("\\", "/")); diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.d.ts b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.d.ts new file mode 100644 index 000000000..8803ba552 --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.d.ts @@ -0,0 +1,11 @@ +export interface NativeHelper { + getText(): string; + getImage(): Uint8Array | undefined; + isModifierPressed?(key: string): boolean; +} +export declare function getNativeClipboard(): NativeHelper | undefined; +export declare function isNativeModifierPressed(key: string): boolean; +export declare function getNativeModuleCandidates( + nativePath: string, + options?: { moduleUrl?: string; resolvePackage?: (id: string) => string; execPath?: string }, +): string[]; diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.js b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.js new file mode 100644 index 000000000..874130379 --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/index.js @@ -0,0 +1,2 @@ +export { getNativeClipboard, isNativeModifierPressed } from "./native-platform.js"; +export { getNativeModuleCandidates } from "./native-module-path.js"; diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-module-path.js b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-module-path.js new file mode 100644 index 000000000..2a82b41f7 --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-module-path.js @@ -0,0 +1,20 @@ +import { createRequire } from "node:module"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const moduleRequire = createRequire(import.meta.url); + +// Where a prebuilt helper can live: next to the installed package, next to +// this module, and next to the executable. +export function getNativeModuleCandidates(nativePath, options = {}) { + const moduleDir = dirname(fileURLToPath(options.moduleUrl ?? import.meta.url)); + const candidates = []; + try { + const entry = (options.resolvePackage ?? moduleRequire.resolve)("native-helper"); + candidates.push(join(dirname(entry), "..", nativePath)); + } catch { + // A standalone executable has no installed package. + } + candidates.push(join(moduleDir, "..", nativePath), join(moduleDir, nativePath)); + return Array.from(new Set(candidates)); +} diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-platform.js b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-platform.js new file mode 100644 index 000000000..9aaed1dc1 --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/dist/native-platform.js @@ -0,0 +1,48 @@ +import { createRequire } from "node:module"; +import * as path from "node:path"; +import { getNativeModuleCandidates } from "./native-module-path.js"; + +const load = createRequire(import.meta.url); +const helpers = new Map(); + +function loadHelper(platform, suffix = "") { + const arch = process.arch; + if (arch !== "x64" && arch !== "arm64") return undefined; + const nativePath = path.join("native", platform, "prebuilds", `${platform}-${arch}`, `${platform}-helper${suffix}.node`); + if (helpers.has(nativePath)) return helpers.get(nativePath); + for (const modulePath of getNativeModuleCandidates(nativePath)) { + try { + const helper = load(modulePath); + if (typeof helper?.getText === "function") { + helpers.set(nativePath, helper); + return helper; + } + } catch { + // Try the next location. + } + } + helpers.set(nativePath, undefined); + return undefined; +} + +function getPlatformHelper() { + if (process.platform !== "darwin" && process.platform !== "win32") return undefined; + return loadHelper(process.platform); +} + +// The clipboard helper opens the X display, so it loads only when one is set. +export function getNativeClipboard() { + if (process.platform !== "linux") return getPlatformHelper(); + if (!process.env.DISPLAY) return undefined; + return loadHelper("linux", "-x11"); +} + +export function isNativeModifierPressed(key) { + const helper = getPlatformHelper(); + if (!helper?.isModifierPressed) return false; + try { + return helper.isModifierPressed(key) === true; + } catch { + return false; + } +} diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-arm64/linux-helper-x11.node b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-arm64/linux-helper-x11.node new file mode 100644 index 000000000..72d2c39bd --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-arm64/linux-helper-x11.node @@ -0,0 +1 @@ +placeholder for a prebuilt X11 clipboard helper diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-x64/linux-helper-x11.node b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-x64/linux-helper-x11.node new file mode 100644 index 000000000..72d2c39bd --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/native/linux/prebuilds/linux-x64/linux-helper-x11.node @@ -0,0 +1 @@ +placeholder for a prebuilt X11 clipboard helper diff --git a/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/package.json b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/package.json new file mode 100644 index 000000000..475c1d5af --- /dev/null +++ b/tests/corpus/8212-native-helper-probe-no-display/node_modules/native-helper/package.json @@ -0,0 +1 @@ +{ "name": "native-helper", "version": "1.0.0", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts" } diff --git a/tests/fixtures/npm-static/addon-probe-cli.ts b/tests/fixtures/npm-static/addon-probe-cli.ts new file mode 100644 index 000000000..4515fb5bf --- /dev/null +++ b/tests/fixtures/npm-static/addon-probe-cli.ts @@ -0,0 +1,5 @@ +import { probe, resolveHelper } from "addon-probe"; +import { join } from "node:path"; + +console.log(join("a", "b"), [probe("clipboard"), probe("keys"), resolveHelper("addon-probe-helper")].join(",")); +console.log(resolveHelper("other", (id) => `custom:${id}`)); diff --git a/tests/fixtures/npm-static/addon-probe-installed-cli.ts b/tests/fixtures/npm-static/addon-probe-installed-cli.ts new file mode 100644 index 000000000..5568ce086 --- /dev/null +++ b/tests/fixtures/npm-static/addon-probe-installed-cli.ts @@ -0,0 +1,4 @@ +import { loadInstalled } from "addon-probe"; + +console.log("before"); +console.log(loadInstalled(process.argv[2] === "module" ? "module" : "addon")); diff --git a/tests/fixtures/npm-static/node_modules/addon-probe/index.d.ts b/tests/fixtures/npm-static/node_modules/addon-probe/index.d.ts new file mode 100644 index 000000000..7de7bc1fd --- /dev/null +++ b/tests/fixtures/npm-static/node_modules/addon-probe/index.d.ts @@ -0,0 +1,3 @@ +export declare function probe(name: string): string; +export declare function resolveHelper(name: string, resolvePackage?: (id: string) => string): string; +export declare function loadInstalled(kind: "addon" | "module"): string; diff --git a/tests/fixtures/npm-static/node_modules/addon-probe/index.js b/tests/fixtures/npm-static/node_modules/addon-probe/index.js new file mode 100644 index 000000000..b718d7e98 --- /dev/null +++ b/tests/fixtures/npm-static/node_modules/addon-probe/index.js @@ -0,0 +1,38 @@ +import { createRequire } from "node:module"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const load = createRequire(import.meta.url); +const here = dirname(fileURLToPath(import.meta.url)); + +// Looks for a prebuilt addon in each packaging location, the way +// packages with optional native helpers do. +export function probe(name) { + for (const dir of ["prebuilds", "native"]) { + try { + const addon = load(join(here, dir, `${name}.node`)); + if (typeof addon?.run === "function") return "loaded"; + } catch { + // Try the next location. + } + } + return "absent"; +} + +export function resolveHelper(name, resolvePackage) { + try { + return (resolvePackage ?? load.resolve)(name); + } catch { + return "unresolved"; + } +} + +// Requires a file that is installed: an addon, or a module that is not part +// of the compiled program. +export function loadInstalled(kind) { + try { + return typeof load(join(here, kind === "addon" ? "native/installed.node" : "installed.js")); + } catch { + return "fallback"; + } +} diff --git a/tests/fixtures/npm-static/node_modules/addon-probe/installed.js b/tests/fixtures/npm-static/node_modules/addon-probe/installed.js new file mode 100644 index 000000000..8476dc24e --- /dev/null +++ b/tests/fixtures/npm-static/node_modules/addon-probe/installed.js @@ -0,0 +1 @@ +export const installed = true; diff --git a/tests/fixtures/npm-static/node_modules/addon-probe/native/installed.node b/tests/fixtures/npm-static/node_modules/addon-probe/native/installed.node new file mode 100644 index 000000000..3d1ca6ec7 --- /dev/null +++ b/tests/fixtures/npm-static/node_modules/addon-probe/native/installed.node @@ -0,0 +1 @@ +placeholder for a prebuilt addon diff --git a/tests/fixtures/npm-static/node_modules/addon-probe/package.json b/tests/fixtures/npm-static/node_modules/addon-probe/package.json new file mode 100644 index 000000000..a2f7406f5 --- /dev/null +++ b/tests/fixtures/npm-static/node_modules/addon-probe/package.json @@ -0,0 +1,7 @@ +{ + "name": "addon-probe", + "version": "1.0.0", + "type": "module", + "main": "index.js", + "types": "index.d.ts" +} diff --git a/tests/harness/corpus-costs/8210-require-computed-missing/main.ts.json b/tests/harness/corpus-costs/8210-require-computed-missing/main.ts.json new file mode 100644 index 000000000..ef439d096 --- /dev/null +++ b/tests/harness/corpus-costs/8210-require-computed-missing/main.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 4500 } diff --git a/tests/harness/corpus-costs/8211-require-resolve-computed/main.ts.json b/tests/harness/corpus-costs/8211-require-resolve-computed/main.ts.json new file mode 100644 index 000000000..ef439d096 --- /dev/null +++ b/tests/harness/corpus-costs/8211-require-resolve-computed/main.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 4500 } diff --git a/tests/harness/corpus-costs/8212-native-helper-probe-no-display/main.ts.json b/tests/harness/corpus-costs/8212-native-helper-probe-no-display/main.ts.json new file mode 100644 index 000000000..ef439d096 --- /dev/null +++ b/tests/harness/corpus-costs/8212-native-helper-probe-no-display/main.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 4500 } diff --git a/tests/harness/npm-static.test.ts b/tests/harness/npm-static.test.ts index 388da2138..962dc75b8 100644 --- a/tests/harness/npm-static.test.ts +++ b/tests/harness/npm-static.test.ts @@ -423,13 +423,99 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { }, ); + test.each(["llvm"] as const)( + "a package probing for optional addons through createRequire resolves at run time (%s)", + async (backend) => { + const entry = join(pilotRoot, "addon-probe-cli.ts"); + const { coverage } = analyze(entry, { npmStatic: "auto" }); + expect(coverage.npmStatic).toEqual([{ package: "addon-probe", status: "static" }]); + expect(coverage.diagnostics).toHaveLength(0); + expect( + (coverage.runtimeFences ?? []).filter((f) => f.code === "SC2020").map((f) => f.message), + ).toEqual([ + expect.stringContaining( + "createRequire's require with a computed specifier resolves at run time", + ), + expect.stringContaining( + "createRequire's require.resolve with a computed specifier resolves at run time", + ), + ]); + const outDir = join(cacheDir, "addon-probe", sanitize ? "san" : "plain", backend); + const result = await compile(entry, { + backend, + npmStatic: "auto", + sanitize, + outDir, + outPath: join(outDir, "program"), + }); + if (!result.ok) + throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); + const [nodeRes, nativeRes] = await Promise.all([ + runBinary(process.execPath, [entry]), + runBinary(result.binaryPath, []), + ]); + expect(nativeRes.stdout.toString()).toBe("a/b absent,absent,unresolved\ncustom:other\n"); + expect(nativeRes.stdout).toEqual(nodeRes.stdout); + expect(comparableStderr(nativeRes.stderr)).toEqual(nodeRes.stderr); + expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + }, + ); + + // Node would load the installed file, which the compiled program cannot: + // the require ends the program with the refusal instead of throwing, so + // the package's catch clause does not take its fallback. test.each([ [ - "computed specifier", - 'const spec = "node:path"; const path = load(spec);', - "computed specifier", + "addon", + /^scriptc: native addon '.*[\\/]native[\\/]installed\.node' requires Node's addon runtime, which is unavailable in scriptc \[SC2020 at .*index\.js:\d+\]\n$/, ], + [ + "module", + /^scriptc: createRequire's require of '.*[\\/]installed\.js' resolves to '.*[\\/]installed\.js', which is not part of the compiled program: the module graph is fixed at build time \[SC2020 at .*index\.js:\d+\]\n$/, + ], + ] as const)( + "a computed require of an installed %s ends the program with a refusal", + async (kind, stderr) => { + const entry = join(pilotRoot, "addon-probe-installed-cli.ts"); + const outDir = join(cacheDir, "addon-probe-installed", sanitize ? "san" : "plain"); + const result = await compile(entry, { + backend: "llvm", + npmStatic: "auto", + sanitize, + outDir, + outPath: join(outDir, "program"), + }); + if (!result.ok) + throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); + const nativeRes = await runBinary(result.binaryPath, [kind]); + expect(nativeRes.stdout.toString()).toBe("before\n"); + expect(comparableStderr(nativeRes.stderr).toString()).toMatch(stderr); + expect(nativeRes.exitCode).toBe(1); + }, + ); + + test.each([ ["escaped require", 'const alias = load; const path = alias("node:path");', "escapes"], + [ + "escaped require in a try block", + 'try { const alias = load; alias("node:path"); } catch {} const path = load("node:path");', + "escapes", + ], + [ + "computed resolve.paths request", + 'const spec = "node:path"; load.resolve.paths(spec); const path = load("node:path");', + "escapes", + ], + [ + "resolve.paths value", + 'const paths = load.resolve.paths; const path = load("node:path");', + "escapes", + ], + [ + "spread require arguments", + 'const specs = ["node:path"]; load(...specs); const path = load("node:path");', + "escapes", + ], [ "reassigned require", 'let load = createLoader(import.meta.url); load = () => ({}); const path = load("node:path");', From 9e4f1253c620270543a190b4f2f24e29c9744c28 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sat, 24 Oct 2026 10:11:29 -0500 Subject: [PATCH 006/128] Keep unchanged partitions cached across edits --- native/llvm-codegen/README.md | 2 +- native/llvm-codegen/src/emit.cpp | 39 ++++++++++++++++++- packages/compiler/src/backend/llvm/emitter.ts | 28 ++++++++----- .../src/backend/llvm/expr-callbacks.ts | 30 +++++++------- .../src/backend/llvm/expr-containers.ts | 3 +- .../src/backend/llvm/expr-primitives.ts | 2 +- .../src/backend/llvm/expr-stream-callbacks.ts | 12 +++--- .../compiler/src/backend/llvm/lib-connect.ts | 2 +- .../compiler/src/backend/llvm/lib-datagram.ts | 4 +- .../compiler/src/backend/llvm/lib-dispatch.ts | 2 +- .../compiler/src/backend/llvm/lib-http2.ts | 2 +- .../compiler/src/backend/llvm/lib-lookup.ts | 2 +- .../compiler/src/backend/llvm/lib-process.ts | 2 +- packages/compiler/src/backend/mangle.ts | 9 ----- .../lowering/class-dynamic-dispatch.ts | 3 +- 15 files changed, 89 insertions(+), 53 deletions(-) diff --git a/native/llvm-codegen/README.md b/native/llvm-codegen/README.md index 0e8abbc47..d72aebdfd 100644 --- a/native/llvm-codegen/README.md +++ b/native/llvm-codegen/README.md @@ -37,7 +37,7 @@ Repeating `--output` divides the program into that many partitions, which are co WebAssembly code generation differs from LLVM's default pipeline in two ways that do not change its output. The pass that gives multiple-entry loops a single entry runs only on functions whose control flow is irreducible; its reachability analysis grows with the square of a function's block count even when it has nothing to change. Object emission also leaves out the module pass that collects external symbols for assembly declarations, so each function's machine code is freed once it is printed instead of when the whole module is compiled. -`--cache-dir ` names a private directory the caller owns for one helper build. Simplified partitions are stored under the hash of their exact source and objects under the hash of the exact module after importing, each with a trailing digest and published by rename, so a rebuild recompiles only the partitions an edit can affect. +`--cache-dir ` names a private directory the caller owns for one helper build. Simplified partitions are stored under the hash of their exact source and objects under the hash of the exact module after importing, each with a trailing digest and published by rename, so a rebuild recompiles only the partitions an edit can affect. The locals ThinLTO promotes for importing are named after their partition rather than a hash of its bitcode, so an edit to one partition leaves the partitions that import from it unchanged. `--import-bitcode `, given once per runtime-pack unit that ships bitcode, imports runtime functions for inlining; scriptc's program builds do not pass it. Small runtime functions reachable from the program's runtime calls are imported as `available_externally` so LLVM can inline them; the runtime objects remain the only definitions. The helper never runs a sanitizer pass, so with import it also drops the emitter's inert `sanitize_address` attributes, which would otherwise block that inlining. Without `--import-bitcode` the module is optimized exactly as emitted. diff --git a/native/llvm-codegen/src/emit.cpp b/native/llvm-codegen/src/emit.cpp index 9cae164d3..4e8c7a30c 100644 --- a/native/llvm-codegen/src/emit.cpp +++ b/native/llvm-codegen/src/emit.cpp @@ -170,6 +170,38 @@ void limitProfileImports() { (void)Limited; } +// ThinLTO renames the locals it promotes so that the code other partitions +// import can refer to them: switch tables, constants and the other private +// symbols optimization creates. By default the new name carries a hash of +// the defining partition's whole bitcode, so an edit anywhere in a partition +// renames them in every partition that imports from it, and those partitions +// miss the object cache although their own code is unchanged. Named after +// the partition instead (PartitionSourceName), they keep their names while +// the partition changes. The option is process-wide; the helper sets it once. +void stablePromotedNames() { + static const bool Set = [] { + StringRef Name = "use-source-filename-for-promoted-locals"; + if (cl::Option *Option = cl::getRegisteredOptions().lookup(Name)) + Option->addOccurrence(0, Name, "true"); + return true; + }(); + (void)Set; +} + +// Gives a partition's module its own source file name, which the names of +// the locals ThinLTO promotes derive from (stablePromotedNames). It runs +// after the pre-link optimization, so profile annotation still matches the +// program's local functions under their source path. +struct PartitionSourceName : PassInfoMixin { + explicit PartitionSourceName(std::string Name) : Name(std::move(Name)) {} + std::string Name; + PreservedAnalyses run(Module &M, ModuleAnalysisManager &) { + M.setSourceFileName(Name); + return PreservedAnalyses::all(); + } + static bool isRequired() { return true; } +}; + // Reads the profile's header once, before any partition needs it: it must // hold IR-level counts. std::optional inspectProfile(const EmitOptions &Options) { @@ -559,8 +591,12 @@ compileOptimizedPartitions(const EmitOptions &Options, size_t Count = Plan.Modules.size(); std::vector> Summaries(Count); SharedFailure Failures; + stablePromotedNames(); forEachPartition(Count, [&](size_t I) { - std::string Key = hashParts({Salt, "summary", Plan.Modules[I]}); + // The partition's index names its promoted locals, so it keys the + // summary with the partition's source. + std::string Key = + hashParts({Salt, "summary", std::to_string(I), Plan.Modules[I]}); if ((Summaries[I] = Cache.lookup(Key, "bc"))) return; std::string LookupError; @@ -593,6 +629,7 @@ compileOptimizedPartitions(const EmitOptions &Options, // link; the post-link optimization reads the annotated weights. Pipeline P(*Machine, Level, profileOptions(Options)); ModulePassManager MPM = P.PB.buildThinLTOPreLinkDefaultPipeline(Level); + MPM.addPass(PartitionSourceName("scriptc-partition-" + std::to_string(I))); MPM.addPass(BitcodeWriterPass(Stream, /*ShouldPreserveUseListOrder=*/false, /*EmitSummaryIndex=*/true, /*EmitModuleHash=*/true)); diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index 59b4b64a4..69ca09e71 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -2746,12 +2746,13 @@ export class LlEmitter { // ── plumbing (frame and scope ownership) ────── - /** A symbol derived from the constant's text rather than its first-use - * index, so an edit that interns one more string leaves every other - * constant's symbol, and the code referencing it, unchanged. This lets - * native builds reuse the compiled partitions an edit does not touch. A - * collision retries with a counter, still in first-use order. */ - private contentSymbol(prefix: string, text: string): string { + /** A symbol derived from a constant's text, or a helper's key, rather + * than its first-use index, so an edit that interns one more string or + * helper leaves every other symbol, and the code referencing it, + * unchanged. This lets native builds reuse the compiled partitions an + * edit does not touch. A collision retries with a counter, still in + * first-use order. */ + contentSymbol(prefix: string, text: string): string { for (let attempt = 0; ; attempt++) { const digest = createHash("sha256") .update(attempt === 0 ? text : `${attempt}\0${text}`) @@ -2877,7 +2878,7 @@ export class LlEmitter { const key = `${unionId}:${tag}`; let sym = this.unitInstances.get(key); if (!sym) { - sym = `sc_unit_${this.unitInstances.size}`; + sym = this.contentSymbol("sc_unit_", key); this.unitInstances.set(key, sym); } this.journal?.entry("unit", key, sym); @@ -4997,8 +4998,15 @@ export class LlEmitter { case "retainWrapper": addEntry(this.nullableUnions.retainWrappers, key, value as string); return; - case "unit": - return addNumbered(this.unitInstances, key, value as string, "sc_unit_", names); + case "unit": { + let own = this.unitInstances.get(key); + if (own === undefined) { + own = this.contentSymbol("sc_unit_", key); + this.unitInstances.set(key, own); + } + if (own !== value) names.set(value as string, own); + return; + } case "absent": return addNumbered(this.absentInstances, key, value as string, "sc_absent_", names); case "retype": @@ -5006,7 +5014,7 @@ export class LlEmitter { case "slots": return addNumbered(this.threadSlotsBlocks, key, value as string, "@sc_slots_", names); case "regex": - return addNumberedSymbol(this.regexInstances, key, value as never, "sc_re_", names); + return this.addContentEntry(this.regexInstances, key, value as never, "sc_re_", names); case "templateStrings": return addNumberedSymbol( this.templateStringsInstances, diff --git a/packages/compiler/src/backend/llvm/expr-callbacks.ts b/packages/compiler/src/backend/llvm/expr-callbacks.ts index 398aebb21..3d5a53402 100644 --- a/packages/compiler/src/backend/llvm/expr-callbacks.ts +++ b/packages/compiler/src/backend/llvm/expr-callbacks.ts @@ -8,7 +8,7 @@ import { typeEquals, typeKey, } from "../../ir/ir.js"; -import { mangleGenResThunk, mangleRecordNew, mangleRecordStruct } from "../mangle.js"; +import { mangleRecordNew, mangleRecordStruct } from "../mangle.js"; import { FN_ATTRS, llFieldType, releaseSym, retainSym, traceArg, vAdapters } from "./shapes.js"; import { LlvmUnsupportedError } from "./unsupported.js"; import type { LlvmEmitterContext } from "./expr-context.js"; @@ -54,7 +54,7 @@ export function raceAdapterFor(host: LlvmEmitterContext, from: IrType, to: IrTyp const key = `race:${typeKey(from)}=>${typeKey(to)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_race_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_race_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "raceAdapterFor", [from, to]); const toArms = to.kind === "union" ? (host.unionsById.get(to.unionId)?.arms ?? []) : []; @@ -217,7 +217,7 @@ export function genResultThunkFor( const key = `gr:${typeKey(genT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = mangleGenResThunk(host.resolveThunks.size); + sym = host.contentSymbol("sc_gres_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "genResultThunkFor", [genT, recT]); const shape = host.recordsById.get(recT.shapeId); @@ -474,7 +474,7 @@ export function childExitThunkFor(host: LlvmEmitterContext, param: IrType): stri const key = `cx:${param.unionId}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_cx_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_cx_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "childExitThunkFor", [param]); const def = host.unionsById.get(param.unionId); @@ -519,7 +519,7 @@ export function childExitSignalThunkFor( const key = `cx2:${codeParam.unionId}+${sigParam.unionId}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_cx_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_cx_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "childExitSignalThunkFor", [codeParam, sigParam]); const codeDef = host.unionsById.get(codeParam.unionId); @@ -580,7 +580,7 @@ export function execFileThunkFor(host: LlvmEmitterContext, cbT: IrType & { kind: const key = `exec:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_exec_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_exec_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "execFileThunkFor", [cbT]); const errorParam = cbT.params[0]; @@ -652,7 +652,7 @@ export function ipcMessageThunkFor( const key = `ipcmsg:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_ipc_msg_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ipc_msg_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "ipcMessageThunkFor", [cbT]); const param = cbT.params[0]; @@ -703,7 +703,7 @@ export function ipcSendThunkFor(host: LlvmEmitterContext, cbT: IrType & { kind: const key = `ipcsend:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_ipc_send_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ipc_send_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "ipcSendThunkFor", [cbT]); const param = cbT.params[0]; @@ -764,7 +764,7 @@ export function childDataThunkFor(host: LlvmEmitterContext, param: IrType): stri const key = `cd:${param.unionId}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_cd_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_cd_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "childDataThunkFor", [param]); const def = host.unionsById.get(param.unionId); @@ -799,7 +799,7 @@ export function childDataDynThunkFor(host: LlvmEmitterContext, chunk: "bytes" | const key = `cdd:${chunk}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_cdd_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_cdd_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "childDataDynThunkFor", [chunk]); const box = chunk === "bytes" ? "scr_dyn_new_buffer" : "scr_dyn_new_str"; @@ -834,7 +834,7 @@ export function emitterFixedAdapter( const key = `ee:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return { fn: sym, shim }; - sym = `sc_ee_ad_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ee_ad_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "emitterFixedAdapter", [cbT]); host.declare(`declare ptr @scr_box_get_ref(ptr)`); @@ -905,7 +905,7 @@ export function emitterOnceAdapter( : `eeOnce:${fire}:${typeKey(boxerT)}`; let sym = host.resolveThunks.get(key); if (sym) return { fn: sym, shim }; - sym = `sc_ee_once_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ee_once_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "emitterOnceAdapter", [boxerT, fire]); host.declare(`declare ptr @scr_box_get_ref(ptr)`); @@ -1015,7 +1015,7 @@ export function closeBindThunkFor( const key = `ncb:${cbUnion.unionId}:${retServer ? "srv" : "void"}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_ncb_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ncb_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "closeBindThunkFor", [cbUnion, retServer]); const def = host.unionsById.get(cbUnion.unionId); @@ -1121,7 +1121,7 @@ export function closeOverrideWrapFor( const key = `ncw:${cbUnion.unionId}:${retServer ? "srv" : "void"}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_ncw_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ncw_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "closeOverrideWrapFor", [cbUnion, retServer]); const def = host.unionsById.get(cbUnion.unionId); @@ -1169,7 +1169,7 @@ export function settledStoreFor( const key = `settled:${typeKey(from)}=>${typeKey(to)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_settled_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_settled_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "settledStoreFor", [from, to]); const def = host.unionsById.get(to.unionId); diff --git a/packages/compiler/src/backend/llvm/expr-containers.ts b/packages/compiler/src/backend/llvm/expr-containers.ts index 279b8c044..8ffc8727e 100644 --- a/packages/compiler/src/backend/llvm/expr-containers.ts +++ b/packages/compiler/src/backend/llvm/expr-containers.ts @@ -3,7 +3,6 @@ import { arraySearchHelperName, arraySearchKind } from "./array-search.js"; import { InternalCompilerError } from "../../errors.js"; import { isStableReceiverOperand, undefinedArmTag } from "../../ir/analysis.js"; import { F64, type IrExpr, type IrType, isRefCounted, typeEquals, typeKey } from "../../ir/ir.js"; -import { mangleResolveThunk } from "../mangle.js"; import { arrOps, elemAccess, @@ -71,7 +70,7 @@ export function resolveThunkFor(host: LlvmEmitterContext, inner: IrType): string const key = typeKey(inner); let sym = host.resolveThunks.get(key); if (!sym) { - sym = mangleResolveThunk(host.resolveThunks.size); + sym = host.contentSymbol("sc_rslv_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "resolveThunkFor", [inner]); const v = vAdapters(host.shapeHost, inner); diff --git a/packages/compiler/src/backend/llvm/expr-primitives.ts b/packages/compiler/src/backend/llvm/expr-primitives.ts index ccbe3edcc..8ecf147f6 100644 --- a/packages/compiler/src/backend/llvm/expr-primitives.ts +++ b/packages/compiler/src/backend/llvm/expr-primitives.ts @@ -589,7 +589,7 @@ export function regexLiteralTemplate( let re = host.regexInstances.get(key); if (!re) { re = { - sym: `sc_re_${host.regexInstances.size}`, + sym: host.contentSymbol("sc_re_", key), src: host.internLiteral(e.pattern), fl: host.internLiteral(e.flags), pattern: e.pattern, diff --git a/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts b/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts index b368c91f4..285f9ca9a 100644 --- a/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts +++ b/packages/compiler/src/backend/llvm/expr-stream-callbacks.ts @@ -13,7 +13,7 @@ export function streamDataAdapter( const key = `eed:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_ee_dad_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_ee_dad_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "streamDataAdapter", [cbT]); const p = cbT.params[0]; @@ -221,7 +221,7 @@ export function streamDoneFnFor( const key = `sd:${kind}:${typeKey(doneT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_sd_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_sd_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "streamDoneFnFor", [kind, doneT]); const errT = doneT.params[0]; @@ -365,7 +365,7 @@ export function fsRenameThunkFor(host: LlvmEmitterContext, cbT: IrType & { kind: const key = `fsren:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_fsren_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_fsren_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "fsRenameThunkFor", [cbT]); const param = cbT.params[0]!; @@ -454,7 +454,7 @@ export function cryptoIntThunkFor( const key = `cryptoint:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_cryptoint_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_cryptoint_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "cryptoIntThunkFor", [cbT]); const d: string[] = [ @@ -516,7 +516,7 @@ export function zlibBytesThunkFor( const key = `${family}bytes:${arrayBuffer ? "arraybuffer:" : ""}${mode}${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_${family}bytes_${host.resolveThunks.size}`; + sym = host.contentSymbol(`sc_${family}bytes_`, key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "zlibBytesThunkFor", [cbT, arrayBuffer, family, valueMode]); const d: string[] = [ @@ -644,7 +644,7 @@ export function streamCbThunkFor( const key = `scb:${kind}:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_scb_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_scb_", key); host.resolveThunks.set(key, sym); host.journal?.allocated(sym, "streamCbThunkFor", [kind, cbT]); const runtimeParams = diff --git a/packages/compiler/src/backend/llvm/lib-connect.ts b/packages/compiler/src/backend/llvm/lib-connect.ts index 4d151fc7e..2ab72c188 100644 --- a/packages/compiler/src/backend/llvm/lib-connect.ts +++ b/packages/compiler/src/backend/llvm/lib-connect.ts @@ -17,7 +17,7 @@ function connectAdapter(host: LlvmEmitterContext, cb: LlValue, h2: boolean): str const key = `connect:${h2}:${typeKey(type)}`; const previous = host.resolveThunks.get(key); if (previous !== undefined) return previous; - const symbol = `sc_connect_${host.resolveThunks.size}`; + const symbol = host.contentSymbol("sc_connect_", key); host.resolveThunks.set(key, symbol); host.journal?.allocated(symbol, "connectAdapter", [cb, h2]); const retain = h2 ? "scr_http_res_retain_v" : "scr_net_sock_retain_v"; diff --git a/packages/compiler/src/backend/llvm/lib-datagram.ts b/packages/compiler/src/backend/llvm/lib-datagram.ts index 07de4e54e..7a83f1d30 100644 --- a/packages/compiler/src/backend/llvm/lib-datagram.ts +++ b/packages/compiler/src/backend/llvm/lib-datagram.ts @@ -19,7 +19,7 @@ function messageAdapter(host: LlvmEmitterContext, type: IrType): string { const key = "dgram:" + type.shapeId; const previous = host.resolveThunks.get(key); if (previous !== undefined) return previous; - const symbol = `sc_dgram_message_${host.resolveThunks.size}`; + const symbol = host.contentSymbol("sc_dgram_message_", key); host.resolveThunks.set(key, symbol); host.journal?.allocated(symbol, "messageAdapter", [type]); const shape = host.recordsById.get(type.shapeId); @@ -68,7 +68,7 @@ function lookupAdapter(host: LlvmEmitterContext, cb: LlValue): string { const key = `dns:${error.unionId}:${arity}`; const previous = host.resolveThunks.get(key); if (previous !== undefined) return previous; - const symbol = `sc_dns_lookup_${host.resolveThunks.size}`; + const symbol = host.contentSymbol("sc_dns_lookup_", key); host.resolveThunks.set(key, symbol); host.journal?.allocated(symbol, "lookupAdapter", [cb]); host.declare("declare ptr @scr_error_new(i32, ptr)"); diff --git a/packages/compiler/src/backend/llvm/lib-dispatch.ts b/packages/compiler/src/backend/llvm/lib-dispatch.ts index 9cd11feb1..6ab83016d 100644 --- a/packages/compiler/src/backend/llvm/lib-dispatch.ts +++ b/packages/compiler/src/backend/llvm/lib-dispatch.ts @@ -1085,7 +1085,7 @@ function emitPromiseAllTuple(host: LlvmEmitterContext, e: LibCallExpr): LlValue const key = `allTuple:${build.fnName}`; let adapter = host.resolveThunks.get(key); if (adapter === undefined) { - adapter = `sc_all_tuple_${host.resolveThunks.size}`; + adapter = host.contentSymbol("sc_all_tuple_", key); host.resolveThunks.set(key, adapter); const rc = vAdapters(host.shapeHost, tuple); host.declare(`declare ptr @scr_promise_payload_ref(ptr)`); diff --git a/packages/compiler/src/backend/llvm/lib-http2.ts b/packages/compiler/src/backend/llvm/lib-http2.ts index 321f1d005..1808200a0 100644 --- a/packages/compiler/src/backend/llvm/lib-http2.ts +++ b/packages/compiler/src/backend/llvm/lib-http2.ts @@ -21,7 +21,7 @@ function sniAnswer(host: LlvmEmitterContext, type: IrType): string { const key = "sni:" + typeKey(type); const previous = host.resolveThunks.get(key); if (previous !== undefined) return previous; - const symbol = `sc_sni_answer_${host.resolveThunks.size}`; + const symbol = host.contentSymbol("sc_sni_answer_", key); host.resolveThunks.set(key, symbol); host.journal?.allocated(symbol, "sniAnswer", [type]); const params = ["ptr %self"], diff --git a/packages/compiler/src/backend/llvm/lib-lookup.ts b/packages/compiler/src/backend/llvm/lib-lookup.ts index 56e94461f..620833819 100644 --- a/packages/compiler/src/backend/llvm/lib-lookup.ts +++ b/packages/compiler/src/backend/llvm/lib-lookup.ts @@ -37,7 +37,7 @@ function lookupAnswer(host: LlvmEmitterContext, answer: IrType & { kind: "func" const key = "lookup:" + typeKey(answer); let symbol = host.resolveThunks.get(key); if (symbol === undefined) { - symbol = `sc_lookup_answer_${host.resolveThunks.size}`; + symbol = host.contentSymbol("sc_lookup_answer_", key); host.resolveThunks.set(key, symbol); host.journal?.allocated(symbol, "lookupAnswer", [answer]); for (const declaration of [ diff --git a/packages/compiler/src/backend/llvm/lib-process.ts b/packages/compiler/src/backend/llvm/lib-process.ts index 1a3973b07..21205c9f6 100644 --- a/packages/compiler/src/backend/llvm/lib-process.ts +++ b/packages/compiler/src/backend/llvm/lib-process.ts @@ -489,7 +489,7 @@ function boundCallbackThunk(host: LlvmEmitterContext, cbT: IrType & { kind: "fun const key = `alsbound:${typeKey(cbT)}`; let sym = host.resolveThunks.get(key); if (sym) return sym; - sym = `sc_alsbound_${host.resolveThunks.size}`; + sym = host.contentSymbol("sc_alsbound_", key); host.resolveThunks.set(key, sym); host.declare("declare ptr @scr_als_bound_target(ptr)"); host.declare("declare ptr @scr_als_bound_enter(ptr)"); diff --git a/packages/compiler/src/backend/mangle.ts b/packages/compiler/src/backend/mangle.ts index 14736ead7..8542a1c64 100644 --- a/packages/compiler/src/backend/mangle.ts +++ b/packages/compiler/src/backend/mangle.ts @@ -221,15 +221,6 @@ export function mangleGenDrop(fnName: string): string { export function mangleGenSourceClose(fnName: string): string { return `sc_gc_${sanitize(fnName)}`; } -/** Emitted ref-kind resolve thunk, interned per inner-type key. */ -export function mangleResolveThunk(n: number): string { - return `sc_rslv_${n}`; -} -/** Emitted generator-resume result builder (the IteratorResult record), - * interned per generator-type key. */ -export function mangleGenResThunk(n: number): string { - return `sc_gres_${n}`; -} /** Emitted Promise.race fulfillment adapter (entry inner type → result * inner type), interned per type pair. */ export function mangleRaceThunk(n: number): string { diff --git a/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts b/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts index fc6d0a922..0789b6d4f 100644 --- a/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts +++ b/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts @@ -80,6 +80,7 @@ import { isClassCallback } from "./class-callbacks.js"; import { CaughtValueDispatch } from "./caught-value-dispatch.js"; import { refreshDescriptorGuards } from "./class-descriptors.js"; import { ClassConstructionDispatch } from "./class-construction.js"; +import { keyedHelperName } from "./stable-names.js"; import { DispatchSites } from "./dispatch-sites.js"; import { emitterRooted, @@ -3909,7 +3910,7 @@ export class ClassDynamicDispatch { if (!dispatch.fn.params.some((param) => param.localId === dispatch.keyLocal)) params.push({ localId: dispatch.keyLocal, name: "key", type: STRING }); const helper: IrFunction = { - name: `%dyn.class.keys.${lowerer.liftedFns.length}`, + name: keyedHelperName(lowerer, "%dyn.class.keys", helperKey), params, returnType: dispatch.fn.returnType, locals: params.map((p) => ({ From f8f3194e0c640f17a09578c941e2f1b15d44825e Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sat, 24 Oct 2026 13:13:52 -0500 Subject: [PATCH 007/128] Merge main --- .github/workflows/ci.yml | 17 +- benchmarks/runtime/README.md | 3 + .../runtime/workloads/dynamic-properties.json | 6 + .../runtime/workloads/dynamic-properties.mjs | 56 +++++ benchmarks/runtime/workloads/json-unions.json | 6 + benchmarks/runtime/workloads/json-unions.ts | 155 ++++++++++++++ .../workloads/keyed-option-writes.json | 6 + .../runtime/workloads/keyed-option-writes.ts | 76 +++++++ docs/content/docs/how-it-works.mdx | 2 +- docs/content/limitations/builtin-apis/url.mdx | 3 +- .../symbol-fields.mdx | 1 + native/llvm-codegen/src/partition.cpp | 94 ++++++++ native/llvm-codegen/src/partition.h | 14 +- packages/compiler/native/cli.profdata.gz | Bin 1701590 -> 1751358 bytes .../src/backend/llvm/call-lifetimes.test.ts | 151 +++++++++++++ .../src/backend/llvm/call-lifetimes.ts | 127 +++++++++-- packages/compiler/src/backend/llvm/dyn.ts | 183 ++++++++++++++-- .../src/backend/llvm/emit-function.ts | 9 +- .../compiler/src/backend/llvm/emit-module.ts | 35 ++- .../src/backend/llvm/emit-statements.ts | 2 +- packages/compiler/src/backend/llvm/emitter.ts | 155 ++++++++++---- .../compiler/src/backend/llvm/expr-dynamic.ts | 14 ++ .../src/backend/llvm/expr-stream-bridges.ts | 71 +++++-- .../src/backend/llvm/integer-views.ts | 12 +- .../src/backend/llvm/lazy-captures.ts | 16 +- .../src/backend/llvm/loop-array-borrows.ts | 14 +- .../compiler/src/backend/llvm/shapes.test.ts | 20 +- packages/compiler/src/backend/llvm/shapes.ts | 91 ++++---- packages/compiler/src/backend/may-throw.ts | 19 +- .../compiler/src/backend/vendor-archives.ts | 14 +- .../compiler/src/contracts/int32-elements.ts | 3 +- .../frontend/lowering/builtins/webassembly.ts | 5 +- .../lowering/class-dynamic-dispatch.ts | 84 +++++++- .../lowering/class-method-mutations.ts | 71 ++++++- .../frontend/lowering/class-to-primitive.ts | 108 +++++++++- .../lowering/containers/array-pipelines.ts | 4 +- .../lowering/containers/iterator-helpers.ts | 18 +- .../frontend/lowering/cycle-initialization.ts | 10 +- .../frontend/lowering/generic-functions.ts | 6 +- .../lowering/instantiation-path.test.ts | 12 +- .../frontend/lowering/instantiation-path.ts | 6 +- .../src/frontend/lowering/lower-calls.ts | 6 +- .../src/frontend/lowering/lower-classes.ts | 5 +- .../src/frontend/lowering/lower-inspect.ts | 104 ++++++++- .../src/frontend/lowering/lower-modules.ts | 17 +- .../compiler/src/frontend/lowering/lowerer.ts | 58 +++-- .../lowering/site-dependencies.test.ts | 14 +- .../frontend/lowering/site-dependencies.ts | 15 +- .../frontend/lowering/string-index-bounds.ts | 23 +- .../src/frontend/lowering/symbol-fields.ts | 49 +++++ packages/compiler/src/frontend/npm-static.ts | 59 ++--- packages/compiler/src/frontend/services.ts | 9 +- .../src/frontend/token-equivalence.test.ts | 51 ++++- .../src/frontend/token-equivalence.ts | 89 +++++++- .../src/frontend/ts7/lib-diagnostics.test.ts | 50 +++++ .../src/frontend/ts7/lib-diagnostics.ts | 62 ++++-- .../src/frontend/ts7/semantic-model.ts | 4 +- .../src/frontend/ts7/source-parser.ts | 4 +- .../src/ir/callback-specialization.ts | 27 ++- packages/compiler/src/ir/capture-values.ts | 6 +- packages/compiler/src/ir/constant-globals.ts | 20 +- .../src/ir/function-references.test.ts | 6 + .../compiler/src/ir/function-references.ts | 1 + packages/compiler/src/ir/int32-slots.test.ts | 6 + packages/compiler/src/ir/int32-slots.ts | 15 +- .../compiler/src/ir/integer-loop-facts.ts | 90 +++++++- .../compiler/src/ir/integer-ranges.test.ts | 74 ++++++- packages/compiler/src/ir/integer-ranges.ts | 16 +- packages/compiler/src/ir/ir.ts | 9 +- packages/compiler/src/ir/js-ic.test.ts | 188 ++++++++++++++++ packages/compiler/src/ir/js-ic.ts | 92 +++++++- packages/compiler/src/ir/receiver-readers.ts | 82 ++++--- packages/compiler/src/ir/runtime-features.ts | 18 +- packages/compiler/src/ir/self-captures.ts | 5 + packages/compiler/src/ir/validate.ts | 25 ++- packages/compiler/src/native/cache.ts | 15 +- packages/compiler/src/native/compiler.ts | 9 +- .../src/native/executable-cache.test.ts | 38 +++- .../compiler/src/native/executable-cache.ts | 137 ++++++++---- packages/compiler/src/native/prepare.test.ts | 34 ++- packages/compiler/src/native/prepare.ts | 26 ++- .../compiler/test/chunked-emission.test.ts | 8 +- packages/compiler/test/js-ic-emission.test.ts | 44 ++++ .../compiler/test/keyed-method-writes.test.ts | 79 +++++++ .../compiler/test/native-partitions.test.ts | 62 +++++- .../6305-json-discriminant-dispatch.ts.json | 6 + .../6306-discriminant-getter-dispatch.ts.json | 6 + ...-pointer-union-forwarded-arguments.ts.json | 6 + .../7663-pointer-union-stored-payload.ts.json | 6 + ...751-class-well-known-symbol-fields.ts.json | 6 + .../7984-untyped-array-methods.mjs.json | 6 + .../8002-while-byte-length-companions.ts.json | 6 + .../tests/corpus/8105-url-idna-hosts.js.json | 6 + .../8106-shared-typed-array-set.ts.json | 6 + ...107-shared-typed-array-set-workers.ts.json | 6 + .../main.ts.json | 6 + .../test/untyped-push-emission.test.ts | 42 ++++ .../test/while-induction-emission.test.ts | 94 ++++++++ .../runtime-pack-common/scripts/build.mjs | 4 + packages/runtime/src/scr_array.c | 8 + packages/runtime/src/scr_array.h | 4 + packages/runtime/src/scr_bigint.c | 192 +++++++++++++++-- packages/runtime/src/scr_bytes.c | 21 +- packages/runtime/src/scr_bytes.test.c | 47 ++++ packages/runtime/src/scr_dyn.h | 23 ++ packages/runtime/src/scr_dyn_invoke.c | 126 ++++++++++- packages/runtime/src/scr_idna.c | 11 +- packages/runtime/src/scr_inspect.c | 31 ++- packages/runtime/src/scr_js.h | 11 +- packages/runtime/src/scr_js_object.c | 32 ++- packages/runtime/src/scr_js_object.test.c | 26 ++- packages/runtime/src/scr_json.c | 137 +++++++++++- packages/runtime/src/scr_json.h | 5 + packages/runtime/src/scr_json.test.c | 25 +++ packages/runtime/src/scr_symbol.c | 5 + packages/runtime/src/scr_url.c | 45 ++-- packages/runtime/src/scr_url.h | 4 + scripts/zero-cost-compare.mjs | 7 +- .../corpus/6305-json-discriminant-dispatch.ts | 123 +++++++++++ .../6306-discriminant-getter-dispatch.ts | 55 +++++ .../7660-pointer-union-forwarded-arguments.ts | 127 +++++++++++ .../7663-pointer-union-stored-payload.ts | 83 ++++++++ .../7751-class-well-known-symbol-fields.ts | 115 ++++++++++ tests/corpus/7984-untyped-array-methods.mjs | 120 +++++++++++ .../8002-while-byte-length-companions.ts | 201 ++++++++++++++++++ tests/corpus/8105-url-idna-hosts.js | 58 +++++ tests/corpus/8106-shared-typed-array-set.ts | 97 +++++++++ .../8107-shared-typed-array-set-workers.ts | 63 ++++++ .../main.ts | 8 + .../node_modules/app-config/dist/config.js | 18 ++ .../node_modules/app-config/dist/index.d.ts | 2 + .../node_modules/app-config/dist/index.js | 1 + .../node_modules/app-config/dist/usage.js | 12 ++ .../node_modules/app-config/package.json | 1 + tests/harness/ci-test-plan.test.ts | 6 +- .../6305-json-discriminant-dispatch.ts.json | 1 + .../6306-discriminant-getter-dispatch.ts.json | 1 + ...751-class-well-known-symbol-fields.ts.json | 1 + .../7984-untyped-array-methods.mjs.json | 1 + .../8002-while-byte-length-companions.ts.json | 1 + .../main.ts.json | 1 + tests/harness/dyncheck.test.ts | 89 ++++++++ tests/harness/event-loop-cases.ts | 4 +- tests/harness/library-mode.test.ts | 20 ++ tests/library-mode/js-ic-sessions/lib.ts | 6 + tests/library-mode/js-ic-sessions/probe.c | 25 +++ .../library-mode/js-ic-sessions/profile.json | 14 ++ tests/library-mode/js-ic-sessions/work.mjs | 26 +++ 148 files changed, 5156 insertions(+), 540 deletions(-) create mode 100644 benchmarks/runtime/workloads/dynamic-properties.json create mode 100644 benchmarks/runtime/workloads/dynamic-properties.mjs create mode 100644 benchmarks/runtime/workloads/json-unions.json create mode 100644 benchmarks/runtime/workloads/json-unions.ts create mode 100644 benchmarks/runtime/workloads/keyed-option-writes.json create mode 100644 benchmarks/runtime/workloads/keyed-option-writes.ts create mode 100644 packages/compiler/test/keyed-method-writes.test.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6305-json-discriminant-dispatch.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6306-discriminant-getter-dispatch.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7660-pointer-union-forwarded-arguments.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7663-pointer-union-stored-payload.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7751-class-well-known-symbol-fields.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7984-untyped-array-methods.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8002-while-byte-length-companions.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8105-url-idna-hosts.js.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8106-shared-typed-array-set.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8107-shared-typed-array-set-workers.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8215-js-any-logical-module-bindings/main.ts.json create mode 100644 packages/compiler/test/untyped-push-emission.test.ts create mode 100644 packages/compiler/test/while-induction-emission.test.ts create mode 100644 tests/corpus/6305-json-discriminant-dispatch.ts create mode 100644 tests/corpus/6306-discriminant-getter-dispatch.ts create mode 100644 tests/corpus/7660-pointer-union-forwarded-arguments.ts create mode 100644 tests/corpus/7663-pointer-union-stored-payload.ts create mode 100644 tests/corpus/7751-class-well-known-symbol-fields.ts create mode 100644 tests/corpus/7984-untyped-array-methods.mjs create mode 100644 tests/corpus/8002-while-byte-length-companions.ts create mode 100644 tests/corpus/8105-url-idna-hosts.js create mode 100644 tests/corpus/8106-shared-typed-array-set.ts create mode 100644 tests/corpus/8107-shared-typed-array-set-workers.ts create mode 100644 tests/corpus/8215-js-any-logical-module-bindings/main.ts create mode 100644 tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/config.js create mode 100644 tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.d.ts create mode 100644 tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.js create mode 100644 tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/usage.js create mode 100644 tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/package.json create mode 100644 tests/harness/corpus-costs/6305-json-discriminant-dispatch.ts.json create mode 100644 tests/harness/corpus-costs/6306-discriminant-getter-dispatch.ts.json create mode 100644 tests/harness/corpus-costs/7751-class-well-known-symbol-fields.ts.json create mode 100644 tests/harness/corpus-costs/7984-untyped-array-methods.mjs.json create mode 100644 tests/harness/corpus-costs/8002-while-byte-length-companions.ts.json create mode 100644 tests/harness/corpus-costs/8215-js-any-logical-module-bindings/main.ts.json create mode 100644 tests/library-mode/js-ic-sessions/lib.ts create mode 100644 tests/library-mode/js-ic-sessions/probe.c create mode 100644 tests/library-mode/js-ic-sessions/profile.json create mode 100644 tests/library-mode/js-ic-sessions/work.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec555fdc4..3b3e1fee7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -225,17 +225,22 @@ jobs: # worker budget covers both processes; file and case shard axes stay # separate so every fixture still runs exactly once in each lane. # The tests run in a transient scope capped below the runner's 16 GB, so - # the runner itself keeps memory: past 14 GB of RAM the scope swaps, as - # the whole runner did before (a sanitized shard peaks near 16 GB), and - # when RAM and swap run out the kernel kills the scope's largest process. + # the runner itself keeps memory: past 15 GB of RAM the scope swaps, as + # the whole runner did before, and when RAM and swap run out the kernel + # kills the scope's largest process. A sanitized shard peaks near 16 GB, + # and the sanitized self-hosting native-frontend build alone needs 15 GB + # (its clang compile of the frontend takes 10.5 GB). # OOMPolicy=continue leaves the rest of the scope running, so vitest - # reports the killed worker and the job log names the test. + # reports the killed worker and the job log names the test. Node sizes + # its default heap from the memory it may use, which the scope lowers + # below 4 GB; the workers keep the 4 GB heap they had on the bare + # runner. - name: Tests (corpus and integration suites) run: | ulimit -c 0 if [ -d /run/systemd/system ]; then - exec sudo --preserve-env systemd-run --scope --quiet -p MemoryMax=14G -p OOMPolicy=continue \ - --uid="$(id -u)" --gid="$(id -g)" -- env PATH="$PATH" HOME="$HOME" node scripts/ci-test.mjs + exec sudo --preserve-env systemd-run --scope --quiet -p MemoryMax=15G -p OOMPolicy=continue \ + --uid="$(id -u)" --gid="$(id -g)" -- env PATH="$PATH" HOME="$HOME" NODE_OPTIONS="--max-old-space-size=4096" node scripts/ci-test.mjs fi node scripts/ci-test.mjs diff --git a/benchmarks/runtime/README.md b/benchmarks/runtime/README.md index 4f152e4bb..03238871d 100644 --- a/benchmarks/runtime/README.md +++ b/benchmarks/runtime/README.md @@ -13,9 +13,12 @@ Application-shaped workloads for measuring the speed of compiled executables. Ea | `cyclic-graphs` | cpu | object graphs with back references built and dropped: trees with parent and sibling links, rings of records sharing a long-lived registry, closures capturing their owner | | `dictionary-walks` | cpu | `Record` dictionaries walked with for-in and `Object.keys`/`values`/`entries` while entries are added, updated and deleted | | `dynamic-methods` | cpu | untyped JavaScript calling builtin methods on values it does not type: string `slice`/`indexOf`/`toUpperCase`/`padStart`, array `push`/`pop`/`includes`, `Map` and `Set`, and an object's own methods | +| `dynamic-properties` | cpu | untyped JavaScript reading and writing properties of values it does not type: records built by object literals in two key orders, nested records, and instances of a class and its subclass | | `functional-pipeline` | cpu | `filter`/`map`/`reduce`/`flatMap` chains, closures, small records | | `intern-table`, `intern-table-map`, `intern-table-1`, `intern-table-map-1` | cpu | worker threads interning the same type-like objects under string keys and records under number keys, then hits and misses: one shared `InternTable` per kind of key, or a module-level `Map` per thread (the `-map` entries), with 8 threads or 1 (the `-1` entries); under Node.js every thread has its own tables | | `json-records` | cpu | `JSON.stringify`, typed `JSON.parse`, Map aggregation | +| `json-unions` | cpu | `JSON.parse` into discriminated unions: an event log with eight kinds and nested expression trees with nine, evaluated after the cast | +| `keyed-option-writes` | cpu | class methods whose names are also keys of option records written through element accesses: `enabled[name] = true` over a union of literal names and `totals["count"] = n` | | `log-lines` | cpu | 200k immediate `console.log`/`process.stdout.write` lines into the runner's pipe | | `log-summary`, `inventory-report` | cpu | the multi-module applications from `benchmarks/builds`, on 300k-line inputs | | `number-maps` | cpu | number-keyed Map/Set: a dense-id table, sparse ids in many small maps, get/has/set mixes | diff --git a/benchmarks/runtime/workloads/dynamic-properties.json b/benchmarks/runtime/workloads/dynamic-properties.json new file mode 100644 index 000000000..398981ef3 --- /dev/null +++ b/benchmarks/runtime/workloads/dynamic-properties.json @@ -0,0 +1,6 @@ +{ + "entry": "workloads/dynamic-properties.mjs", + "args": [ + "1000000" + ] +} diff --git a/benchmarks/runtime/workloads/dynamic-properties.mjs b/benchmarks/runtime/workloads/dynamic-properties.mjs new file mode 100644 index 000000000..d0ee3802c --- /dev/null +++ b/benchmarks/runtime/workloads/dynamic-properties.mjs @@ -0,0 +1,56 @@ +// Untyped JavaScript reading and writing properties of values it never +// declares types for: records built by object literals in two key orders, +// nested records, property updates, and instances of a class and its +// subclass read and written the same way. Argument: the number of +// iterations. +const rounds = Number(process.argv[2] ?? "1000000"); +class Cursor { + constructor(x, y) { + this.x = x; + this.y = y; + } + step(dx, dy) { + this.x += dx; + this.y += dy; + return this; + } +} +class Marker extends Cursor { + constructor(x, y, label) { + super(x, y); + this.label = label; + } +} +function makeItem(i) { + if (i % 3 === 0) + return { id: i, price: i % 17, qty: i % 5, meta: { tag: i % 7, weight: i % 11 } }; + return { id: i, qty: i % 5, price: i % 13, meta: { weight: i % 9, tag: i % 5 } }; +} +function cost(item) { + return item.price * item.qty + item.meta.weight; +} +function restock(item, round) { + item.qty = (item.qty + round) % 7; + item.meta.tag = (item.meta.tag + 1) % 7; +} +function distance(a, b) { + return Math.abs(a.x - b.x) + Math.abs(a.y - b.y); +} +const items = []; +for (let i = 0; i < 1024; i++) items.push(makeItem(i)); +const cursors = []; +for (let i = 0; i < 64; i++) + cursors.push(i % 2 === 0 ? new Cursor(i - 32, 7 - i) : new Marker(i - 32, 7 - i, "m" + i)); +const origin = { x: 0, y: 0 }; +let checksum = 0; +for (let r = 0; r < rounds; r++) { + const item = items[r & 1023]; + checksum += cost(item); + restock(item, r & 3); + checksum += item.meta.tag; + const cursor = cursors[r & 63]; + checksum += distance(cursor.step((r % 3) - 1, (r % 5) - 2), origin); + if (cursor.x > 100 || cursor.x < -100) cursor.x = 0; + if (cursor.y > 100 || cursor.y < -100) cursor.y = 0; +} +console.log(checksum, items[5].qty, items[6].meta.tag, cursors[3].x, cursors[3].y, cursors[3].label); diff --git a/benchmarks/runtime/workloads/json-unions.json b/benchmarks/runtime/workloads/json-unions.json new file mode 100644 index 000000000..925e8457b --- /dev/null +++ b/benchmarks/runtime/workloads/json-unions.json @@ -0,0 +1,6 @@ +{ + "entry": "workloads/json-unions.ts", + "args": [ + "6" + ] +} diff --git a/benchmarks/runtime/workloads/json-unions.ts b/benchmarks/runtime/workloads/json-unions.ts new file mode 100644 index 000000000..0f684c35f --- /dev/null +++ b/benchmarks/runtime/workloads/json-unions.ts @@ -0,0 +1,155 @@ +// JSON text parsed into discriminated unions: an event log with eight kinds +// of event and a nested expression tree with nine kinds of node, cast with +// `JSON.parse(text) as T`, then aggregated and evaluated. Argument: the +// number of rounds. +type Event = + | { kind: "click"; target: string; x: number; y: number } + | { key: string; kind: "key"; repeat: boolean } + | { kind: "scroll"; offset: number } + | { kind: "resize"; height: number; width: number } + | { kind: "focus"; target: string } + | { kind: "blur"; target: string } + | { kind: "load"; ms: number; url: string } + | { code: number; kind: "error"; message: string }; + +type Expr = + | { kind: "num"; value: number } + | { kind: "var"; name: string } + | { kind: "neg"; operand: Expr } + | { kind: "add"; left: Expr; right: Expr } + | { kind: "sub"; left: Expr; right: Expr } + | { kind: "mul"; left: Expr; right: Expr } + | { kind: "max"; items: Expr[] } + | { else: Expr; kind: "if"; test: Expr; then: Expr } + | { body: Expr; kind: "let"; name: string; value: Expr }; + +let seed = 12345; +function random(): number { + seed = (Math.imul(seed, 1103515245) + 12345) >>> 0; + return seed / 4294967296; +} + +const targets = ["menu", "search", "button", "list", "footer"]; +function eventText(i: number): string { + const target = targets[i % targets.length]!; + switch (i % 8) { + case 0: + return `{"kind":"click","target":"${target}","x":${i % 640},"y":${i % 480}}`; + case 1: + return `{"key":"k${i % 26}","kind":"key","repeat":${i % 3 === 0}}`; + case 2: + return `{"kind":"scroll","offset":${(i * 7) % 2000}}`; + case 3: + return `{"height":${400 + (i % 300)},"kind":"resize","width":${600 + (i % 500)}}`; + case 4: + return `{"kind":"focus","target":"${target}"}`; + case 5: + return `{"kind":"blur","target":"${target}"}`; + case 6: + return `{"kind":"load","ms":${i % 900},"url":"/page/${i % 50}"}`; + default: + return `{"code":${400 + (i % 100)},"kind":"error","message":"failed ${i % 13}"}`; + } +} + +const names = ["a", "b", "c", "d"]; +function exprText(depth: number): string { + const pick = depth <= 0 ? Math.floor(random() * 2) : Math.floor(random() * 9); + switch (pick) { + case 0: + return `{"kind":"num","value":${Math.floor(random() * 100)}}`; + case 1: + return `{"kind":"var","name":"${names[Math.floor(random() * names.length)]!}"}`; + case 2: + return `{"kind":"neg","operand":${exprText(depth - 1)}}`; + case 3: + case 4: + case 5: { + const kind = pick === 3 ? "add" : pick === 4 ? "sub" : "mul"; + return `{"kind":"${kind}","left":${exprText(depth - 1)},"right":${exprText(depth - 1)}}`; + } + case 6: + return `{"items":[${exprText(depth - 1)},${exprText(depth - 2)},${exprText(depth - 2)}],"kind":"max"}`; + case 7: + return `{"else":${exprText(depth - 2)},"kind":"if","test":${exprText(depth - 1)},"then":${exprText(depth - 2)}}`; + default: + return `{"body":${exprText(depth - 1)},"kind":"let","name":"${names[Math.floor(random() * names.length)]!}","value":${exprText(depth - 2)}}`; + } +} + +function evaluate(e: Expr, env: Map): number { + switch (e.kind) { + case "num": + return e.value; + case "var": + return env.get(e.name) ?? 1; + case "neg": + return -evaluate(e.operand, env); + case "add": + return (evaluate(e.left, env) + evaluate(e.right, env)) % 1000003; + case "sub": + return (evaluate(e.left, env) - evaluate(e.right, env)) % 1000003; + case "mul": + return (evaluate(e.left, env) * evaluate(e.right, env)) % 1000003; + case "max": { + let best = -Infinity; + for (const item of e.items) best = Math.max(best, evaluate(item, env)); + return best; + } + case "if": + return evaluate(e.test, env) > 0 ? evaluate(e.then, env) : evaluate(e.else, env); + case "let": { + const inner = new Map(env); + inner.set(e.name, evaluate(e.value, env)); + return evaluate(e.body, inner); + } + } +} + +const rounds = Number(process.argv[2] ?? "6"); +const eventsText = `[${Array.from({ length: 60000 }, (_, i) => eventText(i)).join(",")}]`; +const treesText = `[${Array.from({ length: 400 }, () => exprText(9)).join(",")}]`; +let clicks = 0; +let keys = 0; +let scrolled = 0; +let area = 0; +let loadMs = 0; +let errors = 0; +let focus = 0; +let total = 0; +for (let round = 0; round < rounds; round++) { + const events = JSON.parse(eventsText) as Event[]; + for (const event of events) { + switch (event.kind) { + case "click": + clicks += event.x + event.y; + break; + case "key": + if (event.repeat) keys++; + break; + case "scroll": + scrolled += event.offset; + break; + case "resize": + area += (event.width * event.height) % 1000; + break; + case "focus": + case "blur": + focus += event.target.length; + break; + case "load": + loadMs += event.ms; + break; + case "error": + errors += event.code % 7; + break; + } + } + const trees = JSON.parse(treesText) as Expr[]; + const env = new Map([ + ["a", 3], + ["b", 5], + ]); + for (const tree of trees) total = (total + evaluate(tree, env)) % 1000003; +} +console.log(clicks, keys, scrolled, area, loadMs, errors, focus, total); diff --git a/benchmarks/runtime/workloads/keyed-option-writes.json b/benchmarks/runtime/workloads/keyed-option-writes.json new file mode 100644 index 000000000..802911e7d --- /dev/null +++ b/benchmarks/runtime/workloads/keyed-option-writes.json @@ -0,0 +1,6 @@ +{ + "entry": "workloads/keyed-option-writes.ts", + "args": [ + "4" + ] +} diff --git a/benchmarks/runtime/workloads/keyed-option-writes.ts b/benchmarks/runtime/workloads/keyed-option-writes.ts new file mode 100644 index 000000000..95cdbb86b --- /dev/null +++ b/benchmarks/runtime/workloads/keyed-option-writes.ts @@ -0,0 +1,76 @@ +// Class methods whose names are also keys of option records written through +// element accesses: `enabled[name] = true` over a union of literal names and +// `totals["count"] = n`. The writes store booleans and numbers into plain +// records, so the methods keep their native calls. +type Step = "scale" | "offset" | "clamp"; + +const enabled: Record = { scale: false, offset: false, clamp: false }; +function enable(name: Step): void { + enabled[name] = true; +} + +const totals: Record = {}; + +class Transform { + private readonly factor: number; + private readonly shift: number; + constructor(factor: number, shift: number) { + this.factor = factor; + this.shift = shift; + } + scale(x: number): number { + return enabled.scale ? x * this.factor : x; + } + offset(x: number): number { + return enabled.offset ? x + this.shift : x; + } + clamp(x: number): number { + if (!enabled.clamp) return x; + return x < 0 ? 0 : x > 1000 ? 1000 : x; + } +} + +class Counter { + private seen = 0; + private sum = 0; + add(value: number): void { + this.seen++; + this.sum += value; + } + count(): number { + return this.seen; + } + mean(): number { + return this.seen === 0 ? 0 : this.sum / this.seen; + } +} + +const scale = Number(process.argv[2] ?? "1"); +const steps: Step[] = ["scale", "offset", "clamp"]; +for (const step of steps) enable(step); + +const transforms: Transform[] = []; +for (let i = 0; i < 16; i++) transforms.push(new Transform(1 + (i % 5) * 0.25, (i % 7) - 3)); +const counters: Counter[] = []; +for (let i = 0; i < 8; i++) counters.push(new Counter()); + +let seed = 12345; +let checksum = 0; +const rounds = Math.floor(2_000_000 * scale); +for (let i = 0; i < rounds; i++) { + seed = (Math.imul(seed, 1103515245) + 12345) >>> 0; + const t = transforms[seed & 15]!; + const value = t.clamp(t.offset(t.scale((seed >>> 8) % 1200))); + const counter = counters[(seed >>> 4) & 7]!; + counter.add(value); + checksum += value; + if ((i & 65535) === 0) totals["count"] = counter.count(); +} + +let mean = 0; +let seen = 0; +for (const counter of counters) { + mean += counter.mean(); + seen += counter.count(); +} +console.log("seen", seen, "count", totals["count"], "mean", (mean / counters.length).toFixed(4), "checksum", checksum); diff --git a/docs/content/docs/how-it-works.mdx b/docs/content/docs/how-it-works.mdx index e017267d7..a6520b46e 100644 --- a/docs/content/docs/how-it-works.mdx +++ b/docs/content/docs/how-it-works.mdx @@ -58,7 +58,7 @@ The LLVM helper divides an executable's LLVM IR into partitions by its size. Up -The count depends only on the size of the LLVM text, so a program has the same partitions, and builds the same executable, on every host. A function's partition follows from its name, and a small internal function goes with the one function that calls it, so an edit leaves the other functions in their partitions. +The count depends only on the size of the LLVM text, so a program has the same partitions, and builds the same executable, on every host. In programs with 32 partitions or more, functions from the same source file are placed in the same partition, so that their calls to each other stay inside it; a file larger than 1 MiB of LLVM text or than an average partition is divided into parts by function name. Other functions, and the functions of smaller programs, are placed by their name, and a small internal function goes with the one function that calls it. An edit leaves almost every other function in its partition. These builds are not divided into partitions and compile on one thread: `--emit=asm`, `--emit=obj`, and `--print=native-link-info` output, library builds (`--lib`; `dev` library builds are compiled in pieces, one after another), and `--sanitize` builds, which compile the LLVM IR with the C compiler. diff --git a/docs/content/limitations/builtin-apis/url.mdx b/docs/content/limitations/builtin-apis/url.mdx index c9eee85b3..dddf2a8f7 100644 --- a/docs/content/limitations/builtin-apis/url.mdx +++ b/docs/content/limitations/builtin-apis/url.mdx @@ -1,5 +1,4 @@ -- **URL:** Hosts of special URLs that hold non-ASCII text, or percent-escapes that decode to it, throw `ERR_INVALID_URL`, and `xn--` labels are kept without Punycode validation. - Absolute inputs and relative inputs with runtime string or URL bases, including optional bases, compile. +- **URL:** Absolute inputs and relative inputs with runtime string or URL bases, including optional bases, compile. `URL.canParse`, `URL.parse`, `toString()`, and `toJSON()` compile; the factories use the same parser as construction, returning `false` or `null` for rejected inputs while preserving conversion errors. `href`, `protocol`, `username`, `password`, `host`, `hostname`, `port`, `pathname`, `search`, and `hash` support assignment in native code. Invalid component writes are ignored except for invalid `href` values, which throw; credentials are percent-encoded and ports accept valid leading digits. diff --git a/docs/content/limitations/types-and-class-definitions/symbol-fields.mdx b/docs/content/limitations/types-and-class-definitions/symbol-fields.mdx index baff4d190..45659b493 100644 --- a/docs/content/limitations/types-and-class-definitions/symbol-fields.mdx +++ b/docs/content/limitations/types-and-class-definitions/symbol-fields.mdx @@ -1,4 +1,5 @@ - **Symbol fields:** Instance fields require a stable module-level `Symbol()` or `Symbol.for()` binding with a literal description or constant string binding. + A `[Symbol.toStringTag]` field or getter with a string value sets the tag that `String()`, `Object.prototype.toString` and `util.inspect` print; fields keyed by other well-known symbols are unsupported. Reassigned keys, runtime-computed descriptions, distinct symbols with the same description in one class, and copying symbol fields with rest bindings or `Object.assign` are unsupported. JavaScript object spreads copy represented own symbol fields. Equal registry keys share a field across modules. diff --git a/native/llvm-codegen/src/partition.cpp b/native/llvm-codegen/src/partition.cpp index f4add0e6d..93b9af4a3 100644 --- a/native/llvm-codegen/src/partition.cpp +++ b/native/llvm-codegen/src/partition.cpp @@ -11,6 +11,7 @@ #include #include +#include using namespace llvm; @@ -36,6 +37,9 @@ struct Symbol { std::string PromotedHeader; std::vector Refs; std::vector Metadata; + // The source-module group the emitter wrote before this definition, or + // empty. + StringRef Group; unsigned Partition = NoPartition; }; @@ -70,6 +74,83 @@ uint32_t stableHash(StringRef Name) { return Hash; } +// Places the functions whose root carries a source-module group by group: a +// module's functions call each other most, so keeping them together leaves +// fewer calls for the thin link to import across partitions. A group larger +// than the mean partition, or than MaxChunkBytes, is divided into a power of +// two of chunks by the hash of each root's name, so the division changes only +// when the group's size doubles. Chunks are placed largest first, each in the +// lighter of two partitions chosen by hashes of its key, after the functions +// placed by name. The placement depends only on the module text and the +// partition count. Modules with fewer than MinGroupedPartitions partitions +// keep the placement by name: with few partitions per core, the balance of +// the largest partitions decides the build time more than the imports. +void placeGroups(std::vector &Symbols, ArrayRef Roots, + unsigned Count) { + constexpr unsigned MinGroupedPartitions = 32; + if (Count < MinGroupedPartitions) + return; + auto Bytes = [](const Symbol &S) -> uint64_t { + return S.Header.size() + S.Body.size(); + }; + std::vector Load(Count, 0); + uint64_t Total = 0; + StringMap GroupBytes; + for (unsigned I = 0; I < Symbols.size(); ++I) { + const Symbol &S = Symbols[I]; + if (S.Kind != SymbolKind::Function) + continue; + Total += Bytes(S); + StringRef Group = Symbols[Roots[I]].Group; + if (Group.empty()) + Load[S.Partition] += Bytes(S); + else + GroupBytes[Group] += Bytes(S); + } + if (GroupBytes.empty()) + return; + // A chunk is at most MaxChunkBytes, so the code a partition optimizes + // together, and the inlining within it, does not grow when a program has + // fewer partitions. + constexpr uint64_t MaxChunkBytes = 1024 * 1024; + uint64_t Chunk = + std::min(MaxChunkBytes, std::max(1, Total / Count)); + std::vector Keys(Symbols.size()); + StringMap KeyBytes; + for (unsigned I = 0; I < Symbols.size(); ++I) { + const Symbol &S = Symbols[I]; + StringRef Group = Symbols[Roots[I]].Group; + if (S.Kind != SymbolKind::Function || Group.empty()) + continue; + uint64_t Chunks = 1; + while (Chunks * Chunk < GroupBytes[Group]) + Chunks *= 2; + Keys[I] = Chunks == 1 + ? Group.str() + : (Group + "#" + + Twine(stableHash(Symbols[Roots[I]].Name) % Chunks)) + .str(); + KeyBytes[Keys[I]] += Bytes(S); + } + std::vector> Order; + for (const auto &Entry : KeyBytes) + Order.push_back({Entry.getKey(), Entry.getValue()}); + llvm::sort(Order, [](const auto &A, const auto &B) { + return A.second != B.second ? A.second > B.second : A.first < B.first; + }); + StringMap Where; + for (const auto &[Key, Size] : Order) { + unsigned First = stableHash(Key) % Count; + unsigned Second = stableHash((Key + "/2").str()) % Count; + unsigned Chosen = Load[Second] < Load[First] ? Second : First; + Load[Chosen] += Size; + Where[Key] = Chosen; + } + for (unsigned I = 0; I < Symbols.size(); ++I) + if (!Keys[I].empty()) + Symbols[I].Partition = Where[Keys[I]]; +} + bool startsWithLinkage(StringRef Rest) { for (StringRef Linkage : {"linkonce", "weak", "common", "appending", "extern_weak", @@ -326,6 +407,11 @@ std::optional partitionProgramText(StringRef Text, return true; }; + // The emitter writes "; scriptc-group " before the definitions of each + // source function; the group applies until the next such line, and an + // empty key ends it. + constexpr StringRef GroupLine = "; scriptc-group"; + StringRef Group; size_t Pos = 0; while (Pos < Text.size()) { size_t End = Text.find('\n', Pos); @@ -335,10 +421,15 @@ std::optional partitionProgramText(StringRef Text, size_t Next = End + 1; if (Line.empty() || Line.trim().empty()) { // Blank separator. + } else if (Line.starts_with(GroupLine) && + (Line.size() == GroupLine.size() || + Line[GroupLine.size()] == ' ')) { + Group = Line.drop_front(GroupLine.size()).trim(); } else if (Line.starts_with("define ")) { Symbol S; S.Kind = SymbolKind::Function; S.Header = Line; + S.Group = Group; if (!parseFunctionHeader(Line, S)) return std::nullopt; // The emitter indents every body line, so the first line that is @@ -466,6 +557,7 @@ std::optional partitionProgramText(StringRef Text, Referrer[Ref] = I; } } + std::vector Roots(Symbols.size()); for (unsigned I = 0; I < Symbols.size(); ++I) { if (Symbols[I].Kind != SymbolKind::Function) continue; @@ -479,8 +571,10 @@ std::optional partitionProgramText(StringRef Text, break; Root = Parent; } + Roots[I] = Root; Symbols[I].Partition = stableHash(Symbols[Root].Name) % Count; } + placeGroups(Symbols, Roots, Count); for (const Symbol &S : Symbols) { if (S.Kind != SymbolKind::Function) continue; diff --git a/native/llvm-codegen/src/partition.h b/native/llvm-codegen/src/partition.h index 838919443..35ef4c543 100644 --- a/native/llvm-codegen/src/partition.h +++ b/native/llvm-codegen/src/partition.h @@ -20,11 +20,15 @@ struct ProgramPartitions { }; // Divides the LLVM assembly scriptc emits into Count modules without parsing -// it, so the partitions can be parsed concurrently. Functions are placed by a -// stable hash of their name; an internal function referenced by exactly one -// other function stays with that function unless its body is too large to -// inline, and a global stays with the first function that references it. Returns nullopt for any construct outside the -// emitter's narrow top-level grammar; callers then split a parsed module. +// it, so the partitions can be parsed concurrently. In modules of 32 or +// more partitions, functions under a "; scriptc-group " line are placed +// with the other functions of that source-module group, which is divided +// into chunks when it is larger than the mean partition or 1 MiB; other +// functions are placed by a stable hash of their name. An internal function referenced by exactly one other function stays +// with that function unless its body is too large to inline, and a global +// stays with the first function that references it. Returns nullopt for any +// construct outside the emitter's narrow top-level grammar; callers then +// split a parsed module. std::optional partitionProgramText(llvm::StringRef Text, unsigned Count); diff --git a/packages/compiler/native/cli.profdata.gz b/packages/compiler/native/cli.profdata.gz index b5f1e079f522bd1acd58a9d574272a2e272a8f2a..31423fa043e0a12aba496a4ae1604d79da4773ef 100644 GIT binary patch literal 1751358 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 z%0D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 FZb9Q_mW0nQa`|zjX^=^02Ug?S~ME+oD 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

OaGw0X0$FmR5F_ACy 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≫={Tk{t(BZD7H!-XU6b4sPhqL$hdLS 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

oV{Ezg6C?D0&7e{@no9S+X1r++~X_7tF)g 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 T#+&My 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%0Dpv=6^sL;#aedv%=`Sz5;aoy8)F1fLkt61I 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

  • K7I{Rt0Ez+YPt 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%0A=z%r)FY!#;I7012uh!8fi}Z@m};c#wAb0 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
    uNBT8?bFx0Z7{W<3l}8j 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

    9C(vwyz$$*DzRy#7SAv(4y4p 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 z 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

    ?@cb#d=SP$whOLZR~aTb;Ya%6ZOUE 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�AB~4Eg1-OKvnr9Y;Q&bum%*bh5 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 z zrzY3`iwFQ-{D*UT73=(_dD<`Qu-Z24GyD~ea?{sL6zYD+Bf^E$4eYCu5ZN6Dy(HAj z1>K(2#)?v6rKepS=Id5G_Rv6!(xXgs8T`WwqNAOy zgHyq3?AVR)Jq;-F&Lg7>DP>zHdD&{JE$ZBp48PR=hZh1$&fL1C71Tmn>gg50JdX{* zHvd#VfuS8-%ddO6IPWR++AJse;W>1u;=-)*jk*dvWc+m&Wa$zF^%A=%eWRBcPF@C* zu-UeUY!}D(%=*igQDUU1L`Xv1#LGvMRIM!yf#FmAg2-(^##!aH(vTquz{89j>$`95 z=W{9H?r+=?UuRB|QGx}i?19eqip@m!u_4DPbG$33*ec{6UsU(q?g@vqiSxASdiSsf z<+z#UX>rHc+dL3hf41wN^nn_03cMF#9;{Y8EwFkC@7(QmQV5F`yKF z7h*+R(jnmPEB?y-nlBD^S>3P;7y?eDlf3^ur`i2nxD3fewA10sN7z=pX~9xO7Pp`5 z65vt^ni^63S56TI{_r~=+Y`F}l3bxK)o6Jk5tA?nlTJU6A94Bv5XJZQg4+G+2<8&f zxk)eiWZ1g`3G754NBcZ<>~==iLEKrt7CJE07|50749=8-bZ@joJ5T#Dw<0Mqx(mtA zzn>Wx@4dzvQ65!l)XkZjLxp)TY;5aOX@mkGOnx#ukJs|m=}-L0_hgC*cqQ-vmL9Wn zZ7p#c({4YcqeY^D3NWxOCuWaf$0C*1@PR`rXOA;%G@S?i{y zWbys6{)d@7wQ6?&H#<%|Vb8(TQqUQFdEenhT?w$Ay}&70dC4Py-0G-VYvJJEG^D9Rs{@QR-irVQ&km*7XJ>pm5 zxK(@a#`IYy*(G1^k2ck(fI4?Bb24`my5F<>0)xm?#oK3L-cz)doa;jiFtbsmjg{;l z^oQPFxv3Y459->MJu0k##LBJfWND>K4{mr<;uRIT5w279WnJ`^z7E9Ey?0Q?8?n1= zjYBB)(#&(Agc7*@FNZTSHdH%G^ys{7<6_=D!bSB}xIbu#WFJsw1hlyFw0ba)3~|-@ zmB@Xg*Hi>#%8I8ESe2auM7%rkx@nKY+E(!gi{VU;v{xy42*IZyqv$otVW zo+bt5a`7qS*^hcCy${s*>xu2Qea{jZr(TmDzFkneq_!ex3o*~L(3FJ_?}N4scd;5T zmIkL4iT@?Xp=jj?nulQFpJLRz4gd7ne46mGZTJ{^4=PGFa9 z{nX~LwyWU8E$$c`8}vCYuP(L>c=#=AtgPvNi;iUcjYYi%q+^B6*DCdnKPOs8Ctxq) z1@AY~T@paZ^U>_!X+(>0Dfzt3 zuhc6~zWF+Y`>V|}ZqHoiBidtLjuX>c&8*!gCX!h6ykn-r7vatpASijtaK3y!pa0ah zo!u|S6L)c*+DfBzKc*ExYq!TgjYpxcJ>e$~zU7Se=kqV_1_bV9I@GqeNS?T&t{lUX zt{2p+6m4Y9O>>rT)1r?R!_DdFpneUh0ch--lcApSsP*G z)m?^RJ7h4c5ML~NqdUhvp`f^cN{kI&XPxrgQGk-a#J&&CXru>)s3avBqAHR&?q9RqNYg+jSK=JmT8 zA03+XvnP~Pz5<8|(hVA`&R(lcdKHN}0h&0Nf9nYd^0<9rmyc`M?GDmIw}LTpmuRE} ziQPJl(E0Q()>b+DIb_d(i(S;GLDRxylJmdq5%~z(fk(ksQ=FKs;|${fu9F!P*7(cs zruU@mu0cP(Hqe68f4U

    *P@Y`qcO~;T+SwX8 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 TUH4=%HTny2dXYb>e(C%lSAWI3 literal 1701590 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

    K{yH){|<+Oo@+RK+o|gnypK-CM2X*Pqn9qA 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 z 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 z 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

    3f&^%Su_N3Dd0UnlS_1D@h_lKMb~=U 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Π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

    EUyTCz1;GCpfGvQ(e**sX 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�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 z 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

    }dYZ!XoR4hePNvP**WH|J8JZoo%4`CjleW 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

      %ap3}3?b3XgriHGXU;p~K~s((@Cu@Pt%6ej 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 z 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 z z_pf05HAS!-D-bFz2qMZ~_vvj6nEDSA=^lGz!{R+0Jfoe&2-(aQ)ud{SN~5j;%X{6AR=xl6c?+OuE?-1ez3S>@i`UbrDbwp+bh3%z&-Cr_`m1NTIGl#@sUo{P zZtGrmUMw4%d#}|Yh$|gJV+5eF9)~)|*Iysjs4E+X-unniw`PMv@xnar_fRl1!mAhb zJNz2%?B27uXWh}=!@NSE1WA=SN#Zm>;I0rVP7hou-0z_v-0$M=j;wt2JA7yLavvEs z^5~eqAk}%-5I_K;s;Z*#lq$-U+`3(&(sb@vW4O^FW5djc>z^xJJb4STzniF>mh!hL zsD6>g3N%9kmSxr=SRGM4IF}# zi4Atos9S0J)1`wbhlo5yQWV9}6wC1hilU3Yp>)BphlAZexoiFD>_mpz`dFGY4KzEz zeIOH9RA5oezI9Dg!?Ot+*h71 z=bL{X@u77c*(eqv!*nVEj>T~Im8mH$y1W=%?M>D=i4#-?XcC92z12Iz2c2>;hEeX9 z7B8B%?rP9`Z%z?tl3+!OPy^q4Kc4KHqJaAy)?<{rvTMoj6?+DC*sc()rcyFZ(@J26 z?N5YA{TH0c{mAPVM$cbc!5^=WvK>huUMsY$mJb(BX%XMkqumKZU8#THXo#mT`J>Tu z5p|aqb(xoMCq5ItW}EFsy}2QW7I@JdkL5N}~>!H(nW?)USvb#AHJhiUa;@ z{hBwYZEm^O!4EsWhgDMLNkUKvnxi#RK$TR>*DfeJhx5#dB6H#qcCakqk>R ztiYn275|Ah9f1|RO>`fAnOwT%k5qpyTUAV?K$v8!I(b^P#?PNVQ9h=^Z8kD^4cSTV z7mj^A_r}B~{<~*BRX)~amo$(*`DUKv7)9YE5r`}!ZSV5c>XCcPq6j_;VT^)5&P;K) zI5F*9&I>`cfhk5+NCuF+O7JM9{Rz|7Si@BJKkGi8w7Ys3=Xpt#8Jgf&N+lKCdA{5& z8q9K-e7Okg7pVztH&R$Y#e};8LrV7%BNLDQWRj1Kz|gy5PT@!#t5E~dfER|dK9@CCmn0`n7SKuJAfI^tU25mBg*?vR5 zGlenVd^hUqyzQd`DJ>qV#_D0t4?s`p+-Csg|pHW5wzQ7>>0d?792o98Lyf-8WO zlrVX1R=TEJCwBJSL-~qHQ}!<&_)!l_d}5el((u>8%kJwxHlN*L6Wmqm;b@u7VPaW9 z5NQzz3`d(3nRtEO`9-9Wv{tEdi=d@X|c$!4=oG^vUvlY~Z#6v?6j z;1B3fV#y`$pQoMJFsf!X9Jvw%mheO#=0%YuX}_DB)w*fscbLQf5_j8D=lDjhhWI0L z{_~5V5uC!PfYLbT?xqVGZ$7s?IRV)%aG}9|33=ha)ScG9beSjlAhelgX`Z2JfoB+w zCJIiQ-*CTuao*#*LGZxHl;p8U5(Swh&_yu-Tl8{wogMbcZ!ZjClS&8_uM#3HGi=(J zmr`ov{2d>QxonKZp7vL`)7B+lcAUC9)NNP*`zHJ34B48FUW09ni3w}^uW;A6_=~;I z_>lK-6i=CYrFY3NI~>4f0vTq<0FVYI^{_Z>W{cgdpi*-#%=NdzeQzUY?|rl37SKHi zE6mCSDQbcwGKx5**7{1vnhrI0vwSUaG>OIx?b!;NxwO7IlI)en59E6{B> z(XO99tL_6Et7aaJg>LmIr-Q!BjQ)rloXhzZ}-J(;z!P$edxeq@|5{X+-&yE4h^Rt5n|VR%R}Eop||cB{J9HWywCma%jNz#%INc+`AP4He0I(|^AC=S4fx(i)qUIdMt5)d zi#o*lJpV%Xqc%jJ*s#2%2%`bZ|0&0}Jor5<50(S*!103L8<6_I=jeB6{m}ZL_|fms za_=G|%RLhR zvJ)#=6B&_bM1to8f?)lx8usXJ>^{J%)$DT*9@coxm4#urXQ5P@Q~@Wel)&KJv;5m3 zzL?9y-)#NQ-J#B*(wjaHF1ZstTDBsqQ3OwSh+EmMZa(4FtNN^15EE+Jedn%`zSijy z!c-WMXo4d|RwM+LMioZBzfA@%Pg;G*U2XY>7Tp#Tc-gqw;;=&5q)6P93--zKcungq zWp)FOfr^wa*-$xoLI})<+?99EvCbEQyKUxGjbs7Ob1DZ`oqTAc$2%ulasy*zZ8sWz zbXV9`uTS0TK_$zwENTp`@iM8gDCfWCRh+c=M zfo8t@Kv=%|;5kF2`pKm+T@~(aR8fl?iz>!VCUTYaE~cW9YL7N5Wc}I~@cl?xy!T6p z=vKlIq7&{v=3Xh)dPAdNWXNlyL~$BVh@>n?Bzx0F38hGNu*B{s_qT@@T{`h{I40VP z#&AF+Rf157P$t?Zk!8>=L@&ViPZsbpx3KTyd5P2R_Om*lxi%w+hk*=+;coJnQbt#+ zO#$kltju&UV(-XTlfiSPp|Ey}o}zxydlYb@^hE}*Jd#2hm}s~)kTyZ{XQ@ZDbInW_F%*p^@&$L?XptF>o zesbp{9e;S{xbbO26bb?rZ!!L7Vs+8gAzdUE8{SIp7-RGifMD4P{XO_T%*X0!CCoN$ z)SnxX_aNLbMm_ia7a?yKyzK6KW8picKZ0l3m9c@&vZBn3D$8)JCXnV$8{)tHac6>6 z|Kb!<_8<(-p_t#{_fLoTep6DxelM34-g^Z;8pIdRn4F4E%P2$u)etj}ypzBm?w^~@ z7yfA&uJ0FyAQ_gRXhvdizF+!d?tuD7Xu%imcQYb9FQDJyPg2?Ln!mhQdq5hro*Hey z9S3e&$agiT15>)$0tPxHo5TLaj$;QJZ%Il{3URzCXfyJJoqxL@u^Ki!ogI!%j>HLq zCIgvN1!337qrc`C$`v#KK#dZb#x;tm9Gp<@Z}(kFmARwopuR2$lA$O`ktB_01Nyr7 z!swf#0Dm8Yy|%gTe!Nk$ULZM)2z-K|lAKJi1h0spBJj;>7Cc{6fWuQ*{BpITsUKPn zo&el%H|9S1BX&g)Yao%~Sc2vRS|kWUK(FXt(!Jj2#NyVlG3T9W3+MOk1yKlrq-6pj zvZSOCBFp-D^1jeLJWt-noHmI~Pkm>?It>6kEsF#pYOE}wP6K{17K}C-4KX<#zkFum zBsCn`q)-IGQ;Nt*8im>mRxILUU2z=?i^I%2KW&OJ#OBPPjq^u6RRiCnn#IJjl*j^! zRy0v6d;RXNf3|%s5zejC?Y-&-@168Yr$#>Hy(7P-ztCyFZ(Zt?_RXWJxh8$M2P-9W zWJIy#w`Psa7ay7aUt1)YI8QPqOOhL8HLq&MJ8qWi(@;U|7>0N zWGJC-bBCo6#>D51j;E*N0)fvA_l1}cqi+oHe)Rk3_tEd8-~ZdcHyRRi98){a_+QPS ziXVc=uq43~il%7jHEUh$-j$N`Tgyp}whx4ti7Nw{8)%%Q&;rdVfYP9!fC}~dpF6nr zu0$vqs~zu~HbOY!+K32k404}^T5t?Ox&sX!Jq&ptwE#fvUeWMN%~25_l1JSYp+VPc zhRBDq06@<=1+|Dl#rmjFrBrU;mdk1T^<&qU)Cg{n%1W}#DGEU_5;}X*rr`_*YUjwU z`Dboy3Pb;p;K!aXL*4XSjNxnIYU1wpuS4;MGDM$qFIxElXe7i-Y>C|LI9p-6p=xl_jkpl{+Jr( z)ET+5=IqgR{O9vT8Q!;=%=S)Zi)yx{bx8*v7X;{}{_$WdO!;@^By@TtZBPn64h1EM zH0_D4$PpwjP-tiUtt->FHsXW=O>+J$pOij$H6#k%4S|k&s>DeO!^tu)vlSa(ys@Tq zQXHhBp~9X}nC@$m^Ig*GU%q;zg1-nXzr$0Sp?~X@z&v%0FAEQ_ujoU6CSv`?raAAK zhfJUGBg8!ugPWz9qrwZnZLVa1s@+8u*}UL&ZkA(wci!Olk+!=QepWUNUwZ^#NJf)YmB9PXkH19( zH6D|XkFb6#nnzX-^gBGEY?)KL<)d#7{k)<7;t%L;kC91PViaECWmKhjQi#bFYanyx zJSx%mkH-5u5=5RANP(kSj%Nr4r8My$d28P@DKH8$XTu*KlcsICbS9ukNn-?w=VghZ zC7$jJR#!RPF{L5Gq;^8M)lhC{dK>;5fHQa@bENt0HeKBm)Z9fD0j1H5#LFUsn!8+@ z?#opqJyJOY&7gAPUE|7MNUI<0c7r2WN)jbfV?+Y7@--&zT1>576B~z&d8h*meiiXK zw(h0dW&Ir7ak<3u6ai$G1i)|c#DrKpF$N)L$m46jp1Lm>!yyU^phS+NHI_#ij%%0{ z#U$jU59m8>AQ_x}CKQ>aNm`;f66G|8VVfZ4eDZa>8uL{A`llF@6nTLnc+a(zUjXNo zx_#)A7`9Bzc_wAb2;(q3D?_rB$dMk8WURoFekMo{r~0P;v#w3fmQ7PHwa)bnIWtiA zP=Y86G{@5%OElZo^o5MZ&!v>cjPN2%S`;fZ)@PQs&3SJ9${ss61sz#}rf8O?1&vS@ zbYx?&BilabuFH>>n>`oq-$MiF=yIfKtler+22Qp(q)AL5>ucHGrKa+qk1hAug2Z#;TP&VXl?h5m#vgJIa4-meD$N0!avLEP`Rlg;ei zZ7F3#;MpE#H!y8|-`^f#HyRCHbJ}m7+WFe10FDRqIS7zQP7(>)qxsKT|9skWc@8yd0$`N}pN)R_*{8Bo8b>$_%N24Kmn-7$Dunra zg<@JoMnj*RvUPet(RxcgL`E4@qL8b{#qd8Gg z{2T{14{2xmK+gE@H!T0>M`%tmF92=xxM-8DlLn?+9i6RN7DtzyUB`cZb$Tr9xGo{A zWPt7!Y9|t7Xt>@JqY#JEZ|a0;G0&S$;Y+^kC-SaB*92DMaUdABW}pT5@*<#Ug+Z6Z*cLG%Fx)%y)N|=ihZ*39qIp3eRFVY>@xyq-to*JD zW5YZK84bg8W>j2Bf7B2*YiGb_kt_uO%Sg0Dh<$di{+`~OVkoG4RCMc(#XK(^;=96c zL!)!PPaXAP@{JIaQ1&RzsiX)Peo3cymOQv;M=G3ztCM`wP_VjyisY-4aCMh*rrvXL z)|KDy^4|#Zi)1(rP!yv`iYR+yd75oNam+tD;OvE*Cyj7pSUa+yU8m$Yf4^(vlzp)4 z4hKZ9$SOf;BtuCudnvPWt=}K{A+>6R!&X>NCh+@&08*C1O(QjD8egscfc|j34h_Cu z8AV`ZiB7d2Qd43qO5o2tHek}fDMdz8JDExtVvP%KlX>>-9XX`oGNk^%(;WQ&TZD2RY86$KR> zEEn=~BOuCBk)g;C6$J-23H&}K@3zfNZbq9<-uIuI^YY%^WyYjCLL3ZUdEz=Y((~M00l|EtL=r6{_ z6qlX+FJg-4d(_x?Jm-lgh%V1o1ta6DK)OsEsn9Ghs1iXksFCsWGe)1#06hl?btnJL z*L>-f5WN7h*0|XeoURMe7ogDq`)>ahqIW~|>k$1kL_ZGEPKZ_@nuh555M2YJ6CnC8 zsQ%7D^obDk;k>q3nzN|kq3!p5h4!GxU<`vZ0)r_kEauJ8tkd2dg5%5|fludrwow_H zqTY&TPxAdX6Cx|}GS1)vf5Rrq((eXW%5*o(n~1Uz$t{GsJuC)*JZJmegs2o^o(A-m zJ6HYG{94mNsCoS9oH~_1&iHL)3;&sRyaQO&<2bXbc^FC+q%>tv?v1&)h5g$VoN`Ya zLsjguoaDdMV3$`nq}!j54Nt3RcjNUDsGp%!uS z&CA>JoF6=mVw=_qcFs!UG(oeZKoh(QpR?Yz+88kOuY(mi>vsHn`Ra#3ZevjxO_LbI zG6YZ2e#fExw1bU15x22cOnpFq_9{Se5f%%X&vf$F)RDLkezVMM97nT2WY8!De3{ z{XuRYN)C}&H^g()0acp_`}<(%cD+JDq>Faw^i8sJoq)-1ks&%SY{XH$nN z4(H>Kf4P`X=$vpgOrd9Oubm-85R<3?EXMp@v_WT84$9h)~ zAIu6#vm&7gtVl>_<{o+E*6M#$yQPBFRGku1b21uU&uP4Q8~fx!u*Uma9J+DJM$!1Z z!SNdl%C|yY@ykzRd(Nnzznz;SfaCg1gJ0_ww464;CM)LgiqkxW6wHeELZ)N(2aj%i zzmGKzc3JhNmU??FH`J@%2dyyQ_eP#I`h=ltW@pZj3B$UqI22srpP?xp!)a9@{cb|v zT_bSRCd2NW-u&D@`wtJHwn6g(MY6KOvI-pcMugCEcaFKmJN7GCfQ3eh+eKTJRaWFe z3EGW@k8?I}nc4C4ror>ilDr_Y9HU4y6YgaQqv7+MzU}AyH~+l=S40Z>u_WnSKbF01 z4kt}6yl`Usp1gi}JSlLP*ApO{O0c8hP~P=Ww8`*IPM=Aw-haUc^iBepQ_LWF+AHbn z=5Q!>XCJG>DOjZ&ww#)y98T%w+(y^*1@)Y9CuW?r6{fCSjODD!iz$ zEC+X@duUWAI-GO+GrxT^;fbIpL8M6Hq)hS{Pblz75IE&dM1=lH9?3b-uHBg-FSkdJ ziF{u(c11Ezw#d#jGfoneATo?d(WIYlRxMOwM{@?R$=)%o8aPwf7|5zWO_+tuOvNg9 z&$bE~7O780rp@l`ZR zqt71mSWX(fa@F@=RxU7qX>Bb_W}YW&c5L!}uJ0glmT?GD(KuAQaO3k>&XQYt#I&Gl z`Y+o)3OE=5yg)<0J^#$HOsxK%yv4b&xBtUuTfWU{wEm5HcXk42=pzH0zrzKBmnA|a zSh|2>>@(ee{NLMZye80!~(%}Ez zF@c}=Foq`=3BOs6=lna>SmVgYK&d7z(7embgd`Iz$qKZLG7tnD8G{gZ!FwL+S#6-< zV?=DhjfRssXBFGo-&;5EA5Q7A-Hc);F3UNDk(PoZNVGQ-!B+}d)ha2u>GemGgAYI}4LrRiE12e=h}^Gk@WyBvm0*iQ+kqS^C}JV`+)C zlfjzSH0%L)KIdA-_7;2o3GQi5COH|CWe$@VKJJe%Hw&*$_Y+F-Nx^Bfj_HM*-Se7M z`mrm}J}%&S9%vuqm_$*kOez8{z}m++%$NSVsV{AV zB2*#zRMp`0!Q|kyF)0KM>3&{>dfEICvC*g}gXMQanjvxvolChW1yU9j!HMcVxG|nA7^|={rCDF33pAz;VW$Ay~(!D}xou zW|vcQ?EDM&#Fvyv@6U6Gur>4L*CBu&Uv`dF=sotpR3Cl9YAl2N6zCj_QZ&%<4@ ze#<%Bt>&}h`nLXib01X}G0T$fv{=1cjUH2Sw;h87yJB@d_|u98nJeF|oD40?B_$!x zFUYEIpK5X46?A{7-~vbRii~3n2Ja7nx#bl2$^=pk=yJ}8(cN~hxZcWtf9PX~te4{K zCP|9JVY7Evq;$b9I4w4-pZteLS=swHr}KnAZD*CBI*Ag^aRf_}ER*Z{Er3p9e2CCL z-D^3Ud92m&)p<8219IddhAAqI;}k~VAAVYU=Cae9lY!7TZGUpm5QPQb`PKz&hXQ4n zB1v1QrfFH823p3;P$A>qs1?po>T>e%t!%UGkEJGY! zcj9a#?8~?412fv@Tih z5>?;rLzJ_9g!K?_3SKWwLVQ0h#Q(ip2d-ZjcNKGera*j*5aRvm5gunBt`mICI#?(0 zQUD|GqIih(O%V!Fc19@f*jW+jTn}-G|IgQqZhd?K zmB)YEZ*t9V*I`$S>cI_qQi>$X1W8c}P8|Mg_rhEe1SkWrADj`X$ia1=^D+7*TUa|( zmJ-BVe{KXT;qVUC7-oV-L#(S--wd`liPqJ|C=$ncj=^}0Wk^3g{l!|LkH@0wGtPDO z!uQQKbq-RW86-xV9g1_X;>gNSRoOa_<0A-rsfPyhjPyl-wL@v`lf$$vTr)QYx>3m;CjJ3 z20DK2jnAXS^UM1NpYj0{!5aq#uh&-*Y=S$)|2lM(Ca%WkFKPv)(YYJ2`t_?OBtS~7 z@4oCyZ-r>sqX29Wr7~ir$>Yus_|kVk|1%Jcg;+0c4Y4a~4ABh(Y)T6PW|Bggm4kF) z{LI$DS`}3zq+t<3D7!+H5i9x&2_qUUSyKO1STeTi-Qev(mvDQ8@`P3+Lb`f{?UNiK z4c9+Pks?nz5TZRcK)cIlTLd|taGy51j=)UE4wu!k8JcsI(j5~i}a#IyX86(2tR?B9;0ctoEF z_m~!Sj+*GYd&>s$>ODw%3@VGOxQNlT%J`YTtdFQ*^bWPE>(_r6hnzJcqBHi^&N z_afSq4b5RZjuQ+=U>N7`m2~|+?W%n&Dv3re`<^)+o@WA`=pikvRX% zuDkBO^NFRg$1dPIeeb{D8!o!lHxGS#ctiX@Z+Pt`Z^U!8Jog&rJIa2+ zOaW(~BxsrG($aT!PSV&GVy-t#vwQpaKmXHqX9&4RMJv}Y&~(3}l`mHUjO84U3A{?? z?OGADTQkJ_yCHg(s!2N_8MWO|zVjOji%QD}3xvWR1;N~FOoSHD(lj~R7n+LP;%sjN zj@hjB>n=v0c17W%+NBeJX<>epwPL|8u1_Ja%x{L+!?~KqzbN{HQJM$N$7?`9}$+uS$Ypp~y%$H26o6f!0_{Y$)W z7^1s*2gB~ zvFNM_P1QaU;{Vx&Eb45;_b?sGLv>}ud->M9o4GFS9Js08VXzh2?O&Ce9d{Zx51!IX zv6__(i?dt0b5{LZDo;1wkp%qEwT3oDp-$XW5TPN2P^YwD3b8pWZ^NjWtNmXiAK3g@ zn10R}h9FstmM~dVVYBET#fC~sdZS8`xm^IwtX%bMp7YVpP7@q0-W|1}pytxhq24+2 zn6{1kN(je(J zI8?0^RM#wUv#i!nPbplC`M0d(Z+%h`JNYH`Uk)*3Rw(S*d8kGa`jtz;olQY z(bst>jwVP3r)iQSSbr0-2i^&8;ooTJ=E6JHyY;|qaFqX9tpBo3Vw`tb?_r%Z)HX=4 z*d4u<^i0KmSzhq{k$bvVeyW(JcvCUO8|in^nlj7l)N3kZ>6xO`Z%j8y`|0qXX=8n6 z+U~ApYZhfR14o;NW^sXbP#nt%io~!orAh@%F)aD%pSTR0D;D-WjM6d%SxAJs6}+Bg zYZC1rG#UuFQz7xwn@NE=LDV@4kP&UwLU1f!C&Bl7Skm#7(Ko+IL zRJ|rgINj!RnY~E{~B`PR) z&)Z{sLxUkO9m;&=VPo(WHdd#Lg*F=cxn7*M=Jf}8^rbwUpeUB6aGc1!H%Gun!<#he zU#l6Y-ZsGXS@(VeHtqqPdtAXJgz+7-R9Pexj*=vmlwUG!{3_SA1^9dz?hS8+PXB?c zi&0uwOJmXwYr@4QF{tbea@8C2QbyYhAbl@jw=vfnJ;B{D9M|o)(<7hm?XCpNDkqol z++Z?{aNTin_$?ESGfYc?*53|OUIGP; z72+66k~AUE41U|yQDeo^4<-&NFr;(wG*syds5DKYzfNoV5495upqcouCNX|pGwS{D zR&RJwlN?L;dBexG_xJWS1?`d=tskWcvV6P}pC z|3E$XM=gREHToH&Z#h~a@~6V}sr`6aOTeM?tz{aZo&VL=%Z}QB7^VHMP5FK{O+f#d z1jeWKV04(4D<6QKgEfRK<@y*} zS|Ip`NaHK*DLTd=x-y^X?0P3FxZ50oz!VziRD$M7;k_PTyfSuQwOB-)D4=dAh^}=X zZ~FJ=e}cQvqy>f*WSLe}*3atH*5-k8BD%iXx987yJA(zafP<^?l4@6g2ThzO&HaR_ z*{MRNGs~_xU>98QU5hn^EUD2TyOzwte_qfXEzY3`hQV>1CpebEaKF14u_4#o3|F;# zS3bOTEs(MnxUFl?<&`W}vmGM{k``!%6Bzl&YeOF@=*(8tBt`Y&eMA40Y_8kHM;@Fa zgH7&kf6?@mCZ6t6SUu zZp&2c&TKP*ljjEZS-a{y6N@riaHe^*M%TkG^3%D$9lA59O-fP~6%40vjAs0N2aD5D zQ7>{)In!=AwkBxQtca_aLaLY`5OCD7$Xq|-T1=9QM!gtxsE9Oo!^V=J=GJrIp)v{z z4G0?THTMbEw?FnClhzu|bI?4+(j1B76oupdM@X|Y)?hZGv`@GUEoLOOThScNz~#Hr z5HXs?DT3xy(XXZ6t%(|oPr8I^pAPTlXdGmc!x_eFm?ksb;vAq%al+;)j3N5klP>Xe zm+qI-z*sotpU4dZSr)5o7G;qaMS&)00iX4R^Zi$jJ!L@5D27_se3!_S?}IOy;C=YJ zP;j*{6zP3*7h3L`bhU4-^cJ-q)zy@!hL#|YQ^jbXn3V~}g%1$)zS*C!wBe7Y?L4tm10VAjj7C~|gc znqYT)-e7fQTk6s0M{-+3gJF zP%{?FUkoBNmTMJZ;Y4)o{UFtTn%A3T@KgEELT5x zUjk?g=_2jcoU0k3=Z|XTS*67rH_BIfJKq?deEm5iLiVdwz_`!6HSc~n-iL0ki5unN z-WqyHyM5feYVc_k#8X(H1q!QNOLL|Zk7j@#epgTyS5at;QYcK38R8MwmK&9b19JS8Xs%@I7< zEW?8OgSDd79oD#>KWc5iJ|U=RfMQ7j=LJ=w8OqNS2GafYTGuU(MJY8p1=YWnWr9&D zg{5T*DH>S4!8bG*0@I=NueU&>`Zb6aprVWoL63px5k;hjMMw`VC$!P9-W6YS+G`K> zMeASF3_(yBL9jeUlZ>BeW=f3j`t9G_Hn=7pd~)Wp0}cGgRso)Yp?Q^8X@w<8zJ8_8 z#+?0Nn-L5uE=qH($?$?}!>;YhzQ^jK1w|PILzoqdGflC>BdP|Xj4!yVH0&-^n;+DJ zJ;pNJ*Bb_91@%c=^8u_Puj1m0!OV~ggy z*lM6s`@u4wu$jQku9xa(#%3=7icxD23st({>@Q@RNkwFN9M2VlE645{+w}a~HIrbi z)K^N!l%7E`2BuNZVJwa?y&i_b#dB*R%Xcdxe)O{Qn(Nww*B?@T1AO?FARQC|nwJCGSgCM8-SIE)*Z zHiXLEUjYsf)0A~bu-f7urW=C%q4bvPc>4aD8FK>&uJdOOMvzH`CrCodzX=6TO*>{8 z5lOu5vSf8>Rr?OK@SPwTnqg?3AsK?>ad?LRG1fQqPhz{P#@e=v-oFG4EDb^%*5qYT zP+0*}IF?>9;n#uN>OLEL3!<9phM=PbR60dXzfP3$S10V{ZHMcz2BT_qSc5?eX9#@= zDb12D_n2aF4o%ClPV8y3!&cH`!|c#ITn7B`?SCx<9U-iQ-a)*;yH}t2^y!l+;Ikv zviK{SPB~4XIsq~io+p{SNd5T&Rj{Y*SKox$>;89(fGki!-_Zxsu)TK#pV4g0Se=x5nTmJ zKQ2UlREbcq6I;sVFE8NyE;ku(kWU`I`_KB*ZCAhmwh*=s`>Or^P5xQ$$F6%eq*8I8 z0tO?XFB6_IJCt-qa+)QPc)4>*>(hINCWdQ4B)N!vE*e5CUl$IaxMoc4RC9mppi&Er zk#Ld}MFzwCG$|({C#0`jFKqbc?b>t$^x~F#caBgQjNoxrV#WA_W9Fu8dafE+#@;Z7 zH~EaZEbrBAGDs^kU|O6g^Abt&yv&o$dR(5CyM_TVXH`TRRikt`aLCox)TBdd zY(w-0FoVW8vm+~0vEMB?l!5AE!F9(SV>ZNs5uKvtWxAGU`1Z(MiKwPH;%aB@_V4Il zYWlOzzCK{cU;4#Uxw}p4r41y=jVwNS{X|bl-tPW>Ci_=-F5B)(O zYaA>vu5Bo6*^j$E{QfR+f6LH*a7fZTK(MCTWJMmV2(rU$)u_9@N2!U`yR<1dH2Mt) zzAEJB;Rl!8XW`=IdBz*o_#XjfP#kWyW~HYOvfG@tp*F9FrUpIUX*6*E`nXJkj*>v7 zGM>M9C`6s~6t*12W&OUQ_LCUHN!RP+e*5X`Q9wF3CBQs~bLPnwXWAgaYLR*>R!O<> zn3ZLQVktr9Rps&KeK+m=J-!mWn_HM1o&2Jz9DQK4?H&%;6MxJ17zS9cZRcQ)cHdb84;-qkFbh z$goJ=Eso4wPlRSkNKaSfRGW2@Vs}_u02@opCBslB+jt}&QJ`?kPHh8IsVnO7;1G# zG2UlgXRnOv`+*evu!v(M1(zg@!8z6Sw!@Cq-xCM#X@+j|rj_amT$h)62CvGquGt%1 z&$oRcz@bjT9RS9w3`sILqnv-O+oxBnoXk7axh2sUQQMge=UkQ3o`39@XMpUzcitDhYOk`z>;YDu7gs!vcZ$~E9DW#>NdJ*483zRRqp06}z z`>sjhsa^8|Ny#)%hzh3+?6vFT{|cyG7uCCDNx2h_5A*-{BE}bOWzCo{MKl*(^Y6a0 z>{5JlgKvZT$PIAZY_q0k_q5q33wBwN&60@yUH`=I6Ps6$YY<^UVxm;wm|}`IT=vpv zxa7L;>n=a9ztF^=JuYy}&oV4Wv5LZB;*A?pyZfDN^J~-T$zXlz*e1NtUz$|0_B#>m9&W+Aa_~LeW{A+AG5F7QdDymH&p*;4$i{) zSmRsJDS1uSSZ~z6nG+d>7imV|WWVc)b7}==SFXFRSGiaCsxsItrkG&<$loRNjg!Cr ziZjh7_g6AR#qL;l@m7kpRjbxTi=~C8cguX^8|KN*G>wMZkUlZ^&VuL%86mbs7-Uy# zoaRjD4Nd8KM;~waf@Xi=F3sLjZ%CTOg*YUhrP*T|6&w8h^CsUA#?=sXS;adh^!SYN z8J|Y?BZ4QRW@=ECOj%I~g^*O0RaKNq=39NEHD$!QAKPB@KjsO*XP*zuAF4Kc4?#*Z zD+;NQGDh<(CLfhPeZ$ynU6p!JVknJ~q(atjxZlM_7;kLYl~l#8&=0Rn?uy(bk{FFs z9Kn(-!(oK~WzR3X9_kG>k@_ap+^H#DtG_8X4l&=W;XKERm?{&fu5lvHHyj5g zc_J>dwKsnzuI?VV_>o_)x2cD!1&*b1U7lhXPLiyj&P^pmwS(u?-LKC+{Pq!Zo^3MJ zMDMjtCi1u_U^28^{^;4EK{YdFQXy%E!zDr$Va?20+F=bi3xh-dmapU9?6mwj zP;P+U#OE55kujVTD3PaGzW2$P4(=m|DxsA8s)P_^-&;fhd1XX;LrQ6ls8YxtRmVMn zd!VKCQP8tzkzibSxEsHTuO8N<~{DZarWiR z&Qwx`^z>;TBwVifVy~)?7L%T9@1KjdY}~BS&xCa7(4j+z4jnplR3zl@U>dkvJ+NT$ zoy~%7j(C;8NJdpLmGHYxY(mO98oCFz+pj?U~^ zr@?YSx1Gg}NtizLH9)Vn4s_Rg^wd^BSMGJKxntgvrKdG|&pSK5o%NcSNob;pSF;-= zy*1Oe?2=ZCzib?__Pf33A84b|I~C`w(SK*V0eybthNFk&W&)`7w!iTm|M%PcOhBKW znl|ph*tN~lwZiwt=f77g;plN-hG4=pxA{KmmCX0F`l#yq_1~7$PYbg&TG*Oe@ASCC zJAnfO_0I9f|2lQ_TVPeS!^RKCINP?$vx#4sZv4i&=T}_?joh=-{q+uApmhhDxv2&FzaIZ8I20TdRCj<81X&g+ zl2a%;{k2Qfo}TX*P!|K^Lp(1jTi221BigzEF=4hvGxx2(@+sGBU}9cwKnx_DG>Vv6amIYQWzv_HYZN zt~<0TYzLxTC@I!c15on0R_@R79rn9_0`l;J#x6B6uXdtKn}<5sL3Z1CyO43?e7^RX zmgJH#o*2+L7mdCl4DcMSCfDBm(b!fCKCy$_5hMMUTJP-$hI=>lqq?~^c!6#}VQ)wH z=b?i;{?*ra#NLbWGRI*-z074*3opIXaYdu^^GmtaPp^8m%m{wrMkFznWJHM~c;>|3 zrpZqiP_6v#5ASrb;ZraD)`z}n?T;;5otg}^yFD@e#Yry%mpWnIuFbVt*v*k`m4--y zs@l?XuV26yY<~>%W)ki0w`b_A-#6slfePq9j3gzFml&252)R`oGq>-yk4)<$oXfx% zL|sLjpyl{(=s8TM6|yVC>CTM{9KQjjMTB;s0^Abcu)8EuFuc>@`EM;_{4n85s8;5o>C=}7Xq?~p{`M*{?E@xe|O4X z@9wU>JE&d)%kv^5N{mFR60Dc-gJv2W*dPX5B_5gN0C$~E-F|JmEV#ueTo!3wBv?X_ z=vu9QzrLwTrM&yXgF`fAD`eV(+=lJU?=@P0YX2%WFKw^Y4Q=~DFy=n?-0epntE^0E zb$ZT@D>b;Ppv;Mtf`5+j3ek1&v!L0T{|QRAWy@f+GU0pbr^?$5SuD^y(FJIm-+3 z2e06EIx|nL83Qg?oDWabWVJa9I<|ABKK#kLjw|y_2m{zPrPlLFzOsZnlY)mZ!1EOe zzG1X5xN5ldHQv1^{oZP4pKt2VPv_riqjJ4wIW1C8n|-2JM^kvO$F71`b^(a68_MF| z`tk5Rza9ZH!K+omYADfmc-tg(g-uIrWuQ}kH?|qJI4L7Wr@B9?4^)%W5`GxZd>Ic-r z@fp7V!{q_-ggXzz@q&2_wvNd~$ucaMkH9rmu~I;r9GE#*nJw3Zem{_nrStW!N!O zoEHE5D!!}v-7&slb!fFus^l92jDos%9aCAW#tio}?_)cL-4C|AJMuSy1#Hh^m`riF zq6h@__=Ob?a$geC^+i${8#(z!wYoolr+fYM_v-rZcXLgFLx#Cq9T-02@}@df;BD@i zuFI5?mO;%x&I;$;HV2|q{-?;Gs!-2a?HYl9(PhgtUW0Pbi%&U zP=~vEkK(~9{`;(I&tqeq|p`6cw z@_~cej{Q{?-(f6Om&%+x_}^ zDP!WB4bUx;t3xJmB28g9D|15H^|ogY?VBCj08yQvLG#FM(En7Y@V<);@jdwex^@C2 zbn>Oa|3at2H7ls2Z1;y!-!_wL2R)s~MVaPBoFp)ngHPwrn0yxkpi`fOZ1?Hzcds8_ zcDZJ7yN4{!QYuYijI65e_tGbxNWN4Bw$EQpiz1W>NwnhjO!xEG<}RBwpaEK#s#?tw zC*wT9aDpm|(~itI+rP^EybAv$Cb9~j>8{%_*?egbNby*}3my_l&>Y2!B*uz;);eA; zIAL9kaIY82BOR<(6c>Vy)#<3vM#F43|J4UqMhy&lQHjH4JlEc^MDPTx3l)nTWOLpB z6TTdJ{gn_JMg)e>8yvr}poUQ>#q9hv=D8Pkq-yOx9l|s|&ET+Ue3bT5_>0G*ZtJ5X zZxe>5pcW63U?`lVX&l1{p5{?jXW|hl#26O4o0HG2do48#8_NtM$ciXnw8YUU8_Uf~ zdEIRmCf%%%`K}-3{MHY14qxo<>$>NIS<{1#A%T?{3d2Q-CrEe<#UXmYV)ygwTHNyf z{Xmf`pyeeBBRG~6c~%hkfF=-c4>L3%Xf(I^l>6694LkiathxW_%g-OlvK)cQGK~=u z%CqSxC^R5wbXJzSlRot%I3^<9HBp?P5DJM?6wAZznt;i&JHj6O&$>S{w*C37xh>IL zT|wJqIHNEand`idWt+6vyY2T`XJgs)b_qcWmBOoeR6%0>MCW@{%MI?4mUPHlx-ick5I?1|hK z;wnwcoWNiT!NJ=?Q-q1d7*@MS|8ersX}ufxi-ZbDRxyIdc#35do}-q2H<;`CN@bHN zFOJ}8tajh&c}nzL4xR!z59Jj$G%&XCIMP6Pb4F$l&Z3r%1W~L%H@Soi@vM3>A7m4VBqQjD)g_* z4ep%wtKWJtCz$sOULYBQP!t7cdH7PPGBa@KpVABNXP!$~{kW&TztG8{m9S%$L@5l1 zD>Bc^*lN$GT?0*dt8=#;pgw7Tan3?%Hbr2(F8{`B;1O?H|_@H zUFDbD8P_`Q?RrPB`cxT}6KPgpWFCX-^9rtsw(5lHlAGO*a~pSBkAP}f9>BvWfpfXq z{9?K?$ZngUNV$4316=*)Kb*DIXe;MS#Yla%EEDxTQg5%QusoaHb(l9_x-y}iMi=y( zi5C-abeouJQP0^pOsWJ{+*w`H#peGQd z*ULb6i{0xvH4Yx3%z=21Uw}7Am+fYppv)P9Q?Xlwbjwu5EZH(LEKb;| z-<|~D(0^6f?!F>V=LfA0E?`kP9G7L9!Ely_1uTuU@E@c{t)1@AUU=ZEvzr_EuYd*B z4^>7XBvvLkjGNwO%GKRF=O=^J?|Uuo^q9g`rqS?@`=h%1>zryDJP$li2((O#6wgw^ zdp*8*W$eCc@WT2`Okvr*_uNG9U#|Q!J-GL5oWK-SsCJ$d2LuDP%GmHV8a{Nt`{J;<>%KwyJ7XD+V%5a&DQ<6n`KajxBz`C>m+eg<=pG1N=}6;+aRQd_EFY#nN=IHi;dGA+!# zYSTf%|Npo~;O8~UNV~*^Xb)iQeSMVEU26z${DitpT3&8N#)KHZsl}A8v53-x2iiwB zKUs|m_ub4mojWfLbSq@N*DhkZ+wLlz@_roV#EiPtP+Wl1+fqc6^g7BXKtFgn%=e!x z+L;6%jx)5DDSRft}Sc<)*WMZDrNCIt(qQHmqI zjFGJqI-(0quL2#Vz)zPJ$}1lqZJY@6y(wkXT4+h{S4z8l6@7nHSg}q_lq+Owjg zwDv*K#@aC7OEu`w_m^l?6mjnm#5(kHF{KyneRH%?*7xB?#5xO~_uf*-^%++5oi1zFfVfr!9_ofi#jg-G@Q^ELl9pz&mQPP0-Wt$QFQ!TwoZ)%hmIZbUu z|E^s|8L8Z@vtHFDiYN6d&{2%&P{#68+;WZw5zk?313(XUq$xZ( zfesxyDlT-sr(*L{KEj{0`|b(4O1TZRVno^Q2&cV&yyam<{f?AUg?KKR+_ix8DF{gxPLiK=;arYY8+*d=J}+gZoD)J9v*p`Jw`R z-}6kA;zjirP`)MYeEGphp_$J&Owih|)*#>h0RZ1`gYS94{l^M@5AI0~57EEib{a9D zc=!XjU&8AxkZ%F~Vz?hJ*TTACrYDE!Z?TB}TGr$!u)fz@h#?I2qRvHuBXn@DFs+d1v7z*H z-YsFnwP2o0C}KY-Yvbd|Le_s_QCj*ZsB|q|z2T|;WwRY31xh~sx-mFk3ECTWS{3Pi z@Wvtjhv$tdMJ#WfFy9*m(WraRDG;4ztQh^jwAQ<#ZdX7*tsmmzQkxL{tfbco6cP+K zH`W(ZywN__?+fh@+C*8bv8`*0aJQrHs!H z6>WX&sPUJ{rr_lZC9W>2E6Z@v+IVyDD>{4;ZT}@ziaEb!&0bIJO_pv&#k2_L-?AAn5lxbm%BNN?Ly}p@MHPZz<$=@cMST zg!7#kWj@4EM&c_egv;-StNu7K#Q#-`YkcZcqIcibMc=pIjC^2e?K8^jyccPGH7@Jp zzKrLu(M>X*%lm%cj(FY-@m#l0RWaH<()FrC1!;%3A-YZp=T|?ExjFbV9f7e-uY#L$ zebMzbbd)CU*AM1&=qPp6j}jjnDL-3Yhd+?>ge&h3_k5%h6arXSy^n^2YByQBI)7ZU z`3X0^dn@R84R!wB3Yzas`aUBp%qZmg8Ev#Fp>bTjjJ8931<4O+zq(P%N8J$pqG}P- z2k*z}Q$eBH`DT?Pqt=zga<=}~53`*^p++I=OGkA1{-iM5v%Kwp%ey^vRDDlmDn|Kq z=+L1YZc8gQ7_g9>0HaS&DPv1If?f$GLL;|fz zTMuYfYbIzlQKhAC%B!H9G}EjM>X+nn=+L1%Vxc-(T9Kz9XfRA(4j+z4jnpl=+L2~h{)FjIq;lo?zXDHm;GH@SU?j*wVGv- z<{5=oRhGi4e)xFD%bV&{0oUxtLLqoQ3Yp@S%!7`BV?l~(0aFx3L8b(f;7?L&*b+Ci%w()i$ z!#rMb4#~DU1<7fVx?6YbEzS35FBxL`hM%iPjiq;i#X1597WI=Lr@G!`zbAM(F`HXGNH!VckVgIQ<{q( zV4;L(r(!oNlu8RCFNqY6nI#cRSib-JD?{7F!BQ#+R z-cK&)rmrt1M)&)Iow{IGFd2Su_xz)_dMFjF8sh@48j38kBq0(q&GMVZ?->=BGN=;h z6ToW415skwesJHx_DWKYf?+l*&@wEjl1d0Pr_!{VywGr0_Cqh4K$(Gx@~u&Bl!BEQ z>r;s*+z)?ptyZ1S+JZOZ5W|+BIP*}uqTHQjNtYG7*=m!Ojuw*meD8-zjru*1_k-yRHHa?hO{I?TFjWhCXklM1+zN$*5%qk+UG<{n z-R?udS}-NhT7dDqf)gx_b2MG`?Aq23b-rpWDmNWDV|3D88n5Xdf51*vc}0o$-$iw ziU*|M@4m?5iI(QhW_=4L*CP@E8daLnA4P0v+}33IgqL;Yv>yg9bzX>T?_rV`W&PTfTUTB!)Y2P zFpj2iziB?JUT_(}S$9s>KbQY^J7|$Xfd!uetMU>_OEiZ+kxW<7Gr|bFEgD%ucF5p#0F8Pc3Was6 zdD;-(=G$oa-Mx12$h-UD9knM5jRC}}Ja4vUW(;u(PKz`!(`m6;h4djxx_aZnYOaKJ z#ZLnleHpXRa9fn>@#{vup^k6|&L8e!dx!K+X#ob#a`eDqMNDEPR>W9>YWmxPH=e&= zFoFiW6lP0aDq@Ql_IvOh>iclxom5J9qv3SXBHzEX4VA_nu%^ufmL`yk$74W zsaFhB`yc!}GXZvFlvK(+H7QIwsgU_DZUfxtne=ZrGwnC!-?3nau*QGc%(7Z+RyiDNQ%T5hQT

      G)uZx3(^uP<+jQ?h!{vH(sy+2B1vHV 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

      ` names a private directory the caller owns for one helper build. Simplified partitions are stored under the hash of their exact source and objects under the hash of the exact module after importing, each with a trailing digest and published by rename, so a rebuild recompiles only the partitions an edit can affect. The locals ThinLTO promotes for importing are named after their partition rather than a hash of its bitcode, so an edit to one partition leaves the partitions that import from it unchanged. +`--cache-dir ` names a private directory the caller owns for one helper build. Simplified partitions are stored under the hash of their exact source and objects under the hash of the exact module after importing, each with a trailing digest and published by rename, so a rebuild recompiles only the partitions an edit can affect. Partitions drop the names of their struct types before the thin link, which would otherwise number same-named types from different partitions in an order that any edit can shift, changing the module after importing in partitions the edit did not touch. `--import-bitcode `, given once per runtime-pack unit that ships bitcode, imports runtime functions for inlining; scriptc's program builds do not pass it. Small runtime functions reachable from the program's runtime calls are imported as `available_externally` so LLVM can inline them; the runtime objects remain the only definitions. The helper never runs a sanitizer pass, so with import it also drops the emitter's inert `sanitize_address` attributes, which would otherwise block that inlining. Without `--import-bitcode` the module is optimized exactly as emitted. diff --git a/native/llvm-codegen/src/emit.cpp b/native/llvm-codegen/src/emit.cpp index 4e8c7a30c..c087dead8 100644 --- a/native/llvm-codegen/src/emit.cpp +++ b/native/llvm-codegen/src/emit.cpp @@ -170,33 +170,18 @@ void limitProfileImports() { (void)Limited; } -// ThinLTO renames the locals it promotes so that the code other partitions -// import can refer to them: switch tables, constants and the other private -// symbols optimization creates. By default the new name carries a hash of -// the defining partition's whole bitcode, so an edit anywhere in a partition -// renames them in every partition that imports from it, and those partitions -// miss the object cache although their own code is unchanged. Named after -// the partition instead (PartitionSourceName), they keep their names while -// the partition changes. The option is process-wide; the helper sets it once. -void stablePromotedNames() { - static const bool Set = [] { - StringRef Name = "use-source-filename-for-promoted-locals"; - if (cl::Option *Option = cl::getRegisteredOptions().lookup(Name)) - Option->addOccurrence(0, Name, "true"); - return true; - }(); - (void)Set; -} - -// Gives a partition's module its own source file name, which the names of -// the locals ThinLTO promotes derive from (stablePromotedNames). It runs -// after the pre-link optimization, so profile annotation still matches the -// program's local functions under their source path. -struct PartitionSourceName : PassInfoMixin { - explicit PartitionSourceName(std::string Name) : Name(std::move(Name)) {} - std::string Name; +// Drops the names of a partition's struct types before its summary is +// written. Every partition declares the program's types under the same +// names, and a thin link loads the importing partition and the partitions +// it imports from into one context, which tells same-named types apart by +// appending a counter that runs across the whole link. An edit that adds a +// type anywhere shifts the counter, so the module after importing, the +// object cache key, changed in partitions whose code had not. Unnamed types +// carry no such suffix; importing still matches them by their bodies. +struct UnnameStructTypes : PassInfoMixin { PreservedAnalyses run(Module &M, ModuleAnalysisManager &) { - M.setSourceFileName(Name); + for (StructType *Type : M.getIdentifiedStructTypes()) + Type->setName(""); return PreservedAnalyses::all(); } static bool isRequired() { return true; } @@ -591,12 +576,8 @@ compileOptimizedPartitions(const EmitOptions &Options, size_t Count = Plan.Modules.size(); std::vector> Summaries(Count); SharedFailure Failures; - stablePromotedNames(); forEachPartition(Count, [&](size_t I) { - // The partition's index names its promoted locals, so it keys the - // summary with the partition's source. - std::string Key = - hashParts({Salt, "summary", std::to_string(I), Plan.Modules[I]}); + std::string Key = hashParts({Salt, "summary", Plan.Modules[I]}); if ((Summaries[I] = Cache.lookup(Key, "bc"))) return; std::string LookupError; @@ -629,7 +610,7 @@ compileOptimizedPartitions(const EmitOptions &Options, // link; the post-link optimization reads the annotated weights. Pipeline P(*Machine, Level, profileOptions(Options)); ModulePassManager MPM = P.PB.buildThinLTOPreLinkDefaultPipeline(Level); - MPM.addPass(PartitionSourceName("scriptc-partition-" + std::to_string(I))); + MPM.addPass(UnnameStructTypes()); MPM.addPass(BitcodeWriterPass(Stream, /*ShouldPreserveUseListOrder=*/false, /*EmitSummaryIndex=*/true, /*EmitModuleHash=*/true)); From 4a8a6567ca309fa6220a3945140c1d42751d44ff Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sat, 24 Oct 2026 14:44:50 -0700 Subject: [PATCH 010/128] Add the shape overlay: typed JavaScript from analysis-proven facts (opt-in) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The shape overlay (DESIGN.md, approved route) rewrites the JavaScript of opted-in npm packages with JSDoc types the shape analysis proves: record typedefs for non-escaping literal sites (optional fields for spread sources), class field, parameter, return and local types, receiver casts, and branches the analysis proved unreachable replaced by checks. The lowering trusts only annotations carrying the overlay's marker; package JSDoc stays a hint (its type tags are neutralized in overlaid files). - Inferred-fact checks: every checked conversion lowered in an overlaid file records its site, and a failure throws a distinct internal error ("scriptc internal error: an inferred type was contradicted at … This is a bug in scriptc's shape analysis, not in the program's data") naming the opt-outs; SCRIPTC_SHAPE_CHECK_LOG makes checks log instead (validation mode). - Opt-outs: `--no-shape-overlay`, and `"scriptc": {"packages": {"": {"shapes": false}}}` per package. - Build report: SC6103 counts the declarations typed, the checks inserted and the branches replaced. - `x instanceof Promise` on plain data folds to false. The overlay runs only with SCRIPTC_SHAPE_OVERLAY=1 while it is new. Co-Authored-By: Claude Opus 5.5 --- packages/cli/src/bootstrap.ts | 6 + .../compiler/src/backend/llvm/expr-async.ts | 14 +- packages/compiler/src/cli/command.ts | 1 + packages/compiler/src/cli/usage.ts | 5 + packages/compiler/src/compile-types.ts | 4 + .../compiler/src/diagnostics/diagnostic.ts | 5 +- .../src/executable/executable-cache.ts | 3 + .../src/frontend/lowering/call-signatures.ts | 3 + .../lowering/expressions/relational.ts | 33 + .../frontend/lowering/generic-functions.ts | 6 + .../src/frontend/lowering/lower-classes.ts | 20 +- .../compiler/src/frontend/lowering/lowerer.ts | 12 + .../compiler/src/frontend/package-shims.ts | 18 + packages/compiler/src/frontend/pipeline.ts | 5 +- packages/compiler/src/frontend/program.ts | 27 +- .../src/frontend/shape-inference/analyze.ts | 160 ++++- .../src/frontend/shape-inference/domain.ts | 2 + .../src/frontend/shape-inference/index.ts | 144 +++- .../src/frontend/shape-inference/overlay.ts | 615 ++++++++++++++++++ packages/compiler/src/index.ts | 12 + .../src/ir/function-references.test.ts | 3 + packages/compiler/src/ir/ir.ts | 9 + packages/runtime/src/scr_dyn.h | 4 + packages/runtime/src/scr_json.c | 46 ++ tests/harness/shape-overlay.test.ts | 62 ++ 25 files changed, 1208 insertions(+), 11 deletions(-) create mode 100644 packages/compiler/src/frontend/shape-inference/overlay.ts create mode 100644 tests/harness/shape-overlay.test.ts diff --git a/packages/cli/src/bootstrap.ts b/packages/cli/src/bootstrap.ts index f14866a9c..485d62528 100644 --- a/packages/cli/src/bootstrap.ts +++ b/packages/cli/src/bootstrap.ts @@ -141,6 +141,11 @@ async function tryFastPath(): Promise { ...(values["detached-exit"] ? { detachedExit: true as const } : {}), ...(checker === undefined ? {} : { checker }), npmStatic, + // Mirrors the full compiler's key: shape inference's overlay is opt-in + // (SCRIPTC_SHAPE_OVERLAY=1) and --no-shape-overlay turns it off. + ...(process.env["SCRIPTC_SHAPE_OVERLAY"] === "1" && values["shape-overlay"] !== false + ? { shapeOverlay: true as const } + : {}), ffiProfile: ffiPath === null ? null : { path: ffiPath, bytes: ffiBytes! }, target: `${process.env["SCRIPTC_TARGET"] ?? "native"}:${buildPlatform}:${process.arch}:${ helperObjectRoute ? "runtime-pack" : "driver-tu" @@ -212,6 +217,7 @@ async function coverageFastPath( values["provenance-sources"] || values["emit-ir"] || (values["npm-static"] ?? []).length > 0 || + values["shape-overlay"] === false || (values["external-types"] ?? []).length > 0 ) return null; diff --git a/packages/compiler/src/backend/llvm/expr-async.ts b/packages/compiler/src/backend/llvm/expr-async.ts index ee9ff2983..0e0191af4 100644 --- a/packages/compiler/src/backend/llvm/expr-async.ts +++ b/packages/compiler/src/backend/llvm/expr-async.ts @@ -394,12 +394,24 @@ export function emitSerializationExpr( } const dynV = emitBorrowedInput(host, e.value); const helper = host.dyn.dynCheckHelper(e.type, e.preserveRefs); - if (isDynTypedRefType(e.type)) return emitClassCheck(host, e.type, dynV.name, helper); + // A check of an analysis-proven fact (shape inference's overlay) + // names its site, so a failure reports a compiler bug. + const site = e.inferredSite !== undefined ? host.cstr(e.inferredSite) : null; + if (site !== null) { + host.declare(`declare void @scr_dyn_inferred_site(ptr)`); + B.line(`call void @scr_dyn_inferred_site(ptr ${site})`); + } + if (isDynTypedRefType(e.type)) { + const checked = emitClassCheck(host, e.type, dynV.name, helper); + if (site !== null) B.line(`call void @scr_dyn_inferred_site(ptr null)`); + return checked; + } const ty = host.llType(e.type); const t = B.tmp(); B.line( `${t} = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr ${dynV.name}, ptr null)`, ); + if (site !== null) B.line(`call void @scr_dyn_inferred_site(ptr null)`); const out = host.own({ name: t, type: e.type }); host.emitPendingCheck(); return out; diff --git a/packages/compiler/src/cli/command.ts b/packages/compiler/src/cli/command.ts index 57b15349e..a57885ca8 100644 --- a/packages/compiler/src/cli/command.ts +++ b/packages/compiler/src/cli/command.ts @@ -534,6 +534,7 @@ async function main(args: string[], host: CliHost): Promise { ? {} : { profileUse: resolve(values["profile-use"]) }), ...(npmStatic !== undefined ? { npmStatic } : {}), + ...(values["shape-overlay"] === false ? { shapeOverlay: false } : {}), ...(ffiProfilePath !== undefined ? { ffiProfilePath } : {}), ...(printNativeLinkInfo ? { nativeLinkInfo: true } : {}), ...(tier !== undefined ? { tier } : {}), diff --git a/packages/compiler/src/cli/usage.ts b/packages/compiler/src/cli/usage.ts index 01afbdd41..292755981 100644 --- a/packages/compiler/src/cli/usage.ts +++ b/packages/compiler/src/cli/usage.ts @@ -87,6 +87,10 @@ Options: "pkg..." also names every package pkg depends on). Packages that fail preflight are refused with a diagnostic. Eligible dependencies compile automatically. + --no-shape-overlay + compile npm packages' JavaScript without the types shape + inference proves (per package: "scriptc": {"packages": + {"": {"shapes": false}}} in package.json) --provenance-sources EXPERIMENTAL: compile npm dependencies from their provenance-attested SOURCE (fetched at the attested @@ -138,6 +142,7 @@ export const CLI_OPTIONS = { sanitize: { type: "boolean", default: false }, ffi: { type: "string" }, "npm-static": { type: "string", multiple: true }, + "shape-overlay": { type: "boolean" }, "provenance-sources": { type: "boolean", default: false }, "external-types": { type: "string", multiple: true }, tier: { type: "string" }, diff --git a/packages/compiler/src/compile-types.ts b/packages/compiler/src/compile-types.ts index c50931c6a..2c9ba44d7 100644 --- a/packages/compiler/src/compile-types.ts +++ b/packages/compiler/src/compile-types.ts @@ -55,6 +55,10 @@ export interface CompileBaseOptions { /** Eligible packages compile automatically. Explicit names override automatic selection heuristics. */ npmStatic?: readonly string[] | "auto"; + /** Shape inference's typed overlay for opted-in packages' JavaScript. + * False disables it (`--no-shape-overlay`); a package opts out with + * `"scriptc": { "packages": { "": { "shapes": false } } }`. */ + shapeOverlay?: boolean; /** Outbound native FFI manifest. Its signature-only TypeScript bindings * lower to direct C ABI calls. Source outputs retain those declarations; * archive/system-library inputs join only an executable link. */ diff --git a/packages/compiler/src/diagnostics/diagnostic.ts b/packages/compiler/src/diagnostics/diagnostic.ts index 2fd8b6fb0..34657008d 100644 --- a/packages/compiler/src/diagnostics/diagnostic.ts +++ b/packages/compiler/src/diagnostics/diagnostic.ts @@ -64,7 +64,10 @@ * parses date strings with V8's grammar. SC61xx are performance * notes, also warnings (coverage --fail-on=dynamic opts in): * likely-hot functions that use untyped values (SC6101, - * diagnostics/dynamic-tier.ts) + * diagnostics/dynamic-tier.ts), package files whose projected + * declaration types were dropped (SC6102), and shape inference's + * overlay report: what it typed and how many inferred facts the + * build checks (SC6103, frontend/shape-inference) * SC9xxx internal compiler errors (still source-anchored) */ import type { SrcLoc } from "../ir/ir.js"; diff --git a/packages/compiler/src/executable/executable-cache.ts b/packages/compiler/src/executable/executable-cache.ts index 754c20648..2bfed90f3 100644 --- a/packages/compiler/src/executable/executable-cache.ts +++ b/packages/compiler/src/executable/executable-cache.ts @@ -152,6 +152,9 @@ export interface EarlyExecutableCacheOptions { /** Omitted unless SCRIPTC_YOUNG_NURSERY=1 (backend/young-nursery.ts). */ youngNursery?: true; npmStatic: readonly string[] | "auto" | null; + /** Omitted unless shape inference's overlay compiles the packages + * (frontend/shape-inference). */ + shapeOverlay?: true; /** Raw manifest identity: path and bytes. Native archives remain under the * stricter native cache's independent dependency validation. */ ffiProfile: { path: string; bytes: Uint8Array } | null; diff --git a/packages/compiler/src/frontend/lowering/call-signatures.ts b/packages/compiler/src/frontend/lowering/call-signatures.ts index c9fd954b5..9d8096c62 100644 --- a/packages/compiler/src/frontend/lowering/call-signatures.ts +++ b/packages/compiler/src/frontend/lowering/call-signatures.ts @@ -1,3 +1,4 @@ +import { shapeOverlayAnnotated } from "../shape-inference/index.js"; import { typedArgumentsCandidate, typedArgumentsShapes, @@ -181,6 +182,8 @@ export function checkedJsDocumentedParameter( lowerer: Lowerer, param: ts.ParameterDeclaration, ): boolean { + if (param.parent !== undefined && shapeOverlayAnnotated(param.parent) && documentedParameter(param)) + return true; return lowerer.checkedJsFile(ts.getSourceFileOfNode(param)) && documentedParameter(param); } diff --git a/packages/compiler/src/frontend/lowering/expressions/relational.ts b/packages/compiler/src/frontend/lowering/expressions/relational.ts index 47030777a..9477fb4b3 100644 --- a/packages/compiler/src/frontend/lowering/expressions/relational.ts +++ b/packages/compiler/src/frontend/lowering/expressions/relational.ts @@ -420,6 +420,22 @@ export function lowerInstanceOf(lowerer: Lowerer, expr: ts.BinaryExpression, loc loc, }; } + // Plain data (records, arrays, strings, numbers, booleans, and unions + // of them) is never a promise: false after the operand's evaluation. + const neverPromise = (t: IrType): boolean => + NEVER_PROMISE_KINDS.has(t.kind) || + (t.kind === "union" && (lowerer.unions.get(t.unionId)?.arms ?? [t]).every(neverPromise)); + if (neverPromise(left.type)) { + const no: IrExpr = { kind: "boolLit", value: false, type: BOOL, loc }; + if (isSafeToDiscard(left)) return no; + return { + kind: "seqExpr", + stmts: [{ kind: "exprStmt", expr: left, loc }], + result: no, + type: BOOL, + loc, + }; + } lowerer.unsupported( "SC1090", expr, @@ -2271,3 +2287,20 @@ function nodeDeclaredMember(lowerer: Lowerer, t: ts.Type, key: string): boolean ); }); } + +const NEVER_PROMISE_KINDS: ReadonlySet = new Set([ + "record", + "array", + "string", + "f64", + "bool", + "bigint", + "date", + "map", + "set", + "regex", + "bytes", + "symbol", + "nullT", + "undefinedT", +]); diff --git a/packages/compiler/src/frontend/lowering/generic-functions.ts b/packages/compiler/src/frontend/lowering/generic-functions.ts index 7896da578..b60cb4a60 100644 --- a/packages/compiler/src/frontend/lowering/generic-functions.ts +++ b/packages/compiler/src/frontend/lowering/generic-functions.ts @@ -1,3 +1,5 @@ +import { shapeOverlayAnnotated } from "../shape-inference/index.js"; +import { documentedParameter } from "./call-signatures.js"; import { staticNameBindings } from "./static-function-names.js"; import { positionTag } from "./structural-positions.js"; import { keyedHelperName } from "./stable-names.js"; @@ -1855,10 +1857,14 @@ export function implicitAnyParamSymbolsOf( // The variadic-`arguments` form keeps its dynRest story whole. if (bodyReadsArguments(decl)) return null; let hasImplicitParams = false; + const overlayTyped = shapeOverlayAnnotated(decl); const out = decl.parameters.nodes.map((param): ts.Symbol | null => { if (!ts.isIdentifier(param.name)) return null; if (param.dotDotDotToken || param.questionToken || param.initializer) return null; if (param.name.text === "this") return null; + // A parameter typed by shape inference's overlay is a proven type, + // not an implicit type parameter. + if (overlayTyped && documentedParameter(param)) return null; const t = lowerer.typeOf(param.name); const broadFunction = lowerer.checker.typeToString(t) === "Function"; const broadArray = lowerer.checkerAnyArrayType(t); diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index b829b6ddc..573bb0c69 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -1,4 +1,5 @@ import { lowerAsyncLocalStorageOptions } from "./builtins/async-context.js"; +import { shapeOverlayAnnotated } from "../shape-inference/index.js"; import { DATE_TIME_FIELD, dateRootOf, @@ -1152,7 +1153,11 @@ function jsFieldInitializerType(lowerer: Lowerer, type: IrType, expression: ts.E ) return DYN; } - if (type.kind === "array" || type.kind === "record") return DYN; + // Shape inference's overlay types a field as a record or array only when + // the analysis proves its values never reach code that could observe a + // copy, so those fields keep their native layout. + if ((type.kind === "array" || type.kind === "record") && !shapeOverlayAnnotated(expression.parent?.parent ?? expression)) + return DYN; // JavaScript documentation cannot guarantee that a call or an indexed // read returns a present number. Numeric fields receiving those values // must retain undefined, so later arithmetic performs JS coercion (NaN). @@ -3316,6 +3321,7 @@ export function collectClassShapeInner( !functionLocalClass(decl) && ts.isIdentifier(member.name) && !lowerer.virtualJsMethods.has(member) && + !lowerer.checkedJsOverrideMethods.has(member) && !lowerer.prototypeMethodAccesses.has(member.name.text) && inst === undefined && decl.typeParameters === undefined && @@ -7597,6 +7603,16 @@ export function collectVirtualJsMethods(lowerer: Lowerer, files: readonly ts.Sou if (!ts.isIdentifier(member.name)) continue; const property = lowerer.checker.getPropertyOfType(base, member.name.text); for (const declaration of property ? property.declarations : []) { + if ( + ts.isMethodDeclaration(declaration) && + isJsSourceFile(ts.getSourceFileOfNode(declaration)) && + checkedJsOverride(lowerer, declaration, member) + ) { + // A checked override pair dispatches through the vtable, + // so neither side may become an implicit generic. + lowerer.checkedJsOverrideMethods.add(declaration); + lowerer.checkedJsOverrideMethods.add(member); + } if ( ts.isMethodDeclaration(declaration) && isJsSourceFile(ts.getSourceFileOfNode(declaration)) && @@ -7683,7 +7699,7 @@ function checkedJsOverride( ): boolean { return [base, member].every( (method) => - lowerer.checkedJsFile(ts.getSourceFileOfNode(method)) && + (lowerer.checkedJsFile(ts.getSourceFileOfNode(method)) || shapeOverlayAnnotated(method)) && method.parameters.nodes.every(documentedParameter), ); } diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 988b4b804..f8ad0a559 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -1,3 +1,5 @@ +import { markInferredFactChecks, shapeOverlayFileNames } from "../shape-inference/index.js"; +import { npmStaticPackageOfPath } from "../npm-static.js"; import { isDeclBoundaryFile } from "../decl-projection.js"; import { relieveHeapPressure } from "../../heap-pressure.js"; import { moduleNamespaceObject } from "./module-namespace-elements.js"; @@ -3095,6 +3097,8 @@ export class Lowerer { /** Inferred JS methods participating in an override chain keep a vtable * ABI instead of call-site specialization. Filled before class collection. */ readonly virtualJsMethods = new Set(); + /** Methods of checked-JavaScript override pairs (vtable dispatch). */ + readonly checkedJsOverrideMethods = new Set(); /** Descendant writes must widen the original JS field before collecting * any class layout; base and derived instances share its storage ABI. */ readonly inheritedJsFieldWrites = new Map< @@ -7885,6 +7889,7 @@ export class Lowerer { // every producer and consumer agrees. Programs with no unregistered // reference are untouched — byte-stability holds. checkRequireBindingAccesses(this, functions); + markInferredFactChecks(functions, this.program); const module: IrModule | null = this.diags.length > 0 ? null @@ -7900,6 +7905,13 @@ export class Lowerer { ...(this.usesWorkers ? { workers: true } : {}), ...(this.usesLifetimeRegions ? { lifetimeRegions: true as const } : {}), ...(this.declBoundary ? { declBoundary: true as const } : {}), + ...(shapeOverlayFileNames().length > 0 + ? { + inferredFactFiles: shapeOverlayFileNames() + .map((file) => ({ file, pkg: npmStaticPackageOfPath(file) ?? "" })) + .sort((a, b) => (a.file < b.file ? -1 : a.file > b.file ? 1 : 0)), + } + : {}), ...(this.threadSlotKeys.size > 0 ? { threadSlotKeys: [...this.threadSlotKeys].sort() } : {}), diff --git a/packages/compiler/src/frontend/package-shims.ts b/packages/compiler/src/frontend/package-shims.ts index 10beeaae8..d26579719 100644 --- a/packages/compiler/src/frontend/package-shims.ts +++ b/packages/compiler/src/frontend/package-shims.ts @@ -202,6 +202,7 @@ let unloadedPackages: ReadonlySet = new Set(); * map of the entry's nearest package.json. Called once per program load. */ export function configurePackageShims(entryPath: string): void { const packages = new Set(); + const noShapes = new Set(); for (let dir = dirname(resolve(entryPath)); ;) { const text = trackedReadFile(join(dir, "package.json")); if (text !== null) { @@ -222,6 +223,14 @@ export function configurePackageShims(entryPath: string): void { if (map !== null && typeof map === "object") { for (const [name, kind] of Object.entries(map as Record)) { if (kind === "unloaded") packages.add(name); + // `{ "shapes": false }`: compile the package without shape + // inference's typed overlay. + if ( + kind !== null && + typeof kind === "object" && + (kind as Record)["shapes"] === false + ) + noShapes.add(name); } } break; @@ -231,6 +240,15 @@ export function configurePackageShims(entryPath: string): void { dir = parent; } unloadedPackages = packages; + shapelessPackages = noShapes; +} + +let shapelessPackages: ReadonlySet = new Set(); + +/** Packages the project compiles without shape inference's overlay + * (`"scriptc": { "packages": { "": { "shapes": false } } }`). */ +export function isShapelessPackage(name: string): boolean { + return shapelessPackages.has(name); } /** True for a package name the registry implements or the project marks diff --git a/packages/compiler/src/frontend/pipeline.ts b/packages/compiler/src/frontend/pipeline.ts index c2f528b25..92bafe54d 100644 --- a/packages/compiler/src/frontend/pipeline.ts +++ b/packages/compiler/src/frontend/pipeline.ts @@ -1,3 +1,4 @@ +import { shapeOverlayReport } from "./shape-inference/index.js"; /** Shared frontend orchestration. Hosts supply a program loader so Node * and native callers use the same npm selection, preflight and lowering. */ import type { ScrDiagnostic } from "../diagnostics/diagnostic.js"; @@ -699,8 +700,8 @@ function loadFrontend( }); // The declaration-typed boundary's notes (SC6102) join the // performance warnings; they never fail a build. - const notes = finalLoad.declBoundaryNotes; - if (notes === undefined) return lowered; + const notes = [...(finalLoad.declBoundaryNotes ?? []), ...shapeOverlayReport(finalLoad.entry.fileName)]; + if (notes.length === 0) return lowered; return { ...lowered, performance: [...notes, ...(lowered.performance ?? [])] }; }, npmStatic: statuses, diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index 8e582af89..daeb61ded 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -140,7 +140,12 @@ import { } from "./type-only-imports.js"; import { moduleSourceCandidates } from "./module-source-candidates.js"; import { planDeclProjection, type DeclProjection } from "./decl-projection.js"; -import { reportShapes } from "./shape-inference/index.js"; +import { + reportShapes, + resetShapeOverlay, + shapeOverlayEnabled, + shapeOverlayer, +} from "./shape-inference/index.js"; import { inferredJsDiagnosticSuppressed } from "./inferred-js-diagnostics.js"; import { containsJsx, @@ -857,6 +862,9 @@ function loadProgram7( /** The declaration-typed boundary's projection (decl-projection.ts): * answers rewritten user files for the lowering world, or null. */ projector?: (program: ts.Program) => DeclProjection | null, + /** Shape inference's typed overlay (shape-inference/overlay.ts): + * rewritten package JavaScript for the lowering world, or null. */ + overlayer?: (program: ts.Program) => ReadonlyMap | null, ): LoadResult & { disposeAll: () => void } { const config = adoptProjectConfig7(host, entryPath); const configuredPaths = config.options["paths"]; @@ -998,6 +1006,22 @@ function loadProgram7( } } } + // Shape inference's overlay: package files typed from proven facts. The + // tsc gate keeps reading the files as written. + // A load without the overlay must not see an earlier load's overlay + // files (the registry is per process). + resetShapeOverlay(); + if (overlayer !== undefined && jsx.refusal === null) { + const overlay = overlayer(program); + if (overlay !== null && overlay.size > 0) { + const before = program; + for (const [file, text] of overlay) host.addVirtualFile(file, text); + program = host.createProgram([...programRoots, overridesDtsPath()], options); + if (tscWorld === undefined) + tscWorld = { program: before, diagnostics: ts.getPreEmitDiagnostics(before), projectWorld: null }; + else if (tscWorld.program !== before) before.dispose(); + } + } const entry = program.getSourceFile(entryPath); if (!entry) throw new Error(`could not load ${entryPath}`); const externalTypeSpecifiersByFile = externalTypeFileClosure7(program, externalTypes); @@ -1260,6 +1284,7 @@ export function loadProgram( externalTypes, npmStaticPackages.length > 0, projector, + npmStaticPackages.length > 0 && shapeOverlayEnabled() ? shapeOverlayer : undefined, ); // Shape inference, stage S1: a report only (SCRIPTC_DEBUG_SHAPES). const shapes = process.env["SCRIPTC_DEBUG_SHAPES"]; diff --git a/packages/compiler/src/frontend/shape-inference/analyze.ts b/packages/compiler/src/frontend/shape-inference/analyze.ts index 8b1101da2..fe87a8c53 100644 --- a/packages/compiler/src/frontend/shape-inference/analyze.ts +++ b/packages/compiler/src/frontend/shape-inference/analyze.ts @@ -70,6 +70,8 @@ export interface LiteralSite { readonly kind: "object" | "array"; /** Static keys in creation order; null when a spread or computed key makes them unknown. */ readonly keys: string[] | null; + /** The literal's own static keys (without spread contributions). */ + readonly ownKeys: string[]; readonly hasAccessor: boolean; readonly hasProto: boolean; readonly hasComputedKey: boolean; @@ -129,6 +131,15 @@ export interface ShapeAnalysis { readonly escapedFunctions: ReadonlySet; /** ES5 constructors: each function's default prototype object. */ readonly protoOf: ReadonlyMap; + /** Every value a declaration (parameter, variable, binding element) holds, + * merged over the analysis contexts it was analyzed in. */ + declValues(decl: Node): Set; + /** The classes a class declaration's chain contains, base last. */ + classChain(decl: Node): Node[]; + /** `if` statements in walked code whose condition is known: the branch + * whose condition values never allowed it is absent from `walkedBranches`. */ + readonly branchIfs: ReadonlySet; + readonly walkedBranches: ReadonlySet; } /** Array.prototype members: other names on an array are own properties. */ @@ -358,6 +369,10 @@ class Analyzer { nodeLabel: this.nodeLabel, escapedFunctions: this.escapedFunctionCalls, protoOf: this.protoOf, + declValues: (decl) => this.declValues(decl), + classChain: (decl) => this.classChain(decl), + branchIfs: this.branchIfs, + walkedBranches: this.walkedBranches, }; } @@ -450,6 +465,78 @@ class Analyzer { return p; } + /** A boolean literal: labeled `boolean` like any boolean, but its + * truthiness is known, so `if` statements on it walk one branch. */ + boolLiteral(value: boolean): Atom { + return this.atoms.intern(`prim:boolean:${value}`, () => ({ + kind: "prim", + label: "boolean", + literal: value, + })); + } + + /** The analysis environment a deferred walk restores. */ + private env(): WalkEnv { + return { + ctx: this.ctx, + ctxRoot: this.ctxRoot, + currentFn: this.currentFn, + loopDepth: this.loopDepth, + }; + } + + private inEnv(env: WalkEnv, walk: () => void): void { + const saved = this.env(); + this.ctx = env.ctx; + this.ctxRoot = env.ctxRoot; + this.currentFn = env.currentFn; + this.loopDepth = env.loopDepth; + try { + walk(); + } finally { + this.ctx = saved.ctx; + this.ctxRoot = saved.ctxRoot; + this.currentFn = saved.currentFn; + this.loopDepth = saved.loopDepth; + } + } + + readonly branchIfs = new Set(); + readonly walkedBranches = new Set(); + /** Ifs whose branches wait for condition values; at the fixpoint, an + * `if` whose condition node stayed empty walks every waiting branch. */ + private readonly pendingIfs: PendingIf[] = []; + + /** An `if` walks a branch once a condition value allows it: the then + * branch on a value that may be truthy, the else branch on one that may + * be falsy. A branch no value allows is never walked, so its effects + * (returns, calls, writes) stay out of the facts; the overlay turns it + * into a checked internal error. */ + private ifStatement(s: ts.IfStatement): void { + const cond = this.expr(s.expression); + this.branchIfs.add(s); + const pending: PendingIf = { + s, + cond, + env: this.env(), + thenDone: false, + elseDone: s.elseStatement === undefined, + }; + this.pendingIfs.push(pending); + this.on(cond, (a) => { + if (!pending.thenDone && mayBeTruthy(a)) this.walkBranch(pending, "then"); + if (!pending.elseDone && mayBeFalsy(a)) this.walkBranch(pending, "else"); + }); + } + + private walkBranch(pending: PendingIf, which: "then" | "else"): void { + const branch = which === "then" ? pending.s.thenStatement : pending.s.elseStatement!; + if (which === "then") pending.thenDone = true; + else pending.elseDone = true; + this.walkedBranches.add(branch); + this.inEnv(pending.env, () => this.stmt(branch)); + } + builtin(path: string, receiver?: Atom): Atom { const key = receiver === undefined ? `builtin:${path}` : `builtin:${path}@${receiver.id}`; return this.atoms.intern(key, () => ({ kind: "builtin", label: path, path, receiver })); @@ -718,6 +805,24 @@ class Analyzer { return `${inside ? this.ctx : ""}|${this.nodeKey(node)}`; } + private declIndex: Map | null = null; + declValues(decl: Node): Set { + if (this.declIndex === null) { + this.declIndex = new Map(); + for (const [key, id] of this.bindings) { + const k = Number(key.slice(key.lastIndexOf("|") + 1)); + let l = this.declIndex.get(k); + if (l === undefined) this.declIndex.set(k, (l = [])); + l.push(id); + } + } + const out = new Set(); + const k = this.nodeKeys.get(decl); + if (k === undefined) return out; + for (const id of this.declIndex.get(k) ?? []) for (const a of this.nodes[id]!.atoms) out.add(a); + return out; + } + receiverCtx(atom: Atom): string { return atom.kind === "instance" || atom.kind === "class" ? `C${atom.id}` : ""; } @@ -1223,6 +1328,10 @@ class Analyzer { this.expr(s.expression); return; } + if (ts.isIfStatement(s) && this.currentFn !== null) { + this.ifStatement(s); + return; + } // Blocks, ifs, switches, labels: walk children, evaluating expressions. ts.forEachChild(s, (child) => { if (ts.isExpression(child)) this.expr(child); @@ -1317,8 +1426,9 @@ class Analyzer { case ts.SyntaxKind.BigIntLiteral: return this.constNode(this.prim("bigint")); case ts.SyntaxKind.TrueKeyword: + return this.constNode(this.boolLiteral(true)); case ts.SyntaxKind.FalseKeyword: - return this.constNode(this.prim("boolean")); + return this.constNode(this.boolLiteral(false)); case ts.SyntaxKind.NullKeyword: return this.constNode(this.prim("null")); case ts.SyntaxKind.RegularExpressionLiteral: @@ -1750,6 +1860,7 @@ class Analyzer { node: e, kind: "object", keys: keysKnown ? keys : null, + ownKeys: keys, hasAccessor, hasProto, hasComputedKey, @@ -1916,6 +2027,7 @@ class Analyzer { node: e, kind: "array", keys: null, + ownKeys: [], hasAccessor: false, hasProto: hasHole, hasComputedKey: false, @@ -3202,6 +3314,21 @@ class Analyzer { const before = this.steps; for (const c of this.lateCopies) c(); this.solve(); + // A condition with no values at the fixpoint is one the analysis + // could not evaluate: walk both of its branches. + let walked = false; + for (const p of this.pendingIfs) { + if (this.nodes[p.cond]!.atoms.size > 0) continue; + if (!p.thenDone) { + this.walkBranch(p, "then"); + walked = true; + } + if (!p.elseDone) { + this.walkBranch(p, "else"); + walked = true; + } + } + if (walked) continue; if (this.steps === before || this.budgetExceeded) return; } } @@ -3223,4 +3350,35 @@ function cjsExportName(decl: Node): string | null { ) return decl.left.name.text; return null; + } + +interface WalkEnv { + readonly ctx: string; + readonly ctxRoot: Node | null; + readonly currentFn: FunctionInfo | null; + readonly loopDepth: number; +} + +interface PendingIf { + readonly s: ts.IfStatement; + readonly cond: number; + readonly env: WalkEnv; + thenDone: boolean; + elseDone: boolean; +} + +/** Whether a value of the atom may be truthy (only `null`, `undefined` and + * the literal `false` never are; ⊤ may be anything). */ +function mayBeTruthy(a: Atom): boolean { + if (a.kind !== "prim") return true; + if (a.label === "null" || a.label === "undefined") return false; + return a.literal !== false; +} + +/** Whether a value of the atom may be falsy (objects, arrays, functions, + * classes, promises and collections never are). */ +function mayBeFalsy(a: Atom): boolean { + if (a.kind === "top") return true; + if (a.kind !== "prim") return false; + return a.literal !== true; } diff --git a/packages/compiler/src/frontend/shape-inference/domain.ts b/packages/compiler/src/frontend/shape-inference/domain.ts index d90a83cf2..21e52346c 100644 --- a/packages/compiler/src/frontend/shape-inference/domain.ts +++ b/packages/compiler/src/frontend/shape-inference/domain.ts @@ -38,6 +38,8 @@ export interface Atom { /** function atoms: the analysis context of the function's clone (a * method's receiver class), "" for the context-insensitive default. */ readonly ctx?: string | undefined; + /** prim `boolean` atoms of a literal: its value. */ + readonly literal?: boolean | undefined; } export class AtomTable { diff --git a/packages/compiler/src/frontend/shape-inference/index.ts b/packages/compiler/src/frontend/shape-inference/index.ts index 402a788b1..e2f7add04 100644 --- a/packages/compiler/src/frontend/shape-inference/index.ts +++ b/packages/compiler/src/frontend/shape-inference/index.ts @@ -1,7 +1,13 @@ /* Shape inference for untyped npm JavaScript - * (results/design-shape-inference/DESIGN.md). Stage S1: report only. */ + * (results/design-shape-inference/DESIGN.md): the report (S1) and the typed + * overlay (overlay.ts). */ import type * as ts from "../ts7/adapter.js"; -import { analyzeShapes } from "./analyze.js"; +import type { IrFunction } from "../../ir/ir.js"; +import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js"; +import { npmStaticPackageOfPath } from "../npm-static.js"; +import { isShapelessPackage } from "../package-shims.js"; +import { analyzeShapes, isPackageJsFile } from "./analyze.js"; +import { OVERLAY_MARK, planShapeOverlay } from "./overlay.js"; import { buildShapeReport } from "./report.js"; import { computeConstantGraphs, constantGraphReport } from "./constant-graphs.js"; @@ -10,7 +16,8 @@ export { buildShapeReport } from "./report.js"; /** SCRIPTC_DEBUG_SHAPES: `1` reports package code in hot functions, * `verbose` every package site, `all` user files too, any other value only - * files whose path contains it. Writes to stderr; changes nothing else. */ + * files whose path contains it. Writes to stderr; changes nothing else. The + * build cache does not key on the variable: use SCRIPTC_NO_CACHE=1. */ export function reportShapes(program: ts.Program, filter: string): void { const start = performance.now(); const analysis = analyzeShapes(program, program.getTypeChecker()); @@ -22,3 +29,134 @@ export function reportShapes(program: ts.Program, filter: string): void { const ms = (performance.now() - start).toFixed(0); process.stderr.write(`[shapes] ${ms} ms\n${lines.map((l) => `[shapes] ${l}`).join("\n")}\n`); } + +/* The overlay's files for the current load: the lowering treats them as + * checked JavaScript (their JSDoc types are the analysis's proven facts). */ +let overlayFiles: ReadonlySet = new Set(); +let overlayAnnotations = 0; +let overlayDeadBranches = 0; + +export function isShapeOverlayFile(fileName: string): boolean { + return overlayFiles.has(fileName); +} + +/** Whether a statement or declaration carries an overlay annotation. */ +export function shapeOverlayAnnotated(node: ts.Node): boolean { + const sf = node.getSourceFile(); + if (!overlayFiles.has(sf.fileName)) return false; + return sf.text.slice(node.pos, node.getStart(sf)).includes(OVERLAY_MARK); +} + +export function shapeOverlayFileNames(): readonly string[] { + return [...overlayFiles]; +} + +export function shapeOverlayAnnotationCount(): number { + return overlayAnnotations; +} + +export function resetShapeOverlay(): void { + overlayFiles = new Set(); + overlayAnnotations = 0; + overlayDeadBranches = 0; + inferredFactChecks = 0; +} + +/** Whether the overlay runs. While it is new it is opt-in + * (SCRIPTC_SHAPE_OVERLAY=1); `--no-shape-overlay` (the `shapeOverlay: + * false` build option) sets the variable to 0 for the build. */ +export function shapeOverlayEnabled(): boolean { + return process.env["SCRIPTC_SHAPE_OVERLAY"] === "1"; +} + +/** loadProgram7's overlayer: analyze, plan, and register the overlay files. */ +export function shapeOverlayer(program: ts.Program): ReadonlyMap | null { + resetShapeOverlay(); + const analysis = analyzeShapes(program, program.getTypeChecker()); + if (analysis.budgetExceeded) return null; + const report = buildShapeReport(analysis, "1"); + const packageFiles = analysis.files.filter((sf) => { + if (!isPackageJsFile(sf)) return false; + const pkg = npmStaticPackageOfPath(sf.fileName); + return pkg === null || !isShapelessPackage(pkg); + }); + const overlay = planShapeOverlay(analysis, report.sites, packageFiles); + overlayFiles = new Set(overlay.files.keys()); + overlayAnnotations = overlay.annotations; + overlayDeadBranches = overlay.deadBranches; + if (process.env["SCRIPTC_DEBUG_SHAPE_OVERLAY"] !== undefined) { + for (const [file, text] of overlay.files) + process.stderr.write(`[shape-overlay] ${file}\n${text}\n`); + } + return overlay.files; +} + +/** Marks the checked conversions lowered in overlay files: each checks an + * analysis-proven fact, so its failure names the site as an analysis bug. */ +export function markInferredFactChecks( + functions: readonly IrFunction[], + program: ts.Program, +): number { + if (overlayFiles.size === 0) return 0; + let count = 0; + const lines = new Map number>(); + const lineOf = (file: string, pos: number): number => { + let f = lines.get(file); + if (f === undefined) { + const sf = program.getSourceFile(file); + f = sf === undefined ? () => 0 : (p: number) => sf.getLineAndCharacterOfPosition(p).line + 1; + lines.set(file, f); + } + return f(pos); + }; + const visit = (x: unknown): void => { + if (Array.isArray(x)) { + for (const v of x) visit(v); + return; + } + if (x === null || typeof x !== "object") return; + const node = x as { + kind?: unknown; + loc?: { file: string; start: number }; + inferredSite?: string; + }; + if (node.kind === "dynCheck" && node.loc !== undefined && overlayFiles.has(node.loc.file)) { + const pkg = npmStaticPackageOfPath(node.loc.file) ?? ""; + const rel = node.loc.file.split("/node_modules/").pop() ?? node.loc.file; + node.inferredSite = `${pkg} ${rel}:${lineOf(node.loc.file, node.loc.start)}`; + count++; + } + for (const v of Object.values(x)) if (v !== null && typeof v === "object") visit(v); + }; + for (const fn of functions) visit(fn.body); + inferredFactChecks = count; + return count; +} + +let inferredFactChecks = 0; + +/** Inferred-fact checks inserted by the last build (the build report). */ +export function shapeInferredFactCheckCount(): number { + return inferredFactChecks; +} + +/** SC6103, the overlay's build report: what the overlay typed and how many + * checks of inferred facts the build inserted. A note, never a failure. */ +export function shapeOverlayReport(entryFile: string): ScrDiagnostic[] { + if (overlayFiles.size === 0) return []; + const packages = new Set([...overlayFiles].map((f) => npmStaticPackageOfPath(f) ?? f)); + return [ + { + code: "SC6103", + message: + `shape inference typed ${overlayAnnotations} declarations in ${overlayFiles.size} files of ${packages.size} ` + + `package${packages.size === 1 ? "" : "s"} (${[...packages].sort().join(", ")}); the build checks ` + + `${inferredFactChecks} inferred fact${inferredFactChecks === 1 ? "" : "s"} at run time` + + (overlayDeadBranches > 0 + ? ` and replaces ${overlayDeadBranches} branch${overlayDeadBranches === 1 ? "" : "es"} it proved unreachable with checks` + : ""), + loc: { file: entryFile, start: 0, end: 0 }, + hint: "a failing check reports a scriptc analysis bug; --no-shape-overlay compiles without the overlay", + }, + ]; +} diff --git a/packages/compiler/src/frontend/shape-inference/overlay.ts b/packages/compiler/src/frontend/shape-inference/overlay.ts new file mode 100644 index 000000000..28b5336cf --- /dev/null +++ b/packages/compiler/src/frontend/shape-inference/overlay.ts @@ -0,0 +1,615 @@ +/* Shape inference: the typed overlay (results/design-shape-inference, + * maintainer decision 2026-10-23). The analysis's proven facts become JSDoc + * types in a rewritten copy of each package JavaScript file, and the + * lowering treats the rewritten file like a checked JavaScript file, so the + * static tier compiles the package's hot code from those types. + * + * Only proven facts are written: a position whose value set contains ⊤ + * (anything from islands, JSON.parse, the network or the file system, + * reflection, globals, `process`, caught exceptions, or code the analysis + * cannot see) stays untyped. A check the lowering inserts where a value + * meets an inferred type therefore fails only when the analysis is wrong; + * such checks carry the inferred-fact failure message. + * + * The package's own JSDoc is a hint, not a declaration: its tags are + * neutralized in the rewritten file, so only the analysis's types remain. + * + * Every edit is inline: no line breaks are added or removed, so positions + * keep their lines. */ +import * as ts from "../ts7/adapter.js"; +import type { Atom } from "./domain.js"; +import type { ShapeAnalysis } from "./analyze.js"; +import type { SiteVerdict } from "./report.js"; + +export interface ShapeOverlay { + /** Rewritten text per package file. */ + readonly files: Map; + /** Annotations written, for the build report. */ + readonly annotations: number; + /** Branches the analysis proved unreachable, replaced by checks. */ + readonly deadBranches: number; +} + +interface Edit { + readonly pos: number; + readonly text: string; + /** Replaces pos..end instead of inserting at pos. */ + readonly end?: number; +} + +/** Marks the overlay's own comments (an unknown JSDoc tag, ignored). */ +export const OVERLAY_MARK = "@scriptcShape"; +const MARK = OVERLAY_MARK; + +/** Above 1, values of several record key sets type as one merged record + * with optional fields (SCRIPTC_SHAPE_RECORD_ARMS; experimental). */ +const MAX_RECORD_ARMS = Number(process.env.SCRIPTC_SHAPE_RECORD_ARMS ?? 1); + +/** The most class or record arms an inferred union may have. */ +const MAX_ARMS = 6; + +function list(arr: { readonly nodes: readonly T[] } | undefined): readonly T[] { + return arr?.nodes ?? []; +} + +let debugIndex = 0; + +export function planShapeOverlay( + analysis: ShapeAnalysis, + verdicts: readonly SiteVerdict[], + packageFiles: readonly ts.SourceFile[], +): ShapeOverlay { + const pSites = new Map(); + const siteVerdicts = new Set(verdicts.map((v) => v.site.atom)); + // Records and arrays print only for sites whose objects never escape: a + // native record that reached untyped code would be seen as a copy. + const siteKeys = new Map }>(); + for (const v of verdicts) { + if (v.verdict !== "P-local") continue; + if (v.site.kind === "array") { + pSites.set(v.site.atom, v); + continue; + } + const keys = keysOfSite(analysis, v); + if (keys === null) continue; + siteKeys.set(v.site.atom, keys); + pSites.set(v.site.atom, v); + } + const files = new Map(); + let annotations = 0; + let deadBranches = 0; + debugIndex = 0; + // `if` branches no condition value allowed, per file: the overlay + // replaces each with a throwing check, so the checker and the lowering + // see the code the analysis saw. + const deadByFile = new Map(); + if (process.env["SCRIPTC_SHAPE_DEAD_BRANCHES"] !== "0") + for (const s of analysis.branchIfs) { + for (const branch of [s.thenStatement, s.elseStatement]) { + if (branch === undefined || analysis.walkedBranches.has(branch)) continue; + const sf = s.getSourceFile(); + let list = deadByFile.get(sf); + if (list === undefined) deadByFile.set(sf, (list = [])); + list.push(branch); + } + } + for (const sf of packageFiles) { + const typedefs = new Map(); + const typedefText: string[] = []; + const edits: Edit[] = []; + + const className = (decl: ts.Node): string | null => { + if (decl.getSourceFile() !== sf) return null; + const own = (decl as ts.ClassLikeDeclaration).name; + if (own !== undefined && ts.isClassDeclaration(decl) && decl.parent === sf) return own.text; + const p = decl.parent; + if ( + p !== undefined && + ts.isVariableDeclaration(p) && + ts.isIdentifier(p.name) && + p.parent?.parent?.parent === sf + ) + return p.name.text; + return null; + }; + + // `inner`: inside a record field, where ⊤ and unprintable values are `any`. + const typeOf = (atoms: ReadonlySet, inner: boolean, depth: number): string | null => { + if (atoms.size === 0) return inner ? "any" : null; + const arms = new Set(); + let objects = 0; + // Every array arm becomes one Array<…> of the joined element values. + const elements = new Set(); + let hasArray = false; + const promised = new Set(); + let hasPromise = false; + const recordSites: Atom[] = []; + for (const a of atoms) { + let t: string | null = null; + switch (a.kind) { + case "prim": + t = + a.label === "null" || + a.label === "undefined" || + a.label === "string" || + a.label === "number" || + a.label === "boolean" || + a.label === "bigint" + ? a.label + : null; + break; + case "instance": + t = a.node !== undefined ? className(a.node) : null; + objects++; + break; + case "object": { + objects++; + const v = pSites.get(a); + if (v === undefined || depth >= 4 || !siteKeys.has(a)) return inner ? "any" : null; + recordSites.push(a); + continue; + } + case "array": { + objects++; + if (analysis.escaped.has(a) || (siteVerdicts.has(a) && !pSites.has(a))) + return inner ? "any" : null; + const el = analysis.elements.get(a); + if (el !== undefined) for (const x of analysis.nodes[el]!.atoms) elements.add(x); + hasArray = true; + continue; + } + case "promise": { + // One promise arm: the values it resolves to, joined. + const value = analysis.fields.get(a)?.get("value"); + if (value !== undefined) for (const x of analysis.nodes[value]!.atoms) promised.add(x); + hasPromise = true; + continue; + } + default: + t = null; + } + if (t === null) return inner ? "any" : null; + arms.add(t); + } + // Records of one key set print as their typedef; records of several + // key sets merge into one record whose fields missing from some sites + // are optional (unions of overlapping records would need the lowering + // to pick an arm per value). + if (recordSites.length > 0) { + const keySets = new Set(recordSites.map(keySetOf)); + if (keySets.size === 1) arms.add(recordType(recordSites[0]!, depth)); + else if (MAX_RECORD_ARMS > 1) arms.add(mergedRecordType(recordSites, depth)); + else return inner ? "any" : null; + } + if (hasArray) { + const inside = depth < 4 ? typeOf(elements, true, depth + 1) : "any"; + arms.add(`Array<${inside ?? "any"}>`); + } + // A promise beside other values cannot cross into untyped code + // (maybe-promise unions stay typed-only), so it stays untyped here. + if (hasPromise) return inner ? "any" : null; + if (objects > MAX_ARMS) return inner ? "any" : null; + if (arms.has("any")) return inner ? "any" : null; + return [...arms].join(" | "); + }; + + // One typedef per key set: sites with the same keys intern to the same + // structural record, so their field types are joined. + const keySetOf = (site: Atom): string => { + const k = siteKeys.get(site)!; + return k.keys + .map((key) => (k.optional.has(key) ? `${key}?` : key)) + .sort() + .join(","); + }; + const sitesByKeys = new Map(); + for (const site of pSites.keys()) { + if (pSites.get(site)!.site.kind !== "object") continue; + const k = keySetOf(site); + let l = sitesByKeys.get(k); + if (l === undefined) sitesByKeys.set(k, (l = [])); + l.push(site); + } + const recordType = (site: Atom, depth: number): string => { + const keySet = keySetOf(site); + const existing = typedefs.get(keySet); + if (existing !== undefined) return existing; + const name = `__shape_${typedefs.size}`; + typedefs.set(keySet, name); + const { keys, optional } = siteKeys.get(site)!; + const parts = keys.map((k) => { + const atoms = new Set(); + for (const other of sitesByKeys.get(keySet) ?? [site]) { + const id = analysis.fields.get(other)?.get(k); + if (id !== undefined) for (const a of analysis.nodes[id]!.atoms) atoms.add(a); + } + const t = typeOf(atoms, true, depth + 1); + return `${/^[A-Za-z_$][\w$]*$/.test(k) ? k : JSON.stringify(k)}${optional.has(k) ? "?" : ""}: ${t ?? "any"}`; + }); + typedefText.push(`/** @typedef {{${parts.join(", ")}}} ${name} ${MARK} */`); + return name; + }; + + const mergedRecordType = (sites: readonly Atom[], depth: number): string => { + const all = new Set(); + for (const site of sites) + for (const other of sitesByKeys.get(keySetOf(site)) ?? [site]) all.add(other); + const keys: string[] = []; + const optional = new Set(); + for (const site of all) { + const k = siteKeys.get(site)!; + for (const key of k.keys) { + if (!keys.includes(key)) keys.push(key); + if (k.optional.has(key)) optional.add(key); + } + } + for (const site of all) { + const own = siteKeys.get(site)!.keys; + for (const key of keys) if (!own.includes(key)) optional.add(key); + } + const keySet = `merged:${keys + .map((k) => (optional.has(k) ? `${k}?` : k)) + .sort() + .join(",")}`; + const existing = typedefs.get(keySet); + if (existing !== undefined) return existing; + const name = `__shape_${typedefs.size}`; + typedefs.set(keySet, name); + const parts = keys.map((k) => { + const atoms = new Set(); + for (const site of all) { + const id = analysis.fields.get(site)?.get(k); + if (id !== undefined) for (const a of analysis.nodes[id]!.atoms) atoms.add(a); + } + const t = typeOf(atoms, true, depth + 1); + return `${/^[A-Za-z_$][\w$]*$/.test(k) ? k : JSON.stringify(k)}${optional.has(k) ? "?" : ""}: ${t ?? "any"}`; + }); + typedefText.push(`/** @typedef {{${parts.join(", ")}}} ${name} ${MARK} */`); + return name; + }; + + // Return values merged over every analysis context of each function. + const returns = new Map>(); + for (const info of analysis.functions.values()) { + if (info.node.getSourceFile() !== sf || info.isAsync || info.isGenerator) continue; + let set = returns.get(info.node); + if (set === undefined) returns.set(info.node, (set = new Set())); + for (const a of analysis.nodes[info.ret]!.atoms) set.add(a); + } + + // Receivers each method runs on, merged over its analysis contexts. + const thisAtoms = new Map>(); + for (const info of analysis.functions.values()) { + if (info.node.getSourceFile() !== sf || !ts.isMethodDeclaration(info.node)) continue; + let set = thisAtoms.get(info.node); + if (set === undefined) thisAtoms.set(info.node, (set = new Set())); + for (const a of analysis.nodes[info.thisNode]!.atoms) set.add(a); + } + const declaresMember = (cls: ts.Node, name: string): boolean => + analysis.classChain(cls).some((c) => + (c as ts.ClassLikeDeclaration).members.nodes.some((m) => { + const n = (m as { name?: ts.Node }).name; + return ( + n !== undefined && (ts.isIdentifier(n) || ts.isPrivateIdentifier(n)) && n.text === name + ); + }), + ); + // `this.m(…)` in an inherited method whose class does not declare `m` + // (zod's ZodType._parseSync calls the subclasses' _parse): the receiver + // is cast to the classes the method runs on, so the call dispatches over + // them instead of through an untyped call. + const receiverCasts = (method: ts.MethodDeclaration): void => { + const cls = method.parent; + const receivers = thisAtoms.get(method); + if (cls === undefined || receivers === undefined || receivers.size === 0) return; + if (![...receivers].every((a) => a.kind === "instance")) return; + const t = typeOf(receivers, false, 0); + if (t === null) return; + const scan = (node: ts.Node): void => { + if (ts.isFunctionLike(node) && !ts.isArrowFunction(node)) return; + if ( + ts.isCallExpression(node) && + ts.isPropertyAccessExpression(node.expression) && + node.expression.expression.kind === ts.SyntaxKind.ThisKeyword && + ts.isIdentifier(node.expression.name) && + !declaresMember(cls, node.expression.name.text) + ) { + const self = node.expression.expression; + edits.push({ pos: ts.tokenStartOfNode(self), text: `/** @type {${t}} ${MARK} */ (` }); + edits.push({ pos: self.end, text: ")" }); + annotations++; + } + ts.forEachChild(node, (c) => { + scan(c); + return undefined; + }); + }; + if (method.body !== undefined) for (const st of method.body.statements.nodes) scan(st); + }; + + // Same-named instance methods of the file's classes form a family: a + // call on a union of those classes needs one signature, so each member's + // parameters and result join the whole family's values. + const families = new Map(); + const familyVisit = (node: ts.Node): void => { + if ( + ts.isMethodDeclaration(node) && + ts.isIdentifier(node.name) && + !list((node as { modifiers?: { nodes: readonly ts.Node[] } }).modifiers).some( + (m) => m.kind === ts.SyntaxKind.StaticKeyword, + ) + ) { + let l = families.get(node.name.text); + if (l === undefined) families.set(node.name.text, (l = [])); + l.push(node); + } + ts.forEachChild(node, (c) => { + familyVisit(c); + return undefined; + }); + }; + familyVisit(sf); + // Members the program runs (they have analysis contexts); members it + // never reaches would only widen the family's types. + const reached = new Set(); + for (const info of analysis.functions.values()) + if (info.node.getSourceFile() === sf) reached.add(info.node); + const familyOf = (fn: ts.FunctionLikeDeclaration): readonly ts.MethodDeclaration[] => { + if (!ts.isMethodDeclaration(fn) || !ts.isIdentifier(fn.name)) + return [fn as ts.MethodDeclaration]; + const members = (families.get(fn.name.text) ?? [fn]).filter((m) => reached.has(m)); + return members.length > 0 ? members : [fn]; + }; + const paramValues = (fn: ts.FunctionLikeDeclaration, index: number): Set => { + const out = new Set(); + for (const member of familyOf(fn)) { + const p = list(member.parameters)[index]; + if (p === undefined) continue; + for (const a of analysis.declValues(p)) out.add(a); + } + return out; + }; + const returnValues = (fn: ts.FunctionLikeDeclaration): Set | undefined => { + let out: Set | undefined; + for (const member of familyOf(fn)) { + const r = returns.get(member); + if (r === undefined) continue; + out ??= new Set(); + for (const a of r) out.add(a); + } + return out; + }; + + const paramTags = (fn: ts.FunctionLikeDeclaration): string | null => { + const tags: string[] = []; + if (!ts.isConstructorDeclaration(fn)) { + const ret = returnValues(fn); + const t = ret !== undefined && ret.size > 0 ? typeOf(ret, false, 0) : null; + const why = process.env["SCRIPTC_DEBUG_SHAPE_OVERLAY_WHY"]; + if ( + why !== undefined && + t === null && + ret !== undefined && + ts.isMethodDeclaration(fn) && + ts.isIdentifier(fn.name) && + fn.name.text === why + ) + process.stderr.write( + `[shape-overlay-why] ${fn.name.text}: ${[...ret].map((a) => `${a.kind}:${a.label}${analysis.escaped.has(a) ? "(escaped)" : ""}`).join(" | ")}\n`, + ); + if (t !== null) tags.push(`@returns {${t}}`); + } + list(fn.parameters).forEach((p, index) => { + if ( + !ts.isIdentifier(p.name) || + p.dotDotDotToken !== undefined || + p.initializer !== undefined || + p.questionToken !== undefined + ) + return; + const t = typeOf(paramValues(fn, index), false, 0); + if (t !== null) tags.push(`@param {${t}} ${p.name.text}`); + }); + return tags.length > 0 ? `${tags.join(" ")} ${MARK}` : null; + }; + + const visit = (node: ts.Node): void => { + if (ts.isMethodDeclaration(node)) receiverCasts(node); + if ( + ts.isMethodDeclaration(node) || + ts.isConstructorDeclaration(node) || + ts.isFunctionDeclaration(node) + ) { + if (node.body !== undefined) { + const tags = paramTags(node); + if (tags !== null) { + edits.push({ pos: ts.tokenStartOfNode(node), text: `/** ${tags} */ ` }); + annotations++; + } + } + // `this.f = …` fields of a constructor's top-level statements. + if (ts.isConstructorDeclaration(node) && node.body !== undefined) { + const cls = node.parent; + const seen = new Set(); + for (const st of list(node.body.statements)) { + if (!ts.isExpressionStatement(st) || !ts.isBinaryExpression(st.expression)) continue; + const b = st.expression; + if ( + b.operatorToken.kind !== ts.SyntaxKind.EqualsToken || + !ts.isPropertyAccessExpression(b.left) + ) + continue; + if ( + b.left.expression.kind !== ts.SyntaxKind.ThisKeyword || + !ts.isIdentifier(b.left.name) + ) + continue; + const name = b.left.name.text; + if (seen.has(name)) continue; + seen.add(name); + const t = cls !== undefined ? fieldType(cls, name) : null; + if (t !== null) { + edits.push({ pos: ts.tokenStartOfNode(st), text: `/** @type {${t}} ${MARK} */ ` }); + annotations++; + } + } + } + } + // Locals only: module-level bindings are initialized once (and a + // record-typed module constant can turn a return type into a union of + // overlapping records, which the lowering width-coerces). + if ( + ts.isVariableStatement(node) && + (node.parent !== sf || process.env["SCRIPTC_SHAPE_OVERLAY_MODULE_VARS"] === "1") && + node.declarationList.declarations.nodes.length === 1 + ) { + const d = node.declarationList.declarations.nodes[0]!; + const init = d.initializer; + if (ts.isIdentifier(d.name) && init !== undefined && !literalInitializer(init)) { + const t = typeOf(analysis.declValues(d), false, 0); + if (t !== null) { + edits.push({ pos: ts.tokenStartOfNode(node), text: `/** @type {${t}} ${MARK} */ ` }); + annotations++; + } + } + } + ts.forEachChild(node, (c) => { + visit(c); + return undefined; + }); + }; + + const fieldType = (cls: ts.Node, name: string): string | null => { + const atoms = new Set(); + for (const a of analysis.atoms.atoms) { + if ( + a.kind !== "instance" || + a.node === undefined || + !analysis.classChain(a.node).includes(cls) + ) + continue; + const id = analysis.fields.get(a)?.get(name); + if (id !== undefined) for (const x of analysis.nodes[id]!.atoms) atoms.add(x); + } + return typeOf(atoms, false, 0); + }; + + visit(sf); + // Dead branches: outermost first; edits inside a replaced range drop. + const dead = (deadByFile.get(sf) ?? []).sort((a, b) => a.pos - b.pos); + const ranges: [number, number][] = []; + for (const branch of dead) { + const start = ts.tokenStartOfNode(branch); + if (ranges.some(([lo, hi]) => start >= lo && start < hi)) continue; + ranges.push([start, branch.end]); + } + if (ranges.length > 0) { + const kept = edits.filter((e) => !ranges.some(([lo, hi]) => e.pos > lo && e.pos < hi)); + edits.length = 0; + edits.push(...kept); + const pkg = packageNameOf(sf.fileName); + const rel = sf.fileName.split("/node_modules/").pop() ?? sf.fileName; + for (const [lo, hi] of ranges) { + const line = sf.getLineAndCharacterOfPosition(lo).line + 1; + const message = + `scriptc internal error: shape inference proved the branch at ${rel}:${line} unreachable, but it ran. ` + + `This is a bug in scriptc's shape analysis, not in the program. Rebuild with --no-shape-overlay, ` + + `or set "scriptc": {"packages": {"${pkg}": {"shapes": false}}} in package.json.`; + edits.push({ pos: lo, end: hi, text: `{ throw new Error(${JSON.stringify(message)}); }` }); + deadBranches++; + } + } + // Debugging: SCRIPTC_SHAPE_OVERLAY_ONLY=a-b keeps the annotations + // numbered a..b (program order across files), to bisect a miscompile. + const only = process.env["SCRIPTC_SHAPE_OVERLAY_ONLY"]; + if (only !== undefined) { + const [lo, hi] = only.split("-").map(Number) as [number, number]; + edits.sort((a, b) => a.pos - b.pos); + const kept = edits.filter(() => { + const n = debugIndex++; + return n >= lo && n <= hi; + }); + edits.length = 0; + edits.push(...kept); + } + if (edits.length === 0) continue; + files.set(sf.fileName, neutralizeDocTags(applyEdits(sf.text, edits)) + typedefText.join("")); + } + return { files, annotations, deadBranches }; +} + +function packageNameOf(fileName: string): string { + const parts = (fileName.split("/node_modules/").pop() ?? "").split("/"); + return parts[0]!.startsWith("@") ? `${parts[0]}/${parts[1]}` : parts[0]!; +} + +function literalInitializer(e: ts.Expression): boolean { + return ( + ts.isObjectLiteralExpression(e) || + (ts.isArrayLiteralExpression(e) && e.elements.nodes.length > 0) || + ts.isStringLiteral(e) || + ts.isNumericLiteral(e) || + ts.isNoSubstitutionTemplateLiteral(e) || + ts.isArrowFunction(e) || + ts.isFunctionExpression(e) || + e.kind === ts.SyntaxKind.TrueKeyword || + e.kind === ts.SyntaxKind.FalseKeyword + ); +} + +function applyEdits(text: string, edits: readonly Edit[]): string { + const sorted = [...edits].sort((a, b) => a.pos - b.pos); + let out = ""; + let at = 0; + for (const e of sorted) { + out += text.slice(at, e.pos) + e.text; + at = e.end ?? e.pos; + } + return out + text.slice(at); +} + +/** The package's JSDoc type tags become plain text: package JSDoc is a + * hint, not a declaration. The overlay's own comments carry MARK and are + * kept. Lengths are unchanged. */ +export function neutralizeDocTags(text: string): string { + return text.replace(/\/\*\*[\s\S]*?\*\//g, (comment) => { + if (comment.includes(MARK)) return comment; + return comment.replace( + /@(param|type|typedef|returns?|template|this|callback|property|prop|arg|argument|enum|implements|extends|augments|satisfies|overload|import)\b/g, + "-$1", + ); + }); +} + +/** A record site's keys: its static keys, or for a literal with spreads its + * own keys plus every key a spread source contributes (optional unless + * every value of that source has it). Null when a computed key or an + * untracked spread source makes the key set unknown. */ +function keysOfSite( + analysis: ShapeAnalysis, + v: SiteVerdict, +): { keys: string[]; optional: Set } | null { + const site = v.site; + if (site.keys !== null) return { keys: site.keys, optional: new Set() }; + if (site.hasComputedKey) return null; + const fields = analysis.fields.get(site.atom); + const any = fields?.get("*"); + if (any !== undefined && analysis.nodes[any]!.atoms.size > 0) return null; + const required = new Set(site.ownKeys); + for (const spread of site.spreads) { + const sets: Set[] = []; + for (const a of analysis.nodes[spread]!.atoms) { + if (a.kind === "prim" && (a.label === "undefined" || a.label === "null")) continue; + if (a.kind !== "object") return null; + const own = new Set(); + for (const k of analysis.fields.get(a)?.keys() ?? []) if (k !== "*") own.add(k); + sets.push(own); + } + const first = sets[0]; + if (first === undefined) continue; + for (const k of first) if (sets.every((set) => set.has(k))) required.add(k); + } + const all = [...site.ownKeys]; + for (const k of fields?.keys() ?? []) if (k !== "*" && !all.includes(k)) all.push(k); + return { keys: all, optional: new Set(all.filter((k) => !required.has(k))) }; +} diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index e2d1c97cc..c0f0e0649 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -1,3 +1,4 @@ +import { shapeOverlayEnabled } from "./frontend/shape-inference/index.js"; import { optimizationField, type NativeOptimization } from "./backend/optimization.js"; import { targetCpuField, targetCpuTargetRefusal } from "./backend/target-cpu.js"; import { compilationTiming, type CompilationTiming, type TimingClock } from "./timing.js"; @@ -442,6 +443,10 @@ export async function compile( opts: CompileRequestOptions, ): Promise { clearCompileSessionCaches(); + // `shapeOverlay: false` reaches the frontend (and its child process) + // through the environment the overlay reads. + const overlayEnv = process.env["SCRIPTC_SHAPE_OVERLAY"]; + if (opts.shapeOverlay === false) process.env["SCRIPTC_SHAPE_OVERLAY"] = "0"; const frontendInputs = new FrontendInputTracker(); const warnings: CompileWarningSink = { warnings: [], sourceTexts: null }; // compileTracked starts it for a build with no earlier build of the same invocation. @@ -454,6 +459,10 @@ export async function compile( } finally { setLibDiagnosticsStore(null); frontendProcess?.release(); + if (opts.shapeOverlay === false) { + if (overlayEnv === undefined) delete process.env["SCRIPTC_SHAPE_OVERLAY"]; + else process.env["SCRIPTC_SHAPE_OVERLAY"] = overlayEnv; + } } } @@ -1190,6 +1199,8 @@ function configureLibDiagnostics(root: string | null): void { export async function runFrontendProcess(requestPath: string, resultPath: string): Promise { const request = JSON.parse(await readFile(requestPath, "utf8")) as FrontendProcessRequest; + // The process started before the build's options were known. + if (request.opts.shapeOverlay === false) process.env["SCRIPTC_SHAPE_OVERLAY"] = "0"; clearCompileSessionCaches(); setProvenanceSources(request.provenance); // The compile that started this process prepared the cache root. @@ -1520,6 +1531,7 @@ async function compileTracked( ...checkerField(), ...(youngNurseryRequested() ? { youngNursery: true as const } : {}), npmStatic: opts.npmStatic ?? null, + ...(shapeOverlayEnabled() ? { shapeOverlay: true as const } : {}), ffiProfile: opts.ffiProfilePath === undefined || ffiProfileBytes === null ? null diff --git a/packages/compiler/src/ir/function-references.test.ts b/packages/compiler/src/ir/function-references.test.ts index db872a525..6c13d3916 100644 --- a/packages/compiler/src/ir/function-references.test.ts +++ b/packages/compiler/src/ir/function-references.test.ts @@ -100,6 +100,7 @@ const EXPR_FIELDS: Classified = { unionIsTag: { unionId: "other" }, unionEq: { unionId: "other" }, jsonStringify: { indent: "other" }, + dynCheck: { inferredSite: "other" }, }; const STMT_FIELDS: Classified = { @@ -222,6 +223,8 @@ const MODULE_FIELDS: Record>, Role> = { "wasmUntranslated[].reason": "other", "threadSlotKeys[]": "other", "freezableArrays[]": "other", + "inferredFactFiles[].file": "other", + "inferredFactFiles[].pkg": "other", }; const loc = { file: "references.ts", start: 0, end: 0 }; diff --git a/packages/compiler/src/ir/ir.ts b/packages/compiler/src/ir/ir.ts index 3818433f8..25fce8364 100644 --- a/packages/compiler/src/ir/ir.ts +++ b/packages/compiler/src/ir/ir.ts @@ -1061,6 +1061,11 @@ export interface IrModule { * closures boxed for package code return records and arrays as live * capsules, so a value that comes back keeps its identity. */ declBoundary?: true; + /** Package files compiled from shape inference's typed overlay + * (frontend/shape-inference/overlay.ts), each with its package name: a + * checked conversion in them checks an analysis-proven fact, so its + * failure reports a compiler analysis bug instead of a type error. */ + inferredFactFiles?: { file: string; pkg: string }[]; /** The program constructs LifetimeRegion (@scriptc/experimental): every * ProgramLifetime instance lives in a counted region (the region.* * intrinsics; backend/llvm/regions.ts). */ @@ -3984,6 +3989,10 @@ export type IrExpr = preserveRefs?: true; adopt?: true; exact?: true; + /** Shape inference's overlay: this conversion checks an + * analysis-proven fact (" :"); a failure is a + * compiler analysis bug and reports itself as one. */ + inferredSite?: string; type: IrType; loc: SrcLoc; }; diff --git a/packages/runtime/src/scr_dyn.h b/packages/runtime/src/scr_dyn.h index d3997ebd9..5e31d2aa9 100644 --- a/packages/runtime/src/scr_dyn.h +++ b/packages/runtime/src/scr_dyn.h @@ -1541,6 +1541,10 @@ void scr_dyn_check_fail(const ScrDynPath *path, const char *want, const ScrDyn * /* The Date object a checked-dynamic Date handle holds, +1, or NULL with * the check failure pending. */ ScrDate *scr_dyn_native_date_check(const ScrDyn *value, const ScrDynPath *path); +/* Names the analysis-proven fact the next checked conversion checks + * (shape inference's overlay), or NULL: its failure then reports a compiler + * analysis bug (" :"). */ +void scr_dyn_inferred_site(const char *site); /* Matchers and builders of recursive shapes (records and arrays whose type * reaches itself) track the dyn values they visit, so cyclic values match diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index 45ba766a1..39e930cf1 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -10782,7 +10782,53 @@ static const char *scr_dyn_kind_name(const ScrDyn *d) { return "unknown"; } +/* Shape inference's overlay (compiler frontend/shape-inference): a checked + * conversion of an analysis-proven fact names its site (" + * :") while it runs. A failure there is a compiler analysis + * bug, so it reports itself as one instead of as a type error. */ +static SCR_TL const char *scr_dyn_inferred_site_name; + +void scr_dyn_inferred_site(const char *site) { scr_dyn_inferred_site_name = site; } + +static void scr_dyn_inferred_fact_fail(const char *site, const ScrDynPath *path, const char *want, + const ScrDyn *got) { + const char *space = strchr(site, ' '); + size_t pkg_len = space ? (size_t)(space - site) : 0; + const char *where = space ? space + 1 : site; + ScrJsonBuf b; + scr_jb_init(&b); + scr_jb_puts(&b, "scriptc internal error: an inferred type was contradicted at "); + scr_jb_puts(&b, where); + scr_jb_puts(&b, " (expected "); + scr_jb_puts(&b, want); + scr_jb_puts(&b, " at "); + scr_dyn_path_render(&b, path); + scr_jb_puts(&b, ", got "); + scr_jb_puts(&b, scr_dyn_kind_name(got)); + scr_jb_puts(&b, "). This is a bug in scriptc's shape analysis, not in the program's data. " + "Rebuild with --no-shape-overlay, or set \"scriptc\": {\"packages\": {\""); + for (size_t i = 0; i < pkg_len; i++) scr_jb_putc(&b, site[i]); + scr_jb_puts(&b, "\": {\"shapes\": false}}} in package.json, to compile the package without it."); + /* Validation mode: every hit is logged, also when the program catches it. */ + const char *log = getenv("SCRIPTC_SHAPE_CHECK_LOG"); + if (log && *log) { + FILE *f = fopen(log, "a"); + if (f) { + fwrite(b.data, 1, b.len, f); + fputc('\n', f); + fclose(f); + } + } + scr_throw_error(SCR_ERR_ERROR, scr_jb_finish(&b)); +} + void scr_dyn_check_fail(const ScrDynPath *path, const char *want, const ScrDyn *got) { + const char *site = scr_dyn_inferred_site_name; + if (site) { + scr_dyn_inferred_site_name = NULL; + scr_dyn_inferred_fact_fail(site, path, want, got); + return; + } ScrJsonBuf b; scr_jb_init(&b); scr_jb_puts(&b, "expected "); diff --git a/tests/harness/shape-overlay.test.ts b/tests/harness/shape-overlay.test.ts new file mode 100644 index 000000000..ad1988238 --- /dev/null +++ b/tests/harness/shape-overlay.test.ts @@ -0,0 +1,62 @@ +/* The shape overlay (shape-inference/overlay.ts): with SCRIPTC_SHAPE_OVERLAY=1 + * the zod3-boundary npm case compiles zod's JavaScript with analysis-proven JSDoc + * types, reports what it typed and checks (SC6103), and prints what Node + * prints; the shapeOverlay: false option (the CLI's --no-shape-overlay) + * turns it off. */ +import { execFile } from "node:child_process"; +import { mkdirSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { promisify } from "node:util"; +import { expect, test } from "vitest"; +import { compile } from "@scriptc/compiler"; + +const execFileAsync = promisify(execFile); +const repoRoot = join(import.meta.dirname, "../.."); +const entry = join(repoRoot, "tests/fixtures/npm/cases/zod3-boundary/main.ts"); +const outDir = join(repoRoot, "node_modules/.cache/scriptc-tests/shape-overlay"); +const sanitize = process.env["SCRIPTC_SAN"] === "1"; + +async function withOverlay(run: () => Promise): Promise { + const saved = process.env["SCRIPTC_SHAPE_OVERLAY"]; + process.env["SCRIPTC_SHAPE_OVERLAY"] = "1"; + try { + return await run(); + } finally { + if (saved === undefined) delete process.env["SCRIPTC_SHAPE_OVERLAY"]; + else process.env["SCRIPTC_SHAPE_OVERLAY"] = saved; + } +} + +test( + "the overlay types zod's JavaScript and keeps Node's output", + { timeout: 900_000 }, + async () => { + mkdirSync(outDir, { recursive: true }); + const result = await withOverlay(() => + compile(entry, { outPath: join(outDir, "on"), outDir, sanitize }), + ); + if (!result.ok) + throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); + const report = (result.warnings ?? []).find((w) => w.code === "SC6103"); + expect(report?.message).toMatch( + /shape inference typed \d+ declarations in \d+ files? of 1 package \(zod\)/, + ); + const run = execFileAsync(result.binaryPath, [], { cwd: dirname(entry), encoding: "utf8" }); + run.child.stdin?.end(); + const node = await execFileAsync(process.execPath, [entry], { + cwd: dirname(entry), + encoding: "utf8", + }); + expect((await run).stdout).toBe(node.stdout); + }, +); + +test("shapeOverlay: false compiles without the overlay", { timeout: 900_000 }, async () => { + mkdirSync(outDir, { recursive: true }); + const result = await withOverlay(() => + compile(entry, { outPath: join(outDir, "off"), outDir, sanitize, shapeOverlay: false }), + ); + if (!result.ok) + throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); + expect((result.warnings ?? []).some((w) => w.code === "SC6103")).toBe(false); +}); From 688c1e03a15b69cf9dd0693a9199e45b08170d6d Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sat, 24 Oct 2026 22:52:52 -0500 Subject: [PATCH 011/128] Keep undefined results, literal text and hoisted vars in the shape overlay - A function's results include undefined when a call can run off the end of its body or reach a bare return, so the overlay's return type keeps undefined and a caller's branch on it stays reachable. `new` of an ES5 constructor ignores primitive results, and functions called with `new` get no @returns tag. - Package JSDoc tags are neutralized only in comments: string, template and regular expression literals and JSX text keep their text. - A branch replaced as unreachable keeps the var names it declares that its scope declares nowhere else, so references outside it read undefined. A branch that declares a function in a block is kept. - The shape-overlay-facts npm case covers all three; four files of the overlay change are formatted. --- .../src/frontend/lowering/call-signatures.ts | 6 +- .../src/frontend/lowering/lower-classes.ts | 5 +- packages/compiler/src/frontend/pipeline.ts | 5 +- packages/compiler/src/frontend/program.ts | 6 +- .../src/frontend/shape-inference/analyze.ts | 64 +++++- .../frontend/shape-inference/overlay.test.ts | 32 +++ .../src/frontend/shape-inference/overlay.ts | 182 ++++++++++++++++-- .../cases/shape-overlay-facts/main.ts.json | 6 + .../npm/cases/shape-overlay-facts/main.ts | 10 + .../node_modules/shape-facts/index.d.ts | 4 + .../node_modules/shape-facts/index.js | 55 ++++++ .../node_modules/shape-facts/package.json | 1 + .../cases/shape-overlay-facts/package.json | 1 + tests/harness/shape-overlay.test.ts | 30 +++ 14 files changed, 384 insertions(+), 23 deletions(-) create mode 100644 packages/compiler/src/frontend/shape-inference/overlay.test.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/shape-overlay-facts/main.ts.json create mode 100644 tests/fixtures/npm/cases/shape-overlay-facts/main.ts create mode 100644 tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.d.ts create mode 100644 tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.js create mode 100644 tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/package.json create mode 100644 tests/fixtures/npm/cases/shape-overlay-facts/package.json diff --git a/packages/compiler/src/frontend/lowering/call-signatures.ts b/packages/compiler/src/frontend/lowering/call-signatures.ts index 9d8096c62..3b2a4bd39 100644 --- a/packages/compiler/src/frontend/lowering/call-signatures.ts +++ b/packages/compiler/src/frontend/lowering/call-signatures.ts @@ -182,7 +182,11 @@ export function checkedJsDocumentedParameter( lowerer: Lowerer, param: ts.ParameterDeclaration, ): boolean { - if (param.parent !== undefined && shapeOverlayAnnotated(param.parent) && documentedParameter(param)) + if ( + param.parent !== undefined && + shapeOverlayAnnotated(param.parent) && + documentedParameter(param) + ) return true; return lowerer.checkedJsFile(ts.getSourceFileOfNode(param)) && documentedParameter(param); } diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index 573bb0c69..b2036dc8a 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -1156,7 +1156,10 @@ function jsFieldInitializerType(lowerer: Lowerer, type: IrType, expression: ts.E // Shape inference's overlay types a field as a record or array only when // the analysis proves its values never reach code that could observe a // copy, so those fields keep their native layout. - if ((type.kind === "array" || type.kind === "record") && !shapeOverlayAnnotated(expression.parent?.parent ?? expression)) + if ( + (type.kind === "array" || type.kind === "record") && + !shapeOverlayAnnotated(expression.parent?.parent ?? expression) + ) return DYN; // JavaScript documentation cannot guarantee that a call or an indexed // read returns a present number. Numeric fields receiving those values diff --git a/packages/compiler/src/frontend/pipeline.ts b/packages/compiler/src/frontend/pipeline.ts index 92bafe54d..ad64fb8d5 100644 --- a/packages/compiler/src/frontend/pipeline.ts +++ b/packages/compiler/src/frontend/pipeline.ts @@ -700,7 +700,10 @@ function loadFrontend( }); // The declaration-typed boundary's notes (SC6102) join the // performance warnings; they never fail a build. - const notes = [...(finalLoad.declBoundaryNotes ?? []), ...shapeOverlayReport(finalLoad.entry.fileName)]; + const notes = [ + ...(finalLoad.declBoundaryNotes ?? []), + ...shapeOverlayReport(finalLoad.entry.fileName), + ]; if (notes.length === 0) return lowered; return { ...lowered, performance: [...notes, ...(lowered.performance ?? [])] }; }, diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index daeb61ded..f44efb228 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -1018,7 +1018,11 @@ function loadProgram7( for (const [file, text] of overlay) host.addVirtualFile(file, text); program = host.createProgram([...programRoots, overridesDtsPath()], options); if (tscWorld === undefined) - tscWorld = { program: before, diagnostics: ts.getPreEmitDiagnostics(before), projectWorld: null }; + tscWorld = { + program: before, + diagnostics: ts.getPreEmitDiagnostics(before), + projectWorld: null, + }; else if (tscWorld.program !== before) before.dispose(); } } diff --git a/packages/compiler/src/frontend/shape-inference/analyze.ts b/packages/compiler/src/frontend/shape-inference/analyze.ts index fe87a8c53..cbdfef081 100644 --- a/packages/compiler/src/frontend/shape-inference/analyze.ts +++ b/packages/compiler/src/frontend/shape-inference/analyze.ts @@ -131,6 +131,8 @@ export interface ShapeAnalysis { readonly escapedFunctions: ReadonlySet; /** ES5 constructors: each function's default prototype object. */ readonly protoOf: ReadonlyMap; + /** ES5 constructor instances: the function atom whose `new` made each. */ + readonly fnOfInstance: ReadonlyMap; /** Every value a declaration (parameter, variable, binding element) holds, * merged over the analysis contexts it was analyzed in. */ declValues(decl: Node): Set; @@ -249,6 +251,47 @@ function isLoop(node: Node): boolean { ); } +/** Whether control can reach the end of `stmts`. False only when every + * path ends in a return or throw, or in a `while (true)`, `do … while + * (true)` or `for (;;)` loop with no break inside; anything else is + * assumed to complete. */ +function canComplete(stmts: readonly Node[]): boolean { + return stmts.every(canCompleteStatement); +} + +function canCompleteStatement(s: Node): boolean { + if (ts.isReturnStatement(s) || ts.isThrowStatement(s)) return false; + if (ts.isBlock(s)) return canComplete(list(s.statements)); + if (ts.isIfStatement(s)) + return ( + s.elseStatement === undefined || + canCompleteStatement(s.thenStatement) || + canCompleteStatement(s.elseStatement) + ); + if (ts.isTryStatement(s)) { + if (s.finallyBlock !== undefined && !canCompleteStatement(s.finallyBlock)) return false; + return ( + canCompleteStatement(s.tryBlock) || + (s.catchClause !== undefined && canCompleteStatement(s.catchClause.block)) + ); + } + const endless = + ((ts.isWhileStatement(s) || ts.isDoStatement(s)) && + s.expression.kind === ts.SyntaxKind.TrueKeyword) || + (ts.isForStatement(s) && s.condition === undefined); + return !endless || containsBreak(s); +} + +/** Whether a break statement occurs in `node`'s body, outside nested + * functions. */ +function containsBreak(node: Node): boolean { + return ( + ts.forEachChild(node, (c) => + ts.isBreakStatement(c) || (!ts.isFunctionLike(c) && containsBreak(c)) ? true : undefined, + ) === true + ); +} + const LOOP_CALLBACK_METHODS: ReadonlySet = new Set([ "map", "forEach", @@ -369,6 +412,7 @@ class Analyzer { nodeLabel: this.nodeLabel, escapedFunctions: this.escapedFunctionCalls, protoOf: this.protoOf, + fnOfInstance: this.fnOfInstance, declValues: (decl) => this.declValues(decl), classChain: (decl) => this.classChain(decl), branchIfs: this.branchIfs, @@ -918,8 +962,11 @@ class Analyzer { } const body = fn.body; if (body !== undefined) { - if (ts.isBlock(body)) this.stmts(list(body.statements)); - else this.edge(this.expr(body as ts.Expression), info.ret); + if (ts.isBlock(body)) { + this.stmts(list(body.statements)); + // A call that runs off the end of the body returns undefined. + if (canComplete(list(body.statements))) this.add(info.ret, this.prim("undefined")); + } else this.edge(this.expr(body as ts.Expression), info.ret); } this.currentFn = saved; this.loopDepth = savedLoop; @@ -1253,8 +1300,9 @@ class Analyzer { return; } if (ts.isReturnStatement(s)) { - if (s.expression !== undefined && this.currentFn !== null) - this.edge(this.expr(s.expression), this.currentFn.ret); + if (this.currentFn === null) return; + if (s.expression !== undefined) this.edge(this.expr(s.expression), this.currentFn.ret); + else this.add(this.currentFn.ret, this.prim("undefined")); return; } if (ts.isFunctionDeclaration(s)) { @@ -2667,7 +2715,11 @@ class Analyzer { this.activate(info); this.add(info.thisNode, inst); this.bindArgs(info, args, spread); - this.edge(info.ret, dst); + // `new` ignores a primitive result (and the undefined of a + // body that runs off its end) and yields the instance. + this.on(info.ret, (r) => { + if (r.kind !== "prim") this.add(dst, r); + }); this.edgeFor(e, info); } return; @@ -3350,7 +3402,7 @@ function cjsExportName(decl: Node): string | null { ) return decl.left.name.text; return null; - } +} interface WalkEnv { readonly ctx: string; diff --git a/packages/compiler/src/frontend/shape-inference/overlay.test.ts b/packages/compiler/src/frontend/shape-inference/overlay.test.ts new file mode 100644 index 000000000..f0effae77 --- /dev/null +++ b/packages/compiler/src/frontend/shape-inference/overlay.test.ts @@ -0,0 +1,32 @@ +import { afterAll, expect, test } from "vitest"; +import { closeSourceParser, parseSourceFile } from "../ts7/source-parser-node.js"; +import { neutralizeDocTags, OVERLAY_MARK } from "./overlay.js"; + +afterAll(closeSourceParser); + +test("neutralizeDocTags rewrites JSDoc comments and keeps literals", () => { + const source = [ + "/** @param {number} a */", + "function f(a) {", + ' const s = "/** @type {number} */";', + " const t = `/** @returns {string} ${a} */`;", + " const r = /\\/\\*\\* @param \\*\\//;", + " // /** @type {string} */", + ` /** @type {string} ${OVERLAY_MARK} */ const u = s + t;`, + " return a / 2 /** @returns {number} */;", + "}", + ].join("\n"); + const out = neutralizeDocTags(parseSourceFile("overlay.js", source, "js")); + expect(out.length).toBe(source.length); + expect(out.split("\n")).toEqual([ + "/** -param {number} a */", + "function f(a) {", + ' const s = "/** @type {number} */";', + " const t = `/** @returns {string} ${a} */`;", + " const r = /\\/\\*\\* @param \\*\\//;", + " // /** @type {string} */", + ` /** @type {string} ${OVERLAY_MARK} */ const u = s + t;`, + " return a / 2 /** -returns {number} */;", + "}", + ]); +}); diff --git a/packages/compiler/src/frontend/shape-inference/overlay.ts b/packages/compiler/src/frontend/shape-inference/overlay.ts index 28b5336cf..7747fac20 100644 --- a/packages/compiler/src/frontend/shape-inference/overlay.ts +++ b/packages/compiler/src/frontend/shape-inference/overlay.ts @@ -268,6 +268,10 @@ export function planShapeOverlay( return name; }; + // Functions called with `new` yield their instance, whatever they return. + const constructed = new Set( + [...analysis.fnOfInstance.values()].map((a) => a.node), + ); // Return values merged over every analysis context of each function. const returns = new Map>(); for (const info of analysis.functions.values()) { @@ -382,7 +386,7 @@ export function planShapeOverlay( const paramTags = (fn: ts.FunctionLikeDeclaration): string | null => { const tags: string[] = []; - if (!ts.isConstructorDeclaration(fn)) { + if (!ts.isConstructorDeclaration(fn) && !constructed.has(fn)) { const ret = returnValues(fn); const t = ret !== undefined && ret.size > 0 ? typeOf(ret, false, 0) : null; const why = process.env["SCRIPTC_DEBUG_SHAPE_OVERLAY_WHY"]; @@ -498,9 +502,13 @@ export function planShapeOverlay( // Dead branches: outermost first; edits inside a replaced range drop. const dead = (deadByFile.get(sf) ?? []).sort((a, b) => a.pos - b.pos); const ranges: [number, number][] = []; + const hoisted = new Map(); for (const branch of dead) { const start = ts.tokenStartOfNode(branch); if (ranges.some(([lo, hi]) => start >= lo && start < hi)) continue; + const names = hoistedNames(branch); + if (names === null) continue; + hoisted.set(start, names); ranges.push([start, branch.end]); } if (ranges.length > 0) { @@ -515,7 +523,14 @@ export function planShapeOverlay( `scriptc internal error: shape inference proved the branch at ${rel}:${line} unreachable, but it ran. ` + `This is a bug in scriptc's shape analysis, not in the program. Rebuild with --no-shape-overlay, ` + `or set "scriptc": {"packages": {"${pkg}": {"shapes": false}}} in package.json.`; - edits.push({ pos: lo, end: hi, text: `{ throw new Error(${JSON.stringify(message)}); }` }); + // The branch's own var names stay declared in its scope, undefined. + const names = hoisted.get(lo)!; + const vars = names.length > 0 ? `var ${names.join(", ")}; ` : ""; + edits.push({ + pos: lo, + end: hi, + text: `{ ${vars}throw new Error(${JSON.stringify(message)}); }`, + }); deadBranches++; } } @@ -533,7 +548,7 @@ export function planShapeOverlay( edits.push(...kept); } if (edits.length === 0) continue; - files.set(sf.fileName, neutralizeDocTags(applyEdits(sf.text, edits)) + typedefText.join("")); + files.set(sf.fileName, applyEdits(neutralizeDocTags(sf), edits) + typedefText.join("")); } return { files, annotations, deadBranches }; } @@ -568,17 +583,158 @@ function applyEdits(text: string, edits: readonly Edit[]): string { return out + text.slice(at); } -/** The package's JSDoc type tags become plain text: package JSDoc is a - * hint, not a declaration. The overlay's own comments carry MARK and are - * kept. Lengths are unchanged. */ -export function neutralizeDocTags(text: string): string { - return text.replace(/\/\*\*[\s\S]*?\*\//g, (comment) => { - if (comment.includes(MARK)) return comment; - return comment.replace( - /@(param|type|typedef|returns?|template|this|callback|property|prop|arg|argument|enum|implements|extends|augments|satisfies|overload|import)\b/g, - "-$1", - ); +/** The file's text with the JSDoc type tags of its comments made plain + * text: package JSDoc is a hint, not a declaration. String, template and + * regular expression literals and JSX text are copied unchanged, so + * comment-like text in them keeps its runtime value. Lengths are unchanged, + * so edit positions in the source text stay valid. */ +export function neutralizeDocTags(sf: ts.SourceFile): string { + const text = sf.text; + // Literal token ranges, in source order. + const literals: [number, number][] = []; + const visit = (node: ts.Node): void => { + if (ts.isJsxText(node)) { + literals.push([node.pos, node.end]); + return; + } + if ( + ts.isStringLiteral(node) || + ts.isNoSubstitutionTemplateLiteral(node) || + ts.isTemplateHead(node) || + ts.isTemplateMiddle(node) || + ts.isTemplateTail(node) || + ts.isRegularExpressionLiteral(node) + ) { + literals.push([ts.tokenStartOfNode(node), node.end]); + return; + } + ts.forEachChild(node, (c) => { + visit(c); + return undefined; + }); + }; + visit(sf); + literals.sort((a, b) => a[0] - b[0]); + let out = ""; + let copied = 0; + let next = 0; + let pos = 0; + // Outside literals, `//` and `/*` only start comments. + while (pos < text.length) { + while (next < literals.length && literals[next]![1] <= pos) next++; + const literal = literals[next]; + if (literal !== undefined && literal[0] <= pos) { + pos = literal[1]; + continue; + } + if (text.charCodeAt(pos) !== 47) { + pos++; + continue; + } + const second = text.charCodeAt(pos + 1); + if (second === 47) { + while (pos < text.length && !lineBreak(text.charCodeAt(pos))) pos++; + continue; + } + if (second !== 42) { + pos++; + continue; + } + const close = text.indexOf("*/", pos + 2); + const end = close < 0 ? text.length : close + 2; + const comment = text.slice(pos, end); + if (comment.startsWith("/**") && !comment.includes(MARK)) { + out += text.slice(copied, pos) + neutralizeComment(comment); + copied = end; + } + pos = end; + } + return out + text.slice(copied); +} + +function lineBreak(code: number): boolean { + return code === 10 || code === 13 || code === 0x2028 || code === 0x2029; +} + +function neutralizeComment(comment: string): string { + return comment.replace( + /@(param|type|typedef|returns?|template|this|callback|property|prop|arg|argument|enum|implements|extends|augments|satisfies|overload|import)\b/g, + "-$1", + ); +} + +/** The `var` names a dead branch declares that its function (or file) + * declares nowhere else: replacing the branch must keep them bound, as + * undefined. Null when the branch declares a function in a block, whose + * binding outside the block depends on the file's strictness; such a + * branch is kept. */ +function hoistedNames(branch: ts.Node): readonly string[] | null { + let scope: ts.Node | undefined = branch.parent; + while (scope !== undefined && !ts.isSourceFile(scope) && !functionScope(scope)) + scope = scope.parent; + if (scope === undefined) return null; + const own = new Set(); + let blockFunction = false; + ts.walkPreorder(branch, (n) => { + if (n !== branch && ts.isFunctionDeclaration(n)) { + blockFunction = true; + return "skip"; + } + if (n !== branch && (functionScope(n) || ts.isClassDeclaration(n) || ts.isClassExpression(n))) + return "skip"; + if (ts.isVariableDeclarationList(n) && (n.flags & ts.NodeFlags.BlockScoped) === 0) + for (const d of n.declarations.nodes) addBindingNames(d.name, own); + return undefined; }); + if (blockFunction) return null; + if (own.size === 0) return []; + // Names the scope binds outside the branch: parameters, a function + // expression's name, other var declarations and function declarations. + const elsewhere = new Set(); + if (!ts.isSourceFile(scope)) { + for (const p of list( + (scope as { parameters?: { readonly nodes: readonly ts.ParameterDeclaration[] } }).parameters, + )) + addBindingNames(p.name, elsewhere); + const name = (scope as { name?: ts.Node }).name; + if (name !== undefined && ts.isIdentifier(name)) elsewhere.add(name.text); + } + const body = ts.isSourceFile(scope) ? scope : (scope as { body?: ts.Node }).body; + if (body !== undefined) + ts.walkPreorder(body, (n) => { + if (n === branch) return "skip"; + if (n !== body && ts.isFunctionDeclaration(n) && n.name !== undefined) + elsewhere.add(n.name.text); + if (n !== body && (functionScope(n) || ts.isClassDeclaration(n) || ts.isClassExpression(n))) + return "skip"; + if (ts.isVariableDeclarationList(n) && (n.flags & ts.NodeFlags.BlockScoped) === 0) + for (const d of n.declarations.nodes) addBindingNames(d.name, elsewhere); + return undefined; + }); + return [...own].filter((name) => !elsewhere.has(name)); +} + +function functionScope(n: ts.Node): boolean { + return ( + ts.isFunctionDeclaration(n) || + ts.isFunctionExpression(n) || + ts.isArrowFunction(n) || + ts.isMethodDeclaration(n) || + ts.isGetAccessorDeclaration(n) || + ts.isSetAccessorDeclaration(n) || + ts.isConstructorDeclaration(n) || + ts.isClassStaticBlockDeclaration(n) + ); +} + +function addBindingNames(name: ts.BindingName, out: Set): void { + if (ts.isIdentifier(name)) { + out.add(name.text); + return; + } + for (const element of name.elements.nodes) + if (!ts.isOmittedExpression(element) && element.name !== undefined) + addBindingNames(element.name, out); } /** A record site's keys: its static keys, or for a literal with spreads its diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/shape-overlay-facts/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/shape-overlay-facts/main.ts.json new file mode 100644 index 000000000..f01de4ae5 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/npm/cases/shape-overlay-facts/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/fixtures/npm/cases/shape-overlay-facts/main.ts" + ], + "diags": [] +} diff --git a/tests/fixtures/npm/cases/shape-overlay-facts/main.ts b/tests/fixtures/npm/cases/shape-overlay-facts/main.ts new file mode 100644 index 000000000..3ed1cf5de --- /dev/null +++ b/tests/fixtures/npm/cases/shape-overlay-facts/main.ts @@ -0,0 +1,10 @@ +// The shape overlay's facts: results that include undefined, literals that +// hold comment-like text, and a var declared in a branch no call takes. +import { banner, hoisted, lookup, lookupOrReturn } from "shape-facts"; + +console.log(lookup("b")); +console.log(lookup("z")); +console.log(lookupOrReturn("a")); +console.log(lookupOrReturn("y")); +console.log(banner(7)); +console.log(hoisted("note:")); diff --git a/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.d.ts b/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.d.ts new file mode 100644 index 000000000..b1865415d --- /dev/null +++ b/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.d.ts @@ -0,0 +1,4 @@ +export declare function lookup(key: string): string; +export declare function lookupOrReturn(key: string): string; +export declare function banner(n: number): string; +export declare function hoisted(label: string): string; diff --git a/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.js b/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.js new file mode 100644 index 000000000..505af75a0 --- /dev/null +++ b/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/index.js @@ -0,0 +1,55 @@ +// Functions whose results include the undefined of a fall-through or a +// bare return, comment-like text in literals, and a branch no call takes +// that declares a var read outside it. + +const entries = [ + { key: "a", value: 1 }, + { key: "b", value: 2 }, +]; + +function find(key) { + for (const entry of entries) { + if (entry.key === key) return entry; + } +} + +function findOrReturn(key) { + for (const entry of entries) if (entry.key === key) return entry; + return; +} + +export function lookup(key) { + const hit = find(key); + if (hit) { + return "found " + hit.key + "=" + hit.value; + } else { + return "missing " + key; + } +} + +export function lookupOrReturn(key) { + const hit = findOrReturn(key); + if (hit) { + return "found " + hit.key + "=" + hit.value; + } else { + return "missing " + key; + } +} + +export function banner(n) { + const quoted = "/** @type {number} */"; + const template = `/** @returns {string} ${n} */`; + const pattern = /\/\*\* @param \*\//; + return quoted + " " + template + " " + pattern.source; +} + +function noteOf(extra) { + if (extra) { + var note = "set"; + } + return typeof note + " " + String(note); +} + +export function hoisted(label) { + return label + " " + noteOf(undefined); +} diff --git a/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/package.json b/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/package.json new file mode 100644 index 000000000..317269e91 --- /dev/null +++ b/tests/fixtures/npm/cases/shape-overlay-facts/node_modules/shape-facts/package.json @@ -0,0 +1 @@ +{ "name": "shape-facts", "version": "1.0.0", "type": "module", "main": "index.js", "types": "index.d.ts" } diff --git a/tests/fixtures/npm/cases/shape-overlay-facts/package.json b/tests/fixtures/npm/cases/shape-overlay-facts/package.json new file mode 100644 index 000000000..d15818a37 --- /dev/null +++ b/tests/fixtures/npm/cases/shape-overlay-facts/package.json @@ -0,0 +1 @@ +{ "name": "shape-overlay-facts-case", "private": true, "type": "module" } diff --git a/tests/harness/shape-overlay.test.ts b/tests/harness/shape-overlay.test.ts index ad1988238..0eddc391d 100644 --- a/tests/harness/shape-overlay.test.ts +++ b/tests/harness/shape-overlay.test.ts @@ -60,3 +60,33 @@ test("shapeOverlay: false compiles without the overlay", { timeout: 900_000 }, a throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); expect((result.warnings ?? []).some((w) => w.code === "SC6103")).toBe(false); }); + +// shape-facts: results that include the undefined of a fall-through or a bare +// return keep the caller's falsy branch, comment-like text in literals keeps +// its value, and a replaced branch keeps its var declared. +const factsEntry = join(repoRoot, "tests/fixtures/npm/cases/shape-overlay-facts/main.ts"); + +test( + "the overlay keeps undefined results, literal text and hoisted vars", + { timeout: 900_000 }, + async () => { + mkdirSync(outDir, { recursive: true }); + const result = await withOverlay(() => + compile(factsEntry, { outPath: join(outDir, "facts"), outDir, sanitize }), + ); + if (!result.ok) + throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); + const report = (result.warnings ?? []).find((w) => w.code === "SC6103"); + expect(report?.message).toMatch(/of 1 package \(shape-facts\)/); + expect(report?.message).toMatch(/replaces 1 branch it proved unreachable/); + const native = await execFileAsync(result.binaryPath, [], { + cwd: dirname(factsEntry), + encoding: "utf8", + }); + const node = await execFileAsync(process.execPath, [factsEntry], { + cwd: dirname(factsEntry), + encoding: "utf8", + }); + expect(native.stdout).toBe(node.stdout); + }, +); From 468ef7692b0af311dd9d4f3363757f40c83e3c04 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sat, 24 Oct 2026 23:35:56 -0500 Subject: [PATCH 012/128] Drop the refused never-promise instanceof case from the maybe-promise fences instanceof Promise on values that are never promises now compiles to false after the operand is evaluated, so the diagnostics fixture no longer lists it as refused. 8326-never-promise-instanceof covers records, arrays, dates, collections, regular expressions, byte arrays and unions with null, and a call operand that still runs. --- .../8326-never-promise-instanceof.ts.json | 6 +++++ tests/corpus/8326-never-promise-instanceof.ts | 26 +++++++++++++++++++ tests/diagnostics/maybe-promise-fences.ts | 4 --- .../__snapshots__/maybe-promise-fences.ts.txt | 9 +------ .../8326-never-promise-instanceof.ts.json | 1 + 5 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8326-never-promise-instanceof.ts.json create mode 100644 tests/corpus/8326-never-promise-instanceof.ts create mode 100644 tests/harness/corpus-costs/8326-never-promise-instanceof.ts.json diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8326-never-promise-instanceof.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8326-never-promise-instanceof.ts.json new file mode 100644 index 000000000..d10bc2c18 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8326-never-promise-instanceof.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8326-never-promise-instanceof.ts" + ], + "diags": [] +} diff --git a/tests/corpus/8326-never-promise-instanceof.ts b/tests/corpus/8326-never-promise-instanceof.ts new file mode 100644 index 000000000..6e01e3510 --- /dev/null +++ b/tests/corpus/8326-never-promise-instanceof.ts @@ -0,0 +1,26 @@ +// `instanceof Promise` on values that are never promises (records, arrays, +// dates, collections, regular expressions, byte arrays, null, and unions of +// them) is false, after the operand is evaluated. +let evaluated = 0; +function next(): { v: number } { + evaluated++; + return { v: evaluated }; +} + +const record = { v: 1 }; +console.log("record", record instanceof Promise); +console.log("call", next() instanceof Promise, evaluated); +console.log("array", [1, 2] instanceof Promise); +console.log("date", new Date(0) instanceof Promise); +console.log("map", new Map() instanceof Promise); +console.log("set", new Set() instanceof Promise); +console.log("regex", /a/ instanceof Promise); +console.log("bytes", new Uint8Array(2) instanceof Promise); + +function pick(i: number): { v: number } | number[] | null { + return i === 0 ? { v: 0 } : i === 1 ? [i] : null; +} +for (let i = 0; i < 3; i++) console.log("union", i, pick(i) instanceof Promise); + +const promised: unknown = Promise.resolve(1); +console.log("promise", promised instanceof Promise); diff --git a/tests/diagnostics/maybe-promise-fences.ts b/tests/diagnostics/maybe-promise-fences.ts index 1dcccaf08..e6fdf98fa 100644 --- a/tests/diagnostics/maybe-promise-fences.ts +++ b/tests/diagnostics/maybe-promise-fences.ts @@ -26,7 +26,3 @@ console.log(maybe(true)); // must be that arm's own promise type. const widened = Promise.resolve(maybe(false)); console.log(typeof widened); - -// `instanceof Promise` on a value that is never a promise. -const record = { v: 1 }; -console.log(record instanceof Promise); diff --git a/tests/harness/__snapshots__/maybe-promise-fences.ts.txt b/tests/harness/__snapshots__/maybe-promise-fences.ts.txt index 159e88f76..ab325aaaa 100644 --- a/tests/harness/__snapshots__/maybe-promise-fences.ts.txt +++ b/tests/harness/__snapshots__/maybe-promise-fences.ts.txt @@ -48,11 +48,4 @@ maybe-promise-fences.ts:27:50 - error SC2020: 'Promise.resolve over 'Promise Date: Sun, 25 Oct 2026 05:52:34 -0500 Subject: [PATCH 013/128] Match the Promise.all tuple adapter by its key-derived name in the chunked-emission test The adapter is named from its key since the helpers moved to contentSymbol, so the test no longer finds the counter name sc_all_tuple_0. It now matches any sc_all_tuple_ name; the serial and chunked emissions are still compared in full. --- packages/compiler/test/chunked-emission.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/compiler/test/chunked-emission.test.ts b/packages/compiler/test/chunked-emission.test.ts index 6d2b2e06a..703669648 100644 --- a/packages/compiler/test/chunked-emission.test.ts +++ b/packages/compiler/test/chunked-emission.test.ts @@ -95,7 +95,8 @@ test("a Promise.all tuple adapter requested in a range is defined", async () => throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); const ir = await readFile(outPath, "utf8"); const serial = text(emitLlvmModuleSource(deserializeModule(ir), {})); - expect(serial).toContain("define internal void @sc_all_tuple_0("); + // The adapter is named from its key (contentSymbol). + expect(serial).toMatch(/define internal void @sc_all_tuple_\d+\(/); const chunked = text(emitLlvmModuleSource(deserializeModule(ir), { functionChunks: 2 })); expect(chunked === serial).toBe(true); } finally { From 9f2952c7a0f0f6bb3f32feba7136f20eaa20d66b Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 09:06:48 -0500 Subject: [PATCH 014/128] Keep installed libnode pack files inside the build output --- .../src/node-islands/libnode-pack.test.ts | 51 ++++++++++++++++++- .../compiler/src/node-islands/libnode-pack.ts | 17 ++++++- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/packages/compiler/src/node-islands/libnode-pack.test.ts b/packages/compiler/src/node-islands/libnode-pack.test.ts index 108e211f2..06ddcfabd 100644 --- a/packages/compiler/src/node-islands/libnode-pack.test.ts +++ b/packages/compiler/src/node-islands/libnode-pack.test.ts @@ -1,5 +1,13 @@ import { createHash } from "node:crypto"; -import { mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs"; +import { + existsSync, + mkdirSync, + mkdtempSync, + readFileSync, + readdirSync, + rmSync, + writeFileSync, +} from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; @@ -287,3 +295,44 @@ test("the license notices carry Node's LICENSE", () => { ].join("\n"), ); }); + +test("beside refuses an installed pack whose manifest names a file outside it", () => { + const root = temp(); + const name = libnodePackPackage(hostLibnodeTarget()); + if (name === null) return; + const pack = fakePack( + join(root, "node_modules", name), + (m) => { + m["files"] = { ...(m["files"] as object), "../escaped": entry("payload") }; + }, + name, + ); + // The pack's "../escaped" and the file it would replace next to the output. + writeFileSync(join(pack, "..", "escaped"), "payload"); + writeFileSync(join(root, "escaped"), "victim"); + expect(libnodeRecord("beside", join(root, "app"), {}, root)).toBe( + `the libnode pack at ${pack} names a file outside the pack ("../escaped")`, + ); + expect(readFileSync(join(root, "escaped"), "utf8")).toBe("victim"); + expect(existsSync(join(root, "app.libnode"))).toBe(false); +}); + +test("readLibnodePack refuses any listed file or license outside the pack", () => { + for (const edit of [ + (m: Record) => { + m["files"] = { ...(m["files"] as object), "../escaped": entry("payload") }; + }, + (m: Record) => { + m["files"] = { ...(m["files"] as object), "/etc/passwd": entry("payload") }; + }, + (m: Record) => { + m["license"] = "../../secret"; + }, + (m: Record) => { + m["license"] = 7; + }, + ]) { + const pack = fakePack(join(temp(), "pack"), edit); + expect(thrown(() => readLibnodePack(pack)).kind).toBe("invalid"); + } +}); diff --git a/packages/compiler/src/node-islands/libnode-pack.ts b/packages/compiler/src/node-islands/libnode-pack.ts index 4c4599b7b..4de4a2af3 100644 --- a/packages/compiler/src/node-islands/libnode-pack.ts +++ b/packages/compiler/src/node-islands/libnode-pack.ts @@ -99,6 +99,11 @@ export function parseLibnodeSetting(value: unknown): LibnodePlacement | string { return `must be "embedded", "beside" or an absolute directory`; } +/** Whether `name` names a file directly in the pack directory. */ +function packFileName(name: string): boolean { + return name !== "" && name !== "." && name !== ".." && !/[/\\\0]/.test(name) && !isAbsolute(name); +} + function isRecord(value: unknown): value is Record { return value !== null && typeof value === "object" && !Array.isArray(value); } @@ -134,8 +139,18 @@ export function parseLibnodePackManifest(json: unknown, where: string): LibnodeP } const files = json["files"]; if (!isRecord(files)) return invalid("lists no files in manifest.json"); + // Every name the pack lists is a file directly in the pack directory. + const license = json["license"]; + if (license !== undefined && typeof license !== "string") { + return invalid("has a malformed license in manifest.json"); + } + for (const name of [...Object.keys(files), json["license"] ?? "LICENSE"] as string[]) { + if (!packFileName(name)) { + return invalid(`names a file outside the pack (${JSON.stringify(name)})`); + } + } for (const name of [json["libnode"], json["bridge"]] as string[]) { - if (name === "." || name === ".." || /[/\\\0]/.test(name) || isAbsolute(name)) { + if (!packFileName(name)) { return invalid(`names a file outside the pack (${JSON.stringify(name)})`); } if (!isFileEntry(files[name])) return invalid(`lists no size and SHA-256 for ${name}`); From c5131cb958e4331770db8e3b23a6aec1ba733be1 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 13:39:37 -0500 Subject: [PATCH 015/128] Name the byte order mark fixture's directory by its real path The 8211 program resolved a package written to a fresh directory under os.tmpdir() and printed the result relative to that directory. On macOS the temporary directory is a symbolic link (/var to /private/var), so the resolved real path printed relative to the linked name included the random directory suffix, which differs between the Node run and the compiled run. The fixture now names the directory by its real path, and the result is lib/entry.js on every host. --- .../node_modules/resolve-probe/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js index 4be08c224..8d581c90e 100644 --- a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js +++ b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js @@ -1,4 +1,4 @@ -import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; +import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from "node:fs"; import { createRequire } from "node:module"; import { tmpdir } from "node:os"; import { dirname, join, relative } from "node:path"; @@ -43,8 +43,10 @@ const requests = [ // A package whose package.json starts with a byte order mark, written to a // fresh directory and resolved by its absolute path: "main" is still read. +// The directory is named by its real path (the temporary directory is a +// symbolic link on macOS), so the resolved path is relative to it. function resolveWithByteOrderMark() { - const dir = mkdtempSync(join(tmpdir(), "scriptc-bom-")); + const dir = realpathSync(mkdtempSync(join(tmpdir(), "scriptc-bom-"))); try { const pkg = join(dir, "with-bom"); mkdirSync(join(pkg, "lib"), { recursive: true }); From 701173a2aebea76753aca83d6b4b2ae829a88a07 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 13:55:44 -0500 Subject: [PATCH 016/128] Read builtin globals through the global object, and support Node's navigator --- .../limitations/builtin-apis/globals.mdx | 6 +- .../limitations/builtin-function-values.mdx | 1 + .../src/generated/node-v24-compatibility.json | 24 +- .../generated/node-v24-internal.json | 34 ++- internal/compatibility/static-support.json | 4 +- .../compiler/src/backend/llvm/lib-dispatch.ts | 1 + .../compiler/src/backend/llvm/lib-shared.ts | 6 + .../frontend/lowering/builtins/navigator.ts | 32 +- .../lowering/expressions/identifiers.ts | 96 +++--- .../lowering/expressions/property-access.ts | 58 ++-- .../src/frontend/lowering/global-values.ts | 274 +++++++++++++++++ .../src/frontend/lowering/lower-modules.ts | 5 + .../src/frontend/lowering/lower-stmts.ts | 31 +- .../compiler/src/frontend/lowering/lowerer.ts | 18 +- .../compiler/src/ir/builtin-signatures.ts | 9 + .../8161-global-computed-reads.cjs.json | 6 + .../corpus/8162-navigator-global.cjs.json | 6 + .../corpus/8163-data-function-values.cjs.json | 6 + .../corpus/8164-atob-validation.cjs.json | 6 + packages/runtime/src/scr_dyn.h | 13 + packages/runtime/src/scr_dyn_invoke.c | 38 ++- packages/runtime/src/scr_json.c | 106 ++++--- packages/runtime/src/scr_node_builtin.c | 289 ++++++++++++++++++ tests/corpus/8161-global-computed-reads.cjs | 87 ++++++ tests/corpus/8162-navigator-global.cjs | 47 +++ tests/corpus/8163-data-function-values.cjs | 32 ++ tests/corpus/8164-atob-validation.cjs | 35 +++ tests/fixtures/node-types/fenced.ts | 8 +- tests/fixtures/node-types/navigator.ts | 6 +- .../__snapshots__/node-types-fenced.txt | 30 +- .../8161-global-computed-reads.cjs.json | 1 + .../8162-navigator-global.cjs.json | 1 + .../8163-data-function-values.cjs.json | 1 + .../8164-atob-validation.cjs.json | 1 + 34 files changed, 1132 insertions(+), 186 deletions(-) create mode 100644 packages/compiler/src/frontend/lowering/global-values.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8161-global-computed-reads.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8162-navigator-global.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8163-data-function-values.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8164-atob-validation.cjs.json create mode 100644 tests/corpus/8161-global-computed-reads.cjs create mode 100644 tests/corpus/8162-navigator-global.cjs create mode 100644 tests/corpus/8163-data-function-values.cjs create mode 100644 tests/corpus/8164-atob-validation.cjs create mode 100644 tests/harness/corpus-costs/8161-global-computed-reads.cjs.json create mode 100644 tests/harness/corpus-costs/8162-navigator-global.cjs.json create mode 100644 tests/harness/corpus-costs/8163-data-function-values.cjs.json create mode 100644 tests/harness/corpus-costs/8164-atob-validation.cjs.json diff --git a/docs/content/limitations/builtin-apis/globals.mdx b/docs/content/limitations/builtin-apis/globals.mdx index f875bd761..e54530b29 100644 --- a/docs/content/limitations/builtin-apis/globals.mdx +++ b/docs/content/limitations/builtin-apis/globals.mdx @@ -1,4 +1,8 @@ - **Globals:** Stored `globalThis` references support identity and probes for absent capabilities. - Most builtin members require direct global access; access through a stored global object can raise `SC2020`. + In JavaScript, reading a builtin global through the global object by name (`globalThis[name]`, or a stored global object) answers what the global's own spelling reads, and builtin module members that are global objects in Node, such as `require("buffer").atob` and `require("timers").setTimeout`, are the same values. + `WebAssembly` read this way, and builtin members read through a global object that untyped code received, can raise `SC2020`. + `for (key in globalThis)` visits Node's enumerable globals in Node's order, then the program's own global properties. + `navigator` answers Node's `hardwareConcurrency`, `language`, `languages`, `platform`, and `userAgent`, with `language` derived from `LC_ALL`, `LC_MESSAGES`, or `LANG` as Node does. + `navigator.locks` raises `SC2020`, as does `navigator.language` for a locale outside the `language_TERRITORY.codeset@modifier` form, or one whose language or territory needs ICU's tables (a three-letter territory, for example). `Temporal` is not defined, as in Node.js 24: `typeof Temporal` is `"undefined"`, `globalThis.Temporal` is `undefined`, and any other use throws `ReferenceError: Temporal is not defined`. Programs that name it type-check against TypeScript's `Temporal` declarations. diff --git a/docs/content/limitations/builtin-function-values.mdx b/docs/content/limitations/builtin-function-values.mdx index 0fa62e558..24050f35d 100644 --- a/docs/content/limitations/builtin-function-values.mdx +++ b/docs/content/limitations/builtin-function-values.mdx @@ -7,6 +7,7 @@ Some builtins can be stored and passed as functions: In JavaScript, `setTimeout`, `setInterval`, `setImmediate`, `clearTimeout`, `clearInterval`, `clearImmediate`, `queueMicrotask`, and `process.nextTick` are function values wherever they are stored, including conditional and logical expressions and assignments: `typeof` answers `"function"`, identity holds across spellings, and calls schedule as the direct calls do, returning the same numeric timer handles. Calls through these values bypass `node:test` mock timers. +In JavaScript, `atob`, `btoa`, and `structuredClone` are function values the same way, and calls through them run what the direct calls run. Other builtin globals stored in JavaScript remain opaque identity values. In JavaScript, `require("events")` and the `EventEmitter` class assigned to an untyped binding or stored in an object (`ReleaseEmitter = EventEmitter`) are the untyped `EventEmitter` constructor that constructor functions inherit from (see below): `new` through it builds such an emitter object, and identity and `instanceof` agree with the class. A class can extend `require("events")` directly. diff --git a/docs/src/generated/node-v24-compatibility.json b/docs/src/generated/node-v24-compatibility.json index 130da748c..a3dd6f747 100644 --- a/docs/src/generated/node-v24-compatibility.json +++ b/docs/src/generated/node-v24-compatibility.json @@ -36684,9 +36684,9 @@ "inherited": true }, "static": { - "status": "not-implemented", - "detail": "No static compiler lowering is registered for this API yet.", - "verification": "registry-gap" + "status": "supported", + "detail": "Implemented for the documented scriptc module-loader subset.", + "verification": "test-backed" } }, { @@ -36707,9 +36707,9 @@ "inherited": true }, "static": { - "status": "not-implemented", - "detail": "No static compiler lowering is registered for this API yet.", - "verification": "registry-gap" + "status": "partial", + "detail": "Implemented for the documented scriptc module-loader subset.", + "verification": "test-backed" } }, { @@ -36730,9 +36730,9 @@ "inherited": true }, "static": { - "status": "not-implemented", - "detail": "No static compiler lowering is registered for this API yet.", - "verification": "registry-gap" + "status": "partial", + "detail": "Implemented for the documented scriptc module-loader subset.", + "verification": "test-backed" } }, { @@ -36776,9 +36776,9 @@ "inherited": true }, "static": { - "status": "not-implemented", - "detail": "No static compiler lowering is registered for this API yet.", - "verification": "registry-gap" + "status": "supported", + "detail": "Implemented for the documented scriptc module-loader subset.", + "verification": "test-backed" } }, { diff --git a/internal/compatibility/generated/node-v24-internal.json b/internal/compatibility/generated/node-v24-internal.json index c3a0f90b3..fea2ecee7 100644 --- a/internal/compatibility/generated/node-v24-internal.json +++ b/internal/compatibility/generated/node-v24-internal.json @@ -52415,6 +52415,7 @@ "tests/corpus/6331-jose-root-entry/main.ts", "tests/corpus/7743-transform-stream-identity.ts", "tests/corpus/7747-text-codec-untyped-slot.js", + "tests/corpus/8162-navigator-global.cjs", "tests/corpus/text-codec-values/main.ts", "tests/corpus/webassembly-api.mjs", "tests/corpus/webassembly-dylink/main.mjs", @@ -54467,6 +54468,7 @@ "status": "partial", "evidence": "compiler-feature:globals.navigator", "tests": [ + "tests/corpus/8162-navigator-global.cjs", "tests/fixtures/node-types/navigator.ts", "tests/harness/project-config.test.ts", "tests/corpus/6331-jose-root-entry/main.ts" @@ -54492,8 +54494,12 @@ "inherited": true }, "static": { - "status": "not-implemented", - "evidence": "compiler-unmatched:globals" + "status": "supported", + "evidence": "compiler-feature:globals.hardwareConcurrency", + "tests": [ + "tests/corpus/8162-navigator-global.cjs", + "tests/fixtures/node-types/navigator.ts" + ] }, "anchorSource": "ancestor" }, @@ -54515,8 +54521,12 @@ "inherited": true }, "static": { - "status": "not-implemented", - "evidence": "compiler-unmatched:globals" + "status": "partial", + "evidence": "compiler-feature:globals.language", + "tests": [ + "tests/corpus/8162-navigator-global.cjs", + "tests/fixtures/node-types/navigator.ts" + ] }, "anchorSource": "ancestor" }, @@ -54538,8 +54548,12 @@ "inherited": true }, "static": { - "status": "not-implemented", - "evidence": "compiler-unmatched:globals" + "status": "partial", + "evidence": "compiler-feature:globals.languages", + "tests": [ + "tests/corpus/8162-navigator-global.cjs", + "tests/fixtures/node-types/navigator.ts" + ] }, "anchorSource": "ancestor" }, @@ -54584,8 +54598,12 @@ "inherited": true }, "static": { - "status": "not-implemented", - "evidence": "compiler-unmatched:globals" + "status": "supported", + "evidence": "compiler-feature:globals.platform", + "tests": [ + "tests/corpus/8162-navigator-global.cjs", + "tests/fixtures/node-types/navigator.ts" + ] }, "anchorSource": "ancestor" }, diff --git a/internal/compatibility/static-support.json b/internal/compatibility/static-support.json index ab626fe21..160523cc1 100644 --- a/internal/compatibility/static-support.json +++ b/internal/compatibility/static-support.json @@ -215,8 +215,10 @@ { "chapter": "webcrypto", "signatures": ["Class: `CryptoKey`", "`cryptoKey.algorithm`", "`extractable` Type: {boolean}", "`type` Type: {string} One of `'secret'`, `'private'`, or `'public'`.", "`usages` Type: {string\\[]}"], "status": "partial", "evidence": ["tests/corpus/7124-webcrypto-secret-keys.ts", "tests/corpus/6291-webcrypto-hmac-sign-verify.ts", "tests/corpus/6294-webcrypto-js-values.mjs", "tests/corpus/6295-jose-hs256/main.mjs"] }, { "chapter": "webcrypto", "signatures": ["Class: `Crypto`"], "status": "partial", "evidence": ["tests/corpus/7120-webcrypto-random-uuid.ts", "tests/corpus/7121-webcrypto-crypto-object.mjs", "tests/corpus/6293-webcrypto-digest.ts"] }, { "chapter": "webcrypto", "symbols": ["crypto.randomUUID", "crypto.getRandomValues"], "status": "supported", "evidence": ["tests/corpus/7120-webcrypto-random-uuid.ts", "tests/corpus/7121-webcrypto-crypto-object.mjs", "tests/corpus/6204-crypto-get-random-values.ts", "tests/corpus/6205-crypto-get-random-values.js"] }, - { "chapter": "globals", "signatures": ["`navigator`"], "status": "partial", "evidence": ["tests/fixtures/node-types/navigator.ts", "tests/harness/project-config.test.ts", "tests/corpus/6331-jose-root-entry/main.ts"] }, + { "chapter": "globals", "signatures": ["`navigator`"], "status": "partial", "evidence": ["tests/corpus/8162-navigator-global.cjs", "tests/fixtures/node-types/navigator.ts", "tests/harness/project-config.test.ts", "tests/corpus/6331-jose-root-entry/main.ts"] }, { "chapter": "globals", "signatures": ["`userAgent` Type: {string}"], "status": "supported", "evidence": ["tests/fixtures/node-types/navigator.ts", "tests/harness/project-config.test.ts"] }, + { "chapter": "globals", "signatures": ["`hardwareConcurrency` Type: {number}", "`platform` Type: {string}"], "status": "supported", "evidence": ["tests/corpus/8162-navigator-global.cjs", "tests/fixtures/node-types/navigator.ts"] }, + { "chapter": "globals", "signatures": ["`language` Type: {string}", "`languages` Type: {string\\[]}"], "status": "partial", "evidence": ["tests/corpus/8162-navigator-global.cjs", "tests/fixtures/node-types/navigator.ts"] }, { "chapter": "globals", "signatures": ["Class: `CryptoKey`", "Class: `SubtleCrypto`"], "status": "partial", "evidence": ["tests/corpus/6291-webcrypto-hmac-sign-verify.ts", "tests/corpus/6292-webcrypto-hmac-errors.ts", "tests/corpus/6293-webcrypto-digest.ts", "tests/corpus/6294-webcrypto-js-values.mjs", "tests/corpus/6295-jose-hs256/main.mjs"] }, { "chapter": "errors", "parent": "Class: `SystemError`", "symbols": ["code", "errno", "syscall", "path", "dest"], "status": "partial", "evidence": ["tests/corpus/caught-system-error-fields.ts", "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/project-config.test.ts"] }, {"chapter": "events", "symbols": ["EventTarget", "eventTarget.addEventListener", "eventTarget.removeEventListener", "eventTarget.dispatchEvent"], "status": "partial", "evidence": ["tests/corpus/5130-event-target-dispatch.js", "tests/corpus/5131-event-target-listener-errors.js", "tests/corpus/5132-event-target-typed.ts", "tests/corpus/5133-abort-signal-event-target.ts", "tests/corpus/5135-event-target-warnings.js", "tests/corpus/5240-event-target-subclass.ts", "tests/corpus/5242-event-target-subclass-hierarchy.ts", "tests/corpus/5243-event-target-subclass-dynamic.ts", "tests/corpus/5244-event-target-subclass.js", "tests/corpus/5245-event-target-subclass-signals.ts", "tests/corpus/5248-event-target-subclass-warnings.ts"]}, diff --git a/packages/compiler/src/backend/llvm/lib-dispatch.ts b/packages/compiler/src/backend/llvm/lib-dispatch.ts index 4af8182a7..b513e17a6 100644 --- a/packages/compiler/src/backend/llvm/lib-dispatch.ts +++ b/packages/compiler/src/backend/llvm/lib-dispatch.ts @@ -1149,6 +1149,7 @@ export function emitLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlValue { case "punycode": case "constants": case "promise": + case "navigator": return host.emitGenericLibCall(e); case "test": return emitTestLibCall(host, e); diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index 2548b75d5..4afdf8c81 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -255,6 +255,12 @@ export const LIB_FN_SYMS: Record = { "console.table": "scr_console_table", "console.dirDyn": "scr_console_dir_dyn", "global.native": "scr_global_native", + "global.installValues": "scr_global_values_install", + "global.forInObject": "scr_global_for_in_object", + "navigator.object": "scr_navigator_object", + "navigator.language": "scr_navigator_language", + "navigator.languages": "scr_navigator_languages", + "navigator.platform": "scr_navigator_platform", "process.builtinModule": "scr_process_builtin_module", "process.builtinUnsupported": "scr_process_builtin_unsupported", "module.namespaceValue": "scr_module_namespace_value", diff --git a/packages/compiler/src/frontend/lowering/builtins/navigator.ts b/packages/compiler/src/frontend/lowering/builtins/navigator.ts index f90448c1e..f4fbf2567 100644 --- a/packages/compiler/src/frontend/lowering/builtins/navigator.ts +++ b/packages/compiler/src/frontend/lowering/builtins/navigator.ts @@ -1,13 +1,13 @@ -/* Node 24's `navigator` global (lib/internal/navigator.js), the part - * libraries read to tell runtimes apart: `typeof navigator` is "object" - * and `navigator.userAgent` is `Node.js/`. jose reads exactly - * that at module load (jwks/remote.js). Both fold to string literals, so - * nothing links. The other members (hardwareConcurrency, language, - * languages, platform, locks) and the object as a value keep a named +/* Node 24's `navigator` global (lib/internal/navigator.js): `typeof + * navigator` is "object", `navigator.userAgent` is `Node.js/` (both + * fold to string literals; jose reads them at module load), and + * hardwareConcurrency, language, languages and platform read the runtime's + * answers (scr_node_builtin.c). The object as a value is the runtime's + * Navigator handle, whose getters answer the same. `locks` keeps a named * refusal. */ import * as ts from "../../ts7/adapter.js"; import { strLit } from "../../../ir/build.js"; -import type { IrExpr } from "../../../ir/ir.js"; +import { DYN, F64, STRING, type IrExpr, type SrcLoc } from "../../../ir/ir.js"; import { isJsSourceFile, locOf } from "../../program.js"; import type { Lowerer } from "../lowerer.js"; @@ -34,9 +34,18 @@ export function lowerNavigatorMember( nodeVersion: string, ): IrExpr | null { if (!isNavigatorGlobal(lowerer, access.expression)) return null; + const loc = locOf(access); if (access.name.text === "userAgent") { - return strLit(`Node.js/${nodeVersion.split(".")[0]}`, locOf(access)); + return strLit(`Node.js/${nodeVersion.split(".")[0]}`, loc); } + if (access.name.text === "hardwareConcurrency") + return { kind: "libCall", fn: "os.availableParallelism", args: [], type: F64, loc }; + if (access.name.text === "language" || access.name.text === "platform") { + const fn = access.name.text === "language" ? "navigator.language" : "navigator.platform"; + return { kind: "libCall", fn, args: [], type: STRING, loc }; + } + if (access.name.text === "languages") + return { kind: "libCall", fn: "navigator.languages", args: [], type: DYN, loc }; return refuseNavigator( lowerer, access, @@ -55,7 +64,12 @@ export function refuseNavigator( return lowerer.noLowering( what, node, - "of Node's navigator global only typeof navigator and navigator.userAgent compile", + "navigator.locks (the Web Locks API) has no lowering", symbol ?? null, ); } + +/** The navigator object as a value: the runtime's Navigator handle. */ +export function navigatorValue(loc: SrcLoc): IrExpr { + return { kind: "libCall", fn: "navigator.object", args: [], type: DYN, loc }; +} diff --git a/packages/compiler/src/frontend/lowering/expressions/identifiers.ts b/packages/compiler/src/frontend/lowering/expressions/identifiers.ts index 62b2c7960..6541e0788 100644 --- a/packages/compiler/src/frontend/lowering/expressions/identifiers.ts +++ b/packages/compiler/src/frontend/lowering/expressions/identifiers.ts @@ -1,4 +1,5 @@ /* Identifier references in expression position: lowerExprInner's identifier branch and its helpers. */ +import { globalMemberValue } from "../global-values.js"; import { predeclareForwardClass } from "../lower-stmts.js"; import { cjsMemberAliasValueOf } from "../cjs-exports-object.js"; import { builtinClassValue, builtinMemberClassKind } from "../builtins/builtin-class-dyn.js"; @@ -89,7 +90,7 @@ import { unsupportedModuleFeatureOf } from "../../builtin-modules.js"; import { lowerGlobalValue } from "../lower-global-value.js"; import { fenceEnumObjectValue } from "../lower-enums.js"; import { mixinFnOfCallee } from "../lower-mixins.js"; -import { isNavigatorGlobal, refuseNavigator } from "../builtins/navigator.js"; +import { isNavigatorGlobal, navigatorValue } from "../builtins/navigator.js"; import { wasiGuestPath } from "../../../wasi-paths.js"; export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: SrcLoc): IrExpr { @@ -597,6 +598,9 @@ export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: // the same identity-token story as stdlib globals above (the // harness adds worker_threads.Worker to its identity Set). if (isJsSourceFile(ts.getSourceFileOfNode(expr))) { + // A member that is a global object reads as the global does. + const global = globalMemberValue(lowerer, bi, loc); + if (global) return global; // EventEmitter and the stream classes are the runtime's untyped // constructors, so constructor functions can inherit from them. const classKind = builtinMemberClassKind(bi.module, bi.member); @@ -606,12 +610,7 @@ export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: return builtinFunctionFenceValue(lowerer, bi, expr, loc); return { kind: "strLit", - // node:stream/web exports the web stream globals themselves: - // the same identity token as the global spelling. - value: - bi.module === "stream/web" - ? `[builtin ${bi.member}]` - : `[builtin ${bi.module}.${bi.member}]`, + value: `[builtin ${bi.module}.${bi.member}]`, type: STRING, loc, }; @@ -729,43 +728,11 @@ export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: expr.text === "decodeURI") && lowerer.isStdlibGlobal(expr, expr.text) ) { - const name = `%builtin.${expr.text}`; - const type = funcOf([DYN], STRING); - if (!lowerer.liftedFns.some((fn) => fn.name === name)) { - const value: IrExpr = { - kind: "libCall", - fn: "dyn.toStringCoerce", - args: [varRef("value", DYN, loc)], - type: STRING, - loc, - }; - const fn = - expr.text === "encodeURIComponent" - ? "str.encodeUriComponent" - : expr.text === "encodeURI" - ? "str.encodeUri" - : expr.text === "decodeURI" - ? "str.decodeUri" - : "str.decodeUriComponent"; - lowerer.liftedFns.push({ - name, - params: [{ localId: "value", name: "value", type: DYN }], - locals: [{ id: "value", name: "value", type: DYN, mutable: false }], - returnType: STRING, - body: [ - { - kind: "return", - value: { kind: "libCall", fn, args: [value], type: STRING, loc }, - loc, - }, - ], - loc, - }); - } - return { kind: "closure", fnName: name, captures: [], type, loc }; + return uriFunctionValue(lowerer, expr.text, loc); } if (lowerer.isStdlibGlobal(expr, "crypto")) return { kind: "libCall", fn: "webcrypto.object", args: [], type: DYN, loc }; + if (isNavigatorGlobal(lowerer, expr)) return navigatorValue(loc); const nativeAlias = stdlibGlobalNameOf(lowerer, expr); if (nativeAlias === "Buffer" && expr.text !== "Buffer") { // An alias through a cast of globalThis carries the cast's static type, @@ -1024,14 +991,6 @@ export function lowerIdentifierExpr(lowerer: Lowerer, expr: ts.Identifier, loc: const ns = lowerNsIdentifierValue(lowerer, expr); if (ns) return ns; } - if (isNavigatorGlobal(lowerer, expr)) { - refuseNavigator( - lowerer, - expr, - "the navigator object as a value", - lowerer.checker.getSymbolAtLocation(expr), - ); - } // An import of a CommonJS member export whose value is a binding of the // exporting module (`module.exports = Client; module.exports.StatsD = // Client`): the member holds that binding's value. @@ -1167,3 +1126,42 @@ function cjsExportAccessorRead(lowerer: Lowerer, ident: ts.Identifier): IrExpr | } return cjsAccessorCall(lowerer, getter, locOf(ident)); } + +/** encodeURIComponent, encodeURI, decodeURI or decodeURIComponent as a + * function value: one interned closure per function. */ +export function uriFunctionValue(lowerer: Lowerer, which: string, loc: SrcLoc): IrExpr { + const name = `%builtin.${which}`; + const type = funcOf([DYN], STRING); + if (!lowerer.liftedFns.some((fn) => fn.name === name)) { + const value: IrExpr = { + kind: "libCall", + fn: "dyn.toStringCoerce", + args: [varRef("value", DYN, loc)], + type: STRING, + loc, + }; + const fn = + which === "encodeURIComponent" + ? "str.encodeUriComponent" + : which === "encodeURI" + ? "str.encodeUri" + : which === "decodeURI" + ? "str.decodeUri" + : "str.decodeUriComponent"; + lowerer.liftedFns.push({ + name, + params: [{ localId: "value", name: "value", type: DYN }], + locals: [{ id: "value", name: "value", type: DYN, mutable: false }], + returnType: STRING, + body: [ + { + kind: "return", + value: { kind: "libCall", fn, args: [value], type: STRING, loc }, + loc, + }, + ], + loc, + }); + } + return { kind: "closure", fnName: name, captures: [], type, loc }; +} diff --git a/packages/compiler/src/frontend/lowering/expressions/property-access.ts b/packages/compiler/src/frontend/lowering/expressions/property-access.ts index 35bb16cd3..92fb2b2cd 100644 --- a/packages/compiler/src/frontend/lowering/expressions/property-access.ts +++ b/packages/compiler/src/frontend/lowering/expressions/property-access.ts @@ -1,4 +1,5 @@ /* Property reads (`a.b`): lowerExprInner's property-access branch, intrinsic and union properties, field reads and targets, and match-group reads. */ +import { jsSpecialGlobalValue } from "../global-values.js"; import { indexedUnionArms, lowerIndexedUnionMember } from "../indexed-unions.js"; import { keyedHelperName } from "../stable-names.js"; import { builtinNamespaceValue } from "../builtin-namespaces.js"; @@ -35,7 +36,6 @@ import { } from "../../type-mapper.js"; import { BOOL, - BYTES_ELEMENT_NAME, BYTES_U8, DYN, F64, @@ -60,7 +60,7 @@ import { unionContainerArmsOk, BYTES_ELEMENT_SIZE, } from "../../../ir/ir.js"; -import { lowerNavigatorMember } from "../builtins/navigator.js"; +import { lowerNavigatorMember, navigatorValue } from "../builtins/navigator.js"; import { lowerX509PublicKey } from "../builtins/x509.js"; import { NODE_COMPAT_VERSION } from "../builtins/process.js"; import { @@ -593,7 +593,10 @@ export function lowerPropertyAccessExpr( // (`(_a = globalThis).__config ?? (_a.__config = {})`) reads back from // the global object's own properties. const globalType = lowerer.typeOf(staticallySelected(lowerer, expr.expression)); - if (globalThisWrittenNames(lowerer, globalType).has(expr.name.text)) { + if ( + globalThisWrittenNames(lowerer, globalType).has(expr.name.text) || + lowerer.globalThisComputedWrite + ) { return { kind: "dynKeyGet", value: lowerer.coerceToExpected(lowerer.lowerExpr(expr.expression), DYN), @@ -602,6 +605,10 @@ export function lowerPropertyAccessExpr( loc, }; } + // Node's navigator, which JavaScript reads as a free name when no + // declaration types it (isNavigatorGlobal). + if (expr.name.text === "navigator" && isJsSourceFile(ts.getSourceFileOfNode(expr))) + return navigatorValue(loc); return dynUndefinedExpr(loc); } // `Uint8Array.prototype.toBase64` and its siblings, the base64/hex @@ -975,18 +982,8 @@ export function lowerPropertyAccessExpr( if (canonical === "globalThis") return lowerGlobalValue(lowerer, expr); // Typed for the programs that name it, absent in Node 24. if (canonical === TEMPORAL_GLOBAL) return dynUndefinedExpr(loc); - if (canonical === "ArrayBuffer") - return { kind: "libCall", fn: "arrayBuffer.constructor", args: [], type: DYN, loc }; - if (canonical === "fetch") - return { kind: "libCall", fn: "fetch.function", args: [], type: DYN, loc }; - if (Object.values(BYTES_ELEMENT_NAME).includes(canonical)) - return { - kind: "libCall", - fn: "bytes.constructor", - args: [{ kind: "strLit", value: canonical, type: STRING, loc }], - type: DYN, - loc, - }; + const value = jsSpecialGlobalValue(lowerer, canonical, loc); + if (value) return value; return ( builtinGlobalValueAt(lowerer, expr, canonical, loc, true) ?? { kind: "strLit", @@ -4259,9 +4256,13 @@ const GLOBAL_CONSTRUCTOR_VALUES: ReadonlySet = new Set([ /** The builtin global functions JavaScript sources read as interned * function values (the `cond ? setImmediate : process.nextTick` feature - * probe of bcryptjs and async libraries): typeof answers "function", - * identity holds across spellings, and calls run the timer APIs. */ + * probe of bcryptjs and async libraries, and the known globals Node's test + * harness collects): typeof answers "function", identity holds across + * spellings, and calls run what the direct calls run. */ const GLOBAL_FUNCTION_VALUES: ReadonlySet = new Set([ + "atob", + "btoa", + "structuredClone", "setTimeout", "setInterval", "setImmediate", @@ -4639,11 +4640,24 @@ function globalThisWrittenNames(lowerer: Lowerer, globalType: ts.Type): Set { + if ( + (ts.isElementAccessExpression(node) || ts.isForInStatement(node)) && + stdlibGlobalNameOf(lowerer, node.expression) === "globalThis" && + (ts.isForInStatement(node) || readsBuiltinByName(lowerer, node)) + ) { + found = node.expression; + return "stop"; + } + return undefined; + }); + lowerer.computedGlobalReads.set(sf, found); + return found; +} + +/** Whether the element access `node` of the global object can read a + * builtin global by name: its key is not a symbol (`globalThis[key]` with + * `key = Symbol.for(...)` reads the global object's symbol properties), + * and it is neither the target of `=` nor the operand of `delete`. */ +function readsBuiltinByName(lowerer: Lowerer, node: ts.ElementAccessExpression): boolean { + if (lowerer.typeOf(node.argumentExpression).flags & ts.TypeFlags.ESSymbolLike) return false; + let outer: ts.Node = node; + while (ts.isParenthesizedExpression(outer.parent)) outer = outer.parent; + const parent = outer.parent; + if (ts.isDeleteExpression(parent)) return false; + return !( + ts.isBinaryExpression(parent) && + parent.left === outer && + parent.operatorToken.kind === ts.SyntaxKind.EqualsToken + ); +} + +/** The value a JavaScript source reads for the declared global `name` + * taken as a value, whatever its spelling (`name`, `globalThis.name`, + * `const { name } = globalThis`, `globalThis[name]`), or null when it + * reads the opaque identity token. */ +export function jsGlobalValueByName(lowerer: Lowerer, name: string, loc: SrcLoc): IrExpr | null { + return ( + jsSpecialGlobalValue(lowerer, name, loc) ?? + builtinNamespaceValue(lowerer, name, loc) ?? + builtinGlobalValue(name, loc, true) + ); +} + +/** jsGlobalValueByName for the globals other than the interned builtin + * functions and constructors (builtinGlobalValue). */ +export function jsSpecialGlobalValue(lowerer: Lowerer, name: string, loc: SrcLoc): IrExpr | null { + if (name === "String" || name === "Number" || name === "Boolean" || name === "BigInt") + return primitiveCtorClosure(lowerer, name, loc, true); + if (name === "ArrayBuffer") + return { kind: "libCall", fn: "arrayBuffer.constructor", args: [], type: DYN, loc }; + if (name === "Array") + return { kind: "libCall", fn: "dyn.arrayConstructor", args: [], type: DYN, loc }; + if ((Object.values(BYTES_ELEMENT_NAME) as string[]).includes(name)) + return { + kind: "libCall", + fn: "bytes.constructor", + args: [{ kind: "strLit", value: name, type: STRING, loc }], + type: DYN, + loc, + }; + if (URI_FUNCTIONS.has(name)) return uriFunctionValue(lowerer, name, loc); + if (name === "crypto") + return { kind: "libCall", fn: "webcrypto.object", args: [], type: DYN, loc }; + if (name === "navigator") return navigatorValue(loc); + if (name === "Buffer") + return { kind: "libCall", fn: "buffer.constructor", args: [], type: DYN, loc }; + if (name === "fetch") return { kind: "libCall", fn: "fetch.function", args: [], type: DYN, loc }; + if (name === "console") + return { kind: "libCall", fn: "console.native", args: [], type: DYN, loc }; + return null; +} + +const URI_FUNCTIONS = new Set([ + "encodeURIComponent", + "encodeURI", + "decodeURI", + "decodeURIComponent", +]); + +/** The statement that installs the program's lookup, built on first use + * from the names the checker declares on `receiver` (a global object). */ +export function globalValuesInstall( + lowerer: Lowerer, + receiver: ts.Expression, + loc: SrcLoc, +): IrStmt { + const fnType: IrType & { kind: "func" } = { kind: "func", params: [STRING], ret: DYN }; + if (!lowerer.liftedFnNamed(LOOKUP_FN)) { + const names = lowerer.checker + .getPropertiesOfType(lowerer.typeOf(receiver)) + .map((property) => ts.symbolName(property)) + .filter((name) => name !== TEMPORAL_GLOBAL && !RUNTIME_ANSWERED.has(name)); + const name: IrExpr = { kind: "varRef", localId: "name.0", type: STRING, loc }; + const body: IrStmt[] = []; + for (const global of [...new Set(names)].sort()) { + const value: IrExpr | null = REFUSED.has(global) + ? { kind: "unitLit", unit: "null", type: { kind: "nullT" }, loc } + : jsGlobalValueByName(lowerer, global, loc); + if (value === null) continue; + body.push({ + kind: "if", + cond: { + kind: "strEq", + negated: false, + left: name, + right: { kind: "strLit", value: global, type: STRING, loc }, + type: { kind: "bool" }, + loc, + }, + then: [{ kind: "return", value: lowerer.coerceToExpected(value, DYN), loc }], + else_: null, + loc, + }); + } + body.push({ + kind: "return", + value: lowerer.coerceToExpected( + { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc }, + DYN, + ), + loc, + }); + lowerer.liftedFns.push({ + name: LOOKUP_FN, + params: [{ localId: "name.0", name: "name", type: STRING }], + returnType: DYN, + locals: [{ id: "name.0", name: "name", type: STRING, mutable: false }], + body, + loc, + }); + } + const lookup = lowerer.coerceToExpected( + { kind: "closure", fnName: LOOKUP_FN, captures: [], type: fnType, loc }, + DYN, + ); + return { + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "global.installValues", + args: [lookup], + type: { kind: "void" }, + loc, + }, + loc, + }; +} + +/** Builtin module members that are the global objects of the same name in + * Node 24 (`require("buffer").atob === globalThis.atob`). */ +const GLOBAL_MEMBERS: Readonly>> = { + buffer: new Set(["atob", "btoa", "Blob", "File", "Buffer"]), + timers: new Set([ + "setTimeout", + "setInterval", + "setImmediate", + "clearTimeout", + "clearInterval", + "clearImmediate", + ]), + perf_hooks: new Set([ + "performance", + "PerformanceEntry", + "PerformanceMark", + "PerformanceMeasure", + "PerformanceObserver", + "PerformanceObserverEntryList", + "PerformanceResourceTiming", + ]), + util: new Set(["TextEncoder", "TextDecoder"]), + url: new Set(["URL", "URLSearchParams"]), + worker_threads: new Set(["BroadcastChannel", "MessageChannel", "MessagePort"]), + "stream/web": new Set([ + "ReadableStream", + "ReadableStreamDefaultReader", + "ReadableStreamBYOBReader", + "ReadableStreamBYOBRequest", + "ReadableByteStreamController", + "ReadableStreamDefaultController", + "TransformStream", + "TransformStreamDefaultController", + "WritableStream", + "WritableStreamDefaultWriter", + "WritableStreamDefaultController", + "ByteLengthQueuingStrategy", + "CountQueuingStrategy", + "TextEncoderStream", + "TextDecoderStream", + "CompressionStream", + "DecompressionStream", + ]), +}; + +/** In a JavaScript source, the value of a builtin module member that is a + * global object (GLOBAL_MEMBERS): what the global's own spelling reads, + * so identity holds across the spellings. Null for other members. */ +export function globalMemberValue( + lowerer: Lowerer, + bi: { module: string; member: string }, + loc: SrcLoc, +): IrExpr | null { + if (!GLOBAL_MEMBERS[bi.module]?.has(bi.member)) return null; + return ( + jsGlobalValueByName(lowerer, bi.member, loc) ?? { + kind: "strLit", + value: `[builtin ${bi.member}]`, + type: STRING, + loc, + } + ); +} diff --git a/packages/compiler/src/frontend/lowering/lower-modules.ts b/packages/compiler/src/frontend/lowering/lower-modules.ts index 4fe908ab4..06fc16080 100644 --- a/packages/compiler/src/frontend/lowering/lower-modules.ts +++ b/packages/compiler/src/frontend/lowering/lower-modules.ts @@ -1,3 +1,4 @@ +import { computedGlobalReadOf, globalValuesInstall } from "./global-values.js"; import { THREADS_MODULE } from "../threads-import.js"; import { positionTag } from "./structural-positions.js"; import { EXPERIMENTAL_MODULE } from "../experimental-import.js"; @@ -3022,6 +3023,10 @@ export function lowerFileInit( }); } if (sf === lowerer.entry) header.push(...lowerer.punycodeLinkWarning()); + // A module that reads builtin globals through the global object by + // computed names installs the program's lookup before its body runs. + const computedGlobalRead = computedGlobalReadOf(lowerer, sf); + if (computedGlobalRead) header.push(globalValuesInstall(lowerer, computedGlobalRead, loc0)); // Top-level `this` of a CommonJS module: its object exists before the // module's first statement (lowerCjsTopLevelThis). const exportsThis = lowerer.cjsExportsThis.get(sf); diff --git a/packages/compiler/src/frontend/lowering/lower-stmts.ts b/packages/compiler/src/frontend/lowering/lower-stmts.ts index d6d8c1cc7..6024849a6 100644 --- a/packages/compiler/src/frontend/lowering/lower-stmts.ts +++ b/packages/compiler/src/frontend/lowering/lower-stmts.ts @@ -1,3 +1,4 @@ +import { jsGlobalValueByName } from "./global-values.js"; import { lowerTupleAliasDecl, stripTypeWrappers } from "./typed-arguments.js"; import { allBytesArms, @@ -33,7 +34,6 @@ import { InternalCompilerError } from "../../errors.js"; * explicit resource management, and blocked-binding poisoning. */ import * as ts from "../ts7/adapter.js"; import { lowerOptionalIndex } from "./undefined-index.js"; -import { builtinNamespaceValue } from "./builtin-namespaces.js"; import { processDataMemberValue, programReadsExitCode } from "./builtins/process.js"; import { requireInitFlagStmt } from "./require-initialization.js"; import { isJsonRequireDecl } from "./json-require.js"; @@ -238,7 +238,6 @@ import { globalSymbolKey } from "./expressions/global-symbols.js"; import { identifiersNamed } from "./identifier-uses.js"; import { lowerShortCircuitAssignment } from "./expressions/nullish-assignment.js"; import { - builtinGlobalValue, jsHoldsDynObject, lowerEnvironmentKey, lowerNativeFunctionAssignment, @@ -4326,14 +4325,9 @@ function stdlibGlobalTokenDestructure( const canonical = ts.symbolName(member) === "global" ? "globalThis" : ts.symbolName(member); token = `[builtin ${canonical}]`; alias = canonical; - // Builtin constructors read as their interned function values, and - // crypto as the WebCrypto object: the same values the bare and - // `globalThis.X` spellings read. - value = - canonical === "crypto" - ? { kind: "libCall", fn: "webcrypto.object", args: [], type: DYN, loc: locOf(el) } - : (builtinNamespaceValue(lowerer, canonical, locOf(el)) ?? - builtinGlobalValue(canonical, locOf(el), true)); + // The values the bare and `globalThis.X` spellings read + // (jsGlobalValueByName). + value = jsGlobalValueByName(lowerer, canonical, locOf(el)); } else if (globalName === "console" && !CONSOLE_CALL_MEMBERS.has(propName)) { token = `[builtin console.${propName}]`; } else if (TOKEN_OPAQUE_GLOBALS.has(globalName)) { @@ -12223,11 +12217,8 @@ function lowerForOfString( * own-keys snapshot, verified against Node) while each visit re-checks * presence (i < live length), so pops during the body skip exactly * like Node. Sparse arrays cannot exist here (hole creation traps). - * - globalThis: the harness's leaked-globals sweep — a compiled binary's - * global bindings are compile-time names, never enumerable runtime - * properties, so the enumeration is honestly EMPTY (zero iterations; - * the body typechecked but never evaluates — SEMANTICS.md documents - * the divergence). + * - globalThis: Node 24's enumerable globals in Node's order, then the + * program's own global properties, as keys of a fresh object. * - JavaScript program classes use their live property-creation table. * TypeScript and runtime-owned layouts keep the class-instance fence. * Bindings mirror for-of's: const/let declare the per-iteration string @@ -12237,10 +12228,12 @@ function lowerForOfString( function lowerForIn(lowerer: Lowerer, stmt: ts.ForInStatement): IrStmt { const labels = lowerer.takeLabels(); const loc = locOf(stmt); - if (stdlibGlobalNameOf(lowerer, stmt.expression) === "globalThis") { - return { kind: "block", body: [], loc }; - } - let receiver = lowerer.lowerExpr(stmt.expression); + // The global object visits Node's enumerable globals, then the + // program's own global properties (scr_global_for_in_object). + let receiver: IrExpr = + stdlibGlobalNameOf(lowerer, stmt.expression) === "globalThis" + ? { kind: "libCall", fn: "global.forInObject", args: [], type: DYN, loc } + : lowerer.lowerExpr(stmt.expression); if (receiver.type.kind === "object") { const info = lowerer.classes.get(receiver.type.className); let root = info; diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index ee7477e43..66e78ec02 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -1,3 +1,4 @@ +import { globalMemberValue } from "./global-values.js"; import { isDeclBoundaryFile } from "../decl-projection.js"; import { relieveHeapPressure } from "../../heap-pressure.js"; import { moduleNamespaceObject, moduleNamespaceValue } from "./module-namespace-elements.js"; @@ -3105,6 +3106,9 @@ export class Lowerer { /** The property names the program assigns on the global object * (property-access.ts), collected on first use. */ globalThisWrittenNames: Set | null = null; + /** Set with globalThisWrittenNames: the program writes the global object + * by a computed name somewhere. */ + globalThisComputedWrite = false; /** Well-known symbol methods (`sym:iterator`) the program may replace * through a symbol-keyed write: an instance or prototype property, or a * reflection call. */ @@ -3339,6 +3343,9 @@ export class Lowerer { * values other than fresh literals (noteUntypedIntegrity). */ untypedIntegrity = false; readonly liftedFns: IrFunction[] = []; + /** global-values.ts's answer per JavaScript source: the receiver of its + * first read of the global object by a computed name, or null. */ + readonly computedGlobalReads = new Map(); /** The first lifted function of each name (liftedFnNamed), for the * liftedFns indexed so far. liftedFns only grows. */ private readonly liftedFnsByName = new Map(); @@ -14151,11 +14158,12 @@ export class Lowerer { if (bi.module === "crypto" && bi.member === "webcrypto") { return { kind: "libCall", fn: "webcrypto.object", args: [], type: DYN, loc }; } - // node:stream/web's exports are the web stream globals themselves: in - // JavaScript sources the same identity token as the global spelling - // (`require("stream/web").ReadableStream === globalThis.ReadableStream`). - if (bi.module === "stream/web" && isJsSourceFile(ts.getSourceFileOfNode(expr))) { - return { kind: "strLit", value: `[builtin ${bi.member}]`, type: STRING, loc }; + // Members that are global objects (`require("stream/web").ReadableStream + // === globalThis.ReadableStream`) read in JavaScript sources as their + // global spelling does. + if (isJsSourceFile(ts.getSourceFileOfNode(expr))) { + const global = globalMemberValue(this, bi, loc); + if (global) return global; } // A bare `fs.constants` read (not one of the baked bits above). if (bi.member === "constants" && bi.module === "fs") return fsConstantsObject(loc); diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index 576386851..0d3d5c1ac 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -3691,6 +3691,15 @@ function buildLibFnSignatures() { "console.dirDyn": { argTypes: [DYN, F64], result: STRING }, /** A native reference to the global object; known names retain value fences. */ "global.native": { argTypes: [arrayOf(STRING)], result: DYN }, + /** Installs the program's builtin-global lookup (global-values.ts). */ + "global.installValues": { argTypes: [DYN], result: VOID }, + /** The keys `for (key in globalThis)` visits, as a fresh object. */ + "global.forInObject": { argTypes: [], result: DYN }, + /** Node's navigator global (scr_node_builtin.c). */ + "navigator.object": { argTypes: [], result: DYN }, + "navigator.language": { argTypes: [], result: STRING }, + "navigator.languages": { argTypes: [], result: DYN }, + "navigator.platform": { argTypes: [], result: STRING }, // `X.name` through a class value: the arg is a program-dependent // classval (a null slot; the libCall case checks the kind). /** `X.name` through a class VALUE (scr_object.c): args[0] is a borrowed diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8161-global-computed-reads.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8161-global-computed-reads.cjs.json new file mode 100644 index 000000000..7124f14a8 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8161-global-computed-reads.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8161-global-computed-reads.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8162-navigator-global.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8162-navigator-global.cjs.json new file mode 100644 index 000000000..2fd2d279e --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8162-navigator-global.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8162-navigator-global.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8163-data-function-values.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8163-data-function-values.cjs.json new file mode 100644 index 000000000..f76f88160 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8163-data-function-values.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8163-data-function-values.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8164-atob-validation.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8164-atob-validation.cjs.json new file mode 100644 index 000000000..6081b76dd --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8164-atob-validation.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8164-atob-validation.cjs" + ], + "diags": [] +} diff --git a/packages/runtime/src/scr_dyn.h b/packages/runtime/src/scr_dyn.h index 656f2b994..899c7f0ca 100644 --- a/packages/runtime/src/scr_dyn.h +++ b/packages/runtime/src/scr_dyn.h @@ -187,6 +187,7 @@ typedef enum { X(MESSAGE_EVENT, 50) /* ScrEvent with data — BroadcastChannel's 'message' */ \ X(MESSAGE_PORT, 36) \ X(MODULE_NAMESPACE, 79) /* module namespace object read through its exports (scr_module_namespace.c) */ \ + X(NAVIGATOR, 81) /* Node's navigator global (scr_node_builtin.c) */ \ X(NET_BLOCK_LIST, 48) /* net.BlockList (scr_net.c) */ \ X(NET_SERVER, 3) /* ScrNetServer — net.Server (http.Server rides the same handle) */ \ X(NET_SOCKET, 2) /* ScrNetSocket — net.Socket */ \ @@ -1288,6 +1289,18 @@ void scr_dyn_obj_delete_symbol_field(ScrDyn *obj, ScrDyn *symbol); * object answers it; its symbol-keyed properties are the global object's * (scr_node_builtin.c). */ ScrDyn *scr_global_object(void); +/* The program's builtin-global lookup, a dyn function (borrowed); the first + * installation stands. */ +void scr_global_values_install(ScrDyn *lookup); +/* An object whose keys are what `for (key in globalThis)` visits (+1). */ +ScrDyn *scr_global_for_in_object(void); +/* Node's navigator global (+1, one box per thread) and its members: + * navigator.language (+1), navigator.languages (+1, one frozen array per + * thread) and navigator.platform (+1). */ +ScrDyn *scr_navigator_object(void); +ScrStr *scr_navigator_language(void); +ScrDyn *scr_navigator_languages(void); +ScrStr *scr_navigator_platform(void); ScrDyn *scr_dyn_global_symbol_get(ScrSym *key); /* borrowed key; +1 value */ void scr_dyn_global_symbol_set(ScrSym *key, ScrDyn *value); /* both borrowed */ bool scr_dyn_global_symbol_has(ScrSym *key); diff --git a/packages/runtime/src/scr_dyn_invoke.c b/packages/runtime/src/scr_dyn_invoke.c index 2fd3aa406..99d5ebad3 100644 --- a/packages/runtime/src/scr_dyn_invoke.c +++ b/packages/runtime/src/scr_dyn_invoke.c @@ -1971,6 +1971,12 @@ static const char dyn_s32[] SCR_DYN_COMPAT_STR = ""; static const char dyn_s33[] SCR_DYN_COMPAT_STR = "constructing %s%s through a stored value is not supported yet"; static const char dyn_s34[] SCR_DYN_COMPAT_STR = " from a primitive"; static const char dyn_s35[] SCR_DYN_COMPAT_STR = "FinalizationRegistry"; +static const char dyn_s36[] SCR_DYN_COMPAT_STR = "atob"; +static const char dyn_s37[] SCR_DYN_COMPAT_STR = "btoa"; +static const char dyn_s38[] SCR_DYN_COMPAT_STR = "structuredClone"; +static const char dyn_s39[] SCR_DYN_COMPAT_STR = "The \"input\" argument must be specified"; +static const char dyn_s40[] SCR_DYN_COMPAT_STR = "The \"The value argument must be specified\" argument must be specified"; +static const char dyn_s41[] SCR_DYN_COMPAT_STR = "ERR_MISSING_ARGS"; static const char *const dyn_global_ctor_names[] = { dyn_s26, dyn_s29, dyn_s25, dyn_s30, dyn_s31, dyn_s21, dyn_s22, dyn_s24, dyn_s35, @@ -2236,7 +2242,36 @@ static ScrClosure *dyn_builtin_fn_deferred(ScrDyn *const *args, size_t argc, siz #endif +/* atob, btoa and structuredClone as values: the calls the direct + * spellings make, with Node's error for a missing argument. NULL with the + * exception pending, or the result (+1); `*handled` reports whether `name` + * is one of them. */ +static ScrDyn *dyn_builtin_data_fn_call(const ScrStr *name, ScrDyn *const *args, size_t argc, bool *handled) { + bool atob = strcmp(name->data, dyn_s36) == 0, btoa = strcmp(name->data, dyn_s37) == 0; + bool clone = strcmp(name->data, dyn_s38) == 0; + *handled = atob || btoa || clone; + if (!*handled) return NULL; + if (argc == 0) { + const char *message = clone ? dyn_s40 : dyn_s39; + scr_throw_error_msg_code(SCR_ERR_TYPE, message, strlen(message), dyn_s41); + return NULL; + } + if (clone) return scr_structured_clone(args[0], argc > 1 ? args[1] : scr_dyn_undefined()); + ScrStr *text = atob ? scr_atob(args[0]) : scr_btoa(args[0]); + if (!text) return NULL; + ScrDyn *result = scr_dyn_new_str(text); /* retains */ + scr_str_release(text); + return result; +} + static ScrDyn *dyn_builtin_fn_call(ScrClosure *clo, ScrDyn *const *args, size_t argc) { + { + ScrStr *name = scr_box_get_ref(clo->caps[0]); + bool handled; + ScrDyn *result = dyn_builtin_data_fn_call(name, args, argc, &handled); + scr_str_release(name); + if (handled) return result; + } #ifdef SCR_LIB (void)clo; (void)args; @@ -2295,7 +2330,8 @@ ScrDyn *scr_dyn_builtin_function(const ScrStr *name) { closure->caps[0] = scr_box_new(SCR_BOX_STR); scr_box_set_ref(closure->caps[0], scr_str_retain((ScrStr *)name)); const char *dot = memchr(name->data, '.', name->len); - bool two = strcmp(name->data, dyn_s16) == 0 || strcmp(name->data, dyn_s15) == 0; + bool two = strcmp(name->data, dyn_s16) == 0 || strcmp(name->data, dyn_s15) == 0 || + strcmp(name->data, dyn_s38) == 0; value = scr_dyn_new_func(closure, dyn_builtin_fn_call, two ? 2 : 1, dyn_s10, dot ? dot + 1 : name->data); scr_dyn_obj_set(dyn_builtin_fns, name->data, name->len, value); /* the table owns it */ } diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index cd9eeecde..f2da26331 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -16723,9 +16723,10 @@ ScrError *scr_domex_clone(ScrError *e, const ScrDyn *options) { * They live HERE (not scr_string.c) because the argument is a dyn value: * WebIDL ToString runs over the dyn kind (Node's atob(null) decodes the * string "null"), and the string unit must stay linkable without the - * dyn. atob is forgiving-base64 exactly — ASCII whitespace stripped, a - * %4==0 input sheds up to two trailing '=', %4==1 refuses, leftover - * bits discard — decoding to the latin1 code points as a UTF-8 string; + * dyn. atob checks its input as Node's lib/buffer.js does (an invalid + * character or a misplaced '=' is "Invalid character", a length the + * forgiving-base64 rules refuse "not correctly encoded"), then decodes + * with leftover bits discarded to the latin1 code points as a UTF-8 string; * btoa refuses any code point over U+00FF. Malformed input throws the * catchable DOMException InvalidCharacterError with Node's exact * message. */ @@ -16741,61 +16742,70 @@ static int scr_b64_val(unsigned char c) { ScrStr *scr_atob(const ScrDyn *data) { ScrStr *s = scr_dyn_string_coerce(data); - /* Strip ASCII whitespace (the forgiving step). */ - char *buf = malloc(s->len ? s->len : 1); - if (!buf) scr_json_oom(); - size_t n = 0; + /* Node's checks (lib/buffer.js): only ASCII whitespace and the base64 + * alphabet with '=' are allowed, '=' only at the end and at most twice; + * the count of the other characters decides the rest. One pass checks + * the input and keeps the 6-bit value of each alphabet character. */ + unsigned char *values = malloc(s->len ? s->len : 1); + if (!values) scr_json_oom(); + size_t n = 0, equals = 0; + const char *message = NULL; for (size_t i = 0; i < s->len; i++) { unsigned char c = (unsigned char)s->data[i]; if (c == 0x09 || c == 0x0a || c == 0x0c || c == 0x0d || c == 0x20) continue; - buf[n++] = (char)c; + if (c == '=') { + if (++equals > 2) { + message = "Invalid character"; + break; + } + continue; + } + int v = scr_b64_val(c); + if (v < 0 || equals) { + message = "Invalid character"; + break; + } + values[n++] = (unsigned char)v; + } + if (!message) { + size_t remainder = (n + equals) % 4; + if (!remainder) remainder = n % 4; + else if (equals) message = "Invalid character"; + if (!message && remainder == 1) message = "The string to be decoded is not correctly encoded."; } scr_str_release(s); - /* A %4==0 input sheds one or two trailing '='. */ - if (n % 4 == 0 && n > 0) { - if (buf[n - 1] == '=') n--; - if (n > 0 && buf[n - 1] == '=') n--; + if (message) { + free(values); + scr_throw_domex("InvalidCharacterError", message); + return NULL; } - if (n % 4 == 1) goto invalid; /* Decode 6-bit groups; latin1 code points expand to UTF-8 (bytes over - * 0x7F become two-byte sequences). */ - { - size_t outBytes = (n / 4) * 3 + (n % 4 == 2 ? 1 : n % 4 == 3 ? 2 : 0); - char *out = malloc(outBytes * 2 ? outBytes * 2 : 1); - if (!out) scr_json_oom(); - size_t w = 0; - unsigned acc = 0; - int bits = 0; - for (size_t i = 0; i < n; i++) { - int v = scr_b64_val((unsigned char)buf[i]); - if (v < 0) { - free(out); - goto invalid; - } - acc = (acc << 6) | (unsigned)v; - bits += 6; - if (bits >= 8) { - bits -= 8; - unsigned char b = (unsigned char)((acc >> bits) & 0xff); - if (b < 0x80) { - out[w++] = (char)b; - } else { - out[w++] = (char)(0xc0 | (b >> 6)); - out[w++] = (char)(0x80 | (b & 0x3f)); - } + * 0x7F become two-byte sequences). Leftover bits discard + * (forgiving-base64's final step). */ + size_t outBytes = (n / 4) * 3 + (n % 4 == 2 ? 1 : n % 4 == 3 ? 2 : 0); + char *out = malloc(outBytes * 2 ? outBytes * 2 : 1); + if (!out) scr_json_oom(); + size_t w = 0; + unsigned acc = 0; + int bits = 0; + for (size_t i = 0; i < n; i++) { + acc = (acc << 6) | values[i]; + bits += 6; + if (bits >= 8) { + bits -= 8; + unsigned char b = (unsigned char)((acc >> bits) & 0xff); + if (b < 0x80) { + out[w++] = (char)b; + } else { + out[w++] = (char)(0xc0 | (b >> 6)); + out[w++] = (char)(0x80 | (b & 0x3f)); } } - /* Leftover bits discard (forgiving-base64's final step). */ - free(buf); - ScrStr *result = scr_str_new(out, w); - free(out); - return result; } -invalid: - free(buf); - scr_throw_domex("InvalidCharacterError", - "The string to be decoded is not correctly encoded."); - return NULL; + free(values); + ScrStr *result = scr_str_new(out, w); + free(out); + return result; } ScrStr *scr_btoa(const ScrDyn *data) { diff --git a/packages/runtime/src/scr_node_builtin.c b/packages/runtime/src/scr_node_builtin.c index c0031e67b..8604134e7 100644 --- a/packages/runtime/src/scr_node_builtin.c +++ b/packages/runtime/src/scr_node_builtin.c @@ -97,6 +97,10 @@ static SCR_TL const ScrArr *scr_global_registered; static SCR_TL bool scr_global_cleanup_registered; static SCR_TL ScrDyn *(*scr_global_console_get)(void); static SCR_TL ScrDyn *(*scr_global_fetch_get)(void); +/* The program's builtin-global lookup (scr_global_values_install), or + * NULL: a dyn function from a name to the value its static spelling reads, + * undefined for the opaque identity token, or null for a name without one. */ +static SCR_TL ScrDyn *scr_global_values; void scr_global_fetch_install(ScrDyn *(*get)(void)) { scr_global_fetch_get = get; } @@ -200,6 +204,13 @@ static void scr_global_cleanup(void) { static void *scr_global_retain(void *handle) { return handle; } static void scr_global_release(void *handle) { (void)handle; } +/* A dyn string holding `s` (+1); takes over the caller's reference. */ +static ScrDyn *scr_global_take_str(ScrStr *s) { + ScrDyn *value = scr_dyn_new_str(s); + scr_str_release(s); + return value; +} + static ScrDyn *scr_global_get(void *handle, const char *key, size_t length) { (void)handle; ScrDyn *own = scr_global_own ? scr_dyn_obj_get(scr_global_own, key, length) : NULL; @@ -210,10 +221,29 @@ static ScrDyn *scr_global_get(void *handle, const char *key, size_t length) { if (length == 7 && memcmp(key, "console", length) == 0 && scr_global_console_get) return scr_global_console_get(); if (length == 5 && memcmp(key, "fetch", length) == 0 && scr_global_fetch_get) return scr_global_fetch_get(); + if (length == 9 && memcmp(key, "navigator", length) == 0) return scr_navigator_object(); if (length == 9 && memcmp(key, "undefined", length) == 0) return scr_dyn_undefined(); if (length == 3 && memcmp(key, "NaN", length) == 0) return scr_dyn_new_num(NAN); if (length == 8 && memcmp(key, "Infinity", length) == 0) return scr_dyn_new_num(INFINITY); if (!scr_dyn_obj_get(scr_global_known, key, length)) return scr_dyn_undefined(); + if (scr_global_values) { + ScrDyn *name = scr_global_take_str(scr_str_new(key, length)); + ScrDyn *value = scr_global_values->v.fn.thunk(scr_global_values->v.fn.clo, &name, 1); + scr_dyn_release(name); + if (!value) return NULL; + if (value->kind == SCR_DYN_UNDEF) { + /* The opaque identity token a JavaScript source reads for the name. */ + scr_dyn_release(value); + ScrJsonBuf token; + scr_jb_init(&token); + scr_jb_puts(&token, "[builtin "); + for (size_t i = 0; i < length; i++) scr_jb_putc(&token, key[i]); + scr_jb_putc(&token, ']'); + return scr_global_take_str(scr_jb_finish(&token)); + } + if (value->kind != SCR_DYN_NULL) return value; + scr_dyn_release(value); + } ScrJsonBuf text; scr_jb_init(&text); scr_jb_puts(&text, "reading globalThis."); @@ -250,6 +280,47 @@ ScrDyn *scr_global_object(void) { return scr_global_box; } +/* Installs the program's builtin-global lookup (borrowed): reads of + * builtin names through the global object answer what their static + * spellings read. The first installation stands; modules that read the + * global object by computed names each install the same function. */ +static void scr_global_values_cleanup(void) { + if (scr_global_values) scr_dyn_release(scr_global_values); + scr_global_values = NULL; +} + +void scr_global_values_install(ScrDyn *lookup) { + if (scr_global_values || lookup->kind != SCR_DYN_FUNC) return; + scr_global_values = scr_dyn_retain(lookup); + scr_atexit(scr_global_values_cleanup); +} + +/* What `for (key in globalThis)` visits (+1): Node 24's enumerable global + * properties in its order, then the program's own global properties in + * creation order, as keys of a fresh object. */ +ScrDyn *scr_global_for_in_object(void) { + static const char *const node_names[] = { + "global", "clearImmediate", "setImmediate", "clearInterval", "clearTimeout", + "setInterval", "setTimeout", "queueMicrotask", "structuredClone", "atob", + "btoa", "performance", "fetch", "crypto", "navigator", + }; + ScrDyn *object = scr_dyn_new_obj(); + for (size_t i = 0; i < sizeof node_names / sizeof node_names[0]; i++) + scr_dyn_obj_set(object, node_names[i], strlen(node_names[i]), scr_dyn_undefined()); + if (scr_global_own) { + ScrDyn *keys = scr_dyn_obj_keys(scr_global_own); + double count = scr_dyn_arr_len(keys); + for (double i = 0; i < count; i++) { + ScrDyn *key = scr_dyn_arr_at(keys, i); + if (key->kind == SCR_DYN_STR && !scr_dyn_obj_get(object, key->v.str->data, key->v.str->len)) + scr_dyn_obj_set(object, key->v.str->data, key->v.str->len, scr_dyn_undefined()); + scr_dyn_release(key); + } + scr_dyn_release(keys); + } + return object; +} + ScrDyn *scr_global_native_init(ScrArr *known, ScrDyn *(*console_get)(void)) { /* The compiler passes one immortal name table per program: once it is * registered, later reads of the global object only take a reference. */ @@ -388,3 +459,221 @@ ScrDyn *scr_process_builtin_unsupported(ScrStr *id, ScrStr *member) { scr_str_release(message); return NULL; } + +/* ── Node's navigator global (lib/internal/navigator.js) ───────────────── + * hardwareConcurrency is os.availableParallelism(), language the default + * locale as Node's ICU answers it from the environment, languages a frozen + * one-element array of it, platform Node's name for the process platform + * and architecture, and userAgent `Node.js/`. locks has no lowering. + * The members are getters on Navigator.prototype, so the object owns no + * properties: Object.keys answers [] and JSON.stringify `{}`. */ + +static SCR_TL ScrDyn *scr_navigator_box; +static SCR_TL ScrDyn *scr_navigator_langs; +static SCR_TL ScrStr *scr_navigator_lang; + +static void scr_navigator_refuse(const char *what) { + ScrJsonBuf text; + scr_jb_init(&text); + scr_jb_puts(&text, "'"); + scr_jb_puts(&text, what); + scr_jb_puts(&text, "' is part of the standard library types but has no scriptc lowering yet [SC2020]"); + ScrStr *message = scr_jb_finish(&text); + scr_throw_error_msg_code(SCR_ERR_ERROR, message->data, message->len, "SC2020"); + scr_str_release(message); +} + +static bool scr_navigator_alpha(char c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } +static bool scr_navigator_digit(char c) { return c >= '0' && c <= '9'; } +static char scr_navigator_lower(char c) { return c >= 'A' && c <= 'Z' ? (char)(c + 32) : c; } +static char scr_navigator_upper(char c) { return c >= 'a' && c <= 'z' ? (char)(c - 32) : c; } + +/* The BCP 47 tag of the POSIX locale ID `id`, as ICU derives the default + * locale: `language[_TERRITORY][.codeset][@modifier]`, the codeset + * dropped, the C and POSIX locales and en_US_POSIX as en-US, the ISO 639 + * codes ICU replaces, and the modifier as a variant (5 to 8 characters) or + * an lvariant private-use subtag (1 to 4). NULL for an ID outside that + * grammar, whose tag needs ICU's tables. */ +static ScrStr *scr_navigator_tag(const char *id) { + if (!id) return scr_str_new("en-US", 5); + const char *end = id + strlen(id); + const char *at = strchr(id, '@'); + const char *dot = strchr(id, '.'); + const char *base_end = dot && (!at || dot < at) ? dot : at ? at : end; + const char *modifier = at ? at + 1 : NULL; + size_t base_len = (size_t)(base_end - id); + if (base_len == 0 && !modifier) return scr_str_new("und", 3); + if ((base_len == 1 && id[0] == 'C') || (base_len == 5 && memcmp(id, "POSIX", 5) == 0)) { + if (modifier) return NULL; + return scr_str_new("en-US", 5); + } + const char *underscore = memchr(id, '_', base_len); + size_t lang_len = underscore ? (size_t)(underscore - id) : base_len; + const char *region = underscore ? underscore + 1 : NULL; + size_t region_len = region ? (size_t)(base_end - region) : 0; + if (region && memchr(region, '_', region_len)) { + /* en_US_POSIX is ICU's name for the C locale. */ + if (lang_len == 2 && scr_navigator_lower(id[0]) == 'e' && scr_navigator_lower(id[1]) == 'n' && + region_len == 8 && scr_navigator_upper(region[0]) == 'U' && scr_navigator_upper(region[1]) == 'S' && + region[2] == '_') { + bool posix = true; + for (size_t i = 0; i < 5; i++) posix = posix && scr_navigator_upper(region[3 + i]) == "POSIX"[i]; + if (posix && !modifier) return scr_str_new("en-US", 5); + } + return NULL; + } + for (size_t i = 0; i < lang_len; i++) + if (!scr_navigator_alpha(id[i])) return NULL; + if (lang_len == 1 || lang_len == 4 || lang_len > 8) return NULL; + ScrJsonBuf tag; + scr_jb_init(&tag); + char lang[9] = {0}; + for (size_t i = 0; i < lang_len; i++) lang[i] = scr_navigator_lower(id[i]); + static const char *const replaced[][2] = { + {"in", "id"}, {"iw", "he"}, {"ji", "yi"}, {"jw", "jv"}, {"mo", "ro"}, + }; + const char *language = lang_len == 0 ? "und" : lang; + for (size_t i = 0; i < sizeof replaced / sizeof replaced[0]; i++) + if (!strcmp(lang, replaced[i][0])) language = replaced[i][1]; + scr_jb_puts(&tag, language); + if (region_len > 0) { + bool alpha2 = region_len == 2 && scr_navigator_alpha(region[0]) && scr_navigator_alpha(region[1]); + bool digits3 = region_len == 3 && scr_navigator_digit(region[0]) && scr_navigator_digit(region[1]) && + scr_navigator_digit(region[2]); + if (!alpha2 && !digits3) { + scr_str_release(scr_jb_finish(&tag)); + return NULL; + } + scr_jb_putc(&tag, '-'); + for (size_t i = 0; i < region_len; i++) scr_jb_putc(&tag, scr_navigator_upper(region[i])); + } + if (modifier && *modifier) { + size_t length = (size_t)(end - modifier); + bool alnum = length <= 8; + for (size_t i = 0; i < length && alnum; i++) + alnum = scr_navigator_alpha(modifier[i]) || scr_navigator_digit(modifier[i]); + if (!alnum || (length == 7 && !memcmp(modifier, "nynorsk", 7))) { + scr_str_release(scr_jb_finish(&tag)); + return NULL; + } + scr_jb_puts(&tag, length >= 5 ? "-" : "-x-lvariant-"); + for (size_t i = 0; i < length; i++) scr_jb_putc(&tag, scr_navigator_lower(modifier[i])); + } + return scr_jb_finish(&tag); +} + +ScrStr *scr_navigator_language(void) { + if (!scr_navigator_lang) { + /* ICU reads LC_ALL, then LC_MESSAGES, then LANG; a variable that is + * set, even to the empty string, decides. */ + const char *id = getenv("LC_ALL"); + if (!id) id = getenv("LC_MESSAGES"); + if (!id) id = getenv("LANG"); + ScrStr *tag = scr_navigator_tag(id); + if (!tag) { + scr_navigator_refuse("navigator.language for this locale"); + return NULL; + } + scr_navigator_lang = tag; + } + return scr_str_retain(scr_navigator_lang); +} + +ScrDyn *scr_navigator_languages(void) { + if (!scr_navigator_langs) { + ScrStr *language = scr_navigator_language(); + if (!language) return NULL; + ScrDyn *languages = scr_dyn_new_arr(); + scr_dyn_arr_push(languages, scr_global_take_str(language)); + scr_dyn_release(scr_dyn_freeze_data(languages)); + scr_navigator_langs = languages; + } + return scr_dyn_retain(scr_navigator_langs); +} + +ScrStr *scr_navigator_platform(void) { + ScrStr *platform = scr_process_platform(); + ScrStr *arch = scr_process_arch(); + const char *p = platform->data, *a = arch->data; + ScrJsonBuf text; + scr_jb_init(&text); + bool ia32 = !strcmp(a, "ia32"), x64 = !strcmp(a, "x64"); + if (!strcmp(p, "darwin")) scr_jb_puts(&text, "MacIntel"); + else if (!strcmp(p, "win32")) scr_jb_puts(&text, "Win32"); + else if (!strcmp(p, "linux")) { + scr_jb_puts(&text, ia32 ? "Linux i686" : x64 ? "Linux x86_64" : "Linux "); + if (!ia32 && !x64) scr_jb_puts(&text, a); + } else if (!strcmp(p, "freebsd") || !strcmp(p, "openbsd")) { + scr_jb_puts(&text, p[0] == 'f' ? "FreeBSD " : "OpenBSD "); + scr_jb_puts(&text, ia32 ? "i386" : x64 ? "amd64" : a); + } else if (!strcmp(p, "sunos")) { + scr_jb_puts(&text, "SunOS "); + scr_jb_puts(&text, ia32 ? "i86pc" : a); + } else if (!strcmp(p, "aix")) scr_jb_puts(&text, "AIX"); + else { + scr_jb_putc(&text, scr_navigator_upper(p[0])); + if (p[0]) scr_jb_puts(&text, p + 1); + scr_jb_putc(&text, ' '); + scr_jb_puts(&text, a); + } + scr_str_release(platform); + scr_str_release(arch); + return scr_jb_finish(&text); +} + +static ScrDyn *scr_navigator_get(void *handle, const char *key, size_t length) { + (void)handle; + if (length == 19 && !memcmp(key, "hardwareConcurrency", length)) + return scr_dyn_new_num(scr_os_available_parallelism()); + if (length == 8 && !memcmp(key, "language", length)) { + ScrStr *language = scr_navigator_language(); + return language ? scr_global_take_str(language) : NULL; + } + if (length == 9 && !memcmp(key, "languages", length)) return scr_navigator_languages(); + if (length == 8 && !memcmp(key, "platform", length)) return scr_global_take_str(scr_navigator_platform()); + if (length == 9 && !memcmp(key, "userAgent", length)) { + ScrStr *version = scr_process_versions_node(); + const char *dot = memchr(version->data, '.', version->len); + size_t major = dot ? (size_t)(dot - version->data) : version->len; + ScrJsonBuf text; + scr_jb_init(&text); + scr_jb_puts(&text, "Node.js/"); + for (size_t i = 0; i < major; i++) scr_jb_putc(&text, version->data[i]); + scr_str_release(version); + return scr_global_take_str(scr_jb_finish(&text)); + } + if (length == 5 && !memcmp(key, "locks", length)) { + scr_navigator_refuse("navigator.locks"); + return NULL; + } + return NULL; +} + +static ScrDyn *scr_navigator_inspect_view(void *handle) { + (void)handle; + return scr_dyn_new_obj(); +} + +static void scr_navigator_cleanup(void) { + if (scr_navigator_box) scr_dyn_release(scr_navigator_box); + if (scr_navigator_langs) scr_dyn_release(scr_navigator_langs); + if (scr_navigator_lang) scr_str_release(scr_navigator_lang); + scr_navigator_box = NULL; + scr_navigator_langs = NULL; + scr_navigator_lang = NULL; +} + +ScrDyn *scr_navigator_object(void) { + static const ScrDynHandleOps ops = { + .cls = "Navigator", .retain = scr_global_retain, .release = scr_global_release, + .get = scr_navigator_get, .inspect_view = scr_navigator_inspect_view, + .json_empty_object = true, .inspect_view_empty = true, + }; + if (!scr_navigator_box) { + scr_dyn_handle_install(SCR_DYNH_NAVIGATOR, &ops); + static SCR_TL char token; + scr_navigator_box = scr_dyn_new_handle(&token, SCR_DYNH_NAVIGATOR); + scr_atexit(scr_navigator_cleanup); + } + return scr_dyn_retain(scr_navigator_box); +} diff --git a/tests/corpus/8161-global-computed-reads.cjs b/tests/corpus/8161-global-computed-reads.cjs new file mode 100644 index 000000000..ff5883154 --- /dev/null +++ b/tests/corpus/8161-global-computed-reads.cjs @@ -0,0 +1,87 @@ +// @no-node-shims +// Builtin globals read through the global object by computed names, and +// builtin module members that are global objects: each answers what the +// global's own spelling reads, so identity holds across the spellings. +// for-in over the global object visits Node's enumerable globals first and +// the program's own global properties after them. +"use strict"; +const { atob: bufferAtob, btoa: bufferBtoa } = require("buffer"); +const timers = require("timers"); +const { performance: perf } = require("perf_hooks"); +const util = require("util"); +const url = require("url"); +const { MessageChannel } = require("worker_threads"); +const web = require("stream/web"); + +const names = [ + "setTimeout", + "setInterval", + "setImmediate", + "clearTimeout", + "clearInterval", + "clearImmediate", + "queueMicrotask", + "global", + "globalThis", + "fetch", + "Map", + "Object", + "Promise", + "Buffer", + "crypto", +]; +for (const name of names) { + const value = globalThis[name]; + console.log(name, typeof value, value === globalThis[name]); +} +console.log( + globalThis["setTimeout"] === setTimeout, + globalThis["Map"] === Map, + globalThis["crypto"] === crypto, + globalThis["Buffer"] === Buffer, +); +console.log(timers.setTimeout === setTimeout, timers.clearInterval === globalThis["clearInterval"]); +console.log( + bufferAtob === atob, + bufferBtoa === globalThis["btoa"], + perf === performance, + util.TextEncoder === TextEncoder, + url.URL === URL, + MessageChannel === globalThis["MessageChannel"], + web.ReadableStream === ReadableStream, +); +console.log(globalThis["noSuchGlobal"], typeof globalThis["Temporal"]); +const pick = (name) => globalThis[name]; +console.log(pick("Math") === Math, pick("JSON") === JSON, pick("Reflect") === Reflect, pick("Math").max(1, 3)); + +const before = []; +for (const key in globalThis) before.push(key); +globalThis.ownA = 1; +globalThis["own" + "B"] = { b: 2 }; +const after = []; +for (const key in globalThis) after.push(key); +console.log(after.length - before.length, after.slice(-2).join(",")); +console.log(before.slice(0, 9).join(",")); +console.log(globalThis.ownA, globalThis.ownB.b, globalThis["ownB"] === globalThis.ownB); + +// The harness's leak check: every enumerated global is a known value. +const known = new Set([ + global, + clearImmediate, + setImmediate, + clearInterval, + clearTimeout, + setInterval, + setTimeout, + queueMicrotask, + structuredClone, + bufferAtob, + bufferBtoa, + performance, + fetch, + crypto, + globalThis.ownA, + globalThis.ownB, +]); +const leaked = after.filter((key) => key !== "navigator" && !known.has(globalThis[key])); +console.log("leaked", leaked.length); diff --git a/tests/corpus/8162-navigator-global.cjs b/tests/corpus/8162-navigator-global.cjs new file mode 100644 index 000000000..3944d6efd --- /dev/null +++ b/tests/corpus/8162-navigator-global.cjs @@ -0,0 +1,47 @@ +// @no-node-shims +// Node 24's navigator global: its members are getters on +// Navigator.prototype answering the process's values, and the object +// itself owns no properties. It is one of the global object's enumerable +// properties. +"use strict"; +const os = require("os"); +const util = require("util"); + +console.log(typeof navigator, navigator.userAgent); +console.log(navigator.hardwareConcurrency === os.availableParallelism()); +console.log(typeof navigator.language, navigator.language.length > 0); +console.log(navigator.languages.length, navigator.languages[0] === navigator.language); +console.log(navigator.languages === navigator.languages, Object.isFrozen(navigator.languages)); +const platforms = { + linux: { x64: "Linux x86_64", arm64: "Linux arm64" }, + darwin: { x64: "MacIntel", arm64: "MacIntel" }, +}; +console.log(navigator.platform === platforms[process.platform]?.[process.arch]); + +const value = navigator; +console.log(value === navigator, value === globalThis.navigator, value === globalThis["navigator"]); +console.log(value.userAgent, value.platform === navigator.platform, value.missing); +console.log(Object.keys(value), JSON.stringify(value), util.inspect(value)); +console.log(String(value), Object.prototype.toString.call(value)); + +const keys = []; +for (const key in globalThis) keys.push(key); +console.log(keys.join(",")); +const known = new Set([ + global, + clearImmediate, + setImmediate, + clearInterval, + clearTimeout, + setInterval, + setTimeout, + queueMicrotask, + structuredClone, + atob, + btoa, + performance, + fetch, + crypto, + navigator, +]); +console.log("leaked", keys.filter((key) => !known.has(globalThis[key])).length); diff --git a/tests/corpus/8163-data-function-values.cjs b/tests/corpus/8163-data-function-values.cjs new file mode 100644 index 000000000..d752f8405 --- /dev/null +++ b/tests/corpus/8163-data-function-values.cjs @@ -0,0 +1,32 @@ +// atob, btoa and structuredClone as JavaScript values: function values +// whose calls run what the direct calls run, the same value through every +// spelling. +"use strict"; +const buffer = require("buffer"); + +const fns = [atob, btoa, structuredClone]; +for (const fn of fns) console.log(typeof fn, fn.name, fn.length); +console.log(buffer.atob === atob, buffer.btoa === globalThis.btoa, globalThis["structuredClone"] === structuredClone); + +const pick = (name) => ({ atob, btoa, structuredClone })[name]; +const encode = pick("btoa"); +const decode = pick("atob"); +console.log(encode("scriptc"), decode(encode("scriptc")), decode("aGk=")); +const clone = pick("structuredClone"); +const original = { list: [1, { deep: true }], text: "t" }; +const copy = clone(original); +console.log(copy !== original, copy.list[1].deep, copy.list !== original.list, copy.text); + +const report = (label, run) => { + try { + console.log(label, run()); + } catch (error) { + console.log(label, error.name, error.code, error.message); + } +}; +report("atob()", () => decode()); +report("btoa()", () => encode()); +report("structuredClone()", () => clone()); +report("atob invalid", () => decode("a")); +report("btoa wide", () => encode("Ā")); +report("clone symbol", () => clone(Symbol("s"))); diff --git a/tests/corpus/8164-atob-validation.cjs b/tests/corpus/8164-atob-validation.cjs new file mode 100644 index 000000000..89d46e3b1 --- /dev/null +++ b/tests/corpus/8164-atob-validation.cjs @@ -0,0 +1,35 @@ +// atob checks its input as Node does: only ASCII whitespace and the base64 +// alphabet are allowed, '=' only at the end and at most twice, and a +// length the forgiving-base64 rules refuse is a different error. +"use strict"; +const inputs = [ + "@@@", + "a", + "ab", + "ab=", + "ab==", + "ab=c", + "abc==", + "a===", + "ab===", + " Y W J j ", + "YQ", + "Y Q = =", + "YWJjZA==", + "YWJjZA=", + "\tYW\nJj\fZA\r==", + "é", + "YW-J", + "", +]; +const decode = (label, input) => { + try { + console.log(label, JSON.stringify(atob(input))); + } catch (error) { + console.log(label, error.name, error.code, error.message); + } +}; +for (const input of inputs) decode(JSON.stringify(input), input); +decode("null", null); +decode("undefined", undefined); +decode("12", 12); diff --git a/tests/fixtures/node-types/fenced.ts b/tests/fixtures/node-types/fenced.ts index 0d90e8cac..d94c7c19a 100644 --- a/tests/fixtures/node-types/fenced.ts +++ b/tests/fixtures/node-types/fenced.ts @@ -108,8 +108,8 @@ async function publicKeyWithWebCrypto(key: import("node:crypto").webcrypto.Crypt await crypto.subtle.getPublicKey(key, ["verify"]); } void publicKeyWithWebCrypto; -/* Node's navigator global: typeof navigator and navigator.userAgent - * compile; the other members fence by name. */ -const cores = navigator.hardwareConcurrency; -void cores; +/* Node's navigator global: navigator.locks (the Web Locks API) fences + * by name. */ +const locks = navigator.locks; +void locks; // End of the declared-but-not-lowered surface. diff --git a/tests/fixtures/node-types/navigator.ts b/tests/fixtures/node-types/navigator.ts index 2f1ee2d9f..901f0e290 100644 --- a/tests/fixtures/node-types/navigator.ts +++ b/tests/fixtures/node-types/navigator.ts @@ -1,6 +1,10 @@ /* Node 24's navigator global under @types/node: the runtime probe - * libraries use (jose's user-agent check) folds to Node's values. */ + * libraries use (jose's user-agent check) folds to Node's values, and the + * other members read the process's values. */ const browser = !navigator.userAgent.startsWith("Mozilla/5.0 "); console.log(typeof navigator, navigator.userAgent, browser); console.log(typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers"); console.log(navigator.userAgent.split("/")[0], navigator.userAgent.length); +console.log(navigator.hardwareConcurrency > 0, Number.isInteger(navigator.hardwareConcurrency)); +console.log(typeof navigator.language, navigator.languages.length, navigator.languages[0] === navigator.language); +console.log(navigator.platform.length > 0, navigator.languages === navigator.languages); diff --git a/tests/harness/__snapshots__/node-types-fenced.txt b/tests/harness/__snapshots__/node-types-fenced.txt index 32eb08fba..a7618fa58 100644 --- a/tests/harness/__snapshots__/node-types-fenced.txt +++ b/tests/harness/__snapshots__/node-types-fenced.txt @@ -232,11 +232,29 @@ fenced.ts:108:9 - error SC2020: 'crypto.subtle.getPublicKey' is part of the stan hint: the native WebCrypto surface is crypto.subtle's importKey, generateKey and exportKey for HMAC and AES keys (importKey also for PBKDF2 and HKDF keys), encrypt and decrypt with AES-GCM, AES-CBC or AES-CTR, wrapKey and unwrapKey of secret keys with AES-KW or those ciphers, deriveBits and deriveKey with PBKDF2 or HKDF, sign and verify with HMAC, generateKey, importKey, exportKey, sign and verify for ECDSA, Ed25519, RSASSA-PKCS1-v1_5 and RSA-PSS, and digest with SHA-1, SHA-256, SHA-384 or SHA-512, each called directly on crypto.subtle -fenced.ts:113:15 - error SC2020: 'navigator.hardwareConcurrency' is typed by @types/node but has no scriptc lowering yet +fenced.ts:113:7 - error SC2020: 'LockManager' is typed by @types/node but has no scriptc lowering yet - 112 | * compile; the other members fence by name. */ - 113 | const cores = navigator.hardwareConcurrency; - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 114 | void cores; + 112 | * by name. */ + 113 | const locks = navigator.locks; + | ^~~~~ + 114 | void locks; - hint: of Node's navigator global only typeof navigator and navigator.userAgent compile \ No newline at end of file + hint: the type checker sees everything @types/node declares, but only the supported surface compiles (https://scriptc.dev/limitations) + +fenced.ts:113:15 - error SC2020: 'navigator.locks' is typed by @types/node but has no scriptc lowering yet + + 112 | * by name. */ + 113 | const locks = navigator.locks; + | ^~~~~~~~~~~~~~~ + 114 | void locks; + + hint: navigator.locks (the Web Locks API) has no lowering + +fenced.ts:114:6 - error SC2004: uses of 'locks' inherit the blocker on its declaration + + 113 | const locks = navigator.locks; + 114 | void locks; + | ^~~~~ + 115 | // End of the declared-but-not-lowered surface. + + hint: the declaration of 'locks' did not compile — fix the diagnostic reported there and these sites clear with it \ No newline at end of file diff --git a/tests/harness/corpus-costs/8161-global-computed-reads.cjs.json b/tests/harness/corpus-costs/8161-global-computed-reads.cjs.json new file mode 100644 index 000000000..24129b327 --- /dev/null +++ b/tests/harness/corpus-costs/8161-global-computed-reads.cjs.json @@ -0,0 +1 @@ +{ "plain": 3708, "san": 12618 } diff --git a/tests/harness/corpus-costs/8162-navigator-global.cjs.json b/tests/harness/corpus-costs/8162-navigator-global.cjs.json new file mode 100644 index 000000000..433a92b5d --- /dev/null +++ b/tests/harness/corpus-costs/8162-navigator-global.cjs.json @@ -0,0 +1 @@ +{ "plain": 3686, "san": 6899 } diff --git a/tests/harness/corpus-costs/8163-data-function-values.cjs.json b/tests/harness/corpus-costs/8163-data-function-values.cjs.json new file mode 100644 index 000000000..5c1fdff5e --- /dev/null +++ b/tests/harness/corpus-costs/8163-data-function-values.cjs.json @@ -0,0 +1 @@ +{ "plain": 3362, "san": 7680 } diff --git a/tests/harness/corpus-costs/8164-atob-validation.cjs.json b/tests/harness/corpus-costs/8164-atob-validation.cjs.json new file mode 100644 index 000000000..5fd135960 --- /dev/null +++ b/tests/harness/corpus-costs/8164-atob-validation.cjs.json @@ -0,0 +1 @@ +{ "plain": 3065, "san": 4575 } From da616a27cd64135bf76401162630d0817a8df1b4 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 14:57:45 -0500 Subject: [PATCH 017/128] Install the global lookup for function-local snapshots, and release navigator values read alone A computed read through a snapshot of the global object taken in a function (`const g = globalThis; return g[name];`) threw SC2020 for builtin globals: the scan that decides whether a module installs the builtin-global lookup runs before function bodies are lowered, when the snapshot's alias is not registered yet. The scan now also recognizes a variable whose only declaration initializes it with the global object. navigator.language and navigator.languages cache their answers, but only taking the navigator object registered their release at exit, so a program that read just those members left them live and a sanitized build exited with status 99. The first cached value now registers the release. Corpus 8161 reads through a function-local snapshot, and 8168 reads navigator.language, navigator.languages and navigator.platform without the navigator object. --- .../src/frontend/lowering/global-values.ts | 23 ++++++++++++++++++- .../8168-navigator-language-values.cjs.json | 6 +++++ packages/runtime/src/scr_node_builtin.c | 17 +++++++++++++- tests/corpus/8161-global-computed-reads.cjs | 11 +++++++++ .../corpus/8168-navigator-language-values.cjs | 8 +++++++ .../8168-navigator-language-values.cjs.json | 1 + 6 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8168-navigator-language-values.cjs.json create mode 100644 tests/corpus/8168-navigator-language-values.cjs create mode 100644 tests/harness/corpus-costs/8168-navigator-language-values.cjs.json diff --git a/packages/compiler/src/frontend/lowering/global-values.ts b/packages/compiler/src/frontend/lowering/global-values.ts index 44e8639f4..264c99337 100644 --- a/packages/compiler/src/frontend/lowering/global-values.ts +++ b/packages/compiler/src/frontend/lowering/global-values.ts @@ -63,7 +63,7 @@ export function computedGlobalReadOf(lowerer: Lowerer, sf: ts.SourceFile): ts.Ex ts.walkPreorder(sf, (node) => { if ( (ts.isElementAccessExpression(node) || ts.isForInStatement(node)) && - stdlibGlobalNameOf(lowerer, node.expression) === "globalThis" && + isGlobalObjectRead(lowerer, node.expression) && (ts.isForInStatement(node) || readsBuiltinByName(lowerer, node)) ) { found = node.expression; @@ -75,6 +75,27 @@ export function computedGlobalReadOf(lowerer: Lowerer, sf: ts.SourceFile): ts.Ex return found; } +/** Whether `expr` reads the global object: a spelling of it, or a variable + * whose only declaration initializes it with one (`const g = globalThis`). + * The scan runs before function bodies are lowered, so the alias of a + * variable declared in a function is not registered yet. */ +function isGlobalObjectRead(lowerer: Lowerer, expr: ts.Expression): boolean { + if (stdlibGlobalNameOf(lowerer, expr) === "globalThis") return true; + let inner = expr; + while (ts.isParenthesizedExpression(inner)) inner = inner.expression; + if (!ts.isIdentifier(inner)) return false; + const declarations = lowerer.checker.getSymbolAtLocation(inner)?.declarations ?? []; + const declaration = declarations[0]; + return ( + declarations.length === 1 && + declaration !== undefined && + ts.isVariableDeclaration(declaration) && + ts.isIdentifier(declaration.name) && + declaration.initializer !== undefined && + stdlibGlobalNameOf(lowerer, declaration.initializer) === "globalThis" + ); +} + /** Whether the element access `node` of the global object can read a * builtin global by name: its key is not a symbol (`globalThis[key]` with * `key = Symbol.for(...)` reads the global object's symbol properties), diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8168-navigator-language-values.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8168-navigator-language-values.cjs.json new file mode 100644 index 000000000..616b0a1b4 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8168-navigator-language-values.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8168-navigator-language-values.cjs" + ], + "diags": [] +} diff --git a/packages/runtime/src/scr_node_builtin.c b/packages/runtime/src/scr_node_builtin.c index 8604134e7..37efa8822 100644 --- a/packages/runtime/src/scr_node_builtin.c +++ b/packages/runtime/src/scr_node_builtin.c @@ -471,6 +471,18 @@ ScrDyn *scr_process_builtin_unsupported(ScrStr *id, ScrStr *member) { static SCR_TL ScrDyn *scr_navigator_box; static SCR_TL ScrDyn *scr_navigator_langs; static SCR_TL ScrStr *scr_navigator_lang; +static SCR_TL bool scr_navigator_cleanup_registered; + +static void scr_navigator_cleanup(void); + +/* Registers the release of the cached navigator values at exit, once per + * thread: a program can read navigator.language or navigator.languages + * without ever taking the navigator object. */ +static void scr_navigator_keep(void) { + if (scr_navigator_cleanup_registered) return; + scr_navigator_cleanup_registered = true; + scr_atexit(scr_navigator_cleanup); +} static void scr_navigator_refuse(const char *what) { ScrJsonBuf text; @@ -575,6 +587,7 @@ ScrStr *scr_navigator_language(void) { return NULL; } scr_navigator_lang = tag; + scr_navigator_keep(); } return scr_str_retain(scr_navigator_lang); } @@ -587,6 +600,7 @@ ScrDyn *scr_navigator_languages(void) { scr_dyn_arr_push(languages, scr_global_take_str(language)); scr_dyn_release(scr_dyn_freeze_data(languages)); scr_navigator_langs = languages; + scr_navigator_keep(); } return scr_dyn_retain(scr_navigator_langs); } @@ -661,6 +675,7 @@ static void scr_navigator_cleanup(void) { scr_navigator_box = NULL; scr_navigator_langs = NULL; scr_navigator_lang = NULL; + scr_navigator_cleanup_registered = false; } ScrDyn *scr_navigator_object(void) { @@ -673,7 +688,7 @@ ScrDyn *scr_navigator_object(void) { scr_dyn_handle_install(SCR_DYNH_NAVIGATOR, &ops); static SCR_TL char token; scr_navigator_box = scr_dyn_new_handle(&token, SCR_DYNH_NAVIGATOR); - scr_atexit(scr_navigator_cleanup); + scr_navigator_keep(); } return scr_dyn_retain(scr_navigator_box); } diff --git a/tests/corpus/8161-global-computed-reads.cjs b/tests/corpus/8161-global-computed-reads.cjs index ff5883154..19dfdc3e7 100644 --- a/tests/corpus/8161-global-computed-reads.cjs +++ b/tests/corpus/8161-global-computed-reads.cjs @@ -51,6 +51,17 @@ console.log( web.ReadableStream === ReadableStream, ); console.log(globalThis["noSuchGlobal"], typeof globalThis["Temporal"]); +// A snapshot of the global object in a function reads the same values. +function readThroughSnapshot(name) { + const g = globalThis; + return g[name]; +} +console.log( + readThroughSnapshot("setTimeout") === setTimeout, + readThroughSnapshot("Map") === Map, + typeof readThroughSnapshot("structuredClone"), + readThroughSnapshot("noSuchGlobal"), +); const pick = (name) => globalThis[name]; console.log(pick("Math") === Math, pick("JSON") === JSON, pick("Reflect") === Reflect, pick("Math").max(1, 3)); diff --git a/tests/corpus/8168-navigator-language-values.cjs b/tests/corpus/8168-navigator-language-values.cjs new file mode 100644 index 000000000..41368a1ef --- /dev/null +++ b/tests/corpus/8168-navigator-language-values.cjs @@ -0,0 +1,8 @@ +// @no-node-shims +// navigator.language, navigator.languages and navigator.platform read +// without the navigator object ever being taken as a value: the runtime +// caches the answers and releases them at exit. +"use strict"; +console.log(typeof navigator.language, navigator.language.length > 0); +console.log(navigator.languages.length, navigator.languages[0] === navigator.language); +console.log(Object.isFrozen(navigator.languages), typeof navigator.platform); diff --git a/tests/harness/corpus-costs/8168-navigator-language-values.cjs.json b/tests/harness/corpus-costs/8168-navigator-language-values.cjs.json new file mode 100644 index 000000000..e86b2692e --- /dev/null +++ b/tests/harness/corpus-costs/8168-navigator-language-values.cjs.json @@ -0,0 +1 @@ +{ "plain": 3104, "san": 4714 } From f0f91ac1ff5a5540479d9dab10c8a69fb52631d9 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 15:36:08 -0500 Subject: [PATCH 018/128] Load a Node module's fallback declarations only when the program names it Without @types/node, every program loaded scriptc-node-fallback.d.ts whole: the console and process globals and 47 Node modules, about 8,100 lines, parsed, bound and checked in every cold build whether or not the program imported them. - The fallback file keeps the globals and the modules they name (console, readline, readline/promises, perf_hooks, tty). Every other module, under both spellings, has its own file in ambient/node-fallback/, which references the files of the modules its declarations name. - A module's file joins the program when one of the program's files names the module in a string literal: imports, requires, import types and JSDoc types all name modules that way. The entry is read before the first program; the program-root discovery passes add modules that other files name. Files are read as tsgo reads them, and the TypeScript libraries and scriptc's own declarations are skipped. - The checks that recognized the fallback file by its path recognize every fallback file. --- .oxlintrc.jsonc | 14 +- .../ambient/node-fallback/assert-strict.d.ts | 47 + .../ambient/node-fallback/assert.d.ts | 86 + .../ambient/node-fallback/async_hooks.d.ts | 41 + .../ambient/node-fallback/buffer.d.ts | 23 + .../ambient/node-fallback/child_process.d.ts | 223 + .../ambient/node-fallback/cluster.d.ts | 17 + .../ambient/node-fallback/constants.d.ts | 15 + .../ambient/node-fallback/crypto.d.ts | 837 +++ .../compiler/ambient/node-fallback/dgram.d.ts | 58 + .../node-fallback/diagnostics_channel.d.ts | 87 + .../ambient/node-fallback/dns-promises.d.ts | 27 + .../compiler/ambient/node-fallback/dns.d.ts | 65 + .../ambient/node-fallback/events.d.ts | 60 + .../ambient/node-fallback/fs-promises.d.ts | 225 + .../compiler/ambient/node-fallback/fs.d.ts | 577 ++ .../ambient/node-fallback/graceful-fs.d.ts | 9 + .../compiler/ambient/node-fallback/http.d.ts | 326 + .../compiler/ambient/node-fallback/http2.d.ts | 816 ++ .../compiler/ambient/node-fallback/https.d.ts | 59 + .../ambient/node-fallback/module.d.ts | 10 + .../compiler/ambient/node-fallback/net.d.ts | 368 + .../compiler/ambient/node-fallback/os.d.ts | 288 + .../ambient/node-fallback/path-posix.d.ts | 22 + .../ambient/node-fallback/path-win32.d.ts | 22 + .../compiler/ambient/node-fallback/path.d.ts | 55 + .../ambient/node-fallback/process.d.ts | 11 + .../ambient/node-fallback/punycode.d.ts | 18 + .../ambient/node-fallback/querystring.d.ts | 55 + .../node-fallback/stream-consumers.d.ts | 21 + .../node-fallback/stream-promises.d.ts | 28 + .../ambient/node-fallback/stream-web.d.ts | 17 + .../ambient/node-fallback/stream.d.ts | 644 ++ .../ambient/node-fallback/string_decoder.d.ts | 20 + .../compiler/ambient/node-fallback/test.d.ts | 236 + .../node-fallback/timers-promises.d.ts | 31 + .../ambient/node-fallback/timers.d.ts | 28 + .../compiler/ambient/node-fallback/tls.d.ts | 169 + .../compiler/ambient/node-fallback/url.d.ts | 95 + .../ambient/node-fallback/util-types.d.ts | 50 + .../compiler/ambient/node-fallback/util.d.ts | 270 + .../compiler/ambient/node-fallback/v8.d.ts | 43 + .../ambient/node-fallback/worker_threads.d.ts | 113 + .../compiler/ambient/node-fallback/zlib.d.ts | 422 ++ .../ambient/scriptc-node-fallback.d.ts | 6557 ----------------- packages/compiler/src/frontend/dts-paths.ts | 139 +- .../compiler/src/frontend/fork-target.test.ts | 32 +- packages/compiler/src/frontend/fork-target.ts | 8 +- .../compiler/src/frontend/lowering/lowerer.ts | 5 +- packages/compiler/src/frontend/program.ts | 46 +- .../compiler/src/frontend/ts7/program-host.ts | 5 +- .../src/frontend/worker-target.test.ts | 17 +- .../test/node-fallback-modules.test.ts | 43 + packages/compiler/test/node-pin.test.ts | 4 +- packages/compiler/test/ts7/bench.test.ts | 10 +- packages/compiler/test/ts7/harness.ts | 4 +- scripts/native-cli-assets.mts | 5 + 57 files changed, 6924 insertions(+), 6599 deletions(-) create mode 100644 packages/compiler/ambient/node-fallback/assert-strict.d.ts create mode 100644 packages/compiler/ambient/node-fallback/assert.d.ts create mode 100644 packages/compiler/ambient/node-fallback/async_hooks.d.ts create mode 100644 packages/compiler/ambient/node-fallback/buffer.d.ts create mode 100644 packages/compiler/ambient/node-fallback/child_process.d.ts create mode 100644 packages/compiler/ambient/node-fallback/cluster.d.ts create mode 100644 packages/compiler/ambient/node-fallback/constants.d.ts create mode 100644 packages/compiler/ambient/node-fallback/crypto.d.ts create mode 100644 packages/compiler/ambient/node-fallback/dgram.d.ts create mode 100644 packages/compiler/ambient/node-fallback/diagnostics_channel.d.ts create mode 100644 packages/compiler/ambient/node-fallback/dns-promises.d.ts create mode 100644 packages/compiler/ambient/node-fallback/dns.d.ts create mode 100644 packages/compiler/ambient/node-fallback/events.d.ts create mode 100644 packages/compiler/ambient/node-fallback/fs-promises.d.ts create mode 100644 packages/compiler/ambient/node-fallback/fs.d.ts create mode 100644 packages/compiler/ambient/node-fallback/graceful-fs.d.ts create mode 100644 packages/compiler/ambient/node-fallback/http.d.ts create mode 100644 packages/compiler/ambient/node-fallback/http2.d.ts create mode 100644 packages/compiler/ambient/node-fallback/https.d.ts create mode 100644 packages/compiler/ambient/node-fallback/module.d.ts create mode 100644 packages/compiler/ambient/node-fallback/net.d.ts create mode 100644 packages/compiler/ambient/node-fallback/os.d.ts create mode 100644 packages/compiler/ambient/node-fallback/path-posix.d.ts create mode 100644 packages/compiler/ambient/node-fallback/path-win32.d.ts create mode 100644 packages/compiler/ambient/node-fallback/path.d.ts create mode 100644 packages/compiler/ambient/node-fallback/process.d.ts create mode 100644 packages/compiler/ambient/node-fallback/punycode.d.ts create mode 100644 packages/compiler/ambient/node-fallback/querystring.d.ts create mode 100644 packages/compiler/ambient/node-fallback/stream-consumers.d.ts create mode 100644 packages/compiler/ambient/node-fallback/stream-promises.d.ts create mode 100644 packages/compiler/ambient/node-fallback/stream-web.d.ts create mode 100644 packages/compiler/ambient/node-fallback/stream.d.ts create mode 100644 packages/compiler/ambient/node-fallback/string_decoder.d.ts create mode 100644 packages/compiler/ambient/node-fallback/test.d.ts create mode 100644 packages/compiler/ambient/node-fallback/timers-promises.d.ts create mode 100644 packages/compiler/ambient/node-fallback/timers.d.ts create mode 100644 packages/compiler/ambient/node-fallback/tls.d.ts create mode 100644 packages/compiler/ambient/node-fallback/url.d.ts create mode 100644 packages/compiler/ambient/node-fallback/util-types.d.ts create mode 100644 packages/compiler/ambient/node-fallback/util.d.ts create mode 100644 packages/compiler/ambient/node-fallback/v8.d.ts create mode 100644 packages/compiler/ambient/node-fallback/worker_threads.d.ts create mode 100644 packages/compiler/ambient/node-fallback/zlib.d.ts create mode 100644 packages/compiler/test/node-fallback-modules.test.ts diff --git a/.oxlintrc.jsonc b/.oxlintrc.jsonc index b0acea28a..55c8d0353 100644 --- a/.oxlintrc.jsonc +++ b/.oxlintrc.jsonc @@ -283,10 +283,22 @@ }, { // Ambient declarations describe an existing constructor and its prototype methods. - "files": ["packages/compiler/ambient/scriptc-node-fallback.d.ts"], + "files": [ + "packages/compiler/ambient/scriptc-node-fallback.d.ts", + "packages/compiler/ambient/node-fallback/*.d.ts", + ], "rules": { "typescript/no-unsafe-declaration-merging": "off", }, }, + { + // Each module's fallback declarations are a script that declares the + // module ambiently; it names the files of the modules it uses by + // reference, since a script cannot import them. + "files": ["packages/compiler/ambient/node-fallback/*.d.ts"], + "rules": { + "typescript/triple-slash-reference": "off", + }, + }, ], } diff --git a/packages/compiler/ambient/node-fallback/assert-strict.d.ts b/packages/compiler/ambient/node-fallback/assert-strict.d.ts new file mode 100644 index 000000000..ee0eaf8fa --- /dev/null +++ b/packages/compiler/ambient/node-fallback/assert-strict.d.ts @@ -0,0 +1,47 @@ +/// + +/* node:assert/strict — the same surface with the loose names bound to the + * strict comparisons (equal IS strictEqual, ...), exactly Node's aliasing; + * the module object is callable like assert's. */ +declare module "assert/strict" { + function strict(value: unknown, message?: string): void; + namespace strict { + function ok(value: unknown, message?: string): void; + function equal(actual: unknown, expected: unknown, message?: string): void; + function notEqual(actual: unknown, expected: unknown, message?: string): void; + function deepEqual(actual: unknown, expected: unknown, message?: string): void; + function notDeepEqual(actual: unknown, expected: unknown, message?: string): void; + function strictEqual(actual: unknown, expected: unknown, message?: string): void; + function notStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function deepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function fail(message?: string): never; + function throws(fn: () => unknown, expected?: unknown, message?: string): void; + function doesNotThrow(fn: () => unknown, expected?: unknown, message?: string): void; + function rejects( + fn: (() => Promise) | Promise, + expected?: unknown, + message?: string, + ): Promise; + function doesNotReject( + fn: (() => Promise) | Promise, + expected?: unknown, + message?: string, + ): Promise; + function match(value: string, regExp: RegExp, message?: string): void; + function doesNotMatch(value: string, regExp: RegExp, message?: string): void; + function ifError(value: unknown): void; + const strict: typeof import("assert/strict"); + type AssertOptions = import("assert").AssertOptions; + type Assert = import("assert").Assert; + type AssertStrict = import("assert").AssertStrict; + const Assert: typeof import("assert").Assert; + } + export = strict; +} + +declare module "node:assert/strict" { + import strict = require("assert/strict"); + export = strict; +} diff --git a/packages/compiler/ambient/node-fallback/assert.d.ts b/packages/compiler/ambient/node-fallback/assert.d.ts new file mode 100644 index 000000000..830d33e01 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/assert.d.ts @@ -0,0 +1,86 @@ +/// + +declare module "assert" { + function assert(value: unknown, message?: string): void; + namespace assert { + interface AssertionErrorOptions { + message?: string | undefined; + actual?: unknown; + expected?: unknown; + operator?: string | undefined; + stackStartFn?: Function | undefined; + diff?: "simple" | "full" | undefined; + } + class AssertionError extends Error { + constructor(options: AssertionErrorOptions); + actual: unknown; + expected: unknown; + generatedMessage: boolean; + code: "ERR_ASSERTION"; + operator: string; + } + function ok(value: unknown, message?: string): void; + function strictEqual(actual: unknown, expected: unknown, message?: string): void; + function notStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function deepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + function equal(actual: unknown, expected: unknown, message?: string): void; + function notEqual(actual: unknown, expected: unknown, message?: string): void; + function deepEqual(actual: unknown, expected: unknown, message?: string): void; + function notDeepEqual(actual: unknown, expected: unknown, message?: string): void; + function fail(message?: string): never; + function throws(fn: () => unknown, expected?: unknown, message?: string): void; + function doesNotThrow(fn: () => unknown, expected?: unknown, message?: string): void; + function rejects( + fn: (() => Promise) | Promise, + expected?: unknown, + message?: string, + ): Promise; + function doesNotReject( + fn: (() => Promise) | Promise, + expected?: unknown, + message?: string, + ): Promise; + function match(value: string, regExp: RegExp, message?: string): void; + function doesNotMatch(value: string, regExp: RegExp, message?: string): void; + function ifError(value: unknown): void; + const strict: typeof import("assert/strict"); + interface AssertOptions { + diff?: "simple" | "full" | undefined; + strict?: boolean | undefined; + skipPrototype?: boolean | undefined; + } + type AssertMethodNames = + | "deepEqual" + | "deepStrictEqual" + | "doesNotMatch" + | "doesNotReject" + | "doesNotThrow" + | "equal" + | "fail" + | "ifError" + | "match" + | "notDeepEqual" + | "notDeepStrictEqual" + | "notEqual" + | "notStrictEqual" + | "ok" + | "partialDeepStrictEqual" + | "rejects" + | "strictEqual" + | "throws"; + interface Assert extends Pick {} + interface AssertStrict extends Pick {} + const Assert: { + new (options?: AssertOptions & { strict?: true | undefined }): AssertStrict; + new (options: AssertOptions): Assert; + }; + } + export = assert; +} + +declare module "node:assert" { + import assert = require("assert"); + export = assert; +} diff --git a/packages/compiler/ambient/node-fallback/async_hooks.d.ts b/packages/compiler/ambient/node-fallback/async_hooks.d.ts new file mode 100644 index 000000000..91082ee12 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/async_hooks.d.ts @@ -0,0 +1,41 @@ +/* node:async_hooks — declared surface without lowering: async-hook + * instrumentation is guarded behind env flags in harness code; a reached + * use fences at its site. */ +declare module "async_hooks" { + /* AsyncLocalStorage: fiber-carried context snapshots — run/getStore/ + * exit/enterWith/disable lower onto the runtime's active-slot machinery + * (als.* libCalls); values cross as dyn values. bind and snapshot bind + * functions to the active context; the options carry the store's + * default value and name. */ + export interface AsyncLocalStorageOptions { + defaultValue?: any; + name?: string | undefined; + } + export class AsyncLocalStorage { + constructor(options?: AsyncLocalStorageOptions); + static bind any>(fn: Func): Func; + static snapshot(): (fn: (...args: TArgs) => R, ...args: TArgs) => R; + readonly name: string; + run(store: T, callback: (...args: any[]) => R, ...args: any[]): R; + exit(callback: (...args: any[]) => R, ...args: any[]): R; + getStore(): T | undefined; + enterWith(store: T): void; + disable(): void; + } + export interface AsyncHook { + enable(): AsyncHook; + disable(): AsyncHook; + } + export function createHook(callbacks: { + init?: (asyncId: number, type: string, triggerAsyncId: number, resource: unknown) => void; + before?: (asyncId: number) => void; + after?: (asyncId: number) => void; + destroy?: (asyncId: number) => void; + }): AsyncHook; + export function executionAsyncId(): number; + export function triggerAsyncId(): number; +} + +declare module "node:async_hooks" { + export * from "async_hooks"; +} diff --git a/packages/compiler/ambient/node-fallback/buffer.d.ts b/packages/compiler/ambient/node-fallback/buffer.d.ts new file mode 100644 index 000000000..c37b91c70 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/buffer.d.ts @@ -0,0 +1,23 @@ +/* node:buffer — the module spelling of the Buffer/atob/btoa globals. + * Buffer re-exports the GLOBAL declaration, so an imported binding + * resolves to the same symbol the lowerings already answer for (and + * third-party .d.ts files that `import { Buffer } from "node:buffer"` — + * file-entry-cache in a typed-JS source graph — typecheck). */ +declare module "buffer" { + export function isAscii(input: ArrayBuffer | ArrayBufferView): boolean; + export function isUtf8(input: ArrayBuffer | ArrayBufferView): boolean; + export function transcode(source: Uint8Array, fromEncoding: string, toEncoding: string): Buffer; + export function atob(data: string): string; + export function btoa(data: string): string; + export const kMaxLength: number; + export const kStringMaxLength: number; + export const Buffer: BufferConstructor; + export type Blob = globalThis.Blob; + export type File = globalThis.File; + export const Blob: typeof globalThis.Blob; + export const File: typeof globalThis.File; +} + +declare module "node:buffer" { + export * from "buffer"; +} diff --git a/packages/compiler/ambient/node-fallback/child_process.d.ts b/packages/compiler/ambient/node-fallback/child_process.d.ts new file mode 100644 index 000000000..c9e6483c4 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/child_process.d.ts @@ -0,0 +1,223 @@ +/* node:child_process — the synchronous slice: spawnSync(command, args?) + * runs the child to completion (posix_spawn + waitpid) with stdout/stderr + * captured as utf8 strings. `status` is the exit code, or null when the + * child died to a signal OR could not be spawned at all (nonexistent + * binary, permission denied) — Node reports spawn failure through the + * result's `error` property, which this surface does not carry, and types + * stdout/stderr null there where scriptc returns "" (SEMANTICS.md). + * No shell, no options object: the command runs directly (PATH-searched, + * like Node). */ +declare module "child_process" { + export interface SpawnSyncReturns { + readonly status: number | null; + readonly stdout: string; + readonly stderr: string; + /* The termination signal's name ("SIGTERM", ...) when a signal + * killed the child (a timeout's killSignal included), null otherwise + * — Node's shape. */ + readonly signal: string | null; + /* Node's spawn-failure carrier: a real Error ("spawnSync + * ENOENT", `code` stamped) when the spawn itself failed — status is + * null and both outputs "" then — or ETIMEDOUT after a timeout kill; + * undefined otherwise. */ + readonly error?: Error; + } + /* scriptc always captures utf8 strings; pass { encoding: "utf8" } + * whenever stdout/stderr is READ so plain Node agrees (without it Node + * hands Buffers). The other supported options: timeout (ms — sends + * killSignal at the deadline and the result carries error: ETIMEDOUT + + * the signal, never a throw), killSignal (a signal NAME literal), + * stdio ("ignore"/"inherit"/"pipe" or a 3-tuple of those — captures + * read "" for non-piped streams), env (replaces the child's + * environment), and windowsHide (a POSIX no-op). */ + export function spawnSync( + command: string, + args?: string[], + options?: { + encoding?: "utf8" | "utf-8"; + timeout?: number; + killSignal?: string; + stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[]; + env?: { [k: string]: string | undefined }; + windowsHide?: boolean; + }, + ): SpawnSyncReturns; + + /* The asynchronous slice: spawn with stdio "ignore"/"inherit"/fd/"pipe" + * tuples (piped stdin is writable through child.stdin; piped stdout/stderr + * deliver through child.stdout/stderr) and the terminal events. "exit" + * fires once with the exit code, or + * null when the child died to a signal; "error" fires ONLY when the + * child could not be spawned at all (Node's split: a spawn failure + * emits "error" and never "exit"). "close" fires after exit/error and + * every piped stdio handle reaches EOF. Exit/close listeners may take + * Node's code and signal parameters. `on`/`once` return void here (Node + * returns the child; chaining is fenced). The event loop keeps the process + * alive until every spawned child is reaped, like Node — reaping polls at + * loop quiescence (SEMANTICS.md documents the divergence). An "error" + * event with no registered listener prints the error and exits 1, + * exactly the unhandled-'error' EventEmitter behavior. */ + export interface ChildStdin { + readonly writable: boolean; + write(chunk: string | Uint8Array): boolean; + end(): void; + destroy(): void; + on(event: "drain" | "finish", listener: () => void): void; + on(event: "error", listener: (err: Error) => void): void; + on(event: string, listener: (...args: any[]) => void): void; + once(event: "drain" | "finish", listener: () => void): void; + once(event: "error", listener: (err: Error) => void): void; + once(event: string, listener: (...args: any[]) => void): void; + } + + export interface ChildProcess extends Disposable { + ref(): void; + on(event: "spawn", listener: () => void): this; + once(event: "spawn", listener: () => void): this; + /* The exit listener may also take Node's second parameter — the + * terminating signal's name, null for a normal exit. */ + on(event: "exit", listener: (code: number | null, signal: string | null) => void): this; + on(event: "close", listener: (code: number | null, signal: string | null) => void): this; + on(event: "error", listener: (err: Error) => void): this; + once(event: "exit", listener: (code: number | null, signal: string | null) => void): this; + once(event: "close", listener: (code: number | null, signal: string | null) => void): this; + once(event: "error", listener: (err: Error) => void): this; + on(event: "message", listener: (message: any) => void): this; + on(event: "disconnect", listener: () => void): this; + once(event: "message", listener: (message: any) => void): this; + once(event: "disconnect", listener: () => void): this; + /* The lifecycle members, Node's exact shapes: pid is undefined exactly + * when the spawn failed; exitCode is null while running, the code + * after a normal exit, null for a signal death, and -errno once a + * spawn failure's "error" event has fired; kill resolves signal names + * through Node's table (unknown names throw the Unknown signal + * TypeError), answers true when the signal was sent, false once the + * child was reaped (or never spawned), and sets `killed` on success; + * unref() drops the child from the event loop's keep-alive set (it is + * still reaped while the loop runs for other reasons — SEMANTICS.md + * has the reap story). */ + readonly pid: number | undefined; + readonly exitCode: number | null; + readonly killed: boolean; + kill(signal?: string | number): boolean; + unref(): void; + readonly connected: boolean; + send(message: object, callback?: (error: Error | null) => void): boolean; + disconnect(): void; + [Symbol.dispose](): void; + /* The piped streams — non-null exactly when the matching stdio slot + * was "pipe" (Node's shape). */ + readonly stdin: ChildStdin | null; + readonly stdout: NodeJS.ReadableStream | null; + readonly stderr: NodeJS.ReadableStream | null; + } + export interface SpawnOptions { + /* The 3-tuple form admits number fds in the stdout/stderr slots — + * openSync results dup2'd into the child (the daemon-log idiom + * ["ignore", logFd, logFd]) — and "pipe" there too (child.stdout/ + * child.stderr streams); "pipe" in the stdin slot exposes + * child.stdin. */ + stdio?: "ignore" | "inherit" | "pipe" | ("ignore" | "inherit" | "pipe" | number)[]; + /* detached gives the child its own session and process group + * (POSIX_SPAWN_SETSID); env REPLACES the child environment; cwd + * sets its working directory; windowsHide is a POSIX no-op; shell + * runs the complete command string through /bin/sh or cmd.exe. */ + detached?: boolean; + env?: { [k: string]: string | undefined }; + cwd?: string; + windowsHide?: boolean; + shell?: boolean; + } + export function spawn(command: string, args?: string[], options?: SpawnOptions): ChildProcess; + export function spawn(command: string, options?: SpawnOptions): ChildProcess; + + export function fork( + modulePath: string | URL, + args?: string[], + options?: { + cwd?: string; + env?: { [k: string]: string | undefined }; + execArgv?: string[]; + silent?: boolean; + stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit" | "ipc")[]; + serialization?: "json" | "advanced"; + windowsHide?: boolean; + }, + ): ChildProcess; + + /* The synchronous exec pair: execFileSync runs a file directly (no + * shell), execSync runs a command through /bin/sh -c. Both capture + * stdout as a utf8 string (pass { encoding: "utf8" } so plain Node + * agrees — without it Node returns a Buffer) and THROW on a non-zero + * exit / signal death — the Error's message is Node's "Command failed: + * " (with the captured stderr appended). Supported options: + * encoding ("utf8"), cwd, env (REPLACES the child environment), input + * (fed to stdin), timeout (ms — SIGTERMs the child, then throws + * ETIMEDOUT), stdio ("pipe"/"ignore" or a 3-tuple of those — the + * default captures stderr AND echoes it to the parent, like Node), and + * maxBuffer (accepted, not enforced). Node's status/stdout/stderr error + * properties are not carried (SEMANTICS.md). */ + interface ExecSyncOptions { + encoding?: "utf8" | "utf-8"; + cwd?: string; + env?: { [k: string]: string | undefined }; + input?: string; + timeout?: number; + stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[]; + maxBuffer?: number; + killSignal?: string; + windowsHide?: boolean; + shell?: boolean; + } + /* The named options interface for the string-encoding exec form — + * @types/node's ExecFileSyncOptionsWithStringEncoding, narrowed to the + * honestly-implemented members. VALUES of this type are a real record + * (type-mapper.ts interns the shape), so a typed const or a runner function's + * options parameter flows to execFileSync at runtime — the windows-ca + * command-runner idiom. */ + export interface ExecFileSyncOptionsWithStringEncoding { + encoding: "utf8" | "utf-8"; + cwd?: string; + input?: string; + timeout?: number; + stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[]; + maxBuffer?: number; + windowsHide?: boolean; + } + export function execFileSync(file: string, args?: string[], options?: ExecSyncOptions): string; + export function execSync(command: string, options?: ExecSyncOptions): string; + export type ExecFileCallback = (error: Error | null, stdout: string, stderr: string) => void; + /* The callback form starts an asynchronous child and captures utf8 + * stdout/stderr. The no-callback overload remains for util.promisify's + * static target recognition; reached no-callback calls still fence. */ + export function execFile(file: string, callback: ExecFileCallback): ChildProcess; + export function execFile( + file: string, + args: string[] | null, + callback: ExecFileCallback, + ): ChildProcess; + export function execFile( + file: string, + args: string[] | null, + options: ExecSyncOptions, + callback: ExecFileCallback, + ): ChildProcess; + export function execFile( + file: string, + args?: string[] | null, + options?: ExecSyncOptions, + ): unknown; + /* The async shell form. The callback forms lower like execFile's, with + * the command line run by /bin/sh -c, and util.promisify recognizes it + * statically, as it does execFile; reached calls without a callback + * fence at their site. */ + export function exec( + command: string, + options?: ExecSyncOptions | ((error: Error | null, stdout: string, stderr: string) => void), + callback?: (error: Error | null, stdout: string, stderr: string) => void, + ): ChildProcess; +} + +declare module "node:child_process" { + export * from "child_process"; +} diff --git a/packages/compiler/ambient/node-fallback/cluster.d.ts b/packages/compiler/ambient/node-fallback/cluster.d.ts new file mode 100644 index 000000000..7cb89b09f --- /dev/null +++ b/packages/compiler/ambient/node-fallback/cluster.d.ts @@ -0,0 +1,17 @@ +/* node:cluster — the primary-probe slice. A compiled binary never runs + * as a cluster worker (cluster forks the node binary itself — the + * mechanism is na for compiled programs), so isPrimary lowers to `true` + * and isWorker to `false`; everything else is undeclared. */ +declare module "cluster" { + const cluster: { + readonly isPrimary: boolean; + readonly isMaster: boolean; + readonly isWorker: boolean; + }; + export = cluster; +} + +declare module "node:cluster" { + import cluster = require("cluster"); + export = cluster; +} diff --git a/packages/compiler/ambient/node-fallback/constants.d.ts b/packages/compiler/ambient/node-fallback/constants.d.ts new file mode 100644 index 000000000..8ff410bfa --- /dev/null +++ b/packages/compiler/ambient/node-fallback/constants.d.ts @@ -0,0 +1,15 @@ +/* node:constants (deprecated, DEP0008) — one frozen object: os.constants' + * dlopen, errno, priority and signals groups, fs.constants, and + * crypto.constants. A platform's missing constant reads as undefined. */ +declare module "constants" { + const constants: { readonly [name: string]: number } & { + readonly defaultCoreCipherList: string; + readonly defaultCipherList: string; + }; + export = constants; +} + +declare module "node:constants" { + import constants = require("constants"); + export = constants; +} diff --git a/packages/compiler/ambient/node-fallback/crypto.d.ts b/packages/compiler/ambient/node-fallback/crypto.d.ts new file mode 100644 index 000000000..05ed6c69e --- /dev/null +++ b/packages/compiler/ambient/node-fallback/crypto.d.ts @@ -0,0 +1,837 @@ +/// +/// + +/* node:crypto: the static hashing/MAC/random/key-derivation utility slice. */ +declare module "crypto" { + import { Transform } from "stream"; + export type KeyObjectType = "secret" | "public" | "private"; + export interface JsonWebKey { + crv?: string; + d?: string; + dp?: string; + dq?: string; + e?: string; + k?: string; + kty?: string; + n?: string; + p?: string; + q?: string; + qi?: string; + x?: string; + y?: string; + [key: string]: unknown; + } + export interface JwkKeyExportOptions { + format: "jwk"; + } + export interface KeyExportOptions { + format?: "buffer" | undefined; + } + export type KeyFormat = "pem" | "der" | "jwk"; + export interface AsymmetricKeyExportOptions { + type: "pkcs1" | "spki" | "pkcs8" | "sec1"; + format: T; + cipher?: string | undefined; + passphrase?: string | Buffer | undefined; + } + export interface AsymmetricKeyDetails { + modulusLength?: number; + publicExponent?: bigint; + namedCurve?: string; + } + /* Secret keys, and RSA and EC private and public keys. */ + export class KeyObject { + private constructor(); + type: KeyObjectType; + symmetricKeySize?: number; + asymmetricKeyType?: string; + asymmetricKeyDetails?: AsymmetricKeyDetails; + export(options: AsymmetricKeyExportOptions<"pem">): string | Buffer; + export(options: AsymmetricKeyExportOptions<"der">): Buffer; + export(options?: KeyExportOptions): Buffer; + export(options: JwkKeyExportOptions): JsonWebKey; + equals(otherKeyObject: KeyObject): boolean; + } + export interface PrivateKeyInput { + key: string | Buffer; + format?: "pem" | "der" | undefined; + type?: "pkcs1" | "pkcs8" | "sec1" | undefined; + encoding?: string | undefined; + passphrase?: string | Buffer | undefined; + } + export interface PublicKeyInput { + key: string | Buffer; + format?: "pem" | "der" | undefined; + type?: "pkcs1" | "spki" | undefined; + encoding?: string | undefined; + } + export interface JsonWebKeyInput { + key: JsonWebKey; + format: "jwk"; + } + export function createPrivateKey( + key: PrivateKeyInput | string | Buffer | JsonWebKeyInput, + ): KeyObject; + export function createPublicKey( + key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput, + ): KeyObject; + export interface KeyPairKeyObjectResult { + publicKey: KeyObject; + privateKey: KeyObject; + } + export interface KeyPairSyncResult { + publicKey: T1; + privateKey: T2; + } + export interface RSAKeyPairKeyObjectOptions { + modulusLength: number; + publicExponent?: number | undefined; + } + export interface ECKeyPairKeyObjectOptions { + namedCurve: string; + } + export interface RSAKeyPairOptions { + modulusLength: number; + publicExponent?: number | undefined; + publicKeyEncoding: { type: "pkcs1" | "spki"; format: PubF }; + privateKeyEncoding: { + type: "pkcs1" | "pkcs8"; + format: PrivF; + cipher?: string | undefined; + passphrase?: string | undefined; + }; + } + export interface ECKeyPairOptions { + namedCurve: string; + publicKeyEncoding: { type: "pkcs1" | "spki"; format: PubF }; + privateKeyEncoding: { + type: "sec1" | "pkcs8"; + format: PrivF; + cipher?: string | undefined; + passphrase?: string | undefined; + }; + } + export function generateKeyPairSync( + type: "rsa", + options: RSAKeyPairOptions<"pem", "pem">, + ): KeyPairSyncResult; + export function generateKeyPairSync( + type: "rsa", + options: RSAKeyPairOptions<"der", "der">, + ): KeyPairSyncResult; + export function generateKeyPairSync( + type: "rsa", + options: RSAKeyPairKeyObjectOptions, + ): KeyPairKeyObjectResult; + export function generateKeyPairSync( + type: "ec", + options: ECKeyPairOptions<"pem", "pem">, + ): KeyPairSyncResult; + export function generateKeyPairSync( + type: "ec", + options: ECKeyPairOptions<"der", "der">, + ): KeyPairSyncResult; + export function generateKeyPairSync( + type: "ec", + options: ECKeyPairKeyObjectOptions, + ): KeyPairKeyObjectResult; + export interface ED25519KeyPairOptions { + publicKeyEncoding: { type: "spki"; format: PubF }; + privateKeyEncoding: { + type: "pkcs8"; + format: PrivF; + cipher?: string | undefined; + passphrase?: string | undefined; + }; + } + export function generateKeyPairSync( + type: "ed25519", + options: ED25519KeyPairOptions<"pem", "pem">, + ): KeyPairSyncResult; + export function generateKeyPairSync( + type: "ed25519", + options: ED25519KeyPairOptions<"der", "der">, + ): KeyPairSyncResult; + export function generateKeyPairSync(type: "ed25519", options?: {}): KeyPairKeyObjectResult; + export interface X25519KeyPairOptions { + publicKeyEncoding: { type: "spki"; format: PubF }; + privateKeyEncoding: { + type: "pkcs8"; + format: PrivF; + cipher?: string | undefined; + passphrase?: string | undefined; + }; + } + export function generateKeyPairSync( + type: "x25519", + options: X25519KeyPairOptions<"pem", "pem">, + ): KeyPairSyncResult; + export function generateKeyPairSync( + type: "x25519", + options: X25519KeyPairOptions<"der", "der">, + ): KeyPairSyncResult; + export function generateKeyPairSync(type: "x25519", options?: {}): KeyPairKeyObjectResult; + export function generateKeyPair( + type: "x25519", + options: {} | undefined, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + export function generateKeyPair( + type: "ed25519", + options: {} | undefined, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + export function generateKeyPair( + type: "rsa", + options: RSAKeyPairKeyObjectOptions, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + export function generateKeyPair( + type: "ec", + options: ECKeyPairKeyObjectOptions, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + export interface SigningOptions { + padding?: number | undefined; + saltLength?: number | undefined; + dsaEncoding?: "der" | "ieee-p1363" | undefined; + } + export interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {} + export interface SignKeyObjectInput extends SigningOptions { + key: KeyObject; + } + export interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {} + export interface VerifyKeyObjectInput extends SigningOptions { + key: KeyObject; + } + export function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer; + export function diffieHellman( + options: { privateKey: KeyObject; publicKey: KeyObject }, + callback: (err: Error | null, secret: Buffer) => void, + ): void; + export function sign( + algorithm: string | null | undefined, + data: ArrayBufferView, + key: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput, + ): Buffer; + export function verify( + algorithm: string | null | undefined, + data: ArrayBufferView, + key: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: ArrayBufferView, + ): boolean; + /* Sign and Verify accumulate update() data; they are not usable as + * writable streams. */ + export class Sign { + private constructor(); + update(data: string | ArrayBufferView): this; + update(data: string, inputEncoding: Encoding): this; + sign( + privateKey: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput, + ): Buffer; + sign( + privateKey: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput, + outputFormat: BinaryToTextEncoding, + ): string; + } + export class Verify { + private constructor(); + update(data: string | ArrayBufferView): this; + update(data: string, inputEncoding: Encoding): this; + verify( + object: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: ArrayBufferView, + ): boolean; + verify( + object: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: string, + signatureEncoding?: BinaryToTextEncoding, + ): boolean; + } + export function createSign(algorithm: string): Sign; + export function createVerify(algorithm: string): Verify; + export function createSecretKey(key: ArrayBufferView | ArrayBufferLike): KeyObject; + export function createSecretKey(key: string, encoding: BufferEncoding): KeyObject; + export function generateKeySync(type: "hmac" | "aes", options: { length: number }): KeyObject; + export function generateKey( + type: "hmac" | "aes", + options: { length: number }, + callback: (err: Error | null, key: KeyObject) => void, + ): void; + export interface RandomUUIDOptions { + disableEntropyCache?: boolean | undefined; + } + export function randomUUID(options?: RandomUUIDOptions): string; + export function randomUUIDv7(options?: RandomUUIDOptions): string; + export function randomBytes(size: number): Buffer; + export type BinaryToTextEncoding = "base64" | "base64url" | "hex" | "binary"; + export type CharacterEncoding = "utf8" | "utf-8" | "utf16le" | "utf-16le" | "latin1"; + export type LegacyCharacterEncoding = "ascii" | "binary" | "ucs2" | "ucs-2"; + export type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding; + export interface HashOptions { + outputLength?: number | undefined; + } + /* Hash and Hmac are Transforms: written chunks update the digest, which + * the readable side delivers once the writable side ends. */ + export interface Hash extends Transform { + copy(options?: HashOptions): Hash; + update(data: string | ArrayBufferView): Hash; + update(data: string, inputEncoding: Encoding): Hash; + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + export interface Hmac extends Transform { + update(data: string | ArrayBufferView): Hmac; + update(data: string, inputEncoding: Encoding): Hmac; + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + export function createHash(algorithm: string, options?: HashOptions): Hash; + export function createHmac( + algorithm: string, + key: BinaryLike | KeyObject, + options?: { encoding?: BufferEncoding | undefined }, + ): Hmac; + export interface OneShotDigestOptions { + outputEncoding?: BinaryToTextEncoding | "buffer" | undefined; + outputLength?: number | undefined; + } + export interface OneShotDigestOptionsWithStringEncoding extends OneShotDigestOptions { + outputEncoding?: BinaryToTextEncoding | undefined; + } + export interface OneShotDigestOptionsWithBufferEncoding extends OneShotDigestOptions { + outputEncoding: "buffer"; + } + export function hash( + algorithm: string, + data: string | ArrayBufferView, + options?: OneShotDigestOptionsWithStringEncoding | BinaryToTextEncoding, + ): string; + export function hash( + algorithm: string, + data: string | ArrayBufferView, + options: OneShotDigestOptionsWithBufferEncoding | "buffer", + ): Buffer; + export function hash( + algorithm: string, + data: string | ArrayBufferView, + options: OneShotDigestOptions | BinaryToTextEncoding | "buffer", + ): string | Buffer; + export function timingSafeEqual( + a: ArrayBufferView | ArrayBufferLike, + b: ArrayBufferView | ArrayBufferLike, + ): boolean; + /* WebCrypto's getRandomValues (also the webcrypto object's): integer + * typed arrays, filled in place and returned. */ + type RandomValuesArray = + | Int8Array + | Uint8Array + | Uint8ClampedArray + | Int16Array + | Uint16Array + | Int32Array + | Uint32Array + | BigInt64Array + | BigUint64Array; + export function getRandomValues(typedArray: T): T; + /* The WebCrypto global's object and its SubtleCrypto. */ + export const webcrypto: Crypto; + export const subtle: SubtleCrypto; + export function randomFillSync( + buffer: T, + offset?: number, + size?: number, + ): T; + export function randomFill( + buffer: T, + callback: (err: Error | null, buf: T) => void, + ): void; + export function randomFill( + buffer: T, + offset: number, + callback: (err: Error | null, buf: T) => void, + ): void; + export function randomFill( + buffer: T, + offset: number, + size: number, + callback: (err: Error | null, buf: T) => void, + ): void; + export function randomInt(max: number): number; + export function randomInt(min: number, max: number): number; + export function randomInt( + max: number, + callback: (err: Error | null, value: number) => void, + ): void; + export function randomInt( + min: number, + max: number, + callback: (err: Error | null, value: number) => void, + ): void; + export function pbkdf2Sync( + password: string | Uint8Array, + salt: string | Uint8Array, + iterations: number, + keylen: number, + digest: string, + ): Buffer; + export function pbkdf2( + password: string | Uint8Array, + salt: string | Uint8Array, + iterations: number, + keylen: number, + digest: string, + callback: (error: Error | null, derivedKey: Buffer) => void, + ): void; + export function randomBytes( + size: number, + callback: (error: Error | null, buffer: Buffer) => void, + ): void; + export type BinaryLike = string | ArrayBuffer | ArrayBufferView; + /* Cipheriv/Decipheriv: aes-128/192/256 in cbc, ctr, gcm, ccm, ecb, cfb, + * cfb8, cfb1, and ofb modes and their key wraps, des-ede3 and des-ede, + * chacha20, and chacha20-poly1305. Both are Transforms: written chunks go + * through update(), and the end pushes final(). */ + export type CipherCCMTypes = "aes-128-ccm" | "aes-192-ccm" | "aes-256-ccm"; + export type CipherGCMTypes = "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm"; + export type CipherChaCha20Poly1305Types = "chacha20-poly1305"; + export type CipherKey = BinaryLike | KeyObject; + export interface CipherCCMOptions { + authTagLength: number; + } + export interface CipherGCMOptions { + authTagLength?: number; + } + export interface CipherChaCha20Poly1305Options { + authTagLength?: number; + } + export interface Cipheriv extends Transform { + update(data: string | ArrayBufferView): Buffer; + update(data: string, inputEncoding: BufferEncoding): Buffer; + update(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: BufferEncoding): string; + update( + data: string, + inputEncoding: BufferEncoding | undefined, + outputEncoding: BufferEncoding, + ): string; + final(): Buffer; + final(outputEncoding: BufferEncoding): string; + setAutoPadding(autoPadding?: boolean): this; + } + export interface CipherCCM extends Cipheriv { + setAAD(buffer: ArrayBufferView, options: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + export interface CipherGCM extends Cipheriv { + setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + export interface CipherChaCha20Poly1305 extends Cipheriv { + setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + export interface Decipheriv extends Transform { + update(data: ArrayBufferView): Buffer; + update(data: string, inputEncoding: BufferEncoding): Buffer; + update(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: BufferEncoding): string; + update( + data: string, + inputEncoding: BufferEncoding | undefined, + outputEncoding: BufferEncoding, + ): string; + final(): Buffer; + final(outputEncoding: BufferEncoding): string; + setAutoPadding(autoPadding?: boolean): this; + } + export interface DecipherCCM extends Decipheriv { + setAuthTag(buffer: ArrayBufferView): this; + setAAD(buffer: ArrayBufferView, options: { plaintextLength: number }): this; + } + export interface DecipherGCM extends Decipheriv { + setAuthTag(buffer: ArrayBufferView): this; + setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; + } + export interface DecipherChaCha20Poly1305 extends Decipheriv { + setAuthTag(buffer: ArrayBufferView): this; + setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; + } + export function createCipheriv( + algorithm: CipherCCMTypes, + key: CipherKey, + iv: BinaryLike, + options: CipherCCMOptions, + ): CipherCCM; + export function createCipheriv( + algorithm: CipherGCMTypes, + key: CipherKey, + iv: BinaryLike, + options?: CipherGCMOptions, + ): CipherGCM; + export function createCipheriv( + algorithm: CipherChaCha20Poly1305Types, + key: CipherKey, + iv: BinaryLike, + options?: CipherChaCha20Poly1305Options, + ): CipherChaCha20Poly1305; + export function createCipheriv( + algorithm: string, + key: CipherKey, + iv: BinaryLike | null, + options?: { authTagLength?: number }, + ): Cipheriv; + export function createDecipheriv( + algorithm: CipherCCMTypes, + key: CipherKey, + iv: BinaryLike, + options: CipherCCMOptions, + ): DecipherCCM; + export function createDecipheriv( + algorithm: CipherGCMTypes, + key: CipherKey, + iv: BinaryLike, + options?: CipherGCMOptions, + ): DecipherGCM; + export function createDecipheriv( + algorithm: CipherChaCha20Poly1305Types, + key: CipherKey, + iv: BinaryLike, + options?: CipherChaCha20Poly1305Options, + ): DecipherChaCha20Poly1305; + export function createDecipheriv( + algorithm: string, + key: CipherKey, + iv: BinaryLike | null, + options?: { authTagLength?: number }, + ): Decipheriv; + export type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid"; + export class ECDH { + private constructor(); + static convertKey( + key: BinaryLike, + curve: string, + inputEncoding?: BinaryToTextEncoding, + outputEncoding?: "latin1" | "hex" | "base64" | "base64url", + format?: ECDHKeyFormat, + ): Buffer | string; + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + computeSecret(otherPublicKey: ArrayBufferView): Buffer; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer; + computeSecret(otherPublicKey: ArrayBufferView, outputEncoding: BinaryToTextEncoding): string; + computeSecret( + otherPublicKey: string, + inputEncoding: BinaryToTextEncoding, + outputEncoding: BinaryToTextEncoding, + ): string; + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer; + getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + setPrivateKey(privateKey: ArrayBufferView): void; + setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void; + } + export function createECDH(curveName: string): ECDH; + export class DiffieHellman { + private constructor(); + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding): string; + computeSecret( + otherPublicKey: ArrayBufferView, + inputEncoding?: null, + outputEncoding?: null, + ): Buffer; + computeSecret( + otherPublicKey: string, + inputEncoding: BinaryToTextEncoding, + outputEncoding?: null, + ): Buffer; + computeSecret( + otherPublicKey: ArrayBufferView, + inputEncoding: null, + outputEncoding: BinaryToTextEncoding, + ): string; + computeSecret( + otherPublicKey: string, + inputEncoding: BinaryToTextEncoding, + outputEncoding: BinaryToTextEncoding, + ): string; + getPrime(): Buffer; + getPrime(encoding: BinaryToTextEncoding): string; + getGenerator(): Buffer; + getGenerator(encoding: BinaryToTextEncoding): string; + getPublicKey(): Buffer; + getPublicKey(encoding: BinaryToTextEncoding): string; + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + setPublicKey(publicKey: ArrayBufferView): void; + setPublicKey(publicKey: string, encoding: BufferEncoding): void; + setPrivateKey(privateKey: ArrayBufferView): void; + setPrivateKey(privateKey: string, encoding: BufferEncoding): void; + verifyError: number; + } + export type DiffieHellmanGroup = Omit; + export function createDiffieHellman(primeLength: number, generator?: number): DiffieHellman; + export function createDiffieHellman( + prime: ArrayBuffer | ArrayBufferView, + generator?: number | ArrayBuffer | ArrayBufferView, + ): DiffieHellman; + export function createDiffieHellman( + prime: ArrayBuffer | ArrayBufferView, + generator: string, + generatorEncoding: BinaryToTextEncoding, + ): DiffieHellman; + export function createDiffieHellman( + prime: string, + primeEncoding: BinaryToTextEncoding, + generator?: number | ArrayBuffer | ArrayBufferView, + ): DiffieHellman; + export function createDiffieHellman( + prime: string, + primeEncoding: BinaryToTextEncoding, + generator: string, + generatorEncoding: BinaryToTextEncoding, + ): DiffieHellman; + export function getDiffieHellman(groupName: string): DiffieHellmanGroup; + export function createDiffieHellmanGroup(name: string): DiffieHellmanGroup; + export type LargeNumberLike = ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint; + export interface GeneratePrimeOptions { + add?: LargeNumberLike | undefined; + rem?: LargeNumberLike | undefined; + safe?: boolean | undefined; + bigint?: boolean | undefined; + } + export interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions { + bigint: true; + } + export interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions { + bigint?: false | undefined; + } + export function generatePrime( + size: number, + callback: (err: Error | null, prime: ArrayBuffer) => void, + ): void; + export function generatePrime( + size: number, + options: GeneratePrimeOptionsBigInt, + callback: (err: Error | null, prime: bigint) => void, + ): void; + export function generatePrime( + size: number, + options: GeneratePrimeOptionsArrayBuffer, + callback: (err: Error | null, prime: ArrayBuffer) => void, + ): void; + export function generatePrime( + size: number, + options: GeneratePrimeOptions, + callback: (err: Error | null, prime: ArrayBuffer | bigint) => void, + ): void; + export function generatePrimeSync(size: number): ArrayBuffer; + export function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint; + export function generatePrimeSync( + size: number, + options: GeneratePrimeOptionsArrayBuffer, + ): ArrayBuffer; + export function generatePrimeSync( + size: number, + options: GeneratePrimeOptions, + ): ArrayBuffer | bigint; + export interface CheckPrimeOptions { + checks?: number | undefined; + } + export function checkPrime( + value: LargeNumberLike, + callback: (err: Error | null, result: boolean) => void, + ): void; + export function checkPrime( + value: LargeNumberLike, + options: CheckPrimeOptions, + callback: (err: Error | null, result: boolean) => void, + ): void; + export function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean; + export interface ScryptOptions { + N?: number; + r?: number; + p?: number; + cost?: number; + blockSize?: number; + parallelization?: number; + maxmem?: number; + } + export function scryptSync( + password: BinaryLike, + salt: BinaryLike, + keylen: number, + options?: ScryptOptions, + ): Buffer; + export function scrypt( + password: BinaryLike, + salt: BinaryLike, + keylen: number, + callback: (error: Error | null, derivedKey: Buffer) => void, + ): void; + export function scrypt( + password: BinaryLike, + salt: BinaryLike, + keylen: number, + options: ScryptOptions, + callback: (error: Error | null, derivedKey: Buffer) => void, + ): void; + export function hkdfSync( + digest: string, + ikm: BinaryLike | KeyObject, + salt: BinaryLike, + info: BinaryLike, + keylen: number, + ): ArrayBuffer; + export function hkdf( + digest: string, + ikm: BinaryLike | KeyObject, + salt: BinaryLike, + info: BinaryLike, + keylen: number, + callback: (error: Error | null, derivedKey: ArrayBuffer) => void, + ): void; + /* The lowered X509Certificate surface is the data-record slice: the + * fields below, all computed at construction (raw decodes the input, + * and the others read raw). validFrom/validTo are Node's + * ASN1_TIME_print strings ("Jul 1 00:00:00 2026 GMT"). Unparseable + * input throws Node's ERR_OSSL_PEM_NO_START_LINE Error. */ + export class X509Certificate { + constructor(buffer: Uint8Array | string); + readonly ca: boolean; + readonly fingerprint: string; + readonly fingerprint256: string; + readonly fingerprint512: string; + readonly subject: string; + readonly subjectAltName: string | undefined; + readonly infoAccess: string | undefined; + readonly issuer: string; + readonly raw: Buffer; + readonly serialNumber: string; + readonly signatureAlgorithm: string | undefined; + readonly signatureAlgorithmOid: string; + readonly validFrom: string; + readonly validFromDate: Date; + readonly validTo: string; + readonly validToDate: Date; + /* the certificate's public key; every read answers the same KeyObject */ + readonly publicKey: KeyObject; + verify(publicKey: KeyObject): boolean; + checkPrivateKey(privateKey: KeyObject): boolean; + checkIssued(otherCert: X509Certificate): boolean; + checkHost(name: string, options?: X509CheckOptions): string | undefined; + checkEmail(email: string, options?: X509CheckOptions): string | undefined; + checkIP(ip: string): string | undefined; + toLegacyObject(): import("tls").PeerCertificate; + } + export interface X509CheckOptions { + subject?: "always" | "default" | "never"; + wildcards?: boolean; + partialWildcards?: boolean; + multiLabelWildcards?: boolean; + singleLabelSubdomains?: boolean; + } + /* The crypto introspection statics: getFips() answers 0 (a compiled + * binary is never a FIPS build), the three name lists bake as fresh + * string[] literals of Node v24 answers, and constants (below) bakes + * per member like http2.constants. */ + export function getFips(): 1 | 0; + export function getCiphers(): string[]; + export type CipherMode = + | "cbc" + | "ccm" + | "cfb" + | "ctr" + | "ecb" + | "gcm" + | "ocb" + | "ofb" + | "stream" + | "wrap" + | "xts"; + export interface CipherInfoOptions { + keyLength?: number | undefined; + ivLength?: number | undefined; + } + export interface CipherInfo { + name: string; + nid: number; + blockSize?: number | undefined; + ivLength?: number | undefined; + keyLength: number; + mode: CipherMode; + } + export function getCipherInfo( + nameOrNid: string | number, + options?: CipherInfoOptions, + ): CipherInfo | undefined; + export function getHashes(): string[]; + export function getCurves(): string[]; + /* Node v24 crypto.constants, literal-typed (the Http2Constants + * stance). Every ACCESS bakes as its literal at lowering; the object + * itself never materializes (bare crypto.constants value uses fence). */ + export interface CryptoConstants { + readonly OPENSSL_VERSION_NUMBER: 810549376; + readonly SSL_OP_ALL: 2147485776; + readonly SSL_OP_ALLOW_NO_DHE_KEX: 1024; + readonly SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: 262144; + readonly SSL_OP_CIPHER_SERVER_PREFERENCE: 4194304; + readonly SSL_OP_CISCO_ANYCONNECT: 32768; + readonly SSL_OP_COOKIE_EXCHANGE: 8192; + readonly SSL_OP_CRYPTOPRO_TLSEXT_BUG: 2147483648; + readonly SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: 2048; + readonly SSL_OP_LEGACY_SERVER_CONNECT: 4; + readonly SSL_OP_NO_COMPRESSION: 131072; + readonly SSL_OP_NO_ENCRYPT_THEN_MAC: 524288; + readonly SSL_OP_NO_QUERY_MTU: 4096; + readonly SSL_OP_NO_RENEGOTIATION: 1073741824; + readonly SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: 65536; + readonly SSL_OP_NO_SSLv2: 0; + readonly SSL_OP_NO_SSLv3: 33554432; + readonly SSL_OP_NO_TICKET: 16384; + readonly SSL_OP_NO_TLSv1: 67108864; + readonly SSL_OP_NO_TLSv1_1: 268435456; + readonly SSL_OP_NO_TLSv1_2: 134217728; + readonly SSL_OP_NO_TLSv1_3: 536870912; + readonly SSL_OP_PRIORITIZE_CHACHA: 2097152; + readonly SSL_OP_TLS_ROLLBACK_BUG: 8388608; + readonly ENGINE_METHOD_RSA: 1; + readonly ENGINE_METHOD_DSA: 2; + readonly ENGINE_METHOD_DH: 4; + readonly ENGINE_METHOD_RAND: 8; + readonly ENGINE_METHOD_EC: 2048; + readonly ENGINE_METHOD_CIPHERS: 64; + readonly ENGINE_METHOD_DIGESTS: 128; + readonly ENGINE_METHOD_PKEY_METHS: 512; + readonly ENGINE_METHOD_PKEY_ASN1_METHS: 1024; + readonly ENGINE_METHOD_ALL: 65535; + readonly ENGINE_METHOD_NONE: 0; + readonly DH_CHECK_P_NOT_SAFE_PRIME: 2; + readonly DH_CHECK_P_NOT_PRIME: 1; + readonly DH_UNABLE_TO_CHECK_GENERATOR: 4; + readonly DH_NOT_SUITABLE_GENERATOR: 8; + readonly RSA_PKCS1_PADDING: 1; + readonly RSA_SSLV23_PADDING: 2; + readonly RSA_NO_PADDING: 3; + readonly RSA_PKCS1_OAEP_PADDING: 4; + readonly RSA_X931_PADDING: 5; + readonly RSA_PKCS1_PSS_PADDING: 6; + readonly RSA_PSS_SALTLEN_DIGEST: -1; + readonly RSA_PSS_SALTLEN_MAX_SIGN: -2; + readonly RSA_PSS_SALTLEN_AUTO: -2; + readonly defaultCoreCipherList: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA"; + readonly TLS1_VERSION: 769; + readonly TLS1_1_VERSION: 770; + readonly TLS1_2_VERSION: 771; + readonly TLS1_3_VERSION: 772; + readonly POINT_CONVERSION_COMPRESSED: 2; + readonly POINT_CONVERSION_UNCOMPRESSED: 4; + readonly POINT_CONVERSION_HYBRID: 6; + readonly defaultCipherList: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA"; + } + export const constants: CryptoConstants; +} + +declare module "node:crypto" { + export * from "crypto"; +} diff --git a/packages/compiler/ambient/node-fallback/dgram.d.ts b/packages/compiler/ambient/node-fallback/dgram.d.ts new file mode 100644 index 000000000..27a98b26d --- /dev/null +++ b/packages/compiler/ambient/node-fallback/dgram.d.ts @@ -0,0 +1,58 @@ +/* node:dgram — UDP sockets over the event loop (scr_dgram.c, linked only + * into using binaries). createSocket takes "udp4" or the + * { type: "udp4", reuseAddr? } literal; bind/connect bind NOW and defer + * 'listening'/'connect' to the next loop turn; send takes one string or + * Buffer datagram with an explicit port + address (the connected-send + * and callback forms have no lowering); address() returns the real + * {address, family, port} record and THROWS "Not running" before bind, + * like Node. The socket options throw Node's errors (EBADF before bind); + * add/dropMembership before bind is refused at run time (SC2020). 'error' + * with no listener exits 1 (the unhandled EventEmitter 'error' behavior). */ +declare module "dgram" { + export interface AddressInfo { + address: string; + family: string; + port: number; + } + export interface RemoteInfo { + address: string; + family: string; + port: number; + size: number; + } + export interface Socket { + bind(port: number, address?: string, callback?: () => void): void; + connect(port: number, address?: string, callback?: () => void): void; + send(msg: string | Uint8Array, port: number, address: string): void; + address(): AddressInfo; + close(callback?: () => void): void; + disconnect(): void; + unref(): void; + ref(): void; + setBroadcast(flag: boolean): void; + setTTL(ttl: number): number; + setMulticastTTL(ttl: number): number; + setMulticastLoopback(flag: boolean): boolean; + setMulticastInterface(multicastInterface: string): void; + addMembership(multicastAddress: string, multicastInterface?: string): void; + dropMembership(multicastAddress: string, multicastInterface?: string): void; + getRecvBufferSize(): number; + getSendBufferSize(): number; + setRecvBufferSize(size: number): void; + setSendBufferSize(size: number): void; + getSendQueueSize(): number; + getSendQueueCount(): number; + on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): void; + on(event: "listening" | "close" | "connect", listener: () => void): void; + on(event: "error", listener: (err: Error) => void): void; + once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): void; + once(event: "listening" | "close" | "connect", listener: () => void): void; + once(event: "error", listener: (err: Error) => void): void; + } + export function createSocket(type: "udp4"): Socket; + export function createSocket(options: { type: "udp4"; reuseAddr?: boolean }): Socket; +} + +declare module "node:dgram" { + export * from "dgram"; +} diff --git a/packages/compiler/ambient/node-fallback/diagnostics_channel.d.ts b/packages/compiler/ambient/node-fallback/diagnostics_channel.d.ts new file mode 100644 index 000000000..53e195e89 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/diagnostics_channel.d.ts @@ -0,0 +1,87 @@ +/// + +/* node:diagnostics_channel — the in-process pub/sub core: named channels, + * subscribe/unsubscribe (module-level and channel-level), publish with any + * dyn-convertible message. Channel values are f64 handles into the + * runtime's channel registry (the readline.Interface precedent — channels + * are process-lived in Node too, its WeakRef machinery aside). + * The store-binding surface (bindStore/unbindStore/runStores) lowers onto + * the AsyncLocalStorage integration (dc.chan* libCalls). + * + * TracingChannel (tracingChannel) is the five-event-channel collection: + * an f64 handle into the runtime's tracing registry (type-mapper.ts maps the + * name like Channel). subscribe/unsubscribe walk a handlers object; + * traceSync/traceCallback run Node's publish choreography in the runtime + * (context defaults to a fresh {}); tracePromise is declared (the member + * exists in Node) but fences at the call site — the traced function's + * promise cannot cross the checked-dynamic tree boundary yet. */ +declare module "node:diagnostics_channel" { + export type ChannelListener = (message: unknown, name: string) => void; + export interface Channel { + readonly name: string; + readonly hasSubscribers: boolean; + publish(message: unknown): void; + subscribe(onMessage: ChannelListener): void; + unsubscribe(onMessage: ChannelListener): boolean; + bindStore( + store: import("async_hooks").AsyncLocalStorage, + transform?: (context: any) => any, + ): void; + unbindStore(store: import("async_hooks").AsyncLocalStorage): boolean; + runStores(context: unknown, fn: (...args: any[]) => any, thisArg?: any, ...args: any[]): any; + } + export function channel(name: string): Channel; + export function subscribe(name: string, onMessage: ChannelListener): void; + export function unsubscribe(name: string, onMessage: ChannelListener): boolean; + export function hasSubscribers(name: string): boolean; + export interface TracingChannelSubscribers { + start?: (message: any) => void; + end?: (message: any) => void; + asyncStart?: (message: any) => void; + asyncEnd?: (message: any) => void; + error?: (message: any) => void; + } + export interface TracingChannelCollection { + start: Channel; + end: Channel; + asyncStart: Channel; + asyncEnd: Channel; + error: Channel; + } + export interface TracingChannel { + start: Channel; + end: Channel; + asyncStart: Channel; + asyncEnd: Channel; + error: Channel; + readonly hasSubscribers: boolean; + subscribe(subscribers: TracingChannelSubscribers): void; + /** True when every present handler was found and removed (Node's + * all-found conjunction; @types/node under-declares this as void). */ + unsubscribe(subscribers: TracingChannelSubscribers): boolean; + traceSync( + fn: (this: ThisArg, ...args: Args) => Result, + context?: object, + thisArg?: ThisArg, + ...args: Args + ): Result; + tracePromise( + fn: (this: ThisArg, ...args: Args) => Promise, + context?: object, + thisArg?: ThisArg, + ...args: Args + ): Promise; + traceCallback( + fn: (this: ThisArg, ...args: Args) => Result, + position?: number, + context?: object, + thisArg?: ThisArg, + ...args: Args + ): Result; + } + export function tracingChannel(nameOrChannels: string | TracingChannelCollection): TracingChannel; +} + +declare module "diagnostics_channel" { + export * from "node:diagnostics_channel"; +} diff --git a/packages/compiler/ambient/node-fallback/dns-promises.d.ts b/packages/compiler/ambient/node-fallback/dns-promises.d.ts new file mode 100644 index 000000000..29fadd6d4 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/dns-promises.d.ts @@ -0,0 +1,27 @@ +/// + +/* node:dns/promises — lookup and lookupService as promises over the same + * resolution as the callback forms: argument errors throw synchronously, + * failures reject with the callbacks' errors. */ +declare module "dns/promises" { + import type { LookupAddress, LookupAllOptions, LookupOneOptions, LookupOptions } from "dns"; + export function lookup(hostname: string, family: number): Promise; + export function lookup(hostname: string, options: LookupOneOptions): Promise; + export function lookup(hostname: string, options: LookupAllOptions): Promise; + export function lookup( + hostname: string, + options: LookupOptions, + ): Promise; + export function lookup(hostname: string): Promise; + export function lookupService( + address: string, + port: number, + ): Promise<{ hostname: string; service: string }>; + export function getServers(): string[]; + export function getDefaultResultOrder(): "ipv4first" | "ipv6first" | "verbatim"; + export function setDefaultResultOrder(order: "ipv4first" | "ipv6first" | "verbatim"): void; +} + +declare module "node:dns/promises" { + export * from "dns/promises"; +} diff --git a/packages/compiler/ambient/node-fallback/dns.d.ts b/packages/compiler/ambient/node-fallback/dns.d.ts new file mode 100644 index 000000000..234f03463 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/dns.d.ts @@ -0,0 +1,65 @@ +/// + +/* node:dns — the lookup slice (scr_dgram.c hosts it; getaddrinfo runs AT + * CALL TIME and the callback defers to the next loop turn — SEMANTICS.md + * documents the blocking divergence). Only the { family: 4 } options + * form lowers; failures deliver Node's error shape ("getaddrinfo + * ENOTFOUND ") as the callback's Error argument, with "" for + * the address where Node passes undefined. */ +declare module "dns" { + export interface LookupAddress { + address: string; + family: number; + } + export interface LookupOptions { + family?: number | "IPv4" | "IPv6"; + hints?: number; + all?: boolean; + order?: "ipv4first" | "ipv6first" | "verbatim"; + verbatim?: boolean; + } + export interface LookupOneOptions extends LookupOptions { + all?: false; + } + export interface LookupAllOptions extends LookupOptions { + all: true; + } + /* The callback comes with the other lookup deliveries (literal + * addresses on the next tick); the options follow lib/dns.js. */ + export function lookup( + hostname: string, + callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, + ): void; + export function lookup( + hostname: string, + family: number, + callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, + ): void; + export function lookup( + hostname: string, + options: LookupOneOptions, + callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, + ): void; + export function lookup( + hostname: string, + options: LookupAllOptions, + callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void, + ): void; + /* getnameinfo with NI_NAMEREQD: the host's name and the port's service + * name (the number when it has none). */ + export function lookupService( + address: string, + port: number, + callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void, + ): void; + /* The nameservers /etc/resolv.conf lists. */ + export function getServers(): string[]; + export function getDefaultResultOrder(): "ipv4first" | "ipv6first" | "verbatim"; + export function setDefaultResultOrder(order: "ipv4first" | "ipv6first" | "verbatim"): void; + /* The promise forms (node:dns/promises). */ + export const promises: typeof import("dns/promises"); +} + +declare module "node:dns" { + export * from "dns"; +} diff --git a/packages/compiler/ambient/node-fallback/events.d.ts b/packages/compiler/ambient/node-fallback/events.d.ts new file mode 100644 index 000000000..dda1cd086 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/events.d.ts @@ -0,0 +1,60 @@ +/* node:events — the EventEmitter class (the module object IS the class, + * like Node's `module.exports = EventEmitter`). Listener/emit signatures + * mirror @types/node's untyped `...args: any[]` surface; the compiler's + * lowering unifies each event name's argument tuple program-wide and + * checks annotated listener parameters against it (unannotated non-empty + * parameter lists have no static types and fence at the registration). */ +declare module "events" { + class EventEmitter { + constructor(); + static defaultMaxListeners: number; + /* Listeners registered under this symbol observe 'error' emits first + * (an emit with no 'error' listener still throws). */ + static readonly errorMonitor: unique symbol; + static addAbortListener(signal: AbortSignal, listener: (event: Event) => void): Disposable; + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + removeAllListeners(eventName?: string | symbol): this; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; + /* Declared as zero-parameter closures so the RESULT is statically + * consumable (.length, indexing, identity): the lowering only admits + * these calls for events whose argument tuple is empty — a listener + * pulled from the array is then safely callable too. Events with + * arguments fence (their element type would lie). */ + listeners(eventName: string): Array<() => void>; + rawListeners(eventName: string): Array<() => void>; + eventNames(): string[]; + setMaxListeners(n: number): this; + getMaxListeners(): number; + } + import internal = require("node:events"); + namespace EventEmitter { + // The class under its own name, so `import { EventEmitter }` resolves + // (the @types/node namespace-alias pattern). + export { internal as EventEmitter }; + // The event's arguments, as checked-dynamic values. + export function once( + emitter: EventEmitter | NodeJS.ReadableStream | NodeJS.WritableStream, + eventName: string, + options?: { signal?: AbortSignal }, + ): Promise; + /* The emitter's own listenerCount/getMaxListeners/setMaxListeners/ + * listeners, over EventEmitter instances. */ + export function listenerCount(emitter: EventEmitter, eventName: string | symbol): number; + export function getMaxListeners(emitter: EventEmitter): number; + export function setMaxListeners(n?: number, ...eventTargets: EventEmitter[]): void; + export function getEventListeners(emitter: EventEmitter, name: string): Array<() => void>; + } + export = EventEmitter; +} + +declare module "node:events" { + import events = require("events"); + export = events; +} diff --git a/packages/compiler/ambient/node-fallback/fs-promises.d.ts b/packages/compiler/ambient/node-fallback/fs-promises.d.ts new file mode 100644 index 000000000..6f3f2c460 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/fs-promises.d.ts @@ -0,0 +1,225 @@ +/// + +/* fs/promises — the SAME synchronous operations behind already-settled + * promises: success fulfills, failure REJECTS with the would-be thrown + * error (catchable at the await, like Node). DOCUMENTED DIVERGENCE + * (SEMANTICS.md): the syscall blocks the event loop, so I/O never + * interleaves with timers or other fibers — observable only in concurrent + * code. readFile is utf8-only, like readFileSync. */ +declare module "fs/promises" { + export interface FileReadResult { + bytesRead: number; + buffer: T; + } + export interface FileWriteResult { + bytesWritten: number; + buffer: T; + } + export interface FileReadvResult { + bytesRead: number; + buffers: T; + } + export interface FileWritevResult { + bytesWritten: number; + buffers: T; + } + export interface FileReadOptions { + buffer?: T; + offset?: number | null; + length?: number | null; + position?: number | null; + } + /* The streams over a FileHandle (createReadStream, createWriteStream, + * readLines): fs streams that hold the handle until they close; closing + * the stream closes the handle unless autoClose is false. */ + export interface CreateReadStreamOptions { + encoding?: BufferEncoding | null; + autoClose?: boolean; + emitClose?: boolean; + start?: number; + end?: number; + highWaterMark?: number; + } + export interface CreateWriteStreamOptions { + encoding?: BufferEncoding | null; + autoClose?: boolean; + emitClose?: boolean; + start?: number; + highWaterMark?: number; + flush?: boolean; + } + export interface FileHandle extends AsyncDisposable { + readonly fd: number; + close(): Promise; + createReadStream(options?: CreateReadStreamOptions): import("node:fs").ReadStream; + createWriteStream(options?: CreateWriteStreamOptions): import("node:fs").WriteStream; + readLines(options?: CreateReadStreamOptions): import("node:readline").Interface; + sync(): Promise; + datasync(): Promise; + truncate(len?: number): Promise; + chmod(mode: number): Promise; + utimes(atime: number | string | Date, mtime: number | string | Date): Promise; + readv( + buffers: T, + position?: number | null, + ): Promise>; + writev( + buffers: T, + position?: number | null, + ): Promise>; + read( + options?: FileReadOptions | null, + ): Promise>; + read( + buffer: T, + options: Omit, "buffer">, + ): Promise>; + read( + buffer: T, + offset?: number | null, + length?: number | null, + position?: number | null, + ): Promise>; + write( + buffer: T, + offset?: number | null, + length?: number | null, + position?: number | null, + ): Promise>; + write( + buffer: T, + options: Omit, "buffer">, + ): Promise>; + write( + data: string, + position?: number | null, + encoding?: "utf8" | "utf-8" | null, + ): Promise>; + readFile(options?: null): Promise; + readFile(encoding: "utf8" | "utf-8"): Promise; + writeFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise; + appendFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise; + stat(): Promise; + [Symbol.asyncDispose](): Promise; + } + export function open(path: string | URL, flags?: string, mode?: number): Promise; + export function link( + existingPath: string | Uint8Array | URL, + newPath: string | Uint8Array | URL, + ): Promise; + export function symlink( + target: string | Uint8Array | URL, + path: string | Uint8Array | URL, + type?: string | null, + ): Promise; + export function cp( + source: string | URL, + destination: string | URL, + options?: import("node:fs").CopyOptions, + ): Promise; + export function readlink( + path: string | Uint8Array | URL, + options: "buffer" | { encoding: "buffer" }, + ): Promise; + export function readlink( + path: string | Uint8Array | URL, + options?: BufferEncoding | { encoding?: BufferEncoding | null } | null, + ): Promise; + export function readlink( + path: string | Uint8Array | URL, + options: string | { encoding?: string | null } | null, + ): Promise; + export function utimes( + path: string | Uint8Array | URL, + atime: number | string | Date, + mtime: number | string | Date, + ): Promise; + export function lutimes( + path: string | Uint8Array | URL, + atime: number | string | Date, + mtime: number | string | Date, + ): Promise; + export function readFile(path: string | URL, encoding: "utf8" | "utf-8"): Promise; + export function readFile( + path: string | URL, + options: BufferEncoding | { encoding: BufferEncoding }, + ): Promise; + export function readFile(path: string | URL): Promise; + export function writeFile( + path: string | URL, + data: string, + options?: { + mode?: number; + encoding?: "utf8" | "utf-8"; + flag?: string; + [option: string]: unknown; + }, + ): Promise; + export function writeFile( + path: string | URL, + data: string, + encoding: "utf8" | "utf-8", + ): Promise; + export function mkdir( + path: string | URL, + options?: { recursive?: boolean; mode?: number }, + ): Promise; + export function readdir(path: string | URL): Promise; + export function readdir( + path: string | URL, + options: { + encoding?: "utf8" | "utf-8"; + withFileTypes: true; + recursive?: boolean; + [option: string]: unknown; + }, + ): Promise; + /* The async iterator form of fs.globSync: iterate it with for await. */ + export function glob( + pattern: string | readonly string[], + options?: import("node:fs").GlobOptions, + ): AsyncIterableIterator; + export function glob( + pattern: string | readonly string[], + options: import("node:fs").GlobOptionsWithFileTypes, + ): AsyncIterableIterator; + export function rm(path: string | URL): Promise; + export function rm( + path: string | URL, + options: { recursive?: boolean; force?: boolean; maxRetries?: number; retryDelay?: number }, + ): Promise; + export function stat(path: string | URL): Promise; + export function statfs( + path: string | Uint8Array | URL, + options?: import("node:fs").StatFsOptions & { bigint?: false }, + ): Promise; + export function statfs( + path: string | Uint8Array | URL, + options: import("node:fs").StatFsOptions & { bigint: true }, + ): Promise; + export function statfs( + path: string | Uint8Array | URL, + options?: import("node:fs").StatFsOptions, + ): Promise; + export function realpath(path: string | URL): Promise; + export function lstat(path: string | URL): Promise; + export function unlink(path: string | URL): Promise; + export function chmod(path: string | URL, mode: number): Promise; + export function chown(path: string | URL, uid: number, gid: number): Promise; + export function lchown(path: string | URL, uid: number, gid: number): Promise; + export function access(path: string | URL, mode?: number): Promise; + export function truncate(path: string | URL, len?: number): Promise; + export function appendFile(path: string | URL, data: string | Uint8Array): Promise; + export function copyFile(src: string | URL, dest: string | URL): Promise; + export function mkdtemp(prefix: string | URL): Promise; + export function rmdir(path: string | URL): Promise; + export function rename(oldPath: string | URL, newPath: string | URL): Promise; + export function opendir( + path: string | URL, + options?: import("node:fs").OpenDirOptions, + ): Promise; +} + +declare module "node:fs/promises" { + export * from "fs/promises"; +} diff --git a/packages/compiler/ambient/node-fallback/fs.d.ts b/packages/compiler/ambient/node-fallback/fs.d.ts new file mode 100644 index 000000000..8d22ec66c --- /dev/null +++ b/packages/compiler/ambient/node-fallback/fs.d.ts @@ -0,0 +1,577 @@ +/// +/// + +/* The synchronous node:fs surface — utf8-only, no options objects, no + * Buffers. Importing "node:fs" resolves here (preflight allowlists exactly + * the ambient-declared node: modules); every function lowers to a `libCall` + * with a scr_fs_* runtime implementation. Failures throw CATCHABLE string + * values formatted like Node's error messages ("ENOENT: no such file or + * directory, open 'x'"). `rmSync` removes FILES only (like Node without + * `recursive`); empty directories go through `rmdirSync`. */ +declare module "node:fs" { + import { Readable, Writable } from "stream"; + export function readFileSync(path: string | number | URL, encoding: BufferEncoding): string; + export function readFileSync( + path: string | number | URL, + options: { encoding: BufferEncoding }, + ): string; + export function readFileSync(path: string | number | URL): Buffer; + export function readFileSync(path: string | URL, options: unknown): string | Buffer; + /* Error-first callbacks select string or Buffer data from their encoding. + * Unknown options retain that union until the caller validates the value. */ + export function readFile( + path: string, + options: unknown, + callback: (error: Error | null, data: string | Buffer) => void, + ): void; + /* The options form carries the mode (applied at CREATION only, like + * Node — an existing file keeps its permissions) and/or the utf8 + * encoding spelling. */ + export function writeFileSync( + path: string | URL, + data: string, + /* The options-record stance (see http.RequestOptions): flag fences + * by name at the call site; undocumented keys drop like Node. */ + options?: { + mode?: number; + encoding?: "utf8" | "utf-8"; + flag?: string; + [option: string]: unknown; + }, + ): void; + /* The bare-encoding spelling — the options record's encoding key alone. */ + export function writeFileSync(path: string | URL, data: string, encoding: "utf8" | "utf-8"): void; + export function writeFileSync(path: string | URL, data: string | Uint8Array): void; + export function appendFileSync(path: string | URL, data: string | Uint8Array): void; + export function existsSync(path: string | URL): boolean; + export function mkdirSync(path: string | URL): void; + export function mkdirSync( + path: string | URL, + options: { recursive?: boolean; mode?: number }, + ): void; + export function unlinkSync(path: string | URL): void; + export function chmodSync(path: string | URL, mode: number): void; + export function fchmodSync(fd: number, mode: number): void; + export function fsyncSync(fd: number): void; + export function linkSync( + existingPath: string | Uint8Array | URL, + newPath: string | Uint8Array | URL, + ): void; + export function symlinkSync( + target: string | Uint8Array | URL, + path: string | Uint8Array | URL, + type?: string | null, + ): void; + /* fs.cpSync / fs.cp: copies a file, symlink or (with recursive) a + * directory tree. filter decides per path; the callback and promise + * forms complete the copy before reporting. */ + export interface CopySyncOptions { + dereference?: boolean; + errorOnExist?: boolean; + filter?: (source: string, destination: string) => boolean; + force?: boolean; + mode?: number; + preserveTimestamps?: boolean; + recursive?: boolean; + verbatimSymlinks?: boolean; + } + export interface CopyOptions { + dereference?: boolean; + errorOnExist?: boolean; + filter?: (source: string, destination: string) => boolean | Promise; + force?: boolean; + mode?: number; + preserveTimestamps?: boolean; + recursive?: boolean; + verbatimSymlinks?: boolean; + } + export function cpSync( + source: string | URL, + destination: string | URL, + options?: CopySyncOptions, + ): void; + export function cp( + source: string | URL, + destination: string | URL, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function cp( + source: string | URL, + destination: string | URL, + options: CopyOptions, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function symlink( + target: string | Uint8Array | URL, + path: string | Uint8Array | URL, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function symlink( + target: string | Uint8Array | URL, + path: string | Uint8Array | URL, + type: string | null | undefined, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function link( + existingPath: string | Uint8Array | URL, + newPath: string | Uint8Array | URL, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function readlink( + path: string | Uint8Array | URL, + callback: (err: NodeJS.ErrnoException | null, target: string) => void, + ): void; + export function readlink( + path: string | Uint8Array | URL, + options: "buffer" | { encoding: "buffer" }, + callback: (err: NodeJS.ErrnoException | null, target: Buffer) => void, + ): void; + export function readlink( + path: string | Uint8Array | URL, + options: BufferEncoding | { encoding?: BufferEncoding | null } | null, + callback: (err: NodeJS.ErrnoException | null, target: string) => void, + ): void; + export function readlink( + path: string | Uint8Array | URL, + options: string | { encoding?: string | null } | null, + callback: (err: NodeJS.ErrnoException | null, target: string | Buffer) => void, + ): void; + export function readlinkSync( + path: string | Uint8Array | URL, + options: "buffer" | { encoding: "buffer" }, + ): Buffer; + export function readlinkSync( + path: string | Uint8Array | URL, + options?: BufferEncoding | { encoding?: BufferEncoding | null } | null, + ): string; + export function readlinkSync( + path: string | Uint8Array | URL, + options: string | { encoding?: string | null } | null, + ): string | Buffer; + export function chownSync(path: string | URL, uid: number, gid: number): void; + export function lchownSync(path: string | URL, uid: number, gid: number): void; + export function fchownSync(fd: number, uid: number, gid: number): void; + export function truncateSync(path: string | URL, len?: number): void; + /* The 2-argument form only (Node's mode flags have no lowering). The + * destination is created or truncated carrying the SOURCE's mode. */ + export function copyFileSync(src: string | URL, dest: string | URL): void; + export function rename( + oldPath: string, + newPath: string, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function renameSync(oldPath: string | URL, newPath: string | URL): void; + export function rmSync(path: string | URL): void; + /* maxRetries/retryDelay are accepted no-ops (Node retries around + * EBUSY-class races; the synchronous lowering has no re-entrancy that + * needs them). */ + export function rmSync( + path: string | URL, + options: { recursive?: boolean; force?: boolean; maxRetries?: number; retryDelay?: number }, + ): void; + export function rmdirSync(path: string | URL): void; + export function readdirSync(path: string | URL): string[]; + /* The withFileTypes form: Dirent rows (name + parentPath + the type + * probes — the honest subset of Node's Dirent surface). The type is + * interned explicitly in type-mapper.ts (the record's hidden %dtype field + * carries the entry kind; isFile/isDirectory/isSymbolicLink lower as + * reads of it in builtins/process.ts). */ + export interface Dirent { + name: string; + parentPath: string; + isFile(): boolean; + isDirectory(): boolean; + isSymbolicLink(): boolean; + } + export function readdirSync( + path: string | URL, + /* The options-record stance (see http.RequestOptions): recursive + * fences by name at the call site; undocumented keys drop like Node. */ + options: { withFileTypes: true; recursive?: boolean; [option: string]: unknown }, + ): Dirent[]; + /* fs.globSync / fs.glob: Node's glob walk over the file system. Patterns + * are minimatch globs (case-insensitive on macOS and Windows); results + * are relative to cwd unless the pattern is absolute. withFileTypes must + * be a literal so the result type is known. */ + export interface GlobOptions { + cwd?: string | URL; + exclude?: readonly string[] | ((fileName: string) => boolean); + followSymlinks?: boolean; + withFileTypes?: false; + } + export interface GlobOptionsWithFileTypes { + cwd?: string | URL; + exclude?: readonly string[]; + followSymlinks?: boolean; + withFileTypes: true; + } + export function globSync(pattern: string | readonly string[], options?: GlobOptions): string[]; + export function globSync( + pattern: string | readonly string[], + options: GlobOptionsWithFileTypes, + ): Dirent[]; + export function glob( + pattern: string | readonly string[], + callback: (err: NodeJS.ErrnoException | null, matches?: string[]) => void, + ): void; + export function glob( + pattern: string | readonly string[], + options: GlobOptions, + callback: (err: NodeJS.ErrnoException | null, matches?: string[]) => void, + ): void; + /* fs.Dir: an open directory stream (opendirSync, fs.promises.opendir) + * read one Dirent at a time in OS order; utf8 names, no recursive walk. */ + export interface Dir { + readonly path: string; + readSync(): Dirent | null; + read(): Promise; + closeSync(): void; + close(): Promise; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + export interface OpenDirOptions { + encoding?: "utf8" | "utf-8"; + bufferSize?: number; + } + export function opendirSync(path: string | URL, options?: OpenDirOptions): Dir; + /* fs.ReadStream / fs.WriteStream: runtime Readable and Writable streams + * over a file (scr_fs_stream.c). The options are checked at runtime + * with Node's rules; flags and mode are checked when the file opens, so + * their errors arrive as 'error' events. Instances also emit 'open' + * (with the fd) and 'ready'. */ + export interface StreamOptions { + flags?: string; + encoding?: BufferEncoding; + fd?: number; + mode?: number | string; + autoClose?: boolean; + emitClose?: boolean; + start?: number; + highWaterMark?: number; + } + export interface ReadStreamOptions extends StreamOptions { + end?: number; + } + export interface WriteStreamOptions extends StreamOptions { + flush?: boolean; + } + export class ReadStream extends Readable { + readonly bytesRead: number; + readonly path: string | Buffer; + readonly pending: boolean; + close(callback?: () => void): void; + } + export class WriteStream extends Writable { + readonly bytesWritten: number; + readonly path: string | Buffer; + readonly pending: boolean; + close(callback?: () => void): void; + } + export function createReadStream( + path: string | Buffer | URL, + options?: BufferEncoding | ReadStreamOptions, + ): ReadStream; + export function createWriteStream( + path: string | Buffer | URL, + options?: BufferEncoding | WriteStreamOptions, + ): WriteStream; + export function accessSync(path: string | URL, mode?: number): void; + export function mkdtempSync(prefix: string | URL): string; + export const constants: { + readonly F_OK: number; + readonly R_OK: number; + readonly W_OK: number; + readonly X_OK: number; + readonly O_RDONLY: number; + readonly O_WRONLY: number; + readonly O_RDWR: number; + readonly O_CREAT: number; + readonly O_EXCL: number; + readonly O_NOFOLLOW: number; + readonly O_NONBLOCK: number; + readonly O_TRUNC: number; + readonly O_APPEND: number; + readonly COPYFILE_EXCL: number; + readonly COPYFILE_FICLONE: number; + readonly COPYFILE_FICLONE_FORCE: number; + readonly UV_FS_SYMLINK_DIR: number; + readonly UV_FS_SYMLINK_JUNCTION: number; + readonly UV_DIRENT_UNKNOWN: number; + readonly UV_DIRENT_FILE: number; + readonly UV_DIRENT_DIR: number; + readonly UV_DIRENT_LINK: number; + readonly UV_DIRENT_FIFO: number; + readonly UV_DIRENT_SOCKET: number; + readonly UV_DIRENT_CHAR: number; + readonly UV_DIRENT_BLOCK: number; + readonly UV_FS_O_FILEMAP: number; + readonly UV_FS_O_TEMPORARY: number; + readonly UV_FS_O_SHORT_LIVED: number; + readonly UV_FS_O_SEQUENTIAL: number; + readonly UV_FS_O_RANDOM: number; + readonly UV_FS_COPYFILE_EXCL: number; + readonly UV_FS_COPYFILE_FICLONE: number; + readonly UV_FS_COPYFILE_FICLONE_FORCE: number; + readonly S_IFMT: number; + readonly S_IFREG: number; + readonly S_IFDIR: number; + readonly S_IFCHR: number; + readonly S_IFBLK: number; + readonly S_IFIFO: number; + readonly S_IFLNK: number; + readonly S_IFSOCK: number; + readonly O_NOCTTY: number; + readonly O_DIRECTORY: number; + readonly O_NOATIME: number; + readonly O_SYNC: number; + readonly O_DSYNC: number; + readonly O_SYMLINK: number; + readonly O_DIRECT: number; + readonly S_IRWXU: number; + readonly S_IRUSR: number; + readonly S_IWUSR: number; + readonly S_IXUSR: number; + readonly S_IRWXG: number; + readonly S_IRGRP: number; + readonly S_IWGRP: number; + readonly S_IXGRP: number; + readonly S_IRWXO: number; + readonly S_IROTH: number; + readonly S_IWOTH: number; + readonly S_IXOTH: number; + }; + /* A stat(2) snapshot (statSync follows symlinks, lstatSync does not — + * Node's split) — immutable; the supported surface is exactly these + * members. dev/ino identify the filesystem entry, blocks is the allocated + * size in 512-byte units, and the time fields are milliseconds with their + * sub-second fractions. */ + export interface Stats { + isFile(): boolean; + isDirectory(): boolean; + isSymbolicLink(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + readonly dev: number; + readonly mode: number; + readonly nlink: number; + readonly uid: number; + readonly gid: number; + readonly rdev: number; + readonly blksize: number; + readonly ino: number; + readonly size: number; + readonly blocks: number; + readonly atimeMs: number; + readonly mtimeMs: number; + readonly ctimeMs: number; + readonly birthtimeMs: number; + readonly atime: Date; + readonly mtime: Date; + readonly ctime: Date; + readonly birthtime: Date; + } + /* throwIfNoEntry: false answers undefined for a missing entry (ENOENT or + * ENOTDIR) instead of throwing. BigIntStats (bigint: true) has no + * lowering. */ + export interface StatSyncOptions { + bigint?: boolean; + throwIfNoEntry?: boolean; + } + export function statSync(path: string | URL, options?: undefined): Stats; + export function statSync( + path: string | URL, + options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false }, + ): Stats | undefined; + export function statSync( + path: string | URL, + options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true }, + ): Stats; + /* bigint: true type-checks so the lowering can name it as unsupported. */ + export function statSync(path: string | URL, options: StatSyncOptions & { bigint: true }): Stats; + export function statSync(path: string | URL, options: StatSyncOptions): Stats | undefined; + export function lstatSync(path: string | URL, options?: undefined): Stats; + export function lstatSync( + path: string | URL, + options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false }, + ): Stats | undefined; + export function lstatSync( + path: string | URL, + options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true }, + ): Stats; + /* bigint: true type-checks so the lowering can name it as unsupported. */ + export function lstatSync(path: string | URL, options: StatSyncOptions & { bigint: true }): Stats; + export function lstatSync(path: string | URL, options: StatSyncOptions): Stats | undefined; + /* The fd pair behind spawn's fd-stdio form: openSync(path, flags) → + * the raw fd. Numeric flags use an inline OR of the O_* constants. */ + export function openSync(path: string | URL, flags: string): number; + export function openSync(path: string | URL, flags: number, mode?: number): number; + export function closeSync(fd: number): void; + export function fdatasyncSync(fd: number): void; + export function ftruncateSync(fd: number, len?: number): void; + export function utimesSync( + path: string | Uint8Array | URL, + atime: number | string | Date, + mtime: number | string | Date, + ): void; + export function futimesSync( + fd: number, + atime: number | string | Date, + mtime: number | string | Date, + ): void; + export function lutimesSync( + path: string | Uint8Array | URL, + atime: number | string | Date, + mtime: number | string | Date, + ): void; + export function utimes( + path: string | Uint8Array | URL, + atime: number | string | Date, + mtime: number | string | Date, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function futimes( + fd: number, + atime: number | string | Date, + mtime: number | string | Date, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function lutimes( + path: string | Uint8Array | URL, + atime: number | string | Date, + mtime: number | string | Date, + callback: (err: NodeJS.ErrnoException | null) => void, + ): void; + export function readvSync(fd: number, buffers: Uint8Array[], position?: number | null): number; + export function writevSync(fd: number, buffers: Uint8Array[], position?: number | null): number; + /* Read into a caller buffer from the fd's current position when position + * is omitted/null, or from a numeric byte position without advancing the + * fd. Answers the byte count, 0 at EOF. */ + export interface ReadSyncOptions { + offset?: number; + length?: number; + position?: number | null; + } + export function readSync(fd: number, buffer: Uint8Array, options?: ReadSyncOptions): number; + export function readSync( + fd: number, + buffer: Uint8Array, + offset: number, + length: number, + position?: number | null, + ): number; + /* Write a caller-buffer window, or a utf8 string, at the fd's current + * position when position is omitted/null (advancing it), or at a numeric + * byte position without advancing it. Answers the byte count. */ + export interface WriteSyncOptions { + offset?: number; + length?: number; + position?: number | null; + } + export function writeSync(fd: number, buffer: Uint8Array, options: WriteSyncOptions): number; + export function writeSync( + fd: number, + buffer: Uint8Array, + offset?: number, + length?: number, + position?: number | null, + ): number; + export function writeSync( + fd: number, + string: string, + position?: number | null, + encoding?: "utf8" | "utf-8", + ): number; + /* statSync over an open fd — the same Stats snapshot. */ + export function fstatSync(fd: number): Stats; + /* realpath(3) — resolves symlinks, `.`/`..`, throwing Node's fs error + * shapes for missing paths. */ + export function realpathSync(path: string | URL): string; + export namespace realpathSync { + function native(path: string | URL): string; + } + /* statfs(2)/statvfs(3) — the filesystem-capacity snapshot (the fields + * Node's statfsSync reports; bavail × bsize is the free-space probe). */ + export interface StatsFsBase { + type: T; + bsize: T; + blocks: T; + bfree: T; + bavail: T; + files: T; + ffree: T; + } + export interface StatsFs extends StatsFsBase {} + export interface BigIntStatsFs extends StatsFsBase {} + export interface StatFsOptions { + bigint?: boolean; + } + export function statfsSync( + path: string | Uint8Array | URL, + options?: StatFsOptions & { bigint?: false }, + ): StatsFs; + export function statfsSync( + path: string | Uint8Array | URL, + options: StatFsOptions & { bigint: true }, + ): BigIntStatsFs; + export function statfsSync( + path: string | Uint8Array | URL, + options?: StatFsOptions, + ): StatsFs | BigIntStatsFs; + export function statfs( + path: string | Uint8Array | URL, + callback: (err: NodeJS.ErrnoException | null, stats: StatsFs) => void, + ): void; + export function statfs( + path: string | Uint8Array | URL, + options: (StatFsOptions & { bigint?: false }) | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: StatsFs) => void, + ): void; + export function statfs( + path: string | Uint8Array | URL, + options: StatFsOptions & { bigint: true }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStatsFs) => void, + ): void; + export function statfs( + path: string | Uint8Array | URL, + options: StatFsOptions | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: StatsFs | BigIntStatsFs) => void, + ): void; + /* fs.watch — the file-watching slice (scr_watch.c, kqueue EVFILT_VNODE): + * "rename"/"change" events on ONE path, watcher.close() to stop. The + * listener takes zero parameters or the eventType string (the filename + * parameter has no lowering); an open watcher keeps the loop alive. A + * path that cannot be opened THROWS Node's fs error synchronously. */ + export interface FSWatcher { + close(): void; + } + /* The options-record stance (see http.RequestOptions): persistent: true, + * recursive: false, and encoding: "utf8" state the lowered behavior and + * are accepted; persistent: false, recursive: true, and signal fence by + * name at the call site; undocumented keys drop like Node. */ + export interface WatchOptions { + persistent?: boolean; + recursive?: boolean; + encoding?: string; + [option: string]: unknown; + } + export function watch(path: string, listener?: (eventType: string) => void): FSWatcher; + export function watch( + path: string, + options: WatchOptions, + listener?: (eventType: string) => void, + ): FSWatcher; + /* fs.promises IS the fs/promises module (Node's rule) — the namespace- + * import form `fs.promises.readFile(...)` lowers through the same + * fs/promises table as `import { readFile } from "node:fs/promises"`. */ + export const promises: typeof import("node:fs/promises"); +} + +/* Every builtin answers to BOTH specifier forms, like in Node: the bare + * module re-exports its node:-prefixed twin (or holds the declarations + * itself — one of the pair forwards). The lowerer recognizes members by + * their import SPECIFIER, so both forms lower identically. */ +declare module "fs" { + export * from "node:fs"; +} diff --git a/packages/compiler/ambient/node-fallback/graceful-fs.d.ts b/packages/compiler/ambient/node-fallback/graceful-fs.d.ts new file mode 100644 index 000000000..e735fa3e6 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/graceful-fs.d.ts @@ -0,0 +1,9 @@ +/// + +/* graceful-fs — served as node:fs (it monkeypatches fs and retries on + * EMFILE/ENFILE; compiled programs call fs directly, without the retry + * queue). gracefulify is a no-op statement. The @types/graceful-fs shape. */ +declare module "graceful-fs" { + export * from "node:fs"; + export function gracefulify(fsModule: T): T; +} diff --git a/packages/compiler/ambient/node-fallback/http.d.ts b/packages/compiler/ambient/node-fallback/http.d.ts new file mode 100644 index 000000000..5588767eb --- /dev/null +++ b/packages/compiler/ambient/node-fallback/http.d.ts @@ -0,0 +1,326 @@ +/// +/// + +/* node:http — the SERVER and CLIENT slices (scr_http.c layers a + * hand-written HTTP/1.1 parser + serializer on scr_net.c; both link only + * into using binaries). createServer(handler) returns a net.Server — + * listen/close/address().port/'error' are the same lowered surface. The + * request carries url/method (always present on server requests), + * statusCode (a number on client responses, undefined on server + * requests), the underlying socket, and lowercased headers read as + * `string | undefined`; the body streams through on("data"/"end"). The + * response is setHeader/writeHead/write/end/destroy with Node's framing + * (Content-Length for a single end(body), chunked after writeHead/write) + * and the auto Date/Connection headers; writeHead's headers argument is + * an object literal or a Record. request/get dial one + * connection per call (no agent pooling) with Node's exact wire head. */ +declare module "http" { + import { Server as NetServer, Socket } from "net"; + export const METHODS: string[]; + export const STATUS_CODES: { [status: number]: string | undefined }; + export const maxHeaderSize: number; + export interface Server extends NetServer { + timeout: number; + setTimeout(msecs: number, callback?: (socket: Socket) => void): this; + closeAllConnections(): void; + closeIdleConnections(): void; + keepAliveTimeout: number; + keepAliveTimeoutBuffer: number; + headersTimeout: number; + requestTimeout: number; + } + export type RequestListener = (req: IncomingMessage, res: ServerResponse) => void; + /* The Server VALUE — Node's constructor works with and without `new` + * (test/parallel's http.Server(fn) spelling); both route to the + * createServer lowering. */ + export const Server: { + new (requestListener?: (req: IncomingMessage, res: ServerResponse) => void): Server; + new ( + options: ServerOptions, + requestListener?: (req: IncomingMessage, res: ServerResponse) => void, + ): Server; + (requestListener?: (req: IncomingMessage, res: ServerResponse) => void): Server; + ( + options: ServerOptions, + requestListener?: (req: IncomingMessage, res: ServerResponse) => void, + ): Server; + }; + /* The options-record stance (the RequestOptions precedent): every + * documented key typechecks; the lowering's option walk decides per + * key — requireHostHeader: false, joinDuplicateHeaders, and + * keepAliveTimeoutBuffer lower, + * documented-but-unlowered keys fence by name, unknown keys drop. */ + export interface ServerOptions { + requireHostHeader?: boolean; + joinDuplicateHeaders?: boolean; + keepAliveTimeoutBuffer?: number; + maxHeaderSize?: number; + [option: string]: unknown; + } + /* The outgoing-header shape, @types/node's matrix: numbers format via + * String(n), arrays write one line per element (set-cookie's shape). + * Incoming headers stay `string | undefined` — what the parser answers + * (under @types/node the two SLOTS unify so `{ ...req.headers }` + * merges into outgoing literals as a copy; the fallback keeps reads + * simple and spreads target the same string | undefined slot). */ + export type OutgoingHttpHeaders = { [name: string]: number | string | string[] | undefined }; + export interface IncomingMessage { + readonly url: string; + readonly method: string; + readonly httpVersion: string; + readonly complete: boolean; + readonly aborted: boolean; + readonly statusCode: number | undefined; + readonly statusMessage: string | undefined; + readonly socket: Socket; + readonly connection: Socket; + readonly headers: { [name: string]: string | undefined }; + readonly headersDistinct: { [name: string]: string[] | undefined }; + readonly rawHeaders: string[]; + readonly trailers: { [name: string]: string | undefined }; + readonly trailersDistinct: { [name: string]: string[] | undefined }; + readonly rawTrailers: string[]; + resume(): void; + pause(): void; + destroy(): void; + setTimeout(msecs: number, callback?: () => void): this; + /* setEncoding('utf8'): 'data' delivers strings (other real encodings + * throw a "not supported yet" Error at runtime; unknown names throw + * ERR_UNKNOWN_ENCODING). */ + setEncoding(encoding: string): void; + /* The proxy legs: the body streams into a ServerResponse, a + * ClientRequest, or a raw Socket; natural end ends the destination. */ + pipe( + destination: ServerResponse | import("http2").Http2ServerResponse | ClientRequest | Socket, + ): void; + on(event: "data", listener: (chunk: any) => void): void; + on(event: "end" | "close" | "aborted", listener: () => void): void; + on(event: "error", listener: (err: Error) => void): void; + /* addListener IS on (Node aliases them) — the suite spells both. */ + addListener(event: "data", listener: (chunk: any) => void): void; + addListener(event: "end" | "close" | "aborted", listener: () => void): void; + addListener(event: "error", listener: (err: Error) => void): void; + once(event: "data", listener: (chunk: any) => void): void; + once(event: "end" | "close" | "aborted", listener: () => void): void; + once(event: "error", listener: (err: Error) => void): void; + } + export interface ServerResponse { + readonly headersSent: boolean; + readonly writableEnded: boolean; + readonly finished: boolean; + readonly writableFinished: boolean; + readonly writableCorked: number; + readonly req: IncomingMessage; + readonly socket: Socket | null; + readonly connection: Socket | null; + sendDate: boolean; + strictContentLength: boolean; + /* Node's writable head properties: the implicit head reads them. */ + statusCode: number; + statusMessage: string | undefined; + /* The value keeps its type: getHeader answers the number, string or + * array that was set. */ + setHeader(name: string, value: number | string | readonly string[]): void; + appendHeader(name: string, value: string | readonly string[]): void; + getHeader(name: string): number | string | string[] | undefined; + getHeaderNames(): string[]; + getRawHeaderNames(): string[]; + getHeaders(): OutgoingHttpHeaders; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + /* Both overloads answer the response (`return this` chaining); the + * headers argument also takes Node's flat [name, value, ...] array. */ + writeHead(statusCode: number, headers?: OutgoingHttpHeaders | string[]): ServerResponse; + writeHead( + statusCode: number, + statusMessage: string, + headers?: OutgoingHttpHeaders | string[], + ): ServerResponse; + writeContinue(callback?: () => void): void; + writeProcessing(callback?: () => void): void; + writeEarlyHints(hints: Record, callback?: () => void): void; + write(data: string | Uint8Array): void; + flushHeaders(): void; + cork(): void; + uncork(): void; + addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; + setTimeout(msecs: number, callback?: () => void): this; + /* end's callback forms fire once the body went out (the 'finish' + * emit, deferred past the handler's synchronous tail). */ + end(data?: string | Uint8Array, callback?: () => void): void; + end(callback: () => void): void; + destroy(): void; + on(event: "close" | "finish", listener: () => void): void; + /* addListener IS on (Node aliases them) — the suite spells both. */ + addListener(event: "close" | "finish", listener: () => void): void; + once(event: "close" | "finish", listener: () => void): void; + } + /* The CLIENT slice (http.request/http.get): the options-object form + * with hostname/host, port, path, method, timeout, and headers; the + * callback receives the response as an IncomingMessage (statusCode, + * headers, body via on("data"/"end")). */ + export interface RequestOptions { + hostname?: string | null; + host?: string | null; + /* A string port (a URL's .port) is accepted, as by Node. */ + port?: number | string | null; + path?: string | null; + method?: string; + timeout?: number; + headers?: OutgoingHttpHeaders; + /* The caller's own dialer (the proxy's loopback dial): invoked once, + * synchronously; its socket carries the exchange. */ + createConnection?: () => Socket; + /* agent: false is a one-shot dial with Connection: close — exactly + * the compiled client's model; null/undefined are the default; an + * Agent VALUE threads through (getName-keyed maxSockets accounting + * over one-dial-per-request connections). */ + agent?: Agent | boolean | null; + /* Aborting destroys the request with an AbortError. */ + signal?: AbortSignal; + /* HTTP over the Unix socket at this path instead of host:port. */ + socketPath?: string; + /* The options-record stance: Node ignores an options record's + * unknown keys, so every key typechecks here — the option WALK in + * the lowering decides per key (lower, fence by name, or drop + * undocumented keys exactly like Node). */ + [option: string]: unknown; + } + /* The Agent lowers to a checked-dynamic HANDLE: option parsing at the + * literal construction site, getName, destroy, the sockets/requests/ + * freeSockets snapshots, and REAL maxSockets accounting (over-limit + * requests defer their dial and queue). keepAlive: true keeps finished + * connections in freeSockets for the next request to the same name, + * taken in `scheduling` order. */ + export interface AgentOptions { + keepAlive?: boolean; + keepAliveMsecs?: number; + maxSockets?: number; + maxFreeSockets?: number; + maxTotalSockets?: number; + scheduling?: "fifo" | "lifo"; + timeout?: number; + port?: number; + [option: string]: unknown; + } + export class Agent { + constructor(options?: AgentOptions); + destroy(): void; + /* Node's exact key shape: host:port:localAddress[:family][:socketPath]. */ + getName(options?: { + host?: string; + port?: number; + localAddress?: string; + family?: number; + socketPath?: string; + [option: string]: unknown; + }): string; + maxSockets: number; + maxFreeSockets: number; + keepAliveMsecs: number; + readonly keepAlive: boolean; + readonly protocol: string; + /* Settable — a portless request through this agent dials it (Node's + * option merge). */ + defaultPort: number; + readonly totalSocketCount: number; + readonly sockets: { [key: string]: unknown[] }; + readonly freeSockets: { [key: string]: unknown[] }; + readonly requests: { [key: string]: unknown[] }; + } + /* Node's keepAlive global agent for requests without an agent option. */ + export const globalAgent: Agent; + export interface ClientRequest { + readonly destroyed: boolean; + readonly aborted: boolean; + readonly socket: Socket; + readonly connection: Socket; + readonly writableCorked: number; + readonly method: string; + readonly path: string; + readonly host: string; + readonly protocol: string; + readonly headersSent: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly finished: boolean; + readonly reusedSocket: boolean; + setHeader(name: string, value: string): void; + getHeader(name: string): string | undefined; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + getHeaderNames(): string[]; + getRawHeaderNames(): string[]; + getHeaders(): OutgoingHttpHeaders; + flushHeaders(): void; + addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; + cork(): void; + uncork(): void; + setNoDelay(noDelay?: boolean): void; + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + setTimeout(timeout: number, callback?: () => void): this; + write(data: string | Uint8Array): void; + end(data?: string | Uint8Array): void; + destroy(error?: Error): void; + abort(): void; + on(event: "response", listener: (res: IncomingMessage) => void): void; + on(event: "socket", listener: (socket: Socket) => void): void; + on( + event: "upgrade", + listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void, + ): void; + on(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void; + on(event: "error", listener: (err: Error) => void): void; + /* addListener IS on (Node aliases them) — the suite spells both. */ + addListener(event: "response", listener: (res: IncomingMessage) => void): void; + addListener(event: "socket", listener: (socket: Socket) => void): void; + addListener( + event: "upgrade", + listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void, + ): void; + addListener(event: "timeout" | "close" | "finish" | "abort", listener: () => void): void; + addListener(event: "error", listener: (err: Error) => void): void; + once(event: "response", listener: (res: IncomingMessage) => void): void; + once(event: "socket", listener: (socket: Socket) => void): void; + once( + event: "upgrade", + listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void, + ): void; + once(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void; + once(event: "error", listener: (err: Error) => void): void; + } + export function createServer( + requestListener?: (req: IncomingMessage, res: ServerResponse) => void, + ): Server; + export function createServer( + options: ServerOptions, + requestListener?: (req: IncomingMessage, res: ServerResponse) => void, + ): Server; + /* One signature with a UNION first parameter rather than Node's two + * overloads: `const requestFn = tls ? https.request : http.request` + * (the portless isProxyRunning shape) unions two function types, and + * resolving a call on that union collapses each constituent to a + * single signature — with an overload SET on both sides the options + * literal ends up checked against URL, in either declaration order. + * A union parameter has nothing to collapse. The lowering dispatches + * on the argument's own type, so it reads the same either way. + * + * `target` is a URL string or URL object (the spelling a from-scratch + * client reaches for first — dialed directly, with a non-http scheme + * an ERR_INVALID_PROTOCOL at runtime rather than a type error), or + * the options record. */ + export function request( + target: RequestOptions | string | URL, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; + export function get( + target: RequestOptions | string | URL, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; + export function validateHeaderName(name: string, label?: string): void; + export function validateHeaderValue(name: string, value: unknown): void; +} + +declare module "node:http" { + export * from "http"; +} diff --git a/packages/compiler/ambient/node-fallback/http2.d.ts b/packages/compiler/ambient/node-fallback/http2.d.ts new file mode 100644 index 000000000..d47be0189 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/http2.d.ts @@ -0,0 +1,816 @@ +/// +/// +/// +/// + +/* node:http2 — the compatibility surface: allowHTTP1 servers negotiate + * h2 or HTTP/1.1 and expose the shared request/response API. HTTP/2 + * requests retain their backing stream; server session failures surface + * through sessionError. */ +declare module "http2" { + import { Socket } from "net"; + export interface Http2Stream { + on(event: "error" | "close", listener: (err: Error) => void): void; + once(event: "error" | "close", listener: (err: Error) => void): void; + addListener(event: "error" | "close", listener: (err: Error) => void): void; + destroy(): void; + } + export interface Http2ServerRequest { + readonly url: string; + readonly method: string; + readonly statusCode: number | undefined; + readonly socket: Socket; + readonly headers: { [name: string]: string | undefined }; + readonly stream: Http2Stream; + /* The h2 compat request's version triple ("2.0" over real h2 streams; + * the allowHTTP1 lowering's HTTP/1.1 connections answer 1.x). */ + readonly httpVersion: string; + readonly httpVersionMajor: number; + readonly httpVersionMinor: number; + readonly aborted: boolean; + readonly complete: boolean; + resume(): void; + destroy(): void; + setEncoding(encoding: string): void; + pipe(destination: Socket | import("http").ClientRequest): void; + on(event: "data", listener: (chunk: Buffer) => void): void; + on(event: "end" | "close" | "aborted", listener: () => void): void; + on(event: "error", listener: (err: Error) => void): void; + /* addListener IS on (Node aliases them) — and the compat req IS the + * http.IncomingMessage surface, so the alias mirrors here too. */ + addListener(event: "data", listener: (chunk: Buffer) => void): void; + addListener(event: "end" | "close" | "aborted", listener: () => void): void; + addListener(event: "error", listener: (err: Error) => void): void; + once(event: "data", listener: (chunk: Buffer) => void): void; + once(event: "end" | "close" | "aborted", listener: () => void): void; + once(event: "error", listener: (err: Error) => void): void; + } + export interface Http2ServerResponse { + readonly headersSent: boolean; + readonly writableEnded: boolean; + readonly writableCorked: number; + /* The same lowered surface as http.ServerResponse — the allowHTTP1 + * lowering serves every connection as HTTP/1.1, where the compat + * response IS this parser's response handle. */ + statusCode: number; + statusMessage: string; + setHeader(name: string, value: string | number): void; + getHeader(name: string): string | undefined; + getHeaderNames(): string[]; + getRawHeaderNames(): string[]; + getHeaders(): import("http").OutgoingHttpHeaders; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + writeHead( + statusCode: number, + headers?: import("http").OutgoingHttpHeaders | string[], + ): Http2ServerResponse; + writeHead( + statusCode: number, + statusMessage: string, + headers?: import("http").OutgoingHttpHeaders | string[], + ): Http2ServerResponse; + writeContinue(): void; + writeEarlyHints(hints: Record): void; + write(data: string | Uint8Array): void; + flushHeaders(): void; + cork(): void; + uncork(): void; + addTrailers( + headers: import("http").OutgoingHttpHeaders | ReadonlyArray<[string, string]>, + ): void; + end(data?: string | Uint8Array, callback?: () => void): void; + end(callback: () => void): void; + destroy(): void; + on(event: "close", listener: () => void): void; + /* addListener IS on (Node aliases them) — and the compat res IS the + * http.ServerResponse surface (assignability into ServerResponse + * unions — IncomingMessage.pipe's destination — needs the alias). */ + addListener(event: "close", listener: () => void): void; + once(event: "close", listener: () => void): void; + } + export interface Http2SecureServer { + listen(port: number, callback?: () => void): void; + close(callback?: () => void): void; + /* The bound AddressInfo (Node answers null before listen — this + * surface answers the record with port 0 there, the serverPort + * stance). */ + address(): import("node:dgram").AddressInfo; + emit(event: "connection", socket: Socket): void; + on(event: "connection", listener: (socket: Socket) => void): void; + on( + event: "request", + listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): void; + on(event: "error", listener: (err: Error) => void): void; + on(event: "close", listener: () => void): void; + on(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; + /* The ALPN=h2 server's surface (createSecureServer WITHOUT + * allowHTTP1 — the real h2-over-TLS stack): per-stream and + * per-session listeners, exactly the h2c server's. */ + on( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + on(event: "session", listener: (session: ServerHttp2Session) => void): void; + /* HTTP CONNECT (and, in Node, the h2 extended CONNECT — which the + * allowHTTP1 lowering never sees): the second argument is the raw + * socket on HTTP/1.1 connections; narrow with instanceof. */ + on( + event: "connect", + listener: ( + req: Http2ServerRequest | import("http").IncomingMessage, + resOrSocket: Http2ServerResponse | Socket, + ) => void, + ): void; + once(event: "connection", listener: (socket: Socket) => void): void; + once( + event: "request", + listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): void; + once(event: "error", listener: (err: Error) => void): void; + once(event: "close", listener: () => void): void; + once(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; + once( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + once(event: "session", listener: (session: ServerHttp2Session) => void): void; + once( + event: "connect", + listener: ( + req: Http2ServerRequest | import("http").IncomingMessage, + resOrSocket: Http2ServerResponse | Socket, + ) => void, + ): void; + addListener(event: "connection", listener: (socket: Socket) => void): void; + addListener( + event: "request", + listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener(event: "close", listener: () => void): void; + addListener( + event: "sessionError", + listener: (err: Error, session: ServerHttp2Session) => void, + ): void; + addListener( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + addListener(event: "session", listener: (session: ServerHttp2Session) => void): void; + addListener( + event: "connect", + listener: ( + req: Http2ServerRequest | import("http").IncomingMessage, + resOrSocket: Http2ServerResponse | Socket, + ) => void, + ): void; + } + export interface SecureServerOptions { + allowHTTP1?: boolean; + cert?: string | Uint8Array; + key?: string | Uint8Array; + SNICallback?: ( + servername: string, + cb: (err: Error | null, ctx?: import("tls").SecureContext) => void, + ) => void; + /* The options-record stance (see http.RequestOptions): h2 session- + * tuning knobs are accepted as literals and ignored (no h2 session + * ever exists under the allowHTTP1 lowering); other documented keys + * fence by name; undocumented keys drop like Node. */ + [option: string]: unknown; + } + /* The full Node v24 constants table (240 members), literal-typed so + * computed header keys ([HTTP2_HEADER_PATH]: value) stay literal keys. + * Every ACCESS bakes as its literal at lowering; the object itself + * never materializes (bare http2.constants value uses fence). */ + export interface Http2Constants { + readonly NGHTTP2_ERR_FRAME_SIZE_ERROR: -522; + readonly NGHTTP2_SESSION_SERVER: 0; + readonly NGHTTP2_SESSION_CLIENT: 1; + readonly NGHTTP2_STREAM_STATE_IDLE: 1; + readonly NGHTTP2_STREAM_STATE_OPEN: 2; + readonly NGHTTP2_STREAM_STATE_RESERVED_LOCAL: 3; + readonly NGHTTP2_STREAM_STATE_RESERVED_REMOTE: 4; + readonly NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: 5; + readonly NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: 6; + readonly NGHTTP2_STREAM_STATE_CLOSED: 7; + readonly NGHTTP2_FLAG_NONE: 0; + readonly NGHTTP2_FLAG_END_STREAM: 1; + readonly NGHTTP2_FLAG_END_HEADERS: 4; + readonly NGHTTP2_FLAG_ACK: 1; + readonly NGHTTP2_FLAG_PADDED: 8; + readonly NGHTTP2_FLAG_PRIORITY: 32; + readonly DEFAULT_SETTINGS_HEADER_TABLE_SIZE: 4096; + readonly DEFAULT_SETTINGS_ENABLE_PUSH: 1; + readonly DEFAULT_SETTINGS_MAX_CONCURRENT_STREAMS: 4294967295; + readonly DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: 65535; + readonly DEFAULT_SETTINGS_MAX_FRAME_SIZE: 16384; + readonly DEFAULT_SETTINGS_MAX_HEADER_LIST_SIZE: 65535; + readonly DEFAULT_SETTINGS_ENABLE_CONNECT_PROTOCOL: 0; + readonly MAX_MAX_FRAME_SIZE: 16777215; + readonly MIN_MAX_FRAME_SIZE: 16384; + readonly MAX_INITIAL_WINDOW_SIZE: 2147483647; + readonly NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: 1; + readonly NGHTTP2_SETTINGS_ENABLE_PUSH: 2; + readonly NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: 3; + readonly NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: 4; + readonly NGHTTP2_SETTINGS_MAX_FRAME_SIZE: 5; + readonly NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: 6; + readonly NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: 8; + readonly PADDING_STRATEGY_NONE: 0; + readonly PADDING_STRATEGY_ALIGNED: 1; + readonly PADDING_STRATEGY_MAX: 2; + readonly PADDING_STRATEGY_CALLBACK: 1; + readonly NGHTTP2_NO_ERROR: 0; + readonly NGHTTP2_PROTOCOL_ERROR: 1; + readonly NGHTTP2_INTERNAL_ERROR: 2; + readonly NGHTTP2_FLOW_CONTROL_ERROR: 3; + readonly NGHTTP2_SETTINGS_TIMEOUT: 4; + readonly NGHTTP2_STREAM_CLOSED: 5; + readonly NGHTTP2_FRAME_SIZE_ERROR: 6; + readonly NGHTTP2_REFUSED_STREAM: 7; + readonly NGHTTP2_CANCEL: 8; + readonly NGHTTP2_COMPRESSION_ERROR: 9; + readonly NGHTTP2_CONNECT_ERROR: 10; + readonly NGHTTP2_ENHANCE_YOUR_CALM: 11; + readonly NGHTTP2_INADEQUATE_SECURITY: 12; + readonly NGHTTP2_HTTP_1_1_REQUIRED: 13; + readonly NGHTTP2_DEFAULT_WEIGHT: 16; + readonly HTTP2_HEADER_STATUS: ":status"; + readonly HTTP2_HEADER_METHOD: ":method"; + readonly HTTP2_HEADER_AUTHORITY: ":authority"; + readonly HTTP2_HEADER_SCHEME: ":scheme"; + readonly HTTP2_HEADER_PATH: ":path"; + readonly HTTP2_HEADER_PROTOCOL: ":protocol"; + readonly HTTP2_HEADER_ACCEPT_ENCODING: "accept-encoding"; + readonly HTTP2_HEADER_ACCEPT_LANGUAGE: "accept-language"; + readonly HTTP2_HEADER_ACCEPT_RANGES: "accept-ranges"; + readonly HTTP2_HEADER_ACCEPT: "accept"; + readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: "access-control-allow-credentials"; + readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS: "access-control-allow-headers"; + readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS: "access-control-allow-methods"; + readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: "access-control-allow-origin"; + readonly HTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS: "access-control-expose-headers"; + readonly HTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERS: "access-control-request-headers"; + readonly HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD: "access-control-request-method"; + readonly HTTP2_HEADER_AGE: "age"; + readonly HTTP2_HEADER_AUTHORIZATION: "authorization"; + readonly HTTP2_HEADER_CACHE_CONTROL: "cache-control"; + readonly HTTP2_HEADER_CONNECTION: "connection"; + readonly HTTP2_HEADER_CONTENT_DISPOSITION: "content-disposition"; + readonly HTTP2_HEADER_CONTENT_ENCODING: "content-encoding"; + readonly HTTP2_HEADER_CONTENT_LENGTH: "content-length"; + readonly HTTP2_HEADER_CONTENT_TYPE: "content-type"; + readonly HTTP2_HEADER_COOKIE: "cookie"; + readonly HTTP2_HEADER_DATE: "date"; + readonly HTTP2_HEADER_ETAG: "etag"; + readonly HTTP2_HEADER_FORWARDED: "forwarded"; + readonly HTTP2_HEADER_HOST: "host"; + readonly HTTP2_HEADER_IF_MODIFIED_SINCE: "if-modified-since"; + readonly HTTP2_HEADER_IF_NONE_MATCH: "if-none-match"; + readonly HTTP2_HEADER_IF_RANGE: "if-range"; + readonly HTTP2_HEADER_LAST_MODIFIED: "last-modified"; + readonly HTTP2_HEADER_LINK: "link"; + readonly HTTP2_HEADER_LOCATION: "location"; + readonly HTTP2_HEADER_RANGE: "range"; + readonly HTTP2_HEADER_REFERER: "referer"; + readonly HTTP2_HEADER_SERVER: "server"; + readonly HTTP2_HEADER_SET_COOKIE: "set-cookie"; + readonly HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: "strict-transport-security"; + readonly HTTP2_HEADER_TRANSFER_ENCODING: "transfer-encoding"; + readonly HTTP2_HEADER_TE: "te"; + readonly HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS: "upgrade-insecure-requests"; + readonly HTTP2_HEADER_UPGRADE: "upgrade"; + readonly HTTP2_HEADER_USER_AGENT: "user-agent"; + readonly HTTP2_HEADER_VARY: "vary"; + readonly HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS: "x-content-type-options"; + readonly HTTP2_HEADER_X_FRAME_OPTIONS: "x-frame-options"; + readonly HTTP2_HEADER_KEEP_ALIVE: "keep-alive"; + readonly HTTP2_HEADER_PROXY_CONNECTION: "proxy-connection"; + readonly HTTP2_HEADER_X_XSS_PROTECTION: "x-xss-protection"; + readonly HTTP2_HEADER_ALT_SVC: "alt-svc"; + readonly HTTP2_HEADER_CONTENT_SECURITY_POLICY: "content-security-policy"; + readonly HTTP2_HEADER_EARLY_DATA: "early-data"; + readonly HTTP2_HEADER_EXPECT_CT: "expect-ct"; + readonly HTTP2_HEADER_ORIGIN: "origin"; + readonly HTTP2_HEADER_PURPOSE: "purpose"; + readonly HTTP2_HEADER_TIMING_ALLOW_ORIGIN: "timing-allow-origin"; + readonly HTTP2_HEADER_X_FORWARDED_FOR: "x-forwarded-for"; + readonly HTTP2_HEADER_PRIORITY: "priority"; + readonly HTTP2_HEADER_ACCEPT_CHARSET: "accept-charset"; + readonly HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE: "access-control-max-age"; + readonly HTTP2_HEADER_ALLOW: "allow"; + readonly HTTP2_HEADER_CONTENT_LANGUAGE: "content-language"; + readonly HTTP2_HEADER_CONTENT_LOCATION: "content-location"; + readonly HTTP2_HEADER_CONTENT_MD5: "content-md5"; + readonly HTTP2_HEADER_CONTENT_RANGE: "content-range"; + readonly HTTP2_HEADER_DNT: "dnt"; + readonly HTTP2_HEADER_EXPECT: "expect"; + readonly HTTP2_HEADER_EXPIRES: "expires"; + readonly HTTP2_HEADER_FROM: "from"; + readonly HTTP2_HEADER_IF_MATCH: "if-match"; + readonly HTTP2_HEADER_IF_UNMODIFIED_SINCE: "if-unmodified-since"; + readonly HTTP2_HEADER_MAX_FORWARDS: "max-forwards"; + readonly HTTP2_HEADER_PREFER: "prefer"; + readonly HTTP2_HEADER_PROXY_AUTHENTICATE: "proxy-authenticate"; + readonly HTTP2_HEADER_PROXY_AUTHORIZATION: "proxy-authorization"; + readonly HTTP2_HEADER_REFRESH: "refresh"; + readonly HTTP2_HEADER_RETRY_AFTER: "retry-after"; + readonly HTTP2_HEADER_TRAILER: "trailer"; + readonly HTTP2_HEADER_TK: "tk"; + readonly HTTP2_HEADER_VIA: "via"; + readonly HTTP2_HEADER_WARNING: "warning"; + readonly HTTP2_HEADER_WWW_AUTHENTICATE: "www-authenticate"; + readonly HTTP2_HEADER_HTTP2_SETTINGS: "http2-settings"; + readonly HTTP2_METHOD_ACL: "ACL"; + readonly HTTP2_METHOD_BASELINE_CONTROL: "BASELINE-CONTROL"; + readonly HTTP2_METHOD_BIND: "BIND"; + readonly HTTP2_METHOD_CHECKIN: "CHECKIN"; + readonly HTTP2_METHOD_CHECKOUT: "CHECKOUT"; + readonly HTTP2_METHOD_CONNECT: "CONNECT"; + readonly HTTP2_METHOD_COPY: "COPY"; + readonly HTTP2_METHOD_DELETE: "DELETE"; + readonly HTTP2_METHOD_GET: "GET"; + readonly HTTP2_METHOD_HEAD: "HEAD"; + readonly HTTP2_METHOD_LABEL: "LABEL"; + readonly HTTP2_METHOD_LINK: "LINK"; + readonly HTTP2_METHOD_LOCK: "LOCK"; + readonly HTTP2_METHOD_MERGE: "MERGE"; + readonly HTTP2_METHOD_MKACTIVITY: "MKACTIVITY"; + readonly HTTP2_METHOD_MKCALENDAR: "MKCALENDAR"; + readonly HTTP2_METHOD_MKCOL: "MKCOL"; + readonly HTTP2_METHOD_MKREDIRECTREF: "MKREDIRECTREF"; + readonly HTTP2_METHOD_MKWORKSPACE: "MKWORKSPACE"; + readonly HTTP2_METHOD_MOVE: "MOVE"; + readonly HTTP2_METHOD_OPTIONS: "OPTIONS"; + readonly HTTP2_METHOD_ORDERPATCH: "ORDERPATCH"; + readonly HTTP2_METHOD_PATCH: "PATCH"; + readonly HTTP2_METHOD_POST: "POST"; + readonly HTTP2_METHOD_PRI: "PRI"; + readonly HTTP2_METHOD_PROPFIND: "PROPFIND"; + readonly HTTP2_METHOD_PROPPATCH: "PROPPATCH"; + readonly HTTP2_METHOD_PUT: "PUT"; + readonly HTTP2_METHOD_REBIND: "REBIND"; + readonly HTTP2_METHOD_REPORT: "REPORT"; + readonly HTTP2_METHOD_SEARCH: "SEARCH"; + readonly HTTP2_METHOD_TRACE: "TRACE"; + readonly HTTP2_METHOD_UNBIND: "UNBIND"; + readonly HTTP2_METHOD_UNCHECKOUT: "UNCHECKOUT"; + readonly HTTP2_METHOD_UNLINK: "UNLINK"; + readonly HTTP2_METHOD_UNLOCK: "UNLOCK"; + readonly HTTP2_METHOD_UPDATE: "UPDATE"; + readonly HTTP2_METHOD_UPDATEREDIRECTREF: "UPDATEREDIRECTREF"; + readonly HTTP2_METHOD_VERSION_CONTROL: "VERSION-CONTROL"; + readonly HTTP_STATUS_CONTINUE: 100; + readonly HTTP_STATUS_SWITCHING_PROTOCOLS: 101; + readonly HTTP_STATUS_PROCESSING: 102; + readonly HTTP_STATUS_EARLY_HINTS: 103; + readonly HTTP_STATUS_OK: 200; + readonly HTTP_STATUS_CREATED: 201; + readonly HTTP_STATUS_ACCEPTED: 202; + readonly HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: 203; + readonly HTTP_STATUS_NO_CONTENT: 204; + readonly HTTP_STATUS_RESET_CONTENT: 205; + readonly HTTP_STATUS_PARTIAL_CONTENT: 206; + readonly HTTP_STATUS_MULTI_STATUS: 207; + readonly HTTP_STATUS_ALREADY_REPORTED: 208; + readonly HTTP_STATUS_IM_USED: 226; + readonly HTTP_STATUS_MULTIPLE_CHOICES: 300; + readonly HTTP_STATUS_MOVED_PERMANENTLY: 301; + readonly HTTP_STATUS_FOUND: 302; + readonly HTTP_STATUS_SEE_OTHER: 303; + readonly HTTP_STATUS_NOT_MODIFIED: 304; + readonly HTTP_STATUS_USE_PROXY: 305; + readonly HTTP_STATUS_TEMPORARY_REDIRECT: 307; + readonly HTTP_STATUS_PERMANENT_REDIRECT: 308; + readonly HTTP_STATUS_BAD_REQUEST: 400; + readonly HTTP_STATUS_UNAUTHORIZED: 401; + readonly HTTP_STATUS_PAYMENT_REQUIRED: 402; + readonly HTTP_STATUS_FORBIDDEN: 403; + readonly HTTP_STATUS_NOT_FOUND: 404; + readonly HTTP_STATUS_METHOD_NOT_ALLOWED: 405; + readonly HTTP_STATUS_NOT_ACCEPTABLE: 406; + readonly HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: 407; + readonly HTTP_STATUS_REQUEST_TIMEOUT: 408; + readonly HTTP_STATUS_CONFLICT: 409; + readonly HTTP_STATUS_GONE: 410; + readonly HTTP_STATUS_LENGTH_REQUIRED: 411; + readonly HTTP_STATUS_PRECONDITION_FAILED: 412; + readonly HTTP_STATUS_PAYLOAD_TOO_LARGE: 413; + readonly HTTP_STATUS_URI_TOO_LONG: 414; + readonly HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415; + readonly HTTP_STATUS_RANGE_NOT_SATISFIABLE: 416; + readonly HTTP_STATUS_EXPECTATION_FAILED: 417; + readonly HTTP_STATUS_TEAPOT: 418; + readonly HTTP_STATUS_MISDIRECTED_REQUEST: 421; + readonly HTTP_STATUS_UNPROCESSABLE_ENTITY: 422; + readonly HTTP_STATUS_LOCKED: 423; + readonly HTTP_STATUS_FAILED_DEPENDENCY: 424; + readonly HTTP_STATUS_TOO_EARLY: 425; + readonly HTTP_STATUS_UPGRADE_REQUIRED: 426; + readonly HTTP_STATUS_PRECONDITION_REQUIRED: 428; + readonly HTTP_STATUS_TOO_MANY_REQUESTS: 429; + readonly HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: 431; + readonly HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: 451; + readonly HTTP_STATUS_INTERNAL_SERVER_ERROR: 500; + readonly HTTP_STATUS_NOT_IMPLEMENTED: 501; + readonly HTTP_STATUS_BAD_GATEWAY: 502; + readonly HTTP_STATUS_SERVICE_UNAVAILABLE: 503; + readonly HTTP_STATUS_GATEWAY_TIMEOUT: 504; + readonly HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: 505; + readonly HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: 506; + readonly HTTP_STATUS_INSUFFICIENT_STORAGE: 507; + readonly HTTP_STATUS_LOOP_DETECTED: 508; + readonly HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: 509; + readonly HTTP_STATUS_NOT_EXTENDED: 510; + readonly HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: 511; + } + export const constants: Http2Constants; + /* The eager handler is the first COMPAT 'request' listener — Node's + * route on either flavor (the allowHTTP1 server's HTTP/1.1 handles, + * the ALPN=h2 server's compat handles over streams). */ + export function createSecureServer( + options: SecureServerOptions, + onRequestHandler?: ( + req: import("http").IncomingMessage, + res: import("http").ServerResponse, + ) => void, + ): Http2SecureServer; + + /* ── the REAL h2c surface (scr_http2.c: frame codec + HPACK over the + * net loop) — createServer/connect and the session/stream handles the + * Node suite's http2 family exercises. Headers cross as the canonical + * header record (the IncomingHttpHeaders index-signature shape); the + * response :status reads back as a number. Members declared here + * without a lowering fence by name at their use sites. */ + + /** The http2 module's own header shapes: pure index-signature records + * (the HEADER-FAMILY canonicalization — string[] arm included). */ + export interface IncomingHttpHeaders { + [name: string]: number | string | string[] | undefined; + } + export interface OutgoingHttpHeaders { + [name: string]: number | string | string[] | undefined; + } + + export interface Http2Session { + close(callback?: () => void): void; + destroy(): void; + readonly closed: boolean; + readonly destroyed: boolean; + readonly encrypted: boolean; + readonly type: number; + readonly alpnProtocol: string; + readonly socket: import("net").Socket; + readonly pendingSettingsAck: boolean; + ref(): void; + unref(): void; + setTimeout(msecs: number, callback?: () => void): void; + ping(callback: (err: Error | null, duration: number, payload: Uint8Array) => void): boolean; + /* The settings surface rides the checked-dynamic machinery (records + * cross as dyn values — the suite's mustCall listeners are dyn). */ + settings(settings?: any, callback?: any): void; + readonly localSettings: any; + readonly remoteSettings: any; + goaway(code?: number, lastStreamID?: number, opaqueData?: Uint8Array): void; + on(event: "close" | "timeout", listener: () => void): void; + on(event: "error", listener: (err: Error) => void): void; + on( + event: "connect", + listener: (session: Http2Session, socket: import("net").Socket) => void, + ): void; + on( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + on( + event: "goaway", + listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void, + ): void; + on(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void; + on(event: "frameError", listener: (type: number, code: number, id: number) => void): void; + on(event: "ping", listener: (payload: Uint8Array) => void): void; + once(event: "close" | "timeout", listener: () => void): void; + once(event: "error", listener: (err: Error) => void): void; + once( + event: "connect", + listener: (session: Http2Session, socket: import("net").Socket) => void, + ): void; + once( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + once( + event: "goaway", + listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void, + ): void; + once(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void; + once(event: "frameError", listener: (type: number, code: number, id: number) => void): void; + once(event: "ping", listener: (payload: Uint8Array) => void): void; + addListener(event: "close" | "timeout", listener: () => void): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener( + event: "connect", + listener: (session: Http2Session, socket: import("net").Socket) => void, + ): void; + addListener( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + addListener( + event: "goaway", + listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void, + ): void; + addListener(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void; + addListener( + event: "frameError", + listener: (type: number, code: number, id: number) => void, + ): void; + addListener(event: "ping", listener: (payload: Uint8Array) => void): void; + } + + export interface ClientHttp2Session extends Http2Session { + request( + headers?: OutgoingHttpHeaders, + options?: { + endStream?: boolean; + exclusive?: boolean; + parent?: number; + weight?: number; + waitForTrailers?: boolean; + }, + ): ClientHttp2Stream; + } + + export interface ServerHttp2Session extends Http2Session { + altsvc(alt: string, originOrStream: number | string): void; + origin(...origins: string[]): void; + } + + /** The shared Http2Stream core (both roles). 'data' chunks are Buffers + * (strings once setEncoding('utf8') is in force — the IncomingMessage + * chunk:any stance keeps both working). */ + interface Http2StreamCore { + readonly id: number | undefined; + readonly rstCode: number; + readonly closed: boolean; + readonly destroyed: boolean; + readonly pending: boolean; + readonly aborted: boolean; + readonly session: Http2Session; + readonly sentHeaders: OutgoingHttpHeaders; + readonly state: Record; + write(chunk: string | Uint8Array, callback?: (err?: Error | null) => void): boolean; + end(data?: string | Uint8Array, callback?: () => void): void; + end(callback: () => void): void; + close(code?: number, callback?: () => void): void; + destroy(error?: Error): void; + setEncoding(encoding: string): this; + resume(): void; + pause(): void; + setTimeout(msecs: number, callback?: () => void): void; + priority(options: Record): void; + sendTrailers(headers: OutgoingHttpHeaders): void; + } + + export interface ServerHttp2Stream extends Http2StreamCore { + on(event: "data", listener: (chunk: any) => void): void; + on( + event: + | "end" + | "close" + | "aborted" + | "ready" + | "timeout" + | "drain" + | "finish" + | "wantTrailers", + listener: () => void, + ): void; + on(event: "error", listener: (err: Error) => void): void; + on(event: "frameError", listener: (type: number, code: number, id: number) => void): void; + on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; + once(event: "data", listener: (chunk: any) => void): void; + once( + event: + | "end" + | "close" + | "aborted" + | "ready" + | "timeout" + | "drain" + | "finish" + | "wantTrailers", + listener: () => void, + ): void; + once(event: "error", listener: (err: Error) => void): void; + once(event: "frameError", listener: (type: number, code: number, id: number) => void): void; + once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; + addListener(event: "data", listener: (chunk: any) => void): void; + addListener( + event: + | "end" + | "close" + | "aborted" + | "ready" + | "timeout" + | "drain" + | "finish" + | "wantTrailers", + listener: () => void, + ): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener( + event: "frameError", + listener: (type: number, code: number, id: number) => void, + ): void; + addListener( + event: "trailers", + listener: (trailers: IncomingHttpHeaders, flags: number) => void, + ): void; + respond( + headers?: OutgoingHttpHeaders, + options?: { endStream?: boolean; waitForTrailers?: boolean }, + ): void; + respondWithFile( + path: string, + headers?: OutgoingHttpHeaders, + options?: Record, + ): void; + respondWithFD( + fd: number, + headers?: OutgoingHttpHeaders, + options?: Record, + ): void; + pushStream( + headers: OutgoingHttpHeaders, + callback: ( + err: Error | null, + pushStream: ServerHttp2Stream, + headers: OutgoingHttpHeaders, + ) => void, + ): void; + readonly headersSent: boolean; + readonly pushAllowed: boolean; + additionalHeaders(headers: OutgoingHttpHeaders): void; + } + + export interface ClientHttp2Stream extends Http2StreamCore { + on(event: "response", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; + on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; + on(event: "headers", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; + on(event: "data", listener: (chunk: any) => void): void; + on( + event: + | "end" + | "close" + | "aborted" + | "ready" + | "timeout" + | "drain" + | "finish" + | "wantTrailers", + listener: () => void, + ): void; + on(event: "error", listener: (err: Error) => void): void; + on(event: "frameError", listener: (type: number, code: number, id: number) => void): void; + on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; + once(event: "response", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; + once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; + once(event: "headers", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; + once(event: "data", listener: (chunk: any) => void): void; + once( + event: + | "end" + | "close" + | "aborted" + | "ready" + | "timeout" + | "drain" + | "finish" + | "wantTrailers", + listener: () => void, + ): void; + once(event: "error", listener: (err: Error) => void): void; + once(event: "frameError", listener: (type: number, code: number, id: number) => void): void; + once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; + addListener( + event: "response", + listener: (headers: IncomingHttpHeaders, flags: number) => void, + ): void; + addListener( + event: "push", + listener: (headers: IncomingHttpHeaders, flags: number) => void, + ): void; + addListener( + event: "headers", + listener: (headers: IncomingHttpHeaders, flags: number) => void, + ): void; + addListener(event: "data", listener: (chunk: any) => void): void; + addListener( + event: + | "end" + | "close" + | "aborted" + | "ready" + | "timeout" + | "drain" + | "finish" + | "wantTrailers", + listener: () => void, + ): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener( + event: "frameError", + listener: (type: number, code: number, id: number) => void, + ): void; + addListener( + event: "trailers", + listener: (trailers: IncomingHttpHeaders, flags: number) => void, + ): void; + } + + export interface Http2Server { + listen(port?: number, callback?: () => void): void; + listen(port: number, host: string, callback?: () => void): void; + close(callback?: () => void): void; + address(): import("node:dgram").AddressInfo; + setTimeout(msecs?: number, callback?: () => void): void; + ref(): void; + unref(): void; + on( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + on(event: "session", listener: (session: ServerHttp2Session) => void): void; + on( + event: "request", + listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): void; + on(event: "error", listener: (err: Error) => void): void; + on(event: "close" | "listening" | "timeout", listener: () => void): void; + on(event: "connection", listener: (socket: import("net").Socket) => void): void; + on(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; + once( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + once(event: "session", listener: (session: ServerHttp2Session) => void): void; + once( + event: "request", + listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): void; + once(event: "error", listener: (err: Error) => void): void; + once(event: "close" | "listening" | "timeout", listener: () => void): void; + once(event: "connection", listener: (socket: import("net").Socket) => void): void; + once(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; + addListener( + event: "stream", + listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, + ): void; + addListener(event: "session", listener: (session: ServerHttp2Session) => void): void; + addListener( + event: "request", + listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener(event: "close" | "listening" | "timeout", listener: () => void): void; + addListener(event: "connection", listener: (socket: import("net").Socket) => void): void; + addListener( + event: "sessionError", + listener: (err: Error, session: ServerHttp2Session) => void, + ): void; + } + + export interface ServerOptions { + [option: string]: unknown; + } + + export function createServer( + onRequestHandler?: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): Http2Server; + export function createServer( + options: ServerOptions, + onRequestHandler?: (req: Http2ServerRequest, res: Http2ServerResponse) => void, + ): Http2Server; + + export function connect( + authority: string, + listener?: (session: ClientHttp2Session, socket: import("net").Socket) => void, + ): ClientHttp2Session; + export function connect( + authority: string, + options: Record, + listener?: (session: ClientHttp2Session, socket: import("net").Socket) => void, + ): ClientHttp2Session; + + export function getDefaultSettings(): any; + export function getPackedSettings(settings: Record): Uint8Array; + export const sensitiveHeaders: unique symbol; +} + +declare module "node:http2" { + export * from "http2"; +} diff --git a/packages/compiler/ambient/node-fallback/https.d.ts b/packages/compiler/ambient/node-fallback/https.d.ts new file mode 100644 index 000000000..a3171f401 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/https.d.ts @@ -0,0 +1,59 @@ +/// + +/* node:https — http over the TLS transport (scr_tls.c). + * createServer({ cert, key }, handler) is the http server behind a + * handshake; request/get are the http client with port 443 default and + * the local-CA knobs: `ca` (PEM string/Buffer) replaces the trust + * anchors, rejectUnauthorized: false disables verification (the + * self-signed probe shape). With neither, /etc/ssl/cert.pem stands in + * for Node's bundled roots. */ +declare module "https" { + import { Server } from "http"; + import { Agent, ClientRequest, IncomingMessage, ServerResponse } from "http"; + export { Agent, Server }; + /* Node's keepAlive global agent for requests without an agent option. */ + export const globalAgent: Agent; + export interface ServerOptions { + cert: string | Uint8Array; + key: string | Uint8Array; + /* The options-record stance (see http.RequestOptions). */ + [option: string]: unknown; + } + export interface RequestOptions { + hostname?: string; + host?: string; + port?: number; + path?: string; + method?: string; + timeout?: number; + headers?: { [name: string]: string }; + rejectUnauthorized?: boolean; + ca?: string | Uint8Array; + agent?: Agent | boolean | null; + /* Aborting destroys the request with an AbortError. */ + signal?: AbortSignal; + socketPath?: string; + /* The options-record stance (see http.RequestOptions). */ + [option: string]: unknown; + } + export function createServer( + options: ServerOptions, + requestListener: (req: IncomingMessage, res: ServerResponse) => void, + ): Server; + /* One signature with a union first parameter, for the request-fn + * ternary's sake (see the http block). A URL target takes no options, + * which means Node's defaults — the certificate is verified against + * the default trust anchors. */ + export function request( + target: RequestOptions | string | URL, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; + export function get( + target: RequestOptions | string | URL, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; +} + +declare module "node:https" { + export * from "https"; +} diff --git a/packages/compiler/ambient/node-fallback/module.d.ts b/packages/compiler/ambient/node-fallback/module.d.ts new file mode 100644 index 000000000..0ea020456 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/module.d.ts @@ -0,0 +1,10 @@ +declare module "node:module" { + export function createRequire(filename: string | URL): ScriptcRequire; + export const builtinModules: string[]; + export function isBuiltin(moduleName: string): boolean; + export function syncBuiltinESMExports(): void; +} + +declare module "module" { + export * from "node:module"; +} diff --git a/packages/compiler/ambient/node-fallback/net.d.ts b/packages/compiler/ambient/node-fallback/net.d.ts new file mode 100644 index 000000000..744fbb0b9 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/net.d.ts @@ -0,0 +1,368 @@ +/// +/// +/// +/// +/// + +/* node:net — the inbound-networking slice (scr_net.c links only into + * net-using binaries). TCP only, Node's shapes narrowed to what lowers: + * createServer with an optional connection handler; listen(port[, cb]) + * with the real port discoverable as address().port (the composed read + * is the lowered form — bare address() has no lowering); close([cb]) + * firing once connections drain; socket write/end/destroy/pipe and the + * data/end/close/error/connect/drain events (on and once — listeners + * take at most the declared parameter). write returns Node's + * backpressure boolean; end returns void here (Node returns the socket); + * on/once return void (chaining is fenced). connect's host is a numeric IP or "localhost" (pinned to + * 127.0.0.1 — SEMANTICS.md); every failure is the async 'error' event, + * and an 'error' with no listener exits 1 like an unhandled EventEmitter + * 'error'. */ +declare module "net" { + export interface Socket { + /* Whether the socket keeps the event loop alive (ref'd by default). */ + ref(): void; + unref(): void; + readonly remoteAddress: string | undefined; + /* The peer's fields are cached at first read, like remoteAddress; the + * local ones are undefined while connecting and after close. */ + readonly remotePort: number | undefined; + readonly remoteFamily: string | undefined; + readonly localAddress: string | undefined; + readonly localPort: number | undefined; + readonly localFamily: string | undefined; + readonly bytesRead: number; + readonly connecting: boolean; + readonly pending: boolean; + readonly readyState: "opening" | "open" | "readOnly" | "writeOnly" | "closed"; + /* true once the fd is gone (destroy() or full close) — Node's flag. */ + readonly destroyed: boolean; + /* the write half is open: no end() yet, no FIN sent, fd alive. */ + readonly writable: boolean; + /* true until the read half is done (peer FIN / destroy). */ + readonly readable: boolean; + /* every byte the write paths accepted (buffered included — Node + * counts those too; plaintext on TLS sockets). */ + readonly bytesWritten: number; + /* write's callback runs once the data is flushed, with null; end's + * once the socket finishes. */ + /* false when the bytes this write left unsent reach the 65536-byte + * high-water mark, as in Node; 'drain' fires when they are all sent. */ + write(data: string | Uint8Array, callback?: (err?: Error | null) => void): boolean; + /* the bytes written and not yet sent */ + readonly writableLength: number; + /* a write answered false and 'drain' has not fired yet */ + readonly writableNeedDrain: boolean; + end(callback?: () => void): void; + end(data: string | Uint8Array, callback?: () => void): void; + destroy(): void; + /* Flow control: pause holds reads off (kernel/TCP backpressure is + * the buffer); resume flows — and discards without listeners, so + * 'end' stays reachable. Both chain, Node's shape. */ + pause(): Socket; + resume(): Socket; + /* TCP_NODELAY on the live fd; missing means true. Chains. */ + setNoDelay(noDelay?: boolean): Socket; + /* SO_KEEPALIVE with the initial delay in ms. Chains. */ + setKeepAlive(enable?: boolean, initialDelay?: number): Socket; + /* end() now, destroy once the FIN actually flushed. */ + destroySoon(): void; + /* An RST instead of a FIN; a connecting socket resets once it + * connects. Throws ERR_INVALID_HANDLE_TYPE on a TLS socket. */ + resetAndDestroy(): Socket; + /* The local address, or {} while connecting and once destroyed. */ + address(): AddressInfo | {}; + /* setEncoding('utf8'): 'data' delivers strings — the IncomingMessage + * twin's contract. */ + setEncoding(encoding: string): void; + /* socket→socket, and socket→response (the extended-CONNECT bridge + * leg: raw chunks become response body writes; EOF ends it). */ + pipe( + destination: Socket | import("http").ServerResponse | import("http2").Http2ServerResponse, + ): void; + /* The callback is a once('timeout') listener (removed again by 0). */ + setTimeout(ms: number, callback?: () => void): void; + /* The paused-mode demux surface: once('readable') + read(1) + + * unshift — read answers exactly n buffered bytes or null. */ + read(size?: number): Buffer | null; + unshift(chunk: Uint8Array): void; + /* secureConnect/secure/session are TLS-socket events declared on the + * shared socket surface (the lowering collapses TLSSocket onto this kind): + * the runtime gates on the transport, so a plain socket's + * registration never fires — Node's exact split. 'session' fires + * once with the serialized session (the received-ticket event). */ + on(event: "data", listener: (chunk: Buffer) => void): void; + /* After setEncoding the chunk is a string. */ + on(event: "data", listener: (chunk: string) => void): void; + on( + event: + | "end" + | "connect" + | "ready" + | "timeout" + | "drain" + | "readable" + | "finish" + | "secureConnect" + | "secure", + listener: () => void, + ): void; + on(event: "close", listener: (hadError: boolean) => void): void; + on(event: "error", listener: (err: Error) => void): void; + on(event: "session", listener: (session: Buffer) => void): void; + /* The host name's resolution, before the connect. */ + on( + event: "lookup", + listener: (err: Error | null, address: string, family: number, host: string) => void, + ): void; + /* addListener IS on (Node aliases them) — the suite spells both. */ + addListener(event: "data", listener: (chunk: Buffer) => void): void; + /* After setEncoding the chunk is a string. */ + addListener(event: "data", listener: (chunk: string) => void): void; + addListener( + event: + | "end" + | "connect" + | "ready" + | "timeout" + | "drain" + | "readable" + | "finish" + | "secureConnect" + | "secure", + listener: () => void, + ): void; + addListener(event: "close", listener: (hadError: boolean) => void): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener(event: "session", listener: (session: Buffer) => void): void; + /* The host name's resolution, before the connect. */ + addListener( + event: "lookup", + listener: (err: Error | null, address: string, family: number, host: string) => void, + ): void; + once(event: "data", listener: (chunk: Buffer) => void): void; + /* After setEncoding the chunk is a string. */ + once(event: "data", listener: (chunk: string) => void): void; + once( + event: + | "end" + | "connect" + | "ready" + | "timeout" + | "drain" + | "readable" + | "finish" + | "secureConnect" + | "secure", + listener: () => void, + ): void; + once(event: "close", listener: (hadError: boolean) => void): void; + once(event: "error", listener: (err: Error) => void): void; + once(event: "session", listener: (session: Buffer) => void): void; + /* The host name's resolution, before the connect. */ + once( + event: "lookup", + listener: (err: Error | null, address: string, family: number, host: string) => void, + ): void; + } + export interface Server { + /* Whether the server keeps the event loop alive (ref'd by default). */ + ref(): void; + unref(): void; + readonly listening: boolean; + /* Connections past this many are closed with a 'drop' event; + * undefined (the default) or null lifts the cap. */ + maxConnections: number | undefined; + /* Node reads it only in cluster mode: a stored value here. */ + dropMaxConnection: boolean | undefined; + /* cb(null, count) on the next tick. */ + getConnections(callback: (error: Error | null, count: number) => void): Server; + /* Node answers the server itself (`return this` chaining). */ + listen(port: number, callback?: () => void): Server; + /* The positional bind address (the options form's host in argument + * spelling). */ + listen(port: number, host: string, callback?: () => void): Server; + /* A Unix-socket server; the socket file is removed when it closes. */ + listen(path: string, callback?: () => void): Server; + /* The explicit-interface bind: host is an IP literal (absent = the + * host-less dual-stack any); ipv6Only sets IPV6_V6ONLY and reusePort + * requests kernel connection distribution where Node supports it. */ + listen( + options: { port: number; host?: string; ipv6Only?: boolean; reusePort?: boolean }, + callback?: () => void, + ): Server; + close(callback?: () => void): void; + /* The bound AddressInfo (Node answers null before listen — this + * surface answers the record with port 0 there, the serverPort + * stance). */ + address(): import("node:dgram").AddressInfo; + /* The demux route: hand an accepted socket to another server. */ + emit(event: "connection", socket: Socket): boolean; + on(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void; + /* tls and https servers: a handshake that failed */ + on( + event: "tlsClientError", + listener: (err: Error, tlsSocket: import("tls").TLSSocket) => void, + ): void; + on(event: "close" | "listening", listener: () => void): void; + on(event: "drop", listener: (data?: DropArgument) => void): void; + on(event: "timeout", listener: (socket: Socket) => void): void; + on(event: "error", listener: (err: Error) => void): void; + /* The WebSocket handover: fires INSTEAD of 'request' for + * Connection: upgrade requests, with the raw socket + head bytes; + * 'connect' is its twin for CONNECT requests (HTTP tunneling). */ + on( + event: "upgrade" | "connect", + listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void, + ): void; + /* http.createServer(handler)'s event twin (a no-parser net server + * never fires it, like Node). */ + on( + event: "request" | "checkContinue" | "checkExpectation", + listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void, + ): void; + /* addListener IS on (Node aliases them) — the suite spells both. */ + addListener(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void; + /* tls and https servers: a handshake that failed */ + addListener( + event: "tlsClientError", + listener: (err: Error, tlsSocket: import("tls").TLSSocket) => void, + ): void; + addListener(event: "close" | "listening", listener: () => void): void; + addListener(event: "drop", listener: (data?: DropArgument) => void): void; + addListener(event: "timeout", listener: (socket: Socket) => void): void; + addListener(event: "error", listener: (err: Error) => void): void; + addListener( + event: "upgrade" | "connect", + listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void, + ): void; + addListener( + event: "request" | "checkContinue" | "checkExpectation", + listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void, + ): void; + once(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void; + /* tls and https servers: a handshake that failed */ + once( + event: "tlsClientError", + listener: (err: Error, tlsSocket: import("tls").TLSSocket) => void, + ): void; + once(event: "close" | "listening", listener: () => void): void; + once(event: "drop", listener: (data?: DropArgument) => void): void; + once(event: "timeout", listener: (socket: Socket) => void): void; + once(event: "error", listener: (err: Error) => void): void; + once( + event: "upgrade" | "connect", + listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void, + ): void; + once( + event: "request" | "checkContinue" | "checkExpectation", + listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void, + ): void; + } + /* The 'drop' payload: the turned-away connection's addresses. */ + export interface DropArgument { + localAddress?: string; + localPort?: number; + localFamily?: string; + remoteAddress?: string; + remotePort?: number; + remoteFamily?: string; + } + export type AddressInfo = import("node:dgram").AddressInfo; + export type IPVersion = "ipv4" | "ipv6"; + export interface SocketAddressInitOptions { + address?: string; + family?: IPVersion; + flowlabel?: number; + port?: number; + } + /* A native handle (scr_net.c); the getters read its parsed address. */ + export class SocketAddress { + constructor(options?: SocketAddressInitOptions); + readonly address: string; + readonly family: IPVersion; + readonly port: number; + readonly flowlabel: number; + toJSON(): { address: string; port: number; family: IPVersion; flowlabel: number }; + /* undefined when the input is not "[:]" */ + static parse(input: string): SocketAddress | undefined; + static isSocketAddress(value: unknown): value is SocketAddress; + } + /* Address, range and subnet rules; check() matches IPv4 addresses + * against IPv6 rules through their IPv4-mapped form, as Node does. */ + export class BlockList { + constructor(); + readonly rules: readonly string[]; + readonly size: number; + addAddress(address: string | SocketAddress, type?: IPVersion): void; + addAddresses(addresses: readonly (string | SocketAddress)[], type?: IPVersion): void; + addRange(start: string | SocketAddress, end: string | SocketAddress, type?: IPVersion): void; + addSubnet(net: string | SocketAddress, prefix: number, type?: IPVersion): void; + addCIDR(cidr: string): void; + addCIDRs(cidrs: readonly string[]): void; + removeAddress(address: string | SocketAddress, type?: IPVersion): void; + removeRange(start: string | SocketAddress, end: string | SocketAddress, type?: IPVersion): void; + removeSubnet(net: string | SocketAddress, prefix: number, type?: IPVersion): void; + removeCIDR(cidr: string): void; + clear(): void; + check(address: string | SocketAddress, type?: IPVersion): boolean; + toJSON(): string[]; + fromJSON(data: string | readonly string[]): void; + static isBlockList(value: unknown): value is BlockList; + static readonly PRIVATE_RANGES: readonly string[]; + } + /* Node's IPv4Reg and IPv6Reg tests: 4, 6, or 0 for isIP. */ + export function isIP(input: string): number; + export function isIPv4(input: string): boolean; + export function isIPv6(input: string): boolean; + /* The Socket VALUE — the `x instanceof net.Socket` narrowing target + * (the h2 compat 'connect' listener's test). Constructing bare sockets + * has no lowering; the construct signature exists for instanceof. */ + export const Socket: abstract new () => Socket; + export function createServer(connectionListener?: (socket: Socket) => void): Server; + export function connect(port: number, host?: string, connectListener?: () => void): Socket; + export function createConnection( + port: number, + host?: string, + connectListener?: () => void, + ): Socket; + /* The caller-resolver dial (@types/node's net.LookupFunction): the + * runtime invokes it as Node's autoSelectFamily dial does (options + * { hints, all: true }, so the callback answers an address list) and + * dials the answered addresses in order. */ + export type LookupFunction = ( + hostname: string, + options: import("node:dns").LookupOptions, + callback: ( + err: NodeJS.ErrnoException | null, + address: string | import("node:dns").LookupAddress[], + family?: number, + ) => void, + ) => void; + export function connect( + options: { + port: number; + host?: string; + autoSelectFamily?: boolean; + lookup?: LookupFunction; + }, + connectListener?: () => void, + ): Socket; + export function createConnection( + options: { + port: number; + host?: string; + autoSelectFamily?: boolean; + lookup?: LookupFunction; + }, + connectListener?: () => void, + ): Socket; + /* The happy-eyeballs attempt budget (Node's process-wide knob; the + * autoSelectFamily dial consults it): one runtime int, default 250ms + * like Node's. */ + export function getDefaultAutoSelectFamilyAttemptTimeout(): number; + export function setDefaultAutoSelectFamilyAttemptTimeout(value: number): void; +} + +declare module "node:net" { + export * from "net"; +} diff --git a/packages/compiler/ambient/node-fallback/os.d.ts b/packages/compiler/ambient/node-fallback/os.d.ts new file mode 100644 index 000000000..d58592df5 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/os.d.ts @@ -0,0 +1,288 @@ +/* node:os — the slice a CLI needs: platform() (same implementation as + * process.platform), homedir(), tmpdir() (Node's env cascade), EOL + * (always "\n" — POSIX pinned, like path.sep), and networkInterfaces() + * (getifaddrs(3); the interface shapes mirror @types/node's exactly so + * both type worlds map to the same IR structure). */ +declare module "os" { + export function platform(): string; + export function homedir(): string; + export function tmpdir(): string; + /* uname(2)'s release field — Node's own implementation. */ + export function release(): string; + /* uname(2)'s sysname field ("Darwin", "Linux") — Node's os.type(). */ + export function type(): string; + /* Total system memory in bytes (sysctl hw.memsize / sysconf). */ + export function totalmem(): number; + export function availableParallelism(): number; + /* The passwd-entry snapshot (uv_os_get_passwd): shell is `string | + * null` to match @types/node (POSIX always answers the string arm); + * homedir is pw_dir — NOT os.homedir()'s $HOME-first cascade. The type + * is interned explicitly in type-mapper.ts (the AddressInfo pattern — this + * concrete form and @types/node's UserInfo both), and the call + * assembles field-by-field in lowerOsUserInfoCall. */ + export interface UserInfo { + username: string; + uid: number; + gid: number; + shell: string | null; + homedir: string; + } + export function userInfo(): UserInfo; + /* The TARGET platform's line terminator (a compile-time constant: + * "\r\n" under a win32 triple, "\n" everywhere else). */ + export const EOL: "\r\n" | "\n"; + export interface NetworkInterfaceBase { + address: string; + netmask: string; + mac: string; + internal: boolean; + cidr: string | null; + scopeid?: number; + } + export interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { + family: "IPv4"; + } + export interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { + family: "IPv6"; + scopeid: number; + } + export type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; + export function networkInterfaces(): { [name: string]: NetworkInterfaceInfo[] | undefined }; + /* Host facts, libuv's answers: model/speed/times per logical CPU, the + * host name, the 1/5/15-minute load averages, uptime in seconds, free + * memory in bytes, process.arch, uname's machine and version fields, + * the byte order, and a process's scheduling priority (an omitted pid + * is the current process). Shapes mirror @types/node's. */ + export interface CpuInfo { + model: string; + speed: number; + times: { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; + }; + } + export function cpus(): CpuInfo[]; + export function hostname(): string; + export function loadavg(): number[]; + export function uptime(): number; + export function freemem(): number; + export function arch(): string; + export function machine(): string; + export function version(): string; + export function endianness(): "BE" | "LE"; + export function getPriority(pid?: number): number; + export function setPriority(priority: number): void; + export function setPriority(pid: number, priority: number): void; + /* The TARGET platform's null device ("\\\\.\\nul" under a win32 triple). */ + export const devNull: string; + /* The platform's constants: null-prototype objects with read-only + * members, `signals` frozen (Node's internalBinding('constants').os). */ + export type SignalConstants = { + [ + key in + | "SIGABRT" + | "SIGALRM" + | "SIGBUS" + | "SIGCHLD" + | "SIGCONT" + | "SIGFPE" + | "SIGHUP" + | "SIGILL" + | "SIGINT" + | "SIGIO" + | "SIGIOT" + | "SIGKILL" + | "SIGPIPE" + | "SIGPOLL" + | "SIGPROF" + | "SIGPWR" + | "SIGQUIT" + | "SIGSEGV" + | "SIGSTKFLT" + | "SIGSTOP" + | "SIGSYS" + | "SIGTERM" + | "SIGTRAP" + | "SIGTSTP" + | "SIGTTIN" + | "SIGTTOU" + | "SIGUNUSED" + | "SIGURG" + | "SIGUSR1" + | "SIGUSR2" + | "SIGVTALRM" + | "SIGWINCH" + | "SIGXCPU" + | "SIGXFSZ" + | "SIGBREAK" + | "SIGLOST" + | "SIGINFO" + ]: number; + }; + export namespace constants { + const UV_UDP_REUSEADDR: number; + namespace signals {} + const signals: SignalConstants; + namespace errno { + const E2BIG: number; + const EACCES: number; + const EADDRINUSE: number; + const EADDRNOTAVAIL: number; + const EAFNOSUPPORT: number; + const EAGAIN: number; + const EALREADY: number; + const EBADF: number; + const EBADMSG: number; + const EBUSY: number; + const ECANCELED: number; + const ECHILD: number; + const ECONNABORTED: number; + const ECONNREFUSED: number; + const ECONNRESET: number; + const EDEADLK: number; + const EDESTADDRREQ: number; + const EDOM: number; + const EDQUOT: number; + const EEXIST: number; + const EFAULT: number; + const EFBIG: number; + const EHOSTUNREACH: number; + const EIDRM: number; + const EILSEQ: number; + const EINPROGRESS: number; + const EINTR: number; + const EINVAL: number; + const EIO: number; + const EISCONN: number; + const EISDIR: number; + const ELOOP: number; + const EMFILE: number; + const EMLINK: number; + const EMSGSIZE: number; + const EMULTIHOP: number; + const ENAMETOOLONG: number; + const ENETDOWN: number; + const ENETRESET: number; + const ENETUNREACH: number; + const ENFILE: number; + const ENOBUFS: number; + const ENODATA: number; + const ENODEV: number; + const ENOENT: number; + const ENOEXEC: number; + const ENOLCK: number; + const ENOLINK: number; + const ENOMEM: number; + const ENOMSG: number; + const ENOPROTOOPT: number; + const ENOSPC: number; + const ENOSR: number; + const ENOSTR: number; + const ENOSYS: number; + const ENOTCONN: number; + const ENOTDIR: number; + const ENOTEMPTY: number; + const ENOTSOCK: number; + const ENOTSUP: number; + const ENOTTY: number; + const ENXIO: number; + const EOPNOTSUPP: number; + const EOVERFLOW: number; + const EPERM: number; + const EPIPE: number; + const EPROTO: number; + const EPROTONOSUPPORT: number; + const EPROTOTYPE: number; + const ERANGE: number; + const EROFS: number; + const ESPIPE: number; + const ESRCH: number; + const ESTALE: number; + const ETIME: number; + const ETIMEDOUT: number; + const ETXTBSY: number; + const EWOULDBLOCK: number; + const EXDEV: number; + const WSAEINTR: number; + const WSAEBADF: number; + const WSAEACCES: number; + const WSAEFAULT: number; + const WSAEINVAL: number; + const WSAEMFILE: number; + const WSAEWOULDBLOCK: number; + const WSAEINPROGRESS: number; + const WSAEALREADY: number; + const WSAENOTSOCK: number; + const WSAEDESTADDRREQ: number; + const WSAEMSGSIZE: number; + const WSAEPROTOTYPE: number; + const WSAENOPROTOOPT: number; + const WSAEPROTONOSUPPORT: number; + const WSAESOCKTNOSUPPORT: number; + const WSAEOPNOTSUPP: number; + const WSAEPFNOSUPPORT: number; + const WSAEAFNOSUPPORT: number; + const WSAEADDRINUSE: number; + const WSAEADDRNOTAVAIL: number; + const WSAENETDOWN: number; + const WSAENETUNREACH: number; + const WSAENETRESET: number; + const WSAECONNABORTED: number; + const WSAECONNRESET: number; + const WSAENOBUFS: number; + const WSAEISCONN: number; + const WSAENOTCONN: number; + const WSAESHUTDOWN: number; + const WSAETOOMANYREFS: number; + const WSAETIMEDOUT: number; + const WSAECONNREFUSED: number; + const WSAELOOP: number; + const WSAENAMETOOLONG: number; + const WSAEHOSTDOWN: number; + const WSAEHOSTUNREACH: number; + const WSAENOTEMPTY: number; + const WSAEPROCLIM: number; + const WSAEUSERS: number; + const WSAEDQUOT: number; + const WSAESTALE: number; + const WSAEREMOTE: number; + const WSASYSNOTREADY: number; + const WSAVERNOTSUPPORTED: number; + const WSANOTINITIALISED: number; + const WSAEDISCON: number; + const WSAENOMORE: number; + const WSAECANCELLED: number; + const WSAEINVALIDPROCTABLE: number; + const WSAEINVALIDPROVIDER: number; + const WSAEPROVIDERFAILEDINIT: number; + const WSASYSCALLFAILURE: number; + const WSASERVICE_NOT_FOUND: number; + const WSATYPE_NOT_FOUND: number; + const WSA_E_NO_MORE: number; + const WSA_E_CANCELLED: number; + const WSAEREFUSED: number; + } + namespace dlopen { + const RTLD_LAZY: number; + const RTLD_NOW: number; + const RTLD_GLOBAL: number; + const RTLD_LOCAL: number; + const RTLD_DEEPBIND: number; + } + namespace priority { + const PRIORITY_LOW: number; + const PRIORITY_BELOW_NORMAL: number; + const PRIORITY_NORMAL: number; + const PRIORITY_ABOVE_NORMAL: number; + const PRIORITY_HIGH: number; + const PRIORITY_HIGHEST: number; + } + } +} + +declare module "node:os" { + export * from "os"; +} diff --git a/packages/compiler/ambient/node-fallback/path-posix.d.ts b/packages/compiler/ambient/node-fallback/path-posix.d.ts new file mode 100644 index 000000000..66db6a876 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/path-posix.d.ts @@ -0,0 +1,22 @@ +/// + +declare module "path/posix" { + export function join(...paths: string[]): string; + export function resolve(...paths: string[]): string; + export function normalize(path: string): string; + export function dirname(path: string): string; + export function basename(path: string, suffix?: string): string; + export function extname(path: string): string; + export function isAbsolute(path: string): boolean; + export function relative(from: string, to: string): string; + export function toNamespacedPath(path: string): string; + export function matchesGlob(path: string, pattern: string): boolean; + export function parse(path: string): import("path").ParsedPath; + export function format(pathObject: import("path").FormatInputPathObject): string; + export const sep: "/"; + export const delimiter: ":"; +} + +declare module "node:path/posix" { + export * from "path/posix"; +} diff --git a/packages/compiler/ambient/node-fallback/path-win32.d.ts b/packages/compiler/ambient/node-fallback/path-win32.d.ts new file mode 100644 index 000000000..b889a34e0 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/path-win32.d.ts @@ -0,0 +1,22 @@ +/// + +declare module "path/win32" { + export function join(...paths: string[]): string; + export function resolve(...paths: string[]): string; + export function normalize(path: string): string; + export function dirname(path: string): string; + export function basename(path: string, suffix?: string): string; + export function extname(path: string): string; + export function isAbsolute(path: string): boolean; + export function relative(from: string, to: string): string; + export function toNamespacedPath(path: string): string; + export function matchesGlob(path: string, pattern: string): boolean; + export function parse(path: string): import("path").ParsedPath; + export function format(pathObject: import("path").FormatInputPathObject): string; + export const sep: "\\"; + export const delimiter: ";"; +} + +declare module "node:path/win32" { + export * from "path/win32"; +} diff --git a/packages/compiler/ambient/node-fallback/path.d.ts b/packages/compiler/ambient/node-fallback/path.d.ts new file mode 100644 index 000000000..a57e40bb7 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/path.d.ts @@ -0,0 +1,55 @@ +/// +/// + +/* node:path — the TARGET platform's implementation (Node's rule): posix + * on posix triples, path.win32 under a win32 triple, with the posix and + * win32 namespaces answering their own platform anywhere. Every function + * is a pure string algorithm matching Node's implementations + * exactly; join/resolve are variadic like Node's. */ +declare module "path" { + export function join(...paths: string[]): string; + export function resolve(...paths: string[]): string; + export function normalize(path: string): string; + export function dirname(path: string): string; + export function basename(path: string, suffix?: string): string; + export function extname(path: string): string; + export function isAbsolute(path: string): boolean; + export function relative(from: string, to: string): string; + export function toNamespacedPath(path: string): string; + /* matchesGlob() is Node's glob matcher: brace expansion, extglobs, POSIX + * classes and the ** and dot rules. */ + export function matchesGlob(path: string, pattern: string): boolean; + /* parse() splits a path into its root, directory, base, extension and + * name; format() joins those fields back (Node's `||` defaults). */ + export interface ParsedPath { + root: string; + dir: string; + base: string; + ext: string; + name: string; + } + export interface FormatInputPathObject { + root?: string | undefined; + dir?: string | undefined; + base?: string | undefined; + ext?: string | undefined; + name?: string | undefined; + } + export function parse(path: string): ParsedPath; + export function format(pathObject: FormatInputPathObject): string; + /* The union @types/node declares: the bare module answers the TARGET + * platform's value (a compile-time constant — "\\"/";" under a win32 + * triple, "/"/":" everywhere else). */ + export const sep: "\\" | "/"; + export const delimiter: ";" | ":"; + /* The platform-specific namespaces (real Node submodules too — + * "node:path/posix" resolves). Each carries the FULL surface and + * answers ITS platform's rules on any target, Node's own contract; + * the bare module IS the target platform's implementation. */ + export const posix: typeof import("path/posix"); + export const win32: typeof import("path/win32"); +} + +declare module "node:path" { + export * from "path"; +} diff --git a/packages/compiler/ambient/node-fallback/process.d.ts b/packages/compiler/ambient/node-fallback/process.d.ts new file mode 100644 index 000000000..7782a1b2d --- /dev/null +++ b/packages/compiler/ambient/node-fallback/process.d.ts @@ -0,0 +1,11 @@ +/* Node's process module default export is the global process object. These + * declaration aliases let the ESM spelling typecheck against the same + * deliberately narrow fallback surface when @types/node is absent. */ +declare module "process" { + export = process; +} + +declare module "node:process" { + import process = require("process"); + export = process; +} diff --git a/packages/compiler/ambient/node-fallback/punycode.d.ts b/packages/compiler/ambient/node-fallback/punycode.d.ts new file mode 100644 index 000000000..fc2725c5d --- /dev/null +++ b/packages/compiler/ambient/node-fallback/punycode.d.ts @@ -0,0 +1,18 @@ +/* node:punycode (deprecated, DEP0040) — punycode.js 2.1.0: decode and + * toUnicode throw its RangeErrors on malformed input; ucs2 converts + * between strings and UTF-16 code point arrays. */ +declare module "punycode" { + export function decode(string: string): string; + export function encode(string: string): string; + export function toUnicode(domain: string): string; + export function toASCII(domain: string): string; + export namespace ucs2 { + function decode(string: string): number[]; + function encode(codePoints: readonly number[]): string; + } + export const version: string; +} + +declare module "node:punycode" { + export * from "punycode"; +} diff --git a/packages/compiler/ambient/node-fallback/querystring.d.ts b/packages/compiler/ambient/node-fallback/querystring.d.ts new file mode 100644 index 000000000..4ee4346bb --- /dev/null +++ b/packages/compiler/ambient/node-fallback/querystring.d.ts @@ -0,0 +1,55 @@ +/* node:querystring — Node's legacy query-string codec (NOT + * URLSearchParams: '+' means space on the parse side and escape encodes + * spaces as %20). parse answers the null-prototype dictionary as a pure + * index-signature record (repeated keys become string[] buckets; + * @types/node's Dict adds an undefined arm the lowering tolerates); + * stringify serializes string/number/boolean values and arrays of those + * (Node's rules: arrays expand to repeated keys, null/undefined and + * anything else serialize as the empty value). The maxKeys option lowers + * (0 removes the cap, Node's rule); the custom encoder/decoder options + * typecheck under the options-record stance and fence by name at the + * call. decode/encode are Node's own aliases of parse/stringify. */ +declare module "querystring" { + export interface ParseOptions { + maxKeys?: number; + decodeURIComponent?: (str: string) => string; + [option: string]: unknown; + } + export interface StringifyOptions { + encodeURIComponent?: (str: string) => string; + [option: string]: unknown; + } + export interface ParsedUrlQuery { + [key: string]: string | string[] | undefined; + } + export interface ParsedUrlQueryInput { + [key: string]: + | string + | number + | boolean + | bigint + | ReadonlyArray + | null + | undefined; + } + export function parse( + str: string, + sep?: string | null, + eq?: string | null, + options?: ParseOptions, + ): ParsedUrlQuery; + export function stringify( + obj?: ParsedUrlQueryInput, + sep?: string | null, + eq?: string | null, + options?: StringifyOptions, + ): string; + export const decode: typeof parse; + export const encode: typeof stringify; + export function escape(str: string): string; + export function unescape(str: string): string; +} + +declare module "node:querystring" { + export * from "querystring"; +} diff --git a/packages/compiler/ambient/node-fallback/stream-consumers.d.ts b/packages/compiler/ambient/node-fallback/stream-consumers.d.ts new file mode 100644 index 000000000..9e220ea17 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/stream-consumers.d.ts @@ -0,0 +1,21 @@ +declare module "stream/consumers" { + /* The promise consumers over a readable: accumulate every chunk and + * settle — text (the utf8 decode), json (the text through JSON.parse: + * `unknown`, validated with a checked cast; malformed input rejects + * with the parse's SyntaxError), buffer (the concatenated bytes; + * string chunks contribute their utf8 bytes, Node's Blob rule). + * Stream errors reject; an early close rejects with + * ERR_STREAM_PREMATURE_CLOSE. arrayBuffer answers an ArrayBuffer over + * the bytes; blob fences per site. */ + function text(stream: unknown): Promise; + function json(stream: unknown): Promise; + function buffer(stream: unknown): Promise; + function arrayBuffer(stream: unknown): Promise; + function blob(stream: unknown): Promise; + export { arrayBuffer, blob, buffer, json, text }; +} + +declare module "node:stream/consumers" { + import streamConsumers = require("stream/consumers"); + export = streamConsumers; +} diff --git a/packages/compiler/ambient/node-fallback/stream-promises.d.ts b/packages/compiler/ambient/node-fallback/stream-promises.d.ts new file mode 100644 index 000000000..bf771d571 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/stream-promises.d.ts @@ -0,0 +1,28 @@ +/// + +declare module "stream/promises" { + /* The promise forms of finished/pipeline: a void promise the stream's + * terminal point settles (rejected with the error, or + * ERR_STREAM_PREMATURE_CLOSE on an early close). Stream arguments are + * the lowered surface — iterables/generators/functions fence per site. + * pipeline's trailing { signal, end } object and finished's options + * (readable, writable, error, cleanup, signal) are supported. A last + * stage that is an async function resolves the promise with its value. */ + function pipeline(...streams: T): import("stream").PipelinePromise; + function finished( + stream: unknown, + options?: { + readable?: boolean; + writable?: boolean; + error?: boolean; + cleanup?: boolean; + signal?: AbortSignal; + } | null, + ): Promise; + export { pipeline, finished }; +} + +declare module "node:stream/promises" { + import streamPromises = require("stream/promises"); + export = streamPromises; +} diff --git a/packages/compiler/ambient/node-fallback/stream-web.d.ts b/packages/compiler/ambient/node-fallback/stream-web.d.ts new file mode 100644 index 000000000..f947e667d --- /dev/null +++ b/packages/compiler/ambient/node-fallback/stream-web.d.ts @@ -0,0 +1,17 @@ +/* node:stream/web — the module exports the web stream globals themselves + * (require("stream/web").ReadableStream === globalThis.ReadableStream). + * ReadableStream is the implemented class; its reader and controller are + * exported as types. */ +declare module "stream/web" { + export const ReadableStream: typeof globalThis.ReadableStream; + export type ReadableStream = globalThis.ReadableStream; + export type ReadableStreamDefaultReader = globalThis.ReadableStreamDefaultReader; + export type ReadableStreamDefaultController = + globalThis.ReadableStreamDefaultController; + export type UnderlyingSource = globalThis.UnderlyingSource; + export type QueuingStrategy = globalThis.QueuingStrategy; +} + +declare module "node:stream/web" { + export * from "stream/web"; +} diff --git a/packages/compiler/ambient/node-fallback/stream.d.ts b/packages/compiler/ambient/node-fallback/stream.d.ts new file mode 100644 index 000000000..24f290fd9 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/stream.d.ts @@ -0,0 +1,644 @@ +/// + +/* node:stream — the static stream classes (runtime-provided, the + * EventEmitter-hierarchy precedent). Phase 1 is the OPTIONS-OBJECT + * constructor surface: `new Readable({ read() {} })`, `new Writable({ + * write(chunk, enc, cb) {} })`, Duplex/Transform/PassThrough, push/read, + * flowing vs paused, write/end backpressure + 'drain', pipe/unpipe, and + * destroy — with Node's event orderings. Chunks are BYTES (Buffer), with + * strings converted at push/write like Node, and any value on an + * object-mode side (objectMode, readableObjectMode, writableObjectMode — + * the object-mode constructor overloads come first). The runtime-fired + * events carry per-class FORCED argument tuples ('data' is one chunk, + * 'error' one Error, 'pipe'/'unpipe' one Readable, the rest empty) — the + * overloads below hand tsc the same contract so unannotated listener + * parameters contextually type in .js sources. */ +declare module "stream" { + import { EventEmitter } from "events"; + + interface ReadableOptions { + highWaterMark?: number; + encoding?: string; + objectMode?: boolean; + read?(this: Readable, size: number): void; + destroy?(this: Readable, error: Error | null, callback: (error?: Error | null) => void): void; + construct?(this: Readable, callback: (error?: Error | null) => void): void; + autoDestroy?: boolean; + emitClose?: boolean; + captureRejections?: boolean; + defaultEncoding?: string; + signal?: AbortSignal; + } + interface WritableOptions { + highWaterMark?: number; + decodeStrings?: boolean; + defaultEncoding?: string; + objectMode?: boolean; + write?( + this: Writable, + chunk: Buffer, + encoding: string, + callback: (error?: Error | null) => void, + ): void; + writev?( + this: Writable, + chunks: Array<{ chunk: any; encoding: string }>, + callback: (error?: Error | null) => void, + ): void; + final?(this: Writable, callback: (error?: Error | null) => void): void; + destroy?(this: Writable, error: Error | null, callback: (error?: Error | null) => void): void; + construct?(this: Writable, callback: (error?: Error | null) => void): void; + autoDestroy?: boolean; + emitClose?: boolean; + captureRejections?: boolean; + signal?: AbortSignal; + } + interface DuplexOptions { + highWaterMark?: number; + readableHighWaterMark?: number; + writableHighWaterMark?: number; + encoding?: string; + decodeStrings?: boolean; + objectMode?: boolean; + readableObjectMode?: boolean; + writableObjectMode?: boolean; + allowHalfOpen?: boolean; + read?(this: Duplex, size: number): void; + write?( + this: Duplex, + chunk: Buffer, + encoding: string, + callback: (error?: Error | null) => void, + ): void; + final?(this: Duplex, callback: (error?: Error | null) => void): void; + destroy?(this: Duplex, error: Error | null, callback: (error?: Error | null) => void): void; + construct?(this: Duplex, callback: (error?: Error | null) => void): void; + autoDestroy?: boolean; + emitClose?: boolean; + captureRejections?: boolean; + readable?: boolean; + writable?: boolean; + defaultEncoding?: string; + writev?( + this: Duplex, + chunks: Array<{ chunk: any; encoding: string }>, + callback: (error?: Error | null) => void, + ): void; + signal?: AbortSignal; + } + interface TransformOptions { + highWaterMark?: number; + readableHighWaterMark?: number; + writableHighWaterMark?: number; + encoding?: string; + decodeStrings?: boolean; + objectMode?: boolean; + readableObjectMode?: boolean; + writableObjectMode?: boolean; + allowHalfOpen?: boolean; + transform?( + this: Transform, + chunk: Buffer, + encoding: string, + callback: (error?: Error | null, data?: Buffer | string) => void, + ): void; + flush?(this: Transform, callback: (error?: Error | null, data?: Buffer | string) => void): void; + destroy?(this: Transform, error: Error | null, callback: (error?: Error | null) => void): void; + construct?(this: Transform, callback: (error?: Error | null) => void): void; + read?(this: Transform, size: number): void; + write?( + this: Transform, + chunk: Buffer, + encoding: string, + callback: (error?: Error | null) => void, + ): void; + final?(this: Transform, callback: (error?: Error | null) => void): void; + writev?(this: Transform, chunks: unknown[], callback: (error?: Error | null) => void): void; + autoDestroy?: boolean; + emitClose?: boolean; + captureRejections?: boolean; + readable?: boolean; + writable?: boolean; + defaultEncoding?: string; + signal?: AbortSignal; + } + + /* Object-mode options (objectMode: true, or a Duplex's or Transform's + * readableObjectMode / writableObjectMode): chunks and completion data + * are any values, and an object-mode write's encoding argument reaches + * write/transform as passed (undefined when absent, null when a + * callback took its place). The constructors take these before the + * byte-mode options, so a byte-mode stream's callbacks keep Buffer + * chunks. */ + type ObjectModeEncoding = string | null | undefined; + type ObjectModeFlag = + | { objectMode: true } + | { readableObjectMode: true } + | { writableObjectMode: true }; + interface ObjectWritableOptions extends Omit { + objectMode: true; + write?( + this: Writable, + chunk: any, + encoding: ObjectModeEncoding, + callback: (error?: Error | null) => void, + ): void; + } + type ObjectDuplexOptions = Omit & { + write?( + this: Duplex, + chunk: any, + encoding: ObjectModeEncoding, + callback: (error?: Error | null) => void, + ): void; + } & ObjectModeFlag; + type ObjectTransformOptions = Omit & { + transform?( + this: Transform, + chunk: any, + encoding: ObjectModeEncoding, + callback: (error?: Error | null, data?: any) => void, + ): void; + flush?(this: Transform, callback: (error?: Error | null, data?: any) => void): void; + write?( + this: Transform, + chunk: any, + encoding: ObjectModeEncoding, + callback: (error?: Error | null) => void, + ): void; + } & ObjectModeFlag; + + /* decodeStrings: false — a string write reaches write/transform as the + * string with its encoding (Buffers keep 'buffer'). */ + interface StringWritableOptions extends Omit { + decodeStrings: false; + write?( + this: Writable, + chunk: string | Buffer, + encoding: string, + callback: (error?: Error | null) => void, + ): void; + } + type StringDuplexOptions = Omit & { + decodeStrings: false; + write?( + this: Duplex, + chunk: string | Buffer, + encoding: string, + callback: (error?: Error | null) => void, + ): void; + }; + type StringTransformOptions = Omit & { + decodeStrings: false; + transform?( + this: Transform, + chunk: string | Buffer, + encoding: string, + callback: (error?: Error | null, data?: Buffer | string) => void, + ): void; + }; + + /* The operators' options: concurrency and highWaterMark bound map's + * in-flight callbacks and queued results. */ + interface ArrayOptions { + concurrency?: number; + highWaterMark?: number; + signal?: AbortSignal; + } + + class Readable extends EventEmitter { + constructor(opts?: ReadableOptions); + /* The underscore-method surface (@types/node declares these on the + * classes; assigning them post-construction shadows the prototype + * method and the machinery calls through the assignment — lowered + * onto the option-callback slots). */ + _read(size: number): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + [Symbol.asyncIterator](): AsyncIterableIterator; + iterator(options?: { destroyOnReturn?: boolean }): AsyncIterableIterator; + /* compose(this, stage), destroyed when options.signal aborts. */ + compose(stage: ComposeStage, options?: { signal: AbortSignal }): Duplex; + push(chunk: Buffer | string | null, encoding?: string): boolean; + /* An object-mode stream's values. */ + push(chunk: any, encoding?: string): boolean; + unshift(chunk: Buffer | string, encoding?: string): void; + unshift(chunk: any, encoding?: string): void; + /* A Buffer, a string once encoded, an object-mode value, or null (as + * @types/node types it). */ + read(size?: number): any; + pause(): this; + resume(): this; + isPaused(): boolean; + setEncoding(encoding: string): this; + pipe(destination: T, options?: { end?: boolean }): T; + unpipe(destination?: NodeJS.WritableStream): this; + destroy(error?: Error): this; + readonly readable: boolean; + readonly readableEnded: boolean; + readonly readableFlowing: boolean | null; + readonly readableLength: number; + readonly readableHighWaterMark: number; + readonly readableObjectMode: boolean; + readonly closed: boolean; + readonly destroyed: boolean; + readonly errored: Error | null; + static from(iterable: unknown, options?: ReadableOptions): Readable; + /* A Readable over a web ReadableStream's reader. */ + static fromWeb( + readableStream: globalThis.ReadableStream, + options?: { + encoding?: string; + highWaterMark?: number; + objectMode?: boolean; + signal?: AbortSignal; + }, + ): Readable; + /* The Readable operators: chunks are strings or Buffers, map and + * flatMap callbacks return strings or Buffers (flatMap: arrays of + * them, or strings), and callbacks that declare the options argument + * are refused. */ + map( + fn: (data: any, options?: Pick) => any, + options?: ArrayOptions, + ): Readable; + filter( + fn: (data: any, options?: Pick) => boolean | Promise, + options?: ArrayOptions, + ): Readable; + forEach( + fn: (data: any, options?: Pick) => void | Promise, + options?: ArrayOptions, + ): Promise; + toArray(options?: Pick): Promise; + some( + fn: (data: any, options?: Pick) => boolean | Promise, + options?: ArrayOptions, + ): Promise; + find( + fn: (data: any, options?: Pick) => boolean | Promise, + options?: ArrayOptions, + ): Promise; + every( + fn: (data: any, options?: Pick) => boolean | Promise, + options?: ArrayOptions, + ): Promise; + flatMap( + fn: (data: any, options?: Pick) => any, + options?: ArrayOptions, + ): Readable; + drop(limit: number, options?: Pick): Readable; + take(limit: number, options?: Pick): Readable; + reduce( + fn: (previous: any, data: any, options?: Pick) => T, + initial?: undefined, + options?: Pick, + ): Promise; + reduce( + fn: (previous: T, data: any, options?: Pick) => T, + initial: T, + options?: Pick, + ): Promise; + on(event: "data", listener: (chunk: any) => void): this; + on(event: "end" | "close" | "readable" | "pause" | "resume", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: "data", listener: (chunk: any) => void): this; + once(event: "end" | "close" | "readable" | "pause" | "resume", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + addListener(event: "data", listener: (chunk: any) => void): this; + addListener( + event: "end" | "close" | "readable" | "pause" | "resume", + listener: () => void, + ): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "data", listener: (chunk: any) => void): this; + prependListener( + event: "end" | "close" | "readable" | "pause" | "resume", + listener: () => void, + ): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "data", listener: (chunk: any) => void): this; + prependOnceListener( + event: "end" | "close" | "readable" | "pause" | "resume", + listener: () => void, + ): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + off(event: "data", listener: (chunk: any) => void): this; + off(event: "end" | "close" | "readable" | "pause" | "resume", listener: () => void): this; + off(event: "error", listener: (err: Error) => void): this; + off(event: string, listener: (...args: any[]) => void): this; + removeListener(event: "data", listener: (chunk: any) => void): this; + removeListener( + event: "end" | "close" | "readable" | "pause" | "resume", + listener: () => void, + ): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: string, listener: (...args: any[]) => void): this; + } + + class Writable extends EventEmitter { + constructor(opts: ObjectWritableOptions); + constructor(opts: StringWritableOptions); + constructor(opts?: WritableOptions); + /* The underscore-method surface (see Readable). */ + _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + _writev( + chunks: Array<{ chunk: any; encoding: string }>, + callback: (error?: Error | null) => void, + ): void; + _final(callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + write(chunk: Buffer | string, callback?: (error?: Error | null) => void): boolean; + write( + chunk: Buffer | string, + encoding: string, + callback?: (error?: Error | null) => void, + ): boolean; + /* An object-mode stream's values (the encoding argument reaches + * _write as passed). */ + write(chunk: any, callback?: (error?: Error | null) => void): boolean; + write( + chunk: any, + encoding: ObjectModeEncoding, + callback?: (error?: Error | null) => void, + ): boolean; + end(callback?: () => void): this; + end(chunk: Buffer | string, callback?: () => void): this; + end(chunk: Buffer | string, encoding: string, callback?: () => void): this; + end(chunk: any, callback?: () => void): this; + end(chunk: any, encoding: ObjectModeEncoding, callback?: () => void): this; + cork(): void; + uncork(): void; + setDefaultEncoding(encoding: string): this; + destroy(error?: Error): this; + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableLength: number; + readonly writableHighWaterMark: number; + readonly writableObjectMode: boolean; + readonly writableNeedDrain: boolean; + readonly writableCorked: number; + readonly closed: boolean; + readonly destroyed: boolean; + readonly errored: Error | null; + on(event: "drain" | "finish" | "close", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: "drain" | "finish" | "close", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + addListener(event: "drain" | "finish" | "close", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "drain" | "finish" | "close", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "drain" | "finish" | "close", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + off(event: "drain" | "finish" | "close", listener: () => void): this; + off(event: "error", listener: (err: Error) => void): this; + off(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + off(event: string, listener: (...args: any[]) => void): this; + removeListener(event: "drain" | "finish" | "close", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + removeListener(event: string, listener: (...args: any[]) => void): this; + } + + /* Duplex is Readable + Writable in one object. TS single inheritance + * mirrors @types/node: extends Readable, the writable half declared + * again. The lowering treats both halves as first-class. */ + class Duplex extends Readable { + /* Duplex.from: an async generator function, an iterable, a string or + * a stream (duplexify.js). */ + static from(body: unknown): Duplex; + constructor(opts: ObjectDuplexOptions); + constructor(opts: StringDuplexOptions); + constructor(opts?: DuplexOptions); + /* The underscore-method surface (see Readable). */ + _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + _writev( + chunks: Array<{ chunk: any; encoding: string }>, + callback: (error?: Error | null) => void, + ): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: Buffer | string, callback?: (error?: Error | null) => void): boolean; + write( + chunk: Buffer | string, + encoding: string, + callback?: (error?: Error | null) => void, + ): boolean; + /* An object-mode stream's values (the encoding argument reaches + * _write as passed). */ + write(chunk: any, callback?: (error?: Error | null) => void): boolean; + write( + chunk: any, + encoding: ObjectModeEncoding, + callback?: (error?: Error | null) => void, + ): boolean; + end(callback?: () => void): this; + end(chunk: Buffer | string, callback?: () => void): this; + end(chunk: Buffer | string, encoding: string, callback?: () => void): this; + end(chunk: any, callback?: () => void): this; + end(chunk: any, encoding: ObjectModeEncoding, callback?: () => void): this; + cork(): void; + uncork(): void; + setDefaultEncoding(encoding: string): this; + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableLength: number; + readonly writableHighWaterMark: number; + readonly writableObjectMode: boolean; + readonly writableNeedDrain: boolean; + readonly writableCorked: number; + readonly allowHalfOpen: boolean; + on(event: "data", listener: (chunk: any) => void): this; + on( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: "data", listener: (chunk: any) => void): this; + once( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + addListener(event: "data", listener: (chunk: any) => void): this; + addListener( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "data", listener: (chunk: any) => void): this; + prependListener( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "data", listener: (chunk: any) => void): this; + prependOnceListener( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + off(event: "data", listener: (chunk: any) => void): this; + off( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + off(event: "error", listener: (err: Error) => void): this; + off(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + off(event: string, listener: (...args: any[]) => void): this; + removeListener(event: "data", listener: (chunk: any) => void): this; + removeListener( + event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", + listener: () => void, + ): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; + removeListener(event: string, listener: (...args: any[]) => void): this; + } + + class Transform extends Duplex { + constructor(opts: ObjectTransformOptions); + constructor(opts: StringTransformOptions); + constructor(opts?: TransformOptions); + /* The underscore-method surface (see Readable). */ + _transform( + chunk: any, + encoding: string, + callback: (error?: Error | null, data?: any) => void, + ): void; + _flush(callback: (error?: Error | null, data?: any) => void): void; + } + class PassThrough extends Transform { + constructor(opts: ObjectTransformOptions); + constructor(opts: StringTransformOptions); + constructor(opts?: TransformOptions); + } + + /* addAbortSignal(signal, stream): the stream, destroyed with an + * AbortError (cause: signal.reason) when the signal aborts. */ + function addAbortSignal(signal: AbortSignal, stream: T): T; + /* pipeline(...stages, callback): the last stream, or the object-mode + * PassThrough that a function destination feeds. */ + type PipelineResult = T extends [ + ...unknown[], + infer D, + (...args: any[]) => unknown, + ] + ? D extends (...args: any[]) => unknown + ? PassThrough + : D + : unknown; + function pipeline(...streams: T): PipelineResult; + /* util.promisify's pipeline overload matches only pipeline itself: a + * generic signature alone admits every function. */ + namespace pipeline { + const __promisify__: typeof promises.pipeline; + } + /* A compose stage: a stream, an async generator function over the + * previous stage, or (first) an iterable, async iterable or web + * ReadableStream. */ + type ComposeStage = + | Readable + | Writable + | Iterable + | AsyncIterable + | globalThis.ReadableStream + | ((source: any, options?: { signal: AbortSignal }) => unknown); + /* compose(...streams): a Duplex that writes to the first stage and + * reads from the last, with the stages running as a pipeline. */ + function compose(...streams: ComposeStage[]): Duplex; + /* finished's options: readable/writable choose which ends count, + * error: false ignores 'error' events, signal aborts the wait. */ + interface FinishedOptions { + readable?: boolean; + writable?: boolean; + error?: boolean; + signal?: AbortSignal; + } + function finished(stream: unknown, callback: (err?: Error | null) => void): () => void; + function finished( + stream: unknown, + options: FinishedOptions | null, + callback: (err?: Error | null) => void, + ): () => void; + /* Folds to the TARGET platform's default at compile time (win32 16384, + * else 65536 — Node's own state.js split); literal argument only. */ + function getDefaultHighWaterMark(objectMode: boolean): number; + /* The promise pipeline's result: a last stage that is an async + * function resolves the promise with its value (before the options + * argument, when one follows). */ + type PipelinePromise = T extends [ + ...unknown[], + (...args: any[]) => Promise, + ] + ? Promise

      + : T extends [ + ...unknown[], + (...args: any[]) => Promise, + { signal?: AbortSignal; end?: boolean }, + ] + ? Promise

      + : Promise; + namespace promises { + function pipeline(...streams: T): PipelinePromise; + function finished( + stream: unknown, + options?: FinishedOptions & { cleanup?: boolean }, + ): Promise; + } + class Stream extends EventEmitter {} + + export { + Readable, + Writable, + Duplex, + Transform, + PassThrough, + Stream, + addAbortSignal, + pipeline, + compose, + finished, + getDefaultHighWaterMark, + promises, + }; + export type { + ReadableOptions, + WritableOptions, + DuplexOptions, + TransformOptions, + FinishedOptions, + PipelinePromise, + }; +} + +declare module "node:stream" { + import stream = require("stream"); + export = stream; +} diff --git a/packages/compiler/ambient/node-fallback/string_decoder.d.ts b/packages/compiler/ambient/node-fallback/string_decoder.d.ts new file mode 100644 index 000000000..617a7871c --- /dev/null +++ b/packages/compiler/ambient/node-fallback/string_decoder.d.ts @@ -0,0 +1,20 @@ +/* node:string_decoder — StringDecoder over Node's whole encoding set: + * write() decodes complete sequences and buffers a trailing partial one + * across chunk boundaries (utf8's truncated sequence, base64's mod-3 + * remainder, utf16le's odd byte / trailing lead surrogate; latin1, ascii + * and hex are stateless); end() flushes the buffered partial. `encoding` + * answers the normalized name. Node's exact algorithms (SEMANTICS.md); + * the encoding must be a literal, and end(buffer) fences — write the + * buffer, then end(). */ +declare module "string_decoder" { + export class StringDecoder { + constructor(encoding?: BufferEncoding); + readonly encoding: string; + write(buffer: Uint8Array): string; + end(buffer?: Uint8Array): string; + } +} + +declare module "node:string_decoder" { + export * from "string_decoder"; +} diff --git a/packages/compiler/ambient/node-fallback/test.d.ts b/packages/compiler/ambient/node-fallback/test.d.ts new file mode 100644 index 000000000..2ca1c0fe7 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/test.d.ts @@ -0,0 +1,236 @@ +/// + +/* node:assert — the static assertion surface. The module object IS a + * callable function (`assert(x)` is `assert.ok(x)`), so the declaration + * is the callable-namespace `export =` shape and BOTH `import assert + * from "node:assert"` and `const assert = require("assert")` bind the + * callable; named imports take the members. Failures throw + * AssertionError (name "AssertionError", code "ERR_ASSERTION" — catch and + * read .name/.message/.code). strictEqual/deepStrictEqual compare with + * Object.is over scalars; deepStrictEqual compares composites + * structurally per their static types. The messages here are plain + * strings (Node accepts Errors — that form fences per site), and the + * shallow legacy pair (equal/notEqual) follows Node's == coercions for + * primitive and primitive-union operands, including Node v24's NaN + * exception. deepEqual/notDeepEqual remain declared-but-fenced; + * assert/strict's loose names alias the strict forms and lower. */ +/* node:test — the in-process test runner (prefix-only in Node too: + * require("test") is MODULE_NOT_FOUND). test/it register tests (sync and + * async bodies, skip/todo/only options and method twins), describe/suite + * group them (bodies run at registration, Node's collection phase), + * before/after/beforeEach/afterEach hook the enclosing suite, and the + * TestContext argument carries subtests (t.test), t.skip/t.todo, + * t.diagnostic, and t.assert. mock/run/snapshot are DECLARED so real + * suites typecheck but fence at their use sites (no lowering). */ +declare module "node:test" { + type TestFn = (t: TestContext) => void | Promise; + type SuiteFn = (s: SuiteContext) => void; + type HookFn = (c: TestContext | SuiteContext) => void | Promise; + /* The describe/suite callback's context, and the before/after hook + * context of a suite. */ + interface SuiteContext { + readonly name: string; + readonly fullName: string; + readonly filePath: string | undefined; + readonly attempt: number; + readonly passed: boolean; + diagnostic(message: string): void; + } + interface TestOptions { + skip?: boolean | string; + todo?: boolean | string; + only?: boolean; + concurrency?: number | boolean; + timeout?: number; + plan?: number; + } + interface TestContext { + readonly name: string; + readonly fullName: string; + readonly filePath: string | undefined; + readonly attempt: number; + readonly passed: boolean; + readonly workerId: number | undefined; + readonly tags: readonly string[]; + readonly assert: TestContextAssert; + readonly mock: MockTracker; + test(name?: string, fn?: TestFn): Promise; + test(name?: string, options?: TestOptions, fn?: TestFn): Promise; + test(options?: TestOptions, fn?: TestFn): Promise; + test(fn?: TestFn): Promise; + skip(message?: string): void; + todo(message?: string): void; + diagnostic(message: string): void; + plan(count: number): void; + after(fn: HookFn): void; + before(fn: HookFn): void; + beforeEach(fn: HookFn): void; + afterEach(fn: HookFn): void; + } + interface AssertSnapshotOptions { + readonly serializers?: ReadonlyArray<(value: any) => any> | undefined; + } + interface TestContextAssert { + snapshot(value: any, options?: AssertSnapshotOptions): void; + fileSnapshot(value: any, path: string, options?: AssertSnapshotOptions): void; + ok(value: unknown, message?: string): void; + strictEqual(actual: unknown, expected: unknown, message?: string): void; + notStrictEqual(actual: unknown, expected: unknown, message?: string): void; + deepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; + equal(actual: unknown, expected: unknown, message?: string): void; + notEqual(actual: unknown, expected: unknown, message?: string): void; + deepEqual(actual: unknown, expected: unknown, message?: string): void; + notDeepEqual(actual: unknown, expected: unknown, message?: string): void; + fail(message?: string): never; + throws(fn: () => unknown, expected?: unknown, message?: string): void; + match(value: string, regExp: RegExp, message?: string): void; + doesNotMatch(value: string, regExp: RegExp, message?: string): void; + } + /* The name, options and function are each optional, as in Node: a test + * without a name takes the function's name, or "". */ + function test(name?: string, fn?: TestFn): Promise; + function test(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function test(options?: TestOptions, fn?: TestFn): Promise; + function test(fn?: TestFn): Promise; + namespace test { + function skip(name?: string, fn?: TestFn): Promise; + function skip(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function skip(options?: TestOptions, fn?: TestFn): Promise; + function skip(fn?: TestFn): Promise; + function todo(name?: string, fn?: TestFn): Promise; + function todo(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function todo(options?: TestOptions, fn?: TestFn): Promise; + function todo(fn?: TestFn): Promise; + function only(name?: string, fn?: TestFn): Promise; + function only(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function only(options?: TestOptions, fn?: TestFn): Promise; + function only(fn?: TestFn): Promise; + } + const it: typeof test; + function describe(name?: string, fn?: SuiteFn): void; + function describe(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function describe(options?: TestOptions, fn?: SuiteFn): void; + function describe(fn?: SuiteFn): void; + namespace describe { + function skip(name?: string, fn?: SuiteFn): void; + function skip(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function skip(options?: TestOptions, fn?: SuiteFn): void; + function skip(fn?: SuiteFn): void; + function todo(name?: string, fn?: SuiteFn): void; + function todo(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function todo(options?: TestOptions, fn?: SuiteFn): void; + function todo(fn?: SuiteFn): void; + function only(name?: string, fn?: SuiteFn): void; + function only(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function only(options?: TestOptions, fn?: SuiteFn): void; + function only(fn?: SuiteFn): void; + } + const suite: typeof describe; + function before(fn: HookFn): void; + function after(fn: HookFn): void; + function beforeEach(fn: HookFn): void; + function afterEach(fn: HookFn): void; + /* The mock function surface: mock.fn, mock.method and their t.mock + * twins, the tracker's restoreAll and reset, and the calls log and the + * implementation controls on fn.mock. */ + interface MockFunctionCall< + F extends Function, + ReturnType = F extends (...args: any) => infer T ? T : unknown, + Args = F extends (...args: infer Y) => any ? Y : unknown[], + > { + arguments: Args; + error: unknown | undefined; + result: ReturnType | undefined; + this: unknown; + } + interface MockFunctionContext { + readonly calls: MockFunctionCall[]; + callCount(): number; + mockImplementation(implementation: F): void; + mockImplementationOnce(implementation: F, onCall?: number): void; + resetCalls(): void; + restore(): void; + } + type Mock = F & { mock: MockFunctionContext }; + interface MockFunctionOptions { + times?: number; + } + type FunctionPropertyNames = { + [K in keyof T]: T[K] extends Function ? K : never; + }[keyof T]; + interface MockTracker { + fn undefined>(original?: F): Mock; + fn undefined, Implementation extends Function = F>( + original?: F, + implementation?: Implementation, + ): Mock; + method>( + object: MockedObject, + methodName: MethodName, + options?: MockFunctionOptions, + ): MockedObject[MethodName] extends Function ? Mock : never; + method< + MockedObject extends object, + MethodName extends FunctionPropertyNames, + Implementation extends Function, + >( + object: MockedObject, + methodName: MethodName, + implementation: Implementation, + options?: MockFunctionOptions, + ): MockedObject[MethodName] extends Function + ? Mock + : never; + reset(): void; + restoreAll(): void; + readonly timers: MockTimers; + } + interface MockTimersOptions { + apis: ReadonlyArray<"setInterval" | "setTimeout" | "setImmediate" | "Date">; + now?: number | Date | undefined; + } + interface MockTimers { + enable(options?: MockTimersOptions): void; + setTime(milliseconds?: number): void; + reset(): void; + tick(milliseconds?: number): void; + runAll(): void; + [Symbol.dispose](): void; + } + const mock: MockTracker; + /* The context of the test, suite or hook running in the current async + * context; undefined outside one. */ + function getTestContext(): TestContext | SuiteContext | undefined; + /* Declared for typechecking only — every use fences (no lowering). + * `assert` is the module-level custom-assertion registry (v24's + * `const { assert } = require('node:test')`), not TestContext.assert. */ + const assert: { register(name: string, fn: (...args: unknown[]) => unknown): void }; + function run(options?: unknown): unknown; + function snapshot(...args: unknown[]): unknown; + export { + test, + it, + describe, + suite, + before, + after, + beforeEach, + afterEach, + mock, + assert, + getTestContext, + run, + snapshot, + TestContext, + SuiteContext, + TestOptions, + Mock, + MockFunctionContext, + MockFunctionCall, + MockTracker, + MockTimers, + MockTimersOptions, + }; + export default test; +} diff --git a/packages/compiler/ambient/node-fallback/timers-promises.d.ts b/packages/compiler/ambient/node-fallback/timers-promises.d.ts new file mode 100644 index 000000000..619b92f79 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/timers-promises.d.ts @@ -0,0 +1,31 @@ +/* node:timers/promises — the promisified pair the Node test harness leans + * on (`await setTimeout(ms)` as a sleep). setTimeout and setImmediate + * settle with their resolve value (undefined without one) from the shared + * timer heap and the immediate queue; setInterval(delay, value) lowers to a + * typed async iterator. The options object takes `ref`; AbortSignal + * options remain declared surface that fences per site. */ +declare module "node:timers/promises" { + export interface TimerOptions { + ref?: boolean; + signal?: AbortSignal; + } + export function setTimeout( + delay?: number, + value?: T, + options?: TimerOptions, + ): Promise; + export function setImmediate(value?: T, options?: TimerOptions): Promise; + export function setInterval( + delay?: number, + value?: T, + options?: unknown, + ): AsyncGenerator; + export const scheduler: { + wait(delay?: number, options?: TimerOptions): Promise; + yield(): Promise; + }; +} + +declare module "timers/promises" { + export * from "node:timers/promises"; +} diff --git a/packages/compiler/ambient/node-fallback/timers.d.ts b/packages/compiler/ambient/node-fallback/timers.d.ts new file mode 100644 index 000000000..f6a1d3946 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/timers.d.ts @@ -0,0 +1,28 @@ +/* node:timers — the module twins of the timer globals (Node's timers + * module re-exports them: require('timers').setTimeout IS setTimeout). + * Named imports, destructured requires, and namespace calls all lower to + * the same libCalls as the globals; the surface beyond these six + * (enroll/unenroll, promises) fences per member. */ +declare module "node:timers" { + export function setTimeout(callback: () => void, ms?: number): Timeout; + export function setTimeout( + callback: (...args: never[]) => void, + ms?: number, + ...args: unknown[] + ): Timeout; + export function clearTimeout(handle?: Timeout | number | null | undefined): void; + export function setInterval(callback: () => void, ms?: number): Timeout; + export function setInterval( + callback: (...args: never[]) => void, + ms?: number, + ...args: unknown[] + ): Timeout; + export function clearInterval(handle?: Timeout | number | null | undefined): void; + export function setImmediate(callback: () => void): Immediate; + export function setImmediate(callback: (...args: never[]) => void, ...args: unknown[]): Immediate; + export function clearImmediate(handle?: Immediate | null | undefined): void; +} + +declare module "timers" { + export * from "node:timers"; +} diff --git a/packages/compiler/ambient/node-fallback/tls.d.ts b/packages/compiler/ambient/node-fallback/tls.d.ts new file mode 100644 index 000000000..6ddc08b35 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/tls.d.ts @@ -0,0 +1,169 @@ +/// +/// + +/* node:tls — the TLS server slice (scr_tls.c over scr_net.c with the + * vendored mbedTLS; linked only into using binaries). + * createServer({ cert, key }, handler) returns a net.Server; the handler + * is Node's 'secureConnection' — it fires post-handshake with a socket + * that behaves exactly like a net socket (write/end/destroy/pipe and the + * data/end/close/error events are the same lowered surface). cert/key + * are PEM strings or Buffers. Handshake failures tear the socket down + * without emitting an event, Node's default for 'tlsClientError' with no listener. */ +declare module "tls" { + import { Server as NetServer, Socket } from "net"; + /** tls.Server: a net server whose connections handshake first. */ + export interface Server extends NetServer { + /* serve `context` to clients whose SNI name matches `hostname` ('*' + * matches within one label); the newest match wins */ + addContext(hostname: string, context: TlsOptions | SecureContext): void; + /* new connections serve a context made from `options` */ + setSecureContext(options: TlsOptions): void; + } + export interface TlsOptions { + /* Optional in the DECLARATION only (real Node programs build these + * literals with every TLS knob): the lowering still requires both — + * a literal without them fences at the call site. */ + cert?: string | Uint8Array; + key?: string | Uint8Array; + /* The options-record stance (see http.RequestOptions): every key + * typechecks; the option walk fences documented-but-unlowered keys + * by name and drops undocumented ones like Node. */ + [option: string]: unknown; + } + export function createServer( + options: TlsOptions, + secureConnectionListener?: (socket: TLSSocket) => void, + ): Server; + /** TLSSocket — post-handshake it IS a net socket to every lowered + * member (the mapping collapses it onto the socket kind; the + * secureConnect/session events ride the shared socket declarations). + * The TLS extras: authorized/authorizationError answer Node's verify + * split — authorizationError is the verify-failure CODE STRING + * (DEPTH_ZERO_SELF_SIGNED_CERT, ...), or null. */ + export interface TLSSocket extends Socket { + readonly encrypted: true; + authorized: boolean; + authorizationError: string | null; + /* null before the handshake, then the negotiated protocol or false */ + readonly alpnProtocol: string | false | null; + /* "TLSv1.2" or "TLSv1.3"; null before the handshake and after close */ + getProtocol(): string | null; + /* OpenSSL's suite name, the IANA name and the suite's version */ + getCipher(): CipherNameAndProtocol; + /* whether the handshake resumed a cached session */ + isSessionReused(): boolean; + /* the peer's certificate: {} before the handshake or without one, + * null once the socket is destroyed; detailed adds issuerCertificate */ + getPeerCertificate(detailed: true): DetailedPeerCertificate; + getPeerCertificate(detailed?: false): PeerCertificate; + getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; + /* the certificate this socket serves, the same way */ + getCertificate(): PeerCertificate | object | null; + /* a new X509Certificate on each call, or undefined without one */ + getPeerX509Certificate(): import("crypto").X509Certificate | undefined; + getX509Certificate(): import("crypto").X509Certificate | undefined; + } + /* A certificate as getPeerCertificate() and X509Certificate's + * toLegacyObject() answer it: subject and issuer map attribute short + * names to values, infoAccess its " - " keys to values. */ + export interface PeerCertificate { + subject: { [attribute: string]: string | string[] }; + issuer: { [attribute: string]: string | string[] }; + subjectaltname?: string; + infoAccess?: { [key: string]: string[] }; + ca: boolean; + modulus?: string; + exponent?: string; + pubkey?: Buffer; + bits?: number; + valid_from: string; + valid_to: string; + fingerprint: string; + fingerprint256: string; + fingerprint512: string; + ext_key_usage?: string[]; + serialNumber: string; + raw: Buffer; + asn1Curve?: string; + nistCurve?: string; + } + /* getPeerCertificate(true): each certificate links to its issuer; a + * self-issued root is its own issuerCertificate */ + export interface DetailedPeerCertificate extends PeerCertificate { + issuerCertificate: DetailedPeerCertificate; + } + + /** new tls.TLSSocket(socket, options): the server-mode wrap of an open + * socket (a server connection or an http CONNECT socket). The options + * record reads at runtime; isServer, cert, key, secureContext, + * ALPNProtocols, minVersion and maxVersion are implemented. */ + export interface TLSSocketOptions { + isServer?: boolean; + cert?: string | Uint8Array; + key?: string | Uint8Array; + secureContext?: SecureContext; + ALPNProtocols?: string[] | Uint8Array; + minVersion?: string; + maxVersion?: string; + [option: string]: unknown; + } + export const TLSSocket: new (socket: Socket, options: TLSSocketOptions) => TLSSocket; + export interface CipherNameAndProtocol { + name: string; + standardName: string; + version: string; + } + export const DEFAULT_MIN_VERSION: string; + export const DEFAULT_MAX_VERSION: string; + /** tls.connect options — the RUNTIME options record (members read at + * runtime; port/host/socket/rejectUnauthorized/ca/servername are the + * honestly-implemented set, every other documented member throws the + * runtime fence — the options-record stance's divergence-66 shape). */ + export interface ConnectionOptions { + port?: number; + host?: string; + /* an open socket to run the client handshake over */ + socket?: Socket; + rejectUnauthorized?: boolean; + ca?: string | Uint8Array | ReadonlyArray; + servername?: string; + [option: string]: unknown; + } + export function connect( + options: ConnectionOptions, + secureConnectListener?: () => void, + ): TLSSocket; + export function connect( + port: number, + options?: ConnectionOptions, + secureConnectListener?: () => void, + ): TLSSocket; + export function connect( + port: number, + host?: string, + options?: ConnectionOptions, + secureConnectListener?: () => void, + ): TLSSocket; + /** An opaque parsed cert/key pair — what an SNI callback answers with + * (the value is a runtime handle; the members are runtime-internal). */ + export interface SecureContext {} + /* @types/node's name for createSecureContext's options */ + export type SecureContextOptions = TlsOptions; + export function createSecureContext(options: TlsOptions): SecureContext; + /** The CA-store introspection surface (scr_tls_ca.c): per-type cached + * PEM string arrays. The host bundle stands in for Node's compiled-in + * Mozilla roots ('bundled', and rootCertificates) AND the platform + * store ('system') — the Windows certificate stores or POSIX bundle probe; + * 'extra' reads NODE_EXTRA_CA_CERTS. An unknown type string throws + * Node's ERR_INVALID_ARG_VALUE TypeError. */ + export function getCACertificates(type?: string): string[]; + export const rootCertificates: readonly string[]; + /** Replaces the 'default' set (deduped) and the trust anchors the TLS + * client verifies against; a certificate-free non-empty array throws + * Node's ERR_CRYPTO_OPERATION_FAILED Error. */ + export function setDefaultCACertificates(certs: readonly string[]): void; +} + +declare module "node:tls" { + export * from "tls"; +} diff --git a/packages/compiler/ambient/node-fallback/url.d.ts b/packages/compiler/ambient/node-fallback/url.d.ts new file mode 100644 index 000000000..c690c52b1 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/url.d.ts @@ -0,0 +1,95 @@ +/// + +/* node:url — the file-URL bridge pair. fileURLToPath accepts a URL value + * or a URL string and throws Node's TypeErrors (non-file scheme, encoded + * slashes, non-empty host); pathToFileURL resolves the path and percent- + * encodes it into a file: URL. The legacy API: parse() answers a Url + * object, format() serializes a Url-shaped object, a string, or a URL, + * resolve() resolves one URL string against another, the domain pair + * converts a hostname to and from its Punycode form, and urlToHttpOptions + * builds http.request options from a URL. */ +declare module "url" { + export type URL = globalThis.URL; + export type URLSearchParams = globalThis.URLSearchParams; + export const URL: typeof globalThis.URL; + export const URLSearchParams: typeof globalThis.URLSearchParams; + export function fileURLToPath(url: string | URL, options?: { windows?: boolean }): string; + export function fileURLToPathBuffer(url: string | URL, options?: { windows?: boolean }): Buffer; + export function pathToFileURL(path: string, options?: { windows?: boolean }): URL; + export interface UrlObject { + auth?: string | null | undefined; + hash?: string | null | undefined; + host?: string | null | undefined; + hostname?: string | null | undefined; + href?: string | null | undefined; + pathname?: string | null | undefined; + protocol?: string | null | undefined; + search?: string | null | undefined; + slashes?: boolean | null | undefined; + port?: string | number | null | undefined; + query?: string | null | import("querystring").ParsedUrlQueryInput | undefined; + } + export interface Url { + auth: string | null; + hash: string | null; + host: string | null; + hostname: string | null; + href: string; + path: string | null; + pathname: string | null; + protocol: string | null; + search: string | null; + slashes: boolean | null; + port: string | null; + query: string | null | import("querystring").ParsedUrlQuery; + } + export interface UrlWithParsedQuery extends Url { + query: import("querystring").ParsedUrlQuery; + } + export interface UrlWithStringQuery extends Url { + query: string | null; + } + export interface URLFormatOptions { + auth?: boolean | undefined; + fragment?: boolean | undefined; + search?: boolean | undefined; + unicode?: boolean | undefined; + } + export function parse( + urlString: string, + parseQueryString?: false, + slashesDenoteHost?: boolean, + ): UrlWithStringQuery; + export function parse( + urlString: string, + parseQueryString: true, + slashesDenoteHost?: boolean, + ): UrlWithParsedQuery; + export function parse( + urlString: string, + parseQueryString: boolean, + slashesDenoteHost?: boolean, + ): Url; + export function format(urlObject: URL, options?: URLFormatOptions): string; + export function format(urlObject: UrlObject | string): string; + export function resolve(from: string, to: string): string; + export function domainToASCII(domain: string): string; + export function domainToUnicode(domain: string): string; + /** urlToHttpOptions's null-prototype request options. */ + export interface UrlHttpOptions { + protocol: string; + hostname: string; + hash: string; + search: string; + pathname: string; + path: string; + href: string; + port?: number; + auth?: string; + } + export function urlToHttpOptions(url: URL): UrlHttpOptions; +} + +declare module "node:url" { + export * from "url"; +} diff --git a/packages/compiler/ambient/node-fallback/util-types.d.ts b/packages/compiler/ambient/node-fallback/util-types.d.ts new file mode 100644 index 000000000..3af1b6f00 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/util-types.d.ts @@ -0,0 +1,50 @@ +/* node:util/types — native runtime brands. Other forms retain their + * per-member lowering boundaries. */ +declare module "util/types" { + export function isAnyArrayBuffer(value: unknown): boolean; + export function isArrayBuffer(value: unknown): value is ArrayBuffer; + export function isArrayBufferView(value: unknown): value is ArrayBufferView; + export function isDataView(value: unknown): value is DataView; + export function isTypedArray(value: unknown): boolean; + export function isUint8Array(value: unknown): value is Uint8Array; + export function isUint8ClampedArray(value: unknown): value is Uint8ClampedArray; + export function isUint16Array(value: unknown): value is Uint16Array; + export function isUint32Array(value: unknown): value is Uint32Array; + export function isInt8Array(value: unknown): value is Int8Array; + export function isInt16Array(value: unknown): value is Int16Array; + export function isInt32Array(value: unknown): value is Int32Array; + export function isFloat16Array(value: unknown): value is Float16Array; + export function isFloat32Array(value: unknown): value is Float32Array; + export function isFloat64Array(value: unknown): value is Float64Array; + export function isMap(value: unknown): value is Map; + export function isSet(value: unknown): value is Set; + export function isWeakMap(value: unknown): value is WeakMap; + export function isWeakSet(value: unknown): value is WeakSet; + export function isRegExp(value: unknown): value is RegExp; + export function isNativeError(value: unknown): value is Error; + export function isPromise(value: unknown): value is Promise; + export function isProxy(value: unknown): boolean; + export function isAsyncFunction(value: unknown): boolean; + export function isGeneratorFunction(value: unknown): boolean; + export function isGeneratorObject(value: unknown): boolean; + export function isModuleNamespaceObject(value: unknown): boolean; + export function isDate(value: unknown): value is Date; + export function isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer; + export function isMapIterator(value: unknown): boolean; + export function isSetIterator(value: unknown): boolean; + export function isKeyObject(value: unknown): boolean; + export function isNumberObject(value: unknown): boolean; + export function isStringObject(value: unknown): boolean; + export function isBooleanObject(value: unknown): boolean; + export function isBigIntObject(value: unknown): boolean; + export function isSymbolObject(value: unknown): boolean; + export function isBoxedPrimitive(value: unknown): boolean; + export function isBigInt64Array(value: unknown): value is BigInt64Array; + export function isBigUint64Array(value: unknown): value is BigUint64Array; + export function isCryptoKey(value: unknown): boolean; + export function isExternal(value: unknown): boolean; +} + +declare module "node:util/types" { + export * from "util/types"; +} diff --git a/packages/compiler/ambient/node-fallback/util.d.ts b/packages/compiler/ambient/node-fallback/util.d.ts new file mode 100644 index 000000000..5ff4c38ad --- /dev/null +++ b/packages/compiler/ambient/node-fallback/util.d.ts @@ -0,0 +1,270 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// + +/* node:util — compile-time projections for child_process.execFile, + * child_process.exec and fs.readFile. The first two retain Node's custom + * { stdout, stderr } result; the last resolves the callback's data + * argument. Other targets and bare + * promisify values fence per site. */ +declare module "util" { + export * as types from "util/types"; + export function getSystemErrorName(err: number): string; + export function getSystemErrorMessage(err: number): string; + export function getSystemErrorMap(): Map; + export function stripVTControlCharacters(str: string): string; + export function toUSVString(string: string): string; + export function isDeepStrictEqual(val1: unknown, val2: unknown, skipPrototype?: boolean): boolean; + export function styleText( + format: string | readonly string[], + text: string, + options?: { validateStream?: boolean; stream?: unknown }, + ): string; + export function parseEnv(content: string): { [key: string]: string | undefined }; + export function inherits(constructor: unknown, superConstructor: unknown): void; + export interface DeprecateOptions { + modifyPrototype?: boolean; + } + export function deprecate( + fn: T, + msg: string, + code?: string, + options?: DeprecateOptions, + ): T; + /* The callback receives null on success and the rejection reason + * otherwise (falsy reasons arrive as ERR_FALSY_VALUE_REJECTION). */ + export function callbackify( + fn: () => Promise, + ): (callback: (err: NodeJS.ErrnoException | null) => void) => void; + export function callbackify( + fn: () => Promise, + ): (callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1) => Promise, + ): (arg1: T1, callback: (err: NodeJS.ErrnoException | null) => void) => void; + export function callbackify( + fn: (arg1: T1) => Promise, + ): (arg1: T1, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2) => Promise, + ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2) => Promise, + ): ( + arg1: T1, + arg2: T2, + callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, + ) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise, + ): ( + arg1: T1, + arg2: T2, + arg3: T3, + callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, + ) => void; + export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void; + export interface DebugLogger extends DebugLoggerFunction { + enabled: boolean; + } + export function debuglog( + section: string, + callback?: (fn: DebugLoggerFunction) => void, + ): DebugLogger; + export { debuglog as debug }; + export type TextEncoder = globalThis.TextEncoder; + export type TextDecoder = globalThis.TextDecoder; + export var TextEncoder: typeof globalThis.TextEncoder; + export var TextDecoder: typeof globalThis.TextDecoder; + /* stream.pipeline's overload comes first: its __promisify__ member keeps + * every other target out of it. */ + export function promisify( + fn: typeof import("node:stream").pipeline, + ): typeof import("node:stream/promises").pipeline; + export function promisify( + fn: typeof import("node:fs").readFile, + ): (path: string, encoding: "utf8" | "utf-8") => Promise; + export function promisify( + fn: (file: string, args?: string[] | null, options?: object) => unknown, + ): ( + file: string, + args?: string[], + options?: { + encoding?: "utf8" | "utf-8"; + cwd?: string; + env?: { [k: string]: string | undefined }; + timeout?: number; + maxBuffer?: number; + killSignal?: string; + windowsHide?: boolean; + }, + ) => Promise<{ stdout: string; stderr: string }>; + export function promisify( + fn: typeof globalThis.setTimeout, + ): typeof import("node:timers/promises").setTimeout; + export function promisify( + fn: typeof globalThis.setImmediate, + ): typeof import("node:timers/promises").setImmediate; + export function promisify(fn: typeof import("node:child_process").exec): ( + command: string, + options?: { + encoding?: "utf8" | "utf-8"; + cwd?: string; + env?: { [k: string]: string | undefined }; + timeout?: number; + maxBuffer?: number; + killSignal?: string; + windowsHide?: boolean; + }, + ) => Promise<{ stdout: string; stderr: string }>; + /* The zlib callback one-shots (deflate, inflate, deflateRaw, inflateRaw, + * gzip, gunzip, unzip) share one type. */ + export function promisify( + fn: typeof import("node:zlib").gzip, + ): (data: string | Uint8Array, options?: import("node:zlib").ZlibOptions) => Promise; + export function promisify( + fn: typeof import("node:stream").finished, + ): typeof import("node:stream/promises").finished; + /* The crypto callback functions: the promise settles with the callback's + * value. */ + export function promisify( + fn: typeof import("node:crypto").randomBytes, + ): (size: number) => Promise; + export function promisify( + fn: typeof import("node:crypto").pbkdf2, + ): ( + password: string | Uint8Array, + salt: string | Uint8Array, + iterations: number, + keylen: number, + digest: string, + ) => Promise; + export function promisify( + fn: typeof import("node:crypto").scrypt, + ): ( + password: import("node:crypto").BinaryLike, + salt: import("node:crypto").BinaryLike, + keylen: number, + options?: import("node:crypto").ScryptOptions, + ) => Promise; + export function promisify( + fn: typeof import("node:crypto").hkdf, + ): ( + digest: string, + ikm: import("node:crypto").BinaryLike | import("node:crypto").KeyObject, + salt: import("node:crypto").BinaryLike, + info: import("node:crypto").BinaryLike, + keylen: number, + ) => Promise; + /* A callback-only function (`obj.close.bind(obj)`): before the targets + * whose leading parameters would otherwise capture it. Builtins that take + * arguments before their callback never match these. */ + export function promisify( + fn: (callback: (err: any, result: TResult) => void) => void, + ): () => Promise; + export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise; + export function promisify( + fn: typeof import("node:crypto").randomFill, + ): ( + buffer: T, + offset?: number, + size?: number, + ) => Promise; + export function promisify(fn: typeof import("node:crypto").randomInt): { + (max: number): Promise; + (min: number, max: number): Promise; + }; + export function promisify( + fn: typeof import("node:crypto").generateKey, + ): ( + type: "hmac" | "aes", + options: { length: number }, + ) => Promise; + /* dns.lookup's promise settles with { address, family } (the address + * array with options.all), and lookupService's with { hostname, service }. */ + export function promisify(fn: typeof import("node:dns").lookup): { + ( + hostname: string, + options: import("node:dns").LookupAllOptions, + ): Promise; + ( + hostname: string, + options?: number | import("node:dns").LookupOneOptions, + ): Promise; + }; + export function promisify( + fn: typeof import("node:dns").lookupService, + ): (address: string, port: number) => Promise<{ hostname: string; service: string }>; + /* Declared surface without full lowering (the type-level tolerance + * story: guarded/diagnostic-path code must TYPECHECK; a reached use + * without a lowering fences at its site). inspect's options carry the + * documented knobs through an index signature. */ + export function inspect( + object: unknown, + options?: { depth?: number | null; colors?: boolean; [k: string]: unknown }, + ): string; + export function format(format?: unknown, ...args: unknown[]): string; + export function formatWithOptions( + inspectOptions: { depth?: number | null; colors?: boolean; [k: string]: unknown }, + format?: unknown, + ...args: unknown[] + ): string; + export type ParseArgsOptionsType = "boolean" | "string"; + export interface ParseArgsOptionDescriptor { + type: ParseArgsOptionsType; + multiple?: boolean; + short?: string; + default?: string | boolean | string[] | boolean[]; + } + export interface ParseArgsOptionsConfig { + [longOption: string]: ParseArgsOptionDescriptor; + } + export interface ParseArgsConfig { + args?: readonly string[]; + options?: ParseArgsOptionsConfig; + strict?: boolean; + allowPositionals?: boolean; + allowNegative?: boolean; + tokens?: boolean; + } + export type ParseArgsToken = + | { + kind: "option"; + index: number; + name: string; + rawName: string; + value: string | undefined; + inlineValue: boolean | undefined; + } + | { kind: "positional"; index: number; value: string } + | { kind: "option-terminator"; index: number }; + export interface ParseArgsResult { + values: { [longOption: string]: undefined | string | boolean | Array }; + positionals: string[]; + tokens?: ParseArgsToken[]; + } + export function parseArgs(config?: ParseArgsConfig): ParseArgsResult; + /* util.getCallSites (Node ≥22.9): the captured-frame slice harness + * code reads. No stack bookkeeping exists in a compiled binary — every + * reached call fences per site. */ + export interface CallSite { + readonly functionName: string; + readonly scriptName: string; + readonly lineNumber: number; + readonly column: number; + } + export function getCallSites(frameCount?: number): CallSite[]; +} + +declare module "node:util" { + export * from "util"; +} diff --git a/packages/compiler/ambient/node-fallback/v8.d.ts b/packages/compiler/ambient/node-fallback/v8.d.ts new file mode 100644 index 000000000..16b112b1c --- /dev/null +++ b/packages/compiler/ambient/node-fallback/v8.d.ts @@ -0,0 +1,43 @@ +/* node:v8 — importable for the packages that require it at top level. + * getHeapStatistics answers allocator-derived figures in Node's shape + * (approximate: the runtime heap's total and used bytes, the machine's + * memory as the limit; V8-only figures are 0). The other members observe + * V8 itself and fence at their use with the by-design reason; they are + * declared so programs that type-check under their own tsc reach that + * fence. */ +declare module "v8" { + type DoesZapCodeSpaceFlag = 0 | 1; + export interface HeapInfo { + total_heap_size: number; + total_heap_size_executable: number; + total_physical_size: number; + total_available_size: number; + used_heap_size: number; + heap_size_limit: number; + malloced_memory: number; + peak_malloced_memory: number; + does_zap_garbage: DoesZapCodeSpaceFlag; + number_of_native_contexts: number; + number_of_detached_contexts: number; + total_global_handles_size: number; + used_global_handles_size: number; + external_memory: number; + } + export function getHeapStatistics(): HeapInfo; + export function cachedDataVersionTag(): number; + export function getHeapSpaceStatistics(): unknown[]; + export function getHeapCodeStatistics(): unknown; + export function getHeapSnapshot(options?: unknown): unknown; + export function writeHeapSnapshot(fileName?: string, options?: unknown): string; + export function setFlagsFromString(flags: string): void; + export function setHeapSnapshotNearHeapLimit(limit: number): void; + export function serialize(value: unknown): Buffer; + export function deserialize(buffer: Uint8Array): unknown; + export function takeCoverage(): void; + export function stopCoverage(): void; + export function isStringOneByteRepresentation(content: string): boolean; +} + +declare module "node:v8" { + export * from "v8"; +} diff --git a/packages/compiler/ambient/node-fallback/worker_threads.d.ts b/packages/compiler/ambient/node-fallback/worker_threads.d.ts new file mode 100644 index 000000000..81873f115 --- /dev/null +++ b/packages/compiler/ambient/node-fallback/worker_threads.d.ts @@ -0,0 +1,113 @@ +/// + +/* node:worker_threads — native workers use statically compiled entry points. + * Lowering and runtime diagnostics define the supported options and methods. */ +declare module "worker_threads" { + export const isMainThread: boolean; + export const isInternalThread: boolean; + export const threadId: number; + export interface ResourceLimits { + maxYoungGenerationSizeMb?: number; + maxOldGenerationSizeMb?: number; + codeRangeSizeMb?: number; + stackSizeMb?: number; + } + /* {} in the main thread */ + export const resourceLimits: ResourceLimits; + /* the Worker's name option, trimmed ("WorkerThread" by default); "" in the main thread */ + export const threadName: string | null; + export interface WorkerOptions { + workerData?: unknown; + transferList?: readonly unknown[]; + argv?: readonly unknown[]; + name?: string; + resourceLimits?: ResourceLimits; + stdout?: boolean; + stderr?: boolean; + stdin?: boolean; + [option: string]: unknown; + } + export class Worker { + constructor(filename: string | URL, options?: WorkerOptions); + readonly threadId: number; + readonly resourceLimits?: ResourceLimits; + readonly threadName: string | null; + /* with the stdout/stderr options: the worker's writes to those streams */ + readonly stdout: import("stream").Readable; + readonly stderr: import("stream").Readable; + /* with the stdin option: what the worker reads from process.stdin */ + readonly stdin: import("stream").Writable | null; + /* terminate(), resolving with undefined once the worker exited */ + [Symbol.asyncDispose](): Promise; + on(event: "online", listener: () => void): this; + on(event: "message", listener: (value: any) => void): this; + on(event: "error", listener: (error: any) => void): this; + on(event: "exit", listener: (code: number) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + off(event: string, listener: (...args: any[]) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + removeListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + postMessage(value: unknown, transferList?: readonly unknown[]): void; + ref(): void; + unref(): void; + terminate(): Promise; + removeAllListeners(event?: string): this; + listenerCount(event: string, listener?: (...args: any[]) => void): number; + } + export class MessagePort { + on(event: "message", listener: (value: any) => void): this; + on(event: "close", listener: () => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + off(event: string, listener: (...args: any[]) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + removeListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + postMessage(value: unknown, transferList?: readonly unknown[]): void; + start(): void; + close(callback?: () => void): void; + ref(): void; + unref(): void; + hasRef(): boolean; + removeAllListeners(event?: string): this; + listenerCount(event: string, listener?: (...args: any[]) => void): number; + } + /* Two entangled ports; a port moves to another thread through a + * postMessage or workerData transferList. */ + export class MessageChannel { + readonly port1: MessagePort; + readonly port2: MessagePort; + } + export function receiveMessageOnPort(port: MessagePort): { message: any } | undefined; + /* This thread's environment data; each new Worker starts from a clone. */ + export function setEnvironmentData(key: any, value?: any): void; + export function getEnvironmentData(key: any): any; + /* A marked object cannot be listed in a transfer list. */ + export function markAsUntransferable(object: any): void; + /* structuredClone and postMessage throw DataCloneError for a marked + * object, error or class instance */ + export function markAsUncloneable(object: any): void; + export function isMarkedAsUntransferable(object: any): boolean; + /* Delivers each message to every other open channel with the name, in + * any thread, as a 'message' MessageEvent. */ + export class BroadcastChannel extends EventTarget { + constructor(name: string); + readonly name: string; + onmessage: ((event: MessageEvent) => void) | null; + onmessageerror: ((event: MessageEvent) => void) | null; + postMessage(message: unknown): void; + close(): void; + ref(): this; + unref(): this; + } + export const parentPort: MessagePort | null; + export const workerData: any; +} + +declare module "node:worker_threads" { + export * from "worker_threads"; +} diff --git a/packages/compiler/ambient/node-fallback/zlib.d.ts b/packages/compiler/ambient/node-fallback/zlib.d.ts new file mode 100644 index 000000000..c601596fe --- /dev/null +++ b/packages/compiler/ambient/node-fallback/zlib.d.ts @@ -0,0 +1,422 @@ +/// + +/* node:zlib — the one-shot zlib/raw/gzip codecs lower for string/Buffer + * inputs with Node's default options; libz links only into zlib-using + * binaries. Callback forms use the executable worker pool. Options stay + * declared so reached uses receive a named SC2020 refusal. The Deflate, + * Inflate, Gzip, Gunzip, DeflateRaw, InflateRaw, Unzip, BrotliCompress + * and BrotliDecompress streams are runtime Transform streams; Zstd remains + * outside the lowered surface. */ +declare module "zlib" { + import { Transform } from "stream"; + export interface ZlibOptions { + [option: string]: unknown; + } + export type ZlibCallback = (error: NodeJS.ErrnoException | null, result: Buffer) => void; + export function deflate(data: string | Uint8Array, callback: ZlibCallback): void; + export function deflate( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function deflateSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function inflate(data: string | Uint8Array, callback: ZlibCallback): void; + export function inflate( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function inflateSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function deflateRaw(data: string | Uint8Array, callback: ZlibCallback): void; + export function deflateRaw( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function deflateRawSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function inflateRaw(data: string | Uint8Array, callback: ZlibCallback): void; + export function inflateRaw( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function inflateRawSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function gzip(data: string | Uint8Array, callback: ZlibCallback): void; + export function gzip( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function gzipSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function gunzip(data: string | Uint8Array, callback: ZlibCallback): void; + export function gunzip( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function gunzipSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function unzip(data: string | Uint8Array, callback: ZlibCallback): void; + export function unzip( + data: string | Uint8Array, + options: ZlibOptions, + callback: ZlibCallback, + ): void; + export function unzipSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; + export function crc32(data: string | Uint8Array, value?: number): number; + /* Brotli over the vendored brotli 1.2.0 (scr_brotli.c): `params` keys + * are the numeric BROTLI_PARAM_* and BROTLI_DECODER_PARAM_* constants. */ + export interface BrotliOptions { + [option: string]: unknown; + } + export function brotliCompress(data: string | Uint8Array, callback: ZlibCallback): void; + export function brotliCompress( + data: string | Uint8Array, + options: BrotliOptions, + callback: ZlibCallback, + ): void; + export function brotliCompressSync(data: string | Uint8Array, options?: BrotliOptions): Buffer; + export function brotliDecompress(data: string | Uint8Array, callback: ZlibCallback): void; + export function brotliDecompress( + data: string | Uint8Array, + options: BrotliOptions, + callback: ZlibCallback, + ): void; + export function brotliDecompressSync(data: string | Uint8Array, options?: BrotliOptions): Buffer; + /* The stream classes: runtime Transform streams over the zlib engine + * (scr_zlib_stream.c). createGzip(options) and new Gzip(options) build + * the same stream; options are validated at runtime with Node's rules. + * Brotli streams have no params(), as in Node. */ + class ZlibBase extends Transform { + readonly bytesWritten: number; + flush(kind?: number, callback?: () => void): void; + flush(callback: () => void): void; + close(callback?: () => void): void; + reset(): void; + } + class Zlib extends ZlibBase { + params(level: number, strategy: number, callback?: () => void): void; + } + export class BrotliCompress extends ZlibBase { + constructor(options?: BrotliOptions); + } + export class BrotliDecompress extends ZlibBase { + constructor(options?: BrotliOptions); + } + export function createBrotliCompress(options?: BrotliOptions): BrotliCompress; + export function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress; + export class Deflate extends Zlib { + constructor(options?: ZlibOptions); + } + export class Inflate extends Zlib { + constructor(options?: ZlibOptions); + } + export class Gzip extends Zlib { + constructor(options?: ZlibOptions); + } + export class Gunzip extends Zlib { + constructor(options?: ZlibOptions); + } + export class DeflateRaw extends Zlib { + constructor(options?: ZlibOptions); + } + export class InflateRaw extends Zlib { + constructor(options?: ZlibOptions); + } + export class Unzip extends Zlib { + constructor(options?: ZlibOptions); + } + export function createDeflate(options?: ZlibOptions): Deflate; + export function createInflate(options?: ZlibOptions): Inflate; + export function createGzip(options?: ZlibOptions): Gzip; + export function createGunzip(options?: ZlibOptions): Gunzip; + export function createDeflateRaw(options?: ZlibOptions): DeflateRaw; + export function createInflateRaw(options?: ZlibOptions): InflateRaw; + export function createUnzip(options?: ZlibOptions): Unzip; + /* Node v24 zlib.constants, literal-typed (the CryptoConstants stance): + * every access bakes as its literal; the object never materializes. The + * members outside BROTLI_* are also module properties (zlib.Z_SYNC_FLUSH). */ + export interface ZlibConstants { + readonly Z_NO_FLUSH: 0; + readonly Z_PARTIAL_FLUSH: 1; + readonly Z_SYNC_FLUSH: 2; + readonly Z_FULL_FLUSH: 3; + readonly Z_FINISH: 4; + readonly Z_BLOCK: 5; + readonly Z_OK: 0; + readonly Z_STREAM_END: 1; + readonly Z_NEED_DICT: 2; + readonly Z_ERRNO: -1; + readonly Z_STREAM_ERROR: -2; + readonly Z_DATA_ERROR: -3; + readonly Z_MEM_ERROR: -4; + readonly Z_BUF_ERROR: -5; + readonly Z_VERSION_ERROR: -6; + readonly Z_NO_COMPRESSION: 0; + readonly Z_BEST_SPEED: 1; + readonly Z_BEST_COMPRESSION: 9; + readonly Z_DEFAULT_COMPRESSION: -1; + readonly Z_FILTERED: 1; + readonly Z_HUFFMAN_ONLY: 2; + readonly Z_RLE: 3; + readonly Z_FIXED: 4; + readonly Z_DEFAULT_STRATEGY: 0; + readonly ZLIB_VERNUM: 4897; + readonly DEFLATE: 1; + readonly INFLATE: 2; + readonly GZIP: 3; + readonly GUNZIP: 4; + readonly DEFLATERAW: 5; + readonly INFLATERAW: 6; + readonly UNZIP: 7; + readonly BROTLI_DECODE: 8; + readonly BROTLI_ENCODE: 9; + readonly ZSTD_DECOMPRESS: 11; + readonly ZSTD_COMPRESS: 10; + readonly Z_MIN_WINDOWBITS: 8; + readonly Z_MAX_WINDOWBITS: 15; + readonly Z_DEFAULT_WINDOWBITS: 15; + readonly Z_MIN_CHUNK: 64; + readonly Z_MAX_CHUNK: number; + readonly Z_DEFAULT_CHUNK: 16384; + readonly Z_MIN_MEMLEVEL: 1; + readonly Z_MAX_MEMLEVEL: 9; + readonly Z_DEFAULT_MEMLEVEL: 8; + readonly Z_MIN_LEVEL: -1; + readonly Z_MAX_LEVEL: 9; + readonly Z_DEFAULT_LEVEL: -1; + readonly BROTLI_OPERATION_PROCESS: 0; + readonly BROTLI_OPERATION_FLUSH: 1; + readonly BROTLI_OPERATION_FINISH: 2; + readonly BROTLI_OPERATION_EMIT_METADATA: 3; + readonly BROTLI_PARAM_MODE: 0; + readonly BROTLI_MODE_GENERIC: 0; + readonly BROTLI_MODE_TEXT: 1; + readonly BROTLI_MODE_FONT: 2; + readonly BROTLI_DEFAULT_MODE: 0; + readonly BROTLI_PARAM_QUALITY: 1; + readonly BROTLI_MIN_QUALITY: 0; + readonly BROTLI_MAX_QUALITY: 11; + readonly BROTLI_DEFAULT_QUALITY: 11; + readonly BROTLI_PARAM_LGWIN: 2; + readonly BROTLI_MIN_WINDOW_BITS: 10; + readonly BROTLI_MAX_WINDOW_BITS: 24; + readonly BROTLI_LARGE_MAX_WINDOW_BITS: 30; + readonly BROTLI_DEFAULT_WINDOW: 22; + readonly BROTLI_PARAM_LGBLOCK: 3; + readonly BROTLI_MIN_INPUT_BLOCK_BITS: 16; + readonly BROTLI_MAX_INPUT_BLOCK_BITS: 24; + readonly BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4; + readonly BROTLI_PARAM_SIZE_HINT: 5; + readonly BROTLI_PARAM_LARGE_WINDOW: 6; + readonly BROTLI_PARAM_NPOSTFIX: 7; + readonly BROTLI_PARAM_NDIRECT: 8; + readonly BROTLI_DECODER_RESULT_ERROR: 0; + readonly BROTLI_DECODER_RESULT_SUCCESS: 1; + readonly BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2; + readonly BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3; + readonly BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0; + readonly BROTLI_DECODER_PARAM_LARGE_WINDOW: 1; + readonly BROTLI_DECODER_NO_ERROR: 0; + readonly BROTLI_DECODER_SUCCESS: 1; + readonly BROTLI_DECODER_NEEDS_MORE_INPUT: 2; + readonly BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3; + readonly BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1; + readonly BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2; + readonly BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3; + readonly BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4; + readonly BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5; + readonly BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6; + readonly BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7; + readonly BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8; + readonly BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9; + readonly BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10; + readonly BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11; + readonly BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12; + readonly BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13; + readonly BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14; + readonly BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15; + readonly BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16; + readonly BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19; + readonly BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20; + readonly BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21; + readonly BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22; + readonly BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25; + readonly BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26; + readonly BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27; + readonly BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30; + readonly BROTLI_DECODER_ERROR_UNREACHABLE: -31; + readonly ZSTD_e_continue: 0; + readonly ZSTD_e_flush: 1; + readonly ZSTD_e_end: 2; + readonly ZSTD_fast: 1; + readonly ZSTD_dfast: 2; + readonly ZSTD_greedy: 3; + readonly ZSTD_lazy: 4; + readonly ZSTD_lazy2: 5; + readonly ZSTD_btlazy2: 6; + readonly ZSTD_btopt: 7; + readonly ZSTD_btultra: 8; + readonly ZSTD_btultra2: 9; + readonly ZSTD_c_compressionLevel: 100; + readonly ZSTD_c_windowLog: 101; + readonly ZSTD_c_hashLog: 102; + readonly ZSTD_c_chainLog: 103; + readonly ZSTD_c_searchLog: 104; + readonly ZSTD_c_minMatch: 105; + readonly ZSTD_c_targetLength: 106; + readonly ZSTD_c_strategy: 107; + readonly ZSTD_c_enableLongDistanceMatching: 160; + readonly ZSTD_c_ldmHashLog: 161; + readonly ZSTD_c_ldmMinMatch: 162; + readonly ZSTD_c_ldmBucketSizeLog: 163; + readonly ZSTD_c_ldmHashRateLog: 164; + readonly ZSTD_c_contentSizeFlag: 200; + readonly ZSTD_c_checksumFlag: 201; + readonly ZSTD_c_dictIDFlag: 202; + readonly ZSTD_c_nbWorkers: 400; + readonly ZSTD_c_jobSize: 401; + readonly ZSTD_c_overlapLog: 402; + readonly ZSTD_d_windowLogMax: 100; + readonly ZSTD_CLEVEL_DEFAULT: 3; + readonly ZSTD_error_no_error: 0; + readonly ZSTD_error_GENERIC: 1; + readonly ZSTD_error_prefix_unknown: 10; + readonly ZSTD_error_version_unsupported: 12; + readonly ZSTD_error_frameParameter_unsupported: 14; + readonly ZSTD_error_frameParameter_windowTooLarge: 16; + readonly ZSTD_error_corruption_detected: 20; + readonly ZSTD_error_checksum_wrong: 22; + readonly ZSTD_error_literals_headerWrong: 24; + readonly ZSTD_error_dictionary_corrupted: 30; + readonly ZSTD_error_dictionary_wrong: 32; + readonly ZSTD_error_dictionaryCreation_failed: 34; + readonly ZSTD_error_parameter_unsupported: 40; + readonly ZSTD_error_parameter_combination_unsupported: 41; + readonly ZSTD_error_parameter_outOfBound: 42; + readonly ZSTD_error_tableLog_tooLarge: 44; + readonly ZSTD_error_maxSymbolValue_tooLarge: 46; + readonly ZSTD_error_maxSymbolValue_tooSmall: 48; + readonly ZSTD_error_stabilityCondition_notRespected: 50; + readonly ZSTD_error_stage_wrong: 60; + readonly ZSTD_error_init_missing: 62; + readonly ZSTD_error_memory_allocation: 64; + readonly ZSTD_error_workSpace_tooSmall: 66; + readonly ZSTD_error_dstSize_tooSmall: 70; + readonly ZSTD_error_srcSize_wrong: 72; + readonly ZSTD_error_dstBuffer_null: 74; + readonly ZSTD_error_noForwardProgress_destFull: 80; + readonly ZSTD_error_noForwardProgress_inputEmpty: 82; + } + export const constants: ZlibConstants; + export const Z_NO_FLUSH: 0; + export const Z_PARTIAL_FLUSH: 1; + export const Z_SYNC_FLUSH: 2; + export const Z_FULL_FLUSH: 3; + export const Z_FINISH: 4; + export const Z_BLOCK: 5; + export const Z_OK: 0; + export const Z_STREAM_END: 1; + export const Z_NEED_DICT: 2; + export const Z_ERRNO: -1; + export const Z_STREAM_ERROR: -2; + export const Z_DATA_ERROR: -3; + export const Z_MEM_ERROR: -4; + export const Z_BUF_ERROR: -5; + export const Z_VERSION_ERROR: -6; + export const Z_NO_COMPRESSION: 0; + export const Z_BEST_SPEED: 1; + export const Z_BEST_COMPRESSION: 9; + export const Z_DEFAULT_COMPRESSION: -1; + export const Z_FILTERED: 1; + export const Z_HUFFMAN_ONLY: 2; + export const Z_RLE: 3; + export const Z_FIXED: 4; + export const Z_DEFAULT_STRATEGY: 0; + export const ZLIB_VERNUM: 4897; + export const DEFLATE: 1; + export const INFLATE: 2; + export const GZIP: 3; + export const GUNZIP: 4; + export const DEFLATERAW: 5; + export const INFLATERAW: 6; + export const UNZIP: 7; + export const ZSTD_DECOMPRESS: 11; + export const ZSTD_COMPRESS: 10; + export const Z_MIN_WINDOWBITS: 8; + export const Z_MAX_WINDOWBITS: 15; + export const Z_DEFAULT_WINDOWBITS: 15; + export const Z_MIN_CHUNK: 64; + export const Z_MAX_CHUNK: number; + export const Z_DEFAULT_CHUNK: 16384; + export const Z_MIN_MEMLEVEL: 1; + export const Z_MAX_MEMLEVEL: 9; + export const Z_DEFAULT_MEMLEVEL: 8; + export const Z_MIN_LEVEL: -1; + export const Z_MAX_LEVEL: 9; + export const Z_DEFAULT_LEVEL: -1; + export const ZSTD_e_continue: 0; + export const ZSTD_e_flush: 1; + export const ZSTD_e_end: 2; + export const ZSTD_fast: 1; + export const ZSTD_dfast: 2; + export const ZSTD_greedy: 3; + export const ZSTD_lazy: 4; + export const ZSTD_lazy2: 5; + export const ZSTD_btlazy2: 6; + export const ZSTD_btopt: 7; + export const ZSTD_btultra: 8; + export const ZSTD_btultra2: 9; + export const ZSTD_c_compressionLevel: 100; + export const ZSTD_c_windowLog: 101; + export const ZSTD_c_hashLog: 102; + export const ZSTD_c_chainLog: 103; + export const ZSTD_c_searchLog: 104; + export const ZSTD_c_minMatch: 105; + export const ZSTD_c_targetLength: 106; + export const ZSTD_c_strategy: 107; + export const ZSTD_c_enableLongDistanceMatching: 160; + export const ZSTD_c_ldmHashLog: 161; + export const ZSTD_c_ldmMinMatch: 162; + export const ZSTD_c_ldmBucketSizeLog: 163; + export const ZSTD_c_ldmHashRateLog: 164; + export const ZSTD_c_contentSizeFlag: 200; + export const ZSTD_c_checksumFlag: 201; + export const ZSTD_c_dictIDFlag: 202; + export const ZSTD_c_nbWorkers: 400; + export const ZSTD_c_jobSize: 401; + export const ZSTD_c_overlapLog: 402; + export const ZSTD_d_windowLogMax: 100; + export const ZSTD_CLEVEL_DEFAULT: 3; + export const ZSTD_error_no_error: 0; + export const ZSTD_error_GENERIC: 1; + export const ZSTD_error_prefix_unknown: 10; + export const ZSTD_error_version_unsupported: 12; + export const ZSTD_error_frameParameter_unsupported: 14; + export const ZSTD_error_frameParameter_windowTooLarge: 16; + export const ZSTD_error_corruption_detected: 20; + export const ZSTD_error_checksum_wrong: 22; + export const ZSTD_error_literals_headerWrong: 24; + export const ZSTD_error_dictionary_corrupted: 30; + export const ZSTD_error_dictionary_wrong: 32; + export const ZSTD_error_dictionaryCreation_failed: 34; + export const ZSTD_error_parameter_unsupported: 40; + export const ZSTD_error_parameter_combination_unsupported: 41; + export const ZSTD_error_parameter_outOfBound: 42; + export const ZSTD_error_tableLog_tooLarge: 44; + export const ZSTD_error_maxSymbolValue_tooLarge: 46; + export const ZSTD_error_maxSymbolValue_tooSmall: 48; + export const ZSTD_error_stabilityCondition_notRespected: 50; + export const ZSTD_error_stage_wrong: 60; + export const ZSTD_error_init_missing: 62; + export const ZSTD_error_memory_allocation: 64; + export const ZSTD_error_workSpace_tooSmall: 66; + export const ZSTD_error_dstSize_tooSmall: 70; + export const ZSTD_error_srcSize_wrong: 72; + export const ZSTD_error_dstBuffer_null: 74; + export const ZSTD_error_noForwardProgress_destFull: 80; + export const ZSTD_error_noForwardProgress_inputEmpty: 82; +} + +declare module "node:zlib" { + export * from "zlib"; +} diff --git a/packages/compiler/ambient/scriptc-node-fallback.d.ts b/packages/compiler/ambient/scriptc-node-fallback.d.ts index 058b262ea..dff6b6b05 100644 --- a/packages/compiler/ambient/scriptc-node-fallback.d.ts +++ b/packages/compiler/ambient/scriptc-node-fallback.d.ts @@ -416,17 +416,6 @@ declare var process: { once(event: "disconnect", listener: () => void): void; }; -/* Node's process module default export is the global process object. These - * declaration aliases let the ESM spelling typecheck against the same - * deliberately narrow fallback surface when @types/node is absent. */ -declare module "process" { - export = process; -} -declare module "node:process" { - import process = require("process"); - export = process; -} - /* ── globals a real CLI's sources reference (all @types/node or dyn-lib * territory; the fallback declares the slice so projects PREFLIGHT and * every reached use lands on the SC2020 fence — or a real lowering where @@ -1292,150 +1281,6 @@ declare function setInterval( ): Timeout; declare function clearInterval(handle?: Timeout | number | null | undefined): void; -/* node:timers — the module twins of the timer globals (Node's timers - * module re-exports them: require('timers').setTimeout IS setTimeout). - * Named imports, destructured requires, and namespace calls all lower to - * the same libCalls as the globals; the surface beyond these six - * (enroll/unenroll, promises) fences per member. */ -declare module "node:timers" { - export function setTimeout(callback: () => void, ms?: number): Timeout; - export function setTimeout( - callback: (...args: never[]) => void, - ms?: number, - ...args: unknown[] - ): Timeout; - export function clearTimeout(handle?: Timeout | number | null | undefined): void; - export function setInterval(callback: () => void, ms?: number): Timeout; - export function setInterval( - callback: (...args: never[]) => void, - ms?: number, - ...args: unknown[] - ): Timeout; - export function clearInterval(handle?: Timeout | number | null | undefined): void; - export function setImmediate(callback: () => void): Immediate; - export function setImmediate(callback: (...args: never[]) => void, ...args: unknown[]): Immediate; - export function clearImmediate(handle?: Immediate | null | undefined): void; -} -declare module "timers" { - export * from "node:timers"; -} - -/* node:timers/promises — the promisified pair the Node test harness leans - * on (`await setTimeout(ms)` as a sleep). setTimeout and setImmediate - * settle with their resolve value (undefined without one) from the shared - * timer heap and the immediate queue; setInterval(delay, value) lowers to a - * typed async iterator. The options object takes `ref`; AbortSignal - * options remain declared surface that fences per site. */ -declare module "node:timers/promises" { - export interface TimerOptions { - ref?: boolean; - signal?: AbortSignal; - } - export function setTimeout( - delay?: number, - value?: T, - options?: TimerOptions, - ): Promise; - export function setImmediate(value?: T, options?: TimerOptions): Promise; - export function setInterval( - delay?: number, - value?: T, - options?: unknown, - ): AsyncGenerator; - export const scheduler: { - wait(delay?: number, options?: TimerOptions): Promise; - yield(): Promise; - }; -} -declare module "timers/promises" { - export * from "node:timers/promises"; -} - -/* node:diagnostics_channel — the in-process pub/sub core: named channels, - * subscribe/unsubscribe (module-level and channel-level), publish with any - * dyn-convertible message. Channel values are f64 handles into the - * runtime's channel registry (the readline.Interface precedent — channels - * are process-lived in Node too, its WeakRef machinery aside). - * The store-binding surface (bindStore/unbindStore/runStores) lowers onto - * the AsyncLocalStorage integration (dc.chan* libCalls). - * - * TracingChannel (tracingChannel) is the five-event-channel collection: - * an f64 handle into the runtime's tracing registry (type-mapper.ts maps the - * name like Channel). subscribe/unsubscribe walk a handlers object; - * traceSync/traceCallback run Node's publish choreography in the runtime - * (context defaults to a fresh {}); tracePromise is declared (the member - * exists in Node) but fences at the call site — the traced function's - * promise cannot cross the checked-dynamic tree boundary yet. */ -declare module "node:diagnostics_channel" { - export type ChannelListener = (message: unknown, name: string) => void; - export interface Channel { - readonly name: string; - readonly hasSubscribers: boolean; - publish(message: unknown): void; - subscribe(onMessage: ChannelListener): void; - unsubscribe(onMessage: ChannelListener): boolean; - bindStore( - store: import("async_hooks").AsyncLocalStorage, - transform?: (context: any) => any, - ): void; - unbindStore(store: import("async_hooks").AsyncLocalStorage): boolean; - runStores(context: unknown, fn: (...args: any[]) => any, thisArg?: any, ...args: any[]): any; - } - export function channel(name: string): Channel; - export function subscribe(name: string, onMessage: ChannelListener): void; - export function unsubscribe(name: string, onMessage: ChannelListener): boolean; - export function hasSubscribers(name: string): boolean; - export interface TracingChannelSubscribers { - start?: (message: any) => void; - end?: (message: any) => void; - asyncStart?: (message: any) => void; - asyncEnd?: (message: any) => void; - error?: (message: any) => void; - } - export interface TracingChannelCollection { - start: Channel; - end: Channel; - asyncStart: Channel; - asyncEnd: Channel; - error: Channel; - } - export interface TracingChannel { - start: Channel; - end: Channel; - asyncStart: Channel; - asyncEnd: Channel; - error: Channel; - readonly hasSubscribers: boolean; - subscribe(subscribers: TracingChannelSubscribers): void; - /** True when every present handler was found and removed (Node's - * all-found conjunction; @types/node under-declares this as void). */ - unsubscribe(subscribers: TracingChannelSubscribers): boolean; - traceSync( - fn: (this: ThisArg, ...args: Args) => Result, - context?: object, - thisArg?: ThisArg, - ...args: Args - ): Result; - tracePromise( - fn: (this: ThisArg, ...args: Args) => Promise, - context?: object, - thisArg?: ThisArg, - ...args: Args - ): Promise; - traceCallback( - fn: (this: ThisArg, ...args: Args) => Result, - position?: number, - context?: object, - thisArg?: ThisArg, - ...args: Args - ): Result; - } - export function tracingChannel(nameOrChannels: string | TracingChannelCollection): TracingChannel; -} -declare module "diagnostics_channel" { - export * from "node:diagnostics_channel"; -} - /* node:perf_hooks — performance.now() over the runtime's process-start- * anchored monotonic clock (Node's timeOrigin for a compiled program), * fractional milliseconds. The .bind(performance) spelling lowers to the @@ -1525,15 +1370,6 @@ declare module "perf_hooks" { * performance.now() either way. */ declare var performance: import("node:perf_hooks").Performance; -declare module "node:module" { - export function createRequire(filename: string | URL): ScriptcRequire; - export const builtinModules: string[]; - export function isBuiltin(moduleName: string): boolean; - export function syncBuiltinESMExports(): void; -} -declare module "module" { - export * from "node:module"; -} /* import.meta: module-loader metadata with no value representation — * direct file-backed fields lower to constants, while the object and * remaining members fence (SC1090) EXCEPT as createRequire's base, where it @@ -1548,1188 +1384,6 @@ interface ImportMeta { resolve(specifier: string, parent?: string | URL): string; } -/* The synchronous node:fs surface — utf8-only, no options objects, no - * Buffers. Importing "node:fs" resolves here (preflight allowlists exactly - * the ambient-declared node: modules); every function lowers to a `libCall` - * with a scr_fs_* runtime implementation. Failures throw CATCHABLE string - * values formatted like Node's error messages ("ENOENT: no such file or - * directory, open 'x'"). `rmSync` removes FILES only (like Node without - * `recursive`); empty directories go through `rmdirSync`. */ -declare module "node:fs" { - import { Readable, Writable } from "stream"; - export function readFileSync(path: string | number | URL, encoding: BufferEncoding): string; - export function readFileSync( - path: string | number | URL, - options: { encoding: BufferEncoding }, - ): string; - export function readFileSync(path: string | number | URL): Buffer; - export function readFileSync(path: string | URL, options: unknown): string | Buffer; - /* Error-first callbacks select string or Buffer data from their encoding. - * Unknown options retain that union until the caller validates the value. */ - export function readFile( - path: string, - options: unknown, - callback: (error: Error | null, data: string | Buffer) => void, - ): void; - /* The options form carries the mode (applied at CREATION only, like - * Node — an existing file keeps its permissions) and/or the utf8 - * encoding spelling. */ - export function writeFileSync( - path: string | URL, - data: string, - /* The options-record stance (see http.RequestOptions): flag fences - * by name at the call site; undocumented keys drop like Node. */ - options?: { - mode?: number; - encoding?: "utf8" | "utf-8"; - flag?: string; - [option: string]: unknown; - }, - ): void; - /* The bare-encoding spelling — the options record's encoding key alone. */ - export function writeFileSync(path: string | URL, data: string, encoding: "utf8" | "utf-8"): void; - export function writeFileSync(path: string | URL, data: string | Uint8Array): void; - export function appendFileSync(path: string | URL, data: string | Uint8Array): void; - export function existsSync(path: string | URL): boolean; - export function mkdirSync(path: string | URL): void; - export function mkdirSync( - path: string | URL, - options: { recursive?: boolean; mode?: number }, - ): void; - export function unlinkSync(path: string | URL): void; - export function chmodSync(path: string | URL, mode: number): void; - export function fchmodSync(fd: number, mode: number): void; - export function fsyncSync(fd: number): void; - export function linkSync( - existingPath: string | Uint8Array | URL, - newPath: string | Uint8Array | URL, - ): void; - export function symlinkSync( - target: string | Uint8Array | URL, - path: string | Uint8Array | URL, - type?: string | null, - ): void; - /* fs.cpSync / fs.cp: copies a file, symlink or (with recursive) a - * directory tree. filter decides per path; the callback and promise - * forms complete the copy before reporting. */ - export interface CopySyncOptions { - dereference?: boolean; - errorOnExist?: boolean; - filter?: (source: string, destination: string) => boolean; - force?: boolean; - mode?: number; - preserveTimestamps?: boolean; - recursive?: boolean; - verbatimSymlinks?: boolean; - } - export interface CopyOptions { - dereference?: boolean; - errorOnExist?: boolean; - filter?: (source: string, destination: string) => boolean | Promise; - force?: boolean; - mode?: number; - preserveTimestamps?: boolean; - recursive?: boolean; - verbatimSymlinks?: boolean; - } - export function cpSync( - source: string | URL, - destination: string | URL, - options?: CopySyncOptions, - ): void; - export function cp( - source: string | URL, - destination: string | URL, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function cp( - source: string | URL, - destination: string | URL, - options: CopyOptions, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function symlink( - target: string | Uint8Array | URL, - path: string | Uint8Array | URL, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function symlink( - target: string | Uint8Array | URL, - path: string | Uint8Array | URL, - type: string | null | undefined, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function link( - existingPath: string | Uint8Array | URL, - newPath: string | Uint8Array | URL, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function readlink( - path: string | Uint8Array | URL, - callback: (err: NodeJS.ErrnoException | null, target: string) => void, - ): void; - export function readlink( - path: string | Uint8Array | URL, - options: "buffer" | { encoding: "buffer" }, - callback: (err: NodeJS.ErrnoException | null, target: Buffer) => void, - ): void; - export function readlink( - path: string | Uint8Array | URL, - options: BufferEncoding | { encoding?: BufferEncoding | null } | null, - callback: (err: NodeJS.ErrnoException | null, target: string) => void, - ): void; - export function readlink( - path: string | Uint8Array | URL, - options: string | { encoding?: string | null } | null, - callback: (err: NodeJS.ErrnoException | null, target: string | Buffer) => void, - ): void; - export function readlinkSync( - path: string | Uint8Array | URL, - options: "buffer" | { encoding: "buffer" }, - ): Buffer; - export function readlinkSync( - path: string | Uint8Array | URL, - options?: BufferEncoding | { encoding?: BufferEncoding | null } | null, - ): string; - export function readlinkSync( - path: string | Uint8Array | URL, - options: string | { encoding?: string | null } | null, - ): string | Buffer; - export function chownSync(path: string | URL, uid: number, gid: number): void; - export function lchownSync(path: string | URL, uid: number, gid: number): void; - export function fchownSync(fd: number, uid: number, gid: number): void; - export function truncateSync(path: string | URL, len?: number): void; - /* The 2-argument form only (Node's mode flags have no lowering). The - * destination is created or truncated carrying the SOURCE's mode. */ - export function copyFileSync(src: string | URL, dest: string | URL): void; - export function rename( - oldPath: string, - newPath: string, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function renameSync(oldPath: string | URL, newPath: string | URL): void; - export function rmSync(path: string | URL): void; - /* maxRetries/retryDelay are accepted no-ops (Node retries around - * EBUSY-class races; the synchronous lowering has no re-entrancy that - * needs them). */ - export function rmSync( - path: string | URL, - options: { recursive?: boolean; force?: boolean; maxRetries?: number; retryDelay?: number }, - ): void; - export function rmdirSync(path: string | URL): void; - export function readdirSync(path: string | URL): string[]; - /* The withFileTypes form: Dirent rows (name + parentPath + the type - * probes — the honest subset of Node's Dirent surface). The type is - * interned explicitly in type-mapper.ts (the record's hidden %dtype field - * carries the entry kind; isFile/isDirectory/isSymbolicLink lower as - * reads of it in builtins/process.ts). */ - export interface Dirent { - name: string; - parentPath: string; - isFile(): boolean; - isDirectory(): boolean; - isSymbolicLink(): boolean; - } - export function readdirSync( - path: string | URL, - /* The options-record stance (see http.RequestOptions): recursive - * fences by name at the call site; undocumented keys drop like Node. */ - options: { withFileTypes: true; recursive?: boolean; [option: string]: unknown }, - ): Dirent[]; - /* fs.globSync / fs.glob: Node's glob walk over the file system. Patterns - * are minimatch globs (case-insensitive on macOS and Windows); results - * are relative to cwd unless the pattern is absolute. withFileTypes must - * be a literal so the result type is known. */ - export interface GlobOptions { - cwd?: string | URL; - exclude?: readonly string[] | ((fileName: string) => boolean); - followSymlinks?: boolean; - withFileTypes?: false; - } - export interface GlobOptionsWithFileTypes { - cwd?: string | URL; - exclude?: readonly string[]; - followSymlinks?: boolean; - withFileTypes: true; - } - export function globSync(pattern: string | readonly string[], options?: GlobOptions): string[]; - export function globSync( - pattern: string | readonly string[], - options: GlobOptionsWithFileTypes, - ): Dirent[]; - export function glob( - pattern: string | readonly string[], - callback: (err: NodeJS.ErrnoException | null, matches?: string[]) => void, - ): void; - export function glob( - pattern: string | readonly string[], - options: GlobOptions, - callback: (err: NodeJS.ErrnoException | null, matches?: string[]) => void, - ): void; - /* fs.Dir: an open directory stream (opendirSync, fs.promises.opendir) - * read one Dirent at a time in OS order; utf8 names, no recursive walk. */ - export interface Dir { - readonly path: string; - readSync(): Dirent | null; - read(): Promise; - closeSync(): void; - close(): Promise; - [Symbol.asyncIterator](): AsyncIterableIterator; - } - export interface OpenDirOptions { - encoding?: "utf8" | "utf-8"; - bufferSize?: number; - } - export function opendirSync(path: string | URL, options?: OpenDirOptions): Dir; - /* fs.ReadStream / fs.WriteStream: runtime Readable and Writable streams - * over a file (scr_fs_stream.c). The options are checked at runtime - * with Node's rules; flags and mode are checked when the file opens, so - * their errors arrive as 'error' events. Instances also emit 'open' - * (with the fd) and 'ready'. */ - export interface StreamOptions { - flags?: string; - encoding?: BufferEncoding; - fd?: number; - mode?: number | string; - autoClose?: boolean; - emitClose?: boolean; - start?: number; - highWaterMark?: number; - } - export interface ReadStreamOptions extends StreamOptions { - end?: number; - } - export interface WriteStreamOptions extends StreamOptions { - flush?: boolean; - } - export class ReadStream extends Readable { - readonly bytesRead: number; - readonly path: string | Buffer; - readonly pending: boolean; - close(callback?: () => void): void; - } - export class WriteStream extends Writable { - readonly bytesWritten: number; - readonly path: string | Buffer; - readonly pending: boolean; - close(callback?: () => void): void; - } - export function createReadStream( - path: string | Buffer | URL, - options?: BufferEncoding | ReadStreamOptions, - ): ReadStream; - export function createWriteStream( - path: string | Buffer | URL, - options?: BufferEncoding | WriteStreamOptions, - ): WriteStream; - export function accessSync(path: string | URL, mode?: number): void; - export function mkdtempSync(prefix: string | URL): string; - export const constants: { - readonly F_OK: number; - readonly R_OK: number; - readonly W_OK: number; - readonly X_OK: number; - readonly O_RDONLY: number; - readonly O_WRONLY: number; - readonly O_RDWR: number; - readonly O_CREAT: number; - readonly O_EXCL: number; - readonly O_NOFOLLOW: number; - readonly O_NONBLOCK: number; - readonly O_TRUNC: number; - readonly O_APPEND: number; - readonly COPYFILE_EXCL: number; - readonly COPYFILE_FICLONE: number; - readonly COPYFILE_FICLONE_FORCE: number; - readonly UV_FS_SYMLINK_DIR: number; - readonly UV_FS_SYMLINK_JUNCTION: number; - readonly UV_DIRENT_UNKNOWN: number; - readonly UV_DIRENT_FILE: number; - readonly UV_DIRENT_DIR: number; - readonly UV_DIRENT_LINK: number; - readonly UV_DIRENT_FIFO: number; - readonly UV_DIRENT_SOCKET: number; - readonly UV_DIRENT_CHAR: number; - readonly UV_DIRENT_BLOCK: number; - readonly UV_FS_O_FILEMAP: number; - readonly UV_FS_O_TEMPORARY: number; - readonly UV_FS_O_SHORT_LIVED: number; - readonly UV_FS_O_SEQUENTIAL: number; - readonly UV_FS_O_RANDOM: number; - readonly UV_FS_COPYFILE_EXCL: number; - readonly UV_FS_COPYFILE_FICLONE: number; - readonly UV_FS_COPYFILE_FICLONE_FORCE: number; - readonly S_IFMT: number; - readonly S_IFREG: number; - readonly S_IFDIR: number; - readonly S_IFCHR: number; - readonly S_IFBLK: number; - readonly S_IFIFO: number; - readonly S_IFLNK: number; - readonly S_IFSOCK: number; - readonly O_NOCTTY: number; - readonly O_DIRECTORY: number; - readonly O_NOATIME: number; - readonly O_SYNC: number; - readonly O_DSYNC: number; - readonly O_SYMLINK: number; - readonly O_DIRECT: number; - readonly S_IRWXU: number; - readonly S_IRUSR: number; - readonly S_IWUSR: number; - readonly S_IXUSR: number; - readonly S_IRWXG: number; - readonly S_IRGRP: number; - readonly S_IWGRP: number; - readonly S_IXGRP: number; - readonly S_IRWXO: number; - readonly S_IROTH: number; - readonly S_IWOTH: number; - readonly S_IXOTH: number; - }; - /* A stat(2) snapshot (statSync follows symlinks, lstatSync does not — - * Node's split) — immutable; the supported surface is exactly these - * members. dev/ino identify the filesystem entry, blocks is the allocated - * size in 512-byte units, and the time fields are milliseconds with their - * sub-second fractions. */ - export interface Stats { - isFile(): boolean; - isDirectory(): boolean; - isSymbolicLink(): boolean; - isBlockDevice(): boolean; - isCharacterDevice(): boolean; - isFIFO(): boolean; - isSocket(): boolean; - readonly dev: number; - readonly mode: number; - readonly nlink: number; - readonly uid: number; - readonly gid: number; - readonly rdev: number; - readonly blksize: number; - readonly ino: number; - readonly size: number; - readonly blocks: number; - readonly atimeMs: number; - readonly mtimeMs: number; - readonly ctimeMs: number; - readonly birthtimeMs: number; - readonly atime: Date; - readonly mtime: Date; - readonly ctime: Date; - readonly birthtime: Date; - } - /* throwIfNoEntry: false answers undefined for a missing entry (ENOENT or - * ENOTDIR) instead of throwing. BigIntStats (bigint: true) has no - * lowering. */ - export interface StatSyncOptions { - bigint?: boolean; - throwIfNoEntry?: boolean; - } - export function statSync(path: string | URL, options?: undefined): Stats; - export function statSync( - path: string | URL, - options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false }, - ): Stats | undefined; - export function statSync( - path: string | URL, - options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true }, - ): Stats; - /* bigint: true type-checks so the lowering can name it as unsupported. */ - export function statSync(path: string | URL, options: StatSyncOptions & { bigint: true }): Stats; - export function statSync(path: string | URL, options: StatSyncOptions): Stats | undefined; - export function lstatSync(path: string | URL, options?: undefined): Stats; - export function lstatSync( - path: string | URL, - options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false }, - ): Stats | undefined; - export function lstatSync( - path: string | URL, - options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true }, - ): Stats; - /* bigint: true type-checks so the lowering can name it as unsupported. */ - export function lstatSync(path: string | URL, options: StatSyncOptions & { bigint: true }): Stats; - export function lstatSync(path: string | URL, options: StatSyncOptions): Stats | undefined; - /* The fd pair behind spawn's fd-stdio form: openSync(path, flags) → - * the raw fd. Numeric flags use an inline OR of the O_* constants. */ - export function openSync(path: string | URL, flags: string): number; - export function openSync(path: string | URL, flags: number, mode?: number): number; - export function closeSync(fd: number): void; - export function fdatasyncSync(fd: number): void; - export function ftruncateSync(fd: number, len?: number): void; - export function utimesSync( - path: string | Uint8Array | URL, - atime: number | string | Date, - mtime: number | string | Date, - ): void; - export function futimesSync( - fd: number, - atime: number | string | Date, - mtime: number | string | Date, - ): void; - export function lutimesSync( - path: string | Uint8Array | URL, - atime: number | string | Date, - mtime: number | string | Date, - ): void; - export function utimes( - path: string | Uint8Array | URL, - atime: number | string | Date, - mtime: number | string | Date, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function futimes( - fd: number, - atime: number | string | Date, - mtime: number | string | Date, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function lutimes( - path: string | Uint8Array | URL, - atime: number | string | Date, - mtime: number | string | Date, - callback: (err: NodeJS.ErrnoException | null) => void, - ): void; - export function readvSync(fd: number, buffers: Uint8Array[], position?: number | null): number; - export function writevSync(fd: number, buffers: Uint8Array[], position?: number | null): number; - /* Read into a caller buffer from the fd's current position when position - * is omitted/null, or from a numeric byte position without advancing the - * fd. Answers the byte count, 0 at EOF. */ - export interface ReadSyncOptions { - offset?: number; - length?: number; - position?: number | null; - } - export function readSync(fd: number, buffer: Uint8Array, options?: ReadSyncOptions): number; - export function readSync( - fd: number, - buffer: Uint8Array, - offset: number, - length: number, - position?: number | null, - ): number; - /* Write a caller-buffer window, or a utf8 string, at the fd's current - * position when position is omitted/null (advancing it), or at a numeric - * byte position without advancing it. Answers the byte count. */ - export interface WriteSyncOptions { - offset?: number; - length?: number; - position?: number | null; - } - export function writeSync(fd: number, buffer: Uint8Array, options: WriteSyncOptions): number; - export function writeSync( - fd: number, - buffer: Uint8Array, - offset?: number, - length?: number, - position?: number | null, - ): number; - export function writeSync( - fd: number, - string: string, - position?: number | null, - encoding?: "utf8" | "utf-8", - ): number; - /* statSync over an open fd — the same Stats snapshot. */ - export function fstatSync(fd: number): Stats; - /* realpath(3) — resolves symlinks, `.`/`..`, throwing Node's fs error - * shapes for missing paths. */ - export function realpathSync(path: string | URL): string; - export namespace realpathSync { - function native(path: string | URL): string; - } - /* statfs(2)/statvfs(3) — the filesystem-capacity snapshot (the fields - * Node's statfsSync reports; bavail × bsize is the free-space probe). */ - export interface StatsFsBase { - type: T; - bsize: T; - blocks: T; - bfree: T; - bavail: T; - files: T; - ffree: T; - } - export interface StatsFs extends StatsFsBase {} - export interface BigIntStatsFs extends StatsFsBase {} - export interface StatFsOptions { - bigint?: boolean; - } - export function statfsSync( - path: string | Uint8Array | URL, - options?: StatFsOptions & { bigint?: false }, - ): StatsFs; - export function statfsSync( - path: string | Uint8Array | URL, - options: StatFsOptions & { bigint: true }, - ): BigIntStatsFs; - export function statfsSync( - path: string | Uint8Array | URL, - options?: StatFsOptions, - ): StatsFs | BigIntStatsFs; - export function statfs( - path: string | Uint8Array | URL, - callback: (err: NodeJS.ErrnoException | null, stats: StatsFs) => void, - ): void; - export function statfs( - path: string | Uint8Array | URL, - options: (StatFsOptions & { bigint?: false }) | undefined, - callback: (err: NodeJS.ErrnoException | null, stats: StatsFs) => void, - ): void; - export function statfs( - path: string | Uint8Array | URL, - options: StatFsOptions & { bigint: true }, - callback: (err: NodeJS.ErrnoException | null, stats: BigIntStatsFs) => void, - ): void; - export function statfs( - path: string | Uint8Array | URL, - options: StatFsOptions | undefined, - callback: (err: NodeJS.ErrnoException | null, stats: StatsFs | BigIntStatsFs) => void, - ): void; - /* fs.watch — the file-watching slice (scr_watch.c, kqueue EVFILT_VNODE): - * "rename"/"change" events on ONE path, watcher.close() to stop. The - * listener takes zero parameters or the eventType string (the filename - * parameter has no lowering); an open watcher keeps the loop alive. A - * path that cannot be opened THROWS Node's fs error synchronously. */ - export interface FSWatcher { - close(): void; - } - /* The options-record stance (see http.RequestOptions): persistent: true, - * recursive: false, and encoding: "utf8" state the lowered behavior and - * are accepted; persistent: false, recursive: true, and signal fence by - * name at the call site; undocumented keys drop like Node. */ - export interface WatchOptions { - persistent?: boolean; - recursive?: boolean; - encoding?: string; - [option: string]: unknown; - } - export function watch(path: string, listener?: (eventType: string) => void): FSWatcher; - export function watch( - path: string, - options: WatchOptions, - listener?: (eventType: string) => void, - ): FSWatcher; - /* fs.promises IS the fs/promises module (Node's rule) — the namespace- - * import form `fs.promises.readFile(...)` lowers through the same - * fs/promises table as `import { readFile } from "node:fs/promises"`. */ - export const promises: typeof import("node:fs/promises"); -} -/* Every builtin answers to BOTH specifier forms, like in Node: the bare - * module re-exports its node:-prefixed twin (or holds the declarations - * itself — one of the pair forwards). The lowerer recognizes members by - * their import SPECIFIER, so both forms lower identically. */ -declare module "fs" { - export * from "node:fs"; -} -/* graceful-fs — served as node:fs (it monkeypatches fs and retries on - * EMFILE/ENFILE; compiled programs call fs directly, without the retry - * queue). gracefulify is a no-op statement. The @types/graceful-fs shape. */ -declare module "graceful-fs" { - export * from "node:fs"; - export function gracefulify(fsModule: T): T; -} - -/* fs/promises — the SAME synchronous operations behind already-settled - * promises: success fulfills, failure REJECTS with the would-be thrown - * error (catchable at the await, like Node). DOCUMENTED DIVERGENCE - * (SEMANTICS.md): the syscall blocks the event loop, so I/O never - * interleaves with timers or other fibers — observable only in concurrent - * code. readFile is utf8-only, like readFileSync. */ -declare module "fs/promises" { - export interface FileReadResult { - bytesRead: number; - buffer: T; - } - export interface FileWriteResult { - bytesWritten: number; - buffer: T; - } - export interface FileReadvResult { - bytesRead: number; - buffers: T; - } - export interface FileWritevResult { - bytesWritten: number; - buffers: T; - } - export interface FileReadOptions { - buffer?: T; - offset?: number | null; - length?: number | null; - position?: number | null; - } - /* The streams over a FileHandle (createReadStream, createWriteStream, - * readLines): fs streams that hold the handle until they close; closing - * the stream closes the handle unless autoClose is false. */ - export interface CreateReadStreamOptions { - encoding?: BufferEncoding | null; - autoClose?: boolean; - emitClose?: boolean; - start?: number; - end?: number; - highWaterMark?: number; - } - export interface CreateWriteStreamOptions { - encoding?: BufferEncoding | null; - autoClose?: boolean; - emitClose?: boolean; - start?: number; - highWaterMark?: number; - flush?: boolean; - } - export interface FileHandle extends AsyncDisposable { - readonly fd: number; - close(): Promise; - createReadStream(options?: CreateReadStreamOptions): import("node:fs").ReadStream; - createWriteStream(options?: CreateWriteStreamOptions): import("node:fs").WriteStream; - readLines(options?: CreateReadStreamOptions): import("node:readline").Interface; - sync(): Promise; - datasync(): Promise; - truncate(len?: number): Promise; - chmod(mode: number): Promise; - utimes(atime: number | string | Date, mtime: number | string | Date): Promise; - readv( - buffers: T, - position?: number | null, - ): Promise>; - writev( - buffers: T, - position?: number | null, - ): Promise>; - read( - options?: FileReadOptions | null, - ): Promise>; - read( - buffer: T, - options: Omit, "buffer">, - ): Promise>; - read( - buffer: T, - offset?: number | null, - length?: number | null, - position?: number | null, - ): Promise>; - write( - buffer: T, - offset?: number | null, - length?: number | null, - position?: number | null, - ): Promise>; - write( - buffer: T, - options: Omit, "buffer">, - ): Promise>; - write( - data: string, - position?: number | null, - encoding?: "utf8" | "utf-8" | null, - ): Promise>; - readFile(options?: null): Promise; - readFile(encoding: "utf8" | "utf-8"): Promise; - writeFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise; - appendFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise; - stat(): Promise; - [Symbol.asyncDispose](): Promise; - } - export function open(path: string | URL, flags?: string, mode?: number): Promise; - export function link( - existingPath: string | Uint8Array | URL, - newPath: string | Uint8Array | URL, - ): Promise; - export function symlink( - target: string | Uint8Array | URL, - path: string | Uint8Array | URL, - type?: string | null, - ): Promise; - export function cp( - source: string | URL, - destination: string | URL, - options?: import("node:fs").CopyOptions, - ): Promise; - export function readlink( - path: string | Uint8Array | URL, - options: "buffer" | { encoding: "buffer" }, - ): Promise; - export function readlink( - path: string | Uint8Array | URL, - options?: BufferEncoding | { encoding?: BufferEncoding | null } | null, - ): Promise; - export function readlink( - path: string | Uint8Array | URL, - options: string | { encoding?: string | null } | null, - ): Promise; - export function utimes( - path: string | Uint8Array | URL, - atime: number | string | Date, - mtime: number | string | Date, - ): Promise; - export function lutimes( - path: string | Uint8Array | URL, - atime: number | string | Date, - mtime: number | string | Date, - ): Promise; - export function readFile(path: string | URL, encoding: "utf8" | "utf-8"): Promise; - export function readFile( - path: string | URL, - options: BufferEncoding | { encoding: BufferEncoding }, - ): Promise; - export function readFile(path: string | URL): Promise; - export function writeFile( - path: string | URL, - data: string, - options?: { - mode?: number; - encoding?: "utf8" | "utf-8"; - flag?: string; - [option: string]: unknown; - }, - ): Promise; - export function writeFile( - path: string | URL, - data: string, - encoding: "utf8" | "utf-8", - ): Promise; - export function mkdir( - path: string | URL, - options?: { recursive?: boolean; mode?: number }, - ): Promise; - export function readdir(path: string | URL): Promise; - export function readdir( - path: string | URL, - options: { - encoding?: "utf8" | "utf-8"; - withFileTypes: true; - recursive?: boolean; - [option: string]: unknown; - }, - ): Promise; - /* The async iterator form of fs.globSync: iterate it with for await. */ - export function glob( - pattern: string | readonly string[], - options?: import("node:fs").GlobOptions, - ): AsyncIterableIterator; - export function glob( - pattern: string | readonly string[], - options: import("node:fs").GlobOptionsWithFileTypes, - ): AsyncIterableIterator; - export function rm(path: string | URL): Promise; - export function rm( - path: string | URL, - options: { recursive?: boolean; force?: boolean; maxRetries?: number; retryDelay?: number }, - ): Promise; - export function stat(path: string | URL): Promise; - export function statfs( - path: string | Uint8Array | URL, - options?: import("node:fs").StatFsOptions & { bigint?: false }, - ): Promise; - export function statfs( - path: string | Uint8Array | URL, - options: import("node:fs").StatFsOptions & { bigint: true }, - ): Promise; - export function statfs( - path: string | Uint8Array | URL, - options?: import("node:fs").StatFsOptions, - ): Promise; - export function realpath(path: string | URL): Promise; - export function lstat(path: string | URL): Promise; - export function unlink(path: string | URL): Promise; - export function chmod(path: string | URL, mode: number): Promise; - export function chown(path: string | URL, uid: number, gid: number): Promise; - export function lchown(path: string | URL, uid: number, gid: number): Promise; - export function access(path: string | URL, mode?: number): Promise; - export function truncate(path: string | URL, len?: number): Promise; - export function appendFile(path: string | URL, data: string | Uint8Array): Promise; - export function copyFile(src: string | URL, dest: string | URL): Promise; - export function mkdtemp(prefix: string | URL): Promise; - export function rmdir(path: string | URL): Promise; - export function rename(oldPath: string | URL, newPath: string | URL): Promise; - export function opendir( - path: string | URL, - options?: import("node:fs").OpenDirOptions, - ): Promise; -} -declare module "node:fs/promises" { - export * from "fs/promises"; -} - -/* node:path — the TARGET platform's implementation (Node's rule): posix - * on posix triples, path.win32 under a win32 triple, with the posix and - * win32 namespaces answering their own platform anywhere. Every function - * is a pure string algorithm matching Node's implementations - * exactly; join/resolve are variadic like Node's. */ -declare module "path" { - export function join(...paths: string[]): string; - export function resolve(...paths: string[]): string; - export function normalize(path: string): string; - export function dirname(path: string): string; - export function basename(path: string, suffix?: string): string; - export function extname(path: string): string; - export function isAbsolute(path: string): boolean; - export function relative(from: string, to: string): string; - export function toNamespacedPath(path: string): string; - /* matchesGlob() is Node's glob matcher: brace expansion, extglobs, POSIX - * classes and the ** and dot rules. */ - export function matchesGlob(path: string, pattern: string): boolean; - /* parse() splits a path into its root, directory, base, extension and - * name; format() joins those fields back (Node's `||` defaults). */ - export interface ParsedPath { - root: string; - dir: string; - base: string; - ext: string; - name: string; - } - export interface FormatInputPathObject { - root?: string | undefined; - dir?: string | undefined; - base?: string | undefined; - ext?: string | undefined; - name?: string | undefined; - } - export function parse(path: string): ParsedPath; - export function format(pathObject: FormatInputPathObject): string; - /* The union @types/node declares: the bare module answers the TARGET - * platform's value (a compile-time constant — "\\"/";" under a win32 - * triple, "/"/":" everywhere else). */ - export const sep: "\\" | "/"; - export const delimiter: ";" | ":"; - /* The platform-specific namespaces (real Node submodules too — - * "node:path/posix" resolves). Each carries the FULL surface and - * answers ITS platform's rules on any target, Node's own contract; - * the bare module IS the target platform's implementation. */ - export const posix: typeof import("path/posix"); - export const win32: typeof import("path/win32"); -} -declare module "node:path" { - export * from "path"; -} -declare module "path/posix" { - export function join(...paths: string[]): string; - export function resolve(...paths: string[]): string; - export function normalize(path: string): string; - export function dirname(path: string): string; - export function basename(path: string, suffix?: string): string; - export function extname(path: string): string; - export function isAbsolute(path: string): boolean; - export function relative(from: string, to: string): string; - export function toNamespacedPath(path: string): string; - export function matchesGlob(path: string, pattern: string): boolean; - export function parse(path: string): import("path").ParsedPath; - export function format(pathObject: import("path").FormatInputPathObject): string; - export const sep: "/"; - export const delimiter: ":"; -} -declare module "node:path/posix" { - export * from "path/posix"; -} -declare module "path/win32" { - export function join(...paths: string[]): string; - export function resolve(...paths: string[]): string; - export function normalize(path: string): string; - export function dirname(path: string): string; - export function basename(path: string, suffix?: string): string; - export function extname(path: string): string; - export function isAbsolute(path: string): boolean; - export function relative(from: string, to: string): string; - export function toNamespacedPath(path: string): string; - export function matchesGlob(path: string, pattern: string): boolean; - export function parse(path: string): import("path").ParsedPath; - export function format(pathObject: import("path").FormatInputPathObject): string; - export const sep: "\\"; - export const delimiter: ";"; -} -declare module "node:path/win32" { - export * from "path/win32"; -} - -/* node:os — the slice a CLI needs: platform() (same implementation as - * process.platform), homedir(), tmpdir() (Node's env cascade), EOL - * (always "\n" — POSIX pinned, like path.sep), and networkInterfaces() - * (getifaddrs(3); the interface shapes mirror @types/node's exactly so - * both type worlds map to the same IR structure). */ -declare module "os" { - export function platform(): string; - export function homedir(): string; - export function tmpdir(): string; - /* uname(2)'s release field — Node's own implementation. */ - export function release(): string; - /* uname(2)'s sysname field ("Darwin", "Linux") — Node's os.type(). */ - export function type(): string; - /* Total system memory in bytes (sysctl hw.memsize / sysconf). */ - export function totalmem(): number; - export function availableParallelism(): number; - /* The passwd-entry snapshot (uv_os_get_passwd): shell is `string | - * null` to match @types/node (POSIX always answers the string arm); - * homedir is pw_dir — NOT os.homedir()'s $HOME-first cascade. The type - * is interned explicitly in type-mapper.ts (the AddressInfo pattern — this - * concrete form and @types/node's UserInfo both), and the call - * assembles field-by-field in lowerOsUserInfoCall. */ - export interface UserInfo { - username: string; - uid: number; - gid: number; - shell: string | null; - homedir: string; - } - export function userInfo(): UserInfo; - /* The TARGET platform's line terminator (a compile-time constant: - * "\r\n" under a win32 triple, "\n" everywhere else). */ - export const EOL: "\r\n" | "\n"; - export interface NetworkInterfaceBase { - address: string; - netmask: string; - mac: string; - internal: boolean; - cidr: string | null; - scopeid?: number; - } - export interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { - family: "IPv4"; - } - export interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { - family: "IPv6"; - scopeid: number; - } - export type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; - export function networkInterfaces(): { [name: string]: NetworkInterfaceInfo[] | undefined }; - /* Host facts, libuv's answers: model/speed/times per logical CPU, the - * host name, the 1/5/15-minute load averages, uptime in seconds, free - * memory in bytes, process.arch, uname's machine and version fields, - * the byte order, and a process's scheduling priority (an omitted pid - * is the current process). Shapes mirror @types/node's. */ - export interface CpuInfo { - model: string; - speed: number; - times: { - user: number; - nice: number; - sys: number; - idle: number; - irq: number; - }; - } - export function cpus(): CpuInfo[]; - export function hostname(): string; - export function loadavg(): number[]; - export function uptime(): number; - export function freemem(): number; - export function arch(): string; - export function machine(): string; - export function version(): string; - export function endianness(): "BE" | "LE"; - export function getPriority(pid?: number): number; - export function setPriority(priority: number): void; - export function setPriority(pid: number, priority: number): void; - /* The TARGET platform's null device ("\\\\.\\nul" under a win32 triple). */ - export const devNull: string; - /* The platform's constants: null-prototype objects with read-only - * members, `signals` frozen (Node's internalBinding('constants').os). */ - export type SignalConstants = { - [ - key in - | "SIGABRT" - | "SIGALRM" - | "SIGBUS" - | "SIGCHLD" - | "SIGCONT" - | "SIGFPE" - | "SIGHUP" - | "SIGILL" - | "SIGINT" - | "SIGIO" - | "SIGIOT" - | "SIGKILL" - | "SIGPIPE" - | "SIGPOLL" - | "SIGPROF" - | "SIGPWR" - | "SIGQUIT" - | "SIGSEGV" - | "SIGSTKFLT" - | "SIGSTOP" - | "SIGSYS" - | "SIGTERM" - | "SIGTRAP" - | "SIGTSTP" - | "SIGTTIN" - | "SIGTTOU" - | "SIGUNUSED" - | "SIGURG" - | "SIGUSR1" - | "SIGUSR2" - | "SIGVTALRM" - | "SIGWINCH" - | "SIGXCPU" - | "SIGXFSZ" - | "SIGBREAK" - | "SIGLOST" - | "SIGINFO" - ]: number; - }; - export namespace constants { - const UV_UDP_REUSEADDR: number; - namespace signals {} - const signals: SignalConstants; - namespace errno { - const E2BIG: number; - const EACCES: number; - const EADDRINUSE: number; - const EADDRNOTAVAIL: number; - const EAFNOSUPPORT: number; - const EAGAIN: number; - const EALREADY: number; - const EBADF: number; - const EBADMSG: number; - const EBUSY: number; - const ECANCELED: number; - const ECHILD: number; - const ECONNABORTED: number; - const ECONNREFUSED: number; - const ECONNRESET: number; - const EDEADLK: number; - const EDESTADDRREQ: number; - const EDOM: number; - const EDQUOT: number; - const EEXIST: number; - const EFAULT: number; - const EFBIG: number; - const EHOSTUNREACH: number; - const EIDRM: number; - const EILSEQ: number; - const EINPROGRESS: number; - const EINTR: number; - const EINVAL: number; - const EIO: number; - const EISCONN: number; - const EISDIR: number; - const ELOOP: number; - const EMFILE: number; - const EMLINK: number; - const EMSGSIZE: number; - const EMULTIHOP: number; - const ENAMETOOLONG: number; - const ENETDOWN: number; - const ENETRESET: number; - const ENETUNREACH: number; - const ENFILE: number; - const ENOBUFS: number; - const ENODATA: number; - const ENODEV: number; - const ENOENT: number; - const ENOEXEC: number; - const ENOLCK: number; - const ENOLINK: number; - const ENOMEM: number; - const ENOMSG: number; - const ENOPROTOOPT: number; - const ENOSPC: number; - const ENOSR: number; - const ENOSTR: number; - const ENOSYS: number; - const ENOTCONN: number; - const ENOTDIR: number; - const ENOTEMPTY: number; - const ENOTSOCK: number; - const ENOTSUP: number; - const ENOTTY: number; - const ENXIO: number; - const EOPNOTSUPP: number; - const EOVERFLOW: number; - const EPERM: number; - const EPIPE: number; - const EPROTO: number; - const EPROTONOSUPPORT: number; - const EPROTOTYPE: number; - const ERANGE: number; - const EROFS: number; - const ESPIPE: number; - const ESRCH: number; - const ESTALE: number; - const ETIME: number; - const ETIMEDOUT: number; - const ETXTBSY: number; - const EWOULDBLOCK: number; - const EXDEV: number; - const WSAEINTR: number; - const WSAEBADF: number; - const WSAEACCES: number; - const WSAEFAULT: number; - const WSAEINVAL: number; - const WSAEMFILE: number; - const WSAEWOULDBLOCK: number; - const WSAEINPROGRESS: number; - const WSAEALREADY: number; - const WSAENOTSOCK: number; - const WSAEDESTADDRREQ: number; - const WSAEMSGSIZE: number; - const WSAEPROTOTYPE: number; - const WSAENOPROTOOPT: number; - const WSAEPROTONOSUPPORT: number; - const WSAESOCKTNOSUPPORT: number; - const WSAEOPNOTSUPP: number; - const WSAEPFNOSUPPORT: number; - const WSAEAFNOSUPPORT: number; - const WSAEADDRINUSE: number; - const WSAEADDRNOTAVAIL: number; - const WSAENETDOWN: number; - const WSAENETUNREACH: number; - const WSAENETRESET: number; - const WSAECONNABORTED: number; - const WSAECONNRESET: number; - const WSAENOBUFS: number; - const WSAEISCONN: number; - const WSAENOTCONN: number; - const WSAESHUTDOWN: number; - const WSAETOOMANYREFS: number; - const WSAETIMEDOUT: number; - const WSAECONNREFUSED: number; - const WSAELOOP: number; - const WSAENAMETOOLONG: number; - const WSAEHOSTDOWN: number; - const WSAEHOSTUNREACH: number; - const WSAENOTEMPTY: number; - const WSAEPROCLIM: number; - const WSAEUSERS: number; - const WSAEDQUOT: number; - const WSAESTALE: number; - const WSAEREMOTE: number; - const WSASYSNOTREADY: number; - const WSAVERNOTSUPPORTED: number; - const WSANOTINITIALISED: number; - const WSAEDISCON: number; - const WSAENOMORE: number; - const WSAECANCELLED: number; - const WSAEINVALIDPROCTABLE: number; - const WSAEINVALIDPROVIDER: number; - const WSAEPROVIDERFAILEDINIT: number; - const WSASYSCALLFAILURE: number; - const WSASERVICE_NOT_FOUND: number; - const WSATYPE_NOT_FOUND: number; - const WSA_E_NO_MORE: number; - const WSA_E_CANCELLED: number; - const WSAEREFUSED: number; - } - namespace dlopen { - const RTLD_LAZY: number; - const RTLD_NOW: number; - const RTLD_GLOBAL: number; - const RTLD_LOCAL: number; - const RTLD_DEEPBIND: number; - } - namespace priority { - const PRIORITY_LOW: number; - const PRIORITY_BELOW_NORMAL: number; - const PRIORITY_NORMAL: number; - const PRIORITY_ABOVE_NORMAL: number; - const PRIORITY_HIGH: number; - const PRIORITY_HIGHEST: number; - } - } -} -declare module "node:os" { - export * from "os"; -} - /* The WHATWG URL class (a Node global; the es2023 lib doesn't declare it), * typed as exactly the supported surface: construction from an input and * optional base (invalid input throws a catchable TypeError, like Node), the @@ -2791,1937 +1445,6 @@ declare var URLSearchParams: { new (init?: string | string[][] | { [key: string]: string } | URLSearchParams): URLSearchParams; }; -/* node:url — the file-URL bridge pair. fileURLToPath accepts a URL value - * or a URL string and throws Node's TypeErrors (non-file scheme, encoded - * slashes, non-empty host); pathToFileURL resolves the path and percent- - * encodes it into a file: URL. The legacy API: parse() answers a Url - * object, format() serializes a Url-shaped object, a string, or a URL, - * resolve() resolves one URL string against another, the domain pair - * converts a hostname to and from its Punycode form, and urlToHttpOptions - * builds http.request options from a URL. */ -declare module "url" { - export type URL = globalThis.URL; - export type URLSearchParams = globalThis.URLSearchParams; - export const URL: typeof globalThis.URL; - export const URLSearchParams: typeof globalThis.URLSearchParams; - export function fileURLToPath(url: string | URL, options?: { windows?: boolean }): string; - export function fileURLToPathBuffer(url: string | URL, options?: { windows?: boolean }): Buffer; - export function pathToFileURL(path: string, options?: { windows?: boolean }): URL; - export interface UrlObject { - auth?: string | null | undefined; - hash?: string | null | undefined; - host?: string | null | undefined; - hostname?: string | null | undefined; - href?: string | null | undefined; - pathname?: string | null | undefined; - protocol?: string | null | undefined; - search?: string | null | undefined; - slashes?: boolean | null | undefined; - port?: string | number | null | undefined; - query?: string | null | import("querystring").ParsedUrlQueryInput | undefined; - } - export interface Url { - auth: string | null; - hash: string | null; - host: string | null; - hostname: string | null; - href: string; - path: string | null; - pathname: string | null; - protocol: string | null; - search: string | null; - slashes: boolean | null; - port: string | null; - query: string | null | import("querystring").ParsedUrlQuery; - } - export interface UrlWithParsedQuery extends Url { - query: import("querystring").ParsedUrlQuery; - } - export interface UrlWithStringQuery extends Url { - query: string | null; - } - export interface URLFormatOptions { - auth?: boolean | undefined; - fragment?: boolean | undefined; - search?: boolean | undefined; - unicode?: boolean | undefined; - } - export function parse( - urlString: string, - parseQueryString?: false, - slashesDenoteHost?: boolean, - ): UrlWithStringQuery; - export function parse( - urlString: string, - parseQueryString: true, - slashesDenoteHost?: boolean, - ): UrlWithParsedQuery; - export function parse( - urlString: string, - parseQueryString: boolean, - slashesDenoteHost?: boolean, - ): Url; - export function format(urlObject: URL, options?: URLFormatOptions): string; - export function format(urlObject: UrlObject | string): string; - export function resolve(from: string, to: string): string; - export function domainToASCII(domain: string): string; - export function domainToUnicode(domain: string): string; - /** urlToHttpOptions's null-prototype request options. */ - export interface UrlHttpOptions { - protocol: string; - hostname: string; - hash: string; - search: string; - pathname: string; - path: string; - href: string; - port?: number; - auth?: string; - } - export function urlToHttpOptions(url: URL): UrlHttpOptions; -} -declare module "node:url" { - export * from "url"; -} - -/* node:crypto: the static hashing/MAC/random/key-derivation utility slice. */ -declare module "crypto" { - import { Transform } from "stream"; - export type KeyObjectType = "secret" | "public" | "private"; - export interface JsonWebKey { - crv?: string; - d?: string; - dp?: string; - dq?: string; - e?: string; - k?: string; - kty?: string; - n?: string; - p?: string; - q?: string; - qi?: string; - x?: string; - y?: string; - [key: string]: unknown; - } - export interface JwkKeyExportOptions { - format: "jwk"; - } - export interface KeyExportOptions { - format?: "buffer" | undefined; - } - export type KeyFormat = "pem" | "der" | "jwk"; - export interface AsymmetricKeyExportOptions { - type: "pkcs1" | "spki" | "pkcs8" | "sec1"; - format: T; - cipher?: string | undefined; - passphrase?: string | Buffer | undefined; - } - export interface AsymmetricKeyDetails { - modulusLength?: number; - publicExponent?: bigint; - namedCurve?: string; - } - /* Secret keys, and RSA and EC private and public keys. */ - export class KeyObject { - private constructor(); - type: KeyObjectType; - symmetricKeySize?: number; - asymmetricKeyType?: string; - asymmetricKeyDetails?: AsymmetricKeyDetails; - export(options: AsymmetricKeyExportOptions<"pem">): string | Buffer; - export(options: AsymmetricKeyExportOptions<"der">): Buffer; - export(options?: KeyExportOptions): Buffer; - export(options: JwkKeyExportOptions): JsonWebKey; - equals(otherKeyObject: KeyObject): boolean; - } - export interface PrivateKeyInput { - key: string | Buffer; - format?: "pem" | "der" | undefined; - type?: "pkcs1" | "pkcs8" | "sec1" | undefined; - encoding?: string | undefined; - passphrase?: string | Buffer | undefined; - } - export interface PublicKeyInput { - key: string | Buffer; - format?: "pem" | "der" | undefined; - type?: "pkcs1" | "spki" | undefined; - encoding?: string | undefined; - } - export interface JsonWebKeyInput { - key: JsonWebKey; - format: "jwk"; - } - export function createPrivateKey( - key: PrivateKeyInput | string | Buffer | JsonWebKeyInput, - ): KeyObject; - export function createPublicKey( - key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput, - ): KeyObject; - export interface KeyPairKeyObjectResult { - publicKey: KeyObject; - privateKey: KeyObject; - } - export interface KeyPairSyncResult { - publicKey: T1; - privateKey: T2; - } - export interface RSAKeyPairKeyObjectOptions { - modulusLength: number; - publicExponent?: number | undefined; - } - export interface ECKeyPairKeyObjectOptions { - namedCurve: string; - } - export interface RSAKeyPairOptions { - modulusLength: number; - publicExponent?: number | undefined; - publicKeyEncoding: { type: "pkcs1" | "spki"; format: PubF }; - privateKeyEncoding: { - type: "pkcs1" | "pkcs8"; - format: PrivF; - cipher?: string | undefined; - passphrase?: string | undefined; - }; - } - export interface ECKeyPairOptions { - namedCurve: string; - publicKeyEncoding: { type: "pkcs1" | "spki"; format: PubF }; - privateKeyEncoding: { - type: "sec1" | "pkcs8"; - format: PrivF; - cipher?: string | undefined; - passphrase?: string | undefined; - }; - } - export function generateKeyPairSync( - type: "rsa", - options: RSAKeyPairOptions<"pem", "pem">, - ): KeyPairSyncResult; - export function generateKeyPairSync( - type: "rsa", - options: RSAKeyPairOptions<"der", "der">, - ): KeyPairSyncResult; - export function generateKeyPairSync( - type: "rsa", - options: RSAKeyPairKeyObjectOptions, - ): KeyPairKeyObjectResult; - export function generateKeyPairSync( - type: "ec", - options: ECKeyPairOptions<"pem", "pem">, - ): KeyPairSyncResult; - export function generateKeyPairSync( - type: "ec", - options: ECKeyPairOptions<"der", "der">, - ): KeyPairSyncResult; - export function generateKeyPairSync( - type: "ec", - options: ECKeyPairKeyObjectOptions, - ): KeyPairKeyObjectResult; - export interface ED25519KeyPairOptions { - publicKeyEncoding: { type: "spki"; format: PubF }; - privateKeyEncoding: { - type: "pkcs8"; - format: PrivF; - cipher?: string | undefined; - passphrase?: string | undefined; - }; - } - export function generateKeyPairSync( - type: "ed25519", - options: ED25519KeyPairOptions<"pem", "pem">, - ): KeyPairSyncResult; - export function generateKeyPairSync( - type: "ed25519", - options: ED25519KeyPairOptions<"der", "der">, - ): KeyPairSyncResult; - export function generateKeyPairSync(type: "ed25519", options?: {}): KeyPairKeyObjectResult; - export interface X25519KeyPairOptions { - publicKeyEncoding: { type: "spki"; format: PubF }; - privateKeyEncoding: { - type: "pkcs8"; - format: PrivF; - cipher?: string | undefined; - passphrase?: string | undefined; - }; - } - export function generateKeyPairSync( - type: "x25519", - options: X25519KeyPairOptions<"pem", "pem">, - ): KeyPairSyncResult; - export function generateKeyPairSync( - type: "x25519", - options: X25519KeyPairOptions<"der", "der">, - ): KeyPairSyncResult; - export function generateKeyPairSync(type: "x25519", options?: {}): KeyPairKeyObjectResult; - export function generateKeyPair( - type: "x25519", - options: {} | undefined, - callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, - ): void; - export function generateKeyPair( - type: "ed25519", - options: {} | undefined, - callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, - ): void; - export function generateKeyPair( - type: "rsa", - options: RSAKeyPairKeyObjectOptions, - callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, - ): void; - export function generateKeyPair( - type: "ec", - options: ECKeyPairKeyObjectOptions, - callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, - ): void; - export interface SigningOptions { - padding?: number | undefined; - saltLength?: number | undefined; - dsaEncoding?: "der" | "ieee-p1363" | undefined; - } - export interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {} - export interface SignKeyObjectInput extends SigningOptions { - key: KeyObject; - } - export interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {} - export interface VerifyKeyObjectInput extends SigningOptions { - key: KeyObject; - } - export function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer; - export function diffieHellman( - options: { privateKey: KeyObject; publicKey: KeyObject }, - callback: (err: Error | null, secret: Buffer) => void, - ): void; - export function sign( - algorithm: string | null | undefined, - data: ArrayBufferView, - key: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput, - ): Buffer; - export function verify( - algorithm: string | null | undefined, - data: ArrayBufferView, - key: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput, - signature: ArrayBufferView, - ): boolean; - /* Sign and Verify accumulate update() data; they are not usable as - * writable streams. */ - export class Sign { - private constructor(); - update(data: string | ArrayBufferView): this; - update(data: string, inputEncoding: Encoding): this; - sign( - privateKey: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput, - ): Buffer; - sign( - privateKey: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput, - outputFormat: BinaryToTextEncoding, - ): string; - } - export class Verify { - private constructor(); - update(data: string | ArrayBufferView): this; - update(data: string, inputEncoding: Encoding): this; - verify( - object: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput, - signature: ArrayBufferView, - ): boolean; - verify( - object: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput, - signature: string, - signatureEncoding?: BinaryToTextEncoding, - ): boolean; - } - export function createSign(algorithm: string): Sign; - export function createVerify(algorithm: string): Verify; - export function createSecretKey(key: ArrayBufferView | ArrayBufferLike): KeyObject; - export function createSecretKey(key: string, encoding: BufferEncoding): KeyObject; - export function generateKeySync(type: "hmac" | "aes", options: { length: number }): KeyObject; - export function generateKey( - type: "hmac" | "aes", - options: { length: number }, - callback: (err: Error | null, key: KeyObject) => void, - ): void; - export interface RandomUUIDOptions { - disableEntropyCache?: boolean | undefined; - } - export function randomUUID(options?: RandomUUIDOptions): string; - export function randomUUIDv7(options?: RandomUUIDOptions): string; - export function randomBytes(size: number): Buffer; - export type BinaryToTextEncoding = "base64" | "base64url" | "hex" | "binary"; - export type CharacterEncoding = "utf8" | "utf-8" | "utf16le" | "utf-16le" | "latin1"; - export type LegacyCharacterEncoding = "ascii" | "binary" | "ucs2" | "ucs-2"; - export type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding; - export interface HashOptions { - outputLength?: number | undefined; - } - /* Hash and Hmac are Transforms: written chunks update the digest, which - * the readable side delivers once the writable side ends. */ - export interface Hash extends Transform { - copy(options?: HashOptions): Hash; - update(data: string | ArrayBufferView): Hash; - update(data: string, inputEncoding: Encoding): Hash; - digest(): Buffer; - digest(encoding: BinaryToTextEncoding): string; - } - export interface Hmac extends Transform { - update(data: string | ArrayBufferView): Hmac; - update(data: string, inputEncoding: Encoding): Hmac; - digest(): Buffer; - digest(encoding: BinaryToTextEncoding): string; - } - export function createHash(algorithm: string, options?: HashOptions): Hash; - export function createHmac( - algorithm: string, - key: BinaryLike | KeyObject, - options?: { encoding?: BufferEncoding | undefined }, - ): Hmac; - export interface OneShotDigestOptions { - outputEncoding?: BinaryToTextEncoding | "buffer" | undefined; - outputLength?: number | undefined; - } - export interface OneShotDigestOptionsWithStringEncoding extends OneShotDigestOptions { - outputEncoding?: BinaryToTextEncoding | undefined; - } - export interface OneShotDigestOptionsWithBufferEncoding extends OneShotDigestOptions { - outputEncoding: "buffer"; - } - export function hash( - algorithm: string, - data: string | ArrayBufferView, - options?: OneShotDigestOptionsWithStringEncoding | BinaryToTextEncoding, - ): string; - export function hash( - algorithm: string, - data: string | ArrayBufferView, - options: OneShotDigestOptionsWithBufferEncoding | "buffer", - ): Buffer; - export function hash( - algorithm: string, - data: string | ArrayBufferView, - options: OneShotDigestOptions | BinaryToTextEncoding | "buffer", - ): string | Buffer; - export function timingSafeEqual( - a: ArrayBufferView | ArrayBufferLike, - b: ArrayBufferView | ArrayBufferLike, - ): boolean; - /* WebCrypto's getRandomValues (also the webcrypto object's): integer - * typed arrays, filled in place and returned. */ - type RandomValuesArray = - | Int8Array - | Uint8Array - | Uint8ClampedArray - | Int16Array - | Uint16Array - | Int32Array - | Uint32Array - | BigInt64Array - | BigUint64Array; - export function getRandomValues(typedArray: T): T; - /* The WebCrypto global's object and its SubtleCrypto. */ - export const webcrypto: Crypto; - export const subtle: SubtleCrypto; - export function randomFillSync( - buffer: T, - offset?: number, - size?: number, - ): T; - export function randomFill( - buffer: T, - callback: (err: Error | null, buf: T) => void, - ): void; - export function randomFill( - buffer: T, - offset: number, - callback: (err: Error | null, buf: T) => void, - ): void; - export function randomFill( - buffer: T, - offset: number, - size: number, - callback: (err: Error | null, buf: T) => void, - ): void; - export function randomInt(max: number): number; - export function randomInt(min: number, max: number): number; - export function randomInt( - max: number, - callback: (err: Error | null, value: number) => void, - ): void; - export function randomInt( - min: number, - max: number, - callback: (err: Error | null, value: number) => void, - ): void; - export function pbkdf2Sync( - password: string | Uint8Array, - salt: string | Uint8Array, - iterations: number, - keylen: number, - digest: string, - ): Buffer; - export function pbkdf2( - password: string | Uint8Array, - salt: string | Uint8Array, - iterations: number, - keylen: number, - digest: string, - callback: (error: Error | null, derivedKey: Buffer) => void, - ): void; - export function randomBytes( - size: number, - callback: (error: Error | null, buffer: Buffer) => void, - ): void; - export type BinaryLike = string | ArrayBuffer | ArrayBufferView; - /* Cipheriv/Decipheriv: aes-128/192/256 in cbc, ctr, gcm, ccm, ecb, cfb, - * cfb8, cfb1, and ofb modes and their key wraps, des-ede3 and des-ede, - * chacha20, and chacha20-poly1305. Both are Transforms: written chunks go - * through update(), and the end pushes final(). */ - export type CipherCCMTypes = "aes-128-ccm" | "aes-192-ccm" | "aes-256-ccm"; - export type CipherGCMTypes = "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm"; - export type CipherChaCha20Poly1305Types = "chacha20-poly1305"; - export type CipherKey = BinaryLike | KeyObject; - export interface CipherCCMOptions { - authTagLength: number; - } - export interface CipherGCMOptions { - authTagLength?: number; - } - export interface CipherChaCha20Poly1305Options { - authTagLength?: number; - } - export interface Cipheriv extends Transform { - update(data: string | ArrayBufferView): Buffer; - update(data: string, inputEncoding: BufferEncoding): Buffer; - update(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: BufferEncoding): string; - update( - data: string, - inputEncoding: BufferEncoding | undefined, - outputEncoding: BufferEncoding, - ): string; - final(): Buffer; - final(outputEncoding: BufferEncoding): string; - setAutoPadding(autoPadding?: boolean): this; - } - export interface CipherCCM extends Cipheriv { - setAAD(buffer: ArrayBufferView, options: { plaintextLength: number }): this; - getAuthTag(): Buffer; - } - export interface CipherGCM extends Cipheriv { - setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; - getAuthTag(): Buffer; - } - export interface CipherChaCha20Poly1305 extends Cipheriv { - setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; - getAuthTag(): Buffer; - } - export interface Decipheriv extends Transform { - update(data: ArrayBufferView): Buffer; - update(data: string, inputEncoding: BufferEncoding): Buffer; - update(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: BufferEncoding): string; - update( - data: string, - inputEncoding: BufferEncoding | undefined, - outputEncoding: BufferEncoding, - ): string; - final(): Buffer; - final(outputEncoding: BufferEncoding): string; - setAutoPadding(autoPadding?: boolean): this; - } - export interface DecipherCCM extends Decipheriv { - setAuthTag(buffer: ArrayBufferView): this; - setAAD(buffer: ArrayBufferView, options: { plaintextLength: number }): this; - } - export interface DecipherGCM extends Decipheriv { - setAuthTag(buffer: ArrayBufferView): this; - setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; - } - export interface DecipherChaCha20Poly1305 extends Decipheriv { - setAuthTag(buffer: ArrayBufferView): this; - setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this; - } - export function createCipheriv( - algorithm: CipherCCMTypes, - key: CipherKey, - iv: BinaryLike, - options: CipherCCMOptions, - ): CipherCCM; - export function createCipheriv( - algorithm: CipherGCMTypes, - key: CipherKey, - iv: BinaryLike, - options?: CipherGCMOptions, - ): CipherGCM; - export function createCipheriv( - algorithm: CipherChaCha20Poly1305Types, - key: CipherKey, - iv: BinaryLike, - options?: CipherChaCha20Poly1305Options, - ): CipherChaCha20Poly1305; - export function createCipheriv( - algorithm: string, - key: CipherKey, - iv: BinaryLike | null, - options?: { authTagLength?: number }, - ): Cipheriv; - export function createDecipheriv( - algorithm: CipherCCMTypes, - key: CipherKey, - iv: BinaryLike, - options: CipherCCMOptions, - ): DecipherCCM; - export function createDecipheriv( - algorithm: CipherGCMTypes, - key: CipherKey, - iv: BinaryLike, - options?: CipherGCMOptions, - ): DecipherGCM; - export function createDecipheriv( - algorithm: CipherChaCha20Poly1305Types, - key: CipherKey, - iv: BinaryLike, - options?: CipherChaCha20Poly1305Options, - ): DecipherChaCha20Poly1305; - export function createDecipheriv( - algorithm: string, - key: CipherKey, - iv: BinaryLike | null, - options?: { authTagLength?: number }, - ): Decipheriv; - export type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid"; - export class ECDH { - private constructor(); - static convertKey( - key: BinaryLike, - curve: string, - inputEncoding?: BinaryToTextEncoding, - outputEncoding?: "latin1" | "hex" | "base64" | "base64url", - format?: ECDHKeyFormat, - ): Buffer | string; - generateKeys(): Buffer; - generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; - computeSecret(otherPublicKey: ArrayBufferView): Buffer; - computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer; - computeSecret(otherPublicKey: ArrayBufferView, outputEncoding: BinaryToTextEncoding): string; - computeSecret( - otherPublicKey: string, - inputEncoding: BinaryToTextEncoding, - outputEncoding: BinaryToTextEncoding, - ): string; - getPrivateKey(): Buffer; - getPrivateKey(encoding: BinaryToTextEncoding): string; - getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer; - getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; - setPrivateKey(privateKey: ArrayBufferView): void; - setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void; - } - export function createECDH(curveName: string): ECDH; - export class DiffieHellman { - private constructor(); - generateKeys(): Buffer; - generateKeys(encoding: BinaryToTextEncoding): string; - computeSecret( - otherPublicKey: ArrayBufferView, - inputEncoding?: null, - outputEncoding?: null, - ): Buffer; - computeSecret( - otherPublicKey: string, - inputEncoding: BinaryToTextEncoding, - outputEncoding?: null, - ): Buffer; - computeSecret( - otherPublicKey: ArrayBufferView, - inputEncoding: null, - outputEncoding: BinaryToTextEncoding, - ): string; - computeSecret( - otherPublicKey: string, - inputEncoding: BinaryToTextEncoding, - outputEncoding: BinaryToTextEncoding, - ): string; - getPrime(): Buffer; - getPrime(encoding: BinaryToTextEncoding): string; - getGenerator(): Buffer; - getGenerator(encoding: BinaryToTextEncoding): string; - getPublicKey(): Buffer; - getPublicKey(encoding: BinaryToTextEncoding): string; - getPrivateKey(): Buffer; - getPrivateKey(encoding: BinaryToTextEncoding): string; - setPublicKey(publicKey: ArrayBufferView): void; - setPublicKey(publicKey: string, encoding: BufferEncoding): void; - setPrivateKey(privateKey: ArrayBufferView): void; - setPrivateKey(privateKey: string, encoding: BufferEncoding): void; - verifyError: number; - } - export type DiffieHellmanGroup = Omit; - export function createDiffieHellman(primeLength: number, generator?: number): DiffieHellman; - export function createDiffieHellman( - prime: ArrayBuffer | ArrayBufferView, - generator?: number | ArrayBuffer | ArrayBufferView, - ): DiffieHellman; - export function createDiffieHellman( - prime: ArrayBuffer | ArrayBufferView, - generator: string, - generatorEncoding: BinaryToTextEncoding, - ): DiffieHellman; - export function createDiffieHellman( - prime: string, - primeEncoding: BinaryToTextEncoding, - generator?: number | ArrayBuffer | ArrayBufferView, - ): DiffieHellman; - export function createDiffieHellman( - prime: string, - primeEncoding: BinaryToTextEncoding, - generator: string, - generatorEncoding: BinaryToTextEncoding, - ): DiffieHellman; - export function getDiffieHellman(groupName: string): DiffieHellmanGroup; - export function createDiffieHellmanGroup(name: string): DiffieHellmanGroup; - export type LargeNumberLike = ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint; - export interface GeneratePrimeOptions { - add?: LargeNumberLike | undefined; - rem?: LargeNumberLike | undefined; - safe?: boolean | undefined; - bigint?: boolean | undefined; - } - export interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions { - bigint: true; - } - export interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions { - bigint?: false | undefined; - } - export function generatePrime( - size: number, - callback: (err: Error | null, prime: ArrayBuffer) => void, - ): void; - export function generatePrime( - size: number, - options: GeneratePrimeOptionsBigInt, - callback: (err: Error | null, prime: bigint) => void, - ): void; - export function generatePrime( - size: number, - options: GeneratePrimeOptionsArrayBuffer, - callback: (err: Error | null, prime: ArrayBuffer) => void, - ): void; - export function generatePrime( - size: number, - options: GeneratePrimeOptions, - callback: (err: Error | null, prime: ArrayBuffer | bigint) => void, - ): void; - export function generatePrimeSync(size: number): ArrayBuffer; - export function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint; - export function generatePrimeSync( - size: number, - options: GeneratePrimeOptionsArrayBuffer, - ): ArrayBuffer; - export function generatePrimeSync( - size: number, - options: GeneratePrimeOptions, - ): ArrayBuffer | bigint; - export interface CheckPrimeOptions { - checks?: number | undefined; - } - export function checkPrime( - value: LargeNumberLike, - callback: (err: Error | null, result: boolean) => void, - ): void; - export function checkPrime( - value: LargeNumberLike, - options: CheckPrimeOptions, - callback: (err: Error | null, result: boolean) => void, - ): void; - export function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean; - export interface ScryptOptions { - N?: number; - r?: number; - p?: number; - cost?: number; - blockSize?: number; - parallelization?: number; - maxmem?: number; - } - export function scryptSync( - password: BinaryLike, - salt: BinaryLike, - keylen: number, - options?: ScryptOptions, - ): Buffer; - export function scrypt( - password: BinaryLike, - salt: BinaryLike, - keylen: number, - callback: (error: Error | null, derivedKey: Buffer) => void, - ): void; - export function scrypt( - password: BinaryLike, - salt: BinaryLike, - keylen: number, - options: ScryptOptions, - callback: (error: Error | null, derivedKey: Buffer) => void, - ): void; - export function hkdfSync( - digest: string, - ikm: BinaryLike | KeyObject, - salt: BinaryLike, - info: BinaryLike, - keylen: number, - ): ArrayBuffer; - export function hkdf( - digest: string, - ikm: BinaryLike | KeyObject, - salt: BinaryLike, - info: BinaryLike, - keylen: number, - callback: (error: Error | null, derivedKey: ArrayBuffer) => void, - ): void; - /* The lowered X509Certificate surface is the data-record slice: the - * fields below, all computed at construction (raw decodes the input, - * and the others read raw). validFrom/validTo are Node's - * ASN1_TIME_print strings ("Jul 1 00:00:00 2026 GMT"). Unparseable - * input throws Node's ERR_OSSL_PEM_NO_START_LINE Error. */ - export class X509Certificate { - constructor(buffer: Uint8Array | string); - readonly ca: boolean; - readonly fingerprint: string; - readonly fingerprint256: string; - readonly fingerprint512: string; - readonly subject: string; - readonly subjectAltName: string | undefined; - readonly infoAccess: string | undefined; - readonly issuer: string; - readonly raw: Buffer; - readonly serialNumber: string; - readonly signatureAlgorithm: string | undefined; - readonly signatureAlgorithmOid: string; - readonly validFrom: string; - readonly validFromDate: Date; - readonly validTo: string; - readonly validToDate: Date; - /* the certificate's public key; every read answers the same KeyObject */ - readonly publicKey: KeyObject; - verify(publicKey: KeyObject): boolean; - checkPrivateKey(privateKey: KeyObject): boolean; - checkIssued(otherCert: X509Certificate): boolean; - checkHost(name: string, options?: X509CheckOptions): string | undefined; - checkEmail(email: string, options?: X509CheckOptions): string | undefined; - checkIP(ip: string): string | undefined; - toLegacyObject(): import("tls").PeerCertificate; - } - export interface X509CheckOptions { - subject?: "always" | "default" | "never"; - wildcards?: boolean; - partialWildcards?: boolean; - multiLabelWildcards?: boolean; - singleLabelSubdomains?: boolean; - } - /* The crypto introspection statics: getFips() answers 0 (a compiled - * binary is never a FIPS build), the three name lists bake as fresh - * string[] literals of Node v24 answers, and constants (below) bakes - * per member like http2.constants. */ - export function getFips(): 1 | 0; - export function getCiphers(): string[]; - export type CipherMode = - | "cbc" - | "ccm" - | "cfb" - | "ctr" - | "ecb" - | "gcm" - | "ocb" - | "ofb" - | "stream" - | "wrap" - | "xts"; - export interface CipherInfoOptions { - keyLength?: number | undefined; - ivLength?: number | undefined; - } - export interface CipherInfo { - name: string; - nid: number; - blockSize?: number | undefined; - ivLength?: number | undefined; - keyLength: number; - mode: CipherMode; - } - export function getCipherInfo( - nameOrNid: string | number, - options?: CipherInfoOptions, - ): CipherInfo | undefined; - export function getHashes(): string[]; - export function getCurves(): string[]; - /* Node v24 crypto.constants, literal-typed (the Http2Constants - * stance). Every ACCESS bakes as its literal at lowering; the object - * itself never materializes (bare crypto.constants value uses fence). */ - export interface CryptoConstants { - readonly OPENSSL_VERSION_NUMBER: 810549376; - readonly SSL_OP_ALL: 2147485776; - readonly SSL_OP_ALLOW_NO_DHE_KEX: 1024; - readonly SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: 262144; - readonly SSL_OP_CIPHER_SERVER_PREFERENCE: 4194304; - readonly SSL_OP_CISCO_ANYCONNECT: 32768; - readonly SSL_OP_COOKIE_EXCHANGE: 8192; - readonly SSL_OP_CRYPTOPRO_TLSEXT_BUG: 2147483648; - readonly SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: 2048; - readonly SSL_OP_LEGACY_SERVER_CONNECT: 4; - readonly SSL_OP_NO_COMPRESSION: 131072; - readonly SSL_OP_NO_ENCRYPT_THEN_MAC: 524288; - readonly SSL_OP_NO_QUERY_MTU: 4096; - readonly SSL_OP_NO_RENEGOTIATION: 1073741824; - readonly SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: 65536; - readonly SSL_OP_NO_SSLv2: 0; - readonly SSL_OP_NO_SSLv3: 33554432; - readonly SSL_OP_NO_TICKET: 16384; - readonly SSL_OP_NO_TLSv1: 67108864; - readonly SSL_OP_NO_TLSv1_1: 268435456; - readonly SSL_OP_NO_TLSv1_2: 134217728; - readonly SSL_OP_NO_TLSv1_3: 536870912; - readonly SSL_OP_PRIORITIZE_CHACHA: 2097152; - readonly SSL_OP_TLS_ROLLBACK_BUG: 8388608; - readonly ENGINE_METHOD_RSA: 1; - readonly ENGINE_METHOD_DSA: 2; - readonly ENGINE_METHOD_DH: 4; - readonly ENGINE_METHOD_RAND: 8; - readonly ENGINE_METHOD_EC: 2048; - readonly ENGINE_METHOD_CIPHERS: 64; - readonly ENGINE_METHOD_DIGESTS: 128; - readonly ENGINE_METHOD_PKEY_METHS: 512; - readonly ENGINE_METHOD_PKEY_ASN1_METHS: 1024; - readonly ENGINE_METHOD_ALL: 65535; - readonly ENGINE_METHOD_NONE: 0; - readonly DH_CHECK_P_NOT_SAFE_PRIME: 2; - readonly DH_CHECK_P_NOT_PRIME: 1; - readonly DH_UNABLE_TO_CHECK_GENERATOR: 4; - readonly DH_NOT_SUITABLE_GENERATOR: 8; - readonly RSA_PKCS1_PADDING: 1; - readonly RSA_SSLV23_PADDING: 2; - readonly RSA_NO_PADDING: 3; - readonly RSA_PKCS1_OAEP_PADDING: 4; - readonly RSA_X931_PADDING: 5; - readonly RSA_PKCS1_PSS_PADDING: 6; - readonly RSA_PSS_SALTLEN_DIGEST: -1; - readonly RSA_PSS_SALTLEN_MAX_SIGN: -2; - readonly RSA_PSS_SALTLEN_AUTO: -2; - readonly defaultCoreCipherList: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA"; - readonly TLS1_VERSION: 769; - readonly TLS1_1_VERSION: 770; - readonly TLS1_2_VERSION: 771; - readonly TLS1_3_VERSION: 772; - readonly POINT_CONVERSION_COMPRESSED: 2; - readonly POINT_CONVERSION_UNCOMPRESSED: 4; - readonly POINT_CONVERSION_HYBRID: 6; - readonly defaultCipherList: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA"; - } - export const constants: CryptoConstants; -} -declare module "node:crypto" { - export * from "crypto"; -} - -/* node:child_process — the synchronous slice: spawnSync(command, args?) - * runs the child to completion (posix_spawn + waitpid) with stdout/stderr - * captured as utf8 strings. `status` is the exit code, or null when the - * child died to a signal OR could not be spawned at all (nonexistent - * binary, permission denied) — Node reports spawn failure through the - * result's `error` property, which this surface does not carry, and types - * stdout/stderr null there where scriptc returns "" (SEMANTICS.md). - * No shell, no options object: the command runs directly (PATH-searched, - * like Node). */ -declare module "child_process" { - export interface SpawnSyncReturns { - readonly status: number | null; - readonly stdout: string; - readonly stderr: string; - /* The termination signal's name ("SIGTERM", ...) when a signal - * killed the child (a timeout's killSignal included), null otherwise - * — Node's shape. */ - readonly signal: string | null; - /* Node's spawn-failure carrier: a real Error ("spawnSync - * ENOENT", `code` stamped) when the spawn itself failed — status is - * null and both outputs "" then — or ETIMEDOUT after a timeout kill; - * undefined otherwise. */ - readonly error?: Error; - } - /* scriptc always captures utf8 strings; pass { encoding: "utf8" } - * whenever stdout/stderr is READ so plain Node agrees (without it Node - * hands Buffers). The other supported options: timeout (ms — sends - * killSignal at the deadline and the result carries error: ETIMEDOUT + - * the signal, never a throw), killSignal (a signal NAME literal), - * stdio ("ignore"/"inherit"/"pipe" or a 3-tuple of those — captures - * read "" for non-piped streams), env (replaces the child's - * environment), and windowsHide (a POSIX no-op). */ - export function spawnSync( - command: string, - args?: string[], - options?: { - encoding?: "utf8" | "utf-8"; - timeout?: number; - killSignal?: string; - stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[]; - env?: { [k: string]: string | undefined }; - windowsHide?: boolean; - }, - ): SpawnSyncReturns; - - /* The asynchronous slice: spawn with stdio "ignore"/"inherit"/fd/"pipe" - * tuples (piped stdin is writable through child.stdin; piped stdout/stderr - * deliver through child.stdout/stderr) and the terminal events. "exit" - * fires once with the exit code, or - * null when the child died to a signal; "error" fires ONLY when the - * child could not be spawned at all (Node's split: a spawn failure - * emits "error" and never "exit"). "close" fires after exit/error and - * every piped stdio handle reaches EOF. Exit/close listeners may take - * Node's code and signal parameters. `on`/`once` return void here (Node - * returns the child; chaining is fenced). The event loop keeps the process - * alive until every spawned child is reaped, like Node — reaping polls at - * loop quiescence (SEMANTICS.md documents the divergence). An "error" - * event with no registered listener prints the error and exits 1, - * exactly the unhandled-'error' EventEmitter behavior. */ - export interface ChildStdin { - readonly writable: boolean; - write(chunk: string | Uint8Array): boolean; - end(): void; - destroy(): void; - on(event: "drain" | "finish", listener: () => void): void; - on(event: "error", listener: (err: Error) => void): void; - on(event: string, listener: (...args: any[]) => void): void; - once(event: "drain" | "finish", listener: () => void): void; - once(event: "error", listener: (err: Error) => void): void; - once(event: string, listener: (...args: any[]) => void): void; - } - - export interface ChildProcess extends Disposable { - ref(): void; - on(event: "spawn", listener: () => void): this; - once(event: "spawn", listener: () => void): this; - /* The exit listener may also take Node's second parameter — the - * terminating signal's name, null for a normal exit. */ - on(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - on(event: "close", listener: (code: number | null, signal: string | null) => void): this; - on(event: "error", listener: (err: Error) => void): this; - once(event: "exit", listener: (code: number | null, signal: string | null) => void): this; - once(event: "close", listener: (code: number | null, signal: string | null) => void): this; - once(event: "error", listener: (err: Error) => void): this; - on(event: "message", listener: (message: any) => void): this; - on(event: "disconnect", listener: () => void): this; - once(event: "message", listener: (message: any) => void): this; - once(event: "disconnect", listener: () => void): this; - /* The lifecycle members, Node's exact shapes: pid is undefined exactly - * when the spawn failed; exitCode is null while running, the code - * after a normal exit, null for a signal death, and -errno once a - * spawn failure's "error" event has fired; kill resolves signal names - * through Node's table (unknown names throw the Unknown signal - * TypeError), answers true when the signal was sent, false once the - * child was reaped (or never spawned), and sets `killed` on success; - * unref() drops the child from the event loop's keep-alive set (it is - * still reaped while the loop runs for other reasons — SEMANTICS.md - * has the reap story). */ - readonly pid: number | undefined; - readonly exitCode: number | null; - readonly killed: boolean; - kill(signal?: string | number): boolean; - unref(): void; - readonly connected: boolean; - send(message: object, callback?: (error: Error | null) => void): boolean; - disconnect(): void; - [Symbol.dispose](): void; - /* The piped streams — non-null exactly when the matching stdio slot - * was "pipe" (Node's shape). */ - readonly stdin: ChildStdin | null; - readonly stdout: NodeJS.ReadableStream | null; - readonly stderr: NodeJS.ReadableStream | null; - } - export interface SpawnOptions { - /* The 3-tuple form admits number fds in the stdout/stderr slots — - * openSync results dup2'd into the child (the daemon-log idiom - * ["ignore", logFd, logFd]) — and "pipe" there too (child.stdout/ - * child.stderr streams); "pipe" in the stdin slot exposes - * child.stdin. */ - stdio?: "ignore" | "inherit" | "pipe" | ("ignore" | "inherit" | "pipe" | number)[]; - /* detached gives the child its own session and process group - * (POSIX_SPAWN_SETSID); env REPLACES the child environment; cwd - * sets its working directory; windowsHide is a POSIX no-op; shell - * runs the complete command string through /bin/sh or cmd.exe. */ - detached?: boolean; - env?: { [k: string]: string | undefined }; - cwd?: string; - windowsHide?: boolean; - shell?: boolean; - } - export function spawn(command: string, args?: string[], options?: SpawnOptions): ChildProcess; - export function spawn(command: string, options?: SpawnOptions): ChildProcess; - - export function fork( - modulePath: string | URL, - args?: string[], - options?: { - cwd?: string; - env?: { [k: string]: string | undefined }; - execArgv?: string[]; - silent?: boolean; - stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit" | "ipc")[]; - serialization?: "json" | "advanced"; - windowsHide?: boolean; - }, - ): ChildProcess; - - /* The synchronous exec pair: execFileSync runs a file directly (no - * shell), execSync runs a command through /bin/sh -c. Both capture - * stdout as a utf8 string (pass { encoding: "utf8" } so plain Node - * agrees — without it Node returns a Buffer) and THROW on a non-zero - * exit / signal death — the Error's message is Node's "Command failed: - * " (with the captured stderr appended). Supported options: - * encoding ("utf8"), cwd, env (REPLACES the child environment), input - * (fed to stdin), timeout (ms — SIGTERMs the child, then throws - * ETIMEDOUT), stdio ("pipe"/"ignore" or a 3-tuple of those — the - * default captures stderr AND echoes it to the parent, like Node), and - * maxBuffer (accepted, not enforced). Node's status/stdout/stderr error - * properties are not carried (SEMANTICS.md). */ - interface ExecSyncOptions { - encoding?: "utf8" | "utf-8"; - cwd?: string; - env?: { [k: string]: string | undefined }; - input?: string; - timeout?: number; - stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[]; - maxBuffer?: number; - killSignal?: string; - windowsHide?: boolean; - shell?: boolean; - } - /* The named options interface for the string-encoding exec form — - * @types/node's ExecFileSyncOptionsWithStringEncoding, narrowed to the - * honestly-implemented members. VALUES of this type are a real record - * (type-mapper.ts interns the shape), so a typed const or a runner function's - * options parameter flows to execFileSync at runtime — the windows-ca - * command-runner idiom. */ - export interface ExecFileSyncOptionsWithStringEncoding { - encoding: "utf8" | "utf-8"; - cwd?: string; - input?: string; - timeout?: number; - stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[]; - maxBuffer?: number; - windowsHide?: boolean; - } - export function execFileSync(file: string, args?: string[], options?: ExecSyncOptions): string; - export function execSync(command: string, options?: ExecSyncOptions): string; - export type ExecFileCallback = (error: Error | null, stdout: string, stderr: string) => void; - /* The callback form starts an asynchronous child and captures utf8 - * stdout/stderr. The no-callback overload remains for util.promisify's - * static target recognition; reached no-callback calls still fence. */ - export function execFile(file: string, callback: ExecFileCallback): ChildProcess; - export function execFile( - file: string, - args: string[] | null, - callback: ExecFileCallback, - ): ChildProcess; - export function execFile( - file: string, - args: string[] | null, - options: ExecSyncOptions, - callback: ExecFileCallback, - ): ChildProcess; - export function execFile( - file: string, - args?: string[] | null, - options?: ExecSyncOptions, - ): unknown; - /* The async shell form. The callback forms lower like execFile's, with - * the command line run by /bin/sh -c, and util.promisify recognizes it - * statically, as it does execFile; reached calls without a callback - * fence at their site. */ - export function exec( - command: string, - options?: ExecSyncOptions | ((error: Error | null, stdout: string, stderr: string) => void), - callback?: (error: Error | null, stdout: string, stderr: string) => void, - ): ChildProcess; -} -declare module "node:child_process" { - export * from "child_process"; -} - -/* node:util — compile-time projections for child_process.execFile, - * child_process.exec and fs.readFile. The first two retain Node's custom - * { stdout, stderr } result; the last resolves the callback's data - * argument. Other targets and bare - * promisify values fence per site. */ -declare module "util" { - export * as types from "util/types"; - export function getSystemErrorName(err: number): string; - export function getSystemErrorMessage(err: number): string; - export function getSystemErrorMap(): Map; - export function stripVTControlCharacters(str: string): string; - export function toUSVString(string: string): string; - export function isDeepStrictEqual(val1: unknown, val2: unknown, skipPrototype?: boolean): boolean; - export function styleText( - format: string | readonly string[], - text: string, - options?: { validateStream?: boolean; stream?: unknown }, - ): string; - export function parseEnv(content: string): { [key: string]: string | undefined }; - export function inherits(constructor: unknown, superConstructor: unknown): void; - export interface DeprecateOptions { - modifyPrototype?: boolean; - } - export function deprecate( - fn: T, - msg: string, - code?: string, - options?: DeprecateOptions, - ): T; - /* The callback receives null on success and the rejection reason - * otherwise (falsy reasons arrive as ERR_FALSY_VALUE_REJECTION). */ - export function callbackify( - fn: () => Promise, - ): (callback: (err: NodeJS.ErrnoException | null) => void) => void; - export function callbackify( - fn: () => Promise, - ): (callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - export function callbackify( - fn: (arg1: T1) => Promise, - ): (arg1: T1, callback: (err: NodeJS.ErrnoException | null) => void) => void; - export function callbackify( - fn: (arg1: T1) => Promise, - ): (arg1: T1, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; - export function callbackify( - fn: (arg1: T1, arg2: T2) => Promise, - ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null) => void) => void; - export function callbackify( - fn: (arg1: T1, arg2: T2) => Promise, - ): ( - arg1: T1, - arg2: T2, - callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, - ) => void; - export function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3) => Promise, - ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null) => void) => void; - export function callbackify( - fn: (arg1: T1, arg2: T2, arg3: T3) => Promise, - ): ( - arg1: T1, - arg2: T2, - arg3: T3, - callback: (err: NodeJS.ErrnoException | null, result: TResult) => void, - ) => void; - export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void; - export interface DebugLogger extends DebugLoggerFunction { - enabled: boolean; - } - export function debuglog( - section: string, - callback?: (fn: DebugLoggerFunction) => void, - ): DebugLogger; - export { debuglog as debug }; - export type TextEncoder = globalThis.TextEncoder; - export type TextDecoder = globalThis.TextDecoder; - export var TextEncoder: typeof globalThis.TextEncoder; - export var TextDecoder: typeof globalThis.TextDecoder; - /* stream.pipeline's overload comes first: its __promisify__ member keeps - * every other target out of it. */ - export function promisify( - fn: typeof import("node:stream").pipeline, - ): typeof import("node:stream/promises").pipeline; - export function promisify( - fn: typeof import("node:fs").readFile, - ): (path: string, encoding: "utf8" | "utf-8") => Promise; - export function promisify( - fn: (file: string, args?: string[] | null, options?: object) => unknown, - ): ( - file: string, - args?: string[], - options?: { - encoding?: "utf8" | "utf-8"; - cwd?: string; - env?: { [k: string]: string | undefined }; - timeout?: number; - maxBuffer?: number; - killSignal?: string; - windowsHide?: boolean; - }, - ) => Promise<{ stdout: string; stderr: string }>; - export function promisify( - fn: typeof globalThis.setTimeout, - ): typeof import("node:timers/promises").setTimeout; - export function promisify( - fn: typeof globalThis.setImmediate, - ): typeof import("node:timers/promises").setImmediate; - export function promisify(fn: typeof import("node:child_process").exec): ( - command: string, - options?: { - encoding?: "utf8" | "utf-8"; - cwd?: string; - env?: { [k: string]: string | undefined }; - timeout?: number; - maxBuffer?: number; - killSignal?: string; - windowsHide?: boolean; - }, - ) => Promise<{ stdout: string; stderr: string }>; - /* The zlib callback one-shots (deflate, inflate, deflateRaw, inflateRaw, - * gzip, gunzip, unzip) share one type. */ - export function promisify( - fn: typeof import("node:zlib").gzip, - ): (data: string | Uint8Array, options?: import("node:zlib").ZlibOptions) => Promise; - export function promisify( - fn: typeof import("node:stream").finished, - ): typeof import("node:stream/promises").finished; - /* The crypto callback functions: the promise settles with the callback's - * value. */ - export function promisify( - fn: typeof import("node:crypto").randomBytes, - ): (size: number) => Promise; - export function promisify( - fn: typeof import("node:crypto").pbkdf2, - ): ( - password: string | Uint8Array, - salt: string | Uint8Array, - iterations: number, - keylen: number, - digest: string, - ) => Promise; - export function promisify( - fn: typeof import("node:crypto").scrypt, - ): ( - password: import("node:crypto").BinaryLike, - salt: import("node:crypto").BinaryLike, - keylen: number, - options?: import("node:crypto").ScryptOptions, - ) => Promise; - export function promisify( - fn: typeof import("node:crypto").hkdf, - ): ( - digest: string, - ikm: import("node:crypto").BinaryLike | import("node:crypto").KeyObject, - salt: import("node:crypto").BinaryLike, - info: import("node:crypto").BinaryLike, - keylen: number, - ) => Promise; - /* A callback-only function (`obj.close.bind(obj)`): before the targets - * whose leading parameters would otherwise capture it. Builtins that take - * arguments before their callback never match these. */ - export function promisify( - fn: (callback: (err: any, result: TResult) => void) => void, - ): () => Promise; - export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise; - export function promisify( - fn: typeof import("node:crypto").randomFill, - ): ( - buffer: T, - offset?: number, - size?: number, - ) => Promise; - export function promisify(fn: typeof import("node:crypto").randomInt): { - (max: number): Promise; - (min: number, max: number): Promise; - }; - export function promisify( - fn: typeof import("node:crypto").generateKey, - ): ( - type: "hmac" | "aes", - options: { length: number }, - ) => Promise; - /* dns.lookup's promise settles with { address, family } (the address - * array with options.all), and lookupService's with { hostname, service }. */ - export function promisify(fn: typeof import("node:dns").lookup): { - ( - hostname: string, - options: import("node:dns").LookupAllOptions, - ): Promise; - ( - hostname: string, - options?: number | import("node:dns").LookupOneOptions, - ): Promise; - }; - export function promisify( - fn: typeof import("node:dns").lookupService, - ): (address: string, port: number) => Promise<{ hostname: string; service: string }>; - /* Declared surface without full lowering (the type-level tolerance - * story: guarded/diagnostic-path code must TYPECHECK; a reached use - * without a lowering fences at its site). inspect's options carry the - * documented knobs through an index signature. */ - export function inspect( - object: unknown, - options?: { depth?: number | null; colors?: boolean; [k: string]: unknown }, - ): string; - export function format(format?: unknown, ...args: unknown[]): string; - export function formatWithOptions( - inspectOptions: { depth?: number | null; colors?: boolean; [k: string]: unknown }, - format?: unknown, - ...args: unknown[] - ): string; - export type ParseArgsOptionsType = "boolean" | "string"; - export interface ParseArgsOptionDescriptor { - type: ParseArgsOptionsType; - multiple?: boolean; - short?: string; - default?: string | boolean | string[] | boolean[]; - } - export interface ParseArgsOptionsConfig { - [longOption: string]: ParseArgsOptionDescriptor; - } - export interface ParseArgsConfig { - args?: readonly string[]; - options?: ParseArgsOptionsConfig; - strict?: boolean; - allowPositionals?: boolean; - allowNegative?: boolean; - tokens?: boolean; - } - export type ParseArgsToken = - | { - kind: "option"; - index: number; - name: string; - rawName: string; - value: string | undefined; - inlineValue: boolean | undefined; - } - | { kind: "positional"; index: number; value: string } - | { kind: "option-terminator"; index: number }; - export interface ParseArgsResult { - values: { [longOption: string]: undefined | string | boolean | Array }; - positionals: string[]; - tokens?: ParseArgsToken[]; - } - export function parseArgs(config?: ParseArgsConfig): ParseArgsResult; - /* util.getCallSites (Node ≥22.9): the captured-frame slice harness - * code reads. No stack bookkeeping exists in a compiled binary — every - * reached call fences per site. */ - export interface CallSite { - readonly functionName: string; - readonly scriptName: string; - readonly lineNumber: number; - readonly column: number; - } - export function getCallSites(frameCount?: number): CallSite[]; -} -declare module "node:util" { - export * from "util"; -} - -/* node:util/types — native runtime brands. Other forms retain their - * per-member lowering boundaries. */ -declare module "util/types" { - export function isAnyArrayBuffer(value: unknown): boolean; - export function isArrayBuffer(value: unknown): value is ArrayBuffer; - export function isArrayBufferView(value: unknown): value is ArrayBufferView; - export function isDataView(value: unknown): value is DataView; - export function isTypedArray(value: unknown): boolean; - export function isUint8Array(value: unknown): value is Uint8Array; - export function isUint8ClampedArray(value: unknown): value is Uint8ClampedArray; - export function isUint16Array(value: unknown): value is Uint16Array; - export function isUint32Array(value: unknown): value is Uint32Array; - export function isInt8Array(value: unknown): value is Int8Array; - export function isInt16Array(value: unknown): value is Int16Array; - export function isInt32Array(value: unknown): value is Int32Array; - export function isFloat16Array(value: unknown): value is Float16Array; - export function isFloat32Array(value: unknown): value is Float32Array; - export function isFloat64Array(value: unknown): value is Float64Array; - export function isMap(value: unknown): value is Map; - export function isSet(value: unknown): value is Set; - export function isWeakMap(value: unknown): value is WeakMap; - export function isWeakSet(value: unknown): value is WeakSet; - export function isRegExp(value: unknown): value is RegExp; - export function isNativeError(value: unknown): value is Error; - export function isPromise(value: unknown): value is Promise; - export function isProxy(value: unknown): boolean; - export function isAsyncFunction(value: unknown): boolean; - export function isGeneratorFunction(value: unknown): boolean; - export function isGeneratorObject(value: unknown): boolean; - export function isModuleNamespaceObject(value: unknown): boolean; - export function isDate(value: unknown): value is Date; - export function isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer; - export function isMapIterator(value: unknown): boolean; - export function isSetIterator(value: unknown): boolean; - export function isKeyObject(value: unknown): boolean; - export function isNumberObject(value: unknown): boolean; - export function isStringObject(value: unknown): boolean; - export function isBooleanObject(value: unknown): boolean; - export function isBigIntObject(value: unknown): boolean; - export function isSymbolObject(value: unknown): boolean; - export function isBoxedPrimitive(value: unknown): boolean; - export function isBigInt64Array(value: unknown): value is BigInt64Array; - export function isBigUint64Array(value: unknown): value is BigUint64Array; - export function isCryptoKey(value: unknown): boolean; - export function isExternal(value: unknown): boolean; -} -declare module "node:util/types" { - export * from "util/types"; -} - -/* node:assert — the static assertion surface. The module object IS a - * callable function (`assert(x)` is `assert.ok(x)`), so the declaration - * is the callable-namespace `export =` shape and BOTH `import assert - * from "node:assert"` and `const assert = require("assert")` bind the - * callable; named imports take the members. Failures throw - * AssertionError (name "AssertionError", code "ERR_ASSERTION" — catch and - * read .name/.message/.code). strictEqual/deepStrictEqual compare with - * Object.is over scalars; deepStrictEqual compares composites - * structurally per their static types. The messages here are plain - * strings (Node accepts Errors — that form fences per site), and the - * shallow legacy pair (equal/notEqual) follows Node's == coercions for - * primitive and primitive-union operands, including Node v24's NaN - * exception. deepEqual/notDeepEqual remain declared-but-fenced; - * assert/strict's loose names alias the strict forms and lower. */ -/* node:test — the in-process test runner (prefix-only in Node too: - * require("test") is MODULE_NOT_FOUND). test/it register tests (sync and - * async bodies, skip/todo/only options and method twins), describe/suite - * group them (bodies run at registration, Node's collection phase), - * before/after/beforeEach/afterEach hook the enclosing suite, and the - * TestContext argument carries subtests (t.test), t.skip/t.todo, - * t.diagnostic, and t.assert. mock/run/snapshot are DECLARED so real - * suites typecheck but fence at their use sites (no lowering). */ -declare module "node:test" { - type TestFn = (t: TestContext) => void | Promise; - type SuiteFn = (s: SuiteContext) => void; - type HookFn = (c: TestContext | SuiteContext) => void | Promise; - /* The describe/suite callback's context, and the before/after hook - * context of a suite. */ - interface SuiteContext { - readonly name: string; - readonly fullName: string; - readonly filePath: string | undefined; - readonly attempt: number; - readonly passed: boolean; - diagnostic(message: string): void; - } - interface TestOptions { - skip?: boolean | string; - todo?: boolean | string; - only?: boolean; - concurrency?: number | boolean; - timeout?: number; - plan?: number; - } - interface TestContext { - readonly name: string; - readonly fullName: string; - readonly filePath: string | undefined; - readonly attempt: number; - readonly passed: boolean; - readonly workerId: number | undefined; - readonly tags: readonly string[]; - readonly assert: TestContextAssert; - readonly mock: MockTracker; - test(name?: string, fn?: TestFn): Promise; - test(name?: string, options?: TestOptions, fn?: TestFn): Promise; - test(options?: TestOptions, fn?: TestFn): Promise; - test(fn?: TestFn): Promise; - skip(message?: string): void; - todo(message?: string): void; - diagnostic(message: string): void; - plan(count: number): void; - after(fn: HookFn): void; - before(fn: HookFn): void; - beforeEach(fn: HookFn): void; - afterEach(fn: HookFn): void; - } - interface AssertSnapshotOptions { - readonly serializers?: ReadonlyArray<(value: any) => any> | undefined; - } - interface TestContextAssert { - snapshot(value: any, options?: AssertSnapshotOptions): void; - fileSnapshot(value: any, path: string, options?: AssertSnapshotOptions): void; - ok(value: unknown, message?: string): void; - strictEqual(actual: unknown, expected: unknown, message?: string): void; - notStrictEqual(actual: unknown, expected: unknown, message?: string): void; - deepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - equal(actual: unknown, expected: unknown, message?: string): void; - notEqual(actual: unknown, expected: unknown, message?: string): void; - deepEqual(actual: unknown, expected: unknown, message?: string): void; - notDeepEqual(actual: unknown, expected: unknown, message?: string): void; - fail(message?: string): never; - throws(fn: () => unknown, expected?: unknown, message?: string): void; - match(value: string, regExp: RegExp, message?: string): void; - doesNotMatch(value: string, regExp: RegExp, message?: string): void; - } - /* The name, options and function are each optional, as in Node: a test - * without a name takes the function's name, or "". */ - function test(name?: string, fn?: TestFn): Promise; - function test(name?: string, options?: TestOptions, fn?: TestFn): Promise; - function test(options?: TestOptions, fn?: TestFn): Promise; - function test(fn?: TestFn): Promise; - namespace test { - function skip(name?: string, fn?: TestFn): Promise; - function skip(name?: string, options?: TestOptions, fn?: TestFn): Promise; - function skip(options?: TestOptions, fn?: TestFn): Promise; - function skip(fn?: TestFn): Promise; - function todo(name?: string, fn?: TestFn): Promise; - function todo(name?: string, options?: TestOptions, fn?: TestFn): Promise; - function todo(options?: TestOptions, fn?: TestFn): Promise; - function todo(fn?: TestFn): Promise; - function only(name?: string, fn?: TestFn): Promise; - function only(name?: string, options?: TestOptions, fn?: TestFn): Promise; - function only(options?: TestOptions, fn?: TestFn): Promise; - function only(fn?: TestFn): Promise; - } - const it: typeof test; - function describe(name?: string, fn?: SuiteFn): void; - function describe(name?: string, options?: TestOptions, fn?: SuiteFn): void; - function describe(options?: TestOptions, fn?: SuiteFn): void; - function describe(fn?: SuiteFn): void; - namespace describe { - function skip(name?: string, fn?: SuiteFn): void; - function skip(name?: string, options?: TestOptions, fn?: SuiteFn): void; - function skip(options?: TestOptions, fn?: SuiteFn): void; - function skip(fn?: SuiteFn): void; - function todo(name?: string, fn?: SuiteFn): void; - function todo(name?: string, options?: TestOptions, fn?: SuiteFn): void; - function todo(options?: TestOptions, fn?: SuiteFn): void; - function todo(fn?: SuiteFn): void; - function only(name?: string, fn?: SuiteFn): void; - function only(name?: string, options?: TestOptions, fn?: SuiteFn): void; - function only(options?: TestOptions, fn?: SuiteFn): void; - function only(fn?: SuiteFn): void; - } - const suite: typeof describe; - function before(fn: HookFn): void; - function after(fn: HookFn): void; - function beforeEach(fn: HookFn): void; - function afterEach(fn: HookFn): void; - /* The mock function surface: mock.fn, mock.method and their t.mock - * twins, the tracker's restoreAll and reset, and the calls log and the - * implementation controls on fn.mock. */ - interface MockFunctionCall< - F extends Function, - ReturnType = F extends (...args: any) => infer T ? T : unknown, - Args = F extends (...args: infer Y) => any ? Y : unknown[], - > { - arguments: Args; - error: unknown | undefined; - result: ReturnType | undefined; - this: unknown; - } - interface MockFunctionContext { - readonly calls: MockFunctionCall[]; - callCount(): number; - mockImplementation(implementation: F): void; - mockImplementationOnce(implementation: F, onCall?: number): void; - resetCalls(): void; - restore(): void; - } - type Mock = F & { mock: MockFunctionContext }; - interface MockFunctionOptions { - times?: number; - } - type FunctionPropertyNames = { - [K in keyof T]: T[K] extends Function ? K : never; - }[keyof T]; - interface MockTracker { - fn undefined>(original?: F): Mock; - fn undefined, Implementation extends Function = F>( - original?: F, - implementation?: Implementation, - ): Mock; - method>( - object: MockedObject, - methodName: MethodName, - options?: MockFunctionOptions, - ): MockedObject[MethodName] extends Function ? Mock : never; - method< - MockedObject extends object, - MethodName extends FunctionPropertyNames, - Implementation extends Function, - >( - object: MockedObject, - methodName: MethodName, - implementation: Implementation, - options?: MockFunctionOptions, - ): MockedObject[MethodName] extends Function - ? Mock - : never; - reset(): void; - restoreAll(): void; - readonly timers: MockTimers; - } - interface MockTimersOptions { - apis: ReadonlyArray<"setInterval" | "setTimeout" | "setImmediate" | "Date">; - now?: number | Date | undefined; - } - interface MockTimers { - enable(options?: MockTimersOptions): void; - setTime(milliseconds?: number): void; - reset(): void; - tick(milliseconds?: number): void; - runAll(): void; - [Symbol.dispose](): void; - } - const mock: MockTracker; - /* The context of the test, suite or hook running in the current async - * context; undefined outside one. */ - function getTestContext(): TestContext | SuiteContext | undefined; - /* Declared for typechecking only — every use fences (no lowering). - * `assert` is the module-level custom-assertion registry (v24's - * `const { assert } = require('node:test')`), not TestContext.assert. */ - const assert: { register(name: string, fn: (...args: unknown[]) => unknown): void }; - function run(options?: unknown): unknown; - function snapshot(...args: unknown[]): unknown; - export { - test, - it, - describe, - suite, - before, - after, - beforeEach, - afterEach, - mock, - assert, - getTestContext, - run, - snapshot, - TestContext, - SuiteContext, - TestOptions, - Mock, - MockFunctionContext, - MockFunctionCall, - MockTracker, - MockTimers, - MockTimersOptions, - }; - export default test; -} - -declare module "assert" { - function assert(value: unknown, message?: string): void; - namespace assert { - interface AssertionErrorOptions { - message?: string | undefined; - actual?: unknown; - expected?: unknown; - operator?: string | undefined; - stackStartFn?: Function | undefined; - diff?: "simple" | "full" | undefined; - } - class AssertionError extends Error { - constructor(options: AssertionErrorOptions); - actual: unknown; - expected: unknown; - generatedMessage: boolean; - code: "ERR_ASSERTION"; - operator: string; - } - function ok(value: unknown, message?: string): void; - function strictEqual(actual: unknown, expected: unknown, message?: string): void; - function notStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function deepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function equal(actual: unknown, expected: unknown, message?: string): void; - function notEqual(actual: unknown, expected: unknown, message?: string): void; - function deepEqual(actual: unknown, expected: unknown, message?: string): void; - function notDeepEqual(actual: unknown, expected: unknown, message?: string): void; - function fail(message?: string): never; - function throws(fn: () => unknown, expected?: unknown, message?: string): void; - function doesNotThrow(fn: () => unknown, expected?: unknown, message?: string): void; - function rejects( - fn: (() => Promise) | Promise, - expected?: unknown, - message?: string, - ): Promise; - function doesNotReject( - fn: (() => Promise) | Promise, - expected?: unknown, - message?: string, - ): Promise; - function match(value: string, regExp: RegExp, message?: string): void; - function doesNotMatch(value: string, regExp: RegExp, message?: string): void; - function ifError(value: unknown): void; - const strict: typeof import("assert/strict"); - interface AssertOptions { - diff?: "simple" | "full" | undefined; - strict?: boolean | undefined; - skipPrototype?: boolean | undefined; - } - type AssertMethodNames = - | "deepEqual" - | "deepStrictEqual" - | "doesNotMatch" - | "doesNotReject" - | "doesNotThrow" - | "equal" - | "fail" - | "ifError" - | "match" - | "notDeepEqual" - | "notDeepStrictEqual" - | "notEqual" - | "notStrictEqual" - | "ok" - | "partialDeepStrictEqual" - | "rejects" - | "strictEqual" - | "throws"; - interface Assert extends Pick {} - interface AssertStrict extends Pick {} - const Assert: { - new (options?: AssertOptions & { strict?: true | undefined }): AssertStrict; - new (options: AssertOptions): Assert; - }; - } - export = assert; -} -declare module "node:assert" { - import assert = require("assert"); - export = assert; -} -/* node:assert/strict — the same surface with the loose names bound to the - * strict comparisons (equal IS strictEqual, ...), exactly Node's aliasing; - * the module object is callable like assert's. */ -declare module "assert/strict" { - function strict(value: unknown, message?: string): void; - namespace strict { - function ok(value: unknown, message?: string): void; - function equal(actual: unknown, expected: unknown, message?: string): void; - function notEqual(actual: unknown, expected: unknown, message?: string): void; - function deepEqual(actual: unknown, expected: unknown, message?: string): void; - function notDeepEqual(actual: unknown, expected: unknown, message?: string): void; - function strictEqual(actual: unknown, expected: unknown, message?: string): void; - function notStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function deepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string): void; - function fail(message?: string): never; - function throws(fn: () => unknown, expected?: unknown, message?: string): void; - function doesNotThrow(fn: () => unknown, expected?: unknown, message?: string): void; - function rejects( - fn: (() => Promise) | Promise, - expected?: unknown, - message?: string, - ): Promise; - function doesNotReject( - fn: (() => Promise) | Promise, - expected?: unknown, - message?: string, - ): Promise; - function match(value: string, regExp: RegExp, message?: string): void; - function doesNotMatch(value: string, regExp: RegExp, message?: string): void; - function ifError(value: unknown): void; - const strict: typeof import("assert/strict"); - type AssertOptions = import("assert").AssertOptions; - type Assert = import("assert").Assert; - type AssertStrict = import("assert").AssertStrict; - const Assert: typeof import("assert").Assert; - } - export = strict; -} -declare module "node:assert/strict" { - import strict = require("assert/strict"); - export = strict; -} - -/* node:string_decoder — StringDecoder over Node's whole encoding set: - * write() decodes complete sequences and buffers a trailing partial one - * across chunk boundaries (utf8's truncated sequence, base64's mod-3 - * remainder, utf16le's odd byte / trailing lead surrogate; latin1, ascii - * and hex are stateless); end() flushes the buffered partial. `encoding` - * answers the normalized name. Node's exact algorithms (SEMANTICS.md); - * the encoding must be a literal, and end(buffer) fences — write the - * buffer, then end(). */ -declare module "string_decoder" { - export class StringDecoder { - constructor(encoding?: BufferEncoding); - readonly encoding: string; - write(buffer: Uint8Array): string; - end(buffer?: Uint8Array): string; - } -} -declare module "node:string_decoder" { - export * from "string_decoder"; -} - -/* node:querystring — Node's legacy query-string codec (NOT - * URLSearchParams: '+' means space on the parse side and escape encodes - * spaces as %20). parse answers the null-prototype dictionary as a pure - * index-signature record (repeated keys become string[] buckets; - * @types/node's Dict adds an undefined arm the lowering tolerates); - * stringify serializes string/number/boolean values and arrays of those - * (Node's rules: arrays expand to repeated keys, null/undefined and - * anything else serialize as the empty value). The maxKeys option lowers - * (0 removes the cap, Node's rule); the custom encoder/decoder options - * typecheck under the options-record stance and fence by name at the - * call. decode/encode are Node's own aliases of parse/stringify. */ -declare module "querystring" { - export interface ParseOptions { - maxKeys?: number; - decodeURIComponent?: (str: string) => string; - [option: string]: unknown; - } - export interface StringifyOptions { - encodeURIComponent?: (str: string) => string; - [option: string]: unknown; - } - export interface ParsedUrlQuery { - [key: string]: string | string[] | undefined; - } - export interface ParsedUrlQueryInput { - [key: string]: - | string - | number - | boolean - | bigint - | ReadonlyArray - | null - | undefined; - } - export function parse( - str: string, - sep?: string | null, - eq?: string | null, - options?: ParseOptions, - ): ParsedUrlQuery; - export function stringify( - obj?: ParsedUrlQueryInput, - sep?: string | null, - eq?: string | null, - options?: StringifyOptions, - ): string; - export const decode: typeof parse; - export const encode: typeof stringify; - export function escape(str: string): string; - export function unescape(str: string): string; -} -declare module "node:querystring" { - export * from "querystring"; -} - -/* node:punycode (deprecated, DEP0040) — punycode.js 2.1.0: decode and - * toUnicode throw its RangeErrors on malformed input; ucs2 converts - * between strings and UTF-16 code point arrays. */ -declare module "punycode" { - export function decode(string: string): string; - export function encode(string: string): string; - export function toUnicode(domain: string): string; - export function toASCII(domain: string): string; - export namespace ucs2 { - function decode(string: string): number[]; - function encode(codePoints: readonly number[]): string; - } - export const version: string; -} -declare module "node:punycode" { - export * from "punycode"; -} - -/* node:constants (deprecated, DEP0008) — one frozen object: os.constants' - * dlopen, errno, priority and signals groups, fs.constants, and - * crypto.constants. A platform's missing constant reads as undefined. */ -declare module "constants" { - const constants: { readonly [name: string]: number } & { - readonly defaultCoreCipherList: string; - readonly defaultCipherList: string; - }; - export = constants; -} -declare module "node:constants" { - import constants = require("constants"); - export = constants; -} - /* node:readline — the question/close slice: createInterface over exactly * { input: process.stdin, output: process.stdout }, question(query, cb) * (the query writes to stdout, the callback gets the next line's text), @@ -4919,2484 +1642,6 @@ declare module "node:readline/promises" { export * from "readline/promises"; } -/* node:zlib — the one-shot zlib/raw/gzip codecs lower for string/Buffer - * inputs with Node's default options; libz links only into zlib-using - * binaries. Callback forms use the executable worker pool. Options stay - * declared so reached uses receive a named SC2020 refusal. The Deflate, - * Inflate, Gzip, Gunzip, DeflateRaw, InflateRaw, Unzip, BrotliCompress - * and BrotliDecompress streams are runtime Transform streams; Zstd remains - * outside the lowered surface. */ -declare module "zlib" { - import { Transform } from "stream"; - export interface ZlibOptions { - [option: string]: unknown; - } - export type ZlibCallback = (error: NodeJS.ErrnoException | null, result: Buffer) => void; - export function deflate(data: string | Uint8Array, callback: ZlibCallback): void; - export function deflate( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function deflateSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function inflate(data: string | Uint8Array, callback: ZlibCallback): void; - export function inflate( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function inflateSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function deflateRaw(data: string | Uint8Array, callback: ZlibCallback): void; - export function deflateRaw( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function deflateRawSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function inflateRaw(data: string | Uint8Array, callback: ZlibCallback): void; - export function inflateRaw( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function inflateRawSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function gzip(data: string | Uint8Array, callback: ZlibCallback): void; - export function gzip( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function gzipSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function gunzip(data: string | Uint8Array, callback: ZlibCallback): void; - export function gunzip( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function gunzipSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function unzip(data: string | Uint8Array, callback: ZlibCallback): void; - export function unzip( - data: string | Uint8Array, - options: ZlibOptions, - callback: ZlibCallback, - ): void; - export function unzipSync(data: string | Uint8Array, options?: ZlibOptions): Buffer; - export function crc32(data: string | Uint8Array, value?: number): number; - /* Brotli over the vendored brotli 1.2.0 (scr_brotli.c): `params` keys - * are the numeric BROTLI_PARAM_* and BROTLI_DECODER_PARAM_* constants. */ - export interface BrotliOptions { - [option: string]: unknown; - } - export function brotliCompress(data: string | Uint8Array, callback: ZlibCallback): void; - export function brotliCompress( - data: string | Uint8Array, - options: BrotliOptions, - callback: ZlibCallback, - ): void; - export function brotliCompressSync(data: string | Uint8Array, options?: BrotliOptions): Buffer; - export function brotliDecompress(data: string | Uint8Array, callback: ZlibCallback): void; - export function brotliDecompress( - data: string | Uint8Array, - options: BrotliOptions, - callback: ZlibCallback, - ): void; - export function brotliDecompressSync(data: string | Uint8Array, options?: BrotliOptions): Buffer; - /* The stream classes: runtime Transform streams over the zlib engine - * (scr_zlib_stream.c). createGzip(options) and new Gzip(options) build - * the same stream; options are validated at runtime with Node's rules. - * Brotli streams have no params(), as in Node. */ - class ZlibBase extends Transform { - readonly bytesWritten: number; - flush(kind?: number, callback?: () => void): void; - flush(callback: () => void): void; - close(callback?: () => void): void; - reset(): void; - } - class Zlib extends ZlibBase { - params(level: number, strategy: number, callback?: () => void): void; - } - export class BrotliCompress extends ZlibBase { - constructor(options?: BrotliOptions); - } - export class BrotliDecompress extends ZlibBase { - constructor(options?: BrotliOptions); - } - export function createBrotliCompress(options?: BrotliOptions): BrotliCompress; - export function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress; - export class Deflate extends Zlib { - constructor(options?: ZlibOptions); - } - export class Inflate extends Zlib { - constructor(options?: ZlibOptions); - } - export class Gzip extends Zlib { - constructor(options?: ZlibOptions); - } - export class Gunzip extends Zlib { - constructor(options?: ZlibOptions); - } - export class DeflateRaw extends Zlib { - constructor(options?: ZlibOptions); - } - export class InflateRaw extends Zlib { - constructor(options?: ZlibOptions); - } - export class Unzip extends Zlib { - constructor(options?: ZlibOptions); - } - export function createDeflate(options?: ZlibOptions): Deflate; - export function createInflate(options?: ZlibOptions): Inflate; - export function createGzip(options?: ZlibOptions): Gzip; - export function createGunzip(options?: ZlibOptions): Gunzip; - export function createDeflateRaw(options?: ZlibOptions): DeflateRaw; - export function createInflateRaw(options?: ZlibOptions): InflateRaw; - export function createUnzip(options?: ZlibOptions): Unzip; - /* Node v24 zlib.constants, literal-typed (the CryptoConstants stance): - * every access bakes as its literal; the object never materializes. The - * members outside BROTLI_* are also module properties (zlib.Z_SYNC_FLUSH). */ - export interface ZlibConstants { - readonly Z_NO_FLUSH: 0; - readonly Z_PARTIAL_FLUSH: 1; - readonly Z_SYNC_FLUSH: 2; - readonly Z_FULL_FLUSH: 3; - readonly Z_FINISH: 4; - readonly Z_BLOCK: 5; - readonly Z_OK: 0; - readonly Z_STREAM_END: 1; - readonly Z_NEED_DICT: 2; - readonly Z_ERRNO: -1; - readonly Z_STREAM_ERROR: -2; - readonly Z_DATA_ERROR: -3; - readonly Z_MEM_ERROR: -4; - readonly Z_BUF_ERROR: -5; - readonly Z_VERSION_ERROR: -6; - readonly Z_NO_COMPRESSION: 0; - readonly Z_BEST_SPEED: 1; - readonly Z_BEST_COMPRESSION: 9; - readonly Z_DEFAULT_COMPRESSION: -1; - readonly Z_FILTERED: 1; - readonly Z_HUFFMAN_ONLY: 2; - readonly Z_RLE: 3; - readonly Z_FIXED: 4; - readonly Z_DEFAULT_STRATEGY: 0; - readonly ZLIB_VERNUM: 4897; - readonly DEFLATE: 1; - readonly INFLATE: 2; - readonly GZIP: 3; - readonly GUNZIP: 4; - readonly DEFLATERAW: 5; - readonly INFLATERAW: 6; - readonly UNZIP: 7; - readonly BROTLI_DECODE: 8; - readonly BROTLI_ENCODE: 9; - readonly ZSTD_DECOMPRESS: 11; - readonly ZSTD_COMPRESS: 10; - readonly Z_MIN_WINDOWBITS: 8; - readonly Z_MAX_WINDOWBITS: 15; - readonly Z_DEFAULT_WINDOWBITS: 15; - readonly Z_MIN_CHUNK: 64; - readonly Z_MAX_CHUNK: number; - readonly Z_DEFAULT_CHUNK: 16384; - readonly Z_MIN_MEMLEVEL: 1; - readonly Z_MAX_MEMLEVEL: 9; - readonly Z_DEFAULT_MEMLEVEL: 8; - readonly Z_MIN_LEVEL: -1; - readonly Z_MAX_LEVEL: 9; - readonly Z_DEFAULT_LEVEL: -1; - readonly BROTLI_OPERATION_PROCESS: 0; - readonly BROTLI_OPERATION_FLUSH: 1; - readonly BROTLI_OPERATION_FINISH: 2; - readonly BROTLI_OPERATION_EMIT_METADATA: 3; - readonly BROTLI_PARAM_MODE: 0; - readonly BROTLI_MODE_GENERIC: 0; - readonly BROTLI_MODE_TEXT: 1; - readonly BROTLI_MODE_FONT: 2; - readonly BROTLI_DEFAULT_MODE: 0; - readonly BROTLI_PARAM_QUALITY: 1; - readonly BROTLI_MIN_QUALITY: 0; - readonly BROTLI_MAX_QUALITY: 11; - readonly BROTLI_DEFAULT_QUALITY: 11; - readonly BROTLI_PARAM_LGWIN: 2; - readonly BROTLI_MIN_WINDOW_BITS: 10; - readonly BROTLI_MAX_WINDOW_BITS: 24; - readonly BROTLI_LARGE_MAX_WINDOW_BITS: 30; - readonly BROTLI_DEFAULT_WINDOW: 22; - readonly BROTLI_PARAM_LGBLOCK: 3; - readonly BROTLI_MIN_INPUT_BLOCK_BITS: 16; - readonly BROTLI_MAX_INPUT_BLOCK_BITS: 24; - readonly BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4; - readonly BROTLI_PARAM_SIZE_HINT: 5; - readonly BROTLI_PARAM_LARGE_WINDOW: 6; - readonly BROTLI_PARAM_NPOSTFIX: 7; - readonly BROTLI_PARAM_NDIRECT: 8; - readonly BROTLI_DECODER_RESULT_ERROR: 0; - readonly BROTLI_DECODER_RESULT_SUCCESS: 1; - readonly BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2; - readonly BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3; - readonly BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0; - readonly BROTLI_DECODER_PARAM_LARGE_WINDOW: 1; - readonly BROTLI_DECODER_NO_ERROR: 0; - readonly BROTLI_DECODER_SUCCESS: 1; - readonly BROTLI_DECODER_NEEDS_MORE_INPUT: 2; - readonly BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3; - readonly BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1; - readonly BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2; - readonly BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3; - readonly BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4; - readonly BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5; - readonly BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6; - readonly BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7; - readonly BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8; - readonly BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9; - readonly BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10; - readonly BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11; - readonly BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12; - readonly BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13; - readonly BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14; - readonly BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15; - readonly BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16; - readonly BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19; - readonly BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20; - readonly BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21; - readonly BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22; - readonly BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25; - readonly BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26; - readonly BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27; - readonly BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30; - readonly BROTLI_DECODER_ERROR_UNREACHABLE: -31; - readonly ZSTD_e_continue: 0; - readonly ZSTD_e_flush: 1; - readonly ZSTD_e_end: 2; - readonly ZSTD_fast: 1; - readonly ZSTD_dfast: 2; - readonly ZSTD_greedy: 3; - readonly ZSTD_lazy: 4; - readonly ZSTD_lazy2: 5; - readonly ZSTD_btlazy2: 6; - readonly ZSTD_btopt: 7; - readonly ZSTD_btultra: 8; - readonly ZSTD_btultra2: 9; - readonly ZSTD_c_compressionLevel: 100; - readonly ZSTD_c_windowLog: 101; - readonly ZSTD_c_hashLog: 102; - readonly ZSTD_c_chainLog: 103; - readonly ZSTD_c_searchLog: 104; - readonly ZSTD_c_minMatch: 105; - readonly ZSTD_c_targetLength: 106; - readonly ZSTD_c_strategy: 107; - readonly ZSTD_c_enableLongDistanceMatching: 160; - readonly ZSTD_c_ldmHashLog: 161; - readonly ZSTD_c_ldmMinMatch: 162; - readonly ZSTD_c_ldmBucketSizeLog: 163; - readonly ZSTD_c_ldmHashRateLog: 164; - readonly ZSTD_c_contentSizeFlag: 200; - readonly ZSTD_c_checksumFlag: 201; - readonly ZSTD_c_dictIDFlag: 202; - readonly ZSTD_c_nbWorkers: 400; - readonly ZSTD_c_jobSize: 401; - readonly ZSTD_c_overlapLog: 402; - readonly ZSTD_d_windowLogMax: 100; - readonly ZSTD_CLEVEL_DEFAULT: 3; - readonly ZSTD_error_no_error: 0; - readonly ZSTD_error_GENERIC: 1; - readonly ZSTD_error_prefix_unknown: 10; - readonly ZSTD_error_version_unsupported: 12; - readonly ZSTD_error_frameParameter_unsupported: 14; - readonly ZSTD_error_frameParameter_windowTooLarge: 16; - readonly ZSTD_error_corruption_detected: 20; - readonly ZSTD_error_checksum_wrong: 22; - readonly ZSTD_error_literals_headerWrong: 24; - readonly ZSTD_error_dictionary_corrupted: 30; - readonly ZSTD_error_dictionary_wrong: 32; - readonly ZSTD_error_dictionaryCreation_failed: 34; - readonly ZSTD_error_parameter_unsupported: 40; - readonly ZSTD_error_parameter_combination_unsupported: 41; - readonly ZSTD_error_parameter_outOfBound: 42; - readonly ZSTD_error_tableLog_tooLarge: 44; - readonly ZSTD_error_maxSymbolValue_tooLarge: 46; - readonly ZSTD_error_maxSymbolValue_tooSmall: 48; - readonly ZSTD_error_stabilityCondition_notRespected: 50; - readonly ZSTD_error_stage_wrong: 60; - readonly ZSTD_error_init_missing: 62; - readonly ZSTD_error_memory_allocation: 64; - readonly ZSTD_error_workSpace_tooSmall: 66; - readonly ZSTD_error_dstSize_tooSmall: 70; - readonly ZSTD_error_srcSize_wrong: 72; - readonly ZSTD_error_dstBuffer_null: 74; - readonly ZSTD_error_noForwardProgress_destFull: 80; - readonly ZSTD_error_noForwardProgress_inputEmpty: 82; - } - export const constants: ZlibConstants; - export const Z_NO_FLUSH: 0; - export const Z_PARTIAL_FLUSH: 1; - export const Z_SYNC_FLUSH: 2; - export const Z_FULL_FLUSH: 3; - export const Z_FINISH: 4; - export const Z_BLOCK: 5; - export const Z_OK: 0; - export const Z_STREAM_END: 1; - export const Z_NEED_DICT: 2; - export const Z_ERRNO: -1; - export const Z_STREAM_ERROR: -2; - export const Z_DATA_ERROR: -3; - export const Z_MEM_ERROR: -4; - export const Z_BUF_ERROR: -5; - export const Z_VERSION_ERROR: -6; - export const Z_NO_COMPRESSION: 0; - export const Z_BEST_SPEED: 1; - export const Z_BEST_COMPRESSION: 9; - export const Z_DEFAULT_COMPRESSION: -1; - export const Z_FILTERED: 1; - export const Z_HUFFMAN_ONLY: 2; - export const Z_RLE: 3; - export const Z_FIXED: 4; - export const Z_DEFAULT_STRATEGY: 0; - export const ZLIB_VERNUM: 4897; - export const DEFLATE: 1; - export const INFLATE: 2; - export const GZIP: 3; - export const GUNZIP: 4; - export const DEFLATERAW: 5; - export const INFLATERAW: 6; - export const UNZIP: 7; - export const ZSTD_DECOMPRESS: 11; - export const ZSTD_COMPRESS: 10; - export const Z_MIN_WINDOWBITS: 8; - export const Z_MAX_WINDOWBITS: 15; - export const Z_DEFAULT_WINDOWBITS: 15; - export const Z_MIN_CHUNK: 64; - export const Z_MAX_CHUNK: number; - export const Z_DEFAULT_CHUNK: 16384; - export const Z_MIN_MEMLEVEL: 1; - export const Z_MAX_MEMLEVEL: 9; - export const Z_DEFAULT_MEMLEVEL: 8; - export const Z_MIN_LEVEL: -1; - export const Z_MAX_LEVEL: 9; - export const Z_DEFAULT_LEVEL: -1; - export const ZSTD_e_continue: 0; - export const ZSTD_e_flush: 1; - export const ZSTD_e_end: 2; - export const ZSTD_fast: 1; - export const ZSTD_dfast: 2; - export const ZSTD_greedy: 3; - export const ZSTD_lazy: 4; - export const ZSTD_lazy2: 5; - export const ZSTD_btlazy2: 6; - export const ZSTD_btopt: 7; - export const ZSTD_btultra: 8; - export const ZSTD_btultra2: 9; - export const ZSTD_c_compressionLevel: 100; - export const ZSTD_c_windowLog: 101; - export const ZSTD_c_hashLog: 102; - export const ZSTD_c_chainLog: 103; - export const ZSTD_c_searchLog: 104; - export const ZSTD_c_minMatch: 105; - export const ZSTD_c_targetLength: 106; - export const ZSTD_c_strategy: 107; - export const ZSTD_c_enableLongDistanceMatching: 160; - export const ZSTD_c_ldmHashLog: 161; - export const ZSTD_c_ldmMinMatch: 162; - export const ZSTD_c_ldmBucketSizeLog: 163; - export const ZSTD_c_ldmHashRateLog: 164; - export const ZSTD_c_contentSizeFlag: 200; - export const ZSTD_c_checksumFlag: 201; - export const ZSTD_c_dictIDFlag: 202; - export const ZSTD_c_nbWorkers: 400; - export const ZSTD_c_jobSize: 401; - export const ZSTD_c_overlapLog: 402; - export const ZSTD_d_windowLogMax: 100; - export const ZSTD_CLEVEL_DEFAULT: 3; - export const ZSTD_error_no_error: 0; - export const ZSTD_error_GENERIC: 1; - export const ZSTD_error_prefix_unknown: 10; - export const ZSTD_error_version_unsupported: 12; - export const ZSTD_error_frameParameter_unsupported: 14; - export const ZSTD_error_frameParameter_windowTooLarge: 16; - export const ZSTD_error_corruption_detected: 20; - export const ZSTD_error_checksum_wrong: 22; - export const ZSTD_error_literals_headerWrong: 24; - export const ZSTD_error_dictionary_corrupted: 30; - export const ZSTD_error_dictionary_wrong: 32; - export const ZSTD_error_dictionaryCreation_failed: 34; - export const ZSTD_error_parameter_unsupported: 40; - export const ZSTD_error_parameter_combination_unsupported: 41; - export const ZSTD_error_parameter_outOfBound: 42; - export const ZSTD_error_tableLog_tooLarge: 44; - export const ZSTD_error_maxSymbolValue_tooLarge: 46; - export const ZSTD_error_maxSymbolValue_tooSmall: 48; - export const ZSTD_error_stabilityCondition_notRespected: 50; - export const ZSTD_error_stage_wrong: 60; - export const ZSTD_error_init_missing: 62; - export const ZSTD_error_memory_allocation: 64; - export const ZSTD_error_workSpace_tooSmall: 66; - export const ZSTD_error_dstSize_tooSmall: 70; - export const ZSTD_error_srcSize_wrong: 72; - export const ZSTD_error_dstBuffer_null: 74; - export const ZSTD_error_noForwardProgress_destFull: 80; - export const ZSTD_error_noForwardProgress_inputEmpty: 82; -} -declare module "node:zlib" { - export * from "zlib"; -} - -/* node:net — the inbound-networking slice (scr_net.c links only into - * net-using binaries). TCP only, Node's shapes narrowed to what lowers: - * createServer with an optional connection handler; listen(port[, cb]) - * with the real port discoverable as address().port (the composed read - * is the lowered form — bare address() has no lowering); close([cb]) - * firing once connections drain; socket write/end/destroy/pipe and the - * data/end/close/error/connect/drain events (on and once — listeners - * take at most the declared parameter). write returns Node's - * backpressure boolean; end returns void here (Node returns the socket); - * on/once return void (chaining is fenced). connect's host is a numeric IP or "localhost" (pinned to - * 127.0.0.1 — SEMANTICS.md); every failure is the async 'error' event, - * and an 'error' with no listener exits 1 like an unhandled EventEmitter - * 'error'. */ -declare module "net" { - export interface Socket { - /* Whether the socket keeps the event loop alive (ref'd by default). */ - ref(): void; - unref(): void; - readonly remoteAddress: string | undefined; - /* The peer's fields are cached at first read, like remoteAddress; the - * local ones are undefined while connecting and after close. */ - readonly remotePort: number | undefined; - readonly remoteFamily: string | undefined; - readonly localAddress: string | undefined; - readonly localPort: number | undefined; - readonly localFamily: string | undefined; - readonly bytesRead: number; - readonly connecting: boolean; - readonly pending: boolean; - readonly readyState: "opening" | "open" | "readOnly" | "writeOnly" | "closed"; - /* true once the fd is gone (destroy() or full close) — Node's flag. */ - readonly destroyed: boolean; - /* the write half is open: no end() yet, no FIN sent, fd alive. */ - readonly writable: boolean; - /* true until the read half is done (peer FIN / destroy). */ - readonly readable: boolean; - /* every byte the write paths accepted (buffered included — Node - * counts those too; plaintext on TLS sockets). */ - readonly bytesWritten: number; - /* write's callback runs once the data is flushed, with null; end's - * once the socket finishes. */ - /* false when the bytes this write left unsent reach the 65536-byte - * high-water mark, as in Node; 'drain' fires when they are all sent. */ - write(data: string | Uint8Array, callback?: (err?: Error | null) => void): boolean; - /* the bytes written and not yet sent */ - readonly writableLength: number; - /* a write answered false and 'drain' has not fired yet */ - readonly writableNeedDrain: boolean; - end(callback?: () => void): void; - end(data: string | Uint8Array, callback?: () => void): void; - destroy(): void; - /* Flow control: pause holds reads off (kernel/TCP backpressure is - * the buffer); resume flows — and discards without listeners, so - * 'end' stays reachable. Both chain, Node's shape. */ - pause(): Socket; - resume(): Socket; - /* TCP_NODELAY on the live fd; missing means true. Chains. */ - setNoDelay(noDelay?: boolean): Socket; - /* SO_KEEPALIVE with the initial delay in ms. Chains. */ - setKeepAlive(enable?: boolean, initialDelay?: number): Socket; - /* end() now, destroy once the FIN actually flushed. */ - destroySoon(): void; - /* An RST instead of a FIN; a connecting socket resets once it - * connects. Throws ERR_INVALID_HANDLE_TYPE on a TLS socket. */ - resetAndDestroy(): Socket; - /* The local address, or {} while connecting and once destroyed. */ - address(): AddressInfo | {}; - /* setEncoding('utf8'): 'data' delivers strings — the IncomingMessage - * twin's contract. */ - setEncoding(encoding: string): void; - /* socket→socket, and socket→response (the extended-CONNECT bridge - * leg: raw chunks become response body writes; EOF ends it). */ - pipe( - destination: Socket | import("http").ServerResponse | import("http2").Http2ServerResponse, - ): void; - /* The callback is a once('timeout') listener (removed again by 0). */ - setTimeout(ms: number, callback?: () => void): void; - /* The paused-mode demux surface: once('readable') + read(1) + - * unshift — read answers exactly n buffered bytes or null. */ - read(size?: number): Buffer | null; - unshift(chunk: Uint8Array): void; - /* secureConnect/secure/session are TLS-socket events declared on the - * shared socket surface (the lowering collapses TLSSocket onto this kind): - * the runtime gates on the transport, so a plain socket's - * registration never fires — Node's exact split. 'session' fires - * once with the serialized session (the received-ticket event). */ - on(event: "data", listener: (chunk: Buffer) => void): void; - /* After setEncoding the chunk is a string. */ - on(event: "data", listener: (chunk: string) => void): void; - on( - event: - | "end" - | "connect" - | "ready" - | "timeout" - | "drain" - | "readable" - | "finish" - | "secureConnect" - | "secure", - listener: () => void, - ): void; - on(event: "close", listener: (hadError: boolean) => void): void; - on(event: "error", listener: (err: Error) => void): void; - on(event: "session", listener: (session: Buffer) => void): void; - /* The host name's resolution, before the connect. */ - on( - event: "lookup", - listener: (err: Error | null, address: string, family: number, host: string) => void, - ): void; - /* addListener IS on (Node aliases them) — the suite spells both. */ - addListener(event: "data", listener: (chunk: Buffer) => void): void; - /* After setEncoding the chunk is a string. */ - addListener(event: "data", listener: (chunk: string) => void): void; - addListener( - event: - | "end" - | "connect" - | "ready" - | "timeout" - | "drain" - | "readable" - | "finish" - | "secureConnect" - | "secure", - listener: () => void, - ): void; - addListener(event: "close", listener: (hadError: boolean) => void): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener(event: "session", listener: (session: Buffer) => void): void; - /* The host name's resolution, before the connect. */ - addListener( - event: "lookup", - listener: (err: Error | null, address: string, family: number, host: string) => void, - ): void; - once(event: "data", listener: (chunk: Buffer) => void): void; - /* After setEncoding the chunk is a string. */ - once(event: "data", listener: (chunk: string) => void): void; - once( - event: - | "end" - | "connect" - | "ready" - | "timeout" - | "drain" - | "readable" - | "finish" - | "secureConnect" - | "secure", - listener: () => void, - ): void; - once(event: "close", listener: (hadError: boolean) => void): void; - once(event: "error", listener: (err: Error) => void): void; - once(event: "session", listener: (session: Buffer) => void): void; - /* The host name's resolution, before the connect. */ - once( - event: "lookup", - listener: (err: Error | null, address: string, family: number, host: string) => void, - ): void; - } - export interface Server { - /* Whether the server keeps the event loop alive (ref'd by default). */ - ref(): void; - unref(): void; - readonly listening: boolean; - /* Connections past this many are closed with a 'drop' event; - * undefined (the default) or null lifts the cap. */ - maxConnections: number | undefined; - /* Node reads it only in cluster mode: a stored value here. */ - dropMaxConnection: boolean | undefined; - /* cb(null, count) on the next tick. */ - getConnections(callback: (error: Error | null, count: number) => void): Server; - /* Node answers the server itself (`return this` chaining). */ - listen(port: number, callback?: () => void): Server; - /* The positional bind address (the options form's host in argument - * spelling). */ - listen(port: number, host: string, callback?: () => void): Server; - /* A Unix-socket server; the socket file is removed when it closes. */ - listen(path: string, callback?: () => void): Server; - /* The explicit-interface bind: host is an IP literal (absent = the - * host-less dual-stack any); ipv6Only sets IPV6_V6ONLY and reusePort - * requests kernel connection distribution where Node supports it. */ - listen( - options: { port: number; host?: string; ipv6Only?: boolean; reusePort?: boolean }, - callback?: () => void, - ): Server; - close(callback?: () => void): void; - /* The bound AddressInfo (Node answers null before listen — this - * surface answers the record with port 0 there, the serverPort - * stance). */ - address(): import("node:dgram").AddressInfo; - /* The demux route: hand an accepted socket to another server. */ - emit(event: "connection", socket: Socket): boolean; - on(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void; - /* tls and https servers: a handshake that failed */ - on( - event: "tlsClientError", - listener: (err: Error, tlsSocket: import("tls").TLSSocket) => void, - ): void; - on(event: "close" | "listening", listener: () => void): void; - on(event: "drop", listener: (data?: DropArgument) => void): void; - on(event: "timeout", listener: (socket: Socket) => void): void; - on(event: "error", listener: (err: Error) => void): void; - /* The WebSocket handover: fires INSTEAD of 'request' for - * Connection: upgrade requests, with the raw socket + head bytes; - * 'connect' is its twin for CONNECT requests (HTTP tunneling). */ - on( - event: "upgrade" | "connect", - listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void, - ): void; - /* http.createServer(handler)'s event twin (a no-parser net server - * never fires it, like Node). */ - on( - event: "request" | "checkContinue" | "checkExpectation", - listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void, - ): void; - /* addListener IS on (Node aliases them) — the suite spells both. */ - addListener(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void; - /* tls and https servers: a handshake that failed */ - addListener( - event: "tlsClientError", - listener: (err: Error, tlsSocket: import("tls").TLSSocket) => void, - ): void; - addListener(event: "close" | "listening", listener: () => void): void; - addListener(event: "drop", listener: (data?: DropArgument) => void): void; - addListener(event: "timeout", listener: (socket: Socket) => void): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener( - event: "upgrade" | "connect", - listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void, - ): void; - addListener( - event: "request" | "checkContinue" | "checkExpectation", - listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void, - ): void; - once(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void; - /* tls and https servers: a handshake that failed */ - once( - event: "tlsClientError", - listener: (err: Error, tlsSocket: import("tls").TLSSocket) => void, - ): void; - once(event: "close" | "listening", listener: () => void): void; - once(event: "drop", listener: (data?: DropArgument) => void): void; - once(event: "timeout", listener: (socket: Socket) => void): void; - once(event: "error", listener: (err: Error) => void): void; - once( - event: "upgrade" | "connect", - listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void, - ): void; - once( - event: "request" | "checkContinue" | "checkExpectation", - listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void, - ): void; - } - /* The 'drop' payload: the turned-away connection's addresses. */ - export interface DropArgument { - localAddress?: string; - localPort?: number; - localFamily?: string; - remoteAddress?: string; - remotePort?: number; - remoteFamily?: string; - } - export type AddressInfo = import("node:dgram").AddressInfo; - export type IPVersion = "ipv4" | "ipv6"; - export interface SocketAddressInitOptions { - address?: string; - family?: IPVersion; - flowlabel?: number; - port?: number; - } - /* A native handle (scr_net.c); the getters read its parsed address. */ - export class SocketAddress { - constructor(options?: SocketAddressInitOptions); - readonly address: string; - readonly family: IPVersion; - readonly port: number; - readonly flowlabel: number; - toJSON(): { address: string; port: number; family: IPVersion; flowlabel: number }; - /* undefined when the input is not "[:]" */ - static parse(input: string): SocketAddress | undefined; - static isSocketAddress(value: unknown): value is SocketAddress; - } - /* Address, range and subnet rules; check() matches IPv4 addresses - * against IPv6 rules through their IPv4-mapped form, as Node does. */ - export class BlockList { - constructor(); - readonly rules: readonly string[]; - readonly size: number; - addAddress(address: string | SocketAddress, type?: IPVersion): void; - addAddresses(addresses: readonly (string | SocketAddress)[], type?: IPVersion): void; - addRange(start: string | SocketAddress, end: string | SocketAddress, type?: IPVersion): void; - addSubnet(net: string | SocketAddress, prefix: number, type?: IPVersion): void; - addCIDR(cidr: string): void; - addCIDRs(cidrs: readonly string[]): void; - removeAddress(address: string | SocketAddress, type?: IPVersion): void; - removeRange(start: string | SocketAddress, end: string | SocketAddress, type?: IPVersion): void; - removeSubnet(net: string | SocketAddress, prefix: number, type?: IPVersion): void; - removeCIDR(cidr: string): void; - clear(): void; - check(address: string | SocketAddress, type?: IPVersion): boolean; - toJSON(): string[]; - fromJSON(data: string | readonly string[]): void; - static isBlockList(value: unknown): value is BlockList; - static readonly PRIVATE_RANGES: readonly string[]; - } - /* Node's IPv4Reg and IPv6Reg tests: 4, 6, or 0 for isIP. */ - export function isIP(input: string): number; - export function isIPv4(input: string): boolean; - export function isIPv6(input: string): boolean; - /* The Socket VALUE — the `x instanceof net.Socket` narrowing target - * (the h2 compat 'connect' listener's test). Constructing bare sockets - * has no lowering; the construct signature exists for instanceof. */ - export const Socket: abstract new () => Socket; - export function createServer(connectionListener?: (socket: Socket) => void): Server; - export function connect(port: number, host?: string, connectListener?: () => void): Socket; - export function createConnection( - port: number, - host?: string, - connectListener?: () => void, - ): Socket; - /* The caller-resolver dial (@types/node's net.LookupFunction): the - * runtime invokes it as Node's autoSelectFamily dial does (options - * { hints, all: true }, so the callback answers an address list) and - * dials the answered addresses in order. */ - export type LookupFunction = ( - hostname: string, - options: import("node:dns").LookupOptions, - callback: ( - err: NodeJS.ErrnoException | null, - address: string | import("node:dns").LookupAddress[], - family?: number, - ) => void, - ) => void; - export function connect( - options: { - port: number; - host?: string; - autoSelectFamily?: boolean; - lookup?: LookupFunction; - }, - connectListener?: () => void, - ): Socket; - export function createConnection( - options: { - port: number; - host?: string; - autoSelectFamily?: boolean; - lookup?: LookupFunction; - }, - connectListener?: () => void, - ): Socket; - /* The happy-eyeballs attempt budget (Node's process-wide knob; the - * autoSelectFamily dial consults it): one runtime int, default 250ms - * like Node's. */ - export function getDefaultAutoSelectFamilyAttemptTimeout(): number; - export function setDefaultAutoSelectFamilyAttemptTimeout(value: number): void; -} -declare module "node:net" { - export * from "net"; -} - -/* node:http — the SERVER and CLIENT slices (scr_http.c layers a - * hand-written HTTP/1.1 parser + serializer on scr_net.c; both link only - * into using binaries). createServer(handler) returns a net.Server — - * listen/close/address().port/'error' are the same lowered surface. The - * request carries url/method (always present on server requests), - * statusCode (a number on client responses, undefined on server - * requests), the underlying socket, and lowercased headers read as - * `string | undefined`; the body streams through on("data"/"end"). The - * response is setHeader/writeHead/write/end/destroy with Node's framing - * (Content-Length for a single end(body), chunked after writeHead/write) - * and the auto Date/Connection headers; writeHead's headers argument is - * an object literal or a Record. request/get dial one - * connection per call (no agent pooling) with Node's exact wire head. */ -declare module "http" { - import { Server as NetServer, Socket } from "net"; - export const METHODS: string[]; - export const STATUS_CODES: { [status: number]: string | undefined }; - export const maxHeaderSize: number; - export interface Server extends NetServer { - timeout: number; - setTimeout(msecs: number, callback?: (socket: Socket) => void): this; - closeAllConnections(): void; - closeIdleConnections(): void; - keepAliveTimeout: number; - keepAliveTimeoutBuffer: number; - headersTimeout: number; - requestTimeout: number; - } - export type RequestListener = (req: IncomingMessage, res: ServerResponse) => void; - /* The Server VALUE — Node's constructor works with and without `new` - * (test/parallel's http.Server(fn) spelling); both route to the - * createServer lowering. */ - export const Server: { - new (requestListener?: (req: IncomingMessage, res: ServerResponse) => void): Server; - new ( - options: ServerOptions, - requestListener?: (req: IncomingMessage, res: ServerResponse) => void, - ): Server; - (requestListener?: (req: IncomingMessage, res: ServerResponse) => void): Server; - ( - options: ServerOptions, - requestListener?: (req: IncomingMessage, res: ServerResponse) => void, - ): Server; - }; - /* The options-record stance (the RequestOptions precedent): every - * documented key typechecks; the lowering's option walk decides per - * key — requireHostHeader: false, joinDuplicateHeaders, and - * keepAliveTimeoutBuffer lower, - * documented-but-unlowered keys fence by name, unknown keys drop. */ - export interface ServerOptions { - requireHostHeader?: boolean; - joinDuplicateHeaders?: boolean; - keepAliveTimeoutBuffer?: number; - maxHeaderSize?: number; - [option: string]: unknown; - } - /* The outgoing-header shape, @types/node's matrix: numbers format via - * String(n), arrays write one line per element (set-cookie's shape). - * Incoming headers stay `string | undefined` — what the parser answers - * (under @types/node the two SLOTS unify so `{ ...req.headers }` - * merges into outgoing literals as a copy; the fallback keeps reads - * simple and spreads target the same string | undefined slot). */ - export type OutgoingHttpHeaders = { [name: string]: number | string | string[] | undefined }; - export interface IncomingMessage { - readonly url: string; - readonly method: string; - readonly httpVersion: string; - readonly complete: boolean; - readonly aborted: boolean; - readonly statusCode: number | undefined; - readonly statusMessage: string | undefined; - readonly socket: Socket; - readonly connection: Socket; - readonly headers: { [name: string]: string | undefined }; - readonly headersDistinct: { [name: string]: string[] | undefined }; - readonly rawHeaders: string[]; - readonly trailers: { [name: string]: string | undefined }; - readonly trailersDistinct: { [name: string]: string[] | undefined }; - readonly rawTrailers: string[]; - resume(): void; - pause(): void; - destroy(): void; - setTimeout(msecs: number, callback?: () => void): this; - /* setEncoding('utf8'): 'data' delivers strings (other real encodings - * throw a "not supported yet" Error at runtime; unknown names throw - * ERR_UNKNOWN_ENCODING). */ - setEncoding(encoding: string): void; - /* The proxy legs: the body streams into a ServerResponse, a - * ClientRequest, or a raw Socket; natural end ends the destination. */ - pipe( - destination: ServerResponse | import("http2").Http2ServerResponse | ClientRequest | Socket, - ): void; - on(event: "data", listener: (chunk: any) => void): void; - on(event: "end" | "close" | "aborted", listener: () => void): void; - on(event: "error", listener: (err: Error) => void): void; - /* addListener IS on (Node aliases them) — the suite spells both. */ - addListener(event: "data", listener: (chunk: any) => void): void; - addListener(event: "end" | "close" | "aborted", listener: () => void): void; - addListener(event: "error", listener: (err: Error) => void): void; - once(event: "data", listener: (chunk: any) => void): void; - once(event: "end" | "close" | "aborted", listener: () => void): void; - once(event: "error", listener: (err: Error) => void): void; - } - export interface ServerResponse { - readonly headersSent: boolean; - readonly writableEnded: boolean; - readonly finished: boolean; - readonly writableFinished: boolean; - readonly writableCorked: number; - readonly req: IncomingMessage; - readonly socket: Socket | null; - readonly connection: Socket | null; - sendDate: boolean; - strictContentLength: boolean; - /* Node's writable head properties: the implicit head reads them. */ - statusCode: number; - statusMessage: string | undefined; - /* The value keeps its type: getHeader answers the number, string or - * array that was set. */ - setHeader(name: string, value: number | string | readonly string[]): void; - appendHeader(name: string, value: string | readonly string[]): void; - getHeader(name: string): number | string | string[] | undefined; - getHeaderNames(): string[]; - getRawHeaderNames(): string[]; - getHeaders(): OutgoingHttpHeaders; - hasHeader(name: string): boolean; - removeHeader(name: string): void; - /* Both overloads answer the response (`return this` chaining); the - * headers argument also takes Node's flat [name, value, ...] array. */ - writeHead(statusCode: number, headers?: OutgoingHttpHeaders | string[]): ServerResponse; - writeHead( - statusCode: number, - statusMessage: string, - headers?: OutgoingHttpHeaders | string[], - ): ServerResponse; - writeContinue(callback?: () => void): void; - writeProcessing(callback?: () => void): void; - writeEarlyHints(hints: Record, callback?: () => void): void; - write(data: string | Uint8Array): void; - flushHeaders(): void; - cork(): void; - uncork(): void; - addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; - setTimeout(msecs: number, callback?: () => void): this; - /* end's callback forms fire once the body went out (the 'finish' - * emit, deferred past the handler's synchronous tail). */ - end(data?: string | Uint8Array, callback?: () => void): void; - end(callback: () => void): void; - destroy(): void; - on(event: "close" | "finish", listener: () => void): void; - /* addListener IS on (Node aliases them) — the suite spells both. */ - addListener(event: "close" | "finish", listener: () => void): void; - once(event: "close" | "finish", listener: () => void): void; - } - /* The CLIENT slice (http.request/http.get): the options-object form - * with hostname/host, port, path, method, timeout, and headers; the - * callback receives the response as an IncomingMessage (statusCode, - * headers, body via on("data"/"end")). */ - export interface RequestOptions { - hostname?: string | null; - host?: string | null; - /* A string port (a URL's .port) is accepted, as by Node. */ - port?: number | string | null; - path?: string | null; - method?: string; - timeout?: number; - headers?: OutgoingHttpHeaders; - /* The caller's own dialer (the proxy's loopback dial): invoked once, - * synchronously; its socket carries the exchange. */ - createConnection?: () => Socket; - /* agent: false is a one-shot dial with Connection: close — exactly - * the compiled client's model; null/undefined are the default; an - * Agent VALUE threads through (getName-keyed maxSockets accounting - * over one-dial-per-request connections). */ - agent?: Agent | boolean | null; - /* Aborting destroys the request with an AbortError. */ - signal?: AbortSignal; - /* HTTP over the Unix socket at this path instead of host:port. */ - socketPath?: string; - /* The options-record stance: Node ignores an options record's - * unknown keys, so every key typechecks here — the option WALK in - * the lowering decides per key (lower, fence by name, or drop - * undocumented keys exactly like Node). */ - [option: string]: unknown; - } - /* The Agent lowers to a checked-dynamic HANDLE: option parsing at the - * literal construction site, getName, destroy, the sockets/requests/ - * freeSockets snapshots, and REAL maxSockets accounting (over-limit - * requests defer their dial and queue). keepAlive: true keeps finished - * connections in freeSockets for the next request to the same name, - * taken in `scheduling` order. */ - export interface AgentOptions { - keepAlive?: boolean; - keepAliveMsecs?: number; - maxSockets?: number; - maxFreeSockets?: number; - maxTotalSockets?: number; - scheduling?: "fifo" | "lifo"; - timeout?: number; - port?: number; - [option: string]: unknown; - } - export class Agent { - constructor(options?: AgentOptions); - destroy(): void; - /* Node's exact key shape: host:port:localAddress[:family][:socketPath]. */ - getName(options?: { - host?: string; - port?: number; - localAddress?: string; - family?: number; - socketPath?: string; - [option: string]: unknown; - }): string; - maxSockets: number; - maxFreeSockets: number; - keepAliveMsecs: number; - readonly keepAlive: boolean; - readonly protocol: string; - /* Settable — a portless request through this agent dials it (Node's - * option merge). */ - defaultPort: number; - readonly totalSocketCount: number; - readonly sockets: { [key: string]: unknown[] }; - readonly freeSockets: { [key: string]: unknown[] }; - readonly requests: { [key: string]: unknown[] }; - } - /* Node's keepAlive global agent for requests without an agent option. */ - export const globalAgent: Agent; - export interface ClientRequest { - readonly destroyed: boolean; - readonly aborted: boolean; - readonly socket: Socket; - readonly connection: Socket; - readonly writableCorked: number; - readonly method: string; - readonly path: string; - readonly host: string; - readonly protocol: string; - readonly headersSent: boolean; - readonly writableEnded: boolean; - readonly writableFinished: boolean; - readonly finished: boolean; - readonly reusedSocket: boolean; - setHeader(name: string, value: string): void; - getHeader(name: string): string | undefined; - hasHeader(name: string): boolean; - removeHeader(name: string): void; - getHeaderNames(): string[]; - getRawHeaderNames(): string[]; - getHeaders(): OutgoingHttpHeaders; - flushHeaders(): void; - addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; - cork(): void; - uncork(): void; - setNoDelay(noDelay?: boolean): void; - setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; - setTimeout(timeout: number, callback?: () => void): this; - write(data: string | Uint8Array): void; - end(data?: string | Uint8Array): void; - destroy(error?: Error): void; - abort(): void; - on(event: "response", listener: (res: IncomingMessage) => void): void; - on(event: "socket", listener: (socket: Socket) => void): void; - on( - event: "upgrade", - listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void, - ): void; - on(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void; - on(event: "error", listener: (err: Error) => void): void; - /* addListener IS on (Node aliases them) — the suite spells both. */ - addListener(event: "response", listener: (res: IncomingMessage) => void): void; - addListener(event: "socket", listener: (socket: Socket) => void): void; - addListener( - event: "upgrade", - listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void, - ): void; - addListener(event: "timeout" | "close" | "finish" | "abort", listener: () => void): void; - addListener(event: "error", listener: (err: Error) => void): void; - once(event: "response", listener: (res: IncomingMessage) => void): void; - once(event: "socket", listener: (socket: Socket) => void): void; - once( - event: "upgrade", - listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void, - ): void; - once(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void; - once(event: "error", listener: (err: Error) => void): void; - } - export function createServer( - requestListener?: (req: IncomingMessage, res: ServerResponse) => void, - ): Server; - export function createServer( - options: ServerOptions, - requestListener?: (req: IncomingMessage, res: ServerResponse) => void, - ): Server; - /* One signature with a UNION first parameter rather than Node's two - * overloads: `const requestFn = tls ? https.request : http.request` - * (the portless isProxyRunning shape) unions two function types, and - * resolving a call on that union collapses each constituent to a - * single signature — with an overload SET on both sides the options - * literal ends up checked against URL, in either declaration order. - * A union parameter has nothing to collapse. The lowering dispatches - * on the argument's own type, so it reads the same either way. - * - * `target` is a URL string or URL object (the spelling a from-scratch - * client reaches for first — dialed directly, with a non-http scheme - * an ERR_INVALID_PROTOCOL at runtime rather than a type error), or - * the options record. */ - export function request( - target: RequestOptions | string | URL, - callback?: (res: IncomingMessage) => void, - ): ClientRequest; - export function get( - target: RequestOptions | string | URL, - callback?: (res: IncomingMessage) => void, - ): ClientRequest; - export function validateHeaderName(name: string, label?: string): void; - export function validateHeaderValue(name: string, value: unknown): void; -} -declare module "node:http" { - export * from "http"; -} - -/* node:tls — the TLS server slice (scr_tls.c over scr_net.c with the - * vendored mbedTLS; linked only into using binaries). - * createServer({ cert, key }, handler) returns a net.Server; the handler - * is Node's 'secureConnection' — it fires post-handshake with a socket - * that behaves exactly like a net socket (write/end/destroy/pipe and the - * data/end/close/error events are the same lowered surface). cert/key - * are PEM strings or Buffers. Handshake failures tear the socket down - * without emitting an event, Node's default for 'tlsClientError' with no listener. */ -declare module "tls" { - import { Server as NetServer, Socket } from "net"; - /** tls.Server: a net server whose connections handshake first. */ - export interface Server extends NetServer { - /* serve `context` to clients whose SNI name matches `hostname` ('*' - * matches within one label); the newest match wins */ - addContext(hostname: string, context: TlsOptions | SecureContext): void; - /* new connections serve a context made from `options` */ - setSecureContext(options: TlsOptions): void; - } - export interface TlsOptions { - /* Optional in the DECLARATION only (real Node programs build these - * literals with every TLS knob): the lowering still requires both — - * a literal without them fences at the call site. */ - cert?: string | Uint8Array; - key?: string | Uint8Array; - /* The options-record stance (see http.RequestOptions): every key - * typechecks; the option walk fences documented-but-unlowered keys - * by name and drops undocumented ones like Node. */ - [option: string]: unknown; - } - export function createServer( - options: TlsOptions, - secureConnectionListener?: (socket: TLSSocket) => void, - ): Server; - /** TLSSocket — post-handshake it IS a net socket to every lowered - * member (the mapping collapses it onto the socket kind; the - * secureConnect/session events ride the shared socket declarations). - * The TLS extras: authorized/authorizationError answer Node's verify - * split — authorizationError is the verify-failure CODE STRING - * (DEPTH_ZERO_SELF_SIGNED_CERT, ...), or null. */ - export interface TLSSocket extends Socket { - readonly encrypted: true; - authorized: boolean; - authorizationError: string | null; - /* null before the handshake, then the negotiated protocol or false */ - readonly alpnProtocol: string | false | null; - /* "TLSv1.2" or "TLSv1.3"; null before the handshake and after close */ - getProtocol(): string | null; - /* OpenSSL's suite name, the IANA name and the suite's version */ - getCipher(): CipherNameAndProtocol; - /* whether the handshake resumed a cached session */ - isSessionReused(): boolean; - /* the peer's certificate: {} before the handshake or without one, - * null once the socket is destroyed; detailed adds issuerCertificate */ - getPeerCertificate(detailed: true): DetailedPeerCertificate; - getPeerCertificate(detailed?: false): PeerCertificate; - getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; - /* the certificate this socket serves, the same way */ - getCertificate(): PeerCertificate | object | null; - /* a new X509Certificate on each call, or undefined without one */ - getPeerX509Certificate(): import("crypto").X509Certificate | undefined; - getX509Certificate(): import("crypto").X509Certificate | undefined; - } - /* A certificate as getPeerCertificate() and X509Certificate's - * toLegacyObject() answer it: subject and issuer map attribute short - * names to values, infoAccess its " - " keys to values. */ - export interface PeerCertificate { - subject: { [attribute: string]: string | string[] }; - issuer: { [attribute: string]: string | string[] }; - subjectaltname?: string; - infoAccess?: { [key: string]: string[] }; - ca: boolean; - modulus?: string; - exponent?: string; - pubkey?: Buffer; - bits?: number; - valid_from: string; - valid_to: string; - fingerprint: string; - fingerprint256: string; - fingerprint512: string; - ext_key_usage?: string[]; - serialNumber: string; - raw: Buffer; - asn1Curve?: string; - nistCurve?: string; - } - /* getPeerCertificate(true): each certificate links to its issuer; a - * self-issued root is its own issuerCertificate */ - export interface DetailedPeerCertificate extends PeerCertificate { - issuerCertificate: DetailedPeerCertificate; - } - - /** new tls.TLSSocket(socket, options): the server-mode wrap of an open - * socket (a server connection or an http CONNECT socket). The options - * record reads at runtime; isServer, cert, key, secureContext, - * ALPNProtocols, minVersion and maxVersion are implemented. */ - export interface TLSSocketOptions { - isServer?: boolean; - cert?: string | Uint8Array; - key?: string | Uint8Array; - secureContext?: SecureContext; - ALPNProtocols?: string[] | Uint8Array; - minVersion?: string; - maxVersion?: string; - [option: string]: unknown; - } - export const TLSSocket: new (socket: Socket, options: TLSSocketOptions) => TLSSocket; - export interface CipherNameAndProtocol { - name: string; - standardName: string; - version: string; - } - export const DEFAULT_MIN_VERSION: string; - export const DEFAULT_MAX_VERSION: string; - /** tls.connect options — the RUNTIME options record (members read at - * runtime; port/host/socket/rejectUnauthorized/ca/servername are the - * honestly-implemented set, every other documented member throws the - * runtime fence — the options-record stance's divergence-66 shape). */ - export interface ConnectionOptions { - port?: number; - host?: string; - /* an open socket to run the client handshake over */ - socket?: Socket; - rejectUnauthorized?: boolean; - ca?: string | Uint8Array | ReadonlyArray; - servername?: string; - [option: string]: unknown; - } - export function connect( - options: ConnectionOptions, - secureConnectListener?: () => void, - ): TLSSocket; - export function connect( - port: number, - options?: ConnectionOptions, - secureConnectListener?: () => void, - ): TLSSocket; - export function connect( - port: number, - host?: string, - options?: ConnectionOptions, - secureConnectListener?: () => void, - ): TLSSocket; - /** An opaque parsed cert/key pair — what an SNI callback answers with - * (the value is a runtime handle; the members are runtime-internal). */ - export interface SecureContext {} - /* @types/node's name for createSecureContext's options */ - export type SecureContextOptions = TlsOptions; - export function createSecureContext(options: TlsOptions): SecureContext; - /** The CA-store introspection surface (scr_tls_ca.c): per-type cached - * PEM string arrays. The host bundle stands in for Node's compiled-in - * Mozilla roots ('bundled', and rootCertificates) AND the platform - * store ('system') — the Windows certificate stores or POSIX bundle probe; - * 'extra' reads NODE_EXTRA_CA_CERTS. An unknown type string throws - * Node's ERR_INVALID_ARG_VALUE TypeError. */ - export function getCACertificates(type?: string): string[]; - export const rootCertificates: readonly string[]; - /** Replaces the 'default' set (deduped) and the trust anchors the TLS - * client verifies against; a certificate-free non-empty array throws - * Node's ERR_CRYPTO_OPERATION_FAILED Error. */ - export function setDefaultCACertificates(certs: readonly string[]): void; -} -declare module "node:tls" { - export * from "tls"; -} - -/* node:https — http over the TLS transport (scr_tls.c). - * createServer({ cert, key }, handler) is the http server behind a - * handshake; request/get are the http client with port 443 default and - * the local-CA knobs: `ca` (PEM string/Buffer) replaces the trust - * anchors, rejectUnauthorized: false disables verification (the - * self-signed probe shape). With neither, /etc/ssl/cert.pem stands in - * for Node's bundled roots. */ -declare module "https" { - import { Server } from "http"; - import { Agent, ClientRequest, IncomingMessage, ServerResponse } from "http"; - export { Agent, Server }; - /* Node's keepAlive global agent for requests without an agent option. */ - export const globalAgent: Agent; - export interface ServerOptions { - cert: string | Uint8Array; - key: string | Uint8Array; - /* The options-record stance (see http.RequestOptions). */ - [option: string]: unknown; - } - export interface RequestOptions { - hostname?: string; - host?: string; - port?: number; - path?: string; - method?: string; - timeout?: number; - headers?: { [name: string]: string }; - rejectUnauthorized?: boolean; - ca?: string | Uint8Array; - agent?: Agent | boolean | null; - /* Aborting destroys the request with an AbortError. */ - signal?: AbortSignal; - socketPath?: string; - /* The options-record stance (see http.RequestOptions). */ - [option: string]: unknown; - } - export function createServer( - options: ServerOptions, - requestListener: (req: IncomingMessage, res: ServerResponse) => void, - ): Server; - /* One signature with a union first parameter, for the request-fn - * ternary's sake (see the http block). A URL target takes no options, - * which means Node's defaults — the certificate is verified against - * the default trust anchors. */ - export function request( - target: RequestOptions | string | URL, - callback?: (res: IncomingMessage) => void, - ): ClientRequest; - export function get( - target: RequestOptions | string | URL, - callback?: (res: IncomingMessage) => void, - ): ClientRequest; -} -declare module "node:https" { - export * from "https"; -} - -/* node:http2 — the compatibility surface: allowHTTP1 servers negotiate - * h2 or HTTP/1.1 and expose the shared request/response API. HTTP/2 - * requests retain their backing stream; server session failures surface - * through sessionError. */ -declare module "http2" { - import { Socket } from "net"; - export interface Http2Stream { - on(event: "error" | "close", listener: (err: Error) => void): void; - once(event: "error" | "close", listener: (err: Error) => void): void; - addListener(event: "error" | "close", listener: (err: Error) => void): void; - destroy(): void; - } - export interface Http2ServerRequest { - readonly url: string; - readonly method: string; - readonly statusCode: number | undefined; - readonly socket: Socket; - readonly headers: { [name: string]: string | undefined }; - readonly stream: Http2Stream; - /* The h2 compat request's version triple ("2.0" over real h2 streams; - * the allowHTTP1 lowering's HTTP/1.1 connections answer 1.x). */ - readonly httpVersion: string; - readonly httpVersionMajor: number; - readonly httpVersionMinor: number; - readonly aborted: boolean; - readonly complete: boolean; - resume(): void; - destroy(): void; - setEncoding(encoding: string): void; - pipe(destination: Socket | import("http").ClientRequest): void; - on(event: "data", listener: (chunk: Buffer) => void): void; - on(event: "end" | "close" | "aborted", listener: () => void): void; - on(event: "error", listener: (err: Error) => void): void; - /* addListener IS on (Node aliases them) — and the compat req IS the - * http.IncomingMessage surface, so the alias mirrors here too. */ - addListener(event: "data", listener: (chunk: Buffer) => void): void; - addListener(event: "end" | "close" | "aborted", listener: () => void): void; - addListener(event: "error", listener: (err: Error) => void): void; - once(event: "data", listener: (chunk: Buffer) => void): void; - once(event: "end" | "close" | "aborted", listener: () => void): void; - once(event: "error", listener: (err: Error) => void): void; - } - export interface Http2ServerResponse { - readonly headersSent: boolean; - readonly writableEnded: boolean; - readonly writableCorked: number; - /* The same lowered surface as http.ServerResponse — the allowHTTP1 - * lowering serves every connection as HTTP/1.1, where the compat - * response IS this parser's response handle. */ - statusCode: number; - statusMessage: string; - setHeader(name: string, value: string | number): void; - getHeader(name: string): string | undefined; - getHeaderNames(): string[]; - getRawHeaderNames(): string[]; - getHeaders(): import("http").OutgoingHttpHeaders; - hasHeader(name: string): boolean; - removeHeader(name: string): void; - writeHead( - statusCode: number, - headers?: import("http").OutgoingHttpHeaders | string[], - ): Http2ServerResponse; - writeHead( - statusCode: number, - statusMessage: string, - headers?: import("http").OutgoingHttpHeaders | string[], - ): Http2ServerResponse; - writeContinue(): void; - writeEarlyHints(hints: Record): void; - write(data: string | Uint8Array): void; - flushHeaders(): void; - cork(): void; - uncork(): void; - addTrailers( - headers: import("http").OutgoingHttpHeaders | ReadonlyArray<[string, string]>, - ): void; - end(data?: string | Uint8Array, callback?: () => void): void; - end(callback: () => void): void; - destroy(): void; - on(event: "close", listener: () => void): void; - /* addListener IS on (Node aliases them) — and the compat res IS the - * http.ServerResponse surface (assignability into ServerResponse - * unions — IncomingMessage.pipe's destination — needs the alias). */ - addListener(event: "close", listener: () => void): void; - once(event: "close", listener: () => void): void; - } - export interface Http2SecureServer { - listen(port: number, callback?: () => void): void; - close(callback?: () => void): void; - /* The bound AddressInfo (Node answers null before listen — this - * surface answers the record with port 0 there, the serverPort - * stance). */ - address(): import("node:dgram").AddressInfo; - emit(event: "connection", socket: Socket): void; - on(event: "connection", listener: (socket: Socket) => void): void; - on( - event: "request", - listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): void; - on(event: "error", listener: (err: Error) => void): void; - on(event: "close", listener: () => void): void; - on(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; - /* The ALPN=h2 server's surface (createSecureServer WITHOUT - * allowHTTP1 — the real h2-over-TLS stack): per-stream and - * per-session listeners, exactly the h2c server's. */ - on( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - on(event: "session", listener: (session: ServerHttp2Session) => void): void; - /* HTTP CONNECT (and, in Node, the h2 extended CONNECT — which the - * allowHTTP1 lowering never sees): the second argument is the raw - * socket on HTTP/1.1 connections; narrow with instanceof. */ - on( - event: "connect", - listener: ( - req: Http2ServerRequest | import("http").IncomingMessage, - resOrSocket: Http2ServerResponse | Socket, - ) => void, - ): void; - once(event: "connection", listener: (socket: Socket) => void): void; - once( - event: "request", - listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): void; - once(event: "error", listener: (err: Error) => void): void; - once(event: "close", listener: () => void): void; - once(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; - once( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - once(event: "session", listener: (session: ServerHttp2Session) => void): void; - once( - event: "connect", - listener: ( - req: Http2ServerRequest | import("http").IncomingMessage, - resOrSocket: Http2ServerResponse | Socket, - ) => void, - ): void; - addListener(event: "connection", listener: (socket: Socket) => void): void; - addListener( - event: "request", - listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener(event: "close", listener: () => void): void; - addListener( - event: "sessionError", - listener: (err: Error, session: ServerHttp2Session) => void, - ): void; - addListener( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - addListener(event: "session", listener: (session: ServerHttp2Session) => void): void; - addListener( - event: "connect", - listener: ( - req: Http2ServerRequest | import("http").IncomingMessage, - resOrSocket: Http2ServerResponse | Socket, - ) => void, - ): void; - } - export interface SecureServerOptions { - allowHTTP1?: boolean; - cert?: string | Uint8Array; - key?: string | Uint8Array; - SNICallback?: ( - servername: string, - cb: (err: Error | null, ctx?: import("tls").SecureContext) => void, - ) => void; - /* The options-record stance (see http.RequestOptions): h2 session- - * tuning knobs are accepted as literals and ignored (no h2 session - * ever exists under the allowHTTP1 lowering); other documented keys - * fence by name; undocumented keys drop like Node. */ - [option: string]: unknown; - } - /* The full Node v24 constants table (240 members), literal-typed so - * computed header keys ([HTTP2_HEADER_PATH]: value) stay literal keys. - * Every ACCESS bakes as its literal at lowering; the object itself - * never materializes (bare http2.constants value uses fence). */ - export interface Http2Constants { - readonly NGHTTP2_ERR_FRAME_SIZE_ERROR: -522; - readonly NGHTTP2_SESSION_SERVER: 0; - readonly NGHTTP2_SESSION_CLIENT: 1; - readonly NGHTTP2_STREAM_STATE_IDLE: 1; - readonly NGHTTP2_STREAM_STATE_OPEN: 2; - readonly NGHTTP2_STREAM_STATE_RESERVED_LOCAL: 3; - readonly NGHTTP2_STREAM_STATE_RESERVED_REMOTE: 4; - readonly NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: 5; - readonly NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: 6; - readonly NGHTTP2_STREAM_STATE_CLOSED: 7; - readonly NGHTTP2_FLAG_NONE: 0; - readonly NGHTTP2_FLAG_END_STREAM: 1; - readonly NGHTTP2_FLAG_END_HEADERS: 4; - readonly NGHTTP2_FLAG_ACK: 1; - readonly NGHTTP2_FLAG_PADDED: 8; - readonly NGHTTP2_FLAG_PRIORITY: 32; - readonly DEFAULT_SETTINGS_HEADER_TABLE_SIZE: 4096; - readonly DEFAULT_SETTINGS_ENABLE_PUSH: 1; - readonly DEFAULT_SETTINGS_MAX_CONCURRENT_STREAMS: 4294967295; - readonly DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: 65535; - readonly DEFAULT_SETTINGS_MAX_FRAME_SIZE: 16384; - readonly DEFAULT_SETTINGS_MAX_HEADER_LIST_SIZE: 65535; - readonly DEFAULT_SETTINGS_ENABLE_CONNECT_PROTOCOL: 0; - readonly MAX_MAX_FRAME_SIZE: 16777215; - readonly MIN_MAX_FRAME_SIZE: 16384; - readonly MAX_INITIAL_WINDOW_SIZE: 2147483647; - readonly NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: 1; - readonly NGHTTP2_SETTINGS_ENABLE_PUSH: 2; - readonly NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: 3; - readonly NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: 4; - readonly NGHTTP2_SETTINGS_MAX_FRAME_SIZE: 5; - readonly NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: 6; - readonly NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: 8; - readonly PADDING_STRATEGY_NONE: 0; - readonly PADDING_STRATEGY_ALIGNED: 1; - readonly PADDING_STRATEGY_MAX: 2; - readonly PADDING_STRATEGY_CALLBACK: 1; - readonly NGHTTP2_NO_ERROR: 0; - readonly NGHTTP2_PROTOCOL_ERROR: 1; - readonly NGHTTP2_INTERNAL_ERROR: 2; - readonly NGHTTP2_FLOW_CONTROL_ERROR: 3; - readonly NGHTTP2_SETTINGS_TIMEOUT: 4; - readonly NGHTTP2_STREAM_CLOSED: 5; - readonly NGHTTP2_FRAME_SIZE_ERROR: 6; - readonly NGHTTP2_REFUSED_STREAM: 7; - readonly NGHTTP2_CANCEL: 8; - readonly NGHTTP2_COMPRESSION_ERROR: 9; - readonly NGHTTP2_CONNECT_ERROR: 10; - readonly NGHTTP2_ENHANCE_YOUR_CALM: 11; - readonly NGHTTP2_INADEQUATE_SECURITY: 12; - readonly NGHTTP2_HTTP_1_1_REQUIRED: 13; - readonly NGHTTP2_DEFAULT_WEIGHT: 16; - readonly HTTP2_HEADER_STATUS: ":status"; - readonly HTTP2_HEADER_METHOD: ":method"; - readonly HTTP2_HEADER_AUTHORITY: ":authority"; - readonly HTTP2_HEADER_SCHEME: ":scheme"; - readonly HTTP2_HEADER_PATH: ":path"; - readonly HTTP2_HEADER_PROTOCOL: ":protocol"; - readonly HTTP2_HEADER_ACCEPT_ENCODING: "accept-encoding"; - readonly HTTP2_HEADER_ACCEPT_LANGUAGE: "accept-language"; - readonly HTTP2_HEADER_ACCEPT_RANGES: "accept-ranges"; - readonly HTTP2_HEADER_ACCEPT: "accept"; - readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: "access-control-allow-credentials"; - readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS: "access-control-allow-headers"; - readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS: "access-control-allow-methods"; - readonly HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: "access-control-allow-origin"; - readonly HTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS: "access-control-expose-headers"; - readonly HTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERS: "access-control-request-headers"; - readonly HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD: "access-control-request-method"; - readonly HTTP2_HEADER_AGE: "age"; - readonly HTTP2_HEADER_AUTHORIZATION: "authorization"; - readonly HTTP2_HEADER_CACHE_CONTROL: "cache-control"; - readonly HTTP2_HEADER_CONNECTION: "connection"; - readonly HTTP2_HEADER_CONTENT_DISPOSITION: "content-disposition"; - readonly HTTP2_HEADER_CONTENT_ENCODING: "content-encoding"; - readonly HTTP2_HEADER_CONTENT_LENGTH: "content-length"; - readonly HTTP2_HEADER_CONTENT_TYPE: "content-type"; - readonly HTTP2_HEADER_COOKIE: "cookie"; - readonly HTTP2_HEADER_DATE: "date"; - readonly HTTP2_HEADER_ETAG: "etag"; - readonly HTTP2_HEADER_FORWARDED: "forwarded"; - readonly HTTP2_HEADER_HOST: "host"; - readonly HTTP2_HEADER_IF_MODIFIED_SINCE: "if-modified-since"; - readonly HTTP2_HEADER_IF_NONE_MATCH: "if-none-match"; - readonly HTTP2_HEADER_IF_RANGE: "if-range"; - readonly HTTP2_HEADER_LAST_MODIFIED: "last-modified"; - readonly HTTP2_HEADER_LINK: "link"; - readonly HTTP2_HEADER_LOCATION: "location"; - readonly HTTP2_HEADER_RANGE: "range"; - readonly HTTP2_HEADER_REFERER: "referer"; - readonly HTTP2_HEADER_SERVER: "server"; - readonly HTTP2_HEADER_SET_COOKIE: "set-cookie"; - readonly HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: "strict-transport-security"; - readonly HTTP2_HEADER_TRANSFER_ENCODING: "transfer-encoding"; - readonly HTTP2_HEADER_TE: "te"; - readonly HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS: "upgrade-insecure-requests"; - readonly HTTP2_HEADER_UPGRADE: "upgrade"; - readonly HTTP2_HEADER_USER_AGENT: "user-agent"; - readonly HTTP2_HEADER_VARY: "vary"; - readonly HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS: "x-content-type-options"; - readonly HTTP2_HEADER_X_FRAME_OPTIONS: "x-frame-options"; - readonly HTTP2_HEADER_KEEP_ALIVE: "keep-alive"; - readonly HTTP2_HEADER_PROXY_CONNECTION: "proxy-connection"; - readonly HTTP2_HEADER_X_XSS_PROTECTION: "x-xss-protection"; - readonly HTTP2_HEADER_ALT_SVC: "alt-svc"; - readonly HTTP2_HEADER_CONTENT_SECURITY_POLICY: "content-security-policy"; - readonly HTTP2_HEADER_EARLY_DATA: "early-data"; - readonly HTTP2_HEADER_EXPECT_CT: "expect-ct"; - readonly HTTP2_HEADER_ORIGIN: "origin"; - readonly HTTP2_HEADER_PURPOSE: "purpose"; - readonly HTTP2_HEADER_TIMING_ALLOW_ORIGIN: "timing-allow-origin"; - readonly HTTP2_HEADER_X_FORWARDED_FOR: "x-forwarded-for"; - readonly HTTP2_HEADER_PRIORITY: "priority"; - readonly HTTP2_HEADER_ACCEPT_CHARSET: "accept-charset"; - readonly HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE: "access-control-max-age"; - readonly HTTP2_HEADER_ALLOW: "allow"; - readonly HTTP2_HEADER_CONTENT_LANGUAGE: "content-language"; - readonly HTTP2_HEADER_CONTENT_LOCATION: "content-location"; - readonly HTTP2_HEADER_CONTENT_MD5: "content-md5"; - readonly HTTP2_HEADER_CONTENT_RANGE: "content-range"; - readonly HTTP2_HEADER_DNT: "dnt"; - readonly HTTP2_HEADER_EXPECT: "expect"; - readonly HTTP2_HEADER_EXPIRES: "expires"; - readonly HTTP2_HEADER_FROM: "from"; - readonly HTTP2_HEADER_IF_MATCH: "if-match"; - readonly HTTP2_HEADER_IF_UNMODIFIED_SINCE: "if-unmodified-since"; - readonly HTTP2_HEADER_MAX_FORWARDS: "max-forwards"; - readonly HTTP2_HEADER_PREFER: "prefer"; - readonly HTTP2_HEADER_PROXY_AUTHENTICATE: "proxy-authenticate"; - readonly HTTP2_HEADER_PROXY_AUTHORIZATION: "proxy-authorization"; - readonly HTTP2_HEADER_REFRESH: "refresh"; - readonly HTTP2_HEADER_RETRY_AFTER: "retry-after"; - readonly HTTP2_HEADER_TRAILER: "trailer"; - readonly HTTP2_HEADER_TK: "tk"; - readonly HTTP2_HEADER_VIA: "via"; - readonly HTTP2_HEADER_WARNING: "warning"; - readonly HTTP2_HEADER_WWW_AUTHENTICATE: "www-authenticate"; - readonly HTTP2_HEADER_HTTP2_SETTINGS: "http2-settings"; - readonly HTTP2_METHOD_ACL: "ACL"; - readonly HTTP2_METHOD_BASELINE_CONTROL: "BASELINE-CONTROL"; - readonly HTTP2_METHOD_BIND: "BIND"; - readonly HTTP2_METHOD_CHECKIN: "CHECKIN"; - readonly HTTP2_METHOD_CHECKOUT: "CHECKOUT"; - readonly HTTP2_METHOD_CONNECT: "CONNECT"; - readonly HTTP2_METHOD_COPY: "COPY"; - readonly HTTP2_METHOD_DELETE: "DELETE"; - readonly HTTP2_METHOD_GET: "GET"; - readonly HTTP2_METHOD_HEAD: "HEAD"; - readonly HTTP2_METHOD_LABEL: "LABEL"; - readonly HTTP2_METHOD_LINK: "LINK"; - readonly HTTP2_METHOD_LOCK: "LOCK"; - readonly HTTP2_METHOD_MERGE: "MERGE"; - readonly HTTP2_METHOD_MKACTIVITY: "MKACTIVITY"; - readonly HTTP2_METHOD_MKCALENDAR: "MKCALENDAR"; - readonly HTTP2_METHOD_MKCOL: "MKCOL"; - readonly HTTP2_METHOD_MKREDIRECTREF: "MKREDIRECTREF"; - readonly HTTP2_METHOD_MKWORKSPACE: "MKWORKSPACE"; - readonly HTTP2_METHOD_MOVE: "MOVE"; - readonly HTTP2_METHOD_OPTIONS: "OPTIONS"; - readonly HTTP2_METHOD_ORDERPATCH: "ORDERPATCH"; - readonly HTTP2_METHOD_PATCH: "PATCH"; - readonly HTTP2_METHOD_POST: "POST"; - readonly HTTP2_METHOD_PRI: "PRI"; - readonly HTTP2_METHOD_PROPFIND: "PROPFIND"; - readonly HTTP2_METHOD_PROPPATCH: "PROPPATCH"; - readonly HTTP2_METHOD_PUT: "PUT"; - readonly HTTP2_METHOD_REBIND: "REBIND"; - readonly HTTP2_METHOD_REPORT: "REPORT"; - readonly HTTP2_METHOD_SEARCH: "SEARCH"; - readonly HTTP2_METHOD_TRACE: "TRACE"; - readonly HTTP2_METHOD_UNBIND: "UNBIND"; - readonly HTTP2_METHOD_UNCHECKOUT: "UNCHECKOUT"; - readonly HTTP2_METHOD_UNLINK: "UNLINK"; - readonly HTTP2_METHOD_UNLOCK: "UNLOCK"; - readonly HTTP2_METHOD_UPDATE: "UPDATE"; - readonly HTTP2_METHOD_UPDATEREDIRECTREF: "UPDATEREDIRECTREF"; - readonly HTTP2_METHOD_VERSION_CONTROL: "VERSION-CONTROL"; - readonly HTTP_STATUS_CONTINUE: 100; - readonly HTTP_STATUS_SWITCHING_PROTOCOLS: 101; - readonly HTTP_STATUS_PROCESSING: 102; - readonly HTTP_STATUS_EARLY_HINTS: 103; - readonly HTTP_STATUS_OK: 200; - readonly HTTP_STATUS_CREATED: 201; - readonly HTTP_STATUS_ACCEPTED: 202; - readonly HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: 203; - readonly HTTP_STATUS_NO_CONTENT: 204; - readonly HTTP_STATUS_RESET_CONTENT: 205; - readonly HTTP_STATUS_PARTIAL_CONTENT: 206; - readonly HTTP_STATUS_MULTI_STATUS: 207; - readonly HTTP_STATUS_ALREADY_REPORTED: 208; - readonly HTTP_STATUS_IM_USED: 226; - readonly HTTP_STATUS_MULTIPLE_CHOICES: 300; - readonly HTTP_STATUS_MOVED_PERMANENTLY: 301; - readonly HTTP_STATUS_FOUND: 302; - readonly HTTP_STATUS_SEE_OTHER: 303; - readonly HTTP_STATUS_NOT_MODIFIED: 304; - readonly HTTP_STATUS_USE_PROXY: 305; - readonly HTTP_STATUS_TEMPORARY_REDIRECT: 307; - readonly HTTP_STATUS_PERMANENT_REDIRECT: 308; - readonly HTTP_STATUS_BAD_REQUEST: 400; - readonly HTTP_STATUS_UNAUTHORIZED: 401; - readonly HTTP_STATUS_PAYMENT_REQUIRED: 402; - readonly HTTP_STATUS_FORBIDDEN: 403; - readonly HTTP_STATUS_NOT_FOUND: 404; - readonly HTTP_STATUS_METHOD_NOT_ALLOWED: 405; - readonly HTTP_STATUS_NOT_ACCEPTABLE: 406; - readonly HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: 407; - readonly HTTP_STATUS_REQUEST_TIMEOUT: 408; - readonly HTTP_STATUS_CONFLICT: 409; - readonly HTTP_STATUS_GONE: 410; - readonly HTTP_STATUS_LENGTH_REQUIRED: 411; - readonly HTTP_STATUS_PRECONDITION_FAILED: 412; - readonly HTTP_STATUS_PAYLOAD_TOO_LARGE: 413; - readonly HTTP_STATUS_URI_TOO_LONG: 414; - readonly HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415; - readonly HTTP_STATUS_RANGE_NOT_SATISFIABLE: 416; - readonly HTTP_STATUS_EXPECTATION_FAILED: 417; - readonly HTTP_STATUS_TEAPOT: 418; - readonly HTTP_STATUS_MISDIRECTED_REQUEST: 421; - readonly HTTP_STATUS_UNPROCESSABLE_ENTITY: 422; - readonly HTTP_STATUS_LOCKED: 423; - readonly HTTP_STATUS_FAILED_DEPENDENCY: 424; - readonly HTTP_STATUS_TOO_EARLY: 425; - readonly HTTP_STATUS_UPGRADE_REQUIRED: 426; - readonly HTTP_STATUS_PRECONDITION_REQUIRED: 428; - readonly HTTP_STATUS_TOO_MANY_REQUESTS: 429; - readonly HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: 431; - readonly HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: 451; - readonly HTTP_STATUS_INTERNAL_SERVER_ERROR: 500; - readonly HTTP_STATUS_NOT_IMPLEMENTED: 501; - readonly HTTP_STATUS_BAD_GATEWAY: 502; - readonly HTTP_STATUS_SERVICE_UNAVAILABLE: 503; - readonly HTTP_STATUS_GATEWAY_TIMEOUT: 504; - readonly HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: 505; - readonly HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: 506; - readonly HTTP_STATUS_INSUFFICIENT_STORAGE: 507; - readonly HTTP_STATUS_LOOP_DETECTED: 508; - readonly HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: 509; - readonly HTTP_STATUS_NOT_EXTENDED: 510; - readonly HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: 511; - } - export const constants: Http2Constants; - /* The eager handler is the first COMPAT 'request' listener — Node's - * route on either flavor (the allowHTTP1 server's HTTP/1.1 handles, - * the ALPN=h2 server's compat handles over streams). */ - export function createSecureServer( - options: SecureServerOptions, - onRequestHandler?: ( - req: import("http").IncomingMessage, - res: import("http").ServerResponse, - ) => void, - ): Http2SecureServer; - - /* ── the REAL h2c surface (scr_http2.c: frame codec + HPACK over the - * net loop) — createServer/connect and the session/stream handles the - * Node suite's http2 family exercises. Headers cross as the canonical - * header record (the IncomingHttpHeaders index-signature shape); the - * response :status reads back as a number. Members declared here - * without a lowering fence by name at their use sites. */ - - /** The http2 module's own header shapes: pure index-signature records - * (the HEADER-FAMILY canonicalization — string[] arm included). */ - export interface IncomingHttpHeaders { - [name: string]: number | string | string[] | undefined; - } - export interface OutgoingHttpHeaders { - [name: string]: number | string | string[] | undefined; - } - - export interface Http2Session { - close(callback?: () => void): void; - destroy(): void; - readonly closed: boolean; - readonly destroyed: boolean; - readonly encrypted: boolean; - readonly type: number; - readonly alpnProtocol: string; - readonly socket: import("net").Socket; - readonly pendingSettingsAck: boolean; - ref(): void; - unref(): void; - setTimeout(msecs: number, callback?: () => void): void; - ping(callback: (err: Error | null, duration: number, payload: Uint8Array) => void): boolean; - /* The settings surface rides the checked-dynamic machinery (records - * cross as dyn values — the suite's mustCall listeners are dyn). */ - settings(settings?: any, callback?: any): void; - readonly localSettings: any; - readonly remoteSettings: any; - goaway(code?: number, lastStreamID?: number, opaqueData?: Uint8Array): void; - on(event: "close" | "timeout", listener: () => void): void; - on(event: "error", listener: (err: Error) => void): void; - on( - event: "connect", - listener: (session: Http2Session, socket: import("net").Socket) => void, - ): void; - on( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - on( - event: "goaway", - listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void, - ): void; - on(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void; - on(event: "frameError", listener: (type: number, code: number, id: number) => void): void; - on(event: "ping", listener: (payload: Uint8Array) => void): void; - once(event: "close" | "timeout", listener: () => void): void; - once(event: "error", listener: (err: Error) => void): void; - once( - event: "connect", - listener: (session: Http2Session, socket: import("net").Socket) => void, - ): void; - once( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - once( - event: "goaway", - listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void, - ): void; - once(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void; - once(event: "frameError", listener: (type: number, code: number, id: number) => void): void; - once(event: "ping", listener: (payload: Uint8Array) => void): void; - addListener(event: "close" | "timeout", listener: () => void): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener( - event: "connect", - listener: (session: Http2Session, socket: import("net").Socket) => void, - ): void; - addListener( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - addListener( - event: "goaway", - listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void, - ): void; - addListener(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void; - addListener( - event: "frameError", - listener: (type: number, code: number, id: number) => void, - ): void; - addListener(event: "ping", listener: (payload: Uint8Array) => void): void; - } - - export interface ClientHttp2Session extends Http2Session { - request( - headers?: OutgoingHttpHeaders, - options?: { - endStream?: boolean; - exclusive?: boolean; - parent?: number; - weight?: number; - waitForTrailers?: boolean; - }, - ): ClientHttp2Stream; - } - - export interface ServerHttp2Session extends Http2Session { - altsvc(alt: string, originOrStream: number | string): void; - origin(...origins: string[]): void; - } - - /** The shared Http2Stream core (both roles). 'data' chunks are Buffers - * (strings once setEncoding('utf8') is in force — the IncomingMessage - * chunk:any stance keeps both working). */ - interface Http2StreamCore { - readonly id: number | undefined; - readonly rstCode: number; - readonly closed: boolean; - readonly destroyed: boolean; - readonly pending: boolean; - readonly aborted: boolean; - readonly session: Http2Session; - readonly sentHeaders: OutgoingHttpHeaders; - readonly state: Record; - write(chunk: string | Uint8Array, callback?: (err?: Error | null) => void): boolean; - end(data?: string | Uint8Array, callback?: () => void): void; - end(callback: () => void): void; - close(code?: number, callback?: () => void): void; - destroy(error?: Error): void; - setEncoding(encoding: string): this; - resume(): void; - pause(): void; - setTimeout(msecs: number, callback?: () => void): void; - priority(options: Record): void; - sendTrailers(headers: OutgoingHttpHeaders): void; - } - - export interface ServerHttp2Stream extends Http2StreamCore { - on(event: "data", listener: (chunk: any) => void): void; - on( - event: - | "end" - | "close" - | "aborted" - | "ready" - | "timeout" - | "drain" - | "finish" - | "wantTrailers", - listener: () => void, - ): void; - on(event: "error", listener: (err: Error) => void): void; - on(event: "frameError", listener: (type: number, code: number, id: number) => void): void; - on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; - once(event: "data", listener: (chunk: any) => void): void; - once( - event: - | "end" - | "close" - | "aborted" - | "ready" - | "timeout" - | "drain" - | "finish" - | "wantTrailers", - listener: () => void, - ): void; - once(event: "error", listener: (err: Error) => void): void; - once(event: "frameError", listener: (type: number, code: number, id: number) => void): void; - once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; - addListener(event: "data", listener: (chunk: any) => void): void; - addListener( - event: - | "end" - | "close" - | "aborted" - | "ready" - | "timeout" - | "drain" - | "finish" - | "wantTrailers", - listener: () => void, - ): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener( - event: "frameError", - listener: (type: number, code: number, id: number) => void, - ): void; - addListener( - event: "trailers", - listener: (trailers: IncomingHttpHeaders, flags: number) => void, - ): void; - respond( - headers?: OutgoingHttpHeaders, - options?: { endStream?: boolean; waitForTrailers?: boolean }, - ): void; - respondWithFile( - path: string, - headers?: OutgoingHttpHeaders, - options?: Record, - ): void; - respondWithFD( - fd: number, - headers?: OutgoingHttpHeaders, - options?: Record, - ): void; - pushStream( - headers: OutgoingHttpHeaders, - callback: ( - err: Error | null, - pushStream: ServerHttp2Stream, - headers: OutgoingHttpHeaders, - ) => void, - ): void; - readonly headersSent: boolean; - readonly pushAllowed: boolean; - additionalHeaders(headers: OutgoingHttpHeaders): void; - } - - export interface ClientHttp2Stream extends Http2StreamCore { - on(event: "response", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; - on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; - on(event: "headers", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; - on(event: "data", listener: (chunk: any) => void): void; - on( - event: - | "end" - | "close" - | "aborted" - | "ready" - | "timeout" - | "drain" - | "finish" - | "wantTrailers", - listener: () => void, - ): void; - on(event: "error", listener: (err: Error) => void): void; - on(event: "frameError", listener: (type: number, code: number, id: number) => void): void; - on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; - once(event: "response", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; - once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; - once(event: "headers", listener: (headers: IncomingHttpHeaders, flags: number) => void): void; - once(event: "data", listener: (chunk: any) => void): void; - once( - event: - | "end" - | "close" - | "aborted" - | "ready" - | "timeout" - | "drain" - | "finish" - | "wantTrailers", - listener: () => void, - ): void; - once(event: "error", listener: (err: Error) => void): void; - once(event: "frameError", listener: (type: number, code: number, id: number) => void): void; - once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void; - addListener( - event: "response", - listener: (headers: IncomingHttpHeaders, flags: number) => void, - ): void; - addListener( - event: "push", - listener: (headers: IncomingHttpHeaders, flags: number) => void, - ): void; - addListener( - event: "headers", - listener: (headers: IncomingHttpHeaders, flags: number) => void, - ): void; - addListener(event: "data", listener: (chunk: any) => void): void; - addListener( - event: - | "end" - | "close" - | "aborted" - | "ready" - | "timeout" - | "drain" - | "finish" - | "wantTrailers", - listener: () => void, - ): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener( - event: "frameError", - listener: (type: number, code: number, id: number) => void, - ): void; - addListener( - event: "trailers", - listener: (trailers: IncomingHttpHeaders, flags: number) => void, - ): void; - } - - export interface Http2Server { - listen(port?: number, callback?: () => void): void; - listen(port: number, host: string, callback?: () => void): void; - close(callback?: () => void): void; - address(): import("node:dgram").AddressInfo; - setTimeout(msecs?: number, callback?: () => void): void; - ref(): void; - unref(): void; - on( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - on(event: "session", listener: (session: ServerHttp2Session) => void): void; - on( - event: "request", - listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): void; - on(event: "error", listener: (err: Error) => void): void; - on(event: "close" | "listening" | "timeout", listener: () => void): void; - on(event: "connection", listener: (socket: import("net").Socket) => void): void; - on(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; - once( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - once(event: "session", listener: (session: ServerHttp2Session) => void): void; - once( - event: "request", - listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): void; - once(event: "error", listener: (err: Error) => void): void; - once(event: "close" | "listening" | "timeout", listener: () => void): void; - once(event: "connection", listener: (socket: import("net").Socket) => void): void; - once(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void; - addListener( - event: "stream", - listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void, - ): void; - addListener(event: "session", listener: (session: ServerHttp2Session) => void): void; - addListener( - event: "request", - listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): void; - addListener(event: "error", listener: (err: Error) => void): void; - addListener(event: "close" | "listening" | "timeout", listener: () => void): void; - addListener(event: "connection", listener: (socket: import("net").Socket) => void): void; - addListener( - event: "sessionError", - listener: (err: Error, session: ServerHttp2Session) => void, - ): void; - } - - export interface ServerOptions { - [option: string]: unknown; - } - - export function createServer( - onRequestHandler?: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): Http2Server; - export function createServer( - options: ServerOptions, - onRequestHandler?: (req: Http2ServerRequest, res: Http2ServerResponse) => void, - ): Http2Server; - - export function connect( - authority: string, - listener?: (session: ClientHttp2Session, socket: import("net").Socket) => void, - ): ClientHttp2Session; - export function connect( - authority: string, - options: Record, - listener?: (session: ClientHttp2Session, socket: import("net").Socket) => void, - ): ClientHttp2Session; - - export function getDefaultSettings(): any; - export function getPackedSettings(settings: Record): Uint8Array; - export const sensitiveHeaders: unique symbol; -} -declare module "node:http2" { - export * from "http2"; -} - -/* node:dgram — UDP sockets over the event loop (scr_dgram.c, linked only - * into using binaries). createSocket takes "udp4" or the - * { type: "udp4", reuseAddr? } literal; bind/connect bind NOW and defer - * 'listening'/'connect' to the next loop turn; send takes one string or - * Buffer datagram with an explicit port + address (the connected-send - * and callback forms have no lowering); address() returns the real - * {address, family, port} record and THROWS "Not running" before bind, - * like Node. The socket options throw Node's errors (EBADF before bind); - * add/dropMembership before bind is refused at run time (SC2020). 'error' - * with no listener exits 1 (the unhandled EventEmitter 'error' behavior). */ -declare module "dgram" { - export interface AddressInfo { - address: string; - family: string; - port: number; - } - export interface RemoteInfo { - address: string; - family: string; - port: number; - size: number; - } - export interface Socket { - bind(port: number, address?: string, callback?: () => void): void; - connect(port: number, address?: string, callback?: () => void): void; - send(msg: string | Uint8Array, port: number, address: string): void; - address(): AddressInfo; - close(callback?: () => void): void; - disconnect(): void; - unref(): void; - ref(): void; - setBroadcast(flag: boolean): void; - setTTL(ttl: number): number; - setMulticastTTL(ttl: number): number; - setMulticastLoopback(flag: boolean): boolean; - setMulticastInterface(multicastInterface: string): void; - addMembership(multicastAddress: string, multicastInterface?: string): void; - dropMembership(multicastAddress: string, multicastInterface?: string): void; - getRecvBufferSize(): number; - getSendBufferSize(): number; - setRecvBufferSize(size: number): void; - setSendBufferSize(size: number): void; - getSendQueueSize(): number; - getSendQueueCount(): number; - on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): void; - on(event: "listening" | "close" | "connect", listener: () => void): void; - on(event: "error", listener: (err: Error) => void): void; - once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): void; - once(event: "listening" | "close" | "connect", listener: () => void): void; - once(event: "error", listener: (err: Error) => void): void; - } - export function createSocket(type: "udp4"): Socket; - export function createSocket(options: { type: "udp4"; reuseAddr?: boolean }): Socket; -} -declare module "node:dgram" { - export * from "dgram"; -} - -/* node:dns — the lookup slice (scr_dgram.c hosts it; getaddrinfo runs AT - * CALL TIME and the callback defers to the next loop turn — SEMANTICS.md - * documents the blocking divergence). Only the { family: 4 } options - * form lowers; failures deliver Node's error shape ("getaddrinfo - * ENOTFOUND ") as the callback's Error argument, with "" for - * the address where Node passes undefined. */ -declare module "dns" { - export interface LookupAddress { - address: string; - family: number; - } - export interface LookupOptions { - family?: number | "IPv4" | "IPv6"; - hints?: number; - all?: boolean; - order?: "ipv4first" | "ipv6first" | "verbatim"; - verbatim?: boolean; - } - export interface LookupOneOptions extends LookupOptions { - all?: false; - } - export interface LookupAllOptions extends LookupOptions { - all: true; - } - /* The callback comes with the other lookup deliveries (literal - * addresses on the next tick); the options follow lib/dns.js. */ - export function lookup( - hostname: string, - callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, - ): void; - export function lookup( - hostname: string, - family: number, - callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, - ): void; - export function lookup( - hostname: string, - options: LookupOneOptions, - callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, - ): void; - export function lookup( - hostname: string, - options: LookupAllOptions, - callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void, - ): void; - /* getnameinfo with NI_NAMEREQD: the host's name and the port's service - * name (the number when it has none). */ - export function lookupService( - address: string, - port: number, - callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void, - ): void; - /* The nameservers /etc/resolv.conf lists. */ - export function getServers(): string[]; - export function getDefaultResultOrder(): "ipv4first" | "ipv6first" | "verbatim"; - export function setDefaultResultOrder(order: "ipv4first" | "ipv6first" | "verbatim"): void; - /* The promise forms (node:dns/promises). */ - export const promises: typeof import("dns/promises"); -} -declare module "node:dns" { - export * from "dns"; -} -/* node:dns/promises — lookup and lookupService as promises over the same - * resolution as the callback forms: argument errors throw synchronously, - * failures reject with the callbacks' errors. */ -declare module "dns/promises" { - import type { LookupAddress, LookupAllOptions, LookupOneOptions, LookupOptions } from "dns"; - export function lookup(hostname: string, family: number): Promise; - export function lookup(hostname: string, options: LookupOneOptions): Promise; - export function lookup(hostname: string, options: LookupAllOptions): Promise; - export function lookup( - hostname: string, - options: LookupOptions, - ): Promise; - export function lookup(hostname: string): Promise; - export function lookupService( - address: string, - port: number, - ): Promise<{ hostname: string; service: string }>; - export function getServers(): string[]; - export function getDefaultResultOrder(): "ipv4first" | "ipv6first" | "verbatim"; - export function setDefaultResultOrder(order: "ipv4first" | "ipv6first" | "verbatim"): void; -} -declare module "node:dns/promises" { - export * from "dns/promises"; -} - -/* node:v8 — importable for the packages that require it at top level. - * getHeapStatistics answers allocator-derived figures in Node's shape - * (approximate: the runtime heap's total and used bytes, the machine's - * memory as the limit; V8-only figures are 0). The other members observe - * V8 itself and fence at their use with the by-design reason; they are - * declared so programs that type-check under their own tsc reach that - * fence. */ -declare module "v8" { - type DoesZapCodeSpaceFlag = 0 | 1; - export interface HeapInfo { - total_heap_size: number; - total_heap_size_executable: number; - total_physical_size: number; - total_available_size: number; - used_heap_size: number; - heap_size_limit: number; - malloced_memory: number; - peak_malloced_memory: number; - does_zap_garbage: DoesZapCodeSpaceFlag; - number_of_native_contexts: number; - number_of_detached_contexts: number; - total_global_handles_size: number; - used_global_handles_size: number; - external_memory: number; - } - export function getHeapStatistics(): HeapInfo; - export function cachedDataVersionTag(): number; - export function getHeapSpaceStatistics(): unknown[]; - export function getHeapCodeStatistics(): unknown; - export function getHeapSnapshot(options?: unknown): unknown; - export function writeHeapSnapshot(fileName?: string, options?: unknown): string; - export function setFlagsFromString(flags: string): void; - export function setHeapSnapshotNearHeapLimit(limit: number): void; - export function serialize(value: unknown): Buffer; - export function deserialize(buffer: Uint8Array): unknown; - export function takeCoverage(): void; - export function stopCoverage(): void; - export function isStringOneByteRepresentation(content: string): boolean; -} -declare module "node:v8" { - export * from "v8"; -} - -/* node:worker_threads — native workers use statically compiled entry points. - * Lowering and runtime diagnostics define the supported options and methods. */ -declare module "worker_threads" { - export const isMainThread: boolean; - export const isInternalThread: boolean; - export const threadId: number; - export interface ResourceLimits { - maxYoungGenerationSizeMb?: number; - maxOldGenerationSizeMb?: number; - codeRangeSizeMb?: number; - stackSizeMb?: number; - } - /* {} in the main thread */ - export const resourceLimits: ResourceLimits; - /* the Worker's name option, trimmed ("WorkerThread" by default); "" in the main thread */ - export const threadName: string | null; - export interface WorkerOptions { - workerData?: unknown; - transferList?: readonly unknown[]; - argv?: readonly unknown[]; - name?: string; - resourceLimits?: ResourceLimits; - stdout?: boolean; - stderr?: boolean; - stdin?: boolean; - [option: string]: unknown; - } - export class Worker { - constructor(filename: string | URL, options?: WorkerOptions); - readonly threadId: number; - readonly resourceLimits?: ResourceLimits; - readonly threadName: string | null; - /* with the stdout/stderr options: the worker's writes to those streams */ - readonly stdout: import("stream").Readable; - readonly stderr: import("stream").Readable; - /* with the stdin option: what the worker reads from process.stdin */ - readonly stdin: import("stream").Writable | null; - /* terminate(), resolving with undefined once the worker exited */ - [Symbol.asyncDispose](): Promise; - on(event: "online", listener: () => void): this; - on(event: "message", listener: (value: any) => void): this; - on(event: "error", listener: (error: any) => void): this; - on(event: "exit", listener: (code: number) => void): this; - on(event: string, listener: (...args: any[]) => void): this; - once(event: string, listener: (...args: any[]) => void): this; - off(event: string, listener: (...args: any[]) => void): this; - addListener(event: string, listener: (...args: any[]) => void): this; - removeListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - postMessage(value: unknown, transferList?: readonly unknown[]): void; - ref(): void; - unref(): void; - terminate(): Promise; - removeAllListeners(event?: string): this; - listenerCount(event: string, listener?: (...args: any[]) => void): number; - } - export class MessagePort { - on(event: "message", listener: (value: any) => void): this; - on(event: "close", listener: () => void): this; - on(event: string, listener: (...args: any[]) => void): this; - once(event: string, listener: (...args: any[]) => void): this; - off(event: string, listener: (...args: any[]) => void): this; - addListener(event: string, listener: (...args: any[]) => void): this; - removeListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - postMessage(value: unknown, transferList?: readonly unknown[]): void; - start(): void; - close(callback?: () => void): void; - ref(): void; - unref(): void; - hasRef(): boolean; - removeAllListeners(event?: string): this; - listenerCount(event: string, listener?: (...args: any[]) => void): number; - } - /* Two entangled ports; a port moves to another thread through a - * postMessage or workerData transferList. */ - export class MessageChannel { - readonly port1: MessagePort; - readonly port2: MessagePort; - } - export function receiveMessageOnPort(port: MessagePort): { message: any } | undefined; - /* This thread's environment data; each new Worker starts from a clone. */ - export function setEnvironmentData(key: any, value?: any): void; - export function getEnvironmentData(key: any): any; - /* A marked object cannot be listed in a transfer list. */ - export function markAsUntransferable(object: any): void; - /* structuredClone and postMessage throw DataCloneError for a marked - * object, error or class instance */ - export function markAsUncloneable(object: any): void; - export function isMarkedAsUntransferable(object: any): boolean; - /* Delivers each message to every other open channel with the name, in - * any thread, as a 'message' MessageEvent. */ - export class BroadcastChannel extends EventTarget { - constructor(name: string); - readonly name: string; - onmessage: ((event: MessageEvent) => void) | null; - onmessageerror: ((event: MessageEvent) => void) | null; - postMessage(message: unknown): void; - close(): void; - ref(): this; - unref(): this; - } - export const parentPort: MessagePort | null; - export const workerData: any; -} -declare module "node:worker_threads" { - export * from "worker_threads"; -} - -/* node:buffer — the module spelling of the Buffer/atob/btoa globals. - * Buffer re-exports the GLOBAL declaration, so an imported binding - * resolves to the same symbol the lowerings already answer for (and - * third-party .d.ts files that `import { Buffer } from "node:buffer"` — - * file-entry-cache in a typed-JS source graph — typecheck). */ -declare module "buffer" { - export function isAscii(input: ArrayBuffer | ArrayBufferView): boolean; - export function isUtf8(input: ArrayBuffer | ArrayBufferView): boolean; - export function transcode(source: Uint8Array, fromEncoding: string, toEncoding: string): Buffer; - export function atob(data: string): string; - export function btoa(data: string): string; - export const kMaxLength: number; - export const kStringMaxLength: number; - export const Buffer: BufferConstructor; - export type Blob = globalThis.Blob; - export type File = globalThis.File; - export const Blob: typeof globalThis.Blob; - export const File: typeof globalThis.File; -} -declare module "node:buffer" { - export * from "buffer"; -} - -/* node:cluster — the primary-probe slice. A compiled binary never runs - * as a cluster worker (cluster forks the node binary itself — the - * mechanism is na for compiled programs), so isPrimary lowers to `true` - * and isWorker to `false`; everything else is undeclared. */ -declare module "cluster" { - const cluster: { - readonly isPrimary: boolean; - readonly isMaster: boolean; - readonly isWorker: boolean; - }; - export = cluster; -} -declare module "node:cluster" { - import cluster = require("cluster"); - export = cluster; -} - /* node:tty — the fd probe (the same isatty(3) behind process.*.isTTY) * and the supported structural view of a process output stream. */ declare module "tty" { @@ -7418,808 +1663,6 @@ declare module "node:tty" { export * from "tty"; } -/* node:async_hooks — declared surface without lowering: async-hook - * instrumentation is guarded behind env flags in harness code; a reached - * use fences at its site. */ -declare module "async_hooks" { - /* AsyncLocalStorage: fiber-carried context snapshots — run/getStore/ - * exit/enterWith/disable lower onto the runtime's active-slot machinery - * (als.* libCalls); values cross as dyn values. bind and snapshot bind - * functions to the active context; the options carry the store's - * default value and name. */ - export interface AsyncLocalStorageOptions { - defaultValue?: any; - name?: string | undefined; - } - export class AsyncLocalStorage { - constructor(options?: AsyncLocalStorageOptions); - static bind any>(fn: Func): Func; - static snapshot(): (fn: (...args: TArgs) => R, ...args: TArgs) => R; - readonly name: string; - run(store: T, callback: (...args: any[]) => R, ...args: any[]): R; - exit(callback: (...args: any[]) => R, ...args: any[]): R; - getStore(): T | undefined; - enterWith(store: T): void; - disable(): void; - } - export interface AsyncHook { - enable(): AsyncHook; - disable(): AsyncHook; - } - export function createHook(callbacks: { - init?: (asyncId: number, type: string, triggerAsyncId: number, resource: unknown) => void; - before?: (asyncId: number) => void; - after?: (asyncId: number) => void; - destroy?: (asyncId: number) => void; - }): AsyncHook; - export function executionAsyncId(): number; - export function triggerAsyncId(): number; -} -declare module "node:async_hooks" { - export * from "async_hooks"; -} -/* node:events — the EventEmitter class (the module object IS the class, - * like Node's `module.exports = EventEmitter`). Listener/emit signatures - * mirror @types/node's untyped `...args: any[]` surface; the compiler's - * lowering unifies each event name's argument tuple program-wide and - * checks annotated listener parameters against it (unannotated non-empty - * parameter lists have no static types and fence at the registration). */ -declare module "events" { - class EventEmitter { - constructor(); - static defaultMaxListeners: number; - /* Listeners registered under this symbol observe 'error' emits first - * (an emit with no 'error' listener still throws). */ - static readonly errorMonitor: unique symbol; - static addAbortListener(signal: AbortSignal, listener: (event: Event) => void): Disposable; - on(eventName: string | symbol, listener: (...args: any[]) => void): this; - addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; - once(eventName: string | symbol, listener: (...args: any[]) => void): this; - prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; - prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; - off(eventName: string | symbol, listener: (...args: any[]) => void): this; - removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; - removeAllListeners(eventName?: string | symbol): this; - emit(eventName: string | symbol, ...args: any[]): boolean; - listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number; - /* Declared as zero-parameter closures so the RESULT is statically - * consumable (.length, indexing, identity): the lowering only admits - * these calls for events whose argument tuple is empty — a listener - * pulled from the array is then safely callable too. Events with - * arguments fence (their element type would lie). */ - listeners(eventName: string): Array<() => void>; - rawListeners(eventName: string): Array<() => void>; - eventNames(): string[]; - setMaxListeners(n: number): this; - getMaxListeners(): number; - } - import internal = require("node:events"); - namespace EventEmitter { - // The class under its own name, so `import { EventEmitter }` resolves - // (the @types/node namespace-alias pattern). - export { internal as EventEmitter }; - // The event's arguments, as checked-dynamic values. - export function once( - emitter: EventEmitter | NodeJS.ReadableStream | NodeJS.WritableStream, - eventName: string, - options?: { signal?: AbortSignal }, - ): Promise; - /* The emitter's own listenerCount/getMaxListeners/setMaxListeners/ - * listeners, over EventEmitter instances. */ - export function listenerCount(emitter: EventEmitter, eventName: string | symbol): number; - export function getMaxListeners(emitter: EventEmitter): number; - export function setMaxListeners(n?: number, ...eventTargets: EventEmitter[]): void; - export function getEventListeners(emitter: EventEmitter, name: string): Array<() => void>; - } - export = EventEmitter; -} -declare module "node:events" { - import events = require("events"); - export = events; -} - -/* node:stream — the static stream classes (runtime-provided, the - * EventEmitter-hierarchy precedent). Phase 1 is the OPTIONS-OBJECT - * constructor surface: `new Readable({ read() {} })`, `new Writable({ - * write(chunk, enc, cb) {} })`, Duplex/Transform/PassThrough, push/read, - * flowing vs paused, write/end backpressure + 'drain', pipe/unpipe, and - * destroy — with Node's event orderings. Chunks are BYTES (Buffer), with - * strings converted at push/write like Node, and any value on an - * object-mode side (objectMode, readableObjectMode, writableObjectMode — - * the object-mode constructor overloads come first). The runtime-fired - * events carry per-class FORCED argument tuples ('data' is one chunk, - * 'error' one Error, 'pipe'/'unpipe' one Readable, the rest empty) — the - * overloads below hand tsc the same contract so unannotated listener - * parameters contextually type in .js sources. */ -declare module "stream" { - import { EventEmitter } from "events"; - - interface ReadableOptions { - highWaterMark?: number; - encoding?: string; - objectMode?: boolean; - read?(this: Readable, size: number): void; - destroy?(this: Readable, error: Error | null, callback: (error?: Error | null) => void): void; - construct?(this: Readable, callback: (error?: Error | null) => void): void; - autoDestroy?: boolean; - emitClose?: boolean; - captureRejections?: boolean; - defaultEncoding?: string; - signal?: AbortSignal; - } - interface WritableOptions { - highWaterMark?: number; - decodeStrings?: boolean; - defaultEncoding?: string; - objectMode?: boolean; - write?( - this: Writable, - chunk: Buffer, - encoding: string, - callback: (error?: Error | null) => void, - ): void; - writev?( - this: Writable, - chunks: Array<{ chunk: any; encoding: string }>, - callback: (error?: Error | null) => void, - ): void; - final?(this: Writable, callback: (error?: Error | null) => void): void; - destroy?(this: Writable, error: Error | null, callback: (error?: Error | null) => void): void; - construct?(this: Writable, callback: (error?: Error | null) => void): void; - autoDestroy?: boolean; - emitClose?: boolean; - captureRejections?: boolean; - signal?: AbortSignal; - } - interface DuplexOptions { - highWaterMark?: number; - readableHighWaterMark?: number; - writableHighWaterMark?: number; - encoding?: string; - decodeStrings?: boolean; - objectMode?: boolean; - readableObjectMode?: boolean; - writableObjectMode?: boolean; - allowHalfOpen?: boolean; - read?(this: Duplex, size: number): void; - write?( - this: Duplex, - chunk: Buffer, - encoding: string, - callback: (error?: Error | null) => void, - ): void; - final?(this: Duplex, callback: (error?: Error | null) => void): void; - destroy?(this: Duplex, error: Error | null, callback: (error?: Error | null) => void): void; - construct?(this: Duplex, callback: (error?: Error | null) => void): void; - autoDestroy?: boolean; - emitClose?: boolean; - captureRejections?: boolean; - readable?: boolean; - writable?: boolean; - defaultEncoding?: string; - writev?( - this: Duplex, - chunks: Array<{ chunk: any; encoding: string }>, - callback: (error?: Error | null) => void, - ): void; - signal?: AbortSignal; - } - interface TransformOptions { - highWaterMark?: number; - readableHighWaterMark?: number; - writableHighWaterMark?: number; - encoding?: string; - decodeStrings?: boolean; - objectMode?: boolean; - readableObjectMode?: boolean; - writableObjectMode?: boolean; - allowHalfOpen?: boolean; - transform?( - this: Transform, - chunk: Buffer, - encoding: string, - callback: (error?: Error | null, data?: Buffer | string) => void, - ): void; - flush?(this: Transform, callback: (error?: Error | null, data?: Buffer | string) => void): void; - destroy?(this: Transform, error: Error | null, callback: (error?: Error | null) => void): void; - construct?(this: Transform, callback: (error?: Error | null) => void): void; - read?(this: Transform, size: number): void; - write?( - this: Transform, - chunk: Buffer, - encoding: string, - callback: (error?: Error | null) => void, - ): void; - final?(this: Transform, callback: (error?: Error | null) => void): void; - writev?(this: Transform, chunks: unknown[], callback: (error?: Error | null) => void): void; - autoDestroy?: boolean; - emitClose?: boolean; - captureRejections?: boolean; - readable?: boolean; - writable?: boolean; - defaultEncoding?: string; - signal?: AbortSignal; - } - - /* Object-mode options (objectMode: true, or a Duplex's or Transform's - * readableObjectMode / writableObjectMode): chunks and completion data - * are any values, and an object-mode write's encoding argument reaches - * write/transform as passed (undefined when absent, null when a - * callback took its place). The constructors take these before the - * byte-mode options, so a byte-mode stream's callbacks keep Buffer - * chunks. */ - type ObjectModeEncoding = string | null | undefined; - type ObjectModeFlag = - | { objectMode: true } - | { readableObjectMode: true } - | { writableObjectMode: true }; - interface ObjectWritableOptions extends Omit { - objectMode: true; - write?( - this: Writable, - chunk: any, - encoding: ObjectModeEncoding, - callback: (error?: Error | null) => void, - ): void; - } - type ObjectDuplexOptions = Omit & { - write?( - this: Duplex, - chunk: any, - encoding: ObjectModeEncoding, - callback: (error?: Error | null) => void, - ): void; - } & ObjectModeFlag; - type ObjectTransformOptions = Omit & { - transform?( - this: Transform, - chunk: any, - encoding: ObjectModeEncoding, - callback: (error?: Error | null, data?: any) => void, - ): void; - flush?(this: Transform, callback: (error?: Error | null, data?: any) => void): void; - write?( - this: Transform, - chunk: any, - encoding: ObjectModeEncoding, - callback: (error?: Error | null) => void, - ): void; - } & ObjectModeFlag; - - /* decodeStrings: false — a string write reaches write/transform as the - * string with its encoding (Buffers keep 'buffer'). */ - interface StringWritableOptions extends Omit { - decodeStrings: false; - write?( - this: Writable, - chunk: string | Buffer, - encoding: string, - callback: (error?: Error | null) => void, - ): void; - } - type StringDuplexOptions = Omit & { - decodeStrings: false; - write?( - this: Duplex, - chunk: string | Buffer, - encoding: string, - callback: (error?: Error | null) => void, - ): void; - }; - type StringTransformOptions = Omit & { - decodeStrings: false; - transform?( - this: Transform, - chunk: string | Buffer, - encoding: string, - callback: (error?: Error | null, data?: Buffer | string) => void, - ): void; - }; - - /* The operators' options: concurrency and highWaterMark bound map's - * in-flight callbacks and queued results. */ - interface ArrayOptions { - concurrency?: number; - highWaterMark?: number; - signal?: AbortSignal; - } - - class Readable extends EventEmitter { - constructor(opts?: ReadableOptions); - /* The underscore-method surface (@types/node declares these on the - * classes; assigning them post-construction shadows the prototype - * method and the machinery calls through the assignment — lowered - * onto the option-callback slots). */ - _read(size: number): void; - _destroy(error: Error | null, callback: (error?: Error | null) => void): void; - [Symbol.asyncIterator](): AsyncIterableIterator; - iterator(options?: { destroyOnReturn?: boolean }): AsyncIterableIterator; - /* compose(this, stage), destroyed when options.signal aborts. */ - compose(stage: ComposeStage, options?: { signal: AbortSignal }): Duplex; - push(chunk: Buffer | string | null, encoding?: string): boolean; - /* An object-mode stream's values. */ - push(chunk: any, encoding?: string): boolean; - unshift(chunk: Buffer | string, encoding?: string): void; - unshift(chunk: any, encoding?: string): void; - /* A Buffer, a string once encoded, an object-mode value, or null (as - * @types/node types it). */ - read(size?: number): any; - pause(): this; - resume(): this; - isPaused(): boolean; - setEncoding(encoding: string): this; - pipe(destination: T, options?: { end?: boolean }): T; - unpipe(destination?: NodeJS.WritableStream): this; - destroy(error?: Error): this; - readonly readable: boolean; - readonly readableEnded: boolean; - readonly readableFlowing: boolean | null; - readonly readableLength: number; - readonly readableHighWaterMark: number; - readonly readableObjectMode: boolean; - readonly closed: boolean; - readonly destroyed: boolean; - readonly errored: Error | null; - static from(iterable: unknown, options?: ReadableOptions): Readable; - /* A Readable over a web ReadableStream's reader. */ - static fromWeb( - readableStream: globalThis.ReadableStream, - options?: { - encoding?: string; - highWaterMark?: number; - objectMode?: boolean; - signal?: AbortSignal; - }, - ): Readable; - /* The Readable operators: chunks are strings or Buffers, map and - * flatMap callbacks return strings or Buffers (flatMap: arrays of - * them, or strings), and callbacks that declare the options argument - * are refused. */ - map( - fn: (data: any, options?: Pick) => any, - options?: ArrayOptions, - ): Readable; - filter( - fn: (data: any, options?: Pick) => boolean | Promise, - options?: ArrayOptions, - ): Readable; - forEach( - fn: (data: any, options?: Pick) => void | Promise, - options?: ArrayOptions, - ): Promise; - toArray(options?: Pick): Promise; - some( - fn: (data: any, options?: Pick) => boolean | Promise, - options?: ArrayOptions, - ): Promise; - find( - fn: (data: any, options?: Pick) => boolean | Promise, - options?: ArrayOptions, - ): Promise; - every( - fn: (data: any, options?: Pick) => boolean | Promise, - options?: ArrayOptions, - ): Promise; - flatMap( - fn: (data: any, options?: Pick) => any, - options?: ArrayOptions, - ): Readable; - drop(limit: number, options?: Pick): Readable; - take(limit: number, options?: Pick): Readable; - reduce( - fn: (previous: any, data: any, options?: Pick) => T, - initial?: undefined, - options?: Pick, - ): Promise; - reduce( - fn: (previous: T, data: any, options?: Pick) => T, - initial: T, - options?: Pick, - ): Promise; - on(event: "data", listener: (chunk: any) => void): this; - on(event: "end" | "close" | "readable" | "pause" | "resume", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: string, listener: (...args: any[]) => void): this; - once(event: "data", listener: (chunk: any) => void): this; - once(event: "end" | "close" | "readable" | "pause" | "resume", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: string, listener: (...args: any[]) => void): this; - addListener(event: "data", listener: (chunk: any) => void): this; - addListener( - event: "end" | "close" | "readable" | "pause" | "resume", - listener: () => void, - ): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "data", listener: (chunk: any) => void): this; - prependListener( - event: "end" | "close" | "readable" | "pause" | "resume", - listener: () => void, - ): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "data", listener: (chunk: any) => void): this; - prependOnceListener( - event: "end" | "close" | "readable" | "pause" | "resume", - listener: () => void, - ): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - off(event: "data", listener: (chunk: any) => void): this; - off(event: "end" | "close" | "readable" | "pause" | "resume", listener: () => void): this; - off(event: "error", listener: (err: Error) => void): this; - off(event: string, listener: (...args: any[]) => void): this; - removeListener(event: "data", listener: (chunk: any) => void): this; - removeListener( - event: "end" | "close" | "readable" | "pause" | "resume", - listener: () => void, - ): this; - removeListener(event: "error", listener: (err: Error) => void): this; - removeListener(event: string, listener: (...args: any[]) => void): this; - } - - class Writable extends EventEmitter { - constructor(opts: ObjectWritableOptions); - constructor(opts: StringWritableOptions); - constructor(opts?: WritableOptions); - /* The underscore-method surface (see Readable). */ - _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - _writev( - chunks: Array<{ chunk: any; encoding: string }>, - callback: (error?: Error | null) => void, - ): void; - _final(callback: (error?: Error | null) => void): void; - _destroy(error: Error | null, callback: (error?: Error | null) => void): void; - write(chunk: Buffer | string, callback?: (error?: Error | null) => void): boolean; - write( - chunk: Buffer | string, - encoding: string, - callback?: (error?: Error | null) => void, - ): boolean; - /* An object-mode stream's values (the encoding argument reaches - * _write as passed). */ - write(chunk: any, callback?: (error?: Error | null) => void): boolean; - write( - chunk: any, - encoding: ObjectModeEncoding, - callback?: (error?: Error | null) => void, - ): boolean; - end(callback?: () => void): this; - end(chunk: Buffer | string, callback?: () => void): this; - end(chunk: Buffer | string, encoding: string, callback?: () => void): this; - end(chunk: any, callback?: () => void): this; - end(chunk: any, encoding: ObjectModeEncoding, callback?: () => void): this; - cork(): void; - uncork(): void; - setDefaultEncoding(encoding: string): this; - destroy(error?: Error): this; - readonly writable: boolean; - readonly writableEnded: boolean; - readonly writableFinished: boolean; - readonly writableLength: number; - readonly writableHighWaterMark: number; - readonly writableObjectMode: boolean; - readonly writableNeedDrain: boolean; - readonly writableCorked: number; - readonly closed: boolean; - readonly destroyed: boolean; - readonly errored: Error | null; - on(event: "drain" | "finish" | "close", listener: () => void): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - on(event: string, listener: (...args: any[]) => void): this; - once(event: "drain" | "finish" | "close", listener: () => void): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - once(event: string, listener: (...args: any[]) => void): this; - addListener(event: "drain" | "finish" | "close", listener: () => void): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - addListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "drain" | "finish" | "close", listener: () => void): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - prependListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "drain" | "finish" | "close", listener: () => void): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - off(event: "drain" | "finish" | "close", listener: () => void): this; - off(event: "error", listener: (err: Error) => void): this; - off(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - off(event: string, listener: (...args: any[]) => void): this; - removeListener(event: "drain" | "finish" | "close", listener: () => void): this; - removeListener(event: "error", listener: (err: Error) => void): this; - removeListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - removeListener(event: string, listener: (...args: any[]) => void): this; - } - - /* Duplex is Readable + Writable in one object. TS single inheritance - * mirrors @types/node: extends Readable, the writable half declared - * again. The lowering treats both halves as first-class. */ - class Duplex extends Readable { - /* Duplex.from: an async generator function, an iterable, a string or - * a stream (duplexify.js). */ - static from(body: unknown): Duplex; - constructor(opts: ObjectDuplexOptions); - constructor(opts: StringDuplexOptions); - constructor(opts?: DuplexOptions); - /* The underscore-method surface (see Readable). */ - _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; - _writev( - chunks: Array<{ chunk: any; encoding: string }>, - callback: (error?: Error | null) => void, - ): void; - _final(callback: (error?: Error | null) => void): void; - write(chunk: Buffer | string, callback?: (error?: Error | null) => void): boolean; - write( - chunk: Buffer | string, - encoding: string, - callback?: (error?: Error | null) => void, - ): boolean; - /* An object-mode stream's values (the encoding argument reaches - * _write as passed). */ - write(chunk: any, callback?: (error?: Error | null) => void): boolean; - write( - chunk: any, - encoding: ObjectModeEncoding, - callback?: (error?: Error | null) => void, - ): boolean; - end(callback?: () => void): this; - end(chunk: Buffer | string, callback?: () => void): this; - end(chunk: Buffer | string, encoding: string, callback?: () => void): this; - end(chunk: any, callback?: () => void): this; - end(chunk: any, encoding: ObjectModeEncoding, callback?: () => void): this; - cork(): void; - uncork(): void; - setDefaultEncoding(encoding: string): this; - readonly writable: boolean; - readonly writableEnded: boolean; - readonly writableFinished: boolean; - readonly writableLength: number; - readonly writableHighWaterMark: number; - readonly writableObjectMode: boolean; - readonly writableNeedDrain: boolean; - readonly writableCorked: number; - readonly allowHalfOpen: boolean; - on(event: "data", listener: (chunk: any) => void): this; - on( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - on(event: "error", listener: (err: Error) => void): this; - on(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - on(event: string, listener: (...args: any[]) => void): this; - once(event: "data", listener: (chunk: any) => void): this; - once( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - once(event: "error", listener: (err: Error) => void): this; - once(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - once(event: string, listener: (...args: any[]) => void): this; - addListener(event: "data", listener: (chunk: any) => void): this; - addListener( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - addListener(event: "error", listener: (err: Error) => void): this; - addListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - addListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: "data", listener: (chunk: any) => void): this; - prependListener( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - prependListener(event: "error", listener: (err: Error) => void): this; - prependListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - prependListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: "data", listener: (chunk: any) => void): this; - prependOnceListener( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - prependOnceListener(event: "error", listener: (err: Error) => void): this; - prependOnceListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - off(event: "data", listener: (chunk: any) => void): this; - off( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - off(event: "error", listener: (err: Error) => void): this; - off(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - off(event: string, listener: (...args: any[]) => void): this; - removeListener(event: "data", listener: (chunk: any) => void): this; - removeListener( - event: "end" | "close" | "readable" | "pause" | "resume" | "drain" | "finish", - listener: () => void, - ): this; - removeListener(event: "error", listener: (err: Error) => void): this; - removeListener(event: "pipe" | "unpipe", listener: (src: Readable) => void): this; - removeListener(event: string, listener: (...args: any[]) => void): this; - } - - class Transform extends Duplex { - constructor(opts: ObjectTransformOptions); - constructor(opts: StringTransformOptions); - constructor(opts?: TransformOptions); - /* The underscore-method surface (see Readable). */ - _transform( - chunk: any, - encoding: string, - callback: (error?: Error | null, data?: any) => void, - ): void; - _flush(callback: (error?: Error | null, data?: any) => void): void; - } - class PassThrough extends Transform { - constructor(opts: ObjectTransformOptions); - constructor(opts: StringTransformOptions); - constructor(opts?: TransformOptions); - } - - /* addAbortSignal(signal, stream): the stream, destroyed with an - * AbortError (cause: signal.reason) when the signal aborts. */ - function addAbortSignal(signal: AbortSignal, stream: T): T; - /* pipeline(...stages, callback): the last stream, or the object-mode - * PassThrough that a function destination feeds. */ - type PipelineResult = T extends [ - ...unknown[], - infer D, - (...args: any[]) => unknown, - ] - ? D extends (...args: any[]) => unknown - ? PassThrough - : D - : unknown; - function pipeline(...streams: T): PipelineResult; - /* util.promisify's pipeline overload matches only pipeline itself: a - * generic signature alone admits every function. */ - namespace pipeline { - const __promisify__: typeof promises.pipeline; - } - /* A compose stage: a stream, an async generator function over the - * previous stage, or (first) an iterable, async iterable or web - * ReadableStream. */ - type ComposeStage = - | Readable - | Writable - | Iterable - | AsyncIterable - | globalThis.ReadableStream - | ((source: any, options?: { signal: AbortSignal }) => unknown); - /* compose(...streams): a Duplex that writes to the first stage and - * reads from the last, with the stages running as a pipeline. */ - function compose(...streams: ComposeStage[]): Duplex; - /* finished's options: readable/writable choose which ends count, - * error: false ignores 'error' events, signal aborts the wait. */ - interface FinishedOptions { - readable?: boolean; - writable?: boolean; - error?: boolean; - signal?: AbortSignal; - } - function finished(stream: unknown, callback: (err?: Error | null) => void): () => void; - function finished( - stream: unknown, - options: FinishedOptions | null, - callback: (err?: Error | null) => void, - ): () => void; - /* Folds to the TARGET platform's default at compile time (win32 16384, - * else 65536 — Node's own state.js split); literal argument only. */ - function getDefaultHighWaterMark(objectMode: boolean): number; - /* The promise pipeline's result: a last stage that is an async - * function resolves the promise with its value (before the options - * argument, when one follows). */ - type PipelinePromise = T extends [ - ...unknown[], - (...args: any[]) => Promise, - ] - ? Promise

      - : T extends [ - ...unknown[], - (...args: any[]) => Promise, - { signal?: AbortSignal; end?: boolean }, - ] - ? Promise

      - : Promise; - namespace promises { - function pipeline(...streams: T): PipelinePromise; - function finished( - stream: unknown, - options?: FinishedOptions & { cleanup?: boolean }, - ): Promise; - } - class Stream extends EventEmitter {} - - export { - Readable, - Writable, - Duplex, - Transform, - PassThrough, - Stream, - addAbortSignal, - pipeline, - compose, - finished, - getDefaultHighWaterMark, - promises, - }; - export type { - ReadableOptions, - WritableOptions, - DuplexOptions, - TransformOptions, - FinishedOptions, - PipelinePromise, - }; -} -declare module "node:stream" { - import stream = require("stream"); - export = stream; -} -declare module "stream/promises" { - /* The promise forms of finished/pipeline: a void promise the stream's - * terminal point settles (rejected with the error, or - * ERR_STREAM_PREMATURE_CLOSE on an early close). Stream arguments are - * the lowered surface — iterables/generators/functions fence per site. - * pipeline's trailing { signal, end } object and finished's options - * (readable, writable, error, cleanup, signal) are supported. A last - * stage that is an async function resolves the promise with its value. */ - function pipeline(...streams: T): import("stream").PipelinePromise; - function finished( - stream: unknown, - options?: { - readable?: boolean; - writable?: boolean; - error?: boolean; - cleanup?: boolean; - signal?: AbortSignal; - } | null, - ): Promise; - export { pipeline, finished }; -} -declare module "node:stream/promises" { - import streamPromises = require("stream/promises"); - export = streamPromises; -} -declare module "stream/consumers" { - /* The promise consumers over a readable: accumulate every chunk and - * settle — text (the utf8 decode), json (the text through JSON.parse: - * `unknown`, validated with a checked cast; malformed input rejects - * with the parse's SyntaxError), buffer (the concatenated bytes; - * string chunks contribute their utf8 bytes, Node's Blob rule). - * Stream errors reject; an early close rejects with - * ERR_STREAM_PREMATURE_CLOSE. arrayBuffer answers an ArrayBuffer over - * the bytes; blob fences per site. */ - function text(stream: unknown): Promise; - function json(stream: unknown): Promise; - function buffer(stream: unknown): Promise; - function arrayBuffer(stream: unknown): Promise; - function blob(stream: unknown): Promise; - export { arrayBuffer, blob, buffer, json, text }; -} -declare module "node:stream/consumers" { - import streamConsumers = require("stream/consumers"); - export = streamConsumers; -} -/* node:stream/web — the module exports the web stream globals themselves - * (require("stream/web").ReadableStream === globalThis.ReadableStream). - * ReadableStream is the implemented class; its reader and controller are - * exported as types. */ -declare module "stream/web" { - export const ReadableStream: typeof globalThis.ReadableStream; - export type ReadableStream = globalThis.ReadableStream; - export type ReadableStreamDefaultReader = globalThis.ReadableStreamDefaultReader; - export type ReadableStreamDefaultController = - globalThis.ReadableStreamDefaultController; - export type UnderlyingSource = globalThis.UnderlyingSource; - export type QueuingStrategy = globalThis.QueuingStrategy; -} -declare module "node:stream/web" { - export * from "stream/web"; -} interface ErrorConstructor { stackTraceLimit: number; } diff --git a/packages/compiler/src/frontend/dts-paths.ts b/packages/compiler/src/frontend/dts-paths.ts index 009d1c333..638e58641 100644 --- a/packages/compiler/src/frontend/dts-paths.ts +++ b/packages/compiler/src/frontend/dts-paths.ts @@ -20,7 +20,9 @@ function declarationPath(name: string): string { ? require.resolve("@scriptc/compiler/scriptc.d.ts") : name === "scriptc-overrides.d.ts" ? require.resolve("@scriptc/compiler/scriptc-overrides.d.ts") - : require.resolve("@scriptc/compiler/scriptc-node-fallback.d.ts") + : name === "scriptc-node-fallback.d.ts" + ? require.resolve("@scriptc/compiler/scriptc-node-fallback.d.ts") + : join(dirname(require.resolve("@scriptc/compiler/scriptc-node-fallback.d.ts")), name) : join(installedDeclarationRoot, name), ); } @@ -56,6 +58,9 @@ export function compilerOwnedFileName(file: string): string | null { for (const declaration of [ambientDtsPath(), overridesDtsPath(), fallbackDtsPath()]) { if (path === declaration) return `scriptc:${path.slice(path.lastIndexOf("/") + 1)}`; } + const modules = fallbackModuleRoot() + "/"; + if (path.startsWith(modules)) + return `scriptc:${FALLBACK_MODULE_DIRECTORY}/${path.slice(modules.length)}`; return null; } @@ -75,14 +80,138 @@ export function overridesDtsPath(): string { return declarationPath("scriptc-overrides.d.ts"); } -/** Path of the shipped FALLBACK declarations (console, process, node:fs) — - * part of the program only when the target project has no @types/node. - * With @types/node, the project's real Node types stand in and this file - * stands down (its declaration forms would collide). */ +/** Path of the shipped FALLBACK declarations (the console and process + * globals and the modules they name) — part of the program only when the + * target project has no @types/node. With @types/node, the project's real + * Node types stand in and this file stands down (its declaration forms + * would collide). */ export function fallbackDtsPath(): string { return declarationPath("scriptc-node-fallback.d.ts"); } +const FALLBACK_MODULE_DIRECTORY = "node-fallback"; + +/** The fallback declarations of the other Node modules, one file per module + * under node-fallback/, by specifier (both spellings). Each file references + * the files of the modules its declarations name. */ +const FALLBACK_MODULE_FILES: Readonly> = { + "assert": "assert.d.ts", + "assert/strict": "assert-strict.d.ts", + "async_hooks": "async_hooks.d.ts", + "buffer": "buffer.d.ts", + "child_process": "child_process.d.ts", + "cluster": "cluster.d.ts", + "constants": "constants.d.ts", + "crypto": "crypto.d.ts", + "dgram": "dgram.d.ts", + "diagnostics_channel": "diagnostics_channel.d.ts", + "dns": "dns.d.ts", + "dns/promises": "dns-promises.d.ts", + "events": "events.d.ts", + "fs": "fs.d.ts", + "fs/promises": "fs-promises.d.ts", + "graceful-fs": "graceful-fs.d.ts", + "http": "http.d.ts", + "http2": "http2.d.ts", + "https": "https.d.ts", + "module": "module.d.ts", + "net": "net.d.ts", + "node:assert": "assert.d.ts", + "node:assert/strict": "assert-strict.d.ts", + "node:async_hooks": "async_hooks.d.ts", + "node:buffer": "buffer.d.ts", + "node:child_process": "child_process.d.ts", + "node:cluster": "cluster.d.ts", + "node:constants": "constants.d.ts", + "node:crypto": "crypto.d.ts", + "node:dgram": "dgram.d.ts", + "node:diagnostics_channel": "diagnostics_channel.d.ts", + "node:dns": "dns.d.ts", + "node:dns/promises": "dns-promises.d.ts", + "node:events": "events.d.ts", + "node:fs": "fs.d.ts", + "node:fs/promises": "fs-promises.d.ts", + "node:http": "http.d.ts", + "node:http2": "http2.d.ts", + "node:https": "https.d.ts", + "node:module": "module.d.ts", + "node:net": "net.d.ts", + "node:os": "os.d.ts", + "node:path": "path.d.ts", + "node:path/posix": "path-posix.d.ts", + "node:path/win32": "path-win32.d.ts", + "node:process": "process.d.ts", + "node:punycode": "punycode.d.ts", + "node:querystring": "querystring.d.ts", + "node:stream": "stream.d.ts", + "node:stream/consumers": "stream-consumers.d.ts", + "node:stream/promises": "stream-promises.d.ts", + "node:stream/web": "stream-web.d.ts", + "node:string_decoder": "string_decoder.d.ts", + "node:test": "test.d.ts", + "node:timers": "timers.d.ts", + "node:timers/promises": "timers-promises.d.ts", + "node:tls": "tls.d.ts", + "node:url": "url.d.ts", + "node:util": "util.d.ts", + "node:util/types": "util-types.d.ts", + "node:v8": "v8.d.ts", + "node:worker_threads": "worker_threads.d.ts", + "node:zlib": "zlib.d.ts", + "os": "os.d.ts", + "path": "path.d.ts", + "path/posix": "path-posix.d.ts", + "path/win32": "path-win32.d.ts", + "process": "process.d.ts", + "punycode": "punycode.d.ts", + "querystring": "querystring.d.ts", + "stream": "stream.d.ts", + "stream/consumers": "stream-consumers.d.ts", + "stream/promises": "stream-promises.d.ts", + "stream/web": "stream-web.d.ts", + "string_decoder": "string_decoder.d.ts", + "timers": "timers.d.ts", + "timers/promises": "timers-promises.d.ts", + "tls": "tls.d.ts", + "url": "url.d.ts", + "util": "util.d.ts", + "util/types": "util-types.d.ts", + "v8": "v8.d.ts", + "worker_threads": "worker_threads.d.ts", + "zlib": "zlib.d.ts", +}; + +function fallbackModuleRoot(): string { + return declarationPath(FALLBACK_MODULE_DIRECTORY); +} + +/** The fallback declaration file of the Node module `specifier`, or null. */ +export function fallbackModulePath(specifier: string): string | null { + return Object.hasOwn(FALLBACK_MODULE_FILES, specifier) + ? declarationPath(`${FALLBACK_MODULE_DIRECTORY}/${FALLBACK_MODULE_FILES[specifier]}`) + : null; +} + +const QUOTED_SPECIFIER = /["'`]((?:node:)?[a-z][a-z0-9_]*(?:[-/][a-z0-9_]+)?)["'`]/g; + +/** The fallback declaration files of the Node modules `text` names in a + * string literal: an over-approximation of the modules its imports, requires, + * import types and JSDoc types can name. */ +export function fallbackModulesNamedIn(text: string): string[] { + const files = new Set(); + for (const match of text.matchAll(QUOTED_SPECIFIER)) { + const file = fallbackModulePath(match[1]!); + if (file !== null) files.add(file); + } + return [...files]; +} + +/** True for the fallback declarations: the core file and the module files. */ +export function isFallbackDtsPath(file: string): boolean { + const path = tsgoPath(file); + return path === fallbackDtsPath() || path.startsWith(fallbackModuleRoot() + "/"); +} + /** True for files belonging to the adopted Node type surface: the * @types/node package itself and undici-types (its dependency — the * web-platform globals: fetch/Response/AbortSignal/ReadableStream/...). diff --git a/packages/compiler/src/frontend/fork-target.test.ts b/packages/compiler/src/frontend/fork-target.test.ts index ffe01ee47..23982976a 100644 --- a/packages/compiler/src/frontend/fork-target.test.ts +++ b/packages/compiler/src/frontend/fork-target.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { expect, test, vi } from "vitest"; import { forkTargetPaths } from "./fork-target.js"; -import { fallbackDtsPath } from "./dts-paths.js"; +import { fallbackDtsPath, fallbackModulePath } from "./dts-paths.js"; import { Ts7Host } from "./ts7/program-host.js"; import { Ts7Api } from "./ts7/rpc-api.js"; import { ModuleKind, ModuleResolutionKind } from "./ts7/enums.js"; @@ -35,12 +35,15 @@ test("fork discovery batches only candidate bindings and preserves aliases and s `, ); const host = new Ts7Host((options) => new Ts7Api(options), { cwd: directory }); - const program = host.createProgram([entry, declarations], { - noLib: true, - types: [], - module: ModuleKind.ESNext, - moduleResolution: ModuleResolutionKind.Bundler, - }); + const program = host.createProgram( + [entry, declarations, fallbackModulePath("node:child_process")!], + { + noLib: true, + types: [], + module: ModuleKind.ESNext, + moduleResolution: ModuleResolutionKind.Bundler, + }, + ); const checker = program.getTypeChecker(); const batch = vi.spyOn(checker, "prefetchSymbolNodesExact"); const whole = vi.spyOn(checker.raw, "getTypeOfSymbol"); @@ -73,12 +76,15 @@ function discover(files: Record): { targets: string[]; queried: for (const [name, text] of Object.entries(files)) writeFileSync(join(directory, name), text); const entry = join(directory, "main.ts"); const host = new Ts7Host((options) => new Ts7Api(options), { cwd: directory }); - const program = host.createProgram([entry, fallbackDtsPath()], { - noLib: true, - types: [], - module: ModuleKind.ESNext, - moduleResolution: ModuleResolutionKind.Bundler, - }); + const program = host.createProgram( + [entry, fallbackDtsPath(), fallbackModulePath("node:child_process")!], + { + noLib: true, + types: [], + module: ModuleKind.ESNext, + moduleResolution: ModuleResolutionKind.Bundler, + }, + ); const batch = vi.spyOn(program.getTypeChecker(), "prefetchSymbolNodesExact"); try { const targets = forkTargetPaths(program, [program.getSourceFile(entry)!]).map((path) => diff --git a/packages/compiler/src/frontend/fork-target.ts b/packages/compiler/src/frontend/fork-target.ts index 93fc7c244..398e1b0aa 100644 --- a/packages/compiler/src/frontend/fork-target.ts +++ b/packages/compiler/src/frontend/fork-target.ts @@ -3,7 +3,7 @@ import { fileURLToPath, pathToFileURL } from "node:url"; import * as ts from "./ts7/adapter.js"; import { ambientDtsPath, - fallbackDtsPath, + isFallbackDtsPath, isNodeTypesPath, overridesDtsPath, tsgoPath, @@ -22,7 +22,7 @@ export function isNodeGlobal(program: ts.Program, expression: ts.Identifier): bo const source = ts.getSourceFileOfNode(declaration); return ( source.isDeclarationFile && - (tsgoPath(source.fileName) === fallbackDtsPath() || isNodeTypesPath(source.fileName)) + (isFallbackDtsPath(source.fileName) || isNodeTypesPath(source.fileName)) ); }) ); @@ -333,7 +333,7 @@ const SPELLED_CHILD_PROCESS = new RegExp( function namesChildProcess(program: ts.Program): boolean { const known = program.analysis.namesChildProcess; if (known !== null) return known; - const own = new Set([ambientDtsPath(), overridesDtsPath(), fallbackDtsPath()]); + const own = new Set([ambientDtsPath(), overridesDtsPath()]); // Implementation files are already fetched; any other file is read as // the host serves it, without fetching its syntax tree. const texts = new Map(); @@ -343,7 +343,7 @@ function namesChildProcess(program: ts.Program): boolean { let names = false; for (const fileName of program.getSourceFileNames()) { const path = tsgoPath(fileName); - if (isNodeTypesPath(fileName) || own.has(path)) continue; + if (isNodeTypesPath(fileName) || isFallbackDtsPath(fileName) || own.has(path)) continue; const text = texts.get(path) ?? program.getSourceText(fileName) ?? ""; if ( text.includes("child_process") || diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index e9e351429..106ffb9a7 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -274,12 +274,12 @@ import { cjsExportsAssignedInFunctions, cjsReexportedModules, cjsNamespaceExportNames, - fallbackDtsPath, isCheckedJsSourceFile, isCjsExportTableLiteral, isCjsJsFile, isJsSourceFile, isNodeEsmFile, + isFallbackDtsPath, isNodeTypesPath, locOf, orderedImportsOf, @@ -3325,7 +3325,6 @@ export class Lowerer { readonly typeMemo = new Map(); readonly ambient = ambientDtsPath(); readonly overridesAmbient = overridesDtsPath(); - readonly fallbackAmbient = fallbackDtsPath(); /** The one mapType context: registries + hooks, assembled in the * constructor (typeParamResolver reads the CURRENT instantiation bindings * through `this`, so the same ctx serves generic bodies too). */ @@ -13439,7 +13438,7 @@ export class Lowerer { readonly isStdlibFile = (sf: ts.SourceFile): boolean => sf.fileName === this.ambient || sf.fileName === this.overridesAmbient || - sf.fileName === this.fallbackAmbient || + isFallbackDtsPath(sf.fileName) || this.program.isSourceFileDefaultLibrary(sf) || (sf.isDeclarationFile && isNodeTypesPath(sf.fileName)); diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index b93e3f217..f64733fc0 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -104,6 +104,8 @@ import { cjsLexedExportsOfFile, cjsVisibleNames } from "./cjs-syntax.js"; import { ambientDtsPath, fallbackDtsPath, + fallbackModulesNamedIn, + isFallbackDtsPath, isNodeTypesPath, overridesDtsPath, tsgoPath, @@ -613,6 +615,27 @@ function externalTypeFileClosure7( return new Map([...ownersByFile].map(([file, owners]) => [file, [...owners]] as const)); } +/** The fallback declaration files of the Node modules the program's files + * name (fallbackModulesNamedIn) that the program does not hold yet. Each + * file is read as tsgo reads it; the TypeScript libraries and scriptc's own + * declarations name no module that needs a file. */ +function fallbackModuleRoots7(program: ts.Program, host: ts.Ts7Host): string[] { + const names = program.getSourceFileNames(); + const held = new Set(names.filter(isFallbackDtsPath).map((name) => tsgoPath(name))); + const ambient = ambientDtsPath(); + const overrides = overridesDtsPath(); + const roots = new Set(); + for (const name of names) { + const path = tsgoPath(name); + if (held.has(path) || path === ambient || path === overrides) continue; + if (/\/lib\.[^/]*\.d\.ts$/.test(path) && program.getSourceFileMetadata(name)?.isDefaultLibrary) + continue; + for (const file of fallbackModulesNamedIn(host.sourceText(name) ?? "")) + if (!held.has(file)) roots.add(file); + } + return [...roots]; +} + /** Program roots hidden behind canonical createRequire bindings. tsgo * discovers ordinary import/require edges itself, but a source binding * returned by createRequire is intentionally just a function to the type @@ -889,12 +912,23 @@ function loadProgram7( } options = { ...options, paths }; } - const coreRoots = [entryPath, ambientDtsPath(), nodeTypes ?? fallbackDtsPath()]; + // Without @types/node the fallback declarations stand in: the core file, + // and a Node module's file once a program file names the module + // (fallbackModuleRoots7). The modules the entry names join the first + // program. + const coreRoots = [ + entryPath, + ambientDtsPath(), + ...(nodeTypes === null + ? [fallbackDtsPath(), ...fallbackModulesNamedIn(host.sourceText(entryPath) ?? "")] + : [nodeTypes]), + ]; const programRoots = [...coreRoots]; let program = host.createProgram([...programRoots, overridesDtsPath()], options); try { for (let pass = 0; pass < 32; pass++) { const candidates = [ + ...(nodeTypes === null ? fallbackModuleRoots7(program, host) : []), ...entryPackageProgramRoots7(program, entryPath, rootNpmStaticEdges), ...createRequireProgramRoots7(program), ...forkTargetPaths(program, program.getImplementationSourceFiles()), @@ -5014,7 +5048,7 @@ function laterJobCallee7(checker: ts.TypeChecker, callee: ts.Expression): boolea // package declarations describe user code. return decls.every((d) => { const file = ts.getSourceFileOfNode(d).fileName; - return isNodeTypesPath(file) || file === fallbackDtsPath(); + return isNodeTypesPath(file) || isFallbackDtsPath(file); }); } @@ -7097,7 +7131,13 @@ const nodeBuiltinNames: ReadonlySet = new Set(builtinModules); * established (the phase-2 port kept every spelling); the world-neutral * helpers re-export from their focused modules. */ -export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath } from "./dts-paths.js"; +export { + ambientDtsPath, + fallbackDtsPath, + isFallbackDtsPath, + isNodeTypesPath, + overridesDtsPath, +} from "./dts-paths.js"; export { builtinDefaultImportModule, diff --git a/packages/compiler/src/frontend/ts7/program-host.ts b/packages/compiler/src/frontend/ts7/program-host.ts index 9e8f51bb3..0b2c3f6b7 100644 --- a/packages/compiler/src/frontend/ts7/program-host.ts +++ b/packages/compiler/src/frontend/ts7/program-host.ts @@ -47,7 +47,7 @@ import { } from "../input-tracker.js"; import { packageShimDeclarationText } from "../package-shims.js"; import { typePatchedText } from "../type-patches/layer.js"; -import { ambientDtsPath, fallbackDtsPath, overridesDtsPath } from "../dts-paths.js"; +import { ambientDtsPath, isFallbackDtsPath, overridesDtsPath } from "../dts-paths.js"; import { reusedLibDiagnostics } from "./lib-diagnostics.js"; import { ts7Diagnostic } from "./diagnostic.js"; import type { Ts7DiagnosticData } from "./session-schema.generated.js"; @@ -425,12 +425,13 @@ export class Ts7Program { reusedLibDiagnostics(): { semantic: Ts7DiagnosticData[]; global: Ts7DiagnosticData[] } | null { this.snapshot.ensureActive(); const program = this.project.program; - const declarations = new Set([ambientDtsPath(), overridesDtsPath(), fallbackDtsPath()]); + const declarations = new Set([ambientDtsPath(), overridesDtsPath()]); return reusedLibDiagnostics( program, this.getSourceFileNames(), (name) => declarations.has(tsgoPath(name)) || + isFallbackDtsPath(name) || program.getSourceFileMetadataByPath(name)?.isDefaultLibrary === true, (name) => this.getSourceFile(name), ); diff --git a/packages/compiler/src/frontend/worker-target.test.ts b/packages/compiler/src/frontend/worker-target.test.ts index 7125bc309..e68fc798a 100644 --- a/packages/compiler/src/frontend/worker-target.test.ts +++ b/packages/compiler/src/frontend/worker-target.test.ts @@ -3,7 +3,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { expect, test } from "vitest"; import { workerTargetPaths } from "./worker-target.js"; -import { fallbackDtsPath } from "./dts-paths.js"; +import { fallbackDtsPath, fallbackModulePath } from "./dts-paths.js"; import { Ts7Host } from "./ts7/program-host.js"; import { Ts7Api } from "./ts7/rpc-api.js"; import { ModuleKind, ModuleResolutionKind } from "./ts7/enums.js"; @@ -17,12 +17,15 @@ function discover(source: string): string[] { 'export { Worker as Task } from "node:worker_threads";', ); const host = new Ts7Host((options) => new Ts7Api(options), { cwd: directory }); - const program = host.createProgram([entry, fallbackDtsPath()], { - noLib: true, - types: [], - module: ModuleKind.ESNext, - moduleResolution: ModuleResolutionKind.Bundler, - }); + const program = host.createProgram( + [entry, fallbackDtsPath(), fallbackModulePath("node:worker_threads")!], + { + noLib: true, + types: [], + module: ModuleKind.ESNext, + moduleResolution: ModuleResolutionKind.Bundler, + }, + ); try { return workerTargetPaths(program, [program.getSourceFile(entry)!]).map((file) => file.replace(directory + "/", ""), diff --git a/packages/compiler/test/node-fallback-modules.test.ts b/packages/compiler/test/node-fallback-modules.test.ts new file mode 100644 index 000000000..60a2e0bc9 --- /dev/null +++ b/packages/compiler/test/node-fallback-modules.test.ts @@ -0,0 +1,43 @@ +import { existsSync, readdirSync, readFileSync } from "node:fs"; +import { basename, dirname, join } from "node:path"; +import { expect, test } from "vitest"; +import { + fallbackDtsPath, + fallbackModulePath, + fallbackModulesNamedIn, +} from "../src/frontend/dts-paths.js"; + +const moduleDirectory = join(dirname(fallbackDtsPath()), "node-fallback"); +const declaredModules = (text: string): string[] => + [...text.matchAll(/^declare module "([^"]+)" \{/gm)].map((m) => m[1]!); + +test("every fallback module file declares the specifiers that map to it, and only those", () => { + const files = readdirSync(moduleDirectory).filter((name) => name.endsWith(".d.ts")); + expect(files.length).toBeGreaterThan(0); + for (const file of files) { + const text = readFileSync(join(moduleDirectory, file), "utf8"); + const declared = declaredModules(text); + expect(declared.length, file).toBeGreaterThan(0); + for (const specifier of declared) expect(basename(fallbackModulePath(specifier)!)).toBe(file); + // Every reference names another module file. + for (const [, reference] of text.matchAll(/^\/\/\/ $/gm)) + expect(existsSync(join(moduleDirectory, reference!)), `${file} -> ${reference}`).toBe(true); + } +}); + +test("the core fallback file declares no module that has a file of its own", () => { + for (const specifier of declaredModules(readFileSync(fallbackDtsPath(), "utf8"))) + expect(fallbackModulePath(specifier), specifier).toBeNull(); +}); + +test("a module named in a string literal selects its file, under either spelling", () => { + const files = fallbackModulesNamedIn( + `import { readFileSync } from "node:fs";\nconst os = require('os');\ntype T = import(\`node:stream/web\`);\nconst label = "not-a-module";`, + ).map((file) => basename(file)); + expect(files.sort()).toEqual(["fs.d.ts", "os.d.ts", "stream-web.d.ts"]); + expect(fallbackModulesNamedIn('console.log("hi")')).toEqual([]); + // Module names with digits. + expect( + fallbackModulesNamedIn(`require("http2"); import("node:v8");`).map((file) => basename(file)), + ).toEqual(["http2.d.ts", "v8.d.ts"]); +}); diff --git a/packages/compiler/test/node-pin.test.ts b/packages/compiler/test/node-pin.test.ts index 4d4c4a7e8..f13c5558e 100644 --- a/packages/compiler/test/node-pin.test.ts +++ b/packages/compiler/test/node-pin.test.ts @@ -33,7 +33,7 @@ test("the Node pins agree", () => { }); test("the crypto.constants declaration matches the baked table", () => { - const dts = read("packages/compiler/ambient/scriptc-node-fallback.d.ts"); + const dts = read("packages/compiler/ambient/node-fallback/crypto.d.ts"); const start = dts.indexOf("export interface CryptoConstants {"); const body = dts.slice(start, dts.indexOf("\n }\n", start)); const declared = Object.fromEntries( @@ -46,7 +46,7 @@ test("the crypto.constants declaration matches the baked table", () => { }); test("the zlib.constants declaration matches the baked table", () => { - const dts = read("packages/compiler/ambient/scriptc-node-fallback.d.ts"); + const dts = read("packages/compiler/ambient/node-fallback/zlib.d.ts"); const start = dts.indexOf("export interface ZlibConstants {"); const body = dts.slice(start, dts.indexOf("\n }\n", start)); const declared = Object.fromEntries( diff --git a/packages/compiler/test/ts7/bench.test.ts b/packages/compiler/test/ts7/bench.test.ts index 13e34bca1..c8de220c9 100644 --- a/packages/compiler/test/ts7/bench.test.ts +++ b/packages/compiler/test/ts7/bench.test.ts @@ -28,6 +28,8 @@ import type { } from "../../src/frontend/ts7/semantic-types.js"; import { CheckerFacade } from "../../src/frontend/ts7/checker.js"; import { ambientDtsPath, fallbackDtsPath, overridesDtsPath } from "../../src/frontend/program.js"; +import { fallbackModulesNamedIn } from "../../src/frontend/dts-paths.js"; +import { readFileSync } from "node:fs"; import { ad, options7 } from "./harness.js"; const repoRoot = fileURLToPath(new URL("../../../..", import.meta.url)); @@ -230,7 +232,13 @@ for (const workload of WORKLOADS) { { retry: 2 }, () => { const program = createProgram( - [workload.entry, ambientDtsPath(), fallbackDtsPath(), overridesDtsPath()], + [ + workload.entry, + ambientDtsPath(), + fallbackDtsPath(), + ...fallbackModulesNamedIn(readFileSync(workload.entry, "utf8")), + overridesDtsPath(), + ], options7(), host, ); diff --git a/packages/compiler/test/ts7/harness.ts b/packages/compiler/test/ts7/harness.ts index 484add55d..073de1421 100644 --- a/packages/compiler/test/ts7/harness.ts +++ b/packages/compiler/test/ts7/harness.ts @@ -18,6 +18,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import ts5 from "typescript5"; import { ambientDtsPath, fallbackDtsPath } from "../../src/frontend/program.js"; +import { fallbackModulesNamedIn } from "../../src/frontend/dts-paths.js"; import * as ad from "../../src/frontend/ts7/adapter.js"; export { ad, ts5 }; @@ -78,7 +79,8 @@ export function buildTwoWorlds(sources: Record, host?: ad.Ts7Hos writeFileSync(path, text); files.push(path); } - const roots = [...files, ambientDtsPath(), fallbackDtsPath()]; + const modules = Object.values(sources).flatMap((text) => fallbackModulesNamedIn(text)); + const roots = [...files, ambientDtsPath(), fallbackDtsPath(), ...new Set(modules)]; const p5 = ts5.createProgram(roots, options5()); const p7 = createProgram(roots, options7(), host); return { diff --git a/scripts/native-cli-assets.mts b/scripts/native-cli-assets.mts index bdecc1da2..58d16fb69 100644 --- a/scripts/native-cli-assets.mts +++ b/scripts/native-cli-assets.mts @@ -74,6 +74,11 @@ export function stageNativeCliAssets(options: { for (const name of ["scriptc.d.ts", "scriptc-overrides.d.ts", "scriptc-node-fallback.d.ts"]) { cpSync(join(repository, "packages/compiler/ambient", name), join(declarations, name)); } + cpSync( + join(repository, "packages/compiler/ambient/node-fallback"), + join(declarations, "node-fallback"), + { recursive: true }, + ); // Package shims (packageShimRoot): the built-in npm package implementations. cpSync(join(repository, "packages/compiler/shims"), join(declarations, "shims"), { recursive: true, From 3c057b501f277a46fc6d798eddae936ff13685bc Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 16:44:46 -0500 Subject: [PATCH 019/128] Lay out the native compiler's functions by the code each kind of run executes A warm rebuild ran about 3.5 MB of the native compiler's code, but the code was spread over its 69 MB text, so 64 KB fault-around mapped about 20 MB of it. The emitter can now take a function layout: a list of functions in tiers. It writes the listed definitions, generated helpers included, first and by tier, each in a `layout-` partition group. The LLVM helper compiles each partition's definitions in text order, so the listed ones come first in their partitions, and a helper that places functions by group keeps a tier's definitions in the same partitions. The rest keep their order and their source-file groups. - compile() takes a `functionLayout` file (` ` lines, gzip-compressed when the name ends in .gz). Keys leave out module numbers. - build-native-cli.mts uses the committed packages/compiler/native/cli.layout.gz, or the file SCRIPTC_NATIVE_LAYOUT names; an empty value and instrumented builds use none. - scripts/refresh-cli-layout.mjs builds an instrumented compiler, builds the runtime workloads and a corpus slice cold and then unchanged, and reads the functions each run executed from the raw profiles. Tier 1 is `--version` and rebuilds that hit both caches; tier 2 is the other builds. - The release workflow's cli-profile job also collects a layout on the release commit, and the CLI builds use it. Names of closures and generated helpers change with nearby edits, so a committed layout matches fewer functions as main moves on. - Forked lowering and emission workers reset the profile counters after fork and write their profile before _exit, so instrumented builds also count the work done in workers. This applies to refresh-cli-profile.mjs too. Executables the compiler produces are unchanged. --- .github/workflows/release.yml | 29 +- RELEASING.md | 2 + packages/compiler/native/cli.layout.gz | Bin 0 -> 216519 bytes packages/compiler/native/host.c | 25 +- .../compiler/src/backend/llvm/emit-module.ts | 89 +++++-- packages/compiler/src/backend/llvm/emitter.ts | 3 + .../src/backend/llvm/function-layout.ts | 41 +++ packages/compiler/src/compile-types.ts | 5 + packages/compiler/src/index.ts | 18 ++ .../compiler/test/function-layout.test.ts | 147 +++++++++++ scripts/build-native-cli.mts | 10 + scripts/refresh-cli-layout.mjs | 248 ++++++++++++++++++ 12 files changed, 591 insertions(+), 26 deletions(-) create mode 100644 packages/compiler/native/cli.layout.gz create mode 100644 packages/compiler/src/backend/llvm/function-layout.ts create mode 100644 packages/compiler/test/function-layout.test.ts create mode 100644 scripts/refresh-cli-layout.mjs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 799337e0a..ef0b764ac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -100,11 +100,11 @@ jobs: if (receiptRun) appendFileSync(process.env.GITHUB_OUTPUT, `receipt_run=${receiptRun}\n`); NODE - # Collects the native compiler's profile on this commit - # (scripts/refresh-cli-profile.mjs), so every platform's CLI build optimizes - # with a profile of the code it compiles. The committed profile falls behind - # main within a day or two. If this job fails, the CLI builds use the - # committed profile. + # Collects the native compiler's profile and function layout on this commit + # (scripts/refresh-cli-profile.mjs, scripts/refresh-cli-layout.mjs), so every + # platform's CLI build optimizes and lays out the code it compiles. The + # committed ones fall behind main within a day or two. If this job fails, + # the CLI builds use the committed profile and layout. cli-profile: name: Collect the native compiler profile needs: check-release @@ -138,11 +138,17 @@ jobs: - name: Collect the profile run: >- node scripts/refresh-cli-profile.mjs --tsc-ts "$RUNNER_TEMP/tsc-ts" --jobs 4 - --output "$RUNNER_TEMP/cli-profile/cli.profdata.gz" + --output "$RUNNER_TEMP/cli-profile/cli.profdata.gz" --work "$RUNNER_TEMP/cli-profile-work" + - name: Collect the function layout + run: >- + node scripts/refresh-cli-layout.mjs --jobs 4 --instrumented "$RUNNER_TEMP/cli-profile-work/cli" + --output "$RUNNER_TEMP/cli-profile/cli.layout.gz" - uses: actions/upload-artifact@v4 with: name: cli-profile - path: ${{ runner.temp }}/cli-profile/cli.profdata.gz + path: | + ${{ runner.temp }}/cli-profile/cli.profdata.gz + ${{ runner.temp }}/cli-profile/cli.layout.gz retention-days: 7 if-no-files-found: error @@ -300,8 +306,8 @@ jobs: with: name: cli-profile path: ${{ runner.temp }}/cli-profile - # Without the artifact, SCRIPTC_NATIVE_PROFILE_USE stays unset and - # build-native-cli.mts uses the committed profile. + # Without the artifact, SCRIPTC_NATIVE_PROFILE_USE and SCRIPTC_NATIVE_LAYOUT + # stay unset and build-native-cli.mts uses the committed profile and layout. - name: Select the native compiler profile if: matrix.cli != '' shell: bash @@ -311,6 +317,11 @@ jobs: if [ -n "$COLLECTED" ]; then echo "SCRIPTC_NATIVE_PROFILE_USE=$COLLECTED" >> "$GITHUB_ENV" echo "The native CLI builds with the profile collected on $GITHUB_SHA" + layout="$(dirname "$COLLECTED")/cli.layout.gz" + if [ -f "$layout" ]; then + echo "SCRIPTC_NATIVE_LAYOUT=$layout" >> "$GITHUB_ENV" + echo "The native CLI builds with the function layout collected on $GITHUB_SHA" + fi else echo "::warning::No profile was collected on this commit; the native CLI builds with the committed profile" fi diff --git a/RELEASING.md b/RELEASING.md index 42bfe75ad..42c253568 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -18,6 +18,8 @@ The release job builds each pinned LLVM helper, precompiled runtime pack, and na Release builds of the native CLI optimize the compiler with a profile collected on the release commit. The `cli-profile` job runs `node scripts/refresh-cli-profile.mjs` on Linux x64, which builds an instrumented compiler, runs it on tsc-ts, a slice of the corpus, and the runtime benchmark workloads, and writes the merged sparse profile. Every platform's CLI build uses that profile (`SCRIPTC_NATIVE_PROFILE_USE`), and the GitHub release attaches it as `scriptc--cli.profdata.gz`. Code the profile does not describe, or describes from older compiler sources, is optimized as without a profile. When the profile job fails, the CLI builds use the committed profile `packages/compiler/native/cli.profdata.gz`, which local and CI builds of the native compiler also use. Refresh the committed profile when compiler code has changed substantially since the last refresh: run `node scripts/refresh-cli-profile.mjs --tsc-ts ` on a quiet Linux x64 host and commit the new profile on its own. +Builds of the native compiler also order its functions by the committed layout `packages/compiler/native/cli.layout.gz`: the functions that `--version` and rebuilds of unchanged programs run come first, then the ones other builds run, so a run maps fewer pages of the executable. Functions the layout does not list keep their usual order. Function names of closures and generated helpers change with nearby edits, so the `cli-profile` job also collects a layout on the release commit (`scripts/refresh-cli-layout.mjs`, reusing the job's instrumented compiler), and the CLI builds use it (`SCRIPTC_NATIVE_LAYOUT`). Refresh the committed layout the same way as the profile, with `node scripts/refresh-cli-layout.mjs`, and commit it on its own. + Publishing uses npm trusted publishing (OIDC) — there is no npm token secret. Each published package must have a GitHub Actions trusted publisher for `release.yml` and the `Release` environment. A missing configuration fails diff --git a/packages/compiler/native/cli.layout.gz b/packages/compiler/native/cli.layout.gz new file mode 100644 index 0000000000000000000000000000000000000000..ff1f8b97e93e958cd850eb6991d489661b1d678e GIT binary patch literal 216519 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 literal 0 HcmV?d00001 diff --git a/packages/compiler/native/host.c b/packages/compiler/native/host.c index 24d330cc0..f4393c5f7 100644 --- a/packages/compiler/native/host.c +++ b/packages/compiler/native/host.c @@ -80,9 +80,30 @@ void scriptc_native_unlock(void) {} #include #include -int32_t scriptc_native_fork(void) { return (int32_t)fork(); } +#if defined(__linux__) +/* LLVM's profile runtime, linked into instrumented builds of the compiler + * (SCRIPTC_NATIVE_PROFILE_GENERATE); other builds leave these null. A worker + * starts with zeroed counters and writes its profile before _exit, which + * skips the runtime's atexit writer, so the profile counts the worker's work + * once. */ +extern void __llvm_profile_reset_counters(void) __attribute__((weak)); +extern int __llvm_profile_write_file(void) __attribute__((weak)); +#endif -void scriptc_native_exit(int32_t code) { _exit(code); } +int32_t scriptc_native_fork(void) { + pid_t pid = fork(); +#if defined(__linux__) + if (pid == 0 && __llvm_profile_reset_counters != NULL) __llvm_profile_reset_counters(); +#endif + return (int32_t)pid; +} + +void scriptc_native_exit(int32_t code) { +#if defined(__linux__) + if (__llvm_profile_write_file != NULL) (void)__llvm_profile_write_file(); +#endif + _exit(code); +} /* The worker's exit status, 128 plus the signal for a worker a signal * ended, or -1 when waitpid fails. */ diff --git a/packages/compiler/src/backend/llvm/emit-module.ts b/packages/compiler/src/backend/llvm/emit-module.ts index af00ebc2c..24c32d2e9 100644 --- a/packages/compiler/src/backend/llvm/emit-module.ts +++ b/packages/compiler/src/backend/llvm/emit-module.ts @@ -66,6 +66,7 @@ import { emitLibraryIdentityLines } from "../library-identity-markers.js"; import { InternalCompilerError } from "../../errors.js"; import { targetCpuAttribute } from "../target-cpu.js"; import type { IrFunction } from "../../ir/ir.js"; +import { type FunctionLayout, layoutTierOf } from "./function-layout.js"; /** The function bodies emitted in `chunks` contiguous ranges, each by its * own emitter (LlEmitter.chunkEmitter), then merged in function order: the @@ -228,6 +229,61 @@ function partitionGroupLines(functions: readonly IrFunction[]): string[] { /** Ends the group of the definitions that follow. */ const PARTITION_GROUP_END = "; scriptc-group"; +/** Writes the generated helpers, then the function definitions with their + * group lines. With a layout, the definitions it lists, helpers included, + * move after the unlisted helpers and before the other functions, by tier, + * each in its tier's group (`layout-`). The helper compiles each + * partition's definitions in text order, so listed ones come first in their + * partitions, and it places a group's definitions in the same partitions. + * Everything else keeps its order and its source-file group. */ +function writeDefinitions( + out: string[], + layout: FunctionLayout | undefined, + helperTexts: readonly (readonly string[])[], + fnDefs: readonly string[], + groups: readonly string[], +): void { + const tierLine = (tier: number) => `${PARTITION_GROUP_END} layout-${tier}`; + const listed = new Map(); + const listIn = (tier: number, lines: readonly string[]) => { + const list = listed.get(tier) ?? []; + if (!listed.has(tier)) listed.set(tier, list); + for (const line of lines) list.push(line); + }; + if (layout === undefined || layout.size === 0) { + for (const texts of helperTexts) for (const text of texts) out.push(text); + } else { + // A helper's text can span several entries (one per line), so the + // definitions are found in the joined text. A listed definition moves + // through its closing brace; what follows it stays in place. + const joined: string[] = []; + for (const texts of helperTexts) for (const text of texts) joined.push(text); + for (const part of joined.join("\n").split(/\n(?=define )/)) { + const tier = part.startsWith("define ") ? layoutTierOf(layout, part) : undefined; + const close = tier === undefined ? -1 : part.search(/\n}(\n|$)/); + if (tier === undefined || close < 0) { + out.push(part); + continue; + } + listIn(tier, [tierLine(tier), part.slice(0, close + 2)]); + const rest = part.slice(close + 3); + if (rest !== "") out.push(rest); + } + } + const unlisted: number[] = []; + fnDefs.forEach((text, i) => { + const tier = layout === undefined || layout.size === 0 ? undefined : layoutTierOf(layout, text); + if (tier === undefined) unlisted.push(i); + else listIn(tier, ["", tierLine(tier), text]); + }); + for (const tier of [...listed.keys()].sort((a, b) => a - b)) + for (const line of listed.get(tier)!) out.push(line); + for (const [k, i] of unlisted.entries()) { + if (k > 0 || listed.size > 0) out.push(""); + out.push(groups[i] ?? PARTITION_GROUP_END, fnDefs[i]!); + } +} + export function emitModuleParts(emitter: LlEmitter): string[] { // Function bodies first (the literal/unit/fn-value tables fill as they // emit), then the file assembles around them — the runtime ABI’s order. @@ -942,21 +998,24 @@ export function emitModuleParts(emitter: LlEmitter): string[] { ); } if (globals.length > 0) out.push(``); - for (const line of helpers) out.push(line); - for (const line of ffiCallbacks.defs) out.push(line); - for (const line of shapes.defs) out.push(line); - for (const line of classShapes.defs) out.push(line); - for (const line of classObjDefs) out.push(line); - for (const line of emitter.walkers.defs) out.push(line); - for (const line of emitter.dyn.defs) out.push(line); - for (const line of wrappers) out.push(line); - for (const line of asyncDefs) out.push(line); - for (const line of emitter.resolveThunkDefs) out.push(line); - const groups = partitionGroupLines(emitter.mod.functions); - for (let i = 0; i < fnDefs.length; i++) { - if (i > 0) out.push(""); - out.push(groups[i] ?? PARTITION_GROUP_END, fnDefs[i]!); - } + writeDefinitions( + out, + emitter.targetOptions.functionLayout, + [ + helpers, + ffiCallbacks.defs, + shapes.defs, + classShapes.defs, + classObjDefs, + emitter.walkers.defs, + emitter.dyn.defs, + wrappers, + asyncDefs, + emitter.resolveThunkDefs, + ], + fnDefs, + partitionGroupLines(emitter.mod.functions), + ); if (fnDefs.length === 0) out.push(""); out.push(PARTITION_GROUP_END, ""); // WebAssembly modules translated into this program, and the registry. diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index 5569599ee..0b0bf11e0 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -1,4 +1,5 @@ import type { TargetCpu } from "../target-cpu.js"; +import type { FunctionLayout } from "./function-layout.js"; import { relieveHeapPressure } from "../../heap-pressure.js"; import { wasmBoundsChecks } from "./wasm-modules.js"; import { jsTruthy } from "./jsval.js"; @@ -487,6 +488,8 @@ export interface LlvmTargetOptions { /** The host's process primitives, where it can fork (the native * compiler's). */ forkPrimitives?: ForkPrimitives | undefined; + /** Functions to write first, by tier (function-layout.ts). */ + functionLayout?: FunctionLayout; /** Exact frontend sources for dev-build locations and variable metadata. */ debugSources?: ReadonlyMap; /** Pointer width of the target C ABI. Native targets are 64-bit today. */ diff --git a/packages/compiler/src/backend/llvm/function-layout.ts b/packages/compiler/src/backend/llvm/function-layout.ts new file mode 100644 index 000000000..00cf233db --- /dev/null +++ b/packages/compiler/src/backend/llvm/function-layout.ts @@ -0,0 +1,41 @@ +/** Function layouts: the functions that runs of a program execute, in tiers + * (scripts/refresh-cli-layout.mjs writes the native compiler's). The emitter + * writes a listed function before the others, in a partition group of its + * tier, so the code that runs together sits together in the executable. */ + +/** Layout key → tier (1 first). */ +export type FunctionLayout = ReadonlyMap; + +/** The layout key of an LLVM symbol: module numbers (`%m12.`, `%init.12`), + * which change when modules are added, are left out. */ +export function functionLayoutKey(symbol: string): string { + return symbol.replace(/_x25_m\d+_/g, "_x25_m_").replace(/_x25_init_\d+$/, "_x25_init_"); +} + +/** Reads a layout's lines, each ` `. A function listed in two + * tiers keeps the first. */ +export function parseFunctionLayout(text: string): FunctionLayout { + const layout = new Map(); + for (const line of text.split("\n")) { + const space = line.indexOf(" "); + if (space < 1) continue; + const tier = Number(line.slice(0, space)); + const key = functionLayoutKey(line.slice(space + 1).trim()); + if (Number.isInteger(tier) && tier > 0 && !layout.has(key)) layout.set(key, tier); + } + return layout; +} + +/** The lowest tier of the functions `text` defines, or undefined when the + * layout lists none of them. */ +export function layoutTierOf(layout: FunctionLayout, text: string): number | undefined { + let tier: number | undefined; + for (let at = text.indexOf("define "); at >= 0; at = text.indexOf("\ndefine ", at + 1)) { + const name = text.indexOf("@", at); + const open = text.indexOf("(", name); + if (name < 0 || open < 0) break; + const listed = layout.get(functionLayoutKey(text.slice(name + 1, open))); + if (listed !== undefined && (tier === undefined || listed < tier)) tier = listed; + } + return tier; +} diff --git a/packages/compiler/src/compile-types.ts b/packages/compiler/src/compile-types.ts index 8ec7b5ffd..2703e008b 100644 --- a/packages/compiler/src/compile-types.ts +++ b/packages/compiler/src/compile-types.ts @@ -54,6 +54,11 @@ export interface CompileBaseOptions { * merge-profiles`). Code the profile does not describe, or describes * from an older version of the program, is optimized as without one. */ profileUse?: string; + /** A function layout (scripts/refresh-cli-layout.mjs; gzip-compressed when + * the name ends in .gz): the listed functions are written first, by tier, + * so the code that runs together sits together in the executable. The + * native compiler's build uses it. Executables and LLVM output. */ + functionLayout?: string; /** Eligible packages compile automatically. Explicit names override automatic selection heuristics. */ npmStatic?: readonly string[] | "auto"; diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index ffd56a1bf..ace268af7 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -48,6 +48,7 @@ export type { import { compilePackedLibrary } from "./backend/library-pack.js"; import { node24FetchCompatProfile } from "./compat/fetch-profile.js"; import { libFnSignatures } from "./ir/builtin-signatures.js"; +import { type FunctionLayout, parseFunctionLayout } from "./backend/llvm/function-layout.js"; import { InternalCompilerError } from "./errors.js"; import { frontendProcessExecArgv } from "./frontend-process-args.js"; import { type ChildProcess, spawn } from "node:child_process"; @@ -57,6 +58,7 @@ import { copyFile, mkdir, mkdtemp, readFile, rename, rm, writeFile } from "node: import { tmpdir } from "node:os"; import { basename, dirname, join, resolve } from "node:path"; import { fileURLToPath } from "node:url"; +import { gunzipSync } from "node:zlib"; import { clearCcCaches, configuredTargetPlatform, @@ -774,6 +776,20 @@ async function readNativeProfile( return { use: { path, digest: createHash("sha256").update(bytes).digest("hex") } }; } +/** The request's function layout. */ +async function readFunctionLayout( + opts: CompileRequestOptions, +): Promise<{ functionLayout?: FunctionLayout }> { + if (opts.functionLayout === undefined) return {}; + const path = resolve(opts.functionLayout); + const bytes = await readFile(path); + return { + functionLayout: parseFunctionLayout( + (path.endsWith(".gz") ? gunzipSync(bytes) : bytes).toString("utf8"), + ), + }; +} + function usesPrecompiledRuntimePack(opts: CompileRequestOptions, backend: "llvm"): boolean { if (backend !== "llvm" || opts.sanitize === true) return false; return nativeCodegenTarget() !== null; @@ -847,6 +863,7 @@ async function prepareExecutableInput( llvm = emitLlvmModuleSource(mod, { targetTriple: process.env["SCRIPTC_TARGET"] ?? "", ...debugOptions, + ...(await readFunctionLayout(opts)), pointerBits: buildPlatform === "wasi" ? 32 : 64, wasi: buildPlatform === "wasi", runtimeAbiMarker: outputKind === "obj", @@ -920,6 +937,7 @@ async function prepareExecutableInput( llvmSource = emitLlvmModuleSource(mod, { targetTriple: process.env["SCRIPTC_TARGET"] ?? "", ...debugOptions, + ...(await readFunctionLayout(opts)), pointerBits: buildPlatform === "wasi" ? 32 : 64, wasi: buildPlatform === "wasi", runtimeAbiMarker: useRuntimePack, diff --git a/packages/compiler/test/function-layout.test.ts b/packages/compiler/test/function-layout.test.ts new file mode 100644 index 000000000..8619c5b34 --- /dev/null +++ b/packages/compiler/test/function-layout.test.ts @@ -0,0 +1,147 @@ +import { execFileSync } from "node:child_process"; +import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { gzipSync } from "node:zlib"; +import { expect, test } from "vitest"; +import { compile } from "../src/index.js"; +import { + functionLayoutKey, + layoutTierOf, + parseFunctionLayout, +} from "../src/backend/llvm/function-layout.js"; + +const source = ` +function first(n: number): number { return n + 1; } +function second(n: number): number { return n * 2; } +function third(n: number): number { return n - 3; } +console.log(first(Number(process.argv.length)), second(4), third(5)); +`; + +async function emitLlvm(layout?: string): Promise { + const dir = await mkdtemp(join(tmpdir(), "scriptc-function-layout-")); + try { + const entry = join(dir, "main.ts"); + const outPath = join(dir, "main.ll"); + await writeFile(entry, source); + let functionLayout: string | undefined; + if (layout !== undefined) { + functionLayout = join(dir, "layout.gz"); + await writeFile(functionLayout, gzipSync(layout)); + } + const result = await compile(entry, { + outDir: dir, + outPath, + outputKind: "llvm", + ...(functionLayout === undefined ? {} : { functionLayout }), + }); + expect(result.ok, JSON.stringify(result.diagnostics)).toBe(true); + return await readFile(outPath, "utf8"); + } finally { + await rm(dir, { recursive: true, force: true }); + } +} + +/** Each defined function's name with the partition group line it follows. */ +function definitions(llvm: string): { name: string; group: string }[] { + const out: { name: string; group: string }[] = []; + let group = ""; + for (const line of llvm.split("\n")) { + if (line.startsWith("; scriptc-group")) group = line.slice("; scriptc-group".length).trim(); + const name = /^define [^@]*@([\w.$]+)\(/.exec(line)?.[1]; + if (name !== undefined) out.push({ name, group }); + } + return out; +} + +test("a layout writes the functions it lists first, by tier, in their tier's group", async () => { + const plain = definitions(await emitLlvm()).filter((d) => /_(first|second|third)$/.test(d.name)); + expect(plain.map((d) => d.name.replace(/^sc_b?f_/, ""))).toEqual(["first", "second", "third"]); + expect(plain.every((d) => !d.group.startsWith("layout-"))).toBe(true); + + const names = new Map(plain.map((d) => [d.name.replace(/^sc_b?f_/, ""), d.name])); + const laid = definitions(await emitLlvm(`2 ${names.get("first")}\n1 ${names.get("third")}\n`)); + const index = (fn: string) => laid.findIndex((d) => d.name === names.get(fn)); + expect(index("third")).toBeLessThan(index("first")); + expect(index("first")).toBeLessThan(index("second")); + expect(laid[index("third")]!.group).toBe("layout-1"); + expect(laid[index("first")]!.group).toBe("layout-2"); + expect(laid[index("second")]!.group).not.toMatch(/^layout-/); + // Listed functions precede every unlisted definition in the function section. + const firstUnlisted = laid.findIndex( + (d, i) => i > index("third") && !d.group.startsWith("layout-"), + ); + expect(firstUnlisted).toBeGreaterThan(index("first")); +}); + +test("layout keys leave out module numbers", () => { + expect(functionLayoutKey("sc_bf__x25_m447_lowerCall")).toBe( + functionLayoutKey("sc_bf__x25_m12_lowerCall"), + ); + expect(functionLayoutKey("sc_f__x25_init_253")).toBe(functionLayoutKey("sc_f__x25_init_7")); + expect(functionLayoutKey("sc_bf__x25_m3_Lexer_scan")).not.toBe( + functionLayoutKey("sc_bf__x25_m3_Lexer_peek"), + ); +}); + +test("a function listed twice keeps its first tier, and malformed lines are skipped", () => { + const layout = parseFunctionLayout("1 sc_f_a\n2 sc_f_a\n2 sc_f_b\nnot a line\n0 sc_f_c\n\n"); + expect([...layout]).toEqual([ + ["sc_f_a", 1], + ["sc_f_b", 2], + ]); + const text = + "define internal void @sc_f_b() {\n ret void\n}\n\ndefine void @sc_f_a() {\n ret void\n}"; + expect(layoutTierOf(layout, text)).toBe(1); + expect(layoutTierOf(layout, "define void @sc_f_z() {\n ret void\n}")).toBeUndefined(); +}); + +test("an executable built with a layout that lists helpers and functions runs unchanged", async () => { + const program = ` +class Point { constructor(public x: number, public y: number) {} } +function norm(p: Point): number { return Math.sqrt(p.x * p.x + p.y * p.y); } +const points = [new Point(3, 4), new Point(6, 8)]; +console.log(points.map(norm).join(","), points[0]!.x === 3 ? "three" : "other"); +`; + const dir = await mkdtemp(join(tmpdir(), "scriptc-function-layout-exe-")); + try { + const entry = join(dir, "main.ts"); + await writeFile(entry, program); + const llvmPath = join(dir, "main.ll"); + const emitted = await compile(entry, { outDir: dir, outPath: llvmPath, outputKind: "llvm" }); + expect(emitted.ok, JSON.stringify(emitted.diagnostics)).toBe(true); + // The generated helpers written before the functions, and one function, + // in two tiers. + const names = definitions(await readFile(llvmPath, "utf8")).map((d) => d.name); + const helpers = names.slice( + 0, + names.findIndex((name) => /^sc_b?f_/.test(name)), + ); + expect(helpers.length).toBeGreaterThan(0); + const norm = names.find((name) => /^sc_b?f_norm$/.test(name))!; + const layout = join(dir, "layout"); + await writeFile(layout, [`1 ${norm}`, ...helpers.map((name) => `2 ${name}`)].join("\n")); + const laid = join(dir, "laid.ll"); + const laidOut = await compile(entry, { + outDir: dir, + outPath: laid, + outputKind: "llvm", + functionLayout: layout, + }); + expect(laidOut.ok, JSON.stringify(laidOut.diagnostics)).toBe(true); + const order = definitions(await readFile(laid, "utf8")); + expect(order.filter((d) => d.group === "layout-2").map((d) => d.name)).toEqual(helpers); + expect(order.find((d) => d.name === norm)!.group).toBe("layout-1"); + const exe = join(dir, "main"); + const built = await compile(entry, { + outputKind: "exe", + outDir: dir, + outPath: exe, + functionLayout: layout, + }); + expect(built.ok, JSON.stringify(built.diagnostics)).toBe(true); + expect(execFileSync(exe, { encoding: "utf8" })).toBe("5,10 three\n"); + } finally { + await rm(dir, { recursive: true, force: true }); + } +}); diff --git a/scripts/build-native-cli.mts b/scripts/build-native-cli.mts index 4d3f00ff5..a26c50209 100644 --- a/scripts/build-native-cli.mts +++ b/scripts/build-native-cli.mts @@ -35,6 +35,15 @@ const useProfile = !sanitize && requestedProfile !== "" && (requestedProfile !== undefined || existsSync(committedProfile)); +// Builds lay out the compiler's functions with the committed layout +// (scripts/refresh-cli-layout.mjs), or the one SCRIPTC_NATIVE_LAYOUT names; +// an empty SCRIPTC_NATIVE_LAYOUT, and instrumented builds, use none. +const committedLayout = join(root, "packages/compiler/native/cli.layout.gz"); +const requestedLayout = process.env["SCRIPTC_NATIVE_LAYOUT"]; +const functionLayout = + profileGenerate !== undefined || requestedLayout === "" + ? undefined + : (requestedLayout ?? (existsSync(committedLayout) ? committedLayout : undefined)); let target = nativeCodegenTarget(); if (target === null || target.platform === "wasi") throw new Error("a supported native host is required to build the compiler"); @@ -124,6 +133,7 @@ const result = await compile(join(root, "packages/compiler/src/native/cli.ts"), sanitize, ...(profileGenerate === undefined ? {} : { profileGenerate }), ...(profileUse === undefined ? {} : { profileUse }), + ...(functionLayout === undefined ? {} : { functionLayout }), emitIr: process.env["SCRIPTC_NATIVE_EMIT_IR"] === "1", }); if (!result.ok) diff --git a/scripts/refresh-cli-layout.mjs b/scripts/refresh-cli-layout.mjs new file mode 100644 index 000000000..d401ac62b --- /dev/null +++ b/scripts/refresh-cli-layout.mjs @@ -0,0 +1,248 @@ +#!/usr/bin/env node +/* Refreshes packages/compiler/native/cli.layout.gz, the function layout that + * builds of the native compiler use (scripts/build-native-cli.mts). The + * layout lists, in two tiers, the functions the compiler runs: tier 1 for + * `--version` and rebuilds of unchanged programs, tier 2 for the other + * builds. The emitter writes the listed functions first, so the code a build + * runs sits together in the compiler's executable and a run maps fewer of its + * pages. + * + * Builds an instrumented native compiler for this Linux host (or reuses one + * with --instrumented), builds each training program cold and then again + * unchanged, and reads the functions each kind of run executed from the raw + * profiles. The training programs are the runtime benchmark workloads at + * `speed` and every seventh corpus program at the default optimization. A + * refresh takes about 15 minutes on 16 cores, most of it for the instrumented + * build. A stale layout lists some functions that no longer exist and misses + * new ones, which then keep their usual order. + * + * node scripts/refresh-cli-layout.mjs [--jobs 8] [--instrumented ] + */ +import { spawn, spawnSync } from "node:child_process"; +import { createHash } from "node:crypto"; +import { + appendFileSync, + mkdirSync, + mkdtempSync, + readFileSync, + readdirSync, + rmSync, + statSync, + writeFileSync, +} from "node:fs"; +import { cpus, tmpdir } from "node:os"; +import { dirname, join, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; +import { parseArgs } from "node:util"; +import { constants, gzipSync, inflateSync } from "node:zlib"; + +const root = fileURLToPath(new URL("..", import.meta.url)); +const { values } = parseArgs({ + options: { + jobs: { type: "string", default: String(Math.max(1, Math.floor(cpus().length / 2))) }, + output: { type: "string", default: join(root, "packages/compiler/native/cli.layout.gz") }, + work: { type: "string" }, + instrumented: { type: "string" }, + help: { type: "boolean", default: false }, + }, +}); +if (values.help) { + console.log( + "Usage: node scripts/refresh-cli-layout.mjs [--jobs N] [--output ] [--work

      ] [--instrumented ]", + ); + process.exit(0); +} +if (process.platform !== "linux" || process.arch !== "x64") + throw new Error("the compiler layout is collected on Linux x64"); +const jobs = Number(values.jobs); +const output = resolve(values.output); +mkdirSync(dirname(output), { recursive: true }); +const work = resolve(values.work ?? mkdtempSync(join(tmpdir(), "scriptc-cli-layout-"))); +const raw = join(work, "raw"); +const builds = join(work, "builds"); +rmSync(raw, { recursive: true, force: true }); +for (const dir of [raw, builds]) mkdirSync(dir, { recursive: true }); +const log = join(work, "training.log"); + +const cli = resolve(values.instrumented ?? join(work, "cli")); +if (values.instrumented === undefined) { + console.log(`building the instrumented compiler in ${cli}`); + const built = spawnSync( + process.execPath, + [ + "--max-old-space-size=8192", + "--import", + "tsx", + join(root, "scripts/build-native-cli.mts"), + cli, + ], + { + cwd: root, + stdio: "inherit", + env: { ...process.env, SCRIPTC_NATIVE_PROFILE_GENERATE: join(raw, "build-%4m.profraw") }, + }, + ); + if (built.status !== 0) throw new Error("the instrumented compiler did not build"); +} +const scriptc = join(cli, "bin/scriptc"); +// Phase timing shows whether a rebuild hit both caches. It is on for every +// run, so the rebuild's environment matches the first build's. +const baseEnv = { ...process.env, SCRIPTC_TIMING: "1" }; +delete baseEnv["SCRIPTC_LLVM_HELPER"]; + +/** Runs the instrumented compiler, writing its profile to `options.profile`. */ +function run(args, options) { + return new Promise((done) => { + const child = spawn(scriptc, args, { + cwd: options.cwd, + stdio: ["ignore", "pipe", "pipe"], + env: { + ...baseEnv, + SCRIPTC_CACHE_DIR: options.cache, + LLVM_PROFILE_FILE: options.profile, + }, + }); + let text = ""; + child.stdout.on("data", (chunk) => (text += chunk)); + child.stderr.on("data", (chunk) => (text += chunk)); + child.on("close", (code) => { + appendFileSync(log, `$ scriptc ${args.join(" ")}\n${text}exit ${code}\n`); + done({ ok: code === 0, text }); + }); + }); +} + +async function pool(tasks) { + let next = 0; + let passed = 0; + await Promise.all( + Array.from({ length: jobs }, async () => { + while (next < tasks.length) if (await tasks[next++]()) passed++; + }), + ); + return passed; +} + +const programNumber = (name) => Number.parseInt(name, 10); +const training = [ + ...readdirSync(join(root, "benchmarks/runtime/workloads")) + .filter((name) => name.endsWith(".ts")) + .map((name) => ({ + file: join(root, "benchmarks/runtime/workloads", name), + optimization: "speed", + })), + ...readdirSync(join(root, "tests/corpus")) + .filter((name) => /^\d+-.*\.ts$/.test(name) && programNumber(name) % 7 === 0) + .map((name) => ({ file: join(root, "tests/corpus", name), optimization: "release" })), +]; + +// Tier 1 collects each run that took the warm path from its own profile; a +// rebuild that missed a cache (it shows no `frontend-cache-hit` or +// `executable-cache-hit` phase) is left out. Tier 2 pools the first builds. +const warm = new Set(); +const cold = new Set(); +let skipped = 0; +async function warmRun(args, cache, name, cacheHits) { + const profile = join(raw, `warm-${name}.profraw`); + const { ok, text } = await run(args, { cwd: root, cache, profile }); + if (ok && cacheHits.every((phase) => text.includes(`"phase":"${phase}"`))) + for (const fn of executedFunctions(profile)) warm.add(fn); + else skipped++; + rmSync(profile, { force: true }); +} + +const started = Date.now(); +await warmRun(["--version"], join(work, "cache-version"), "version", []); +console.log(`training: ${training.length} programs, cold then unchanged, ${jobs} at a time`); +const passed = await pool( + training.map((program, index) => async () => { + const cache = join(work, `cache-${index}`); + const out = join(builds, `program-${index}`); + const args = ["build", program.file, `--optimization=${program.optimization}`, "-o", out]; + const { ok } = await run(args, { cwd: root, cache, profile: join(raw, "cold-%4m.profraw") }); + if (ok) + await warmRun(args, cache, String(index), ["frontend-cache-hit", "executable-cache-hit"]); + rmSync(cache, { recursive: true, force: true }); + rmSync(out, { force: true }); + return ok; + }), +); +console.log( + `trained in ${Math.round((Date.now() - started) / 1000)} s; ${passed} of ${training.length} programs built, ${skipped} rebuilds left out of tier 1 (see ${log})`, +); + +/** Functions a raw profile (LLVM's format version 10) records as run: the + * names whose counters are not all zero, without the file prefix of + * internal functions. */ +function executedFunctions(path) { + const buf = readFileSync(path); + const u64 = (offset) => Number(buf.readBigUInt64LE(offset)); + if (buf.readBigUInt64LE(0) !== 0xff6c70726f667281n) + throw new Error(`${path} is not a 64-bit raw profile`); + const version = Number(buf.readBigUInt64LE(8) & 0xffffffffn); + if (version !== 10) throw new Error(`${path} has raw profile version ${version}, expected 10`); + const [binaryIdsBytes, records, beforeCounters, counters, afterCounters] = [2, 3, 4, 5, 6].map( + (field) => u64(field * 8), + ); + const [bitmapBytes, afterBitmap, namesBytes] = [7, 8, 9].map((field) => u64(field * 8)); + const valueKinds = u64(15 * 8) + 1; + const recordBytes = Math.ceil((6 * 8 + 4 + 2 * valueKinds + 4) / 8) * 8; + const dataStart = 16 * 8 + binaryIdsBytes; + const countersStart = dataStart + records * recordBytes + beforeCounters; + const namesStart = countersStart + counters * 8 + afterCounters + bitmapBytes + afterBitmap; + const countersDelta = buf.readBigInt64LE(10 * 8); + const names = new Map(); + let at = namesStart; + const uleb = () => { + let value = 0; + let scale = 1; + for (;;) { + const byte = buf[at++]; + value += (byte & 0x7f) * scale; + if ((byte & 0x80) === 0) return value; + scale *= 128; + } + }; + while (at < namesStart + namesBytes) { + const plain = uleb(); + const packed = uleb(); + if (plain === 0) break; + const bytes = + packed === 0 ? buf.subarray(at, at + plain) : inflateSync(buf.subarray(at, at + packed)); + at += packed === 0 ? plain : packed; + for (const name of bytes.toString("latin1").split("\x01")) + names.set(createHash("md5").update(name, "latin1").digest().readBigUInt64LE(0), name); + } + const ran = []; + for (let index = 0; index < records; index++) { + const record = dataStart + index * recordBytes; + const counterOffset = Number( + buf.readBigInt64LE(record + 16) - (countersDelta - BigInt(index * recordBytes)), + ); + const count = buf.readUInt32LE(record + 48); + for (let c = 0; c < count; c++) { + if (buf.readBigUInt64LE(countersStart + counterOffset + c * 8) !== 0n) { + const name = names.get(buf.readBigUInt64LE(record)); + if (name !== undefined) ran.push(name.slice(name.indexOf(";") + 1)); + break; + } + } + } + return ran; +} + +for (const name of readdirSync(raw)) + if (name.startsWith("cold-")) for (const fn of executedFunctions(join(raw, name))) cold.add(fn); +const lines = [ + ...[...warm].sort().map((name) => `1 ${name}`), + ...[...cold] + .filter((name) => !warm.has(name)) + .sort() + .map((name) => `2 ${name}`), +]; +writeFileSync(output, gzipSync(`${lines.join("\n")}\n`, { level: constants.Z_BEST_COMPRESSION })); +console.log( + `wrote ${output}: ${warm.size} tier-1 and ${lines.length - warm.size} tier-2 functions (${statSync(output).size} bytes)`, +); +rmSync(builds, { recursive: true, force: true }); +if (values.work === undefined) rmSync(work, { recursive: true, force: true }); From 5a3d6d79037bf839e50f70adc828e7c6625b658f Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sat, 24 Oct 2026 14:53:54 -0700 Subject: [PATCH 020/128] Call function tables without boxing or reference counting Values typed `F | undefined` for a function type F are now plain closure pointers (nullable-pointer unions), so a keyed read of a `Record` or a Map.get no longer allocates a union box. Keyed record reads, string-keyed Map.get and checked extractions lend the stored closure as a receiver or callee when ReferenceWrites proves the call cannot write the locations it was read from, and optional-chain receivers lend under the same proof. Owned record overflow reads use the inline entry lookup. Indirect closure calls skip the ambient receiver bracket for closures whose bodies never observe it (new ScrClosure.function_kind bit SCR_FN_RECEIVER_FREE; signature adapters that only forward the receiver copy it from their original), and a callValue that forwards `dyn.this` needs no bracket at all. Co-Authored-By: Claude Opus 5.5 --- benchmarks/runtime/README.md | 1 + .../runtime/workloads/handler-tables.json | 6 + .../runtime/workloads/handler-tables.ts | 108 ++++++++++++++++ .../src/backend/llvm/checked-narrows.ts | 9 +- packages/compiler/src/backend/llvm/common.ts | 4 + .../backend/llvm/constant-callbacks.test.ts | 41 +++++++ packages/compiler/src/backend/llvm/emitter.ts | 61 ++++++++-- .../src/backend/llvm/expr-callbacks.ts | 20 ++- .../compiler/src/backend/llvm/expr-calls.ts | 115 ++++++++++++++++-- .../compiler/src/backend/llvm/expr-control.ts | 33 +++-- .../compiler/src/backend/llvm/expr-dynamic.ts | 6 +- .../compiler/src/backend/llvm/expr-records.ts | 107 ++++++++++++---- .../compiler/src/backend/llvm/lib-http2.ts | 5 +- .../compiler/src/backend/llvm/lib-network.ts | 2 +- .../src/backend/llvm/map-read-lifetimes.ts | 64 ++++++++++ .../src/backend/llvm/nullable-unions.test.ts | 21 +++- .../src/backend/llvm/nullable-unions.ts | 22 +++- .../compiler/src/backend/llvm/receivers.ts | 40 +++++- .../src/backend/llvm/reference-writes.test.ts | 43 +++++++ .../src/backend/llvm/reference-writes.ts | 13 ++ .../src/backend/llvm/stack-callbacks.ts | 6 +- packages/compiler/src/ir/receiver-readers.ts | 92 ++++++++++---- .../8230-function-record-dispatch.ts.json | 6 + .../corpus/8231-function-table-shapes.ts.json | 6 + .../8232-optional-function-values.ts.json | 6 + packages/runtime/src/scr_closure.h | 9 +- packages/runtime/src/scr_json.c | 9 +- tests/corpus/8230-function-record-dispatch.ts | 107 ++++++++++++++++ tests/corpus/8231-function-table-shapes.ts | 108 ++++++++++++++++ tests/corpus/8232-optional-function-values.ts | 75 ++++++++++++ .../8230-function-record-dispatch.ts.json | 1 + .../8231-function-table-shapes.ts.json | 1 + .../8232-optional-function-values.ts.json | 1 + 33 files changed, 1042 insertions(+), 106 deletions(-) create mode 100644 benchmarks/runtime/workloads/handler-tables.json create mode 100644 benchmarks/runtime/workloads/handler-tables.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8230-function-record-dispatch.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8231-function-table-shapes.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8232-optional-function-values.ts.json create mode 100644 tests/corpus/8230-function-record-dispatch.ts create mode 100644 tests/corpus/8231-function-table-shapes.ts create mode 100644 tests/corpus/8232-optional-function-values.ts create mode 100644 tests/harness/corpus-costs/8230-function-record-dispatch.ts.json create mode 100644 tests/harness/corpus-costs/8231-function-table-shapes.ts.json create mode 100644 tests/harness/corpus-costs/8232-optional-function-values.ts.json diff --git a/benchmarks/runtime/README.md b/benchmarks/runtime/README.md index af3d3d239..4c6cf45ed 100644 --- a/benchmarks/runtime/README.md +++ b/benchmarks/runtime/README.md @@ -16,6 +16,7 @@ Application-shaped workloads for measuring the speed of compiled executables. Ea | `dynamic-methods` | cpu | untyped JavaScript calling builtin methods on values it does not type: string `slice`/`indexOf`/`toUpperCase`/`padStart`, array `push`/`pop`/`includes`, `Map` and `Set`, and an object's own methods | | `dynamic-properties` | cpu | untyped JavaScript reading and writing properties of values it does not type: records built by object literals in two key orders, nested records, and instances of a class and its subclass | | `functional-pipeline` | cpu | `filter`/`map`/`reduce`/`flatMap` chains, closures, small records | +| `handler-tables` | cpu | dispatch tables of functions: `Record` read as `t[k]!(…)`, `t[k]?.(…)` and through a checked local, a `Map`, an array of handlers, and an object literal of methods; some handlers declare fewer parameters than the table type | | `intern-table`, `intern-table-map`, `intern-table-1`, `intern-table-map-1` | cpu | worker threads interning the same type-like objects under string keys and records under number keys, then hits and misses: one shared `InternTable` per kind of key, or a module-level `Map` per thread (the `-map` entries), with 8 threads or 1 (the `-1` entries); under Node.js every thread has its own tables | | `json-records` | cpu | `JSON.stringify`, typed `JSON.parse`, Map aggregation | | `json-unions` | cpu | `JSON.parse` into discriminated unions: an event log with eight kinds and nested expression trees with nine, evaluated after the cast | diff --git a/benchmarks/runtime/workloads/handler-tables.json b/benchmarks/runtime/workloads/handler-tables.json new file mode 100644 index 000000000..1408ae91e --- /dev/null +++ b/benchmarks/runtime/workloads/handler-tables.json @@ -0,0 +1,6 @@ +{ + "entry": "workloads/handler-tables.ts", + "args": [ + "4" + ] +} diff --git a/benchmarks/runtime/workloads/handler-tables.ts b/benchmarks/runtime/workloads/handler-tables.ts new file mode 100644 index 000000000..b0a61fcfe --- /dev/null +++ b/benchmarks/runtime/workloads/handler-tables.ts @@ -0,0 +1,108 @@ +// Dispatch tables of functions: a `Record` of opcode handlers +// called as `ops[name]!(…)`, `ops[name]?.(…)` and through a checked local, +// a `Map` of the same handlers, an array of handlers indexed by +// opcode number, and an object literal of methods. Some handlers declare +// fewer parameters than the table's function type. +type Op = (acc: number, arg: number) => number; + +const ops: Record = { + add: (acc, arg) => acc + arg, + sub: (acc, arg) => acc - arg, + mul: (acc, arg) => (acc * arg) % 1000003, + neg: (acc) => -acc, + half: (acc) => Math.floor(acc / 2), + mix: (acc, arg) => (acc ^ arg) & 0xffff, +}; + +const byName = new Map(Object.entries(ops)); +const byCode: Op[] = Object.values(ops); +const names = Object.keys(ops); + +const methods = { + add(acc: number, arg: number): number { + return acc + arg; + }, + sub(acc: number, arg: number): number { + return acc - arg; + }, + mul(acc: number, arg: number): number { + return (acc * arg) % 1000003; + }, +}; + +interface Insn { + name: string; + code: number; + arg: number; +} + +function program(length: number): Insn[] { + const out: Insn[] = []; + let seed = 12345; + for (let i = 0; i < length; i++) { + seed = (seed * 1103515245 + 12345) % 2147483648; + const code = seed % (names.length + 1); + // One in seven instructions names an opcode no table holds. + out.push({ name: code < names.length ? names[code]! : "nop", code, arg: (seed >> 8) % 97 }); + } + return out; +} + +function runAsserted(insns: Insn[]): number { + let acc = 1; + for (const insn of insns) if (insn.name !== "nop") acc = ops[insn.name]!(acc, insn.arg); + return acc; +} + +function runOptional(insns: Insn[]): number { + let acc = 1; + for (const insn of insns) acc = ops[insn.name]?.(acc, insn.arg) ?? acc + 1; + return acc; +} + +function runChecked(insns: Insn[]): number { + let acc = 1; + for (const insn of insns) { + const handler = ops[insn.name]; + if (handler) acc = handler(acc, insn.arg); + } + return acc; +} + +function runMap(insns: Insn[]): number { + let acc = 1; + for (const insn of insns) { + const handler = byName.get(insn.name); + if (handler !== undefined) acc = handler(acc, insn.arg); + } + return acc; +} + +function runArray(insns: Insn[]): number { + let acc = 1; + for (const insn of insns) if (insn.code < byCode.length) acc = byCode[insn.code]!(acc, insn.arg); + return acc; +} + +function runMethods(insns: Insn[]): number { + let acc = 1; + for (const insn of insns) { + if (insn.code === 0) acc = methods.add(acc, insn.arg); + else if (insn.code === 1) acc = methods.sub(acc, insn.arg); + else if (insn.code === 2) acc = methods["mul"](acc, insn.arg); + } + return acc; +} + +const rounds = Number(process.argv[2] ?? "4"); +const insns = program(200_000); +const totals = [0, 0, 0, 0, 0, 0]; +for (let round = 0; round < rounds * 10; round++) { + totals[0] = (totals[0]! + runAsserted(insns)) % 1e9; + totals[1] = (totals[1]! + runOptional(insns)) % 1e9; + totals[2] = (totals[2]! + runChecked(insns)) % 1e9; + totals[3] = (totals[3]! + runMap(insns)) % 1e9; + totals[4] = (totals[4]! + runArray(insns)) % 1e9; + totals[5] = (totals[5]! + runMethods(insns)) % 1e9; +} +console.log(totals.join(" ")); diff --git a/packages/compiler/src/backend/llvm/checked-narrows.ts b/packages/compiler/src/backend/llvm/checked-narrows.ts index c1514df1e..5fbaf6d08 100644 --- a/packages/compiler/src/backend/llvm/checked-narrows.ts +++ b/packages/compiler/src/backend/llvm/checked-narrows.ts @@ -101,6 +101,13 @@ export class CheckedNarrows { } } +/** A call to a checked extraction whose helper borrows its argument, so + * emitCheckedNarrowReceiver can lend the payload instead of calling it. */ +export function borrowsCheckedNarrow(host: LlvmEmitterContext, e: IrExpr): boolean { + if (e.kind !== "call" || host.checkedNarrows.get(e) === null) return false; + return host.callLifetimes.borrowed.get(e.callee)?.has(0) === true && host.mayThrow.has(e.callee); +} + /** A checked extraction consumed at once by a field or tag load. The * successful arm borrows the payload from the union, which itself borrows * from its source: a dense array read keeps the element in the array slot, @@ -113,7 +120,7 @@ export function emitCheckedNarrowReceiver( narrow: CheckedNarrowCall, ): LlValue | null { const callee = narrow.call.callee; - if (!host.callLifetimes.borrowed.get(callee)?.has(0) || !host.mayThrow.has(callee)) return null; + if (!borrowsCheckedNarrow(host, narrow.call)) return null; const B = host.B; const read = host.optionalArrayReads.get(narrow.value); const union = read diff --git a/packages/compiler/src/backend/llvm/common.ts b/packages/compiler/src/backend/llvm/common.ts index cca1b603b..f1bdeb557 100644 --- a/packages/compiler/src/backend/llvm/common.ts +++ b/packages/compiler/src/backend/llvm/common.ts @@ -277,6 +277,10 @@ export function emitFieldAbsentTest(B: BlockBuilder, value: string, undefinedTag return absent; } +/** ScrClosure.function_kind's SCR_FN_RECEIVER_FREE bit (scr_closure.h): + * the body never observes the ambient receiver. */ +export const CLOSURE_RECEIVER_FREE = 16; + /** The right-hand side of a JS function-identity comparison: two closures * are one function when their identity roots match (a signature adapter * stands for the function it adapts). Both operands must be closures. */ diff --git a/packages/compiler/src/backend/llvm/constant-callbacks.test.ts b/packages/compiler/src/backend/llvm/constant-callbacks.test.ts index e8ca5571f..8bdab0408 100644 --- a/packages/compiler/src/backend/llvm/constant-callbacks.test.ts +++ b/packages/compiler/src/backend/llvm/constant-callbacks.test.ts @@ -299,6 +299,47 @@ test("receiver readers propagate backwards through direct calls and recursion", ).toBe(false); }); +test("signature adapters that only forward the receiver ignore it with their original", () => { + const forward = (receiver: IrExpr): IrStmt => ({ + kind: "return", + value: { + kind: "callValue", + callee: ref("f.0"), + receiver, + args: [{ kind: "varRef", localId: "a.0", type: F64, loc }], + type: BOOL, + loc, + }, + loc, + }); + const ambient: IrExpr = { kind: "libCall", fn: "dyn.this", args: [], type: { kind: "dyn" }, loc }; + const adapter: IrFunction = { + name: "%fn.adapt.x.impl", + params: [{ localId: "a.0", name: "a", type: F64 }], + captures: [{ localId: "f.0", name: "f", type: callback }], + locals: [ + { id: "f.0", name: "f", type: callback, mutable: false, boxed: true }, + { id: "a.0", name: "a", type: F64, mutable: false }, + ], + returnType: BOOL, + body: [forward(ambient)], + loc, + }; + const readers = (): AmbientReceiverReaders => + new AmbientReceiverReaders(new Map([[adapter.name, adapter]])); + // The adapter itself reads the receiver, only to forward it. + expect(readers().ignores(adapter)).toBe(false); + expect(readers().forwardsOnly(adapter)).toBe(true); + // Any other read of the receiver, or forwarding something else, does not. + adapter.body = [thisRead, forward(ambient)]; + expect(readers().forwardsOnly(adapter)).toBe(false); + adapter.body = [forward(ref("a.0", F64))]; + expect(readers().forwardsOnly(adapter)).toBe(false); + adapter.body = [forward(ambient)]; + adapter.captures = []; + expect(readers().forwardsOnly(adapter)).toBe(false); +}); + test("virtual calls admit every same-named method", () => { const call: IrStmt = { kind: "exprStmt", diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index 1a2c8bef8..4c15ae61d 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -183,14 +183,14 @@ import { unionBoxBits, } from "./inline-unions.js"; import { OptionalArrayReads, type LocalArrayRead } from "./local-array-reads.js"; -import { CheckedNarrows } from "./checked-narrows.js"; +import { borrowsCheckedNarrow, CheckedNarrows } from "./checked-narrows.js"; import { emitDenseArraySet, emitDenseSlotUnlink, SCR_ELEM_I32, type ArrayAccess, } from "./dense-array-access.js"; -import { matchMapRead, type MapReadLifetimes } from "./map-read-lifetimes.js"; +import { matchMapRead, pointerMapGet, type MapReadLifetimes } from "./map-read-lifetimes.js"; import { type MapEntryFusion } from "./map-entry-fusion.js"; import { emitBorrowedFieldSequence, guardedValue } from "./borrowed-receivers.js"; import { emitBorrowedInputs } from "./borrowed-inputs.js"; @@ -213,7 +213,13 @@ import { } from "./string-slices.js"; import { LazyCaptures } from "./lazy-captures.js"; import { StackCaptures } from "./stack-captures.js"; -import { emitFieldAbsentTest, f64Lit, SCR_ARR_FIELD, SCR_ARR_FROZEN } from "./common.js"; +import { + CLOSURE_RECEIVER_FREE, + emitFieldAbsentTest, + f64Lit, + SCR_ARR_FIELD, + SCR_ARR_FROZEN, +} from "./common.js"; import { ffiExtendsNarrowIntegers } from "../targets.js"; import { emitLiteralExpr, @@ -285,7 +291,12 @@ import { emitBytesSet, emitBytesIntrinsic, } from "./expr-bytes.js"; -import { emitRegexIntrinsic, emitRecordKeyGet, keyedRecordReadInto } from "./expr-records.js"; +import { + emitRecordKeyGet, + emitRegexIntrinsic, + keyedRecordReadInto, + pointerRecordKeyGet, +} from "./expr-records.js"; import { dynPromiseAdapter, streamTypedRefCommitAdapter, @@ -2540,7 +2551,7 @@ export class LlEmitter { ret === "void" ? ` ${call}` : ` %r = ${call}`, ret === "void" ? ` ret void` : ` ret ${ret} %r`, `}`, - `@${mangleFnClosure(name)} = internal ${this.mod.workers === true || this.mod.lib?.threadInstances === true ? "thread_local " : ""}global %ScrClosure { ${this.sizeType} -1, ptr @${mangleWrapper(name)}, ${this.sizeType} 0, ptr null, i32 ${(fn.generator ? 1 : 0) + (fn.async ? 2 : 0) + (fn.ownsPrototype ? 4 : 0)}, i32 0, ptr null, ptr ${lending ? `@${mangleBorrowingWrapper(name)}` : "null"} }`, + `@${mangleFnClosure(name)} = internal ${this.mod.workers === true || this.mod.lib?.threadInstances === true ? "thread_local " : ""}global %ScrClosure { ${this.sizeType} -1, ptr @${mangleWrapper(name)}, ${this.sizeType} 0, ptr null, i32 ${this.closureFunctionKind(fn)}, i32 0, ptr null, ptr ${lending ? `@${mangleBorrowingWrapper(name)}` : "null"} }`, ``, ); if (lending) @@ -5715,7 +5726,10 @@ export class LlEmitter { unwrittenRead(e: IrExpr, writes: Writes): boolean { const rw = this.referenceWrites; if (rw === null) return false; - const keys = rw.readKeys(e, (call) => this.borrowedReturnKeys(call.callee)); + // A checked extraction reads nothing besides the union it narrows. + const keys = rw.readKeys(e, (call) => + borrowsCheckedNarrow(this, call) ? [] : this.borrowedReturnKeys(call.callee), + ); return keys !== null && !rw.conflicts(keys, writes); } @@ -5992,7 +6006,21 @@ export class LlEmitter { } case "fieldGet": case "recordGet": + case "recordKeyGet": return this.borrowsWithoutOwning(e) && this.unownedWalk(e.obj); + case "mapIntrinsic": { + // A Map binding's own pointer (maps are not plainReference types). + if (!this.borrowsWithoutOwning(e) || e.receiver.kind !== "varRef") return false; + const binding = this.binding(e.receiver.localId); + return ( + binding.kind === "global" || + (binding.kind === "local" && + binding.local !== undefined && + !binding.local.boxed && + !binding.local.tdz && + !this.localUnionStorage.has(e.receiver.localId)) + ); + } case "unionNarrow": case "downcast": case "upcast": @@ -7244,6 +7272,11 @@ export class LlEmitter { return this.nullableFieldGet(e) === null; case "recordGet": return true; + // A keyed read whose hits are all the result's own pointer. + case "recordKeyGet": + return pointerRecordKeyGet(this, e); + case "mapIntrinsic": + return pointerMapGet(this, e); // emitReadReceiver lends a required element of a borrowed array when // computing the index removes no edge. case "arrayGet": @@ -7389,8 +7422,20 @@ export class LlEmitter { return wrapEmitterListener(this, target, adapterFn); } - unwrapNullableClosure(u: string, funcTag: number): string { - return unwrapNullableClosure(this, u, funcTag); + /** ScrClosure.function_kind for a closure over `fn`: generator 1, async + * 2, own prototype 4, and SCR_FN_RECEIVER_FREE (16) when its body never + * observes the ambient receiver, so indirect callers skip the bracket. */ + closureFunctionKind(fn: IrFunction): number { + return ( + (fn.generator ? 1 : 0) + + (fn.async ? 2 : 0) + + (fn.ownsPrototype ? 4 : 0) + + (this.receiverReaders.ignores(fn) ? CLOSURE_RECEIVER_FREE : 0) + ); + } + + unwrapNullableClosure(u: string, unionId: string, funcTag: number): string { + return unwrapNullableClosure(this, u, unionId, funcTag); } closeBindThunkFor(cbUnion: IrType, retServer: boolean): string { diff --git a/packages/compiler/src/backend/llvm/expr-callbacks.ts b/packages/compiler/src/backend/llvm/expr-callbacks.ts index 398aebb21..ad827c4bf 100644 --- a/packages/compiler/src/backend/llvm/expr-callbacks.ts +++ b/packages/compiler/src/backend/llvm/expr-callbacks.ts @@ -974,10 +974,20 @@ export function wrapEmitterListener( export function unwrapNullableClosure( host: LlvmEmitterContext, u: string, + unionId: string, funcTag: number, ): string { const B = host.B; host.declare(`declare ptr @scr_closure_retain_v(ptr)`); + const nullable = host.nullableUnions.get(unionId); + if (nullable !== null) { + // The union is the closure pointer itself (NULL for the unit arm). + if (nullable.repr !== "single" || nullable.nullTag >= 0 || nullable.refTag !== funcTag) + throw new InternalCompilerError("llvm emitter bug: nullable callback union shape"); + const r = B.tmp(); + B.line(`${r} = call ptr ${retainSym(host.shapeHost, { kind: "union", unionId })}(ptr ${u})`); + return r; + } const slot = B.slot(); B.entryAllocas.push(`${slot} = alloca ptr`); B.line(`store ptr null, ptr ${slot}`); @@ -1026,9 +1036,9 @@ export function closeBindThunkFor( "llvm emitter bug: bound-close callback union lacks its func arm", ); const oneParam = funcArm.params.length === 1; + const cbNullable = host.nullableUnions.get(cbUnion.unionId); host.declare(`declare ptr @scr_box_get_ref(ptr)`); host.declare(`declare void @scr_closure_release(ptr)`); - host.declare(`declare void @scr_union_release(ptr)`); host.declare(`declare ptr @scr_closure_retain_v(ptr)`); host.declare(`declare void @scr_net_server_close_direct(ptr, ptr)`); let trampoline: string | null = null; @@ -1072,13 +1082,11 @@ export function closeBindThunkFor( ` %capsp = getelementptr inbounds %ScrClosure, ptr %self, i64 1`, ` %bx = load ptr, ptr %capsp`, ` %srv = call ptr @scr_box_get_ref(ptr %bx) ; +1`, - ` %tagp = getelementptr inbounds %ScrUnion, ptr %cbu, i64 0, i32 1`, - ` %tag = load i32, ptr %tagp`, + ...unionTagLines(cbNullable, "%cbu", "%tag"), ` %isfn = icmp eq i32 %tag, ${funcTag}`, ` br i1 %isfn, label %fn, label %go`, `fn:`, - ` %pp = getelementptr inbounds %ScrUnion, ptr %cbu, i64 0, i32 5`, - ` %pv = load ptr, ptr %pp`, + ...unionPeekLines(cbNullable, "%cbu", "%pv"), ]; if (oneParam) { d.push( @@ -1097,7 +1105,7 @@ export function closeBindThunkFor( ` br label %go`, `go:`, ` %regv = load ptr, ptr %regslot`, - ` call void @scr_union_release(ptr %cbu) ; the callee owns its +1 param`, + ` call void ${releaseSym(host.shapeHost, cbUnion)}(ptr %cbu) ; the callee owns its +1 param`, ` call void @scr_net_server_close_direct(ptr %srv, ptr %regv) ; reg moves`, ); if (retServer) { diff --git a/packages/compiler/src/backend/llvm/expr-calls.ts b/packages/compiler/src/backend/llvm/expr-calls.ts index d411d9172..3ecf33a79 100644 --- a/packages/compiler/src/backend/llvm/expr-calls.ts +++ b/packages/compiler/src/backend/llvm/expr-calls.ts @@ -42,7 +42,13 @@ import { } from "./classes.js"; import { LlvmUnsupportedError } from "./unsupported.js"; import type { LlvmEmitterContext, ExprOf, LlValue } from "./expr-context.js"; -import { f64Lit, ffiNativeTypeLl, ffiNativeParamLl, ffiNativeReturnLl } from "./common.js"; +import { + CLOSURE_RECEIVER_FREE, + f64Lit, + ffiNativeTypeLl, + ffiNativeParamLl, + ffiNativeReturnLl, +} from "./common.js"; import { canStackUnion, emitStackUnion } from "./stack-unions.js"; import { emitStackRecordKeyGet, scalarRecordKeyGet } from "./expr-records.js"; import { emitCallArrayRead } from "./local-array-reads.js"; @@ -761,8 +767,7 @@ export function emitCallExpr( `${c} = call ptr @scr_closure_new(ptr @${host.callTarget(e.fnName)}, ${host.sizeType} ${e.captures.length})`, ); const out = host.own({ name: c, type: e.type }); - const functionKind = - (target.generator ? 1 : 0) + (target.async ? 2 : 0) + (target.ownsPrototype ? 4 : 0); + const functionKind = host.closureFunctionKind(target); if (functionKind) { const kindPtr = B.tmp(); B.line(`${kindPtr} = getelementptr inbounds %ScrClosure, ptr ${c}, i64 0, i32 4`); @@ -800,6 +805,25 @@ export function emitCallExpr( : 0; host.declare(`declare void @scr_closure_adopt_identity(ptr, ptr, i32)`); B.line(`call void @scr_closure_adopt_identity(ptr ${c}, ptr ${original}, i32 ${length})`); + if (host.receiverReaders.forwardsOnly(target)) { + // The adapter forwards the ambient receiver to its original, + // so it ignores the receiver exactly when the original does. + const fromPtr = B.tmp(), + from = B.tmp(), + bit = B.tmp(), + toPtr = B.tmp(), + to = B.tmp(), + kind = B.tmp(); + B.line( + `${fromPtr} = getelementptr inbounds %ScrClosure, ptr ${original}, i64 0, i32 4`, + ); + B.line(`${from} = load i32, ptr ${fromPtr}`); + B.line(`${bit} = and i32 ${from}, ${CLOSURE_RECEIVER_FREE}`); + B.line(`${toPtr} = getelementptr inbounds %ScrClosure, ptr ${c}, i64 0, i32 4`); + B.line(`${to} = load i32, ptr ${toPtr}`); + B.line(`${kind} = or i32 ${to}, ${bit}`); + B.line(`store i32 ${kind}, ptr ${toPtr}`); + } } }); return out; @@ -813,7 +837,18 @@ export function emitCallExpr( const ft = e.callee.type; if (e.args.length !== ft.params.length) throw new LlvmUnsupportedError("callValue:arity", e.loc); - const callee = host.stackCallbacks.emit(host, e.callee) ?? emitBorrowedInput(host, e.callee); + // A receiver that reads the ambient `this` binds what the callee + // would see without a binding: the call forwards it unchanged and + // needs no receiver bracket (signature adapters forward this way). + const forwardsReceiver = + e.receiver?.kind === "libCall" && + e.receiver.fn === "dyn.this" && + e.receiver.args.length === 0; + const callee = + host.stackCallbacks.emit(host, e.callee) ?? + (lendsCallee(host, e, forwardsReceiver) + ? host.emitReadReceiver(e.callee) + : emitBorrowedInput(host, e.callee)); // A class instance bound as the callee's `this` (`h.fn(x)`) is boxed // only if the callee reads it: the receiver window records the // instance (owned by this frame for the whole call) with its typed-ref @@ -825,7 +860,10 @@ export function emitCallExpr( !host.shapeHost.isErrorClass(e.receiver.value.type.className) ? host.emitExpr(e.receiver.value) : null; - const receiver = e.receiver === undefined || lazyReceiver ? null : host.emitExpr(e.receiver); + const receiver = + e.receiver === undefined || lazyReceiver || forwardsReceiver + ? null + : host.emitExpr(e.receiver); const pushReceiver = (): void => { if (lazyReceiver) { const t = lazyReceiver.type; @@ -865,7 +903,7 @@ export function emitCallExpr( ? borrowableInputs(host, e.args, false, host.referenceWrites?.summary(known!.name)) : []; let dynamic = false; - if (!direct && e.receiver === undefined) { + if (!direct && (e.receiver === undefined || forwardsReceiver)) { const references = new Set(); ft.params.forEach((param, index) => { if (isRefCounted(param)) references.add(index); @@ -898,16 +936,51 @@ export function emitCallExpr( lent.has(i) ? { name: host.retainFrame(a.name, a.type), type: a.type } : a, ) : args; - const invoke = (target: string, needsReceiver: boolean, values = args): string => { + // An entry through the closure's own pointer brackets the call only + // when the closure may observe the receiver (SCR_FN_RECEIVER_FREE). + const invoke = ( + target: string, + bracket: boolean, + values = args, + indirect = false, + ): string => { + const needsReceiver = bracket && !forwardsReceiver; + let observes: string | null = null; if (needsReceiver) { host.declare("declare void @scr_dyn_this_pop()"); - pushReceiver(); + if (indirect) { + const kindPtr = B.tmp(), + kind = B.tmp(), + free = B.tmp(); + observes = B.tmp(); + B.line( + `${kindPtr} = getelementptr inbounds %ScrClosure, ptr ${callee.name}, i64 0, i32 4`, + ); + B.line(`${kind} = load i32, ptr ${kindPtr}`); + B.line(`${free} = and i32 ${kind}, ${CLOSURE_RECEIVER_FREE}`); + B.line(`${observes} = icmp eq i32 ${free}, 0`); + const push = B.newLabel("receiver.push"), + pushed = B.newLabel("receiver.call"); + B.condBr(observes, push, pushed); + B.startBlock(push); + pushReceiver(); + B.br(pushed); + B.startBlock(pushed); + } else pushReceiver(); } const result = e.type.kind === "void" ? "" : B.tmp(); B.line( `${result ? `${result} = ` : ""}call ${host.llType(e.type)} ${target}(${argListOf(values)})`, ); - if (needsReceiver) B.line("call void @scr_dyn_this_pop()"); + if (observes !== null) { + const pop = B.newLabel("receiver.pop"), + popped = B.newLabel("receiver.done"); + B.condBr(observes, pop, popped); + B.startBlock(pop); + B.line("call void @scr_dyn_this_pop()"); + B.br(popped); + B.startBlock(popped); + } else if (needsReceiver) B.line("call void @scr_dyn_this_pop()"); return result; }; const lending = @@ -953,11 +1026,11 @@ export function emitCallExpr( B.line(`${has} = icmp ne ptr ${entry}, null`); B.condBr(has, borrowing, owning); B.startBlock(borrowing); - const lentResult = invoke(entry, true); + const lentResult = invoke(entry, true, args, true); const borrowingEnd = B.currentLabel(); B.br(done); B.startBlock(owning); - const ownedResult = invoke(fn, true, ownedArgs()); + const ownedResult = invoke(fn, true, ownedArgs(), true); const owningEnd = B.currentLabel(); B.br(done); B.startBlock(done); @@ -966,7 +1039,7 @@ export function emitCallExpr( B.line( `${t} = phi ${host.llType(e.type)} [ ${lentResult}, %${borrowingEnd} ], [ ${ownedResult}, %${owningEnd} ]`, ); - } else if (!direct) t = invoke(fn, true, ownedArgs()); + } else if (!direct) t = invoke(fn, true, ownedArgs(), true); else { // A global initializer may not have run, or a callback may enter // through a boundary the census cannot prove. Validate the actual @@ -984,7 +1057,7 @@ export function emitCallExpr( const fastEnd = B.currentLabel(); B.br(done); B.startBlock(fallback); - const indirect = invoke(fn, true, ownedArgs()); + const indirect = invoke(fn, true, ownedArgs(), true); const fallbackEnd = B.currentLabel(); B.br(done); B.startBlock(done); @@ -1358,6 +1431,22 @@ function ctorArguments( * walk consumes without owning it (LlEmitter.canBorrowReceiver proved every * reference argument borrowable and every argument edge-preserving). The * result stays reachable from the borrowed arguments until the consumer. */ +/** A closure value read from a location the call cannot write (a keyed + * table entry, a field, a checked extraction of either) is entered without + * a reference of its own: the location keeps the closure alive until the + * call returns. Plain stable bindings already lend (emitBorrowedInput). */ +function lendsCallee( + host: LlvmEmitterContext, + e: ExprOf<"callValue">, + forwardsReceiver: boolean, +): boolean { + const writes = host.referenceWrites; + if (writes === null || host.canBorrowCallArgument(e.callee) || !host.canBorrowReceiver(e.callee)) + return false; + const later = e.receiver === undefined || forwardsReceiver ? e.args : [e.receiver, ...e.args]; + return borrowableInputs(host, [e.callee, ...later], false, writes.ownWrites(e))[0] === true; +} + export function emitBorrowedResultCall(host: LlvmEmitterContext, e: ExprOf<"call">): LlValue { const callee = host.fnByName.get(e.callee); if (!callee || !host.borrowedReturns.has(e.callee)) diff --git a/packages/compiler/src/backend/llvm/expr-control.ts b/packages/compiler/src/backend/llvm/expr-control.ts index 2f7c31813..9ce5540a6 100644 --- a/packages/compiler/src/backend/llvm/expr-control.ts +++ b/packages/compiler/src/backend/llvm/expr-control.ts @@ -491,10 +491,7 @@ export function emitOptionalChainReceiver( // needs no reference of its own while the body cannot remove an edge // (so nothing can overwrite the projection before the body finishes). const borrowReceiver = - !multiple && - isRefCounted(narrowed) && - host.canBorrowReceiver(e.receiver) && - host.referenceEffects.preserves(e.body); + !multiple && isRefCounted(narrowed) && borrowsChainReceiver(host, e.receiver, e.body); // An optional array read of a nullable-pointer union is the element // pointer itself, read inline and owned by the statement frame until // the body finishes; the bind slot borrows it like an emitExpr value. @@ -554,6 +551,16 @@ export function emitOptionalChainReceiver( }; } +/** An optional chain's receiver can lend its payload to the bind slot when + * the body leaves the receiver's locations alone: it removes no edge at + * all, or it writes none of the locations the receiver reads. */ +function borrowsChainReceiver(host: LlvmEmitterContext, receiver: IrExpr, body: IrExpr): boolean { + if (!host.canBorrowReceiver(receiver)) return false; + if (host.referenceEffects.preserves(body)) return true; + const writes = host.referenceWrites; + return writes !== null && host.unwrittenRead(receiver, writes.expr(body)); +} + /** `a?.b ?? d` narrowed to the chain body's present arm. The body wraps a * value of the result type in a non-unit arm, so the default runs exactly * when the receiver is nullish and the intermediate result box is never @@ -580,16 +587,21 @@ function emitNullishOptionalChain(host: LlvmEmitterContext, e: ExprOf<"nullish"> if (unitTags.length === 0 || present.length !== 1) return null; const B = host.B; const narrowed = receiverDef.arms[present[0]!]!; - const r = host.canStackReceiver(chain.receiver) - ? host.emitReadReceiver(chain.receiver) - : host.emitExpr(chain.receiver); + // A receiver read from a location the body cannot write lends its + // payload to the bind slot for the whole body (`table[k]?.(…) ?? d`). + const borrowed = + isRefCounted(narrowed) && borrowsChainReceiver(host, chain.receiver, chain.body.value); + const r = + borrowed || host.canStackReceiver(chain.receiver) + ? host.emitReadReceiver(chain.receiver) + : host.emitExpr(chain.receiver); const bindTy = host.llType(narrowed); const bind = B.slot(); B.entryAllocas.push(`${bind} = alloca ${bindTy}`); B.line( `store ${bindTy} ${bindTy === "ptr" ? "null" : bindTy === "double" ? f64Lit(0) : "false"}, ptr ${bind}`, ); - host.ownSlot(bind, narrowed); + if (!borrowed) host.ownSlot(bind, narrowed); const isUnit = host.tagInSet(r.name, receiverDef.id, unitTags); const ty = host.llType(e.type); const slot = B.slot(); @@ -602,7 +614,10 @@ function emitNullishOptionalChain(host: LlvmEmitterContext, e: ExprOf<"nullish"> host.emitBranchInto(slot, e.right); B.br(lj); B.startBlock(lb); - B.line(`store ${bindTy} ${host.unionExtract(r.name, receiverDef.id, narrowed)}, ptr ${bind}`); + const payload = borrowed + ? host.unionPeek(r.name, receiverDef.id) + : host.unionExtract(r.name, receiverDef.id, narrowed); + B.line(`store ${bindTy} ${payload}, ptr ${bind}`); host.chainSlots.set(chain.id, { name: bind, type: narrowed, slot: true }); host.emitBranchInto(slot, chain.body.value); host.chainSlots.delete(chain.id); diff --git a/packages/compiler/src/backend/llvm/expr-dynamic.ts b/packages/compiler/src/backend/llvm/expr-dynamic.ts index 55bbb828b..7f4b7e48a 100644 --- a/packages/compiler/src/backend/llvm/expr-dynamic.ts +++ b/packages/compiler/src/backend/llvm/expr-dynamic.ts @@ -11,7 +11,7 @@ import { bindLiveArrayOps } from "./expr-stream-bridges.js"; /* Focused LLVM expression emission extracted from emitter.ts. */ import { InternalCompilerError } from "../../errors.js"; import { emitNullableIsTag, emitNullablePresent } from "./union-repr.js"; -import { isObjectArm } from "./nullable-unions.js"; +import { isPointerIdentityArm } from "./nullable-unions.js"; import { streamTypedRefEligible } from "../../ir/analysis.js"; import { DYN, @@ -908,13 +908,13 @@ export function emitDynamicExpr( if (!def) throw new InternalCompilerError(`llvm emitter bug: equality of unknown union ${e.unionId}`); const nullable = host.nullableUnions.get(def.id); - if (nullable && isObjectArm(nullable)) { + if (nullable && isPointerIdentityArm(nullable)) { // Object identity, and NULL === NULL for the unit arm: one compare. const eq = B.tmp(); B.line(`${eq} = icmp ${e.negated ? "ne" : "eq"} ptr ${l.name}, ${r.name}`); return { name: eq, type: e.type }; } - if (nullable) { + if (nullable && nullable.repr === "single" && nullable.arm.kind === "string") { // String arm: identical pointers are equal (the same string or the // same unit encoding); otherwise equal only when both hold strings // with the same bytes. diff --git a/packages/compiler/src/backend/llvm/expr-records.ts b/packages/compiler/src/backend/llvm/expr-records.ts index 59ab625e5..597cda630 100644 --- a/packages/compiler/src/backend/llvm/expr-records.ts +++ b/packages/compiler/src/backend/llvm/expr-records.ts @@ -9,6 +9,7 @@ import { borrowableInputs, emitBorrowedInputs, emitBorrowedInput } from "./borro import { regexLiteralTemplate } from "./expr-primitives.js"; import { isScalarUnionDef, loadInlineUnion, presentBits } from "./inline-unions.js"; import { preservesRegexInputs } from "./reference-effects.js"; +import { emitNumberMapSlot, emitStringMapEntry } from "./map-number-lookup.js"; /** Widen one tagged read. The source is borrowed unless the overflow map * supplied an owned value. Each selected reference payload is retained @@ -343,8 +344,8 @@ export function emitRecordKeyGet( e: IrExpr & { kind: "recordKeyGet" }, ): LlValue { const B = host.B; - const obj = host.emitExpr(e.obj); - const k = host.emitExpr(e.key); + // The read runs no user code: both inputs lend for its duration. + const [obj, k] = emitBorrowedInputs(host, [e.obj, e.key]) as [LlValue, LlValue]; const ty = host.llType(e.type); const slot = B.slot(); B.entryAllocas.push(`${slot} = alloca ${ty}`); @@ -366,6 +367,80 @@ export function emitRecordKeyGet( return host.own({ name: t, type: e.type }); } +/** A keyed read whose every hit is the result's own pointer: the result + * is a nullable-pointer union (nullable-unions.ts) with an undefined arm, + * and each declared field and the overflow value hold exactly the result + * type or its reference arm in a plain (non-inline) slot. A miss is the + * immortal undefined encoding. Such a read can lend the stored pointer: + * borrowedRecordKeyGet reads it without a reference. */ +export function pointerRecordKeyGet(host: LlvmEmitterContext, e: IrExpr): boolean { + if (e.kind !== "recordKeyGet" || e.missNaN === true || e.type.kind !== "union") return false; + const resultType = e.type; + const nullable = host.nullableUnions.single(resultType.unionId); + if (nullable === null || undefinedArmTag(resultType, host.unionsById) < 0) return false; + const exact = (t: IrType): boolean => typeEquals(t, resultType) || typeEquals(t, nullable.arm); + const shape = host.recordShape(e.shapeId); + if (e.overflowOnly !== true) { + for (const f of shape.fields) + if (host.recordFieldInline(e.shapeId, f.name) || !exact(f.type)) return false; + } + return shape.indexValue === undefined || typeEquals(shape.indexValue, nullable.arm); +} + +/** A pointerRecordKeyGet read without a reference: the declared field or + * overflow entry the key names, or the undefined encoding for a miss. The + * record (and through it the stored value) must stay unchanged and alive + * until the consumer is done with the pointer (canBorrowReceiver). */ +export function emitBorrowedRecordKeyGet( + host: LlvmEmitterContext, + e: IrExpr & { kind: "recordKeyGet" }, +): LlValue { + const B = host.B; + if (e.type.kind !== "union") + throw new InternalCompilerError("llvm emitter bug: borrowed keyed read of a non-union"); + const resultType = e.type; + const obj = host.emitReadReceiver(e.obj); + const key = host.canBorrowReceiver(e.key) ? host.emitReadReceiver(e.key) : host.emitExpr(e.key); + const slot = B.slot(); + B.entryAllocas.push(`${slot} = alloca ptr`); + const join = B.newLabel("rkb.j"); + const shape = host.recordShape(e.shapeId); + for (const f of e.overflowOnly === true ? [] : shape.fields) { + const hit = B.tmp(); + B.line( + `${hit} = call zeroext i1 ${host.literalEquals(f.name)}(ptr ${key.name}) ; ${llvmCommentText(f.name)}`, + ); + const lh = B.newLabel("rkb.h"); + const ln = B.newLabel("rkb.n"); + B.condBr(hit, lh, ln); + B.startBlock(lh); + const { ptr, type } = host.recordFieldPtr(obj.name, e.shapeId, f.name); + B.line(`store ptr ${host.loadRecordField(ptr, type, false)}, ptr ${slot}`); + B.br(join); + B.startBlock(ln); + } + if (shape.indexValue) { + const ovf = host.recordOvfPtr(obj.name, e.shapeId); + const entry = emitStringMapEntry(host, ovf, key.name); + const found = B.tmp(); + B.line(`${found} = icmp ne ptr ${entry}, null`); + const lh = B.newLabel("rkb.h"); + const ln = B.newLabel("rkb.n"); + B.condBr(found, lh, ln); + B.startBlock(lh); + B.line(`store ptr ${emitNumberMapSlot(host, entry, "ptr")}, ptr ${slot}`); + B.br(join); + B.startBlock(ln); + } + const undefTag = undefinedArmTag(resultType, host.unionsById); + B.line(`store ptr ${host.unitInstanceRef(resultType.unionId, undefTag)}, ptr ${slot}`); + B.br(join); + B.startBlock(join); + const t = B.tmp(); + B.line(`${t} = load ptr, ptr ${slot}`); + return { name: t, type: e.type }; +} + /** A keyed read whose result is a scalar union (`r[k]` on a * `Record`, at `number | undefined`) and whose every hit * is a number or boolean arm of it, or an inline field of the same union. @@ -660,27 +735,17 @@ export function keyedRecordReadInto( B.br(join); B.startBlock(ln); } else { - host.declare(`declare ptr @scr_map_get_str_ref(ptr, ptr)`); + // The entry lookup filters absent keys inline; a hit retains the + // stored value with its own type's retain (map-number-lookup.ts). A + // nullable value's NULL is a stored unit arm: presence decides. const lh = B.newLabel("rkg.h"); const ln = B.newLabel("rkg.n"); - let raw: string; - if (iv.kind === "union" && host.nullableUnions.has(iv.unionId)) { - // NULL is a stored unit arm of a nullable value: presence decides. - host.declare(`declare zeroext i1 @scr_map_has_str(ptr, ptr)`); - const has = B.tmp(); - B.line(`${has} = call zeroext i1 @scr_map_has_str(ptr ${ovf}, ptr ${keyName})`); - B.condBr(has, lh, ln); - B.startBlock(lh); - raw = B.tmp(); - B.line(`${raw} = call ptr @scr_map_get_str_ref(ptr ${ovf}, ptr ${keyName})`); - } else { - raw = B.tmp(); - const isnull = B.tmp(); - B.line(`${raw} = call ptr @scr_map_get_str_ref(ptr ${ovf}, ptr ${keyName})`); - B.line(`${isnull} = icmp eq ptr ${raw}, null`); - B.condBr(isnull, ln, lh); - B.startBlock(lh); - } + const entry = emitStringMapEntry(host, ovf, keyName); + const found = B.tmp(); + B.line(`${found} = icmp ne ptr ${entry}, null`); + B.condBr(found, lh, ln); + B.startBlock(lh); + const raw = host.retainHeap(emitNumberMapSlot(host, entry, "ptr"), iv); B.line(`store ${ty} ${surface(iv, raw, true)}, ptr ${slot}`); B.br(join); B.startBlock(ln); diff --git a/packages/compiler/src/backend/llvm/lib-http2.ts b/packages/compiler/src/backend/llvm/lib-http2.ts index d750fb7c5..e9f60cdfa 100644 --- a/packages/compiler/src/backend/llvm/lib-http2.ts +++ b/packages/compiler/src/backend/llvm/lib-http2.ts @@ -95,11 +95,12 @@ export function sniCallbackArgs(host: LlvmEmitterContext, cb: LlValue): AbiArgum let type = cb.type, value = cb.name; if (type.kind === "union") { - const arms = host.unionsById.get(type.unionId)?.arms ?? []; + const unionId = type.unionId; + const arms = host.unionsById.get(unionId)?.arms ?? []; const tag = arms.findIndex((arm) => arm.kind === "func"); if (tag < 0) throw new InternalCompilerError("SNI callback union lacks its function arm"); type = arms[tag]!; - value = host.unwrapNullableClosure(value, tag); + value = host.unwrapNullableClosure(value, unionId, tag); } else host.toHeap(cb); if (type.kind !== "func" || type.params[1] === undefined) throw new InternalCompilerError("SNI callback lacks its answer function"); diff --git a/packages/compiler/src/backend/llvm/lib-network.ts b/packages/compiler/src/backend/llvm/lib-network.ts index 35eb885cd..63661ab4c 100644 --- a/packages/compiler/src/backend/llvm/lib-network.ts +++ b/packages/compiler/src/backend/llvm/lib-network.ts @@ -165,7 +165,7 @@ export function emitNetworkHttpLibCall(host: LlvmEmitterContext, e: LibCallExpr) const funcTag = def ? def.arms.findIndex((a) => a.kind === "func") : -1; if (funcTag < 0) throw new InternalCompilerError(`llvm emitter bug: ${e.fn} union lacks its func arm`); - cb = host.unwrapNullableClosure(args[cbIndex]!.name, funcTag); + cb = host.unwrapNullableClosure(args[cbIndex]!.name, cbT.unionId, funcTag); } } const valueCount = reusePort ? 5 : 4; diff --git a/packages/compiler/src/backend/llvm/map-read-lifetimes.ts b/packages/compiler/src/backend/llvm/map-read-lifetimes.ts index ae741463d..fbb21dcd2 100644 --- a/packages/compiler/src/backend/llvm/map-read-lifetimes.ts +++ b/packages/compiler/src/backend/llvm/map-read-lifetimes.ts @@ -12,13 +12,18 @@ import type { CallLifetimes } from "./call-lifetimes.js"; import type { ReferenceEffects } from "./reference-effects.js"; import type { LlValue, LlvmEmitterContext } from "./expr-context.js"; import { + emitCompactMapSlot, emitNumberMapGetRef, emitNumberMapGetScalar, + emitNumberMapSlot, + emitStringMapEntry, emitStringMapGetScalar, emitStringMapGetRef, compactMapValues, noteNumberMapKey, } from "./map-number-lookup.js"; +import { InternalCompilerError } from "../../errors.js"; +import { undefinedArmTag } from "../../ir/analysis.js"; import { mapKeyAccess, mapKeyParamType } from "./shapes.js"; import { rememberMapEntry } from "./map-entry-fusion.js"; @@ -490,3 +495,62 @@ export function emitStackMapRead(host: LlvmEmitterContext, read: LocalMapRead): B.line(`store i32 ${selected}, ptr ${tag}`); return { value: { name: box, type: read.type }, owner }; } + +/** A string-keyed Map.get whose result is a nullable-pointer union over the + * map's own value type (`Map` read as `F | undefined`): a hit is + * the stored pointer itself and a miss the immortal undefined encoding, so + * the read can lend the stored value (emitBorrowedMapGet). */ +export function pointerMapGet(host: LlvmEmitterContext, e: IrExpr): boolean { + if ( + e.kind !== "mapIntrinsic" || + e.method !== "get" || + e.args.length !== 1 || + e.type.kind !== "union" || + e.receiver.type.kind !== "map" || + e.receiver.type.key.kind !== "string" || + !borrowsMapReadInputs(e) + ) + return false; + const nullable = host.nullableUnions.single(e.type.unionId); + return ( + nullable !== null && + typeEquals(nullable.arm, e.receiver.type.value) && + undefinedArmTag(e.type, host.unionsById) >= 0 + ); +} + +/** A pointerMapGet read without a reference: the map (and through it the + * stored value) must stay unchanged and alive until the consumer is done + * with the pointer (canBorrowReceiver). */ +export function emitBorrowedMapGet( + host: LlvmEmitterContext, + e: IrExpr & { kind: "mapIntrinsic" }, +): LlValue { + const B = host.B; + const mapType = e.receiver.type; + if (e.type.kind !== "union" || mapType.kind !== "map") + throw new InternalCompilerError("llvm emitter bug: borrowed Map.get shape"); + const receiver = host.emitReadReceiver(e.receiver); + const keyExpr = e.args[0]!; + const key = host.canBorrowReceiver(keyExpr) + ? host.emitReadReceiver(keyExpr) + : host.emitExpr(keyExpr); + const compact = compactMapValues(host, mapType.key, mapType.value); + const entry = emitStringMapEntry(host, receiver.name, key.name, compact); + const found = B.tmp(); + B.line(`${found} = icmp ne ptr ${entry}, null`); + const hit = B.newLabel("mapb.hit"), + miss = B.newLabel("mapb.miss"), + join = B.newLabel("mapb.join"); + B.condBr(found, hit, miss); + B.startBlock(hit); + const value = compact ? emitCompactMapSlot(host, entry) : emitNumberMapSlot(host, entry, "ptr"); + B.br(join); + B.startBlock(miss); + B.br(join); + B.startBlock(join); + const absent = host.unitInstanceRef(e.type.unionId, undefinedArmTag(e.type, host.unionsById)); + const result = B.tmp(); + B.line(`${result} = phi ptr [ ${value}, %${hit} ], [ ${absent}, %${miss} ]`); + return { name: result, type: e.type }; +} diff --git a/packages/compiler/src/backend/llvm/nullable-unions.test.ts b/packages/compiler/src/backend/llvm/nullable-unions.test.ts index bf0941652..f4e6a6866 100644 --- a/packages/compiler/src/backend/llvm/nullable-unions.test.ts +++ b/packages/compiler/src/backend/llvm/nullable-unions.test.ts @@ -7,7 +7,7 @@ import { type IrType, type IrUnionDef, } from "../../ir/ir.js"; -import { NullableUnions } from "./nullable-unions.js"; +import { isObjectArm, isPointerIdentityArm, NullableUnions } from "./nullable-unions.js"; const loc = { file: "nullable-unions.ts", start: 0, end: 0 }; const a: IrType = { kind: "record", shapeId: "a" }; @@ -111,3 +111,22 @@ test("library, lifetime-region and debug builds keep record unions boxed", () => expect(new NullableUnions(module(unions, { lifetimeRegions: true })).get("ab")).toBeNull(); expect(new NullableUnions(module(unions)).shapes("ab")).not.toBeNull(); }); + +test("function arms are nullable pointers compared by identity root", () => { + const fn: IrType = { kind: "func", params: [F64], ret: F64 }; + const unions = new NullableUnions( + module([ + { id: "fu", arms: [fn, UNDEFINED_T] }, + { id: "fnu", arms: [NULL_T, fn, UNDEFINED_T] }, + { id: "ff", arms: [fn, F64] }, + ]), + ); + expect(unions.single("fu")).toMatchObject({ refTag: 0, unitTag: 1, nullTag: -1, arm: fn }); + expect(unions.single("fnu")).toMatchObject({ refTag: 1, unitTag: 2, nullTag: 0 }); + expect(unions.get("ff")).toBeNull(); + const single = unions.single("fu")!; + // Always truthy, but `===` compares adapters by the function they adapt. + expect(isObjectArm(single)).toBe(true); + expect(isPointerIdentityArm(single)).toBe(false); + expect(unions.armTypes().get("fu")).toEqual(fn); +}); diff --git a/packages/compiler/src/backend/llvm/nullable-unions.ts b/packages/compiler/src/backend/llvm/nullable-unions.ts index c51f3b5f6..eedb922b3 100644 --- a/packages/compiler/src/backend/llvm/nullable-unions.ts +++ b/packages/compiler/src/backend/llvm/nullable-unions.ts @@ -89,21 +89,30 @@ export const NULLABLE_ABSENT = "@sc_nullable_absent"; /** The reference arms whose instances are never NULL. Class and record * entry points all tolerate NULL; strings, Stats snapshots, arrays, maps and - * sets retain through a NULL-skipping wrapper (shapes.ts). Object arms are - * always truthy and compare by identity; string arms are truthy when - * non-empty and compare bytes. */ + * sets retain through a NULL-skipping wrapper (shapes.ts), as do closures + * (function arms). Object arms are always truthy and compare by identity + * (function arms by identity root); string arms are truthy when non-empty + * and compare bytes. */ export type NullableRefArm = | { kind: "object"; className: string } | { kind: "record"; shapeId: string } | { kind: "string" } | { kind: "stats" } - | (IrType & { kind: "array" | "map" | "set" }); + | (IrType & { kind: "array" | "map" | "set" | "func" }); -/** The arm is a JS object: always truthy, compared by identity. */ +/** The arm is a JS object: always truthy. */ export function isObjectArm(nullable: PointerUnion): boolean { return nullable.repr === "shapes" || nullable.arm.kind !== "string"; } +/** The arm compares by pointer identity. Function arms compare identity + * roots instead: a signature adapter is the function it adapts. */ +export function isPointerIdentityArm(nullable: PointerUnion): boolean { + return ( + nullable.repr === "shapes" || (nullable.arm.kind !== "string" && nullable.arm.kind !== "func") + ); +} + /** The representation decision for every union of one module. It is a * pure function of the module, so serialized-IR and in-memory emission * agree. */ @@ -264,7 +273,8 @@ function nullableShape( return { ...base, arm: { kind: "record", shapeId: arm.shapeId } }; if (arm.kind === "string") return { ...base, arm: { kind: "string" } }; if (arm.kind === "stats") return { ...base, arm: { kind: "stats" } }; - if (arm.kind === "array" || arm.kind === "map" || arm.kind === "set") return { ...base, arm }; + if (arm.kind === "array" || arm.kind === "map" || arm.kind === "set" || arm.kind === "func") + return { ...base, arm }; return null; } diff --git a/packages/compiler/src/backend/llvm/receivers.ts b/packages/compiler/src/backend/llvm/receivers.ts index 2fe9dd66b..8524a51fb 100644 --- a/packages/compiler/src/backend/llvm/receivers.ts +++ b/packages/compiler/src/backend/llvm/receivers.ts @@ -11,14 +11,24 @@ import type { LlValue } from "./expr-context.js"; import { guardedValue } from "./borrowed-receivers.js"; import { InternalCompilerError } from "../../errors.js"; import { emitBorrowedArrayRead, emitProjectedArrayRead } from "./local-array-reads.js"; -import { emitStackMapRead, matchMapRead } from "./map-read-lifetimes.js"; +import { + emitBorrowedMapGet, + emitStackMapRead, + matchMapRead, + pointerMapGet, +} from "./map-read-lifetimes.js"; import { emitBorrowedResultCall, emitCallExpr } from "./expr-calls.js"; -import { emitCheckedNarrowReceiver } from "./checked-narrows.js"; +import { borrowsCheckedNarrow, emitCheckedNarrowReceiver } from "./checked-narrows.js"; import { canStackUnion, emitStackUnion } from "./stack-unions.js"; import { emitDowncastGuard, emitUnionNarrowGuard } from "./narrow-guards.js"; import { emitScalarOptional, isScalarOptionalSource } from "./local-union-storage.js"; import { borrowableInputs } from "./borrowed-inputs.js"; -import { emitStackRecordKeyGet, scalarRecordKeyGet } from "./expr-records.js"; +import { + emitBorrowedRecordKeyGet, + emitStackRecordKeyGet, + pointerRecordKeyGet, + scalarRecordKeyGet, +} from "./expr-records.js"; import { type WalkBorrowHost, analyzeWalks } from "./walk-borrows.js"; /** Read a receiver whose value is consumed immediately by a field or tag @@ -92,6 +102,10 @@ export function emitReadReceiver(emitter: LlEmitter, e: IrExpr): LlValue { return emitBorrowedResultCall(emitter, e); const arrayRead = emitter.optionalArrayReads.get(e); if (arrayRead) return emitProjectedArrayRead(emitter, arrayRead); + if (e.kind === "recordKeyGet" && emitter.canBorrowReceiver(e)) + return emitBorrowedRecordKeyGet(emitter, e); + if (e.kind === "mapIntrinsic" && emitter.canBorrowReceiver(e)) + return emitBorrowedMapGet(emitter, e); const narrow = emitter.checkedNarrows.get(e); const narrowed = narrow ? emitCheckedNarrowReceiver(emitter, narrow) : null; if (narrowed) return narrowed; @@ -294,7 +308,27 @@ export function canBorrowReceiver(emitter: LlEmitter, e: IrExpr): boolean { // snapshot, so neither the callee nor a later argument may replace // what it was read from: a callee that preserves every edge cannot, // and any other one must leave the argument's locations unwritten. + // A keyed read lends the stored pointer while the record keeps it. + case "recordKeyGet": + return ( + pointerRecordKeyGet(emitter, e) && + emitter.canBorrowReceiver(e.obj) && + emitter.referenceEffects.preserves(e.key) + ); + // So does a Map.get while the map keeps it. + case "mapIntrinsic": + return ( + pointerMapGet(emitter, e) && + emitter.canBorrowReceiver(e.receiver) && + emitter.referenceEffects.preserves(e.args[0]!) + ); case "call": { + // A checked extraction lends the payload of the union it narrows + // (emitCheckedNarrowReceiver). + if (borrowsCheckedNarrow(emitter, e)) { + const narrow = emitter.checkedNarrows.get(e)!; + return emitter.canBorrowReceiver(narrow.value); + } if (!emitter.borrowedReturns.has(e.callee)) return false; if (!e.args.every((arg) => emitter.referenceEffects.preserves(arg))) return false; const preserving = emitter.referenceEffects.functions.has(e.callee); diff --git a/packages/compiler/src/backend/llvm/reference-writes.test.ts b/packages/compiler/src/backend/llvm/reference-writes.test.ts index cbbe49d3b..db575babe 100644 --- a/packages/compiler/src/backend/llvm/reference-writes.test.ts +++ b/packages/compiler/src/backend/llvm/reference-writes.test.ts @@ -97,3 +97,46 @@ test("an array that is read back or escapes keeps its element writes", () => { const input = fill("input", [store("input", element("input"))]); expect(writes(input).conflicts(["a"], writes(input).summary("input"))).toBe(true); }); + +test("a keyed record read depends on every field and keyed entry of records", () => { + const handler: IrType = { kind: "func", params: [F64], ret: F64 }; + const table: IrType = { kind: "record", shapeId: "t" }; + const key: IrExpr = { kind: "strLit", value: "k", type: { kind: "string" }, loc }; + const read: IrExpr = { + kind: "recordKeyGet", + obj: ref("table", table), + shapeId: "t", + key, + type: { kind: "union", unionId: "hu" }, + loc, + }; + const keyedWrite: IrStmt = { + kind: "recordKeySet", + obj: ref("table", table), + shapeId: "t", + key, + value: ref("h", handler), + loc, + }; + const fn = (name: string, body: IrStmt[]): IrFunction => ({ + name, + loc, + returnType: F64, + params: [{ localId: "table", name: "table", type: table }], + locals: [ + { id: "table", name: "table", type: table, mutable: false }, + { id: "h", name: "h", type: handler, mutable: false }, + ], + body, + }); + const records = [{ id: "t", fields: [{ name: "add", type: handler }], indexValue: handler }]; + const quiet = fn("quiet", []); + const writer = fn("writer", [keyedWrite]); + const functions = new Map([quiet, writer].map((f) => [f.name, f])); + const rw = new ReferenceWrites(functions, [], () => false, new Set(), { records }); + rw.enter(quiet); + const keys = rw.readKeys(read); + expect(keys).toEqual(expect.arrayContaining(["r:*", "r:add"])); + expect(rw.conflicts(keys!, rw.summary("quiet"))).toBe(false); + expect(rw.conflicts(keys!, rw.summary("writer"))).toBe(true); +}); diff --git a/packages/compiler/src/backend/llvm/reference-writes.ts b/packages/compiler/src/backend/llvm/reference-writes.ts index 89132a715..d64beafc5 100644 --- a/packages/compiler/src/backend/llvm/reference-writes.ts +++ b/packages/compiler/src/backend/llvm/reference-writes.ts @@ -92,6 +92,8 @@ const INERT_LIB_PREFIXES = [ ]; const INERT_LIB_CALLS = new Set([ "dyn.compare", + // Reads the ambient receiver (a fresh reference to the bound value). + "dyn.this", "error.new", "error.nodeThrow", "dyn.typedRefIs", @@ -922,6 +924,17 @@ export class ReferenceWrites { case "arrayGet": out.push(ARRAY_KEY); return this.expr(node.index) === null && walk(node.arr); + case "recordKeyGet": + // Any declared field or overflow entry the key may name. + out.push(ANY_RECORD_KEY); + for (const f of this.records.get(node.shapeId)?.fields ?? []) out.push(`r:${f.name}`); + return this.expr(node.key) === null && walk(node.obj); + case "mapIntrinsic": + // A typed Map.get: any entry of any map. + if (node.method !== "get" || node.args.length !== 1 || !borrowsMapReadInputs(node)) + return false; + out.push(MAP_KEY); + return this.expr(node.args[0]!) === null && walk(node.receiver); case "unionNarrow": case "upcast": case "downcast": diff --git a/packages/compiler/src/backend/llvm/stack-callbacks.ts b/packages/compiler/src/backend/llvm/stack-callbacks.ts index 5c404896a..20de50372 100644 --- a/packages/compiler/src/backend/llvm/stack-callbacks.ts +++ b/packages/compiler/src/backend/llvm/stack-callbacks.ts @@ -32,10 +32,12 @@ export class StackCallbacks { const count = B.tmp(); B.line(`${count} = getelementptr inbounds %ScrClosure, ptr ${closure}, i32 0, i32 2`); B.line(`store ${host.sizeType} ${value.captures.length}, ptr ${count}`); - if (this.functions.get(value.fnName)?.ownsPrototype) { + const target = this.functions.get(value.fnName); + const functionKind = target ? host.closureFunctionKind(target) : 0; + if (functionKind !== 0) { const kind = B.tmp(); B.line(`${kind} = getelementptr inbounds %ScrClosure, ptr ${closure}, i32 0, i32 4`); - B.line(`store i32 4, ptr ${kind}`); + B.line(`store i32 ${functionKind}, ptr ${kind}`); } value.captures.forEach((localId, index) => { const box = host.retainBox(host.captureBox(localId)); diff --git a/packages/compiler/src/ir/receiver-readers.ts b/packages/compiler/src/ir/receiver-readers.ts index f5270aa7d..067c474ca 100644 --- a/packages/compiler/src/ir/receiver-readers.ts +++ b/packages/compiler/src/ir/receiver-readers.ts @@ -1,6 +1,7 @@ import { isBorrowSafeMath } from "./analysis.js"; import type { IrExpr, IrFunction, IrLibFn, IrStmt } from "./ir.js"; import { eachNodeOfKinds, type IrNodeIndex } from "./node-index.js"; +import { everyExprChild, everyStmtChild } from "./traverse.js"; /** Expression kinds that run no user code of their own and never consult * the ambient receiver stack. Calls are admitted here and resolved through @@ -151,6 +152,7 @@ function opaqueOperand(e: IrExpr): boolean { * this set needs no receiver bracket. */ export class AmbientReceiverReaders { private readers: Set | null = null; + private byMethod: Map | null = null; constructor( private readonly functions: ReadonlyMap, @@ -163,8 +165,63 @@ export class AmbientReceiverReaders { return !this.compute().has(fn.name); } - private compute(): Set { - if (this.readers) return this.readers; + /** A signature adapter body that observes the ambient receiver only by + * forwarding it, unchanged, to the original it captures (a callValue on + * that capture whose receiver is the plain `this` read). Such an adapter + * ignores the receiver exactly when its original does. */ + forwardsOnly(fn: IrFunction): boolean { + if (fn.async || fn.generator) return false; + const original = fn.captures?.[0]?.localId; + if (original === undefined) return false; + const readers = this.compute(); + const edge = (name: string): boolean => this.functions.has(name) && !readers.has(name); + const stmt = (node: IrStmt): boolean => + RECEIVER_FREE_STMTS.has(node.kind) && everyStmtChild(node, expr, stmt); + const expr = (node: IrExpr): boolean => { + if (node.kind === "callValue" && node.receiver !== undefined) { + const receiver = node.receiver; + return ( + receiver.kind === "libCall" && + receiver.fn === "dyn.this" && + receiver.args.length === 0 && + node.callee.kind === "varRef" && + node.callee.localId === original && + node.args.every(expr) + ); + } + return this.admits(node, edge) && everyExprChild(node, expr, stmt); + }; + return fn.body.every(stmt); + } + + /** Whether one expression node, apart from its children, leaves the + * ambient receiver alone; `edge` admits a direct callee. */ + private admits(expr: IrExpr, edge: (name: string) => boolean): boolean { + if (!RECEIVER_FREE_EXPRS.has(expr.kind)) return false; + switch (expr.kind) { + case "call": + return edge(expr.callee); + case "new": + return edge(`%${expr.className}.constructor`); + case "virtualCall": { + // Any class's override may run: admit only when every + // same-named method is itself receiver-free. + const targets = this.methods().get(expr.method) ?? []; + return targets.length > 0 && targets.every(edge); + } + case "libCall": + return isBorrowSafeMath(expr.fn) || RECEIVER_FREE_LIB_FNS.has(expr.fn); + case "toString": + return !opaqueOperand(expr.operand); + default: { + const operands = dataIntrinsicOperands(expr); + return operands === null || !operands.some(opaqueOperand); + } + } + } + + private methods(): Map { + if (this.byMethod) return this.byMethod; const byMethod = new Map(); for (const name of this.functions.keys()) { const dot = name.lastIndexOf("."); @@ -174,6 +231,12 @@ export class AmbientReceiverReaders { list.push(name); byMethod.set(method, list); } + this.byMethod = byMethod; + return byMethod; + } + + private compute(): Set { + if (this.readers) return this.readers; const readers = new Set(); const callers = new Map(); const scan = this.nodes?.scanExcept(TRIVIALLY_RECEIVER_FREE); @@ -185,34 +248,11 @@ export class AmbientReceiverReaders { callees.add(name); return true; }; - const expr = (expr: IrExpr): boolean => { - if (!RECEIVER_FREE_EXPRS.has(expr.kind)) return false; - switch (expr.kind) { - case "call": - return edge(expr.callee); - case "new": - return edge(`%${expr.className}.constructor`); - case "virtualCall": { - // Any class's override may run: admit only when every - // same-named method is itself receiver-free. - const targets = byMethod.get(expr.method) ?? []; - return targets.length > 0 && targets.every(edge); - } - case "libCall": - return isBorrowSafeMath(expr.fn) || RECEIVER_FREE_LIB_FNS.has(expr.fn); - case "toString": - return !opaqueOperand(expr.operand); - default: { - const operands = dataIntrinsicOperands(expr); - return operands === null || !operands.some(opaqueOperand); - } - } - }; if (!reads) eachNodeOfKinds(fn, scan, (node, statement) => { const free = statement ? RECEIVER_FREE_STMTS.has((node as IrStmt).kind) - : expr(node as IrExpr); + : this.admits(node as IrExpr, edge); if (!free) reads = true; return free; }); diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8230-function-record-dispatch.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8230-function-record-dispatch.ts.json new file mode 100644 index 000000000..1670b97b4 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8230-function-record-dispatch.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8230-function-record-dispatch.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8231-function-table-shapes.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8231-function-table-shapes.ts.json new file mode 100644 index 000000000..8f1963ef5 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8231-function-table-shapes.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8231-function-table-shapes.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8232-optional-function-values.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8232-optional-function-values.ts.json new file mode 100644 index 000000000..671364bc6 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8232-optional-function-values.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8232-optional-function-values.ts" + ], + "diags": [] +} diff --git a/packages/runtime/src/scr_closure.h b/packages/runtime/src/scr_closure.h index 9644722ce..cfca90313 100644 --- a/packages/runtime/src/scr_closure.h +++ b/packages/runtime/src/scr_closure.h @@ -98,7 +98,7 @@ typedef struct ScrClosure { * (like the dyn→closure edge): a cycle through it is merely never * collected. */ ScrBox *props; - uint32_t function_kind; /* low bits: 0 ordinary, 1 generator, 2 async, 3 async generator; bit 2: ordinary own prototype; bit 3: checked callable adapter in caps[0] */ + uint32_t function_kind; /* low bits: 0 ordinary, 1 generator, 2 async, 3 async generator; bit 2: ordinary own prototype; bit 3: checked callable adapter in caps[0]; bit 4: SCR_FN_RECEIVER_FREE */ /* The root's `length` as boxed values report it; meaningful only when * identity is set (the root's own boxes carry their arity). */ uint32_t identity_length; @@ -117,6 +117,13 @@ typedef struct ScrClosure { ScrBox *caps[]; } ScrClosure; +/* function_kind bit 4: the body never observes the ambient receiver (the + * `this` an unbound call binds), so compiled callers skip the receiver + * bracket around an indirect call. Set only by the compiler; the kind + * proper is function_kind & SCR_FN_KIND_MASK. */ +#define SCR_FN_RECEIVER_FREE 16u +#define SCR_FN_KIND_MASK 15u + ScrClosure *scr_closure_new(void *fn, size_t ncaps); /* +1; caller fills caps with +1 box refs */ static inline ScrClosure *scr_closure_retain(ScrClosure *c) { diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index cd9eeecde..cef3be673 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -6880,7 +6880,7 @@ ScrDyn *scr_dyn_class_base_prototype(ScrDyn *constructor) { default: break; } if (constructor->kind != SCR_DYN_FUNC || constructor->v.fn.class_obj || - scr_closure_identity(constructor->v.fn.clo)->function_kind != 4) { + (scr_closure_identity(constructor->v.fn.clo)->function_kind & SCR_FN_KIND_MASK) != 4) { static const char message[] = "Class extends value is not a native ordinary constructor"; scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1); return NULL; @@ -7028,7 +7028,8 @@ void scr_dyn_name_class_prototype(ScrDyn *prototype, const ScrStr *name) { /* Ordinary native function constructors retain their live prototype table. * A constructor may replace the fresh receiver with another object. */ ScrDyn *scr_dyn_construct(const ScrDyn *callee, const ScrDyn *args, const ScrStr *what) { - if (callee->kind != SCR_DYN_FUNC || callee->v.fn.class_obj || scr_closure_identity(callee->v.fn.clo)->function_kind != 4) + if (callee->kind != SCR_DYN_FUNC || callee->v.fn.class_obj || + (scr_closure_identity(callee->v.fn.clo)->function_kind & SCR_FN_KIND_MASK) != 4) return scr_bytes_construct(callee, args, what); ScrDyn *prototype = scr_dyn_fn_get(callee, "prototype", 9); if (!prototype) return NULL; @@ -9144,7 +9145,9 @@ bool scr_dyn_is_callable(const ScrDyn *value) { int scr_dyn_function_kind(const ScrDyn *value) { while (value->kind == SCR_DYN_PROXY) value = value->v.proxy.target; - return value->kind == SCR_DYN_FUNC ? scr_closure_identity(value->v.fn.clo)->function_kind : 0; + return value->kind == SCR_DYN_FUNC + ? (int)(scr_closure_identity(value->v.fn.clo)->function_kind & SCR_FN_KIND_MASK) + : 0; } void scr_dyn_adopt_identity(ScrClosure *adapter, const ScrDyn *value) { diff --git a/tests/corpus/8230-function-record-dispatch.ts b/tests/corpus/8230-function-record-dispatch.ts new file mode 100644 index 000000000..3acde5bd7 --- /dev/null +++ b/tests/corpus/8230-function-record-dispatch.ts @@ -0,0 +1,107 @@ +// Records of functions used as dispatch tables: keyed reads consumed at once +// (`t[k]!(…)`, `t[k]?.(…)`, a checked local), missing keys, handlers that +// declare fewer parameters than the table's type, handlers that replace, +// delete or re-add table entries (their own included) while they run, and +// key order after such mutation. +type Handler = (x: number, y: number) => number; + +let log: string[] = []; + +function make(tag: string): Handler { + let calls = 0; + return (x, y) => { + calls++; + log.push(tag + ":" + calls); + return x * 10 + y; + }; +} + +const table: Record = { + add: (x, y) => x + y, + neg: (x) => -x, + pow: (x, y) => x ** y, + made: make("made"), +}; + +function keys(): string[] { + return process.argv.length > 99 ? [] : ["add", "neg", "pow", "made", "missing", ""]; +} + +for (const k of keys()) { + const h = table[k] as Handler | undefined; + console.log(JSON.stringify(k), typeof h, h === undefined, h !== undefined && h === table[k]); + console.log(" optional", table[k]?.(3, 4) ?? "none"); + if (h) console.log(" checked", h(2, 5)); + try { + console.log(" asserted", table[k]!(5, 2)); + } catch (e) { + console.log(" asserted threw", (e as Error).name); + } +} + +// A handler that replaces its own entry while it runs: the replaced closure +// keeps running with its captured state. +function selfReplacing(): Handler { + const state = { hits: 0, label: "first" }; + return (x, y) => { + table["swap"] = make("second"); + state.hits++; + log.push(state.label + " still running after replace, hits " + state.hits); + return x + y + state.hits; + }; +} +table["swap"] = selfReplacing(); +console.log("swap 1", table["swap"]!(1, 2)); +console.log("swap 2", table["swap"]?.(1, 2)); +console.log("swap 3", table["swap"]!(1, 2)); + +// A handler that deletes its own entry. +function selfDeleting(name: string): Handler { + const captured = [name, "captured"]; + return (x) => { + delete table[name]; + log.push(captured.join(" ") + " after delete"); + return x; + }; +} +table["gone"] = selfDeleting("gone"); +const goneKey = keys()[0] === "add" ? "gone" : "add"; +console.log("gone", table[goneKey]?.(7, 0) ?? "none", table[goneKey]?.(7, 0) ?? "none"); + +// A checked local keeps its closure after the entry changes. +table["kept"] = make("kept-old"); +const kept = table["kept"] as Handler | undefined; +table["kept"] = make("kept-new"); +delete table["kept"]; +if (kept) console.log("kept", kept(4, 4)); +console.log("kept entry", table["kept"] === undefined); + +// Iteration while handlers add and delete keys: key order follows inserts. +const order: Record = { + b: (x) => x + 1, + a: (x) => { + delete order["c"]; + order["z"] = (v) => v * 2; + return x + 2; + }, + c: (x) => x + 3, + "1": (x) => x + 4, +}; +for (const k in order) console.log("in", k, order[k]?.(1, 0)); +console.log("keys", Object.keys(order).join(",")); +for (const k of Object.keys(order)) { + order[k + k] = (x) => x; + console.log("of", k, order[k]!(10, 0)); +} +console.log("keys", Object.keys(order).join(",")); + +// Reassigning the table binding itself from inside a handler. +let current: Record = { + go: (x) => { + current = { go: (y) => y * 100 }; + const local = [x, x]; + return local[0]! + local[1]!; + }, +}; +console.log("rebind", current["go"]!(3, 0), current["go"]!(3, 0)); +console.log(log.join("\n")); diff --git a/tests/corpus/8231-function-table-shapes.ts b/tests/corpus/8231-function-table-shapes.ts new file mode 100644 index 000000000..108c4cee0 --- /dev/null +++ b/tests/corpus/8231-function-table-shapes.ts @@ -0,0 +1,108 @@ +// Function dispatch through other table shapes: Map, arrays of +// handlers, object literals of methods (with and without `this`), handler +// mutation of the Map during calls, and adapters for handlers that declare +// fewer parameters than the table type. +type Op = (acc: number, arg: number) => number; + +const trace: string[] = []; +const byName = new Map(); +byName.set("add", (acc, arg) => acc + arg); +byName.set("half", (acc) => acc / 2); +byName.set("reset", () => { + byName.delete("reset"); + byName.set("reset", (acc) => acc - 1); + trace.push("reset replaced itself"); + return 0; +}); +byName.set("clear", (acc) => { + const keep = [acc, "before clear"]; + byName.clear(); + trace.push(keep.join(" ") + ", size " + byName.size); + return acc; +}); + +function program(): string[] { + return process.argv.length > 99 ? [] : ["add", "half", "nop", "reset", "reset", "add", "clear", "add"]; +} + +let acc = 8; +for (const name of program()) { + const handler = byName.get(name); + if (handler !== undefined) acc = handler(acc, 3); + else trace.push("no " + name); + console.log(name, acc, byName.get(name)?.(1, 1) ?? "-"); +} + +const byCode: Op[] = [(a, b) => a - b, (a) => a * 3, (a, b) => Math.max(a, b)]; +let total = 1; +for (let i = 0; i < 9; i++) { + total = byCode[i % 4]?.(total, i) ?? total + 100; + if (i % 4 < byCode.length) total = byCode[i % 4]!(total, 1); +} +console.log("array", total); + +const counter = { + base: 5, + bump(by: number): number { + this.base += by; + return this.base; + }, + twice(by: number): number { + return this.bump(by) + this.bump(by); + }, + plain(by: number): number { + return by * 2; + }, +}; +console.log("methods", counter.bump(1), counter.twice(2), counter.plain(3), counter["plain"](4)); + +// Methods that read `this`, called through computed keys and through a +// signature adapter (a method declaring fewer parameters than its type). +interface Account { + balance: number; + deposit: (amount: number, note: string) => number; + withdraw: (amount: number, note: string) => number; + peek: (amount: number, note: string) => number; +} +const account: Account = { + balance: 10, + deposit(amount) { + this.balance += amount; + return this.balance; + }, + withdraw(amount, note) { + this.balance -= amount; + trace.push("withdraw " + note); + return this.balance; + }, + peek: (amount) => amount, +}; +for (const op of ["deposit", "withdraw", "peek", "deposit"] as const) { + console.log(op, account[op](5, "n-" + op), account.balance); +} +const detached = account.peek; +console.log("detached", detached(3, "x")); + +interface Machine { + state: string; + on: Record string>; +} +const machine: Machine = { + state: "idle", + on: { + idle: (m, input) => (input > 0 ? "running" : m.state), + running: (m, input) => { + if (input < 0) { + m.on["stopped"] = () => "idle"; + return "stopped"; + } + return m.state; + }, + }, +}; +for (const input of [0, 1, 2, -1, 5, 3]) { + const next = machine.on[machine.state]?.(machine, input) ?? machine.state; + console.log("machine", machine.state, input, "->", next); + machine.state = next; +} +console.log(trace.join("\n")); diff --git a/tests/corpus/8232-optional-function-values.ts b/tests/corpus/8232-optional-function-values.ts new file mode 100644 index 000000000..5035c5f51 --- /dev/null +++ b/tests/corpus/8232-optional-function-values.ts @@ -0,0 +1,75 @@ +// Values typed `F | undefined` for a function type F: identity and +// equality (signature adapters compare as the function they adapt), typeof, +// truthiness, storage in arrays, records, class fields and Maps, optional +// parameters and returns. +type Unary = (x: number) => number; +type Binary = (x: number, y: number) => number; + +const double: Unary = (x) => x * 2; +const asBinary: Binary = double; +const maybe = (flag: boolean): Unary | undefined => (flag ? double : undefined); + +const a = maybe(true); +const b = maybe(true); +const none = maybe(false); +console.log(a === b, a === none, none === undefined, typeof a, typeof none, !!a, !!none); +console.log(a === double, (asBinary as unknown) === (double as unknown)); + +const slots: (Unary | undefined)[] = [double, undefined, (x) => x + 1]; +console.log(slots.map((f) => (f ? f(5) : "empty")).join(" "), slots.length); +console.log(slots.indexOf(double), slots.includes(undefined), slots.filter((f) => f !== undefined).length); + +interface Hooks { + before?: Unary; + after?: Unary; +} +const hooks: Hooks = { after: (x) => x - 1 }; +console.log(hooks.before?.(1) ?? "no before", hooks.after?.(1) ?? "no after", "before" in hooks); + +class Button { + onClick: Unary | undefined; + clicks = 0; + click(): number { + this.clicks++; + return this.onClick?.(this.clicks) ?? -1; + } +} +const button = new Button(); +console.log(button.click()); +button.onClick = (n) => n * 100; +console.log(button.click(), button.click()); +button.onClick = undefined; +console.log(button.click(), button.onClick === undefined); + +const registry = new Map([ + ["set", double], + ["unset", undefined], +]); +console.log(registry.get("set")?.(4), registry.get("unset")?.(4), registry.has("unset"), registry.get("other") === undefined); + +function run(x: number, transform?: Unary, combine?: Binary): number { + const t = transform ? transform(x) : x; + return combine === undefined ? t : combine(t, x); +} +console.log(run(3), run(3, double), run(3, undefined, (p, q) => p * q), run(3, (x) => -x, asBinary)); + +function pick(name: string): Binary | undefined { + switch (name) { + case "mul": + return (x, y) => x * y; + case "first": + return (x) => x; + default: + return undefined; + } +} +for (const name of ["mul", "first", "none"]) { + const f = pick(name); + console.log(name, f?.(6, 7), f === undefined ? "undefined" : typeof f); +} + +let late: Unary | undefined; +const callLate = (): number => late?.(9) ?? 0; +console.log(callLate()); +late = (x) => x + 0.5; +console.log(callLate()); diff --git a/tests/harness/corpus-costs/8230-function-record-dispatch.ts.json b/tests/harness/corpus-costs/8230-function-record-dispatch.ts.json new file mode 100644 index 000000000..1dd4b287a --- /dev/null +++ b/tests/harness/corpus-costs/8230-function-record-dispatch.ts.json @@ -0,0 +1 @@ +{ "plain": 4700, "san": 5800 } diff --git a/tests/harness/corpus-costs/8231-function-table-shapes.ts.json b/tests/harness/corpus-costs/8231-function-table-shapes.ts.json new file mode 100644 index 000000000..1dd4b287a --- /dev/null +++ b/tests/harness/corpus-costs/8231-function-table-shapes.ts.json @@ -0,0 +1 @@ +{ "plain": 4700, "san": 5800 } diff --git a/tests/harness/corpus-costs/8232-optional-function-values.ts.json b/tests/harness/corpus-costs/8232-optional-function-values.ts.json new file mode 100644 index 000000000..1dd4b287a --- /dev/null +++ b/tests/harness/corpus-costs/8232-optional-function-values.ts.json @@ -0,0 +1 @@ +{ "plain": 4700, "san": 5800 } From e7a088f90420ca6de0d81675e6e95989a60eb215 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 16:58:11 -0500 Subject: [PATCH 021/128] Key the executable cache by the function layout's contents The early executable cache key covered the profile but not the function layout, so a build that added, changed or edited a layout could restore the executable built with the previous order. The key now includes the digest of the layout file's bytes. An unreadable layout fails the build with SC3002 before the cache lookup. --- .../src/executable/executable-cache.test.ts | 3 +- .../src/executable/executable-cache.ts | 4 ++ packages/compiler/src/index.ts | 20 ++++++++++ .../compiler/test/function-layout.test.ts | 38 ++++++++++++++++++- 4 files changed, 63 insertions(+), 2 deletions(-) diff --git a/packages/compiler/src/executable/executable-cache.test.ts b/packages/compiler/src/executable/executable-cache.test.ts index afae8b2c1..68aedbc33 100644 --- a/packages/compiler/src/executable/executable-cache.test.ts +++ b/packages/compiler/src/executable/executable-cache.test.ts @@ -220,7 +220,7 @@ test("early executable cache misses on source and resolution changes", async () expect(await readEarlyExecutableCache(f.root, f.options)).toBeNull(); }); -test("early executable keys isolate compile modes, paths, implementation, checker, and FFI manifests", async () => { +test("early executable keys isolate compile modes, paths, implementation, checker, function layouts, and FFI manifests", async () => { const f = await fixture(); const tracker = new FrontendInputTracker(); tracker.run(() => trackedReadFile(f.source)); @@ -241,6 +241,7 @@ test("early executable keys isolate compile modes, paths, implementation, checke { ...f.options, targetCpu: "x86-64-v4" }, { ...f.options, profile: "profile-generate:/tmp/%p.profraw" }, { ...f.options, profile: "profile-use:digest" }, + { ...f.options, functionLayout: "layout-digest" }, { ...f.options, checker: "tsc-ts-executable-identity" }, { ...f.options, npmStatic: "auto" }, { ...f.options, npmStatic: ["commander"] }, diff --git a/packages/compiler/src/executable/executable-cache.ts b/packages/compiler/src/executable/executable-cache.ts index f26c4c89a..ed351e809 100644 --- a/packages/compiler/src/executable/executable-cache.ts +++ b/packages/compiler/src/executable/executable-cache.ts @@ -148,6 +148,8 @@ export interface EarlyExecutableCacheOptions { /** Omitted without --profile-generate/--profile-use; otherwise the * pattern, or the digest of the profile's bytes. */ profile?: string; + /** Omitted without a function layout; otherwise the digest of its bytes. */ + functionLayout?: string; /** Omitted for the default tsgo checker; with SCRIPTC_CHECKER=tsc-ts, the * tsc-ts executable's file identity. */ checker?: string; @@ -290,6 +292,7 @@ function cacheKey(options: EarlyExecutableCacheOptions): string { ...(options.detachedExit ? ["detached-exit"] : []), ...targetCpuKeyParts(options.targetCpu), ...(options.profile !== undefined ? [options.profile] : []), + ...(options.functionLayout !== undefined ? [`layout:${options.functionLayout}`] : []), ...(options.checker !== undefined ? [`checker:${options.checker}`] : []), ...(options.youngNursery ? ["young-nursery"] : []), options.npmStatic === null @@ -333,6 +336,7 @@ function routeKey(options: Omit { + if (opts.functionLayout === undefined) return undefined; + const path = resolve(opts.functionLayout); + let bytes: Buffer; + try { + bytes = await readFile(path); + } catch (err) { + throw new Error( + `cannot read function layout ${path}: ${err instanceof Error ? err.message : String(err)}`, + ); + } + return createHash("sha256").update(bytes).digest("hex"); +} + /** The request's function layout. */ async function readFunctionLayout( opts: CompileRequestOptions, @@ -1546,9 +1563,11 @@ async function compileTracked( platform: buildPlatform, }); let profile: NativeProfileOptions | undefined; + let functionLayoutDigest: string | undefined; try { if (profileRefusal !== null) throw new Error(profileRefusal); profile = await readNativeProfile(opts); + functionLayoutDigest = await functionLayoutKey(opts); } catch (err) { return { ok: false, @@ -1583,6 +1602,7 @@ async function compileTracked( ...(opts.detachedExit === true ? { detachedExit: true as const } : {}), ...targetCpuField(opts.targetCpu), ...(profile === undefined ? {} : { profile: nativeProfileKey(profile) }), + ...(functionLayoutDigest === undefined ? {} : { functionLayout: functionLayoutDigest }), ...checkerField(), ...(youngNurseryRequested() ? { youngNursery: true as const } : {}), npmStatic: opts.npmStatic ?? null, diff --git a/packages/compiler/test/function-layout.test.ts b/packages/compiler/test/function-layout.test.ts index 8619c5b34..ecf4af7d9 100644 --- a/packages/compiler/test/function-layout.test.ts +++ b/packages/compiler/test/function-layout.test.ts @@ -3,7 +3,7 @@ import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { gzipSync } from "node:zlib"; -import { expect, test } from "vitest"; +import { expect, test, vi } from "vitest"; import { compile } from "../src/index.js"; import { functionLayoutKey, @@ -145,3 +145,39 @@ console.log(points.map(norm).join(","), points[0]!.x === 3 ? "three" : "other"); await rm(dir, { recursive: true, force: true }); } }); + +test("a changed function layout misses the executable cache", async () => { + vi.stubEnv("SCRIPTC_NO_CACHE", undefined); + const dir = await mkdtemp(join(tmpdir(), "scriptc-function-layout-cache-")); + try { + vi.stubEnv("SCRIPTC_CACHE_DIR", join(dir, "cache")); + const entry = join(dir, "main.ts"); + await writeFile(entry, source); + const exe = join(dir, "main"); + const llvm = join(dir, "main.ll"); + const build = async (functionLayout?: string) => { + const built = await compile(entry, { + outputKind: "exe", + outDir: dir, + outPath: exe, + ...(functionLayout === undefined ? {} : { functionLayout }), + }); + expect(built.ok, JSON.stringify(built.diagnostics)).toBe(true); + return definitions(await readFile(llvm, "utf8")); + }; + const plain = await build(); + const third = plain.find((d) => /^sc_b?f_third$/.test(d.name))!.name; + const first = plain.find((d) => /^sc_b?f_first$/.test(d.name))!.name; + const layout = join(dir, "layout"); + await writeFile(layout, `1 ${third}\n`); + expect((await build(layout)).find((d) => d.name === third)!.group).toBe("layout-1"); + // The same path with other contents is another layout. + await writeFile(layout, `1 ${first}\n`); + const edited = await build(layout); + expect(edited.find((d) => d.name === first)!.group).toBe("layout-1"); + expect(edited.find((d) => d.name === third)!.group).not.toMatch(/^layout-/); + } finally { + vi.unstubAllEnvs(); + await rm(dir, { recursive: true, force: true }); + } +}); From 52abff7c147f5429310136513d17fb72880dd3f8 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 13:33:51 -0700 Subject: [PATCH 022/128] Clone union records whose override is an empty array literal Spreading a union of records and replacing a shared field keeps each value's variant (lowerUnionRecordClone), but only when every override's type lifts into the field. An empty array literal is typed `never[]`, which maps to nothing, so `{ ...entry, content: [] }` over a union fell back to the ordinary literal path. That path cannot build a union of spread records, and the literal was refused (SC2001). An empty array literal now builds an empty array of each arm's own element type. This covers a field that is an array and a field that is a union with exactly one array arm (`string | Part[]`). pi's session-manager repairs messages with missing content this way (`return [{ ...message, content: [] }]`). The refusal rejected the whole SessionManager class. Co-Authored-By: Claude Opus 5.5 --- .../lowering/expressions/object-literals.ts | 19 +++- .../union-clone-empty-array-overrides.ts.json | 6 ++ .../union-clone-empty-array-overrides.ts | 92 +++++++++++++++++++ .../union-clone-empty-array-overrides.ts.json | 1 + 4 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/union-clone-empty-array-overrides.ts.json create mode 100644 tests/corpus/union-clone-empty-array-overrides.ts create mode 100644 tests/harness/corpus-costs/union-clone-empty-array-overrides.ts.json diff --git a/packages/compiler/src/frontend/lowering/expressions/object-literals.ts b/packages/compiler/src/frontend/lowering/expressions/object-literals.ts index 70766949a..ae82133bf 100644 --- a/packages/compiler/src/frontend/lowering/expressions/object-literals.ts +++ b/packages/compiler/src/frontend/lowering/expressions/object-literals.ts @@ -2513,6 +2513,20 @@ export function lowerObjectLiteral( : { kind: "seqExpr", stmts: spreadStmts, result, type, loc }; } +/** The field type is an array, or a union with exactly one array arm. */ +function singleArrayArm(lowerer: Lowerer, type: IrType): boolean { + if (type.kind === "array") return true; + if (type.kind !== "union") return false; + const arms = lowerer.unions.get(type.unionId)?.arms ?? []; + return arms.filter((arm) => arm.kind === "array").length === 1; +} + +function isEmptyArrayLiteral(node: ts.Node): boolean { + let inner = node; + while (ts.isParenthesizedExpression(inner)) inner = inner.expression; + return ts.isArrayLiteralExpression(inner) && inner.elements.nodes.length === 0; +} + /** A union of plain records can preserve its existing variant while * replacing shared fields. Dispatch before constructing the copy: only * the selected arm evaluates overrides, and recordClone snapshots fields @@ -2561,8 +2575,11 @@ function lowerUnionRecordClone(lowerer: Lowerer, expr: ts.ObjectLiteralExpressio for (let index = 0; index < props.length; index++) { const prop = props[index]!; const node = ts.isPropertyAssignment(prop) ? prop.initializer : prop.name; - const valueType = lowerer.mapTypeOf(lowerer.typeOf(node)); const fieldType = shape.fields.find((field) => field.name === names[index])!.type; + // An empty array literal (`content: []`, typed `never[]`) builds a + // fresh array of each arm's own element type. + if (isEmptyArrayLiteral(node) && singleArrayArm(lowerer, fieldType)) continue; + const valueType = lowerer.mapTypeOf(lowerer.typeOf(node)); const lift = valueType ? lowerer.widthLiftPlan(valueType, fieldType) : null; // The inferred result must retain an override's own fields and // aliases. A structural copy into the source field's narrower shape diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/union-clone-empty-array-overrides.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/union-clone-empty-array-overrides.ts.json new file mode 100644 index 000000000..cb11c5098 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/union-clone-empty-array-overrides.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/union-clone-empty-array-overrides.ts" + ], + "diags": [] +} diff --git a/tests/corpus/union-clone-empty-array-overrides.ts b/tests/corpus/union-clone-empty-array-overrides.ts new file mode 100644 index 000000000..98ddac59c --- /dev/null +++ b/tests/corpus/union-clone-empty-array-overrides.ts @@ -0,0 +1,92 @@ +// Spreading a union of records and overriding a shared field with an empty +// array literal keeps each value's own variant: the `[]` (typed `never[]`) +// becomes an empty array of the selected arm's element type, also when that +// arm's field is a union with one array arm (`string | Part[]`). + +interface TextPart { + type: "text"; + text: string; +} +interface ImagePart { + type: "image"; + data: string; +} +interface UserEntry { + role: "user"; + content: string | (TextPart | ImagePart)[]; + timestamp: number; +} +interface AssistantEntry { + role: "assistant"; + content: TextPart[]; + model: string; + timestamp: number; +} +interface ToolEntry { + role: "tool"; + toolCallId: string; + content: (TextPart | ImagePart)[]; + isError: boolean; + timestamp: number; +} +interface SystemEntry { + role: "system"; + content: string; + timestamp: number; +} +interface NoteEntry { + role: "note"; + text: string; + timestamp: number; +} +type Entry = UserEntry | AssistantEntry | ToolEntry | SystemEntry | NoteEntry; + +function repair(entry: Entry, clear: boolean): Entry[] { + if (entry.role === "system" && clear) return [{ ...entry, content: "" }]; + if ((entry.role === "user" || entry.role === "assistant" || entry.role === "tool") && clear) { + return [{ ...entry, content: [] }]; + } + return [entry]; +} + +interface Circle { + kind: "circle"; + tags: string[]; + radius: number; +} +interface Square { + kind: "square"; + tags: string[]; + side: number; +} +type Shape = Circle | Square; + +function cleared(shape: Shape): Shape { + return { ...shape, tags: [] }; +} + +const entries: Entry[] = [ + { role: "user", content: [{ type: "text", text: "hello" }], timestamp: 1 }, + { role: "assistant", content: [{ type: "text", text: "hi" }], model: "m", timestamp: 2 }, + { role: "tool", toolCallId: "t1", content: [{ type: "image", data: "AA==" }], isError: false, timestamp: 3 }, + { role: "note", text: "hi", timestamp: 4 }, + { role: "system", content: "be brief", timestamp: 5 }, + { role: "user", content: "kept", timestamp: 6 }, +]; +entries.forEach((entry, index) => { + for (const fixed of repair(entry, index % 2 === 0 || entry.role === "system")) { + console.log(fixed.role, JSON.stringify(fixed), fixed === entry); + } +}); +console.log(JSON.stringify(entries[0])); + +const shapes: Shape[] = [ + { kind: "circle", tags: ["round", "red"], radius: 2 }, + { kind: "square", tags: ["blue"], side: 3 }, +]; +for (const shape of shapes) { + const copy = cleared(shape); + copy.tags.push("fresh"); + const area = copy.kind === "circle" ? copy.radius * copy.radius * 3 : copy.side * copy.side; + console.log(copy.kind, area, copy.tags.join("+"), shape.tags.join("+"), copy !== shape); +} diff --git a/tests/harness/corpus-costs/union-clone-empty-array-overrides.ts.json b/tests/harness/corpus-costs/union-clone-empty-array-overrides.ts.json new file mode 100644 index 000000000..1254aa6e4 --- /dev/null +++ b/tests/harness/corpus-costs/union-clone-empty-array-overrides.ts.json @@ -0,0 +1 @@ +{ "plain": 4000 } From be0e825ac1e2a1f8e2c88ce9bfafbb8d2788635a Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 14:35:56 -0700 Subject: [PATCH 023/128] Map `any` parameters of interface method and call signatures as checked values MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A parameter a TypeScript program types `any` maps to the checked-dynamic slot for function declarations and spelled function types, but not for method or call signatures of interfaces and type literals. So `interface Tool { execute(id: string, params: any): Promise }` was refused (SC2009), along with every value of the interface, whenever no class implementing it gave it a class view. Method and call signatures in program source now take the same rule. pi's ToolDefinition declares `execute(toolCallId: string, params: Static, …)`. Under --node-islands, typebox's types resolve to `any`, so the parameter is `any`. The refusal rejected the AgentSession class through its `_customTools: ToolDefinition[]` field, and CreateAgentSessionRuntimeResult with it. Co-Authored-By: Claude Opus 5.5 --- packages/compiler/src/frontend/type-mapper.ts | 12 ++++-- .../method-signature-any-params.ts.json | 6 +++ tests/corpus/method-signature-any-params.ts | 39 +++++++++++++++++++ .../method-signature-any-params.ts.json | 1 + 4 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/method-signature-any-params.ts.json create mode 100644 tests/corpus/method-signature-any-params.ts create mode 100644 tests/harness/corpus-costs/method-signature-any-params.ts.json diff --git a/packages/compiler/src/frontend/type-mapper.ts b/packages/compiler/src/frontend/type-mapper.ts index 17f9d0d11..aa3af2b14 100644 --- a/packages/compiler/src/frontend/type-mapper.ts +++ b/packages/compiler/src/frontend/type-mapper.ts @@ -5218,10 +5218,12 @@ function mapCallSignature(sig: ts.Signature, ctx: TypeMapperCtx): IrType | null // A parameter a TypeScript program types `any` takes whatever the // caller passes: the checked-dynamic slot, as an `any`-typed binding // already is (dynFallbackType). Declaration files keep their paths. - // Only function declarations, spelled function types and lambda - // parameters whose default is the only source of their type (`(n = - // lookup() ?? 5) => ...` with an `any` lookup): other lambdas and - // methods in object literals keep their existing checked-dynamic story. + // Only function declarations, spelled function types, method and call + // signatures of interfaces and type literals (`execute(params: any): + // Promise`), and lambda parameters whose default is the only source + // of their type (`(n = lookup() ?? 5) => ...` with an `any` lookup): + // other lambdas and methods in object literals keep their existing + // checked-dynamic story. if ( !pt && !rest && @@ -5230,6 +5232,8 @@ function mapCallSignature(sig: ts.Signature, ctx: TypeMapperCtx): IrType | null decl.parent !== undefined && (ts.isFunctionDeclaration(decl.parent) || ts.isFunctionTypeNode(decl.parent) || + ts.isMethodSignatureDeclaration(decl.parent) || + ts.isCallSignatureDeclaration(decl.parent) || ((ts.isArrowFunction(decl.parent) || ts.isFunctionExpression(decl.parent)) && decl.initializer !== undefined && decl.type === undefined && diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/method-signature-any-params.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/method-signature-any-params.ts.json new file mode 100644 index 000000000..b3f7ed165 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/method-signature-any-params.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/method-signature-any-params.ts" + ], + "diags": [] +} diff --git a/tests/corpus/method-signature-any-params.ts b/tests/corpus/method-signature-any-params.ts new file mode 100644 index 000000000..e505ae78c --- /dev/null +++ b/tests/corpus/method-signature-any-params.ts @@ -0,0 +1,39 @@ +// A method or call signature of an interface whose parameter is typed `any` +// (directly, or through an alias that resolves to `any`) takes whatever the +// caller passes, as a function type's `any` parameter already does: the +// interface compiles, and implementations receive the checked-dynamic value. + +type Loose = any; + +interface Tool { + name: string; + execute(id: string, params: any, extra?: Loose): Promise; + describe(value: Loose): string; +} + +interface Formatter { + (value: any): string; +} + +const tools: Tool[] = [ + { + name: "count", + execute: async (id, params) => `${id} has ${Object.keys(params ?? {}).length} keys`, + describe: (value) => `count(${Array.isArray(value) ? "array" : typeof value})`, + }, +]; + +const format: Formatter = (value) => (typeof value === "number" ? value.toFixed(1) : String(value)); + +async function main(): Promise { + const inputs: unknown[] = [{ a: 1, b: [2, 3] }, "text", 42, null, [1, 2]]; + for (const tool of tools) { + for (const input of inputs) { + console.log(tool.name, await tool.execute("call", input), tool.describe(input)); + } + console.log(tool.name, await tool.execute("extra", { k: true }, { more: "yes" })); + } + console.log(format(3), format("x"), format(undefined)); +} + +main().catch((e: unknown) => console.log("failed", e instanceof Error ? e.message : String(e))); diff --git a/tests/harness/corpus-costs/method-signature-any-params.ts.json b/tests/harness/corpus-costs/method-signature-any-params.ts.json new file mode 100644 index 000000000..1254aa6e4 --- /dev/null +++ b/tests/harness/corpus-costs/method-signature-any-params.ts.json @@ -0,0 +1 @@ +{ "plain": 4000 } From 171214b2c214e71c6dda67b9401859dbf8b0e967 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 14:40:32 -0700 Subject: [PATCH 024/128] Discard the result of void generic methods called through class-backed interfaces A generic method called through an interface value that classes implement dispatches by name on the checked-dynamic receiver, and the result converts to the call's instantiated return type. For a void method, that conversion (`unknown` to `void`) was refused (SC1100). The result is now discarded, as JavaScript does. The dispatch helper selected overriding subclasses' erased instances with a ternary, which has no void form (an internal compiler error once the call got that far). A void method now selects them with if statements. Co-Authored-By: Claude Opus 5.5 --- .../lowering/class-dynamic-dispatch.ts | 50 ++++++++++++------- .../src/frontend/lowering/lower-calls.ts | 13 ++++- .../generic-interface-void-calls.ts.json | 6 +++ tests/corpus/generic-interface-void-calls.ts | 45 +++++++++++++++++ .../generic-interface-void-calls.ts.json | 1 + 5 files changed, 96 insertions(+), 19 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/generic-interface-void-calls.ts.json create mode 100644 tests/corpus/generic-interface-void-calls.ts create mode 100644 tests/harness/corpus-costs/generic-interface-void-calls.ts.json diff --git a/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts b/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts index 2af84f8fb..7992f7fec 100644 --- a/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts +++ b/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts @@ -6793,24 +6793,41 @@ export class ClassDynamicDispatch { type: result, loc, }; + // A void method dispatches its overrides with statements: a ternary + // has no void form. + let voidDispatch: IrStmt[] = [{ kind: "exprStmt", expr: call, loc }]; for (const override of overrides.toReversed()) { const subType: IrType = { kind: "object", className: override.cls.def.name }; + const isOverride: IrExpr = { + kind: "instanceOf", + value: receiver, + className: override.cls.def.name, + type: BOOL, + loc, + }; + const overrideCall: IrExpr = { + kind: "call", + callee: override.callee, + args: [{ kind: "downcast", value: receiver, type: subType, loc }, ...args], + type: result, + loc, + }; + if (result.kind === "void") { + voidDispatch = [ + { + kind: "if", + cond: isOverride, + then: [{ kind: "exprStmt", expr: overrideCall, loc }], + else_: voidDispatch, + loc, + }, + ]; + continue; + } call = { kind: "ternary", - cond: { - kind: "instanceOf", - value: receiver, - className: override.cls.def.name, - type: BOOL, - loc, - }, - then: { - kind: "call", - callee: override.callee, - args: [{ kind: "downcast", value: receiver, type: subType, loc }, ...args], - type: result, - loc, - }, + cond: isOverride, + then: overrideCall, else_: call, type: result, loc, @@ -6818,10 +6835,7 @@ export class ClassDynamicDispatch { } let body: IrStmt[]; if (result.kind === "void") - body = [ - { kind: "exprStmt", expr: call, loc }, - { kind: "return", value: dynUndefinedExpr(loc), loc }, - ]; + body = [...voidDispatch, { kind: "return", value: dynUndefinedExpr(loc), loc }]; else { const boxed = lowerer.coerceToExpected(call, DYN); if (boxed.type.kind !== "dyn") return fence(); diff --git a/packages/compiler/src/frontend/lowering/lower-calls.ts b/packages/compiler/src/frontend/lowering/lower-calls.ts index c8f02562e..e2f7ade90 100644 --- a/packages/compiler/src/frontend/lowering/lower-calls.ts +++ b/packages/compiler/src/frontend/lowering/lower-calls.ts @@ -10073,7 +10073,18 @@ function lowerObjLitGenericMethodCall( type: DYN, loc, }; - return lowerer.coerceInto(call, invoked, lowerer.irTypeOf(call)); + const resultType = lowerer.irTypeOf(call); + // A void method's runtime result is discarded, as JavaScript does. + if (resultType.kind === "void") { + return { + kind: "seqExpr", + stmts: [{ kind: "exprStmt", expr: invoked, loc }], + result: { kind: "libCall", fn: "console.noop", args: [], type: VOID, loc }, + type: VOID, + loc, + }; + } + return lowerer.coerceInto(call, invoked, resultType); } } if (onInterface) { diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/generic-interface-void-calls.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/generic-interface-void-calls.ts.json new file mode 100644 index 000000000..a5c69b714 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/generic-interface-void-calls.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/generic-interface-void-calls.ts" + ], + "diags": [] +} diff --git a/tests/corpus/generic-interface-void-calls.ts b/tests/corpus/generic-interface-void-calls.ts new file mode 100644 index 000000000..d810383f7 --- /dev/null +++ b/tests/corpus/generic-interface-void-calls.ts @@ -0,0 +1,45 @@ +// Calling a void generic method through an interface value that classes +// implement (the receiver is a checked-dynamic object, and the call +// dispatches by name to the class's erased method) discards the result, as +// JavaScript does, instead of converting it to `void`. + +interface Message { + content: string; + details?: T; +} + +interface Channel { + name: string; + publish(message: Message): void; + count(items: T[]): number; +} + +const delivered: string[] = []; + +class LogChannel implements Channel { + name: string; + constructor(name: string) { + this.name = name; + } + publish(message: Message): void { + delivered.push(`${this.name}:${message.content}:${message.details === undefined ? "-" : JSON.stringify(message.details)}`); + } + count(items: T[]): number { + return items.length; + } +} + +class LoudChannel extends LogChannel { + publish(message: Message): void { + super.publish({ content: message.content.toUpperCase(), details: message.details }); + } +} + +const channels: Channel[] = [new LogChannel("quiet"), new LoudChannel("loud")]; +for (const channel of channels) { + channel.publish({ content: "hello", details: [1, 2] }); + channel.publish({ content: "bare" }); + const result = channel.publish({ content: "typed", details: "x" }); + console.log(channel.name, result === undefined, channel.count(["a", "b", "c"])); +} +console.log(delivered.join(" | ")); diff --git a/tests/harness/corpus-costs/generic-interface-void-calls.ts.json b/tests/harness/corpus-costs/generic-interface-void-calls.ts.json new file mode 100644 index 000000000..1254aa6e4 --- /dev/null +++ b/tests/harness/corpus-costs/generic-interface-void-calls.ts.json @@ -0,0 +1 @@ +{ "plain": 4000 } From 56e84177467483c007ac218a04bd248c885ccc48 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 14:35:07 -0700 Subject: [PATCH 025/128] Name the package declaration and its patch when a declared-type check fails A value that contradicts a type an npm package declares used to throw "expected number at $, got undefined" and nothing else. Such a check now names the declaration and the type patch that admits the value: profilekit@3.1.0 declares Profile.email as string (index.d.ts:7) if that declaration is wrong, patch it in package.json: ... Origins are found for values a package function returns under a written return type, for properties of records typed by a package-declared type (record projections into such a type are keyed by it), and for declaration-boundary casts, whose origin the projection records from the declaration-world checker. Generic declarations get none: their types come from the program's own instantiation. Checked conversions carry dynCheck.origin, an index into IrModule.declOrigins; the site's existing cold exception block calls scr_type_origin_note (new runtime unit behind the typeOrigins feature), which appends the note to the pending TypeError and derives the selector suffix and the admitted kind from the failure. Union extractions get the note per arm at compile time. The hot path is unchanged. Co-Authored-By: Claude Opus 5.5 --- docs/content/docs/dependencies.mdx | 8 + .../src/backend/executable-features.ts | 1 + packages/compiler/src/backend/llvm/emitter.ts | 5 + .../compiler/src/backend/llvm/expr-async.ts | 19 +- .../src/backend/native-link-info-core.ts | 1 + .../compiler/src/backend/native/contracts.ts | 1 + .../compiler/src/backend/native/executable.ts | 1 + .../compiler/src/backend/runtime-pack-core.ts | 2 + .../src/executable/executable-cache.ts | 1 + .../compiler/src/frontend/decl-projection.ts | 61 +++ .../src/frontend/lowering/coercions/state.ts | 9 +- .../frontend/lowering/coercions/structural.ts | 31 +- .../src/frontend/lowering/coercions/unions.ts | 36 +- .../src/frontend/lowering/decl-origin.ts | 392 ++++++++++++++++++ .../lowering/expressions/narrowing.ts | 54 ++- .../compiler/src/frontend/lowering/lowerer.ts | 100 ++++- .../src/frontend/lowering/union-narrow.ts | 17 +- packages/compiler/src/frontend/program.ts | 7 +- packages/compiler/src/index.ts | 1 + .../src/ir/function-references.test.ts | 1 + packages/compiler/src/ir/ir.ts | 10 + packages/compiler/src/ir/runtime-features.ts | 4 + packages/compiler/src/ir/validate.ts | 13 + .../compiler/src/native/sanitizer.test.ts | 1 + .../runtime-pack-matrix.mjs | 1 + packages/runtime/src/scr_type_origin.c | 154 +++++++ tests/fixtures/type-patches/unpatched/main.ts | 13 + .../type-patches/unpatched/package.json | 1 + tests/harness/type-patches.test.ts | 32 +- 29 files changed, 961 insertions(+), 16 deletions(-) create mode 100644 packages/compiler/src/frontend/lowering/decl-origin.ts create mode 100644 packages/runtime/src/scr_type_origin.c create mode 100644 tests/fixtures/type-patches/unpatched/main.ts create mode 100644 tests/fixtures/type-patches/unpatched/package.json diff --git a/docs/content/docs/dependencies.mdx b/docs/content/docs/dependencies.mdx index 9b660c76f..58b0a0a1d 100644 --- a/docs/content/docs/dependencies.mdx +++ b/docs/content/docs/dependencies.mdx @@ -145,6 +145,14 @@ A JavaScript package can contain operations scriptc can't compile, often in func scriptc trusts declared types: a package's `.d.ts` files, its `@types/` package, and the JSDoc types in its JavaScript. A value that contradicts its declared type throws a `TypeError` instead of flowing on, so a package whose declarations are wrong can stop a program that runs under Node.js. A common case is a member declared `string` or `number` that is sometimes `undefined`. +When the type comes from a package's declarations, the error names the declaration and the patch that would admit the value: + +```text +Uncaught TypeError: expected string at $, got undefined + profilekit@3.1.0 declares Profile.email as string (index.d.ts:7) + if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "profilekit@^3.1.0": { "declarations": { "Profile.email": "| undefined" } } } } +``` + Fix such a declaration in your project with a type patch in `package.json`: ```json:package.json diff --git a/packages/compiler/src/backend/executable-features.ts b/packages/compiler/src/backend/executable-features.ts index 2a6c6959e..b2deb374d 100644 --- a/packages/compiler/src/backend/executable-features.ts +++ b/packages/compiler/src/backend/executable-features.ts @@ -31,6 +31,7 @@ export function executableLinkFeatures(mod: IrModule): NativeLinkFeatures { ...(features.streamDyn ? { streamDyn: true } : {}), ...(features.handleProps ? { handleProps: true } : {}), ...(features.declAdopt ? { declAdopt: true } : {}), + ...(features.typeOrigins ? { typeOrigins: true } : {}), ...(features.dynForAwait ? { dynForAwait: true } : {}), ...(features.eventsOnceSignal ? { eventsOnceSignal: true } : {}), ...(features.dynBuffer ? { dynBuffer: true } : {}), diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index f1f1fa7d6..f3b2f44fe 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -3700,6 +3700,9 @@ export class LlEmitter { passThrough?: { name: string; type: IrType }, poll = false, guard?: string, + /** Runs at the start of the cold unwind block, before the unwind (a + * package-declared check's origin note). */ + onUnwind?: () => void, ): void { const through = passThrough !== undefined && @@ -3724,6 +3727,7 @@ export class LlEmitter { const lk = B.newLabel("exc.k"); B.condBr(p, lu, lk); B.startBlock(lu); + onUnwind?.(); this.emitUnwind(through); B.startBlock(lk); if (skip !== undefined) { @@ -3800,6 +3804,7 @@ export class LlEmitter { B.condBr(cold, lu, lk); } B.startBlock(lu); + onUnwind?.(); this.emitUnwind(through); B.startBlock(lk); if (skip !== undefined) { diff --git a/packages/compiler/src/backend/llvm/expr-async.ts b/packages/compiler/src/backend/llvm/expr-async.ts index ee9ff2983..28a4cf57f 100644 --- a/packages/compiler/src/backend/llvm/expr-async.ts +++ b/packages/compiler/src/backend/llvm/expr-async.ts @@ -372,6 +372,16 @@ export function emitSerializationExpr( // the dummy harmlessly. // `JSON.parse(text) as T` fuses into one schema-directed parse that // falls back to exactly this route whenever the fast path declines. + // A package-declared target: the cold path names the declaration in + // the pending TypeError (scr_type_origin.c). + const origin = e.origin === undefined ? undefined : host.mod.declOrigins?.[e.origin]; + const note = + origin === undefined + ? undefined + : (): void => { + host.declare("declare void @scr_type_origin_note(ptr)"); + B.line(`call void @scr_type_origin_note(ptr ${host.cstr(origin)})`); + }; const parsed = e.value; if (!e.preserveRefs && parsed.kind === "libCall" && parsed.fn === "json.parse") { const fused = host.dyn.jsonParseHelper(e.type); @@ -380,7 +390,7 @@ export function emitSerializationExpr( const r = B.tmp(); B.line(`${r} = call ptr @${fused}(ptr ${text.name})`); const fusedOut = host.own({ name: r, type: e.type }); - host.emitPendingCheck(); + host.emitPendingCheck(undefined, false, undefined, note); return fusedOut; } } @@ -394,14 +404,14 @@ export function emitSerializationExpr( } const dynV = emitBorrowedInput(host, e.value); const helper = host.dyn.dynCheckHelper(e.type, e.preserveRefs); - if (isDynTypedRefType(e.type)) return emitClassCheck(host, e.type, dynV.name, helper); + if (isDynTypedRefType(e.type)) return emitClassCheck(host, e.type, dynV.name, helper, note); const ty = host.llType(e.type); const t = B.tmp(); B.line( `${t} = call ${ty === "i1" ? "zeroext i1" : ty} @${helper}(ptr ${dynV.name}, ptr null)`, ); const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); + host.emitPendingCheck(undefined, false, undefined, note); return out; } default: { @@ -420,6 +430,7 @@ function emitClassCheck( type: IrType & { kind: "object" }, value: string, helper: string, + note?: () => void, ): LlValue { const B = host.B; const slot = B.slot(); @@ -460,7 +471,7 @@ function emitClassCheck( B.line(`${result} = call ptr @${helper}(ptr ${value}, ptr null)`); B.line(`store ptr ${result}, ptr ${slot}`); // A throwing check returns null, so the unwind has nothing to release. - host.emitPendingCheck(); + host.emitPendingCheck(undefined, false, undefined, note); B.br(done); B.startBlock(done); const out = B.tmp(); diff --git a/packages/compiler/src/backend/native-link-info-core.ts b/packages/compiler/src/backend/native-link-info-core.ts index f250a2ac6..de92ca584 100644 --- a/packages/compiler/src/backend/native-link-info-core.ts +++ b/packages/compiler/src/backend/native-link-info-core.ts @@ -55,6 +55,7 @@ export interface NativeLinkFeatures { * Absent (false) for programs without them. */ handleProps?: boolean; declAdopt?: boolean; + typeOrigins?: boolean; /** for await over checked-dynamic values: scr_dyn_for_await.c. Absent * (false) for programs without it. */ dynForAwait?: boolean; diff --git a/packages/compiler/src/backend/native/contracts.ts b/packages/compiler/src/backend/native/contracts.ts index e3f97710f..9aeff6138 100644 --- a/packages/compiler/src/backend/native/contracts.ts +++ b/packages/compiler/src/backend/native/contracts.ts @@ -126,6 +126,7 @@ export interface CcOptions { /** Own properties JavaScript adds to children: compiles scr_dyn_handle_props.c. */ handleProps?: boolean; declAdopt?: boolean; + typeOrigins?: boolean; /** for await over checked-dynamic values: compiles scr_dyn_for_await.c. */ dynForAwait?: boolean; /** events.once with options (events.onceSignal): compiles diff --git a/packages/compiler/src/backend/native/executable.ts b/packages/compiler/src/backend/native/executable.ts index 7f989a5e4..2fba9ca4b 100644 --- a/packages/compiler/src/backend/native/executable.ts +++ b/packages/compiler/src/backend/native/executable.ts @@ -300,6 +300,7 @@ const RUNTIME_UNITS: readonly RuntimeUnit[] = [ unit((u) => u.opts.handleProps === true, "scr_dyn_handle_props.c"), // The declaration-typed boundary's adoption. unit((u) => u.opts.declAdopt === true, "scr_decl_adopt.c"), + unit((u) => u.opts.typeOrigins === true, "scr_type_origin.c"), // for await over checked-dynamic values. unit((u) => u.opts.dynForAwait === true, "scr_dyn_for_await.c"), // for await over checked-dynamic values that may hold native streams. diff --git a/packages/compiler/src/backend/runtime-pack-core.ts b/packages/compiler/src/backend/runtime-pack-core.ts index 22bba85d2..8457b7295 100644 --- a/packages/compiler/src/backend/runtime-pack-core.ts +++ b/packages/compiler/src/backend/runtime-pack-core.ts @@ -87,6 +87,7 @@ export interface RuntimeFeatureSet extends NativeLinkFeatures { streamDyn: boolean; handleProps: boolean; declAdopt: boolean; + typeOrigins: boolean; dynForAwait: boolean; eventsOnceSignal: boolean; dynBuffer: boolean; @@ -287,6 +288,7 @@ export function effectiveRuntimeFeatures( streamDyn: features.streamDyn === true, handleProps: features.handleProps === true, declAdopt: features.declAdopt === true, + typeOrigins: features.typeOrigins === true, dynForAwait: features.dynForAwait === true, eventsOnceSignal: features.eventsOnceSignal === true, dynBuffer: features.dynBuffer === true, diff --git a/packages/compiler/src/executable/executable-cache.ts b/packages/compiler/src/executable/executable-cache.ts index f26c4c89a..498ee7e19 100644 --- a/packages/compiler/src/executable/executable-cache.ts +++ b/packages/compiler/src/executable/executable-cache.ts @@ -74,6 +74,7 @@ export interface EarlyExecutableNativeFeatures { streamDyn?: boolean; handleProps?: boolean; declAdopt?: boolean; + typeOrigins?: boolean; dynForAwait?: boolean; eventsOnceSignal?: boolean; dynBuffer?: boolean; diff --git a/packages/compiler/src/frontend/decl-projection.ts b/packages/compiler/src/frontend/decl-projection.ts index a999559c2..eebe1f773 100644 --- a/packages/compiler/src/frontend/decl-projection.ts +++ b/packages/compiler/src/frontend/decl-projection.ts @@ -27,6 +27,59 @@ * scriptc-perf/results/design-decl-boundary/DESIGN.md. */ import * as ts from "./ts7/adapter.js"; +import { declarationSelector, originAt } from "./lowering/decl-origin.js"; + +/** Per user file, the origin (lowering/decl-origin.ts) of each boundary + * cast in source order: the package declaration the cast's type comes + * from, so a failing cast names it. Set by planDeclProjection, reset per + * program load. */ +const boundaryOrigins = new Map(); + +export function resetDeclBoundaryOrigins(): void { + boundaryOrigins.clear(); +} + +/** The origin of the `index`-th boundary cast of a file, or null. */ +export function declBoundaryOrigin(fileName: string, index: number): string | null { + return boundaryOrigins.get(fileName)?.[index] ?? null; +} + +/** The package declaration a projected expression's type comes from, in + * the declaration world. */ +function castOrigin(checker: ts.TypeChecker, node: ts.Node, type: ts.Type): string | null { + let inner = node as ts.Expression; + while ( + ts.isParenthesizedExpression(inner) || + ts.isAwaitExpression(inner) || + ts.isNonNullExpression(inner) + ) + inner = inner.expression; + let decl: ts.Node | undefined; + let suffix = ""; + try { + if (ts.isCallExpression(inner) || ts.isNewExpression(inner)) { + decl = checker.getResolvedSignature(inner)?.declaration; + suffix = "()"; + } else { + const name = ts.isPropertyAccessExpression(inner) + ? inner.name + : ts.isIdentifier(inner) + ? inner + : null; + if (name === null) return null; + let symbol = checker.getSymbolAtLocation(name); + if (symbol !== undefined && symbol.flags & ts.SymbolFlags.Alias) + symbol = checker.getAliasedSymbol(symbol); + decl = symbol?.declarations[0]; + } + if (decl === undefined) return null; + const selector = declarationSelector(decl); + if (selector === null) return null; + return originAt(decl, `${selector}${suffix}`, checker.typeToString(type)); + } catch { + return null; + } +} /** Alias names of projected types start with this prefix; the lowering * recognizes boundary casts and parameters by it. */ @@ -573,6 +626,7 @@ export function planDeclProjection(input: DeclProjectionInput): DeclProjection | const declSf = input.declProgram.getSourceFile(file); if (jsSf === undefined || declSf === undefined || jsSf.text !== declSf.text) continue; const fileEdits: Edit[] = []; + const fileOrigins: (string | null)[] = []; /** Candidate expressions (by js node) with their declared type, named * only for the casts that survive suppression. */ const exprCandidates = new Map(); @@ -946,6 +1000,12 @@ export function planDeclProjection(input: DeclProjectionInput): DeclProjection | const candidate = exprCandidates.get(e)!; const alias = candidate === "any" ? "any" : printer.project(candidate); if (alias === null) continue; + // Only casts to a projected alias are boundary casts the lowering + // counts (an `as any` cast is not one), so only they take a slot. + if (candidate !== "any") { + const twin = twins.get(e); + fileOrigins.push(twin === undefined ? null : castOrigin(declChecker, twin, candidate)); + } const start = ts.tokenStartOfNode(e); const stmt = e.parent; let prefix = "("; @@ -980,6 +1040,7 @@ export function planDeclProjection(input: DeclProjectionInput): DeclProjection | if (fileEdits.length === 0) continue; edits.set(file, fileEdits); + if (fileOrigins.some((o) => o !== null)) boundaryOrigins.set(file, fileOrigins); } if (edits.size === 0) return null; diff --git a/packages/compiler/src/frontend/lowering/coercions/state.ts b/packages/compiler/src/frontend/lowering/coercions/state.ts index 76e5ac434..9fa815081 100644 --- a/packages/compiler/src/frontend/lowering/coercions/state.ts +++ b/packages/compiler/src/frontend/lowering/coercions/state.ts @@ -16,7 +16,14 @@ export class CoercionState { // The extracted arm of each checked (non-defaulting) extraction helper. readonly checkedNarrowArms = new Map< string, - { unionId: string; tag: number; target: IrType; widens?: true; message?: string } + { + unionId: string; + tag: number; + target: IrType; + widens?: true; + message?: string; + origin?: string; + } >(); readonly retags = new Map(); readonly narrows = new Map(); diff --git a/packages/compiler/src/frontend/lowering/coercions/structural.ts b/packages/compiler/src/frontend/lowering/coercions/structural.ts index 93ae1c231..76c6c9c3b 100644 --- a/packages/compiler/src/frontend/lowering/coercions/structural.ts +++ b/packages/compiler/src/frontend/lowering/coercions/structural.ts @@ -1,3 +1,4 @@ +import { fieldOrigin } from "../decl-origin.js"; import { keyedHelperName } from "../stable-names.js"; import { constructedValue } from "../constructor-returns.js"; import { countedFor, dynUndefinedExpr, varRef } from "../../../ir/build.js"; @@ -394,7 +395,13 @@ export function recordWidthHelper( // orphan one). const plan = lowerer.recordWidthPlan(fromId, toId); if (!plan) return null; - const key = `rec:${fromId}:${toId}`; + // Package code converting into a package-declared record type (an + // object literal returned under `@returns {HelpContext}`): its field + // extractions name the declared fields (decl-origin.ts), so the helper + // is keyed by that type too. Every other projection is shared as before. + const declared = lowerer.coercionRecordOrigin(); + const key = + declared === null ? `rec:${fromId}:${toId}` : `rec:${fromId}:${toId}:origin:${declared.name}`; const existing = lowerer.valueHelpers.get(key); if (existing) return existing; const name = keyedHelperName(lowerer, "%rec.width", key); @@ -402,7 +409,21 @@ export function recordWidthHelper( // (self-referential shapes) resolves to this helper itself. lowerer.valueHelpers.set(key, name); const fromT: IrType = { kind: "record", shapeId: fromId }; - lowerer.liftedFns.push(buildRecordProjection(lowerer, name, fromT, to, plan, loc)); + const outerNode = lowerer.coercionOriginNode; + const outerField = lowerer.coercionFieldOrigin; + // Nested conversions see only their own field's origin. + lowerer.coercionOriginNode = null; + lowerer.coercionFieldOrigin = null; + try { + lowerer.liftedFns.push( + buildRecordProjection(lowerer, name, fromT, to, plan, loc, (field) => + declared === null ? null : fieldOrigin(lowerer.checker, declared, field), + ), + ); + } finally { + lowerer.coercionOriginNode = outerNode; + lowerer.coercionFieldOrigin = outerField; + } return name; } @@ -799,6 +820,7 @@ function buildRecordProjection( target: IrRecordShape, plan: Map, loc: SrcLoc, + originOf: (field: string) => string | null = () => null, ): IrFunction { const parameter = source.kind === "record" ? "r" : "o"; const localId = parameter + ".0"; @@ -855,7 +877,12 @@ function buildRecordProjection( type: conversion.src, loc, }; + // Only the field's own extraction (a plain narrow) carries the + // declared field's origin; nested conversions are shared. + lowerer.coercionFieldOrigin = + conversion.lift.how === "narrow" ? originOf(field.name) : null; const lifted = lowerer.applyWidthLift(conversion.lift, read, field.type, loc); + lowerer.coercionFieldOrigin = null; return { name: field.name, value: diff --git a/packages/compiler/src/frontend/lowering/coercions/unions.ts b/packages/compiler/src/frontend/lowering/coercions/unions.ts index 6bd72e989..316b1ecad 100644 --- a/packages/compiler/src/frontend/lowering/coercions/unions.ts +++ b/packages/compiler/src/frontend/lowering/coercions/unions.ts @@ -1,3 +1,4 @@ +import { renderOriginNote } from "../decl-origin.js"; import { keyedHelperName } from "../stable-names.js"; import { buildUnionNarrow, unionNarrowFailureMessage } from "../union-narrow.js"; import { isSafeToRepeat } from "../expressions/evaluation-safety.js"; @@ -408,7 +409,24 @@ export function narrowedArmHelper( if (!from || isUnitType(target)) return null; const tag = lowerer.armTag(fromId, target); if (tag < 0) return null; - const key = message === undefined ? `${fromId}:${tag}` : `${fromId}:${tag}:${message}`; + // A slot in package code typed by a package declaration: the TypeError + // names the declaration (decl-origin.ts). Other extractions keep their + // shared helper. + const originNode = + message === undefined && lowerer.coercionOriginUnion === fromId + ? lowerer.coercionOriginNode + : null; + const origin = + message !== undefined + ? null + : (lowerer.coercionFieldOrigin ?? + (originNode === null ? null : lowerer.slotOriginOf(originNode))); + const key = + message !== undefined + ? `${fromId}:${tag}:${message}` + : origin !== null + ? `${fromId}:${tag}:origin:${origin}` + : `${fromId}:${tag}`; const existing = lowerer.coercions.narrows.get(key); if (existing) { lowerer.coercions.checkedNarrows.add(existing); @@ -425,6 +443,8 @@ export function narrowedArmHelper( (type) => lowerer.fmt(type), null, message ?? null, + null, + origin, ); if (!fn) throw new InternalCompilerError("lowerer bug: invalid checked union extraction"); lowerer.coercions.checkedNarrowArms.set(name, { @@ -432,6 +452,7 @@ export function narrowedArmHelper( tag, target: from.arms[tag]!, ...(message === undefined ? {} : { message }), + ...(origin === null ? {} : { origin }), }); lowerer.liftedFns.push(fn); return name; @@ -516,8 +537,19 @@ export function checkedNarrowCall( let failure: IrExpr | null = null; for (let tag = from.arms.length - 1; tag >= 0; tag--) { if (tag === arm.tag) continue; + const failing = from.arms[tag]!; const message = - arm.message ?? unionNarrowFailureMessage(from.arms[tag]!, (t) => lowerer.fmt(t)); + (arm.message ?? unionNarrowFailureMessage(failing, (t) => lowerer.fmt(t))) + + (arm.origin === undefined + ? "" + : renderOriginNote( + arm.origin, + isUnitType(failing) + ? failing.kind === "undefinedT" + ? "undefined" + : "null" + : lowerer.fmt(failing), + )); const thrown = nodeThrowExpr(1, "", message, type, loc); failure = failure === null diff --git a/packages/compiler/src/frontend/lowering/decl-origin.ts b/packages/compiler/src/frontend/lowering/decl-origin.ts new file mode 100644 index 000000000..60510ecec --- /dev/null +++ b/packages/compiler/src/frontend/lowering/decl-origin.ts @@ -0,0 +1,392 @@ +/* Origins of package-declared types at checked conversions. + * + * scriptc enforces declared types: a value that contradicts the type an + * npm package declares (its .d.ts, @types package or JSDoc) throws a + * TypeError where Node runs on. When the declaration is what is wrong, the + * fix is a type patch (package.json scriptc.typePatches), so the error + * names the declaration and the patch that would admit the value: + * + * TypeError: expected number at $, got undefined + * termctx@1.2.0 declares Terminal.columns() as number (index.js:14) + * if that declaration is wrong, patch it in package.json: "scriptc": + * { "typePatches": { "termctx@^1.2.0": { "declarations": + * { "Terminal.columns()": "| undefined" } } } } + * + * The origin is found for three kinds of slots: a value a package function + * returns under a written return type, a property of an object literal + * typed by a package-declared type, and a declaration-boundary cast (a + * value user code receives from a package; decl-projection.ts records + * those with originAt). Generic declarations get none: their types come + * from how the program instantiates them. Checks in + * code that names no package declaration carry no origin, so programs + * without npm packages lower exactly as before. + * + * The origin string's fields (separated by \x1f) are read by the runtime + * (scr_type_origin.c) for checked conversions, whose path and actual kind + * are only known when they fail, and rendered here for union extractions, + * whose failing arm is known statically. */ + +import type { IrExpr, IrModule } from "../../ir/ir.js"; +import { everyModuleNode } from "../../ir/traverse.js"; +import { trackedReadFile } from "../input-tracker.js"; +import * as ts from "../ts7/adapter.js"; + +export const ORIGIN_SEPARATOR = "\x1f"; + +interface PackageFile { + pkg: string; + version: string; + /** The file relative to the package root. */ + rel: string; +} + +const versions = new Map(); + +function packageFileOf(fileName: string): PackageFile | null { + const path = fileName.split("\\").join("/"); + const marker = "/node_modules/"; + const at = path.lastIndexOf(marker); + if (at < 0) return null; + const parts = path.slice(at + marker.length).split("/"); + const nameParts = parts[0]!.startsWith("@") ? 2 : 1; + if (parts.length <= nameParts) return null; + let pkg = parts.slice(0, nameParts).join("/"); + const root = path.slice(0, at + marker.length) + pkg; + let versionRoot = root; + if (pkg.startsWith("@types/")) { + // A twin describes the runtime package installed beside it. + const bare = pkg.slice("@types/".length); + const i = bare.indexOf("__"); + pkg = i > 0 ? `@${bare.slice(0, i)}/${bare.slice(i + 2)}` : bare; + versionRoot = path.slice(0, at + marker.length) + pkg; + } + let version = versions.get(versionRoot); + if (version === undefined) { + version = ""; + try { + const parsed = JSON.parse(trackedReadFile(`${versionRoot}/package.json`) ?? "{}") as { + version?: unknown; + }; + if (typeof parsed.version === "string") version = parsed.version; + } catch { + version = ""; + } + versions.set(versionRoot, version); + } + return { pkg, version, rel: parts.slice(nameParts).join("/") }; +} + +/** True for a node in an installed package's file. */ +export function inPackageFile(node: ts.Node): boolean { + return packageFileOf(ts.getSourceFileOfNode(node).fileName) !== null; +} + +function lineOf(node: ts.Node): number { + const sf = ts.getSourceFileOfNode(node); + return ts.getLineAndCharacterOfPosition(sf, ts.tokenStartOfNode(node)).line + 1; +} + +function encode(file: PackageFile, selector: string, where: string, declared: string): string { + const range = file.version === "" ? "*" : `^${file.version}`; + return [file.pkg, file.version, range, selector, where, declared.replace(/\s+/g, " ")].join( + ORIGIN_SEPARATOR, + ); +} + +function nameOf(name: ts.Node | undefined): string | null { + if (name === undefined) return null; + if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isPrivateIdentifier(name)) + return name.text; + return null; +} + +/** `module.exports` → "export="; `exports.x` / `module.exports.x` → "x". */ +function exportTarget(left: ts.Node): string | null { + if (!ts.isPropertyAccessExpression(left)) return null; + const obj = left.expression; + const prop = nameOf(left.name); + if (prop === null) return null; + if (ts.isIdentifier(obj) && obj.text === "module" && prop === "exports") return "export="; + if (ts.isIdentifier(obj) && obj.text === "exports") return prop; + if ( + ts.isPropertyAccessExpression(obj) && + ts.isIdentifier(obj.expression) && + obj.expression.text === "module" && + nameOf(obj.name) === "exports" + ) + return prop; + return null; +} + +/** The selector naming a function-like declaration (without `()`), or + * null when it has no name a selector can reach. */ +function functionSelector(fn: ts.Node): string | null { + if (ts.isFunctionDeclaration(fn)) return nameOf(fn.name); + if (ts.isMethodDeclaration(fn) || ts.isGetAccessor(fn)) { + const method = nameOf(fn.name); + const holder = fn.parent; + if (method === null || holder === undefined) return null; + if (ts.isClassDeclaration(holder) || ts.isClassExpression(holder)) { + const cls = nameOf(holder.name); + return cls === null ? null : `${cls}.${method}`; + } + if (ts.isObjectLiteralExpression(holder)) { + const owner = valueSelector(holder); + return owner === null ? null : `${owner}.${method}`; + } + return null; + } + if (ts.isFunctionExpression(fn) || ts.isArrowFunction(fn)) return valueSelector(fn); + return null; +} + +/** The selector of the declaration an expression is the value of. */ +function valueSelector(value: ts.Node): string | null { + let e = value; + while (e.parent !== undefined && ts.isParenthesizedExpression(e.parent)) e = e.parent; + const p = e.parent; + if (p === undefined) return null; + if (ts.isVariableDeclaration(p) && p.initializer === e) return nameOf(p.name); + if ( + ts.isBinaryExpression(p) && + p.right === e && + p.operatorToken.kind === ts.SyntaxKind.EqualsToken + ) + return exportTarget(p.left); + if (ts.isPropertyAssignment(p) && p.initializer === e && p.parent !== undefined) { + const name = nameOf(p.name); + const owner = ts.isObjectLiteralExpression(p.parent) ? valueSelector(p.parent) : null; + return name === null || owner === null ? null : `${owner}.${name}`; + } + return null; +} + +/** True when a function-like declaration writes its return type: a type + * annotation, or a JSDoc @returns tag. */ +function writesReturnType(fn: ts.Node): boolean { + if ((fn as ts.FunctionDeclaration).type !== undefined) return true; + const sf = ts.getSourceFileOfNode(fn); + let owner: ts.Node = fn; + // The JSDoc of `exports.f = function`, `const f = () =>` sits on the + // statement. + while ( + owner.parent !== undefined && + !ts.isSourceFile(owner.parent) && + !ts.isBlock(owner.parent) && + !ts.isClassDeclaration(owner.parent) && + !ts.isClassExpression(owner.parent) && + !ts.isObjectLiteralExpression(owner.parent) + ) + owner = owner.parent; + const leading = sf.text.slice(owner.pos, ts.tokenStartOfNode(owner)); + const doc = leading.lastIndexOf("/**"); + return doc >= 0 && /@returns?\s*\{/.test(leading.slice(doc)); +} + +function enclosingFunction(node: ts.Node): ts.Node | null { + for (let p = node.parent; p !== undefined; p = p.parent) { + if ( + ts.isFunctionDeclaration(p) || + ts.isFunctionExpression(p) || + ts.isArrowFunction(p) || + ts.isMethodDeclaration(p) || + ts.isGetAccessor(p) + ) + return p; + if (ts.isSourceFile(p) || ts.isClassDeclaration(p)) return null; + } + return null; +} + +function typeText(checker: ts.TypeChecker, type: ts.Type | undefined): string { + if (type === undefined) return ""; + try { + return checker.typeToString(type); + } catch { + return ""; + } +} + +/** The origin of the slot a value expression in a package file flows + * into, or null when no package declaration types that slot. */ +export function slotOrigin(checker: ts.TypeChecker, node: ts.Node): string | null { + let value = node; + while (value.parent !== undefined && ts.isParenthesizedExpression(value.parent)) + value = value.parent; + const parent = value.parent; + if (parent === undefined) return null; + // A property of an object literal typed by a declared type. + if ( + (ts.isPropertyAssignment(parent) && parent.initializer === value) || + ts.isShorthandPropertyAssignment(value) || + (ts.isShorthandPropertyAssignment(parent) && parent.name === value) + ) { + const property = ts.isShorthandPropertyAssignment(value) ? value : parent; + const literal = property.parent; + const name = nameOf((property as ts.PropertyAssignment).name); + if (literal === undefined || !ts.isObjectLiteralExpression(literal) || name === null) + return null; + const contextual = checker.getContextualType(literal); + if (contextual === undefined) return null; + const typeSymbol = contextual.getAliasSymbol() ?? contextual.getSymbol(); + const typeName = typeSymbol === undefined ? "" : ts.symbolName(typeSymbol); + if (!/^[A-Za-z_$][\w$]*$/.test(typeName)) return null; + const symbol = checker.getPropertyOfType(contextual, name); + const decl = symbol?.declarations[0]; + if (symbol === undefined || decl === undefined || genericDeclaration(decl)) return null; + const file = packageFileOf(ts.getSourceFileOfNode(decl).fileName); + if (file === null) return null; + return encode( + file, + `${typeName}.${name}`, + `${file.rel}:${lineOf(decl)}`, + typeText(checker, checker.getTypeOfSymbol(symbol)), + ); + } + // A value a package function returns under its written return type. + let fn: ts.Node | null = null; + if (ts.isReturnStatement(parent) && parent.expression === value) fn = enclosingFunction(parent); + else if (ts.isArrowFunction(parent) && parent.body === value) fn = parent; + if (fn === null || !writesReturnType(fn)) return null; + const file = packageFileOf(ts.getSourceFileOfNode(fn).fileName); + const selector = functionSelector(fn); + if (file === null || selector === null) return null; + let declared = ""; + try { + const signature = checker.getSignatureFromDeclaration(fn as ts.SignatureDeclaration); + declared = + signature === undefined ? "" : typeText(checker, checker.getReturnTypeOfSignature(signature)); + } catch { + declared = ""; + } + return encode(file, `${selector}()`, `${file.rel}:${lineOf(fn)}`, declared); +} + +/** A package-declared record type a value is converted to (the + * contextual type of a value in package code, such as an object literal + * returned under `@returns {HelpContext}`), or null. */ +export interface RecordOrigin { + type: ts.Type; + name: string; +} + +export function recordOrigin(checker: ts.TypeChecker, node: ts.Node): RecordOrigin | null { + const contextual = checker.getContextualType(node); + if (contextual === undefined) return null; + const symbol = contextual.getAliasSymbol() ?? contextual.getSymbol(); + const name = symbol === undefined ? "" : ts.symbolName(symbol); + if (!/^[A-Za-z_$][\w$]*$/.test(name)) return null; + const decl = symbol?.declarations[0]; + if ( + decl === undefined || + genericDeclaration(decl) || + packageFileOf(ts.getSourceFileOfNode(decl).fileName) === null + ) + return null; + return { type: contextual, name }; +} + +/** The origin of one field of a package-declared record type. */ +export function fieldOrigin( + checker: ts.TypeChecker, + record: RecordOrigin, + field: string, +): string | null { + const symbol = checker.getPropertyOfType(record.type, field); + const decl = symbol?.declarations[0]; + if (symbol === undefined || decl === undefined || genericDeclaration(decl)) return null; + const file = packageFileOf(ts.getSourceFileOfNode(decl).fileName); + if (file === null) return null; + return encode( + file, + `${record.name}.${field}`, + `${file.rel}:${lineOf(decl)}`, + typeText(checker, checker.getTypeOfSymbol(symbol)), + ); +} + +/** The origin of a declaration in a package file named by `selector`. */ +export function originAt(decl: ts.Node, selector: string, declared: string): string | null { + const file = packageFileOf(ts.getSourceFileOfNode(decl).fileName); + if (file === null) return null; + return encode(file, selector, `${file.rel}:${lineOf(decl)}`, declared); +} + +/** True when a declaration or the class, interface or type alias holding + * it has type parameters: its declared type then comes from how the + * program instantiates it (a lying `z.custom()`), not from the package. */ +function genericDeclaration(decl: ts.Node): boolean { + for (let n: ts.Node | undefined = decl; n !== undefined && !ts.isSourceFile(n); n = n.parent) { + const params = (n as ts.FunctionDeclaration).typeParameters; + if (params !== undefined && params.nodes.length > 0) return true; + } + return false; +} + +/** The selector of a declaration in a declaration file: a function, a + * member of a class, interface or named object type, or null (also for + * generic declarations, whose types the program supplies). */ +export function declarationSelector(decl: ts.Node): string | null { + if (genericDeclaration(decl)) return null; + const own = nameOf((decl as ts.FunctionDeclaration).name); + if (own === null) return null; + if (ts.isFunctionDeclaration(decl) || ts.isVariableDeclaration(decl)) return own; + let holder = decl.parent; + if (holder !== undefined && ts.isTypeLiteralNode(holder)) holder = holder.parent; + if ( + holder !== undefined && + (ts.isClassDeclaration(holder) || + ts.isInterfaceDeclaration(holder) || + ts.isTypeAliasDeclaration(holder)) + ) { + const owner = nameOf(holder.name); + return owner === null ? null : `${owner}.${own}`; + } + return null; +} + +/** The note a union extraction's TypeError carries for a failing `arm` + * (the same text the runtime renders for checked conversions). */ +export function renderOriginNote(origin: string, arm: string): string { + const [pkg = "", version = "", range = "", selector = "", where = "", declared = ""] = + origin.split(ORIGIN_SEPARATOR); + return ( + `\n ${pkg}${version === "" ? "" : `@${version}`} declares ${selector}` + + `${declared === "" ? "" : ` as ${declared}`} (${where})` + + `\n if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "${pkg}@${range}": { "declarations": { "${selector}": "| ${arm}" } } } }` + ); +} + +/** Keeps only the origins the module's checks still reference (a coercion + * whose check was later replaced leaves its origin behind), renumbered in + * first-use order; drops the table when none is left, so the runtime unit + * is not linked for nothing. */ +export function compactDeclOrigins(mod: IrModule): void { + const table = mod.declOrigins ?? []; + const remap = new Map(); + const used: string[] = []; + // A node the IR shares at several places is renumbered once. + const checks = new Set(); + everyModuleNode(mod, { + expr: (e) => { + if (e.kind === "dynCheck" && e.origin !== undefined) { + // An exact capsule check never throws: nothing to name. + if (e.exact === true) { + delete e.origin; + return true; + } + checks.add(e); + if (!remap.has(e.origin)) { + remap.set(e.origin, used.length); + used.push(table[e.origin]!); + } + } + return true; + }, + stmt: () => true, + type: () => true, + }); + for (const check of checks) check.origin = remap.get(check.origin!)!; + if (used.length === 0) delete mod.declOrigins; + else mod.declOrigins = used; +} diff --git a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts index 9f0559672..5c1b276f7 100644 --- a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts +++ b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts @@ -1,4 +1,5 @@ /* Type narrowing of lowered values, conditional and as-expressions, and runtime-optional receiver reads. */ +import { declBoundaryOrigin } from "../../decl-projection.js"; import * as ts from "../../ts7/adapter.js"; import { type Lowerer, dynFallbackType } from "../lowerer.js"; import { @@ -1531,7 +1532,7 @@ export function lowerAsExpression( // The declaration-typed boundary (decl-projection.ts): an identity- // preserving checked conversion of a value package code produced. if (isDeclBoundaryTypeNode(expr.type)) { - const adopted = declBoundaryCast(lowerer, inner, target, locOf(expr)); + const adopted = declBoundaryCast(lowerer, inner, target, locOf(expr), expr); if (adopted) return adopted; } // An all-`unknown`-fields record target (`err as { code?: unknown }` @@ -1639,11 +1640,44 @@ function holdsReference(lowerer: Lowerer, t: IrType, seen = new Set()): * becomes a live capsule of the value built from it * (scr_dyn_decl_adopt), so identity and mutation visibility hold on both * sides. Scalar targets are ordinary checked casts. */ +const boundaryCastOrder = new WeakMap>(); + +/** The origin the projection recorded for a boundary cast (the package + * declaration its type comes from, decl-projection.ts), found by the + * cast's position among the file's boundary casts in source order. */ +function recordedBoundaryOrigin(cast: ts.Node): string | null { + const sf = ts.getSourceFileOfNode(cast); + let order = boundaryCastOrder.get(sf); + if (order === undefined) { + const found = new Map(); + const visit = (node: ts.Node): void => { + if (ts.isAsExpression(node) && isDeclBoundaryTypeNode(node.type)) found.set(node, found.size); + ts.forEachChild( + node, + (child) => { + visit(child); + return undefined; + }, + (list) => { + for (const child of list.nodes) visit(child); + return undefined; + }, + ); + }; + visit(sf); + order = found; + boundaryCastOrder.set(sf, order); + } + const index = order.get(cast); + return index === undefined ? null : declBoundaryOrigin(sf.fileName, index); +} + function declBoundaryCast( lowerer: Lowerer, inner: IrExpr, target: IrType, loc: SrcLoc, + cast: ts.Node, ): IrExpr | null { if ( !canDynCheckTo( @@ -1654,8 +1688,23 @@ function declBoundaryCast( !(target.kind === "union" && lowerer.dynConvertible(target)) ) return null; + // The package call or read the value comes from (decl-origin.ts): a + // failing check names it and the patch admitting the value. + let originText: string | null = null; + try { + originText = recordedBoundaryOrigin(cast); + } catch { + originText = null; + } + const originId = originText === null ? undefined : lowerer.declOriginIndex(originText); if (!holdsReference(lowerer, target)) { - return { kind: "dynCheck", value: inner, type: target, loc }; + return { + kind: "dynCheck", + value: inner, + type: target, + loc, + ...(originId === undefined ? {} : { origin: originId }), + }; } const source = lowerer.declareHiddenLocal("%boundarySource", DYN); const value = lowerer.declareHiddenLocal("%boundaryValue", target); @@ -1672,6 +1721,7 @@ function declBoundaryCast( adopt: true, type: target, loc, + ...(originId === undefined ? {} : { origin: originId }), }, loc, }, diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index feca34427..5b5ae3471 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -1,3 +1,10 @@ +import { + compactDeclOrigins, + inPackageFile, + recordOrigin, + slotOrigin, + type RecordOrigin, +} from "./decl-origin.js"; import { isDeclBoundaryFile } from "../decl-projection.js"; import { relieveHeapPressure } from "../../heap-pressure.js"; import { moduleNamespaceObject, moduleNamespaceValue } from "./module-namespace-elements.js"; @@ -3761,6 +3768,73 @@ export class Lowerer { * (decl-projection.ts): user-file record and array values crossing into * dynamic slots (package parameters) box as live capsules, so a value * that comes back through a boundary cast keeps its identity. */ + /** Origins of package-declared types checked in this program + * (decl-origin.ts), by IrModule.declOrigins index. */ + readonly declOrigins: string[] = []; + private readonly declOriginIds = new Map(); + private readonly packageFileMemo = new Map(); + private readonly slotOriginMemo = new Map(); + /** The value whose slot coercion is being lowered, while that value is + * in a package file: union extractions built for it carry the slot's + * origin in their TypeError. */ + coercionOriginNode: ts.Node | null = null; + /** The union type of that value: only its own extraction is the slot's. */ + coercionOriginUnion: string | null = null; + /** While a record projection into a package-declared type builds, the + * origin of the field being converted. */ + coercionFieldOrigin: string | null = null; + private readonly recordOriginMemo = new Map(); + + /** The package-declared record type the current coercion converts to. */ + coercionRecordOrigin(): RecordOrigin | null { + const node = this.coercionOriginNode; + if (node === null) return null; + let origin = this.recordOriginMemo.get(node); + if (origin === undefined) { + try { + origin = recordOrigin(this.checker, node); + } catch { + origin = null; + } + this.recordOriginMemo.set(node, origin); + } + return origin; + } + + declOriginIndex(origin: string): number { + let id = this.declOriginIds.get(origin); + if (id === undefined) { + id = this.declOrigins.length; + this.declOrigins.push(origin); + this.declOriginIds.set(origin, id); + } + return id; + } + + /** The origin of the package-declared slot a value flows into. */ + slotOriginOf(node: ts.Node): string | null { + let origin = this.slotOriginMemo.get(node); + if (origin === undefined) { + try { + origin = slotOrigin(this.checker, node); + } catch { + origin = null; + } + this.slotOriginMemo.set(node, origin); + } + return origin; + } + + private inPackageFileOf(node: ts.Node): boolean { + const sf = ts.getSourceFileOfNode(node); + let inside = this.packageFileMemo.get(sf); + if (inside === undefined) { + inside = inPackageFile(node); + this.packageFileMemo.set(sf, inside); + } + return inside; + } + private declBoundaryMemo: boolean | null = null; get declBoundary(): boolean { this.declBoundaryMemo ??= this.program.getSourceFileNames().some(isDeclBoundaryFile); @@ -8327,6 +8401,7 @@ export class Lowerer { ...(this.foreignElementKeys.size > 0 ? { foreignElementKeys: [...this.foreignElementKeys].sort() } : {}), + ...(this.declOrigins.length > 0 ? { declOrigins: [...this.declOrigins] } : {}), ...(this.threadSlotKeys.size > 0 ? { threadSlotKeys: [...this.threadSlotKeys].sort() } : {}), @@ -8338,6 +8413,7 @@ export class Lowerer { ...(this.ffiImports.length > 0 ? { ffiImports: [...this.ffiImports] } : {}), }; if (module) sanitizeUnregisteredClassTypes(module, (name) => this.classes.has(name)); + if (module?.declOrigins !== undefined) compactDeclOrigins(module); if (module) checkCycleBindingAccesses(this, module); if (module) bindCompletionCallbacks(module); // Execution tiers from the final bodies (ir/tiers.ts). Assigned with or @@ -10956,8 +11032,30 @@ export class Lowerer { * wrap implicitly (coerceToExpected), then the exact-type fence runs * (SC2002 for record shapes, SC2003 for unions). Every slot-directed * lowering goes through here (via lowerExprExpecting) or calls this - * directly when the expression was already lowered. */ + * directly when the expression was already lowered. In package files, a + * check this coercion creates names the package declaration that types + * the slot (decl-origin.ts). */ coerceInto(node: ts.Node, expr: IrExpr, expected: IrType): IrExpr { + if (!this.inPackageFileOf(node)) return this.coerceIntoSlot(node, expr, expected); + const outer = this.coercionOriginNode; + const outerUnion = this.coercionOriginUnion; + this.coercionOriginNode = node; + this.coercionOriginUnion = expr.type.kind === "union" ? expr.type.unionId : null; + let out: IrExpr; + try { + out = this.coerceIntoSlot(node, expr, expected); + } finally { + this.coercionOriginNode = outer; + this.coercionOriginUnion = outerUnion; + } + if (out !== expr && out.kind === "dynCheck" && out.origin === undefined) { + const origin = this.slotOriginOf(node); + if (origin !== null) return { ...out, origin: this.declOriginIndex(origin) }; + } + return out; + } + + private coerceIntoSlot(node: ts.Node, expr: IrExpr, expected: IrType): IrExpr { refuseInferredCallbackDrops(this, node, expr.type, expected); // An assertion's scalar check whose value goes straight back into a // checked-dynamic slot (`process.loadEnvFile({} as unknown as string)`) diff --git a/packages/compiler/src/frontend/lowering/union-narrow.ts b/packages/compiler/src/frontend/lowering/union-narrow.ts index 99cca9941..d224d3e9e 100644 --- a/packages/compiler/src/frontend/lowering/union-narrow.ts +++ b/packages/compiler/src/frontend/lowering/union-narrow.ts @@ -1,4 +1,5 @@ import { BOOL, STRING, isUnitType, typeEquals } from "../../ir/ir.js"; +import { renderOriginNote } from "./decl-origin.js"; import type { IrExpr, IrFunction, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js"; /** The TypeError message for a checked extraction that finds `arm`. */ @@ -35,6 +36,9 @@ export function buildUnionNarrow( /** Converts another arm's payload into the target (a record arm that is * a width subtype of a record target), or null to throw. */ convert: ((tag: number, payload: IrExpr) => IrExpr | null) | null = null, + /** The target's package-declared origin (decl-origin.ts): each arm's + * message names the declaration and the patch admitting that arm. */ + origin: string | null = null, ): IrFunction | null { if (isUnitType(target) || target.kind === "void") return null; const targetTag = from.arms.findIndex((arm) => typeEquals(arm, target)); @@ -87,7 +91,18 @@ export function buildUnionNarrow( args: [ { kind: "strLit", - value: failureMessage ?? unionNarrowFailureMessage(arm, formatType), + value: + (failureMessage ?? unionNarrowFailureMessage(arm, formatType)) + + (origin === null + ? "" + : renderOriginNote( + origin, + isUnitType(arm) + ? arm.kind === "undefinedT" + ? "undefined" + : "null" + : formatType(arm), + )), type: STRING, loc, }, diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index 284b2ce06..44e048916 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -139,7 +139,11 @@ import { typeOnlyReachedFiles, } from "./type-only-imports.js"; import { moduleSourceCandidates } from "./module-source-candidates.js"; -import { planDeclProjection, type DeclProjection } from "./decl-projection.js"; +import { + planDeclProjection, + resetDeclBoundaryOrigins, + type DeclProjection, +} from "./decl-projection.js"; import { configureTypePatches, packageSourceText } from "./type-patches/layer.js"; import { reportShapes } from "./shape-inference/index.js"; import { inferredJsDiagnosticSuppressed } from "./inferred-js-diagnostics.js"; @@ -1077,6 +1081,7 @@ export function loadProgram( // JavaScript, even when named. A registry entry's `sourceVersions` // (chalk 6) compile from their own source. configurePackageShims(entryPath); + resetDeclBoundaryOrigins(); // The project's type patches (type-patches/layer.ts), read by every host // this load creates; nothing at all without `scriptc.typePatches`. configureTypePatches(entryPath, (path, text, kind) => services.parse(path, text, kind)); diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index 11b0f6d13..e2d14ebde 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -648,6 +648,7 @@ async function compileExecutableNative( ...(features.streamDyn ? { streamDyn: true } : {}), ...(features.handleProps ? { handleProps: true } : {}), ...(features.declAdopt ? { declAdopt: true } : {}), + ...(features.typeOrigins ? { typeOrigins: true } : {}), ...(features.dynForAwait ? { dynForAwait: true } : {}), ...(features.eventsOnceSignal ? { eventsOnceSignal: true } : {}), ...(features.dynBuffer ? { dynBuffer: true } : {}), diff --git a/packages/compiler/src/ir/function-references.test.ts b/packages/compiler/src/ir/function-references.test.ts index e97025e82..4101ae2fd 100644 --- a/packages/compiler/src/ir/function-references.test.ts +++ b/packages/compiler/src/ir/function-references.test.ts @@ -223,6 +223,7 @@ const MODULE_FIELDS: Record>, Role> = { "threadSlotKeys[]": "other", "foreignElementKeys[]": "other", "freezableArrays[]": "other", + "declOrigins[]": "other", }; const loc = { file: "references.ts", start: 0, end: 0 }; diff --git a/packages/compiler/src/ir/ir.ts b/packages/compiler/src/ir/ir.ts index c946d799f..f82e71d4a 100644 --- a/packages/compiler/src/ir/ir.ts +++ b/packages/compiler/src/ir/ir.ts @@ -1063,6 +1063,11 @@ export interface IrModule { * closures boxed for package code return records and arrays as live * capsules, so a value that comes back keeps its identity. */ declBoundary?: true; + /** Origins of package-declared types checked by `dynCheck.origin` + * (frontend/lowering/decl-origin.ts): fields separated by \x1f — + * package, version, suggested range, selector, where it is declared, + * declared type. */ + declOrigins?: string[]; /** The program constructs LifetimeRegion (@scriptc/experimental): every * ProgramLifetime instance lives in a counted region (the region.* * intrinsics; backend/llvm/regions.ts). */ @@ -4040,12 +4045,17 @@ export type IrExpr = * unshared source is simply consumed. Values must be plain data * (ordinary objects and arrays without accessors, prototypes, symbols * or frozen state), otherwise the cast throws the path TypeError. */ + /** `origin`: the target type comes from an npm package's declaration; + * an index into `IrModule.declOrigins`. A failing check's TypeError then + * names the declaration and the type patch that would admit the value + * (scr_type_origin.c). */ | { kind: "dynCheck"; value: IrExpr; preserveRefs?: true; adopt?: true; exact?: true; + origin?: number; type: IrType; loc: SrcLoc; }; diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index 10e0a9e38..832329672 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -953,6 +953,9 @@ const RUNTIME_FEATURE_RULES = { * casts, and closures boxed in a boundary program, which adopt their * arguments. */ declAdopt: rule({ fns: ["dyn.declAdopt"], initial: (mod) => mod.declBoundary === true }), + // Checked conversions into package-declared types name the declaration + // in their TypeError (scr_type_origin.c). + typeOrigins: rule({ initial: (mod) => (mod.declOrigins?.length ?? 0) > 0 }), /** for await over checked-dynamic values (scr_dyn_for_await.c). */ dynForAwait: rule({ fns: ["dyn.asyncIteratorOpen", "dyn.asyncIteratorWasSync"] }), /** Buffer.prototype methods called on checked-dynamic values @@ -1237,6 +1240,7 @@ function noRuntimeFeatures(): RuntimeFeatures { streamDyn: false, handleProps: false, declAdopt: false, + typeOrigins: false, dynForAwait: false, dynBuffer: false, builtinValues: false, diff --git a/packages/compiler/src/ir/validate.ts b/packages/compiler/src/ir/validate.ts index 45ebf5c79..b42bca72b 100644 --- a/packages/compiler/src/ir/validate.ts +++ b/packages/compiler/src/ir/validate.ts @@ -127,6 +127,12 @@ export function validateModule(mod: IrModule): IrValidationError[] { errors.push({ message: "worker execution mode must be a boolean", loc: moduleLoc }); if (mod.declBoundary !== undefined && mod.declBoundary !== true) errors.push({ message: "declBoundary must be true when present", loc: moduleLoc }); + const declOrigins = mod.declOrigins; + if ( + declOrigins !== undefined && + (!Array.isArray(declOrigins) || declOrigins.some((o) => typeof o !== "string")) + ) + errors.push({ message: "declOrigins must be an array of strings", loc: moduleLoc }); if (mod.untypedIntegrity !== undefined && mod.untypedIntegrity !== true) errors.push({ message: "untypedIntegrity must be true when present", loc: moduleLoc }); if (mod.lifetimeRegions !== undefined && mod.lifetimeRegions !== true) @@ -1001,6 +1007,7 @@ export function validateModule(mod: IrModule): IrValidationError[] { mod.workers === true, mod.lifetimeRegions === true, new Set(mod.threadSlotKeys ?? []), + mod.declOrigins?.length ?? 0, ); } return errors; @@ -1020,6 +1027,7 @@ function validateFunction( workers: boolean, lifetimeRegions: boolean, threadSlotKeys: ReadonlySet, + declOriginCount: number, ): void { const locals = new Map(fn.locals.map((l) => [l.id, l])); const err = (message: string, loc: SrcLoc) => @@ -6154,6 +6162,11 @@ function validateFunction( case "dynCheck": { checkExpr(e.value); expectType(e.value, DYN, "dynCheck operand"); + if ( + e.origin !== undefined && + (!Number.isInteger(e.origin) || e.origin < 0 || e.origin >= declOriginCount) + ) + err(`dynCheck origin ${e.origin} is not an index of declOrigins`, e.loc); // The target drives the emitted validator/builder: non-dyn, // non-void, JSON-representable (closures/class instances can never // be found inside a JSON dyn — the frontend rejects those casts). diff --git a/packages/compiler/src/native/sanitizer.test.ts b/packages/compiler/src/native/sanitizer.test.ts index 771e2a426..3786542cc 100644 --- a/packages/compiler/src/native/sanitizer.test.ts +++ b/packages/compiler/src/native/sanitizer.test.ts @@ -81,6 +81,7 @@ test.skipIf(process.platform !== "linux" && process.platform !== "darwin")( streamDyn: false, handleProps: false, declAdopt: false, + typeOrigins: false, dynForAwait: false, eventsOnceSignal: false, dynBuffer: false, diff --git a/packages/runtime-pack-common/runtime-pack-matrix.mjs b/packages/runtime-pack-common/runtime-pack-matrix.mjs index b4868d5cb..82a0f8451 100644 --- a/packages/runtime-pack-common/runtime-pack-matrix.mjs +++ b/packages/runtime-pack-common/runtime-pack-matrix.mjs @@ -134,6 +134,7 @@ export const OPTIONAL_RUNTIME_SOURCES = [ // Own properties JavaScript adds to children. ["scr_dyn_handle_props.c", "handleProps"], ["scr_decl_adopt.c", "declAdopt"], + ["scr_type_origin.c", "typeOrigins"], // for await over checked-dynamic values. ["scr_dyn_for_await.c", "dynForAwait"], ["scr_dyn_for_await_stream.c", all("dynForAwait", "stream", "dynAsync")], diff --git a/packages/runtime/src/scr_type_origin.c b/packages/runtime/src/scr_type_origin.c new file mode 100644 index 000000000..c52a09164 --- /dev/null +++ b/packages/runtime/src/scr_type_origin.c @@ -0,0 +1,154 @@ +/* Declared-type origins on checked-conversion TypeErrors, linked only by + * programs that check values against types an npm package declares + * (runtime feature typeOrigins). + * + * A checked conversion into a type that comes from a package's + * declarations (its .d.ts, @types package or JSDoc) throws the usual + * `expected at , got ` TypeError when the value does + * not fit. The compiler passes the declaration's origin to the conversion + * site's cold exception path, which calls scr_type_origin_note: the + * pending TypeError's message gains two lines naming the declaration and + * the type patch (package.json scriptc.typePatches) that would make the + * declaration admit the value. The hot path is unchanged, and so is every + * other error. + * + * The origin is one string of fields separated by \x1f: package, version, + * suggested range, the selector of the declared slot, where it is + * declared, and the declared type. */ +#include "scr_runtime.h" + +#include +#include + +typedef struct { + char *data; + size_t len, cap; +} ScrOriginBuf; + +static void scr_origin_put(ScrOriginBuf *b, const char *s, size_t n) { + if (b->len + n + 1 > b->cap) { + size_t cap = b->cap ? b->cap : 256; + while (b->len + n + 1 > cap) cap *= 2; + char *grown = realloc(b->data, cap); + if (!grown) scr_trap("scriptc: out of memory\n"); + b->data = grown; + b->cap = cap; + } + memcpy(b->data + b->len, s, n); + b->len += n; + b->data[b->len] = 0; +} + +static void scr_origin_puts(ScrOriginBuf *b, const char *s) { scr_origin_put(b, s, strlen(s)); } + +/* Field `index` of the origin string (not terminated: [*out, *out+len)). */ +static size_t scr_origin_field(const char *origin, int index, const char **out) { + const char *p = origin; + for (int i = 0; i < index; i++) { + const char *sep = strchr(p, '\x1f'); + if (!sep) { + *out = ""; + return 0; + } + p = sep + 1; + } + const char *end = strchr(p, '\x1f'); + *out = p; + return end ? (size_t)(end - p) : strlen(p); +} + +/* The TypeScript type a `got` kind of the check message suggests adding. */ +static const char *scr_origin_arm(const char *kind, size_t len) { + if (len == 5 && memcmp(kind, "array", 5) == 0) return "unknown[]"; + if (len == 8 && memcmp(kind, "function", 8) == 0) return "Function"; + return NULL; /* the kind itself (undefined, null, string, number, ...) */ +} + +void scr_type_origin_note(const char *origin) { + ScrExcCell *cell = scr_exc_current_cell(); + if (cell->kind != SCR_EXC_OBJ || cell->payload == NULL) return; + ScrError *e = (ScrError *)cell->payload; + if (e->vt != &scr_error_vts[SCR_ERR_TYPE] || e->message == NULL) return; + const char *msg = e->message->data; + size_t mlen = e->message->len; + if (memchr(msg, '\n', mlen) != NULL) return; /* already noted */ + /* `expected at , got `: the path extends the + * declared slot's selector, the kind is what the patch admits. */ + const char *path = NULL, *got = NULL; + size_t path_len = 0, got_len = 0; + if (mlen > 9 && memcmp(msg, "expected ", 9) == 0) { + for (size_t i = mlen; i-- > 7;) { + if (memcmp(msg + i - 6, ", got ", 6) == 0) { + got = msg + i; + got_len = mlen - i; + for (size_t j = i - 6; j-- > 4;) { + if (memcmp(msg + j - 4, " at $", 5) == 0) { + path = msg + j; + path_len = i - 6 - j; + break; + } + } + break; + } + } + } + const char *pkg, *version, *range, *selector, *where, *declared; + size_t pkg_len = scr_origin_field(origin, 0, &pkg); + size_t version_len = scr_origin_field(origin, 1, &version); + size_t range_len = scr_origin_field(origin, 2, &range); + size_t selector_len = scr_origin_field(origin, 3, &selector); + size_t where_len = scr_origin_field(origin, 4, &where); + size_t declared_len = scr_origin_field(origin, 5, &declared); + + ScrOriginBuf b = {0}; + scr_origin_put(&b, msg, mlen); + scr_origin_puts(&b, "\n "); + scr_origin_put(&b, pkg, pkg_len); + if (version_len > 0) { + scr_origin_puts(&b, "@"); + scr_origin_put(&b, version, version_len); + } + scr_origin_puts(&b, " declares "); + scr_origin_put(&b, selector, selector_len); + if (declared_len > 0) { + scr_origin_puts(&b, " as "); + scr_origin_put(&b, declared, declared_len); + } + scr_origin_puts(&b, " ("); + scr_origin_put(&b, where, where_len); + scr_origin_puts(&b, ")\n if that declaration is wrong, patch it in package.json: \"scriptc\": { \"typePatches\": { \""); + scr_origin_put(&b, pkg, pkg_len); + scr_origin_puts(&b, "@"); + scr_origin_put(&b, range, range_len); + scr_origin_puts(&b, "\": { \"declarations\": { \""); + scr_origin_put(&b, selector, selector_len); + /* $[3].email extends the selector as [].email: elements of an array + * share one declared type. */ + for (size_t i = 1; path != NULL && i < path_len; i++) { + if (path[i] == '[') { + scr_origin_puts(&b, "[]"); + while (i < path_len && path[i] != ']') i++; + } else { + scr_origin_put(&b, path + i, 1); + } + } + scr_origin_puts(&b, "\": \"| "); + if (got != NULL) { + const char *arm = scr_origin_arm(got, got_len); + if (arm != NULL) scr_origin_puts(&b, arm); + else scr_origin_put(&b, got, got_len); + } else { + scr_origin_puts(&b, "undefined"); + } + scr_origin_puts(&b, "\" } } } }"); + + ScrStr *next = scr_str_new(b.data, b.len); + free(b.data); + scr_str_release(e->message); + e->message = next; + if (e->stack != NULL) { + /* The cached `stack` starts with the message. */ + scr_str_release(e->stack); + e->stack = NULL; + } +} diff --git a/tests/fixtures/type-patches/unpatched/main.ts b/tests/fixtures/type-patches/unpatched/main.ts new file mode 100644 index 000000000..89418d2d0 --- /dev/null +++ b/tests/fixtures/type-patches/unpatched/main.ts @@ -0,0 +1,13 @@ +// termctx's lying JSDoc without the project's type patches: each failing +// check's TypeError names the declaration and the patch that admits the +// value (native only; Node never checks). +import { Terminal } from "termctx"; + +const term = new Terminal(false); +for (const read of [() => term.columns(), () => term.outputContext(false).width]) { + try { + console.log(read()); + } catch (e) { + console.log((e as Error).message); + } +} diff --git a/tests/fixtures/type-patches/unpatched/package.json b/tests/fixtures/type-patches/unpatched/package.json new file mode 100644 index 000000000..b2d19d710 --- /dev/null +++ b/tests/fixtures/type-patches/unpatched/package.json @@ -0,0 +1 @@ +{ "name": "type-patches-unpatched", "private": true, "type": "module" } diff --git a/tests/harness/type-patches.test.ts b/tests/harness/type-patches.test.ts index 816418a96..cfd8b4dd6 100644 --- a/tests/harness/type-patches.test.ts +++ b/tests/harness/type-patches.test.ts @@ -7,7 +7,9 @@ * apply as written warn (SC8030-SC8033). The `.d.ts`, `@types`, replaced * file and supplied entry cases run in npm.test.ts (type-patch-dts, * type-patch-types-twin, type-patch-files, type-patch-types-entry); here - * their unpatched copies show the patches are what makes them compile. And + * their unpatched copies show the patches are what makes them compile, and + * a failing check names the declaration and the patch (scr_type_origin.c, + * frontend/lowering/decl-origin.ts). And * commander-calc carries the HelpContext.helpWidth patch. */ import { execFile } from "node:child_process"; import { cpSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; @@ -115,7 +117,11 @@ describe("type patches", () => { if (result.ok) { const native = await run(result.binaryPath, []); expect(native.exitCode).not.toBe(0); - expect(native.stderr).toContain("TypeError: expected string at $, got undefined"); + expect(native.stderr).toBe( + "Uncaught TypeError: expected string at $, got undefined\n" + + " profilekit@3.1.0 declares Profile.email as string (index.d.ts:7)\n" + + ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "profilekit@^3.1.0": { "declarations": { "Profile.email": "| undefined" } } } }\n`, + ); } } finally { rmSync(copy, { recursive: true, force: true }); @@ -165,6 +171,28 @@ describe("type patches", () => { }, ); + test( + "a failing check names the package declaration and the patch", + { timeout: 600_000 }, + async () => { + const result = await build(join(fixture, "unpatched/main.ts"), "unpatched", ["termctx"]); + const native = await run(result.binaryPath, []); + const patch = (selector: string) => + ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "termctx@^1.2.0": { "declarations": { "${selector}": "| undefined" } } } }`; + expect(native.stdout).toBe( + [ + "expected number at $, got undefined", + " termctx@1.2.0 declares Terminal.columns() as number (index.js:16)", + patch("Terminal.columns()"), + "undefined is not representable in the target union (a value narrowed or asserted past it still held it)", + " termctx@1.2.0 declares OutputContext.width as number (index.js:24)", + patch("OutputContext.width"), + "", + ].join("\n"), + ); + }, + ); + test( "patches that do not apply as written warn and the build goes on", { timeout: 600_000 }, From 5e843317aff77bf1f029014fc7c4ede8cece26db Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 14:35:16 -0700 Subject: [PATCH 026/128] Add scriptc types patch and scriptc types list `scriptc types patch [--range] [--dry-run]` finds the installed package from the working directory, shows every declaration the selector matches (declaration files, JSDoc, @types package) with its type before and after, and adds the patch to the nearest package.json: into an entry whose range covers the installed version, or under ^. Nothing is written when the selector matches nothing. `scriptc types list` shows each patch and what it matches. Both CLI hosts run the same implementation with their own parser. The TypeError note for a wrong declaration now names the command. Co-Authored-By: Claude Opus 5.5 --- docs/content/docs/cli.mdx | 27 +- docs/content/docs/dependencies.mdx | 13 +- packages/cli/src/main.ts | 2 + packages/compiler/src/cli/command.ts | 34 ++ packages/compiler/src/cli/host.ts | 6 + packages/compiler/src/cli/usage.ts | 9 + .../src/frontend/lowering/decl-origin.ts | 4 +- .../src/frontend/type-patches/command.ts | 382 ++++++++++++++++++ packages/compiler/src/index.ts | 15 + packages/compiler/src/native/cli.ts | 14 + .../test/type-patches-command.test.ts | 120 ++++++ packages/runtime/src/scr_type_origin.c | 20 +- tests/harness/type-patches.test.ts | 4 +- 13 files changed, 632 insertions(+), 18 deletions(-) create mode 100644 packages/compiler/src/frontend/type-patches/command.ts create mode 100644 packages/compiler/test/type-patches-command.test.ts diff --git a/docs/content/docs/cli.mdx b/docs/content/docs/cli.mdx index 4c1b7e7c6..7166d3f10 100644 --- a/docs/content/docs/cli.mdx +++ b/docs/content/docs/cli.mdx @@ -2,7 +2,7 @@ title: "CLI Reference" --- -The `scriptc` command has five subcommands: `build`, `run`, `coverage`, `cache warm`, and `merge-profiles`. `scriptc --help` prints this summary and the options below, and `scriptc --version` prints the installed version. +The `scriptc` command has six subcommands: `build`, `run`, `coverage`, `types`, `cache warm`, and `merge-profiles`. `scriptc --help` prints this summary and the options below, and `scriptc --version` prints the installed version. ```console $ scriptc --help @@ -21,6 +21,13 @@ Usage: exporting the profile symbols; a profile with a sidecar section also gets the contract sidecar JSON beside the archive + scriptc types patch [--range ] [--dry-run] + fix a wrong declaration of an installed + package: shows what the selector + matches and adds the type patch to + package.json ("| undefined" widens) + scriptc types list the project's type patches and what + they match scriptc cache warm [runtime|tls…] verify and load precompiled runtime families for the current compiler/SDK/target scriptc merge-profiles -o [--sparse] @@ -88,6 +95,24 @@ $ scriptc run fib.ts Analyzes the program without building it and reports what compiles and what blocks the rest. See [Coverage Reports](/docs/coverage). +## scriptc types + +Writes and lists [type patches](/docs/dependencies#fix-a-packages-types), the project's fixes for wrong declarations of npm packages. + +
      +
      scriptc types patch <package> <selector> <type>
      +
      Finds the package installed for the working directory, prints every declaration the selector matches in its declaration files, its JSDoc and its @types/ package with the type before and after, and adds the patch to the nearest package.json. The patch joins an entry whose range covers the installed version, or gets the range ^<installed version>. Nothing is written when the selector matches nothing. --range <range> chooses the range, and --dry-run only prints.
      +
      scriptc types list
      +
      Prints each type patch in the nearest package.json, whether it applies to the installed version, and what it matches.
      +
      + +```console +$ scriptc types list +commander@^15.0.0 + HelpContext.helpWidth: | undefined + node_modules/commander/lib/command.js:2481 number -> number | undefined +``` + ## scriptc cache warm Verifies and loads the installed precompiled runtime objects and vendored libraries, and prints the cache directory. Pass `runtime`, `tls`, or both to select which to warm. Ordinary builds don't need this step. With `--sanitize`, it builds the instrumented runtime objects using a C toolchain. diff --git a/docs/content/docs/dependencies.mdx b/docs/content/docs/dependencies.mdx index 58b0a0a1d..2288aeb83 100644 --- a/docs/content/docs/dependencies.mdx +++ b/docs/content/docs/dependencies.mdx @@ -150,10 +150,19 @@ When the type comes from a package's declarations, the error names the declarati ```text Uncaught TypeError: expected string at $, got undefined profilekit@3.1.0 declares Profile.email as string (index.d.ts:7) - if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "profilekit@^3.1.0": { "declarations": { "Profile.email": "| undefined" } } } } + if that declaration is wrong, patch it: scriptc types patch profilekit "Profile.email" "| undefined" ``` -Fix such a declaration in your project with a type patch in `package.json`: +Fix such a declaration in your project with a type patch. `scriptc types patch` shows what a declaration path matches in the installed package and adds the patch to your `package.json`: + +```console +$ scriptc types patch commander "HelpContext.helpWidth" "| undefined" +commander 15.0.0 (node_modules/commander) + lib/command.js:2481 number -> number | undefined +wrote package.json scriptc.typePatches["commander@^15.0.0"].declarations["HelpContext.helpWidth"] +``` + +The patch it writes looks like this: ```json:package.json { diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts index 8203b959e..5deb4ca29 100644 --- a/packages/cli/src/main.ts +++ b/packages/cli/src/main.ts @@ -10,6 +10,7 @@ import { mergeProfiles, resolveProvenanceSources, sourceTargetPlatform, + typePatches, warmNativeCaches, } from "@scriptc/compiler"; import { runCli } from "./command.js"; @@ -39,6 +40,7 @@ process.exitCode = await runCli(process.argv.slice(2), { sourceTargetPlatform, warmNativeCaches, mergeProfiles, + typePatches, run: (binary) => new Promise((resolveExit) => { let child; diff --git a/packages/compiler/src/cli/command.ts b/packages/compiler/src/cli/command.ts index 8b2e4c480..1064b18ad 100644 --- a/packages/compiler/src/cli/command.ts +++ b/packages/compiler/src/cli/command.ts @@ -1,3 +1,4 @@ +import type { TypePatchCommandRequest } from "../frontend/type-patches/command.js"; import { rmSync, statSync } from "node:fs"; import { dirname, join, resolve } from "node:path"; import { parseArgs } from "node:util"; @@ -205,6 +206,39 @@ async function main(args: string[], host: CliHost): Promise { process.stdout.write(`${outputPath}\n`); return 0; } + if (command === "types") { + const sub = positionals[1]; + const rest = positionals.slice(2); + let request: TypePatchCommandRequest; + if (sub === "patch" && rest.length === 3) { + request = { + action: "patch", + cwd: process.cwd(), + pkg: rest[0]!, + selector: rest[1]!, + type: rest[2]!, + range: values.range ?? null, + dryRun: values["dry-run"], + }; + } else if ( + sub === "list" && + rest.length === 0 && + values.range === undefined && + !values["dry-run"] + ) { + request = { action: "list", cwd: process.cwd() }; + } else { + fail( + `scriptc types takes "patch " (with --range or --dry-run) or "list"\n\n${USAGE}`, + ); + } + const result = await host.typePatches(request); + process.stdout.write(result.stdout); + process.stderr.write(result.stderr); + return result.exitCode; + } + if (values.range !== undefined || values["dry-run"]) + fail(`--range and --dry-run are scriptc types patch options\n\n${USAGE}`); if (values.sparse) fail(`--sparse is a merge-profiles option\n\n${USAGE}`); if (command !== "build" && command !== "run" && command !== "coverage") { fail(`unknown command "${command}"\n\n${USAGE}`); diff --git a/packages/compiler/src/cli/host.ts b/packages/compiler/src/cli/host.ts index 7a927ee39..eafe1882b 100644 --- a/packages/compiler/src/cli/host.ts +++ b/packages/compiler/src/cli/host.ts @@ -1,3 +1,7 @@ +import type { + TypePatchCommandRequest, + TypePatchCommandResult, +} from "../frontend/type-patches/command.js"; import type { AnalyzeOptions, AnalyzeResult, @@ -30,5 +34,7 @@ export interface CliHost { /** Merges raw or indexed profiles into one indexed profile; a sparse one * leaves out functions that never ran. */ mergeProfiles: (outputPath: string, inputPaths: string[], sparse: boolean) => Promise; + /** `scriptc types patch|list` (frontend/type-patches/command.ts). */ + typePatches: (request: TypePatchCommandRequest) => Promise; run: (binary: string) => Promise; } diff --git a/packages/compiler/src/cli/usage.ts b/packages/compiler/src/cli/usage.ts index f8b6a4869..2d4b101fd 100644 --- a/packages/compiler/src/cli/usage.ts +++ b/packages/compiler/src/cli/usage.ts @@ -13,6 +13,13 @@ Usage: exporting the profile symbols; a profile with a sidecar section also gets the contract sidecar JSON beside the archive + scriptc types patch [--range ] [--dry-run] + fix a wrong declaration of an installed + package: shows what the selector + matches and adds the type patch to + package.json ("| undefined" widens) + scriptc types list the project's type patches and what + they match scriptc cache warm [runtime|tls…] verify and load precompiled runtime families for the current compiler/SDK/target scriptc merge-profiles -o [--sparse] @@ -157,6 +164,8 @@ export const CLI_OPTIONS = { "profile-generate": { type: "string" }, "profile-use": { type: "string" }, sparse: { type: "boolean", default: false }, + range: { type: "string" }, + "dry-run": { type: "boolean", default: false }, "keep-llvm": { type: "boolean", default: true }, "emit-ir": { type: "boolean", default: false }, sanitize: { type: "boolean", default: false }, diff --git a/packages/compiler/src/frontend/lowering/decl-origin.ts b/packages/compiler/src/frontend/lowering/decl-origin.ts index 60510ecec..a44c54eca 100644 --- a/packages/compiler/src/frontend/lowering/decl-origin.ts +++ b/packages/compiler/src/frontend/lowering/decl-origin.ts @@ -348,12 +348,12 @@ export function declarationSelector(decl: ts.Node): string | null { /** The note a union extraction's TypeError carries for a failing `arm` * (the same text the runtime renders for checked conversions). */ export function renderOriginNote(origin: string, arm: string): string { - const [pkg = "", version = "", range = "", selector = "", where = "", declared = ""] = + const [pkg = "", version = "", , selector = "", where = "", declared = ""] = origin.split(ORIGIN_SEPARATOR); return ( `\n ${pkg}${version === "" ? "" : `@${version}`} declares ${selector}` + `${declared === "" ? "" : ` as ${declared}`} (${where})` + - `\n if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "${pkg}@${range}": { "declarations": { "${selector}": "| ${arm}" } } } }` + `\n if that declaration is wrong, patch it: scriptc types patch ${pkg} "${selector}" "| ${arm}"` ); } diff --git a/packages/compiler/src/frontend/type-patches/command.ts b/packages/compiler/src/frontend/type-patches/command.ts new file mode 100644 index 000000000..d7fb817ae --- /dev/null +++ b/packages/compiler/src/frontend/type-patches/command.ts @@ -0,0 +1,382 @@ +/* `scriptc types patch` and `scriptc types list`: write and inspect the + * project's type patches (package.json scriptc.typePatches). + * + * scriptc types patch [--range ] [--dry-run] + * scriptc types list + * + * `patch` finds the installed package from the working directory, shows + * every declaration the selector matches (in the package's declaration + * files, its JSDoc and its @types package) with its type before and after, + * and adds the patch to the nearest package.json under a range covering + * the installed version (`^` unless --range says otherwise, or an + * existing entry's range when one covers it). Nothing is written when the + * selector matches nothing. `list` shows each configured patch, the + * installed copies it applies to and what it matches. */ + +import { existsSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; +import { dirname, join, relative } from "node:path"; +import { parseProjectConfig, type TypePatchEntry } from "../../project-config.js"; +import type { TypePatchParse } from "./layer.js"; +import { patchFile, type PatchMatch } from "./locate.js"; +import { parseSelector, parseTypeText, type Selector, type TypePatchOp } from "./selector.js"; +import { isValidRange, satisfies } from "./semver.js"; + +export type TypePatchCommandRequest = + | { + action: "patch"; + cwd: string; + pkg: string; + selector: string; + type: string; + range: string | null; + dryRun: boolean; + } + | { action: "list"; cwd: string }; + +export interface TypePatchCommandResult { + stdout: string; + stderr: string; + exitCode: number; +} + +interface PackageCopy { + root: string; + version: string | null; + /** True for an `@types/` twin. */ + twin: boolean; +} + +const PATCHABLE = /\.(?:[cm]?js|d\.[cm]?ts|[cm]?ts)$/; + +function nearestManifest(cwd: string): string | null { + for (let dir = cwd; ;) { + const manifest = join(dir, "package.json"); + if (existsSync(manifest)) return manifest; + const parent = dirname(dir); + if (parent === dir) return null; + dir = parent; + } +} + +function versionOf(root: string): string | null { + try { + const parsed = JSON.parse(readFileSync(join(root, "package.json"), "utf8")) as { + version?: unknown; + }; + return typeof parsed.version === "string" ? parsed.version : null; + } catch { + return null; + } +} + +function typesName(pkg: string): string { + return pkg.startsWith("@") ? `@types/${pkg.slice(1).replace("/", "__")}` : `@types/${pkg}`; +} + +/** The copy of `pkg` (and of its @types twin) Node resolution finds from + * `cwd`. A twin is versioned by the runtime package beside it. */ +function installedCopies(cwd: string, pkg: string): PackageCopy[] { + const out: PackageCopy[] = []; + let runtimeVersion: string | null = null; + let twinFound = false; + for (let dir = cwd; ;) { + const modules = join(dir, "node_modules"); + if (runtimeVersion === null && existsSync(join(modules, pkg, "package.json"))) { + const root = join(modules, pkg); + runtimeVersion = versionOf(root); + out.push({ root, version: runtimeVersion, twin: false }); + } + if (!twinFound && existsSync(join(modules, typesName(pkg), "package.json"))) { + twinFound = true; + out.push({ root: join(modules, typesName(pkg)), version: null, twin: true }); + } + const parent = dirname(dir); + if (parent === dir) break; + dir = parent; + } + for (const copy of out) if (copy.twin) copy.version = runtimeVersion ?? versionOf(copy.root); + return out; +} + +/** The files of a package copy a patch can apply to (nested packages + * excluded), package-relative. */ +function packageFiles(root: string): string[] { + const out: string[] = []; + const walk = (dir: string): void => { + let names: string[]; + try { + names = readdirSync(dir).sort(); + } catch { + return; + } + for (const name of names) { + if (name === "node_modules" || name.startsWith(".")) continue; + const path = join(dir, name); + let isDir = false; + try { + isDir = statSync(path).isDirectory(); + } catch { + continue; + } + if (isDir) walk(path); + else if (PATCHABLE.test(name)) out.push(relative(root, path).split("\\").join("/")); + } + }; + walk(root); + return out; +} + +interface FileMatch extends PatchMatch { + file: string; +} + +/** Every declaration a selector matches in a copy, and the problems where + * it cannot apply. */ +function matchCopy( + copy: PackageCopy, + selector: Selector, + op: TypePatchOp, + parse: TypePatchParse, +): { matches: FileMatch[]; problems: string[] } { + const words = + selector.root === "export=" + ? ["exports", "export"] + : selector.root === "default" + ? ["default"] + : [selector.root]; + const matches: FileMatch[] = []; + const problems: string[] = []; + for (const rel of packageFiles(copy.root)) { + if (selector.file !== null && selector.file !== rel) continue; + const path = join(copy.root, rel); + let text: string; + try { + text = readFileSync(path, "utf8"); + } catch { + continue; + } + if (!words.some((w) => text.includes(w))) continue; + let result; + try { + result = patchFile(rel, text, parse(path, text, /\.[cm]?ts$/.test(rel) ? "ts" : "js"), [ + { id: 0, selector, op }, + ]); + } catch { + continue; + } + for (const m of result.matches) matches.push({ ...m, file: rel }); + for (const p of result.problems) problems.push(`${p.message} (${rel})`); + } + return { matches, problems }; +} + +function shownCopy(copy: PackageCopy, base: string, pkg: string): string { + const name = copy.twin ? typesName(pkg) : pkg; + return `${name} ${copy.version ?? "(no version)"} (${relative(base, copy.root).split("\\").join("/")})`; +} + +function describe(m: FileMatch): string { + if (m.redundant) return ` ${m.file}:${m.line} ${m.before} (already declared so)`; + return ` ${m.file}:${m.line} ${m.before} -> ${m.after}`; +} + +/** The indentation a JSON text uses (two spaces when it cannot tell). */ +function indentOf(text: string): string { + const m = /^[{[]\s*\n([ \t]+)\S/.exec(text); + return m === null ? " " : m[1]!; +} + +function isObject(value: unknown): value is Record { + return value !== null && typeof value === "object" && !Array.isArray(value); +} + +/** JSON text of `value` with `path` set to the string `leaf` (objects + * created along the way, the leaf replaced if present), keeping key order + * and indenting like JSON.stringify(value, null, indent). The parsed value + * itself is only read. */ +function renderJson( + value: unknown, + indent: string, + at: string, + path: readonly string[], + leaf: string, +): string { + const inner = at + indent; + if (path.length > 0 && !isObject(value)) return renderJson({}, indent, at, path, leaf); + if (isObject(value)) { + const keys = Object.keys(value); + const parts: string[] = []; + const head = path[0]; + for (const k of keys) { + const child = + head === k + ? path.length === 1 + ? JSON.stringify(leaf) + : renderJson(value[k], indent, inner, path.slice(1), leaf) + : renderJson(value[k], indent, inner, [], leaf); + parts.push(`${inner}${JSON.stringify(k)}: ${child}`); + } + if (head !== undefined && !keys.includes(head)) { + const child = + path.length === 1 + ? JSON.stringify(leaf) + : renderJson({}, indent, inner, path.slice(1), leaf); + parts.push(`${inner}${JSON.stringify(head)}: ${child}`); + } + return parts.length === 0 ? "{}" : `{\n${parts.join(",\n")}\n${at}}`; + } + if (Array.isArray(value)) { + const items: unknown[] = value; + if (items.length === 0) return "[]"; + return `[\n${items.map((item) => `${inner}${renderJson(item, indent, inner, [], leaf)}`).join(",\n")}\n${at}]`; + } + return JSON.stringify(value) ?? "null"; +} + +function patchCommand( + req: Extract, + parse: TypePatchParse, +): TypePatchCommandResult { + const fail = (message: string): TypePatchCommandResult => ({ + stdout: "", + stderr: `scriptc: ${message}\n`, + exitCode: 1, + }); + const selector = parseSelector(req.selector); + if ("error" in selector) return fail(`'${req.selector}' is not a selector: it ${selector.error}`); + const op = parseTypeText(req.type); + if ("error" in op) return fail(`the type '${req.type}' ${op.error}`); + if (req.range !== null && !isValidRange(req.range)) + return fail(`'${req.range}' is not a semver range`); + const manifest = nearestManifest(req.cwd); + if (manifest === null) return fail("no package.json found from the working directory"); + const base = dirname(manifest); + const copies = installedCopies(req.cwd, req.pkg); + const runtime = copies.find((c) => !c.twin) ?? copies[0]; + if (runtime === undefined) return fail(`${req.pkg} is not installed here`); + const version = runtime.version; + const lines: string[] = []; + let matched = 0; + let changed = 0; + const problems: string[] = []; + for (const copy of copies) { + const found = matchCopy(copy, selector, op, parse); + problems.push(...found.problems); + if (found.matches.length === 0) continue; + lines.push(shownCopy(copy, base, req.pkg)); + for (const m of found.matches) { + lines.push(describe(m)); + matched++; + if (!m.redundant) changed++; + } + } + if (matched === 0) { + const why = + problems.length > 0 ? problems.join("\n") : `'${req.selector}' matches no declaration`; + return fail(`${why}\nnothing was written`); + } + if (changed === 0) { + lines.push("the declarations already say this; nothing was written"); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; + } + const text = readFileSync(manifest, "utf8"); + let parsed: unknown; + try { + parsed = JSON.parse(text); + } catch { + return fail(`${relative(req.cwd, manifest) || "package.json"} is not valid JSON`); + } + // An existing entry whose range covers the installed version takes the + // patch; otherwise a new one under the range asked for. + const existing = parseProjectConfig(manifest, text).typePatches.find( + (e: TypePatchEntry) => + e.pkg === req.pkg && + (req.range === null + ? version !== null && satisfies(version, e.range) + : e.range === req.range), + ); + const key = + existing?.key ?? `${req.pkg}@${req.range ?? (version === null ? "*" : `^${version}`)}`; + const where = `scriptc.typePatches["${key}"].declarations["${req.selector}"]`; + if (req.dryRun) { + lines.push(`would write ${relative(req.cwd, manifest) || "package.json"} ${where}`); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; + } + const trailing = text.endsWith("\n") ? "\n" : ""; + writeFileSync( + manifest, + renderJson( + parsed, + indentOf(text), + "", + ["scriptc", "typePatches", key, "declarations", req.selector], + req.type, + ) + trailing, + ); + lines.push(`wrote ${relative(req.cwd, manifest) || "package.json"} ${where}`); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; +} + +function listCommand(cwd: string, parse: TypePatchParse): TypePatchCommandResult { + const manifest = nearestManifest(cwd); + if (manifest === null) + return { + stdout: "", + stderr: "scriptc: no package.json found from the working directory\n", + exitCode: 1, + }; + const base = dirname(manifest); + const config = parseProjectConfig(manifest, readFileSync(manifest, "utf8")); + const lines: string[] = []; + for (const d of config.diagnostics) + if (d.message.includes("typePatches")) lines.push(`warning ${d.code}: ${d.message}`); + if (config.typePatches.length === 0) { + lines.push("no type patches"); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; + } + for (const entry of config.typePatches) { + lines.push(entry.key); + const copies = installedCopies(cwd, entry.pkg); + const covered = copies.filter((c) => c.version !== null && satisfies(c.version, entry.range)); + if (copies.length === 0) lines.push(` not installed`); + else if (covered.length === 0) + lines.push( + ` does not apply to the installed ${entry.pkg} ${copies[0]!.version ?? "(no version)"}`, + ); + for (const decl of entry.declarations) { + const selector = parseSelector(decl.selector) as Selector; + const op = parseTypeText(decl.type) as TypePatchOp; + const found: FileMatch[] = []; + for (const copy of covered) { + for (const m of matchCopy(copy, selector, op, parse).matches) + found.push({ + ...m, + file: `${relative(base, copy.root).split("\\").join("/")}/${m.file}`, + }); + } + const status = + covered.length === 0 + ? "" + : found.length === 0 + ? " (matches nothing)" + : found.every((m) => m.redundant) + ? " (already declared so)" + : ""; + lines.push(` ${decl.selector}: ${decl.type}${status}`); + for (const m of found) + if (!m.redundant) lines.push(` ${m.file}:${m.line} ${m.before} -> ${m.after}`); + } + for (const [target, local] of entry.files) + lines.push(` file ${target}: ${relative(base, local).split("\\").join("/")}`); + if (entry.types !== null) + lines.push(` types: ${relative(base, entry.types).split("\\").join("/")}`); + } + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; +} + +export function runTypePatchCommand( + req: TypePatchCommandRequest, + parse: TypePatchParse, +): TypePatchCommandResult { + return req.action === "patch" ? patchCommand(req, parse) : listCommand(req.cwd, parse); +} diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index e2d14ebde..92b39e78b 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -1,3 +1,9 @@ +import { nodeFrontendServices } from "./frontend/services-node.js"; +import { + runTypePatchCommand, + type TypePatchCommandRequest, + type TypePatchCommandResult, +} from "./frontend/type-patches/command.js"; import { optimizationField, type NativeOptimization } from "./backend/optimization.js"; import { targetCpuField, targetCpuTargetRefusal } from "./backend/target-cpu.js"; import { compilationTiming, type CompilationTiming, type TimingClock } from "./timing.js"; @@ -197,6 +203,15 @@ export { } from "./backend/external-c.js"; export { warmNativeCaches } from "./backend/warm-cache.js"; export { mergeNativeProfiles as mergeProfiles } from "./backend/native-codegen.js"; + +/** `scriptc types patch|list` with the Node frontend's parser. */ +export async function typePatches( + request: TypePatchCommandRequest, +): Promise { + return runTypePatchCommand(request, (path, text, kind) => + nodeFrontendServices().parse(path, text, kind), + ); +} export { collectGarbageUnderHeapPressure } from "./heap-collection.js"; export { ANDROID_MIN_API, diff --git a/packages/compiler/src/native/cli.ts b/packages/compiler/src/native/cli.ts index b3de05846..60f3d28da 100644 --- a/packages/compiler/src/native/cli.ts +++ b/packages/compiler/src/native/cli.ts @@ -12,6 +12,7 @@ import { mergeNativeProfiles } from "../backend/native-tools.js"; import { setDeclarationRoot } from "../frontend/dts-paths.js"; import { setFrontendDisposedHook } from "../frontend/dispose-hook.js"; import { FrontendServices } from "../frontend/services.js"; +import { runTypePatchCommand } from "../frontend/type-patches/command.js"; import { createNativeTs7Api } from "../frontend/ts7/native-api.js"; import { resolveProvenanceSourcesWithParser } from "../frontend/provenance-core.js"; import { setCompilerReleaseVersion } from "../library/sidecar.js"; @@ -169,6 +170,19 @@ async function main(): Promise { } return { cacheRoot: cache.root, profiles }; }, + typePatches: async (request) => { + const toolchain = getCompiler().toolchain; + const services = new FrontendServices((options) => + createNativeTs7Api({ ...options, executable: toolchain.ts7Executable }), + ); + try { + return runTypePatchCommand(request, (path, source, kind) => + services.parse(path, source, kind), + ); + } finally { + services.close(); + } + }, mergeProfiles: async (outputPath, inputPaths, sparse) => { const toolchain = getCompiler().toolchain; mergeNativeProfiles({ diff --git a/packages/compiler/test/type-patches-command.test.ts b/packages/compiler/test/type-patches-command.test.ts new file mode 100644 index 000000000..7fc8a0d6c --- /dev/null +++ b/packages/compiler/test/type-patches-command.test.ts @@ -0,0 +1,120 @@ +/* `scriptc types patch` and `scriptc types list` + * (frontend/type-patches/command.ts) on a copy of the type patch fixture: + * matches are shown before anything is written, the patch lands in the + * nearest package.json under a range covering the installed version (or + * an existing entry that covers it), and nothing is written when the + * selector matches nothing. */ +import { cpSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { afterEach, beforeEach, expect, test } from "vitest"; +import { nodeFrontendServices } from "../src/frontend/services-node.js"; +import { runTypePatchCommand } from "../src/frontend/type-patches/command.js"; + +const fixture = join(import.meta.dirname, "../../../tests/fixtures/type-patches"); +const parse = (path: string, text: string, kind: "ts" | "js") => + nodeFrontendServices().parse(path, text, kind); +let root: string; + +beforeEach(() => { + root = mkdtempSync(join(tmpdir(), "scriptc-types-command-")); + cpSync(fixture, root, { recursive: true }); + writeFileSync( + join(root, "package.json"), + JSON.stringify({ name: "app", private: true, type: "module" }, null, 2) + "\n", + ); +}); +afterEach(() => rmSync(root, { recursive: true, force: true })); + +const patch = (pkg: string, selector: string, type: string, extra: object = {}) => + runTypePatchCommand( + { action: "patch", cwd: root, pkg, selector, type, range: null, dryRun: false, ...extra }, + parse, + ); + +test("patch shows the matches and writes the entry", () => { + const result = patch("termctx", "OutputContext.width", "| undefined"); + expect(result).toEqual({ + stdout: + "termctx 1.2.0 (node_modules/termctx)\n" + + " index.js:24 number -> number | undefined\n" + + `wrote package.json scriptc.typePatches["termctx@^1.2.0"].declarations["OutputContext.width"]\n`, + stderr: "", + exitCode: 0, + }); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8"))).toEqual({ + name: "app", + private: true, + type: "module", + scriptc: { + typePatches: { + "termctx@^1.2.0": { declarations: { "OutputContext.width": "| undefined" } }, + }, + }, + }); + // A second patch joins the entry whose range covers the installed copy. + expect(patch("termctx", "Terminal.columns()", "| undefined").exitCode).toBe(0); + const text = readFileSync(join(root, "package.json"), "utf8"); + expect(text.endsWith("}\n")).toBe(true); + expect(JSON.parse(text).scriptc.typePatches).toEqual({ + "termctx@^1.2.0": { + declarations: { "OutputContext.width": "| undefined", "Terminal.columns()": "| undefined" }, + }, + }); +}); + +test("--range and --dry-run", () => { + const dry = patch("ms", "index.js:parse()", "| undefined", { dryRun: true, range: "2.1.x" }); + expect(dry.stdout).toBe( + "ms 2.1.3 (node_modules/ms)\n" + + " index.js:44 Number -> Number | undefined\n" + + `would write package.json scriptc.typePatches["ms@2.1.x"].declarations["index.js:parse()"]\n`, + ); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8")).scriptc).toBeUndefined(); +}); + +test("nothing is written for a selector that matches nothing or is already so", () => { + const missing = patch("termctx", "OutputContext.height", "| undefined"); + expect(missing.exitCode).toBe(1); + expect(missing.stderr).toBe( + "scriptc: 'OutputContext.height' matches no declaration\nnothing was written\n", + ); + const redundant = patch("ms", "index.js:fmtShort(ms)", "| Number"); + expect(redundant).toMatchObject({ exitCode: 0 }); + expect(redundant.stdout).toContain("the declarations already say this; nothing was written\n"); + expect(patch("absent-package", "A.b", "| undefined").stderr).toBe( + "scriptc: absent-package is not installed here\n", + ); + expect(patch("termctx", "1bad", "| undefined").stderr).toContain("is not a selector"); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8")).scriptc).toBeUndefined(); +}); + +test("list shows each patch and what it matches", () => { + writeFileSync(join(root, "package.json"), readFileSync(join(fixture, "package.json"))); + const listed = runTypePatchCommand({ action: "list", cwd: root }, parse); + expect(listed.stdout).toBe( + [ + "termctx@^1.0.0", + " OutputContext.width: | undefined", + " node_modules/termctx/index.js:24 number -> number | undefined", + " Terminal.columns(): | undefined", + " node_modules/termctx/index.js:14 number -> number | undefined", + "ms@^2.1.0", + " index.js:parse(): | undefined", + " node_modules/ms/index.js:44 Number -> Number | undefined", + " export=(): | undefined", + " node_modules/ms/index.js:22 String|Number -> String|Number | undefined", + "", + ].join("\n"), + ); + writeFileSync(join(root, "stale.json"), ""); + writeFileSync( + join(root, "package.json"), + JSON.stringify({ + scriptc: { typePatches: { "termctx@^2.0.0": { declarations: { "A.b": "| undefined" } } } }, + }), + ); + expect(runTypePatchCommand({ action: "list", cwd: root }, parse).stdout).toBe( + "termctx@^2.0.0\n does not apply to the installed termctx 1.2.0\n A.b: | undefined\n", + ); +}); diff --git a/packages/runtime/src/scr_type_origin.c b/packages/runtime/src/scr_type_origin.c index c52a09164..cf9c6fc49 100644 --- a/packages/runtime/src/scr_type_origin.c +++ b/packages/runtime/src/scr_type_origin.c @@ -9,12 +9,13 @@ * site's cold exception path, which calls scr_type_origin_note: the * pending TypeError's message gains two lines naming the declaration and * the type patch (package.json scriptc.typePatches) that would make the - * declaration admit the value. The hot path is unchanged, and so is every + * declaration admit the value, as the `scriptc types patch` command that + * writes it. The hot path is unchanged, and so is every * other error. * * The origin is one string of fields separated by \x1f: package, version, - * suggested range, the selector of the declared slot, where it is - * declared, and the declared type. */ + * suggested range (which the command chooses itself), the selector of the + * declared slot, where it is declared, and the declared type. */ #include "scr_runtime.h" #include @@ -92,10 +93,9 @@ void scr_type_origin_note(const char *origin) { } } } - const char *pkg, *version, *range, *selector, *where, *declared; + const char *pkg, *version, *selector, *where, *declared; size_t pkg_len = scr_origin_field(origin, 0, &pkg); size_t version_len = scr_origin_field(origin, 1, &version); - size_t range_len = scr_origin_field(origin, 2, &range); size_t selector_len = scr_origin_field(origin, 3, &selector); size_t where_len = scr_origin_field(origin, 4, &where); size_t declared_len = scr_origin_field(origin, 5, &declared); @@ -116,11 +116,9 @@ void scr_type_origin_note(const char *origin) { } scr_origin_puts(&b, " ("); scr_origin_put(&b, where, where_len); - scr_origin_puts(&b, ")\n if that declaration is wrong, patch it in package.json: \"scriptc\": { \"typePatches\": { \""); + scr_origin_puts(&b, ")\n if that declaration is wrong, patch it: scriptc types patch "); scr_origin_put(&b, pkg, pkg_len); - scr_origin_puts(&b, "@"); - scr_origin_put(&b, range, range_len); - scr_origin_puts(&b, "\": { \"declarations\": { \""); + scr_origin_puts(&b, " \""); scr_origin_put(&b, selector, selector_len); /* $[3].email extends the selector as [].email: elements of an array * share one declared type. */ @@ -132,7 +130,7 @@ void scr_type_origin_note(const char *origin) { scr_origin_put(&b, path + i, 1); } } - scr_origin_puts(&b, "\": \"| "); + scr_origin_puts(&b, "\" \"| "); if (got != NULL) { const char *arm = scr_origin_arm(got, got_len); if (arm != NULL) scr_origin_puts(&b, arm); @@ -140,7 +138,7 @@ void scr_type_origin_note(const char *origin) { } else { scr_origin_puts(&b, "undefined"); } - scr_origin_puts(&b, "\" } } } }"); + scr_origin_puts(&b, "\""); ScrStr *next = scr_str_new(b.data, b.len); free(b.data); diff --git a/tests/harness/type-patches.test.ts b/tests/harness/type-patches.test.ts index cfd8b4dd6..7b8aaf7f5 100644 --- a/tests/harness/type-patches.test.ts +++ b/tests/harness/type-patches.test.ts @@ -120,7 +120,7 @@ describe("type patches", () => { expect(native.stderr).toBe( "Uncaught TypeError: expected string at $, got undefined\n" + " profilekit@3.1.0 declares Profile.email as string (index.d.ts:7)\n" + - ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "profilekit@^3.1.0": { "declarations": { "Profile.email": "| undefined" } } } }\n`, + ` if that declaration is wrong, patch it: scriptc types patch profilekit "Profile.email" "| undefined"\n`, ); } } finally { @@ -178,7 +178,7 @@ describe("type patches", () => { const result = await build(join(fixture, "unpatched/main.ts"), "unpatched", ["termctx"]); const native = await run(result.binaryPath, []); const patch = (selector: string) => - ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "termctx@^1.2.0": { "declarations": { "${selector}": "| undefined" } } } }`; + ` if that declaration is wrong, patch it: scriptc types patch termctx "${selector}" "| undefined"`; expect(native.stdout).toBe( [ "expected number at $, got undefined", From 062700bdde6125d6f38192d6d636dc9484c17b61 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 10:08:00 -0700 Subject: [PATCH 027/128] Convert asserted values that no ordinary conversion reaches `x as T` erases (or, record to record, converts), and the value then meets its slot with x's representation. Where no conversion reaches the slot the program was refused: - a union whose arms only partly convert into T (`api as Partial>` on `S | Partial> | undefined`) failed at the next typed slot with SC2003; - a record or array whose member types the assertion narrows (`models as Model<"one">[]` on a union-element array, `item as Narrow` with a narrower field) failed with SC2002 or SC2003. The lowerer now remembers the asserted type of an erased value, and a slot that would refuse it converts it as asserted: the arms T excludes throw the catchable TypeError of a lying assertion and the others convert, and records and arrays take the checked deep conversion, which validates the value member by member and names the deepest failing path, as a cast of an unknown value does. The conversions run only where the slot would otherwise refuse the value, so everything that already lowered keeps its code. Co-Authored-By: Claude Opus 5.5 --- .../frontend/lowering/coercions/asserted.ts | 87 +++++++++++++++++++ .../lowering/expressions/narrowing.ts | 10 +++ .../compiler/src/frontend/lowering/lowerer.ts | 9 +- .../checked-union-record-assertions.ts.json | 6 ++ .../corpus/checked-union-record-assertions.ts | 69 +++++++++++++++ .../checked-union-record-assertions.ts.json | 1 + tests/harness/dyncheck.test.ts | 26 ++++++ 7 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 packages/compiler/src/frontend/lowering/coercions/asserted.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/checked-union-record-assertions.ts.json create mode 100644 tests/corpus/checked-union-record-assertions.ts create mode 100644 tests/harness/corpus-costs/checked-union-record-assertions.ts.json diff --git a/packages/compiler/src/frontend/lowering/coercions/asserted.ts b/packages/compiler/src/frontend/lowering/coercions/asserted.ts new file mode 100644 index 000000000..43c447cb0 --- /dev/null +++ b/packages/compiler/src/frontend/lowering/coercions/asserted.ts @@ -0,0 +1,87 @@ +/* Slots reached only through what a type assertion claims. */ +import type { IrExpr, IrType, SrcLoc } from "../../../ir/ir.js"; +import { canDynCheckTo, DYN, isUnitType, typeEquals } from "../../../ir/ir.js"; +import { lowerRecordOvfCaptureHelper } from "../containers/indexed-objects.js"; +import type { Lowerer } from "../lowerer.js"; +import { unionRetagHelper } from "./unions.js"; + +/** A value an erased assertion produced (`x as T`, lowerer.assertedValues) + * flowing into a slot that no ordinary conversion reaches. Runs only where + * the slot would otherwise refuse the value (SC2002/SC2003), so every + * conversion that already lowered keeps its code. + * + * - A union whose arms only partly convert (`api as Partial>` on `S | Partial> | undefined`): the arms that convert + * into T convert into the slot, and an arm the assertion excludes (no + * conversion into T) throws the catchable TypeError of a lying assertion. + * - A record or array whose member types the assertion narrows (`models as + * Model<"one">[]` on a union-element array): the checked deep conversion + * a cast of an unknown value takes, which validates the value member by + * member and names the deepest failing path. */ +export function assertedConversion( + lowerer: Lowerer, + expr: IrExpr, + expected: IrType, +): IrExpr | null { + const asserted = lowerer.assertedValues.get(expr); + if (!asserted) return null; + const loc = expr.loc; + if (expr.type.kind === "union") { + const from = lowerer.unions.get(expr.type.unionId); + if (!from) return null; + const values = from.arms.filter((arm) => !isUnitType(arm)); + const kept = values.filter((arm) => convertsInto(lowerer, arm, asserted, loc)); + if (kept.length === 0 || kept.length === values.length) return null; + if (asserted.kind === "union" && expected.kind === "union") { + // The arms T excludes trap; the others (units included) re-tag. + const trappable = new Set(); + from.arms.forEach((arm, tag) => { + if (!isUnitType(arm) && !kept.includes(arm)) trappable.add(tag); + }); + const helper = unionRetagHelper(lowerer, from.id, expected.unionId, loc, trappable); + return helper ? { kind: "call", callee: helper, args: [expr], type: expected, loc } : null; + } + // A record or array T holds one arm's values: extract that arm (every + // other arm, a unit too, contradicts the assertion) and convert it. + if (asserted.kind === "union" || kept.length !== 1) return null; + const arm = kept[0]!; + const helper = lowerer.narrowedArmHelper(from.id, arm, loc); + if (!helper) return null; + const narrowed = lowerer.checkedNarrowCall(helper, expr, arm, loc); + if (typeEquals(arm, expected)) return narrowed; + const converted = lowerer.coerceToExpected(narrowed, expected); + return typeEquals(converted.type, expected) ? converted : null; + } + if (expected.kind !== "record" && expected.kind !== "array") return null; + if (expected.kind === "record" && lowerer.shapes.get(expected.shapeId)?.indexValue !== undefined) + return null; + if ( + !lowerer.dynConvertible(expr.type) || + !canDynCheckTo( + expected, + (id) => lowerer.shapes.get(id), + (id) => lowerer.unions.get(id), + ) + ) + return null; + return { kind: "dynCheck", value: lowerer.coerceToExpected(expr, DYN), type: expected, loc }; +} + +/** True when a value of `arm` has a structural conversion into `target`: + * the same type, one of its arms, a width lift, or (into an + * index-signature record) the overflow capture. */ +function convertsInto(lowerer: Lowerer, arm: IrType, target: IrType, loc: SrcLoc): boolean { + if (typeEquals(arm, target)) return true; + if ( + target.kind === "union" && + lowerer.unions.get(target.unionId)?.arms.some((candidate) => typeEquals(candidate, arm)) + ) + return true; + if (lowerer.widthLiftPlan(arm, target) !== null) return true; + return ( + arm.kind === "record" && + target.kind === "record" && + lowerer.shapes.get(target.shapeId)?.indexValue !== undefined && + lowerRecordOvfCaptureHelper(lowerer, arm.shapeId, target.shapeId, loc) !== null + ); +} diff --git a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts index 9f0559672..19f879bcf 100644 --- a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts +++ b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts @@ -1481,6 +1481,7 @@ export function lowerAsExpression( target?.kind === "record" && inner.type.shapeId !== target.shapeId ) { + lowerer.assertedValues.set(inner, target); return lowerer.coerceInto(expr, inner, target); } // `u as Arm` on a UNION value is `u!`'s spelling with a named arm @@ -1515,6 +1516,15 @@ export function lowerAsExpression( const asserted = checkedClassUnionAssertion(lowerer, inner, target, locOf(expr)); if (asserted) return asserted; } + // The erased value still answers to the assertion: a slot it cannot + // reach by an ordinary conversion converts it as asserted + // (assertedConversion). + if ( + target && + (target.kind === "union" || target.kind === "record" || target.kind === "array") && + (inner.type.kind === "union" || inner.type.kind === "array") + ) + lowerer.assertedValues.set(inner, target); return inner; // erasure, unchanged } diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index feca34427..491ca7c11 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -118,6 +118,7 @@ import { deferredReadHelper, widthNarrowHelper, } from "./coercions/unions.js"; +import { assertedConversion } from "./coercions/asserted.js"; import { lowerUtilTypeValue, pathModuleValue, @@ -2247,6 +2248,10 @@ export class Lowerer { ts.Type, { tsBindings: Map; instance: ts.Type }[] >(); + /** Values an erased type assertion produced, with the asserted type + * (`x as T` keeps x's representation): a slot that no ordinary + * conversion reaches converts them as asserted (assertedConversion). */ + readonly assertedValues = new WeakMap(); /** Non-null while an IMPLICIT-ANY instance body lowers (npm-static JS; * see generic-functions.ts): bound param symbol → * the call site's checker type, consulted by typeOf for identifier @@ -10599,6 +10604,8 @@ export class Lowerer { if (!typeEquals(expr.type, expected)) { const w = this.widthCoerce(expr, expected); if (w) return w; + const asserted = assertedConversion(this, expr, expected); + if (asserted) return asserted; // A UNIT (null/undefined) flowing into a plain non-nullable slot // the checker approved (`null!` casts, non-strict assignments): // the stranded-source stance (divergence 38) without a union in @@ -10617,7 +10624,7 @@ export class Lowerer { if (helper) { return { kind: "call", callee: helper, args: [expr], type: expected, loc: expr.loc }; } - return expr; + return assertedConversion(this, expr, expected) ?? expr; } if (expr.type.kind === "void") { // A void CALL RESULT flowing into a union with an undefined arm diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/checked-union-record-assertions.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/checked-union-record-assertions.ts.json new file mode 100644 index 000000000..ff77d1a95 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/checked-union-record-assertions.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/checked-union-record-assertions.ts" + ], + "diags": [] +} diff --git a/tests/corpus/checked-union-record-assertions.ts b/tests/corpus/checked-union-record-assertions.ts new file mode 100644 index 000000000..f5d43cee1 --- /dev/null +++ b/tests/corpus/checked-union-record-assertions.ts @@ -0,0 +1,69 @@ +// Assertions whose target no static conversion reaches: a union asserted to +// the one layout some of its arms convert into, and records or arrays whose +// member types the assertion narrows. The value is checked against the +// asserted type; these programs assert truthfully, so they run as in Node. + +type Api = "alpha" | "beta" | (string & {}); + +interface Streams { + stream: (x: number) => string; + fetch?: (x: number) => string; +} + +interface Options { + name: string; + api?: Streams | Partial>; +} + +function isStreams(value: unknown): value is Streams { + return typeof value === "object" && value !== null && "stream" in value && typeof value.stream === "function"; +} + +function run(input: Options): string[] { + const single = input.api && isStreams(input.api) ? input.api : undefined; + const byApi = single || !input.api ? undefined : (input.api as Partial>); + const all = single ? [single] : Object.values(byApi ?? {}).filter((entry) => entry !== undefined); + return all.map((entry) => `${input.name}:${entry.stream(all.length)}`); +} + +const shared: Streams = { stream: (x) => `shared${x}` }; +console.log(run({ name: "single", api: shared })); +console.log(run<"alpha" | "beta">({ name: "map", api: { alpha: { stream: (x) => `alpha${x}` }, beta: shared } })); +console.log(run<"alpha">({ name: "none" })); + +type KnownKind = "alpha" | "beta" | "gamma"; + +interface AlphaOpts { + fast?: boolean; +} +interface BetaOpts { + depth?: number; +} + +interface Item { + id: string; + kind: TKind; + opts?: TKind extends "alpha" ? AlphaOpts : TKind extends "beta" ? BetaOpts : never; +} + +interface Other { + id: string; + kind: string; + size: number; +} + +const alpha: Item<"alpha"> = { id: "a1", kind: "alpha", opts: { fast: true } }; +const gamma: Item<"gamma"> = { id: "g1", kind: "gamma" }; +const other: Other = { id: "o1", kind: "other", size: 2 }; + +const everything: (Item | Other)[] = [alpha, gamma, other, { id: "g2", kind: "gamma" }]; +const gammas = everything.filter((entry) => entry.kind === "gamma") as Item<"gamma">[]; +console.log(gammas.length, gammas.map((entry) => `${entry.id}:${entry.opts === undefined}`).join(",")); + +const items: Item[] = [gamma, alpha]; +const first = items[0]! as Item<"gamma">; +console.log(first.id, first.kind, first.opts === undefined); + +const stored: { list: (Item | Other)[] } = { list: [gamma] }; +const restored = stored.list as Item<"gamma">[]; +console.log(JSON.stringify(restored)); diff --git a/tests/harness/corpus-costs/checked-union-record-assertions.ts.json b/tests/harness/corpus-costs/checked-union-record-assertions.ts.json new file mode 100644 index 000000000..fc3725628 --- /dev/null +++ b/tests/harness/corpus-costs/checked-union-record-assertions.ts.json @@ -0,0 +1 @@ +{ "plain": 14493, "san": 16666 } diff --git a/tests/harness/dyncheck.test.ts b/tests/harness/dyncheck.test.ts index e1a869048..dfd037570 100644 --- a/tests/harness/dyncheck.test.ts +++ b/tests/harness/dyncheck.test.ts @@ -114,6 +114,32 @@ describe(`dynamic-boundary checks (scriptc-only${sanitize ? ", sanitized" : ""}) expect(r.stderr).toBe(""); }); + test("assertions narrowing record members or union arms check the value", async () => { + const r = await compileAndRun( + "narrowing-record-assertions", + ` + interface AlphaOpts { fast?: boolean } + interface Item { id: string; kind: K; opts?: K extends "alpha" ? AlphaOpts : never } + const items: Item<"alpha" | "gamma">[] = [{ id: "g1", kind: "gamma" }, { id: "a1", kind: "alpha", opts: { fast: true } }]; + try { const all = items as Item<"gamma">[]; console.log(all.length); } + catch (error) { console.log(error instanceof TypeError, (error as Error).message); } + try { const one = items[1]! as Item<"gamma">; console.log(one.id); } + catch (error) { console.log(error instanceof TypeError, (error as Error).message); } + interface S { stream: () => string } + function keys(u: S | { a?: S }): string[] { const m = u as Partial>; return Object.keys(m); } + try { console.log(keys({ a: { stream: () => "a" } }).join()); console.log(keys({ stream: () => "s" })); } + catch (error) { console.log(error instanceof TypeError); } + `, + ); + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe( + "true expected null | undefined at $[1].opts, got object\n" + + "true expected null | undefined at $.opts, got object\n" + + "a\ntrue\n", + ); + expect(r.stderr).toBe(""); + }); + test("typed Promise exits validate fulfillment and preserve rejection", async () => { const result = await compileAndRun( "promise-exit-payload", From 46785f8ebac9826fcc59ff3a87617e986c5f5f9b Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 17:35:38 -0500 Subject: [PATCH 028/128] Address review feedback --- .../frontend/lowering/coercions/structural.ts | 6 ++- .../src/frontend/lowering/decl-origin.ts | 22 +++++--- packages/compiler/src/frontend/program.ts | 2 + .../node_modules/gridctx/index.js | 43 +++++++++++++++ .../node_modules/gridctx/package.json | 1 + .../node_modules/panectx/index.js | 43 +++++++++++++++ .../node_modules/panectx/package.json | 1 + tests/fixtures/type-patches/same-name/main.ts | 15 ++++++ .../type-patches/same-name/package.json | 1 + tests/harness/type-patches.test.ts | 53 ++++++++++++++++++- 10 files changed, 177 insertions(+), 10 deletions(-) create mode 100644 tests/fixtures/type-patches/node_modules/gridctx/index.js create mode 100644 tests/fixtures/type-patches/node_modules/gridctx/package.json create mode 100644 tests/fixtures/type-patches/node_modules/panectx/index.js create mode 100644 tests/fixtures/type-patches/node_modules/panectx/package.json create mode 100644 tests/fixtures/type-patches/same-name/main.ts create mode 100644 tests/fixtures/type-patches/same-name/package.json diff --git a/packages/compiler/src/frontend/lowering/coercions/structural.ts b/packages/compiler/src/frontend/lowering/coercions/structural.ts index 76c6c9c3b..863472910 100644 --- a/packages/compiler/src/frontend/lowering/coercions/structural.ts +++ b/packages/compiler/src/frontend/lowering/coercions/structural.ts @@ -398,10 +398,12 @@ export function recordWidthHelper( // Package code converting into a package-declared record type (an // object literal returned under `@returns {HelpContext}`): its field // extractions name the declared fields (decl-origin.ts), so the helper - // is keyed by that type too. Every other projection is shared as before. + // is keyed by that type's declaration too (two packages may declare + // records of the same name and shape). Every other projection is shared + // as before. const declared = lowerer.coercionRecordOrigin(); const key = - declared === null ? `rec:${fromId}:${toId}` : `rec:${fromId}:${toId}:origin:${declared.name}`; + declared === null ? `rec:${fromId}:${toId}` : `rec:${fromId}:${toId}:origin:${declared.key}`; const existing = lowerer.valueHelpers.get(key); if (existing) return existing; const name = keyedHelperName(lowerer, "%rec.width", key); diff --git a/packages/compiler/src/frontend/lowering/decl-origin.ts b/packages/compiler/src/frontend/lowering/decl-origin.ts index 60510ecec..72a135b67 100644 --- a/packages/compiler/src/frontend/lowering/decl-origin.ts +++ b/packages/compiler/src/frontend/lowering/decl-origin.ts @@ -40,8 +40,15 @@ interface PackageFile { rel: string; } +/** Installed package versions by package root, read once per program load + * (resetDeclOriginVersions): a dependency reinstalled at another version + * between two builds of one process is read again. */ const versions = new Map(); +export function resetDeclOriginVersions(): void { + versions.clear(); +} + function packageFileOf(fileName: string): PackageFile | null { const path = fileName.split("\\").join("/"); const marker = "/node_modules/"; @@ -268,6 +275,9 @@ export function slotOrigin(checker: ts.TypeChecker, node: ts.Node): string | nul export interface RecordOrigin { type: ts.Type; name: string; + /** The declaration's identity (package, version, file, line and name): + * records of the same shape and name declared by two packages differ. */ + key: string; } export function recordOrigin(checker: ts.TypeChecker, node: ts.Node): RecordOrigin | null { @@ -277,13 +287,11 @@ export function recordOrigin(checker: ts.TypeChecker, node: ts.Node): RecordOrig const name = symbol === undefined ? "" : ts.symbolName(symbol); if (!/^[A-Za-z_$][\w$]*$/.test(name)) return null; const decl = symbol?.declarations[0]; - if ( - decl === undefined || - genericDeclaration(decl) || - packageFileOf(ts.getSourceFileOfNode(decl).fileName) === null - ) - return null; - return { type: contextual, name }; + if (decl === undefined || genericDeclaration(decl)) return null; + const file = packageFileOf(ts.getSourceFileOfNode(decl).fileName); + if (file === null) return null; + const key = [file.pkg, file.version, file.rel, lineOf(decl), name].join(ORIGIN_SEPARATOR); + return { type: contextual, name, key }; } /** The origin of one field of a package-declared record type. */ diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index 44e048916..44979ca68 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -145,6 +145,7 @@ import { type DeclProjection, } from "./decl-projection.js"; import { configureTypePatches, packageSourceText } from "./type-patches/layer.js"; +import { resetDeclOriginVersions } from "./lowering/decl-origin.js"; import { reportShapes } from "./shape-inference/index.js"; import { inferredJsDiagnosticSuppressed } from "./inferred-js-diagnostics.js"; import { @@ -1082,6 +1083,7 @@ export function loadProgram( // (chalk 6) compile from their own source. configurePackageShims(entryPath); resetDeclBoundaryOrigins(); + resetDeclOriginVersions(); // The project's type patches (type-patches/layer.ts), read by every host // this load creates; nothing at all without `scriptc.typePatches`. configureTypePatches(entryPath, (path, text, kind) => services.parse(path, text, kind)); diff --git a/tests/fixtures/type-patches/node_modules/gridctx/index.js b/tests/fixtures/type-patches/node_modules/gridctx/index.js new file mode 100644 index 000000000..44c282ad7 --- /dev/null +++ b/tests/fixtures/type-patches/node_modules/gridctx/index.js @@ -0,0 +1,43 @@ +"use strict"; +// termctx's Terminal under another name: panectx and gridctx declare the +// same OutputContext (one name, one shape) in two packages. + +class Terminal { + constructor(tty) { + this.tty = tty; + this.settings = { + columns: () => (this.tty ? 80 : undefined), + }; + } + + /** + * @returns {number} + */ + columns() { + return this.settings.columns(); + } + + /** + * @typedef OutputContext + * @type {object} + * @property {boolean} error + * @property {number} width + * + * @param {boolean} error + * @returns {OutputContext} + */ + outputContext(error) { + const width = this.settings.columns(); + return { error, width }; + } + + /** + * @param {OutputContext} context + * @returns {string} + */ + describe(context) { + return `width ${context.width}${context.error ? " (stderr)" : ""}`; + } +} + +module.exports = { Terminal }; diff --git a/tests/fixtures/type-patches/node_modules/gridctx/package.json b/tests/fixtures/type-patches/node_modules/gridctx/package.json new file mode 100644 index 000000000..36f6aba11 --- /dev/null +++ b/tests/fixtures/type-patches/node_modules/gridctx/package.json @@ -0,0 +1 @@ +{ "name": "gridctx", "version": "4.1.0", "main": "index.js" } diff --git a/tests/fixtures/type-patches/node_modules/panectx/index.js b/tests/fixtures/type-patches/node_modules/panectx/index.js new file mode 100644 index 000000000..44c282ad7 --- /dev/null +++ b/tests/fixtures/type-patches/node_modules/panectx/index.js @@ -0,0 +1,43 @@ +"use strict"; +// termctx's Terminal under another name: panectx and gridctx declare the +// same OutputContext (one name, one shape) in two packages. + +class Terminal { + constructor(tty) { + this.tty = tty; + this.settings = { + columns: () => (this.tty ? 80 : undefined), + }; + } + + /** + * @returns {number} + */ + columns() { + return this.settings.columns(); + } + + /** + * @typedef OutputContext + * @type {object} + * @property {boolean} error + * @property {number} width + * + * @param {boolean} error + * @returns {OutputContext} + */ + outputContext(error) { + const width = this.settings.columns(); + return { error, width }; + } + + /** + * @param {OutputContext} context + * @returns {string} + */ + describe(context) { + return `width ${context.width}${context.error ? " (stderr)" : ""}`; + } +} + +module.exports = { Terminal }; diff --git a/tests/fixtures/type-patches/node_modules/panectx/package.json b/tests/fixtures/type-patches/node_modules/panectx/package.json new file mode 100644 index 000000000..e73708257 --- /dev/null +++ b/tests/fixtures/type-patches/node_modules/panectx/package.json @@ -0,0 +1 @@ +{ "name": "panectx", "version": "2.0.0", "main": "index.js" } diff --git a/tests/fixtures/type-patches/same-name/main.ts b/tests/fixtures/type-patches/same-name/main.ts new file mode 100644 index 000000000..3cbfffc57 --- /dev/null +++ b/tests/fixtures/type-patches/same-name/main.ts @@ -0,0 +1,15 @@ +// panectx and gridctx each declare an OutputContext of the same shape: +// each failing check's TypeError names its own package's declaration +// (native only; Node never checks). +import { Terminal as PaneTerminal } from "panectx"; +import { Terminal as GridTerminal } from "gridctx"; + +const pane = new PaneTerminal(false); +const grid = new GridTerminal(false); +for (const read of [() => pane.outputContext(false).width, () => grid.outputContext(false).width]) { + try { + console.log(read()); + } catch (e) { + console.log((e as Error).message); + } +} diff --git a/tests/fixtures/type-patches/same-name/package.json b/tests/fixtures/type-patches/same-name/package.json new file mode 100644 index 000000000..fdf221cba --- /dev/null +++ b/tests/fixtures/type-patches/same-name/package.json @@ -0,0 +1 @@ +{ "name": "type-patches-same-name", "private": true, "type": "module" } diff --git a/tests/harness/type-patches.test.ts b/tests/harness/type-patches.test.ts index cfd8b4dd6..7afb4433d 100644 --- a/tests/harness/type-patches.test.ts +++ b/tests/harness/type-patches.test.ts @@ -9,7 +9,8 @@ * type-patch-types-twin, type-patch-files, type-patch-types-entry); here * their unpatched copies show the patches are what makes them compile, and * a failing check names the declaration and the patch (scr_type_origin.c, - * frontend/lowering/decl-origin.ts). And + * frontend/lowering/decl-origin.ts), its own package's also when two + * packages declare a record of one name and shape. And * commander-calc carries the HelpContext.helpWidth patch. */ import { execFile } from "node:child_process"; import { cpSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; @@ -193,6 +194,56 @@ describe("type patches", () => { }, ); + test( + "records of one name and shape from two packages name their own declarations", + { timeout: 600_000 }, + async () => { + const result = await build(join(fixture, "same-name/main.ts"), "same-name", [ + "panectx", + "gridctx", + ]); + const native = await run(result.binaryPath, []); + const failure = (pkg: string, version: string) => [ + "undefined is not representable in the target union (a value narrowed or asserted past it still held it)", + ` ${pkg}@${version} declares OutputContext.width as number (index.js:24)`, + ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "${pkg}@^${version}": { "declarations": { "OutputContext.width": "| undefined" } } } }`, + ]; + expect(native.stdout).toBe( + [...failure("panectx", "2.0.0"), ...failure("gridctx", "4.1.0"), ""].join("\n"), + ); + }, + ); + + test( + "a rebuild after the package's version changes names the installed version", + { timeout: 600_000 }, + async () => { + const copy = mkdtempSync(join(tmpdir(), "scriptc-reinstalled-")); + try { + cpSync(fixture, copy, { recursive: true }); + const entry = join(copy, "unpatched/main.ts"); + const declares = async (name: string) => { + const native = await run((await build(entry, name, ["termctx"])).binaryPath, []); + return native.stdout.split("\n").filter((line) => line.includes(" declares ")); + }; + expect(await declares("reinstalled-1.2.0")).toEqual([ + " termctx@1.2.0 declares Terminal.columns() as number (index.js:16)", + " termctx@1.2.0 declares OutputContext.width as number (index.js:24)", + ]); + writeFileSync( + join(copy, "node_modules/termctx/package.json"), + '{ "name": "termctx", "version": "1.3.0", "main": "index.js" }\n', + ); + expect(await declares("reinstalled-1.3.0")).toEqual([ + " termctx@1.3.0 declares Terminal.columns() as number (index.js:16)", + " termctx@1.3.0 declares OutputContext.width as number (index.js:24)", + ]); + } finally { + rmSync(copy, { recursive: true, force: true }); + } + }, + ); + test( "patches that do not apply as written warn and the build goes on", { timeout: 600_000 }, From b372816337ced999adcc8653539a9fc08b7ea41e Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 17:39:01 -0500 Subject: [PATCH 029/128] Address review feedback --- .../src/frontend/type-patches/command.ts | 53 ++++++++++++++----- .../test/type-patches-command.test.ts | 50 ++++++++++++++++- 2 files changed, 88 insertions(+), 15 deletions(-) diff --git a/packages/compiler/src/frontend/type-patches/command.ts b/packages/compiler/src/frontend/type-patches/command.ts index d7fb817ae..99c321710 100644 --- a/packages/compiler/src/frontend/type-patches/command.ts +++ b/packages/compiler/src/frontend/type-patches/command.ts @@ -131,13 +131,15 @@ interface FileMatch extends PatchMatch { } /** Every declaration a selector matches in a copy, and the problems where - * it cannot apply. */ + * it cannot apply (`always`: a problem even where the selector matched + * elsewhere, such as an ambiguous replacement, which leaves those + * declarations as they are). */ function matchCopy( copy: PackageCopy, selector: Selector, op: TypePatchOp, parse: TypePatchParse, -): { matches: FileMatch[]; problems: string[] } { +): { matches: FileMatch[]; problems: { message: string; always: boolean }[] } { const words = selector.root === "export=" ? ["exports", "export"] @@ -145,7 +147,7 @@ function matchCopy( ? ["default"] : [selector.root]; const matches: FileMatch[] = []; - const problems: string[] = []; + const problems: { message: string; always: boolean }[] = []; for (const rel of packageFiles(copy.root)) { if (selector.file !== null && selector.file !== rel) continue; const path = join(copy.root, rel); @@ -165,7 +167,8 @@ function matchCopy( continue; } for (const m of result.matches) matches.push({ ...m, file: rel }); - for (const p of result.problems) problems.push(`${p.message} (${rel})`); + for (const p of result.problems) + problems.push({ message: `${p.message} (${rel})`, always: p.always === true }); } return { matches, problems }; } @@ -258,7 +261,7 @@ function patchCommand( const lines: string[] = []; let matched = 0; let changed = 0; - const problems: string[] = []; + const problems: { message: string; always: boolean }[] = []; for (const copy of copies) { const found = matchCopy(copy, selector, op, parse); problems.push(...found.problems); @@ -272,9 +275,16 @@ function patchCommand( } if (matched === 0) { const why = - problems.length > 0 ? problems.join("\n") : `'${req.selector}' matches no declaration`; + problems.length > 0 + ? problems.map((p) => p.message).join("\n") + : `'${req.selector}' matches no declaration`; return fail(`${why}\nnothing was written`); } + // A declaration the patch cannot apply to where it also matched (an + // ambiguous replacement) would stay as it is. + const unapplied = problems.filter((p) => p.always); + if (unapplied.length > 0) + return fail(`${unapplied.map((p) => p.message).join("\n")}\nnothing was written`); if (changed === 0) { lines.push("the declarations already say this; nothing was written"); return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; @@ -286,15 +296,30 @@ function patchCommand( } catch { return fail(`${relative(req.cwd, manifest) || "package.json"} is not valid JSON`); } - // An existing entry whose range covers the installed version takes the - // patch; otherwise a new one under the range asked for. - const existing = parseProjectConfig(manifest, text).typePatches.find( - (e: TypePatchEntry) => - e.pkg === req.pkg && - (req.range === null - ? version !== null && satisfies(version, e.range) - : e.range === req.range), + // The compiler applies every entry whose range covers the installed + // version, and a later entry wins on the same selector. Without a range, + // the patch goes to the last covering entry that patches the selector + // already, else to the first covering entry; with one, to the entry of + // that range. Otherwise a new entry, which comes last, takes it. + const entries = parseProjectConfig(manifest, text).typePatches.filter( + (e: TypePatchEntry) => e.pkg === req.pkg, ); + const covers = (e: TypePatchEntry): boolean => version !== null && satisfies(version, e.range); + const declares = (e: TypePatchEntry): boolean => + e.declarations.some((d) => d.selector === req.selector); + const existing = + req.range === null + ? (entries.findLast((e) => covers(e) && declares(e)) ?? entries.find(covers)) + : entries.find((e) => e.range === req.range); + if (existing !== undefined && covers(existing)) { + const later = entries + .slice(entries.indexOf(existing) + 1) + .find((e) => covers(e) && declares(e)); + if (later !== undefined) + return fail( + `scriptc.typePatches["${later.key}"] also patches '${req.selector}' for ${req.pkg} ${version} and takes precedence over scriptc.typePatches["${existing.key}"]\nnothing was written`, + ); + } const key = existing?.key ?? `${req.pkg}@${req.range ?? (version === null ? "*" : `^${version}`)}`; const where = `scriptc.typePatches["${key}"].declarations["${req.selector}"]`; diff --git a/packages/compiler/test/type-patches-command.test.ts b/packages/compiler/test/type-patches-command.test.ts index 7fc8a0d6c..12f8a97bf 100644 --- a/packages/compiler/test/type-patches-command.test.ts +++ b/packages/compiler/test/type-patches-command.test.ts @@ -4,7 +4,7 @@ * nearest package.json under a range covering the installed version (or * an existing entry that covers it), and nothing is written when the * selector matches nothing. */ -import { cpSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { cpSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, expect, test } from "vitest"; @@ -118,3 +118,51 @@ test("list shows each patch and what it matches", () => { "termctx@^2.0.0\n does not apply to the installed termctx 1.2.0\n A.b: | undefined\n", ); }); + +test("nothing is written when a replacement is ambiguous in one of the files it matches", () => { + const pkg = join(root, "node_modules/overloads"); + mkdirSync(pkg, { recursive: true }); + writeFileSync( + join(pkg, "package.json"), + JSON.stringify({ name: "overloads", version: "1.0.0", types: "index.d.ts" }), + ); + writeFileSync(join(pkg, "index.d.ts"), "export declare function pick(a: string): string;\n"); + writeFileSync( + join(pkg, "more.d.ts"), + "export declare function pick(a: string): string;\nexport declare function pick(a: number): string;\n", + ); + const result = patch("overloads", "pick()", "string | undefined"); + expect(result.exitCode).toBe(1); + expect(result.stderr).toBe( + "scriptc: 'pick()' matches 2 declarations in more.d.ts; a replacement must name one " + + "(widen them, or replace the declaration file) (more.d.ts)\nnothing was written\n", + ); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8")).scriptc).toBeUndefined(); +}); + +test("the patch goes to the covering entry the compiler applies", () => { + const manifest = join(root, "package.json"); + const entries = { + "termctx@^1.0.0": { declarations: { "OutputContext.width": "| null" } }, + "termctx@1.x": { declarations: { "OutputContext.width": "| null" } }, + }; + writeFileSync(manifest, JSON.stringify({ name: "app", scriptc: { typePatches: entries } })); + // Both ranges cover termctx 1.2.0, and the later entry wins on the same + // selector: it takes the patch. + const result = patch("termctx", "OutputContext.width", "| undefined"); + expect(result.exitCode).toBe(0); + expect(result.stdout).toContain( + `wrote package.json scriptc.typePatches["termctx@1.x"].declarations["OutputContext.width"]\n`, + ); + expect(JSON.parse(readFileSync(manifest, "utf8")).scriptc.typePatches).toEqual({ + "termctx@^1.0.0": { declarations: { "OutputContext.width": "| null" } }, + "termctx@1.x": { declarations: { "OutputContext.width": "| undefined" } }, + }); + // Asked for the earlier range, the later entry would still win. + const earlier = patch("termctx", "OutputContext.width", "| undefined", { range: "^1.0.0" }); + expect(earlier.exitCode).toBe(1); + expect(earlier.stderr).toBe( + `scriptc: scriptc.typePatches["termctx@1.x"] also patches 'OutputContext.width' for termctx 1.2.0 ` + + `and takes precedence over scriptc.typePatches["termctx@^1.0.0"]\nnothing was written\n`, + ); +}); From cc08abcbe72c4082a81a195d2627eb258c49119d Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 17:42:53 -0500 Subject: [PATCH 030/128] Match the pending-flag fallback edge after the callback's receiver block An indirect callback call now gives the closure an undefined receiver when it reads one, so the fallback's edge into the pending-flag phi comes from the receiver block instead of callback.indirect. The flag is still false on the direct call and true on the fallback. --- packages/compiler/test/callback-pending-emission.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/compiler/test/callback-pending-emission.test.ts b/packages/compiler/test/callback-pending-emission.test.ts index 3b2ed3823..7e7996c83 100644 --- a/packages/compiler/test/callback-pending-emission.test.ts +++ b/packages/compiler/test/callback-pending-emission.test.ts @@ -40,9 +40,11 @@ try { const module = deserializeModule(readFileSync(output, "utf8")); expect(validateModule(module)).toEqual([]); const llvm = emitLlvmModule(module, {}); + // The fallback calls the closure's entry, after giving it an undefined + // receiver when it reads one, so its edge comes from receiver.done then. const guards = [ ...llvm.matchAll( - /(%t\d+) = phi i1 \[ false, %callback\.direct\d+ \], \[ true, %callback\.indirect\d+ \]/g, + /(%t\d+) = phi i1 \[ false, %callback\.direct\d+ \], \[ true, %(?:callback\.indirect|receiver\.done)\d+ \]/g, ), ]; // The quiet every and map callbacks; not the throwing one. From 5b40498c22c8ac7f4096e05e724a0b0bff177568 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 17:52:20 -0500 Subject: [PATCH 031/128] Keep asserted values in a map the lowerer owns compiler-weak-collections.test.ts refuses weak collections in compiler sources: the compiled compiler must not depend on which of its values can serve as weak keys. The lowerer owns the assertedValues cache for its pass, so an ordinary Map holds it. --- packages/compiler/src/frontend/lowering/lowerer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 491ca7c11..d665cc3ff 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -2251,7 +2251,7 @@ export class Lowerer { /** Values an erased type assertion produced, with the asserted type * (`x as T` keeps x's representation): a slot that no ordinary * conversion reaches converts them as asserted (assertedConversion). */ - readonly assertedValues = new WeakMap(); + readonly assertedValues = new Map(); /** Non-null while an IMPLICIT-ANY instance body lowers (npm-static JS; * see generic-functions.ts): bound param symbol → * the call site's checker type, consulted by typeOf for identifier From e1780421a12b0528384d829dd492fcf5e151603e Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 15:32:59 -0700 Subject: [PATCH 032/128] Declare the origin note, skip it in library builds, and keep the cast order on the lowerer --- packages/compiler/src/backend/llvm/expr-async.ts | 7 ++++++- .../src/frontend/lowering/expressions/narrowing.ts | 10 ++++------ packages/compiler/src/frontend/lowering/lowerer.ts | 3 +++ packages/runtime/src/scr_dyn.h | 5 +++++ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/compiler/src/backend/llvm/expr-async.ts b/packages/compiler/src/backend/llvm/expr-async.ts index 28a4cf57f..037179d8e 100644 --- a/packages/compiler/src/backend/llvm/expr-async.ts +++ b/packages/compiler/src/backend/llvm/expr-async.ts @@ -374,7 +374,12 @@ export function emitSerializationExpr( // falls back to exactly this route whenever the fast path declines. // A package-declared target: the cold path names the declaration in // the pending TypeError (scr_type_origin.c). - const origin = e.origin === undefined ? undefined : host.mod.declOrigins?.[e.origin]; + // Library archives and reactors link a fixed runtime set without the + // note unit: their checks keep the plain message. + const origin = + e.origin === undefined || host.mod.lib !== undefined + ? undefined + : host.mod.declOrigins?.[e.origin]; const note = origin === undefined ? undefined diff --git a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts index 5c1b276f7..7043367da 100644 --- a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts +++ b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts @@ -1640,14 +1640,12 @@ function holdsReference(lowerer: Lowerer, t: IrType, seen = new Set()): * becomes a live capsule of the value built from it * (scr_dyn_decl_adopt), so identity and mutation visibility hold on both * sides. Scalar targets are ordinary checked casts. */ -const boundaryCastOrder = new WeakMap>(); - /** The origin the projection recorded for a boundary cast (the package * declaration its type comes from, decl-projection.ts), found by the * cast's position among the file's boundary casts in source order. */ -function recordedBoundaryOrigin(cast: ts.Node): string | null { +function recordedBoundaryOrigin(lowerer: Lowerer, cast: ts.Node): string | null { const sf = ts.getSourceFileOfNode(cast); - let order = boundaryCastOrder.get(sf); + let order = lowerer.boundaryCastOrder.get(sf); if (order === undefined) { const found = new Map(); const visit = (node: ts.Node): void => { @@ -1666,7 +1664,7 @@ function recordedBoundaryOrigin(cast: ts.Node): string | null { }; visit(sf); order = found; - boundaryCastOrder.set(sf, order); + lowerer.boundaryCastOrder.set(sf, order); } const index = order.get(cast); return index === undefined ? null : declBoundaryOrigin(sf.fileName, index); @@ -1692,7 +1690,7 @@ function declBoundaryCast( // failing check names it and the patch admitting the value. let originText: string | null = null; try { - originText = recordedBoundaryOrigin(cast); + originText = recordedBoundaryOrigin(lowerer, cast); } catch { originText = null; } diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 5b5ae3471..45e0067fc 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -3778,6 +3778,9 @@ export class Lowerer { * in a package file: union extractions built for it carry the slot's * origin in their TypeError. */ coercionOriginNode: ts.Node | null = null; + /** Per user file, each declaration-boundary cast's index in source + * order (narrowing.ts recordedBoundaryOrigin). */ + readonly boundaryCastOrder = new Map>(); /** The union type of that value: only its own extraction is the slot's. */ coercionOriginUnion: string | null = null; /** While a record projection into a package-declared type builds, the diff --git a/packages/runtime/src/scr_dyn.h b/packages/runtime/src/scr_dyn.h index 1004a93c2..cce1f4b53 100644 --- a/packages/runtime/src/scr_dyn.h +++ b/packages/runtime/src/scr_dyn.h @@ -391,6 +391,11 @@ const ScrDynTypedRecordOps *scr_dyn_typed_ref_live_record(const ScrDyn *d); * holds. Both borrowed; a node that is not plain data throws the path * TypeError before anything changes. */ void scr_dyn_decl_adopt(ScrDyn *source, ScrDyn *capsule); +/* A checked conversion into a type an npm package declares failed + * (scr_type_origin.c, linked by programs with such checks): the pending + * TypeError's message gains the declaration and the type patch that would + * admit the value. `origin` is the compiler's origin string. */ +void scr_type_origin_note(const char *origin); /* Prototype members of a compiled class seen as `unknown`, emitted per * class by the compiler: the string names of methods, getters and setters From 7675b7d6538a86e4299439d54c57385aeb5b5471 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 14:35:16 -0700 Subject: [PATCH 033/128] Add scriptc types patch and scriptc types list `scriptc types patch [--range] [--dry-run]` finds the installed package from the working directory, shows every declaration the selector matches (declaration files, JSDoc, @types package) with its type before and after, and adds the patch to the nearest package.json: into an entry whose range covers the installed version, or under ^. Nothing is written when the selector matches nothing. `scriptc types list` shows each patch and what it matches. Both CLI hosts run the same implementation with their own parser. The TypeError note for a wrong declaration now names the command. Co-Authored-By: Claude Opus 5.5 --- docs/content/docs/cli.mdx | 27 +- docs/content/docs/dependencies.mdx | 13 +- packages/cli/src/main.ts | 2 + packages/compiler/src/cli/command.ts | 34 ++ packages/compiler/src/cli/host.ts | 6 + packages/compiler/src/cli/usage.ts | 9 + .../src/frontend/lowering/decl-origin.ts | 4 +- .../src/frontend/type-patches/command.ts | 382 ++++++++++++++++++ packages/compiler/src/index.ts | 15 + packages/compiler/src/native/cli.ts | 14 + .../test/type-patches-command.test.ts | 120 ++++++ packages/runtime/src/scr_type_origin.c | 20 +- tests/harness/type-patches.test.ts | 4 +- 13 files changed, 632 insertions(+), 18 deletions(-) create mode 100644 packages/compiler/src/frontend/type-patches/command.ts create mode 100644 packages/compiler/test/type-patches-command.test.ts diff --git a/docs/content/docs/cli.mdx b/docs/content/docs/cli.mdx index 4c1b7e7c6..7166d3f10 100644 --- a/docs/content/docs/cli.mdx +++ b/docs/content/docs/cli.mdx @@ -2,7 +2,7 @@ title: "CLI Reference" --- -The `scriptc` command has five subcommands: `build`, `run`, `coverage`, `cache warm`, and `merge-profiles`. `scriptc --help` prints this summary and the options below, and `scriptc --version` prints the installed version. +The `scriptc` command has six subcommands: `build`, `run`, `coverage`, `types`, `cache warm`, and `merge-profiles`. `scriptc --help` prints this summary and the options below, and `scriptc --version` prints the installed version. ```console $ scriptc --help @@ -21,6 +21,13 @@ Usage: exporting the profile symbols; a profile with a sidecar section also gets the contract sidecar JSON beside the archive + scriptc types patch [--range ] [--dry-run] + fix a wrong declaration of an installed + package: shows what the selector + matches and adds the type patch to + package.json ("| undefined" widens) + scriptc types list the project's type patches and what + they match scriptc cache warm [runtime|tls…] verify and load precompiled runtime families for the current compiler/SDK/target scriptc merge-profiles -o [--sparse] @@ -88,6 +95,24 @@ $ scriptc run fib.ts Analyzes the program without building it and reports what compiles and what blocks the rest. See [Coverage Reports](/docs/coverage). +## scriptc types + +Writes and lists [type patches](/docs/dependencies#fix-a-packages-types), the project's fixes for wrong declarations of npm packages. + +
      +
      scriptc types patch <package> <selector> <type>
      +
      Finds the package installed for the working directory, prints every declaration the selector matches in its declaration files, its JSDoc and its @types/ package with the type before and after, and adds the patch to the nearest package.json. The patch joins an entry whose range covers the installed version, or gets the range ^<installed version>. Nothing is written when the selector matches nothing. --range <range> chooses the range, and --dry-run only prints.
      +
      scriptc types list
      +
      Prints each type patch in the nearest package.json, whether it applies to the installed version, and what it matches.
      +
      + +```console +$ scriptc types list +commander@^15.0.0 + HelpContext.helpWidth: | undefined + node_modules/commander/lib/command.js:2481 number -> number | undefined +``` + ## scriptc cache warm Verifies and loads the installed precompiled runtime objects and vendored libraries, and prints the cache directory. Pass `runtime`, `tls`, or both to select which to warm. Ordinary builds don't need this step. With `--sanitize`, it builds the instrumented runtime objects using a C toolchain. diff --git a/docs/content/docs/dependencies.mdx b/docs/content/docs/dependencies.mdx index 58b0a0a1d..2288aeb83 100644 --- a/docs/content/docs/dependencies.mdx +++ b/docs/content/docs/dependencies.mdx @@ -150,10 +150,19 @@ When the type comes from a package's declarations, the error names the declarati ```text Uncaught TypeError: expected string at $, got undefined profilekit@3.1.0 declares Profile.email as string (index.d.ts:7) - if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "profilekit@^3.1.0": { "declarations": { "Profile.email": "| undefined" } } } } + if that declaration is wrong, patch it: scriptc types patch profilekit "Profile.email" "| undefined" ``` -Fix such a declaration in your project with a type patch in `package.json`: +Fix such a declaration in your project with a type patch. `scriptc types patch` shows what a declaration path matches in the installed package and adds the patch to your `package.json`: + +```console +$ scriptc types patch commander "HelpContext.helpWidth" "| undefined" +commander 15.0.0 (node_modules/commander) + lib/command.js:2481 number -> number | undefined +wrote package.json scriptc.typePatches["commander@^15.0.0"].declarations["HelpContext.helpWidth"] +``` + +The patch it writes looks like this: ```json:package.json { diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts index 8203b959e..5deb4ca29 100644 --- a/packages/cli/src/main.ts +++ b/packages/cli/src/main.ts @@ -10,6 +10,7 @@ import { mergeProfiles, resolveProvenanceSources, sourceTargetPlatform, + typePatches, warmNativeCaches, } from "@scriptc/compiler"; import { runCli } from "./command.js"; @@ -39,6 +40,7 @@ process.exitCode = await runCli(process.argv.slice(2), { sourceTargetPlatform, warmNativeCaches, mergeProfiles, + typePatches, run: (binary) => new Promise((resolveExit) => { let child; diff --git a/packages/compiler/src/cli/command.ts b/packages/compiler/src/cli/command.ts index 8b2e4c480..1064b18ad 100644 --- a/packages/compiler/src/cli/command.ts +++ b/packages/compiler/src/cli/command.ts @@ -1,3 +1,4 @@ +import type { TypePatchCommandRequest } from "../frontend/type-patches/command.js"; import { rmSync, statSync } from "node:fs"; import { dirname, join, resolve } from "node:path"; import { parseArgs } from "node:util"; @@ -205,6 +206,39 @@ async function main(args: string[], host: CliHost): Promise { process.stdout.write(`${outputPath}\n`); return 0; } + if (command === "types") { + const sub = positionals[1]; + const rest = positionals.slice(2); + let request: TypePatchCommandRequest; + if (sub === "patch" && rest.length === 3) { + request = { + action: "patch", + cwd: process.cwd(), + pkg: rest[0]!, + selector: rest[1]!, + type: rest[2]!, + range: values.range ?? null, + dryRun: values["dry-run"], + }; + } else if ( + sub === "list" && + rest.length === 0 && + values.range === undefined && + !values["dry-run"] + ) { + request = { action: "list", cwd: process.cwd() }; + } else { + fail( + `scriptc types takes "patch " (with --range or --dry-run) or "list"\n\n${USAGE}`, + ); + } + const result = await host.typePatches(request); + process.stdout.write(result.stdout); + process.stderr.write(result.stderr); + return result.exitCode; + } + if (values.range !== undefined || values["dry-run"]) + fail(`--range and --dry-run are scriptc types patch options\n\n${USAGE}`); if (values.sparse) fail(`--sparse is a merge-profiles option\n\n${USAGE}`); if (command !== "build" && command !== "run" && command !== "coverage") { fail(`unknown command "${command}"\n\n${USAGE}`); diff --git a/packages/compiler/src/cli/host.ts b/packages/compiler/src/cli/host.ts index 7a927ee39..eafe1882b 100644 --- a/packages/compiler/src/cli/host.ts +++ b/packages/compiler/src/cli/host.ts @@ -1,3 +1,7 @@ +import type { + TypePatchCommandRequest, + TypePatchCommandResult, +} from "../frontend/type-patches/command.js"; import type { AnalyzeOptions, AnalyzeResult, @@ -30,5 +34,7 @@ export interface CliHost { /** Merges raw or indexed profiles into one indexed profile; a sparse one * leaves out functions that never ran. */ mergeProfiles: (outputPath: string, inputPaths: string[], sparse: boolean) => Promise; + /** `scriptc types patch|list` (frontend/type-patches/command.ts). */ + typePatches: (request: TypePatchCommandRequest) => Promise; run: (binary: string) => Promise; } diff --git a/packages/compiler/src/cli/usage.ts b/packages/compiler/src/cli/usage.ts index f8b6a4869..2d4b101fd 100644 --- a/packages/compiler/src/cli/usage.ts +++ b/packages/compiler/src/cli/usage.ts @@ -13,6 +13,13 @@ Usage: exporting the profile symbols; a profile with a sidecar section also gets the contract sidecar JSON beside the archive + scriptc types patch [--range ] [--dry-run] + fix a wrong declaration of an installed + package: shows what the selector + matches and adds the type patch to + package.json ("| undefined" widens) + scriptc types list the project's type patches and what + they match scriptc cache warm [runtime|tls…] verify and load precompiled runtime families for the current compiler/SDK/target scriptc merge-profiles -o [--sparse] @@ -157,6 +164,8 @@ export const CLI_OPTIONS = { "profile-generate": { type: "string" }, "profile-use": { type: "string" }, sparse: { type: "boolean", default: false }, + range: { type: "string" }, + "dry-run": { type: "boolean", default: false }, "keep-llvm": { type: "boolean", default: true }, "emit-ir": { type: "boolean", default: false }, sanitize: { type: "boolean", default: false }, diff --git a/packages/compiler/src/frontend/lowering/decl-origin.ts b/packages/compiler/src/frontend/lowering/decl-origin.ts index 60510ecec..a44c54eca 100644 --- a/packages/compiler/src/frontend/lowering/decl-origin.ts +++ b/packages/compiler/src/frontend/lowering/decl-origin.ts @@ -348,12 +348,12 @@ export function declarationSelector(decl: ts.Node): string | null { /** The note a union extraction's TypeError carries for a failing `arm` * (the same text the runtime renders for checked conversions). */ export function renderOriginNote(origin: string, arm: string): string { - const [pkg = "", version = "", range = "", selector = "", where = "", declared = ""] = + const [pkg = "", version = "", , selector = "", where = "", declared = ""] = origin.split(ORIGIN_SEPARATOR); return ( `\n ${pkg}${version === "" ? "" : `@${version}`} declares ${selector}` + `${declared === "" ? "" : ` as ${declared}`} (${where})` + - `\n if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "${pkg}@${range}": { "declarations": { "${selector}": "| ${arm}" } } } }` + `\n if that declaration is wrong, patch it: scriptc types patch ${pkg} "${selector}" "| ${arm}"` ); } diff --git a/packages/compiler/src/frontend/type-patches/command.ts b/packages/compiler/src/frontend/type-patches/command.ts new file mode 100644 index 000000000..d7fb817ae --- /dev/null +++ b/packages/compiler/src/frontend/type-patches/command.ts @@ -0,0 +1,382 @@ +/* `scriptc types patch` and `scriptc types list`: write and inspect the + * project's type patches (package.json scriptc.typePatches). + * + * scriptc types patch [--range ] [--dry-run] + * scriptc types list + * + * `patch` finds the installed package from the working directory, shows + * every declaration the selector matches (in the package's declaration + * files, its JSDoc and its @types package) with its type before and after, + * and adds the patch to the nearest package.json under a range covering + * the installed version (`^` unless --range says otherwise, or an + * existing entry's range when one covers it). Nothing is written when the + * selector matches nothing. `list` shows each configured patch, the + * installed copies it applies to and what it matches. */ + +import { existsSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; +import { dirname, join, relative } from "node:path"; +import { parseProjectConfig, type TypePatchEntry } from "../../project-config.js"; +import type { TypePatchParse } from "./layer.js"; +import { patchFile, type PatchMatch } from "./locate.js"; +import { parseSelector, parseTypeText, type Selector, type TypePatchOp } from "./selector.js"; +import { isValidRange, satisfies } from "./semver.js"; + +export type TypePatchCommandRequest = + | { + action: "patch"; + cwd: string; + pkg: string; + selector: string; + type: string; + range: string | null; + dryRun: boolean; + } + | { action: "list"; cwd: string }; + +export interface TypePatchCommandResult { + stdout: string; + stderr: string; + exitCode: number; +} + +interface PackageCopy { + root: string; + version: string | null; + /** True for an `@types/` twin. */ + twin: boolean; +} + +const PATCHABLE = /\.(?:[cm]?js|d\.[cm]?ts|[cm]?ts)$/; + +function nearestManifest(cwd: string): string | null { + for (let dir = cwd; ;) { + const manifest = join(dir, "package.json"); + if (existsSync(manifest)) return manifest; + const parent = dirname(dir); + if (parent === dir) return null; + dir = parent; + } +} + +function versionOf(root: string): string | null { + try { + const parsed = JSON.parse(readFileSync(join(root, "package.json"), "utf8")) as { + version?: unknown; + }; + return typeof parsed.version === "string" ? parsed.version : null; + } catch { + return null; + } +} + +function typesName(pkg: string): string { + return pkg.startsWith("@") ? `@types/${pkg.slice(1).replace("/", "__")}` : `@types/${pkg}`; +} + +/** The copy of `pkg` (and of its @types twin) Node resolution finds from + * `cwd`. A twin is versioned by the runtime package beside it. */ +function installedCopies(cwd: string, pkg: string): PackageCopy[] { + const out: PackageCopy[] = []; + let runtimeVersion: string | null = null; + let twinFound = false; + for (let dir = cwd; ;) { + const modules = join(dir, "node_modules"); + if (runtimeVersion === null && existsSync(join(modules, pkg, "package.json"))) { + const root = join(modules, pkg); + runtimeVersion = versionOf(root); + out.push({ root, version: runtimeVersion, twin: false }); + } + if (!twinFound && existsSync(join(modules, typesName(pkg), "package.json"))) { + twinFound = true; + out.push({ root: join(modules, typesName(pkg)), version: null, twin: true }); + } + const parent = dirname(dir); + if (parent === dir) break; + dir = parent; + } + for (const copy of out) if (copy.twin) copy.version = runtimeVersion ?? versionOf(copy.root); + return out; +} + +/** The files of a package copy a patch can apply to (nested packages + * excluded), package-relative. */ +function packageFiles(root: string): string[] { + const out: string[] = []; + const walk = (dir: string): void => { + let names: string[]; + try { + names = readdirSync(dir).sort(); + } catch { + return; + } + for (const name of names) { + if (name === "node_modules" || name.startsWith(".")) continue; + const path = join(dir, name); + let isDir = false; + try { + isDir = statSync(path).isDirectory(); + } catch { + continue; + } + if (isDir) walk(path); + else if (PATCHABLE.test(name)) out.push(relative(root, path).split("\\").join("/")); + } + }; + walk(root); + return out; +} + +interface FileMatch extends PatchMatch { + file: string; +} + +/** Every declaration a selector matches in a copy, and the problems where + * it cannot apply. */ +function matchCopy( + copy: PackageCopy, + selector: Selector, + op: TypePatchOp, + parse: TypePatchParse, +): { matches: FileMatch[]; problems: string[] } { + const words = + selector.root === "export=" + ? ["exports", "export"] + : selector.root === "default" + ? ["default"] + : [selector.root]; + const matches: FileMatch[] = []; + const problems: string[] = []; + for (const rel of packageFiles(copy.root)) { + if (selector.file !== null && selector.file !== rel) continue; + const path = join(copy.root, rel); + let text: string; + try { + text = readFileSync(path, "utf8"); + } catch { + continue; + } + if (!words.some((w) => text.includes(w))) continue; + let result; + try { + result = patchFile(rel, text, parse(path, text, /\.[cm]?ts$/.test(rel) ? "ts" : "js"), [ + { id: 0, selector, op }, + ]); + } catch { + continue; + } + for (const m of result.matches) matches.push({ ...m, file: rel }); + for (const p of result.problems) problems.push(`${p.message} (${rel})`); + } + return { matches, problems }; +} + +function shownCopy(copy: PackageCopy, base: string, pkg: string): string { + const name = copy.twin ? typesName(pkg) : pkg; + return `${name} ${copy.version ?? "(no version)"} (${relative(base, copy.root).split("\\").join("/")})`; +} + +function describe(m: FileMatch): string { + if (m.redundant) return ` ${m.file}:${m.line} ${m.before} (already declared so)`; + return ` ${m.file}:${m.line} ${m.before} -> ${m.after}`; +} + +/** The indentation a JSON text uses (two spaces when it cannot tell). */ +function indentOf(text: string): string { + const m = /^[{[]\s*\n([ \t]+)\S/.exec(text); + return m === null ? " " : m[1]!; +} + +function isObject(value: unknown): value is Record { + return value !== null && typeof value === "object" && !Array.isArray(value); +} + +/** JSON text of `value` with `path` set to the string `leaf` (objects + * created along the way, the leaf replaced if present), keeping key order + * and indenting like JSON.stringify(value, null, indent). The parsed value + * itself is only read. */ +function renderJson( + value: unknown, + indent: string, + at: string, + path: readonly string[], + leaf: string, +): string { + const inner = at + indent; + if (path.length > 0 && !isObject(value)) return renderJson({}, indent, at, path, leaf); + if (isObject(value)) { + const keys = Object.keys(value); + const parts: string[] = []; + const head = path[0]; + for (const k of keys) { + const child = + head === k + ? path.length === 1 + ? JSON.stringify(leaf) + : renderJson(value[k], indent, inner, path.slice(1), leaf) + : renderJson(value[k], indent, inner, [], leaf); + parts.push(`${inner}${JSON.stringify(k)}: ${child}`); + } + if (head !== undefined && !keys.includes(head)) { + const child = + path.length === 1 + ? JSON.stringify(leaf) + : renderJson({}, indent, inner, path.slice(1), leaf); + parts.push(`${inner}${JSON.stringify(head)}: ${child}`); + } + return parts.length === 0 ? "{}" : `{\n${parts.join(",\n")}\n${at}}`; + } + if (Array.isArray(value)) { + const items: unknown[] = value; + if (items.length === 0) return "[]"; + return `[\n${items.map((item) => `${inner}${renderJson(item, indent, inner, [], leaf)}`).join(",\n")}\n${at}]`; + } + return JSON.stringify(value) ?? "null"; +} + +function patchCommand( + req: Extract, + parse: TypePatchParse, +): TypePatchCommandResult { + const fail = (message: string): TypePatchCommandResult => ({ + stdout: "", + stderr: `scriptc: ${message}\n`, + exitCode: 1, + }); + const selector = parseSelector(req.selector); + if ("error" in selector) return fail(`'${req.selector}' is not a selector: it ${selector.error}`); + const op = parseTypeText(req.type); + if ("error" in op) return fail(`the type '${req.type}' ${op.error}`); + if (req.range !== null && !isValidRange(req.range)) + return fail(`'${req.range}' is not a semver range`); + const manifest = nearestManifest(req.cwd); + if (manifest === null) return fail("no package.json found from the working directory"); + const base = dirname(manifest); + const copies = installedCopies(req.cwd, req.pkg); + const runtime = copies.find((c) => !c.twin) ?? copies[0]; + if (runtime === undefined) return fail(`${req.pkg} is not installed here`); + const version = runtime.version; + const lines: string[] = []; + let matched = 0; + let changed = 0; + const problems: string[] = []; + for (const copy of copies) { + const found = matchCopy(copy, selector, op, parse); + problems.push(...found.problems); + if (found.matches.length === 0) continue; + lines.push(shownCopy(copy, base, req.pkg)); + for (const m of found.matches) { + lines.push(describe(m)); + matched++; + if (!m.redundant) changed++; + } + } + if (matched === 0) { + const why = + problems.length > 0 ? problems.join("\n") : `'${req.selector}' matches no declaration`; + return fail(`${why}\nnothing was written`); + } + if (changed === 0) { + lines.push("the declarations already say this; nothing was written"); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; + } + const text = readFileSync(manifest, "utf8"); + let parsed: unknown; + try { + parsed = JSON.parse(text); + } catch { + return fail(`${relative(req.cwd, manifest) || "package.json"} is not valid JSON`); + } + // An existing entry whose range covers the installed version takes the + // patch; otherwise a new one under the range asked for. + const existing = parseProjectConfig(manifest, text).typePatches.find( + (e: TypePatchEntry) => + e.pkg === req.pkg && + (req.range === null + ? version !== null && satisfies(version, e.range) + : e.range === req.range), + ); + const key = + existing?.key ?? `${req.pkg}@${req.range ?? (version === null ? "*" : `^${version}`)}`; + const where = `scriptc.typePatches["${key}"].declarations["${req.selector}"]`; + if (req.dryRun) { + lines.push(`would write ${relative(req.cwd, manifest) || "package.json"} ${where}`); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; + } + const trailing = text.endsWith("\n") ? "\n" : ""; + writeFileSync( + manifest, + renderJson( + parsed, + indentOf(text), + "", + ["scriptc", "typePatches", key, "declarations", req.selector], + req.type, + ) + trailing, + ); + lines.push(`wrote ${relative(req.cwd, manifest) || "package.json"} ${where}`); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; +} + +function listCommand(cwd: string, parse: TypePatchParse): TypePatchCommandResult { + const manifest = nearestManifest(cwd); + if (manifest === null) + return { + stdout: "", + stderr: "scriptc: no package.json found from the working directory\n", + exitCode: 1, + }; + const base = dirname(manifest); + const config = parseProjectConfig(manifest, readFileSync(manifest, "utf8")); + const lines: string[] = []; + for (const d of config.diagnostics) + if (d.message.includes("typePatches")) lines.push(`warning ${d.code}: ${d.message}`); + if (config.typePatches.length === 0) { + lines.push("no type patches"); + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; + } + for (const entry of config.typePatches) { + lines.push(entry.key); + const copies = installedCopies(cwd, entry.pkg); + const covered = copies.filter((c) => c.version !== null && satisfies(c.version, entry.range)); + if (copies.length === 0) lines.push(` not installed`); + else if (covered.length === 0) + lines.push( + ` does not apply to the installed ${entry.pkg} ${copies[0]!.version ?? "(no version)"}`, + ); + for (const decl of entry.declarations) { + const selector = parseSelector(decl.selector) as Selector; + const op = parseTypeText(decl.type) as TypePatchOp; + const found: FileMatch[] = []; + for (const copy of covered) { + for (const m of matchCopy(copy, selector, op, parse).matches) + found.push({ + ...m, + file: `${relative(base, copy.root).split("\\").join("/")}/${m.file}`, + }); + } + const status = + covered.length === 0 + ? "" + : found.length === 0 + ? " (matches nothing)" + : found.every((m) => m.redundant) + ? " (already declared so)" + : ""; + lines.push(` ${decl.selector}: ${decl.type}${status}`); + for (const m of found) + if (!m.redundant) lines.push(` ${m.file}:${m.line} ${m.before} -> ${m.after}`); + } + for (const [target, local] of entry.files) + lines.push(` file ${target}: ${relative(base, local).split("\\").join("/")}`); + if (entry.types !== null) + lines.push(` types: ${relative(base, entry.types).split("\\").join("/")}`); + } + return { stdout: `${lines.join("\n")}\n`, stderr: "", exitCode: 0 }; +} + +export function runTypePatchCommand( + req: TypePatchCommandRequest, + parse: TypePatchParse, +): TypePatchCommandResult { + return req.action === "patch" ? patchCommand(req, parse) : listCommand(req.cwd, parse); +} diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index e2d14ebde..92b39e78b 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -1,3 +1,9 @@ +import { nodeFrontendServices } from "./frontend/services-node.js"; +import { + runTypePatchCommand, + type TypePatchCommandRequest, + type TypePatchCommandResult, +} from "./frontend/type-patches/command.js"; import { optimizationField, type NativeOptimization } from "./backend/optimization.js"; import { targetCpuField, targetCpuTargetRefusal } from "./backend/target-cpu.js"; import { compilationTiming, type CompilationTiming, type TimingClock } from "./timing.js"; @@ -197,6 +203,15 @@ export { } from "./backend/external-c.js"; export { warmNativeCaches } from "./backend/warm-cache.js"; export { mergeNativeProfiles as mergeProfiles } from "./backend/native-codegen.js"; + +/** `scriptc types patch|list` with the Node frontend's parser. */ +export async function typePatches( + request: TypePatchCommandRequest, +): Promise { + return runTypePatchCommand(request, (path, text, kind) => + nodeFrontendServices().parse(path, text, kind), + ); +} export { collectGarbageUnderHeapPressure } from "./heap-collection.js"; export { ANDROID_MIN_API, diff --git a/packages/compiler/src/native/cli.ts b/packages/compiler/src/native/cli.ts index b3de05846..60f3d28da 100644 --- a/packages/compiler/src/native/cli.ts +++ b/packages/compiler/src/native/cli.ts @@ -12,6 +12,7 @@ import { mergeNativeProfiles } from "../backend/native-tools.js"; import { setDeclarationRoot } from "../frontend/dts-paths.js"; import { setFrontendDisposedHook } from "../frontend/dispose-hook.js"; import { FrontendServices } from "../frontend/services.js"; +import { runTypePatchCommand } from "../frontend/type-patches/command.js"; import { createNativeTs7Api } from "../frontend/ts7/native-api.js"; import { resolveProvenanceSourcesWithParser } from "../frontend/provenance-core.js"; import { setCompilerReleaseVersion } from "../library/sidecar.js"; @@ -169,6 +170,19 @@ async function main(): Promise { } return { cacheRoot: cache.root, profiles }; }, + typePatches: async (request) => { + const toolchain = getCompiler().toolchain; + const services = new FrontendServices((options) => + createNativeTs7Api({ ...options, executable: toolchain.ts7Executable }), + ); + try { + return runTypePatchCommand(request, (path, source, kind) => + services.parse(path, source, kind), + ); + } finally { + services.close(); + } + }, mergeProfiles: async (outputPath, inputPaths, sparse) => { const toolchain = getCompiler().toolchain; mergeNativeProfiles({ diff --git a/packages/compiler/test/type-patches-command.test.ts b/packages/compiler/test/type-patches-command.test.ts new file mode 100644 index 000000000..7fc8a0d6c --- /dev/null +++ b/packages/compiler/test/type-patches-command.test.ts @@ -0,0 +1,120 @@ +/* `scriptc types patch` and `scriptc types list` + * (frontend/type-patches/command.ts) on a copy of the type patch fixture: + * matches are shown before anything is written, the patch lands in the + * nearest package.json under a range covering the installed version (or + * an existing entry that covers it), and nothing is written when the + * selector matches nothing. */ +import { cpSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { afterEach, beforeEach, expect, test } from "vitest"; +import { nodeFrontendServices } from "../src/frontend/services-node.js"; +import { runTypePatchCommand } from "../src/frontend/type-patches/command.js"; + +const fixture = join(import.meta.dirname, "../../../tests/fixtures/type-patches"); +const parse = (path: string, text: string, kind: "ts" | "js") => + nodeFrontendServices().parse(path, text, kind); +let root: string; + +beforeEach(() => { + root = mkdtempSync(join(tmpdir(), "scriptc-types-command-")); + cpSync(fixture, root, { recursive: true }); + writeFileSync( + join(root, "package.json"), + JSON.stringify({ name: "app", private: true, type: "module" }, null, 2) + "\n", + ); +}); +afterEach(() => rmSync(root, { recursive: true, force: true })); + +const patch = (pkg: string, selector: string, type: string, extra: object = {}) => + runTypePatchCommand( + { action: "patch", cwd: root, pkg, selector, type, range: null, dryRun: false, ...extra }, + parse, + ); + +test("patch shows the matches and writes the entry", () => { + const result = patch("termctx", "OutputContext.width", "| undefined"); + expect(result).toEqual({ + stdout: + "termctx 1.2.0 (node_modules/termctx)\n" + + " index.js:24 number -> number | undefined\n" + + `wrote package.json scriptc.typePatches["termctx@^1.2.0"].declarations["OutputContext.width"]\n`, + stderr: "", + exitCode: 0, + }); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8"))).toEqual({ + name: "app", + private: true, + type: "module", + scriptc: { + typePatches: { + "termctx@^1.2.0": { declarations: { "OutputContext.width": "| undefined" } }, + }, + }, + }); + // A second patch joins the entry whose range covers the installed copy. + expect(patch("termctx", "Terminal.columns()", "| undefined").exitCode).toBe(0); + const text = readFileSync(join(root, "package.json"), "utf8"); + expect(text.endsWith("}\n")).toBe(true); + expect(JSON.parse(text).scriptc.typePatches).toEqual({ + "termctx@^1.2.0": { + declarations: { "OutputContext.width": "| undefined", "Terminal.columns()": "| undefined" }, + }, + }); +}); + +test("--range and --dry-run", () => { + const dry = patch("ms", "index.js:parse()", "| undefined", { dryRun: true, range: "2.1.x" }); + expect(dry.stdout).toBe( + "ms 2.1.3 (node_modules/ms)\n" + + " index.js:44 Number -> Number | undefined\n" + + `would write package.json scriptc.typePatches["ms@2.1.x"].declarations["index.js:parse()"]\n`, + ); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8")).scriptc).toBeUndefined(); +}); + +test("nothing is written for a selector that matches nothing or is already so", () => { + const missing = patch("termctx", "OutputContext.height", "| undefined"); + expect(missing.exitCode).toBe(1); + expect(missing.stderr).toBe( + "scriptc: 'OutputContext.height' matches no declaration\nnothing was written\n", + ); + const redundant = patch("ms", "index.js:fmtShort(ms)", "| Number"); + expect(redundant).toMatchObject({ exitCode: 0 }); + expect(redundant.stdout).toContain("the declarations already say this; nothing was written\n"); + expect(patch("absent-package", "A.b", "| undefined").stderr).toBe( + "scriptc: absent-package is not installed here\n", + ); + expect(patch("termctx", "1bad", "| undefined").stderr).toContain("is not a selector"); + expect(JSON.parse(readFileSync(join(root, "package.json"), "utf8")).scriptc).toBeUndefined(); +}); + +test("list shows each patch and what it matches", () => { + writeFileSync(join(root, "package.json"), readFileSync(join(fixture, "package.json"))); + const listed = runTypePatchCommand({ action: "list", cwd: root }, parse); + expect(listed.stdout).toBe( + [ + "termctx@^1.0.0", + " OutputContext.width: | undefined", + " node_modules/termctx/index.js:24 number -> number | undefined", + " Terminal.columns(): | undefined", + " node_modules/termctx/index.js:14 number -> number | undefined", + "ms@^2.1.0", + " index.js:parse(): | undefined", + " node_modules/ms/index.js:44 Number -> Number | undefined", + " export=(): | undefined", + " node_modules/ms/index.js:22 String|Number -> String|Number | undefined", + "", + ].join("\n"), + ); + writeFileSync(join(root, "stale.json"), ""); + writeFileSync( + join(root, "package.json"), + JSON.stringify({ + scriptc: { typePatches: { "termctx@^2.0.0": { declarations: { "A.b": "| undefined" } } } }, + }), + ); + expect(runTypePatchCommand({ action: "list", cwd: root }, parse).stdout).toBe( + "termctx@^2.0.0\n does not apply to the installed termctx 1.2.0\n A.b: | undefined\n", + ); +}); diff --git a/packages/runtime/src/scr_type_origin.c b/packages/runtime/src/scr_type_origin.c index c52a09164..cf9c6fc49 100644 --- a/packages/runtime/src/scr_type_origin.c +++ b/packages/runtime/src/scr_type_origin.c @@ -9,12 +9,13 @@ * site's cold exception path, which calls scr_type_origin_note: the * pending TypeError's message gains two lines naming the declaration and * the type patch (package.json scriptc.typePatches) that would make the - * declaration admit the value. The hot path is unchanged, and so is every + * declaration admit the value, as the `scriptc types patch` command that + * writes it. The hot path is unchanged, and so is every * other error. * * The origin is one string of fields separated by \x1f: package, version, - * suggested range, the selector of the declared slot, where it is - * declared, and the declared type. */ + * suggested range (which the command chooses itself), the selector of the + * declared slot, where it is declared, and the declared type. */ #include "scr_runtime.h" #include @@ -92,10 +93,9 @@ void scr_type_origin_note(const char *origin) { } } } - const char *pkg, *version, *range, *selector, *where, *declared; + const char *pkg, *version, *selector, *where, *declared; size_t pkg_len = scr_origin_field(origin, 0, &pkg); size_t version_len = scr_origin_field(origin, 1, &version); - size_t range_len = scr_origin_field(origin, 2, &range); size_t selector_len = scr_origin_field(origin, 3, &selector); size_t where_len = scr_origin_field(origin, 4, &where); size_t declared_len = scr_origin_field(origin, 5, &declared); @@ -116,11 +116,9 @@ void scr_type_origin_note(const char *origin) { } scr_origin_puts(&b, " ("); scr_origin_put(&b, where, where_len); - scr_origin_puts(&b, ")\n if that declaration is wrong, patch it in package.json: \"scriptc\": { \"typePatches\": { \""); + scr_origin_puts(&b, ")\n if that declaration is wrong, patch it: scriptc types patch "); scr_origin_put(&b, pkg, pkg_len); - scr_origin_puts(&b, "@"); - scr_origin_put(&b, range, range_len); - scr_origin_puts(&b, "\": { \"declarations\": { \""); + scr_origin_puts(&b, " \""); scr_origin_put(&b, selector, selector_len); /* $[3].email extends the selector as [].email: elements of an array * share one declared type. */ @@ -132,7 +130,7 @@ void scr_type_origin_note(const char *origin) { scr_origin_put(&b, path + i, 1); } } - scr_origin_puts(&b, "\": \"| "); + scr_origin_puts(&b, "\" \"| "); if (got != NULL) { const char *arm = scr_origin_arm(got, got_len); if (arm != NULL) scr_origin_puts(&b, arm); @@ -140,7 +138,7 @@ void scr_type_origin_note(const char *origin) { } else { scr_origin_puts(&b, "undefined"); } - scr_origin_puts(&b, "\" } } } }"); + scr_origin_puts(&b, "\""); ScrStr *next = scr_str_new(b.data, b.len); free(b.data); diff --git a/tests/harness/type-patches.test.ts b/tests/harness/type-patches.test.ts index cfd8b4dd6..7b8aaf7f5 100644 --- a/tests/harness/type-patches.test.ts +++ b/tests/harness/type-patches.test.ts @@ -120,7 +120,7 @@ describe("type patches", () => { expect(native.stderr).toBe( "Uncaught TypeError: expected string at $, got undefined\n" + " profilekit@3.1.0 declares Profile.email as string (index.d.ts:7)\n" + - ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "profilekit@^3.1.0": { "declarations": { "Profile.email": "| undefined" } } } }\n`, + ` if that declaration is wrong, patch it: scriptc types patch profilekit "Profile.email" "| undefined"\n`, ); } } finally { @@ -178,7 +178,7 @@ describe("type patches", () => { const result = await build(join(fixture, "unpatched/main.ts"), "unpatched", ["termctx"]); const native = await run(result.binaryPath, []); const patch = (selector: string) => - ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "termctx@^1.2.0": { "declarations": { "${selector}": "| undefined" } } } }`; + ` if that declaration is wrong, patch it: scriptc types patch termctx "${selector}" "| undefined"`; expect(native.stdout).toBe( [ "expected number at $, got undefined", From 20a4a92aa604ee1a6159cdd78d8bd38c1c9d3146 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 16:05:55 -0700 Subject: [PATCH 034/128] Reserve the rc word's high half for layout ids The single object model keeps an object's layout id in the high half of its rc word, beside the program-lifetime and frozen bits. Class ids already live there; this names the encoding and moves the runtime's tests that may see an object with an id onto the count: - scr_rc_layout_id reads the 30-bit layout id; scr_rc_class_id is now that id. - scr_rc_immortal tests the count, and scr_rc_frozen and Object.freeze of a record use it instead of comparing the whole word with SIZE_MAX. - Publication writes only the count of any object with a layout id, so an immortal object keeps its id, as a class instance keeps its class id. - classIdRcWord refuses a class id outside the layout id range. No object other than a class instance carries an id yet, so behavior and emitted code are unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/compiler/src/backend/llvm/classes.ts | 13 +++- packages/runtime/src/scr_json.c | 2 +- packages/runtime/src/scr_publish.c | 6 +- packages/runtime/src/scr_rc.h | 68 ++++++++++++++----- packages/runtime/src/scr_rc.test.c | 47 +++++++++++++ packages/runtime/src/scr_rc.test.ts | 36 ++++++++++ 6 files changed, 150 insertions(+), 22 deletions(-) create mode 100644 packages/runtime/src/scr_rc.test.c create mode 100644 packages/runtime/src/scr_rc.test.ts diff --git a/packages/compiler/src/backend/llvm/classes.ts b/packages/compiler/src/backend/llvm/classes.ts index 699755157..f71f96a3d 100644 --- a/packages/compiler/src/backend/llvm/classes.ts +++ b/packages/compiler/src/backend/llvm/classes.ts @@ -573,13 +573,20 @@ export function classIdLoadLines( * 64-bit word. The count is the i32 at offset 0. */ export const CLASS_ID_OFFSET = 4; +/** The bound on layout ids (scr_rc.h SCR_RC_LAYOUT_ID_LIMIT): the high + * half of a 64-bit rc word keeps the layout id in its low 30 bits, beside + * the program-lifetime and frozen bits. A class id is the layout id of its + * class's canonical layout. */ +export const LAYOUT_ID_LIMIT = 0x3fffffff; + /** The rc word an LlClassMeta.idInRc instance is created with: the class * id, its preorder number plus 1, in the high 32 bits, and in the low 32 bits * a count of 1, or for a program-lifetime instance the midpoint of the 32-bit - * count (as programLifetimeRc is of the 32-bit word). The id is never 0, - * 0x80000000 or 0xffffffff, the high halves of other objects' rc words, so - * the runtime can tell an object with a class id (scr_rc.h scr_rc_class_id). */ + * count (as programLifetimeRc is of the 32-bit word). The id is a layout id + * (LAYOUT_ID_LIMIT), so it never sets the program-lifetime or frozen bit + * and the runtime reads it back (scr_rc.h scr_rc_layout_id). */ export function classIdRcWord(meta: LlClassMeta, lifetime: boolean): string { + if (meta.pre + 1 >= LAYOUT_ID_LIMIT) throw new Error(`class id ${meta.pre + 1} is not a layout id`); return (BigInt(meta.pre + 1) * 2n ** 32n + (lifetime ? 2n ** 31n : 1n)).toString(); } diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index e19ea65cc..c4c9b0ba9 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -2564,7 +2564,7 @@ static void scr_dyn_record_view_freeze(ScrDyn *view) { void scr_record_freeze(void *record) { size_t *rc = record; - if (*rc != SIZE_MAX) *rc |= SCR_RC_FROZEN; + if (!scr_rc_immortal(record)) *rc |= SCR_RC_FROZEN; } void scr_record_throw_frozen(ScrStr *key, ScrStr *owner, double operation) { diff --git a/packages/runtime/src/scr_publish.c b/packages/runtime/src/scr_publish.c index afbe4d6af..8d11d3806 100644 --- a/packages/runtime/src/scr_publish.c +++ b/packages/runtime/src/scr_publish.c @@ -128,8 +128,10 @@ bool scr_pub_mark(ScrPub *ctx, void *obj, bool cyc, int kind) { size_t *rc = obj; if (SCR_RC_PUBLISHED(obj) || ctx->refusal) return false; bool compact = (kind & SCR_PUB_COMPACT) != 0; - /* Both log the low 32 bits: a count, or a compact header word. */ - bool class_id = compact || (kind & SCR_PUB_CLASS_ID) != 0; + /* Both log the low 32 bits: a count, or a compact header word. An + * object with a layout id in its rc word (scr_rc_layout_id) keeps it, as + * a class instance keeps its class id. */ + bool class_id = compact || (kind & SCR_PUB_CLASS_ID) != 0 || scr_rc_layout_id(obj) != 0; kind &= ~(SCR_PUB_CLASS_ID | SCR_PUB_COMPACT); if (ctx->logged == ctx->log_cap) ctx->log = scr_pub_grow(ctx->log, &ctx->log_cap, sizeof *ctx->log, ctx->log_inline); diff --git a/packages/runtime/src/scr_rc.h b/packages/runtime/src/scr_rc.h index 171e420c2..34c9fdc1d 100644 --- a/packages/runtime/src/scr_rc.h +++ b/packages/runtime/src/scr_rc.h @@ -8,13 +8,27 @@ /* ── reference counts ───────────────────────────────────────────────── * Every heap object's first member is its `size_t rc` word. On 64-bit - * targets the reference count is the word's low 32 bits: an emitted - * instance of a class in a program-rooted hierarchy keeps its class id (its - * class's preorder number + 1) in the high 32 bits (llvm/classes.ts - * classIdRcWord), and no other object's count reaches 2^32. A count of SCR_RC_IMMORTAL marks - * an immortal object; for every object but those class instances the whole - * word is then SIZE_MAX. Code that reads or writes the count of an object of - * any kind goes through SCR_RC_COUNT. */ + * targets the word is + * + * bits 0-31 the reference count (SCR_RC_COUNT) + * bit 62 F: a frozen record (SCR_RC_FROZEN) + * bit 63 P: a program-lifetime record (llvm/classes.ts + * programLifetimeRc) + * bits 32-61 the layout id (scr_rc_layout_id) + * + * and no object's count reaches 2^32. The layout id names the object's + * layout in the single object model (scr_layout.h); 0 means the object + * never needed one. An emitted instance of a class in a program-rooted + * hierarchy keeps its class id (its class's preorder number + 1) there + * (llvm/classes.ts classIdRcWord): a class id is the layout id of its + * class's canonical layout. A count of SCR_RC_IMMORTAL marks an immortal + * object. Publication and the runtime's own immortal objects write the + * whole word as SIZE_MAX when the object has no layout id, and write only + * the count when it has one, so an immortal object keeps its layout id + * (scr_rc_immortal tests the count; a high half of all ones reads as no + * layout id). Code that reads or writes the count of an object of any + * kind goes through SCR_RC_COUNT; code that may see an object with a layout + * id tests immortality with scr_rc_immortal, never against SIZE_MAX. */ #if SIZE_MAX > UINT32_MAX typedef uint32_t ScrRcCount; #ifdef __BYTE_ORDER__ @@ -58,25 +72,47 @@ typedef size_t ScrRcCount; #define SCR_RC_FROZEN ((size_t)1 << 30) #define SCR_RC_REFS(obj) (SCR_RC_COUNT(obj) == SCR_RC_IMMORTAL ? SCR_RC_IMMORTAL : SCR_RC_COUNT(obj) & ~SCR_RC_FROZEN) #endif -static inline bool scr_rc_frozen(const void *obj) { - size_t word = *(const size_t *)obj; - return word != SIZE_MAX && (word & SCR_RC_FROZEN) != 0; +/* Whether `obj`, an object whose rc word is a count (not a compact class + * instance), is immortal: its count is SCR_RC_IMMORTAL, whatever its high + * half holds. */ +static inline bool scr_rc_immortal(const void *obj) { + return SCR_RC_COUNT(obj) == SCR_RC_IMMORTAL; } -/* The class id in the high half of `obj`'s rc word, or 0 for an object - * without one: the high half of any other object's word is 0, 0xffffffff - * (immortal), 0x80000000 (program-lifetime) or 0x40000000 (a frozen record), - * and a class id is never one of these. */ -static inline uint32_t scr_rc_class_id(const void *obj) { +static inline bool scr_rc_frozen(const void *obj) { + return !scr_rc_immortal(obj) && (*(const size_t *)obj & SCR_RC_FROZEN) != 0; +} + +/* The high half of the rc word on 64-bit targets: the program-lifetime + * bit, the frozen bit and the layout id (see the layout above). 32-bit + * targets have no high half; their objects keep a layout id elsewhere when + * they need one (scr_layout.h). */ +#define SCR_RC_HIGH_LIFETIME UINT32_C(0x80000000) +#define SCR_RC_HIGH_FROZEN UINT32_C(0x40000000) +#define SCR_RC_LAYOUT_ID_MASK UINT32_C(0x3fffffff) +/* Layout ids are below this bound: 2^30 - 1 is the id bits of an all-ones + * high half, which reads as no id. */ +#define SCR_RC_LAYOUT_ID_LIMIT SCR_RC_LAYOUT_ID_MASK + +/* The layout id in the high half of `obj`'s rc word, or 0 for an object + * without one. The whole-word immortal encoding (SIZE_MAX) has no id. */ +static inline uint32_t scr_rc_layout_id(const void *obj) { #if SIZE_MAX > UINT32_MAX uint32_t high = (uint32_t)(*(const size_t *)obj >> 32); - return high == UINT32_MAX || high == UINT32_C(0x80000000) || high == UINT32_C(0x40000000) ? 0 : high; + return high == UINT32_MAX ? 0 : high & SCR_RC_LAYOUT_ID_MASK; #else (void)obj; return 0; #endif } +/* The class id in the high half of `obj`'s rc word, or 0 for an object + * without one. A class id is the layout id of the class's canonical + * layout, and no object of any other kind has a layout id yet. */ +static inline uint32_t scr_rc_class_id(const void *obj) { + return scr_rc_layout_id(obj); +} + /* ── cycle collection (scr_cycle.c) ─────────────────────────────────── * Reference counting alone cannot free cycles, so every object that can * participate in one — capture boxes, heap closures, unions, promises, and diff --git a/packages/runtime/src/scr_rc.test.c b/packages/runtime/src/scr_rc.test.c new file mode 100644 index 000000000..159235ce9 --- /dev/null +++ b/packages/runtime/src/scr_rc.test.c @@ -0,0 +1,47 @@ +#undef NDEBUG +#include "scr_rc.h" +#include +#include + +/* The rc word's encodings (scr_rc.h): the count in the low half, and the + * program-lifetime bit, the frozen bit and the layout id in the high half. + * Immortality is a count of all ones; a layout id survives it. */ +static size_t word(uint32_t high, uint32_t count) { + return ((size_t)high << 32) | count; +} + +int main(void) { +#if SIZE_MAX > UINT32_MAX + /* An ordinary object: no layout id, not frozen, not immortal. */ + size_t plain = word(0, 3); + assert(scr_rc_layout_id(&plain) == 0 && !scr_rc_frozen(&plain) && !scr_rc_immortal(&plain)); + /* The whole-word immortal encoding has no layout id and is not frozen. */ + size_t immortal = SIZE_MAX; + assert(scr_rc_layout_id(&immortal) == 0 && scr_rc_immortal(&immortal) && !scr_rc_frozen(&immortal)); + /* A program-lifetime record (llvm/classes.ts programLifetimeRc) and a + * frozen record have no layout id. */ + size_t lifetime = word(SCR_RC_HIGH_LIFETIME, 0); + assert(scr_rc_layout_id(&lifetime) == 0 && !scr_rc_immortal(&lifetime)); + size_t frozen = word(SCR_RC_HIGH_FROZEN, 2); + assert(scr_rc_layout_id(&frozen) == 0 && scr_rc_frozen(&frozen)); + /* A class instance keeps its class id, which is its layout id, beside + * its count, also once immortal, frozen or program-lifetime. */ + size_t instance = word(7, 1); + assert(scr_rc_layout_id(&instance) == 7 && scr_rc_class_id(&instance) == 7); + SCR_RC_COUNT(&instance) = SCR_RC_IMMORTAL; + assert(scr_rc_immortal(&instance) && scr_rc_layout_id(&instance) == 7 && !scr_rc_frozen(&instance)); + size_t frozen_id = word(SCR_RC_HIGH_FROZEN | 9, 1); + assert(scr_rc_layout_id(&frozen_id) == 9 && scr_rc_frozen(&frozen_id)); + size_t lifetime_id = word(SCR_RC_HIGH_LIFETIME | 11, UINT32_C(0x80000000)); + assert(scr_rc_layout_id(&lifetime_id) == 11 && !scr_rc_immortal(&lifetime_id)); + /* The largest layout id. */ + size_t top = word(SCR_RC_LAYOUT_ID_LIMIT - 1, 1); + assert(scr_rc_layout_id(&top) == SCR_RC_LAYOUT_ID_LIMIT - 1); +#else + size_t plain = 3, immortal = SIZE_MAX; + assert(scr_rc_layout_id(&plain) == 0 && !scr_rc_immortal(&plain)); + assert(scr_rc_immortal(&immortal) && !scr_rc_frozen(&immortal)); +#endif + puts("rc word encodings"); + return 0; +} diff --git a/packages/runtime/src/scr_rc.test.ts b/packages/runtime/src/scr_rc.test.ts new file mode 100644 index 000000000..181d0beba --- /dev/null +++ b/packages/runtime/src/scr_rc.test.ts @@ -0,0 +1,36 @@ +import { execFile } from "node:child_process"; +import { mkdtemp, rm } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { promisify } from "node:util"; +import { expect, test } from "vitest"; + +const exec = promisify(execFile); + +/* The rc word helpers are inline in scr_rc.h, so the test links alone. */ +test.skipIf(process.platform === "win32")( + "the rc word keeps the count, the lifetime and frozen bits and the layout id apart", + async () => { + const dir = await mkdtemp(join(tmpdir(), "scriptc-rc-")); + try { + const bin = join(dir, "rc"); + await exec("clang", [ + "-std=c11", + "-O1", + "-g", + "-fsanitize=address,undefined", + join(import.meta.dirname, "scr_rc.test.c"), + "-o", + bin, + ]); + const result = await exec(bin, [], { + timeout: 60000, + env: { ...process.env, UBSAN_OPTIONS: "halt_on_error=1" }, + }); + expect(result.stdout).toBe("rc word encodings\n"); + expect(result.stderr).toBe(""); + } finally { + await rm(dir, { recursive: true, force: true }); + } + }, +); From 30cf205e90108ea02cd109b71ad0cc6c439655ef Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 18:10:32 -0500 Subject: [PATCH 035/128] Run untyped pipeline function stages and later iterable stages A pipeline stage that arrives as an untyped value now follows Node's stage ladder for more shapes. As the first stage, a function is a source function: the pipeline calls it with { signal } while it is set up and pumps its result, which must be iterable (ERR_INVALID_RETURN_VALUE otherwise), and a { readable, writable } pair pumps its readable side. After the first stage, the pipeline call is lowered once per combination of its first three untyped stages being functions or not, and a typeof test picks the branch at run time. A function stage is called with the previous stage and { signal }; before the last stage its result must be async iterable, and as the last stage a promise resolves the pipeline's value and an async iterable feeds the PassThrough pipeline() returns (SCR_PIPE_DEST_DYN). Any other value that is not a stream becomes Duplex.from of it, which the next stage reads from without the previous stage being piped into it, and Duplex.from's ERR_INVALID_ARG_TYPE for the values it rejects. An untyped stage followed by an untyped function stage hands its value to that stage through a cell created per pipeline call, so the function receives the previous stage's own iterator, as Node's makeAsyncIterable answers it, instead of an async generator over it. Untyped web streams, pairs after the first stage, and function stages that return a stream throw the not-supported error. RUNTIME_ABI_VERSION goes from 45 to 46 for the new stream exports. --- .../builtin-apis/streams-and-readline.mdx | 8 +- packages/cli/test/native-link-info.test.ts | 4 +- .../compiler/src/backend/llvm/lib-dispatch.ts | 12 +- .../compiler/src/backend/llvm/lib-shared.ts | 3 + .../compiler/src/backend/llvm/lib-stream.ts | 2 +- packages/compiler/src/backend/runtime-abi.ts | 4 +- .../src/backend/runtime-pack-targets.test.ts | 2 +- .../compiler/src/backend/runtime-pack.test.ts | 2 +- .../src/frontend/lowering/lower-stream.ts | 667 +++++++++++++++++- packages/compiler/src/ir/builtin-effects.ts | 3 + .../compiler/src/ir/builtin-signatures.ts | 30 +- packages/compiler/src/ir/runtime-features.ts | 4 + packages/compiler/src/ir/validate.ts | 6 +- .../test/native-codegen-integration.test.ts | 4 +- ...pipeline-untyped-source-functions.mjs.json | 6 + ...-pipeline-untyped-function-stages.mjs.json | 6 + ...-pipeline-untyped-later-iterables.mjs.json | 6 + .../7511-pipeline-untyped-stages.cjs.json | 6 + .../corpus/7512-pipeline-any-stages.ts.json | 6 + ...513-pipeline-untyped-stage-errors.mjs.json | 6 + .../runtime-darwin-arm64/scripts/build.mjs | 2 +- .../runtime-pack-common/scripts/build.mjs | 2 +- packages/runtime/src/scr_console.c | 2 +- packages/runtime/src/scr_core.h | 2 +- packages/runtime/src/scr_dyn.h | 3 + packages/runtime/src/scr_dyn_builtin_stream.c | 8 + packages/runtime/src/scr_stream.c | 272 ++++++- packages/runtime/src/scr_stream.h | 12 + ...7508-pipeline-untyped-source-functions.mjs | 85 +++ .../7509-pipeline-untyped-function-stages.mjs | 112 +++ .../7510-pipeline-untyped-later-iterables.mjs | 64 ++ tests/corpus/7511-pipeline-untyped-stages.cjs | 50 ++ tests/corpus/7512-pipeline-any-stages.ts | 45 ++ .../7513-pipeline-untyped-stage-errors.mjs | 86 +++ ...pipeline-untyped-source-functions.mjs.json | 1 + ...-pipeline-untyped-function-stages.mjs.json | 1 + ...-pipeline-untyped-later-iterables.mjs.json | 1 + .../7511-pipeline-untyped-stages.cjs.json | 1 + .../7512-pipeline-any-stages.ts.json | 1 + ...513-pipeline-untyped-stage-errors.mjs.json | 1 + 40 files changed, 1466 insertions(+), 72 deletions(-) create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7508-pipeline-untyped-source-functions.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7509-pipeline-untyped-function-stages.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7510-pipeline-untyped-later-iterables.mjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7511-pipeline-untyped-stages.cjs.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7512-pipeline-any-stages.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7513-pipeline-untyped-stage-errors.mjs.json create mode 100644 tests/corpus/7508-pipeline-untyped-source-functions.mjs create mode 100644 tests/corpus/7509-pipeline-untyped-function-stages.mjs create mode 100644 tests/corpus/7510-pipeline-untyped-later-iterables.mjs create mode 100644 tests/corpus/7511-pipeline-untyped-stages.cjs create mode 100644 tests/corpus/7512-pipeline-any-stages.ts create mode 100644 tests/corpus/7513-pipeline-untyped-stage-errors.mjs create mode 100644 tests/harness/corpus-costs/7508-pipeline-untyped-source-functions.mjs.json create mode 100644 tests/harness/corpus-costs/7509-pipeline-untyped-function-stages.mjs.json create mode 100644 tests/harness/corpus-costs/7510-pipeline-untyped-later-iterables.mjs.json create mode 100644 tests/harness/corpus-costs/7511-pipeline-untyped-stages.cjs.json create mode 100644 tests/harness/corpus-costs/7512-pipeline-any-stages.ts.json create mode 100644 tests/harness/corpus-costs/7513-pipeline-untyped-stage-errors.mjs.json diff --git a/docs/content/limitations/builtin-apis/streams-and-readline.mdx b/docs/content/limitations/builtin-apis/streams-and-readline.mdx index 561840268..25427a307 100644 --- a/docs/content/limitations/builtin-apis/streams-and-readline.mdx +++ b/docs/content/limitations/builtin-apis/streams-and-readline.mdx @@ -4,7 +4,13 @@ When an untyped value reaches `NodeJS.ReadableStream` or `NodeJS.WritableStream`, those two interfaces hold any value, so JavaScript stream objects (constructor-function streams, plain objects with `on` and `pipe`) pass through TypeScript functions typed with them and come back to JavaScript as the same objects. Member calls on such a value use the native stream when it is one and call the object's own members otherwise; `readable.pipe()` into a JavaScript destination follows Node's pipe protocol. The first `pipeline` stage may arrive as an untyped value that is a native stream, a `Cipheriv` or `Decipheriv` value, or an iterable: a string, an array, a generator object, or any value with a `Symbol.asyncIterator` or `Symbol.iterator` method, which the pipeline pumps into the next stage as Node does. - Later `pipeline` stages and `for await` sources that arrive as untyped values must be native streams, or `Cipheriv` and `Decipheriv` values, at run time; other values throw a not-supported error. + It may also be a source function, which the pipeline calls with `{ signal }` and whose iterable result it pumps, or a `{ readable, writable }` pair, whose readable side it pumps. + Later `pipeline` stages that arrive as untyped values may be native streams, `Cipheriv` and `Decipheriv` values, functions, and iterables. + A function is called with the previous stage and `{ signal }` as a function stage: before the last stage it must return an async iterable, and as the last stage it may return a promise, whose value resolves the pipeline, or an async iterable, which feeds the PassThrough that `pipeline()` returns. + An untyped source function, function stage, or destination that returns a stream is unsupported. + An iterable becomes `Duplex.from` of it, which the next stage reads from while the stages before it are not read, as in Node. + A pipeline branches at run time on whether each of its first three untyped stages after the first is a function; a function in a later untyped stage, an untyped web stream, and a `{ readable, writable }` pair after the first stage throw a not-supported error. + `for await` sources that arrive as untyped values must be native streams, or `Cipheriv` and `Decipheriv` values, at run time; other values throw a not-supported error. Native streams expose no `emit` to JavaScript, so a JavaScript stream whose own `pipe()` emits on its destination (the legacy `Stream` pipe) cannot pipe into one. `Readable.from` accepts strings, Buffers, arrays, Sets, Maps, Map and Set iterators, generators, async generators, and class iterables and async iterables, and in JavaScript any iterable or async iterable. In JavaScript, a sync iterator value with a `then` method that is not a promise, and an object whose `[Symbol.asyncIterator]` or `[Symbol.iterator]` method is a generator method, are unsupported. diff --git a/packages/cli/test/native-link-info.test.ts b/packages/cli/test/native-link-info.test.ts index f63cc790c..24db2c4c2 100644 --- a/packages/cli/test/native-link-info.test.ts +++ b/packages/cli/test/native-link-info.test.ts @@ -72,7 +72,7 @@ describe.runIf(supported)("macOS arm64 native link info", () => { minimum_os: "14.0", }, program: { object, entry_symbol: "main" }, - runtime_abi: { version: 45, marker: "scr_runtime_abi_v45" }, + runtime_abi: { version: 46, marker: "scr_runtime_abi_v46" }, runtime_pack: { kind: "precompiled", package: "@scriptc/runtime-darwin-arm64", @@ -165,6 +165,6 @@ describe.runIf(supported)("macOS arm64 native link info", () => { () => null, (failure: { stderr?: string }) => failure, ); - expect(error?.stderr).toContain("scr_runtime_abi_v45"); + expect(error?.stderr).toContain("scr_runtime_abi_v46"); }); }); diff --git a/packages/compiler/src/backend/llvm/lib-dispatch.ts b/packages/compiler/src/backend/llvm/lib-dispatch.ts index 8cefda8f0..30eef4b99 100644 --- a/packages/compiler/src/backend/llvm/lib-dispatch.ts +++ b/packages/compiler/src/backend/llvm/lib-dispatch.ts @@ -671,11 +671,13 @@ export function emitGenericLibCall(host: LlvmEmitterContext, e: LibCallExpr): Ll // which also takes those streams. e.fn === "stream.unboxDyn" && host.usesDynBuiltinStream ? "scr_dyn_builtin_stream_unbox" - : // for await over a checked-dynamic value iterates a native - // stream behind it (scr_dyn_for_await_stream.c) - e.fn === "dyn.asyncIteratorOpen" && host.dynForAwaitStreams - ? "scr_stream_dyn_async_iterator_open" - : LIB_FN_SYMS[e.fn]); + : e.fn === "stream.unboxDynStage" && host.usesDynBuiltinStream + ? "scr_dyn_builtin_stream_unbox_stage" + : // for await over a checked-dynamic value iterates a native + // stream behind it (scr_dyn_for_await_stream.c) + e.fn === "dyn.asyncIteratorOpen" && host.dynForAwaitStreams + ? "scr_stream_dyn_async_iterator_open" + : LIB_FN_SYMS[e.fn]); if (sym === undefined) throw new LlvmUnsupportedError(`libCall:${e.fn}`, e.loc); // The runtime's Date functions take and answer time values: a Date // operand passes its time value, read at once from the borrowed object, diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index 4b3f34b80..016815819 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -818,6 +818,9 @@ export const LIB_FN_SYMS: Record = { "stream.stdioWritable": "scr_stream_stdio_writable", "stream.unboxDyn": "scr_stream_unbox_dyn", "stream.dynIterableSource": "scr_stream_dyn_iterable_source", + "stream.dynSourceValue": "scr_stream_dyn_source_value", + "stream.unboxDynStage": "scr_stream_unbox_dyn_stage", + "stream.dynTransformResult": "scr_stream_dyn_transform_result", "stream.handleStream": "scr_stream_handle", "stream.pipeDyn": "scr_stream_pipe_dyn", "stream.unpipeDyn": "scr_stream_unpipe_dyn", diff --git a/packages/compiler/src/backend/llvm/lib-stream.ts b/packages/compiler/src/backend/llvm/lib-stream.ts index fdbf13d4f..53f455964 100644 --- a/packages/compiler/src/backend/llvm/lib-stream.ts +++ b/packages/compiler/src/backend/llvm/lib-stream.ts @@ -743,7 +743,7 @@ export function emitStreamLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlV const helpers = packed(5 + n + k, helperCount); let at = 5 + n + k + helperCount; const take = (present: boolean): string => (present ? args[at++]!.name : "null"); - const box = take(((flags >> 1) & 3) === 2); + const box = take(((flags >> 1) & 3) >= 2); const signal = take((flags & 32) !== 0); const abort = take((flags & 32) !== 0); const head = diff --git a/packages/compiler/src/backend/runtime-abi.ts b/packages/compiler/src/backend/runtime-abi.ts index fe13879a2..892e9281e 100644 --- a/packages/compiler/src/backend/runtime-abi.ts +++ b/packages/compiler/src/backend/runtime-abi.ts @@ -2,8 +2,8 @@ * of the link contract: a program object keeps this symbol undefined and the * matching runtime defines it, so incompatible manual links fail before the * program can start. */ -export const RUNTIME_ABI_VERSION = 45 as const; -export const RUNTIME_ABI_MARKER = "scr_runtime_abi_v45" as const; +export const RUNTIME_ABI_VERSION = 46 as const; +export const RUNTIME_ABI_MARKER = "scr_runtime_abi_v46" as const; /** Object consumption is useful today, but the complete scr_* surface may * still change before 1.0. The versioned marker prevents accidental mixing; diff --git a/packages/compiler/src/backend/runtime-pack-targets.test.ts b/packages/compiler/src/backend/runtime-pack-targets.test.ts index 492b71217..9c5b61f58 100644 --- a/packages/compiler/src/backend/runtime-pack-targets.test.ts +++ b/packages/compiler/src/backend/runtime-pack-targets.test.ts @@ -52,7 +52,7 @@ async function fixture(target: NativeTargetSpec, workers = false) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 45, marker: "scr_runtime_abi_v45" }, + runtime_abi: { version: 46, marker: "scr_runtime_abi_v46" }, compiler: { command: "fixture", identity: "fixture", target: target.llvmTriple }, macros: { executable: [], excluded: ["SCR_LIB"], sanitizer: "external-toolchain-required" }, flavors: { diff --git a/packages/compiler/src/backend/runtime-pack.test.ts b/packages/compiler/src/backend/runtime-pack.test.ts index fdb0ba29e..812fd9531 100644 --- a/packages/compiler/src/backend/runtime-pack.test.ts +++ b/packages/compiler/src/backend/runtime-pack.test.ts @@ -129,7 +129,7 @@ async function fixture(target: NativeTargetSpec = MACOS_ARM64_TARGET) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 45, marker: "scr_runtime_abi_v45" }, + runtime_abi: { version: 46, marker: "scr_runtime_abi_v46" }, compiler: { command: "clang", identity: "fixture clang", diff --git a/packages/compiler/src/frontend/lowering/lower-stream.ts b/packages/compiler/src/frontend/lowering/lower-stream.ts index c8699d856..2ae952aaa 100644 --- a/packages/compiler/src/frontend/lowering/lower-stream.ts +++ b/packages/compiler/src/frontend/lowering/lower-stream.ts @@ -2837,20 +2837,24 @@ export function streamClassAliasDecl( const PIPELINE_STAGE_EXPECTED = "of type function or an instance of Blob, ReadableStream, WritableStream, Stream, Iterable, AsyncIterable, or Promise or { readable, writable } pair"; -/** A checked-dynamic pipeline stage (an untyped source or destination): - * a boxed native stream unwraps at run time; other values (functions, - * pairs) throw the not-supported Error there. */ +/** A checked-dynamic pipeline stage taken as a stream: a boxed native + * stream unwraps at run time, and a value that is not stream-like or a + * function (an iterable after the first stage) becomes Duplex.from of it, + * as pipelineImpl's last branch does. Stream-like objects, web streams and + * { readable, writable } pairs throw the not-supported Error there, and so + * do functions, which reach this lowering only past + * MAX_DYN_FUNCTION_STAGES. */ function unboxDynStage(lowerer: Lowerer, v: IrExpr, node: ts.Expression): IrExpr { noteUntypedStreamFlow(lowerer, null); return { kind: "libCall", - fn: "stream.unboxDyn", + fn: "stream.unboxDynStage", args: [ v, strLit( lowerer.dynNodeStreams - ? "pipeline stages other than native streams (JavaScript stream objects, iterables, generators, plain functions, and { readable, writable } pairs) are not supported yet" - : "pipeline stages other than native streams (iterables, generators, plain functions, and { readable, writable } pairs) are not supported yet", + ? "pipeline stages other than native streams, iterables and functions (JavaScript stream objects, web streams, { readable, writable } pairs after the first stage, and functions after the first three untyped stages) are not supported yet" + : "pipeline stages other than native streams, iterables and functions (web streams, { readable, writable } pairs after the first stage, and functions after the first three untyped stages) are not supported yet", locOf(node), ), ], @@ -2930,6 +2934,102 @@ const BOXED_SOURCE_KINDS: ReadonlySet = new Set([ "string", ]); +/** The most checked-dynamic stages after the first that a pipeline + * branches on as functions; each one doubles the lowered pipeline calls. */ +const MAX_DYN_FUNCTION_STAGES = 3; + +/** A pipeline's arguments for one of the run-time branches + * lowerDynStagePipeline lowers. */ +interface DynStagePlan { + /** the first stage when it is checked-dynamic */ + source: DynPipelineSource | null; + /** argument values evaluated before the branches, in argument order */ + bound: ReadonlyMap; + /** a typed iterable first stage's source, lowered before the branches */ + preSource?: { closure: IrExpr; out: SyncGenType } | undefined; + /** the checked-dynamic stages this branch takes as functions */ + fns: ReadonlySet; +} + +/** pipeline() whose stages after the first include untyped values: + * pipelineImpl calls a stage that is a function with the previous stage + * and { signal }, and pipes into or takes any other value, so the call is + * lowered once per combination of those stages being functions or not, + * up to MAX_DYN_FUNCTION_STAGES of them, and a typeof test on each + * picks the branch at run time. The arguments other than function stages + * are evaluated first, in argument order. */ +function lowerDynStagePipeline( + lowerer: Lowerer, + stageArgs: readonly ts.Expression[], + src: DynPipelineSource | null, + loc: SrcLoc, + build: (plan: DynStagePlan) => IrExpr, +): IrExpr { + const candidates: number[] = []; + for (let j = 1; j < stageArgs.length; j++) { + const arg = stageArgs[j]!; + if (pipelineStageFunction(lowerer, arg) !== null || isValueStream(lowerer, arg)) continue; + if ((lowerer.typeOf(arg).flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) !== 0) { + candidates.push(j); + } + } + if (candidates.length === 0) return build({ source: src, bound: new Map(), fns: new Set() }); + const stmts: IrStmt[] = []; + const bind = (init: IrExpr): IrExpr => { + const local = lowerer.declareHiddenLocal("%pipelineArg", init.type); + stmts.push({ kind: "varDecl", localId: local.id, init, loc: init.loc }); + return varRef(local.id, init.type, init.loc); + }; + const source = src !== null && !src.iterable ? { expr: bind(src.expr), iterable: false } : src; + const bound = new Map(); + let preSource: DynStagePlan["preSource"]; + for (let j = src !== null ? 1 : 0; j < stageArgs.length; j++) { + const arg = stageArgs[j]!; + if (pipelineStageFunction(lowerer, arg) !== null) continue; + if (j === 0 && iterableSourceType(lowerer, arg) !== null) { + const lowered = lowerIterableSource(lowerer, arg, null, loc); + if (lowered === null) lowerer.noLowering("pipeline over this source", arg); + preSource = { closure: bind(lowered!.closure), out: lowered!.out }; + continue; + } + let value = lowerer.lowerExpr(arg); + // an untyped array, string, Set, Map or generator object that keeps + // its static type is taken through its checked-dynamic value + if ( + candidates.includes(j) && + BOXED_SOURCE_KINDS.has(value.type.kind) && + lowerer.dynConvertible(value.type) + ) { + value = { kind: "dynFrom", value, type: DYN, loc: value.loc }; + } + bound.set(j, bind(value)); + } + const dynStages = candidates + .filter((j) => bound.get(j)!.type.kind === "dyn") + .slice(0, MAX_DYN_FUNCTION_STAGES); + const branch = (i: number, fns: ReadonlySet): IrExpr => { + if (i === dynStages.length) return build({ source, bound, preSource, fns }); + const j = dynStages[i]!; + const asStream = branch(i + 1, fns); + const asFunction = branch(i + 1, new Set([...fns, j])); + // a function destination's promise resolves to its value + const type = + asFunction.type.kind === "promise" && asFunction.type.inner.kind === "dyn" + ? asFunction.type + : asStream.type; + return { + kind: "ternary", + cond: { kind: "dynTest", test: "function", value: bound.get(j)!, type: BOOL, loc }, + then: lowerer.coerceToExpected(asFunction, type), + else_: lowerer.coerceToExpected(asStream, type), + type, + loc, + }; + }; + const result = branch(0, new Set()); + return { kind: "seqExpr", stmts, result, type: result.type, loc }; +} + /** lowerPipelineStages' source arguments for a checked-dynamic first stage. */ function stagesSource( src: DynPipelineSource | null, @@ -2938,6 +3038,22 @@ function stagesSource( return src.iterable ? [undefined, src.expr] : [new Map([[0, src.expr]]), undefined]; } +/** A pipeline stage taken as a stream under a DynStagePlan: the + * checked-dynamic first stage's stream, a value bound before the + * branches, or the argument lowered here. */ +function planStreamArg( + lowerer: Lowerer, + plan: DynStagePlan, + node: ts.Expression, + i: number, +): IrExpr { + if (i === 0 && plan.source !== null) return plan.source.expr; + const bound = plan.bound.get(i); + return bound !== undefined + ? streamArgOf(lowerer, node, bound, "pipeline") + : lowerStreamArg(lowerer, node, "pipeline"); +} + /** A stream-rooted argument, lowered — or the pointed fence (pipeline's * iterable/generator/function stages have no lowering yet). `what` picks * the validation ladder: finished() rejects EVERY non-stream through @@ -3304,7 +3420,9 @@ export function lowerStreamModuleCall( : null; const stageArgs = opts ? args.slice(0, -1) : args; const build = (src: DynPipelineSource | null): IrExpr => - lowerPromisePipeline(lowerer, stageArgs, opts, src, loc); + lowerDynStagePipeline(lowerer, stageArgs, src, loc, (plan) => + lowerPromisePipeline(lowerer, stageArgs, opts, plan, loc), + ); return lowerDynSourcePipeline(lowerer, stageArgs[0]!, loc, build) ?? build(null); } return null; @@ -3312,17 +3430,23 @@ export function lowerStreamModuleCall( return lowerStreamModuleCallbackCall(lowerer, call, bi, loc); } -/** stream/promises pipeline(...stages[, options]), with the first stage - * pre-lowered when it is checked-dynamic (lowerDynSourcePipeline). */ +/** stream/promises pipeline(...stages[, options]), for one branch of + * lowerDynStagePipeline's plan. */ function lowerPromisePipeline( lowerer: Lowerer, stageArgs: readonly ts.Expression[], opts: ReturnType | null, - src: DynPipelineSource | null, + plan: DynStagePlan, loc: SrcLoc, ): IrExpr { - if (src?.iterable === true || hasPipelineFunctionStage(lowerer, stageArgs)) { - const staged = lowerPipelineStages(lowerer, stageArgs, loc, ...stagesSource(src)); + const src = plan.source; + if ( + src?.iterable === true || + plan.fns.size > 0 || + plan.preSource !== undefined || + hasPipelineFunctionStage(lowerer, stageArgs) + ) { + const staged = lowerPipelineStages(lowerer, stageArgs, loc, ...stagesSource(src), plan); const type = staged.destPromise ?? { kind: "promise", inner: VOID }; // A promise destination's value settles the result (same type). if (!opts) { @@ -3346,9 +3470,7 @@ function lowerPromisePipeline( } let streams: IrExpr[]; try { - streams = stageArgs.map((a, i) => - i === 0 && src !== null ? src.expr : lowerStreamArg(lowerer, a, "pipeline"), - ); + streams = stageArgs.map((a, i) => planStreamArg(lowerer, plan, a, i)); } catch (e) { if (e instanceof StreamArgTypeThrow) return e.expr; throw e; @@ -3530,7 +3652,9 @@ function lowerStreamModuleCallbackCall( ); } const build = (src: DynPipelineSource | null): IrExpr => - lowerCallbackPipeline(lowerer, call, args, src, loc); + lowerDynStagePipeline(lowerer, args.slice(0, -1), src, loc, (plan) => + lowerCallbackPipeline(lowerer, call, args, plan, loc), + ); return lowerDynSourcePipeline(lowerer, args[0]!, loc, build) ?? build(null); } @@ -3544,23 +3668,32 @@ function lowerStreamModuleCallbackCall( return null; } -/** pipeline(...stages, callback), with the first stage pre-lowered when it - * is checked-dynamic (lowerDynSourcePipeline). */ +/** pipeline(...stages, callback), for one branch of lowerDynStagePipeline's + * plan. */ function lowerCallbackPipeline( lowerer: Lowerer, call: ts.CallExpression, args: readonly ts.Expression[], - src: DynPipelineSource | null, + plan: DynStagePlan, loc: SrcLoc, ): IrExpr { - if (src?.iterable === true || hasPipelineFunctionStage(lowerer, args.slice(0, -1))) { - const staged = lowerPipelineStages(lowerer, args.slice(0, -1), loc, ...stagesSource(src)); - const cbNode = args[args.length - 1]!; - const cbParams = - ts.isArrowFunction(cbNode) || ts.isFunctionExpression(cbNode) - ? cbNode.parameters.nodes.length - : 0; - if (staged.dest === 2 || (staged.dest === 1 && cbParams > 1)) { + const src = plan.source; + const cbNode = args[args.length - 1]!; + const cbParams = + ts.isArrowFunction(cbNode) || ts.isFunctionExpression(cbNode) + ? cbNode.parameters.nodes.length + : 0; + // A branch over untyped stages whose destination is a stream: the + // callback still receives (err, value), value undefined, as in Node. + const dynCallback = plan.bound.size > 0 && cbParams > 1; + if ( + src?.iterable === true || + plan.fns.size > 0 || + plan.preSource !== undefined || + hasPipelineFunctionStage(lowerer, args.slice(0, -1)) + ) { + const staged = lowerPipelineStages(lowerer, args.slice(0, -1), loc, ...stagesSource(src), plan); + if (staged.dest >= 2 || (staged.dest === 1 && cbParams > 1) || dynCallback) { // callback(err, value): the destination's value (undefined for // an async generator) reaches the callback through the // checked-dynamic path. @@ -3595,15 +3728,15 @@ function lowerCallbackPipeline( } let streams: IrExpr[]; try { - streams = args - .slice(0, -1) - .map((a, i) => (i === 0 && src !== null ? src.expr : lowerStreamArg(lowerer, a, "pipeline"))); + streams = args.slice(0, -1).map((a, i) => planStreamArg(lowerer, plan, a, i)); } catch (e) { if (e instanceof StreamArgTypeThrow) return e.expr; throw e; } const last = streams[streams.length - 1]!; - const { cb, dyn } = lowerEosCallback(lowerer, "pipeline", args[args.length - 1]!, last.type); + const { cb, dyn } = dynCallback + ? { cb: lowerer.lowerExprExpecting(cbNode, DYN), dyn: true } + : lowerEosCallback(lowerer, "pipeline", cbNode, last.type); return { kind: "libCall", fn: dyn ? "stream.pipelineDyn" : "stream.pipeline", @@ -4213,6 +4346,397 @@ function lowerDynIterableSource( }; } +/** The async generator a checked-dynamic stage's iterable is pumped + * through. */ +function dynStageGenType(): SyncGenType { + return { kind: "generator", async: true, yieldT: DYN, retT: VOID, nextT: UNDEFINED_T }; +} + +/** A checked-dynamic pipeline stage after the first that is a function at + * run time, as the stage closure the runtime calls with the previous + * stage and { signal } (pipelineImpl's `typeof stream === 'function'` + * branch): it calls the function with the previous stream or generator + * as an untyped value. Before the last stage the result must be async + * iterable (ERR_INVALID_RETURN_VALUE otherwise) and is pumped on through + * lowerDynIterableSource's generator; the last stage answers the result, + * which the runtime classifies (SCR_PIPE_DEST_DYN). A previous stage + * whose type has no untyped form throws the not-supported Error. */ +function lowerDynFunctionStage( + lowerer: Lowerer, + fnValue: IrExpr, + srcT: IrType, + j: number, + isLast: boolean, + loc: SrcLoc, + handoff?: DynStageHandoff, +): { closure: IrExpr; out: IrType } { + const out: IrType = isLast ? DYN : dynStageGenType(); + const stageT = funcOf([srcT, DYN], out); + const take = handoff?.take === true; + const give = handoff?.give === true && !isLast; + const key = `dynFunctionStage:${isLast ? "dest" : "transform"}:${typeKey(srcT)}:${take ? 1 : 0}${give ? 1 : 0}`; + let maker = lowerer.valueHelpers.get(key); + if (!maker) { + maker = `%stream.dynFunctionStage.${lowerer.valueHelpers.size}`; + lowerer.valueHelpers.set(key, maker); + const stageName = `${maker}.stage`; + const frame = new LiftedFrame(loc); + const fnId = frame.local("fn", DYN, false); + const labelId = frame.local("label", STRING, false); + const cellId = frame.local("cell", DYN, false); + const srcId = frame.param("src", srcT); + const optsId = frame.param("opts", DYN); + const inputId = frame.local("input", DYN, false); + const resultId = frame.local("result", DYN, false); + const nextId = frame.local("next", DYN, false); + const cell = (): IrExpr => varRef(cellId, DYN, loc); + const body: IrStmt[] = []; + if (take) { + // the previous untyped stage's value, handed over as it is + // (makeAsyncIterable answers an iterable itself) + body.push( + { kind: "varDecl", localId: inputId, init: handoffTake(cell(), loc), loc }, + handoffPut(cell(), dynUndefinedExpr(loc), loc), + ); + } + if (!take && !lowerer.dynConvertible(srcT)) { + body.push({ + kind: "return", + value: nodeThrowExpr( + 0, + "SC2020", + `pipeline function stages after a stage of type '${lowerer.fmt(srcT)}' are not supported yet`, + out, + loc, + ), + loc, + }); + } else { + body.push({ + kind: "varDecl", + localId: resultId, + init: { + kind: "dynCall", + callee: varRef(fnId, DYN, loc), + receiver: dynUndefinedExpr(loc), + calleeName: "transform", + args: [ + take + ? varRef(inputId, DYN, loc) + : { kind: "dynFrom", value: varRef(srcId, srcT, loc), type: DYN, loc }, + varRef(optsId, DYN, loc), + ], + type: DYN, + loc, + }, + loc, + }); + if (isLast) { + body.push({ kind: "return", value: varRef(resultId, DYN, loc), loc }); + } else { + body.push({ + kind: "varDecl", + localId: nextId, + init: { + kind: "libCall", + fn: "stream.dynTransformResult", + args: [varRef(resultId, DYN, loc), varRef(labelId, STRING, loc)], + type: DYN, + loc, + }, + loc, + }); + // the next untyped function stage takes the result itself; the + // generator returned for the runtime is then never read + if (give) body.push(handoffPut(cell(), varRef(nextId, DYN, loc), loc)); + const iterable = lowerDynIterableSource(lowerer, varRef(nextId, DYN, loc), loc); + if (!iterable) + throw new InternalCompilerError("dyn iterable generator without a result record"); + body.push({ + kind: "return", + value: { kind: "callValue", callee: iterable.closure, args: [], type: out, loc }, + loc, + }); + } + } + const captured = take || give ? [fnId, labelId, cellId] : [fnId, labelId]; + for (const id of captured) frame.locals.find((l) => l.id === id)!.boxed = true; + lowerer.liftedFns.push({ + name: stageName, + params: frame.params, + returnType: out, + captures: [ + { localId: fnId, name: "fn", type: DYN }, + { localId: labelId, name: "label", type: STRING }, + ...(take || give ? [{ localId: cellId, name: "cell", type: DYN }] : []), + ], + locals: frame.locals, + body, + loc, + }); + const makerFn: IrLocal = { id: "fn.0", name: "fn", type: DYN, mutable: false, boxed: true }; + const makerLabel: IrLocal = { + id: "label.1", + name: "label", + type: STRING, + mutable: false, + boxed: true, + }; + const makerCell: IrLocal = { + id: "cell.2", + name: "cell", + type: DYN, + mutable: false, + boxed: true, + }; + const makerLocals = take || give ? [makerFn, makerLabel, makerCell] : [makerFn, makerLabel]; + lowerer.liftedFns.push({ + name: maker, + params: makerLocals.map((l) => ({ localId: l.id, name: l.name, type: l.type })), + returnType: stageT, + locals: makerLocals, + body: [ + { + kind: "return", + value: { + kind: "closure", + fnName: stageName, + captures: makerLocals.map((l) => l.id), + type: stageT, + loc, + }, + loc, + }, + ], + loc, + }); + } + return { + closure: { + kind: "call", + callee: maker, + args: [fnValue, strLit(`transform[${j - 1}]`, loc), ...(take || give ? [handoff!.cell] : [])], + type: stageT, + loc, + }, + out, + }; +} + +/** The cell that carries an untyped stage's value to the untyped function + * stage after it, created per pipeline call. A stage that gives stores its + * value; the next stage takes it instead of the generator the runtime + * passes, as Node's makeAsyncIterable answers an iterable itself. */ +interface DynStageHandoff { + cell: IrExpr; + take: boolean; + give: boolean; +} + +function handoffPut(cell: IrExpr, value: IrExpr, loc: SrcLoc): IrStmt { + return { + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "dyn.keySet", + args: [cell, strLit("v", loc), value], + type: VOID, + loc, + }, + loc, + }; +} + +function handoffTake(cell: IrExpr, loc: SrcLoc): IrExpr { + return { kind: "dynKeyGet", value: cell, key: strLit("v", loc), type: DYN, loc }; +} + +/** `(value) => generator over value`: the async generator an untyped + * destination function's async iterable result is pumped through + * (SCR_PIPE_DEST_DYN's box), interned. */ +function dynStageIterHelper(lowerer: Lowerer, loc: SrcLoc): IrExpr { + const genT = dynStageGenType(); + const type = funcOf([DYN], genT); + const key = "dynStageIter"; + let name = lowerer.valueHelpers.get(key); + if (!name) { + name = `%stream.dynStageIter.${lowerer.valueHelpers.size}`; + lowerer.valueHelpers.set(key, name); + const v: IrLocal = { id: "value.0", name: "value", type: DYN, mutable: false }; + const iterable = lowerDynIterableSource(lowerer, varRef(v.id, DYN, loc), loc); + if (!iterable) + throw new InternalCompilerError("dyn iterable generator without a result record"); + lowerer.liftedFns.push({ + name, + params: [{ localId: v.id, name: v.name, type: DYN }], + returnType: genT, + locals: [v], + body: [ + { + kind: "return", + value: { kind: "callValue", callee: iterable.closure, args: [], type: genT, loc }, + loc, + }, + ], + loc, + }); + } + return { kind: "closure", fnName: name, captures: [], type, loc }; +} + +/** A checked-dynamic first pipeline stage pumped as an iterable + * (pipelineImpl's i === 0 branch), as the stage closure the runtime calls + * with { signal } while it sets the pipeline up: a function is called + * with { signal } and its result must be iterable, a { readable, writable } + * pair pumps its readable side, and any other value is pumped itself, + * through lowerDynIterableSource's generator. */ +function lowerDynSourceStage( + lowerer: Lowerer, + value: IrExpr, + loc: SrcLoc, + cell?: IrExpr, +): { closure: IrExpr; out: SyncGenType } | null { + const out: SyncGenType = { + kind: "generator", + async: true, + yieldT: DYN, + retT: VOID, + nextT: UNDEFINED_T, + }; + const stageT = funcOf([DYN], out); + const give = cell !== undefined; + const key = give ? "dynSourceStage:give" : "dynSourceStage"; + let maker = lowerer.valueHelpers.get(key); + if (!maker) { + maker = `%stream.dynSourceStage.${lowerer.valueHelpers.size}`; + const stageName = `${maker}.stage`; + const frame = new LiftedFrame(loc); + const srcId = frame.local("src", DYN, false); + const cellId = frame.local("cell", DYN, false); + const optsId = frame.param("opts", DYN); + const valueId = frame.local("value", DYN, false); + const genId = frame.local("gen", out, false); + const src = (): IrExpr => varRef(srcId, DYN, loc); + const sourceValue = (v: IrExpr, returned: boolean): IrExpr => ({ + kind: "libCall", + fn: "stream.dynSourceValue", + args: [v, boolLit(returned, loc)], + type: DYN, + loc, + }); + const iterable = lowerDynIterableSource(lowerer, varRef(valueId, DYN, loc), loc); + if (!iterable) return null; + lowerer.valueHelpers.set(key, maker); + const body: IrStmt[] = [ + { + kind: "varDecl", + localId: valueId, + init: { + kind: "ternary", + cond: { kind: "dynTest", test: "function", value: src(), type: BOOL, loc }, + then: sourceValue( + { + kind: "dynCall", + callee: src(), + receiver: dynUndefinedExpr(loc), + calleeName: "source", + args: [varRef(optsId, DYN, loc)], + type: DYN, + loc, + }, + true, + ), + else_: sourceValue(src(), false), + type: DYN, + loc, + }, + loc, + }, + { + kind: "varDecl", + localId: genId, + init: { kind: "callValue", callee: iterable.closure, args: [], type: out, loc }, + loc, + }, + ]; + if (give) { + // the untyped function stage after the source takes the iterable + // itself, as Node's makeAsyncIterable answers it; a stream (a pair's + // readable side) goes as the generator over it, as Node iterates a + // stream there + const v = varRef(valueId, DYN, loc); + body.push( + handoffPut( + varRef(cellId, DYN, loc), + { + kind: "ternary", + cond: { kind: "libCall", fn: "stream.dynIterableSource", args: [v], type: BOOL, loc }, + then: v, + else_: { kind: "dynFrom", value: varRef(genId, out, loc), type: DYN, loc }, + type: DYN, + loc, + }, + loc, + ), + ); + } + body.push({ kind: "return", value: varRef(genId, out, loc), loc }); + const captured = give ? [srcId, cellId] : [srcId]; + for (const id of captured) frame.locals.find((l) => l.id === id)!.boxed = true; + lowerer.liftedFns.push({ + name: stageName, + params: frame.params, + returnType: out, + captures: [ + { localId: srcId, name: "src", type: DYN }, + ...(give ? [{ localId: cellId, name: "cell", type: DYN }] : []), + ], + locals: frame.locals, + body, + loc, + }); + const makerSrc: IrLocal = { id: "src.0", name: "src", type: DYN, mutable: false, boxed: true }; + const makerCell: IrLocal = { + id: "cell.1", + name: "cell", + type: DYN, + mutable: false, + boxed: true, + }; + const makerLocals = give ? [makerSrc, makerCell] : [makerSrc]; + lowerer.liftedFns.push({ + name: maker, + params: makerLocals.map((l) => ({ localId: l.id, name: l.name, type: l.type })), + returnType: stageT, + locals: makerLocals, + body: [ + { + kind: "return", + value: { + kind: "closure", + fnName: stageName, + captures: makerLocals.map((l) => l.id), + type: stageT, + loc, + }, + loc, + }, + ], + loc, + }); + } + return { + closure: { + kind: "call", + callee: maker, + args: give ? [value, cell!] : [value], + type: stageT, + loc, + }, + out, + }; +} + function lowerIterableSource( lowerer: Lowerer, node: ts.Expression, @@ -4356,7 +4880,7 @@ function lowerIterableSource( interface PipelineStagesLowering { args: IrExpr[]; last: IrType; - dest: 0 | 1 | 2; + dest: 0 | 1 | 2 | 3; destPromise: (IrType & { kind: "promise" }) | null; wrap: (call: IrExpr) => IrExpr; } @@ -4377,6 +4901,7 @@ function lowerPipelineStages( loc: SrcLoc, preLowered?: ReadonlyMap, dynSource?: IrExpr, + plan?: DynStagePlan, ): PipelineStagesLowering { if (stageArgs.length > 52) { lowerer.noLowering( @@ -4390,7 +4915,7 @@ function lowerPipelineStages( const helperArgs: IrExpr[] = []; let positions = 0; let mask = 0; - let dest: 0 | 1 | 2 = 0; + let dest: 0 | 1 | 2 | 3 = 0; let destPromise: (IrType & { kind: "promise" }) | null = null; // What the next function stage receives: null before the first stage, // else the previous stream's type or the previous stage's generator. @@ -4399,17 +4924,69 @@ function lowerPipelineStages( // before all stages, so when a stage precedes a stream the arguments // are bound to locals first, keeping JavaScript's evaluation order. const argOrder: { list: IrExpr[]; index: number }[] = []; + // An untyped stage followed by an untyped function stage hands its value + // over through one cell per call (DynStageHandoff). + let handoffCell: IrLocal | null = null; + const cellRef = (): IrExpr => { + handoffCell ??= lowerer.declareHiddenLocal("%pipelineHandoff", DYN); + return varRef(handoffCell.id, DYN, loc); + }; + let takes = false; for (let j = 0; j < stageArgs.length; j++) { const arg = stageArgs[j]!; + const givesToNext = plan?.fns.has(j + 1) === true; if (j === 0 && dynSource !== undefined) { - const source = lowerDynIterableSource(lowerer, dynSource, loc); + const source = lowerDynSourceStage( + lowerer, + dynSource, + loc, + givesToNext ? cellRef() : undefined, + ); + takes = givesToNext; if (source === null) lowerer.noLowering("pipeline over this source", arg); + // a source function takes { signal } + mask |= 1 << stages.length; positions += 1; argOrder.push({ list: stages, index: stages.length }); stages.push(source!.closure); srcT = source!.out; continue; } + if (plan?.fns.has(j) === true) { + // a checked-dynamic stage that is a function at run time + const isLast = j === stageArgs.length - 1; + const take = takes; + const give = givesToNext && !isLast; + takes = give; + const lowered = lowerDynFunctionStage( + lowerer, + plan.bound.get(j)!, + srcT!, + j, + isLast, + loc, + take || give ? { cell: cellRef(), take, give } : undefined, + ); + mask |= 1 << stages.length; + positions += 2 ** j; + argOrder.push({ list: stages, index: stages.length }); + stages.push(lowered.closure); + if (isLast) { + // its result is classified at run time: a promise settles the + // pipeline's value, and an async iterable is pumped into the + // PassThrough + const genT = dynStageGenType(); + const helpers = fromGenHelpers(lowerer, genT, loc); + if (!helpers) lowerer.noLowering("a pipeline destination with this generator type", arg); + helperArgs.push(helpers![0]!, helpers![1]!, helpers![2]!); + dest = 3; + destPromise = { kind: "promise", inner: DYN }; + srcT = null; + } else { + srcT = lowered.out; + } + continue; + } // compose's head and tail functions arrive as Duplex.from streams const fn = preLowered?.has(j) ? null : pipelineStageFunction(lowerer, arg); const syncSourceFn = @@ -4423,7 +5000,9 @@ function lowerPipelineStages( !preLowered?.has(j) && (syncSourceFn || (fn === null && iterableSourceType(lowerer, arg) !== null)) ) { - const source = lowerIterableSource(lowerer, arg, syncSourceFn ? fn : null, loc); + const source = + (syncSourceFn ? undefined : plan?.preSource) ?? + lowerIterableSource(lowerer, arg, syncSourceFn ? fn : null, loc); if (source === null) lowerer.noLowering("pipeline over this source", arg); positions += 1; argOrder.push({ list: stages, index: stages.length }); @@ -4448,7 +5027,12 @@ function lowerPipelineStages( } let stream: IrExpr; try { - stream = preLowered?.get(j) ?? lowerStreamArg(lowerer, arg, "pipeline"); + const bound = plan?.bound.get(j); + stream = + preLowered?.get(j) ?? + (bound !== undefined + ? streamArgOf(lowerer, arg, bound, "pipeline") + : lowerStreamArg(lowerer, arg, "pipeline")); } catch (e) { if (e instanceof StreamArgTypeThrow) lowerer.noLowering("pipeline over this value", arg); throw e; @@ -4527,6 +5111,8 @@ function lowerPipelineStages( ); } helperArgs.push(pipelineBoxHelper(lowerer, destPromise!, loc)); + } else if (dest === 3) { + helperArgs.push(dynStageIterHelper(lowerer, loc)); } const argDecls: IrStmt[] = []; const firstStage = argOrder.findIndex((a) => a.list === stages); @@ -4538,6 +5124,15 @@ function lowerPipelineStages( a.list[a.index] = varRef(local.id, init.type, init.loc); } } + if (handoffCell !== null) { + const cell: IrLocal = handoffCell; + argDecls.unshift({ + kind: "varDecl", + localId: cell.id, + init: { kind: "dynObjLit", fields: [], type: DYN, loc }, + loc, + }); + } const bindArgs = (call: IrExpr): IrExpr => argDecls.length === 0 ? call diff --git a/packages/compiler/src/ir/builtin-effects.ts b/packages/compiler/src/ir/builtin-effects.ts index b0cc96687..86f9ad233 100644 --- a/packages/compiler/src/ir/builtin-effects.ts +++ b/packages/compiler/src/ir/builtin-effects.ts @@ -92,6 +92,9 @@ export const MAY_THROW_LIB_FNS: ReadonlySet = new Set([ "child.stdioStream", "stream.unboxDyn", "stream.dynIterableSource", + "stream.dynSourceValue", + "stream.unboxDynStage", + "stream.dynTransformResult", "stream.handleStream", "stream.pipeDyn", "stream.unpipeDyn", diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index e230932ba..b7ef7d660 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -2870,9 +2870,27 @@ function buildLibFnSignatures() { result: { kind: "object", className: "%Duplex" }, }, /** Whether pipeline() pumps a checked-dynamic first stage as an - * iterable (a string, or a value with an iterator method that is not a - * stream with pipe() and on()) instead of piping it as a stream. */ + * iterable (a string, a value with an iterator method that is not a + * stream with pipe() and on(), a { readable, writable } pair, or a + * source function's result) instead of piping it as a stream. */ "stream.dynIterableSource": { argTypes: [DYN], result: BOOL }, + /** The value pipeline() pumps for a checked-dynamic first stage: a + * source function's result (the flag set), which must be iterable, else + * a { readable, writable } pair's readable side or the value itself. */ + "stream.dynSourceValue": { argTypes: [DYN, BOOL], result: DYN }, + /** An untyped pipeline function stage's result before the last stage, + * which must be async iterable: ERR_INVALID_RETURN_VALUE naming the + * stage ("transform[i]") otherwise. Answers the value (+1). */ + "stream.dynTransformResult": { argTypes: [DYN, STRING], result: DYN }, + /** A checked-dynamic pipeline() stage taken as a stream: a native stream + * (+1), or Duplex.from of a value that is not stream-like or a function + * (an iterable), which the pipeline uses without piping into it. Other + * values throw: Duplex.from's ERR_INVALID_ARG_TYPE, or the given + * not-supported message. */ + "stream.unboxDynStage": { + argTypes: [DYN, STRING], + result: { kind: "object", className: "%Duplex" }, + }, /** The Transform a Cipheriv or Decipheriv reads and writes as a stream * (+1, created on first use and owned by the cipher). */ "stream.handleStream": { @@ -5237,10 +5255,12 @@ export type IrLibFn = keyof ReturnType; /** The function-stage runs of a pipeline of `total` stages that a stream * follows (positions bit j: stage j is a function), and an async * generator destination's run (flags bits 1-2 = 1, pumped into the - * PassThrough pipeline() answers): each pumps its last generator through - * one (next, read, return) triple. */ + * PassThrough pipeline() answers, or 3, an untyped destination whose + * result may be pumped there): each pumps its last generator through one + * (next, read, return) triple. */ export function pipelinePumpedRuns(total: number, positions: number, flags: number): number { - let runs = ((flags >> 1) & 3) === 1 ? 1 : 0; + const dest = (flags >> 1) & 3; + let runs = dest === 1 || dest === 3 ? 1 : 0; for (let j = 0; j + 1 < total; j++) { if (Math.floor(positions / 2 ** j) % 2 === 1 && Math.floor(positions / 2 ** (j + 1)) % 2 === 0) runs++; diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index 494c4e3e8..630ebdc67 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -278,6 +278,9 @@ const STREAM_LIB_FNS: ReadonlySet = new Set([ "stream.stdioWritable", "stream.unboxDyn", "stream.dynIterableSource", + "stream.dynSourceValue", + "stream.dynTransformResult", + "stream.unboxDynStage", "stream.handleStream", "stream.unpipeDyn", "stream.workerStdio", @@ -314,6 +317,7 @@ const READABLE_DYN_ASYNC_LIB_FNS: ReadonlySet = new Set([ "stream.duplexFromAsyncFn", "stream.duplexFromGenSignal", "stream.duplexFromAsyncFnSignal", + "stream.unboxDynStage", ]); /** libCall name prefixes of the Readable entry points that await through the dyn-async unit. */ diff --git a/packages/compiler/src/ir/validate.ts b/packages/compiler/src/ir/validate.ts index 45ebf5c79..84751cc06 100644 --- a/packages/compiler/src/ir/validate.ts +++ b/packages/compiler/src/ir/validate.ts @@ -5761,7 +5761,7 @@ function validateFunction( } const lastIsFunction = Math.floor(positions! / 2 ** (total - 1)) % 2 === 1; const helperCount = 3 * pipelinePumpedRuns(total, positions!, flags!); - const groups = helperCount + (destKind === 2 ? 1 : 0) + (flags! & 32 ? 2 : 0); + const groups = helperCount + (destKind >= 2 ? 1 : 0) + (flags! & 32 ? 2 : 0); const cbArgs = e.fn === "sp.pipelineStagesOpts" ? 1 + (flags! & 64 ? 1 : 0) @@ -5776,7 +5776,7 @@ function validateFunction( total > 52 || positions! >= 2 ** total || functions !== k || - destKind === 3 || + (destKind === 3 && e.fn === "stream.composeStages") || (destKind !== 0) !== lastIsFunction || total < 2 || e.args.length !== 5 + n! + k! + groups + cbArgs @@ -5795,7 +5795,7 @@ function validateFunction( err(`libCall ${e.fn} stage function ${i} must be a func`, e.loc); } at2 += k!; - const helpers = helperCount + (destKind === 2 ? 1 : 0); + const helpers = helperCount + (destKind >= 2 ? 1 : 0); for (let i = at2; i < at2 + helpers; i++) { if (e.args[i]?.type.kind !== "func") err(`libCall ${e.fn} helper ${i} must be a func`, e.loc); diff --git a/packages/compiler/test/native-codegen-integration.test.ts b/packages/compiler/test/native-codegen-integration.test.ts index a57d96f01..bdad62203 100644 --- a/packages/compiler/test/native-codegen-integration.test.ts +++ b/packages/compiler/test/native-codegen-integration.test.ts @@ -378,7 +378,7 @@ done: expect(await symbols(helperObject, ["-u"])).toEqual(await symbols(clangObject, ["-u"])); expect(await symbols(helperObject, ["-gU"])).toEqual(await symbols(clangObject, ["-gU"])); expect(await symbols(helperObject, ["-gU"])).toEqual(["0000000000000000 T _main"]); - expect(await symbols(helperObject, ["-u"])).toContain("_scr_runtime_abi_v45"); + expect(await symbols(helperObject, ["-u"])).toContain("_scr_runtime_abi_v46"); const clangExe = join(dir, "clang-program"); const linkDriver = join(dir, "clang-driver.c"); @@ -712,7 +712,7 @@ done: .split("\n"); expect(undefinedSymbols).toContain("_sf_scale"); expect(undefinedSymbols).toContain("_sf_callback_mix"); - expect(undefinedSymbols).toContain("_scr_runtime_abi_v45"); + expect(undefinedSymbols).toContain("_scr_runtime_abi_v46"); }); test("helper and clang object paths retain the same outbound FFI C ABI", async () => { diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7508-pipeline-untyped-source-functions.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7508-pipeline-untyped-source-functions.mjs.json new file mode 100644 index 000000000..4027063d4 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7508-pipeline-untyped-source-functions.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7508-pipeline-untyped-source-functions.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7509-pipeline-untyped-function-stages.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7509-pipeline-untyped-function-stages.mjs.json new file mode 100644 index 000000000..028a5c1c6 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7509-pipeline-untyped-function-stages.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7509-pipeline-untyped-function-stages.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7510-pipeline-untyped-later-iterables.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7510-pipeline-untyped-later-iterables.mjs.json new file mode 100644 index 000000000..be18c801a --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7510-pipeline-untyped-later-iterables.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7510-pipeline-untyped-later-iterables.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7511-pipeline-untyped-stages.cjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7511-pipeline-untyped-stages.cjs.json new file mode 100644 index 000000000..2353cc44c --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7511-pipeline-untyped-stages.cjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7511-pipeline-untyped-stages.cjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7512-pipeline-any-stages.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7512-pipeline-any-stages.ts.json new file mode 100644 index 000000000..acea0e98d --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7512-pipeline-any-stages.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7512-pipeline-any-stages.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7513-pipeline-untyped-stage-errors.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7513-pipeline-untyped-stage-errors.mjs.json new file mode 100644 index 000000000..39a5dba57 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7513-pipeline-untyped-stage-errors.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7513-pipeline-untyped-stage-errors.mjs" + ], + "diags": [] +} diff --git a/packages/runtime-darwin-arm64/scripts/build.mjs b/packages/runtime-darwin-arm64/scripts/build.mjs index 3305d69de..f8f5d0bf1 100644 --- a/packages/runtime-darwin-arm64/scripts/build.mjs +++ b/packages/runtime-darwin-arm64/scripts/build.mjs @@ -366,7 +366,7 @@ async function build() { package: packageManifest.name, version: packageManifest.version, target: RUNTIME_PACK_MATRIX.target, - runtime_abi: { version: 45, marker: "scr_runtime_abi_v45" }, + runtime_abi: { version: 46, marker: "scr_runtime_abi_v46" }, compiler: { command: compiler, identity: compilerVersion, diff --git a/packages/runtime-pack-common/scripts/build.mjs b/packages/runtime-pack-common/scripts/build.mjs index 8c0863b04..ed32f43fb 100644 --- a/packages/runtime-pack-common/scripts/build.mjs +++ b/packages/runtime-pack-common/scripts/build.mjs @@ -469,7 +469,7 @@ async function build() { package: packageManifest.name, version: packageManifest.version, target: matrix.target, - runtime_abi: { version: 45, marker: "scr_runtime_abi_v45" }, + runtime_abi: { version: 46, marker: "scr_runtime_abi_v46" }, compiler: { command: compiler, identity: compilerVersion, diff --git a/packages/runtime/src/scr_console.c b/packages/runtime/src/scr_console.c index 67d4aca15..18c715cb2 100644 --- a/packages/runtime/src/scr_console.c +++ b/packages/runtime/src/scr_console.c @@ -148,7 +148,7 @@ static void scr_enable_utf8_console_output(void) { } #endif -void scr_runtime_abi_v45(void) {} +void scr_runtime_abi_v46(void) {} void scr_init(void) { #ifdef SCR_WORKERS diff --git a/packages/runtime/src/scr_core.h b/packages/runtime/src/scr_core.h index 206463e18..92392897a 100644 --- a/packages/runtime/src/scr_core.h +++ b/packages/runtime/src/scr_core.h @@ -81,7 +81,7 @@ void scr_init(void); /* Program objects emitted by the bundled LLVM helper reference this symbol. * Its versioned spelling makes a mismatched manual runtime link fail before * the program can start. */ -void scr_runtime_abi_v45(void); +void scr_runtime_abi_v46(void); void scr_runtime_workers_v8(void); /* ── the trap funnel (scr_console.c; scr_library.c under -DSCR_LIB) ────── diff --git a/packages/runtime/src/scr_dyn.h b/packages/runtime/src/scr_dyn.h index 2d916a825..63dc0d209 100644 --- a/packages/runtime/src/scr_dyn.h +++ b/packages/runtime/src/scr_dyn.h @@ -1548,6 +1548,9 @@ ScrDyn *scr_dyn_builtin_stream_object(struct ScrStream *s); ScrDyn *scr_dyn_builtin_stream_view(struct ScrStream *s); struct ScrStream *scr_dyn_builtin_stream_check(const ScrDyn *value, double kind); struct ScrStream *scr_dyn_builtin_stream_unbox(const ScrDyn *value, const ScrStr *message); +/* stream.unboxDynStage in those programs (scr_stream_unbox_dyn_stage's + * contract, also taking constructor-function streams). */ +struct ScrStream *scr_dyn_builtin_stream_unbox_stage(const ScrDyn *value, const ScrStr *message); /* stream.dynNative in those programs: scr_stream_dyn_native's contract, * also taking constructor-function streams that keep the runtime's write * and end (+1 or NULL). */ diff --git a/packages/runtime/src/scr_dyn_builtin_stream.c b/packages/runtime/src/scr_dyn_builtin_stream.c index 2875cfa06..52c1e7269 100644 --- a/packages/runtime/src/scr_dyn_builtin_stream.c +++ b/packages/runtime/src/scr_dyn_builtin_stream.c @@ -1752,3 +1752,11 @@ ScrStream *scr_dyn_builtin_stream_unbox(const ScrDyn *value, const ScrStr *messa } return scr_stream_unbox_dyn(value, message); } + +/* stream.unboxDynStage in programs that link this unit: a + * constructor-function stream as scr_dyn_builtin_stream_unbox takes it, + * any other value as scr_stream_unbox_dyn_stage does. */ +ScrStream *scr_dyn_builtin_stream_unbox_stage(const ScrDyn *value, const ScrStr *message) { + if (bcs_of(value) && value->kind == SCR_DYN_OBJ) return scr_dyn_builtin_stream_unbox(value, message); + return scr_stream_unbox_dyn_stage(value, message); +} diff --git a/packages/runtime/src/scr_stream.c b/packages/runtime/src/scr_stream.c index 201d6e34b..a7593b551 100644 --- a/packages/runtime/src/scr_stream.c +++ b/packages/runtime/src/scr_stream.c @@ -93,6 +93,10 @@ struct ScrStreamState { bool is_transform; /* the writable side routes through transform/flush */ bool allow_half_open; bool auto_destroy, emit_close; + /* Duplex.from of a pipeline() argument that is not a stream: the + * pipeline takes it as that stage's stream without wiring the stage + * (scr_stream_unbox_dyn_stage) */ + bool pipeline_body; /* shared lifecycle */ bool destroyed, destroy_calling, error_emitted, close_emitted, error_scheduled, close_scheduled; @@ -3850,7 +3854,9 @@ typedef ScrPromise *(*ScrPipeNextFn)(ScrClosure *, ScrGen *); typedef ScrDyn *(*ScrPipeReadFn)(ScrClosure *, void *); typedef ScrDyn *(*ScrPipeBoxFn)(ScrClosure *, ScrPromise *); -enum { SCR_PIPE_DEST_STREAM, SCR_PIPE_DEST_GEN, SCR_PIPE_DEST_PROMISE }; +/* SCR_PIPE_DEST_DYN: an untyped destination function's result, a + * checked-dynamic value the pipeline classifies (scr_pipe_dest_dyn_kind) */ +enum { SCR_PIPE_DEST_STREAM, SCR_PIPE_DEST_GEN, SCR_PIPE_DEST_PROMISE, SCR_PIPE_DEST_DYN }; /* flags bit 7: the callback is typed code's (stream.pipelineStagesDyn) */ enum { SCR_PIPE_TYPED_CB = 128 }; @@ -3868,7 +3874,9 @@ typedef struct { * async generator destination's PassThrough included), in pipeline * order, or NULL */ ScrClosure **helpers; - ScrClosure *box; /* SCR_PIPE_DEST_PROMISE: boxes its promise as a dyn promise */ + /* SCR_PIPE_DEST_PROMISE: boxes its promise as a dyn promise; + * SCR_PIPE_DEST_DYN: answers the async generator over a dyn iterable */ + ScrClosure *box; } ScrPipeStages; static bool scr_pipe_is_stage(const ScrPipeStages *fs, size_t j) { @@ -4234,6 +4242,71 @@ static void scr_pipe_dest_promise(ScrStreamPipeCtx *ctx, ScrPromise *p /*moves*/ scr_promise_release(scr_async_spawn_after(d->boxed->v.promise, &scr_pipe_dest_entry, d)); } +/* An untyped destination's promise: scr_pipe_dest_promise over a promise + * that already holds dyn values. */ +static void scr_pipe_dest_dyn_promise(ScrStreamPipeCtx *ctx, ScrDyn *boxed /*moves*/, size_t pi, + bool end) { + ScrPipeDest *d = malloc(sizeof *d); + if (!d) scr_stream_oom(); + d->ctx = scr_stream_pipectx_retain_v(ctx); + d->typed = scr_promise_retain(boxed->v.promise); + d->boxed = boxed; + d->pi = pi; + d->end = end; + scr_promise_release(scr_async_spawn_after(d->boxed->v.promise, &scr_pipe_dest_entry, d)); +} + +typedef ScrGen *(*ScrPipeIterFn)(ScrClosure *, ScrDyn *); +static bool scr_stream_dyn_has_method(const ScrDyn *value, const char *key); +static bool scr_stream_dyn_transform_like(const ScrDyn *value); +static void scr_stream_throw_web_stage(void); +static bool scr_stream_dyn_stage_returned_stream(const ScrDyn *value); +static void scr_stream_throw_invalid_return(const char *expected, const char *name, + const ScrDyn *got); + +/* What pipelineImpl does with an untyped destination function's result: + * a promise settles the pipeline's value (the `then` branch), and an + * async iterable, or a { readable, writable } pair's readable side, is + * pumped into the PassThrough. *out answers the promise or that + * iterable's async generator (+1). Other values throw + * ERR_INVALID_RETURN_VALUE, and thenables that are not promises and web + * streams throw the not-supported Error; -1 then. */ +enum { SCR_PIPE_DYN_PROMISE, SCR_PIPE_DYN_ITER }; +static int scr_pipe_dest_dyn_kind(const ScrPipeStages *fs, ScrDyn *r, void **out) { + if (r->kind == SCR_DYN_PROMISE) { + *out = scr_dyn_retain(r); + return SCR_PIPE_DYN_PROMISE; + } + if (r->kind == SCR_DYN_OBJ && scr_stream_dyn_has_method(r, "then")) { + static const char msg[] = + "pipeline destinations that return a thenable other than a promise are not supported yet"; + scr_throw_error_msg_code(SCR_ERR_ERROR, msg, sizeof msg - 1, "SC2020"); + return -1; + } + if (scr_exc_pending() || scr_stream_dyn_stage_returned_stream(r)) return -1; + ScrDyn *read = NULL; + int kind = scr_dyn_iterable_kind(r); + if (kind < 0) return -1; + if (r->kind == SCR_DYN_HANDLE && + (r->v.handle.tag == SCR_DYNH_WEB_STREAM || r->v.handle.tag == SCR_DYNH_WEB_TRANSFORM)) { + scr_stream_throw_web_stage(); + return -1; + } + if (kind == 2) { + read = scr_dyn_retain(r); + } else if (scr_stream_dyn_transform_like(r)) { + read = scr_dyn_obj_read(r, "readable", 8); + } + if (!read) { + if (!scr_exc_pending()) scr_stream_throw_invalid_return("AsyncIterable or Promise", "destination", r); + return -1; + } + ScrGen *g = ((ScrPipeIterFn)fs->box->fn)(fs->box, read); + if (!g) return -1; + *out = g; + return SCR_PIPE_DYN_ITER; +} + static ScrStream *scr_stream_pipeline_ex(size_t n, ScrStream **streams, ScrClosure *cb, ScrStreamErrInv inv, bool end_opt, ScrDyn *signal, ScrAbortAddFn add, const ScrPipeStages *fs, @@ -4294,8 +4367,18 @@ static ScrStream *scr_stream_pipeline_ex(size_t n, ScrStream **streams, ScrClosu : (void *)scr_stream_retain(ret); ret_gen = NULL; void *out = scr_pipe_call_stage(fs, k++, src); + int dyn_kind = -1; + if (!scr_exc_pending() && dest && fs->dest == SCR_PIPE_DEST_DYN) { + ScrDyn *r = out ? out : scr_dyn_retain(scr_dyn_undefined()); + out = NULL; + dyn_kind = scr_pipe_dest_dyn_kind(fs, r, &out); + scr_dyn_release(r); + } if (scr_exc_pending()) { - if (out && dest) scr_promise_release(out); + if (out && dest && fs->dest == SCR_PIPE_DEST_DYN) { + if (dyn_kind == SCR_PIPE_DYN_ITER) scr_gen_release(out); + else scr_dyn_release(out); + } else if (out && dest) scr_promise_release(out); else if (out) scr_gen_release(out); scr_stream_pipectx_drop(ctx); scr_stream_pipectx_release_v(ctx); @@ -4315,9 +4398,12 @@ static ScrStream *scr_stream_pipeline_ex(size_t n, ScrStream **streams, ScrClosu size_t pi = ctx->n++; ctx->streams[pi] = pt; ctx->finish_count++; - if (fs->dest == SCR_PIPE_DEST_GEN) { + if (fs->dest == SCR_PIPE_DEST_GEN || + (fs->dest == SCR_PIPE_DEST_DYN && dyn_kind == SCR_PIPE_DYN_ITER)) { /* pumpToNode(ret, pt, finish, { end }) */ scr_pump_start(ctx, out, fs->helpers + 3 * h++, pt, end); + } else if (fs->dest == SCR_PIPE_DEST_DYN) { + scr_pipe_dest_dyn_promise(ctx, out, pi, end); } else { scr_pipe_dest_promise(ctx, out, fs->box, pi, end); } @@ -4332,6 +4418,20 @@ static ScrStream *scr_stream_pipeline_ex(size_t n, ScrStream **streams, ScrClosu continue; } ScrStream *s = streams[i]; + if (s->st->pipeline_body) { + /* ret = Duplex.from(stream) for an argument that is not a stream: + * no destroyer or 'error' listener, and the previous stage is + * neither piped nor pumped into it */ + s->st->pipeline_body = false; + if (ret_gen) { + scr_gen_release(ret_gen); + ret_gen = NULL; + h++; + } + ret = s; + i++; + continue; + } bool writing = j > 0; if (reading && !scr_pipe_is_stage(fs, j + 1) && (streams[i + 1]->st->close_emitted || streams[i + 1]->st->destroyed)) { @@ -8593,10 +8693,90 @@ ScrStream *scr_stream_unbox_dyn(const ScrDyn *value, const ScrStr *message) { return NULL; } -/* pipeline.js's first stage: a value with pipe() and on() methods is a - * readable node stream, which the stage ladder tests before isIterable; - * a string, or a value with a Symbol.asyncIterator or Symbol.iterator - * method, is an iterable the pipeline pumps into the next stage. */ +/* Whether a checked-dynamic object's member is of type "object". */ +static bool scr_stream_dyn_member_object(const ScrDyn *value, const char *key) { + ScrDyn *m = scr_dyn_obj_read(value, key, strlen(key)); + if (!m) return false; + ScrStr *t = scr_dyn_typeof(m); + bool object = t->len == 6 && memcmp(t->data, "object", 6) == 0; + scr_str_release(t); + scr_dyn_release(m); + return object; +} + +/* pipeline.js's isTransformStream for a value that is not a stream: an + * object whose readable and writable members are both of type "object". */ +static bool scr_stream_dyn_transform_like(const ScrDyn *value) { + if (value->kind == SCR_DYN_HANDLE) return value->v.handle.tag == SCR_DYNH_WEB_TRANSFORM; + return value->kind == SCR_DYN_OBJ && scr_stream_dyn_member_object(value, "readable") && + !scr_exc_pending() && scr_stream_dyn_member_object(value, "writable"); +} + +/* Whether a checked-dynamic object has a function member `key`. */ +static bool scr_stream_dyn_has_method(const ScrDyn *value, const char *key) { + ScrDyn *m = scr_dyn_obj_read(value, key, strlen(key)); + if (!m) return false; + bool fn = m->kind == SCR_DYN_FUNC; + scr_dyn_release(m); + return fn; +} + +/* pipeline.js's isNodeStream and isWebStream for a checked-dynamic value + * that is not a native stream: a stream-like object or a web stream, which + * the pipeline would pipe or pump into and has no lowering for. */ +static bool scr_stream_dyn_stream_like(const ScrDyn *value) { + if (value->kind == SCR_DYN_HANDLE) { + int tag = value->v.handle.tag; + return tag == SCR_DYNH_WEB_STREAM || tag == SCR_DYNH_WEB_TRANSFORM || tag == SCR_DYNH_WEB_WRITABLE; + } + if (value->kind != SCR_DYN_OBJ) return false; + static const char *const state_keys[] = {"_readableState", "_writableState"}; + for (size_t i = 0; i < 2; i++) { + ScrDyn *v = scr_dyn_obj_read(value, state_keys[i], strlen(state_keys[i])); + bool set = v && scr_dyn_truthy(v); + if (v) scr_dyn_release(v); + if (set) return true; + } + bool on = scr_stream_dyn_has_method(value, "on"); + if (on && (scr_stream_dyn_has_method(value, "write") || scr_stream_dyn_has_method(value, "pipe"))) + return true; + if (scr_stream_dyn_has_method(value, "pipeThrough") && + scr_stream_dyn_has_method(value, "getReader") && scr_stream_dyn_has_method(value, "cancel")) + return true; + if (scr_stream_dyn_has_method(value, "getWriter") && scr_stream_dyn_has_method(value, "abort")) + return true; + return scr_stream_dyn_transform_like(value); +} + +/* A checked-dynamic pipeline() stage that the pipeline takes as a stream + * (the stream.unboxDynStage libCall): a boxed native stream or a stream + * handle answers its stream (+1). Any other value that is not stream-like + * or a function takes pipelineImpl's last branch, Duplex.from(stream): + * an iterable answers a readable Duplex the pipeline uses without piping + * the previous stage into it, and values Duplex.from rejects throw its + * ERR_INVALID_ARG_TYPE. Stream-like objects, web streams and functions + * throw `message` as the not-supported Error. */ +ScrStream *scr_stream_unbox_dyn_stage(const ScrDyn *value, const ScrStr *message) { + ScrStream *stream = scr_stream_of_handle(value); + if (!stream) stream = scr_stream_boxed(value); + if (stream) return stream; + if (value->kind == SCR_DYN_FUNC || scr_stream_dyn_stream_like(value)) { + if (!scr_exc_pending()) + scr_throw_error_msg_code(SCR_ERR_ERROR, message->data, message->len, "SC2020"); + return NULL; + } + if (scr_exc_pending()) return NULL; + ScrStream *d = scr_stream_duplex_from_dyn((ScrDyn *)value); + if (d) d->st->pipeline_body = true; + return d; +} + +/* pipeline.js's first stage: a function is a source function, which the + * pipeline calls; a value with pipe() and on() methods is a readable node + * stream, which the stage ladder tests before isIterable; a string, a + * value with a Symbol.asyncIterator or Symbol.iterator method, or a + * { readable, writable } pair is an iterable the pipeline pumps into the + * next stage. */ bool scr_stream_dyn_iterable_source(const ScrDyn *value) { ScrStream *stream = scr_stream_of_handle(value); if (!stream) stream = scr_stream_boxed(value); @@ -8604,7 +8784,8 @@ bool scr_stream_dyn_iterable_source(const ScrDyn *value) { scr_stream_release(stream); return false; } - if (value->kind == SCR_DYN_STR) return true; + if (value->kind == SCR_DYN_STR || value->kind == SCR_DYN_FUNC) return true; + if (value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_WEB_TRANSFORM) return true; if (value->kind == SCR_DYN_OBJ) { ScrDyn *pipe = scr_dyn_obj_read(value, "pipe", 4); if (!pipe) return false; @@ -8617,6 +8798,79 @@ bool scr_stream_dyn_iterable_source(const ScrDyn *value) { scr_dyn_release(on); if (streamish) return false; } + if (scr_stream_dyn_transform_like(value)) return true; + if (scr_exc_pending()) return false; } return scr_dyn_iterable_kind(value) > 0; } + +/* Untyped web streams as pipeline stages have no lowering. */ +static void scr_stream_throw_web_stage(void) { + static const char msg[] = "pipeline stages that are untyped web streams are not supported yet"; + scr_throw_error_msg_code(SCR_ERR_ERROR, msg, sizeof msg - 1, "SC2020"); +} + +/* A native stream returned by an untyped pipeline function, which Node + * pipes or passes on as the stream: throws the not-supported Error. */ +static bool scr_stream_dyn_stage_returned_stream(const ScrDyn *value) { + ScrStream *stream = scr_stream_of_handle(value); + if (!stream) stream = scr_stream_boxed(value); + if (!stream) return false; + scr_stream_release(stream); + static const char msg[] = "pipeline function stages that return a stream are not supported yet"; + scr_throw_error_msg_code(SCR_ERR_ERROR, msg, sizeof msg - 1, "SC2020"); + return true; +} + +/* Node's ERR_INVALID_RETURN_VALUE TypeError: "Expected to be + * returned from the "" function but got ." */ +static void scr_stream_throw_invalid_return(const char *expected, const char *name, + const ScrDyn *got) { + char detail[160]; + const char *type = scr_dyn_specific_type(got, detail, sizeof detail); + char msg[384]; + int n = snprintf(msg, sizeof msg, "Expected %s to be returned from the \"%s\" function but got %s.", + expected, name, type); + if (n < 0) n = 0; + if ((size_t)n >= sizeof msg) n = (int)sizeof msg - 1; + scr_throw_error_msg_code(SCR_ERR_TYPE, msg, (size_t)n, "ERR_INVALID_RETURN_VALUE"); +} + +/* An untyped pipeline function stage's result before the last stage + * (pipelineImpl's `isIterable(ret, true)` check): an async iterable + * answers itself (+1); other values throw ERR_INVALID_RETURN_VALUE naming + * the stage, as `label` ("transform[i]") does. */ +ScrDyn *scr_stream_dyn_transform_result(const ScrDyn *value, const ScrStr *label) { + if (scr_stream_dyn_stage_returned_stream(value)) return NULL; + int kind = scr_dyn_iterable_kind(value); + if (kind < 0) return NULL; + if (kind != 2) { + scr_stream_throw_invalid_return("AsyncIterable", label->data, value); + return NULL; + } + return scr_dyn_retain((ScrDyn *)value); +} + +/* The value a checked-dynamic first stage pumps (pipelineImpl's i === 0 + * branch): for `returned`, a source function's result, which must be + * iterable; otherwise a { readable, writable } pair's readable side, or + * the value itself. +1, or NULL with an exception pending. */ +ScrDyn *scr_stream_dyn_source_value(const ScrDyn *value, bool returned) { + if (!returned) { + if (value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_WEB_TRANSFORM) { + scr_stream_throw_web_stage(); + return NULL; + } + if (scr_stream_dyn_transform_like(value)) return scr_dyn_obj_read(value, "readable", 8); + if (scr_exc_pending()) return NULL; + return scr_dyn_retain((ScrDyn *)value); + } + if (scr_stream_dyn_stage_returned_stream(value)) return NULL; + int kind = scr_dyn_iterable_kind(value); + if (kind < 0) return NULL; + if (kind == 0) { + scr_stream_throw_invalid_return("Iterable, AsyncIterable or Stream", "source", value); + return NULL; + } + return scr_dyn_retain((ScrDyn *)value); +} diff --git a/packages/runtime/src/scr_stream.h b/packages/runtime/src/scr_stream.h index 7acad0eeb..c10978298 100644 --- a/packages/runtime/src/scr_stream.h +++ b/packages/runtime/src/scr_stream.h @@ -149,6 +149,18 @@ ScrStream *scr_stream_unbox_dyn(const struct ScrDyn *value, const ScrStr *messag * to pump rather than as a stream (false with an exception pending when * reading the value's members throws). */ bool scr_stream_dyn_iterable_source(const struct ScrDyn *value); +/* A checked-dynamic pipeline() stage the pipeline takes as a stream: a + * native stream (+1), or Duplex.from of a value that is not stream-like + * or a function, which the pipeline uses without piping into it; NULL + * with an exception otherwise (`message` for the unsupported shapes). */ +ScrStream *scr_stream_unbox_dyn_stage(const struct ScrDyn *value, const ScrStr *message); +/* The iterable pipeline() pumps for a checked-dynamic first stage: a + * source function's result when `returned`, else a { readable, writable } + * pair's readable side or the value (+1, or NULL with an exception). */ +struct ScrDyn *scr_stream_dyn_source_value(const struct ScrDyn *value, bool returned); +/* An untyped function stage's result before the last pipeline stage: the + * async iterable itself (+1), or NULL with ERR_INVALID_RETURN_VALUE. */ +struct ScrDyn *scr_stream_dyn_transform_result(const struct ScrDyn *value, const ScrStr *label); /* Handles that are Transforms (ScrDynHandleOps.transform: Cipheriv and * Decipheriv). scr_stream_of_handle: the handle's Transform (+1), built on * first use, or NULL when the value is not such a handle. diff --git a/tests/corpus/7508-pipeline-untyped-source-functions.mjs b/tests/corpus/7508-pipeline-untyped-source-functions.mjs new file mode 100644 index 000000000..987221ffd --- /dev/null +++ b/tests/corpus/7508-pipeline-untyped-source-functions.mjs @@ -0,0 +1,85 @@ +// pipeline() over untyped first stages that are functions or +// { readable, writable } pairs: a source function is called with +// { signal } while the pipeline is set up and its iterable result is +// pumped; a result that is not iterable throws ERR_INVALID_RETURN_VALUE +// from the callback form and rejects the promise form; a pair pumps its +// readable side. +import { pipeline, Writable, Readable, PassThrough } from "node:stream"; +import { pipeline as pipelineP } from "node:stream/promises"; + +function pick(v) { + return v; +} +function sink(label) { + return new Writable({ + objectMode: true, + write(chunk, _enc, cb) { + console.log(label, "write", JSON.stringify(String(chunk))); + cb(); + }, + final(cb) { + console.log(label, "final"); + cb(); + }, + }); +} + +const arraySource = pick(function (opts) { + console.log("array source called", typeof opts, typeof opts.signal, opts.signal.aborted); + return ["a1", "a2"]; +}); +const before = pipelineP(arraySource, sink("array")); +console.log("after pipeline() returned"); +await before; +console.log("array resolved"); + +await pipelineP(pick(() => "xy"), sink("string")); + +await pipelineP( + pick(async function* ({ signal }) { + console.log("generator source", typeof signal.aborted); + yield "g1"; + await new Promise((r) => setTimeout(r, 1)); + yield "g2"; + }), + pick(async function* (source) { + for await (const chunk of source) yield `[${chunk}]`; + }), + sink("generator"), +); + +await new Promise((resolve) => { + pipeline(pick(() => new Set(["s1", "s2"])), sink("set"), (err) => { + console.log("set done", err); + resolve(undefined); + }); +}); + +// a result that is not iterable +try { + pipeline(pick(() => 5), sink("five"), () => console.log("five callback")); +} catch (err) { + console.log("five threw", err.name, err.code, err.message); +} +try { + await pipelineP(pick(() => ({ value: 1 })), sink("object")); +} catch (err) { + console.log("object rejected", err.name, err.code, err.message); +} + +// a source function that throws +try { + await pipelineP( + pick(() => { + throw new Error("source failed"); + }), + sink("throws"), + ); +} catch (err) { + console.log("throws rejected", err.message); +} + +// a { readable, writable } pair pumps its readable side +const side = new PassThrough(); +await pipelineP(pick({ readable: Readable.from(["p1", "p2"]), writable: side }), sink("pair")); +console.log("done"); diff --git a/tests/corpus/7509-pipeline-untyped-function-stages.mjs b/tests/corpus/7509-pipeline-untyped-function-stages.mjs new file mode 100644 index 000000000..18749e55a --- /dev/null +++ b/tests/corpus/7509-pipeline-untyped-function-stages.mjs @@ -0,0 +1,112 @@ +// pipeline() with untyped stages after the first that are functions: a +// transform is called with the previous stream or generator and +// { signal } while the pipeline is set up, and must return an async +// iterable; an async function destination's value resolves the promise +// form and reaches the callback; an async generator destination feeds +// the PassThrough that pipeline() returns. Results of the wrong kind throw +// ERR_INVALID_RETURN_VALUE naming the stage. A stage after an untyped +// source function or transform receives that stage's own iterator, as +// Node's makeAsyncIterable answers an iterable itself. +import { pipeline, Writable, Readable, PassThrough } from "node:stream"; +import { pipeline as pipelineP } from "node:stream/promises"; + +function pick(v) { + return v; +} +function sink(label) { + return new Writable({ + objectMode: true, + write(chunk, _enc, cb) { + console.log(label, "write", JSON.stringify(String(chunk))); + cb(); + }, + }); +} +const upper = pick(async function* (source, { signal }) { + console.log("upper called", source instanceof Readable, typeof signal.aborted); + for await (const chunk of source) yield String(chunk).toUpperCase(); +}); +const join = pick(async (source) => { + let text = ""; + for await (const chunk of source) text += chunk; + return text; +}); + +await pipelineP(Readable.from(["a", "b"]), upper, sink("transform")); +console.log("joined", await pipelineP(Readable.from(["x", "y"]), upper, join)); +console.log("two transforms", await pipelineP(pick(["m", "n"]), upper, upper, join)); + +await new Promise((resolve) => { + pipeline(Readable.from(["c1", "c2"]), upper, join, (err, value) => { + console.log("callback", err, value); + resolve(undefined); + }); +}); + +// an async generator destination +const wrap = pick(async function* (source) { + for await (const chunk of source) yield `<${chunk}>`; +}); +const out = pipeline(Readable.from(["p1", "p2"]), wrap, (err, value) => { + console.log("generator destination done", err, value); +}); +console.log("returns a PassThrough", out instanceof PassThrough); +for await (const chunk of out) console.log("passthrough", chunk); + +// a destination whose promise rejects +try { + await pipelineP( + Readable.from(["r"]), + pick(async (source) => { + for await (const chunk of source) console.log("rejecting after", chunk); + throw new Error("destination failed"); + }), + ); +} catch (err) { + console.log("rejected", err.message); +} + +// results of the wrong kind +try { + await pipelineP(Readable.from(["i"]), pick(() => 5), sink("number")); +} catch (err) { + console.log("transform result", err.name, err.code, err.message); +} +try { + await pipelineP(Readable.from(["i"]), upper, pick(() => ["sync"]), sink("array")); +} catch (err) { + console.log("second transform result", err.code, err.message); +} +try { + pipeline(Readable.from(["i"]), pick(() => 7), () => console.log("never")); +} catch (err) { + console.log("destination result", err.name, err.code, err.message); +} +// the iterators handed from stage to stage +let transformIter = null; +const handed = await pipelineP( + pick(function* () { + yield "s1"; + yield "s2"; + }), + pick((source) => { + // a sync generator, not an async iterator over it + console.log( + "transform gets the source's iterator", + typeof source[Symbol.asyncIterator], + typeof source[Symbol.iterator], + ); + transformIter = (async function* () { + for await (const chunk of source) yield `${chunk}!`; + })(); + return transformIter; + }), + pick(async (source) => { + console.log("destination gets the transform's iterator", source === transformIter); + let text = ""; + for await (const chunk of source) text += chunk; + return text; + }), +); +console.log("handed", handed); +console.log("done"); diff --git a/tests/corpus/7510-pipeline-untyped-later-iterables.mjs b/tests/corpus/7510-pipeline-untyped-later-iterables.mjs new file mode 100644 index 000000000..7fe6e27b3 --- /dev/null +++ b/tests/corpus/7510-pipeline-untyped-later-iterables.mjs @@ -0,0 +1,64 @@ +// pipeline() with an untyped stage after the first that is not a stream or +// a function: Node takes Duplex.from of it, so an iterable becomes the +// readable stage the next stream is piped from, the stages before it are +// not read and are destroyed when the pipeline finishes, and a value +// Duplex.from rejects throws ERR_INVALID_ARG_TYPE. +import { pipeline, Writable, Readable, Duplex } from "node:stream"; +import { pipeline as pipelineP } from "node:stream/promises"; + +function pick(v) { + return v; +} +function sink(label) { + return new Writable({ + objectMode: true, + write(chunk, _enc, cb) { + console.log(label, "write", JSON.stringify(String(chunk))); + cb(); + }, + }); +} +function watched(label, values) { + const source = Readable.from(values); + source.on("error", (err) => console.log(label, "error", err.code)); + source.on("close", () => console.log(label, "close", source.destroyed)); + return source; +} + +await pipelineP(watched("first", ["unread"]), pick(["z1", "z2"]), sink("array")); +console.log("array resolved"); +await new Promise((r) => setTimeout(r, 5)); + +await new Promise((resolve) => { + pipeline(watched("second", ["unread"]), pick("text"), sink("string"), (err) => { + console.log("string done", err); + resolve(undefined); + }); +}); +await new Promise((r) => setTimeout(r, 5)); + +// a generator stage before the iterable is never read +await pipelineP( + Readable.from(["s"]), + pick(async function* (source) { + console.log("generator stage called"); + for await (const chunk of source) yield chunk; + }), + pick(new Set(["set1", "set2"])), + sink("set"), +); +console.log("set resolved"); + +// the iterable as the last stage is what pipeline() returns +const last = pipeline(Readable.from(["u"]), pick(["tail"]), () => console.log("never")); +console.log(last instanceof Duplex, last.readable, last.writable); +for await (const chunk of last) console.log("last", chunk); + +for (const value of [42, { plain: true }, null]) { + try { + await pipelineP(Readable.from(["i"]), pick(value), sink("rejected")); + } catch (err) { + console.log(err.name, err.code, err.message); + } +} +console.log("done"); diff --git a/tests/corpus/7511-pipeline-untyped-stages.cjs b/tests/corpus/7511-pipeline-untyped-stages.cjs new file mode 100644 index 000000000..124372e12 --- /dev/null +++ b/tests/corpus/7511-pipeline-untyped-stages.cjs @@ -0,0 +1,50 @@ +// A CommonJS helper that passes its untyped parameters to pipeline(): the +// same call runs over streams, function stages and iterables, whichever +// each argument is at run time. +const { pipeline, Transform, Writable, Readable } = require("node:stream"); + +function run(label, source, middle, destination) { + return new Promise((resolve) => { + pipeline(source, middle, destination, (err, value) => { + console.log(label, "done", err ? err.code || err.message : err, value); + resolve(undefined); + }); + }); +} +function sink(label) { + return new Writable({ + objectMode: true, + write(chunk, _enc, cb) { + console.log(label, "write", String(chunk)); + cb(); + }, + }); +} +const double = new Transform({ + objectMode: true, + transform(chunk, _enc, cb) { + cb(null, String(chunk) + String(chunk)); + }, +}); +async function* exclaim(source) { + for await (const chunk of source) yield `${chunk}!`; +} +async function count(source) { + let n = 0; + for await (const _ of source) n++; + return n; +} + +(async () => { + await run("streams", Readable.from(["a", "b"]), double, sink("streams")); + await run("function middle", Readable.from(["c"]), exclaim, sink("function middle")); + await run("function ends", () => ["d", "e", "f"], exclaim, count); + await run("iterable middle", Readable.from(["skipped"]), ["g"], sink("iterable middle")); + await run("generator into stream", ["h"], exclaim, new Transform({ + objectMode: true, + transform(chunk, _enc, cb) { + console.log("transform saw", chunk); + cb(null, chunk); + }, + }).on("data", (d) => console.log("data", d))); +})(); diff --git a/tests/corpus/7512-pipeline-any-stages.ts b/tests/corpus/7512-pipeline-any-stages.ts new file mode 100644 index 000000000..a2039a533 --- /dev/null +++ b/tests/corpus/7512-pipeline-any-stages.ts @@ -0,0 +1,45 @@ +// pipeline() in TypeScript with stages after the first typed any or +// unknown: functions run as function stages, streams are piped, and an +// iterable is taken as Duplex.from of it. +import { pipeline, Readable, Writable, PassThrough } from "node:stream"; +import { pipeline as pipelineP } from "node:stream/promises"; + +function sink(label: string): Writable { + return new Writable({ + objectMode: true, + write(chunk: unknown, _enc, cb) { + console.log(label, JSON.stringify(chunk)); + cb(); + }, + }); +} + +async function main(): Promise { + const shout: any = async function* (source: any) { + for await (const chunk of source) yield String(chunk).toUpperCase(); + }; + await pipelineP(Readable.from(["a", "b"]), shout, sink("function")); + + const total: unknown = async (source: any) => { + let sum = 0; + for await (const chunk of source) sum += Number(chunk); + return sum; + }; + const sum = await pipelineP(Readable.from(["1", "2", "3"]), total as any); + console.log("sum", sum); + + const relay: any = new PassThrough({ objectMode: true }); + await pipelineP(Readable.from([{ k: 1 }]), relay, sink("stream")); + + const values: any = ["v1", "v2"]; + await pipelineP(Readable.from(["unread"]), values, sink("iterable")); + + await new Promise((resolve) => { + pipeline(Readable.from(["x"]), shout, sink("callback"), (err: NodeJS.ErrnoException | null) => { + console.log("callback done", err == null); + resolve(); + }); + }); +} + +main().then(() => console.log("done")); diff --git a/tests/corpus/7513-pipeline-untyped-stage-errors.mjs b/tests/corpus/7513-pipeline-untyped-stage-errors.mjs new file mode 100644 index 000000000..ade4370b4 --- /dev/null +++ b/tests/corpus/7513-pipeline-untyped-stage-errors.mjs @@ -0,0 +1,86 @@ +// Untyped pipeline function stages next to typed stages: an untyped stage +// after a typed generator stage or a Transform, the { signal } an untyped +// stage receives aborting when the pipeline fails, and an untyped stage +// that throws while the pipeline is set up. +import { pipeline, Writable, Readable, Transform } from "node:stream"; +import { pipeline as pipelineP } from "node:stream/promises"; + +function pick(v) { + return v; +} +function sink(label) { + return new Writable({ + objectMode: true, + write(chunk, _enc, cb) { + console.log(label, "write", JSON.stringify(String(chunk))); + cb(); + }, + }); +} + +await pipelineP( + Readable.from(["a", "b"]), + async function* (source) { + for await (const chunk of source) yield `${chunk}1`; + }, + pick(async function* (source) { + for await (const chunk of source) yield `${chunk}2`; + }), + sink("after generator"), +); + +await pipelineP( + Readable.from(["q"]), + new Transform({ + transform(chunk, _enc, cb) { + cb(null, chunk); + }, + }), + pick(async (source) => { + for await (const chunk of source) console.log("destination saw", String(chunk)); + }), +); + +let seen; +try { + await pipelineP( + Readable.from(["x", "y"]), + pick(async function* (source, { signal }) { + seen = signal; + signal.addEventListener("abort", () => console.log("signal abort event")); + for await (const chunk of source) yield chunk; + }), + new Writable({ + write(_chunk, _enc, cb) { + cb(new Error("write failed")); + }, + }), + ); +} catch (err) { + console.log("rejected", err.message, seen.aborted); +} + +try { + pipeline( + Readable.from(["t"]), + pick(() => { + throw new Error("stage threw"); + }), + sink("never"), + () => console.log("never called"), + ); +} catch (err) { + console.log("callback form threw", err.message); +} +try { + await pipelineP( + Readable.from(["t"]), + pick(() => { + throw new Error("stage threw again"); + }), + sink("never"), + ); +} catch (err) { + console.log("promise form rejected", err.message); +} +console.log("done"); diff --git a/tests/harness/corpus-costs/7508-pipeline-untyped-source-functions.mjs.json b/tests/harness/corpus-costs/7508-pipeline-untyped-source-functions.mjs.json new file mode 100644 index 000000000..805df1394 --- /dev/null +++ b/tests/harness/corpus-costs/7508-pipeline-untyped-source-functions.mjs.json @@ -0,0 +1 @@ +{ "plain": 4900, "san": 6400 } diff --git a/tests/harness/corpus-costs/7509-pipeline-untyped-function-stages.mjs.json b/tests/harness/corpus-costs/7509-pipeline-untyped-function-stages.mjs.json new file mode 100644 index 000000000..93a0d0f3b --- /dev/null +++ b/tests/harness/corpus-costs/7509-pipeline-untyped-function-stages.mjs.json @@ -0,0 +1 @@ +{ "plain": 6100, "san": 8500 } diff --git a/tests/harness/corpus-costs/7510-pipeline-untyped-later-iterables.mjs.json b/tests/harness/corpus-costs/7510-pipeline-untyped-later-iterables.mjs.json new file mode 100644 index 000000000..e1920ef92 --- /dev/null +++ b/tests/harness/corpus-costs/7510-pipeline-untyped-later-iterables.mjs.json @@ -0,0 +1 @@ +{ "plain": 5100, "san": 8600 } diff --git a/tests/harness/corpus-costs/7511-pipeline-untyped-stages.cjs.json b/tests/harness/corpus-costs/7511-pipeline-untyped-stages.cjs.json new file mode 100644 index 000000000..eafd03265 --- /dev/null +++ b/tests/harness/corpus-costs/7511-pipeline-untyped-stages.cjs.json @@ -0,0 +1 @@ +{ "plain": 5300, "san": 6900 } diff --git a/tests/harness/corpus-costs/7512-pipeline-any-stages.ts.json b/tests/harness/corpus-costs/7512-pipeline-any-stages.ts.json new file mode 100644 index 000000000..ac0e8497d --- /dev/null +++ b/tests/harness/corpus-costs/7512-pipeline-any-stages.ts.json @@ -0,0 +1 @@ +{ "plain": 4500, "san": 6100 } diff --git a/tests/harness/corpus-costs/7513-pipeline-untyped-stage-errors.mjs.json b/tests/harness/corpus-costs/7513-pipeline-untyped-stage-errors.mjs.json new file mode 100644 index 000000000..f363efcf0 --- /dev/null +++ b/tests/harness/corpus-costs/7513-pipeline-untyped-stage-errors.mjs.json @@ -0,0 +1 @@ +{ "plain": 4700, "san": 6300 } From d74cc3b8bdd7e140bc1c81d3341da680d7bb540e Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 16:16:41 -0700 Subject: [PATCH 036/128] Report which type failures localized failure would turn into dynamic slots Stage L0 of the localized-failure design, report-only: no lowering changes. A type with no static lowering poisons the slot that holds it, and the poison rejects the declaration around it (a class, a signature, a declaration statement); each later use then fails on its own line. This records, on the committed diagnostics, where each type failure sits, whether a checked dynamic slot would keep the program's meaning, and which rejected declarations each failing statement used. coverage --explain-dynamic turns that into the would-be dynamic slot list with the cascade each slot clears, and the counts of errors that would disappear through stages L2 and L4. Co-Authored-By: Claude Opus 5.5 --- packages/compiler/src/coverage/report.ts | 60 +++++- .../compiler/src/diagnostics/diagnostic.ts | 58 ++++++ packages/compiler/src/diagnostics/envelope.ts | 21 ++ .../src/frontend/lowering/lower-classes.ts | 9 +- .../src/frontend/lowering/lower-stmts.ts | 41 +++- .../compiler/src/frontend/lowering/lowerer.ts | 187 ++++++++++++++--- .../src/frontend/lowering/type-failure.ts | 195 ++++++++++++++++++ .../compiler/src/frontend/tier-analysis.ts | 183 +++++++++++++++- tests/coverage-fixtures/localized-failure.ts | 53 +++++ .../coverage-explain-localized-failure.txt | 49 +++++ tests/harness/coverage.test.ts | 32 +++ 11 files changed, 842 insertions(+), 46 deletions(-) create mode 100644 packages/compiler/src/frontend/lowering/type-failure.ts create mode 100644 tests/coverage-fixtures/localized-failure.ts create mode 100644 tests/harness/__snapshots__/coverage-explain-localized-failure.txt diff --git a/packages/compiler/src/coverage/report.ts b/packages/compiler/src/coverage/report.ts index 58a2cafa6..dabbc9617 100644 --- a/packages/compiler/src/coverage/report.ts +++ b/packages/compiler/src/coverage/report.ts @@ -24,7 +24,11 @@ import { import { renderDiagnostics } from "../diagnostics/render.js"; import type { LowerStats } from "../frontend/lowering/lowerer.js"; import type { ProvenanceSources } from "../frontend/provenance-registry.js"; -import type { DemotionUnit, TierReport } from "../frontend/tier-analysis.js"; +import type { + DemotionUnit, + LocalizedFailureReport, + TierReport, +} from "../frontend/tier-analysis.js"; import type { WasmModuleReport } from "../wasm/discover.js"; import { describe as describeReason, @@ -668,6 +672,26 @@ function tiersEnvelope(tiers: TierReport, locator: SourceLocator): TiersEnvelope ...at(r.loc), })), units: tiers.units.map((u) => ({ ...unit(u), requests: u.requests, sites: u.sites })), + localizedFailure: { + errors: tiers.localizedFailure.errors, + typeFailures: tiers.localizedFailure.typeFailures, + cascades: tiers.localizedFailure.cascades, + clearedThroughL2: tiers.localizedFailure.clearedThroughL2, + clearedThroughL4: tiers.localizedFailure.clearedThroughL4, + remainingByCode: tiers.localizedFailure.remainingByCode, + slots: tiers.localizedFailure.slots.map((slot) => ({ + ...at(slot.loc), + slot: slot.slot, + name: slot.name, + declaredType: slot.declaredType, + family: slot.family, + code: slot.code, + message: slot.message, + stage: slot.stage, + ...(slot.rejects !== null ? { rejects: slot.rejects } : {}), + cascade: slot.cascade, + })), + }, }; } @@ -695,6 +719,39 @@ function unitMatches(u: DemotionUnit, query: string): boolean { ); } +const SLOTS_SHOWN = 40; + +/** The localized-failure section of --explain-dynamic (report-only): the + * committed type failures that would become checked dynamic slots, and + * the cascade each one causes today. */ +function renderLocalizedFailure( + report: LocalizedFailureReport, + out: string[], + c: (code: string, s: string) => string, + where: (loc: { file: string; start: number }) => string, +): void { + if (report.typeFailures.degradable === 0 && report.typeFailures.refused === 0) return; + out.push(""); + out.push( + ` ${report.slots.length} would-be dynamic slot${report.slots.length === 1 ? "" : "s"} ${c(DIM, "(localized failure, report-only: type failures a checked dynamic slot would hold)")}`, + ); + out.push( + ` ${c(DIM, `${report.errors} errors: ${report.clearedThroughL2} clear with declaration slots (L1-L2), ${report.clearedThroughL4} with member and expression slots too (L3-L4); ${report.cascades} cascade${report.cascades === 1 ? "" : "s"} attributed; ${report.typeFailures.refused} type failure${report.typeFailures.refused === 1 ? " stays" : "s stay"} refused`)}`, + ); + for (const slot of report.slots.slice(0, SLOTS_SHOWN)) { + const cascade = slot.cascade > 0 ? `, clears ${slot.cascade}` : ""; + out.push( + ` ${slot.stage} ${slot.slot} ${slot.name}: ${capMessage(slot.declaredType)} ${c(DIM, `${where(slot.loc)} (${slot.code} ${slot.family}${cascade})`)}`, + ); + if (slot.rejects !== null) + out.push(` ${c(DIM, `rejects ${slot.rejects.split(" @")[0]}`)}`); + } + if (report.slots.length > SLOTS_SHOWN) + out.push( + ` ${c(DIM, `${report.slots.length - SLOTS_SHOWN} more (--print=diagnostics lists all)`)}`, + ); +} + /** `scriptc coverage --explain-dynamic[=]`: the dynamic tier today * and the demotion chains the report-only analysis computed. With a query, * only units whose name matches it (`x`, `Point.x`, `parse:x`). */ @@ -735,6 +792,7 @@ export function renderExplainDynamic( (excluded > 0 ? c(DIM, `, ${excluded} excluded by policy`) : ""), ); } + if (query === undefined) renderLocalizedFailure(tiers.localizedFailure, out, c, where); const units = tiers.units.filter((u) => query === undefined || unitMatches(u, query)); if (query !== undefined && units.length === 0) { out.push(` no demoted unit matches '${query}'`); diff --git a/packages/compiler/src/diagnostics/diagnostic.ts b/packages/compiler/src/diagnostics/diagnostic.ts index 8010cbb17..534e03c07 100644 --- a/packages/compiler/src/diagnostics/diagnostic.ts +++ b/packages/compiler/src/diagnostics/diagnostic.ts @@ -110,6 +110,64 @@ export interface ScrDiagnostic { * and class member body: it throws when the module initializes, which is * program startup for a module the entry imports. */ startup?: true; + /** Localized failure, report-only (stage L0): set where a type with no + * static lowering poisoned a slot (Lowerer.badType and the dyn class + * field policy). Never part of the rendered message. */ + typeFailure?: TypeFailure; + /** Localized failure, report-only: the declaration this diagnostic + * rejected, as a failure-group key. Set when a reference flushes a + * deferred declaration's diagnostics, and on the diagnostics of a + * declaration statement whose bindings were blocked. */ + rejects?: string; + /** Localized failure, report-only: the failure groups (rejected + * declarations, blocked statements) that the statement committing this + * diagnostic used. A cascade clears when every one of them would + * degrade instead of failing. */ + cause?: readonly string[]; +} + +/** Where a type failure sits (localized-failure design §3.6): a + * declaration slot, a member of a declared type, or an expression's own + * type. */ +export type TypeFailureSlot = + | "field" + | "param" + | "return" + | "local" + | "global" + | "loop" + | "member" + | "expression"; + +/** Which badType branch (or policy fence) refused the type. */ +export type TypeFailureFamily = + | "node-types" + | "fetch-ambient" + | "enum-object" + | "stdlib-index" + | "index-signature" + | "package" + | "generic-signature" + | "overloads" + | "intersection" + | "component" + | "stdlib-nominal" + | "record-member" + | "unsupported" + | "dyn-field-policy"; + +/** A type failure's structured payload: what the commit points of the + * localized-failure design inspect (PoisonError.failure carries the same + * object). `degradable` is the §3.7 classification: a checked-dynamic slot + * would keep the program's meaning. */ +export interface TypeFailure { + slot: TypeFailureSlot; + /** The slot's name (`_customTools`, `listAll`, `x`), or the expression + * text for expression slots. */ + name: string; + declaredType: string; + family: TypeFailureFamily; + degradable: boolean; } /** SC3002–SC3004 — native-helper target, installation, and execution diff --git a/packages/compiler/src/diagnostics/envelope.ts b/packages/compiler/src/diagnostics/envelope.ts index bdb545ff3..e64f35824 100644 --- a/packages/compiler/src/diagnostics/envelope.ts +++ b/packages/compiler/src/diagnostics/envelope.ts @@ -114,6 +114,27 @@ export interface TiersEnvelope { message: string; })[]; units: (TierUnitPosition & { requests: number; sites: number })[]; + /** Localized failure (report-only): committed type failures that would + * become checked dynamic slots, and what they would clear. */ + localizedFailure: { + errors: number; + typeFailures: { degradable: number; refused: number }; + cascades: number; + clearedThroughL2: number; + clearedThroughL4: number; + remainingByCode: Record; + slots: (SourcePosition & { + slot: string; + name: string; + declaredType: string; + family: string; + code: string; + message: string; + stage: string; + rejects?: string; + cascade: number; + })[]; + }; } export interface DiagnosticsEnvelope { diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index d941d7b60..2c0145c34 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -2542,8 +2542,7 @@ export function collectClassShapeInner( (member.type !== undefined || (lowerer.typeOf(member.name).flags & ts.TypeFlags.Any) === 0) ) { - lowerer.unsupported( - "SC1090", + lowerer.dynFieldPolicyFence( member.name, `${dynFieldTypeSpelling(lowerer, member.name)}-typed static fields`, ); @@ -3059,8 +3058,7 @@ export function collectClassShapeInner( !isJsSourceFile(ts.getSourceFileOfNode(member)) && !lowerer.classFieldStoresDyn(lowerer.typeOf(member.name)) ) { - lowerer.unsupported( - "SC1090", + lowerer.dynFieldPolicyFence( member.name, `${dynFieldTypeSpelling(lowerer, member.name)}-typed class fields`, ); @@ -3197,8 +3195,7 @@ export function collectClassShapeInner( if (type.kind === "void") lowerer.badType(p.name, lowerer.typeOf(p.name)); // The class-field dyn rule verbatim (KEEP NARROW). if (type.kind === "dyn" && !lowerer.classFieldStoresDyn(lowerer.typeOf(p))) { - lowerer.unsupported( - "SC1090", + lowerer.dynFieldPolicyFence( p.name, `${dynFieldTypeSpelling(lowerer, p)}-typed class fields`, ); diff --git a/packages/compiler/src/frontend/lowering/lower-stmts.ts b/packages/compiler/src/frontend/lowering/lower-stmts.ts index 84196476a..4cf3a342c 100644 --- a/packages/compiler/src/frontend/lowering/lower-stmts.ts +++ b/packages/compiler/src/frontend/lowering/lower-stmts.ts @@ -41,6 +41,8 @@ import { isTimeValueDateDeclaration } from "./date-values.js"; import { bindingSource } from "../binding-source.js"; import { lowerConstructorReturn } from "./constructor-returns.js"; import type { Lowerer } from "./lowerer.js"; +import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js"; +import { statementGroupKey } from "./type-failure.js"; import { cjsExportValueByName, cjsNamespaceDestructureOf, @@ -750,6 +752,8 @@ export function lowerStmts(lowerer: Lowerer, stmts: readonly ts.Statement[]): Ir if (!lowerer.suppressStats) lowerer.countStatement(stmt, sf?.fileName); const diagsBefore = lowerer.diags.length; const sinkMark = lowerer.diagSinkMark(); + const touched = new Set(); + lowerer.failureTouches.push(touched); try { let lowered: IrStmt | IrStmt[] | null; let appended = false; @@ -813,7 +817,17 @@ export function lowerStmts(lowerer: Lowerer, stmts: readonly ts.Statement[]): Ir throw e; } if (!lowerer.suppressStats) lowerer.countStatementFailed(stmt, sf?.fileName); - lowerer.noteBlockedBindings(stmt); + // Localized failure (report-only): the statement's committed + // diagnostics that are not themselves type failures or rejected + // declarations are cascades of the rejected declarations it used. + const committed = + lowerer.diagSink === null && !deferFences ? lowerer.diags.slice(diagsBefore) : []; + if (touched.size > 0) { + const cause = [...touched]; + for (const d of committed) + if (d.typeFailure === undefined && d.rejects === undefined) d.cause ??= cause; + } + lowerer.noteBlockedBindings(stmt, committed); // The runtime-fence conversion (JS sources, direct diagnostics // only — a capture wrapper in force means collection owns the // report). The statement's diagnostics move OFF the build and @@ -837,6 +851,8 @@ export function lowerStmts(lowerer: Lowerer, stmts: readonly ts.Statement[]): Ir const fence = lowerer.capturedRuntimeFence(sinkMark, stmt); if (fence) out.push(fence); } + } finally { + lowerer.failureTouches.pop(); } } // Each acquisition protects the remainder of its lexical statement @@ -1522,7 +1538,11 @@ function noteEarlyReadVar(lowerer: Lowerer, symbol: ts.Symbol, local: IrLocal): * lowerVarDecl's salvage path declares the local when it can, and * resolution checks locals/globals before the fallthroughs consult * blockedBindings. */ -export function noteBlockedBindings(lowerer: Lowerer, stmt: ts.Statement): void { +export function noteBlockedBindings( + lowerer: Lowerer, + stmt: ts.Statement, + diags: readonly ScrDiagnostic[] = [], +): void { let list: ts.VariableDeclarationList | null = null; if (ts.isVariableStatement(stmt)) list = stmt.declarationList; else if ( @@ -1533,12 +1553,20 @@ export function noteBlockedBindings(lowerer: Lowerer, stmt: ts.Statement): void list = stmt.initializer; } if (!list) return; + // Localized failure (report-only): the bindings form one failure group, + // the statement, whose diagnostics are the group's. + const group = statementGroupKey(stmt); + let bound = false; for (const decl of list.declarations.nodes) { for (const nameNode of boundIdentifiersOf(decl.name)) { const symbol = lowerer.checker.getSymbolAtLocation(nameNode); - if (symbol) lowerer.blockedBindings.add(symbol); + if (!symbol) continue; + lowerer.blockedBindings.add(symbol); + if (!lowerer.rejectedGroups.has(symbol)) lowerer.rejectedGroups.set(symbol, group); + bound = true; } } + if (bound) for (const d of diags) d.rejects ??= group; } /** True when a reference/assignment fell through resolution because the @@ -1548,12 +1576,13 @@ export function noteBlockedBindings(lowerer: Lowerer, stmt: ts.Statement): void * flushed by the emit pass). */ export function isBlockedBinding(lowerer: Lowerer, symbol: ts.Symbol | null): boolean { if (!symbol) return false; - return ( + const blocked = lowerer.blockedBindings.has(symbol) || lowerer.deferredDiags.has(symbol) || lowerer.flushedSymbols.has(symbol) || - lowerer.alreadyFlushed.has(symbol) - ); + lowerer.alreadyFlushed.has(symbol); + if (blocked) lowerer.touchRejected(symbol); + return blocked; } /** Lowers a statement in a fresh lexical scope (if/while/for bodies). */ diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 634c361c2..65b66c298 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -204,7 +204,12 @@ import { isBundledShimForwarder } from "../package-shims.js"; import { erasedTypeOnlyImport } from "../type-only-imports.js"; import { literalValues } from "../literal-values.js"; import { discriminantOwners, literalUnionArm, type UnionLiteral } from "../union-discriminants.js"; -import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js"; +import type { + ScrDiagnostic, + TypeFailure, + TypeFailureFamily, +} from "../../diagnostics/diagnostic.js"; +import { declarationGroupKey, typeFailureOf } from "./type-failure.js"; import { unsupportedAnyOperationDiag, blockedBindingUseDiag, @@ -713,7 +718,16 @@ interface GenericDemandOwner { classDemands: ClassInfo[]; } -export class PoisonError extends Error {} +export class PoisonError extends Error { + /** Set when a type with no static lowering poisoned a slot (badType and + * the dyn class field policy): what failed, for the localized-failure + * commit points. Report-only in stage L0. */ + readonly failure: TypeFailure | undefined; + constructor(failure?: TypeFailure) { + super(); + this.failure = failure; + } +} /** A function-shaped value that exists only in the compiler's static * projection graph. Declared-function aliases point at the original @@ -3697,6 +3711,15 @@ export class Lowerer { * the fallthroughs report the inherited-blocker cascade (SC2004) * instead of misattributing the reference. */ readonly blockedBindings = new Set(); + /** Localized failure, report-only: the failure group (type-failure.ts) + * of each declaration whose rejection reached the build — a flushed + * deferred declaration, or a binding of a poisoned declaration + * statement. */ + readonly rejectedGroups = new Map(); + /** One frame per statement lowerStmts is lowering: the failure groups + * its lowering touched. A statement that then poisons attributes its + * diagnostics to them (ScrDiagnostic.cause). */ + readonly failureTouches: Set[] = []; /** True while collectProgram runs: resolution helpers must not flush * deferred diagnostics (collection itself resolves symbols — extends * clauses — and collection order must not decide what reports). */ @@ -9177,7 +9200,11 @@ export class Lowerer { this.diagSink.push(d); return; } - if (pending) this.commitFlush(pending.symbol, pending.source); + if (pending) { + this.commitFlush(pending.symbol, pending.source); + const group = this.rejectedGroups.get(pending.symbol); + if (group !== undefined) d.rejects ??= group; + } // One site, one report: some declarations map a type twice (module // globals pre-register before their initializers lower) — an exact // duplicate (code + span + message) adds noise, not information. @@ -9232,6 +9259,35 @@ export class Lowerer { return (this.typeOf(node).flags & ts.TypeFlags.Any) !== 0; } + /** badType's commit: the diagnostic carries the structured type + * failure (report-only in stage L0), and so does the poison. */ + private typeFail( + node: ts.Node, + type: ts.Type, + family: TypeFailureFamily, + diag: ScrDiagnostic, + ): never { + const failure = typeFailureOf(node, this.checker.typeToString(type), family); + diag.typeFailure = failure; + this.pushDiag(diag); + throw new PoisonError(failure); + } + + /** The SC1090 refusal of checked-dynamic class fields in TypeScript + * (classFieldStoresDyn): a policy fence, not a missing representation, + * so its failure is recorded as degradable. */ + dynFieldPolicyFence(node: ts.Node, feature: string): never { + const diag = unsupportedDiag("SC1090", locOf(node), feature); + const failure = typeFailureOf( + node, + this.checker.typeToString(this.typeOf(node)), + "dyn-field-policy", + ); + diag.typeFailure = failure; + this.pushDiag(diag); + throw new PoisonError(failure); + } + badType(node: ts.Node, type: ts.Type): never { const widened = this.checker.getBaseTypeOfLiteralType(type); // Types declared by the ADOPTED @types/node (Buffer, NodeJS.Timeout, @@ -9243,8 +9299,12 @@ export class Lowerer { // applies to node-typed values. const typeSym = widened.getAliasSymbol() ?? widened.getSymbol(); if (this.nodeTypesOnlySymbol(typeSym)) { - this.pushDiag(noLoweringDiag(this.checker.typeToString(type), locOf(node), undefined, true)); - throw new PoisonError(); + this.typeFail( + node, + type, + "node-types", + noLoweringDiag(this.checker.typeToString(type), locOf(node), undefined, true), + ); } // Engine-backed ambient TYPES in a STATIC build report the per-site // SC2012 rather than the generic supported-types recitation. Native @@ -9255,10 +9315,12 @@ export class Lowerer { (FETCH_AMBIENT_TYPES as readonly string[]).includes(ts.symbolName(typeSym)) && this.isStdlibSymbol(typeSym) ) { - this.pushDiag( + this.typeFail( + node, + type, + "fetch-ambient", unsupportedNativeApiDiag(`a value of type '${ts.symbolName(typeSym)}'`, locOf(node)), ); - throw new PoisonError(); } // ENUM OBJECTS (`typeof e` — a numeric enum's type carries the // reverse-map index signature, a string enum's just its members): @@ -9267,14 +9329,16 @@ export class Lowerer { // as the per-site identifier fence — never the index-signature // recitation. if (typeSym && (typeSym.flags & ts.SymbolFlags.Enum) !== 0) { - this.pushDiag( + this.typeFail( + node, + type, + "enum-object", unsupportedDiag( "SC1090", locOf(node), `enum objects as values ('${ts.symbolName(typeSym)}' — member reads like '${ts.symbolName(typeSym)}.X' compile to constants; the object itself has no runtime representation)`, ), ); - throw new PoisonError(); } // Would-be records with INDEX SIGNATURES (`Record`, // `{ [k: string]: T }`) get the index-signature fence (SC2006) naming @@ -9304,19 +9368,26 @@ export class Lowerer { this.isStdlibFile(ts.getSourceFileOfNode(d)), ) ) { - this.pushDiag(noLoweringDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "stdlib-index", + noLoweringDiag(this.checker.typeToString(type), locOf(node)), + ); } - this.pushDiag(indexSignatureTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "index-signature", + indexSignatureTypeDiag(this.checker.typeToString(type), locOf(node)), + ); } // Attribute an unsupported package type to its package. { const pkg = this.npmPackageOf(widened); if (pkg) { - this.pushDiag(unsupportedPackageValueDiag(pkg, locOf(node))); - throw new PoisonError(); + this.typeFail(node, type, "package", unsupportedPackageValueDiag(pkg, locOf(node))); } } // A type that keeps a GENERIC call signature (`(x: T) => T` slots, @@ -9332,8 +9403,12 @@ export class Lowerer { this.checker.getCallSignatures(p).some((s) => s.getTypeParameters().length > 0), ) ) { - this.pushDiag(genericSignatureTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "generic-signature", + genericSignatureTypeDiag(this.checker.typeToString(type), locOf(node)), + ); } } // STANDARD-LIBRARY nominal provenance, decided once: interface/class @@ -9353,16 +9428,24 @@ export class Lowerer { // generic overload set keeps the monomorphization story: a value of a // multi-signature type has no single compiled signature to hold. if (!stdlibNominal && this.checker.getCallSignatures(widened).length > 1) { - this.pushDiag(overloadedSignatureTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "overloads", + overloadedSignatureTypeDiag(this.checker.typeToString(type), locOf(node)), + ); } // INTERSECTIONS that resolved to no lowering (SC2008). The ones that // compile never get here: member intersections intern through the // record path, callable hybrids map to '%call' records, and pinned // mixin instantiations resolve by chain structure. if (widened.isIntersectionType()) { - this.pushDiag(intersectionTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "intersection", + intersectionTypeDiag(this.checker.typeToString(type), locOf(node)), + ); } // SUPPORTED shapes over a component outside its slot (SC2009): the // Map/Set domains, array/tuple elements, union arms, function @@ -9374,8 +9457,12 @@ export class Lowerer { { const detail = describeComponentBlocker(widened, this.typeCtx); if (detail !== null) { - this.pushDiag(componentTypeDiag(this.checker.typeToString(type), detail, locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "component", + componentTypeDiag(this.checker.typeToString(type), detail, locOf(node)), + ); } } // STANDARD-LIBRARY nominal types with no lowering at all: the SC2020 @@ -9405,26 +9492,36 @@ export class Lowerer { TextDecoder: "TextDecoder instances support recognized labels, fatal/ignoreBOM option literals, and streaming UTF-8/UTF-16/single-byte decode; runtime option objects remain unsupported", }; - this.pushDiag( + this.typeFail( + node, + type, + "stdlib-nominal", noLoweringDiag( this.checker.typeToString(type), locOf(node), typeHints[ts.symbolNameOf(stdlibOwnSym) ?? ""], ), ); - throw new PoisonError(); } // USER record shapes blocked by ONE member (SC2009's record arm): // name the member and its type. { const detail = describeRecordMemberBlocker(widened, this.typeCtx); if (detail !== null) { - this.pushDiag(componentTypeDiag(this.checker.typeToString(type), detail, locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "record-member", + componentTypeDiag(this.checker.typeToString(type), detail, locOf(node)), + ); } } - this.pushDiag(unsupportedTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); + this.typeFail( + node, + type, + "unsupported", + unsupportedTypeDiag(this.checker.typeToString(type), locOf(node)), + ); } /** The lib fence (SC2020): a reached use of standard-library surface @@ -12067,12 +12164,35 @@ export class Lowerer { this.reportDeferred(symbol); } + /** A statement's lowering used a declaration: if that declaration was + * rejected, the statement's own failure (if any) is its cascade. */ + touchRejected(symbol: ts.Symbol): void { + const group = this.rejectedGroups.get(symbol); + if (group === undefined) return; + const frame = this.failureTouches[this.failureTouches.length - 1]; + if (frame !== undefined) frame.add(group); + } + + /** Records a declaration whose deferred diagnostics reached the build: + * its failure group, on the group's diagnostics too. */ + private noteRejected(symbol: ts.Symbol, diags: readonly ScrDiagnostic[]): void { + let group = this.rejectedGroups.get(symbol); + if (group === undefined) { + group = declarationGroupKey(symbol); + this.rejectedGroups.set(symbol, group); + } + for (const d of diags) d.rejects ??= group; + } + /** flushDeferred without the collection-pass guard: for declarations * whose diagnostics must report eagerly (class statements with * declaration-time code, extended bases — collectClassShapeDeferring). */ reportDeferred(symbol: ts.Symbol): void { const diags = this.deferredDiags.get(symbol); - if (!diags) return; + if (!diags) { + this.touchRejected(symbol); + return; + } if (this.alreadyFlushed.has(symbol)) { this.deferredDiags.delete(symbol); // the emit pass reported these return; @@ -12080,7 +12200,9 @@ export class Lowerer { if (this.diagSink === null) { this.deferredDiags.delete(symbol); this.flushedSymbols.add(symbol); + this.noteRejected(symbol, diags); for (const d of diags) this.pushDiag(d); + this.touchRejected(symbol); return; } // A capture buffer is active (a probe, or another declaration's @@ -12097,6 +12219,7 @@ export class Lowerer { * (the declaration counts as flushed for the coverage remainder). */ private commitFlush(symbol: ts.Symbol, source: ScrDiagnostic): void { this.flushedSymbols.add(symbol); + this.noteRejected(symbol, [source]); const list = this.deferredDiags.get(symbol); if (!list) return; const index = list.indexOf(source); @@ -13222,8 +13345,8 @@ export class Lowerer { return lowerStmts(this, stmts); } - noteBlockedBindings(stmt: ts.Statement): void { - return noteBlockedBindings(this, stmt); + noteBlockedBindings(stmt: ts.Statement, diags?: readonly ScrDiagnostic[]): void { + return noteBlockedBindings(this, stmt, diags); } isBlockedBinding(symbol: ts.Symbol | null): boolean { diff --git a/packages/compiler/src/frontend/lowering/type-failure.ts b/packages/compiler/src/frontend/lowering/type-failure.ts new file mode 100644 index 000000000..3502a9bbf --- /dev/null +++ b/packages/compiler/src/frontend/lowering/type-failure.ts @@ -0,0 +1,195 @@ +/* Localized failure, stage L0 (report-only). + * + * A type with no static lowering poisons the slot that holds it (a field, + * a parameter, a return, a local), and today the poison rejects the whole + * declaration around the slot: a class, a signature, a declaration + * statement. Every later use of that declaration then fails on its own + * line. The localized-failure design turns such slots into checked + * dynamic slots at the points where the build would otherwise commit the + * error. + * + * This module holds the bookkeeping that stage measures without changing + * any lowering: where a failing type sits (its slot), whether a dynamic + * slot would keep the program's meaning (design §3.7), and the keys that + * tie a cascade diagnostic to the rejected declaration it inherits from. + * The data rides the committed diagnostics as report-only fields + * (ScrDiagnostic.typeFailure, .rejects, .cause); tier-analysis.ts turns it + * into the would-be dynamic slot report of `--explain-dynamic`. */ +import type { + TypeFailure, + TypeFailureFamily, + TypeFailureSlot, +} from "../../diagnostics/diagnostic.js"; +import * as ts from "../ts7/adapter.js"; + +/** Families a checked-dynamic slot can hold (design §3.7). The others + * name values the compiler cannot produce (opaque stdlib and @types/node + * types, engine-backed ambient types), package value types that scope B + * routes to Node islands, enum objects with no runtime value, and generic + * implementations without an erased instance. */ +const DEGRADABLE_FAMILIES: ReadonlySet = new Set([ + "index-signature", + "overloads", + "intersection", + "component", + "record-member", + "unsupported", + "dyn-field-policy", +]); + +function nameText(name: ts.Node | undefined): string | null { + if (name === undefined) return null; + if (ts.isIdentifier(name) || ts.isPrivateIdentifier(name)) return name.text; + if (ts.isStringLiteral(name) || ts.isNumericLiteral(name)) return name.text; + return ts.getTextOfNode(name); +} + +function isParameterProperty(param: ts.ParameterDeclaration): boolean { + return ( + ts.isConstructorDeclaration(param.parent) && + (param.modifiers?.nodes ?? []).some( + (m) => + m.kind === ts.SyntaxKind.PublicKeyword || + m.kind === ts.SyntaxKind.PrivateKeyword || + m.kind === ts.SyntaxKind.ProtectedKeyword || + m.kind === ts.SyntaxKind.ReadonlyKeyword, + ) + ); +} + +function variableSlot(decl: ts.VariableDeclaration): TypeFailureSlot { + const list = decl.parent; + const holder = list?.parent; + if ( + holder !== undefined && + (ts.isForOfStatement(holder) || ts.isForInStatement(holder) || ts.isForStatement(holder)) + ) + return "loop"; + if (holder !== undefined && ts.isVariableStatement(holder) && ts.isSourceFile(holder.parent)) + return "global"; + return "local"; +} + +function functionLabel(fn: ts.Node): string { + if (ts.isConstructorDeclaration(fn)) return "constructor"; + if (ts.isFunctionLikeDeclaration(fn)) { + const own = nameText(fn.name); + if (own !== null) return own; + const parent = fn.parent; + if ( + parent !== undefined && + (ts.isVariableDeclaration(parent) || + ts.isPropertyAssignment(parent) || + ts.isPropertyDeclaration(parent)) + ) { + const bound = nameText(parent.name); + if (bound !== null) return bound; + } + } + return ""; +} + +/** The slot a badType blame node denotes. A declaration's own node, its + * name and its type annotation name the declaration's slot; anything + * reached through an expression is an expression slot (the type of a + * cast, a literal, a temporary). */ +export function typeFailureSlot(node: ts.Node): { slot: TypeFailureSlot; name: string } { + let current: ts.Node = node; + for (let depth = 0; depth < 64; depth++) { + if (ts.isParameter(current)) { + const name = nameText(current.name) ?? ""; + return { slot: isParameterProperty(current) ? "field" : "param", name }; + } + if (ts.isPropertyDeclaration(current)) + return { slot: "field", name: nameText(current.name) ?? "" }; + if (ts.isVariableDeclaration(current)) + return { slot: variableSlot(current), name: nameText(current.name) ?? "" }; + if (ts.isBindingElement(current)) { + let owner: ts.Node | undefined = current.parent; + while (owner !== undefined && !ts.isVariableDeclaration(owner) && !ts.isParameter(owner)) + owner = owner.parent; + const slot: TypeFailureSlot = + owner === undefined + ? "local" + : ts.isParameter(owner) + ? "param" + : variableSlot(owner as ts.VariableDeclaration); + return { slot, name: nameText(current.name) ?? "" }; + } + if (ts.isPropertySignature(current) || ts.isMethodSignatureDeclaration(current)) + return { slot: "member", name: nameText(current.name) ?? "" }; + if (ts.isFunctionLikeDeclaration(current)) + return { slot: "return", name: functionLabel(current) }; + if (ts.isCatchClause(current)) return { slot: "local", name: "" }; + const parent: ts.Node | undefined = current.parent; + if (parent === undefined || ts.isSourceFile(parent)) break; + // Climb from a declaration's name or type annotation, or from inside a + // type node; any other position is an expression's own type. + const declared = + (ts.isParameter(parent) || + ts.isPropertyDeclaration(parent) || + ts.isVariableDeclaration(parent) || + ts.isBindingElement(parent) || + ts.isPropertySignature(parent) || + ts.isMethodSignatureDeclaration(parent) || + ts.isFunctionLikeDeclaration(parent)) && + ((parent as { name?: ts.Node }).name === current || + (parent as { type?: ts.Node }).type === current); + if (!declared && !ts.isTypeNode(current) && !ts.isTypeNode(parent)) break; + current = parent; + } + const text = ts.getTextOfNode(node); + return { slot: "expression", name: text.length > 60 ? `${text.slice(0, 57)}...` : text }; +} + +/** Program code outside node_modules, in TypeScript: the code holes apply + * to (design §3.3, §3.8). JavaScript keeps its dynamic fallback and its + * runtime fences; npm packages keep island routing. */ +function programTypeScript(node: ts.Node): boolean { + const sf = ts.getSourceFileOfNode(node); + const file = sf.fileName; + if (file.includes("/node_modules/")) return false; + if (sf.isDeclarationFile) return false; + return !/\.(?:[cm]?js|jsx)$/.test(file); +} + +export function typeFailureOf( + node: ts.Node, + declaredType: string, + family: TypeFailureFamily, +): TypeFailure { + const { slot, name } = typeFailureSlot(node); + return { + slot, + name, + declaredType, + family, + degradable: DEGRADABLE_FAMILIES.has(family) && programTypeScript(node), + }; +} + +function locKey(node: ts.Node): string { + const sf = ts.getSourceFileOfNode(node); + return `${sf.fileName}:${ts.tokenStartOfNode(node)}`; +} + +/** The failure-group key of a deferred declaration (a class shape or a + * function signature whose collection poisoned). */ +export function declarationGroupKey(symbol: ts.Symbol): string { + const decl = symbol.declarations[0]; + const name = ts.symbolName(symbol); + if (decl === undefined) return `declaration ${name}`; + const kind = + ts.isClassDeclaration(decl) || ts.isClassExpression(decl) + ? "class" + : ts.isFunctionLikeDeclaration(decl) + ? "function" + : "declaration"; + return `${kind} ${name} @${locKey(decl)}`; +} + +/** The failure-group key of a poisoned declaration statement whose + * bindings are blocked. */ +export function statementGroupKey(stmt: ts.Statement): string { + return `statement @${locKey(stmt)}`; +} diff --git a/packages/compiler/src/frontend/tier-analysis.ts b/packages/compiler/src/frontend/tier-analysis.ts index b75e491a8..0baedd7dd 100644 --- a/packages/compiler/src/frontend/tier-analysis.ts +++ b/packages/compiler/src/frontend/tier-analysis.ts @@ -29,7 +29,12 @@ * Attribution is syntactic and approximate: the site's innermost node, the * operand it acts on, and that operand's declaration. Stage S6 replaces it * with requests the failing lowering names exactly. */ -import type { ScrDiagnostic } from "../diagnostics/diagnostic.js"; +import type { + ScrDiagnostic, + TypeFailureFamily, + TypeFailureSlot, +} from "../diagnostics/diagnostic.js"; +import { isWarningCode } from "../diagnostics/render.js"; import type { IrFunction, SrcLoc } from "../ir/ir.js"; import { dynamicOperationSites, type DynamicFunction } from "../ir/tiers.js"; import * as ts from "./ts7/adapter.js"; @@ -85,8 +90,70 @@ export interface TierDynamicFunction extends DynamicFunction { statements: number; } +/** The localized-failure stage whose slot positions include a slot kind + * (design §3.6): locals and globals degrade first, declarations next, + * members of declared types with push-down, expression types last. */ +export type LocalizedFailureStage = "L1" | "L2" | "L3" | "L4"; + +export function slotStage(slot: TypeFailureSlot): LocalizedFailureStage { + switch (slot) { + case "local": + case "global": + case "loop": + return "L1"; + case "field": + case "param": + case "return": + return "L2"; + case "member": + return "L3"; + case "expression": + return "L4"; + } +} + +/** A committed type failure that would become a checked dynamic slot + * (SC6104) instead of an error. */ +export interface WouldBeSlot { + loc: SrcLoc; + slot: TypeFailureSlot; + name: string; + declaredType: string; + family: TypeFailureFamily; + code: string; + message: string; + stage: LocalizedFailureStage; + /** The declaration the failure rejects today (a failure-group key), if + * any: a class, a signature, or a declaration statement. */ + rejects: string | null; + /** Other committed diagnostics that inherit from this slot's group and + * clear once every group they inherit from degrades (with push-down and + * expression slots, the full design). */ + cascade: number; +} + +/** Localized failure, report-only (stage L0): what the committed errors + * would become. Two scenarios: through stage L2 (declaration slots) and + * through L4 (members and expressions too). */ +export interface LocalizedFailureReport { + /** Reached errors (warnings excluded). */ + errors: number; + /** Type failures, by whether a checked dynamic slot keeps meaning. */ + typeFailures: { degradable: number; refused: number }; + slots: WouldBeSlot[]; + /** Diagnostics attributed to a rejected declaration they used. */ + cascades: number; + /** Errors that disappear (degraded slots plus cleared cascades). */ + clearedThroughL2: number; + clearedThroughL4: number; + /** The errors that remain through L4, by code. */ + remainingByCode: Record; +} + export interface TierReport { mode: TierMode; + /** Localized failure (report-only). */ + localizedFailure: LocalizedFailureReport; /** Reached source statements that perform a dynamic operation. */ statementsDynamic: number; dynamicFunctions: TierDynamicFunction[]; @@ -576,6 +643,119 @@ function demotedUnits(requests: readonly DemotionRequest[]): DemotedUnit[] { ); } +/* ── localized failure ───────────────────────────────────────────────── */ + +/** A diagnostic's failure-group bookkeeping (lowerer: badType, deferred + * flushes, blocked statements) turned into the would-be report. A group + * (a rejected declaration or blocked statement) clears in a scenario when + * each of its diagnostics either degrades (a degradable type failure at a + * slot the scenario covers) or is a cascade whose every cause clears. */ +export function localizedFailureReport(reached: readonly ScrDiagnostic[]): LocalizedFailureReport { + const errors = reached.filter((d) => !isWarningCode(d.code)); + const groups = new Map(); + for (const d of errors) { + if (d.rejects === undefined) continue; + const list = groups.get(d.rejects); + if (list === undefined) groups.set(d.rejects, [d]); + else list.push(d); + } + const stages: Record<"L2" | "L4", ReadonlySet> = { + L2: new Set(["L1", "L2"]), + L4: new Set(["L1", "L2", "L3", "L4"]), + }; + const clears = (scenario: "L2" | "L4") => { + const covered = stages[scenario]; + const memo = new Map(); + const degrades = (d: ScrDiagnostic): boolean => + d.typeFailure !== undefined && + d.typeFailure.degradable && + covered.has(slotStage(d.typeFailure.slot)); + const causeClears = (d: ScrDiagnostic): boolean => + d.cause !== undefined && d.cause.length > 0 && d.cause.every((g) => groupClears(g)); + const groupClears = (group: string): boolean => { + const known = memo.get(group); + if (known !== undefined) return known; + memo.set(group, false); // a cycle never clears + const members = groups.get(group) ?? []; + const ok = members.length > 0 && members.every((d) => degrades(d) || causeClears(d)); + memo.set(group, ok); + return ok; + }; + return { degrades, causeClears, groupClears }; + }; + const l2 = clears("L2"); + const l4 = clears("L4"); + const cleared = (c: ReturnType, d: ScrDiagnostic) => + c.degrades(d) || c.causeClears(d); + // Each slot's cascade: diagnostics whose causes (transitively) include + // the slot's group and that clear in the full scenario. + const reachesGroup = (d: ScrDiagnostic, group: string, seen: Set): boolean => { + for (const g of d.cause ?? []) { + if (g === group) return true; + if (seen.has(g)) continue; + seen.add(g); + for (const m of groups.get(g) ?? []) if (reachesGroup(m, group, seen)) return true; + } + return false; + }; + const slots: WouldBeSlot[] = []; + let degradable = 0; + let refused = 0; + for (const d of errors) { + const f = d.typeFailure; + if (f === undefined) continue; + if (!f.degradable) { + refused++; + continue; + } + degradable++; + const group = d.rejects ?? null; + let cascade = 0; + if (group !== null) + for (const e of errors) + if ( + e !== d && + e.typeFailure === undefined && + cleared(l4, e) && + reachesGroup(e, group, new Set()) + ) + cascade++; + slots.push({ + loc: d.loc, + slot: f.slot, + name: f.name, + declaredType: f.declaredType, + family: f.family, + code: d.code, + message: d.message, + stage: slotStage(f.slot), + rejects: group, + cascade, + }); + } + slots.sort( + (a, b) => + b.cascade - a.cascade || a.loc.file.localeCompare(b.loc.file) || a.loc.start - b.loc.start, + ); + const remainingByCode: Record = {}; + let clearedThroughL2 = 0; + let clearedThroughL4 = 0; + for (const d of errors) { + if (cleared(l2, d)) clearedThroughL2++; + if (cleared(l4, d)) clearedThroughL4++; + else remainingByCode[d.code] = (remainingByCode[d.code] ?? 0) + 1; + } + return { + errors: errors.length, + typeFailures: { degradable, refused }, + slots, + cascades: errors.filter((d) => d.cause !== undefined && d.typeFailure === undefined).length, + clearedThroughL2, + clearedThroughL4, + remainingByCode, + }; +} + export interface TierAnalysisInput { mode: TierMode; /** The dynamic-tier IR functions of the reached program. */ @@ -624,6 +804,7 @@ export function analyzeTiers(program: ts.Program, input: TierAnalysisInput): Tie const dynamic = dynamicFunctionReports(program, input.dynamicFunctions); return { mode: input.mode, + localizedFailure: localizedFailureReport(input.reached), statementsDynamic: dynamic.statements, dynamicFunctions: dynamic.functions, requests, diff --git a/tests/coverage-fixtures/localized-failure.ts b/tests/coverage-fixtures/localized-failure.ts new file mode 100644 index 000000000..ed4d30e8c --- /dev/null +++ b/tests/coverage-fixtures/localized-failure.ts @@ -0,0 +1,53 @@ +// The localized-failure report of `scriptc coverage --explain-dynamic`: +// type failures that would become checked dynamic slots, and the uses +// each one rejects today. +interface Tool { + name: string; + execute(id: string, params: any): Promise; +} +type Progress = (done: number, total: number) => void; +type Callbacks = Progress | AbortSignal | Map string> | Set; + +// A field: rejects the class, so every use of an instance fails. +class Session { + private tools: Tool[] = []; + count(): number { + return this.tools.length; + } + label(): string { + return "s"; + } +} + +// A parameter: rejects the function, so every call fails. +function listAll(dir: string, progress?: Callbacks): number { + return dir.length; +} + +// The dyn class field policy. +class Holder { + state: any = {}; + get(): number { + return 1; + } +} + +// A local: rejects its declaration statement, so its uses fail. +function pick(n: number): boolean { + const callbacks: Callbacks | undefined = n > 1 ? new Set() : undefined; + return callbacks === undefined; +} + +// Refused: a value the compiler cannot produce stays an error. +class Cache { + tokens: WeakRef = new WeakRef({}); + size(): number { + return 0; + } +} + +const s = new Session(); +console.log(s.count(), s.label()); +console.log(listAll("abc")); +console.log(new Holder().get()); +console.log(pick(1), new Cache().size()); diff --git a/tests/harness/__snapshots__/coverage-explain-localized-failure.txt b/tests/harness/__snapshots__/coverage-explain-localized-failure.txt new file mode 100644 index 000000000..ed727b604 --- /dev/null +++ b/tests/harness/__snapshots__/coverage-explain-localized-failure.txt @@ -0,0 +1,49 @@ + dynamic tier (tier assignment, report-only; --tier=auto) + 0 functions already operate on dynamic values (0 statements) + + 11 demotion requests (refusals and fences the dynamic tier would replace) + + 4 would-be dynamic slots (localized failure, report-only: type failures a checked dynamic slot would hold) + 11 errors: 9 clear with declaration slots (L1-L2), 9 with member and expression slots too (L3-L4); 6 cascades attributed; 1 type failure stays refused + L2 field tools: Tool[] tests/coverage-fixtures/localized-failure.ts:13:11 (SC2009 component, clears 2) + rejects class Session + L2 param progress: Callbacks | undefined tests/coverage-fixtures/localized-failure.ts:23:31 (SC2009 component, clears 1) + rejects function listAll + L2 field state: any tests/coverage-fixtures/localized-failure.ts:29:3 (SC1090 dyn-field-policy, clears 1) + rejects class Holder + L1 local callbacks: Callbacks | undefined tests/coverage-fixtures/localized-failure.ts:37:9 (SC2009 component, clears 1) + rejects statement + class Session tests/coverage-fixtures/localized-failure.ts:12:1 (1 request) + <- SC1090 reflection at tests/coverage-fixtures/localized-failure.ts:49:11: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + -> function turns dynamic + class Holder tests/coverage-fixtures/localized-failure.ts:28:1 (1 request) + <- SC1090 reflection at tests/coverage-fixtures/localized-failure.ts:52:13: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + -> function turns dynamic + class Cache tests/coverage-fixtures/localized-failure.ts:42:1 (1 request) + <- SC1090 reflection at tests/coverage-fixtures/localized-failure.ts:53:22: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + -> function turns dynamic + field Session.tools tests/coverage-fixtures/localized-failure.ts:13:3 (1 request) + <- SC2009 type at tests/coverage-fixtures/localized-failure.ts:13:11: values of type 'Tool[]' cannot be compiled: the array shape is supported, but its element type 'Tool' does not compile + -> function turns dynamic + field Holder.state tests/coverage-fixtures/localized-failure.ts:29:3 (1 request) + <- SC1090 operation at tests/coverage-fixtures/localized-failure.ts:29:3: 'any'-typed class fields are not supported yet + -> function turns dynamic + field Cache.tokens tests/coverage-fixtures/localized-failure.ts:43:3 (1 request) + <- SC2020 operation at tests/coverage-fixtures/localized-failure.ts:43:3: 'WeakRef' is part of the standard library types but has no scriptc lowering yet + -> function turns dynamic + function tests/coverage-fixtures/localized-failure.ts:1:1 (8 sites inside) + function listAll tests/coverage-fixtures/localized-failure.ts:23:1 (1 request, 1 site inside) + <- SC2004 cascade at tests/coverage-fixtures/localized-failure.ts:51:13: uses of 'listAll' inherit the blocker on its declaration + -> function turns dynamic + function pick tests/coverage-fixtures/localized-failure.ts:36:1 (2 sites inside) + binding progress in listAll tests/coverage-fixtures/localized-failure.ts:23:31 (1 request) + <- SC2009 type at tests/coverage-fixtures/localized-failure.ts:23:31: values of type 'Callbacks | undefined' cannot be compiled: the union shape is supported, and unions in the 'string | object' family ride the checked-dynamic representation wholesale, but 'Map function listAll turns dynamic + binding callbacks in pick tests/coverage-fixtures/localized-failure.ts:37:9 (2 requests) + <- SC2009 type at tests/coverage-fixtures/localized-failure.ts:37:9: values of type 'Callbacks | undefined' cannot be compiled: the union shape is supported, and unions in the 'string | object' family ride the checked-dynamic representation wholesale, but 'Map function pick turns dynamic + <- SC2004 cascade at tests/coverage-fixtures/localized-failure.ts:38:10: uses of 'callbacks' inherit the blocker on its declaration + -> function pick turns dynamic + binding s tests/coverage-fixtures/localized-failure.ts:49:7 (1 request) + <- SC2004 cascade at tests/coverage-fixtures/localized-failure.ts:50:13: uses of 's' inherit the blocker on its declaration + -> function turns dynamic \ No newline at end of file diff --git a/tests/harness/coverage.test.ts b/tests/harness/coverage.test.ts index fde16a901..3f9a60bce 100644 --- a/tests/harness/coverage.test.ts +++ b/tests/harness/coverage.test.ts @@ -428,6 +428,38 @@ test("--explain-dynamic attributes each refusal to the unit the dynamic tier wou ); }); +test("--explain-dynamic lists the type failures localized failure would turn into dynamic slots", async () => { + const { coverage } = analyze(fixture("localized-failure.ts"), { explainDynamic: true }); + const report = coverage.tiers!.localizedFailure; + expect(report.errors).toBe(11); + expect(report.typeFailures).toEqual({ degradable: 4, refused: 1 }); + expect( + report.slots.map((s) => [ + s.stage, + s.slot, + s.name, + s.family, + s.rejects?.split(" @")[0], + s.cascade, + ]), + ).toEqual([ + ["L2", "field", "tools", "component", "class Session", 2], + ["L2", "param", "progress", "component", "function listAll", 1], + ["L2", "field", "state", "dyn-field-policy", "class Holder", 1], + ["L1", "local", "callbacks", "component", "statement", 1], + ]); + // The WeakRef field stays refused, so its class and the construction + // that uses it stay errors. + expect(report.clearedThroughL2).toBe(9); + expect(report.remainingByCode).toEqual({ SC1090: 1, SC2020: 1 }); + const relative = JSON.parse( + JSON.stringify(coverage.tiers).replaceAll(repoRoot + "/", ""), + ) as typeof coverage.tiers; + await expect(renderExplainDynamic(relative!)).toMatchFileSnapshot( + "__snapshots__/coverage-explain-localized-failure.txt", + ); +}); + test("CLI: --tier and --explain-dynamic", () => { const scriptcCli = join(repoRoot, "packages/cli/src/main.ts"); const outDir = mkdtempSync(join(tmpdir(), "scriptc-tier-")); From 693b038b15432b25d446b1352391858e7c545e9f Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 18:17:32 -0500 Subject: [PATCH 037/128] Keep the result of void generic methods called through class-backed interfaces A class may implement a void interface method with a method that returns a value, and JavaScript passes that value on (`console.log(c.publish(m))`). The call now keeps the dispatch's untyped result, as a call through a non-generic void member already does, instead of replacing it with undefined: printing or interpolating it shows the value, and binding it to a void-typed name checks it. --- .../src/frontend/lowering/lower-calls.ts | 15 +++++--------- tests/corpus/generic-interface-void-calls.ts | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/compiler/src/frontend/lowering/lower-calls.ts b/packages/compiler/src/frontend/lowering/lower-calls.ts index e2f7ade90..265b7553b 100644 --- a/packages/compiler/src/frontend/lowering/lower-calls.ts +++ b/packages/compiler/src/frontend/lowering/lower-calls.ts @@ -10074,16 +10074,11 @@ function lowerObjLitGenericMethodCall( loc, }; const resultType = lowerer.irTypeOf(call); - // A void method's runtime result is discarded, as JavaScript does. - if (resultType.kind === "void") { - return { - kind: "seqExpr", - stmts: [{ kind: "exprStmt", expr: invoked, loc }], - result: { kind: "libCall", fn: "console.noop", args: [], type: VOID, loc }, - type: VOID, - loc, - }; - } + // A void method's result stays the runtime's untyped value, as a + // call through a non-generic void member's dispatch keeps it: a class + // may implement the member with a method that returns a value, which + // JavaScript passes on (`console.log(c.publish(m))`). + if (resultType.kind === "void") return invoked; return lowerer.coerceInto(call, invoked, resultType); } } diff --git a/tests/corpus/generic-interface-void-calls.ts b/tests/corpus/generic-interface-void-calls.ts index d810383f7..63c137c10 100644 --- a/tests/corpus/generic-interface-void-calls.ts +++ b/tests/corpus/generic-interface-void-calls.ts @@ -43,3 +43,23 @@ for (const channel of channels) { console.log(channel.name, result === undefined, channel.count(["a", "b", "c"])); } console.log(delivered.join(" | ")); + +// A class may implement the void member with a method that returns a value; +// JavaScript passes that value on. +class CountingChannel implements Channel { + name = "counting"; + sent = 0; + publish(message: Message): number { + this.sent++; + return message.content.length; + } + count(items: T[]): number { + return items.length * 2; + } +} + +const counted: Channel[] = [new CountingChannel(), new LogChannel("plain")]; +for (const channel of counted) { + console.log(channel.name, channel.publish({ content: "four" })); + console.log(`sent ${channel.publish({ content: "again", details: 2 })}`); +} From c7ac4d7001feb1a4312ea92bcdb107cabd1c1dc5 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 16:25:10 -0700 Subject: [PATCH 038/128] Expect the types patch command in the same-name origin test --- tests/harness/type-patches.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/harness/type-patches.test.ts b/tests/harness/type-patches.test.ts index dfd084572..c7975a36f 100644 --- a/tests/harness/type-patches.test.ts +++ b/tests/harness/type-patches.test.ts @@ -206,7 +206,7 @@ describe("type patches", () => { const failure = (pkg: string, version: string) => [ "undefined is not representable in the target union (a value narrowed or asserted past it still held it)", ` ${pkg}@${version} declares OutputContext.width as number (index.js:24)`, - ` if that declaration is wrong, patch it in package.json: "scriptc": { "typePatches": { "${pkg}@^${version}": { "declarations": { "OutputContext.width": "| undefined" } } } }`, + ` if that declaration is wrong, patch it: scriptc types patch ${pkg} "OutputContext.width" "| undefined"`, ]; expect(native.stdout).toBe( [...failure("panectx", "2.0.0"), ...failure("gridctx", "4.1.0"), ""].join("\n"), From a848a7b349338d91ec3000ccebd3d5bd5d1242b0 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 18:44:18 -0500 Subject: [PATCH 039/128] Resolve the pipeline promise to undefined for an untyped iterable destination When an untyped destination function returned an async iterable, the promise form settled its result without a payload, and code that read the awaited value as an untyped value dereferenced NULL. The promise form for an untyped destination now resolves to undefined when the destination returned no promise, or its promise carries no value, as Node does. --- packages/runtime/src/scr_stream.c | 24 +++++++++++++++++-- .../7509-pipeline-untyped-function-stages.mjs | 5 ++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/runtime/src/scr_stream.c b/packages/runtime/src/scr_stream.c index a7593b551..fb416e5c3 100644 --- a/packages/runtime/src/scr_stream.c +++ b/packages/runtime/src/scr_stream.c @@ -5312,13 +5312,31 @@ static void scr_sp_value_inv(ScrClosure *cb, ScrError *err, ScrDyn *value, ScrPr scr_promise_release(p); } +/* scr_sp_value_inv for an untyped destination (SCR_PIPE_DEST_DYN), whose + * result promise carries a dyn value: when the destination returned an + * async iterable (no promise), or its promise carries no payload, the + * result is undefined, as in Node. */ +static void scr_sp_dyn_value_inv(ScrClosure *cb, ScrError *err, ScrDyn *value, + ScrPromise *value_p) { + if (err != NULL || (value_p != NULL && scr_promise_payload_kind(value_p) != SCR_EXC_NONE)) { + scr_sp_value_inv(cb, err, value, value_p); + return; + } + ScrPromise *p = scr_box_get_ref(cb->caps[0]); /* +1 */ + scr_promise_fulfill_ref(p, scr_dyn_retain(scr_dyn_undefined()), scr_dyn_retain_v, + scr_dyn_release_v, NULL); + scr_promise_release(p); +} + ScrPromise *scr_sp_pipeline_stages(double n, ScrStream **streams, double count, ScrClosure **stages, double positions, double flags, double mask, ScrClosure **helpers, ScrClosure *box, ScrDyn *signal, ScrClosure *abort) { ScrPromise *p = scr_promise_new(); ScrPipeStages fs = scr_pipe_stages_of(count, stages, positions, flags, mask, helpers, box, signal); - ScrPipeValInv vi = fs.dest != SCR_PIPE_DEST_STREAM ? &scr_sp_value_inv : NULL; + ScrPipeValInv vi = fs.dest == SCR_PIPE_DEST_STREAM ? NULL + : fs.dest == SCR_PIPE_DEST_DYN ? &scr_sp_dyn_value_inv + : &scr_sp_value_inv; ScrStream *dst = scr_stream_pipeline_ex((size_t)n, streams, scr_sp_watcher(p), &scr_sp_settle_inv, true, NULL, NULL, &fs, abort, vi); if (dst) scr_stream_release(dst); @@ -5370,7 +5388,9 @@ ScrPromise *scr_sp_pipeline_stages_opts(double n, ScrStream **streams, double co ScrPromise *p = scr_promise_new(); if (!scr_sp_opts_signal(p, &outer)) return p; ScrPipeStages fs = scr_pipe_stages_of(count, stages, positions, flags, mask, helpers, box, signal); - ScrPipeValInv vi = fs.dest != SCR_PIPE_DEST_STREAM ? &scr_sp_value_inv : NULL; + ScrPipeValInv vi = fs.dest == SCR_PIPE_DEST_STREAM ? NULL + : fs.dest == SCR_PIPE_DEST_DYN ? &scr_sp_dyn_value_inv + : &scr_sp_value_inv; ScrStream *dst = scr_stream_pipeline_ex((size_t)n, streams, scr_sp_watcher(p), &scr_sp_settle_inv, end, outer, add, &fs, abort, vi); if (dst) scr_stream_release(dst); diff --git a/tests/corpus/7509-pipeline-untyped-function-stages.mjs b/tests/corpus/7509-pipeline-untyped-function-stages.mjs index 18749e55a..590334f90 100644 --- a/tests/corpus/7509-pipeline-untyped-function-stages.mjs +++ b/tests/corpus/7509-pipeline-untyped-function-stages.mjs @@ -53,6 +53,11 @@ const out = pipeline(Readable.from(["p1", "p2"]), wrap, (err, value) => { console.log("returns a PassThrough", out instanceof PassThrough); for await (const chunk of out) console.log("passthrough", chunk); +// an async generator destination in the promise form: the PassThrough +// takes its values and the promise resolves to undefined +const promised = await pipelineP(Readable.from(["q1", "q2"]), wrap); +console.log("generator destination promise", promised, typeof promised); + // a destination whose promise rejects try { await pipelineP( From 68e148add9b6dc5182e79592031ddcc27ccff577 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 18:51:56 -0500 Subject: [PATCH 040/128] Wait for every released package to resolve on npm before the GitHub release The release workflow publishes each package and moves on once npm accepts the upload. A package whose processing on npm stalls was visible only on npmjs.com. A new npm-available job runs after "Publish to npm". It checks each package of the release with `npm view @ version --prefer-online` every 2 minutes (scripts/wait-npm-available.mjs) until every package resolves, and reports each package's time from upload to available in the log and the job summary. When a package still does not resolve after 2 hours, the job fails and names each missing package and version. It only reads from the registry. The publish job lists every package of the release and records the time npm accepted each upload, keeps those times with its upload receipts, and passes both to the new job. Create GitHub Release now waits for the new job, so the release is created and marked complete only once every package resolves; a later release run checks again and skips uploads npm already accepted. --- .github/workflows/release.yml | 68 +++++++++++-- scripts/wait-npm-available.mjs | 150 ++++++++++++++++++++++++++++ tests/harness/npm-available.test.ts | 114 +++++++++++++++++++++ 3 files changed, 325 insertions(+), 7 deletions(-) create mode 100644 scripts/wait-npm-available.mjs create mode 100644 tests/harness/npm-available.test.ts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 799337e0a..73f000431 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,6 +83,7 @@ jobs: spawnSync('git', ['diff', '--quiet', run.head_sha, 'HEAD', '--', '.', ':(exclude).github/workflows/release.yml', ':(exclude)scripts/verify-native-cli.mjs', ':(exclude)scripts/package-native-cli.mjs', ':(exclude)tests/harness/native-cli-packaging.test.ts', + ':(exclude)scripts/wait-npm-available.mjs', ':(exclude)tests/harness/npm-available.test.ts', ]).status !== 0) continue; const artifacts = api(`repos/${repo}/actions/runs/${run.id}/artifacts?per_page=100`).artifacts .filter((artifact) => !artifact.expired && artifact.size_in_bytes > 0); @@ -394,6 +395,8 @@ jobs: contents: read actions: read id-token: write + outputs: + uploads: ${{ steps.publish.outputs.uploads }} steps: - name: Checkout repository uses: actions/checkout@v4 @@ -413,7 +416,7 @@ jobs: VERSION: ${{ needs.check-release.outputs.version }} RECEIPT_RUN: ${{ needs.check-release.outputs.receipt_run }} run: | - touch "$RUNNER_TEMP/npm-accepted.txt" + touch "$RUNNER_TEMP/npm-accepted.txt" "$RUNNER_TEMP/npm-accepted-times.txt" # Include this run so re-running only failed jobs restores its receipts. for run in "$GITHUB_RUN_ID" "$RECEIPT_RUN"; do if [ -z "$run" ]; then continue; fi @@ -422,6 +425,7 @@ jobs: if [ "$count" -eq 0 ]; then continue; fi gh run download "$run" --repo "$GITHUB_REPOSITORY" --pattern "npm-accepted-$VERSION-*" --dir "$RUNNER_TEMP/npm-receipts/$run" find "$RUNNER_TEMP/npm-receipts/$run" -name npm-accepted.txt -exec cat {} + >> "$RUNNER_TEMP/npm-accepted.txt" + find "$RUNNER_TEMP/npm-receipts/$run" -name npm-accepted-times.txt -exec cat {} + >> "$RUNNER_TEMP/npm-accepted-times.txt" done - name: Setup pnpm @@ -471,6 +475,7 @@ jobs: done - name: Publish to npm + id: publish shell: bash env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -490,10 +495,14 @@ jobs: # Upload acceptance and public availability are separate states. # Save acceptance immediately so retries never depend on registry lag. + # npm-release.txt lists every package of the release, and + # npm-accepted-times.txt the time npm accepted each upload, for the + # npm-available job. publish_dir() { dir="$1" packed="${2:-}" name=$(node -p "require('./$dir/package.json').name") + echo "$name@$VERSION" >> "$RUNNER_TEMP/npm-release.txt" if grep -Fxq "$name@$VERSION" "$RUNNER_TEMP/npm-accepted.txt"; then echo "$name@$VERSION upload already accepted, skipping" return 0 @@ -510,6 +519,7 @@ jobs: publish_log="$RUNNER_TEMP/npm-publish.log" if npm publish "$packed" $PROVENANCE --access public 2>&1 | tee "$publish_log"; then echo "$name@$VERSION" >> "$RUNNER_TEMP/npm-accepted.txt" + echo "$name@$VERSION $(date +%s)" >> "$RUNNER_TEMP/npm-accepted-times.txt" return 0 else publish_status=${PIPESTATUS[0]} @@ -533,7 +543,8 @@ jobs: # pnpm pack resolves workspace dependencies; npm handles OIDC. # Publish dependencies first. Registry propagation after an accepted - # upload must not block the remaining packages or the GitHub release. + # upload must not block the remaining packages; the npm-available + # job waits for it. publish_dir packages/runtime publish_dir packages/runtime-darwin-arm64 publish_dir packages/llvm-darwin-arm64 @@ -561,23 +572,66 @@ jobs: publish_dir packages/cli echo "All package uploads accepted; npm registry propagation may continue after this job." >> "$GITHUB_STEP_SUMMARY" + # Each package of the release with the time its upload was accepted, + # when a run recorded it. + { + echo "uploads<> "$GITHUB_OUTPUT" + - name: Save accepted upload receipts if: always() uses: actions/upload-artifact@v4 with: name: npm-accepted-${{ needs.check-release.outputs.version }}-${{ github.run_attempt }} - path: ${{ runner.temp }}/npm-accepted.txt + path: | + ${{ runner.temp }}/npm-accepted.txt + ${{ runner.temp }}/npm-accepted-times.txt if-no-files-found: ignore retention-days: 90 - # Publish standalone native distributions and the surface manifest after - # npm publishing succeeds. The release body comes from the marked changelog. - github-release: - name: Create GitHub Release + # Waits until every package of the release resolves on the npm registry, + # and reports each package's time from upload to available. Fails with the + # packages that are still missing after 2 hours. It only reads from the + # registry; the next release run retries it, and publishing skips uploads + # npm already accepted. + npm-available: + name: Wait for npm availability needs: [check-release, publish] if: >- !cancelled() && needs.check-release.outputs.should_release == 'true' && needs.publish.result == 'success' runs-on: ubuntu-latest + timeout-minutes: 135 + permissions: + contents: read + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "24" + registry-url: "https://registry.npmjs.org" + + - name: Wait for every package to resolve + env: + UPLOADS: ${{ needs.publish.outputs.uploads }} + run: | + printf '%s\n' "$UPLOADS" > "$RUNNER_TEMP/npm-uploads.txt" + node scripts/wait-npm-available.mjs "$RUNNER_TEMP/npm-uploads.txt" + + # Publish standalone native distributions and the surface manifest after + # every npm package resolves. The release body comes from the marked + # changelog. + github-release: + name: Create GitHub Release + needs: [check-release, publish, npm-available] + if: >- + !cancelled() && needs.check-release.outputs.should_release == 'true' && needs.npm-available.result == 'success' + runs-on: ubuntu-latest timeout-minutes: 10 permissions: contents: write diff --git a/scripts/wait-npm-available.mjs b/scripts/wait-npm-available.mjs new file mode 100644 index 000000000..26d7db391 --- /dev/null +++ b/scripts/wait-npm-available.mjs @@ -0,0 +1,150 @@ +#!/usr/bin/env node +// Waits until every package of a release resolves on the npm registry. +// +// usage: wait-npm-available.mjs [--interval ] [--timeout ] +// +// Each line of the uploads file is `@`, optionally followed by +// the Unix time (seconds) at which npm accepted the upload. Every interval +// (120 seconds by default), each package that has not resolved yet is asked +// for with `npm view @ version --prefer-online`. A package +// resolves when npm prints its version. Each package is reported once it +// resolves, with the time from upload to the check that found it. +// +// Exits with 0 once every package resolves. When packages are still missing +// at the timeout (2 hours by default), prints their names and versions and +// exits with 1. The script only reads from the registry. +import { execFile } from "node:child_process"; +import { appendFileSync, readFileSync } from "node:fs"; +import { setTimeout as delay } from "node:timers/promises"; + +function usage() { + throw new Error( + "usage: wait-npm-available.mjs [--interval ] [--timeout ]", + ); +} + +const args = process.argv.slice(2); +let file; +let intervalSeconds = 120; +let timeoutSeconds = 2 * 60 * 60; +for (let i = 0; i < args.length; i++) { + const arg = args[i]; + if (arg === "--interval" || arg === "--timeout") { + const value = Number(args[++i]); + if (!Number.isFinite(value) || value <= 0) usage(); + if (arg === "--interval") intervalSeconds = value; + else timeoutSeconds = value; + } else if (file === undefined) { + file = arg; + } else { + usage(); + } +} +if (file === undefined) usage(); + +const packages = []; +for (const line of readFileSync(file, "utf8").split("\n")) { + const fields = line.trim().split(/\s+/); + if (fields[0] === "") continue; + const spec = fields[0]; + const at = spec.lastIndexOf("@"); + if (at <= 0 || at === spec.length - 1 || fields.length > 2) { + throw new Error(`malformed upload line: ${line}`); + } + const acceptedAt = fields[1] === undefined ? null : Number(fields[1]) * 1000; + if (acceptedAt !== null && !Number.isFinite(acceptedAt)) { + throw new Error(`malformed upload time: ${line}`); + } + packages.push({ spec, version: spec.slice(at + 1), acceptedAt, availableAt: null }); +} +if (packages.length === 0) throw new Error(`${file} names no packages`); + +function resolves(pkg) { + return new Promise((resolve) => { + execFile( + "npm", + ["view", pkg.spec, "version", "--prefer-online"], + { encoding: "utf8", timeout: 60_000 }, + (error, stdout, stderr) => { + if (error === null && stdout.trim() === pkg.version) { + resolve(true); + return; + } + const code = /npm error code (\S+)/.exec(stderr)?.[1]; + if (error !== null && code !== "E404") { + const reason = code ?? error.code ?? error.message.split("\n")[0]; + console.log(`${pkg.spec}: npm view failed (${reason}); checking again`); + } + resolve(false); + }, + ); + }); +} + +function duration(ms) { + const seconds = Math.max(0, Math.round(ms / 1000)); + const minutes = Math.floor(seconds / 60); + return minutes === 0 ? `${seconds}s` : `${minutes}m ${String(seconds % 60).padStart(2, "0")}s`; +} + +function uploadToAvailable(pkg) { + return pkg.acceptedAt === null + ? "upload time not recorded" + : duration(pkg.availableAt - pkg.acceptedAt); +} + +function summary(missing) { + const summaryFile = process.env.GITHUB_STEP_SUMMARY; + if (!summaryFile) return; + const rows = packages.map( + (pkg) => + `| \`${pkg.spec}\` | ${pkg.availableAt === null ? "missing" : uploadToAvailable(pkg)} |`, + ); + const heading = + missing.length === 0 + ? `Every package resolves on npm (${packages.length}).` + : `${missing.length} of ${packages.length} packages do not resolve on npm after ${duration(timeoutSeconds * 1000)}.`; + appendFileSync( + summaryFile, + [heading, "", "| Package | Upload to available |", "| --- | --- |", ...rows, ""].join("\n"), + ); +} + +const started = Date.now(); +const deadline = started + timeoutSeconds * 1000; +for (;;) { + const pending = packages.filter((pkg) => pkg.availableAt === null); + const checked = []; + // A few checks at a time keep each round short without flooding the registry. + for (let i = 0; i < pending.length; i += 8) { + const batch = pending.slice(i, i + 8); + const results = await Promise.all(batch.map(resolves)); + const now = Date.now(); + batch.forEach((pkg, j) => { + if (results[j]) { + pkg.availableAt = now; + checked.push(pkg); + } + }); + } + for (const pkg of checked) console.log(`${pkg.spec} is available (${uploadToAvailable(pkg)})`); + const missing = packages.filter((pkg) => pkg.availableAt === null); + if (missing.length === 0) { + console.log(`Every package resolves on npm (${packages.length}).`); + summary(missing); + process.exit(0); + } + const now = Date.now(); + if (now >= deadline) { + console.log( + `${missing.length} of ${packages.length} packages do not resolve on npm after ${duration(now - started)}:`, + ); + for (const pkg of missing) console.log(`::error::${pkg.spec} does not resolve on npm`); + summary(missing); + process.exit(1); + } + console.log( + `${missing.length} of ${packages.length} packages do not resolve yet; checking again in ${duration(Math.min(intervalSeconds * 1000, deadline - now))}`, + ); + await delay(Math.min(intervalSeconds * 1000, deadline - now)); +} diff --git a/tests/harness/npm-available.test.ts b/tests/harness/npm-available.test.ts new file mode 100644 index 000000000..0970d1f98 --- /dev/null +++ b/tests/harness/npm-available.test.ts @@ -0,0 +1,114 @@ +import { spawnSync } from "node:child_process"; +import { chmodSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { delimiter, join } from "node:path"; +import { expect, test } from "vitest"; + +const repoRoot = join(import.meta.dirname, "../.."); +const script = join(repoRoot, "scripts", "wait-npm-available.mjs"); + +// A stand-in for `npm view version`: each spec resolves on the check +// numbered in registry.json (0 never resolves). Every call is logged. +const fakeNpm = `#!/usr/bin/env node +const { appendFileSync, readFileSync } = require("node:fs"); +const { join } = require("node:path"); +const dir = process.env.FAKE_NPM_DIR; +const args = process.argv.slice(2); +appendFileSync(join(dir, "calls.log"), JSON.stringify(args) + "\\n"); +const spec = args[1]; +const calls = readFileSync(join(dir, "calls.log"), "utf8").trim().split("\\n") + .filter((line) => JSON.parse(line)[1] === spec).length; +const registry = JSON.parse(readFileSync(join(dir, "registry.json"), "utf8")); +const resolvesOn = registry[spec]; +if (resolvesOn === undefined) { + process.stderr.write("npm error code E404\\n"); + process.exit(1); +} +if (resolvesOn !== 0 && calls >= resolvesOn) { + process.stdout.write(spec.slice(spec.lastIndexOf("@") + 1) + "\\n"); +} +`; + +function run(uploads: string, registry: Record, extra: string[]) { + const dir = mkdtempSync(join(tmpdir(), "scriptc-npm-available-")); + try { + writeFileSync(join(dir, "npm"), fakeNpm); + chmodSync(join(dir, "npm"), 0o755); + writeFileSync(join(dir, "registry.json"), JSON.stringify(registry)); + writeFileSync(join(dir, "calls.log"), ""); + writeFileSync(join(dir, "uploads.txt"), uploads); + writeFileSync(join(dir, "summary.md"), ""); + const result = spawnSync(process.execPath, [script, join(dir, "uploads.txt"), ...extra], { + encoding: "utf8", + env: { + ...process.env, + PATH: `${dir}${delimiter}${process.env["PATH"] ?? ""}`, + FAKE_NPM_DIR: dir, + GITHUB_STEP_SUMMARY: join(dir, "summary.md"), + }, + }); + const calls = readFileSync(join(dir, "calls.log"), "utf8") + .trim() + .split("\n") + .filter((line) => line !== "") + .map((line) => JSON.parse(line) as string[]); + return { + status: result.status, + output: result.stdout + result.stderr, + calls, + summary: readFileSync(join(dir, "summary.md"), "utf8"), + }; + } finally { + rmSync(dir, { recursive: true, force: true }); + } +} + +test.skipIf(process.platform === "win32")( + "waits until every package resolves and reports each package's time from upload", + () => { + const accepted = Math.floor(Date.now() / 1000) - 90; + const result = run( + `@scriptc/runtime@1.2.3 ${accepted}\nscriptc@1.2.3\n`, + { "@scriptc/runtime@1.2.3": 1, "scriptc@1.2.3": 3 }, + ["--interval", "0.05", "--timeout", "30"], + ); + expect(result.status, result.output).toBe(0); + expect(result.output).toMatch(/@scriptc\/runtime@1\.2\.3 is available \(1m 3\ds\)/); + expect(result.output).toContain("scriptc@1.2.3 is available (upload time not recorded)"); + expect(result.output).toContain("Every package resolves on npm (2)."); + // A package that resolved is not asked again. + expect(result.calls.filter((args) => args[1] === "@scriptc/runtime@1.2.3")).toHaveLength(1); + expect(result.calls.filter((args) => args[1] === "scriptc@1.2.3")).toHaveLength(3); + for (const args of result.calls) + expect(args).toEqual(["view", args[1], "version", "--prefer-online"]); + expect(result.summary).toContain("| `scriptc@1.2.3` | upload time not recorded |"); + }, +); + +test.skipIf(process.platform === "win32")( + "fails with the names and versions of the packages that do not resolve by the timeout", + () => { + const result = run( + "@scriptc/runtime@1.2.3\n@scriptc/compiler@1.2.3\nscriptc@1.2.3\n", + { "@scriptc/runtime@1.2.3": 1, "@scriptc/compiler@1.2.3": 0 }, + ["--interval", "0.1", "--timeout", "0.5"], + ); + expect(result.status, result.output).toBe(1); + expect(result.output).toContain("2 of 3 packages do not resolve on npm after"); + expect(result.output).toContain("::error::@scriptc/compiler@1.2.3 does not resolve on npm"); + expect(result.output).toContain("::error::scriptc@1.2.3 does not resolve on npm"); + expect(result.output).not.toContain("::error::@scriptc/runtime@1.2.3"); + expect( + result.calls.filter((args) => args[1] === "@scriptc/compiler@1.2.3").length, + ).toBeGreaterThan(1); + expect(result.summary).toContain("| `@scriptc/compiler@1.2.3` | missing |"); + expect(result.summary).toContain("| `scriptc@1.2.3` | missing |"); + }, +); + +test("rejects a malformed uploads file", () => { + const result = run("scriptc 1.2.3\n", {}, []); + expect(result.status).toBe(1); + expect(result.output).toContain("malformed upload line: scriptc 1.2.3"); + expect(result.calls).toHaveLength(0); +}); From e884e53001b0a1a79b94807eddf070699750ce34 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Sun, 25 Oct 2026 16:53:05 -0700 Subject: [PATCH 041/128] Keep one identity through checked casts of dynamic values A checked cast of a dynamic value to a record or array (value as T) built a separate native copy: writes through the result missed the source and every other holder, and === was false, where Node's as does nothing at run time. Every such cast now runs the declaration boundary's adoption leniently (dyn.adoptShared): each source object or array something else still holds becomes, in place, a live capsule of the native value built from it. A node that is not plain data, or that the value holds twice, keeps the copy. A source nothing else can hold converts outright, which keeps the fused JSON.parse(text) as T: a fresh JSON.parse or response.json(), workerData read at one site, the payload of the program's one message listener, and a cast whose result serves one primitive member read. Data-only object and array literals in untyped slots the program declares (unknown or any variables, fields, parameters, returns, unknown[] elements), thrown literals and their members are built as dynamic objects, so their later casts adopt them too. A boxed native value cast to another native layout keeps its cached copy (object model decision D3); the harness test pins it. Ported from the fix/dyn-record-identity prototype. Co-Authored-By: Claude Opus 5.5 --- .../compiler/src/backend/llvm/lib-shared.ts | 1 + .../lowering/expressions/message-listeners.ts | 22 +++ .../lowering/expressions/narrowing.ts | 158 +++++++++++++++++- .../lowering/expressions/object-literals.ts | 3 +- .../src/frontend/lowering/lower-stmts.ts | 11 +- .../compiler/src/frontend/lowering/lowerer.ts | 97 +++++++++++ .../compiler/src/ir/builtin-signatures.ts | 6 + packages/compiler/src/ir/runtime-features.ts | 5 +- .../corpus/dyn-cast-identity-fresh.ts.json | 6 + .../corpus/dyn-cast-identity-holders.ts.json | 6 + .../corpus/dyn-cast-identity-workers.ts.json | 6 + .../tests/corpus/dyn-cast-identity.ts.json | 6 + .../tests/corpus/dyn-literal-identity.ts.json | 6 + packages/runtime/src/scr_decl_adopt.c | 49 ++++-- packages/runtime/src/scr_dyn.h | 1 + tests/corpus/dyn-cast-identity-fresh.ts | 21 +++ tests/corpus/dyn-cast-identity-holders.ts | 62 +++++++ tests/corpus/dyn-cast-identity-workers.ts | 23 +++ tests/corpus/dyn-cast-identity.ts | 71 ++++++++ tests/corpus/dyn-literal-identity.ts | 83 +++++++++ .../dyn-cast-identity-fresh.ts.json | 1 + .../dyn-cast-identity-holders.ts.json | 1 + .../dyn-cast-identity-workers.ts.json | 1 + .../corpus-costs/dyn-cast-identity.ts.json | 1 + .../corpus-costs/dyn-literal-identity.ts.json | 1 + tests/harness/dyncheck.test.ts | 27 +++ 26 files changed, 659 insertions(+), 16 deletions(-) create mode 100644 packages/compiler/src/frontend/lowering/expressions/message-listeners.ts create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-fresh.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-holders.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-workers.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-literal-identity.ts.json create mode 100644 tests/corpus/dyn-cast-identity-fresh.ts create mode 100644 tests/corpus/dyn-cast-identity-holders.ts create mode 100644 tests/corpus/dyn-cast-identity-workers.ts create mode 100644 tests/corpus/dyn-cast-identity.ts create mode 100644 tests/corpus/dyn-literal-identity.ts create mode 100644 tests/harness/corpus-costs/dyn-cast-identity-fresh.ts.json create mode 100644 tests/harness/corpus-costs/dyn-cast-identity-holders.ts.json create mode 100644 tests/harness/corpus-costs/dyn-cast-identity-workers.ts.json create mode 100644 tests/harness/corpus-costs/dyn-cast-identity.ts.json create mode 100644 tests/harness/corpus-costs/dyn-literal-identity.ts.json diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index 4b3f34b80..0bbdff1d8 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -1683,6 +1683,7 @@ export const LIB_FN_SYMS: Record = { "dyn.objEntries": "scr_dyn_obj_entries", "dyn.structuredClone": "scr_structured_clone", "dyn.declAdopt": "scr_dyn_decl_adopt", + "dyn.adoptShared": "scr_dyn_adopt_shared", "dyn.cloneMissing": "scr_structured_clone_missing", "dyn.cloneTransferFail": "scr_structured_clone_transfer_fail", "dyn.cloneTransferFailWith": "scr_structured_clone_transfer_fail_with", diff --git a/packages/compiler/src/frontend/lowering/expressions/message-listeners.ts b/packages/compiler/src/frontend/lowering/expressions/message-listeners.ts new file mode 100644 index 000000000..698bf4dc3 --- /dev/null +++ b/packages/compiler/src/frontend/lowering/expressions/message-listeners.ts @@ -0,0 +1,22 @@ +import * as ts from "../../ts7/adapter.js"; + +const LISTENER_METHODS = new Set([ + "on", + "once", + "addListener", + "prependListener", + "prependOnceListener", +]); + +/** `.on("message", …)` and the other listener registrations. */ +export function isMessageListenerCall(call: ts.CallExpression): boolean { + const callee = call.expression; + const event = call.arguments.nodes[0]; + return ( + ts.isPropertyAccessExpression(callee) && + LISTENER_METHODS.has(callee.name.text) && + event !== undefined && + ts.isStringLiteral(event) && + event.text === "message" + ); +} diff --git a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts index 9f0559672..d4407538b 100644 --- a/packages/compiler/src/frontend/lowering/expressions/narrowing.ts +++ b/packages/compiler/src/frontend/lowering/expressions/narrowing.ts @@ -50,6 +50,7 @@ import { isConstAssertionTypeNode, unitOnlyUnion } from "../../type-mapper.js"; import { assertsGlobalObject, extractionCopiesReference } from "../assertion-identity.js"; import { iterableSlotValue, iterableUnionOf } from "../iterable-values.js"; import { isDeclBoundaryTypeNode } from "../../decl-projection.js"; +import { isMessageListenerCall } from "./message-listeners.js"; /** `c ? a : b`. An explicit destination constructs each branch at that * layout before joining it. Without one, retain the expression's inferred @@ -1575,7 +1576,7 @@ export function lowerAsExpression( // contains undefined, so casts over parse results keep failing on // non-string values with the usual path-annotated TypeError. if (target.kind === "union" && lowerer.dynConvertible(target)) { - return { kind: "dynCheck", value: inner, type: target, loc: locOf(expr) }; + return checkedDynCast(lowerer, expr, inner, target); } // Uint8Array targets: the checked-dynamic tree carries a bytes kind now (converted // stdin chunks) — the extraction validates the kind and copies out. @@ -1619,9 +1620,145 @@ export function lowerAsExpression( `number, string, boolean, records, arrays, and unions of those)`, ); } + return checkedDynCast(lowerer, expr, inner, target); +} + +/** The checked conversion of a dynamic value. A record or array built from + * a value another holder may still reference keeps one identity with it + * (adoptingCast); only a source nothing else can hold (freshDynSource) + * converts outright, which keeps the fused `JSON.parse(text) as T`. */ +function checkedDynCast( + lowerer: Lowerer, + expr: ts.AsExpression | ts.TypeAssertion, + inner: IrExpr, + target: IrType, +): IrExpr { + if ( + holdsReference(lowerer, target) && + !freshDynSource(lowerer, expr, inner) && + !resultOnlyRead(lowerer, expr) + ) { + return adoptingCast(lowerer, inner, target, locOf(expr), "dyn.adoptShared"); + } return { kind: "dynCheck", value: inner, type: target, loc: locOf(expr) }; } +/** A cast whose result only serves one read of a primitive member + * (`(value as T).name`, `(value as T[]).length`): the converted value is + * never stored, compared, written or called through, and the read yields no + * reference into it, so whether it is the source itself or a copy cannot be + * observed. */ +function resultOnlyRead(lowerer: Lowerer, expr: ts.AsExpression | ts.TypeAssertion): boolean { + let node: ts.Node = expr; + while (node.parent !== undefined && ts.isParenthesizedExpression(node.parent)) node = node.parent; + const access = node.parent; + if ( + access === undefined || + !( + (ts.isPropertyAccessExpression(access) || ts.isElementAccessExpression(access)) && + access.expression === node + ) + ) + return false; + const primitive = + ts.TypeFlags.StringLike | + ts.TypeFlags.NumberLike | + ts.TypeFlags.BooleanLike | + ts.TypeFlags.BigIntLike | + ts.TypeFlags.Undefined | + ts.TypeFlags.Null; + const read = lowerer.typeOf(access); + const parts = read.isUnionType() ? ts.constituentTypes(read) : [read]; + if (!parts.every((part) => (part.flags & primitive) !== 0)) return false; + let use: ts.Node = access; + while (use.parent !== undefined && ts.isParenthesizedExpression(use.parent)) use = use.parent; + const parent = use.parent; + if (parent === undefined) return true; + if (ts.isCallExpression(parent) && parent.expression === use) return false; + if ( + ts.isBinaryExpression(parent) && + parent.left === use && + ts.isAssignmentOperator(parent.operatorToken.kind) + ) + return false; + if ( + (ts.isPrefixUnaryExpression(parent) || ts.isPostfixUnaryExpression(parent)) && + (parent.operator === ts.SyntaxKind.PlusPlusToken || + parent.operator === ts.SyntaxKind.MinusMinusToken) + ) + return false; + if (ts.isDeleteExpression(parent)) return false; + return true; +} + +/** A cast operand nothing else can hold: a value this expression creates + * (`JSON.parse(text)`, `await response.json()`), or a structured clone the + * runtime delivers once and the program reads at this site only (`workerData` + * read nowhere else; the parameter of the program's one `"message"` + * listener, read nowhere else in it). Anything else is adopted. */ +function freshDynSource( + lowerer: Lowerer, + expr: ts.AsExpression | ts.TypeAssertion, + inner: IrExpr, +): boolean { + if (inner.kind === "libCall" && inner.fn === "json.parse") return true; + if ( + inner.kind === "awaitExpr" && + inner.value.kind === "libCall" && + inner.value.fn === "fetch.responseJson" + ) + return true; + const facts = lowerer.structuredCloneReads(); + if (inner.kind === "libCall" && inner.fn === "worker.data") return facts.workerData === 1; + let operand: ts.Expression = expr.expression; + while (ts.isParenthesizedExpression(operand)) operand = operand.expression; + if (!ts.isIdentifier(operand) || inner.kind !== "varRef" || facts.messageListeners !== 1) + return false; + const symbol = lowerer.checker.getSymbolAtLocation(operand); + const param = symbol?.valueDeclaration; + if (!param || !ts.isParameter(param) || !ts.isIdentifier(param.name)) return false; + const fn = param.parent; + if ( + !(ts.isArrowFunction(fn) || ts.isFunctionExpression(fn)) || + fn.parameters.nodes[0] !== param || + !isMessageListener(fn) + ) + return false; + let reads = 0; + const name = param.name.text; + const visit = (node: ts.Node): void => { + if (ts.isIdentifier(node) && node.text === name && node !== param.name) reads++; + ts.forEachChild(node, visit); + }; + ts.forEachChild(fn, visit); + return reads === 1; +} + +/** The listener argument of `.on("message", fn)` (also once, + * addListener, prependListener, prependOnceListener) registered once: at + * module level, outside any function, class or loop, so one emitter can + * never hand the same message to two registrations of it. */ +function isMessageListener(fn: ts.Node): boolean { + const call = fn.parent; + if (!call || !ts.isCallExpression(call) || call.arguments.nodes[1] !== fn) return false; + if (!isMessageListenerCall(call)) return false; + for (let p = call.parent; p !== undefined && !ts.isSourceFile(p); p = p.parent) { + if ( + ts.isFunctionLike(p) || + ts.isClassDeclaration(p) || + ts.isClassExpression(p) || + ts.isClassStaticBlockDeclaration(p) || + ts.isForStatement(p) || + ts.isForInStatement(p) || + ts.isForOfStatement(p) || + ts.isWhileStatement(p) || + ts.isDoStatement(p) + ) + return false; + } + return true; +} + /** True when a type holds a record or an array somewhere (values whose * identity can be observed). */ function holdsReference(lowerer: Lowerer, t: IrType, seen = new Set()): boolean { @@ -1657,6 +1794,21 @@ function declBoundaryCast( if (!holdsReference(lowerer, target)) { return { kind: "dynCheck", value: inner, type: target, loc }; } + return adoptingCast(lowerer, inner, target, loc, "dyn.declAdopt"); +} + +/** The checked conversion of `inner` to `target` followed by adoption + * (`dyn.declAdopt` at the boundary, the lenient `dyn.adoptShared` + * elsewhere): every source object or array that something else still + * references becomes a live capsule of the native value built from it. */ +function adoptingCast( + lowerer: Lowerer, + inner: IrExpr, + target: IrType, + loc: SrcLoc, + fn: "dyn.declAdopt" | "dyn.adoptShared", +): IrExpr { + const boundary = fn === "dyn.declAdopt"; const source = lowerer.declareHiddenLocal("%boundarySource", DYN); const value = lowerer.declareHiddenLocal("%boundaryValue", target); return { @@ -1669,7 +1821,7 @@ function declBoundaryCast( init: { kind: "dynCheck", value: varRef(source.id, DYN, loc), - adopt: true, + ...(boundary ? { adopt: true as const } : {}), type: target, loc, }, @@ -1679,7 +1831,7 @@ function declBoundaryCast( kind: "exprStmt", expr: { kind: "libCall", - fn: "dyn.declAdopt", + fn, args: [ varRef(source.id, DYN, loc), { diff --git a/packages/compiler/src/frontend/lowering/expressions/object-literals.ts b/packages/compiler/src/frontend/lowering/expressions/object-literals.ts index f57e52159..6e4ff8a33 100644 --- a/packages/compiler/src/frontend/lowering/expressions/object-literals.ts +++ b/packages/compiler/src/frontend/lowering/expressions/object-literals.ts @@ -419,7 +419,8 @@ export function lowerDynObjectLiteral( : !boxValue && (ts.isObjectLiteralExpression(valueExpr) || (ts.isArrayLiteralExpression(valueExpr) && - holdsEvolvingArray(lowerer, valueExpr))) + (holdsEvolvingArray(lowerer, valueExpr) || + lowerer.untypedLiteralContext(valueExpr)))) ? lowerer.lowerExprExpecting(valueExpr, DYN) : lowerer.lowerExpr(valueExpr as ts.Expression); raw = fenceClosureProbe(lowerer, valueExpr, undefined, lowerValue) ?? lowerValue(); diff --git a/packages/compiler/src/frontend/lowering/lower-stmts.ts b/packages/compiler/src/frontend/lowering/lower-stmts.ts index 84196476a..37e14ec0c 100644 --- a/packages/compiler/src/frontend/lowering/lower-stmts.ts +++ b/packages/compiler/src/frontend/lowering/lower-stmts.ts @@ -1878,7 +1878,16 @@ export function lowerStmt(lowerer: Lowerer, stmt: ts.Statement): IrStmt | IrStmt } // Exception-representable values move into the runtime's exception // cell. `throw f()` of a void call has no value. - let value = lowerer.lowerExpr(stmt.expression); + // A thrown object or array literal has no declared type: it is built as + // a dynamic object, so the catch binding's checked casts adopt it + // (lowerer.untypedLiteralContext). + let literal: ts.Expression = stmt.expression; + while (ts.isParenthesizedExpression(literal)) literal = literal.expression; + let value = + (ts.isObjectLiteralExpression(literal) || ts.isArrayLiteralExpression(literal)) && + lowerer.untypedLiteralContext(literal) + ? lowerer.lowerExprExpecting(stmt.expression, DYN) + : lowerer.lowerExpr(stmt.expression); if (value.type.kind === "void") lowerer.badType(stmt.expression, lowerer.typeOf(stmt.expression)); // Preserve primitive reasons and readable record identity across the diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 634c361c2..7c2d32f17 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -460,6 +460,7 @@ import { genericLocalClassBinding, } from "./generic-functions.js"; import { bindingNeverReassigned } from "./binding-analysis.js"; +import { isMessageListenerCall } from "./expressions/message-listeners.js"; import type { InstantiationPath } from "./instantiation-path.js"; import { bodyReadsArguments } from "../arguments-usage.js"; import { completeArgs, wrappedUndefined, undefinedArgFor } from "./call-arguments.js"; @@ -2477,6 +2478,69 @@ export class Lowerer { return fallback ?? null; } + /** An object or array literal in an untyped context: its contextual type + * is `unknown` or `any` from a slot the program declares (a variable, + * field, parameter, return type or `unknown[]` element; a library + * parameter typed `any` only through a type argument), it is thrown, or + * it is a member of such a literal, and it holds data only (no methods, + * accessors or function members). Its value is built as a dynamic + * object: no type the program wrote gives it a native layout, and a later + * checked cast adopts it (dyn.adoptShared), so every holder keeps one + * identity. A library parameter the declarations type `any` or `unknown` + * itself (`console.log`, `JSON.stringify`) only reads the value and keeps + * the native literal. */ + untypedLiteralContext(x: ts.Expression): boolean { + if (isJsSourceFile(ts.getSourceFileOfNode(x))) return false; + // Data only: a literal with methods, accessors or function members is an + // object with behavior, which keeps its native layout (and boxed form). + if ( + ts.isObjectLiteralExpression(x) && + x.properties.nodes.some((p) => { + if (!ts.isPropertyAssignment(p)) + return !ts.isShorthandPropertyAssignment(p) && !ts.isSpreadAssignment(p); + let init: ts.Expression = p.initializer; + while (ts.isParenthesizedExpression(init)) init = init.expression; + return ( + ts.isFunctionExpression(init) || ts.isArrowFunction(init) || ts.isClassExpression(init) + ); + }) + ) + return false; + let node: ts.Node = x; + while (node.parent !== undefined && ts.isParenthesizedExpression(node.parent)) + node = node.parent; + const parent = node.parent; + if (parent === undefined) return false; + if (ts.isThrowStatement(parent)) return true; + if (ts.isPropertyAssignment(parent) && parent.initializer === node) { + const literal = parent.parent; + if (ts.isObjectLiteralExpression(literal)) return this.untypedLiteralContext(literal); + } + if (ts.isArrayLiteralExpression(parent) && this.untypedLiteralContext(parent)) return true; + const contextual = this.checker.getContextualType(x); + if (!contextual || !(contextual.flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown))) + return false; + if (ts.isCallExpression(parent) || ts.isNewExpression(parent)) { + const signature = this.checker.getResolvedSignature(parent); + const decl = signature?.declaration; + if (decl && this.isStdlibFile(ts.getSourceFileOfNode(decl))) { + const index = (parent.arguments?.nodes ?? []).indexOf(node as ts.Expression); + const params = (decl as { parameters?: { nodes: readonly ts.ParameterDeclaration[] } }) + .parameters?.nodes; + const param = params?.[Math.min(index, params.length - 1)]; + let annotation = param?.type; + if (annotation && ts.isArrayTypeNode(annotation)) annotation = annotation.elementType; + if ( + !annotation || + annotation.kind === ts.SyntaxKind.AnyKeyword || + annotation.kind === ts.SyntaxKind.UnknownKeyword + ) + return false; + } + } + return true; + } + /** A fresh TypeScript data literal (`{ message: "m" }`) passed to a * checked-dynamic parameter of a callee implemented in JavaScript, whose * contract lets it reshape the object: a call through an untyped value, an @@ -9858,6 +9922,38 @@ export class Lowerer { ); }; + private structuredCloneReadCounts: { workerData: number; messageListeners: number } | null = null; + + /** How often the program reads `workerData` (every expression spelling it, + * counted conservatively) and registers a `"message"` listener: a + * structured clone read at one site only has no other holder + * (narrowing.ts freshDynSource). Computed once per lowering pass. */ + structuredCloneReads(): { workerData: number; messageListeners: number } { + if (this.structuredCloneReadCounts) return this.structuredCloneReadCounts; + const counts = { workerData: 0, messageListeners: 0 }; + const visit = (node: ts.Node): void => { + if (ts.isIdentifier(node) && node.text === "workerData") { + const parent = node.parent; + const declaresName = + parent !== undefined && + (ts.isImportSpecifier(parent) || + ts.isExportSpecifier(parent) || + ((ts.isPropertyAssignment(parent) || + ts.isPropertyDeclaration(parent) || + ts.isPropertySignature(parent) || + ts.isMethodDeclaration(parent)) && + parent.name === node)); + if (!declaresName) counts.workerData++; + } else if (ts.isCallExpression(node) && isMessageListenerCall(node)) { + counts.messageListeners++; + } + ts.forEachChild(node, visit); + }; + for (const sf of this.moduleOrder) ts.forEachChild(sf, visit); + this.structuredCloneReadCounts = counts; + return counts; + } + irTypeOf(node: ts.Node): IrType { const t = this.typeOf(node); // JS inference can leave mutable fields, accessor parameters and @@ -11458,6 +11554,7 @@ export class Lowerer { !this.mapTypeOf(this.typeOf(x)) || this.excessJsContextualProperty(x, parts) || this.reshapeableContextualLiteral(x, parts) || + this.untypedLiteralContext(x) || holdsEvolvingArray(this, x) ) { return lowerDynObjectLiteral(this, x); diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index e230932ba..405dc5765 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -3967,6 +3967,12 @@ function buildLibFnSignatures() { * Throws the path TypeError, changing nothing, when a converted object * is not plain data (a prototype, accessors, symbols, frozen state). */ "dyn.declAdopt": { argTypes: [DYN, DYN], result: VOID }, + /** dyn.declAdopt for every other checked cast of a dynamic value to a + * record or array (`value as T`): a shared source object or array + * becomes a live capsule of the value built from it. A node that is not + * plain data, or that the value holds twice, keeps its separate copy. + * Never throws: the conversion already succeeded. */ + "dyn.adoptShared": { argTypes: [DYN, DYN], result: VOID }, "dyn.cloneMissing": { argTypes: [], result: DYN }, /** structuredClone with a NON-EMPTY transfer array of static values: * nothing static is transferable, so the call always throws Node's diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index 494c4e3e8..cd6eb55e9 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -963,7 +963,10 @@ const RUNTIME_FEATURE_RULES = { /** The declaration-typed boundary's adoption (scr_decl_adopt.c): its * casts, and closures boxed in a boundary program, which adopt their * arguments. */ - declAdopt: rule({ fns: ["dyn.declAdopt"], initial: (mod) => mod.declBoundary === true }), + declAdopt: rule({ + fns: ["dyn.declAdopt", "dyn.adoptShared"], + initial: (mod) => mod.declBoundary === true, + }), /** for await over checked-dynamic values (scr_dyn_for_await.c). */ dynForAwait: rule({ fns: ["dyn.asyncIteratorOpen", "dyn.asyncIteratorWasSync"] }), /** Buffer.prototype methods called on checked-dynamic values diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-fresh.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-fresh.ts.json new file mode 100644 index 000000000..e1643bcab --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-fresh.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/dyn-cast-identity-fresh.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-holders.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-holders.ts.json new file mode 100644 index 000000000..e1a06ecc5 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-holders.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/dyn-cast-identity-holders.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-workers.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-workers.ts.json new file mode 100644 index 000000000..e8ecb066e --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity-workers.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/dyn-cast-identity-workers.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity.ts.json new file mode 100644 index 000000000..fdf360d21 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-cast-identity.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/dyn-cast-identity.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-literal-identity.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-literal-identity.ts.json new file mode 100644 index 000000000..41fde2c81 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/dyn-literal-identity.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/dyn-literal-identity.ts" + ], + "diags": [] +} diff --git a/packages/runtime/src/scr_decl_adopt.c b/packages/runtime/src/scr_decl_adopt.c index 7372826ab..fc1c4456c 100644 --- a/packages/runtime/src/scr_decl_adopt.c +++ b/packages/runtime/src/scr_decl_adopt.c @@ -15,7 +15,11 @@ * value has no prototype, accessors, symbol keys or frozen state) and * collects the shared ones; it throws the path TypeError before anything * changes. Phase two converts the shared nodes in place - * (scr_dyn_decl_become, scr_json.c). */ + * (scr_dyn_decl_become, scr_json.c). + * + * Every other checked cast of a dynamic value to a record or array runs the + * same pass leniently (scr_dyn_adopt_shared): a node that cannot become a + * capsule keeps the cast's copy. */ #include "scr_runtime.h" #include @@ -31,6 +35,9 @@ typedef struct { typedef struct { ScrDeclAdopt *items; size_t len, cap; + /* A checked cast outside the boundary (scr_dyn_adopt_shared): a node + * that cannot become a capsule keeps the copy instead of throwing. */ + bool lenient; } ScrDeclAdoptList; static void scr_decl_adopt_push(ScrDeclAdoptList *list, ScrDyn *node, ScrDyn *capsule) { @@ -44,7 +51,7 @@ static void scr_decl_adopt_push(ScrDeclAdoptList *list, ScrDyn *node, ScrDyn *ca list->len++; } -static bool scr_decl_adopt_plain(const ScrDyn *n, const ScrDynPath *path) { +static bool scr_decl_adopt_plain(const ScrDyn *n, const ScrDynPath *path, bool lenient) { const char *want = NULL; if (n->kind == SCR_DYN_OBJ) { if (n->prototype || n->null_proto || n->v.obj.class_name) @@ -72,7 +79,7 @@ static bool scr_decl_adopt_plain(const ScrDyn *n, const ScrDynPath *path) { want = "a plain array (this value is frozen, sealed or not extensible)"; } if (!want) return true; - scr_dyn_check_fail(path, want, n); + if (!lenient) scr_dyn_check_fail(path, want, n); return false; } @@ -82,6 +89,14 @@ static ScrDyn *scr_decl_capsule_ptr_holder(const ScrDeclAdoptList *list, const S return NULL; } +/* Whether the walk follows a child: plain objects and arrays. A boxed + * native record or array is already one object with its native value; a + * cast to another layout copies it (the copy keeps a cached identity per + * capsule, scr_dyn_typed_ref_cache_cast). */ +static bool scr_decl_adopt_follows(const ScrDyn *child) { + return child && (child->kind == SCR_DYN_OBJ || child->kind == SCR_DYN_ARR); +} + /* `capsule` is owned by the call: pushed or released. */ static bool scr_decl_adopt_walk(ScrDeclAdoptList *list, ScrDyn *n, ScrDyn *capsule, const ScrDynPath *path, unsigned depth) { @@ -90,15 +105,16 @@ static bool scr_decl_adopt_walk(ScrDeclAdoptList *list, ScrDyn *n, ScrDyn *capsu scr_dyn_release(capsule); return true; } - if (!scr_decl_adopt_plain(n, path)) { + if (!scr_decl_adopt_plain(n, path, list->lenient)) { scr_dyn_release(capsule); - return false; + return list->lenient; } if (n->rc > 1 && n->rc != SIZE_MAX) { ScrDyn *seen = scr_decl_capsule_ptr_holder(list, n); if (seen) { bool same = seen->v.typed_ref.ptr == capsule->v.typed_ref.ptr; scr_dyn_release(capsule); + if (!same && list->lenient) return true; if (!same) scr_dyn_check_fail(path, "a value that is not also stored elsewhere in this value (scriptc builds a separate native copy for each place)", n); return same; @@ -112,7 +128,7 @@ static bool scr_decl_adopt_walk(ScrDeclAdoptList *list, ScrDyn *n, ScrDyn *capsu if (!ops->has(ptr, i)) continue; const ScrStr *name = ops->names[i]; ScrDyn *child = scr_dyn_obj_get(n, name->data, name->len); - if (!child || (child->kind != SCR_DYN_OBJ && child->kind != SCR_DYN_ARR)) continue; + if (!scr_decl_adopt_follows(child)) continue; ScrDynPath p = { path, name->data, 0 }; if (!scr_decl_adopt_walk(list, child, ops->get(ptr, i), &p, depth + 1)) { if (!(n->rc > 1 && n->rc != SIZE_MAX)) scr_dyn_release(capsule); @@ -135,7 +151,7 @@ static bool scr_decl_adopt_walk(ScrDeclAdoptList *list, ScrDyn *n, ScrDyn *capsu size_t len = n->v.arr.len < view->v.arr.len ? n->v.arr.len : view->v.arr.len; for (size_t i = 0; i < len; i++) { ScrDyn *child = n->v.arr.items[i], *element = view->v.arr.items[i]; - if (!child || !element || (child->kind != SCR_DYN_OBJ && child->kind != SCR_DYN_ARR)) continue; + if (!element || !scr_decl_adopt_follows(child)) continue; ScrDynPath p = { path, NULL, i }; if (!scr_decl_adopt_walk(list, child, scr_dyn_retain(element), &p, depth + 1)) { scr_dyn_release(view); @@ -150,7 +166,7 @@ static bool scr_decl_adopt_walk(ScrDeclAdoptList *list, ScrDyn *n, ScrDyn *capsu const ScrDynTypedArrayOps *ops = capsule->v.typed_ref.array; for (size_t i = 0; i < n->v.arr.len; i++) { ScrDyn *child = n->v.arr.items[i]; - if (!child || (child->kind != SCR_DYN_OBJ && child->kind != SCR_DYN_ARR)) continue; + if (!scr_decl_adopt_follows(child)) continue; ScrDynPath p = { path, NULL, i }; if (!scr_decl_adopt_walk(list, child, ops->get(ptr, (double)i), &p, depth + 1)) { if (!(n->rc > 1 && n->rc != SIZE_MAX)) scr_dyn_release(capsule); @@ -162,8 +178,8 @@ static bool scr_decl_adopt_walk(ScrDeclAdoptList *list, ScrDyn *n, ScrDyn *capsu return true; } -void scr_dyn_decl_adopt(ScrDyn *source, ScrDyn *capsule) { - ScrDeclAdoptList list = { NULL, 0, 0 }; +static void scr_decl_adopt_run(ScrDyn *source, ScrDyn *capsule, bool lenient) { + ScrDeclAdoptList list = { NULL, 0, 0, lenient }; bool ok = scr_decl_adopt_walk(&list, source, scr_dyn_retain(capsule), NULL, 0); for (size_t i = 0; i < list.len; i++) { ScrDeclAdopt *item = &list.items[i]; @@ -172,3 +188,16 @@ void scr_dyn_decl_adopt(ScrDyn *source, ScrDyn *capsule) { } free(list.items); } + +void scr_dyn_decl_adopt(ScrDyn *source, ScrDyn *capsule) { + scr_decl_adopt_run(source, capsule, false); +} + +/* Any other checked cast of a dynamic value to a record or array + * (`value as T`): the same adoption, so a source that something else still + * holds keeps one identity with the built value. A node that is not plain + * data, or that the value holds in two places, keeps the separate copy the + * cast built (the conversion already succeeded; nothing throws here). */ +void scr_dyn_adopt_shared(ScrDyn *source, ScrDyn *capsule) { + scr_decl_adopt_run(source, capsule, true); +} diff --git a/packages/runtime/src/scr_dyn.h b/packages/runtime/src/scr_dyn.h index 2d916a825..eb752a52b 100644 --- a/packages/runtime/src/scr_dyn.h +++ b/packages/runtime/src/scr_dyn.h @@ -393,6 +393,7 @@ const ScrDynTypedRecordOps *scr_dyn_typed_ref_live_record(const ScrDyn *d); * holds. Both borrowed; a node that is not plain data throws the path * TypeError before anything changes. */ void scr_dyn_decl_adopt(ScrDyn *source, ScrDyn *capsule); +void scr_dyn_adopt_shared(ScrDyn *source, ScrDyn *capsule); /* Prototype members of a compiled class seen as `unknown`, emitted per * class by the compiler: the string names of methods, getters and setters diff --git a/tests/corpus/dyn-cast-identity-fresh.ts b/tests/corpus/dyn-cast-identity-fresh.ts new file mode 100644 index 000000000..f0ef0fd53 --- /dev/null +++ b/tests/corpus/dyn-cast-identity-fresh.ts @@ -0,0 +1,21 @@ +// Casts of values nothing else holds yet: a parse result and a response +// body. They convert outright; the results are ordinary records. + +type Point = { x: number; y: number }; +type Doc = { title: string; points: Point[] }; + +const parsed = JSON.parse('{"title":"t","points":[{"x":1,"y":2},{"x":3,"y":4}]}') as Doc; +parsed.points[0]!.x = 10; +parsed.points.push({ x: 5, y: 6 }); +console.log("parse", parsed.title, parsed.points.length, JSON.stringify(parsed.points[0])); + +const again = JSON.parse('{"x":1,"y":2}') as Point; +const other = JSON.parse('{"x":1,"y":2}') as Point; +console.log("separate parses", again === other, again.x === other.x); + +async function main(): Promise { + const body = (await new Response('{"title":"r","points":[{"x":7,"y":8}]}').json()) as Doc; + body.points[0]!.y = 80; + console.log("response", body.title, JSON.stringify(body.points)); +} +main(); diff --git a/tests/corpus/dyn-cast-identity-holders.ts b/tests/corpus/dyn-cast-identity-holders.ts new file mode 100644 index 000000000..55b311462 --- /dev/null +++ b/tests/corpus/dyn-cast-identity-holders.ts @@ -0,0 +1,62 @@ +// Checked casts of dynamic values held by parameters, fields, closures and +// containers keep one identity with the holder's value. + +type Point = { x: number; y: number }; + +// A parameter: the caller's value and the cast result are one object. +function asPoint(value: unknown): Point { + return value as Point; +} +const shared: unknown = JSON.parse('{"x":1,"y":2}'); +const fromParam = asPoint(shared); +fromParam.x = 5; +console.log("parameter", (shared as Point).x, asPoint(shared) === fromParam); + +// A field of a class instance. +class Holder { + data: unknown; + constructor(data: unknown) { + this.data = data; + } +} +const holder = new Holder(JSON.parse('{"x":3,"y":4}')); +const fromField = holder.data as Point; +fromField.y = 40; +console.log("field", JSON.stringify(holder.data), (holder.data as Point) === fromField); + +// A value captured by a closure. +const captured: unknown = JSON.parse('{"x":0,"y":0}'); +const bump = (): void => { + (captured as Point).x++; +}; +bump(); +bump(); +console.log("closure", (captured as Point).x); + +// Elements of an unknown[] container. +const list: unknown[] = [JSON.parse('{"x":1,"y":1}'), JSON.parse('{"x":2,"y":2}')]; +const second = list[1] as Point; +second.x = 20; +console.log("container", JSON.stringify(list), (list[1] as Point) === second); + +// A union target with a record arm. +const maybe: unknown = JSON.parse('{"x":7,"y":8}'); +const viaUnion = maybe as Point | undefined; +if (viaUnion) viaUnion.x = 70; +console.log("union", (maybe as Point).x); + +// A record whose field is an array, mutated through both casts. +type Bag = { items: number[] }; +const bagRaw: unknown = JSON.parse('{"items":[1]}'); +const bag = bagRaw as Bag; +const items = (bagRaw as { items: unknown }).items as number[]; +items.push(2); +bag.items.push(3); +console.log("record array", bag.items.join(","), items.length, bag.items === items); + +// A native value boxed as unknown and cast back to its own type. +const nativeList: number[] = [1, 2]; +const boxedList: unknown = nativeList; +const backList = boxedList as number[]; +backList.push(3); +console.log("native array", nativeList.length, backList === nativeList); diff --git a/tests/corpus/dyn-cast-identity-workers.ts b/tests/corpus/dyn-cast-identity-workers.ts new file mode 100644 index 000000000..9ee2e42b9 --- /dev/null +++ b/tests/corpus/dyn-cast-identity-workers.ts @@ -0,0 +1,23 @@ +// Structured clones a worker receives: workerData and message payloads. +// Two casts of workerData are one object; a message payload converts once. +import { Worker, isMainThread, parentPort, workerData } from "node:worker_threads"; + +type Job = { name: string; point: { x: number; y: number }; tags: string[] }; + +if (isMainThread) { + const worker = new Worker(new URL(import.meta.url), { + workerData: { name: "job", point: { x: 1, y: 2 }, tags: ["a"] }, + }); + worker.on("message", (message: unknown) => { + const reply = message as Job; + reply.tags.push("main"); + console.log("reply", reply.name, reply.point.x, reply.tags.join(",")); + }); +} else { + const job = workerData as Job; + const same = workerData as Job; + job.point.x = 10; + same.tags.push("worker"); + console.log("worker", same.point.x, job.tags.join(","), job === same); + parentPort!.postMessage(job); +} diff --git a/tests/corpus/dyn-cast-identity.ts b/tests/corpus/dyn-cast-identity.ts new file mode 100644 index 000000000..5ac30c52f --- /dev/null +++ b/tests/corpus/dyn-cast-identity.ts @@ -0,0 +1,71 @@ +// A checked cast of a dynamic value to a record or array (`value as T`) +// keeps the value's identity: every cast of the same source, and the source +// itself, read and write one object. + +type Point = { x: number; y: number }; + +// Two casts of one parsed object alias each other and the source. +const raw: unknown = JSON.parse('{"x":1,"y":2}'); +const a = raw as Point; +const b = raw as Point; +a.x = 10; +b.y = 20; +console.log("aliasing", a.x, a.y, b.x, b.y); +console.log("identity", a === b, (raw as Point) === a); +console.log("source", JSON.stringify(raw)); + +// Nested objects keep their identity through the outer and inner casts. +type Outer = { name: string; inner: { v: number } }; +const nestedRaw: unknown = JSON.parse('{"name":"o","inner":{"v":1}}'); +const outer = nestedRaw as Outer; +const inner = (nestedRaw as { inner: unknown }).inner as { v: number }; +inner.v = 2; +console.log("nested", outer.inner.v, outer.inner === inner); +outer.inner.v = 3; +console.log("nested back", inner.v); + +// Arrays: pushes and element writes show through every cast. +const listRaw: unknown = JSON.parse("[1,2]"); +const first = listRaw as number[]; +const second = listRaw as number[]; +first.push(3); +second[0] = 9; +console.log("array", first.length, second.length, first[0], first === second, JSON.stringify(listRaw)); + +// Arrays of records. +type Item = { id: number; tags: string[] }; +const itemsRaw: unknown = JSON.parse('[{"id":1,"tags":["a"]},{"id":2,"tags":[]}]'); +const items = itemsRaw as Item[]; +const again = itemsRaw as Item[]; +items[0]!.tags.push("b"); +again[1]!.id = 7; +console.log("array of records", again[0]!.tags.join(","), items[1]!.id, items[0] === again[0]); + +// The source stays an ordinary object for untyped reads and writes. +const bagRaw: unknown = JSON.parse('{"y":2,"x":1,"extra":"e"}'); +const point = bagRaw as Point; +const bag = bagRaw as Record; +bag.z = 3; +console.log("added", JSON.stringify(bagRaw), Object.keys(bag).join(",")); +delete bag.extra; +console.log("deleted", JSON.stringify(bagRaw), JSON.stringify(point)); +for (const k in bag) console.log("key", k, bag[k]); +point.x = 5; +console.log("typed write", bag.x); + +// A native record boxed as unknown comes back as itself. +const native: Point = { x: 1, y: 2 }; +const boxed: unknown = native; +const unboxed = boxed as Point; +unboxed.x = 10; +console.log("native", native.x, unboxed === native); + +// A fresh parse result has no other holder. +const fresh = JSON.parse('{"x":4,"y":5}') as Point; +console.log("fresh", fresh.x + fresh.y); + +// A frozen source keeps working as a copy. +const frozen: unknown = Object.freeze(JSON.parse('{"x":1,"y":2}')); +const held = [frozen]; +const thawed = frozen as Point; +console.log("frozen", thawed.x, held.length, Object.isFrozen(frozen)); diff --git a/tests/corpus/dyn-literal-identity.ts b/tests/corpus/dyn-literal-identity.ts new file mode 100644 index 000000000..915b8f73e --- /dev/null +++ b/tests/corpus/dyn-literal-identity.ts @@ -0,0 +1,83 @@ +// Object and array literals in untyped contexts (an `unknown` or `any` +// slot, an `unknown[]` element, a thrown value, an `unknown`/`any` +// parameter) keep one identity through later checked casts. + +type Counter = { count: number }; +type Item = { name: string; tags: string[] }; + +// The original example: a write through the cast shows through the holder. +const holder: any = { count: 1 }; +const item = holder as Counter; +item.count++; +console.log("any holder", holder.count, item === holder); + +const box: unknown = { count: 10 }; +const viewA = box as Counter; +const viewB = box as Counter; +viewA.count += 5; +console.log("unknown holder", viewB.count, viewA === viewB, JSON.stringify(box)); + +// Elements of an unknown[] array literal. +const values: unknown[] = [ + { name: "a", tags: ["x"] }, + { name: "b", tags: [] }, +]; +const second = values[1] as Item; +second.tags.push("y"); +console.log("unknown[] element", JSON.stringify(values), (values[1] as Item) === second); + +// Nested literals inside an untyped literal. +const tree: unknown = { name: "root", children: [{ name: "leaf", tags: ["t"] }] }; +const root = tree as { name: string; children: Item[] }; +const leaf = (tree as { children: unknown[] }).children[0] as Item; +leaf.tags.push("u"); +console.log("nested", root.children[0]!.tags.join(","), root.children[0] === leaf); + +// A thrown literal. +try { + throw { code: "E_BUSY", attempts: [1] }; +} catch (error) { + const failure = error as { code: string; attempts: number[] }; + failure.attempts.push(2); + console.log("thrown", failure.code, (error as { attempts: number[] }).attempts.length, failure === error); +} + +// Literals passed to unknown and any parameters. +function remember(value: unknown): Counter { + const counter = value as Counter; + counter.count *= 2; + return value as Counter; +} +console.log("unknown parameter", remember({ count: 4 }).count); + +function relabel(value: any): Item { + const target = value as Item; + target.name = target.name.toUpperCase(); + return value; +} +const relabeled = relabel({ name: "pkg", tags: [] }); +console.log("any parameter", relabeled.name, relabeled.tags.length); + +// A literal returned as unknown, and one stored in an unknown field. +function make(): unknown { + return { count: 0 }; +} +const made = make(); +(made as Counter).count = 7; +console.log("returned", (made as Counter).count); + +class Slot { + value: unknown = { name: "slot", tags: ["s"] }; +} +const slot = new Slot(); +(slot.value as Item).tags.push("t"); +console.log("field", JSON.stringify(slot.value)); + +// Untyped literals keep JavaScript's own key order and extra keys. +const extra: unknown = { name: "e", z: 1, tags: [], a: 2 }; +const typed = extra as Item; +typed.tags.push("k"); +console.log("extra keys", JSON.stringify(extra), Object.keys(typed).join(",")); + +// Literals handed to library calls are unchanged. +console.log(JSON.stringify({ count: 3 }), [{ n: 1 }].length); diff --git a/tests/harness/corpus-costs/dyn-cast-identity-fresh.ts.json b/tests/harness/corpus-costs/dyn-cast-identity-fresh.ts.json new file mode 100644 index 000000000..8c0e66c3c --- /dev/null +++ b/tests/harness/corpus-costs/dyn-cast-identity-fresh.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 3600 } diff --git a/tests/harness/corpus-costs/dyn-cast-identity-holders.ts.json b/tests/harness/corpus-costs/dyn-cast-identity-holders.ts.json new file mode 100644 index 000000000..8c0e66c3c --- /dev/null +++ b/tests/harness/corpus-costs/dyn-cast-identity-holders.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 3600 } diff --git a/tests/harness/corpus-costs/dyn-cast-identity-workers.ts.json b/tests/harness/corpus-costs/dyn-cast-identity-workers.ts.json new file mode 100644 index 000000000..8c0e66c3c --- /dev/null +++ b/tests/harness/corpus-costs/dyn-cast-identity-workers.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 3600 } diff --git a/tests/harness/corpus-costs/dyn-cast-identity.ts.json b/tests/harness/corpus-costs/dyn-cast-identity.ts.json new file mode 100644 index 000000000..8c0e66c3c --- /dev/null +++ b/tests/harness/corpus-costs/dyn-cast-identity.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 3600 } diff --git a/tests/harness/corpus-costs/dyn-literal-identity.ts.json b/tests/harness/corpus-costs/dyn-literal-identity.ts.json new file mode 100644 index 000000000..8c0e66c3c --- /dev/null +++ b/tests/harness/corpus-costs/dyn-literal-identity.ts.json @@ -0,0 +1 @@ +{ "plain": 3000, "san": 3600 } diff --git a/tests/harness/dyncheck.test.ts b/tests/harness/dyncheck.test.ts index e1a869048..57bf9ecf9 100644 --- a/tests/harness/dyncheck.test.ts +++ b/tests/harness/dyncheck.test.ts @@ -143,6 +143,33 @@ describe(`dynamic-boundary checks (scriptc-only${sanitize ? ", sanitized" : ""}) ).toBe(""); }); + test("a boxed native value cast to another layout is copied (decision D3)", async () => { + // Node's `as` is a no-op, so these writes would show through every + // holder. scriptc copies a boxed native value into a cast's different + // layout for now (the object model's decision D3: copy, throw, or + // share storage); the copy keeps one identity per boxed value. + const r = await compileAndRun( + "native-layout-casts", + `type Point = { x: number; y: number }; +const dict: Record = { x: 1, y: 2 }; +const v: unknown = dict; +const p = v as Point; +p.x = 5; +console.log(dict.x, p.x, (v as Point) === p); +const nums: number[] = [1, 2]; +const u: unknown = nums; +console.log((u as number[]) === nums); +const wide = u as (number | string)[]; +wide.push("s"); +console.log(nums.length, wide.length); +console.log(JSON.stringify({ ...(v as Record) })); +`, + ); + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe(["1 5 true", "true", "2 3", '{"x":1,"y":2}', ""].join("\n")); + expect(r.stderr).toBe(""); + }); + test("wrong-typed field throws with the path", async () => { const r = await compileAndRun( "wrong-type", From 4c3a1d9c98b87320c0271c9d1b5b50489141e8f6 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sun, 25 Oct 2026 18:53:25 -0500 Subject: [PATCH 042/128] Link the Linux release helpers against LLVM built with ThinLTO and a helper profile The Linux helpers linked LLVM 22.1.8's release archive. The helper's code generation is LLVM's code, so building that LLVM from its release sources with ThinLTO and with a profile of the helper's own work makes code generation 5-9% faster than the helper as released, with identical objects. - native/llvm-codegen/llvm.profdata.gz is the profile, collected by scripts/refresh-llvm-profile.mjs: it builds LLVM with IR instrumentation and an instrumented helper, and runs that helper on tsc-ts, five Effect fixtures, the runtime benchmark workloads and every 50th corpus program (scripts/llvm-helper-inputs.mjs). It follows LLVM's sources, so it needs a refresh when LLVM is bumped. - scripts/build-llvm-dist.mjs builds LLVM with that profile and ThinLTO, and packs it with a checksum. The llvm-dist workflow, run by hand, builds it for x64 and arm64, requires a helper linked against it to give the same objects as one linked against the release archive (scripts/check-llvm-dist.mjs), prints both helpers' times and the profile's mismatch count, and attaches the archive to the LLVM_DIST_TAG release of this repository. - The release workflow's Linux jobs, and the wasm32-wasi job, which also uploads the x64 GNU helper, download that archive and build the helper with SCRIPTC_LLVM_THINLTO=1: clang, lld and ThinLTO, and the profile for the helper's own sources. Without the archive, or if that build fails, the helper links the release archive as before. - The four Linux helper packages share their build in native/llvm-codegen/linux-helper.mjs. Without SCRIPTC_LLVM_THINLTO it builds the same executable as before. --- .github/workflows/llvm-dist.yml | 93 ++++++++++++++ .github/workflows/release.yml | 37 +++++- native/llvm-codegen/CMakeLists.txt | 33 +++++ native/llvm-codegen/README.md | 17 +++ native/llvm-codegen/linux-helper.mjs | 79 ++++++++++++ native/llvm-codegen/llvm-dist.mjs | 96 +++++++++++++++ native/llvm-codegen/llvm.profdata.gz | Bin 0 -> 6404815 bytes .../llvm-linux-arm64-gnu/scripts/build.mjs | 40 ++---- .../llvm-linux-arm64-musl/scripts/build.mjs | 42 ++----- packages/llvm-linux-x64-gnu/scripts/build.mjs | 39 ++---- .../llvm-linux-x64-musl/scripts/build.mjs | 41 ++----- scripts/build-llvm-dist.mjs | 96 +++++++++++++++ scripts/check-llvm-dist.mjs | 105 ++++++++++++++++ scripts/llvm-helper-inputs.mjs | 114 ++++++++++++++++++ scripts/refresh-llvm-profile.mjs | 112 +++++++++++++++++ tests/harness/llvm-dist.test.ts | 74 ++++++++++++ 16 files changed, 893 insertions(+), 125 deletions(-) create mode 100644 .github/workflows/llvm-dist.yml create mode 100644 native/llvm-codegen/linux-helper.mjs create mode 100644 native/llvm-codegen/llvm-dist.mjs create mode 100644 native/llvm-codegen/llvm.profdata.gz create mode 100644 scripts/build-llvm-dist.mjs create mode 100644 scripts/check-llvm-dist.mjs create mode 100644 scripts/llvm-helper-inputs.mjs create mode 100644 scripts/refresh-llvm-profile.mjs create mode 100644 tests/harness/llvm-dist.test.ts diff --git a/.github/workflows/llvm-dist.yml b/.github/workflows/llvm-dist.yml new file mode 100644 index 000000000..233e97e98 --- /dev/null +++ b/.github/workflows/llvm-dist.yml @@ -0,0 +1,93 @@ +name: LLVM distribution + +# Builds the LLVM that the Linux release helpers link +# (native/llvm-codegen/llvm-dist.mjs): LLVM from its release sources with +# ThinLTO and native/llvm-codegen/llvm.profdata.gz, for each Linux +# architecture. Each job builds a helper against it and one against LLVM's +# release archive, requires the two to give identical objects on this +# checkout's helper inputs (scripts/check-llvm-dist.mjs), prints both +# helpers' times, and attaches the archive to the LLVM_DIST_TAG release. +# The arm64 build uses the profile collected on x64; its job log reports how +# many functions the profile no longer matches. Run it after a profile refresh +# or an LLVM version change, with a new LLVM_DIST_TAG. +on: + workflow_dispatch: + +permissions: + contents: read + +concurrency: ${{ github.workflow }} + +jobs: + build: + name: Build LLVM (${{ matrix.arch }}) + if: github.repository == 'vercel-labs/scriptc' + strategy: + fail-fast: false + matrix: + include: + - arch: x64 + runner: ubuntu-24.04 + llvm_asset: LLVM-22.1.8-Linux-X64 + - arch: arm64 + runner: ubuntu-24.04-arm + llvm_asset: LLVM-22.1.8-Linux-ARM64 + runs-on: ${{ matrix.runner }} + # About an hour for LLVM on 4 cores, and 5 minutes for each helper link. + timeout-minutes: 240 + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 11.1.3 + - uses: actions/setup-node@v4 + with: + node-version: "24" + cache: pnpm + - name: Install LLVM's release archive and sources + run: | + sudo apt-get update + sudo apt-get install --yes ninja-build zlib1g-dev libzstd-dev + base=https://github.com/llvm/llvm-project/releases/download/llvmorg-22.1.8 + curl -fL --retry 3 -o "$RUNNER_TEMP/llvm.tar.xz" "$base/${{ matrix.llvm_asset }}.tar.xz" + tar -xJf "$RUNNER_TEMP/llvm.tar.xz" -C "$RUNNER_TEMP" + mv "$RUNNER_TEMP/${{ matrix.llvm_asset }}" "$RUNNER_TEMP/llvm-22.1.8" + curl -fL --retry 3 -o "$RUNNER_TEMP/llvm-src.tar.xz" "$base/llvm-project-22.1.8.src.tar.xz" + tar -xJf "$RUNNER_TEMP/llvm-src.tar.xz" -C "$RUNNER_TEMP" + rm "$RUNNER_TEMP/llvm.tar.xz" "$RUNNER_TEMP/llvm-src.tar.xz" + echo "$RUNNER_TEMP/llvm-22.1.8/bin" >> "$GITHUB_PATH" + - run: pnpm install --frozen-lockfile + - run: pnpm --filter @scriptc/compiler --filter scriptc build + - name: Build the distribution + run: >- + node scripts/build-llvm-dist.mjs --source "$RUNNER_TEMP/llvm-project-22.1.8.src" + --prefix "$RUNNER_TEMP/dist/scriptc-llvm-22.1.8-linux-${{ matrix.arch }}" + --archive "$RUNNER_TEMP/scriptc-llvm-22.1.8-linux-${{ matrix.arch }}.tar.xz" + --work "$RUNNER_TEMP/llvm-dist-work" + - name: Build a helper against each LLVM + env: + HELPER: llvm-linux-${{ matrix.arch }}-gnu + run: | + LLVM_DIR="$RUNNER_TEMP/llvm-22.1.8/lib/cmake/llvm" pnpm --filter "@scriptc/$HELPER" build:native + cp "packages/$HELPER/bin/scriptc-llvm-codegen" "$RUNNER_TEMP/helper-release-archive" + LLVM_DIR="$RUNNER_TEMP/dist/scriptc-llvm-22.1.8-linux-${{ matrix.arch }}/lib/cmake/llvm" \ + SCRIPTC_LLVM_THINLTO=1 pnpm --filter "@scriptc/$HELPER" build:native + cp "packages/$HELPER/bin/scriptc-llvm-codegen" "$RUNNER_TEMP/helper-profiled" + - name: Compare the helpers + run: >- + node scripts/check-llvm-dist.mjs --baseline "$RUNNER_TEMP/helper-release-archive" + --candidate "$RUNNER_TEMP/helper-profiled" --rounds 3 --work "$RUNNER_TEMP/llvm-check" + - name: Attach the archive to the release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ARCHIVE: ${{ runner.temp }}/scriptc-llvm-22.1.8-linux-${{ matrix.arch }}.tar.xz + run: | + tag=$(node --input-type=module -e "import { LLVM_DIST_TAG } from './native/llvm-codegen/llvm-dist.mjs'; console.log(LLVM_DIST_TAG)") + # Both architectures' jobs create the release if it is missing. + gh release view "$tag" > /dev/null 2>&1 || + gh release create "$tag" --target "$GITHUB_SHA" --title "$tag" --latest=false \ + --notes "LLVM 22.1.8 built with ThinLTO and the helper profile, for the Linux LLVM helpers (scripts/build-llvm-dist.mjs)." || + gh release view "$tag" > /dev/null + gh release upload "$tag" "$ARCHIVE" "$ARCHIVE.sha256" --clobber diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 799337e0a..3f19a4858 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -173,6 +173,7 @@ jobs: runtime: runtime-linux-x64-gnu cli: cli-linux-x64-gnu llvm_asset: LLVM-22.1.8-Linux-X64 + llvm_dist: x64 use_zig: true - platform: linux-arm64 runner: ubuntu-24.04-arm @@ -180,6 +181,7 @@ jobs: runtime: runtime-linux-arm64-gnu cli: cli-linux-arm64-gnu llvm_asset: LLVM-22.1.8-Linux-ARM64 + llvm_dist: arm64 use_zig: true - platform: windows-x64 runner: windows-2022 @@ -195,6 +197,7 @@ jobs: seed_helper: llvm-linux-x64-gnu cli_target: x86_64-linux-musl llvm_asset: LLVM-22.1.8-Linux-X64 + llvm_dist: x64 use_zig: true - platform: linux-arm64-musl runner: ubuntu-24.04-arm @@ -204,12 +207,14 @@ jobs: seed_helper: llvm-linux-arm64-gnu cli_target: aarch64-linux-musl llvm_asset: LLVM-22.1.8-Linux-ARM64 + llvm_dist: arm64 use_zig: true - platform: wasm32-wasi runner: ubuntu-24.04 helper: llvm-linux-x64-gnu runtime: runtime-wasm32-wasi llvm_asset: LLVM-22.1.8-Linux-X64 + llvm_dist: x64 use_zig: true runs-on: ${{ matrix.runner }} # The Intel macOS build took 24 minutes for 0.3.2 and passed 30 for 0.3.3. @@ -240,6 +245,28 @@ jobs: mv "$RUNNER_TEMP/${{ matrix.llvm_asset }}" "$RUNNER_TEMP/llvm-22.1.8" echo "LLVM_DIR=$RUNNER_TEMP/llvm-22.1.8/lib/cmake/llvm" >> "$GITHUB_ENV" echo "$RUNNER_TEMP/llvm-22.1.8/bin" >> "$GITHUB_PATH" + # The Linux helpers link LLVM built with ThinLTO and a profile of the + # helper's code generation (native/llvm-codegen/llvm-dist.mjs), from a + # release of this repository. Without that archive they link LLVM's + # release archive, which gives the same objects more slowly. The + # wasm32-wasi job also uploads the x64 GNU helper, so it selects the same. + - name: Select the profiled LLVM distribution (Linux) + if: matrix.llvm_dist != '' + env: + ARCH: ${{ matrix.llvm_dist }} + run: | + tag=$(node --input-type=module -e "import { LLVM_DIST_TAG } from './native/llvm-codegen/llvm-dist.mjs'; console.log(LLVM_DIST_TAG)") + asset=$(node --input-type=module -e "import { llvmDistAsset } from './native/llvm-codegen/llvm-dist.mjs'; console.log(llvmDistAsset(process.env.ARCH))") + base="https://github.com/$GITHUB_REPOSITORY/releases/download/$tag" + if curl -fsSL --retry 3 -o "$RUNNER_TEMP/$asset" "$base/$asset" && + curl -fsSL --retry 3 -o "$RUNNER_TEMP/$asset.sha256" "$base/$asset.sha256" && + (cd "$RUNNER_TEMP" && sha256sum --check "$asset.sha256"); then + tar -xJf "$RUNNER_TEMP/$asset" -C "$RUNNER_TEMP" + echo "SCRIPTC_HELPER_LLVM_DIR=$RUNNER_TEMP/${asset%.tar.xz}/lib/cmake/llvm" >> "$GITHUB_ENV" + echo "The helper links $asset from release $tag" + else + echo "::warning::$asset is not available from release $tag; the helper links LLVM's release archive" + fi - uses: vercel-labs/setup-zig@v1 if: matrix.use_zig == true with: @@ -278,7 +305,15 @@ jobs: - name: Build native packages (POSIX) if: matrix.platform != 'windows-x64' run: | - pnpm --filter @scriptc/${{ matrix.helper }} build:native + if [ -n "${SCRIPTC_HELPER_LLVM_DIR:-}" ]; then + LLVM_DIR="$SCRIPTC_HELPER_LLVM_DIR" SCRIPTC_LLVM_THINLTO=1 pnpm --filter @scriptc/${{ matrix.helper }} build:native || { + echo "::warning::the helper did not build against the profiled LLVM; it links LLVM's release archive" + rm -rf node_modules/.cache/scriptc-${{ matrix.helper }} + pnpm --filter @scriptc/${{ matrix.helper }} build:native + } + else + pnpm --filter @scriptc/${{ matrix.helper }} build:native + fi if [ "${{ matrix.use_zig }}" = true ]; then CC=zig AR=zig pnpm --filter @scriptc/${{ matrix.runtime }} build:native else diff --git a/native/llvm-codegen/CMakeLists.txt b/native/llvm-codegen/CMakeLists.txt index 07abb35ec..7ce20086f 100644 --- a/native/llvm-codegen/CMakeLists.txt +++ b/native/llvm-codegen/CMakeLists.txt @@ -17,6 +17,14 @@ set(SCRIPTC_HELPER_ARCH "arm64" CACHE STRING # Linux packages ship this process-isolated helper as a fully static host # executable so it runs independently of the destination libc and libstdc++. option(SCRIPTC_STATIC_LINUX_BUILD "Build a static Linux helper executable" OFF) +# The release Linux helpers link an LLVM built with ThinLTO and a profile of +# the helper's code generation (llvm-dist.mjs). Its archives hold bitcode, so +# the helper compiles and links with ThinLTO too, which needs clang and lld. +option(SCRIPTC_LLVM_THINLTO "Compile and link the helper with ThinLTO" OFF) +set(SCRIPTC_LLVM_PROFILE_USE "" CACHE FILEPATH + "Indexed profile the helper's own sources are optimized with") +option(SCRIPTC_LLVM_PROFILE_GENERATE + "Instrument the helper's sources to collect that profile" OFF) # These must be cache variables before project() enables the Apple toolchain. # A target property named OSX_DEPLOYMENT_TARGET is not recognized by CMake and @@ -219,6 +227,31 @@ else() endif() target_link_libraries(scriptc-llvm-codegen PRIVATE ${SCRIPTC_LLVM_LIBS} ${SCRIPTC_LLVM_SYSTEM_LIBS}) +if(SCRIPTC_LLVM_THINLTO) + target_compile_options(scriptc-llvm-codegen PRIVATE -flto=thin) + # The thin link optimizes and compiles all of LLVM's code the helper + # reaches; the cache makes a relink after a helper edit incremental. + target_link_options(scriptc-llvm-codegen PRIVATE + -flto=thin + -fuse-ld=lld + "LINKER:--thinlto-jobs=all" + "LINKER:--thinlto-cache-dir=${CMAKE_BINARY_DIR}/thinlto-cache" + ) +endif() +if(SCRIPTC_LLVM_PROFILE_USE) + # The profile covers LLVM's sources and the helper's. Functions it does + # not cover, or whose control flow changed since, are optimized without it. + target_compile_options(scriptc-llvm-codegen PRIVATE + "-fprofile-use=${SCRIPTC_LLVM_PROFILE_USE}" + -Wno-profile-instr-unprofiled + -Wno-profile-instr-out-of-date + ) +endif() +if(SCRIPTC_LLVM_PROFILE_GENERATE) + target_compile_options(scriptc-llvm-codegen PRIVATE -fprofile-generate) + target_link_options(scriptc-llvm-codegen PRIVATE -fprofile-generate) +endif() + if(APPLE) # Homebrew's static LLVM archives contain broad component object files. # Export only the process entry point so archive-global LLVM symbols do not diff --git a/native/llvm-codegen/README.md b/native/llvm-codegen/README.md index 70c118202..02ac6e3ef 100644 --- a/native/llvm-codegen/README.md +++ b/native/llvm-codegen/README.md @@ -58,3 +58,20 @@ scriptc-llvm-codegen prune-import --input unit.opt.bc --output unit.bc ``` Both commands keep only what a program build can import: the importable bodies within the size limit at their call distance from any public function, and the constants they copy. Every other definition becomes a declaration, so a program imports exactly what it would from the whole unit while reading a fraction of it. Unpromoted unit-local symbols stay local, so release bitcode offers only bodies that need none of them. + +## Linux release builds + +The Linux helper packages are released linked against LLVM 22.1.8 built from its release sources with ThinLTO and with `llvm.profdata.gz`, a profile of the helper's own code generation (`llvm-dist.mjs`). The helper's code generation is 5-9% faster with it than when the helper links LLVM's release archive, and its objects are identical. The release workflow downloads that build from the `LLVM_DIST_TAG` release of this repository; when the archive is missing, the helper links LLVM's release archive instead. + +To build and use it locally, with clang, lld and llvm-profdata 22.1.8 on `PATH` (LLVM's release archive for the host has them): + +```console +$ node scripts/build-llvm-dist.mjs --source llvm-project-22.1.8.src --prefix +$ LLVM_DIR=/lib/cmake/llvm SCRIPTC_LLVM_THINLTO=1 pnpm --filter @scriptc/llvm-linux-x64-gnu build:native +``` + +`SCRIPTC_LLVM_THINLTO=1` compiles and links the helper with clang, lld and ThinLTO, since that LLVM's archives hold bitcode, and optimizes the helper's own sources with the same profile. The link takes about 4 minutes on 4 cores. + +The `llvm-dist` workflow (run by hand) builds the archive for x64 and arm64, checks that a helper linked against it gives the same objects as one linked against LLVM's release archive (`scripts/check-llvm-dist.mjs`), and attaches it to the release. The arm64 build uses the profile collected on x64, and its log reports how many functions the profile does not match there. + +The profile depends on LLVM's sources and the kind of code scriptc emits, not on scriptc's commits. `scripts/refresh-llvm-profile.mjs` collects a new one after an LLVM version change: it builds LLVM with IR instrumentation and an instrumented helper, runs that helper on tsc-ts, five Effect fixtures, the runtime benchmark workloads and every 50th corpus program (`scripts/llvm-helper-inputs.mjs`), and merges the result. A new profile or LLVM version gets a new `LLVM_DIST_TAG`. diff --git a/native/llvm-codegen/linux-helper.mjs b/native/llvm-codegen/linux-helper.mjs new file mode 100644 index 000000000..68d738af6 --- /dev/null +++ b/native/llvm-codegen/linux-helper.mjs @@ -0,0 +1,79 @@ +/* The static Linux helper build shared by the four Linux helper packages, + * scripts/refresh-llvm-profile.mjs and scripts/check-llvm-dist.mjs. */ +import { execFileSync } from "node:child_process"; +import { + chmodSync, + copyFileSync, + existsSync, + mkdirSync, + readFileSync, + rmSync, + writeFileSync, +} from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { helperLlvmDistArgs } from "./llvm-dist.mjs"; +import { nativeTargetCmakeArgs } from "./targets.mjs"; + +const DATA_LAYOUTS = { + x64: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", + arm64: + "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32", +}; + +/** Configures and builds the helper for `arch` (`x64` or `arm64`) and `libc` + * (`gnu` or `musl`) in `build` against LLVM_DIR, and writes the stripped + * executable to `output`. musl builds take the compilers from CC and CXX. */ +export function buildLinuxHelper({ arch, libc, version, build, output }) { + const triple = `${arch === "x64" ? "x86_64" : "aarch64"}-unknown-linux-${libc}`; + // CMake drops the other definitions when a reconfigure changes the + // compiler, so a build directory configured for another LLVM or build + // kind starts over. + const kind = JSON.stringify({ + llvm: process.env.LLVM_DIR ?? null, + thinLTO: process.env.SCRIPTC_LLVM_THINLTO === "1", + profileGenerate: process.env.SCRIPTC_LLVM_PROFILE_GENERATE === "1", + cc: process.env.CC ?? null, + cxx: process.env.CXX ?? null, + }); + const stamp = join(build, "scriptc-helper-build.json"); + if (existsSync(build) && (!existsSync(stamp) || readFileSync(stamp, "utf8") !== kind)) + rmSync(build, { recursive: true, force: true }); + mkdirSync(build, { recursive: true }); + writeFileSync(stamp, kind); + execFileSync( + "cmake", + [ + "-S", + fileURLToPath(new URL(".", import.meta.url)), + "-B", + build, + "-G", + "Ninja", + ...(libc === "musl" + ? [ + `-DCMAKE_C_COMPILER=${process.env.CC ?? "cc"}`, + `-DCMAKE_CXX_COMPILER=${process.env.CXX ?? "c++"}`, + ] + : []), + `-DLLVM_DIR=${process.env.LLVM_DIR ?? "/usr/lib/llvm-22/lib/cmake/llvm"}`, + `-DSCRIPTC_PACKAGE_VERSION=${version}`, + `-DSCRIPTC_DEFAULT_TARGET=${triple}`, + `-DSCRIPTC_DEFAULT_DATA_LAYOUT=${DATA_LAYOUTS[arch]}`, + ...nativeTargetCmakeArgs, + "-DSCRIPTC_STATIC_LINUX_BUILD=ON", + "-DCMAKE_EXE_LINKER_FLAGS=-static", + "-DCMAKE_BUILD_TYPE=Release", + // Later definitions win, so these can select clang for musl builds. + ...helperLlvmDistArgs(build), + ], + { stdio: "inherit" }, + ); + execFileSync("cmake", ["--build", build, "--target", "scriptc-llvm-codegen"], { + stdio: "inherit", + }); + mkdirSync(dirname(output), { recursive: true }); + copyFileSync(join(build, "scriptc-llvm-codegen"), output); + execFileSync("strip", [output], { stdio: "inherit" }); + chmodSync(output, 0o755); +} diff --git a/native/llvm-codegen/llvm-dist.mjs b/native/llvm-codegen/llvm-dist.mjs new file mode 100644 index 000000000..aea90dd54 --- /dev/null +++ b/native/llvm-codegen/llvm-dist.mjs @@ -0,0 +1,96 @@ +/* The LLVM distribution the Linux helpers link in releases: LLVM built from + * the release sources with ThinLTO and with a profile of the helper's own + * code generation (llvm.profdata.gz). scripts/build-llvm-dist.mjs builds it, + * the llvm-dist workflow attaches it to the LLVM_DIST_TAG release of this + * repository, and scripts/refresh-llvm-profile.mjs collects the profile. */ +import { execFileSync } from "node:child_process"; +import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { gunzipSync } from "node:zlib"; + +export const LLVM_VERSION = "22.1.8"; +/** The release of this repository that holds the distribution archives. A + * new profile or LLVM version gets a new tag. */ +export const LLVM_DIST_TAG = "llvm-22.1.8-pgo.1"; +export const llvmProfile = fileURLToPath(new URL("./llvm.profdata.gz", import.meta.url)); + +/** The archive name for a Linux architecture (`x64` or `arm64`). */ +export function llvmDistAsset(arch) { + return `scriptc-llvm-${LLVM_VERSION}-linux-${arch}.tar.xz`; +} + +/** Writes the uncompressed profile into `dir` and returns its path. */ +export function writeLlvmProfile(dir, profile = llvmProfile) { + mkdirSync(dir, { recursive: true }); + const path = join(dir, "llvm.profdata"); + writeFileSync(path, gunzipSync(readFileSync(profile))); + return path; +} + +/** CMake arguments for an LLVM build with the helper's targets, static, + * without tools or tests. `profile` builds with that indexed profile and + * ThinLTO; `instrumented` builds the IR-instrumented libraries the profile + * is collected with. clang and lld come from PATH and must be LLVM_VERSION, + * since the profile's format and hashes follow the compiler. */ +export function llvmCmakeArgs({ source, build, prefix, profile, instrumented }) { + const version = execFileSync("clang", ["--version"], { encoding: "utf8" }); + if (!version.includes(`clang version ${LLVM_VERSION}`)) + throw new Error(`the LLVM distribution is built with clang ${LLVM_VERSION}; found ${version}`); + return [ + "-S", + join(source, "llvm"), + "-B", + build, + "-G", + "Ninja", + "-DCMAKE_BUILD_TYPE=Release", + `-DCMAKE_INSTALL_PREFIX=${prefix}`, + "-DCMAKE_C_COMPILER=clang", + "-DCMAKE_CXX_COMPILER=clang++", + "-DLLVM_USE_LINKER=lld", + "-DLLVM_TARGETS_TO_BUILD=X86;AArch64;WebAssembly", + "-DLLVM_ENABLE_PROJECTS=", + "-DLLVM_ENABLE_ASSERTIONS=OFF", + "-DLLVM_ENABLE_ZLIB=FORCE_ON", + "-DLLVM_ENABLE_ZSTD=FORCE_ON", + "-DLLVM_USE_STATIC_ZSTD=ON", + "-DLLVM_ENABLE_TERMINFO=OFF", + "-DLLVM_ENABLE_LIBXML2=OFF", + "-DLLVM_ENABLE_LIBEDIT=OFF", + "-DLLVM_ENABLE_LIBPFM=OFF", + "-DLLVM_INCLUDE_TESTS=OFF", + "-DLLVM_INCLUDE_EXAMPLES=OFF", + "-DLLVM_INCLUDE_BENCHMARKS=OFF", + "-DLLVM_INCLUDE_DOCS=OFF", + "-DLLVM_BUILD_TOOLS=OFF", + ...(instrumented ? ["-DLLVM_BUILD_INSTRUMENTED=IR", "-DLLVM_BUILD_RUNTIME=OFF"] : []), + ...(profile ? ["-DLLVM_ENABLE_LTO=Thin", `-DLLVM_PROFDATA_FILE=${profile}`] : []), + ]; +} + +/** Extra CMake arguments for a Linux helper package build. With + * SCRIPTC_LLVM_THINLTO=1, LLVM_DIR names a distribution from + * scripts/build-llvm-dist.mjs: its archives hold ThinLTO bitcode, so the + * helper compiles and links with clang, lld and ThinLTO, and its own sources + * use the same profile. SCRIPTC_LLVM_PROFILE_GENERATE=1 instruments the + * helper's sources against an instrumented LLVM. */ +export function helperLlvmDistArgs(build) { + const args = []; + if (process.env.SCRIPTC_LLVM_THINLTO === "1") + args.push( + "-DCMAKE_C_COMPILER=clang", + "-DCMAKE_CXX_COMPILER=clang++", + "-DSCRIPTC_LLVM_THINLTO=ON", + `-DSCRIPTC_LLVM_PROFILE_USE=${writeLlvmProfile(build)}`, + ); + else args.push("-DSCRIPTC_LLVM_THINLTO=OFF", "-DSCRIPTC_LLVM_PROFILE_USE="); + if (process.env.SCRIPTC_LLVM_PROFILE_GENERATE === "1") + args.push( + "-DCMAKE_C_COMPILER=clang", + "-DCMAKE_CXX_COMPILER=clang++", + "-DSCRIPTC_LLVM_PROFILE_GENERATE=ON", + ); + else args.push("-DSCRIPTC_LLVM_PROFILE_GENERATE=OFF"); + return args; +} diff --git a/native/llvm-codegen/llvm.profdata.gz b/native/llvm-codegen/llvm.profdata.gz new file mode 100644 index 0000000000000000000000000000000000000000..5ebb5076ffb548be48ed7012ccd255fe287abbd8 GIT binary patch literal 6404815 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

      2kd&c#&BqIOm{g-B|a`> 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

      V;aFX_om|2xYYe+RC_t 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

      -cKkZsic_}124oYhJG5p&?`rG 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 u`Pu=c{m$S$dZv5_eNkLL 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%0DJbr}RkVp;STh_zUd_6A%g zkb|#X2&GWQ8?%dr{_)|q5k2U%DKPajU$*t@K_7j2{_Z9A5d%SmEQ)hQ+}GFrL_aAc z!oL6{%Vk(d>^gMpZw`N3?@FJ4l~K{Y^SiF3LR))s|61|gYXxa`2hTDLNX4RCRuRW_ z3)l<~U_$_Y1`})Le9M<7zIp77HO0G2!PDPd_RuV$Z)jCdfihN)7b6o(VcHM`G*U!_ zEY-bLsZfJw+`A2)DKZT(kA3Vj>DAX$2HAo#XmXLjJ5O6`-O7^^?pr@!^}Ur!p$+Vx{SyS0tBfv6H~1&lbTNT#a6^Q0c%KGfLm9C@P(-Mr|v;)t@^~X z>c|;fF^RgG4_gjz!J;qDfy>%Y&>i`16LMKDUyqiA?sC>cx$9-a&7+*ppWaeEs*}_L zZIP0V6}1gDZmu%_KSyQ$eDH8nXy z@kqQ4WVP9zw1H@tKtVzH+Qz=rzsrv)__JG0b=5-4N;AUzkGszw)aUCDvgSBI0I2S( zPk=cMMiM^7LDgRmAFdy0>3^eeqaEHaFc|`s8aa%4d$RRO5dE3xCRW7oE0yOp_zcE9dY0;f52(Wk>vI7J}^FbeWWdI;mK% z62j!tdIIKO2BDbqbKNrgR}V1HKRUfnbiZ*%P9$u}2RaTaWqBMw4<7%ox2(U!`jc_+ z#1YHklG_I@Ct$Im4=_*ohlVNBQRXq*pBVMo=pvkUSN| zKpZSNDJ2rBBpPsGSNI@JEp`Yq8z6Tx8h_;y!0(C8qKs$*T5DQq3uDE~)i9|GDHn5) zb~{T!oYn@ZxDXpO8e1xkZOiJU_m&U05A2B)r1~}&nMRvqXWjG3eHY(lFeP-&<6^bA zMnjKcK4NrN0;C zdr>B+E=GaQn^3QhHV?ddggv62Ik=MoR6JV|Li;<7MafYtVQsb*dWNm=5 zx;HK%yJs)q@{fcK^ZYS`Y+N3qFxARM^{IFzV20m7{spLA#UMPmEVrV|8DZ@*JK1)S z`A2I1a|fOtGC1x$SdN^q1Oos@b713RzEnrum7h7te8LT%jK5GGQlOn%yKZhrpd#4O zNO}@0#YjTTTZB@f#`3EbC}Ax@`-N5urA zvI%kskg%pxMM}4UBIWKXs}!2Xn$uSveB<cr7z#=rTY&0gZ(#?P6lJF`T42;yy4;(-|s<6J(nnhngume zg3wY%cT#NVIyLK5QnRXJgCWMAv*{4_Y-b4juAQ~R&HuRhCQr@1oDsr4X9I+`_a3I; z>R{m(>s`?nq`U(^fB^34=%t&FYyps5eHDy*Oq*{%2Tqw9`k68kG-BBA~_+Zm~Q@%D` z)uXQFoF_8(49Hnj0ZLn7e;~~+u)cn=nMmH}gvn|Fv4K9ne5y90#};(H)SuTx^Xg6K zU$p7wTk!gidCyep6q}i39nqbrPZ&A#cC>?%q@-!KJt4%x92;=E^&JDq)z0x`s+tH` zc5Ui2{(;%6`yOEW-+UR@oR2bZZke~;HIqQ&PA$+IwQ?zi<}!DioQ%tW>r@E4f2XG+#JsY8?4v*OyL6Lm9#uHlDG6F8GeFji!<%U`C!CEM@V%CZ zQ)h4(g@+SfB^nXMYvrJws(y4V(gVB|+RE4RA;9Sam7l$+$XUVDH1AUMpaHcGXdP18 z(&4V~E30|XslB{ydGVehZKBLOj%ok=y5S8*2`Jj)N=AJ$Y(J$zPbz3{0oV@Q;$leK zprIK;*SM!l4uvL*IXH0Cx#v_7ZzW5S1?jsIse6*L_r>Grrx9Tz&A%|`DeA$o;|ljQ z8K%X&tn{RQ|6ERhkcsR{TUMWAhI(54oVJG8oX8G)=Z~r#AUmKp$yilHF1 zrE{FXd~^4W{OWqD}XZQFG0nD`qgIE*DUFlEqL8sS`9QMGb%k zBfuzyVoY6U`1YX+X8xx03jZu@qIxS^W)8mN8RB}X!YEkJhNw89FkPb<0ss|n9S5Y? z8(DXt-p{i&0S!z=-}agR@ITHx@Wm568}~of$p6kdE{N_?L1)~78cu&OQq9TkK}EZH z$qGy-m@gXr$km@bR$^e>X&UhR;_hVzVCOxO&>V{=Q&OlBC4ajEY&y|=-OXQI_Y=n& zTnlHT58KEx#BEuRsC*oaKJ05l-Yk{0kgB=$iA!dFu8t%q-CmCDMTH&* zQkF0XKZkP^Y@VVanGbS+V_$)LyJ@K71$k95;87Ru!JK771VqMVJS@He&5wHU52)n$ zfbz$)wOjVNoLby>#Q)e$Ei{#zpT4v?^z3)!X6{wc%?Xgi*kH0U%KVjP1hQjIqAbcF zNC1DtLLyOli_30?Ky7l=;?=dMiXgB&jJ9rJ=fQS35H!y#ek<*VH##`}oip$KcJH#G zBxg!92;l0%%TMrf8l&ybeobY)f#okQM&D5J;kczIU0bu)H_MUbOYA+V`Q#g0pZy50 zxBYPI%@cN<{>6uQ{eXFMU+aHO&6HR1di=UChMu(Upkqg#i`EOjSwHie=>dNMUcYT0 z&-bwO0N>!-)V5B&ND{`|f7?KOQ|$>#Tlk^O&`-eDgY_RY8WeQ(9i1#5mx zzx+I2-}||B;t5mcytDhWVc_0Y!`r) z>_+dV)6$WZMZ^C~Es4kc(n-Y!woWG*llCs{NUhsk>z*pbN^NYV5-?g_{@PL-Y&xoM zLKRw2b4cnN*n#6QRf@5d`iH&a{&BWfU#;kKlU?R$6moKo zq63_j@NH>79W6KN-k;LN@*|S3?PkP%N}l_>@bRrI%KbUAJ|6EkO&4sD%xB2pcc<#s z3%j@v`d7Ot_vguN-v|Gpm!rAW;C_(g<|zC{gc}L-ESU8D2ITv1?czH2QF$c)iPx=p zT89ergV#$xef9T6Jwz|4gx7LD*j?Q1gE?=*v)h7OgYnZ4CC zSYU#8`Mf|px<~!Zu+vxI*m|x!tCMh$!O>Tmr?1-!v1}Z8C@9Z&-~>O{+A@PYRpf+dc)?swjG4;y^2?&T0?E$6WtgE zlVIodRxj$SS>~8HlPgABgI$g+{Yxz4^Dx?;U!_?US=p^BTe(Bs)`& z1VbT3pPo?%faU-VuR9)%3b8QsB0xp>Isf1n3wF0;QE&FW@YzwP4km`vq6eK}MtCJf z2!0;sIxyogJRCJn;-zYp9A~3fQ}xp*fFj7R5$MuguPcMB!%Sa&@%HQR z@`tAo8RJED2+}aXq&?lbGf?DoB{2_mcFp(Ryr0&UxF6?j&cJ}QrMf&0SznPt&(2KU z`4T{4rTD=LU({&e|% zb8E*(eb;PpW*-^JgQ+{Q-~+Ac#)3cw(7TUF3-c~*`OVYbefhUXEE`N&w!C{FyHXE= ze2^7L_zE$%fF(RFiF2GtC_XH<=dv`;&MgfDze7udVDKKEo2(@%spO|Da~^xgT6_QA zGqId`(caHH-o3l$L>`P25qac8-;p8wFeLIguE=NvHJA^1q@jLhTe-oZs<`fTbiK3< zuy$vT4hgnqdcgA?N)6_1?;hGT;G?+i2=ah2f?7TX+>vyq)tb3r;B6@G*eHo}L>Y7+ z)yG02sWCEO1B(6Rj&7)8G@6f|{o3m94wZB>M_%QuY-j>S1E)`}nZG2*f zc0^I_0igPeAN}<83uf#p+IlcXdh&Of$`?g)34U`)tpK&vepv2Eu|mtSF3PiHZo& za_*!JQvurK+kfcTQ~ie(d$Rwqz;ue)^P=O+AC^6#GuC+xSS}<)1lc^fv5u2svlJ2QU++Vt1#=5`%d|BXXmYuS_<@bj-TL%7F zDw;*6p!t&HrroyBzLO2+VVlYkz+)$upeD3-Xn=G&yBX1D1X#o72U`Y3*2Sh}iS`Ggy}zjY2>M%VI4P zZFdEeus1s+G*E?`GcADc!Y`)UlWF$QvzeB?m9PDAQI% z`40mhPZIZs*lNK18Ef_lD5mGE{IA}5BiXezgL~T2-E3ZV&#bafKj|@}Bp_U@kcDRC z0#<9`>a4Ax9q2?@)98kpY}-ME z7qt!u?T`QzQ;dbha6oPo8-)lNeTrX?QW+$Z5nQ`;_#1=oU0J;6B$49gZO>FZIl=LW zLBcW*0u4>tQrpFh=zb@QDK;X4VeCsmhBMN04*L%bNH(egb5lYRL*g7Mi8Hvs*X2_g zn3f+2ws9=)tzy~E7&%VHe-srMU5GaG^AqnG{p<0k8x(DnlnFyu0FH?oDVg$!Nm0g* z6JtqBNhwtwi_eMGiqW7*=2Z*NFo3Nu5*NZ^xK>QH#KQy(3KPAoEXQSBhq1XE(TDLK z{s2GUzSnVTex>|tmmTIao@pAg>mMyT6oArf6G_EsNRsT00_JgWO32Y8GC|1eD?@7v zJtW8$!AY%DX-I^h2VM#Kt5!$^I#^GYxn+O)w4nq3fC`-YzIK??)|H3dS7eAoSM?Gy zv>25XQO)vrxPwaxa;iHx^!et2n|_rZJM%PM7CG-``s`4q29dkeHq=z&lA#ixpo06f zvQkB+G*`@Wmn-b?9TzSh`&W%DuZN}Bbh`QJkDv0k7PaS^xwORgv>lOnaY9i#FwaGgCGjdX}!Yq^fLWM0U zCTb{~vYDA^!p!6l!eJ6w(9UUPrC4-WtYKX+I#%{BWlE ztG}PV>m8}wsE$P9{xVNI#f9PtF?V+{EGw%8P$t~CCYd*_*Vm29Aj+G-Kn3geS0Oald6xMTzdHQFcp84@lTk@}Kb<&)! zO8g_YFD@JK27@kLqmM9UG6+WH3ZFL`wKANy)>9h~d!td18?hr+M(MJ=s?;bG$W$40Uv~U0|aD(6rI3}?mqv*CFb%gnlAiu zq9+@CQLR*A)!dVe6;ty2MbPr$Y8IqeGF2zkWvTrJKVjT=-8bm>;@&H#U145w!N`@d z8YcTX6O0P7BV4FO48w{p4RqoWfm;fkg&<3yVM||2uDX=gEVCcctIYEkwC(43=iBTn zl_S@uR*z99`hY{>ESFMfC}d;*?Ad8QfQ4olKuv;geTx($iNAa^M<{VLnIw)N6DdIp zW^jV=$2-9h+IbYLJ^P{X#kLs}O}%wvuQEURLg48SKaUu>jKp2DvNbAiEpOdAJ4pKy zop4}I{Mmk8{^|E?&HYbbzP)joq#J~Lffn-IX2fuQo%zW_SKKx*L~6AQl^>d(O^QJScA0wF z4a@Q_R|RH)v;mq8kR1+*FxLPmtpc!V#Nze);z>y*q@JU^f`shF1mqD9bg)4naoi9| zvwSF0Zihf%Hf;cBK$yR|{=B!|*mTGqXJ9hsj`+Lz);sU|viP0zveFWOs0iVFr6#Y2 zRFQV1K~9X1CzMAr2cdo`fxyj+Es+m@l|cJu{k`A8A!OdC*yz=bEeP-omng=pP{vonX_Mwx?$ zqO0{`5=Ey!O-BMLW%H1yH86}6aj)N2Xz+~QXfFG8>iU0;zqcp;6v{a^`ut)@O2F)Y z@9^hz0!oJTLsi|!BpW^QH=1AS|I(Ll)?R6l-tX-Eqlj=eL-WAUSPdzxIGChvlN0dX zg$hJ81JhR5<6OMwyp^~0M5VCMwAMW7z4w0(&S}ev_qh~fR|{f*615C-i| z1D5KzwqP-7N(|Hj3Oe%zh1;#%_w!4;pMS3cP=fnuL3 z1_23lG#Kg7p?(-C>248)L?F&3#84Y3U%69}xzJ^{K{q)6EXr->Uq>8rUfUTb=Z&V! z0w>~u(+CN-a%r<=?U27H+dA{uU$404ozJJ|4Mp?%&7|~L;qwDkRs|d62nn%xObWs3 z7JLiGgASJu&b`2+rLS7N>&ah63?_ch54(`REPwAOC!#G=lQM9999cUu_6Qi}5IzIa zU}7?vQHdh-G>rOfw!5yA-#frG>6J#OkiiIbODSUqj7ORu8yA2b`0Y8wl@xB1>=bU_W;St5H2dg;6 zCg_&NXMU%-X=m)$w`#oE6(MxyrEElkjDliAOhz1m5fP3mgeJ>m>)=F52nq>|H)v`- zn3?$2kU_+2I+#Vz)B)`%@vxrFFJE+j7*Tym3>v*&t2^g@6ItyuJ5INLgl;|Xgwdth zVBTxad!Ky!qc_WcH%bQBpb$kxJQ6OKV)Y5&(V$=!S827K(yg0s`1L4I5F7j-%gx?v zuDWUJL3jJ3*^Z$)ich69grO-VC{KZqJjJqfDPOC_;CTJjsf_=YJHk#O@z?HpbN8Ch zdhz%Vmad&>RN*g`QbJ5>i}GPHD#V&WW0@-`1%zfWDRjrW7nmM2x9@vvwfq6$%1?A@ z-#H}YZf=z1RGSb1kvZ3qOo>q?M~mPW>87OO7;1xDZw#pyR0?vqMvBcUOU030ArV_E z_3knEeSg`?e!H7-$QLVEXnM%J@{_cwIBGLYH8IMJ%ZVwPX%Ui|FjQq4^|R0yU!e!U zZ;(2D$h_q1amx;rk1;ABl$A>{LGC~xKR?tLq-j|MXg=7Xg}QqbtWAI~9Cp;2np?jZ zviq!ukDAK|tyr|-g9(PEHQZC-Wmy(_PC#i8ns?Ark)ChgYjy0Fx0L$XH&+$?AA9cs z-$ecYk0+(|C%^xDB{ygHl6xxQ6!_&9*y{W$nO4)1w{7=86S664!C(HcZzb)^!pxJ0a zX7l{C110dG$Kgq(+kG}WB$N*E&CPId1h7B2XR0VGDXAUe`^!Q9|(8#x1{a@pW}mKKq{o zP+2Wcm-R^X?OAiQ%hY^usWR0>>4652kEDjw16r*c$~Iofud!YHlxgw;>M%ut^@Hae8;w(x zaHN0`Wna=S2@wHAxKonMszBTZb*=mbLu&YUZgN2pP3ZZ?S`%r7Tm_vy1n703yb5b% zOw!wht@dTXIxR9+VBV68v9k&TlXj8+C2tx2I7 zDBaH80m4SRk+6|5Wo%?Ll#Nafu{dkrkT=KK$e58fvRTqb;D3XBoqY^PJHl}`7Gr0| z{ot#(v$7l;1|@aD8Guwa#2tU$rNb_s`bV$7PfF#*vdEmT#`fVzS?bE7M%A1Zr~Vs7 zOtPV9hdLA;^jG0Pw9Ds7q~Tnk8oh!xR7Y+w5ZOOhRB!(!{%&_Y$Km<6b=P!jvo&*d z4{ZEv_xHLz|MwT?87}fa!dJ>hZxd!sKkd?dAs8L>oC=8vL8_Kgt!bKuvm~w*0l)|* z4HBy0qQXx(}k z&={JdE9MXG_hY9QYOeY8X4$I?R_4QhRbe%FksSYR;ZV18ZA3bpn zEJI`2YwtW{;wk4H-;2x(JtF78hvYu{-gT=C73_%#{Q`)Y$O?2rK&XV{BYau`wZ26YF~qyX#DJ=t z0Ura+g_xrIT8ZWTvLD`m@{96==9wi-iBVJ~@d+WDDy2Xv)LcP=GA@7@ARsiuZl=O# z1x$*!3k_<#U$)oveR^D3a%SQAy}a2nc+pc+iBz+Y6jH6SUrNPO&1_nXr<(KIaPdiRb9#V(*w3)%Q9J95sdMJK^N_hzii%(#1y&WElJ_NDSZ|}LI_S+vX z>b9$^=qx(k-4DtpFaB{sWO6W&ypuo6$mhcIbe=p8Db#*4TJ(9|bmNvMD8n1;_=6setm3 z1frrq3ZVB8@evzH+_LAaVaxiG1pMzMXapXE*;GG#0!1!KiRAN`4sKw9jb@_hZGBd@ zcyjZsi~C<{619X1iRIuwAU3VCZ-NlHILBRA>r`oUBVjEN_=Qdnfj=8!MY2S@qP)xn zg=1QQa~VSRONe7x2SkZwLq^abVtn;1NSihSS<7^{J3Q4Ft>|9513gD8llpntf~IGe zoPFAfCgEY?(N$=vkaCPm>d;z++l{RoyhV7EIxv8MTaAe;QWAoFg6Kn`t+UkfRoT|d z1kcoU#7r|NUAmy{0=yOt%o%tvYP>G%3a63^fJ7tZ%LH}p?8>h`=-+!6J0@S1HEwMf z@#(qaOx^(ML$pg0pt0EbBv7!@M}$U1dkOyTe0hz4WDlChy^snb8BUPaJ8MsddO0cN2`p4bB|R zH8v7?1AN$wRv{1N&J%l=nv6%^lszT9>p|wuBT8+?-VpoPhIKYwH zIbcbvK;jGs--AL^gqs2q){o(UhY`QW%J_jJEDSLXhY`t;J}mPY;bhGzTpZExhw zJy}fr_1txRTh`~sN8TOt+F6ERA8?yFF2T159Kag-I;-?1nH9DF7X{Rz@J*5_5wsdS z1)@n%>q2O8mO&4cXkPZEweN;~YOOn8TJpQH@pYdbG5=IsXHG?ym;f3`poU2c$t-*t z`mXHO&tCe^>-W`|*b*xKOjW>|aWsOgbZ!U0(}LP5U%(jL-uC8_`GKzv>EC0gJ*R({ z{k(q6hi3#7W9x+&7=Y$VNxalfB;`7#1;|mls-`YBrfwZ>|@R2NbzT44bLJ67=# zs|*+rqU`nii_lE|zHFHH_tS>0Bdj;+Lb*#+fNS;Non$~O@*GOLKqeFp4kU;s zvzayzyX3FU_gW6I>|Xw!K>iP9H*Y+s_O`hV)6cE_ZS9=QG5*Co%lxgI8?p`%%xGR|@)L*`2@cJ7ZHwF$u6Uc1Q)OhFqvX9gH&= zO|`}&fz~8E3>hWhAVFqXo79@rL45=HjZ+(R9yZqBe%g*@xqm8~|N7}C+JC;q43*M> z)gCk2+B8k_&mgXo&ser``Ap?lN8VKo`&O}>XGK#HK~|(xyE`6dGl!2Ge}P&=_{4+q zkH^>G=X6P_+2i=RZ0n|H@4v6x1T(x@g;xOFnIQB*-U()61na4wiWJ?P+Q3R=cZq9iLgoDK^6rr~hOIt3`>__R#q{jyd`9WS@Atq%qEm8VMm2yT4HXGn^SWY-3d%fB9o z*Dud4gKaJLr46nxJK6=;))}aI{C)&ttLZkw40vIoKD(mgte?joV20;$k=dN4qr430 z!@(`EnUaAMLf#@OP%PBO531H4_0GR^`M0hyXVg>qn0-5&tiU@c-U4Oy8Hh0)&2~Ip zcub~?Qv*HLsYw7QcPrE#DWS&xG4|FAZd{%Ro}6bK#Hn@YVvryem5Vro{KPDQZy{n{ z4O8(>@&!*S*(5gmAm0SV+2nSarh*AxQtDb2q0I*wAJGzyvmmxq;s5UR*bWp2mQbJl z{NcV%E4^XRphwU(t}!F`G@VG%p$yJxn6U~1f)a-qpeL% zaRDZ&WJOGX2h7+7^rrxT-m+hi60M4m&0}fgX8o{Fs?z%+%f@2dng7}Q#%RCp<8&8% zm~K5nx4ju(HUYrjkJlTl+BNZ3=iqIEGA8TSb-!yiE7$9`iQODBIi8&7`2x>p(G4Gk z9wKGH+Ay^2mLyFd94z%^5*7W0t9Cq5Z~;qk!W9&CzS*gzhWwBR`EoR z0b~`F)S9eM>Qm+c6UG@f+LGG$k6tgA47TnbJa#X;m)*YJ9r0qPYHJH zrG997;Ff!unsv{w01;!1|3aYfcJf&B@$Q))SttSDP^!oM%Z_N6Pl}TaSYTIxUj&~S z;P^u%HNF@N=$Na3XQpH$cd&B25~9P3CTz1>_M~24_1aH=co*P3eqDswRa@(ax)KZp z^(BbKjrE<_uB5sWG0Wr8GaC>8rQev{BSV+GTZ;~oT4LFYdO!Hf;d{T;Y&LA<7i-o4 z$}9W;-5%tdgmel7hYKm3v?oC=Qo(qEy{Jd}Il5I37-Q1x8K%Bf0g3&{R9=pPd<3dP z&Bv(RdE?%jQtn_DF1~!G@u84ThC|rkR#7{L_!bKLmyifOE8WV{%=DBZHnj%?z`UxX zsVaOx-IoeAGRadWd}554;sLe1!5`<7en^LygpoO#L43L#q>NJ`Bp^L;BVasM+F@Nx zgP%|pqhxCYP$)=3B*Vu!r5y%Db`^;@#9}9>T>zkTnL2=6BVxhhXS9nDh@lq2_fsq%|Fv<|`We3|`rqU^~jHJF8 zyTY$bIaU|j)3NC#vJChMf(3V}M3l)$+z}amB1eVakpd>Y%M>t2QX4*N8~II%$830_ z9U%+@2U-IlR|WK@bvh3DXc1$D_q$Ql7l*9eeA7FXW)VO;g!yH`Gjv6QZ=cF%1j5Tg zs-97M$f?`1V|s3S4gmE2zDV3?>fPTb{rp13b%rqn!LGz)Ceqse4 zK>{T~pfHH$4xhp~JcoYUz2{CeuS@dGi$-F?gQzh}FPwR2Xp-qTKv%Q=`ZS7qqte?{ zs}vS6;se^wnQPW=E?4uXHs3G|2CVOSauKv#|8>&3yzlKGs;Zp5_1Q-WMX0_;pm#`C@#aUG{j+sAd*YpJT^37U-tWDa zub)wcc6_#BLd_l9pB)u)!_8xdD*LT|{;~(2I(#VH9(VerV3p&YH;=&ER?9f*xt7eb zQGZ@w@U4Q1DZOXwu493h9# zI2FyU>&vvC4=vSxPL`S?6Mv7~rTzYL1HlY>UxY-aA7+{$p2&MGR?UF@Ev}6t2tIo~GSyJxu#O{hC}KIbXFSznD!K_4D%mpK#w_ zWnytvp!gXuewjS{^eO@c#K5P4tFm9b_f?si%Jzb{dhJl3F0oM5+^bhD8UFT@#y*WK zM2`nTbm(#kU6%)ty(%KW^2B2K)pL!4fM_ByFw+4JCtuL(@+H%)3LutZ0pT)G??D`+ zl^jAqcz|@BEQ`&_^4e4wvkf>wy`2g?$rruo;UNvv)Q^q_2^aZn}5{-~ahXY;>scrCO zy$OPI3$(@oI)l58?JmnUGKLdy4+fv;Zsg| z&w18&fh}tCEL}iFB_j%p7`jRn;t>$H@dD>i#HusSj3|o=WQM2{5{-g{H4W{a2DF`H zKcqO?QJ)m*1SOh^;N68kJ{NVn=fSHU?YX+Busm_=IEDg$!MPoi9CsX(2O~XG4!#pq z_+*5aB3hRk@Mg2qf=)zxN!9x6i0(?!k^B&bv5v-$L51dw{EZk} z*a*OduB;|;XyrXGsw+-M{D3L~1H%_;?yC35g`M23n~LxK(qP*@4%0*n8Je?5Wtp}K zxsaMqh9ZHs+S*VNTB4QIZ$r*54SavRF@Ub2)B{{$1xTLKMDi3E)X+cjVK%XN6BiKT z9OAOhX(|D8k;EQ+Kxh+8Ia_Z&n*Xr>cYSvh!K$A^DycgsejYkoaTOdwXFw-%hr_K2 zpkxP0H-c+ zG|FHF%YlX63a>5eG6M^jO~hDKvq}5VI{kC82z~oB8VzWhG@#VnAP$m_J znGuF=N`bcy{1|aD$W~_g-c&9<7~JeZ58J@9Y@a=6ud3R-N6!lU6W-s@Z+yU^8F}$0 zG~E69j5dl)_D}y7rSDoEN8dXdXY)2;JGmZj--+o1H&NQ#e*zc6tvFiel4FD5KD;Jo z_r3V*i$6mjEXQl-Yv}ifKcGF&J-xL}`W3vnA6}Dqm*miXuivS<5Czs#oiSLue=Av&K%!{yRlIcGO&;^=;5?J z1(=3B0O?K$+j6JF%&~yc1p9?1Z$Bq&s>l#8>k(le1RsP z4>?bf`Q{aynvjN1@mP!+%K6Q2*0cBePG^-B9Br->5@1-yZPP2te4F9{J;h^?Onz<@4`p!^k{4rWMvus+HG1Ht(|XUPz31VPbUMfPhT<3)Nd6Itf(*B;_f21py}ws)!u8l$;oe>aK9U1;>%Ikk zKQ}J=sZ*E+UuN25(@Yej;-1>F&)U`!&g!V%DRe^eC@iG{16g+HzC?sJA)*^kH0ErKWxpQ$=e>i!>N9{)1HXJH zx}eMV%ijUX=P%*)rTDnZ@cPA=Syp&9wePv_JX3PdDx;H$pH4a@D_lwf2wfAVSLn6d zv)OhD1Q$@6JDtj9B|}^;y^9SAxI>e^cW`VuNcMu(j&l4UK#3WT0yRMgcgocD<$%Z0 zEaCX}){-vu?%CAMvrZm!ckIoAn<}xj)FHw$ue(}T_H3*KR2{=GFjiOP_Ij&QQdONB ze?UMH<*?ooVkFgk-%O5G9!lUiv6wVFy=G<{*rcj|EX9T6tZrwa?R+*h>FwbgFAvTu z_^BXf|FVD($FQ=1AgAIPLCb21Ll?EQLq-a*GLnUz%O(mBkj$Y<>bh0jFq<%eJ*J;z zvKS%<0(hZRks8o-&-<%})nDJO_mKY)XtaKaokJb=dHcoN7p^di5fv7R!wK=77J?%* z$^IG$X7Sem`KCNX$xq_GddeW}`kf)#&$nB&YvXV{j|!c6I6sQpXjXAhs6r@=O9zB- zs{}zpUO^5^Vj9d1T~Z6RXDgo(>v%#p?W5<7U-tWPVo zLPjX&Iftn+KfG}5)z>z55)Y?sY^_RQrjxKZMZ)6ckn<jtfR6l$p+yI$gLCTQb){$SOP40I8y-=O`N?R&e;`oAL#9~s0> zda%R_ijqL&z)=-8M{`LYVwpVSn|X9x_XFRpaM+f=(-jTA5{pP} z+_-jD#(ucjI7btZj+jc?7t2Zna6OWJTK_o8vi@iwQS2ZgQoRm7C&;Y2%na)R#l3Mu zX6!H+gXb_FesbN& z1592v5t^du=_y6PAvN%>x4coeR!y^7_)jLO^_6cP@xds$@S#xC@!Xk|7y$u+xR`7P z1BZ!-9hL7`kckhsgSS&05-3GYet*Jsk3K)s&_EFaJCXv$WJyus!a%CtpCuvl1%hHi zjPoGA$I$Anocy65ctJqK5RxA`xneEc5{pE=9pJCKdwW-B1-k-2@ha8D&yK>96iaTyKt4%A&OLf(GQ7jZo4tae59tt@0 z1b7#Z3>*ih1MY+YepvtSJn#<1j%M(WedX8We_* z)6u0aTAuBqNVVO=u?*8BCL=liI8q~niopCp1*#^*1*^H}cSla)cW4$}L@_@eIr{ah zIb)=e;8t{C^E_19P8|CW2)F<(FJCq+{(?l%POkdedn?X5?dN_&E&p3fuBWt9J)++X zIq>Rslh_Ez#-rpslp{%y0Hi~`8xoKJ;2Oy#Kt+J2cxsW)a4et=r79&p8IFQr6+9)) zu;{U}jj=(}oli#-g9rZ8;wtUbA5(8WX78rA3O1U&LV^ddg)*PQC&ktT+19E@IYsm- z7r`Gh3=wy#1KSXmiZhmAjMwkfc|A_-M8mWu(c80gtQ`oxp~`9~IRmESX#qD~&eepG zOHFZh7(GNDe&L4MV#+n}_a_#-9>9CfGep<2&^c%Xk{muT0kc{yL_FO@sfC7C`MuLm z+xTZ@O22-8a}zLA9kyDIrB+@!Xv~ragJxb+o?!=tejp=~vkqs4Seg+M2zCe*zh)+4Fv7^RqXfa^u-)UZ60vUji;0^*O{c|Ew)lr064P@W$Mf71ce84KOl6<*(Lg* z2mTWJPWCIJtk5(Mi*!gD3|TGY2sXC;&dux9Hto1W(7i?P(>A)3aqi^cL$v1jzmG@9 zowUL%cX|RfX4RBAH(YnP2?`o#?s1f^0w;p8c&Vd~2YpD@kpO@ubHSnafI8&vJ2;%2 zKn>b-*UHb|dZfz$Z7uSkXewA7F0>iq{!BJXNJ9S|Oyn?mgmXth517b5IDFnUr91v~ zhGx#b@t(IPm^~e;&PN(j7Cf)DXT9aiMyp@ch^^Y6x&i~4O01prqb1bhqmFvZui*w*Gdiwd?lIDOBb~=iCpvU8f8F6+kl$j?;e|8{^Xi-j03cqsO_>as9t>Da5)wAuRHsb*KRRwlZ=MGsT`6b0c1LG5P{DO(T13U z#RrI0lCl`~c@e=A=58XYNSO6W&-Ik8(niGyHgr0Mf``BgHcm_`S>h+m%!G)58vP;e zs~0~xN-d`ooq=jIxfx>$dJNqxr&B*2fAi$e8&YOP2`a#szY4lLE=a1?8W+6oY6Qx_ zwY5%lxE%Q9`O{%63t>VC{)N>|3pJKbr=okz`{hR3G!0_U0hnvWq+koA7SRsii$b=1 zjCD4;rA1u8bq87wyVZS!S!$5c0JLCn5-=4Rrm-x%9fjn&((S9)ErpC@EVl7g2|u!<6*>?gHZ*!vl>I#t%XvA0YvS#)?aYV8x$d%9Khe z#Ye)ttYDF#`ivk&1wMjfhE-yl5K$3@LT11`l%upA?F0fskfkNv?T$T|y-({=x&zj| zmelYPs?l-UYd=45aj^+1BD{guU@!sgI^}g&n~BZhL&;$4OQu?{p#&s#|loKvM!C_aY z!UZlMT<}8aP4R)fcG06Lv8%zr}Af?VK%0n7)M&aHrl!q)%s?H_Hao$^^P5|{3=JOMj2hcnAIT*~yz z)QjQ%J>OaiJ9_2~w64RS|LZ-p{pR~<%`7_8>r1Sc!1aKO z(eIvs*ZSvKYFS0Kjp;MvZs~JlvQKS}YP?g3E6-ZeGzTngJ=daLWth@jc7kCTu8t#t zg{YX!ny1r1aG#;mq7W7qiL!vKHBfWIDLHOW6oLp=alUEL#51vC;g2)6>?hdrQ-2O4 z7+pBSSQwGy|BL1Bb)d#?sN>EI4TF z1wDtG+*XO@?_K(JvbJPMfeqOuPOdD0bih&Z%?%AvckmaAXe?y`k-|IhYU{G+iNv!!%Bsgq!7u=1kOl@7%0M9~;Y=BL)!VKH@;M{^8L4C5m6;{oj~;F5>ka-L>2L{daWVHU0GueEs_0Gdh!3P*Y#%@#cj; z9&CbjA~U&<1eb7vL$JfLCD1+`Hwx6=rd9J?zcZ3EYh)22VL3iGc4SKAdWgI!lM>S}Rb;;lw82?4%+~Hd%?V z6{5_^d_v$dz7VRV$gp-u+gcxVaZ7%%-&ghL=>_xGm}5n+qN4X)AK3TorCq6$Kx&>S zkpnTVG4nbIGgs5j#c(-93|EPm6hl0QV=$vkUg1?#t@2gbkH0MM0+a*EsA!||hC7LM zbRRM7FvoK4vJ2qls-#qch0J6Zy&D*R(1G9eDwJx>SW|j6HDt=&lcqG+nngLwYsE%H z!;0%YC7MaWxZ+}=5-2kIHHhSZk&U_tlAi0R5sRB|-th7HyR^$xcvFc6QCI}2tp2;5 zQ;9QNIf2t2LMbqW2vLM4lYWbv4pNzMo$Wm6eqgZB*Tc~p$ znz3c<)>UQ^{lbXGY_OlwqGGN=1^y_y0d;KrYWA8K=HaUI1X~*wOe5Ho z%9HBWqMmNwdfwLk{>YTLEW4NgON&}iM~k@3#evcG6V#0ZKMSrJ?lXoI$mE9AAtgQ` z5U&=FFkYad1b0K1f;2&0nb`L2+qVz7_rspnBGboK%ahbOe?B*N_)Bxll7O^J%W4HK z!$u=!tLZRmEG`y8DHI(HqMVqJhfbYv8_)8tc^-HW-Ay9rmxa*>2n4>Tc&1 z<5z7Zt#^5+uya(MN1)fJe8t9H;JtX`drvOx^LN?r!wf1XWQgBLeLF<_<4G&wta#gM z5)QD>&XIxygeE9B40m~CA*{Gt+rWU4Ie1mwRpX|f-ovqbD*c~a%qlK6QX${V&cknN zGI1~fZ)#LbHWNuV;KSxnuM!A|$YMs|qOd@+9Dm?T04Y*(EUd=>@q>gv9CScryEh%E z$x{<^$MZe%cF&E}Q!VS$e;wFjGRfG(DJccBOM)k!N(z!e`vnorAWc1(MsNh9JPveK z!0*5uL%<9i$LgcfYf7{b9^?G*BK5?TH=R3c?l7~cEyYeHvA<%_5ha$FspNxaez5B7 zDaJ^eK0adLHl-<;K52kV6$Eb$>M$<+e8HlQ^x)d24D9f-UZzSDcZnCQTVHUL6rys$ z!!3g#UGzV}lxSlR^%Vj>#c{ zPVgsfgZHFkp3u3g`qrScZ9QBOnt4{sYt#|vti9{P=(T3)j7|emS&K49$_`>h9R;59 z#$lbv+$}c*o)Aho%Nhpm&_wZJtZr>F*)~3gH>l{!VF$c@f3;~AO`{6~IHcJ&rCth2 zt;uj6PA{!UOzhty7d<4ZDieygao?oY?;YQ=`JKAXdKq2rmJ_oiU|Ckh`3yikoA^mx z??7)-dtH`V+;bjn)@Tg&Vwj~VNdO|$a1)9Uv6;k+N#+i9Nc#N~e?h7LIJ&==F#7mC zEc!Hju-OZIhZ-NAzv0>*S9T!{>Q^T${2ge6?+l&^bQUtK@`gB;mmx9M~pa2Kl1t3mCuWl}^%yA^RU|I-^ zO=6f3+(Gh@h7bY@dU?_VfYp-~uX3nb6L0Us@Hyjiz-0qplh#wA>4^88WrMx9@<|XL_xq*?1KwgN?mwX_zc0OT z``eEiTWh{*J;qUw=@URu5chL+H+O2Q`BH=%K*pULm)yZV&-fJyz=)xET~J(1MiC4I zL8+5=wo^j3P=vlYu9z^fCX#Ypu z(Y!HxZHZ?6`Y)xL@0D~?##B>k_Mo>=Be$OxeC`3Ft3A7DB&VD}#0q3jc83|Mxg8$} zHQSRB#v#hV1{Pou&=4CCn(Lcpi4i60s}*U0=&S&cPQuaW75V053e?kOrK#9V&q*z3 zUEcqtUOS)8ax3*z_jmdnwCP6O11j8(E)tb+v=Bi3&M=iBf8{H4_n9{H z^=qw#MuOF;1gkEUpx)j}x%O;ny8pHPI_UhgO_Un~taqk|t*oM*#S8)eqL}c_FW)$i z6p_DdfRpGeAL(*v(liL+fFN^0HstX@V~2o%_x$&)G5roc&sr!m_J0fJZI)Hw?yVR& z*A;IYl>O{Gs$pOM+8ah3Wbz6aTNXWm*e1YS0C+(`K%j63_;QI1Sh5zjL)LEX{gI<1-6zrc^7%GblM*2}GZ=9hqV~i|lN2`kLiRcRGTzH`v znV1o>XhKzogMwld%QnV8yt@CEM+Zf$ySlj0oN46;>Y{yq+j`zL>vjl;@plr`85{=< z*kZ>aFh5ZxOZRyAU-kn@YDJS0J+AtQJ|q{^ zOL+#aldqo*Ph!O?>%A}VXnvg04Y~pzSZ|ChgX=A~pyShaw4K5bhXZ~`=il}e`ur0G z`R&b^#K!qNI`P?yP(ONm6#9O&|FfFk+l+5<6a+Jp7hz;`_>=7FLrBZ;@|yZjrRDcYN!L3Vl6?U$ysmsE|2DA?sc0-Geno@hV1)q z)*er;r^K?28uG(CeeM)fI~K;ouAB+QPemvy34CN`Qs$ck_3@A&pqOCrHtPLNlfGWF z*MlYn03CV#z`=C;VOap1hrEpiz0Blp)vT3*r z24L@A{8IORzVed4s}#JO?o%X>;{&>QjJ13;tDH{+QWBow~XA)L*b=)9b z5Yh@7qzj|^f~;wL_1PiXwZ)Qu+xSFQcDH=$e{F^}|76QhO=27*#j}z^jpWHVphXtR zW#$bsLr^2S!4C~7uOOsD5}y$ynU7R<^WMSCCdfifHHS_(98LPEGVi3hXkj=18O;z z3n~oNl#&+lQtn}J3g66n7&chPfq&Dv$0xq-di?&=`s=NNHCC;cP`Fj_7xnFtj~q1K zLb5x(tetwmTCrS=XjlL3jzogls8Ov8#wY?pLR+{81l$5Sd5l2g>XG}7p1SPo?!=)g z{}5rsi5_GEufJG~E^&6dHSg!k@Ev@)SUbDSYwuXLogZG1th;4yyS1oMk6ho;Cfi1b z!%9ahZXEvCNr{4^5?Qh?1XTeXCniN149JYa!-304M?@KT=D|R{o7KLbM&DbdAKmvv zwy^TurDziVxOeAnTZ!uL2mbR^`>bnc)sgR6>4!eCZk#pX27Ey0Wz|^;R9^t2Lvz*C zHjd*Xu~u2(q5|J}DK*ZgxAO^5MVo`*`XMn99BfqpA3H}X;#n4maCKN$T}wN{NL?}* zfTxoKu++L7A;5z16iB&;TR`b3B)|ioYH}1zUWj+l323qyz$}#o4o6@*2V9(wL+WAr zSz#)g6&SN=VJa7_f%oNy*FlhlYCu1$l7|jaTyQR^0S__U9?a%j27Ecn^52ecn}LI@ zmTvUy3r;(4=H_6*>8t6qqgDW&Kw`hl2v~I`-U{U2vCLV-+t^&6W?3hgY={C@235wF zbJwihJg(Q$`+9fl!bNMNOWkQ{;qk`~|MGC7b*D!?sAF8X3WP4_>NsM;qAO(+p(k3D z2i8B??eC*E??Gq8*>fNNiZZj;okV~E$Mq!I)e5StlabUSLbN8aja}C&=tW=jvUTcd zcRs8G(e4z1O5IpWfnsA%6saTPQbo6tN{C@kB0W1CZH8ENkR$@!c^X+te+Z5MG^!x? zgTEZv{3H$JC{l2wgHeXYzh3#~-u~-Xm+pH0!`}2Y&)jp)J0nig1qpV<96t5-xj`)I^8M3#-U1kQMF;6;=B?<|B~$v^Booh>%}BD(7^+WODU z)(2R%-zzo2d=JCNQMwx=`}J$nfzGu2tq;9sc;LP$zoDx=H0up2iX>|Toca)6jXn@- zOjXK)>=z{XDV+6cW3+PzVtOF7e8Yi{4o~m%Ne|LpN3KOP&{0>Tlahhb|f3t$k8`)L1ZpABUz0nz4DHjvE4xPoFt!dT>^y zn5@S{|0)&r3X()bG+Ve&0-g&M&akoZ@u%l6sXf}$myFV{VTzz}y0oQ5H5;fS`=p8W zePYbrdyJhRcf;|k_x~8WbhPKLu`l-}$M&Z;j+u7I{EznRAlc#+<;q%5u$UyvKzi$I zg7@NAr&+bwik&L*UPzUGfpYIm$8ztG4$+|X&g9p6C(4h-u>n+IHh^p-!APDL%TedC zyPP`DY8gbw>r0;JUir?DE6?hhP3NWdfWXUgDlGB}6n|nEMYFF?Ox8iudHFz4P zj&G|IleuiS%jZd?;nWUwd-D<82Fp2QmA5ANHZCm*;0O$@0R-4i&adxtpd`Qz69G{2 z*UhQ%c5VxE){8zOD{lDKe?x!23Ue^Dgf;zEUhS1miG_2=6pKd0>_&!B+F3bl6 zW3&YTRm)HU-YMjcld(>oE);0WFi?DrUl z5lRA7;S@rvTaGKT#72q76{WVjl}UFUc~Z9qJg6)>dtVep!_Q#^UT-n6BuK_;!kn+* z83?$c?fBDCG+-eDzI4Ou0eJl$CUEGx@W`Ux7$zySkQg7i&R>E}@b}XPqS_P>#9!VKnV_#~0`bqxQ5SifSg`-i$uz*NE1)o5Ztb=(gX*-y49LZZ*LQ*Lcjwg}nfJQeal0nZ@7+xPT=(29 zMlcS%J{%$WxK#Vz^zZdA-4`#=tJYfDd~GCLAJ%rTX1w%{=(s;-`yKxN z-uV0EI2I=u4#xZKx)U6y8&=CkSo(bGPW8>w#A7+6pZLrmVo zV>hAswX_D=Eki~%YR*?aLdiQ$_^>%a)G?Z zVAARf;Pms(Z;J=gk?oT=#3oHLgBUXox7(jmfUp!FC&)FFsRYzCK%%i2Nb^DTTK+)G zahI((j%2%54$4q-qLG3!6N}0glyS7Z%3sGTQCK~J)G9$`N#OIvkL?VVy@TjUgOVFY zoV2e=3!)i!ppI<|3u&UNUidQ~M{j-gusx2p9a}K;Qmdj4`vsT+vS~CY+m;3;B<@H= zf+bgh=~{k1_!XQ1z(wISV$hPjf*dxK5nrb>QnN~nbjjNE-A}ymrpZ9n(Zr|4y3rt> zIWyS;fQqO93+WO7yrjCqIEUZDS$YhW10UuJUut7EHoyLGMaS8i3JxMCSQh;itO4LE zGlt%yaMAF7raX2B)4wft9RGRk5jvAPSCNJiDu@pO)gsV#Fu#G44U8}kXmXwk%Qj84 zE?KxkD#sJ)(IbyvwB@nk9i&ZYT9h07b@dH%XIB{h2(UZW2?;>Q@0MZ1Msa?;5786Xn6hwKp1H|$#)_)GHJ07W?q%06`>PzB zetBJWJALS~=*UB!?O`?aJBzd)E-JzrQ#7lpwWczP(Tqn zkdJAD@U&`)4YR}=YLWo3&lmL4G&mX1uYpA9tCwAO^{~GN;uwhKm|)D5on+UMTH*jHwf$ zQ37BnpfOC`>nzn<5l)MX9(uV~solqAVqN6CK~18Yp=Cjt%FBQzXb~jekWyhjZe-#$ z|K-EzcL!~McEdTODtV>e8nEN$ikcO%h5_e#1t#GajBo>g7Q4d)COGYsbrqY^TJOS!;kE`g`)hhT0p;3iWM0Un{Z#mVxS zY1?qqnN6=9*8K!m(UxKb=zl=~2j3AxvBct`H>}w7z}MCjjNwtEXdg}0d9noQYS}(N za+h%{!fXMo;lVnMN`9c0g{FmLTKPCCNnwF7-@flQ5Bg~;)93F31AFKrlwTgZdhbVd zQ_Me`cq)$;s8gi{>H&bJc`ppx*uTH-wjUapfBOo&eYS4Bx9+%y1{UkwRnbeI`1;5b z{}VJF?(@(EGfq*is&iNIpuL5ne6p&pHSSJEs@#!?-kgA1S8zltd}OYsr@qzWjM4|L zRYCr;ZJ%~h4N*VWQ=gCIqOCR}wwq~ZS=IR0sLpQ%?z``qU;jr3;0@qmt5_VbdER7lpw$T+PZ zL@)gYJ>vnUS5QN*ZushL>eV{k6mM>!23ynVl%$lwda`VcjFD2H=orqzDL@;qs&!}6 z%ZGkfam6#%{{JQaOI;13o?p6IYUu(0zUtD;?<4wE>kADQ?lfW=ni1tXAu)?>Q$X2E zt!M)@G>w_)k};PJ+jvF)J^n|0T+*a!>Co|`uJnIiVH}z8Xi27FV4$H#g=9C#{#<9s?L-E`@|Zbe_nq$fU}=U+@(_OKp01BK37<(^bVkoabZShY#52$M*1Wr2?5 zrY1dn;>7*exOzUgJIJwn*}d#ub}#>@7d3>XL~ z7a!HlkPwGzhA59z#ZZu)4$;{G#T69|dqtgxY$KT>XGjv$@q83^<9eQY#Dwlc2Q1v( zfOjvum%O7{M;wgP>HX(Ts7PLVo=F6{Gpv~@%{#-ugiBn&NWJ2z-jTTuKvzMhf!VgE z#LVrjr?;)xYrXBmX0xD9r?+IsHHkB2p&*`3N|fT&l3ZT#qtOBIxbU;Ayf#>WdlqxFlB&KK>;a6YR@JSfu^u8P!of% z&cpfqL2pOGNkfK=Mo*xnH1Cs{K|ir{^29Tjk}3;5%O35j_5}r$f`NP>Ai-yE766z_ zj0B@%lj2UKT9ZluMs79wnW*{}g)UI7ANncU9gbDYpH`;(fg=RRfAS+U;o#R{E5S4!g z$3@US5~@Y|BruTas0Hd+z!a=cV>ui^j^gBEY+`Unnk$_>nwhkJ!eN8IIN_M02E)97 z&TJyZ6J&SgusDmJ_E*D0w>&o1%z zi4D)#y{YLb1t=RK0n}j7J&TXG2omFH78FlB)z}DA0_anB7=ZKkAIuM4`!>|pDh95^2Gy6{Dk!&Yk*hRS5+BcBr4bm z5^tkv)qDVfA;C&8bL54FcsaHas^LNa$e!obR$eK+(tSsXxAlfisbvm5|JRehn*B1N zT&45^XLN-p#m5CX3_0HwLT1DY#{il~nj7o6X5C%(+j@-NJ=7M|D(BD}E^AYj`YlY#^cOf0AAW1?b3zM#ml_OgH zY0yk+@T<84vgS_q1T?@#Vd4QF-Xnv|8<$E7GFuy?5KRF%v5kV21LVYzMqH(eQr_SX z2k}4trqze)Q-|kVjgp3A7nGRH!E@=QvufgW^<=!~-^QLi+vU{e#u-YK zK^EC7$fAT{cJ*l}+X{hbkI)}adSlblQc@TY{0KdCeHP4#pA$)J-ip`P;ds(~ypDW; zzJG;o6739SG8muu-s2F1^OU)0eV&|z>o+23oy1j$9R8hky^9+S=hCqS6VARnM)F6+ zbKDwyJQb6Wi8OteXwy3@aZ?8gH6?BvCulQwf9kBRzkauxm@o6_Q&u0`@@JBaPzK&5 zM@}Tp!-t~+w7Q6Due+&92rEJaRqv=D%N4`+dgx!i`+F4HpG)wqjOb)-yn`qm`*gg0 z?o&q^4agdm<>gRYUX86y=Ej!|DAi{!dN;6T>u;x8yKWgK=%pXu$V8cI@ScUmM5p0o zWn|Dagdbuk5U{gapd%a?z+m_Nx>dKTReVpp9nn=?8MJEFWEsbzZ5eOBfeVR0`p)d> zB={D+yU2jkGHdU&dQ*=Q3+$^`3x(%}V*`Ej;eZtAwP6^5*q z3_bpYZ>OF4ugCG8&4$@pTZ(8eRN#ui<%xD6@(0>C@Xr*A>ocEm7 zx9r^k(CF!rW-q9Xj=Z(@_AAS8>cVUqLnbd$<69Pd8CJ@Zdo*fbh zx_3E&U>p6jsQmTW=a`hrs1sBUJ+g2rEktnnHvoT){rKeZU_30{Y2)B=^iR_Buhp(R ztze5=H@EB4^0BVW+%Y_F$8dCv*ftxuQ>xTT5oGb7k>6v{@6XL_C(v6?`0MPp-&)M> zllFm!oZ;iRw^ab@bjV;y!U}+@n;ew&B^>In!JCB=leAr1yp>3>nQwnNbDX+be8SV{ zHU2dcQHVW0`E9uV2CtvE^i`9aSwhRGBtI?@eRba$KhZvyqfP zDk675%|HO&q*5Uy!Q1Ahi~h#|82Tc z?+B@PU2EJcW&%Q@Qzd&mUu5#C*gI9HgjD=4g>MmRQ_T#R5o3*wK!l(IY1S8RJ)cTX zdh47k{{6z5f^Rr0pi#>&ZU;3@kW#n9d($Zn<-I+d=5%&I(?T=pRJs)u9R=g5MQjFZ z=4IkR#()!8G&27v+Rd_@zPGx5)oJ^MjMEm$pcu=GfUQ)K%@r8xhE&BzNI_g|V*z^M z#fc~GdB;tTUOP*QZaLks-$kE%Ra0vcJ}iLtCfBTT8Sxz|?_W+obImsw9}y+KW#@8> zq})Ifnt=+)r10Tsu8{*lV@`+*iHg_upRq0eZufrwHS7Fz`mu%gU3J#oTf9e7Nu$pwsEnUX=~OGM~xM+HF7#O@x}Ib-n=8AcPxIVZIU1 zY_+fo6G8Av0+IoLqE;-m8!n{TlxhA9dQ16UJ+4YWVlhkU6v}dw`>#m88#6{5lzPF$ zH+BxGUJ+g&*qYH%o~)WWw44Fg&F$7rZ+*WLxNgp%KUp>CyHi(>H%(RRqWG%%RZkuP zRrB|7CO!Ax=?zDhv=uxY7a}^SuU~P(gX$Y&z9hIo{d;4sXY z^y?OC&)P3f#oLb+Y~J9tUlP*1B$#BI?AoJjlq3MZ&mE7uWf&YwHaAQSfIOg(48usV zS|Q`6-;RoY{?Xu)p}S}xDcziZ{}*rWtO4p=I$3kf)^6huF@tx2Cxk46sX{z0NC@%5 zD|{{Ao@!MJf05_XUzg8s|8eL`CjNfsGY$%tV!T$J7fSCKG$qUHydjYPMOjmDo;t|P z=7o}y5*D8`A!sX%zrv5=PhQS9t)5gd0#XZzMsV1cztffa#S+VfbiXe?S-I>l5)fIR zeLz8_g5yBs7I+x2gwqSi&_p^y)l z!Z{^rkgi1gVC%_-V?YZ5T5oJDSF3AAE<`vs!0|O=GJ?L7Pi`mI+=4EsQ(&Jd3lb}W zwx;iK_I9%-brHRGuV<>i`tl6pB@GXTpbtMM5P@*Iim;~O2mNAG|~u^ zK|KMxED+^475oD|)(7O_!2b+))WcP89Ja@61BqJ8J=h5T7cN!56=%_(!A0;@W3=lF z@dI3ZeExN3%OSmsJIe?oTW$qPe6Cnve#Q z#5>6O4$^(TUrhUXkAd3XV@tKaH$?Y+a$i=<#q_YBPN`}7bft-nr}t^WB$f~oX(`p@ zfE+|@Lhsi?n2QsB=!r}zlg04BPC z1gAPP9pRy|L<6d?tQF*&hT^%Iyq3PEKZ1GQ!~MM*t^Cc6qJI-BW47YiT*sq^U#0~Fvh8vFfiM_+jV zi~&7&@|#{w&mQ*bs{>vmG*jp4#uP_`-yapr1xWsg`;xQ4pEX9H2s}IEk_|He0TKx+ zks;V5xu4yy?|%m3BP-gfU3ui%FWy}yknbH@dNaT6lhcMYnrvGwm(ro{y>F)06K^lw zl|-~LuM9ZN>yyGvS?D}0P#dFdnxt~p>5n&Demqcs{QD?CuA*O`d(z{-zCwV zt7Q6o2@ogCdhHk?rI-Eo*BJdN+NI(vBZ6i@1%hKCK}rNVR>(%2Tg%vhQz16BBcWUm zpNs(bg&^ag78c?~=RpZ2t=;Q@AsLNL2`nA859rk1l_1d-=&veXjJHYxkQ4*dImo4n z2yAA<6{WsMKL4iQUY$JowciydC80utz09 zmI3=417(K6Q}Q*=W6y_?>PWabsl?Wk$gC}3QQE8f->E8dpY<1s4-+unT z7yS4oV`{V5K)jS~gYPgU(SY>R6I3KHx%m??0>nyEN@ACt*Ulcl&z?R0J_F-cy7AlX z4d;J8(%AR0Pf+ctZ@_ifFzWz-H)YEXOWb($rhz*fh*)B|o&Ndlt;4=6&6wpw9QCb= zAn70*eks+~?#m12P!(oR!%!&$v@};KZs!81gvSmcAcanWx6{ggC+E0}9((U2hq|p(Oj-)#kU_6arCC`K6TBis0ON)S zR8b=mL-<)NsJK$t2ld6+EpOD7thnjDECXx4M$whay^H?o^6s7+uMV5MkPeyZ4O1@8 zZ9`FNl0K*akC%-LU`Um#Qc^X@cmv;WIMsLPuYEt-fhTAe?z+?XRv!bt7O@f@;Y#W#JzHQGAm2wma60 z8)+l4{eHS=Rb&w_H9<0Tq$va%cQTxcU>bT=Frb3{=H@Lgom_I9)v|lpz3g6gFT0oB z%kE|OvU}OR>|XwlE-$OHUJw5txSwv8r|3h59r5H@FPv-ian%YnIoLuX$omqkM&kzu zGhDNxskq=rZn;;;h>{WzWQ=EXRJOaNX0}6dHzp_UMpK--RY^hh9}w&P!*~4puHadp zqAxk&+mc1~_vk`!1px9iyo@A0Vu0B(2xgZQnn5;$#B~@^hF*UtRVldrATn0p6k3#m zRf`Ns^EU?I7Htax;z_ZoeMYMwwX-pVsSC$_=x7`Ao*P5lAHL&I^} zvD(h>_8Iz!2bRrlI^j^07%7Ai!$eUi)gmNA?RoTE^ufOudz$^)bMz5|-rBbKQ$jUq z;L5SPlZxmS(v_0Hw*Xn(|Hs~Uz&TOo?`N0pQf!A{7qMX>^G>Qgo6NG=!p2Nk5X&%0 zW_M>vb7r#aA|j$FcF%^r_kx}sMUV4rr=I0bu`4QiSg;@G9V-9N_kG`)Ov>yg0X%>A zCm(TkN+wg@@-5Hzc?bYZ&oomkUS4(=XAaG>S*&o!;4k+WU3bf7qr%GF(2LAn>oZ@d zi;lHwEXBB5bDp}WL$G?)4*3*)S^L$w9xLGBW6{-CPy?e`RKTupsbp zHeEcKHRtiCvRq3;jy{#(u(*~6Xzsxl+@_>dTozL)V7|1IWDBHQFkl7CM9JxtFCGU? zCc>x(xm7?8K|XuvtH+#HjT}sk?PbPw$lwi6&fedmLn7~VDGDV)$!MZ)ij->g8}WH~ zW0euhyu#Q%?z&^_13ruC05QHyCLsa;XM(&=jNSDF>B~h-hLkH!g>eAzBy9?pigP{n z+Z^)H#*n?%*xq2!Rc|y;Iw)FGG*n=4m;gv(tbuA2ojCQeHir(&SttgTs9o^lv4phm zLYNr<^zwT^34|G#Cx*%55-4CZ*bIX)ouR}aXo_P4N}vO|$>`yD%|j&lv@|h#G)I@H zb_EGMp6=)XM7NykbcxA$XC{m6 zzSh8$(6nYrNl6J1m&Gs?3W0zr#iwfkavU=A?+SBdtqZsCU=yB0I5Ygxo%>;p$g^Te zKRi-L3vRy~&pzR=)VUun^p4up480#P%Rkr4E>gTBRgv z0XbZYDp%z0=Q|7(yh2KDDpYP%Fe!Y*L>FKFeAkfGWjjptW@dO?@GqoD5ji3G)2R;G z@R~4zvff>UE)l5H6rhBlosF7wMyXK`R|F+Ph36*7O=MTHskT%hmWGx!6>cV;l~-sL zK43P*zKBo zU3I5jGI*QcXn>+z`H$7i#H$--?66#+>jR4G2edI>l33ZZy$I2dC6<*{;yS}*4RE_E^YZ_ajaV(ze-d+n0+r?f{n$> z*_M`w%Js~?_4A$+*F0kT^>BlqGRObf=6d0P18%2QO?rttg?7osfH@h{` zEr~6?680f*Uqi^MQctbM_77%$^Ks*!ns}s@KWW0qGIoU;Jw6|q4}HFXr05g@7^%Yn zR)lv5wPW^=1S-0cHO#{BzN6*qZYi)v%GMmk$|m|6nAAEv%mQEU38rFDSla1RIvdIS zz_^I>OX6^8Z0nJ?nDh3L05LQm+xGk0MIcL%J5yi8X>_V%MB#0+2Y_=A{%}@iNfwM+-3uzrSWL5pJeT~)iu4P(29{J;4 z`x=pp0<9qA(j%`Jch?DhT<0_ECk|V}1mZX+Mx{}HpZsvz@XIr=O?cQ|v&WWH&wwMx zu)LAu8)oV2QO`RQ?x`YhOyc7Ogv`i=|7=izV!?qaIi1^@VVcx_kS^>cGxEFSj8fx-!tbt zber_<*4x&UYl@V7TlpY$gIxnTbao9jt!O0T5Y2XUz?^GD8_akj=asm?kH}2&umuJ*WE^by%fA zotGznBkw)hh}}hzr`?*yg>6< zuZXEwS4c@m#i*Q+H9UCZvL$=5U*H@(&`(~l_Aj@6C+S7@T{+VLq3LO5HpJUVT2X&0 zj1#s&TGX%gLfI78^Yenf{T}%G=8^ksnZ!4_C14(~YHjP7o~!@${-OomV)dwk)P<1^ zq;x)JMqox@?5YSfJy4{=*o{nboa4X<2jeq}M|N+ynFhCj&x`ClJ})h&!wd$Jf*kM* zku=>3VZ&B2(@4?_^;Ri~dh3)#y>&{W-XbNzluAi>gi%*>Q_X5o)y50fF{6Lq+vX8F zEJisuy)Qc2AuqmaodQyUx*S#Rk%TVHKBnNpL$Iupp&0MPWx#<9_LB-n zm{Cs;v6$@t&8!f&{cy=4yU;_wDGkY~Mi6A!NQQcKCCcq9CzlkQB{+* zEE$BXte1q&!bj{6H`pJshyL;I4prs6H!!=-{9 zL-PWSs!_bR6wGMv%y*SLV2jR7)ZN|v(_0&^x#O_zkvsg442`+|SBDzIo#&Zowp6P=r<$L@iTURaDPRg>O##A!wflV3xWL5sI`NG` zV&eoZmD#{zC##wqtAHC|Yc%dbMqak4yC9%fF3bXEfr4OG3uC7)3144NTZ(Q8m9TEU zee<~}(8!H2qCllT(>A(|Z--WWaKVjF{M}hRWHcAFXOFJjL!f%CQj#`sE``AwtWY>~ z4D|Ecp_kA)=H+*0Ss^Mnp322zrf?xWj1|g9-24tHov|T}lf4$mFN6~CqKg?bte7;a z<^Ha*?SPhw_doW=S@X(I`{p_qAuyiIV~ZrK$a5us!xW=!dPGq7g-l{FrKNEQJWSgt z+02<>79rkljAD;P=6)|%5!I}*jYBVOck3t5zN4etLj&L$+_E|?6_+}&Cq$KM6lvz3 ze+;IEY${fg8rzO&g5&$hm_3gufl)4Da~n)CbL0*U(?aCcrEpvr=z4wM2G8D|fhm+=!j`8z5-SlF5foN}i-RTbd~;X)ap6f43V-J+jEV zYx}`9rHZ5sCZWQFfgx5_tOwrR(#;?oArX0ig6nO|Xr+ND$nNtIq$)VH`h*X;1f3C>3m1cNxSvlL&5!?j%$U)? zp{VrmylBxLXx8nge)i9+?klbWDU%#bpXGFEfn5KB<9JEqk{KeO%6QGkHcNd}Zq1>G z1$e-w$~sU{mr%yJ=n^83_$XZl(qkzDnI4mG6FflI$DN7!#k7 z6NwPux4}fF044&~3+FSBd!8;$Il^6sDRp4Tsspjj6@Ev8NF zpPsy#^ytdi$$vd8!G35>^5VqVyR=voGk^&=HJeDZDe!+D`1ne~q{uce-KK{Q@hBI~ ze!s)I8}58^le50o*e0R3SDiWW=O3GjF=C|y<&0CpBz)~s4AaX=dC~C_KB4=oK_6}V z^j*XD+>+m|@ZB7M=6=|?@{@fgTZF|*D(vAG;O_#v8Da=om8;adt+gG9o>)Ef&1HMu zZqcOaEbYzHwKvhaA=HpoVn!YaY#JiB*H5Yd{9K03z`z=kGZGA(R(DsVDPk@^@WEK| z>df&?(_Xu|rd&&~+=_q$(X4TcTc)?|Z83eBU{Z`TDs{>!E|pE{Dm>-8?+2l+|CH|X zPyK{$xvVI)5J)FYq>>E7OG$aE--k0M*oDuN)X7ObnMPe2@^vZMRG@*!k>HtAd8dGw z9sq&%@p3dFr#eFlKv10A3j=JO`K2$x$p7^cde`YFC^8?J$$eY zAsc@}{eAzoN)+k^ME@*r}F| zT!qUEKPAf(=u)A}Jt;DNSiy2WJ@1;?L-Jgd!q1EX*q9EqKK|Q(^qh9#UWfjbstqq0 zd|K+FrPoioS)#VywRIG@QUA*5KaZTC6K1YF(-`1OMkrsjKoVkqV%}<&dWEk`~00L!|txyE}C7 zk8kaA!|g+uE$-TH+=o089oci%zvg{#tF1Z|S$;t>-r~gh)PyAVNLc!l1evN4cF=2v zSX0fAnS9G%Hu=_Y%LmYiR^Qus?g>AIEs=m!%{Gtp24NNX7C9O-m6_@WxWITz?I|>1 z?i*w^ss+(F`RnewGu5JrHJ3#!lN7CVF&=iKNzRy?+B_{$>_~G$ECH-%!G9>3F|VFB z^w*eb%`Y*C&^ZVGt#|*$d#Z zt?dyy(G4?c$7S?LuA6gA6c`7`McZ%;JG(r*quQv99Qj`xSKH8Y0=IJa9XVTx zf{c7-2V|%95580?t%=m#@Nn_Y93vWxpl(`3#3hH%>^%xJI)-fYWrom>{|Ma5AAewR zHzWRXV7f2d04WH>k}*(8XEhj3(h5Z>amgJPpFVo8nUjZa{>D2E-FLUswO1xk0>@B* z>ha=vsa4FVn3kqZkvm(<cukT|Q&Jvg^#4AN>+Jr5Yo&#@3D&kJY4*ju4Z=!b;Fj)L@2>F2sLzezah=St}0$E>Ak2}ZW@>=y=o8@Is zM^FB}!F`~-tHrx#SSVXlvx*duJ33Sc%y?Y)aoe!>jGl1P5dATQD6!}F*O$HyPeItj z2&2+JPQA$FnF5`jQ@_3$=xzSwTXx^&9o>zs#P}@`1DRZ(&Zgq3ze_SRtF~Y137#}Qfuwki6X?}>gwfXtjJ~+Bmdb~E zb?(4uM0nxp-5wnG;x(iG+hCI1@N^7%X`7SRjf_tzM$+X)MIF;cHJOWnG9DcIrF!0y zLCppJYFHBEI#=CECokGCBe<$&)1|p*p-Er8vh?h;?G|Vk57(QKVwx1kAt8G8C>ZAZ zlA0LB@mtK{V;gbp`(N%hZkD0>i&A4P9%>XFI_$)QTiHV_F4e^JfC${7jRwnANz-3{ehRSs zG+PXu>p+`~>(wu?%Dl8NWxM}bC) zBy!DC%@F#TOsmK}ww=~3LWGN=ikyR-N@D(&(b86X40uI8o zVSI}aY|_ENr2_2u$NMSR_6Y>`RXIQ23Fw>Hi%(8?LT81ZRVnzlRZ7ADK<$oztcuB~ z+?mC0Nr3=%f5UtsWLT$+rsu^>YuG46PCWLM+E4Psg`Cy!C9m-vD9WYZ(Yc=b0o|4c zaQKR{Jzg?}cy$$phLV_DuL*P8V2QcibmO>&E`4mbZ|XZvu$BF8OF9L6X=oP}t?@?l$0!B>{X_4@%b^9b8qj`EE6fKA#zWtK+(_=#~;Zn;{VxZ&J9x zm~rSeyh0Mz2~W8rrfNN60{b?C)<-rnvMS7#l(awv%5n3-iUL?U7)Ls(rl<(z^QvZ? z64MgG9yKGyNLOt>6DQcl{^jXabcANt5lt{0yb?_r!|k5m5% zJ-Wkj(NIJf(fjX<>VodtUym)c2X%jY)d$C3c(awM-Tw?z)LR)le!A_rt5(!Eshu|f z9^P#h_b7iNor9iukK5{|!|$yY>F)>x+oIim15DQct=U^KoK&A@%f7DxaQ@z3Vaz!R zHQca%@{9MiTIJsztu4V6c=f(`j~tU&yMiTnr=`?vEGDUHM>c`?!@Lc`4>TT5zC)n` zmml<}S-VwHjW@_PA1$qInzi_vkE^hVN>U2un~)_`c}UK{N!0U;2_i1B}0=xFZpor=zTZy5XDdW|1;%1AKiE3c{8?&>-pXVg9<@Q zg~b=hNw9Xl6tKSVv2;fAcgcykBGH65YLR+D83FIYL0~ozZO?B_R#rFMqu2Z;e?!y1Q>p2_!(sklbJ#Z4_>=Nu6nsl+ugeoKXCR!6~%#4Zkd}8H8uV zJBaODc1c_WJLMK!>34iPsQ2t2KOVE&mZ2pt7F)=US8H2@uDW5+=QxB!FN z{|IrSlISbiPh5Xi$)+ftzJy**scJ74+vw}QKwSWjsQZ;CjX}24(dnlieaL?e_mCT>oEbkIOu3{)m)4ge3E03$FlCm}(H_i$VSqfsn5nIBK@=)3El*f9Pd<(E!Z z9x`q5#sIK^qX31m(f$IU7P@_y`NtFk?Fr#hDT^>`gg(H6P-#@SX4zj?EIWPF&`tIr zueo-AM7=F6JWQ{tIu+s9|!7B<+jgS$J7lG)A zInx;sT&s_L@!`*I8d2#RZniWJ&OuW*OyYldbdIe=?uKCmA(qbc32+exdX(3Y3kqS< zNkPOfDqq^fqkqRJd%$IJIe!^P?YKF&KKOi21vWUi0Ys~ig_At#=MNU>wT zYAk*WHI@m>kG=`GX7tSGkpXSY`zTFCZP?fGMW9Z5PDw3m3qI^T) z0@P4HWKP?p(+lzlo5aK^uyDLSAD!cfJ{pF_CdHK8A*otPN}RXEyH@SIrsr3T@Bbd{ zz51^EzWZTZKly2|thTmI4My6+m3Vg-qTRoI*8c2jNgr0rOimG&n91QF?{5$CJ`+~0 z1q*p%(W{JzX_PRxS5ajwZx>>B&)bhX=)>Bb{y&Qu)YvXU^Nv~GlGtm27up_b^aTQe z@?U7J?Gp6U#Gg9GU3jL&nM<-Jm|2r&0|TB9&j+Rg!T}f+$e0K< z;1%dmT!L0^xA?+`p1H9g?odeyLBKa9k`DN$Saf~o43A4c1P*6hgjtvj=zu)eOVfa_ zk&=r*Leb2-4ba!=TD&cOjWb)8B>-@XK!p&UydSIk#FR4jp{J9K`adaT=8( zQ#UhpnkuPu6CjbW+1{oEo5;+r$G2kU0GAy%5dlJ49Pbo#5eOW?qBUobFgDk&kYr7M zB}!XF_;YaC1EcG18MOKGg-g);TxjHiOSqboXR9eU z#8ZM6EDv-yfUVo3vwa|4+6Y(k;?g%AEN(C4B}h;sI3M1JoN-x=0p`#+1rZIBRF3$& z#X*|rK!hK-HnS~J?%Z)1niP8Pp+^4HDu4pXWO18G_Sa&PST8l1q@|?A+5coN_wV`@ za{pJL#;M0X6#PfGl}XPysT6=-CcxVLc%&tpTZ4__Tv35sak?`l&z1BfGKnz-p)d=I zQ7~01*~9WcHIPk60pFC?U{ToGy|C7zp9iJ>5~3#eNX;;(V8TK0xgFRpIc(S^|9pM@s*#%> zhf62 zkeh;(o6{H=JnE7GE@}juFem=Bs&Osdj#6`wv;R5BX%wY9O-1P?a79iNuBaZymMeQ_ z{#f^GIi@$DN4)2sb?&KC>3U<4Sw(`zhG2mgvY!Ohos%sH#sEYB zH(rw9CbYDE++%glX_l}fv*o3)!7GoX^9TlkR*dD^BV0dK$dv+pZbIKJpZCZvpN5L_ ztoqFChuIyE30$uxrBpecqCBkuGI;bz{wcJ~x1bya*F9rM_3HMX&oA5i$hu9R|1X6+9@z2EzXYLRjtpa(D-ZN=!fZi;>DhGEFtza3nNd-HA# z?ybgl3!1TNyY%^wF%}~?p8MQ<3}TK7V$_&Oq`V108qzE&jqC0XN55A(W}dj_5!o`rfr?EwM7eP~J!rF)@CCBq&)2tGXer@R}0K^l?@k1vxf@Tu=i0m)K&X zhPK%w0(C{wG9c@OK^5iBrnjM{`rz!vAM3&5!V+|^&!;E7BKUxBjnY#vD z#7D?Me7>Wy60LLIV;64tMazyFt=F!HXwz|&`8xKXQSsAi^OslGHt#@>ynoGQGZW7gB*!;N%$trC`JAQE zuo-5R%mt2)~h+5y%gP0fAYjrImQY+U=IYQ=zs`2)>(({Ls&iC z0bRTdL8|-l0~^MU9J~=1mQONq4+{VBl9k79-CIp6943m!wB}DI;(R6{Ynq8*$wd25 zXl5H65>(L$Vk*F`2uuPSUw(Tpy5gWUS4@6dH=WniS|p)y;IPd^Pz!pM{w`5YN%01` zH=9w(Y|Qm=Z>GMvF>_GO^esrjEua4(IB4;3@CVc$Kji(l&P-dxx;j zRcyu;(-8jWsQ2qKS1lj$>j63*MxHm`y6%U|hS1v`n3P;k@B{&{*dr-w4yC9gM)Tyb z2LxpoXe<|u_>BHL@DT06j#!TtNzay2CCOHtxPch0#)Dgphi2@o!KR^xXt)`UZX`JJ z2_YoDXFub9B{;n9zudP5*&ajjQO{kwe$?EuF$jD%lSwPu$ zjyZ~~NkTRSBohQ&M=XFClT!cmFW>T8L9^ZfL<{Xz02T z?=2l`#fZZ=F=rpn_(4csWmsP{sz^Q5$i)oQk#sVuYUvaRWtHy=KZaa?x^r>s;&v-D zzlduDgH|GP5^D!aGytk_DIj#`7^L$;fNu+251161ci_NO6>+KM$o9?=H@$z_42wsD zVhJJ)K*>*NwFe2^IItu;$GF6Jyao5h1gXRb%1}v>7qi8VldA|Yv%O`!;&Jr(=br{< z%{r|3$x$XDCEnqIkp!0nIXWe+K~_|)RZ2!_1qzmE5H+zOk)A`q%$1W_Jb`|gI-S{f ziudiDUknN49(p-T~AAig5FI%;@Ral^y&&|^zr-;5E zRGA&S&B*TuZ0y!VK+mGX-@IbC)9iN^|GovZAZiGSu%MNekhMM>q^AW0bnPA-2RqY^h(+tfx%SY~?TEIka%s7k{_>%_FQ3 z^TnzTU@^JcL(?F4!?{3=A{7sYnnQ%T9@>gmIFo&GS2NVT)Eg*$LC>R`9vX4a*sJ%p zxFFMz#GvV+0H&eDBT>N4^;~)7&D)QwLb0;e_E$6(rQf^art7T|fOgO%HR-1^@eWfD zZ8isBh-ay@!64Rjq@WudDoHbtVtxQq;dA0~${d@aP@y6P*9h1t^$<{b`r>2Pp1$6_ z(K*GxqQ$!n`*(D_-VzoUJ^!10-;_`o0$=dz!=)0jdC853 zGhbXfYa_ylwYFE#X^Z0BjyKP-YP97c0(3PE0K{@pi#-2;#UN1{P>n)F)ni2YB9}e* zQeOKUTClWPtQXwvD`>{LU#?nx=&1#^9z`)57DMXY;z%1l=%z#@r<1iQ#APM z`NDK;^EnsZ+IraP;oJP?!Pq1oAe&6RLQW{neZu{ zjl>3nIllZnOd7B>A>0;j4^&cX@)nwzKJ1iT$4<3!?ATU6*V15cB_Kcx z!G^wMkE9q77p{OEGT&*6R_?F7jh=dChbtGaxvFe0pG2T17eu3TK0c7x<3x9x!YMl3 zo&>KMrz&*mb#Nf4UCF_Ii@FBmDr6SInXbD`##Yr{2(M?Sl0#O96z)Y{%b-RiOH zCU13MaeT2*W56|C5@)wJ8rgxImcY&Kb2?{iM(VkD&^)o{<3+C{t4uw8mWajA(ic@p zP787dcvJ>|TuQ|&=_v1^1NMG;;=b3PuiFttqP4CW9v9~KFl1{zill03MQRAuho-6E zlZGtn*1-mLnNw`_S?J6L`9g6DE=N{pa7yqlLH_Bl=kEC9CEg)h*xonR4p@a|9Q@<( zw}MX>8;*Gds0Nn-4Bs?i25pSMZw#taM(FMjxC}kW5CjA0GBK8g6lCekqcv^Ay^wFv zX-y&Mn`1AjYXM7iw)Eq0_E-x@p}ZCt3{i7`KIjZ48qX zGbH#W0$;Evo%=h-KaZ#hrD-2X8t;`j1iLlY2gSpK_Vy&^utoA>$28CuC)%sN9fcp?xIfx!Cj! zOG#0g4FEY!QjF?D9ti`KAHp!$#Bq*PMbPmY+b8Iyj~&1J>8`(20l~>1hI8S@94oe$ zPoy)1vN}SgzHkf6gf3p5L0m>mXJUYWawj&*T3B;N8?j; z>DZeePwjPj`9^IHi!e=-6Dlsr*K4n>Dgu!CAjSmO-kvafFlaUc1c}i$Tr})DXDVQXrRoKB`JmA{{eum^D z>Pb4Hyn!5%&=veiBV1wLDOAZe{UusG?U{EXla8@y*w%LoR!M$(g9&F-ZB!tH;}|>5 zX24X34H6R2NZu*$FyY^I9}KI$sjWrpj#!`QeI{w)mkcBa&oaR3Wl#oz~*latLKp^Kjjqdyn77?0}%c7L_wtb^}L zXA|+MX)T;J<|-n#ZK@@Qp-uBjDeS1r9l;qXO;uP`i*sIC6;v@P2|d9Gfyni64h^7< zZM;u7`8&tM4L_ebtWpD}Fv9*7y4bb%?hBv2qac=EhCp?3ZG69zeov@B{4EC1>7}kX zU@s|NF&-yBfCm~c555E$V#pld19N;KWsd%tKVTpG7Jc{GQ`$L!u8QVzQzv7bL>>iW z%gX6gj9pgg*9LFm_{C^ zKb?gFkjEl({mbe$4Aw*Gv!=C>hvA|robSo*|Ca$~ZtOs4o@6knh(6{U_=<;K>Wmo#ZT)bj=UJ&{#C_eu6-h2{ctY z`&+5#a-mUlR>89Pa(+b5-4gud#n6G4=}%lIz+=587`9k3PRdoi?LMD^9|t$zx%Hvd z2q6x#tw(#`ztiXcUcJns>+3DYtB*RQCdG>EWLioFa}@NrQypnzBEtA@Dt4QHh?Nd5 z<=5+Hz=Hx9Iyp7pF4c%!&c9~yaZNh3Uys*y99%}1B)LxHW}#| z&2Ky55# z^}v!A)o=+3azO=Hkiu}~hykC%5EgYR|9Nr0B^4R&4vbwOLr7psAgz_<4P*UTOnk^| zVk#~w@%)JvJ8@0CivX?dEumII=LvRS#WA>H>^NoH2PZ}EvOu>FR0fx`L^qp^&2K>N zWjNb0{o-qtJFVE@9r50146!np=yIIzf*P52S(T$Q!0{@fmm9%O9PDYEI9Rp@zq09! z7VIYIEW4n`ilC6(kAh7;

      7C!x5L%7#+-V#g+=-Ukra;5j)kR8tn^4ca(y+D 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%0An;Dt9Ht> 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�sm+D#OSN|g$?rRL0#Z@S1Wwl2V*lDQ@CDID=qT2jzmFR_OkHJz*9LG6P z|G^4QZMA_tn;-L~dXoqUeF?&9e_e)%Io?Pt)LrBeN25ZxqnZ5+Ui`Dn5=-*%dl#_z z-5%p+>%GXC`kSoz2Kxfx>uAVB?p_#RWC5^M@~KHWykn@e^ASDPT4S3RY+_}32{Vqo_V{^>&O2}_a*M!F=LTU zxy^$BT|XR-e)Z}`gxLA=_|DCT2NURNE~qq{SzltdJ}}|_amSE+N)eiC2n~RR7^dh1 z8Pry!i7or7N-@Wr9BSf1lH8gI7GhOKufV284PgP^`nvyY^sido_wORHR%UsbdEoSK zlh)tIn0X~`kH;qipccR^`Qnhus)T&ZtIP!3{Ufg8_cw=gVgT$S1;m*s0Fd=ZI?`FV zTFOto#(X{Sj^SsXQfK;81+m1UTq7SPDc)8glF@0C79dY4{$gHd&Obgg`%9lMA6#kX z?b$_nMk+&8k>g=O!eAM!2&eb<&Ra6?`F+OBS2?U7O=wbds=P~Tu%)36Ff9QF zX*aLs{9S%T?Nytc75^>B>Kn}3$G zNFEnjUvnE;ufc6$_wx}D_w+*snz*s+n3{FFZS8f(ShFau%4`SAaS>5=+@o;q7xZoY z<>!GPblXf@$0#?hsJuX)k`D-gKb(*Ya7|!&PhT*QmSJz>?tA^`>HWS4^xo0<&2`LM zU%kj}e6PyPs?0CSc0i)RCLz|C;b)|zH0cv4{jHW|7e6n)!+d$gL;t?xgoDhZpg02- zmPE*lK{;E%*e=1M7`Uetqu^a8+_6u?5&qK*&Q6bv&VJe*k>Czc=O3u`$vTER5@Xbi zn0iOS!JlpNFMywil`YZAJSNM)^D%Wq%zw!5&!}e-AyVqA|<$HN` zT_)K`&__`U(zbTVIMasb;5JN5;*6(j#8e#3&H=#D2$Ezi-ul<}`R%fPJss-lWm(T` zxZ<5-Zu@nX+0EzlU;UcA4ifb;)qk}T6g*{#lQc$81`qK0e>4C}Fu}iylsS z>k$3YD2i?NI@UA4&K`B~3D4bW5^ta>D2gGAphQ{3G zn8|DyzJhLqs36TISU7_fuTc-wkl=;+D4qbp9>k~OL1n2?plo5|qa0WXdHKc=2k0Q9 z+g3_z-_t0_K0O~j2RV$EAF;@v^(9c>EVH3Ec~CW4{&Ip@SKYvj_|GHd^@GhMb4WL< z)aSHRLNGm9KD;9j6yH#Tc#s@Fw;l9i924k_BMcaS?U4j96VnoEKOo&x{NVc`bME}s zwewy&-3-9k75PX?#p%VrXk9)+#_Sb~@7mLbE_8heP5morAGD;h6NOs4NeF zI)rL?j&jPal9*b+M^bShbeNeK~XG!-INy057*}WHw#%>+8c5LJ4qU-oWRC zO(Puk0rOmaxONi4LE8b+900fwH7cmWh0mk1K!k^)@KFd;4O<^(T>^24kdxOHsfpkT z+IR{Fi@>Sj7e#oWi}z`{UO2A6TdvtJ(K6woe*FjiMX{fa%+mU@8+N;NdVVmy3+5?M z)zjWAQ|`DZ!Mz=7G6w-m5f53i)TnxyseMZoTjjW6Bv-`#e{Cq0w3-o#{%z4%Y@O}okXZIj~7u4uW^CN|qIvE9O32TRtC;`-DPT=VKjH0D@sbRSFJVjRA-q1PkN!Hzd54>}urC?^nUCys!;NR=+ku!8 zUY)7)vU;=wnTV+vnD|nPm`id3OBNQ*2gHm3yy61xDx5!>37T3Gnte5TP!OtEq~3b` z+11L2{Y!PFCu)3DeX`HE{uLAad}hZRVsp3KyA4G|s=Zt>ZJn|LLklKK3uw;W)648# zea)^lTUV+g!>!j=06U#d`(|vc4yXUK3IGK6^gh;LJSn0xS*n6eGQIu8tHT4 zWbcNVV>raX8g+nvgF76U^T7-F{UR*_J{;$lL)m09ft z9U5D3WTtWb5#l`pFW(QgSE@hn27f_Y$!;r+gSg!C9n*BsZd)&$%o}VL^T$!|ol@`h z$VrmQHY@Gb9R%Zqpg#yHr7^^{m&y_I9TOfC+-=5u-V8>o*JuIimeT~KCcvfI^%*FQ zIvjFjq3~Ovu&x_7YutlN4}a{NK0RIZXVyH+EnAr8vewBj>`r88*BNfq5e)l%RTQXO ztO*1gXEao+>UANCzhW=%)u+ESqwlEyV?h5c%&@x4T(?xVo6P_P(qWDeQC-WSQv7X{ zvwLWDTMy9cmRo*c-fMVt-9J^i>Oc<;K6xdcPLgL?2+YcQiy}ioT`_q4GKK# z8Mh9wK=f2H?+0eWvcXF|x080>qql6x%DF*iM#)MkAr2xE4$<8-}}fJ!!ML?IEc7eI;%3`fNehJP}5 z-B@?;Tx+{YPM)T!q(~~(8j#Y_NK{OS3iQz^w=5_C>#5mZ0NaV;h=tH0lq>JN9LMcZ zcjJYRKeS|UvG|aQE5^WE94(=Q_3k&JX<< z;!=;N29Y#TE{`XWR)iENG(rXl@YutAK3D-g6Bi-URZR+Lp;)Vhj2Dm-ggdzCnsbJI zH)o%1y?PqfV9Ys|vy;#I@*L?bB06|tm*X#CahxfpxY~du0O+blX)Th7Wnn~Q)+}gM z;Y=y%A2#?kV5a79H2R@deB^>}#c;WIz~r67*k6Qe?Zv+8ZhrXw@cVen&1!cDDU^-p zL5(91l7W202kTPtjG0O23R8elM7uD_Wwjt=!cwGNkYts92PS!}1|m#C(gDYafFc3r zqL4#Z0&6waz&cUBO`)x@t_R`&^%r6g7$Ya-I3QJMhEcqQ!vYxdTN-0A}kx|at`9qBki zAn;&2s+9Hew3Wx~cW7rE?j^edl9&{DNdVjUOgbUPI?(A{xtk@5r_g7Ms(=$aKuB;w z;KR8e6#g4Bv=yv%W3L0&J;|BHFpL_SHW1_qsOV)#k{53g!jT0+DmP9dAjUC=?Yd3N z8*l-xKj^?y#Q~E0a7j_&XStoe zP&MBa;DYr{yd>e_&sGltb2Ja!|6CX7S3n@{0PxiAc_dyNGhEYV+a(wBSjWy zTK7{%sRes7vH+p>f-GN^Zv6@u7`*QeuRvxxB5VKFHH%|FE% zYn9TeG-Xx59FhS+BOjpnvhhtcMavzsA|&}3hRM;qJDx=ZQock;alk)){shJO6O@&F zpz#2nOsUz8A?&O{yEwl0ZRu`U7gk4tJI$rrF|)= zhUJUTkTDTLcQ9ncIk;Q#g$Tc<4Owcqkk7C6iqH!ROq??)~-6Lx=uNhEDTb=`c1ivij>0M+eGG zYy%^B6lAWg&0+$Gm8-i%;?Fyhz{Zbjt#IDxA9Up&mz%$U|B2gL&0pWIufh{(AF6V(3JUL$bk^E9PbO&0Ji}g5}FPV z@berG{E+6fv@jy&?w(g7EgZss)}FG@LG|n>{kl>xknn)=>JFPccVU;#+bwzE+nJIe zAv(A$O{qmnM5ST-!6D{XyeoU*rM*r*sJzt_&~2cQ47W;x(3r`wJz9BJ6u_kw^wtf$ zjYt;U-{x@ZC>~*I18_P%z2V?30Cc#ccws9n!`ZO7b$&&!MP)|JZ%Cn>JTImcDJ`cZ zg-?K5i2&i1DB!InG{g}Oo=<0F%E9|UZw2MXuxa`bZKILro(c&`vBB$sBRnE@%*V;+ zuqjR{o2sq}L9c6eL#PTI4hh3%q$D8{YlT=6P&*iaI~`Tvp`w~L0{pP@lmlM`usz5R za2)7VNaz&c$=iS;c-YFfp~!(zf81)8>$P^FK%V;*$hZ;aLo@kM9l)(0xx4q(@3w<* zYB;-L*XoDvs{cF>;fw+)k$78HR(Mc7n|qmgj{?1e0uDKs2-*1^{GMs@o+&5n;~kpn z2S~mNo*wKtXKa-{JQI27E9B$Fi z@EU4nLdFc=wk?`YCmJOjbm2G$+zIm6R^ExYnYlc)B9MN1?A}4C**APO@c+6Hxi;|7 zPiHNSUEgK*w@z(e_ITit# zY{cA@d*dLOfk{e=zxdtQZ$A$&cqv56_iMY1Gr_t7ZG}D_qkyd-39@)JgjV>_NYtKu zIYr;y6Y?cxmQn2T8D-DBch)462m<5-q-`^Ws7IECWHix{1D`ghODX8-Wf{%V2lt-Z zvFSz=r?#s~B@G&vw)%o0F)1b@lBjfOE0q8PZ*C8*Tl2+1jtW?5r4%k%5zerD=mFvC z5^|QK*%t>~dFQHeUw0RLiIDA0pc*tT#!PTPPERu4lF3re99?`<1ghKNgp)?>6CmF~ zzLXTg!cCRFAZ}}rVLYd44$2_lgQ9rat{#L3OCQWJKmx=7hWo%^3*;$*TQIh!*w!(c zeeX`MXWm-`Fyb~6D_4TD;#h}TTnw6@m*(2XXPGs_zCERagqXjMly_@s)HmI^{A-pL zjc-F54T!gum6hq*&=>E#Fz&wfqo$DWmAYPL8OLU_?r;8BaI+y2RZKLg0E!I!X`2DO zbaOhA0s$l!GSS_6R3w-)7!d|n0qaRuf5`ENpILdx-76jax(Xk?RPz6P=P83CQO5Kuv0yXSjXsSNHYvQBNzYvx_Qrk<$I`4&xP#{WN+QL z|Fml@vc>52HV_I59rul)+_U(`hW$ZXUSosz=cT!}J`acA+#ZLo!ZL+jwV`UC59U3E zw`izEK)N&->+O#+!ydu zDtV5hEBSi9MNmk7yj4soJYfJ&%OHPlBUgtoo;eo@oB*IYkG}8fIX6F4JM{0uz%_*( zzwWAEpE$K452v8T@HL6DNJ5Z~kk=c~Y~8Qu5DXU=3~$IdU3k^Eos3nova zHoa#kJ^d<^Zq#XdKr4gfNr(}-w4SwH5*4~K^3vPD_e&>bUSQkIa_z2qe?St`&`^%I zi*j1>(gccTEM`K)OhL~yNf6>4s8)nhxhDlgUQ5~P{m>{6W&!Exb`&U4?A!{A=aMlW zj`TOoNI=?+o4&-785*AVg{+q*g`hU73!%$|iu?@pN zdFf^DtdaugS}(4%!c%MYET5l@^|_kU9Ti)*vzM$`J^!@pE;DgXi>oMr2B5|$-0r#p zC>ab33w(%07ZgBtv$(*)PM$~qYt*?LO>VKWK7xhEQA()3stS`-oUQ%|*j5CjzRdg5!%_25XbgqJ#IL-<3d4Ru2p==N|s3EVm z@mxDHEGzjH*KOFZ-^ma5-+qAvhTXQ?Jl8K<>hq1^IuqapWrG#Ef&x-lu>};}8j&Gi zMJSP8h+?7?-I!G}S*0r5+$>1kiuKojO5eV+*Y;HP=(!VyoTT@}~o>>DUlb zTs(|sQxqKq=>T4a0XttTq)=3>H6jrtTnw0hF%5T59iVbCNWUONMSHWXHcMX$<@J!1 zWC0}@m>M-2p3`!MXFD`IL2i_?^Yz5!OhK_qDAq*`O|XfNMr0w>$OmBPUb_dLBG|ac z(c@pQ+HP`WV>4mdb*t{Yi0#*I;xUn@;nEJxCbU6VYtk3gh2n||uuVtdwU*XP=k79S zi`qTS;sO&5t%v+QdFDrV{IPq`PL5~UwfnG3UY$YAB5SeGI78t>ZphO?P5e;BWmZsV z0fyYnpwNOw$a=4ee7pF_idD%ai~5bV?EDlrK}}^}eDL=PlP4|CH{d%ZaG@OtJ&KIf zIOZ1s$|tfe3K7(nM`Jk`n=e!ii7WA!>&bzJN|ugsOJ>dg?V;_E-tn?8UiXI8yY@gc zL*1$UL4diW9H^p&kTfCg0*4a!qiFkq!qDhU>i)-i%e zH_`*6%L+%skkSFfpMd{x#T7S<7`^g}p{4o{wJg1O?I+_d`M$f}y2|L2XD#NMMokn+ zHff5HO-qnCbN8@o&NEJR^ErTt0(dBz2L54A-woOTu)TtqKp-?7(pZKX_||U@Wh2`) zwA8VC{gAkR$%##tym|=iykJQN@o1s3xmgxS_=mQ)gFi?&!}Y`s*+c@3ft7{!r1qTD zzt8AEza0;Qt!E#2JU#xxBNV(PQCuS_t_H^*rB~f`*N5eM44$-e#{RFE1NE%^l35kfk-UkwS}=)jZ%xPvimDP* zfWi&72OD{Xp-dzO1nX$xGDfi*-Ui)j8*-~l#WVM^G_co=8*_3vN;F{~&vUkHkX3OJ z9B||hu^rj_ANT56m@d8Q;YBaE$4%#fwyYw8xBvOR>vx?kQMc>?_JVO>R)qSD^Ab^tM z(Ez>|PW#1np)tj!6sdz$j@coQFGpL?MT23U)bweij;@I}N?Ox#-cg9@=7rCZgz4D} zhQZ}?gVvgi??Lvin)j}YzTIqQ7*noUZl~TTwo_yl^hhmG#HK+I;xZV}0k4(VE|89a zjARIQ=h~vUXcshDq@=+ea{ux>v^vrg*UdxY^V?{->8*KPjN>78b^O(99=WX1EK+Df z$VqFravTk6SwQ8OP?t(COoh``f+qlOx3M|AFkO7KFT}1rb^K6qw-5=tf~omB9<_K+n!i5&*trzA2Gx$64Jz(idw!zVgIgyY8Sq*|&$j zmurM!c9{K6ZvFV>X5p|NP#2>q^qqPki3^G(ET`EW^)Po2s)x;B+mHKfLwNAHCP1mK z!Q!1LrxhSwh6&J4Bi#UvIGy8=ep85s)Of|myJxah|J>!}WlxeJWmVqWOv-9-u(BHe zA<+)94fG9A+?7tX15_1A9sxg48;|3Gnr)$=9M?9Bx$BJO^x)zDV>4X2 zGhk-^9EXN77o5u*fgh5mFioRL2M16K1r}i<9#WA*i=brkxFgtEkE~fRZOSCG%Tq;( zXGY{?j=bK5*?r(3+IYsTf!@XE73Q$acN1FX{YE^w6H7t5VU+~G&s(ooREs1Me7f0J zkhfih+HkY|?$)#@E7Q0@Fkf*dCpZIrKA*P+iu^{J1;pEdw&yF&AnHcQ9|mE--bkz! zQ#aal5OElHuyS0q5kj0l{c-RLxmFrPSeZ*zqWmkMVY~_VtpKmru zcac%eG07F5`z}RI$$`ngU*H$l^aOu$x#dW9?gs;w-SvapB#fOC7AmM=qi-=G8^7`0 z&!_YxDcq4Pec;w!zdy#BfvT)>1So`n2og<);NN)e3ks3AAWidnDVroj;(&PzF_X5h z-{+iDK=f$G;i=}aRZ~XZ{L4Lsf?5cGgqC^F;i4p2|zSgD*%G7oWJG> zPraY23`}dx&1e~DPs3D+gU8GlG;C%Bq6+k1bqIVA_)Eh+8AB44(eL^`6-zLWw?1TW1shOGRA4^MGx zqeL&4m-|m3DAA*S_z>FPa~GEKY~@s+HaAjWGxD>DeYGsw*i-YKNAsL%C1N7Rkoyow+Q8SZrZzJ&+f2Cms^tTZXbPn=*qMAGI_v2 z-X54$q`IUOdg3H|^twOCw2$$bMeVIRrOP@28Za(V<^a(Qem{;np(9L~$Mn*eoc)W# zUSV(TUtT)SM`G`L`=C?j{O4Z0Wm(agBQ7E(I(*I0N04MOogyY)Udf&n6^#J_OJ82i zj#GCYh(3{9)7eBEZ}2q(vTOu~9k#QHy=MKs?e!~q-h;ML zsB95J0YRvXkg)%k-02F-LU#Gs(=MO8el^~*p%fZV>;n-&4Zs=)3ohlFv^33|Qx66O ztyx7t?->#8skCx>x5PME8#gys^AlnE`*hG1?t#A@@Zn#Y4i<=!F`7Q?V8Dx)~7z}x94Ot!_5{JQyl?C z(txfB_!Z*JLpJ_*-*KzD2QfaL_0O1Z|LLu8{;ZgDF!2i@Y~B$RMT5XQ#L)<+1+EcH zV+!R0iR>0Bl0bl4AR!%vDBaQlwI{IKmhKn%X2wc`Yv0YlmmlJoyoq!)3Ntt;EQR92 zK?2bwp(^CA7;{iT7()+(Z)9z#pp z;sLsKvg`_mC)pO?e0krsyH3U5?`1iOo%)h(?lS9yylEdxh+uVfkH?onl3=Ltq&Z!R z`Fs-l!x?oiuc}O$`97Fw5gQqFCFD_zA@mV139+msi|qp63UNp-yu;TvUE7`^B!GM~ zE^x^}EaZYHj_M2~$uVASW7O6%hI69e8t5l{nc z0p9gK2ls9&n@*b(oL9BbUtsWAfm?cnmJHEM_O2>iguO zk1sN5-ZV8$NC}b{!xSetkd30}`fXf+C^meQfD+FT+=j>HzU!r-086a7#fkZA@^m)y zHRyK#chcmhPG>hKH+_EQHOHA{g`Ejl^G!LliN$0lLAg+{0t0hlhOn?ycIiOz;zJr| zu%|!q%{7~Lf75hk)C;u`2)el(ryCGu~Gm*5-yq z#|Y(T)PY$cp$D`ZULR;0G&zgCe89WSKOJ|5SqQr!#iR17K z`6z}ZQZ(8{t{o!jQD|5O1iyp?w;fFG`OTE<&VS>yH&mddOao0~oI3<3aykdb;X+6SJoG39&zedzW--L;Pi z0_{9@{6!VplH)!z8HqH7UFhf3$UuP{wGFsPO`@<6hEyn8%lA@nfN`SIM@{jUjqkqP zvU%~B4JHtA@s~r803#xtv`_fn-qIZe@_B3pKVm}Nsr#E`4(V9Jmd;@J0FpvsQz?oE z#R(stGSSw96;S7~C#L6)nYHy1!%%77&*3`)k9P_r??V44RD@l@^V>OfrqX?ns%(cu zXP#(O654T*A8e=;C~(cOgu(qd1#SwxFMdKjpPkg-T4y`*0JBV~Zl(Z|8?_O+AsrH1 zQbHWCW^&Q+ry!D_rqM6h({)TtWbzNB70S9cn}wVFEln=ZvRofC^*) zMM>&H9sqVgiNEMmwRr1a1MiX~&K~^N0yIl})C4RV5s{jJR?q_u6n zV)E23WiyqnTUNF#Gt0Gfu5fCPFA@`!1E%}}QaS^koFMmv-YMW3q=?=rjr2}k-Pb!U zvs}iyU)g&S}h#zAk2f?Ra~>2J#)$}-;5b? zZ+EjvITN9+JKekuck(unH>%`0+Kx1X8gUtnFQueWWeljemK2N`QRi;1qdZiA~kBhQs=&G3Ks+08eV z1h~qKmU14Gloj#aVL?igwbhnyww?6lH7}n$fw7F=!I~fLYQ5MSdeY$o9#o{!b9d(KW{Q17#vLa zgO{}ZhStsO9(#w_&*nVc9r$mTp@F<+*GV{_bkCqt^$ZZVe14Ec}WtG5e(q<`OA*i@jWKKeV7l2poU<6Rpizv5g=U?f! z@|f;eXl0g_?4#3~nGvE*H5Q2}rQ8NkwuzppCBFMfJ_ATJxxA(ihR}C&Nvfbvx z2XAMm-m~wey(T@=4Vw{kUFaqfos^#9B!t020zc})jHC@_q`NaSa+MbmWYrun(qyi@ zgB=rj`fAU)m+!!OCzbTMF{^+X?(b3UbO)RHZ1uGF#B;lqo-9qr+)k9+!NeXC6@e(3 zQ`X!tscI5y3;CD66YQ7yea`{iZSm!nJK0?sYwGSjX|rM(cSul>G`fCn;wV~_n*fCk z+*^9l%$+QAXy!-WLbyQs8SUdj#m&x{LS#WxE!Lr<`7@WTxnPgCW)J$u|K~`iGRxiU zi5t1px_1sV>#BB`GY){VZxFtsTyiXu^29(DEJ_c{T>HR(AA6m)BxT{?1L5mDzkLCG zJJm~&x~_HFA#nc}rqj#4?A&Q9r+@R?0#oy{YpA0WRw@BjGqJg2`$c6WaaWUJ?m@P7 zZ0r4>a#xsDBNRh}oF{b*JmmuAuOVmWW`L7VatMl<#9CRDQ*M>S)B-+|iu1U5XnRR& zA7rf;UfloQl?`Ui#pM^HXgq??AH>A%X;cmlN>jZVM2+dz5vEc$HS-76nkrne*KEI~ z`fWc+|0;I$os-TR{`Ew&_C&dICH0X+LKYPPm`j2Flv!4@%$KoKHxI7PtNQ4I{)BQs`V$nx$-PLcX2VTm-X8zo zkWB4mS;O9X-RWO_yeeJNsG+0N1T$0yOr~mHXvfJ>tzmyXV%z95hg!-?529-+Gj+qp zcBK6C$zHVp0BB9-a{fILtoLYx^&S+gujziUehu5O`QOawUw$6@PpPX&IVPHS zH;XA`+(mH_Eu_J$26ePyicdX%#KN{Ya^KSZsz=y)^Ao#Qy#Bi(ty>Bz6V|}Z6yriF z2bsu|K6L4hg1{sPkQnu}N5lkpW*!wBta4RRowRSNs|HSW*20kthY7~z-VqB|Kfk-b ztfz`v%Po(x^UC^8`TCj3W>Jn-^bV`Cn+EFe{H-OVt|JAHxX!9YACXyPEO^b zlX_O|^IzTy^TR@h&M8{@IW#JxyG<8Oj#*gtD{r=;o#sD9(=z-E z*e+nynURtKNm3lACXAJkZD78oILZnNB#<=->gscloglDhAWbng7I^@2fEkamYmQi< z<$@~xv445t5mOuIK46CNF)Q(-DLd->>p z@Zb1NvlrnikE*mwxe-haYy%cK%n=vh^njb3^(coNJ$Usi=M*EI=NXI&SngkCMi0N1 zW!B9*{iJa>~81hzZ+wMhoWc50#M9rl)%Uf@;iV+ zfO7Hmyd=Qi7v0e+i3 z`-aEYpPCtFfR1D=5hmNXueL?n1fc12*+%_EYy8W6dtkH9ecm0Cnt090S}i%Zl+g zE~zN|8y~Rtiyr;bbK!WisA(k{lU3Iev~3u-xAI1+`_fZ&AF|H$%wJxgZ`Q*qn1Ux4*w-Q64^qA%CL4VTV1h#u;rikS+7TD!Sh`)1)KgSRkyNY|2w|bq z;!`{KzbUHHWXhvWw+jPo8O@S+?wiS$Bb8tBWXok(_=OI|Y0 z*=N<~EBg0T+~O1Vz5`!jXWY_WG)}De z!`uWcq=1YPgj~->Ds|p|ux+2)2KKAyxk%$Cc4@3`%FySZ?=GC2XyhVdDi!Sx^Q7GZ zi@8*=m@3ED2{;HK%+XhJ=pb(~Aam-9f0{g!&8+{$>}^wjx~5E@b2M*5RiXk|1EwHq z6tb$LQ@J9_lYdx&q15K{CG3;r!5#?E9y8|EN#@9d7x2$qqa1 zk){Ku2F)-&P#>f^+A>2X9PAEF*fd{U4p!;sWjZ*HJLa}0R_`e^5B$4~>jyvM{fn&4 zZ`iw@JKgeR#R+)JvXYF8l&oMqBJJPx*+jM29u$%)O^dxboru>|i|wR|q4;+y9#o|P zpw0mdxB{r!m}l?lm07-~zmeSMQB3gr+Fxd#f6HDN+4k)7Q+t)^bz3>P?B zO$IM5ERvMKJ7Dq;jXxTmhLVtzIf^!HyF1kA7p_Lk)t2X#4|j(H0@WCg9QE#~i@sU9 z-3dE$H+~EI)O+cF&NMF=x4* zm7-kV*buIt;V-^WW-Gh-qEq+0)P8o+K#vm8wRso?=z0L|GJ>lG3BEnBAzOr%Twip#HXO0a-J%m z!5KRKtl`0XR{MIz%Pl)UJ3l)=J3l)=J3l)=|D&IIeRkgG&d*=}UX06PkNaPLuRV4B z#`BbV-oNTO_Vn-e)cL;sdQidbYYdwg?f&1rUbExpPSrcmdkohv|9>5qjptu8X#39B zQ_r*5`~JI(Z^e$wr5?Y%_qTKW-)TSmH=kp7ePY7sl`wBbM6@rSEl6wy>%?4Q7S=wiUnHnWd;$PWfmvJXOUF9{eXjByr+?Rb zYQOL%XJ+jsc*}EmSxOa|FV!qagq$6ykISl-3y8u7(h%K*Vfiw_Es-Q(o(?mvRw)21 z$Pv38m`-l~$45Z>syZMCj`` z3BsgH?vP?@7))41%YTVoKx`8}Q zwGU?z5qP*U+UCV{n;pfziT+d99(?j?%SI9&I%8!xRjDmbQj?abDqNBLLJHK-qrRA{ z_J4lrJ@lKm@2e6K6}q*~K4#(>|N3hG`>rYPyE(US*QuLd>)p1?N9`snuCh20<8YZGdyxsS|B=4jFi3uN^n)4xf78{5jY9j(EdxzeO{hV+j!i(>1!%x=%Vu2m^Fh@*XeblJK&deNb z=vzfF^7$i2cc^?$W?E1FCLcTorr!jrGLlHlkOes?WB|`f98k&|>Yt6>b`o2-xTf4P za_a1J`fQ9Q3KZAW6-`UhCg$S-fF(h59M>I!azb8gD?nb{Id^eSz0{FYn|hz{Mfs!T zaTtMkv~8vkB^q2FISCS=P_&A+wnq|RO%A7F(GmPxUxWb?r3)i+($$0xkG@*>`RCM0y#3=m<$p@q8?u>41V!K2kRyQfO;)T3Q&9 z;<<8tCDOvV$fTTPlK;8=*4=N9jM9LE8g z1wJ&L5Bc~uF1gG18a|ziacE%zR`p2ZN4CWD;qEonf6$kK2hJOlZ?%!`T3;XZ5GbQP zo=s*-v8VQ)YPsu3=Y{ud!COk=bO4wMgkWsUC@MJy<>c`b1LXsNAj22Hqm{;-EP~9! zPum+YH&8=56_&(yF_Q3sQ^<(zKm|8h^9u7&fo?&QK8TcTQLQfG#;66{7^4@>8h5nB zmvvWkz*w)>%Q9~2wsRK!lY5EKRrM=33@YwWCLt=hnbIqXiWrL|fLx7i(3*?}V6iTm zP6JXp8i|StQRzUkHn8XsHu@S#I4UcoVra(&cOSd>$g(#Fvwu_nAinS+4mJ_1*^Nsed6#{_aD2Nz;KpP|!ZqS`68SMw=Yi;RaG*k^H_pf(* zb!*_3X#)oA;9J+$)oQ0%V?P}?wc^h`rf%6{M%_%=h$K|CXIj0lG=Fvc)W?Vasa(D3 zxqNf0Yb2nq|HCd$q2U$|f<0zwxd2?6kH|i#jesmTr+Qv8>1n@0gx$h?xn`G!qhO zx-qL{vPu=?XyQ)z-ad2a*yDQl+RhQa%raqWtK;--mwaX^8s%F^oj4-P>6jQ%grW$h zh-D<@zUQoo05b%<*5W2sI+jiV_Z+erWD*_d`)FD%M3D&!Yml7?S*kejSY14(lGTt* z)nJmT7gv1upl|+*eR~SxoB!k|PJQw}f3m`Yi}B{W@(rUv1QZjc>Or|Q@Dvx-izyyz zbHRS*^CmMe>VR8FN|+%F>V7Lvx!~WbmL=fO2isjy&|Q>{d}1^Xoyw{I9yA!;Jba2i z7#4Hz1}zw1s=%{~$s`d9;32CoxH35zSp)^#!6wx8$hiQWNEJ^G6H|u6z=4`y)*hWL z?xfj5Cq*A{7>B6Z9O_f0Y`Gd_@N79Q8VK|6J@e`^?#hEI2vz2Rm=fb4yj+8akN?Ns zmw-1>=kKR2_w9kAARr=&2XrP!6U7W^GHpYXHe}L*c#M-|+D=F^F*6MmJW=sh)*DgQ z1CIq2Z$wd9bXi4Iyl=b_5Ab$XQ2)>O$}!2bNhz-X-;#%i$xLRZb9|4_@qXU-)ZTxM z*|N+q$v*3=lfw=FCNBPnGHvrRW%QanQe3ow|6nC6O(U!|j!(lX8Ax6a#%0VrZNVjF zVwlvT#r&B%(g-KGBf$T#B8oC0>W;AoGe6vO!(poijoFjY(S$TA?JXx66Vtt)6&;Sz z_%LLS1vqV`NP3~n#LUj}0Oom+kpRa7-YxQ5wH%g21s7MCNb-d!#&HyO8nMtpj)!U{ z4yAECZ`Kz9eTk=vIMkMnjj_Gvh3ygc5;7+lgZ2A_O_sF5yM0AH{QB{9f zRMe#0QHptOwkO8D^zEr|$~Z9!G=5~4qgE$?Y{R>f-M}G) zEsmWTaK~b9k3`W`tVaS7+aP{cX>vKv$on2$xnaoxOLk)(_*nbcw#T0vGt-h6&(u<_ zSP+R3NX)_ZgxFPbEU#eD{l*WYyQSnd#lF?l@cP?#9IiJKRgz-F8XwSym?b7ryu}2Y zL~z+HA6(0>@C+hhBV%o@%h|Pd&~f(d8BJcR#S5vs(ii*3AAg*A_KAEsX{}#G%8SaMt)DmCcl+^ew|$BCKhA!l=a>^Vf3sN= zP3T^oe-9S=Q&y;Hjx=A_zXtdeio;{RjQYmX3a%BV)hkr?1wH*?VH%@E2%{+blfMFmLv;%^nb72)mnob#9as za8adP83{wFbaG0`*=)|!&r^|rxwqgiZ_nai(*m0IwgsCqYw`Jg*ooH z3bw+_OqV=b!8fR@8Y`X{tj@mSp|#7Y=U3|dc{&s|0S4x7l??}T#9blXgp+npa~P}m z5ctUy7L^bj`)poG2?1qrg?RO-j!_DS#W<3!3<=2Nr$a$^%3qHOFIdFVTdV~TIYEr33%MT~lKY`~w~wnS zhRj31Rl4o_29~VcZ^LTM)K-k}GGUCG?1bG1D+}nT-Bi{{Vl)ic2H}2bqmFoMfWRXq ziF4@6taAa}2}tlMZ0_XHhIllnD!dleP%6P3W%)?o ziz`04@vMryHFp#m>&;nz2jAjZIQBP569Zg=f1frb_qgva^cLLj{ZZb6=OODKjP~k0 z;RgFXzwK53&3VV@Va2Suu8sgkMi5pdTAA)>Hlw#c0H^?#dG6XixMG)QZlAra>>oF+ z_!nUoxvp>e+NzXLQc9>Hib|ql?WVY-vXajidhyL6lTU7WxYrkZqCa~+dp>(Udp>(U zdpsmu!7^wS^*3X!>&8K&EZZF}z3tB!qb7yN-pEFV(4wt77sLyKr_vo!ydW0E3t~~cG!!DOwp#!Qk={K6 zgYX4RH$T4I-HX5=ZpGFfG4B>?)(_J7m->kk&Tjwu*Q4SGufkgrCA2K~9HB#%mgdRM zDMA&lEZV!8q|gdjzaVg|6Gd6Q$4RHrC3F_LBwK2@nm=oSYkK?Y_jfz^C-VTC?B7h0 zN3A|yEe837`kSjU0D@8IIrI?pi3K{le>Lb+nW5Q!{h{UuAAc`^xA@Anu`X?;Ob#ds ziQL6gK(Q6j&;x8G3hh<-unJrloj_FBr@VW$tY32PP{N%*_5%-eql3HwE}yvYKhUvS zf8-xI7|g3LK={}-=b@$Xe6;NK$!+jvUcKiZC@QU>pyYQiB5JbxR0=Ln+Jx3Cr(aW^ zy(AwXM3L>K9f-ewHg)~UEw_9z>;4PSdHbC9)sS(?$KMJ~LrQ`x-+SYy`On3AfALWq zu1|d7%$jXu-#PN``A7k%Vad_2dY`#>?0pZRzklZ?$3Kvm{_glo-)M&G^Y>K`y8hW4 z9zAvmO35B};Uuoc{MPHyYtj0R@wMMfJO7zi)#(VDmZV;`b#w< zZ$5q2MX{SOec~q@j;z1$kADwXh9cZEB<9$m_uU`-Y!O<&yWcN^AO3z&#i}S;U-hO{ z`s&EQ%+0qVIP)zRzjWH-h2OsS(@NC7-`#8E>yfwq*81SxX#K~A@4jcEEl)`_TL0?& zNaDsp?`*p3E;MYOHmYOcsKJlc(O4Mzj@KWVv+}#>kEdg%IhWZx;fH1CQirDB)$#T_ zml>}3>WI&}G3{dMGC3AVicsPtJ@pg_$*~B2ms@U9V1zVxK0=z)ld!qSN!YBB-tKfF zeo(CFVlX_xe(vE-_kQ&ED|8-MC#sCu6L6uy|Ka_fVtCAh5D9Y;F$SqT(RgaSzdo~H0V9%;4+ z0==Z5!-TCltL7Y-P!k*vEj|_{5-DqIQl0~7-(wKqP%VUJyQld%6YmEWqo1?E9$2!d z-zoMdUJQmG{AG4`kxHdf^iwpTspLB1ArRv&CF56a5bSr3yz7D52Di@JGE&VxSWyJ^ zef(mmJ((2aAu*j`bkcCttn$^lVUO}>*Bf!ByrOCtEYP;9YNV*>kwa{rZZ0fpgNAa}x$A^z zOJhQe6UPhTAyYnIfRFehzWPYN`TZgjR`=^a;7{vXVY_E@+g?-r*XHLeIn~PhgS?s) zMR$}8v^Ka&inro3K-3CCP0|#sdhI|5fn*g(vE$>6 zXe+>IiE~wU7X)HPZkl-Q&ja7@+jGheE%qbUzA2A&Tw%z~{}fwrT_b=lDMoc5UR2gD zM!H2%RDh}B-JrxK;CDL%e2tF}H1eFgA;2eDJYsu+Fd;yoQ&~ynpS_nKv|z#%!>IpJ zyQIRS#i=laWde@NUwD@#t_F1GteXTVk{zMZuTL|g1}fzYO*6B z!*XXxCxMWGMj()uiI_rkbyaf>maBmB7rJ=rMvmeGy?0#f9k|f2>pA{5`#nqAzj}X^ zJAazOpebK%BObomg(wC`(PjZbm&FEgt_p5UkyH_)*)U;7+WlIxJbrL& zTYUNEvhLadlKqL>7QN8;ArUpzQg|R8E~8gSB&2vN_5{FHW7r>6=@;Q+h9Lf`7}^gt z7uwwjVX*rNNBuUuRw?UAse>J(2tHOleRS= z*d5HSlEO#jR!~>WD{WGX%F79@fl|Q!0jA0gO9Hbt9N;PI>FU0Sec0NHr%sBj)X4`F zs(sD0%^a( zw-C2CY?%AXgAd)L@#VWJl|W;YuX?)A2493vmQjVJ)$2kM+-_o@K|c$qjDxLdvx8+> z8#oA+V(!M`iiG{N_HW+(U~K$Pi&j8AKc|pT+mm9c0gEz2(tcvwf|pmo?i z0l#g!%roRNyd_`oyz@+A*60`MPHr%QGlLPVGMDD}p%K4N73BAM`xkCR)uQo3$q=*= z=i3i96~4cpD|44e9g@5JaajHkTvou!?yotYVjpk+`;jw_rt^C@u1|xVGa%0v<5=Yw zrVcV&k+Gwcpsn3*e`d$>7vJ;0S<0+v0@gM9+b&nFOIES8Yv+>ZVDP7_z@eNf#KS@| zO!h)fJD_}Er*Re@&JvX#pSLLi5`4fg=!xl*-JR2CyFJ{I8r*079F1Yvb?IBPlmvD- zhz4>Uikem?!|rpcMM*dB+=45295En*BOPHOp~^{%q6%ue!lwG)ce?G!@!tNW+PTGB z3v=wx^#7Lb_c949kIgGqHv2`GxoUNZEwFfqmK08C5d$(PJcLMq&bihKQ>}rq3h_d0 zdSp%e8LwY8WbB@NhtBLY&u$pIdDD4sCh|v=`l5_pV&hrlv?I2}#C{*kV!Ojj&D{BtE0d#!f#c zo1pIp%~G$U{GhYUA4yNMkGObxVqfns8uPgm@jc{v1El|CH=-5s0!|Sr-s%+MavXS1 zz!1$D5b_yFXxb4})T9tn$!bZAPV21uCRaHI;5j)RYRnt6E@xccyaj)Z11UXMfv*$xxQ%P19UL3`s3g zsE}E1Qt*$!`o_#C1*0DMhBn*4nIPdxPGS#sjxLPwuYY-2?%AxsIrja&YMZs-iZ^uv zg2muOVFS$xkAiN1B`n!Oh>WZXW?cYAx4U(D8$0t$KH~C~m^*gY&!bx#LJ8Mj~$8qhGmJ-_E87K6Re_lRm zS8|nQhK2TV2Y+_zKX|Fz-PLTv-IbE!l8TuNz|Y<5!}@U3^X;yahei(C>C}0=lnE7M zk?ltK9@?t4A^6lOW?R)Qc`f&d|Qqc8*R`}W6 z?28KVOca8$waK99G@b$w*SHF!MDT5+J=p;pMp-uQvvm+jsQiR4u1e?HR^Udk6fX(i z!1}V>^-@3Ub*!=b@OI+G67>0K%~GSiYM4>t-*=U`UHf}aks(&;tXJtgr@=b+n`zLO z*sp(L!o}z8XVmF?#;7VAJ%L8xBDJB%58q}p8lZuw5pg2`*Aehb0O}4l5;=48_cb8&zWZabm)R%1)-iFyq%nF= zXr|RdnI)yU))A;<{l1z?myau6mABk*g?;QwasTHouhH{-=*qNy04DMU<27XgPXmw1 zO^VQpLk-5vj9nSx?Au zQIjs!Mb@oLQ5zG4S0QV{zhK;$f8KR{dD-Cqk_W6moG-R-x=_6C&uY1oQu zrrYBe6Pg-@>re)W7 zb#ZYTz6$uHNE5*nkRqFfr^E{3*%tAB#w~YUUAMCzfwYksaK?=YF25T0r?=0{z05UD z!*aH3f7h;OhK;56MgMtv^TK9(KInl{DKpQ<#W}n{oa8hwrU@H&Sp9`%tt6Yy#(edu zZy(>jwmU>YOYIGBjkjFfd{WVk)$5!*Lr`L9bcZ!2I^+eEMZ2FFAWBp=^@8EILElZP z|3A=1|8D;wc-xeTkEL`b8RBC=`4-^4iwI&s8G&K~z(BwP9V6#->cqK>{4_t}Bb~;X zk!xS&tmT|e6uCxmZD0}8rNqE)vhO#k>GjhuyHU>`?yADTgcy6%1z5fumW7_8@Xal< zI{f21w@W7|eY@|m+-g7h<&j6-IE9GK_v;e9MndS*xW8x@?5xm^WwKkc0l`LmzIs2cpf23x--vsNgFPphfqd@1+C%QgEih7*d1`}1}R3_YP>a=YbCpY zF1s>g*synQJ#y7!1N!RV#=8nOXn&un0p}18l`?tv|F_liBf$zR{{G0b-n(!531r`Q zcka7job!PR%VwX@uQ;H3}F?f1p8dhdiVyFm`fG=Re_DNstp9R@j? z8ae5aLqgP%6opdE?z`+i*aKIuj}h?M;d=EjR3+?(oGK@A4NUITkLXD)J~2rGCeT4* z+c(_odu!prLk}j;5&wZt-$e?T*RJXOJc-;+Y7%)@KYdEZ-;d;aa0?OX6w+-1LayF~Sxby%5B7wMve z*9!ZGS4a@PqUJhW2ThU51@@oZz+XMYNoDQeQ^fYLjQUpkh`d;!6~_Wi=|2jcUl8sC zk#nU(p(?qUkW{_xsyNr3p@fE%(Rs63UFWk|9jv+rN5gMGHN~rqAx=Mb%R4tb@%>Qk z%RKAqTRMH6M-YjIF7}&<_tTSf(Ec5Lhvsg3!k!#?*O2`>@uaIHrG{&&_7&fg%MAC} zPvO>GV_v>O$93(>2uT;+WW5L@+=CNUNTb_{Az~swaH2{~kX-x2#5gT|hDA0tK#p$%gv=P5K5W9Ay1SyJje~>4U&afkhh8S~+3GC`*nO3uo zT66IgmKB2<^=3}IT)T^zt}Dt0bQ%dh!hc}S`p^o5ubO%MKzQ8t^KX=)l?dWq;JW@Oi)L;yTNVyv`S1L9b)* zOPvSkzgxav&N?w+^^SV?yxi-!IPh$@y1@hX^$)Ll?$n0AYk*6|Axz_n>O|@OY?^ws zDUTSDvSjTKWld;fiyRF@I6Vho@jzA)enDa8JVZPsLo|h=Y-F5m>Z|W=R)>;M@{jK% zcd0pT4c-Hn(%a}f1FlEIzw+__pU!B7;X!+H#_9L(_?*=Z`O}!AyjF~pN;F`07^$QP zB>hCE981WG$h8OkVk=Nc3yBJ3|Be)GI6Y{${_^$jTa_0yqg*G5S1s)jGP4U~(QSY@ z0)epec$+v2?}=DoHE8#UiHHOt{06e?t}Mi?1tDf#1r;&(!H?y)LAlG>6}i7J(Jb?y z-t|8YoZBA0yl9Jrgn&>o2Wc(o(Y0pp&#Tye!k~)0IzKpwO%rCy9b*%GzG#6zA@dk)C0$)l|{wg;-Y=5TS{9a%HX?0q{ zY*?N|8*ykp-X6oHsQHCTV9EPAj!m%?C1&=_EmfL5xZ~=tFC5x?ck^W%G}RFg+n-)G z>YO#Oondc{{lrBFK6%DbQ*`4! zRWq#?O}S2`q_A@#X0TZdu~F68CJGSIZDgAR`EKF{offyozC7~d%lj=qDnC+9M!R$s z1}CZ%$Tc^E)+a*G#VgEZQ$hC|fov^XPua2x1y zKmW9CulZXaG3;)@!sGUxSNFfTE`&=9ZQ)8}G6{l(P5TlMq^G-?Dw-+P(Wefwx?clRr0Q zitmFkFT;Z&nGk2V(-i4YS4L7hK*g~HvgnFYh(_IeoUva96Iga;pte%`(poS9!dfAB`*j`%KXXKb)Pe9&3^ z(1|WRN3IHh5V(+>5W~0{5(@%LC{UU;UF4LL#MlzT-W%=XrwmxI<)-Vp>Gx!dAJG)9 zKMJRjE-=$wsO6hFZ}}!%XlvplAb4QoSrg#0V7WmdR&o-S-LeqhMo}S*1K?ZYZkQFT$~h%W8&#$Qmhf%M-tE9M+$>Jbk`E2Edvt(ehlO@N(_`Xen9HNV9aUA!j-JKtsXppFD^j zzwvgxhrjj7d7mu)gD*KA>6BwJAsz-*vpV5O+9{}FD|{YdARUEgjnV>sui6)kUHC}q zVlrw?Ev0o}EqE9d!Ym*}M_bV}ka?J3A1O#`m{Ov0ZGpUCR; zaSj-r=2*V%Yvwp%$Lem^PrYhSegD>~##BUaqRrE*&y*o+txR8j86ZUy!!HO~UO`NedLHf-p2Jn+XLBDI@qB4_ zJ{^zeEEddJ0g9hCw`2aN@9$MU>@VvqziSWw^pDL0uA8WvE7It_Q#6R-l0tkowq(g| z4?Z;DoPK?K{LxZM9RXJJ~%MI9Wyx> z8yVmC`DZ|F@t;KzyxG2Nqx#J&FHO?GqcS+%fE4fWsmW~RnVgXl0OxnQPk*F4)f1cT zgCc+I^KtXk{Nx0#0D~gcjX~%{ByklOMWaYj7;%pH^Jz%x&a-Wkca9v;{hHGE?bn|b z`eNAcrxk5h6qvQ$PH*lcZ4SYt2832RA%lu$s5OC5S*QaX3AsCvz<>#UFCnM-p?y1- z;IH|H?vBj?D7rf1(JR{Si23sJyM(n8pBSmD08vfa4Cj|Zzq5s+Vo-_GmOciUzxWse zVAohPvCeFn7;uPLmIX_IH)YfA@#ZJ3mx2D+{hEo7?7oRd9Qe-fj~2gW{RR!YjvWpnKq(f5E1*aRTKJ**`H`(u8m9;e&+ z%w97&e#rUH{v&@9DV_aA_1n9}4Ls09{7yq5C`ja5wZJQ`*ppNGo>Tgj~(o z&6ngpg4u?`>yO~$X6w3KU)Xp4{^1+5j%dyYMx#e&Q-pXpD9@FWl-VUF#CRA4ao}hJ z6W{Aq>^Znjh7J0VqBPlsoqg`6*W?2}>a)8r%wO1lc7A<(+tMTQ9i74~ z&!$#UZD@~yjhv_|`JySC&KM2b9re}VvcgYrn|;XBvozEbfE8d^tB$d4nUJ72x^rZuG_J8^}@kD zUls6;eVlpx@2ActHG5hr2-*Y?ptuYGu^x+I)NXRi0WgFaOwbMo;q>$cBde32pSO23 zP)3TWZriH`P8N-Co(`95$DsAa)oA^${n7f*BXGd~5HB3Q=H4yB?Q=Jx&{owFSI+R> z>!qXN`q?;qd|6pQ!uvHt3tHN7ul??IL=S%FODKu5058kg%AEa%)SxpSvlzMUFFlDY zv`1b>%a*J3OwwQM4_>sT>?irjZsYl27$FZ>iwFv#@RpJ8UWYcNJ2dK|w$38bCK!>n zp@_5#M5Nz4_Jn1-3<4}S?6CiOzp5|mM)V+;BD?cM5GrgkIvi<_uSK>Xigz|I zB{a)p1OgyFSry{|!se6{lBhJcAS^W;F0hF&Y$gF&{T9t4hSc$N=ESDm{L@K9NTF-$ zNwcs=OVnN_!CA1imRv{U53lsSH5`4*^G-dG)!IwqAGxJ(y5N{`yJo zO)Re1y#`5{VW)lL>7UHs;tuLW;3zs!?Qk@UNvTB=lN9A_6GO9W1b|6!PxCuW7QQ~@ zFJK&_ZKO2cm$_?@0)W|*jg9v%JY^U1KV^pB?3Its9=>MWvZ9BfjFAy3tf^f< z(~#kZ#wD&XF$U026bzQ;dO1(B}daAE5b5>;Lv^^N8~Y z4*Zi_L^<>F*%wbOJFdO>6hfZVTL5J4V4f{q39SjK8}s%=DFmqX1)5JoN%6)CLoepU zzuo)9-Pb)+N;9?=SGRz}8E${+MGJp=8}7x7e({?jiP`ftVYjYx^>_{;lcvs_OP744 zCs$Ka1i%ykZAPvDidAw^Sw$*er2-CmF}*IIBrX4DoE{?5Jkx4nJvCmZLy1At5vZTa z$x`4geVCn}p7qEJ$A$6}h}hM)z{xZaa1($WqAJeb3g8xidk%!!fE+7oMX0f)Eo12P zSHgWfVoHpHH+kmSC-UWGCAw;Tm=VW4f6!hZe5yfVWXNneS6)aR*8GNYBw-qw6p^q| zgOmvXyW;{0Xan;>6qlfR?a#A-EDSsl2h&|*i=w|y`|q@7jw~xH8-|&gp-7F1dOT%S>-gsA{C*91; z^kWu{J@4Z3d;eDS@J_}DUs47R8ff@ZNK##5i=sEWn+xoV$M-@ss3gwNDHE!m(oC6Q z0OPCpy5*QUkH%NZL|ZaWAZ1b7n&`YA%qh5)cJBuia4iJY;#2P7B;#R`|NKACeWFY$$v^rn?g#5G~7HHy8@v?@5~bI8k%`Cu;Uztn(c7_BV8~-Jogjvozb)F81dP zh1+XaWacN8xIg)vpjjWH*Zv19gnB>eDe8Iy7dv+?ZE%1PApr6fnKxj{%)Q3d`3^M9uL2Ur3S7YlhR+~K)3axw;mu~AM9 zh*QAiWyVl#;8dF!2iYrLYH`n0l9aVgPxLz8ns~24$u9z2qjG&-+PXY0};NElS za_@a`J9-G_vfTBxXXmbW)qI9Aecb!LG^3q_mh;LRs|eQ*z<4&PQdFTq&;oBoPlZcF z1rk%w#dxA^HoPsHEQmeoNW+3ZL)NOyuovUIckl%rBNyw2&%4NTn=@J3Dqo#j2fWz5 zOg1plL4KbX;$a@w_x5=#@Y=V#pjuOI*qgcRTN~rDU!oIrCzn{29sTK?=z^v^QVP66 zRN|5j4t3(PfuR!zOXVc+-;j(CN5d+Oe_eIrwuL*YhVE)~eQ##&6ECXo3@5~AU2_=X z5FT#BWC>d=c$4WolE%+7;T=hMD@i;J6NRwOelaFM`Z9z;01~3L@Q0*Rj)#$RB@qX( zz-Z%#mH2rT8gOeKH9p!qX9%OT-H&tdXlrgmb)bey>9te`QHRRTh#^^Hl(PqGHvBZ4 zPC$ts27WU;EwOIQ@$L`GdcKfiU&i8;wdu%w<(6;l<&)6rsF|%>1Sp}RM z?rCr+t8%$vaWzP6qKu%~<%Sg1X_kAoGy($~YD|ti2opkUW3aXh3XEl^*J}CGTaLc~ z$mHxUOy+Rr)xPh)`Nc>*`5>Cg!bduk7_J(=oOg{90DJ?}u zq`l6`Ft$q|GCEAK#+;of8@NcWBd!W_T~ZQ=Af`k%RX+5{fGZ0`+VxB^f|+~XO)peQ zn|0cj))*!ueZAOGK(3B78(a3gk|ha|9RSRqG%N)tje=Cyj>58cw1!P1OT!wl@Ug7G zv5lOYf8cNTPu#p4fkq>ke(u{xeLc+IJ!md`xv*E};bBd41SMA0j3K+FWcv=q$_4D|NR3D=%+ciSovvAOb+6XiG?r0>xKf zQjWD_@#4YMyV+FH;8|FUba(esknhz^3eOQF#SmKlv;mzR(jZQ#$f3>kQP1-bBd z@tw*IDC9Y-Avg3%SdNG4Eb|}47-rOtlQy5&%IXbxHdn9}QKp$;-nu}(8fg(>Tt`$^ zVZ2{Vvcb~p%EvN0Z|*Z}lqcGq&e8<~MHd}MYfISbz~ORS6{3DIjG8?~smYFj4A-;L zRE7B_fM0LosY);lprICYBvavhFxi__FG#^8gvX#1jj2H9#Sb@Yk~9!(2oE5lGaigP z^zh&-{!!DHaj$Aby=vX|e>}GTiX}rUO7^G^W_HG>PdjUxM=#+?TeA2b!OiWu9HL$l z@L*>24>Mn0yZO>?gfx*6r$BfuNL%F;jqOg(qN$I%;ZxuATA5A<8OQAV)|G!e{_)KO zrBGg!={!S5e%&$HLUeSlGH{DNm3)J=>j^` zy6V&W>f#a(Wg4z|^t)&J2g`EfD5Zws3QQnmmIK_98S2Y6As&v3Np}swN#zI$C@QK5 zMG+ZxRzp3kuqA&4L7FHao92uqI57$jhKEH!gx<)*%33T&Z%Z?1Vkl4{)DymPa1LDS zWaTLfj@KdJKA7@22MoMaY9}hl;6zpOUc%$a=5TBJ>$zG$u4(15^TNvs9Aq51Y2vj# zD|LT3GxpLe-f|o=vXf{V=%G?5usb;in*Ryy)y)1>Z<6Qjr-aye>Y zvyo0kFG+u(Jr!c6Jkge!!=Q%71K<>08`_I%YD6zHz$u`7X4B)sbiR-EH7?J z?DzWa3>&yNjRE7g2FvBUj5ea&>(F`%afS zl6+Zr6N~xWg_D^HH%(icdjAlTYwOZ3sg_hg;XD~B!cIo79h3j3tAz@aL1o1SP*-bG zL^e_!CzOY_Cg4DY8d{SAt6m@j0(hi8$n;B+S#Tv2Q~`SF8o?}hpjSwMfhdzS2I++C zGsC!qhtDNE^kedF@dcpS0jAnJs> zPphI^;Fg;9cwCIaX%81)q!|OCzm`2)vcu+`Uir=qpAH%PUw<+b<2m

      8!h(^(Ilu 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%0AO(MYsWk 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 z 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 `+%dg$`}+g;y^i@i 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⁢K67S1af6ii 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

      yu0dv@|z7yA!1LH1I##SD3(=6`^`DYW| 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�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

      +}S)hp}C&Rl&)zdkH0`Zezk>g%^ypfpO%+a- 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�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�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®~QgGY&rO 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

      0eng`_@uXFwI@yVSgt=Xp}aItmm6&XGrO?PvG z9#J3abi*9KjU>H5zYI1y2w%A>mIw6ogZg4L;n zGr>wtkX99pFptPun9L_Mk}3Q5NR z^L&ZYCWof9DNt0})bscbur)vKx(E)(w@*Ok(spZ4gZn?+;}N($WzA{U^2X{Da{P_@ z_deqfDV|@dk#=E>a3DoF1Q!%l5&#TyAdM>LBl`K#C*-AP4g2%^+pRN;9Q8>JrzA=Y zktsBdd0-8qmVzD`o* zP0_Lfdtlpw08FS;0gMM|U@>+!Q6#N0-PEIf=!6Cueb7!*P3i{;x0doAQUgIcVHmja z(7`Yj=__b69lIFcjV;~!Ps;hb){<{fN1DV|$(DCe9W>ANI$YBf9VP|RX zS2&IJK>+K*1h6hhF6E)gYD}F*Zh>CYbMhzdw_vvL|JkBrTiLlzr`9IL>PY_M|M!$9h0>^~HCU=(v2|_G7wL_oAPLtKRnMfdpX~c3mv~rDz9o&l}_KaA_832a` zIbJyOh9k#>S7l&IB!mXG2Nunusypz#BwEMa>TRhDwB{F;<-8fXMMy&ugaphYn!;{o z4gR|Po^2fS-22Cs9gkM{?m?h6%OpWnF4ZGSY^rn!+7n^XNp4YMq^wBhERi2WTc#=h zhJ4xeFUa?SM*dH^DE|MT}tiZMR)YJf}AtZH-MNY5z=cF&L zn*Q_X?f=W?);Hv(r|)v-vwI$55(!rC*KQYCDUfExrnKaPjPS~2YNk(R{w&^>=k0e} z*PQ8QgfezFpkOSX(!pF_O1jcDwDd2%EuTN_vh#ayyUF0_Y(3d=yWMaajP9ichYgC4 zD~M3&RUG$ z&58(H=TE0HX&&f9mk1hDw4H$YS{9$Jd_OFJ!~4V`+lv#WoZU;&oDVFr|bv!gbAlsas>ns`=-XF2a{WSRu+z zW89dN1|T$O32@y|(B=8V7VdQW&8|VqUu~4idd zayZP3T@AQ>;6m=i)Q%-qV)b;i4uh4q%5udoTfBVE zWGUhE^CD(biyN>WL4cd0An#`4s76dpNEXH2aXPLR0<2=Ft*a&+(h{g3dHSBbYs)TQ zzV*Tk6ZeU5!;~GcDlrxV4H~dBz_DN==UFx`h8cn7MG!Y?{O6n<1~VmHWqDs-{;xY) z#dRC;o_vvgW)CwUWyV8FEyC$fWgxp7odWNX3v6%Z*;bL&?sC>}JR|fpXVjez8j;UL z!Kjsbf_lPI8|`5V=PLDn04r*D;Yb%4#GUqP4Mh$3oj9l*64-bS#Qb{D+znbW=uc%3 z<`jhETi9VyY}mc2PTvCk-Y!?b-r7M z-rsi-2jSHNlu9G{2~VA0d9S05au)Vux3WwsDcH?`2&+;cfT}rA;!;(bLEi*{m(^vb z-#?P4o%!uqU({bdkQzyMAP6H17>yhVs&gKi^oT$-(FRCdqe<4RSklw?(u_Q7)2hkx zjpxthRm?9B-DjOzTw{J8v7nfsQeo(Fjj98>+X1i{~uB`{otJ>PdB^HCedX?o1 z`JR0U?~_f}mF@DVW`BUquzVcUJ{rw_l@N$

      #c*F8%3DPf--fQ}~t^R+JF!b2TX1 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

      ;e>Snt8CW!1P!BS8S3f*)%u6c&ap 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 z%0A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 G)F^(z@DepND1YY6CPjp-bg> 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%0DF|!%_hD*K^A@u65N6IzGu>p{YQ{ zNO67Tw`mYslW#oO=xIhNzr7qe=hkO0FS3++SMUjGnxL|Rc5ij4KAVj2qJ-E(nEKjD ziB9C57&e*!7=}Z>`((=2nOvh4ah>bsU!U38T-x*O&8M}C*%T-=0W<3~Bx&V^RQtiL zRJ#KD!IKg|^9nuez*FJ(Yy5js~n7iyT6yRkX2SXzMoun&j@8RfL~%90ACBBJlw#hvF0xT ztx^fl`%G)UWv^Hlt)95eh(7mHHk{;1Ef{2|-=#^)QBE|Yf%z-1PooY6Xd(etHvhl! zN8UcltJkhOWw`XA&I#@2$ZN8QBhrfo(xDUS!9k*{rx~Gp`h>p+X z(eY#NqVHY%;(>6#3&x3$Isw`HKjN}5vLD14y@7p|>pj0c-ErGWeC8^%3T34$Y1OQg z`Jz@EC~8F<04O$ykO!e`G@94uLr$&Q3&vW0WmmmI5vq_(Tbj~h8z;u{m#{L|Jg+5o z=j-=eIe?&zSJrDEcg+^<@sZ2Xe#Zl~`yX^ja&o@A+n)0}|9rhFg3(W9dFRU%`)WY| zw_`(>+}^hpT2R21_?T1+{Aku@ojxJ28=t>YW%|RUxXykg=gk#5_uj0{j?LDCekusQ zn;h=147_djuJg`(Lg(ok5AZtAxH^wpN+NFayiW)uSga804HyYP@Q+Xos;P^Lp|vjf zV{qlMxTPeZH1NZ&lL)n^WNs!_V4L5o)je%uQF&Rh-zwpc4tNwk1IP463cmEnzUj0Suu)kNGMoL88{0zLm^;^{b zE9dRjE5A=g(P%M`L6}&Q5N(`V+C(P%m+AtsG*M5ZS{ptRtf2X&$YsT!_E5FlS zZu<1FziVC3|KD4Ut`wO}_CvVum&AYAW5|zfh*rIAhign%Jd*xk$_ms$SN(RvP0kxn z5!3m#9vMIieoaQBGzyEIV>iNQbn@=X>l-Mo6Tavl#3K(rI;^kOI&Z+R7&dtW*q( ze6uMT0(wf!!!#Qi(|*_RcSb*GCY5zVb^HDXds7#m4>k024pe5+FaG+$$+UrE;HvXr zhnuQw=4DSqH4%i;74DSHnQ)-;{*R}f{_kt%myKT3N0HIKRGEX7PT+)QsF4}Z$t}DX z05$z`v<1*NHu6!ua9goh+gJZOY+3Jc;vS^j{M*f}b(*0>VVC**Jl{Oc`m~fb@6y zr_l~p8V@#4-(@h-@Oybs?{yE_n&Cy{-+_KB2~iAyE!8V@h*Zj^!poviA55Q-6h%SV z&%gNT_p)oQsIZ&2FB#jn?c4Tk`?h`CzHQ&OZ~vsNV3QuIeEQpU(L*1*9iLe^pc}~w zMAtH|ju)GGfIiA|GdRR7;3OxRibAR(Xvia9+i9}G<#r>cKa{M|Cm^1fb)mGwk|q7V z>81Ahw43p!jRzrjbn?Q|pMQ>n-goYS{cQXKKI>sL==PgRdn1iyiffEvkOBYL9^PK< zSN-vGoxZYPum0{GL$&+f+OF=U?CXKJJ)M6uadYyX+k5z&ub4|eXSv%cxIgUL%g?i| zw`paz*TFr!p98u%548@|?#taAcz-DVUUp#V@w&C+{hzk=(cO2phtIKSz(4D`AH(x9 z8JG8L<^7M+35c8WcEu6O&7(JdcKdF};xk3kA{wqk7%+x9jV)2Nuj6KPv7 zTXxIHQOlQ&&WM>R(l}OeX(Vn;^03`~h0TC}In6GOL>q;nTR#UMkFwA*xzq4|)s`~0k z-QHwytbasGS-G68Bn2iJ_YH7D{-|5^jK5TcEZs}Q&l3D zinavAbcBlt2_T>iwSFiE}~#Kv&pJde}CoL z7aLt=OQ)5#SL%ELp3k(T6MO+qYeWUqN^rGWO)rwDj>nmJ9MNOOX(16RGn*=vbx%_BhW}0!87!-LD_?7~!8(Rbc}iNEQ~jv!J*g*2sYWhh*9gP~zz%%fX_2 z4M>-9lJDe6@SScc8BWjOQ%nGXd|~ao3oHfi-1+tMTT}a9VX`Z&FWXywoK6%Q*A^ZC zmnYa@Ee~M!YX^zVBHPZ&04znzEg^bax- z)SbbuT=l{A8D;m&dSD{Jx)!_F2Prp-?SOb^RzMuph%s@@vF9wM#}hB8@i@1+8c&7E zp?tIH(-AveFs-=jW47)oPP?}~h14++V*>Ky^7T5!zF4p`aBvzdC;~Jx^93xL{I31KH3-VXw76n?1-j-q5>cko0$=-(;}gOMADMv2&&iE0wN!SOb0QY7y=eN zfUIH9{(Jrp2VFIBc&>QPmAxnL_vn~M2}j|b-E_d~JRqO}gL~T44G@SdOdM7UUJ`JJJvHtsKf{Kn z1{g03*igf)$L;rHtd2HH5-cKy)&50hN?_cZYX|Q%=M`?bff9Ee(le6zM0<5Q5#wXQT0$pY3iGCW z^)6pB$;W`yGsr7I;ah(wI7#B2pdbu~D6A|+)$vJ09T{%N1+r?6fKVkHNz6DZ_S%ih zAI%r|o^?NJp8NkCs5yQFACvvLzxD0HrgAHDt~+FZ*H5JKx=0+&kebn#k{dE?DD3vs z*0}>3K8ARouP;CHnQ>zW{oMu8+)8lgt53ga6bU%782ax>-U|09g<)|G$GhbW7$H zbyDM`U9|h(j?(VG*j>9{fRjEM!{=d?E0&qrCqJ&nXRgvckJIl*ENMGl$3f+Mj6UxjVgZ8a^qy007p?$Uu8Q_A9_E+tO z&bxBjA+hu*L1?gvQYmXDab3_$|XSHF&Xv8DGE)2>hrK( z9#HR8LJUnlLQPqLe2+WU%B7-wIL#y{Ge4hcePO6+_}^sAm`xLuCi|ZI&7OW#@uOs8Vs|MVAui{+_|?|PaWDFT7Pvf^DDJXdUy*sS(mA?Ywvd-L4Gc36DOu>H3i>t%N4I^~$j z-;a28%37nKLMQo#JkxX`Dh+w)^lz$o*7L_{Y!~UE3bxLn3O1Hhy~2Ni!dH-8v`a0b zkeb1AsThl43;iDqzyAH!a5kIj75lpD9~i$f*Hf@Yp@cv!xf|&&+m||cr3T52fattYXU{0qT56uYJ)Ic>M`wMgYx8=H_E0hWagc%f7Hs5SHqy| zC;&obM22fqvF18p0ux?Yn1A7`Q-e~TdwBJ0@2%f;fWC%cmp9NVJreKF(-mgb!@hOX5eG1$<=z0#E z<6@Enr_G!Q*oyVlB-ee10kGeh%bb8FDRck4Y1eyipbTrQk26q#$r_8qZ}7O`e?&qi{il9+qa{VSfe8MG^90kDH0-yGs)sN_K^y|8<)rcnf` z*0at&k*zS7VH0Wjn@?7%UcP_x_^U{Edk3>|INwT_2rIO-pRY4%vIV^@IC2tBm^S?aOXocC4W(A59Q-fO^US*-ONHx-;BvZ^)p)m#dkV z@xRNaUSXBvUc0(s|A%H3PpyPTSAz*ec9hfG5LN}IFzS!yMNWc=c|IkBS1&tQ$mK^- zbOcOTtOQMEUlf3bqAi@r%IHUii zyZ;Pv`H+EmX`Tbun|pLSoO0aBSA6>D;FNBDF%HeaSrfd;ao)-9U^V(Lo>&cdOKss6 zk>_F|u8D^M1E{wGf2WR%ifN{G{p)o%_Kcf5qL_XhHht0VCmIcku0`QpeorXmE(c>- znc|WqJm9lW8fx&WdF6z=cl*|59*@ry!O3U}Lm739F^(oE2o;?XPJ7+s0caS{>l)9* zd-QJpi<8$48Tk*L(|9Ga*L#F$i?Jf~vr!7WP8XEnF)f;*vbj6v7}Fh@}Zx*~>S6f9%-bKI=u&grolv~a5CA56nQ$Dy7YUcMteg;_x+P?ul$f9a{xTTXXJop% zrxs;FYFE>Du_FxP&Q?p%?ehT?SQ=E@H$xcQ0@^2unJjq>p;gmk-6t7KX7JXO{z!3_i2tA1&2sm~ifZ&0v zP}}h=JGWZR6E=IyD7Zfi*9a3HUjfHHZvV9OBla;Rl#4Gr|JU{(rxuS9)W!}xDN{5Q zsRhPBh?gmcoCcav)jU+*0%WhcxE{l_1`AGEm?aL^-Y0!_;Wg{+`C+uJr-6iWy0X^; znY9ag80pAE=0aAsM*$9NKERO&=&A!8uA%@3O{4|ziF#}ad}{cFhwXjVC4cO<&LF@+ zTbhJ~%!>suxj?X+lmL`r3m>$x5nx)v=R_Zo#{#Z9i(+Bub8T1<1K3*u;Imlj8GTGa zjXM=fZUo6+K-hakz}_&3wP|7R9-0AxAqN}sum^o~&Z-}GbPgwNHDoSIFO0zZK6roM zIoh;?nsc)cByvVaPfomKzYBKs-#rR{j~xGgj`nyZKCUn&mDnd+(q~!U>`8yB)!AF! zH}-oJgLLO(kZ#b3fN+qeK{;_D0tqV}z*~WDBoL}*K}ah!fo<7%{IT5ct9u-eO)47> z&z*VVYxnhV{JHA*WLj(wvZ~!WurXYyF}z#d7-rL{%AaRD z|7bXEPXo=>Nb@-0Wu!Q;Zb3)mNI+EC%%`B|kpY6TDrHq9nkbMPW`PWXuS-gJBOcf! zQ<$+q>)+I^lrz z8VekC+1*-|hi|*D{)7E8MGp+|L2MGxDZyUDCerB)5h`#1I0P77A(~C7x|2~K2+59S z82%M~M3(^8A%S`%iVf3j_wT$-37cR2z!obZVp*#Jvs8;*k|)k0ZE4}8APVWmK%4-6 ziv7hRT+r6bp3hVk2akWBX}h)TkO2y0fRyey#$U}O1(10t9V>7${%RN_z#~;9YDaYJ zsA3^ISaAU>v2akao=ft8wwIS-EsAQqSByCP-raxuqhI$!4ed(JM}hvo?nc5#dSz7F zI+>5SC5cZ)678hD!2p0BfNSR25BpO6dQb6mmh#o4n{QjOfuMo*)rVy5z*@=E&H}!F zOH(=#3)BE5)bR|^IZQ*K2e9}8H9iOj`l9{l`E=#Ryqd#;=g|HM9__!xBH>42)ZU($ z6XXkg{z+cD|KV-z@di99cfz9PQ!xg63f?#1{RcWMi~jf;orwFgChhU6B-&5Mdy)ww z_o3fj&@r_<&KtG+X-ewrouAt6-ZsPV9pUxOyQo$xoO6(qDx{h{Tq=f8dHK3$on(y4 zjR5D<@SD8o%6~JT%$YH)eNykxC!emop=_Qr-AOV{9}d!WC~ICgr#muJs95cp>iJK3 zMt#vw&uskK>cxMH2ukaZNX+KbbFSVdzkl$W&YyD;i}oU>@*2AT=)d&&yZiSpn5;ei z?MdW~o1PlAP49E*@1HuBK_C?-M{Nb*wyyvW>}^5 z+49y`(jR)eUyM?z(5YR>3ey>ig}LDElRiG$D0M)of$&8dHvYJkW*83*)%&1ypPhYV z_DOrMP$juvT&v{`eHI@-^($({+s+$O(zZQA$thK?_6r}!$K63kY6v?@qeZoqTK+gy zI%Y|C9tENExJkNm+$8;%;wH_e*~;U0$L6o4&gp3YNgFp$_9Q@*#NnYNP73unICQqM ze%*_wo%q@_W^Ll2Z1K=KJ_&$L81Uc~BrX{dnzNiXKxt*!Y$n5tY$Tlpbs$|vCn<~6 z!ijv0&B&s!s4xvgbtD0hS-`&vaW*~>MWnIwRq6spPYxca57~7ugP|yb=!`YXIH-6%MUr8@Yrg8VUq|Duo!Ik^zBdBAwzPkGPx7|2z@LvE$AG=YZN!Eer2S z*Bu%_cVJ)ytB&=>>q7w+62dT`=q^|bZfz=*!3NU=MZy0EYf<3su@^3X^2PNZ4H)_t zPw0gd?i|H*``n9{*=HHdHm(patEUf(mL5nu!2m)LK+nqLhZSf!#Q#=uf?*JyE8%ep z0v3{q`;0p)_~l{4$UXkh56!5x6oNaB*az{Nuipt}D0jOJ?LWR42Txi|nq&Pl&r$rp zKk)49`=4kuzm}|)()GlxteKkG#r_rDerlIf#W~7sVegGszSQ5WjdSYI#3lF)EcxhP zEFU(nh3|}FDOJgxfu`9y7Lv_GdA3DJ$!r!fTM6;kb00u)~1~5G1832T%>?p*APc4WEE= z+g(e7*wFTV-;yfg`9-OMN{F7VPK!yHWCc(* zw*=}T2oEY;4ZS`;bT69Hp$s2|yr7gFTt!Yp3}bZ5e;-jU-Pmu)U-VYhPp!=m&Q~_w zxbO9^XO`hJZ|XB;Za1Xt@}&e>z{T^`X|W*^#~fuOFOn9CqK!Ku$s!k(^BEI(rLDm1 zg{bEOo$KGI`5Rz`j03JP;dW;Hyk{4UKI_K8yP5uPY=t3rzVfsE{R{bxL`t-4K3f&7 zNu38BczG#04$+tZR5G86k@Ri8^uU_V6cLS5PVk+C(40cld$6A(yp)B_*DCY?5(J8| zZ5cqQf(jYnJ5H91ay(zT;&s$#th<46^w^!}}&otFHxx6~(tuPH@c zrh|M`$ndDx*;jCr5yc5S3qo7~Jj245O0iH&8(!du2&ot=Ben_xmSz~}ru*YA3cj=n zaE56NXrdgL8yEf(h-KPgV2z@HJD&mZKlq~-ma+*FDGOpN^Gap&-Mc3uUmG)}xNr*sHYKq-<4eWRTSd1EMeggf zNna`ov=f`lFS@u=x&P{C-3NTRxCa4tRHuYR+1Sc!k60q9tyVgPqoC{}?DZXLr?#uSGkn(Zm6z_p6=!Taj> zv6CRd^<_65U_5};!*EPX;~F{9pN@hN7z2h%xxSd5P*e3Yes7~49U@l@O@7JCu0HX= z!Monw|9_43Qb%6;Xd*8+Ds#?z>ac8EebHzv$2GMe$aE;frLYTXjq#E!rrVLN%LGCc zDCzp;j3YjL;LDo__1-wTNg4aeP*?qN(+wBj&dMGuoq|NFLa{$LS&&;o(CiBGa#l<= zwDMvi&BfeuwZJE0Ok5~;4Y)~}^ID&ae!AfnT|&ut4WLjXYgU4yET5*W!bA&6`nV85agVfal%nu8RunLNp~6UXbxeV(6T{k-5(BSWhs{Y2QWev0w-SNLLrjAO1IdY1@1UoppQ~JO9eBm;C2A_ zCz{|SiTGmJw^e;!NjxF!j4;G!C@#xnm`EVZE*!h~r&E4kJ!ET9@ynG*e|r1f^cUxJ zs~49d>jyX`SXU0UcZ$eZ!~{7y*wzlYYZ^K zI-frPSrbszCP~9G@i+qa>q7zp!?*@skjt&A?DN;pFe{Y7$>{GdENQ?ku&_H&9`q2x zEPh3R>PB!5FiO8MD-Om$Lq|@RsLq z?1y7tWut>J$IUoMPCQP{c!L7*DBYYcJDu%P7tyLS+B#IL-S|(@lm!0;)Ve`19;;wu z*(!ai8*;AMx=L-A85g`)+4Ze`_xx^suzW;uk-{B}wu>ByNG61&kkXcv(iFf_AZVQ= z1GEnUR0Q;SY^s`z$_=8Yg$J3&u6fLWfF6(kAYZr#DX1?Wh1Hvs)tiQwrbQUVMkSq~ zeueP(+u0(HVRV|d0jzdXn8hK`RFV^C;P4{;UJ2a3ni$UyFdW^52lg@DuM8gh=WO{@ zLWx|I{jz&~j6WTvD9|Wb8R=Xh)NKq%_)->7paJFJC1%zqXMTRv^qc!`ZD#3yWzV~> zThMe)PdOqrWxaVFLLWHWYw)73I3nGMBa+!_j>!9!;qwkV==OaMFMdV1G5DFV{39Ty zBYa7L)Q6}2zTuJ*QYPKK6|-rTay9*$?X8jIW{M%ePH&{yElEOiDxU_W0Qnr4ctDi9 zwfnf^HOj10&)qL96ssGCTT+ybW-)$)&SMZY;6pFfoh-(~%J3CWz1?RZNl|~OZ*E&& zK@vfTXiEZ+4K^~Ka6^#wG}HxxOelnkb+oS`y<)*0M^`>SaMyqMdOJ!-o?BQ?|E9hTT@zusDtPXKGw{Kxfy)Qlg_4OTpNLE5+kNN4&JkQ^&x{vsoY4M z`MMKJQ!c=H-yKgyt>wU}t{9%zo;R1i<;RqfgYJ55>^y7nAj1UCfNC2p5}?wp1{w^m zY9WRCrLzhDt9Y<2?AulUe_R>a{_UNgz4;$}W?PUz6d5i?Bo5u?aG(u293Ym&#;bG^ zeKCn?^?v(?f1g#!zW=K%q}lYOvVZ)Rb8Lr@6#e{itxQ~S1!{MIooS#iLa8pXTADaX z26hEI#c2oGaZh8oo(Y8Ls%py4inv9sb&X*Lm*f}tUGAPg_JL1Ey+3r=|7g}J4Ctqn ztIj;|%{wM9FkBJ4LY*b!rD0{s&J2NM9A;60k{JN}(@;_hVCk5dTvSGu0GuV5_=DkD zp4CIP;+fgRvK!YtmWA;Cpf6+nbkf`OhFVk{{RTpyBMJk*0>g(lw= zNu-=DoWzFsQ?oqKYDQIbpu^i*A?m4>sgz-{CHOho*8o*2prEkzoFmTr_04Zg{d%GA z571bWuPODpip%<)HM0jUU^2dSGyArXq3vs0r(AXOSA!pVO)8$~RP+v{pcA>Q?u5We z@NLqD91nDP91k=?ME|8659^fc@A;u&PVTtkF-PiF1J#K%Cqv;wrv$X=Wg#jBL_R7= zFgSv|*`|aXA|Dowr|8$En|z%zYC!I?4^BVRRBqgf6j7j{nUGF--Q&lFqAffyLA~zr z!5|Q}F)*}%rIeo#0uv$jK9iMN82nCcAviSkF`E6V1^6K6o^yr4QyevK_NvfRF?_7A zTA-XT$_Vj^L~4L?;b={5D&3Z<4tNq6KwGfpkbA2CoTBhSn3rTG{>!_Y&RW%rwG3v{ zn~GR*%4JOp_cAhQP>DHkAVTd)nTvSnVkhP!d_T1nMt|lVg{DUR`NJVAdtf&qcrU?f z=Q*m16`bH1S4d8a(7*4Yx`QXL?%)B@qEO9N5cs{T?E1{Owj1tw&Qxx|I&U%n2P*(L zBXoQXdQ>5ju7r^LY7wm%?Rl%9;EDmqE6ODjpwO9ZO8JUq5A%f#jRN1sixeehQw=E< zT{@vo$5Bq8JQ1qwM%ej1<+6rX?mBGIp+XP0_Zlu*jl2jcYPwGnf8@vKo}0?OZzc=S(`N0y>%03v`OZ}_Yp+*NF_=j@ zuYW3{_Qa5Af1I-CSvjnjl>-F;nIsf+TJy?@GoBso@5Rc(kCaU}E!ptxs;7$E*&vld zMllw(w)*{HgbJrXT@4KA$?X%fyx0!%Dv*kfg!zKm1n_)lOOl(34eNvqGy&a`uSw@& zz(R0{8VCQffQlowj!mLB2?_`cDU@I>80|9UWbun;)4*u~KeYctQ*YjF`LYo`wKYCc zR)t=@ud2J zvIn|;dKM9G%Z5jT8*X~!?eahdNjUqLZtE$U#j2MW+uN?s_**z(5Hu;Y!F4HsZcbX z;bZk_=u*4gsGgO!;94~FsW+YEgcMHl*z3H6n3h{W(hvMmNYC$*%amciOqiox1O z7_0&0qxzSD3Bd47R`}KURUL#IKtG;XbLYo}p7y=+?rG6cKd+r?)YB|pAK}#T(0Kg? z`A8CA1i?2ad4CiI{9_K#NM?Abd0dzW0&omc^8fCa9L^b+F!xm#zdBdiRsje<%wd`SYTa`u$RNWI~_2s;6u^k`F*~l*sZv zZ+$k&)KfMT!RAF64gwq}giFkwicQQySBLS(D|-(LQ<;EFI}I2G1H|)CI?NZW1;hf7 zQ5##rAvYUg8p4pztow+iKNS0CYp*|I_@(%`qim~$;lxC{52U35;hZWLtxHAInhRxK z1b$$&owlI(gl-DU=TGz>tQ>pbm#dGxW+TlRYhIA<82% zz5;hCicC{>6%{E886+c9hb6yN2Q#{FBAId@|8iA|{{B?b5h`?UofvC!f^h;$Yaxe( zJCO+T@GUia`6dbFMko>xMP`zPb%He?V3mBB1D9`tRsh39BA6G5Cf{*4H;c@O+KRLN zN6zg#aXSuo`}Vi?Dk^f{w5|McPfEsTy3pRh@x8xBb)(N?X#eO3XdL%%MBdxiThRFf z?njaV%Q3WSB{qD>aq&XiC->qz!z*8yv8!48wB`7(61JjAK84J4y2yA}(monmqavtw z(O)5&#V$;A)0FO6M!}KKC_puHkYOmng;%NK!t-o%F1$XuQ6Kzv>yJ;~-Gg*4Y=l4> zMieHcK%jL3vb+fei!UW3Tb$05vdqkg(0nV=fR4@^(7{6g6zp;1sZBpGd&nmp8-(f7 z0J3x)iYo|Cz+#%aVX=+DA)|5FKj++k@x+5&V@knUD=jPuj$kxvpvH%Btd{P?ZwBPn zxVBhj?j<7-p<%SY5VQn17?g-67Ju<{06RJqLTO10fP1p=R+`di^XXz; z$fP@U4*+x%5c!x8bANe^GsWh z5Z@^mdFR3{i*~-oC|}*JX|sezT5rvXHXeBM3`|k&Y_6UPxM+GW(Y|lPOEQ}lV}$hD=1nI7mJ0N_yzl40eub(@j1X!?T-#x`h&a2LE8D>`4)7O&{afJF zMj>*P#hF{P%ApQ5^qxU7GPgFcepvOEy^9SJ&f@AJ3@hL^Bkqc5KMe{i}THur>; zd$)Zv^Z?ur8@7@+sLfpZxXs+N@AvfYb+u*9Ti1hj%dL3*!*70-zr@G;cHMsph;CFf zIK^oXhLq{+h_7oAS(mX zDNy_X(pM1uy_uSnxc3O1Kn3D~o>H4%u32j4) zMvfs~#t`DKSnG?13twwPnBDZny0a!Pe{kr4UZ42)$TfNQY*gP1&3#BN$%H>3&xLSeMjo{Xdutbs5^S2wsv?vS^Szwdx%t5K)1f`AuPZDL}A zOwrK7!D)6a{4e+O@;8qj#^oU<>=VuWQ)6_T$SII^Ug% zesRdb^-AvOGmp4;xf!?Z-npa3e!1g=Kh+cm??WGVfCvMU(GYgKyB;y|Jty&C;YE_=PVs3EO<0{Zx1}vfQAUPTeTH9 z&|XAjFgNwF64K`RY+}cwn^nG*FB17;-|4mP5tH;tFzHbtDJ&6)GhJLHnMd8dC& z7;?YdoA;l%>a)!5odB{Ziy#H+8XBifne6ROhH(GfAFT`598zO72yvDa?y-f$XhQ~w z>=saq6uaQIbN#0YmQRewNk+6fQ5YdL>$*)S?F&V>XIbPUJ&WG*FSlXYCGIU%H)JzOfC5~9dD zHma1w-v?tbnjo&2T|mFY#y|l=bAqQVRU#LKML;0N*czw}cLS9?CilkDq<>&+XWdi5 z3_8>}^ZKwcUG9(eF&&Z{-kzRXy=jG!Bdy~wuS6h=hK!1doT`jUGN2IGC@oQf#LnWy zG*nqC3c4b`+C1}lNiy@0ll8|b2eyIyamt4Ni8;z)WCpO3pZnUn3%~WP?!T?Z+ab9> z>iJ{pte5FB$C~OY+Sfo+88IE@C8?Hg2gRKjZl|rcBK*4$(4FG>7-Fn0pgBsEUA5|9 zwQALyFv~#cc34!ke%evboUx#`|NpAcR*iJ**9p?`kX&%epy1}OS`92G(xQ~5(4t0V zYXF|s4AQQ^2N-$@jiZsPo_KPK2pI&yN0uoqdB@&8oSGvY^s7B%VknZ?!+h z-!OgYCwJc3-|-jqw&pHE&IfEy;r7b>cX;mh`n~_X>EF|h;_^1Y3oo{E30OjzNjUR? zXp#_0B$$xwN~Tk32}Fkcaf$-KbuJdqN-{{0`S~U}Bt)1v&|ruQt6smsua=a05dY&# zJns79UjG!{5664A;p%y0?&1A@NpX8DEgLx1|CVbHdyS69z;V{-$|S3bUW(5bqpXCbc^3b~P(j7l@Ja1QuJ z(DH$XBPg_Fio}5eC6zWH?}xpr3fY*LoqjJcr|s;>J!JaLcly9l z_{>awJ39h(P(c{6F|{6Z#?L4Je8dC2Rxhr$Fe^H-Fdez8c9T*gA_QAkqnlD_S6x<; zt8nImj}aqrW+ssqff6!|n{m+@ZJZdJkQP!9MZy%PnU%i(k)NE;58ZBTY+Yib!sN#H-*<&TzqJUo;Ci+z|;<@8#vz zVLbxf9h}ZlxtdeXyz|Uk(*|}~o_B?^2zjA50BAs$zkOK;?9h&Y$V&W%}r*bmdk9fr?b zrH30r=MQiq@;mV8mBD_H*i97_Q@uSO${^^@tcR4MwHsQGr@d<*OE|8pMcoB5YDfyrmMn>90s)9~U zEDxQ+&?xeQl+EiNp9j(a*Am%{gk(FEjmYo|%)JX&U;E+3=|Q{w9}5{(n5uGf&wTvR z+gq$g4jE+!iC@?ZxMNZ-L8?!uGhi(bWwo?USDhvmCR+> zwR)^Du)KBI44N%m%_S0SI>k!>I*Qlmg1Blv#{u#e6Z%Z_0?NnUgOGZ1J22y>TyoEq zr4SQVC(CA2fPqqgNv)U)I33A0u`xl)!23kW7M9IMp@O^>c%R9TTnS|0eMt~%Pclpw z>=FQnP~fz%!>Uy~7NX4y$iIEDg&WnQnn-W%+BYA3{>69WhP}*26s#o~4n>;gfK5A# zuM)Xbv?Y&$MgzG7Xcke|k;zm4tw_0@)0>;Uu+M;LpH>lJWs0vYv1a#$w(2c zN^;u~P%ycrhXn3mOxQT_2B z!Va3_M_YE#Tz9m&s|WGr?tbL}bAxSZ@o>kbu@-C$){oMJmiF=pj}Y(hwkACC=faV%8s)%421)KN%UO!b zC^4utkVm!lRzZs~Ot2Ed1U<-*AHUTwL9?ko7u;~e#qVUCMk_W6^Ck6RKESE~gZ3!6 zH(7|uE!_#11#-`ZU+jPBxN$~)l*J2VNgz7{ZEX@#g4DvKWI=BC@=efON~a{IReEIf z40SBM=N%-JJ7ur+KhohPW!kHyus0=vGo72UdBfDejP=I>NLdZEv0|W2>X(XRRty=K zH&j148_^X$gN=(_@ctPclHy*&CJ5)=JyUq=$wxNon!woJfUgI1^>Hu=i2h5s5xY`F zYGv})mgajj)e8RA?#^TqygM4@6R4~qfN1_`crhVJ3Lxq~5U*g6d`enm0<}>jeAFpz zpT~fj!A4+iv>2hhhfDK~TQYb!eD>{B$%!YwIhzEYHOyCJwV*33)Y5j&Zb zTX>nWcI`WJbPh(@*jf_yPK)^fIH{4wH>eH!SZ!|iBv1#HXctn=2tY4^TMr2`ALQk% znBrsL32fH+Z}kMsJt=qG;C1sJ`{t&yqb!BlT1WJ%avnf#u3O-4JDR>7Mc{6X6F?vV zH!4HK1k=y5bE|u2MrzEx{nlgjH5b{8(j6{!>;u~r&Q?JZ%umRl?~nU4T!sbnP4uKss`=QAzogb^IfRpQd_a@$-vv*Mv+TK?!`-yT%| zKamm8lcut{{U5&cjhmD^iUUu7JDax?5tiuvU%cBBk}k99lw9Q%i&j0EXG`Sru10BZs~Es!^|m7%PfQ~z`RmiKn)-m%f^ z;&L@ZrcIc=;~ax2fu;dW0l*Sd&2kHrLEtqUl!So72#)|hp&jT)xKxZ2W8^Bt)G5I> zv9a(MEdD?pK@Gk#ZFH_DrlQ%@lw11s+9%H&LWo-C>!&$ATGVP4r14o!D0*9)|W$UxIw|dv-(nd+~n3 zh3NWq0W=y3Z|ZD3IKSI$F8TX~hi=Y=&#F7RqJ~h^7gb2%Yz}yNo^+~7Xtq*Nb~GtK zfE65pgnb!sWu{YAHpmUmw6cHv@?d)O$J?xg!)y|A!xx`;t#Xr*poo<&WJIu_Dj%rv zNr=M_l8K`D8~7)Rw2AFSHg2;aIc75VCLStczH&`~9$dmmyp4W2AD&UG?sS8Hu9}x)H{|(3FasxKJ?d zp)vcO>Qm>Qx6v&^y7Vn4XzSp6{ja^;Sy>?mKr@VH5Qul}Z_VW87e|N`< zzqViG-}jEFy{F=G0@AKIT|4WaTYtMx;C33WGhoR3)04$tt2=(AkM{38(uKXTXBj@1 zHfx*7jU4*Xi_wLz>DIQgqjALHKpY93s`x~b$WC#pGE<~ry;!;jT&Vr=?#S0TA^$H{ z@rfh=p>p{_B{}!8You_&gO!HR087Z@353##R$in*B9RC;A@buGx$kaiAGGCKYWm)G z(l=xho}K@zAQa4kGz*Z<3j|6P&=t$d+mWn1e`=OXNNg*Y@YN!2+%UB7T>w1+R4D<2 zQ##3VQBW+YQKig26x>~^5r>l5u;!VM;ZsZ*iTH&#-G&VFj|1pdgQuJU_h;^niZdVi zdOjQw^WJZR`}1x~he}8Gdl&WBJ8O40Xp+-%-_4zS+7(YsG{}Q>E*?aKATI${ zIox71A_oNN2^Y{vV?k#_%%BH-bdGcDI4sW0J$@kfR?G1v;3SY~B$Q#JAVR>$*o>Ud zRaz5r+T}}Svd}_d{ObH8&HB^P8Eht<5Tfl24Ki449ox*yY>ZFvP)@BjB)fn}A}get z(&hHFGjn6k+kE$jXDl*;lenZALIx*Gu%x7f#8ZTXAjyS3(#A$W6$xx>^bv6{Q|TDb zqC#Wzxu&y%R{;Ls3bID}xHpskm|;3@zw6(x|Nh}NAl*497ds_4Wz!qy8+jyMQGA4CJbEh>H`XF8J4kWHO3Vpe*#9z)wj@ zZYD{b;$94LGCrJp0k$`~Oi1Z2V;Fo##aCy``_XKvA7xbVLExmpbnIa(UT+3@A7Y>H zgN3T5?XEqZ-&eaoy|2-LT99kH=!tV?ZlsEx)B;ii2!>#xMcAGo5ei@#78aD@psCnq zo&U^$IS&jfH?(48+bqZ(Gk9Zc?o9zBubH-~vJyHJt_A)p#DqN_Foqo=uNp_ALGkJf z2Z9n*hyf4{+M=aRToERvonhz=segWbXLyv!tEoG<{;O{9p`QG8y{(NYd1 zN8PFy=H|b2Z)GNRy-}22Pt&WJHlYF@TuD%DgaDWjMW94mN}XnUGP%M?B?Kg((x_$2 zZW&n$C+dn-bTMaLlnY;bf4`@qM;b+cD3ve<;wzSLQ5Sj|Pl?Jb<6zIlxr!HlaNS)o z)u@4yGC41bmRBjr zVQyFV0bhS{)+6{#_fo|^H$3dFg)s;F(rA{5hwKeJ>X47T4 z_zr7wpI6(A;95?vkAVmwK;OelK+l4vqUmH(kb%{j7CEuKD%%92x~(rQSak5#nWC5H zhPt11oO{7UBin{bN_k=-mlyv-L|G*OJfR$F!9})J;M+>6E;5Y=9Pk04TG&>>v&(aR z_xt=vdGY%_Fwz2QK_CW0(4kY=2C~l?G2JY3$r#@%h%!|Pf}(Xi08B$4fgsfZbb`PJ zdqmOT&Id^$?jlrOGOJ=$WmT%TIV--|bX9KVOWgCzZn@52N+USBo@j6u>9N4X60EVM zthmP30u|m_SXW!9u*E2|d?;P?xhWPF-WpWiE--w+CAonIjQH33x)PJ9G3}$87YGtT z0OyC7P#qW@1e9LrB#ff=4iBW+v@G}Vsuxcla4FZtyNDoPsYK~AO`6q86qlfwHn^Zf zMRN~Y^XlBJV;=kL&sz;;;EJ%qlsy9ep+O+S6unoH8!{warT(~lAL5$a{@)+^<}S~+ z6|XuW*~tbYtSs`pFHUCn+IVRlR3;=-78bMIN>KkSKknmsGAJio$0Ex1KuD&nt=gL;mxy){>L)PL9?-)J>>%iR%K4FGQgSVH7D5#g{gF4LNZ=j6B_wOQ)@Y*~28#H$=H}vMW-h8&! zWfU8Q)By#GR<#;Up3MX>>%(*1;xAi~d-LpDz8*QS#>mVnk_aK?4InJb*YUC_L?x;c z9u?$nAbU9Q5f*)RavMlgk}*^ty&4(o_ykc?OAIb8QMn?wYjb$ydHqQg-&s*6s7_a4 z3Tl}^m4yMA&ZfJ}N;iRG$D|;$J^&{S2YsF}JIPlcX2T6^b$}HyO{}%9G0Z^8BuYif zEWWYF(BnJ{hI_U{)3$HjS}|7U-X1#feD{*GiUY~U#X0$fqDvj}kd+Poopi`6On2v6 zc3#!7{jxRQW@x4-Bfole=dO{S;gX8%WFA7l`EFQ%rt%WOaZ7I`JMs2g{p4>Y3ML$@t zxX~c6;Ux1JWmo5Iz^%C?!0eq!@C5K+0f9q5*PhOzJ1t04Gmx;Ll7L)PrLPSd5>U#i zjrc(waM~?4`}0OV=$sy)6?^lIA3FBwk#T>2ZoyGsuTI@F(J0kok+@_AdZSIWGX(#Q z`GA8w7vses*M=&0TrHeb4Z6LYuTtcb>3r1SurD^g_wMw=Oub)<_CW5S`%eGj-Ulw! z;nm8L6`A6+cd?jJs!M2Vejx*unjtS6V5WpwvGesSWM!YNJax%et45lJ{g0=_ex^0K zeQVc$dW-ovgBOnbBgrCZB@SiEl1&MxW_g$)1XDs-NP;JnsY*iQhEjhhWPoH(uoVub zPB-yr8HT20v7P0S<{8^2$SrIOC$;$0aW6Q;3pXV5A|l>&uqbyB(T$)uoL++)q*))$ zaShwrVo!a%eof9hdT#WtQ*P0vzsqKX!K@kMG>S#wRDq`>@35+_$8t4I=|l{@h$s%(QU>2W{gKw5MnsmI5UM5IN5Xpd378WuNZBMAYHb?<&0DBNXp-GYfP6p_F`8^z zZGqb^9vvZBn}7UeSh@8*%~*UQhWA78exQLUg>REZ^Z7{K1h#3YcCY`O9FMpZF{IZ1 zXz5l5=!0#h0hg5KdmP!XcZSA}{d#w(eT|>9S=YYg?+m(hj6tV)D0lbB>+c^KI!WiR z8&66ItUC_OFG4Fu9%vwCe##zIi7Es*xka}~ZGD;f!?~LuiwAx>V}FA=rE(Ie!EwaI zbOx$>H}N8nC6}1iaT^!(pQ@ss-s#h;p-D3Fk{jVE?z{V7AGqsSA2if<4qgtgdzF^Xb7er)?hc zSMiQLmOJi%%pE7C8_0Xtb28J7fkIe_s^k%oD$<*kQ0m&=7|1X0XhtrgWsWn+k8b+! zfIj3+KW|{4uh!qDS?i*VAV`_2S59u*Czm+_f7pLX8~^k0$F3rQ#d}`AVWVyO9cK{w z#ii7gQLnx_{528@Thp}U_2D~BeT$SNop$8riI!1UE*OiCBab<)-nnD1BkwYOZR;MJ zr^`QK0%p@5!Qp{b8Rs0*@2U@9bMn~Z_qUQdZ0g~6O~XgMED$j1>}$nGzp8q39kDrH zyzc4I$~m@YNqcw}ui~Dcb^cMLSx(;fq2osnnUb!^zoy*Fr?1)M*wb(&s`HF*sIDfo z-`!&veKNP{w}$IZJYupza@gf|;~E=VKAKEZh{&iu?M?`sM6SRLmB`^?nwmiUHu9MZ z%bq?A|Muhmg75XE>#wUQ?aV)$tGvtn_^fxX)j9KJSAzKgIV-R=B~OCqQrS#_LLl#G z>T0_xjlSv%^38Oeua3(=w-ewrDH};Wu$;{DsTcza8P_=9J{^?%cQwf$!k9aKLC@w) zhg>mm*)ya7cvUyux>6)~Fr^Jl>Z)La+v{fhys0Oxcx=ZHTKez&j|-GN zmpk40(A9LCP(H|7)7Y?0-2acg?|^Tc%-?sC(p@OKlvSX#r4(w(Gf;*TD~XdhaV;k; z1**!nlF0Ewa@?js*-$o=Qbv2MD=Rj8l)cw6O4-n3^ccOeH^=7xd6z87R%|Ef!TtW# zr=UodWsP@y$Mbz2?_3boFi;P(=?=@)9u-nQGJ>B}n%4IDwz+=SPZBgfVp>IE5OR~2 zhASU_Y)1JEfJXDon}?u#Y_m_15kYcN4yEt~1MXzt2HPbeEl9GUitsi0Aj*%x@_=`W zs7iF!a)5&roM!D*f$C!m7uo=)t}O}<$d$yv4j5#(P?TYPT##vtf;}J<$u@B4Us3dQ zhv|$*|NZ1^ReRxQ`#Bzm>hXB|5#Ig)uOG+95f+K-bpXy&@NuN-?pWQrFs#@8uElG@98Azb zV+^{-+P<5+!(0E_z#1i#=unj8ykSm9!8_F^BuR+Ete8`~4Mm0-%7SS6QU1FuEdEP< zw;tZ}VRmx8!Q5z7;S>-f7R!*#rb;fY)Y`w>D~&GXmA;m%7jARey3Y#1Dhp=2Su^L+ zbxwe)M6w+DS#O6v>kTrKG!5n+96ah0<0%dWraX-Ra!yl8Q3weOMOjesKc?7}E!C5Z zf`eF!V;I)M!Eh7&O^1>>SMxhEY>Lk1)Zw|bpTmgL=Wl*CT}=VILANe_AbzcHVwdBV zeXoAU$eb>USZkqdD!3mYX{XF^?QysC#F!S!M(T4>DToB*?vZ`&iict}1m{uj>_s2VuV1Zl zQ_78#>d*IP-|OcebLxxEuo3FAklJK56xQ(aNm*%*KpB{HaZm{3X+(0L$K+xo^Su+xdXb+Z>*f4yYRhr zelCf`ll314Esg9a>%FTs?|AS|QKrjx`Z`W{a@9`P>|Id+rk9)C@^fVr4K#k0maI&E z0QjA<#9(%X;wZCHKNx0WdQ7K<^E9z`F2)p?6x|#H%PVMfsCy`;M3CoZTZ&AH?jlp7 z8&8P?r7Ej1z1w%5d;NRoUFOUO(Wv}Zq{l<_CapC!fLI%Nr%GlNSjb@5JmQA`y!o{X zG*iBJ^j=@x59|n@V+~+EPT~d9^qhnQHM+cjxSuD<8zgN(tDQy4LdZ#*g|rZ5%;;hV zU*@-=?~$_t=k32{fk`_w=k!GYBoAQrELNoXOh@|uMW{5wMml}`3Ivz%Cifq`}wDf`_f2$fitH{TF(EjszLb-pu?Q3bPjBNGPd?UCMRgDZGB~lNEUMJYo z3Bt8X`7jFJTa;}W!@)Gus>5J=&?Ah_Jy|=+8L5X)+3MS)-;rP2^KyLrr+sJLe%>2P zy|)`cF@$6C%G0b7IT5c$Nhna(3mxYitDM$b)25w@Ic`?PakCP~4Y+8U(?Xv!03u5P ziVM(O0GP3C6KC4%)eAwH&Cr8;KI?mZkIU`RlddTlbK$L>>8-^@le*lTosai&3Fvp_ zoUjnXfJV$wll^m3EVw4gnK)h_VAwmp===3=huN1M(q&+_7;_WktU?uvBoaimGYsVf8m_K* zm_egr4H^_#3kMEifFTJ7z>K)_-an0bZ^S@tnJ@Z=|9aji`mkmrKhiPRX?FzzP;&t* zOVH5g@(Z0Ud`u|t&JcN2t%A)e-(UQ?Z~Z?XXgm4t#r2&F7fx$5$(-xNtv91tJ4eTG4!{1zC`o8ah z*MB;eT}E;PODl>+(R5{bs$vnPz|0D&t5j%V(6mUT2aLt}=r}ys(v+67uQm|}@*W-t z6f`V2(drN~1u=GYFyPO7*hY@&ul~=)6&UcFl>xt*V_P`Zmm^(nFvolMd#FzVM_u)g zZq53U|Dc?~J8vPL#MgdDDe9RRJVw|PHeoyObzRe(rb}>di~qhbc--y>JQ4ZsiQmxq z_^%FfpB?;mp9k@_cfY-^Uf%HBZ#zWMyH5Oa-anr`U?=+H2-@y_@x*K2II-`s^?2Jp z=Y47Vv2C@l;O(L zigVMelOOGk#xUnAvyOZ4?(27c2XD`uG4oRCg`=u>?Lp(m(c3*Y@tHeL7{4>#&fK)) zB^5VM`gupZeey5&k7?h2#(U%O_GK$JO}zB}tDoz66g`b=KmWAR65mbQTFH?7(C2Jg z-tm@&WI-p5C@=EkPQ-XI4hRWlu`{kF1TB!B%Rd+x$mP-?KlRnuyWKi@^oUotR3dCy z3M^BYia~vU>L9&h{O7gbZl*$zO7J@Y@1!jXx7DjmH+fPcm8hNw%cuAk$at`q2)js zdsJBD7N83m75KCm?*wVtlDX6K!h!mV1RDPa@}v>hzYmm8TdW0tUExB8>9_)hy{-R5 zyiK7?x2fpTQN@6bn=9|Np?$&`V>Wl~LzU^rzOCCSp4=iw^5>)SX?IWNYXBODT2!-v4Ape^>Kk--4GL;(r^qtazl;fruY~egb#_ zE}sXhrxHR4TowsYfqDA?qXpWD0(I#9Y4$Lbxw*OBTi+f?)VCw%I)EL+6@sNYxDRny5T!55x?OqFyOoy3%>U;kFwL*N4 zV~h}91*s)em=D_Ot8ewh!=faFU?HeaO2iThH&{QM5+H8x7mn!>B_W(2;`q?ul7H&k zsa1OSyQ`MtZG8m*?Q&7}E?#!Ya!*VMd;B2$0<)0SN+8Aw{(?9(3*xwRxPmg2{8A19 zAV#DtkPGAh+H@<2t6V*P9~h>{eVW}u5>mSadKrH(=<_uN%$y`$z7-hahpIm5r@n~o zW?$=?Cyc^^MMW-XRFV*dSZ)~khZ)WRsZ!V#RSKkDRZ}jrSIuCUy?*Ljvf{&TR|8{Y zOE^GCTS`HBcLeUJrI`qPdrk-u1DHFo!MfW6u(B8yJV7=1fv50)?rT5m;!W2OW(_9j6LGL zyH*)Y8KhZMYXf`*M+h4PII(<(km^Nq0r?VQq{;gj=9)?l5JH2h5R%$Bd-iKzc#3Ji z;rmW8$PZY1`B>D!hWL0~kSL2B;^TGE#6pCyNcViOoQfPN4>-F2Yv0CuuT~!b;)l} zGsowTJsPlU1YprUVF4;^0@$h=z#0L-U(U;gqKP=>X+jxu8%LWtztAHC_E*II1wRJH zVm`N1gkfEre?WAA6`7y+`fkpwB})C%s64Yw(XUs^9USnlnl?|fn`>uk1FimI#G{Ye zR@I-;bX&z_gSNO^iO>Ib-S%bGrG1ZYEU#(KG`P+KF);P<5)I}LiyYTl=5>8o;_p6Q zra`~g0KYfX*RjWVvgIBNMs6L{(Pmt1{M|z8ZCCVwO?x z%IvKrh24}zh>5A%Iu9d<_&nY$;IX3Ou{EjK%6Gn9;!xLTl=a4NB(x+^!hYgKxN>aBc;H87X6&==eH*1`@E#)tr&xZuG>yuo<3cB( z2GCLNdKiYOizfIKss38!GQ#X zd#r?UhiQw(7%T|IfPY0xnvFo0n|sMU;Zd2%_V2GaV7F6rA)^vV8$5o9V$>y{n)KwV zy5k`81c?x}$$Y1vKyxhG-KFE_#%8V(CySF787f^n+I>*W7IY27iUPGOxoW=<>Onze zh^Gd`d0sx%RTt$uywV_Uf+BjZW0(KY&8??1aDD>I#K~D8zh%M(%9j z!)$mgWsRYrqo>5UOtI3%LP}qR!=~&2 zqzmYcQw~w)WIiT<`4${62|zWA3#Ea*1&AZyrbI}Y03U=ED5NoDg$nz?8NtatjclqK zoDym-!^>cu99XxoDO*?w@x9OvBVUFh4Rv#x^$W$6@N+m zjp_g|ch^gao}^7q@(V$wXRcNpsz$-KT+MkoF`iCz3rG@=bH#f(p!>1aQt$e~s2x?B zw$H>5zU=PfzV9+JcPI}47Nq$oFiv7IT-i@sRJ$AaXh&;Oh(p^2)SFUfWRNNF1Doa~ z$*2Q-0x37k?VH!r+? zTq-KWkW5qoLsM0sQ7rXtS1eCE6nk;2=8vbmpY;nuk&3Z#*7sUMq6G7j)aB2l=~0wQT(t3Bh!4rt>~_ zj5d@;TITw`Doxwm+2H$o;PrHaP}W;`{8?h~{aGKQ^}OS>`-9#2<2+a<>887Tbmu$k zE3`h<;P=9VBg?7j?o@R>Av@MU)6wq&uGzqpS+K2$7FH>4ziHT>8$HC^)^( zF6g*fy5CRW=kU#*h$Q#LkI}%z?uuG+n=PU_{+oZI^|xDT=c{9WLMO6bgz6yQs4M*3 z>iu|LG3Qe*upRe#TH-TS0{{?UC& zx6*$nW;&kE9C5+C11n06t?6o=y+RCeJVFq+Ta@`&Q0(l11W>uaLJlP6YszDJfhaaH zCE#<^OMDWEiqjZLSm*#ouUiBQ3v?3W6otP6eWe^7m5YOL-aLM(x*X{uNGgFE_ck7!>$_KXE)FLocDF9?dCxLk1bTRID zN|r2gD$G>lxHgye1Q1(HT8S0AxD&pyuBrR&%n?Ks=tQZrcydTFxZhB^qNtdTD zo=mLZJn@>J@A9AA6-qt)m^$*poqfJW*JVObNzfT zC{747X@RhR=Ah@>t&g_!-22|>&0Tu8f2Qup2Tz{7@96^oK}7ni4bx6mk^X|t5e#;S zV6=miW2}HVh>4Vq6*A4pG+)`c=c^OV2E)Ev0CPBOJcL@B1ssP86J#yTw6a!CUo=?k zmuF<&zxwSZ@BOiFKF9@Eh6N-s85N-Z@f;v3+{(5Kk_@Ja^k5~AXJk60@UF2lEe1m& zWn*DhkVz+^Jy2kUf`u>`Vx$%?(vLZx1dQZ!56qaF#;v`4`&aOuNAlAiJ{}Oj#l7Hm za|&c!3~b{<$&j2%gI+BOVJ_9{!OH0}$eDAAxPYXVDRQac3X${^)&q|VZL*-8kmBG8 z96)tsLx#4Qn!))4y) z+!VwW0EIMhu@J5U%%lp@7pf!6^A&sn>(%4`-7;vcKz&Yt${gf6^!jfS?gJsUL zx?H(@BX}4JbygWgVN|B!{!Ld4N4j-shnzXDF7Uy$<+M31%3=zo-g1nJe(lT`xn$lU ze=L4!#}V89MMEe?ud>2KXQoWQAbqRDMJAsr?Nh0C&vE%N5iu~oAOHyv(8&e*7kDgY z&I(~cU9R?j)m`2(a{iV8)|Tb}<7Jwv%T?*3>RRv6k$K{pV_(|v%L9gXt$Ki>Xh2iH zDAk?}Vx^W@2g=r6H>Kc&{CF_7*q7%;_z650JfRF;# z&LLJwzBeeK%IU%sC^m$Ggg;pAa(N+cL1uz~{P9QYnSH*kN)I0#l$rSCmrLK=)tqmY z7Lc!KLFA^8_Z#p=0~-m^F<y%gW`7y}b^D5%jX$iOV|G8Eee z1Qh;!PKwf<>O(SJ_g08zv6fu2jvNx1Om@E@Cwioi02&Frs_Kv=001YF=3rrLRp(8= zJL;ofp1Eb*s6DrI={(y`i&{H0V_kRq@Gn2w$)Mc;N^6HGGjjv}*`?E2ADX%Q=Z5d5 z{TwhF9rX4eZO(}atGJ2~O+*0_BjAhRZd|S>Sz&TzR^7VwRPWeMyyt?VHX(tA`vrI< zoo+#i*(tT|&KTd@z^4UP3=3F#kl??yJ>;fohu$;c`76f#*-)PxNVhJt?#in!A7j5t z_dv8%x&x?E0#3iph-6n&IR$!cNrbzYQ3(?6&hs3-?w7R>R*wA>yOX-v)n!^%Jb3WK z6L7A+6k+mW@-SFmBMuk}5*;2to3inMG20_H$D9l^ubFa0!8h6|yT{3P^>lPZ1>H=V zqu3T1O)Nq)yVi1rlw}H#2>>9iMPb+OdB8vM&n@(*&pff!4obiR`{@TPG<6a2y<}CfcMS>AeXwG0rb~{YzY4R! zRx6)V)v(6T%ZH?dOX}djXCs7_yR zUr~32nknq!Rp_tzV*?PaHtjt$*a;KREuJ4j!{w!`jDp$CnYovbVn>{~+9=OjtYFuw zRGQ_*+Tlk&DUk&AwK$?Z6!c+)g#B6W)VkAuacnbK{g^6~H?zmIW5@2dZbhLa926sq zMhMy?3WsWf4~a&AN(;7}fU=DT?$PClWvNibk(C2dx3)Bz=V?&WR8UdO$^k8yT-i~@ z#Kp(#^~+^LmcjF87OnkavG@5s40G)&;SYPA7#HO(7%|n5i0K81jY!09-0FY_I^Os) zN{;ttB7Zz`?sdB+bcU69nFU(YP(9UQ zrrDWQ>wcg6$FL&}3?SN$3wi2=I0?ho@bPZwOxpm}8@MnppG<;69;CnQ<0YV3i+6g$ zi=ZJ1ZW4s_%l5fuXQto(+k#8>T4Z#I{V1U1AVayLeV7zTNh_k{gdIi-5+fnXJFnMOsh)8raRWGt?!7y7A-aO$u^dLQ-0n zUvDhJmxZ(d6uS_FwVV0gL=Uv#ZCpWqU>ir7b3X#Iad0Q%^a}>r8ZH8?eToT1AweR; z1OwcL9bdb7&Bv=p4OIi4omsGHtBtGo3m8rf9zT4VNWa;V!hZ|3iDWPGXRK{9$t>Aa zBxrWxcKdOHgqhy)MBmUzf%!8l?wqq~%`(;~AFU{}QA#ETFe9=l34pJ93rn+6c9;!B zU<`C8vEUKoVxPzR-mMsTaIh^iZhuepV1{R4$RG$|VgWN(Z~b`B2lk#^IaKT< zdRuR9=H2PSWv8qoH3~oGc+)5dP>de9Q1Vu9isUYI z$^6E?e~9LMFaUo2Kp319^2#(208aL#1hm&LbOOMP%%m6c+0zbL)jgWf9Gx)%g$%dB zJY(}-(H7f&eK&g1Etj>U{)0b1EPy)x^CzMCZo3|gO~L{m$4lDp=MNzBG8de2`{Kur z4;bV*jOTC2KA{jnz^9M2%c=o16vyzv^i~f5NkC6)SM!)12BTJ1Y3j_}F!i!Cei~VA zU~Sk%iB1b4%G{m^@xh)bFZI%Zyu&96VG&?s0c{E-CWb1MFzj7cVyH9IxBK-|k65&G zKS6b;D7X9A23Jk#QT0kwSLTXaz59K8R!x4((nIxBxo{^6v9@+}$U;hntQZO$i)R_g zh0Gm#$TIICAC4Sn`g0a?k6oFcZ@P55%Xe_*hoT8*0iM+xdtym=Fa4ruoVD?(?+t4o z{bz-UO*-1R3R8DxlWtU3mu>ng~7l8`w%n<=&SG0q1K*RrP=8QNw-)Bpm~{(t0!NR&BHJfQuT8tTZ)m z6Kw+(5lL|Uame4|l3QS|#1khH@g30=E5!JCN({-sFk509KTD1EXARc*SGG8led(Dg z&sPvRx!i*U94COWCM6{RPYoAMB$6HXqS58?m8CQiSt_68jiBLVaW$f-oe4o56W%OM>PPO*p>|QSYy}+ zf53(>0knK_dWK;=9McvB%JDP@=&&Lz%|!xcF5-hwqFlrZ>_-4fZ5WD1VJNdv9E#>5 z5Id><5lFr>hhv+7)a%i^)UF$hgnFgv_{?YBk>=rBA8#t~Dy^!j4UVS~8#Zox!46dx z4kD*;M9xeoGXUNXQKdCUoCHEjsoe@3cl3cZ5Uw?YI2-HY=8WE@cQEjW<1@?8fBC>W zF0+>i!!UDdzK-SyWru)Ox-b~ysfpWZhVc_#*r7;IUXtm1sAm2@Yub&%9oRQSQVjqO z0!Mes?iJ%=Ok6Cu!ePl1Z?`ddZX!b5n`I&8M)gcgx?JLyD$@y>4>x|0xcH0${vdHs z>f2jDm4YAx1T}4Sb#_XSa1K2(UqJ0)}7+?jhEJoW}7M=9^IQ^?WCjkK!pAR3TFCW4uj%9d)1V4HVpL4^vOK5=T%1d%=aDtmIn8VrA5JW+O~gCIPH5ah)FGK6fDBZ*x=$6R zb22aYtU77OyPQS?M*&ksAG?O3YwJQWDKP2sD;Uqu9Jk7QvCzHTFsm{I6^xeJdQhh* zMgv3$5-aj?V}<7890|Gur5EN?9BqTKn!HF7>ajxumwQ~Fa zLC}L9Caxa2uE<2rnQ}`{_3ilq{if151?XmBk*Fwy71YFYx`Um~d{BroVBQ}(IXpYE zx&R#?&9QghJ^l#KhKkK4eOF<+Dsx=d!))~R!;HrR0=vWm0qoqCU?LH1m54LI5Dh~+ z>hxtyWmjjOIq1F9HeM9Nd-NqoiiK-|X%?W86_7-M1``D<#yg_|w0yy=n$xZGkA_rM~@ZG9%^09mnkR{s8A5at78pgy?`Gn<(=LI_MTu|F50Z>Kqrk7WkuBK-e2=WRxpq{+{m)bsyXWgN%hq4%a9`4pkLevKm4Aksd~IFh2&~K}^n?bHB3O@#(0_5u0JCRyW}rGH*`(=9FE| zINM;NrK~QOTS!9F5sYIL1-2kc%H_f@$*R%HFJO&I0D^k{9&`$4HNbx_(^lf zIC1K}j6=iV`&dV$^hx{1O!GN6$%kG1FWq2N4loIXO#p34yff7W#RP;xELnQcktY@t z!Xl`{%8^)6oC3&TYngT?kIl--L6?NKGzq;>O91Daa_7SE^#1v+oca7#YuBUoZ>uT{ zntfkp-o_vH{N!-rs-KwGQNi#_Dj!h&8-!ui34E$YLcmg$sq*{q)uR{O;~nv5RX+4( z-o52~DWAQX%Me5nbt)SqmRjP%hd`kGH7L?h?!yX`Ag8emAx~&RYsA+s4XHKrZ zC1)Xl+puV&{7fNMptMg95uvPVQ5*p>`Li?^eEy}?$FKfvMAcC66R2D0&6&G@eB}kn;Xp^)3)aYC(OH zm;mHavwMUdfvT4Hg#hV=r3&0aG{vLTETW!?%x+xNcxv0ms_}nOZ$b|es5IS@nKJ## zC6{bZikhy{cb`x~O28;Q5=jlZ#S=1-%IZW~kE znhsbrFmmJ@bn9|Quv;=4&i38=>J!tAW@0KPb77Fe?u-hQ4Nse(e}m>&PPnGRbZf?4 z@m%H9XBmU~3kzKjs_)=f0fjHbcqa*tHVd76sMn&@!{w2eYKjhcvM-3HSSB2@0 z%%N8wUNI|hRmt@d`pk$=g@%Piw6%N^Ok=f)STYfZRb(JdJD_3-n^G*HB&jf=RN&IP z)~ahIINjQ0u$}+H?#xVko&I+3-z^4c2ur#{rX1i^iSbTQP0#kqDIsQ;Q+%oi7x&u& z3jsl#zJ#Fk*Kl`c-jzQ-UcXQ>XrT@;QHt?SLRML=o^m+}XfVlQTHv~bXi|_IWG?nW z;sG#g!O5yIf7*@tLaYOdK)?yuoENSAY<88wgIklyzO=_NSM76;QPXh}ynjyk0t0?2 zBzTT1Lba5f-~igGI>09jJ>dkZaZtXI$Fgb1Mz2-*QJ8;0x;Y%k;ZkNc#!D%0PfA$i zA?#61PKd7Km0#09-+b_x?fWvjU2&wfdf0%ufPgfM*Vmd%8B~GTngl5>K*4yVnPL~? z2vG>4aWPR&iJ>}iQ4$Pf=A{s^x6abtN zC3~e1CPJ7}BAQ}unk)VC9?q=2@6@}SuDvGTQb!VN&`5+REnX5-RwF4kQ5oc*QBfS6 zA6qFi6bBMuAQF9`$KlvGtS!SdM{K}yge55y3J)Q62Zmwmx#pOeX^vSL#tMo60ARJA zV;i|U*NnfuSK=xLYm?`*+dPta^|Z669sm6(9pKG)q)^PRnJ`|0{@*T0VuzT^N*9&0 zqAZ&4QO-2@s~1?YFrx)#Z9mLh!Q-HH>&K;oF*aq9fiF!e2xGvTjxj){OkGMC1JgBp ztf-QoGIL%ohVsAQWI0VNe-qotu_?;Q;q)+&#By<=-7T$ltiFLOo2`{ z6AklZ6K&yUmNzXqVVYBOsD*;_17`aPtEP35A5AkYO`!HG6jcH|F@o!K7C4>>zB2B{ zS1x_^tmP9I$s1e%Y zVWgz))G?-3;|HXsSuLj^;~$yJ@3S27&YE$$s{yz-7Nm@0VLny*>7LCDtGXfePWrk5 zWI>VRA;c0=Z!?Ahpk%QV!aPtx2$+)F`6vd(7YI|({f8-NB}_r*hbi>ggTtRf>s_jh z?)Ul3r0(p_C(Lmec?>qTw$=w+hIYWg3JR4W8LNVQ@N19|r9S8?(+ipB<;Bc3lhb)= z3$0RkQ!2l}!j1|oV6CjorTM5w#T%rwFQn^T4gM9?_14opO<0VC@@AG&eGx7C{?;75|P8Y^2*@cHb7R<^Ca!MN^*FukSxsiE!C^YR! zP-?;kX}Fj)V-I*h108sa1z75tS6^8Rus|pc2iny@odX;OZA>_%CnTnevG)LUaW{i>`P5hDn6!g%t|KabJ2G`?IwnY+0utJmL1`!2&$O~; zu24=01P&QVg7oCfUa$Y~@BOBJF=n^_&nErc1AissJMV<^hOb$b@2E8?BJ@!{t|6nR zkr+K@j?cvm^z`wH<~+u#TIHk=55#h zo`Et-kwr&evEY|`#|%DZ_-dwZ>EBn3Y&|Cb?(-^c>!OK;2+|GwZORB7fuz+-fk!|! z7z~d%dG;fbgO6N2Z1A`Add7a+Gb_LL?mkd~Efy*X5kR<<2nyOvV=+*t8vH)5h2@&5 zYFq)&G_=N}z3>xRTfGm_6KQ{d^DE~A!;~+8`>=MTbzv}>orT!|Q0i9-3bal^f!1*- z#Kee;5G7W*V5myd8<~a$>kj$$bt*rBL4ZN+zTA_bAw_aL6ionnU4Y3zP&y`knt%8W z1JP)DBlGs8V_IIhhKL?CRO%xvDsu%{<~kdONi#NR#bEPVtz>r7HT91+ZhymQl2H3} zB5F=ken(^b-}Xi%VTX30T+fcg0>JApzDCDSI0vn1-CZny2uZ>XKleGf-tSX17aoUW zwr_upa-+jeF3h9qTZ<$=XTN~X-zcDU08c%;v}upu{St(}ZkvmaTaZAO^4G7U=RWSX zXEeue`V|3{NOEXbmVUEWxHp zi{((b{%-!50ggv+W_Ek+y6s*)i10w?)1?&heJF=0`?`8%ztHJTgh9A8%pm&joMjvQ z^!kTSIiz>l@SQi)EcwZ!T61OWTiQQc27&U) zs7%1fO5&kaO&81+%4<-xOX>vd--Bd}S}H!`V1t zDvF!_JO!@z*&c20{t4P1*{iMBdE##TobmQ6HHb84*8GYhqxUoosjvE2MD7 z1(s%8p;2WWSe=ATM;z(m7$>L}2WBU^`wb1PW%~2vNxr_e(;M&_82p}s(b;&e`P-0{iN}awp^F*QfY9L z$hTC+Bw*B~syUL$gLa~#@JVrs>FB_sYN!aGb#Szq^9wz)z$GMH)&{_ku$(?0Aqh@Y z%lTmPM*Rs?=JE&3TzZG5%-|FU-p>S|9RF+Qlwt*J9r^;c4pP8I)2M(=TecQ1Shkic zbSt}nt#i+Eyv02jm5L%C0i}**2Su66BduY5PqlNs=^IK_uk1S-Hdq}&#`5{xk*IR69 zdZ_=;%?8_gP)9M4$AgvH-!qrkxGGD$9#fg;BlR8S%A$=a^1aF-ny8FHCm&_%Qd1s! zy6?f#;YUav01q-VAwrRCfua!rOoW3b>6?XdNfx@l@4)^H2t|65^+FundtEJLzU#T3Q7<4m!5 zWfKWl0-ojYQ9FLOY42|^7)2T6VM$WQKmgAj81CGG%PZ9` zkBgi3!3|%CN6I4xZc2Zhx#FDr`3-%B`m(SnB?{R4!_X9?5l1YcKCXr})o?f|eLVgq zv-q3d?SFpyX{&Tx)^sMeYufN7I)qp|>!4Nw&Ztanm}qYe=O zE;lUcgudw(Is&NgD}p7ekq)w~DfV=LL$b4;7S_di0%i^-5x}3I(H?m7tm?U*4HYAX zd|3E4V_tCGqAO-)3ORlS0e(6tHBJ}Ed^{XXED|MBH4SkOg+SC62%@Gm-~|WA_&_0C zzwo`9%>>`8F#V9Bhu?eM9b*WB_JRss(5@Qtnt|LQY$BMT0EU8U5Ib$u zkTxB-1!D7;NcB~ke$I@qWFI^J+*63pr8jhJ2$YP_?2CoE1XTD%bn;DwB2Z5FXPpF8 z!Q-J`I7C4vZiM&1h7iUOB6|pDbS%Dlwsm%oAfXzGy(Znd-EDuHqofhY^6hW$!g=X*~bb6#*$I7qqkWM zLOvo*c2vvjq?ZwCNTg~L(QpHRw!vr_q9vO0uT!R3Zpu^*U4dCe_T*KaA0Il0)LKr+ zgHaUFi_mFq*pW%@@gZajAS$(UtFPHGb>zuwMv*6f$LW8Ao))z`O2pmwt=93{q_g+N z>E4KM!QSwDgb9NF^dL>%?Q1VmY2S<7NDL81PQu#{Y%^9fOW)u|zfW$Qx&*CHBELID z>*Q7AxK0IrKwbF8D)4Q5rvn4>x`0BZvRReA=bfcj-Pk%3AK6e*M$01JrGWp!-n*hc zS>1_!_Z9&bu0Zx$)MFHbNzK%PtuYWx1e?%O^C6-vagh*Kse+)?Opd{Y;s|3>fnlZw zCEh{uydI|NDT`t)`;92NTbs9SDL0MmAK)2k3r+6yAVe z2eXWo%N>D&*_s?;KHWfI%5mtZQXZ+Dcn}{MYvV9+kJ|(F0?645(~wo8&f(XC zVO3^*3(IieKs4B*vm*RU4QK43RvoW`O1!`7j>z7hV(Hlqo?jtjni+g|j+v8TrV zRfK0NOe3>P)=!vm(u%Z!Q%~;KL4e@K+8z`xCG+^nvHd~FLEJFSN5wGALo_1LWoOqV zM{PUy+oF*{<5_idwr1X>s(q4s=i4?|yr7v+0Yg|rU;uvGW?A~yzzmkL*{&1-_1U|{hu!PW4EP_K(uuRGYfxjv_QJN!q5hyvQC2)@tlrXXZT;N~8%*{A= zH_uQY)+$ZovfBk0U+J!$l^-8z%JZd30;7JFdZWc}+NdswKu*x-Tbi}@|uVtx=3<-oi1G$BI? zJ|LH@;KYsO7{O`aK5&#rrNyW%`N!pjJ^-tz;jVdia{Z5kQo$LYJ$&(lQzN?)c8+AZ z=_W;knC!_DE!MLvlXN)la6l=n%@d0Oo+%;hX%;D_S+p|Eq6Kjt6K#QNx5#(K6QDX? zk>Fv{yYDdRwaIN8MhrEQ#HgHUeD*qN!upXl7pWW*okx_6;(`u|33m$lDugV>MNpy} z>qj7A2?-r(hv_vjRNEUuxgP|w$9q}Ug-L6*QyYUVbSKCWp$JLvKK7i;-h94tpa}`{lpyI3UlXvAy*cp@ANU6YG*sj<3Ga|y z9lYYk(TglbkT?sd`%`Qem=ZySgs`xzrl+F=6bE!L!BFS|*JGc1?j64QFljqxr*qug z$ye7KC2$OA;0vUxkvbZniS{QFh{l)&L8CWa*=_lZj0GN1)f*7>SXGC#CQ}w0fU&`5Ukm9?fZYqYae)~k z03Qgb$oSOd5(H|3SU8l}7MxlrtKxekpxi7Zrnf2w;T#yUabe-*VIMqf{z6W?$&o~wQas2UjY zory@Vo`0J5{CY6iDR@6|fzLHS*&JTt@7{iD;r$9f&6g+)K1>&#Am6L`X)n$1j~FEC z?eF;cZ>4LG`gTdyPnJBRPRdTY=ceY>OHM3#d?Rx0YB|H1ZdZN(*f`2QCn0qMtq{^J zDH=?=cq>eLznw*iCjEdmM3}i?8J3{U-W7ZaS$)vPJf}gS`pe#hEX>lXAF~c0TWHh znsN{|zSocHoBas%p*>-1GQ~uK=11;c8h_%lt?SEdlnXJWbBS*MT{tDQW>0k2U+Z2G zsXRC01uRDFJ6zY<$$3e^-;rdn)7=lR>zpS~8eP`?epm!B@kqM7^WAB1d;|+NA8`%3 zfj->e?kVy4@G?5@f+}quf-I*Q-1n3-wGV8{4(PaJb;mC%;{INbXBUDPdwErfgRE{e zCf{58USY@~iAoaKJn>X^m|vcmOYVo9Z{?YVkC$~1{!ZOMupf)w+r!(J_I&iqhym8R z-*+%tyLIh-neMp#+45%HsrWj_ROvFTfAV5J3f(9!d^Jti-Pf)A^#A=IF_wiX5+MH% zKJJREN*fs8!tG;ikqJUJ=)mOpuIef+axeMNbzNBGxQRtxJNbV7-16GTod);WXK?(Z zv(fpjpQANG6GoZANL72mewx6m{?l7DAy)^ z#^CqA!s`$4`9}}Y^ZQYUL8}}7=e|$9Q{&b>PyKzrYS6vhMYe}(ISrGVzn!Z5Q=i*l z`{CykH}88aHr^U-mwVo62HX0x7OS{ANIyT4{<4+ne|pis=Yt0+PIkOJuy(JXhX(st zpDA(N){g^wdMnDBANBpL;!l2`7Z%wj%Ri?6cdm4>$6Xb_@28ADgYcqf4>fP5jBLu-#AWVzMUwhp9w=bB7Z9>xBkuz2CUB zs_>e8PW%gEpFe=t>ngQ=ir!x#>yf(oYg(E9MT2S%8;05qJfi){jogn5xYr)X@8OPj zCv93aaqL;dAE?OVIh~w6^|)F4XN6~UGaE_wRD1cPN|98XDZnB{xs)5tMFv6+7-2A~ zP(z|l5_llGMstuY4e0aOQ&KNSGYdP4iKia^U2t zTi{WG49B8r^Ua(R?t7FJ8Q@+~I|Ibw)ZLJ5Ne$AqK__YlW6uf~O-YI-*O}C=` zHTZ-K-d=MR%605k3bohotzlc{9FJvfwrv^4|*&-B%|>UNb*zL!^`rAPniawD{_zO_vjYHA?v zs1Ov;Q5XtXTtdjDlpVQ%+A^Tt!`!@o+hf}?>yJv-IM%I4Yd+*L&MAUnh7JcsC z+L_*30(#S<-E;zo%I8!yB(`yj639EH1y?WuilxzT#d@0)A?D4UKe+Jvqi(Aj^ItMC zj1kJ_>~UkM{g3;YAg+`8M(@O_e$dEp#)&pV`~pBt;Y<&JGI)S|RCB1>31CXFY1zHC zkn1JlSJZ6Pa*72wx{utDnYj~n+}4{5e!8fHlRlSwC{J#aQU@(AxamS5r{2jA`N+3Sw@$5s0u zO~zF{1_|Khj&OOKDF;%(6&DLK79j%T>OfIK6(&daoT|uI58OPPBvkZmJAbA!A`Bs% z2OeJ&pkYk|D6$1IWP<_gwTTBjao5Dv!$xi9?wfCkIG3HOO(v9=QvaF(~*>%_J5D7IvOFXjOqV0rUAh#4n72xfqc{ zQLGRXTWVbxjtf%L`A9vM;xI7OF7?FSbu8p$n+I5BX){vj@$r%nPx&NJVV~+{pyD{w z7R6RM$1o9K!3WG-#0L?ddUwEVffg?;y$evBKR|Q8dXB$mAXOy?XB(D1 zxC1)Y|d52EK9?S)X687M2=;Z42ohQ9?-;&X_d9lhugqZhVw^uvU?EPfT zm|A>8>nGk3KiIrT*KbOIlK>+t~d^ zr)((ZRWT;MW*U_9uw6YJ9Z>-lCbjg$>ZL?aQr1_x`T((>BK!+$+mwZbL9tga^|o8?oGA|8e-vEnc434KsE(v76Y@VIt0YJAysU;`P|wwxgawfiC~n%^8~}B7{%O^dYon)Bj{l2}EET4v z?6NtXAIx9=aPcHTB;U~01nMFM5(JU{B5INTlLL`rsewo%D()VF+(4zNIs4{{WYq(= zWb&Pdaq@6+vL@Pl-0h2DD@z$4}(Q|mq)M}zjyP({5o6m@{+1Sb` zTXQ1O-IL69Yj{);bY;Jfb#bSidDU~nGSO`|U-_p$yXnOA@Bf~Cib2FPKk!(9cEN^2 zQ(*4xuRyeL(}WL(qIp>sJL7&KmPjF`;*~3}-C;szJPEc`2;zl0bP`)8PQmJ>C#-sdfq78INbd z{K3HwOa>I(^+|#(NNE9If*>;!M^3p(zUge!U=zVcS(ZvuAiH5h?>?`byT4)320kd3 z?+{Xu_K>o63Mu%0YZFmWbeQK~Or3dS!50 zPaqdE(CCnPm3&#`NO?rLVb?j?Ur$d@U3TN4MqSS8N~I(**pq?;>@sZ=<(5R9uQtld zGOS=tiNUC#DD|LFYx|KtFG#48UwP5h|JAS?wQ0(`SEKEFR*x}w@<(P5yvwxY%o9#2 zIl9XBB$Ej#HB()zZ@?--o7D$-y?hdqEs%*w{UMMA2K@+bz=(3mS^6WheQhT;uc;$` zOK~>j&B2z!s@YNyQ%Vt*l)zTM?0Vjs9mj1o1Y?-mKBzJsot?hl(!SSC3cN+n@QX<{ z6#5IO?Wkhc(2{E?gl~|QsacG7yJR*crT8Ew!9ZjktU}fSr?iURW40c@%ery9|9={| znx@0BsWG(b?W41w9Y5~$x5w!5SS6&9RRc9C>r|4-PKDblmSlx!EiVhC-_^#Fxn`)Q zkAT^zf?QV-#D_%$Vn$wcZW#C)WE$S@bgUqV*Behm>$9Vtb4McN$gKEDt~w~9C-%ER$+*8TZH^Fh$+8d&MtgM?&Spe(jX)COVxdNiCz6_6xaaH1 zQzC<4{TH&n+p1>$@$<5>Gm;>$MBIWrc5TviZ7NNze!l=7?ND)eh}j?e_FeMEgKz7C zfMsxaz&F4y6jPxtd@G3PNsOnYgq)C4TomwN6(cg#gSEiOg+(oLtcDhj2#qjIG@sTm z$MXcTi4Jgz+E|joX?8aVPzNZk<+E((%9%fn{;LKiD@~E?1@AXEhQv8W zhmaJDBh)2?y4`Y$?Fq^uNlap~9i*Uv{)B#>KPNI+BVyCO0L6QXifp?f$s9O>C$xKIQ9Mj=t#L*;^Ac z5N3J5?4e zV0JAVpB>MxXgu_j0~S;p43M-VH<#k~!g?83jR$6e5q@rfGiD+i-t+qN7P1GK@}X}r z5e#XRjdO$PT0ObtW8eVj6ueO;x_rI=&92cqj4PjHEty>_ZjAkHwKuP(L)AW0EDwmv zsA|yg5GAVeY&^cE6q+1uAa!f*NJtBLDXdA_o;>@J^}P}|WU^4nY@Cx8FZU3n)zrghnj3h{T zhk6yoMX0I`GBX&LhkRu8aSHp$>(4Xu1G%0`Q*U{Y>*ww!%ROo%= z^r0ifuxyGb05Nwk=bFPjCx@Cg1rnmRoL+PU8Ui+zS~LSizXnPse{A;oXI8m?AHBD+ zbFO->YA{RblkG{_OHWU&`uHW@Aja(^n&lpt_RrlaD11W}4#q5iM?>lfIm)hlkIa+k z`(QAGa0co#+xjscMkFD{Ka!@#1~@6X-Z8QHGa&)sI9AKJph%%I> zW?=CvYvY!F`n~6#^R6DV#}FC&zemveam@AhA-=~~=b`oVRSod*RA098wkx8uGxi3uMxfSPO*o2UiQNsOpmPF zflxvWX2{!&$RC<3Sqr8xyrPaEe;N&tKX^2DaRtWVW@Q|1=GYd%=1yu|8&0d@9p)uNN00T|LLCjBF z3@DjnJt>I4M&b8}UsH@mbGLc!oVEJ55mhAlS%268@LE3K1z{yTC1lqM-H5;StbMwl zd#3)ok7iUL%)#>PBPaQXPqFQ1Xc<}HNC8|e5O;(=VS~Vj1*ni&x`DJjd(Vp7UOMKr zYYoO@4dpb4Vjm>Srm#+Pv`sk-aCHayPu0EjIJA*dwAHJKlXq{&z6 zRptG_q8CtF@OSOH*eJL>+x+|?i=X}S3f&l3s>uLQ1;F@s`R3LoB)Rk|=_M3m6LwpU7pS;ZNcEDJD|6&He#*8Dr-1Y@cn>q@Al?G{UL$ zGiEA-qADJrhb2ZHeL&(v-5|-=;8DM&0%Mo6e@ha@yTJ$s|6<*sz_1YP&Z&ak)kE0b zuYKYOea(C3d$hiE7wz^iq}ym}tkCW!Yg5UOcSU%&vjdBghPbuXq!9P|lpaDmQPqXN zC!P{x0>&?CY;moKA$;0`l!Cz(b?#dwt7PR4A9h3izefkgY%bVgrRn1A4bLt+=;29% z?oRtv@NTbj)p*>P&_XNYt(Hfq1L}`>$Z4JmmJ&w2)((b3G2Y1vP(j1vhPn&N7o6ZPrQ#IbPq~&)rRkFF zRbMy1_C}T8XilK5c?o7bn$T1z5l;(J3bZoN2?GgG5wDbI;^04Nf~8I#mt?aOGxs$_ z&oKZf^f$7^$^q!c;DABvBZM(9O2m`^Aw${aE=i1cb9_9^g`xuB8<_U>;cY8-Sy?&s zfQU=8Vf%Y8?c|lZ&y#F*V$w*+DzneK6YY7KCI# z;?sg8^U*mH1Xy4*6(0fh-cZufqB;vl%t~2+fgHe~!9XVmez{)alUQ{A>IKL|tg9z1@#d4E&D4C~Tu9K-oxfM8w=>*fHo z9SrJ>n+FzdTNK!=hB16#L9kw+QN*@zGtRo0Q`5DG*gqp|V2@Rl`u;A<-pNp>)vi3P z+}WQ%@StBwwpz_TNl-$s{fhw5)%|`6fcEn&^`f_PdG^HN!%k`mA8usHxjn={x1k9L zp!L}#A3_s}qB5$Lj0xH-ORJeo^Vos=!7H=(z4uC0Wz8&uVS+X*N+nU~`KCoVAwiQC z{2f9uKfgxYaOVBXPXgpxq+3fbpy_?>3rNt}jo0-rj4ShM|CZgmE(-}WsGSIppigtV0o?uc+ zbV_`T$ybIizc$FBlvcph4gfdU@R^G{o$xrliONPF)+^h zdqtGfCCfcA7#+&J7|H_4iF{&G0FAW($q;-RdIdIhmqKGL_4*@E-Lx$_Y0i`eOWf;B)!5@ zmqvCoIfA%5pdNergw8L%U0$`h>y(Y;X>QG)KEM5}kL9xlFjhjX`C1;tqybx2uFJ;; z!oUg5Td>B%WwGJ0{F(W-?48nQw&R5}^5bQNAwmcbG)DsF8D$0hGsqSMe+@lKXwA7_ zS?>6B)R5Wk#ynTIXH%~&;C|bFQ|YLoer!Qa2A+%yY>IMlWXj~aco5W*JatOVG{$s; z`g2^Rq|em@+nM5MbD>|UrO21;_~Tr}h_O!Q>=XkaG-5oR=oTP$v6^$md!a@!YcGR9 z?yjtT;qsk=Gp8ECoHel_3WyrJQi+%t0-P31dinjCuh-3VSZT9<%VqAAK z{ckV1VdK&4<)^Ry;n>BC3WBC+&Mn9(DbdUEJ&PdeA5+b7VYH9nFsuE1SX>0WMOY`0 z7ku$Gg>bM;!_6T!Ma_D7u@<+3WUh>Jywa@NbVGz?VVgou!DHO?uwKrft znj%F{u=i>c%S|vYpgO=O3q9cko9K~3g7S^LT(J{#B3qRoO~gCIP7v?|Lx$WdQ)V{C zODS(pO2EwuE^G}~z$|U(-z;rVvNP~6wh?NFR|8Zoir%Jc>W{B36sbRP*)>|=6I0Re zeq$5h@$BoP@3Gy~aYBBqKF@5WJ$_bn z#E&@B93H>Qut5edd=dZ)4b9c^c`u&GMt^>D`R*R7LYrSNp(smC3lIa0$kI_&rC;a( z?J*4EWx8r6jFaU+NfV$o)zvFCyW3gTA2V!l((0=I*n22w~n8rYExp zo#`_le*QEgkiH$U2`iKeI4}>!Fc82kb*QN{J(a!hvg9tYQLh;QjcHo}NE84o0NC>& z6b|y~n;aZ~FoNgGSZGXRQ3q54BtGVfhwDK+7NK1+pMf!2i*<2ipz#56T3>+kvvpkT z#Hqs~dkz39`c!teE2nI%e0v}aF_7KL3UTxRD*+X6ZIJx|;8$P+1h52{t1BGN?4Jw^ z10N$f*kgXOI+9COSN|6nVxGxv@Fw4y`qBj@`?F+V@e7?U;JEuFF#!fi9F14%JZ-u9 z3xh++tc=j;LsjefT=uL>;@fZg$1kO4YgD2JzE)J}2~w{CK~|VG*%WQ#xSn`t4`5pi zb0DP4OC)GfELedpGN)Ha@nJY2Hk^1`<~rDn6~|k`V&TYrsuQf1D;yD;_FESAg3E7kyl7j zsSu>;Zx%XIj4u|6oN;3Nzt{cbRan@bJP9?a3+_hSE4D$~Gw}L9T2gEnB2~xLDk`<_ zRe!wYxeCqaKh=`!pSE&N^G}T6LL8-4J}@X ziioSrdMh4yBQkNl4|G*LKt)#98}Ytf*K1i974`pru4HDCX_HcP-}faSaXR<)%=7$? z@9+Bsqh5$l0LxmzegS|-fWO1nmP`p8*apXH@);m4F<$A<G>Gxio#BXt1`P;-q+^l$KixLIS8e3gbxU4NfBnVAxw_v?ByLHiC8RlGX-TEx zjRHp9U_h9OCABpuRc8k38dx?U%|#?G3cfJ1PZ{6YTk9I`T|4>AU=dQ z_+%8_aiETI!1CeRPWBTeDQ*2&^w-Px4pvRcaxyJ+?YFJ_Zu0HbZ>B5tT>E@M6C@1r zNSy#znnR)>JuJ|lxZvM@7`p}7pWb#S+twYkZr`2uZGYCwZrdO#5M_Ab>p*o@g+x9I z3?bSYw;R_YFh@t*IJ!^(4iQZQ3oTbRSy!lF37|oL+IsoHeUaquXLx(v)xK!etIzLJ zUJ2z(NR8lb@O|E1_sUU!pY>YcNId^yVZ{ew!h)5;l$8VhM^lndC1Gz8tYb{<+&6b@ zoc_*;VdMI!o4pZpHx574_`6sHZ?9WTjjb?EGL{`6MPYQ9l~?=svK@BB}!ZDoN zPzO`98Yk2$39uFhw~9er5*ApduvVHfv3@pz+7H+!pO_EU0jWZX zag;GJeFfz}!vaUR8lBZ#k`wrd;$U>?5!MgZy)(ReW9zXe z75bHA1VTw#LQ4RqP07Y|mA{JCc2CYGV0SjAMP(%h1V&edMadtQ+L0w%F2MhTb+5&j zgl16B>EL&J8YL-!{1>EL1&*dhXZI0e_r!AVMw}dU0Vl_xQD}NE9>h3fAwEsrMn7G5 z#s!04`XNMWyeACQJR>_u4|+jj3{y8)gbt)grC<;%%E(?)c9F3aCKt08neQDHYZ*aw z7-l|%rthACrW*%!Zv&I<>X)M1-+DKiZ=#Ej?dNYOzC3ZJ8YVS*CvNQcdX7I`y*-cX z!47z1tZMm@+thsuxsK!hg66kqirG)W$4PMLz0LEeKggx{dh2l!`dO6DA3XIRr9R&ee>bYG^EqsfTwb-0YP+|eAFG<)f-QmwzMda&RFWtP zX{Y2oWJ+$E-2dGNlx8!=Mi>7Y$!{B$xgCR>OB`?i(GK8ohDIZaweQ_&MB&f!=&MTg_ep-!A5y=cQP}s5;QL?mPWShB6d614JZTr%gVpVxOi40;w7-W@>3pvL zC>*UmTetjl!`6+h%lg!!LT^4(;CaS*(S{DiuGy(q8+QhE_}4?s7c5_t)QoK#F5<(E=^v2M)8i{G1j6Tv-~ z?pDxYA>QQ!CVmE)t;GXraS`KBEL0B130=o9B7+9(8Gc?AxhMdTgjj^*vwONCaZaSC zzJK=MyYH|K?knT|i*=xi>#?DodSM6(o7Y$p1e-Q6CPC%vloYEVh|5&0gbA*(=Ja_* zNxc>-()5-u%4qn2VflS+E5@9ui3gNkse*OYi{VWz zX-)v~VN6%oNqAjwLfek0bc#Vmr;fdD40YsT#=Z(L{QfD2?dw)vbJkI|W)cbeM(cN3 z8ODv9ePu^{q1hJXV2I0|jFNbeJ05QWN-sgwv#DDAmK*Q<>WDMf58L1ffMzf|6qOG0Kb>vr9py0j<&mmq-h#RY zCNbL90{)~MA^%=pDi2hXgGGu$^%#Wz6)Q-mbRx|OERSbqfe(y@@ZeD9Wue#}&0H@ZmTn#c&de$$jsbrTl zJiEg%U~HdiKPd;59qZOiIg2}PO6gI%;=_a|m5lP>Hc6Kzs5$U#5h$1l--ic2`@+nj z&VfMF2LYJkI=1>9^N;H$o%+YWj5>8eVXC4Vf>EnlS%Crtnivy=l#5-F6po9*U_Gu& z3lM}fx6(UG~TKD2fXG;S|>xwZ_FyW9FGgGG=baVqjYQYhXMsrol z_J&krn(PUmF)aCUaY>M%1zNjvl9DJ`L@7$Uc###u369P9La5FzLtA0#572Hq^E>MU zRX?9UXjjSQDhxZtU za#DMqoD|#+`2Io8)eJt#HcrAoKDM1tN-XJeQX(jvvXHA_VSC7<`oIB#jE%i;(|&6! zj(Kp<1f9FTX^eV)5hfn0)7X3?_EN7ue298p`|D}F-jD2e_>j`N`Hp$d7}s zhAT@Slzq)jA}46MOx45$Ey%xy%wFzjG{{9D*a46fMsVp0+nNM+73;vqGgIzp6#nIF z^?`T;CxWCyFh+J{ui#@GEPM?| zhhiZdeL6tB|8@A$HQ?zJ1Jvsatl$&$!Cw!q=;gpzAzymbvPbS{JwngJw#LL%(vCc9ClrwoyO% z$ZH;$Xk3%l>xCk5TR5GDluafUBY#*|b+gx94M)`i%#S69RJTSsF+$hEMvOGQL`Ysp zV>=0wI(gHG?`7Khu~&u2S~lL zVbK?;BeFx3J$KxkNu$^WRpo$;Y=z;c^sF5_>qnXjW8lTB zD=C-ANlhY$m1t0%Cf%YPZKl$CHt#5T$wxPyd&;QO3iAhwil-cZHX%1hR{?PsjO0wE z5l2OjRaL-(Vpz3Y9x|A`EMgO`W2)G{4Zh>l-T)x`8TOL@`1;Cu^RLY486coWO_Dev z=?6UnW%VS|Z~$asPk|t`R7ABz$#-jF9lXdc<^%|lboxArG z{~7ZO!2A+R=6+-GsowqUCAY3P?Y2*b#q?T($?riRc~C9|YVH!e1aog7YvD!QAsG%L zGnE`=6svk?fP2DgbNRhC1c!kzS`d;bUE_N%x$=}J{7r*j*VruOD06v*RJtjdorUTT$raR8ziDbIbAQ`+KPuPJ6b~XsGTYhbATNraprf{K@AEIxZGi8Z+T_i zOBUC5!l<{re@}0*l9xbH(##;FCnvLLPDf(RqS}bECqVKA6`i6N87n4A_HoU#j~sUI zut68%OJly7(0v!Xudh$L?4MW7htr!cM^J=)PC)L3?LTOY|Dh3Ckk`L<7@WR&`P^Qe z=fK&EdbQutiyPteJ|BW=tQv_riv#M=eE)4?lWL_ZK$5y!-g@2cvpFo&Eo8P@A?*lN-xA4~1h@j~!Wj z{X6(NCiX|$J^RCN3zF9R{r$P}wqO5E_hPaS{*_WT&J@<7>58w0H{cNh~-J9pB zrrO`he?aYFNgt`b=ex*R5$}W9jN`aj>O0 zl&+jZ=>o1Hu&?xlLVEQ1#>h+Nv~}He-(h&k63tD=#UfOxNGH$ht%gqVfqNf%^)a7a z*>Cvoh6NZa&mZ&Aqj$$PkTsfGTgt&Of%8i&eK^t=eGC3iZ=9vY^atrU ziYLx{HgvpFg1E1q@I=|!dO>A%qypc0dyhAVr6d5Q)Jz{rx%ol9jZd~I!%~`9b76MQ z>~0Yu7cbd6KuQY{pQL)B=5d)-r*f0DIx6;{t%>kL4jl-Q4d$iVLB6Oq2rHcsw;ZGu zbFtQdz(wHr;>M}AJ$mtzO9~g+Q!oSzA@< zVttIV_bPB3!=r2r1Yw=|s#6@Z4b(ACSR&Kr@xL_br>h2&7J2tSk#FU5AdK;~@F9_piKk`==x{u&Druz{FD$)b9b}0BIowJmK8Xl?h1u+e@Gv%k4yN2d}aT0PQCNgBXoi#7D|WHC?KRVe3UCo==%?H#ch%Osu&W@Y%hq@ zx%Erf90vwBm-1Y zUTP8adBB`aB{O->9FK>cm`a@)Mp5}1eEsA_w(ovs^5aJ0)dS!A8 zZLrol)TIzsgQA@t55P}zv{1FQUzcIM!DHC-+w&{OO`a)F`{m!mqaz$e+~gwIbjhVJ)+Ka@sB=ft|n*=S1nyC-CU{N1*S7X2| zE)o#3bsrG2;ee2hjbXD`pFzb|z@YN>(erNZPezd$6}|gZDhv+!qch%2pRy@YAYRHy zl!ay6xp0~lA&@J_bFBV8N~*>KLj|rJCgPJ6!zK6zj~hNKxP?PiFo_DsDMBA^7dn#O zDh8sF=Qc2vU~@R+HYEiv9BD@i^MGL-uC!GGd<`nsgvKHaOj0&{5gNZDwPr;TENvGwJiq#cs;%qhU0NI1y$AYrP>zr>2wz=ptCOK(=3~3rSUYSIp^y)BsJYLHXx`!F0CvNR3@91#hsA|J05KNiVKHL}K9!b6#tW(#mwx%h zTfHj`cgokT{?E&6kI8oLty2!A%3~2>5(liS$|1DFD)Gl%k|qH|2i80R4;hBJ6yCmr zEh59!vPJLvJxUIS>nu-fIkj-GE0Dl&;QF`94uF#Na;+gB{3>#wD8f`;Fo?PBY+VH5 zh*UxW78VA>;SY>-y^_B;N?x~r<;>fkJW^-8cKNwPO6c-(txjZQ`!SZ9@^S*7;b0L; z0nJwJ8%MyWcl+x{7>hTRqveY5o97?iWH0<$^y>tK0E5UbN26MXa{PM%~c-1+w1iNYDypAXUPph^XBmeZBU{dtX%`QsJgj9 zC%tAzYt1GkB@Fy~VAOM>h_c=2p@GFPy&XW>bY}EQ-4PH6p4rREAO2B)~dU* zw-o>+0AQSjKz_cpM|3Pn+0=)VTqQ3hV1Jqi;VMD13fTcW8k=EBk;rDkag0Evp$Zi0 ze1V!A=q6GLHVj{oN=@#Ufj195`9c4n-wT}Kl~*qOblt{zTQ$8!-=$Txlsaj&Kdj@a z1@#6>T@^ONbBl_JtB|%|=us2pEgA?9*jUOASO)oI8^cLpjn4~lJ64GF@TPksCq&Da zTdy`9T|Y_3sJAx*q7Cz1z`J?dLr`{I~7y1!J zVDCh%j}SsqtRvMDi-d&;WecU!-qfOGKoU?`GDlQE*;qfz31N|A!xE&92`~;e_4GAg z^o_u)Pae3c%KUu8apjD4nBvA&SqU;2{&2eQ#=KfNevX44bp@qksj3N)DHo)b;FE1Q z4ZG|7$F=g(*yY^yjepfiWcH|po+tdwi7@s`{@j)$(kv|Ig2tFmDVO!PE#<0{qvu5) zUh>R!g+@x9Cge$(Dl5r#g1SwVI)WThJjn6phm%EY3+OE2b3?1hV@jr?9E++B#6l8N zQjwZL3}@P%TQTMjpBy z=c=LMWulV+{ZBBDihLIKMc}rGX16iK4&Ce6X}#$SDhzYvtnW04+SRr}o= zfi>`QWbZ+Z09Ka2JPOk+(y?$lIY`-x$T}UY zgHb2O&TjbX_B%#SK0Rmgjxm;=%vWwYNB->2=ic|6_mifbmy|;Ed(e!R6C+@OTTD~} zxKc8zN@M8JBRat@alS2CDTI@ecG$4AEQ!5&!@#X~f#%#P31Q?WG=vj`2&^F9tZvKY zbWnQw)$$3kOh$?LvvnqYC0BcQI>XLt}51rj}YZ(SlrE) zORH!!%#$mI9ysNyzZ|32nOgi@!jtZ5OiRH0qwLV~QTFhKDEHD6@h8b^7C!g$kl~l> zb)+Tm{JVk(%&m+P!QwXx7Ehu?H0WF*S`HW{BsRpD*&d)BAnaAXF2G6hw8OWpd4O~1 zy?LN^j#SR!00iQ5$RP149CGks2kIEA7caF%zNkieF#PtELeLS$Qkv#C?bw$9aX!@G zgIpV(8PB~q>$!>b#@&thG#WTLJ>jN1rU$nZ*T<+${xqh!q(6|W2X{ew1cpyUQKNI@ zd_v%55S)R68BS3~h?I2|0b&~)>vbNWP==F`rrMyDNa*9RoNp?Tb~Or7PJo>l`d*0O z0FeA<>e;b_=l<~XpWYchWlwIf*BPaLs*F;reCeD0E1rBElhx!{c=S_?-DHp`D+A|o7tjD|M3@{Q5c z??19urxVJn3$YHr58j>&mlk8Qy^w2!GKpY3$8tjD2RmYN`wwHjbG))h2Y02KvR|%lck-C&%%jb(H-9wYo#DF=v6qymom>Cnb6ZH;+Dp@eJFA-; zYErx?Ifbx4P~+=ZgnB}eMnF$G05U+p#(_4P1y-2{_%sJff{N7e!GTX*a<8EhfSMugUmt(K;Zyu&Gd4|A z#TAvEvUYxvykyep|Gb!++#L|pjyUNk6PJwo!|60Ih%<*Q*dU#(5GE=A5igd1nRm0J zj(J$uKJPB9l!1{YCrUkHWv#x^n$uS)wXi4!sSqly>`thZ{2shP&;CA5o}3h1cMVvk z7kw^fep8nE@ZzoV9<5&@_aE9n`R1K^tZv=h3KWy93iuKUA8;7z zV`jSdcl7J8zc!w~HZY)cL4~vA;HFE$!%QdXc>WF%DO=!XX11hpK@|&9&S8lSN5g4= z84A|LXggX~e5_FnETy{8XUS`vn|^)Yw^_$}x7fTL={O&OkfB`ULG&eI|5M3Hi#QI4 zCX@kZhGGlD6%Z%`y~H9J1Ijv^3oj(0gXS8vjBM>mC0qG6kQV}ep4cT)CMFRUB!7p* zb^0(I3Q>jUQB@?(HF(=SjwgctB(ft^#JqyBj}AcIII;?6Mq0um z$JDTmAr=&MocYk}Q9x$9s~ykTa`WG|eR*Kzy**&3oK28HnFP$>u#~9<$R;l*N*8G+km;C)-f_OQT3+13uJL*M{<6!uS;r#a8N z&Nv{gML=`lP*_}8Eu=cq0AZH_FtSXbAgnfLgx)>RH9C$vjPDVA<7o~xc~3A0yyc*4 z&yl@D4{pA?YEk!3RAUNhdD~#23!za1y$0v!B!Q2J&78ou@}(7&m6wcKCVwN{chsc^ zU#Vk5mysUbJz|5-NGjb`C8Pj%2vZ5H)M>jyMr$;jFJJt{DamMkbzyiD-?5U;kg~OL z672qQaUT{aGOLz>_eM8|=y*%)-=Q}Sezx)ap}V6*S6$n@LT-NfIcnekynvVVEEA3> zc4q>Ug3oYB#5X4qgUpKRh9($A@pFk5P^Jv%xCq5&HzPB!G$ebZT}UNUlt}{VC}``# zqF)Q!Y^Ka&mnd-wHiE(S7SLZ@YV7Jp6vYf+&S#!ApRF*K*~u9Vf0DnGn~uC`^;Et0 z=5z~f5V;M@QyBPt1vv?jxE8*rtwRwJ#8*R)&}qIab% zb952GI}H?~fFR!PX-03iIV|w7s-ZqcAp@~M2*=6Ny$ce-P63b(WG+7ZzVGfBJ8ajT z)<4U$#C}&__SmU~VILe_bYQQQrR%Fu$T}~ZX12ogIdH#ti9zEmdJJS_MRRBmoGe3| z!GJvSX)WlmxNXxLM{GRhn4O!4^zWm=)o8d_KJfmnzuxp^zmm0)bkx{Dmk(Z6Zk)Bo zQ{iZkYXh$c*fo$v4Dhi8b7}+VP{aet`|J)9wN+KEneEEbeUxI#!N-b}_G1tke6pCF z9`tySeJ6Equ>G-{GuGd zHSlu@khlR!s6?0!2I|^}54m~3zzKoDyXy)o3|Go0_q*)G>Ha4RQH6D-F)&zR@4#?U zVYa!i$QN?(!k8YoFs6VOQo9*ic%}T&^EFM0YfsRNb=mz~!UwowlAv{y$|AFJDL}Wu zB%&xmbPwqFks;*|ceQYE8C^c&;VL^&_5!q@iT54+SDO$&%@m3M9d9!fSErMM=f1d0M!Jf z+h9!|j2RT;YVNs>tddVYf#2)Ce|=eY_+RNxs%Ef3rh150Ad^@GN{NCjMfRqg8D8Y2 z+$RDHb71eDFUE<{loJ8rs({vB94n^9oT#YJ%oaTe#H(O_>&6f$7^!%8QLd7uBss4<#Q%R^Td7xSR2#}%Qo$3EV6q+&1J~DQDnNWM{6vM>&lRU$AU0Lx)d0&6~n>oSO9OA3CjO-b;KYY~HkI>L&UxpHV}T7i8546KD^?x+@}IV=$3 zF%*!22|l`1?LMcXtOE-ERqK^?RO^>@RO^>@RCiO>k<;$8w!&Bm<7QpX2c8BTyuY1_ z+HLZUw{`tuI_#Iy>ps+DJ$C3ZUyPR*!-*EYtpoNrYLA107$QtY6R6Xo98JKE6?uun zhk{!}4h*vm;$(`gN3Iwd{c*)OEbnyX_5qLBRm~wN4~lnECY;CL` z(N`YFh~FvQU(FhM^!r_cXX!zjcL@s8yguxLcpxJH)6oLkFt9{Rz1e;SS>Ctqo+Ey~ zuS=7SE7Ps=x~scKyi$~66UqeLoys5!Q3hz#!a#$sUw!4^YZ?~}+1>d&S^gjtZ3@vV zdYgDvcXoVlYEpTeZRPP8<^)CJDA&rk*=ZlH`HG(>_8Q*1lAS1wZ}(wQZ%OuMpfvv1_y|MmFf z`(!JB(besrbrkk+1za}foE#rO6o8SK(qlFb)*+Iop1F-Fu-aE)6G9dAhS^TaiN`S?cZ;XxnskTpyMe$6D+1sUc}-k%(F7J#!(!QRz?24rhG#!l z7n>*MWaD4>0~&yCkKp!pZhxH@^oTre_3bqaUfEv{c&Ncpg0!d>R=9jL>Xcsn2F(wT z>X~Ve$<~fvANYRiAG&kQ9SBfX>2ouI8gpfplPTRle@vc{{^;X5mB;A7>nTevrw>d7 z7dFG%pxl%$0MZ^`x{CN9PMM8I@4fX@a^Q>x+mlf`#*iw zb%UA;v9<(Q!E}f~!^I<{L=lu%gPy_0i(amk2Sn+qq&osu;mrzhx3If{++R~32~Dq> zkRCQl6VSPrLO1m3Ks3E&0lqwE@##88@%b9fV<7Wn{W^zUYuF%fUL4uheonM3(?h`? zPdWXZ(3Z;}iKSQ_WmXn%kSjM@&s%x#EhXoHuz+l9Y9?euL;ojW#GVi+89LWcRr^t{ z4EU=H9=x7Ua>3Lhk=#g>v-VUq2%|m;Pr}`q#VlzMq~f>^w!0I(kxv^0ywk z*&U4rxd>Fm(M#HvzzpNcp&nfjyG5%l@haB-(frL1e17wga+RZ}+x6V8jq(^{&EC!_ z>w1;HhV%ji9#np!+JY0+xd3k|iE6U(?oU*2lt+g4p1ofOuhX%U+Si!2%ryr2G<>yg z%E@99McBb1kUOY2L8PLnptOdMM!6(hWQ_v+1pw+m9tQ3Ae0PQ3h0db>aq~^5Z0WrV zsZ5u^e%DE#(!poKaiFgPHIO;PPUN6HyTEgRW^jlHHVvf;K1x*omfGaazK*&N~%sMGhreSui23tH!T$qx%yZ)PdG z@<=r(r=gby(a(bDCqYWdfl!nrbg`J=*azg5YJ=$GVXQ1-t!6>US5bszXY>2F;0u78 zM1ZlQvtf@F)cT#ut8(k}FAn->!ipY%XT?dZi^9$*7r>I@D&U@ptP5zWd#OnEsyu(> zjB8$SRyi>w$jM*p0ZW) z$*|DXn2xXsuppOijCXKs3!=U=u@-kS>Vu5zc>P>XNTD5&`RMX;t(+imQM4mklV?Ii z z&=@3TF-j=*x4;dEE#*(9k#)Jb*)?Fl~-M`MCAPp+vF+t)js|F z)H4g(8Y59=mIanHn*h-#0F=xrPyEGO3h`L@uZcAgvE+=cV zEa&?I*R@Svc~t#{lU5(D1Glr7ymNf@0AAH0M7T;m33$V?Zwkgg5V|fG!(3r_SAJv1 z4gWfN{Q*4|Qvo{PAh5*>iMlSp8Joj4Ws08WUHS3okU_T|>e3q*?Zj#(#gCK)Bu}B4 zhQwX!RAiP1o_+l6*e>LuD-7?+&iYTTn)~Mmbm~cZ_G{xgc7PtSR3IJV1KQDmkb^F+ z7!>brM2h2ZNjx7cQIAI3zJKsL0QMj^IQ&-B952~`n%EePv(@%FnsRvBzev5S@`1f4 z*LeCZIeF;G8mN0d@t}SX9gk1W%`(lX}822O!d|=FHc&SL;gf`D>b-Q8JM2@45*h-YC z18E|`rwg67{6)cX2ns3jfIo(u{Ou>x=P~{JJ_r7Ry!P=mu7?kPi&&G!Ud5!C`ao`m zBp!0Du_)=H8A9NKT!+X-A$=wnMWrkv?%)-=UM(%Ce8h~)M{NEM=ve0Tk5F7%rH6zy zT-9$8HtO%&O{0IlUmQl9x%htgGa6qaic+Vey9iqhPvHUciXNsH)`n31+8kVe!XttYDp=oeRigitPfQT*!u#Q5I_@ zpRr*4m$UC!KfLch#*gJqul;B8@#}UWv*AFQ4V1AcHOHZw*%)Kgvspipt)|IprCqvsHzgdMGNsZ!G03%n z>NEs;v*Pun_CR~$^<2VO{KWRlR{inbw`%pw8!PfCNWPV_U?2|Ca;0p*0SKiUxK0TI z-wu2%Bz16KE3LSnYu+!mfU*;022y8i`*h&AR#c= zSPT2li+|iTV#m*A`-|sX_v7AE^u7@*62M~obb#a1?Ws72+0Dzr{e2;C@jhqXWIjl* ztyuF~L7#xsa=4RSBtE4GPdPwbij}%F z>?H6DPlCcqWhl#9Z~!|FVp$`ilnKY#Gyq7$qrr|tWEX?r7LSw2Dq3q4TSa?Eal{K8 z0`qSHXugevygY1u%8HKmw!h2cAS_`|=P_|RFG6y6JrgkV-PHr#>f_go-vf|$-qgWtJePkW-IIM-Z7$2LCpw+%any*o%7v6T#V49Ai`J#nYv3V z!&Fg~VKaqLX*k{*5K?JQkh*B7i=$HX{q1CftJ!jEUU$mg0hQ*bTAB^I!#?h=JzbGF za(#O2z_I2H+#?`xQI3p4&gws1uyx{k<8O^B*eNeQYT%t+2BJ~stSB)hp&{q#AvIys zY-Ta%(i0#z!GwZ7Pl#oF4Iwtv$W{eOY79Em+GthEN@wVvgIwA&}F_@p|Ss*!SJG-nnn;3M*0#o zWdhVph(8ivf?2tt9k1defy!HlJ={OE=Y8+_{SW#n6MIT?xWZt_Ui^x8$qw&%C8IE* zLB=JcGm&D|%tnQ3RgUh&7LG=N$xhN@ITNa=j8#5Vtrmu(=>w-vi|o!&jv+hlLTXgw z^`ah5Qe(K;VOapy=q|L_bZGAgIXXtK*jUPe$_pa6(k;Wq>5tE}xkfyAb^l?%d53Mx zesIZpcA@!7z3>j@3+BREzIx!2`T-q ztY(+hWp|iecDg=6;Zg(#Nhsxx4t41O+{f)kY-#0jiDj=F_wbfqKi^(*UaV*ZNmG(X z2(?_{8)aeHa5UB-N^Cm^U_d>1+W}Q%Gj}{2@~#!Wbxx5JCRA;#qT;Opxd3=kEi7ee z<0JqqZftE8L8u>dVBzvKrW#-uLT2`^QUB`v_;YdSpgwOs71=MERy?_*va>LKp(Ly) zO-YTGGUYwpQhDpmR@Tq9aT4LKCp@MpkSb#=Z1lpQ)TSU8=(9V`ez0Z8jjf}q3IQ9K zNR&jxiE9p6;NdH#tPmQrnDZqoyChB|;Ub{@ULWpCbx8C{ds{{+k$&WN`Q~zwegm@4 zeRcN4Ll3s;ea%?o7I@J})4^;3pvAnhR*r+WoEY)ItnlsxEB)pyy%3J6J|#*hs-KE9 zwuqdN0sKWkV-uFy0n(dbArH=_XMb}xz*F=U?#5^sob`_1QT6Kc#Q&e5u@TKSK;n*S z-9S$i%4Mlh0D_dkT|B*E!;iPzS8?qBF=L`-YI)ml|6eNfs6@A`jjAEp_JbVHH@bw9 z2OeK=rnXQ~?cO`dYO@nXewvaClc_~XT!*00(nU~gKjH`3+%n}7)5Hw}`noe5k{z?^ z_3hifnW5Xsse$B#UL_;e3y&(#|WDJ#J8&;T>O zPh{AnIY)lnZyyq7H>#)P7uT7V{OE8uW5LJWq*=cZPhZu{>pz(B*<kveSrutp-e1d2m`=-fXlq(;{}TV(|T`HHxsh6 zF5a+Q+&gjI21h5OjjhlErZex1-f;PfA7#VQc=tBro>%*Sq1hS@ z6SK`j1GQ`K3>FR{$ey;Cp<*oTZM1sksNxmI56Pk?G2Dh(R4wXdr4Ka+X0wkN9$quo zt~acyNh~M_VzHh2G)_iB1150T9!n>&f(<6W~QlvhF&3=mWIhL$si;dL=w6>E>Cs`z9S5I2LqIRHo>LApkmvA$G+Ke|GK>DI7=bl}z(s|cickQBthQxDD@p04M%2g?f?3rCbQ94YJ?^L*=69Qm=Z>*l9}qLj>Uy(INkBM zW>XC5;klBywI~bZfe-L$4uF@6YZGhhKh&a#NPO$1xf5%fUb)3sYRTX<4Ihj_@wa;3 zlwIERmwnm}C6BxiGhH%xZrAX+1<_ z-LcNObf<(ddP=abi_LGB2l?ib9sqwwU3cya?uXxIJ|YLogdR&p!$Q3bD->3tV#*hKx`wx1lZ)WCoWPFan7tzPow?yz8+Wh?#KSPaOUiq z!iHPC_<+D_`6TH>>f=dD_xpDK)A&a7g!6{|cHa6?+2v;j&x`EuGpIw&dG`xdh4}fT zKit`v#!(YhYy&orAQ$OC*?mP=gR!#vKT-GY+liXNWBb+7ns-Z5qch*{8DSe>8mBEWIFx-RrIfzBb95 z3uX%{+T|B>&0M50%~rYVXts$#9M*)hzkD^fW3z#;Qg1Hhk1`bR{4F33+K3gyaOdbr zbtEMKvdV*L6f~i2?N1I|f~O5AF;HF#8f7^ki4_4!OsuaCso@|hnno~_d~U9Lyid+FXAon8LzrgvX_f+>8T7)nCn{sL>?;p80U zfPYofAvW09)Zq0sRMSc_q$24!En{@4jlZ9vD!X&j(tE$&gzKaYtF;$ta|e7$$+{RY zGsOnJG;jNULv{`(qpZDUjq13YPewcsLST$)dAmk5ucDv&I#%NC$;0g2OTB*NN$T~S zW|$|lRoO8+cHAHjUR6#2TZgiY_-vXuwuJy!ka%H0NVSAp_&6_h3`LGD;N3)EK=CEFsFHbwem@ZM`5~}!?CDSVAoH#WTfiH=e2oSd&AF1b)3qk)i_5HJ*yGDiV&)(?& z>YZgH^s3wKag+wODcBl;?@}yTb++#7Zpbc=F6w;ttuCGDiIZqwql6%QbIoCahvWkw zfRZyVUh6yzL+;MNwv&$-Xkuh?CIWHe+SKj^;89(j4C z#-ZIE9C!{b2VRglAsC{p3@dc+%`g`BncLSK9sGR8h~LgJZp{91+J=p@Zf`6*bl*VP z(5T4?Fij1ht4$(T$+e~g&dar;@C4HSOq6fopO8KI_$jv^@!UF{z)}GrX>rq}L}F62 z1H3{Y&xG!jjNM|Nl9l%K(}yqzv-@u0Lz`~TjEln3*LYR;RJ|g0H7c3PO zdq>7;&yjK3AzgfB&s_19h%3ITfGd9b6KHxErpdSgx1RyJ&4$TtNNj!MriSzNlXH+F zr#A^XEvpVBEJeIJW*1frC|evrKdaW9{c7xK1JAk7p>r!>0HT~^tjUj34qgPz%~(Yo zOUDFTN;RIFv(GI0>BOH8C8sSY0J4Q}6{08!Pz%P?%6EEFiA0CQMH|z;WR#BpM1PE- z*jVi3)qlS2?a#*Ln9C=QJP=O59Jy8R3E}YbZ(K09d z_^2CNjm#Cj2e%~3C67wLufwdRj!J;{pU5#s<&Z52h-z^ZMYZ%*A3rCX+!$HKeM+47 z$NOs$Tt#hW$|-Ouz`GVor9-L8lq97RbY|f}H^o*x@%R3h>YViH{>7VDvqmONI}Xeo zRD3!4d2lEpZC5+7kN58$9Z8rnAHv&Bz&*#aJ%B22(OFK;d(%L4fG;PYc|v*kc|Wv# z8D2l`C+zIw^9Kg2x8H(&qD~5}-;P6>WcoAS?ooW4pT}1ey}!%xc^}nz9+%<$U(%Ef zl19|MipV_qxhZe1CF3ZhZQkN24+C@`}>Xt6Bz<3eEjphL58?-jd_+ckfj_&vXf_a|^ja=gwS44Y$(>iuo_J!sEE+VjD~ zinlv+56_Vt_gG{1>$Sh>4eA|!#MAeCI3IaGYx=7n0J*Qzal1YZKW}oLLmG--;3%Db zq`&5T+7QX|pVaMF->#gS{pc0x({YX>NH#nw*ycEMGUK3AhXsYcK+x@Bf?S)3g2si` z=C8m0+Iarjz<|<0bqlhliT}9lhW{Z-s4apl%qtk7QZ z@&X8gW;jokFTe>Rh>Y`6SEEobM#FT=rGMQpuyxry!+$FQx6(FNelrWQGajB$zkl;A z9n08kf|zMiUWdzYd#r&hW4e zxuY3gObHe$5>CQpph#F~4YYujj5QXuDfKE?$WD(z$4w z!Qzl{+>N|{)>PHJYblz4t`=SBm!Bh8LmR&CmT4%oni!4Di05ndDB{|)AG~wP>qlL6 zP>(qwCjsA-mkf$!M^<0;#)8xQdJdr}5njl#oFE{4i`fArzk^&NEG%R=sUwXO_%zsn zt_6+)`V&b|AVHM2_ABP^tx%gR_Zz4%EXkaur=(wrOsF zDj^8d_VM-3k6hBwwR;l3dwzRCFdH~$`ctu0j2^1Q0i_*1sdx$m=s-jk zNn8~*!-L&Leao#jF&YxtUpn7C#hPx@0h&-YQihJRMik{~=OPQM!hD>IqS$MmiVuO> zNflUtF|z^0ZIV&N>gqxWgKuJY`c8kaH(-SdLo%DZ<+4LspG_26Al(QWt5m(rn2x2B zm-0&Vn0K;om5q~GY1Ox*W+e%+c}<1ZRCZyK!=@w;()0=lL9V{N1Rg{i#Do{Yf-gL& zdd1&fcxj}2&u6*kSLCPEE*RZioXL>NHhgD}|M@9F16k-z9fc;Z?1X+iooL~rmAn*5 zMNx)4jfhyVW05ak@V>>ZIHY!P|J|KToS*?L8FF5FIy>&G*Y2-6+-ub4@Cq5Da+FX? zKsF#$EkUwsH!;eZ5U)reEO1Hbzl2aWM_;w}75Vg|=iS_YS7G$&?8=IHFKypHr5Szo z+iN4Nu$(zNEGE#OAoY}E$$-3(xDl#KGAXNi4~hb0lSIgHz;geLa^&ID*@s{GVAWlB z`SpwjlHF8B@+=fWdHa%}?Zi2W!w?Upps(T!(rVW4d(r)H`pO0O>zE6tWLHmfRa>WT z&}6MkLY^V0>`a(@7Q$eliu16&@~Na+e5jD$MdJ{gpvi=}%C#l9K~P{FZ0Vj8#!TZf zHxvwD-}|I)`O0}e=gKw?8t@-D{qRU+VZ2~VsGf=Sc%zPGB4t-!{PK_mv*Tr1CW_K| z%9R%fsps3;rIPBwOhBXz!W5&W8zxeAN>n`f(I5PUC1*$e@5fQFCc-&rvwNF_4kQ;xg{ zi5trNij)OO%q62x*;z^3XN9zVR+h#!X6l|hP7rRWSMvY}+}h8McL4^6-a>pjvYCI( zPG4&!`Qdbr2#I1$297|D57o@85S-mB1$85QZqrBxxr=IjTNGN~ZlLwOs&np+Ty;z{ zZltGcayN$#DvY=lTi>&j)0w^cx*=14{Ks(`n?)hsg4na_xUQVJZTI?o3E=T?Q5y0S z(zJsY>$tAQR*=-D*oJqyGQVuzYsl{fTQnLLXXE#raKe$MdQDH$O{pzOn#?35J;lmw zmFr5custmsJlFj8Tc0IMz8V6egepVfHb^_+NyX#vBhxVw9Yr@r>@Wa-K!CsHg_xIQ zxBu{@;C<~%y%2MEm?P!4qz|IlMfEKwfawCNPddoB*=ZlH`HENQObS!bUrP=`Q23EQ zp`_}Sv-IxxtZdctOCPVd9;w%dIG9K~2ZkZ9yV~yq=@-fdV5~u|Eg*2B*dcIqhJOCT zPnI0B!HvkC z(D}sI#3lg)BiIlucB&S$En$%hG7h%!peyR{Jh`&hCCf?=S=sNNlU;Ku{mcBXNJUox zL##CbG<`6H9(O&$t^`1(3m&=GEZ@fuj#F7Bqo6*uZPTV!MQ7sBnBl3m06L~JaC`e^uW&rrjvDk^q z(MQvauE{v1w55(1i}?$X`48szIoQ`~$KyHr9`dc;M$I35eJr0Cz{Xj=xVcj?yH6m7KU_ z={27(`^hn??--DmWoLZ4@SJ}geS)4(O1V(OtrEfsjtrw_Tax3VB3uU98-d_=yd$SV zUK}MgMx$r{5aMxVZ1D}D7?SCaR1VkY8-uhZw z@u^9-ylh2whxMSXFOFV@m-M7w=74ktAn@42Cpn<`isOpDBpAj-KH~Et{sT;`Lgd(0 zDvKIU6G$`4`W_lcu6L_uYSft)#-#P`|AK7&Im^FT@#Xa;1JH1+ znvufEXjq8m(?YNt6mxn27AsH>%U5_sS@2d_zLia;xXuWdme{Z_P*6wX<;8S7+y%V` z+@FDJp^%9UL9^e=2168U+xDchYWuT;|J$KzMh#TWXt*#tCN=UbYV|4jolNLgstZVr z06w`eFS=l7*#sxFacnpmP6KFPx5{jB#!^}^y-xF5tcsI^Ue8?3N$z-@fxdrE)Dlv` zo3t=G#>}F{nqUhA-k7u`CuUgpMdNr&Zvy9lAO-v^Q&#(Fzxr6_5r2f0|74&8%VF2vh15k8x#~En4&wA9kJaPnzZXDByrt%S` zMLVwBZY*oNcdxruwHy>fkR}GK(&2-K8U`u8?E}{$vTRZW{`6XO9P-J`!GJnaLop0@ zsu(71@L`uji;^X-Ghy5~3s3jaM2?7qV#LQ8r0Is8`aDk=Ro8dlk?QLcHP2%|&2t#5IsX97^D*XL$I5K-lvmQjuKhwUvC>V{M};R< zM1%9io-QVyLQ*d)Y9_6`8n}PRk6>y{dUGeN&v|S!>kvbA%^p>zy5mW zS@YRkp@)`;Wtzt1A%8nIB(MEu-i)8$IGC)vG;98o|G>EqU8@to?9O7%74O45KsX+U zq$%Liqn)7j0ZYF_h;Uf2%gR!AvIr31z{TCOPBIo2h%E$B!6XPXz&zU>{P@W~>_Q%- z!f;tOIpzBO=I?tIUQ$3)Vs;dHX*sqz@bU;IS%9eV7IYSZB`+z=jor^_yP!+YUyEa)fponpMwU6w}R-VQ|GHo0Y_Yg9^RT7)QwKU z4E)niL|=drudi8-_B(KgvD-&_S+==-?{Aj;ZN5%BvUY_NakHh?^s3(#o0v`QVUY%eCZv-2KOi9G|{TMdtmXY6Zd8BRp@;MS7vYiKKfeq$gEzkY%B8d zgDTck5_Y?hI4Sd`oNh5OTL8u}BsoY*p)Q&-A>0l8&@;5fEO4;Eq$(u@!a_LVPDX*1 zjQT#3GwY_qv9UxFF90H)fQpxKvxy~#_KzK;=(@)kOX~%$%&u5CAoZzVW?72QPhK2)Vv_U#O?rpHmYFC9jWs zz{lc30n!yrZXnJ1s_bNO(LXNy`KDfGqbLW{-qG3`=kPt_?)>*iOqCy=x;lIE&*#3g z{=I_>Und@iO>>-f%uoZ64vY}-MLX?QI&;jwPgpg59@BrwZqK$}lMOvG?`N|yUYI>o z<2rmaO;^QJVaaTXq>>q6myso*6r|Ad)q}tSgT{;t^)Z{8SQjA+0wMOtaqr!6SzVf5a|ust+y{Ycj1lJ!uTET<$@gaFWS6Z zD+GY)r%h_kbtQfocl9XJBPH)ZNvwluW6>UrIIo1fSx$YH3jHE=PR84xaL8SwRv$k1 zQZjEe+?4JA#{T!aK6|^crIdR{l^OisR5CLbu{y z0B*^)47=*_$#2ZmiC0r3L&W+$fGc}0C!~B)9`xA=r0;=a#N~fJiUO1*eU)ptCA-(! z^WFD~qzk{Y#}Hs4La@3cEJSDXQ7)O+C(~MG4%J3rh=+|obIYj9K3^c6R*~2P>fZC) z^ZVVB0|pIR-e|ZryK_M74D(4_O2&t&Ny(KtY(gR*p7q%$;4QIT*w z4gkVzYtjd;FNf-&y@MS%V3ZAq;~6s>FMV{sEj#)jt2$5Kzq2s-gxpC`0g>UkMU)E> z?IBeVKjP-3>=|CoDCl+4z{p7yo^)g=Hb2Rkc|l+9x6nC|IJfs{rUJbaA-$nymf& zK>CjRuPhy8rD~MLlr+s|Xq{qz%q^nWY=8-B^fVcY4aQJm95V00L&(Jtc)A#t+B0^q zLxPFzBM>%*d%yWzIhtcRrgwu4gBLP1VvkU9; zgi?Mk(ZUHqE)9YmIOmJ~FGL;?1PVg=LdLV-Ul+J=?&+gO{g*wQ3d7oL{NK}`oo6F> zk4**9Azp0Ea6)T5wJ4X|Z%6_55FEj@&*r7}{3bb44vVVBi1xL-KXJx8BZiR#%xKM2 z`|D}F-uAnCoSq)p+HA(t5q{IWs$`&7(P*M_rkH3@cXX2)l2yhF`WCmCz+n%h_N3sP zT(#?&M@#Q7PI%zq z3A)e9?_pp)Fej7;mA^Opp8bPsPx|gprNbcAgyUpr2Zc>y@4g6%B50!~kwXYOSGq%N zhecmBe3qxq8vTnh5qQf@i2v+buA+wp#2z6fB4VZ1 z6zE00Tq|t&siZpsR^iQX4Yo?%Er)-4(7xfox982sp$1ZiqwD($r>n{ILp*&Kzahff z_n}+wJ|4^tzVpV$Z{~-(2P!8L0QgCelfFa_SeyVU>I6-jO>B_s5IHs_uwh^+LYyMR zj&hxn5ROQ6Cj00)-p72&K3AGI8Xn5dd2+wMjQKuOnA<4Kx)ba=%DFO}T&yYKU(M*pX^Fn-5Kl$rH% zq9mlc*lWPgqfnMi&BBBM!St%i%IIRW(ojcKt5 zaCC-HrrQa=f(RJ_cyt{SeN!FTj3UM~YP{$?7=&3A*A-+WC-Ey$m>IfwF4oWT$xLb? zV6jkwrx`O_YInLmYntJhyvei=-f(4k2o%Z*y$63d?ZFOhbBz{y>R>!{Gce`?0vF{Y zVTl7ox)A~1FIY}gG+D};I~w$YLA(XM( zk?f8cUcL*PWX^I}e*Ok#VgBOYa>RJwE< zu_kG-asDE*%V z>MSxUniZpB6)2#8zW*KZQG<8Whi^3eHM{McZGa-v8%+8|yY z=AyYM5RJkS0rFS@@C(MK!Iuv(L%?1!u?{cS3i|?@RIQoG9`3d_fj(gGyN-SJg{A%f z`@(BaWMBJyL7NY@l2 zE{2N=?S2J_GYDbD^(j$;Y##Ng2w_L2QBEdz)SQx$Vh2>g2wG8v;mV&Le`wi=zK#q$mECJt z^^;4!nx)gtJF1%-RB1eCX;s6=Z#jMV=+B3aBaXU#B$Q=D>C~1d@VmjoB`j{P#`Xy1GQLH1uB|sgp*#=x)Ncj{DNBK?#3z{!M z+giY%bR*b9A#V-jNTBVWS38M8mC#~}CX~(-OklNYGwXx+vmAuA7LjeY%*Jd=IqjU&HJzIU!( zW79HvIw1BpBo;P1R2`7}h9K#Q*H<5I;o{g5`hVCPifU#z(M7t-8=5Hx1P&{bkUU!~{-4an<;1u5lDL@@1)N-+_nX)CFw zdN-gGO^Rr^w5y`ODq4F29Erb+cNMBPpz7)J{PF@cj_JY8h>40o2w4Q%h9X4;qU2Ow zl)QMe=ef?$&bX<1;QX+G+0#WVzgsT0E{mgW%v;;`sekCx+XoeEm3+`t_$Hp~94IZS z-a(vOa?lc+BucVhMd9GH*>btB0*7HuhTS9gXg0mj8F}dGfuZBa8L&=*ftZny5^`7d zvVR2eq~8<5l#jnBtz-cH^Dqmqefk-|tFY?`mlr#CY&a(H&I8xuJ!;`rk^r^gEdZX# zMVKTjreJ!gSROh}H)-`n2@7P2DV=%_W)#uCpoMX~yE6FeBlSc6D7MrWJ8ja!f3KK( zm2T`PI)#|yM9k`&XVV0_if$mL4KPkY0on}81V&nT$t_9gI2TcUN-0DuunZ2gU24+C zPzrGM_1k4fdVS{?U!8a0>rc$jT9&%W*yZQA7|kbIVjS$1Fo^{nLGTy&5bN6D`L|F< z4ye@*)qJ3el#fo(j+zx5|781ldks6TH(d5VA0r%~!Dw#iy#KFXT{x6jR4DVh`-rZh zdE{2kd~z!%)YfI(>68Go&w$>g=X~)mcaFR1P5YOT8ocKO^_`I<(}1(aOp@)032X$C zV|kSdXWY58*eArLgcG(@+l;~ccc?{t7vJZGy?w|>=qj%HpnsRw_;M$?ZO2m=tnurp zl1hXiX_@f4W0_KB9h<@hio^5SG^&nRuRJMoNmk_O098kw?h#@UI0;#)CRG2K3+X!` z0fyB}R{@^UNF@&X+Ze*GDyW3x5sLoV=_c9;X zmVwcI_pvLz+PU$T#&svmjOp4|_iqmHp9S1m>N6j2m~qP%wxF*BtH7~N5HSN(NL2Ky zje&v5UC{F?GrigQR?S$GFxhH^+9m9Dm03P9h<_nqEp@n+b4!vC=GheA2AH^tE^&IZ zbHRHH?*FiHyU8FG-i_&5(DF2xC2NCMHI(|jlfr$9RFrCrMZs@^pJlop$vp-m`MA|5-M-)5 zH;m|c;qg12xAkdGHU#WlAW0{5Cg?*JqC)IP49NzcE_p(uYFdX zpA0a_mDuKj$~P3zs*+NL5+wk}r^9eK-EQEaaa>S<;b1-cyIyd|cospLtl3S-3y6Zg6@n1s*aQgDa&Rv2 z!FX}@SDoN57-A!>z_LpxBS1+3oFD+tV98x7WmztHSN`k0!F_gdurZt7?;O|u!J?xY zODD~S)lD%Da3J~wAT$9DDliBcSP*34Z8*HmnHYZ8=vf1=;=j_EJ zznGSqZUi!Ox&w9Dc8i$W32ShAV_gLUn10g|hr2lk0q~)gaz+}NeU4twE!cBEDC37XW2{R2!eu?z^Dv?KQ8;% zsP{fCbM@O(EEY!U!k=`WGPGvRF{>sSwY7Xhny>?DVaWc0l!NkzkH#fNUih}o;cv9u zeoWK1cu%sdXEskZmX#YrfGY&^a1G7P5}>BZ8Y6{b-!wxy)U#zp8dyl#ymtOgBTkihjP?;0nnBT`9oNZ1_T_@^-AeA|-sN{d0B-BN zaLRyf6-&1nf#h7cd{#k809yjm_>nY3^aj!ih@Xd5xg3a3Hzp)lmOy1W?+lA{14yJ9 z&^BXoUFE0%C#7R43HZV_fG`dYl|Fx6BOE>f`3qr%uBD$(axo|%nWt|E`>S>w*G@o) zHNi~Nu5stA^ zjzK3!ngc-yq)S7BQ((FRlsIo!MV%jw*)mi~`22EUBV3RE6IvgN<6qV~^fb2CYwuav z-qc{$tnX|zGF-muT>fCP>iB6^BUBtwSD6){A*`^b(3?mFg*jY;3dGcvwO4Hnv^q}d z->=Uuw)ryC*PW(m8_xXd-s=r73KpT`mYP?FZUh;sp{Q~;5>dJcQ4UNizbM27@KqQJ z0I{Exi%UR)c)r;?Gm(-+tCWgRE?#0JHqJ3^-XQdUsW!@%0=8KL?PSj0VSCW?>qP^0 z_1?ekd}R)MM9LE@7Imazt_0cJo@zqD)T9CCsCZ%8e|Prp)Az^0CtxDqJcc(i9J9rE zDdmla)D^06P-AML+G>((Cl5Jf$Djdwcu+N)zVDp<`lYG3Fw9)oNG1qA2`-f36&gBH zf&(bS!|TuMzBMqN$D{9HgM z>m>N6uzb0>@caL%^Y-LxlO|N2TT1IC2vk~@tAw)D36TII$D)itbi3B175>Sox^@07 z{oL7p!mDrAZCla<)Nl^ny2nWU6iTb-m<66fD2dJc7491P{ka?dwR8N)2lxAyxGX>C zhQs@Gm3B5%c;CY6+0X)CCj&_25U{*lNmh9k=>e>|p`H}Maj;LoQ|AatA&y=hGjPop z4;iD1BKki;uU27nJD}UK$|SEj>*iV3!H556WbS-~4f_35I~z{XRo*6yuGi)AC{0SO zKn_kDFfqu>p|aWTvvD=QQ#P*5)JL9j@(IbQmpTo6+Ux{R*x5(~#&QE(3i##<#f9=j zk^H0HyG`{oh?mHjCF8d&fAmzN%t4NF6>_D5nHCbVH7PW9bgBas@DdI-67j)7IEGnR z`FtYXS|}M&Jd;8{`Gv-pUt2cgDqW1Z`$k$JvWakOfQzy1J<)1)=)X_ca&r|Tl6D}; zP737O8fYu?&x>9>YS}9X4%*#8~=#=0(R>Z)#U+Uv*N zn&}=cUzkaI#{Rp*te=$;5*$KJwR+bDl{yN^UfWdY!!|ayhg7c#dld(ikzutGESLur zwtngI}YAV*tK0jjzn#vTj+YFTVR5)K*TeP}M{5)qzFfVwe?P;&C{ zc~R|2E}Y^bURB}^WN5PIhWR#RvVw7%fc)b?Y12U;$_YWN7VsdwpJdY9g%cj;Yvm)_+MS)8gE={{W?XI5!k zp`7mC@}EAty<*}CON?^$;h3FGCSx7YXomEDhDtY1t)>w~#ptO3RTU_R1h58WE}-)v zRmM;RoN5C~AE5FN761}?fxz+j52JFYz2ya~et7(1hr$apve<-i4|rj$2D~tpO~Ig_ zZ1gf+Q^SnN*ZRn`aSe;pVL-&HC#3X#bb^cqPB~h{4*ZLG33mUnX8S;_c$=aPws%5ST#Z z5-q9L02fJzxolj*%1d?W7)`Z9d2WRw5|v)prDL#0J76TwrwQVHJ<_O0jFF#whU3N`bJb~)@Db#SI6EFvfI^B`IblkK&|*C)vPfFiUq)6c-Vx=dUfu28mb zEi<~-gXGq4f4ynu&q~nu+Pu^gcrr>wJW23UJuFXkM(aBc)!AHTHA8zD+Se7^krlEX`4HQYAFv%A2jp***L&U< zKDgfgDxwbFS&!b@+IFMYd#HSP=Ro59ZxrnQ34L|17ZPPb$e=>(B$fNBn!r;e>;Sch zKLd6%=Fn*3#Z-W60g+1U{s+n5wb}-q*K1hyF1<_dVz3w?yvs~u6TWHJ0u}ub`{%8 zfOh63t=*>$EjYN2l?T6e-Q^8O4!{Stc55V7@F|dwnvCR3l})tO4WJ^bl$^NWg`&jt z$@x`CkO)$9Vkj)A2Yfc2I3peXaFyh6u;9W$5sEsH-ZGO1CV)Wt-Pv1CFXS?})O?AK-O2;{<)6&wq?37VMzbWf! zEwtHmg#6VV6L!{G6>nF=cxGi7HWE!sDU|8%j@Kpo#^Y)l7b~Q3K`^Wsq$<->x#Vbg z6w4HnyEOBnl)^0UK?|U@2@*_@WbPaBP5ahQrNO(Oj(@!T)ucav`(=mQAhbx3YNl9k zO&quZb6F`~-o(bR^oEY<70H0;i-EeolnL_o+T~SOlqHR#oLxwsXZc(U3QA_lsDL3F z>Y9$qkr&2{;`MJPqtL)a`N`LJ{y26xuZr}VvRVLkhDmU9k<!U%`wST zwgtEp5`ZdqbzK?@6wxWd7U7!NbPPmL0JZ^@rBY6OIzX&j+xGRNUp%Hp3RoAH74^_3 z%5N>~cxT3Bg+@G2o435Gsv3BNge#1A(NsR6gdtV>8Y_PR(7F+~8R#RMCM_G+_n*#w zdmhevw7g!v_Lg7&ZpeZFmEjr)GRU>3+w3 zN9&D#6lv9I;Co~_5a0%E@mxevMuGK3G(V4{q6JDGi@hF;eCWb!&pmqUsrhf*FtAZN z9}MMSB?)ld#{;#rgBeI%*jJh^4&Bp}S(%BDH(ojEnH#@KA_~H+d267B1C{Q(n+QmRB(6#}1epgf{mQy(+n_R~MOWz7`|7TL-)`=2ypDIv zth;aJ`-Hr-^V#|hBV$De-ntdK>LR~V4&$7#=o**v6e>5izujms-jnj|+2w=2-sH_6 zH4T7rRsu!z_<2AHy&(x=r9iihZmejcDuWFH4Pq|Zb3#h1{I`eh`}3D8DwPM>H!s$! zen^C!mmnQ}J=eyG^=!SSZdqN=9EzUl+IKI3sWzXj`|)zT9;&;TzNY^h%c%d5`#A!y zC+YSdh1ZojK&9Q_Jj!wU(-(U_uA0S_3qQn=d=50gZzcE$-8qI+3Sw)G2dQm zt=Q#Fe|N5UcD6Ey&F(&pqNQUq78`8<{78ENXQxt##{t?i)R%2h-?OdHpEgH;YGJVCY(^=TKLIn~NrH zB!s0TK>dOc!xMTV}|&xoTs; zsdnaav&~siFT!s2y+O|(^U<2d2uz^ zz$p{V`qv;)YLLq%QUL@rypC2*0ly1&1v$tu2(i$PkYl; zdQMFx90(p1;wz6Sxfuvmu&PuzJR;iyd@B?X%pynplI+T#z@eSaA~&S<$*_xbxH_tKoF&r90hz35T2 zea!dhezyLM^qP0B@2^3RjM|KDT(OG>y@rlY1WcOiZk&v9HTZYV{8g*}tn`lw%JF8c zQ++iaPOiHOeUJT3`~4r+XkY);FKI3H5l?k(D!-6HpD(=;eea}S3+q#l-y5wL;`g)= zm(V_!(VkyHF8v)Vp`NBY&%z?d0i~yP{8F4=b}c?G66hxAfR7uEFZ(cq^AmlL%ewNg zuFvN;`2Ghtt~&PT!k;Tju~+`MYkJ@+~1^QLvpSNYw6STA_t zXXtzjKI{59D(6+M<4*iMzF&x*$DJRJE(qU=4%YtOrfu5e+;~8+=&p0flgJ~U;L#=u z2jTNPjnAVzr*XRL{Re)r{qgWMM|Zr@^XYC;jz0mP&!~BiHmJbVUzalK|B9dgMR@xW zeB71&w8!h0Z8{dU>+pGsy{%jD@wegaQ$N?fpY7YV+b@2KwrRY-eK@+nGjO8t)@`Nr zM?In9DfoI;Y%Xm1Y{Ad*S$J?U| zey&{qh-=Ue?vv34uTxp?v!$=*{d`@G{`zGa`hs9b&-3cP7B)tV)_p_fl8*n9Mr$SR z^z2?iq71 z+W$r$?R>19pT+a%OL$-yYw*JtU_0TutI_(+<>To-@Vjn`$m@pdcj*Ufm{53ldR{q-++eHY%}ino8n{p%&X{`q5V z|1jz&O26xlaJ7%2|3k?)t@`dq%dLkRg^gx99fX6Inkp*kU_DjgAsnQiE}qHUY?>}# zd+sT*@2_jqg)+Jg#m(SCZb{8Mc)B>Mcd;nGv*Q3oPess&e) za{yJac?}nrB!aiifV04T08#_%$n9+kcaRFMfZ4hHKWWRHHv0;@eRL0zNB*R z8^iB+8Z;dI%3P3VO^9%@JeD=mu51MbD0{<7k~_jCK?KT>P!N%@?G9={7~(4aeovJD z^uv7VXP*N2eQ$uiqf`o_K*jh7*Ap?yAEu1GeAquW-V_Z7WetQ!M@mfxc%4qQ4+F__x(axq$tU|X?l8)efZ)XI>*S^S?~oLz<=HGN5(0|^^K(jt1s9h9nm=M>(C-UJie|mmVK~CUP$n z&XQMYb7B=jTu(6^D;YTy*}7`^cS=UduYQ`=IG}n|7(NTtuqk4$arj6T>DM?y%Jc11 z;QyN)>yJ5SpZo5%58Pe!qPVeyUJb6erz~Cthiwa?tf{8z>zZXg3t^ zb2iIw9dp4c_G1|%L${#s;K+JT3}HpHWJ5C5wa0++8ny%*F8~#P#sHMwEC>XOYE+R`^lM7oHxRbTa`xC$EB0qF6M>ownWpOa>jVs)NjaXFU?+|#N~3&hp?+C zXaLO&0;!4tt{Dt85nol4GaeJdH3FZYx=_tSLZ}G->`#d_m-50Y04S`2>vwJ7NyA?W zB6fAvcbXJhZ$;C?TUDQqQ@$vOM7@zXCw)h3SpQ*v_%I!n`@iJfdHy&f0Zv;78;=nr z%CBNc9m1OPA_81<8)fG~XhcWf=Wh$pBvX7=e2z?}u6+Lj?|JypPjpw}inB?S{Pv=U zpC#8rJ0X2jGamzV0@;tUIz;w3n@n<%T!kuZ(n&$HgDh|I!?$0>amk>_wsE4w#%74% zt0FF1z(;_#M5!V2xQ)=|3@WQf9HKy_M`V+&iWm_T5CP=;3_;>ELCz7v5(0lq4GBnE ziau3S3K9&eLZGNB7IKUN+Kh6BVggWr=;V6Z!+1fd!E{h`%Yt%)#u#14Pz;?SEzN>B zmlbn&&!pHEd?5y3v%u|!AgEnv-MF#tOYV>n`|qaKx8Xn3XqhA5^kHi4^Bn;rH`IlP z33YH&(MZR9F@Vh~&BoM}mQa{l+c!!@tn@L(WZO^lb@l;g81&QPX9TOV6HE*mISCw0 zDrSZ#MMya&rxraIt~=s8yxl#sjZW59xq7JW+g+$v8Pc_c3n%+XC!c8MpfE0Uf|ajU z2oau>6xE=7vJ8s~%Yb?|rghQudI#?HzLk612p{Go z9Cc7!q-f!sLL5zkBH6};39?BD zvmrVqh-?c-*l-RAkBi*th{I{VedN@h*v@g;bDNtv^yAxgS5XSusXEPykr_boUhkJ0 zmn!B_5ok^V3v(<`;Hk2e3(tW9Vw4N&*8uWIaL-oej1xxx)-!ehQU2tl+sY2}+>iG> zrVCbE#Yi(@1(mbFZh-S4VU6*LIdF0daLp3PixAdyLJ%XI$VC_sa*M(gOcmD*i9SG( z4Pex~QHoAExzp1iWha0wRmd%h93ZUTrHsMumKG@262;;xpmq`zfui1xh)I!}7&Wox z`oXt#o|RV2 zMS&ox2{b>eDSy2HY(pS>E#>7nzu&v?CH6J7$$wgXA5DS->_Z zn3{{N>Aq!P;R|S!4@e*S*O4QxGKg4^cA&!+=jXvhWPppa;v7H}pW;Lt$T9(~Duyhl zS)l9b7lmdX=p(ZjDyx)LtC;c#P*~{~g%CG`<6Bx&IPRsLpc`XtAbr;sWc*dZaID#9 zNir05-K587_oURiO+Ng92e;I3KHb2Q>tZBDns^beiRb1*FOqOnHYwo(Ts8~GPr?ae zN$y010$&ev6>NBpw+03Mf#(C6Z%Q@v+T??8yx4m1iW;*)IH|j$YO9Z(*8w8^aG15y zm6eo=un4KhW{ZN0ufiq?Z7Nr(!-iyTg)BuYQxiZmLYf-u!sXS|Vcj+B1#Gqji;Hb2 z;8l@VXl-NYdQ?^n|Dyd29bhQZ26_-G;$_1rM2%Z1q!TGB8h+qkn?Pp0^l5IcJa4e+ z&bHJ^I&?x#{8m#do%bjS5=17vz{GB2V}?{_D8K;dn6KP=+T0zgN@&rdT~DA;D|y}U zk~?HipR2AE)>Rq|HKY^M@*|^e2A=?&hBS=va3Tr&yE{JXALt=lwDO4*qr5#qqUaQ9RW6j#nvC!S0niU> zKHBiM_m%;}|3l`&Gvw{VMka~PL7m%`oe7}l&DS9!46j)7Z=11e=83G zRL<-JhBg-9fJ?DFu`wa;sw87hD$(+X2r>pqX60-5p0zu?w=-o&|KKxQ z&pX)2AOiJDHePCi;xshrZLBD%TIn3Q{;j>-$DHNOV=AFjq@7{Xi5B24aS;YYyIE0T zyX#8Uvyh}`6C2x&EvT@hCuwQpM83Jh57p59B0!9#IzTUU|4|a1`HJV=cjNQr6IPD+ z@wl7M%{S0Ab3$G;-$^I=SPbM=)zd>XZ;-b!xd96g^uTg=GIb1+fcL}kLK)M63JW}< z)LS`U{&>zA`!t?6JwMHf{SB)WOSUPh$6|Sf(3qrse!`|?WT-@nPj!%%R#s{Pc2X6W zLFswz}n3c9SI^Mo;?1%&YXWZ?D za^E#m7x%q8%Mhb~+BOs&$9^I}Cf2iYu89>j5F~BGxN-8(1D@O8XWmo9YJE%>$#1lL zzxA_k!UmV^a=S5Pl>kgSbwULA{%}f0U@3P>i1XpfcyeaAwFU9qV6Zf_niO0#&YZg4 zC#E?Js=8(U1#31B`*Mg85NzTuf^sgB7yO*scX0f9gVb?}9;8jtzabgyOd2_7M)QV^ zQS5N|7bq*OV5oA?3mH}dNmVNjsW`Id&Dz$guPCBdL8i=f?az-reBm&KQRj>6@S|H_ zcx}=hr>ynu;v!ibWbgmXk9Qb3c-pF9(uS&nA?uRJ0y=z;zk*LRBoSeh!lw(g^B9+> z&O-}nF{~{bhWxB`h|WzryfOqC5YmYV)+MAU+6ASs$mS$bPPGH?8)PrIRS7=8``0Yxz`=Kil2!dWpPZ)F*!vKK(-1`MZ;d2cT*o6OTirg}I@fl+Oc+ zp^f$839VkdBJxKOE-1KxbtRw{NdmH}kqlu~6yO=e9&cyVa`6!KZKXTnZJda|4(B7% z4$i{2q=mFp5fei0a5x=L$6$Q!rK|f5+OZ4ddrRb|^t3nE^ixR49@F=iJPvEpP6Pc! z#9tj0(*R4!P3K}sPSmhh-}C&2=dTFAGf+=*Gp@)h9QQlfM(TN4?L_o3T`u3V<+|_9 zt>@&&!SMK6u4TQ?X^T)k4+)0WN{`pii4vG1_*4fjLqaAAp^AxNW5kM1hn-hSqpyYx zFKCe*w))KB=Xi&k^nt5Ija_edcU-Y+eH*%5o^tJDk39EVKXb7?QDJRIj{sz@Co80c zs3n17!S0X)Z3=S0p@1`$$sXWjYN0c)Ju6{_Wr9?Ds-c-`M<$>}5ALMPnE;(~DxMSy zpIHxQth=W$tke#Axjb^%HTUo|+n~sX=O~=mJwqfLUF%Z${?5ZT9x~i&1RN{WH_E}Z z29VyA9Y>@1w%kAExb9kzMaQ6?k5`zGDmWU!rk@Yl(Q-Z*KWH>MwN@YZt$SRg2z zPH~=eEC#_W-Uy{DEwM0mj|kcvRdNKfk7>Ewc|zas$GkPA2*-_Z`l}o2*rbPp1nm-) zNXL8bwk?;xxcrWFo9^@FyGMpvK7%YgQpIhYN_67B+mzEjEpl#Y$V71^D2}N2ec&PWKq7gu^!3o7~5WF3aos?!y2S>TG zr_kuSAOo}zUY3elmP;3%aMGZnGw?=rqh+RB<;a-hwp4CwFa-NJ;LI5edcmlh1$dC^ zy%a?{AwY#|=0uT;1X(@?@Ib(OPj$pNDpYK5xK*AlUpaW&s#=3Q7Ew;qek2~DOg*I% zW)&Y#xlP`C%m(hP7ZfPlIc54_7UTekKzF|aC%p++qvHy*u`q-P7BE8ARPXKx?Q> z#ahQElYF8DS6hJLscMEhfFdCTl)wPOFEAoUBKndT-q`_SEl!2xO7B-Fu?BA8jHWA<~N=?z;WCRb6%jbwpW6rpah9J?Lr!-T~uE|K!ieR zm)#Y4y;FYj_L>u?ep6*MZ8|`dyoD2C1Qou?R$r@?^0ithiY(_7NW0n3NfICDr4%3b z@a;*U>s*Q~EZ33G-efVzKL8L4NyJ$Q8TKYp!pWQ{AdL`>1$*HBdq1&l$oK)f z`zhTe`!BkyDLrkw&eZ+`D$Iy>cOD(+b&BF^k-J z?R1mT5K|c5;R0A5IIj>6(B*t=0?1IICZb9XZd`uil+V2n_t&?U*Jh#?i;I9vN@VGE z-Trkm%?4NgSNW$qQ*-Iel;Xx~l^SRmOc_M?qPoRD#g+2n$7eh<*m8ibhXXC^Dld+* zqGT#)ZV|4zcsuug*>Td()?qK-Y$_cw9W7KNN4Ox|$Uog10Fls`5cUgFfuT3rRn{9< zqEKLssRx`uUl~-MQ32Y;R9$xcy*+~=uaZpE$FH5;PcO~0qQw51 zoKxImygAi%tn}NmT^l!U_z=ZXtJCOrB8fhRo@`%@3;%#T`~1;|-XP33c&XVS9ua4g z4GKy?jTlfFl5}o(b@{6sa;8ZVjYt-Mbwfo3vU(NsuweABY{bN1RY`5&A^D^4f3Stm z;!BFzs$f8*HNc?>1x!b97KdWwmAg4)TV{Gho_SJW@A6rX;63jZh9IgG)Nm|UFQSGr z-h>71M?eVL!gyR}tuL297D0K6Bv8vZ)UZ81sJ=ZuW>g>Espk zlEXI}h1rWyUMGk!8;gOmN2WR91&KZ2Uuk_S49;Z~wRehwL1qmyGf)eZ?A$2#)m`O> zCHDh{#ywKjqZ(r{4*<}$A%L_ky;OX)?Em=8gSY*%uTfAIkHeynic!(`FR459per6I z>ke!;SS*bcPd(PDzqwj=ZkxEoKk65Qm*}cvlTBKT34{Sud0`?P5FtdPxCAf1TAL}a z^3q`;$>Cb<0<=Q3or!`E3pi8uu90kZgn-U};eedM4h0Tz6*%EYi5(1w3d0ZyMWB|p z!?6k+?Wes=h-&Dm_~vSPc6{NBNBrfYqVr93%AQImW1P1pFQJGc?&)yYtD(kF_ZsLb zBCrlYDt8rv^=_c@1>kcWsO+sAmA&b2=z!aAg%)mf+Bk!W<1xAO$=XX^eE;117&cDk zM4DA$k=ndWpH=laqx3HcvbN~&xGRDVXtvoATPG}S`Rhk>mfk&NV7AD?$TnGF@OkbQ zpO8)Wub;K_x1~x%wv;3oE)GY*1d&U$q*?=9Bpv1qBryoWM+dx64l>NyX(85@Q@-L95y)L5x^B1KeV+fUo|1o=wvzVD9jq(a z=pF;&ZLSm&fVhPh68PEBDUx6qK7rb;l!78Ck|3tM-6GF)L%IGLD?bJ(SS{Y>a9b)U z%;6FR$9UlUs_=7822A~k4+iG{3<{C_o=^Z-5~xTL7F_t49*h}%OzY%_ez3%EzT@;# zB6zL<8{yl7uoweEV05fI{@O4_sR%J}tK#u&hTy}y$&p+qJGNeYf9w0AL7=DvRxFT~ z^ziNJB+aEND~o{ypiB)-G9VOOtd+S=e$D$x%|&DXrMqI|W~^MmWL*hDceE#p1ymVN z0(2~lh(UfIOMW?n)xt}v;Sl%%)u;ff0)PP`6e=0gjF~jSpuMOH0?c)g-P(}qq=6># z9uxP9QGb70e(2tznDQ#Y%51`s0 zK>UsQZGP$2J_OT!{U%$(5_ZC4!w-e!43fPZ%}QA1DD zrlTXE5b>PiMTer#A3AW}hp9dzoTlF8|Dq%Of_zKki2c@h(xu?d^jwCpdv+7Nh6JPq ztp2WS{rM+%H(b6bFFyIGHzvFmGz_Yfm`$y+BOF5mNjcs_({7Ac)3Jng6Z3I*wOXK%%NK0G>Jn5u#6kBaQG zn9&iaC-=y?fpdv}dK3Nn?ee31MP75+<;2Ep)j(@rdv4)U9+BfBiUTNFiDK)M=UOr(_X>f7>B^6P&c@U@^+1?Wh@?2);w*i2YJNrNb~ zh-};ry8^6nvq9JfKs{h!ryxScCQP|$r$kXe_%o8sKNMOYK;P0IkFOdr_1{-KK@OeR zJA3@0Ao;iDnOna9t>Zzv(GX-+ljBH)Rpfw47vNeN6Fj1pt*cbFmTbJ{Fg1O5@LMEx zJM3j`<@Jx9XxQJ`Il!RTzAH}~yw{pr=Z!aTDM?3=kK^iPj2-8s>B#GIbG3*2u1xVJ|vGEGR*P#^`U-L!!;dclBUa9&r(+BdJvs~P)k#-%%JQwx` zPEi9EYAQ#3`x1&>*Z~U?pW?y*6Adu=N4|glL*I;Y4)41Q&0ihf_&`4An$W}pCY)1r zAV3xSgABowq5sM^cNqDH%I8XxffBeNYSEBTVM`I!Lv}~;7mrC^E_m>t$CFT~}ZeeNktnYm=}_BJ^%;7Rf}L$Pi$98=;P*i__8?8u+X z12mTF2GUW|K(YSKQQ?GfxF-I|5pC4VgdUq*pM+M!l2UF8I!M-V-s)Cwvf#A9QMZ|pzF;__7&SIs@y=+zW-jmx3o(aeb; zLtDv)TREZ}#y!>hfh{a@5ZW>#KqaXLkTI|>dRrYvzou`o?e}MS=|QLTd+3xW zlpiW9EnZoO8`@@xfjyWP+ARUZo1YWo=@jQqL;_qApt~Y~FFJsc6grI@O|!5ungS`F zDkzpypp`9boK!adjaP@edrk4)rJG4eTch}!ye_nCt@*bmyk|pxR0=fxtjsFGOO*l} zJR39jo=n|ed9rBJ-}4JdI0I>gS6Y5K6u33 zlk*)k^dIoAMU%AW9e_W7dqj5z;!e5dAHTkJY~4|YGlvQVLzMFpN=`)Zz7oLNJLS); zPtp6_wZD-og$Q-ZMIgr7RstxjkI9tj|7LA?(M_isoVr{}CzFDhQfP5OtgMZXa3TXt zbvDJY5jF|Zwt?DK%7OM3md{Zk?TWoTQ)c^9Q&x<8=D2(hM|r^6yowbBL#xus7>~9+ zFfsx%Bvrf=7I{oLNJZ}@Zu9R>VM0^poc-_r=7rHq^24G9Nt8&0`>n3b0scTZjEYCI z3Of*3&ck{3O&{m24scD-W|w zr6uRY9XKbRrPw3vK0%n1P9pkqk01heu@I=_3i#;?=7NiEdA{%6u@M9JShpIQ*}_b_ zfPIfPN>keEDrc}#JR4hqeB(Yg#KqhxP;>#tcV}HC<~f2+VI6Q8kbZbwrAK62V3A|V z)e2>%VVU6Nldm0`o0n0v~T@X8oay1J$+2WGf{8TrT=tS8MI?3T}MG(DHs{kgzb?wbs*^T zRuHa0I+5bzoR1Fy2s*R{N>&0Jp84Rz!N%PXclBRW@nR0DClQlAQXVK&~x}?ozE}C_;5!hsB;l{HV+G6&7wjH zLKPfDAJm}zhz`3l24+0S7#U=sE?`wMP#etW5!xHy&tiky8JU^1bv4s^gWc$95};TQ zLoW!2#HCK+xfm=TgA!7HPn(~%F#a~G1kp#cX;kL1wTJER+T57`3`@uPRg(F1lx?VX z8A7@HEvh@Js-#I`ugu4XJo0hPgo6yCiMFsH3a~|Sl`$c~iJ;*}>XZBrYRc{&4m^8h z`fqvS`R0*ZOvTO;swf@gZUKK~>D)jE?p8dnHk*xwUrTjB;$j6z>d>FBlE{+YX#;b$ z+2gewgx%@mS()=b-sA(QlHDJ*-!Jp+1FM@hGY=b?BVDlt)V3kW2?Sz*fxAb8qa$09 zpS99RTMSxh4WbvZq9#%Tve>+^(ZZ4uC6`85bX7L;5iVt`{>11J{3-K7bnu* z=8~utm8Ox!8B4p^tep90B%FYk3Q<@{^+L)o%q5XFx~0q3)6+Dd*>p(emMQ;szdoVf zC=qCHNOFlfe>QqSS^!`emo3v`*e8T(9RCB99ZDdkiUZ-6Buc+V^)dV6eW-DnzGCx? z9Y37fWBdTnwGss?#z(lGq6KQp3SZv1jOoc#U{Kq&#izH?P=)1(lr@kf#X(i%%o#vu zNlT$G5Ds8;;u~s|SQV1is@+|DK=80kBGGjGd;Xw7ILm7H#z8=kizts;@+M+@0TyWI+vv(mTby&t?Kl>m2fG3I`;PTYzQD9OKVc;4J zR9!33cQMpivqN3B0=~4N&RI-_T$$mc82pmC?%{~t2vKOD%Ha&hI97y}Rj~7dOl#ZV zk;jc0G48B>N~isFe*{!i*q_d!w3p%3CA!OWvGzuMycvHmF?%zIXBNCrKW6z||Hw~- zs|_19z9J5i_~BMjNC?hI8j-|$V|2<6|MdD|1m%kn7Gs}v^Ml1G1Jtl}*dIs#>O1+iG>W|unarY3LJy%&e^ zPZ8x3{0jsmz%)7|(17)1ZTRF01UcHh)^qWG(8P@Yr1M|-?Wbiuh%&}i?ZXQ90t6di zb}i7N;;=oD%5IuV!Il&UjVO+X>heOd!+0)sSe_RVjBbFjTHS8H$hWa6ejZ3d`%|LA=Mvyj zX)(b?s)$lT8j~_LUw1VAHr8YC)RmHkdZHZhWo9k*V21-$El`D{8Niy{(@dz7GE)xO z`R3>wmX&ISsv^DWzw6U6pb?x?9|H`6MkcA%+U++90`QEol2l((2EuHzWRCn~MB9Up zE1e;e*BP4pF*cEFO@u4LOECEjlI$RQs%TrGBdJLvPI;}*yEpe&)D-sbW^FRqHkJ6f z(bBiurfJQ5_VmFE)`l-A#s5(e%NUkakd~^MUY~-iQ$EGAJzY6SfDxfYRJApey!Yz; zyopnaZlQ|*4FcN(T>G78(ns^=sd`)W7H}^Mkz!dAOYaLgDSI-bd5B{1+`#U+BH>|7BE>Gc*2# z&S9>{C+UJeSyS5WhV~#(sR!5sY@KCQ5NvQ~=<`Q;Y5vH*fBK)rW=+lXJ$cP>V;@YG zY%-}Br%}8y$9}74VsI5Wwi|2R$c!p8P0QFm+4kv(Q>Pik9M0C?4UbzvR!ZC{Y&ph>ofmW*j^gbr||Vp%T&Gf==Oc9&eH|F zi^@8>r8v4Zu$A2~Fjh(RF@S>)A`t4hIPFzpEJ~pOgxBocxpU`9KW*yYbI7JU^U(FD zztr;8nfW;$4B51+oH$*bi!;DM!xq?Y3V*j+pw3VPD_hk-6)ITx#e3F6J!93a%6zi& z)svV0dUL*YOQ-A+fQ-wsRwAZyV59?Y+<^rcyF&`q`hmVz4in^pm>>i&Y=boAcBTsa zj*5%Y$^c3@KlmNGnt|K3a7Qge1sS@bgrFFesd3%EYRCK240118$|(?YK&L8~4R+q|4@Vl#?z8<%<)T4G*$>7pl;7x)9rUX?2G+nK734 zYQI0nWz^dU7wTf!rvvLMfEE!92nV=0n?iYKQ0E7Kx`#!UzRdhpO#|*`mB`Qu#TGp2 zk_8?XP`Gk2BllZ(7-?^2r4(RZX8^~i$Ik>Cm_~1XkP-3F1}mRnsDV&bhzve`!yR|5 z+FsV{^Ykt~8KTNe{>|<^mO9#XQmC9e|q`;#~2~abQ`A#?~s*-von|Se5T1+)H%7`IX?`+uQK{t-A$nD@0JXqtW_doKimI4DDK3ZtI2) z%>n5z3XE{6qcq(;0xfK^4EO%}4@3 zJC)>PLW?49msivfP|NbFu&Fl>AJsBz|EB&g>Ymv*&01(&{ItG3dMEE5(X%|v>$UT*Y-t@u8^URD}3;2qs{|EqcTKn0JS)OBuhJN}(7@b&7SpYk4z?&p!Q z=3RR3#V*@*&ttp6^D(-PcQ&Exe05Xd=TW%@?SFGqafIN_`1sJ4(g?(TQ_%5;^xLzO z<^!usJ6?H@|1HaDTYjJG-QCY+$t(X^&oQ){o+Df2d4%8Ty-lA|_;;KtFKPh#8*V;2 z`qXvFy>9zS>DMP-wdLRAJH}ke;BB+1Df7Y63(3`ow;Nb^#aH{0)_S2Ksrz7$u{E1b zCuN-9H2su0TG1(5yU>JM3M^-OhDga0v)c>^iIBtjr6?d9OHm zh!T)5MkN4Y3Q-(E0x=>!(b6>CtFE&yD1V?7TmzoY6vl1)0a1bk2n9h9#!6C!m_z|) ziX@UiRemlnVQCX!bTg@(W&xxdqF_9!hC(@Ech7RdeN3lhZugEmq<(;6_s!0aN&q-| zxIST!+FYR4EhV{diV~h}fBedaPaM9da7L$Oj_&{Faj$MvL|5B) zLmMTDFcPQt)&~RLdfHpbG&Ojuus5TLaB5pC+@)s(vRApQvtsuE9I)mg@wM=nn+6a0 zo&DfbG8Gp*_xuB^uFHSdMO1ufpq=po;7nWB;7l6>QFUOAS*r6Ky$vBT41u356lkG=-^ zXQ{?mkcm=EjW2G20aafd4tF6$?*(J8jD%{{Id8mXrj!g?pwee`p2$|9n}>W_X6BWz z{F7U^Sl6gakrAN-4eo3%3`bpb!VY=a8suNoF+L2+bCQ6;0K#yU?`36E+A3#VRK8>F zjsc2)ad_oEJ!-XT=yxAYJa=~Hs=&e>r_N~3Z^gC6R>KgL9ylczV@~vx1h*w~RO=S* zsY{|py{*_9Rniu2g|8(Z=OR3t;8$3CY=JJU0a zuGGZ=>S`1N^d>N_E}+BM*-_{Y9fbJf8FaXPdkf)fg7`$ZuI?YuqcXGAm4+%t8=x|i?LndaSt8gQ#^;zYigH%zTNJbWw# zjj^Tx*FtkCf?y+&pn!IJ)l>mM3;b0vEr4LUIi1hZh-lcab*?KeO zS#Pn-RhQ3y=k)vaa!EO>2-D|QvQjEbo~uVhm4iRV$P?v!aS~aJnf{D5y;|b+E6bKwh&154!fPAwuB&s~4sp;91Q;CRQ6k>Bqx?h; zCK?T)__T_UG42lot()2)B1W?08R`8NEFDnTd7qp4A@y+Cnt>VJyDi>k&7xuPp1cmC z$06JBf%vw-d!d^sz(RmR&jGHbp&7~(dVRc=1gJ&}K<_C&dKJ&MBm}@YkrRPz8!&0k zB{vRxX<)zIFi5H!!Q9Lu(_zn>7ATSQMfzzRk|k#Y!SQ6wYH1c?5pQKY2|fYHcO|}B zF90?OM3k(2PL2Nb-@$udczWZJgEH|A+DZG& zx!SdUzxRS~4O(_b=BS~^TOzM6#P|PI_xM3A;K z9%Kfj27{3te{G)B2N*vj9uf+G(;>}r03jspP_&`Y=g5;)yc#+kkF#P21cJ z9}G>S&jHCNrQ|xG)H4*&MO3YDKq&<(epco?`%#WqzteWLrlqUYkQf+C=7Eta}YRT6%(k96{h zW)2o_NT4c1`K&^S@SKDh;B4^i(_BhvBs9SQp(_gW$!O$QX$StSdx|^#b9!p{P=n_* z^Wv!+Utbb3gnuYOWEu?w1OfStJuDyNBHp|Lv>L?5tOQF?ELi2>=1lC;$(R>qu6^&_ zr(S&dXna$d;^X1o0OtPA@gX}HFldQ_B#0>{22>`xvqZ2j)WODM1gSV`h}Xb?5xGk` zWFJX}g+v=CW}UtUI2ua<&`}FOfNNpQy%02*1lVAhU{gu7;#LAFkZB)aK@JkklKq#p z9y#D^le!N{j9!t z0ptdmhurvOB|qTzhPaqbi!)dKWqtXa?VkKdm7==>{7%$KNN1K}y^3$f!d7mn(MMGP zlsp2xWEt1dXrrmQy6kCfjAFdbM9Cg^+*gApyn0#FCHQ!=>5@!xP1|0_|NM?ohM81! z>=}`3_Ii3i01S!}2_lR+iJ9gEU?yh>ORnAyQba1Goo=@WP0TL0yIyEa02_j${Ix;I z{9^G2{DQ>iXuOGXC6tpbk)x2BJ(q+$%)t&S6rvhqZNMj?9Zalv1L)GsrtKN#-RV<| z>^Z`!A<~8Sk;{04T0b3`Wbq({%QDX_n=?9b!=H_QTQRiCu?a~4=2Kv80nV19t-Q-J z^FKJpv+cfHjH3Qsfw44d&(WR`or#^e&gM-XQJ(Seop==d=f)zU&l35@VAXsilaE%hD-sJ?4oVfvx zl_Vjo{-7NGosF!q2{4`882q6Zyt#zLhrLzkOUM|rxy6<=z&okVR373J7u`lf zVDF*YwbCtD=(hhkK)W{Sx^e!Pc17m;zpek%{`(J87&^@*K9k~uX11z^APias(S%S^ z%nSpVjDlt=F^4>x82DG9J`sP%8<8sPaK^%;aTZ|_EiC6kQPsB8PmjLGm5uL>cI*-R zsLZr9bIt=3ubKR_KR-;ZXEk#{EqN4E0E~Tjj)TpFAbmnOhIe*=ArLzQEDd}#2Q&7Z z)I95pLruf};5%NLIr+@}YCf6vHzU8VJJ7RTt-)C`=2@|xZ7S=z3*u+mrlWm!6%&nE zKXI+W+rBch@7`yfbswV){eGjsm=&slD;AxHZ%-%TnD-*r5!Hb)Vn&faAQyc2)%(OH2OV7P`KV2#gXp#V$2yqU|t5xw*QjoZX8{c_!<*6@@*xebgGSfAg zjU%s}aM_7210%LvgjXXGHgs8vw3SQZQV4vfgT%f({@2&P-UT+2YcfYx?c-X}vA_VQ z(2W%gWaydiUA&ENG_8haobK%eBx!17ZLO3`wm7Q=?DaF5OZwFkD zp3-4pN-WEmYA&1-+{dajud?kH^4ky=@c#-Sorp*zU~j5q6GDOyvoTdRwDXi3Kea!+ zbI_nY?wDVf`Q^!h4oVN!gvP2(`u8jtb5l4s((e6zFsa+06~jde52&R=C|Xbcus( z3xI>bTH;y_;W2vKenUNynb?=_Pi_b_P=%evzFyyqy8gXUJzf` zfq4BWzW%@9_3b4-_nURkX;(+TzNVWp>*Po7ez|R~S#Obp!g7X5Ct5(2AAlGsC5t%; zRCS%5Do5Cb&M6q`aIGB{o*)RCi}UrBZfG&15Nm!_A4vW}l^n_;rV~{j+6y*MuBR(N z@g8L1f?BDdS`C)B`_V@gAavT8jIcN#>4!gHQ10htsKyvJ${C;qOfu1+g^BuMMp}s zZ1_gL-Dgwz!IykqbZ8p{ZTT1nV5^Fap;!l5k4#;V?lGOZ^-t4f&**P3MkrTvu z5Pmq|CTvVC$RomDW`h$K3Pc^V;P$oYhuTGNI4<9d9~=FbWWnHVCf*;!&_g zfX9qV^qBqD7{Q_MJC1A_PcKHKN;l6 zL2U;?@={Y}Q!wbK$rDd31)qOUCPmjhJ>UPhZfxz!RS2b9z}zqyM#jw<`HOODVal0wfDvk|~gIos|`B<0T%@V52i~h(sq> zo~rxcmtPKDH}c4f`;RmAF2%gtdo$N$&Zj@T`?})cgBtoAkS2sAj|#m&0SJE>N(4fS zqY`G9bW%|kqw^r`6MjkJ3NF%HvQNDLm>i%?chLFiLdn>Lso2r{8S&;lq;7A*K!9MIjsXH-{J zX1XtP$;4}F##TR=KM>L>(#p_DCM={ADO5SY@CgWS^@6d;$}r7oATq>+Sc!uS zNRa&+Wc^aDBF9FYj2B`oMK$LPeuYq=hhr2-5**HO1w2gswNXAbsE}lQLU<07gu3n& zNuhBpg3=NB@9-W2v+%ymlYgtO`1_XSyMmE{!-5tu(<5a`dsbNzY61et2jP&Qt`vZj zFgVKJ{~y6!%3ze4?$6v=b?vt8Q6Z~-F|N(Ri2LUZ6X&3M!AKF2WSfuh!5U) z!G&)>KXJ&u|A!(x>IZp$=73elJT&S4IR@z+(yGFM1R=^hm8FqUUTwKQB{oW26PQ;7 zSX4w<8YM0$z&(gyhHwGVP(^XuBZ$?aFqZ-Wn{R7goOb!FU;AXUIKQC`_sHK0XS(kl zZ8jL69?ZP<>4vWk`}0c0{wQTqg&B#-3XgK7r#kEWl(z~zs58Sv4{XdQun`HW7)v=v zUt|;ERy>s!5^5*}?x0gnA&JiE4FSL5^D}F%zV`jT!;kEpPj{2M^HAokjx#R)+{fWP z=j7$i~Pq9~ZFBCQx(o!t`@-~i!;^}nF1zz=uBhHjO(INWkl);b#&KSl!z)%KX{ z_%kjTGg1ej|2=R2k<0;q|KO;#%Np{*DF~4QbbRxebKX4biYc29o%221{#5$r;{7VhwoSS4I}|RptiNXJUAJG#9{&>D?qgb= zS$D(0uZ5Wd@#)+1@DJT;E~{B83(I&rLGd68m#F|PK(EAt=XF$WXk$nVKvY2Zmyqm$ zjvFX$C_s@9gq0}+HFQ_kbE%7gRf-ga{-UcHx`v?~5y8VJB1ligUrX0O!0D*u2QTk4 zef4k!M?M2v3Sqq7h=<`0U6XoffOf5nP|7-{`@X&@uFi~Zudem}WW-cvJkh9LhsqR; zBj_jLY!QXI?nHz_1xOWG6q2+uwc$V0JBmk|P9ZdHL#8bV=r~QL?Sx#;B&9{g+Z9|<5ibPAn-z~vbP>Ek@D|baUPbX* zuXPoV^~C@Gy^@(pra3IG``gY3oz7$?nd3da$Mb!j?hDVGJ^EWyy`GJvfV)$60C%r- z*LWI54&i%nr^(7+YoPD{-*=zRcV15C&sxGZ&UHZ($BI%*5KNs$j#Q>BZcV`yYAEICumB ze03ly$s6fY;QGTmo6tmb0*cI@vjRPI?+A1YmWv0f_Q&x0yS>m$JPLn4`yph^PQe8j z=i%c{ojyY6l|IpZn{@8m71HK{fmhmjEEf-)_SDtVwm$-~>n&b_7Lw{uWG)jej{Pp|BG(zTkw`Ztiu^hgr}iAljzKr9Cf1X$jH zOsUM|6vB#27H}?QbT`yhyBc8*AOuw6ca2;zqV&+k)7_OLXI}92XcC2qYsY;f!^b(1 zgGh5J(a_oouz_MMGL80uh!16k07{<_=fkkD5}I=&w}6dF5KV}hfwovmIr*ZOf5a$L z<9Sc4@Aq4yqK7MPQ9UrIx1a9*qTirzzT9z_Ug|DSL7$d!ThIhy^ zzIR#8Nx<7B4{a^J!((xL^%%T<_8_$0zn}WJ>@Kji`_p$P+;dpv`Fb9Xy86dtZRp^| z)^Kcr5N*p<2&CmWRuHp;v>2(|N2NHR(%cG4agdjfD{)|n6DYj7`-q!15AoQ`^Ep7d z=7n6J7e7F}*nRd>^V{0?AWBFF;g$xFz11EZ6G!EG?pP!)g!!hZkf7|}{Nt;ts|KFf z=Suf2Ios7s-Ify$e&YIP&(}+%rh{Vy`IKLcf^q<1NeF{a!2cXr0iRT$K zZHeZTlGVS9zjbeW_}sNuzk7sE@{ytx+-lYUDBlM)$r&qFOD>-O!M)r)eA~2VR;{VZ zcCT>$nZoRhFv3PRdy$1q*^?44)d-@L@N!YUAsX&N_I{e0@dE#V%Ghrx0w_1U(p`D_ z^e=ASJXO!7GG=fP3=CAy61g}^s=#ClqD<@&2BD|x`%3qcj#;ZuZ+Ts3TF-6-s@gGa zbD%5&+2D!IOq!&Vd=m=&phn4105NT%FlD6BB64DvsukK*A0f}m%tALD)>)!C7N1ee zchUZ|KAqhs@)9q0@ImxBFVXu~PP|LH>tX|$2+wyQ8P@Ii^=;R@#u|j*kIb?j zautXVIOFr-eH`W^a7Lx+J%0T2>TSob8+>AU-_YB)^euf$-_p1AEqzPh(zo<2 zeM{fcxAZN2OW*Rpv}B^GZ*>p75rvvOit32=z$f;%((!l4kz{z6s=k(WS` z7dR5t6Lv&a`Z^=ejP{nLBXxLvux4%0+0MS|x4UoYK7_9SjNm--&@mGPP{^mP`Ry$( z=6AX;TQ_yZg0Bdt5rN4SOeL0KfK)^EHEC2JFOsd;LFZ$YG&w;$JOOK3xS$6hkD^?d z#D3GYEp$tmq1eF5uU9TvX&N@{Ki)Xs?QWmdG33kBse6tRlJ!DA?Ee1Dh2OSW`Rscy zP{hzgFt`gxvR=OQVypKq(;qVo}^iLxRzCdlnW zk{ODMfX9T=G{t1Y{?VN}qVbuUmTsCUM&euj^`9dph*ec4u0 z#h8^?bGZF(SUYHi0FWHOk2mhQeYE+fXl1Dxw2!-Y1*Tgnmg%uqIVIF~1ksLbd?-r* z=H6?FCJV%zrMKGJub#K((67sjLCYxL^T*xM#Jv|JCzF&3Uv(@2hSe&!2Rw41IbO}j`6zhg7{;pPj$q6sXrg}BZ3;DicFN_1?7nye zp_ahS8#0^d-ePgnM+=%DS`evfF;%^W7A!Y>+5O|-wSPPLG@=rlg)heBjey4&balj0 zOnYlU2k~UdlVH#jO;e^I57fX|kq?V-E_Ap=k?R7r6s0JkguH;pUnzbpw zgL+%R?aS_6>$V*I#X3SFS6P;2qan$#G@RN*wR2KaR0?omKIjcH7-2||hI8rj&p0(zQ3(p!;-a^hZf4TPsf7=q^2|Oj==U;VKOg~mW z_&$ryU~Dm>iM@KZ$4l4~s)T4zh_(UDOdOew#a1Bi?0(7nr_if&Pr-Z6F4weHJLC1K zEmOb-fVZd7K2J0VO5zbXTsgw}^{aj8x87Ja?YJjiE+bBMfvn+%Hhke{4N~6+S@zXA z?<@@q$mf{LXxkp@{bZZ0pW36ehP$PI?%&OKU1SMV7WaFDHQ#sRmFUeg1J(PQL|?I>pa(O&`hYsF534_-fyf@uiby$z4fbUPx`+j2F3T`NfJj6Yp!8NFfYjYIaq-}&b^ z%#*Y*ERcX!W+Ue)$DcTU?)QJZhOule8oWZ_NuZLS7@#@uvAa{$L>)(*7+_7xb%WtSyghBMUXsg z(U=HYdy~Yci+@!@xLI)4Unc%jCm!*0_oCG`qx)N%^rC+%_+#2kshZ)(Bp8z zuIS|w2_Zme1Zbo|2VzUtU3cp~qt;$Gf^_ut`1)4Yqi*-G&U5;?d)J9y{v&bb$(rYs zpC^s@MNEL};G=-WT(5u#AHj=&co^_D723*v?*8uaNjE-`Y|?AXCO_W>nSMa)vH+(R z>v1#-V#3e2)p2ob*Z^QTj2m}=(zwh%cu+zVICqxdiF1EYy^6jHZ}q(ZmM$1Y1tHVT2<^fA5b?RbN_(@ ziNz##p!Ko1xab8u*ALu+4b5lJ`a(P!cJdNm zb(fKra2K#O(oPD@LAXJ=AXLJE^MI`m%C*v=Y>QI5`=;apCtPnB@dxoX^eM9k$Rkrv z&iv@rA2liY{3Zpm$VjsQ4Iv)|V!Dz<`KV|}BkX_=*w44YPN-2;ezH6R$FoaCNEG>4tb;xe}Byv!f)_Y$_zu~pM^7)#A$MS-C4eh zTE5U!$92{T(M*N1!$b0gx|)KFl|@OOWJHLvalqCGikB5N%Q*_dK?U;>p8KecQ(rIt zZ&AH1GYpp(E$cq~fgjqllN<`MVQkVw5CJ1#_onP@9V_xM8;!Gio*9t{WMRxBZ_H3= zK7u?u6TiCWUx%t(30VO>|uumrVVr75qfXyDfr;LJAI`Zs0*; z21@6HP_M(@*UF;8Gk*gIvgQhK9_ zEf&U6X4qdIU;FG`b(0UxY9@{CQKyY139e?}bV$bTo9;n{@x?@x$_-;=i(Gfmk#D!? z#w~NznPUl4SY>X7!e@Zh4&l^LzjY@%fx)BzzWM4KSsOY8R)V*+Uwy{1!I42^;L;Yt zlWn~M`7yGg_6*bPFUZ)MRUmJ7Nm4RGc&^BnzWJ(=U{vXwhD&d!QcdofrJu> z(m43jl7QLEQlgqY&$2l3(+<>?HO52&5b?_!VmE$K2eAO zlnB^G$eiJ9$bzp;fY3Vu3IbjQV4q@s1&T_DT`Z4S4n2Ox%Fghk7yuI9W+@8`Ong;j zEpvVgz5sYg0EDG<4$Lc!s@Ims$@e`wZ+PhQWx68d_GVw0i>gd{n_5UbhP5|LXk^0{ zzJfd(WCy@20q+KEs;&Jr69|k2gW1K2p5Y8=WHtLV(#n}{0-lYHCD^b8aS+heSOrOi z(VH*8AaZHezbRdHszMF@#=X?*<^k%d;Y8iZ*Y#rOi zCkQyT9rS4uoR3K~r1&SmRPAU;v4E+KV(VvouVd=mFtD;idNP@acPJ-Fo(Y{d+s2rbU1pDxX?8 z^!+8Pt$LYh8=OXvyM@soB9Gcqh8Y#RF+Y3GT(1P||K;oDu+d-KxL+RIZ=&qm^l9C@ z=SNdO)$FP}em#A~PA zV$icsoXE6Jd%y@4(Z(m3_GD`-VDQEfMvB6FYK3SJLkTf)HE=5#Gpj-X3xqlmeLwgb zc%lFgw6Go(i8w}ot3r|5VyB(6v!PG9IIu4K@q*Ob_O}ir$Cnw7kS#5z?s?MR0y-hI zoCQF{`-9~_z*(*d#}+Ugz|a?3{$r#&F7OXn-!|{X0sTstKGXrLNpi=C&I2c&9FvR<$4G%B42X!U zp6vZ_=w$iA>t6Uw`a6NKtxvy8$_d*UN(u+T+sifQYriM+RF0M_4|w*rQPn49 zk7Kx>+h9DXvC#u;x^&vwf+NFtKTs?YB$yw9Zdqe&dQ8CeNj-PY!rSo_dFSA{|JYPH zO)oNN1HVJeR&Z661B!RKfHK11U`> z-(SAty|wQR>Fq(@E{}a+>m7R?_F2JLf}HVt^cNmTGVyy8%fg8Z2Jt;U5+V}>&}#~k zE7n3CRX;@8TVvrMimhRTDMNj!96?)v69BM(AbbuLOwhk-5KP~6=1lRr(btvtp7x?c ze&WpS%U)j*Dj4&rTkKE%;w2sMr`_eMk2OVue5*@rOM*0BG2wcLJR^8O{E#PIdLeJ8 zQr3a!MWZ#~v zi@MJoBTsm8*;C~=UaS}C%jY;yPRv)J^eRBKw0PF*W8{~Q zK4#+W$J~Rrx0M&z60w1Z(=K?+7n2e?xfg9CH92}Z$AlPywfXOiF01B)4a}h17M=R| zkjB1d+PC~4hzeI2rpin1==bbNn`YrXPbni%X13YnU|BH+HCBBDXJDBYjL>CyQwNweHP@h5!A&3wGLT@64j;>SXu<5}qetD(F{nj5{ z$@o6S6&AP*a}F`oi3}&@fY4#2P>30Fe6@iVUoML>4c@7Rnq=vqErpRE=x;JToqbqE zs1)(`sj|iV<2{XsomsFU3B`wI2~nGco=zr-TFoqBt8+I+7YNZ{vx$xi;aD4*en8bB zWrn6*lf(yM5h9r!jCF1XI-|T;gx7z9{Qc-PjXyYV&2}mY?h@Ef=>jn)Fz1mLWR)1> zf`N4K!J0j5Wo6VtT2_Rt(lY3AnrzCms*(Wd>`CWl%q(JD2(|24@$;{;9Wkk_;3#9E*eQVL1^{^24cXI@d@>_*NZNDmT68C6MT3o^5UGzvGZ8TO zwV5~QQ}irIfdQpCra^e4NSouaINdSs!6QB3B@wsyj&snnr14YkcBAbvn2_VZn+tt8 zRr1IgtFEITcIZTiOc>wpjV<6o_OJm4ut4x?7AHk0iziJ01GbByAaKiuM<$CGpS;je z0;H}u@6l{_xqPt%NOpoLE}Y~gLK)}h6G<`32Z1+Pe0+_T&;K>}@P^r^WanRXSOZlM zK9;gp$0DGufG}4&f~vvUrL#6P$IuOolU={z`*Uwzwc7AUNvQTS)W|!pym)KZ$ zL&2^9i5X`nj>xoSHVc^;F4Ih-XIhh#__}1+6$~=T77wU{vQe-c%4%1uLg$>_!0<}3 zlt~#K#{0~kD9DyeLIC>tEj!+O;=cDsZ6EqadFD0pTlYWr@Jr`?g||O0`iT=YBC;o+ zexFTy9A!ZgeqB-+S{&K(eQ;!B>VO<3da60PgQnPzVkrlf6%4wh2$|Ayr9x5Ubn2IL zpNg!c2k!e{YQ`(s7AjP+YIUx?M!w^zzpc3W`)f2ItX_QK8Urew$su@ZN|2al+8yum zL?RxJrb+CqTHxBEF+gFE#v#!iL*I97SoW{w{VR8q^`4ytnkFw9vH84?0j&gXrRB7- zLfl+t7BLwmAv!;O%}9(0#jVky2#jP^9HD_TqoQkAgSjl!f9D>y&jynuB4K?XdfnSf zyx+;1wLu3=R_L-lPjSX2_^BPL*{@rcR94t=FXwp<75RQgv)o%fhX%8S>#TL^q#))LYrwd{N8)ak$Yl;;OSCf}CBU`{4@wCVyO0-S5DS`B=Z$ios;V^Pv#5WCZD|3} z7bp+fV*%Pt+h;73*IFxkJGC@J-nsLVRrh>%r>0}(9hemby~@9#rA@(y2z-?!eEeRAiz=dzK9X68Z0NlASsfuS@$Dyz)c2=ObBk&d!Rd;(V_0ZyN6>dWY;k&D)U za?7CJqi3j>zdvVA_k({QUZ%dj{1g}{odXlBB(gD`565{CpxUHD=`hkUWKvcQBAvC+ z{!)Ld$pmdL@Z}Ay@Yv?e1Z&iWumL48lW-7-JfiXbBhg~`da z<|J30*JK1Fk=1-lvTa&@lP}ql=!)}t=r$v3fs7Z02T7acryjGEb-p@Y6C_QWH%634 zU>KKz4Hgi&6&uVfH#EzyUU1^XTka!h{?*wg9K3CKv%X{twAL)aWF(&Bc7Hg08?)|) zABX&><7IluzGivrUK3tzZ6G*|ceOn~ciMn5HhXb6M1qj^Dqc#EAXP{ZG`ShT<>lvN zVi20Vb*Sb8Rz3NYNOjB*2!mr)1aU-vcIXH0UBM)_1uN?$pq^pVrtH7@o{VL2krQ} z5__rF*{yqye9FxaZFu?Gv3So#nwMbrdcAxn5PkOYopfg)%n1>?)D_}%&XnK`n#R@Okc@*dmrx^rioAL5z|mKqvP$Q|^D`{y%ozixfFL8iE84do5jp zN+YHorPf_~;6gO2ox`H_JB#!}5v}t0=~K2D_wLk>qosMN{Ez~|6Akj6;C-8o4bf^r znhz7@Enyz&$n!x^Qx0c4h_lO_jbPf1pw1koZk+;rsvxUeRYga^8AYfHwaSy9pEkJs z^(RZ{l&YSWqlcEnjAuzR;~{jqGaus%0u*KlUz|M=zC3y-ns=5|9<1{?-W~bQUcuO= z>=1 zk3Kl@*oF&-^?oH&OdfFNUC$hS?&$&x823Y7R3w(x`8uSi)4ZHGbOdqw~PN5B|XV)QXi` zhK)4*cQ2U^m6RteiM;jK=9;qHj$lp`E~m`~QW9A1E+zuYO^@Q0BHvicchN20kb^FT z$QejA;bMg>`d!Ax`cTC`WnlqnsG?}Uh6NvIrRANhiBhZTxnog~Pw)`Rx?CB0FPlM1 zO-EPkf`2kI;U|T&EiI5|w;glSqK7w>FgJ#J;8xQ-*HBMSHH4{RLkgl;{pm0?1GCDc zXG2F%vthobxIiB4ntI%R*E;ncKvq(MB6)kM4h9A&3S~l?{d}8LiZ$ISFTL4w_07j$ zOD2~rmpM!HilTfmL5f9%Xj}929M~pZLV7@9UXuF&Z5GRXAsnVVK7OU{ChOqGhZiqn zx=>C`8}S$KjoWqNKU#W+QgjPD@`;sFwl+S|AiCjObGd4;-9mv%s2U&4yFz$aBP{PQ zdi=haBxGO-l%2?jyEW22wwZP}Hu(KGTWMvgf!hVFbh^2bR+2y?l&tdG=*v$&r)g9P z>;`3qv*nemZaQSqje;H`5~ILFTF7^ZsN+$#T=IBAsq%RHl zeX9$X%rUald3nL}Q^VWR)bKqO=2{CX%r$O9?eN>%%2nHYn$YL>Z${gPV=K06h+gYF zSGIM1_|2x3ui`yl_U!N5nteb=H;1EdM2p*BV#Wd|E*?j}jERo?%83-%wB`w{m8Ltwg&XG=%Pp(h)^0W|%8t}z6J`6- z(>df!00vu{&nQ>a0Ynr0$gImBc)&pU-AbQ*vFw;N=hp>i9ifYKG6FaeVn2c1(ie*d zq6r2~rPtTng{U!$P!yX2odC<-&|_sN;ATj$zJ~fCyh9>yWp`FVF8X2jr|hoAd(`Gm!-2z<^vj*a3I%(!u)E4A&<`G zcEOH@J+)jI%4V+kY$N>mXx2fr}J}mnA>*ur2A!ox?gUj`!x;dejUgC2E6>W@*Y!~MOr@tVJGz3?ad2-2qy(yR?S+u3b)g}lq)5YKy* zs7uAO@G*6OF)Ijw7qIxME=HzV$_$wkd_tTLLqL8O!VKQAHVmt5-pFZ)zc_5}ZCBM* z{8n(FvQDo|)5F!Di!CWQv%n9Cfb1TX6dued!nOP?UD0xfIQ2L83e3 zd{h!T_{JEh!vXc?LI)r2Lag9?F5c6A>%Lj@PtS${y@!yzL0&fWr4egyJWn$sX!uVl zyOO3Tm)!*b71ex%iw5~%m5|8rR`g(Jsd8z+=tBAw&{MRs6L*~FPyf3nB()r$*|DpHd&}{Fc zv;Vg)z5OY09i~XMLaq%wsn{Af)|6H)BOglF)2@}P#$!J@W6N7w^jdNlG zrqVOO*MT96YXW(&QYGNoB(?8q9WE4pE zfxOxrpvOj8t0BV1&vSuxNGSvaM1AO^Dv*?GiU$F`8yKIFc3W2F6jG}*9+qwj1H7Jz z1t@?JV`4*%MivX$DxgCqHiWX*IYFdGeH1BlGE_eT(toqazgqT`o0gribM3xEO4mKT zTmHy4ukzQAF4y$TVu5lXga)!Iu?!qRYyA+}OL7=E#o>uW8e@LG&EpN3jevf}4oc2( z2}2sAz?j)7-sLGE7u|bi_&xGVul>B8zb2sLVNt-60z@B3E!yM&)k>fxH+aA_&m@v9 zsDP^~7VLtPJgGlG(K`y)k%5CX>WMSzj{oYQ=b3)Hli*{3%CYK}e|+bY=ETm8J?EKn zC~G)fF3fai$GEkecr`N?*Rbg(qd-ZImAEk!OW8pR4)muW`302W&Y!BXA%t+wRMqCM zjjBgd)ip}B-rO~+!1f`_$JDm*;oDOsWRQS24cji#v@Qig9>M_f5DvH$2Oqchlsmd; zZSa&@B<2q_(r!M+RgQR+ELHY}n4z5@=}LLJy`T*_IA$TN@Vu zi&@Dr1;aD|Mq9@v+H1mGn?%!PM?Ks$Z2gLg-ItdBtNcyPqK6*6@n=0)UOtaU9V*BK z`ZGy=lQC2Hf-(%?{hMqI;1G?+pgej8Pz2=yad8K-PL;qJGG{VS~_czpIzIKrLeyfVYX@*U#WU;cc=NjlLH#gIq@wqXp!*Dk1&gg&)O zr0(#jjm0h2T>9d?PyZ1)c-%gVf7-Gv4;&L#&;pT2F2K{B0?-$ubCdESjHU@=G_&ED zYS<<`Cxg;N2Vf3K48hgGZ7$Khr$^;?r|kdo=u=HP;eQjQ;zK0u%E<+TGyO!*9A<7E zsrlC{B`8auMjn$_x<32xFLxZF^PGt(2&w)ko5+)(m5&nv+N=oaAQ;U3cBB`;>;$cwD~w%*EGE*&YAZio3BMfS#C^qoHr2Ccm)zZi8E%MIO z?|T1+jUN@9M$RqL82%VbriVQxKXuj=>-+Z{s|)tEW;k)` zxd<;g!T%wl02Gfz?HJn4h;6xWUM|y??r!P&%}lRW4p}Bv*$vI` zG=@*mkvJsi)SLD!^B}vNu^$WxnZl^xa5n2{;~KYJxlsOSUl)-xuA#|V6~{?+qn)QCjMuN z2)D{rTdNkWy4tH3nampVfXgZJ5l);hIfw`x&`W^tKLC))f%%{Y2?9Z2T(#ID+cLuo z^7dytHyu3tVBP+11YzC?w27R7a4ZVBVzRxTC-%{69@}KYU%q|hnt!GA;6b@6vGgjg zP;MtI0M*N2k#~ zyqCrtyGWG4mAv8m-sD}|Ca?JMk>`);+Pkb!&^IZt!G zYqF76t~eJ==3E_0*(N6Memi9}%Z zInxINB1T|MaY8iVhV@*ERG5h+)flIrxYw>yp5u)BxRAd66%j)p0OeJaTu2kf?l6DftR3+QacCu%t5RIv}?taceBLTrRkOdFU~!`wD8I+@I79e!IjcfCozZ7-JE#&9BL?JA5BtOaxf0w`Pn0)cXA73GkLRp~}gIDO_q0>eb4>d)&6zonNT$p6S!2}Q8Iyy@j zr@AHmEog`)>?Ky^m%zCa#ExhO8AT`~0v5n}s!-M$k$Bh+KEhF_OV>-cE$LofF`*AT zR?@8hclr3wPJ3vvSFcA?W&n<9X6hkWrj=HdSfIciL$QdpDNTnAi)yf=gmX1Qi^z#x z(5)3_R?%;;yw9>5S1vdaqYVL6N5_01!r@_2H%$w+s`xo8k>d+Hn6#s;>= zM?z(`ObI)csaafj#X_|B~(Cik`c-*r)r(*0Dau6N|SmvxMnx6Cfs*!K8=T$Q?J zOw(RWb=AP?Ngqb+OB3Buy>!K0rJ+CGmAz}WeR#n1hl+IzdMd&-LnHtfY!o6qli(t8 z2vXriZ7Wuk&W7|#YqgRjs7@hApd?eld+pI1Pc221wcPNY{KX!t4?SNZVe#+tJ`Fgd zg0XK3jEbWF<2TcDjs@QxJb{$;WyQECQ>)OKjKgWT+2YTfK`eK;%K~?S!4l2ane>a9 zJ@xqS4xH9LXz+gjM>?G{zudov{PKJ9Ri@Bqwqvg^86=hi{~Rf$049QgT#+=RZ12Ok z$_?+!9}S<~DBUtyH;!ilJ|yX@X_X{qfzX%5#J-wu0&s!=$e`2#V#mL3!ti5KVdROV7>~{1xbyudcHH^ zi!CtGp-=&83{^U64C5a<=@#(PNC16*O`YhbVfjYk59FfiX(ev2oC&I=*HWJOg2% z)1V#7?By1Afu05fEoR2;hK`ZFKGqO-Ph;F}MY*Si#k}@9{;8Rr;YaMmDntiN-T+Su z??O;}G@sagA}{e`2OmV=29!A%C;Q9v2jA)#6&n;M+-xoo-ad48YpQl06-(#1u>CQk#9 zeTg?<{4*HC@kH!VKu{RgPJ5wN3T4JK`*g^xkN81OMN}xHizy^DAg@(@NX9L>aehZ8(EXJp@SD&!?6Vb{wqW|5WiQRrcK7B z5jKnsD9D>3(Y!+5(pD` zzVC13_=c7nUy(i8iCF@725*@WBJr@$+65xPfIA;$ntd@?X9RShbR)vWmy3TdUzA)w z;Kxxj^{u&Se3Tc3fV(RY#;l-t55u^~pp-KfO4GER2U_2}RJh6ay*#mf;C^S#Xwoga zQiX`f(?Q)8y?SMI3DuXR!POyJg`qAVG3osCKN1I$=k*mv!hijq`r@W5hVgO*WBpLi z&VM}e_~>EZ;NuT?=9;(1>>oY&TfF_&&-oP z!is3Rz82WzfiOJ6%w}*#G=yJJY|rMp`*#vg`$=B(dDGJ^)Aug>4c?GiTn<@J4e{L| zTW3eZDC(C;b_=;f4GmR@|3EXDm!ezeF3?jd_EGmU{30*fmi}uLElBA_= ziLYxi!@oTBjebu(<8iaI8d&#qm#01-rS|GYi*7&jyEFR_`7aUC>|6SlzNK&JTl$v1 zrElq5`j)<>Z|Ph5mcHeWzvuyqevv~n_j=&C>j`;sR&-Jm$2T=Z`6h{1hT|5L$&m2Nz}&U9>l3a?qHYjl|(CI1YdFTDjlG4Hpj6hA_)Up~(EA zL6xfQr(Z|WpYw50MY|?TW%}mtZa<;?-l>=2?KOC z5TCn=rOb4=m1Ww4B8w`1K^6!Fj?=kTTU8YRNYrt00;lprI5+qrp)DCpN>$-liz^UF zMgW6!Or-g)IuY;5s>`(~Im=Unz({W@9vkSs_>p{aWo~}2>^ez@}f`VgRru(vCD>_3V;u$ zjZf4kBWPPHMyI7b)qHmIzvs@p6YnXC@uW5f_qiC0#{v5`Dj)!Zg+y7@r3t;pG>sYl zi`9NDH&mofjVyU%Xf+WOf2=eZxH=P&C!NzmPz4r}L?+5JB$=cBI?5gw`8X%?jGwNf zPXmc*IDccgP@_WT%*MhGJWMr6PzT)@MQ#CkH`g?hBZ44)#9BZkZBPxT7H|toJ2SdC zC?(Wm73Udqtv8x(e6gRUZ@BrdT1bzmNbNCj{gMT`P!U=!q9j6m3s17$#A z8)cG_2q)$uXNdIF?<1(17*ZCcD{~$2PefovqrU)p)19{x*UdV=|MoJ?kqO3j>P z1FZe1vkD72WJ^g1qDVQ~_=Ezo1U|?C$%O9!=Y!NaH_Z6~E#i-A6NBk&N!X zS}y>v_tvb*Ln396g(y%Qs?!g&*L8#DcMUq* zTEr)Lp8wKmS02r_taBaOWvFI7PIF#Z(+>Fi&r*}g$@{m1B>cTJJg*tI&( zQM(M%{BFMIwHID%y?(vx-aF5GEp%~fwy6@oXRluRp5JTfuQNc5)U5lK!j>|faYMVF zuInBSPE8#q|NF#RJ-XVQ+@=Z^OOq*G+rTS1FJUdd(<`(D6lF{3v~&ptosR}pA(Lfi z3+HPco*MeYpX&Cmh-(6_`KlsOFcEKLNFUOLkrtqn0f=R~qy!(ClR2Ww3WJS=`oz{K z3h^*czjxa`liD^MK6rP*Lx-m5`K)-6?(TfSnYS z?np_I$E-?}Q;34ncZpYghIlBO1rbnfH;7PC9MNoZQNBt@M1T|<2$=pl;oBGHzMZy< zPv3@~@T&}Rz~5oij(9{mRHuLMow{xDVf`Hohyyb!Zy+QCAO>NEW`SQY1%!SPPktR2 zk1HY}npR?J;}d|c4kCa(i3B9vC^{66QL&CdEXa2V`~u2GE(BeJr-26SZ+4Xiu$^_% z(PRX27J3?u&~+SPT2;1sZ0&&mRjF+K(vp2r#%CsUZP-pyQXglfq%^=|iwW_lbwbuL z74jIAQDL!WydT#_t8mDm#7zlB2HCw?i`m9&EY!}4XuqL5ZA%%sDxE6P5+e(Z*I~LE;6QqC-!|) zHIsfi`u?i8eEdbZExt1kSTN2Q*l%@vDJS)H8@FOY&=5q6|A?-er&GiDYPFw(tN z!e|YId7!HK)tYPXHjduZKW)wJfy$L{xO$9g{Yw`bYf~C4Bh@e8bGaz>=<4^5Zq<3- zl-ZStMTCIAZWb6)-6ohLuvQ7thPbLa%gjOsv#`*HwFl674Pp=);dDFPiE2pF?5Wzf z7t(EXqf_f!POvxwM0A;-_@rSI$Q^T|SJB=db=vA;*Yw=d%H$5?j!!LH}P0^6A*D~nSGH><83 zI=rF$m38EJvOO|AFddj$Zu#20@4wvHDM1WQFkz>kjtk*fTaw4fA+u3xk0rxFJlMDy zKQNiXOo9u{uS!PZbmVVC=B-@yv8`f{KWH|z%rG`}(V~Nwn7^8(V@sNx)qI?f2Ki_p z6V^hSlpwl=0#jP?X?>E)7w3##G4R~`2Nla8S(Y`UjZ2lEcjlk^@lASGf)z5CAdWFO z_xd1=iZDL_(uW!mkRU_@i1iPdRGE{o>J&i06h6xxlG^_GKp{xykVvZ40?9z(H9{~d zP-S|cGE!8k~|Se#ew~^+6W5aVKM|j%HcxH96$*Gw9<}c zlm7~Cg!ogRepelz;DF<5$CMg5bn^Vbg=Q@5 zm5u+tw*M&KZlnh|G_~-Y+NbS%ug80|;I5wNe6X$)KzG!+3Fb1(O$I#_`Bi zSgMUfQ{SJz@#5?Md~d0~WDZ6g6%`O=1!Pb>&u|@l5Du3a5}*>?OMBYAOveWF+{?3< zqmJpvIX<#}6*u4H73zmXK0oA~a-A{yu+-V@7p~rQc>?cwEN`@l%w|&*=n}%CLb4*1 zS;Bj~LB2DN2c`@UEeZyj$!Un#k7%+owP_4>_c{pmsPVR%n> zKdl?A)|+xflHr694|k#AAtB%6ZLPCZi1_rMF}2gEHxahs!#C6zhY#*XIqJLb7@*o- zi?=6!jG9XrU&fy`tOwd)DiN}r`3pK>44ww`)_TidHS3dZLMI4#-GJBg@H&XsZFs$4 z6B?z7si<9(<)F%P)&1Rx@Atv^6{_FATeB_a*`AKK9rG&+y3b2jRph*Hvc3?1&*hr$ z)0$Ad^}Orwb37TZeRw@vv(4hQ-t+Zfdcg4Y=(r7ep6fcz_I;Y|La+aPeBP4z#n~ZG z{oGI0j`fx+K0x1lI!xvb8Y@g7F4{0f=YhARWHQ~crIJQ zeA>Q^#KR_=$a6t&EZPRS7)d3ByFD45Pe(|iEPX~h4ak=otBaUH%M6oJ4~&^~!Ij^i zrDH=-7G%0(T0haF)UGEn^y0I8N`5>6Ni9~vR4o7u(7ujhO@T7QQK?f}Ms1l_KTYpO ztPOEKTIWk=I|w&PMxxtvauc~3C(LvBlXXnkm zs@a)wR;?O(Kx8uU#bRMqS(KM@@+d7w4yglKWQ5&M)0shrW+H2mlZ81#)9;UaZ2R~f zClBhQBLB}=6~tB(^C zl7c_5&?t&EwPM_dFRZ_8p(b4L+vv+RH1y8Kb}*$hMJ2A4S00ZQJ^}J+Rs#U0NOX&q z$*!ftzuaSBvV#Q5X@s)F(kBpYV;6{AJkAp>V3V=VjRwG=PvVoom`{wg z@MyjOZOD!ZbLmLsoX(lOkyf>(z8wAWi?0Rd>clnDxD;HQ7)8=h2%D0gSzs+>9S>Rr z3~^zWOfJEpo#=27jPW8+}YM z@}7>=u9ugu{nt&uloe_K6|bxXq6aK1M3F+G1PvlqiirtNk@{AJN_3f7lNGWO_8`$k zS;@eesd6y`O*4ENV0cz)aVaBjRczX_LHSyijm0I($^r>gK+773_W<-Tovew9@M0Se z5_Kr-;0A(?a4d0V^uCCOhz$obK-Sw=%gkV*DwrlFQ4eAgwDNEWu48K1dZvNJ;5nNv zdaf3Q44cA;K%FwOP(>U>5Gga;gAllWGjgWJ{vd}&u1Q<&6-6{7QWwKdVZ6TdhL{OP zwDAdsi|`F`&`Y)Uu}@hl@7I&T88vydV@%ia{TCKFfDFe1QPg_P5QM8MzI|~MT<;%4 z+xFAY`t92TY>ie$7uK!`Y`o75ak@#zW4WR8~ag~xy^IZOp zpUe3VpzljZOz_vfgt-dl<8AVs?$%tdmS6H%jV$zAU!$^wmZ4`LR~^6iCp4buz<&+O z`8;-&^}OCIPrLlQ?2m2z-uxVDFURBSy!L(cK)>bC4w7KlQql8sF=+aQwtrOY&`+|d z>&B<1TIuJ8Pa1u!UXsmL=SHLoX{3l1A}*RFK8T{_Xn1kdx$&lUnq9K3Q)hfUE_L_~ zFU-RFcu@gB|FV zjOj*#C#%MxOS|l{ajNabcw2kiQoMhxX8%Qa|8-jrRP7&d&lsINX?1G*{SWNB_aU`- z&t+N3cpnd1E~+1iVQF+8Nv#2tR-EU6d|Syy0nhZs6FZ{fGUB8ihW7kxreTny_)p#{CWIfKYl6K-R3I zos;UDfLcuG=doJ@zzZgkkxyc1^4dHQk)V8XmpW$hl5?Ltk&&9z6F)z+;?>qebcST7 z#6^QGu}(pxsH#{Z5sNf|@^w%hRH}?)O={uC4?c3rq?>hI@GQw#M@dq#wrV&Za-_~) z0r2^cYsHosrl-yq_IvryK2kz+DC0_ov?M- zy{0C;$k}fbyP)87R;=JfZR)bg&tF#gby%+j^;9bmDi-k%1>+;2)(qH5B%}WfdwxwW z)uyP<#YfBZ9~HkSbT@Cf1!Z{ zZ_2{_d+SM+59nok3X(*^(Ey=T%_9NNm;#tG9Y7s03<*ja@KouECSqvz^gz_h3<0LT zF!qLVuq|{$BgDRBhf;3q!h`-jdN!gjB|b~NarR~TN;H_6{>EZTG|CM#QzI{X?$pDo z!rS?22o*smCcuR`amuvjdPa!OPe&>#Gs|+pP*O^; z?L25tg#Ss|{KG&jClk8V5C5s-m3I7NHc5!iuc`typ;#6a#NHZ>06Nr2v5h8n!M3sA zj9m4@z&|>1VYz`xnHGJx4<($SH&G}?G5fT%593RKzLYS5)CBhLaIqQ8t`s~aFsav{ zdU5%JL$?(?V5lgNAp4{fdHuCKFsw~v^vE7K)XsB0RG1}gcU#iBY5L;`)D?`Vh7ng! z!$|&!Y*XsOi}!4OXws#nIwLCfp-?H~Xb3-n5FSSqz(*g@k$XCZAP%4U(B%v(|8mA7H!ww&ayTNyopNFXo zv6y1{GQ+IYLl=)3>)dgvt^urg;*?2%ZKR5C1@fqV?Ysl;VT@404gA*u2xJ)wOFANW_E9e!wp@w4J$C2~(C%GiX@hIIa(r1~ zO>j=?y@Q1_mS6lu!MRTjl>uZVAX`K^7Bb@HW9=iX4Y_1!jjYL->pR^Pfr{Ah#~F=l zFityqM~b%iF?Mch^_~@bd;oSpiNAeWM5im~2LwkH1+gY0%yIESoVg=OO9TLRf~r=c z##<8;rva`;A7f#+Kk8Ttvh$_h#@tl*i3hA*-hGPhNUbc5b4K|EsJIO_XA23r;)1ss zexE833jxj5&5c043=BHH(#OqHQsJ>bEI9E)J=IZ@v)MOG2=Y-6&_%2PI^d|s`uTtm z=dlp5-8bC>uM|SDn|&UCCQfN@_N5shQNGHV{t|*sA_e#GRKUJ~$|PV&6L3Iko$&Dm zHzqE%`lJ0Pjdiu_xgA7S&rEx3GNO8UYC9-GMGZ317CJ>qp`n$A1p_(oGK`(oDW>mnY^mN&V@sK#C1o>rRq)~&I*AD< z!((O$9HK;ZC<$Kd;KJFJ1&oPB^#o~q0+w$>ZAq>DU_x1Jc)ShGb^u0gVrPz(o`%$VeoT0wR%+3|v8YYrkTxy?0m=+EZiy+;S-UBf*7sX5m6}@Z+*3 zBaSh$@ zMO-lYV}Tf&Y(UqptKYonR7Fam_%}a4HC{UZ`LmAsMKfX*j98l09t-n6G1ew>k!rp} z5EClst+S4clR7C)hcGrbLVE0QECDHVDNAMtDZ9*gQH+TV=?#1OZj%YQO}f-3fI8RA zViprx=tM*29mY+2pE-Kp0lTXzt;`Tkwf}Qn;Kz%(Y`X}zODZC`FJglM?Lu}>=|mByrT#qYZ$JODVj$i!U0rt67xIe8$#=WDdw`0yQ`3Q{_G^nvPi8hTNoUgvKsQpy+K<$N!W^=L=+OCl zztt3)D-G;dbi+=h9HDf-Z%G3BEK9jy5qra1~^>A zgb;0Op03fup;&Z;FD6K_X!;0E<^sA_@FXvnNC*Mq*Xs2^d(S=44ue>*0|S~KC!5wk zaKk?tI<0j;vrG-kOv}k_Zc%WXPh&4wy!yJ%Io}T%{5wT#J5n{zFTR(#^I^Q*URLDn ziOOvn;_6A0GP-a_j)^c4)F2|Yd6%mu$3$v!xe&AiSzWZRwh?*=Mvp&DUWBM3?XDIH z*1?ePN0C`$H6M3}IZ0~lqFY+_K6cb0J6w~8PVB2X`Ay3~IY{mesws6rYUijQw=TIj zu4@H2b5vBAEI@>Xk9a`FH!2AM6iEd{_h@jpDL(}J({EeC>R0Gn!ACH&RJu{nm3ru= ze{OttJV8ESUow+ktE;wJTZJeWM#(E@UA5KEOUZBo6pK}loPAw7nAG~qC^+35|Es#T zsyk)P<&8GVxBlaR3HQ;XKyc{goJMLv;<>CSFr$zy7Kliwx|qs?rF4 zr=F=7eT23T#@nmjT?|hp*`@tFBg)9@2g^^FPgga88PB2nBju&{J~2@B`zc|7YK*z# zS@rc?wo2{qbua6$dLGuM{;KC;Sy!RD|4sW>sGd*7J{79xas3_r@b8_GS~{-w@O9Ga z64F80wjP2S!eB?3=Q{XlVk{Z=r0uMt?KfN6e#@(cQ?4GhwWIhMsmVXS?C8JGQ6xf= z1*~GYNE~`Oz}tlqbU;x}Ohy}`IC{}x-1O{#mnMGJ@4ua`Dihm0GbQ>T*wNP1q!$!W z%~FW)$P*PnNJChNK`bs8-N^@%(7=S5AsSBC+S$q9GTwaRZGZ@5$nSicXQsYeJEQxw zj>k1ou7dJib#6?A%}W8W!zD!k#|Iw`s-|;OAZ(7s6It`N1Dpal2&+Uc8fb?@F$nxZ z=^>(dRf;)`NM9!IIPY-tU2FRl8ywId?H8pCyX;So`pf0nIk%iLjoF%v(9{GzX#kiT z>D?N2M!S-gsDlgJEQtIE*os!1SYvFgH)OJ-Eh5=y#*&S-ub#K9H!u-ph6_@+aj!M) zx%0&AF;MYloaoKO(5pd+as3yBmD7r>-M%n2VB?qvZe5ko!v^F;yQ!tgtdM5Dj!TF_ zXWBxL3IV)PMnUrPrzHiE4;G%L?PvH?s(#ng!cNho3w^U!x3rm{l4pL+f;?w6}Ob-+CJ>-{);|-C_4tpBphrSp}`_Z5Zi*-{jj+rK`Rbs z?I~=_1=DXI_JuT~8e?H$NZKg{0&E19BP*HZfc}6z>nl(c8xaLIq9Gqe867b74xMul zsiIlrb+agiL`exi^}(N(1X{#U2NGOJJ0~F#Vpz1q*2RLX2w0L>@Bv6jzzhsq&9`#N zZ~}c6gdgHhe4-Emtbkw_8;^yB0IGGcv(q`L9n}rvnTg<4NZOf7h+Qm?Sj#+q#s(Wc z(4T|w0T$d&=5gRKD4LdA@Q=eoAhns!foU+-?9YcrAKP%@u-+yYT$*YfxBRVL6Q=88 z>1a`miD@tz$jie$NP!~#A!x)jO<96nQ7$3`V4TELU3kY_nmTpmg7fLcRXRP#S-pT0 zTLGN_W#)oGCYBTfyq6TAnX5fC4&GRi&PSMNh|F1mng@CXFvo|y!k7pE9nhPG+!_V*fGkVh9r$FQ>;AN<6iXEn}C3$Vt zSg)w`>KBPwV3AlADiW*7DiSN+V!9$V{pM@8_P=7i4hALfv%$U?{M%&4hzxf-ADAyh z+k6QT25w4wGWPV7Ns~L~iRrsRO#j)6wc!z!8kdw5X_B~?wr+8FflsX5aAj&;MaQ^T zzV&23G3+r|XFF_uzDF;k}#rddyN)p;qK3vyg4Ac?&+Z;R5j7u|ED(;G55k;6rzmlhno zoN`R{*zdz{ri-ojpE??@AEnTmlq1hQ3T+#4doyZ`2C_YVhEhoIbL=SqW37%wgeVsc0O_Y_Lg2;1gD{pT7vYPMSG+0p+z;0ra`X>f#e|Zw z3vOZEFtCmNF8mRwLIb8z0RyK(uG3nus@F{^@zt?Qe*OCqI-@4Bw`@!}wxAlhsgTAp z?nUG0d%GIXDW$`f8*WZbKVZ(}Gw-O&9zknKZiA#MT4~A(SyUQeX-u`y+KOS@HnfLs z#dtKh1^a=gm8K(S?X(Q6A9A6gRGata)J3mu?|5z}VTzcY-Fpjyra7>7A0Fp{4b%f| zM9;vpf~X^G!B~wD4HCGSuNIRkDw0#Fr$roM%7)6LMAv9K)~)eS3)-Apq$DD5Z1)ZA75jyn%jqmED~rws<3ZL(Bo zK2Kp`mKDQtQ+)pQIQ4dm&i7{;$8D*P?s(_iR?w710JjvTBb_sP;I@w{Z#HGskOkVkL_Vg!_agn)Y8)8hp}Z<^%fjNO{|sq zf9zcccoXISZ_D0G6chzS0a2iLNi%SfCf7D?N@LO%WO!y=(@V3sOAEz?TTu}e1rfo4 ziYSV`xEHuU+zS!M4;2;nULg8^-j&>4a%~cdzn}ldJUm=)xO16(Dv zLebz-6ofh*;|sxH6~lOIS+%Ot$Y--{;k9jF{IYxU_O)ZR_;GYuH00+a0l-C(2_t}h z;cS^O`yRtE8Ha{2FZy;-uCM8;_4{|VRZM;R=O@1DD2-8TbCy<=nQ{~8T;JBSc9&!O z_G9suSW$*tjDZt%ATmk9>{GS9zi)~G+bbnm1a zl22Y}0@~0v{oz=yp;(v0~P{rFri?ZD+>{JF*ua`G4BAQsaN3ZQ-xo_PzYxFk zu8|R4pt+zybCG=^MRO@CSibi_WNQlx?r&Rs$B#{KTykOdVd8c&UNyx|flFqu+OG>s zo7?>oh!>|pN;|xr2irn^-R>gaBYC8#f=3e4){_aFvSbtJ=D-y zahJ6Jf|Vq*G9~h?Ob%e4X{tgwH3PNUQCQ`}MBbS?6AfAB6JHNTuKE z@ipT3EP2<&W-n`JGai&Ceye$PPqkgNjB8n8H)y_Ca_51fEPlVu8%PNzP{nRra)Wn& zOB@y!JlA&K+;fK&)Q;9lKIwssZiAmF=^6mm70a1r2_oFw_Si!eSKr!tch*Bg#kr{3v^di-T&N!1U9&IbgWF!i;JOHuW& znhTRWKEp8aAj0hAn~>SuR{7kv->&z+N!+hAOI96NQcSsOx<94old)woUXWqVOwNSp zCMclmrdSx3LSbisR1-K(p)#OT>;mCBjEQ2rC^Jfq1_D>EWbrt_RA1KV#!MJz&fGop% z&$lgZI_Jy@$1hh+G#!uNmUuMG`;cxjm|s(dHo^^o!cm+b4xU8QM3)pZflx8|q^$$5 zhZ^+{;KcKw5}?=wj}sZM{p|}JbF6*#Kd|{~+oVgs_QvcDsvfrAdKRFDR)~jvgDZ0a z(HHQ*RbmxO{`{qG(C5AT6aJ-E>H3+SMpAjb?Vzi!eek^N8gs=-WpJthkTX>#!_5Ui z766U!8qb=~I`s5<+fR*4ZPTv1mdx5kIa;>_9_$h0;F>j@-V)Veba8`6jDxD=tle#6 z%iMLPtROIioL67VKs6bPH4(%LcxmUJJpB5o`@}-qzfqZgKY4Y_H``tvu>0mk_jUl= z&pb=3-E0F$qF5|wHbQ@64r$i9KyVVz1y28F+v1{AYo499IO`cCd(e{F{nT452wg>L zDw3P0ijjB&`^oh>^SwVUTl441%Ss=3Y(3pS*}>m!D>~`q3-+D7O_g)c zx_^KI6gb}=)e7P26bDf>F5(HcicCka?J8`W=;29Z0P+%+6ewpH0K5gsI1@MsGBn_- z+6|b0*i8?;wRdOV&W?J$+xFaP>&}Z8=T+kZ>5U^@zGU<#`x+NGNLZ2vRM4y7%a)Ge z%N7J*X7(GtTvYIW+gH<08M))|@o5mT+Qx{!m?e~KtQ!ejTBhECh9(=8drJBJw#a?= z{j~6Nq7b$_4dR3q97|?cYszFAj#LR40I@h@>$K)DBOZR&`xh)LllmO;|12d{kXHU_ zXWKn@{BlZT&66az(E(sCoe2!^ay}8Td)XKubHrOQGnf|vjFyE}{n8Zmku#p+5odzj z8NDF54bLY>+vy0sDfK4--T@&RZ_ruGhOVbReSYQO{-j>mr9agoz)j!w8|ot!9ps=+ zeh}*Or{?Vs+Xk<@ps@MRU@o9G89$OTC+TbTJU1`9>KA#T*a{0iYFjy@X7iG1ucTkA zoV{m|@zWqe+U`aXtYWx>1@g;Dg8^sn%#h^fLwr^pE9d&jl=a{?ks&lUhBC0#1hdVd z^8#8>oTg$t=i}z_BId9GV}^~p<0bLtSO^>hrw?~IYp<-q;d5B&2U3Kxk86J1R=@d; z30E!Zo3$D%c_x#qo5eUH(R73XCJ9c;2tbRdw$igSqBJGZ47S>>oJn89kn)YY!j5t zDidJMF(0a$nYp!TgW`9fN*npH?AzItZ0B}j&>4E`X`dBpG~3q0zdy6e#^Lpc)Ru`s z9xsBS1~b}%is@LyF!E_|^jHKBJSlnUmg$&!kOmBlqhgHH^1(08yn4!OeFyym=EXt< zvSC--qR(62etvZ=-r`ibQ6|Pw2K+Y>Y4w4G76^+Xc##Teq{0-k6jkd9O!I_6IT}#h z;Fspf?;Je!*8xZU8+gbYXd^f1ceU-VeXq6cl@3coTkC6`HoDGsN-pJMK54uA`Q3N_ zbnc1i9SU1a$$`Nd4aYo4y^->TW2r)nRf@WdZXG+KW#dVQcmh2K{R5g>-bA0Y9kglh zr-yn^DA0gmsB(r@n&G`(bxlr+szJp?p>oa{+sX|H3Z4VS?+o?Zo zn>~HuQx81l(;5pYBH<03tB^Zx4o4$V5inYT95+m2%Z{k#}E zI1YJNOeo~0*oS_&ZT9=&ik?HVZ1C6mW?uF$%pSC#{PkHw#8zFk73rbJt zBmU^TBpMjbbS)cB-~97m143Oonun8pUy|DWp=lxg)4J$0Vc?2Kj`dkE7hNR`Kr4v z$o{T6(5F;gzsX{;TkC5Dpn4?$Pr}W|ITsgi79yPA6!t{;1`Z~d(_@#}-o@^=Pha`m zdCrg5rGrND=6Wk?U33b;yQ7MBxkqF_Z|lBz`$4Zo4rymPGV!9dx~AT0O`nOnZ|_o+ z`NZF}&0Jc!^OixA(jqK4w$iRRFuBp90ms(ba)R!E*A`hY^oKLgY0md$%$WyFTP#?> z-5mp>5P;&!M*_Lz0g4K~ZyWK%Rm0!+xC+yN7(k06<*eF+NvAXjN}n}HqJp0Tu?-Pa zZ762#K{8)BJP`m)4SU2UCZ+XK!YXxOz&eRkfRtJwR}hsTXE z7o^!zX@%0EYlupH7=58;h)u$!lS>Infw|+-p<@8uFn1}6pW7a&*}Ac7m*pB(aIS8} z0n5E=iCTAPxc<_1J9FZPH2%0|Mb{jujiMx(=VSF_8w|Y_jyQ=OnI%~*?^c_nbRH)L*@oD#+TrR?~R*M7sxglTeZ{$Ja6&52L6?R!zf)uxLZ z_)uIXg~{@SrIBa#)HJw|qLylU5t5X@p(ZoJ)^W#agO~U70(v!Ncn~)32{7R>({k># z8DB7+q9O2m8-4hk&9~1vT*E=9N<=PR+8l6kv8WKQ76Xj4%9nj|a9`VTm-qYfsCg%A zb>GazApk6kiSeOmpqV3e%%J05%}46XpyR8k_0TU%2+*sST{rQ?ep@al$M0*~wd%uT z@3`Z5ttdi!g0Low7_N;ragqJfgWcEGaO#v9pBS&ncL+CFqhY@%&SZwtbc(!Po}+hR z!Jlm>G!=}Rb?8Y2nZgcfdSfK-s0ZRn0Mbol1=<%G+f$V7_59V=y?N7ys=b=B0D47g z84EXoWHAW0Oz%CsH51L~W&Hau7IpOd1=7MnPmh?~n!sDq$PH#JNTwDUqRe=n1`sc0 zMak@>O;W07Iw)`B7fK5*+5W&|XZo}z(kvw5N}T02fd1oj^9z80OQ#Dm6-fslzj*J<$LO^#QYJ1$ z(bJtaC_)LYmZ5Y=pB+gFi8=hLRNve5xZ%v4wUom9sijm{&`mnHx9v%4?nh}!FAyzc zS&u*1EXLVJ4h&DEKLdp<(4RnO#-muVdQuDlwdynxlM*Ci;){l3a2B-BM2IPTLIUHZ z++3KSX0>1)WKexU(UDQ*YnsIGC__Esz?Hd?JU)nz2@OllFXj^ zDQHPbfo#O!_x zc&$z*UTaAcuO***RH2f4RJVUm);*w)wC3ji{e`K&X{FLTY9_+;l(iKqA|~^0ksF?r z21xgQ(df`wbiwTFaFVb59RdXdq|mL4D!yoaJ#Fd$g}lfg=#4XUzJ`DS3GRZX zF3#B243pi^4Ma(ZGyys%R&Qv5pfZK{l)V1%74?Y07o z)m2-}p4u;bMSgSKKugxdNhZJijyFq>_&=^MyYk`Xd;*F?Awz5cKi4Q9H z!CaO#LxEwPLHkUgC4H?}j1E?Ifq&;vZDWvhRLK!ztFFFYW1vqKeFD^Lk{K@pB!##E zEnugS*Lp${fmYgHY0(*2ABICGD{A2b&}Kv&Me@>Mi{8(PKD3WUMo|Ut_j3_g3@QdX zM)nE=L!m7$dr&$^>i%KLA;(rt z)v`Ct#HI&WL!hexdzf^~Tbp*T zT2`uwh*FQ!V5&~Cav1}zTj8vVw*as?1tz~*V2Iq;r>yYk%AQ?2DoOFz)%jI))v8Qf zSa7H`erRA^(e0nBOtg;4<_^AvgEAUu9GeWS2p87?Y!pAZd*x8yjtvubs)l{D!&dKh zTbzx2274sjo;4E25!Nscv6?d(c;S?JXVx_DI?w1hO!_W%@Uhz{GGH~PMF9^i(Ix}O zCXGKM=h*=L>MI9~>Jl6NQFrwVc`$P_e1E2nZa?tx&}`-UgR`|F2!~51_T7Tj|5=q= zj8xBy6&?YUwShq)SjY)NTaYOL34@rYs#Jj`y5pkQ9EOuD)bBy8S0m0$@LmDJ_z{yMQ;%mN|cK7Pcj)8;17Nz!D7gNu; z+>D|UT!zHX^MKJ?}4NKTP4c||$O4YD45Lo1jlYdJCA z2?Z2)X4crHExlvp_vvw0Qb4iZ8S+FFqX3Qgka!G8@s@~58CMPkB|vpqR&tYZ z1Q9{X5j2{inOX^rx_YOg?h`{(Z~$pw;ptfp>1K;|P-4KuqS1j^7fJd!ET>f$s%3)= zTj>bHsFK$mrwkAl#tE#5I5V6*TscFG)fPken~m+Wb@d~s?-#Xnw6yj1TZb<^d9a49 zRN~?S+5cj5vDIlD7HL4brC_M+`4zKqtFWA*m#x1;Gh zfu*|0ab!Kc#g3F_eE94+BU+|w&ORCPu{u43K|{aH?P=iLagVRb8HMCAqHuu58kL%g z_u;L(KQ4LruU-ebxYm)Ge0IUuDH8|b%ic_Tbgh98y?y?Y0Wp^-!^a0O&ZDRjz#|EvWn>?j)(~p)DZSJ zwjaqdBB4&ORHpuFm*4-g91$MS;GYBvJ9;n1OQENK?RTMv)Tq8h)dD7m13f*Oh7ko> zJ`-2p%q+eE5%I+MV;E**(~$D%!!GXAFUu$NMJ2lQT|c6+`6s-5*^aiy*JpN@cH-qX zm649)>18FvuoCZT1VG$|BJl(P=nX25bzRiV63N`zx2v z;HiFA_x&{+4br4Rb6*n9ot&OGY{%1pY07HP{AtZ$ix3dg(HGgHP0Z5v#S>y*wtUqo zVU~6aLTc$^f|ojvYV_)`>`|4w3s0TUCELe$y!6QYXBVtEo5x!gsyk9k zgGd`)9EJ`>0zl!z-73bpD^t3!fL5c0G__B@Q~(^ST9F|bH*2@{D6tw37W+UvEs z6S`j9ulE6VbhITqN~Ni{w9X3G5+kB)bw6%b*J<7={4x||?C1rb3mw;m}&EIE8g9jE(D9komEqhZG^xhdJ10dzrl$D{4 zYLai3r38`y55OZt(+jF;tsF*;WzHHKB>cxIy&rS;{9K5Ob9OkulCfmkkhaen6_LZE5wJd4 zcg5s>Zw&8V-bs(Du#?V1VsPElfu4%(>fh_gknf)5aRoUZ*IA#x`}aEgdbJI%dZ}k{ z>Zs9iEp88Gu0S;8($+XfMofwV5V$%AQ%cb$CX8mm+Iaw78w@lq>wD;)Kf2|fYn>ql z*FV1F;W-P^Cn@BtncW;Nm}5`V+)>q8p;+Lh!ftFLbPTK`ukP*?=D`LOpMqn%cI)}qivxT8uZsDkZ0_08*1OE7_L^`$N!ZGea5T-bVNM8e z>^wf+7;TQT-sXk|PDnzU@pKu=0``XBOiDbx*G;n!6v!Z)vAY!f188F_KpX!YJ9^#X zi|_3DPmm6i4{WognOh#ee&(NK$ht}O=0Nl^ZLguJm=N`GBB(zxosT!-JPY(h7zZq! z4wkIDq86jUAkPd-_%RSJC?D`#?zjn&u{kHDj0y1BFO4%f5;rg1gaecK%<Ol0~i5LD}q>qDFe>qSMtSk#eAMtUeI32SfykT0-Q{4r+MM;rPKBUxrvDf##N+e&m~V;RcD zkqW9aW})L3mSxV-6~8o0u}(5;qwJZFAB#87er8z4{gL86ilycwElTxja0h*Qqv$C4 z)zLzcViX9OixjT{^=F~NM!obVv`$*1J5I-wSMB@|T9Ub;OF!i}ytS7yZn_Kq5K#=< z+f6y=564S#y_1^yE3Vf&vZvyDZC7!!HgXRq$2xV}a6ixk)Q(q+o)dGthOd+r*qyuM|lmDfiC zFXZ~(Cha7haKQtQoN~ok`GCgr5r)zgTPz@lC-9y~94Lrm!`UJPngN0(7lA0Rl<na z#&jX@SDDA}FB6-+9mxQw%YsP@vK!NV(yH=%U#oic_H>L>RvZ>{QggNgrhO8)UI#~D z2nwKC#)v0-W|~`{#=6(ZX+H;ob?=jc-)^8Uv3CesEco96P878W!}7fpY* zV*AU-s|ufH-N&lAFu+M-L(;~Jp0Jk>G(%r4`Sy1BwA2c1#ef+h@^KEI7YdO>4hxY* z&U65y;Hsv>IT#c8RuV#`_S4Pnhvm!|$zf)Lz`0;p#^8^Z@e#irhU=VFZU&Y+2w1CM z8@2cPo;^C*RZJm#>jKu?Z`TY@iCc?*eou@o6*`B~K;;H!f!-pyN z_lzr-19z+11DjMum}_-V7+V#%eJ;TA4;DxJ_i3A?T>rRF```Npr%6R!=KbV%-FPzk z9dA!)L<2rLOu2rZssct&)pd~b{itz2b$ykgfG4o0bjc{? z7)zc%IsXrMc?Jd!^;ca7Io~_@1n=R=`WO71UhmcZdr#8WrTvxPS0DF+s(sH4zO2N---$N_-5Vxz^kgFe}+)qBf5!v<2b2PU9HX^tFy`%)YswxXe z4YL`gVIh(2TKma(roP^HJILc)HcWXx_TkDUc@FCL{|Alpsh=BZck&*Q-%+<;%BF}& zOYf-k%qYA<1^>w&J}Wo=gIL&HZCcUon^rV7t!Org^>XB4~4- z52QN`RcYK~wH6tzD~k#~Qf;In8V9KuNclvHTWUHo1%U5}Q9PaZ#~ZVEI-=6mQ@ZLN zpGQ)?r>khhD9vu8nHJwB{nIP19N3?{yl<*zkK_6%mn`ny+f~FVtIBHFh+VR}u9??e zco|X!bV8~n8BGWwx=FP^ll>?Ej8-j^fjU((pi3cI+p=f$#BcssHRL}yQd0bM>mb`3 zS6?XNgZGWy+WKw3?@9@W$z+R||FdbrLULc{ytJq=IOEyX!;|h`OnPs8~(rbEkB$uJxHxkZoIw(nhKOuC{Zr zwV5o}mTjh>gQ~-n>=3#nS#cPq7;LPyzP8RzJK6Tj4vP;w^FhN2E!_tHkNbA1VYpcu z_`s8;x=n&c+@?b!q0!-4(3&j2W~-@{RoFTpCD@v!qh=4iVBw9|s{;MmD_hEir?6_C z{PpiF)jX|g3LBq9^MBV9`za#vJyxJ)*=>C_dO(ZRuwcbi+a{l+5n`nEHV%}Jb2obt zoFbLr3I;RNW_X4<`mxfwOtN;_LsjNU&up99tzpcRtV_Tp>$L;YU=<(l5VfC-E$}TI zK{K1&&0ZwUfwU47L`Aa~kn*h27^8U1vx;pZTs}UEqkqbkvENWuayi-#~1ak}wdU^vkXe*f}=9EtYR1Wv2lP z8b>cvva&5LNF4|~rrJh<1Bs$&sMaGkl?&147=zFfK<5iTOe55Q5;Eyw8>v4EgoCw@)}$4v2iUG;JvenW7BPw?&5_Pd@BDwO{z_$hr>-^BpkHm42wdWa^79 zmTXtcMVaMELZUla(!z^;+&zzv`x>plI)-#$I9%iM zW|0u!>!)ltrqT7J3vr?K15 z$^!=#h6r{DOVnBIOeaX@j<0Ap35^*+6<4T6fl=H1B%6uCaOSfFq=TpuFIFdMS@1AEK1S;+zZ);U~{?jOLqk zi8ST>b<=O{f4^2n-4`nH#9|>7CBUJw+;gdEW2_1G1q)?neU#=h>tRCuW%W2LfiG7TKgi_#0s7*l)I$Yf>A!pQ<> z0G(mcs!V3lu1sdpu1sdhrZO4GRC{0t1lE{?#b0xA%_3JLK*M$#tWpLlmswPm%S=T1 z7(SaC{A_yeeCR>@=`Z%^tlYnrpztE;xteX$&;0z#{piH@NCPLx>)?q=MwBkr$b(zQ zwhjOkPvhpvk4+jzU?bdO1%aLj1b!yDPw#C0wP?+-KL_;vFByxAq@w2!*>vRNB)&DQ zFt_*?s#sau*c@pR+d;z052K5P=15IMtuR5n?KJ5L!|OLa`^IB^iw^&XVHw6Sg$MKv zFD$rR`ij3`^_9A6pA;N3Z96s(J4f|9xo51E<1|Ezgc&AmWJ1r(y&Pvd3fj@)8v=ZO zsD+vB6)ce+VZXR`(8(l*;LK$_1u!_ftEM>)z=nkE>yA@^@e*y}5beb-bK)r@%SM3K zZ%7u}QR~uEwB6Iww#Xwb*gcp#6|5In3A^=ynvr?Fa1y@VOTR3B&iPWcvrN0Lm zYg6e<#KvfI$d9-cAOsfTBLO!z*DA)#fF4&FzyL?Xyw4qv3S6cb^%?J+Y3lO%zW%-c zrn#xGV5#)!E3;Ny(Dq^;VRwaQReB-gjEdqgXqN{W8P}JBf8jtpO@l6$B8086!z>1SagVlhJ_ zz>jBmcU^>!%aF4)%cr4aOJpcnI#sus)+e#5eH(-+6(iprI-KNXkSM99^6*D)=#62l2s^LX=46M^AVH zfa(V8PEstbPaZ@_m++Yaac(B}YUnpg>%8T@S6?&~D3OTmM@@@S)U=Urz)JgQAP62Y z|EIIQpH$WLunvBo(|BByaWdt@Vafw`s@6Zn>yP5)M|gP)UP`Ac&qvnDAWDuWzjLeV z{KXGtzP{V0YPI7ksr2T-m(D!y3RRXMdxazzv`T5y<(0!ON#?MVwP8v)0fx0feIdtZ zH-`WQj9m6_ccK_pYbomaFCBuGj;ZJcdKKeE$#T)T2sgUt&R!bLutsW_HvZC0iHO#$ zi6bp!)-=O73RXE{1%C3d{!7!?rF~z>I%chgBg!t#ndTj2MknS~Ae?*1TouH5A1W@ivRGotUg<(x-6gDD zBa>@n8872<8<5sg;h_uWj^2BH&(5>|@04x|KK=f~<4B>`CGtB})$Iz3(TLvZi8mVE zTmZ}k@D2eukutK?EKx)P>0Y40He~b7?>sZKOV__U7Ns5FSTCKx&3XBtdsb**Puk_F zLxFai9U?S4ft{{p&j*1uZ$j3*6*|U$W;;`z1>CMrf#FAsUUdUM|2#vUia-NWq&vYv80~ z(QNi5l18cwnw#{Z_Yf{kSgwqrJj5x8UDT_Jc>8 z)U&*Yv8%O0qZgT-jXbLPL#6%%?-Bz5r zAN_S-d3v0k3?gu}s;#vHhc-2a0Tw*k#xOL^ML=e8y1>Udr@%FEaUV=r=B?x`N!#je z$6kN#VOn7&UA5IBLN+H5n6%~;SxQJBtc=V(`&`lsmumnQbhc=-H^f<-Wud4iZt(LU zfQFRHppD^*Hb?w?Bmise8ujOm8vf#{egpo;UbVu42c&0wUsmx)KdpMiodj_x=3$%( zypPFBV;Nbu>Izi$aG3M+Fl-M(u{ze^aJ%Y6&IINrY{}_ZimK+q7KqrZZH3;vjx~bP zfXyKfqn5fps~Fj0tFJ)AcH6;)8t?r>(&GDmzpehWC-Oi8$)nA4!K%tCb-y3w*p6~YqCtg(Wi1ft534g{vNY5H77;0f~gY#VM+5|%nb$AVPi7HIX9OW2oR!%9fN-$QTvPY2eP&(rZOfngz{0(rwjTd84kx#mz6e+sJ zH*v65os2O8PGeI2AQr~~zXG-Eu#|0n5%G#-M7#o^2;9}mi1=YQpH#R>R;K&oY3QvA z@9L^p-e*wGFRT9Op*TMM5p9VbVNOL_rD0M2=N!W@&H@>;sX zwY{*SEaoaAZD$tdZiHwH=yTdOjEnU^&AXX>Iz^0 zZLT$$a48%?KjpIDY)vXWj8gKYxzg%xnd}c z?pe?Z+oMcCd#9n!ap_{xP4hW7np7ZUKy0R0AoO$zXTh|z?Dsr zcj97j;aF7gguvGUT%4=5C z{7{S!S7^wDRKf!F?s9N=ExRA=t*!+xN%Q+3;cgzwM7)2V$kpoPiwRpCh>F*M=joyfz{&-=Ig+}Bvm@^S+U^m9yv2Mk<1p1Ym@1> zx*27*#SU1Ur2CWn54bmYa}=AY_%$F8ru_t6>}!OSPgJJU8f}imYoS6K1!RI{TbV5A zm(~MBzkEr0>fq>c$0j~gfu*#Y7jU0A0WJ`hP0Xzhhrt>R`#mXu2kbSvWcD4#lT`+v z3H%rw67!oJ&B@8p%wml>Oq;p!h(V2V#&bd5&A4aU?2}J9;>m(M4V6??i&TQ7vr^+m z$kp_Sh;Rz&b;+~J$fU_HAOt?hO%)X^-@8#}HVB4GVK*E&VLe=qpNN)w?pO`?pY;9! zxZZQfa%kjjF1fTY^Kk!)bkB`17i}K7HJ9+ejLlD(adlsH#Gfv<&9FOMoEU8ue965? z0HNJDKbVC92}lPydrm&a5!9wiVFo@HrAoR|+(4Lp}a#^b-x1g}d!iNjtW@#Va9%%;MPzzzvBKgRjuoZqf4CLnEDTROLj4f0w z&o3&>(%{}M{W;~cMI|>*PDfIZx*0Y*srm*-I^bxAxi}}7eW7TCg9d+#)Mu5&_4$N; zodtZ@F0JXgWBOm8klUQEM%vFX8A^Duvf9Z6=jkRq1ZILhe|uPchxCwJsQ%=K$J1Yt zs(eGpu!p-ik0?fcATkby15jX;7pgrm%>qgthnS7Y5OY#IB&pU~g49~A8P!^k!O*Is z>Xpk4{gnI5@%D=gw9usQN@M4YW8NG^bYL1Y^(e}e^a$YH0$UaIr((_iRGeLZDn`{X zV1Ih>itlvNm%WM(1S?G*BY9Wa<`m~17Wq^KVD1cNzB^7+EXzkwH8>IR`oyRZ?~quL z9wr8-M-D!ddJ+H(;~~Rsd(;VMnb%bXj)qeQjO3RCALzx8@A4gb`H#K#cTkWQx+qem zGzt~1?WCrCH?E{g%OeK5-Im%~xrQB@Fx`UB?w_xt8I^Qh+Vq)yR`oq;=hBH&Yu_r@ zf@aXgnI0~sM|o6hnZ1mk-yG8_nw~3c<2`BVZw*&pe#c9>SSluEJ!mbvjl%vY?-e{k z>p#M9dtW-PXXu1;ZhkL&DxH$vgvebrvAD{GQeGsiMOOkC&0$=I&c%g2LK9H^0)B#1 z(Z~RP=))O)wjly2Ni3yH{t{?!1Zj~Ok*>^5Y=%t?yi*;_5{BIR9I9#mN4n+Bcfas1 zUqfT;$hd4$S%S+aqx=6H*Nhl9IXl|sW_+G!x+u@9UTS^1Xk1UK)jyWL zn>y-}v0Y~7L%B<}I@AJ8?dc$1;w3MxGORIkrb7>)u(eSrCuoWItuU-s-5j#`e9a*9 z4%Gep2sen7f1vOm-hzey5FJ8S?*!EslR+q0?5w^F%WA=Tt;N0&)(=uC3MNktHv&pE z-r=^fAogAt0`@f9eh8*qBLs8UtH&(+t_Y|;WOw4bV1lH%YP%gm1h_D3}mt5VmNb?aCc!WjVV zyu6CZ?viHydfpZ0I-OQ@r34u+Kt}*q%c#;|>+P-#y$q-UJv!Zt|3vy_+tQnaTUm{V zM%076Y8?wN5EP^Bl@>kC`qHH;yi6uZ3m|C)NC0W$@j-=J7x=lf@cb9Nzdz1sVa05A zjK8I66#jN_^MN8S3iR_Kg#0(!>~3Eabt(XrhC71UPYYj4-D^H{-u1`{TJ}|1&Xh8^ zxj5{(WRO-=M#;cOZt9`+>t9JHwXS{Xg@dPQ8C1xLf-=08P^g-VdqDSRGHVhh|ZuA8rSu`^xZ3q-nww+q7KDGNC7Za7!~m3oLH|;QC|Y(AF|R8 zfmAxI9s>TJ<~D2ThnThXL(JOxA?6PBL!j~p9E6kP3Ac{5t8dK`;yogR911f_=~>Y3 z3OYsVbohGU5$d`a^5ekF28{WD;0d7vJrUelk+=6#`DY8pKHRfcuLF*p_)&W3wATmB zIBt^G@GrKCK&%j?XK30T_eA_2!OsYST?9Glkf)XNXAfiiQS#TnHF3z(F1-F-k!sw+ zMj{kef?2+lY-+ZKBn1u0o0c7U#H8^(drbcqCiCy-|G{UJEP9Y>R46R?NqWY)+TCvl zkrdpJDOT0!_ShSN@;h72Ht?Ykj!7{c1z;Ls3^?qnYJ7Zm-J6%6)wlnEe@Md=75ps4 z9KXNvz?8$a($gk5+&H2>LsVcwBFDIk+1F+cUzZ6G#TSezY;T17Sz3BdxV+z-+oigp|-CcqsS?iDz5gl zdO1so4@4NReN6q1=Z8BAJCCXPtJL`Ju!j3Ci)zgMCcp%4;kkK~0bG-f6FGq=W-?@} zS4E=pB8YR3oMe-=9#im!;S ztH?1>Pup4M*0IRngByTFj*tfMwg8|4=1yUhgzew(ZFJ>hz5eb@T9<;oQrV@i-FW9; zE-mK{7Ageq3k`-3n1cj4*O~~V-T6si%dQLyBOZP-Im-lV*<1tXd!;{qd9B;V(RGE& zr=>k`Ce7{1w&@mE8TuawzfxLQ1{PZjARL!f+D1XGMeYRcjteyn4I&p8!4JT@1UeX; z=o9!DaJS|8oD!C(t+b!dndzW)zGw*enToS|;vPuH(I;iIk#e^)Etjuj&G4?V9!z=; zzYNu-hrl|NF`5Q4M$bIfVBNiOZQldsscBKq_eys+9{0@fPoGcEf@fLpA)~B6Yl1!5 z4LCbV%#_UR;34WXDTf11iM))E(xeem3JeN>LzIJ2D_Fy>*)Kl$`I=sxH{Jay9rs3c z!#p3+!pkU35O#a);eUwyKv6+q!h7ONk4{*l%{a71g($5509ITT9{?bI zh{$JP5L$#C+98zgx$GNfPRJsz=*FM}DONQXP^Q&(1i%;zB;_R2g*B>mq(m2(|K& z07k>4<-}Zgx_63Pvp?#FP*v=-df^yFWloemb9zUy0zER-`H2^39dIuo}(M0SxGvph=u{n4vH`M&sivxT8w-l;}CYGOa zyy4t^B?JkWHVGp&NmuoB-~>_zSalI6bd!9fl2SfW6Jwqqv}EtqSL(VS^8X}mnR>ww zNqlj;_oUIUe6M<2a-kJZ-QN*SMP%?o0LXx)w=L#&q+X9I;!$qHd z)ow%A|JM6jRB&jb|HC^MPFitU)>tCKbAjD6!~w||MA-p0pN3u&WlTF7zWXF&Qzv=? zTvAnCr`(*anR;kq;IjjR%Z8D3{qn4aO_u^drkt=bcd@sR*fuvI6CJO0g)i6hRhPy9K%IW3S)LIH6h3SNIU z1eo|8g#v;p7c1!Y*rCA?N_Xi)q{bC;vCW{r)KYBaEo*Cvhd}t^|oZ zffA(xA<qCMwNyJOJq-N7DJYu) zu-RYM>&I-}c-q|tt%M6rlgK#4N<&sBz@Sh@P4UqOj(}&!Br+*k7x& z9+~hS`;u$h?;|n>#t4NZPe20_Wp;CMMZ_D5pm|`# zJ6&OgW*tF;!fiNgjQc~+8``unqJ`73UY(w^zy>%t5n zlfok9@naGTC!O)`{g<7V^DJ0xca^zqJP280&jC$=WbzZ6y{w(hd{nkIe+mnZO6(fA z+PlbhP&>%H5?*vzT-igSiVDUiin?CYw*&EQ*fF)tEjb}Lg~78L-78Y?a#aTJ$^Rueh|NIKz8 z=L-RuEdvrKSn>W_i!*_qi!wZq?2Own9{gfouR)lj^1(o{Rrv1^^E>6%+`*!E! z6&l$vy4YD>gAG~(l8&?M}L zki{@ws80_9$|m>m7oK?0^a1_VgZJ-iv${j`ZY2H`{*+dXDHqpvQLMlGTl?pm+9fq8 zfm%ev)uk7Hx-4+{o?C{V)dSUoJ^1E^;-$x*H0zJ4NRw|N)3?igJ%4=oj?iF))9Cxg zv}q4su=MsOv@V@EyZo-oZ}(bxwEo)rhm9Kc{Uu!e$7p(dWy`lud?I~6Xy1ou-FV07 zW6xM~!S}~5LzR*KVjH$!yV}`zC|MU5hvM~x?2~IR z|GM|@z47{Ir+jmmXZGazJ@ER)-!3TZw&MDod#ccSuc5JtZAH&5{u-}uy7!D{pE`T+ z>KpL-&o^z{vvvNj-)^YH$GhvRH~fCz;XAvb0pkn*&CwytPP_g#yk7g+>NBL%ckldR zIBNex>SlV+bliSD0p>q``AbK?_3bG`f)ui~P3)1~TmEz1k=^#7_VwOb@MFJO*BrWL z4vN`5(_;Lz)Y!OW$85Cj`0KX&{`{<~w{#n7zrTj=+k5fJE>G=^sJ(9GSMEOEyRPjd zy#DjO{gxgkezG%hF>?93JGSomPtO-Nw&C>;LV-75IR2)|u^QC1nx@}0@%)>;yFb9n zSWi`*w9?dn?o;pL_4iL$U%uA7)BiSJf1qK?XD4sG?AJH(de4dFKTh(zb^aT8z1Iad z9#Xcp*W%al`j+ea+}gJJyY*!KmsuCC96a&dZ^(M+ zRlI)2jg!|e8^=CE);%BJzxC$DD|TmPg*TmJfo-0FMqIy-gs{4p6AzEN#KOH#J%9FjQ__tptn`HtMRpasD2XCsKrIXKS8WuD-)3t}=@KWb zy7QAkMc-zfe^iDIlnhj*>#GKx09P3!eWC)bvj_n=USfe{@FyIoGr>^+91LZd@uwFR*jp)Pjf|rVgevR~ z*j8M`&wC;fAQVLr0tbi~;T($GUHHv?<0U`rhbn7H;(>#%->|mVVeNRy6vd16&gz=_ zI`=8ITv$n_#N~C;i0*GJNrTh5nyWm8e>b+NsKA^!?}G2vKJA#0*8Er!7l#q+omNjI8Ue&H zd%d&5j+mAjG{I12iGdw{uQ@HnJ`9vdw}!08d< znX*x7Xg5-%4nDR9pa4un3`)UcTTnNT-rA`^;VFsA)9xJ*ev4phb{DEMoMI@}lEeWS zOQUr$x5G)B1r7`>}+5+FCTo2>*ktd_&L1UEbg`b&ah>hlfO*gq1VpHS?{y8670qVjxX`BhKly81bh_UWqm8lI4N?7q9Z zj{3%;WfaiH46@Fo0svhc;NsPMgh>5^$pXL!f%T5w4kcLwFIVAKUfnxJc}_cw=Q8VVdb zo88tNjv+R)$oS)@j<}gR`fo#vYuAk`OWYD`t-t+sr$)fSIvd}@ z%=dtLr!j$%$tAmW>?0@JXI^{ussc6SWz#<%@=}$!X!?#*|5HhVJX>-ZEo!_$tHosn z(z7ibteQ=tAW21ivt5L>kp19TOsa8KDex}u{CI{i{G3~Q5BoYx|XT-Y0GRVWnYQXIIbpe8Z%$y4@Ry782Be??|cvvvZ5MiO%+cR1Wr=O2L*dMkwKD> zl~_I@ZbnLBEZ<>CJq;swku0KnaMM7abj~QP7+kbvdg25P65z0TR6Y9tlZkj`I=Iy ztT4l^&v1Y$WUsT9l_Ncv^p^xaRbYc)G1#bpLDH2lYbTcgF|*a4CV)GcYp(_40LzMe zBoN|Q6!&3J%4gHFv%k#;Y}BRT)I`JG=gvL&S5kpOU2|O?WTVVJaI2PxAL0b;F0c!R zmr|TN6Zi`fR*hyf>RBw)`B2Ek#hV4_q+(HWyUQu7$w1Na!i9`?TGg6&fQCo!ziAvh zHBsx^G-}z;n>BKpITRw0iS2-TO+iq;r2T3GS}uYCQv(ca5ECU*RC9wi)jWB4N*>x- ztH1g2b@r}3I=$Jx`gX~p@y9)%N5T}f2jAl2!quKw71zq7Tjm+sjBdZp=wx**_!ps6 zv{PM+R@EvtXOm0qrfC7qOpO2V(fX|qw`$BN+EglqdY8W3>f%s-RRanJh!QZ0i`Z3W z5G=y*Kd~$-lmppxr`y18|8nTGhdy7^Ykz~$GZQTzZ92&L%O(x4t0SiyQS;No_+}AN z;dp_N_e)qKPB&8&;?9Gxy^v?L-kkKZlbZ5Wv7Zy;LbTNq0%FEjwY36-PUnUE<|HP) zJ}&gYQS-FWliJE{aB$2V5j4XBUJz@V_BQa2AcYF8QM5-C`2Yx2MB~T|=*U*?)}dK{ zT4KVn7eD^+1J# z=FXAml{Vp)x&uo$hw6(I>m848IKk?ME-CG8fP1FkF6yq>fwWqa|vwC9jW`XlFawfAkEz?@9DNx&x zxclVsW42w_lrzLTStG_~DWB{HH68%m&r*)+<%yZ_-kFce9`7AY9Cg82>((?K*P$$9 zFd2CuMS}!?1Em9Gin3629^@;SY+Qpo?g0ch5PC3VDa#m4iZTY7X>OC2B%?`NlF_6s z$!O|8k`a<@Qvs5&6Mm%xegy_dST78mz|F;}&EWQsr!eB056!GfdecJ}COrT>C7E&6a` z$_d7O8^#eEPtD&oVJkzR>FH6S2^0#c_VAIo2W&$KaX8M9!(d@~U5yup6$A&@!i5+b zs3v&){yLEp#M&r14~9D{m{aeMZ2NF&#UDNYd%VbKV(hOyx<7Vn2i%Byr@O+D1L7l^ zcr&)+wDo7YH9T|LXyZJ70wj=S1ap_YTsip8o!y2xlcg|fb$!}h9**CL27LS{g<5SB zOPuhURC8|SxOBj33c7DVBy>=2Q3c5P>#x67cb&PZSFYimSmLpdn_KoZlCtMFsb|Ub zs;9;7XhWQfK>C=A6Io_{tR|+YcKX@SHIs&~nAN@ie>u6KUCL)}Vp7BCM05WK@RlWM zsZe@`$pHHe>~&@lPPm>J4q<77v)ImxK$jc)~ z4_8tq+pQsBnYs-ufNdD6?PVcPfceex#S>(#*3i(qMYXh7_INPZB<0O#-1%gt<4mRwGF=2J+-dLzyre8;EVtLUm&#qg%Kx4$o zNJL0C?qQaHhRI-yhCO@)*5cs<5$NM(!AL+ujGJbGXnOXEvNIBA_p$DIbU6vBH+E5V zO=D$qIED)L@{s@>%!)l8V!>a~G2Qpo#Ahq`mwWRa zJm;^xsNHP1Bwi_AelY{x#arK?Z1wBj@k+e+eDtIq9Pwnv?_VmR?>}Zlk)po8qvT`P z=FxC@*<4gdX)vxCeD~Oc6~DVNYK6;hUB@Ha@0-Dj-ye#UI6h zqZR9iX~e|Id9^+xN1+IWc^0ab;lCOE4vig>hp-_1tGHc`#os#)FE`_wVPwCp7A>D0 zgqBQg=HDglt+n52L(A*&v^!LzK}ma&&k}sxQFt9Apb93c9-KLZz-`qdW+|?N{EpU= zd^S9zT&nx>8HwAM4_--C9HlV|kwIR8tFqEejk`E)yr}Q|)@@IgIJIrO<+Vd(k7tZ(sqIdkl{oU3ujlNZa#ucS z7^=j=nfTiaxR_l#ivJ&y}Acx!W59@5vmX> zae+ui;aJs89I9F;-ycLwHjVEct2*yc)$!yrM0LI*jpKT1te>6OGj77+y48Df4$LBA zbTuagxRlV4o@K*e3xsjA^Z0mUQV)bc@byGY4Xew!b!=9Z!PTlcC9(?uPPWk>g@0p= zUwYmJjE!&~@esX1ncxsAY*$OM>fmqo3HI|7eLp$V{m$0++BZ_Qa0y!WYE5%Ig-O6x zsZ)r~Z?$K%S7k16B}$G~GN{nK0sS6Eiqjg%1ge-%R<1?XF4jdOI0*EEoCq~JvK{Tu zPaM_tb%v=qL?c&ycsGoMTO}cA83p-K{bBmv<}DY3lkL=Pu?+aid`#$Z2}Na7dKDf z;~dsfx6?YX5tPMp^N}VP9f11bcer+cwdcY@b-a1+^lYPa7bT`P8bKqu<$ECC=a>2?L7F?ZJx8)pf#SfZFPm~dKWYCq83M`tL z^kDufxz{9)8?lwyblNYfQ8<^jbHhY>Gq9hnW###kF+lniScw!klELcz;{NqRErWo*3{?g{I3#wyuik?efI7@4^?}cx0JYmJ^rf3#!ZW1)<2S z$i=O=s4AnVNZ;bB3g%KX_WH!9SB>j(#pQ=7Tl0H@9Re=>St*sg()g5vVJb?0jN>RL@aD1bqE6bxeZz?6ALDu+VakYQ&p^t zWUI6^h@hr7Dh30lW_PO?=Rk;n7f6ttDgjTaSr9Kt2@AjKo_u&*RNV%z$k9dSuHypTKoCoSEgE%ix{0yKM8N@9ZL5K>B3)Zk$ z`E^ouXyWWx6sejYl8(t{i&NszlGrPb|20BMkvT7-4)>{027w3aSC|v1LC5QCUpS2%G)_ssPd&4>RsMU$Z@3@Apdu3xj z*pezJ#O!L0#Q87>k>MbE9|v&EW}HXEviScE@pOe;xEk-+x5JiMli2>ld1bdhDy9RO zNMa4^!b0&KN)PfETun@5;lzf@8tKIt=i?iAUkdWO!bBcFWwA_)VrWqg!@wPhSkY@U&za~|x!l?|X0>&4c}*F1@uov3 zR|D!t!Q;?XQu+oy0+WikK2{#$y>}%h#jiM{tDhw6H>&%;4ra$`J4z5z^gK_fsVpkY z^9X*CX`#*EKRbQWCtZm0q&U7X4!X2#=`b#rysCm2MN<~PU!mS9W~J_y6W4Hk;-=a}o|0jZ7%> zLa2<8$WHMhL_1)yJy5U&B6krh1^9IiPiwRpNrDx#rewkF6cRI-PE>gH^}8K!?cLe; zKtre2C$@WhXT5mm=5*8%zGnmUrfO^Lgu0KUa%PwecpE5S2}|-dH#C6M1|}C|%2H7j zJ_-_gkh6w~3lNbCfC@6j2_8&dpkNd_6*x8gA`cHVD)TW6p4Ao2ST-&c0Hb=gD5fK` zOqFCGuDvHwA9()g3wCcx$BxM9j7g#}aLQ^7$eNaM8uctHgRCq;NwEghG>juy!k}8l z3fiMZMtjsF+M|VK7~0HMvjHxSrxv!6kHlGm1&)f0J5Hy#km}mW7M5|j4eWx%>RD?a zt{Cv&hV781z9%u_px%EJd_PVrXC;3zD7{~Z#%$gI8r8-0VLkr%PlfIOobbf$n-4LT z7AhlV?F2dClbUR?2);&xo-C87p_EdMj%7XmV6zy9+C!=NY z-LmtYJ3qZruDzT0rEEw{nSM^-^9xVXfbi4B^-fs$9s+Ud9Y{;b$U)^v3_CQ`JCma; z5}4@sjO)hV|bzEG!1t>DV0H^C`wr*$-_j{d=D=WV-W1Y#1iXt12?9*|K#UJ7;>@L!K1?#w z2cs!LumP3k34=fG3lK{`OhXAG|=Rx^7?5NQC^Hw6wo!SXoS&L zY=6ib(ye1%{Q58YmAF2i(Cl z!7K!Ej4d{iY1W2G>;r4GLzaO(7#EB6D`ocF$1E z4fGkjF1HbYIsO{_zz01FvxqhqDI(!dC1yCUKD4~yeT^)2#yA3kErPj|27lT8d^8NK z{y>CZz_lMl02T;s1mAMUJrTc0@GCJjB7-G1pgmLUa8@H^2dExT>0oBn$;UWQ3Qa>2 zjV9?NR^S@!Wy)ay71w@k=J3k8H*YJHxbUk9TH~JH9zios zDI}xo0jEMft_35*4nF&#PAvreQews;VaM}3mgg~Tq6iYg3Sg~=cC1yJvP6IsA33^; zYsC-%eVRR?le2H3RiQaOzJdN4(@iS`^z#3)_Z{#})cyZy+1r7Nii!)t0lCXY6w>rc zL(?|oLO~RdOLA>fvbejH7E!=~peTsAaSJLcAoe0o(8ou8+NgE3Qe(WaLbBS_6wV{iq>g<7 zYYAeA&0Rxg_EOuyN4-AlIC@=Y&@XyM1pK)=9Yf?SIxvTJ1XQ)PW{`ak`cy=Y#>3WX$plvRKX4{n^>V8c*Zbv0P0)ZpBLtjRNTQ)7 z%2fv?^+3MpF7#3oySf{6h?m>eo<4ipu{|#|6&hKh)2URF7f1V9o{h!0nC1yPQ+TUl z3u;DaCn^c@CzCN**1|(lNQGP3LyI7M)X+*j(0lvTH}5;X(?sOPHFmGGk;lII*{)k} zD%i)+>nCf&V_l-0oX1DCs(e&e4l%*2I7zeNs!!qV9X$cv<&X2xdfAhxW@tT+)`y}J zCDYFSM#JN4ZNW{4*HziS?CkJp!-~sbI#t}WJavc^ipOi8qA|^&(L=N;pnRJOl;5uQ z3~kdfCVARpO!{pzdZdRg>22VSyw!Hhv&qMz-_++mGJR=Fdjqf^xv!UgqKADnUKx|t`Z}j$(<~DUGc-Zr3;ECLh9HSe} zLo|1i!rKpe7u^#%v%kTezSH*jTmLNi>2a~(8BU>!0TyjiuH=#Febl;Q+9QIT0Moj) zi7+SA{Ky9E5OW<92m8BxzGxA0-YKJ0)n7D7PzM|!mD4(*cJ+_jw!X1v z)8fWEIsr-obE_lH#Z!E;-UZ2hK_sdxB+87SM@;~D?c&B4)+v>VQ%K!bI zCpQz6A4*HOAYQ1#pPcQbT2gF6z(n8r88b%BS~L0M2cI0+8E~DJ5oBB2%Da1iaObcq zJ7a~*gw=QnLOOu6Tx)#W!Z1h+iDNu4rL4oI+jL*gLesImfVi)U09kzAHsiIACe;j{ zYg8*!7@eUeu$F`R#x+Jx;IX+A5h@NPe9GAHOz%VxlSk1{5Rrl~sba&2pSSr>I(OGP zPq{9MQ*gYqnu~)vARK2aj|yx&6m3WsD?FfkS!RG!7NR1D&kKt%yg z`Gg9?@(IZ4gvtMtJV2FBcH&|`Pns8!3WQV_t!kuTL08*hyMOIbd^yDzZN7f%-}$*U z+5vt&q{puVK^70`o#?iZOc+h$NPD3&8i{ZTc&s(T31JlbB~;?O@Vfv+2u56e=N?gN zbgA3hUV8mg>H3k+?^PL*jh+m`P8xy}C_>$-S`Dib$x+x_71mpS6@)n$@ZPGvvhSI1 zOHBW13x(Msmk^7LJUv5_Pvhu=aWOh!2FL;d;RXQ9Cx-?}CIm;x0G^S-DCt6@WU(@! zC8iy1D+UOCO-kTv#NJt5`rxuvdsMzqXoDex(pPQATzA>LuYb20U_oR{nkb(NhCj%% z<$@in5;3c(BlRbId4Atb-b9bR#f5y;w*JePwu;G?4!U~1zN^>EU7d8`uI{W!$7{o3 zSQ8QE1jzi8+sz}CZWOSDS<$%X8+#^Sx0$Z7AHCxaoYP|yYk&`~UI)7g6Ke5F9xCJ$aK zz0@@&tlzbbT|(dWe3APbUfK3 zZM=M29colJaV-TBtg{q;SgJf^mMT84M$qkkmC15 z4>{(SejgiB7Vp>LtiQYM$6KBn@YVU}7)8sA;OMggo+3~q$v3kx!OtVbt^&$R2s1!{ zz;u43@Cko++vm^TG~D;>zl*l-^HjAnE}9cnlvB7F=c+o`v8sa-Isn0TRA`YGT!*vB z`CNi3S|o{7lnZmSqXMoA0OLF(W*Y(&8>A?@it!?$p#V*F)_wTBE%WRNKX2SBx&Anle?+G`uyv%MK2DzIsPT|-XRVqh!vnYuL;7Xmk_)^m! zZTlVg-IuqYI-$LbmkHhA+<_uOJkP~|Sz+_@$xxQz(v?aJjquulo+DZG1^v#FQb$E+js*nU6 zsuQ?`?DChfiJ72XLZwhlP>BI&fJ`iqC+7>dS$w`A6gDbUa)jHc3{rInK|nencX>JO4$4!fOyK+Vn4!P#9}AWgN^uFVoV1r#speYgcYJlU?FA#Vqs~K zaB8F|Ay|d3Wb%nrx)`dV@tXdf$t{$c`by%fJD#66+gcR(#3dx_MdZ_Rm29jY`XU9} z!F{Eb+Z+quUNNH>P_3pK+(~;p{=MeXw)uJ(Je7XZTjNbIDnDYbKpZHwDHKTpttSWxq{?7Hq)6I%HW5k285Xhw zY64N|M+1immArzn7+z9buaMz~IvAqqyr~flBGBAk*Nfes$QM z>w4?6gC%=CcO4{su;M?X$J9JsFe(_Q3#K~l;6E?T#pFR8_qb_3!X8Ej{#2*k9f{EC zkj}J602j66fHqmRvjSmL`3f)!iQTiQPCK0riHM_ss;L4M-{BYp=Q`+e{9?+O(6!H< zbN}PsM2}uNAk4}GkI<}lw9I{O2TT1=`p2Rt_g`k*j5HKO_VTFE1XQnTc@@b}UOpi- zhKB_a5D%qz4j*7<>`{S9CU7)HRsr)SL@cVL;UBVK{-MbuXAk)B%o9z$bkX^}cNm9C z5m%2X7yNd7&TOWzt;^bW$z+Nk00vNGc@Y#|H&49$`NKzkk?i*0k^vej^&NHX9jC60 z;q_;8E?&h%Lbw3YS3>m0zU`ztzCPK&^sLr@q`wJKQl5ZAY~D zNSp^?o&7;Dd6*fPbSD@+f_y`1M~T^ErQ=SV`7ZA2_O-P04}B8Yr`%DmX)S7W#kt%EXSG2e%M^ z7;JbGkMD6`xAKw~OoiI8ItT&H##1p41a6}Mh%bg4m1vrRd&qYTsid9J1_AFzSW`54 zW<4HEB_+TU0n9C7miIvb2cA{SY|vBHK~v6h-u2t3UkZJ@u3+ytX-43)F^4=X(|*ey zfKqUTx~OLYVMU*0D}l6vlon8APsO4l5TEmkTwF010B8k$LDr=MyD4k;-M8(0v7yHi zx*jY$Z}N>Do-_VvN8|l<-;=j5#3%e7FYS1F4n9GmR2Nm$eNX>4$>0I@GFTS=;E$KK z6LSVMKX#14=$#!;33GOsEUrRyxKwxFi|<}=@SUB2h3BKs%;TkX3dLtvP<%>qIv*i; z&qso9e!CZik0quNlG#-H8hP$m!vrG&hLLJuShmyxiq(J*6@ZpetYPC^F;nJ9X+Qg{ z>o27fa>zOtm#($ENuchB22WW>8cDY1Gu_ozw_F?qxUr#o3k`lmk9x(Iul)kF9|sg@ zfb`o(#@|TkxLY4)&mBL?s4)_Ceq`hc(J%=NR}_VZWa=!>#{EfwYFhD#^&4y7e+=w= zn>bNAf5y6&D|+!p9nbB?gaEc|%Gm<*welW{vazu!E8xN0iZ0ZL6$2=lLx6C*C#5+a z)g|ZQv(vYvi(hT&mj9Yhk!IAFQuV<-x@WidX`&A1_jdD0HU|%DWiW_ZZn&@>usR(R zqp28I!}4H4*Bv2fG$Sb+3=ScCATP{6KwFu3pa~{%Z77M`5&EE`hS1GqmcHq?@jk#D5_RZmX5gQ)U^iCCawh(`W4M| z861b~GEPj!G#NnZH7I9_>a19SSz2<$<2PTuQC4|g)L}2dmKqphMk{H1L~WfFC?aKn zBA`u_OpCHSQAgChokB8Xp%4y6hBHtUjPtdlbA+u^sD#W#a6t+t4+nFYI~KzmVbMb~ zD61!MVdg~e4@9V|0A=6I*B&0f^Ruyo{;Y}(H3_k{hTJ9%*)X=Pb(F_woTig$KFn1& zC?)P-_DBoSW-h?hdlI5wgb-E8Id9G~E>XqM{M)4^U#`2b&nkxju$(mGXiIq#Q`v&j zS(z3+2dK1Q!NA>JLpkV>%Hlg7U|ZG{3^)cU7EXW*%+sft1M((nWK}4AaS|EiqYVul z@8MaY5gk)x2FK16{t{f$n!1HEUu#}mIL=T9t`;!QmIAYuH^`4buM}p*2f}PlB0^ZB zLUnCjO?9%_4JLlCFKV|^zNiH_vZ3bBHy?4uhXZ!@>)Az}!IUE#Fh)9g*NAwp^_LZe zlyeqDT0@eP6H(v>M@49=6wg~@O%!DrkC9HUTzz?uR+rJukd8c&Jejc=p!gHjY?x10 zqy^3sPZeX5kCk@!{c+OQ{F#O+QoGt>0&#YW8KzW#rJ}HdO^J$)xM>I)L%c~dgF^21 zLN9KtbO1Y?dF9wgb@2;B`g}RxsG-l#6Tl{jsKCtO_#_iWQ+&QKHuBhkc9@*NY>$=S z*JO3TKn`Kk1i;nvIEaI93;nS3o_@W%%N^srTbIMfaJ&!a$$Z+Ua_|7{0B=B$zcP0$ zI9+mHwg0F`pOD!L?<(2r%!!Y1;=~DHU*IA%(EHw(sgt9&^%}SFyP@5Qzu_Ezad_T1 zX?O1)XCAwaFtW5Q-Tk?HOle7xBmX$bK629Uj%`DA zQ(u*;{chqPh~Q67*1 zKa&#DDZDfrKc^0u&m2ZHNS1bKkh;2Cbu*Pom8bq@nB}6I;ow8tZ zCYNx*|HJ$uZ0x9VMNINA@Qv&!(p;8~r~D$X?8H$7=qG?}$_~mGx0+q{?1CVj2*j_{ zGha5MlcLD<}-rA2l#<(FT7-yxmA^LH~A>c?~Y;8q_6#V}53+HVv(;1km;F=J}&|C#jXRuz$iwP_!D%t|+YhF5K{z3QOW9!{@*4#H{ocjf#M?aycHv!myIpMW;hR@G2#0YAB1>AFGm9oOQ?ByPi8=Hy0I| z3erb8jLL?=i-HBS5bxQ|8|y;ZY6 zDTtU$TBhRT2~v<*`2cHcQ{e%{8fnNi|9EHoR~vO8x{jY=fNOwO+612CBCXm0Dw}9! zlJ(v|4!{_t{$vWpYA%jLM;Hh*4RYhS(J2X1hE<5Hh_zMnkuM^(olq_0Y1hNY|NLT% zNm8tIRLKXKukn_S>)241{S0@tZ#3nrpyE-{ka*ll`6?i_jaQSHQ|I0YqvV?l){SEV zLKKM_*M+rU|(4e4ZBD2pXS?r=CAPs1ut z>Xi+jKh<*DZ+-qM0`b}R6O^|1d}!X9dxsif1%X^K85QdMlWY8*s>&(lh4-gY(-dj` znB%{lZgJ-;#UX4Ali+4Etm5|gvtzXtjmZjy4CTa!aa7!2)%@*aUvKVACUAB|!bbTv~{H`7#U&U1-% zzr81m61C*X<|gCOFhsN3K}SLBfbpp|h3HGrmRddnqmWc6^u)hhTTML#S3*R49BG3ye>viOY369El4hH^iU8L@VU`G_LpATAw+C1J zwzy~nfl;h(suY^->-Ddj<{JcqNYbmQZR8kJHgDZzf#U_ml zioMT5wI@nU)1;fcM<2OjnN0VcDtJEi0@_4CD`ZRzM##qi6U5@J4>yZ2+5$2^fW?3? z%UXvp-)m+FbM_!mwr7nX#wP|-hafRL2Q&TDC*}ghi9bt?z0`D;^t8F^-rL`~AqR1S zgaV_9=HyHcQ7C2W7SR9=3gM~1G^C&bDWXBeaykZLeS|9dNn~!s{E0Mdh}qCZx;Sl0Z&KMbrafE*N>@1SklB7I_(1>(9l?P^Y=CtQnPD+3T+= zGjF8WTxyyw)$gu$-+oDhY=3pn$!qE*DhXGZO+Y|rLQE<;w)vPCG~A7VaTSh4REwy5 z>%95h|J^o~@3Hjn=)&KBfB*gc_ZM+|rc0mJ?Ecl!uQq4GRWKFGtODjyl8r=EoOW=W z^ZDwkWeqi8UMc&X;1kUGOgrJaIWzW(!u)LM*TKVYFmE^uZ_$fX6836u0HYOw;m={v zo7&hTnBq`y={>=oD{Ig0(^W2wu^dcDT5;9xXEvREqJj5GIIBI-c#pURIXFU?k$gdM zp!*V2L^|*23oe>`(0bi(6=ZNs7Nap?G-PLs)@#E%a!OKXp4xm|GZ!a{`EjfQn*47N9}j zwU{9kYa(3%SO?^5Q9nfeS?MZ<4lr~%qka(h>y@fAct~%6p2$oL&{G(Y=2hSh=9R*A zO=k+d^x>8J4`{#5HAqXwWrB~3oGyNvlUDFj6a}R{NlO^{aLSfo5|;3KeatjeE8&Nm zA&kZ%aB;Ziq^#8zOwx)=ew#PD#+`G~ko^Y!w}PDwQr+2)-8Sx>pE{Ay_9Jp~FXEr7 zWBDk^80HfFp~Gggd_5@Djm9{@p-!05*Qk~hk9$C;ATtgH6H=g}lcg9%r;fegsMK@L zed@nut@391r`x+dzA0NpkG zlM9@CBbQQYic3z@g;%&LuEtxQEz#%Uad-h%Gr4&&S`SJ%Wb!zx$hYE^X;h1tPd3G% z$^*h-191G(xRi)hm^8ygRBZ@SnebD1Kv>9A7dbzzf7N@zAj{uY?f=A|k!(|3iah+) z^=F@aN{KckUs!QYw(eS~%OOBrPO_Op#W`NTqMv}OLmF8DSTabB7UqXkCD&QqWVlVB zs1AyG0Nf^jX-*C8YNs-XwlIWUNb(~1L3~4~Y!K|wRg`w+&w|z zgtBl6@J5t}A8kmmVp;)P=K)yT=yDLM59FI6E!A~FES5?;nA%kdD3c!VcQa#OI&Tz3He+M)YQ(_wA@{=J*)fnsvfm zFvA0`IB#|bq%u?oL(mzl$85Ui{_~&wW%^%9tx_VXZGv~c>utAg+1yEu%$eNpT%5P6zS7I=`&5=G>*njpBUs&>?dt~~j zJkrZez9s?^Jz0g>(6+TOovrMjBOUktfO~HocCSIqr87E{Dtq1n?RgloZI6Va7|De4 ztYm_tbGnozrn%CVr{)i=v&0GxW$R&z{<2AaqY`IQeGueZkpa1W9t?3}v^avebEOr# zHq9GcS&g?0E79j#^eU_<+zetoi3kfg8jWHJ*-%0Ct?L_3e(GO+hyCqn=Y0+5N|#S~ z##6c#P6p+y&$05Nnx z;XO4W3cN)SBa{myjMzBGG<$RE^Gqu)7HcVGXlzo8wh{~1AdZ5LcD^`7@i_@kPjF0PyPiV$|(6HiSIH$tqt)tkVn zFPUteWKdz3%^d>+Nj}IqZDkslPI`IOn=hW%S)xEn}_wi@+%{X!}htJK;Sq4SW-YnI0zLH;xI@HUg@7|7VzWabS z1258*r7mt#;MYx*ww${u*KTWSFXP_SB#X@IMJK$lAQTJq5q6PpWn|ep2-XQyHBF2{ z(nD~tA2911r`_k^N{{0v8QuNmQsBMQg>7%nHF&@(!dZ)4YR3U^kasE@0Vs_s$OPnL z6Om}5!H=S>uBhONacm-;0>Bb{ASkXf3!EtL0rK-mJy=AQn2sRN0+9-;aPM-dw0f*( zQ|j2(+#rOEwsc6EEvZq1Tm4%q|i#>Ls9u0 zpady3UAt%VLkkCVeadl}^kefW-43s&a=i=Xm3m;cCmf>)7p{ziaRDDIa*1#&em}Nq zj}p>_^dC*hTY8*e*^}tK_g>+Z($;@VlWs2e8bC8ihbE1S(3$Yv;Y?JvoSGsWklI*7 z5fIva*oqPE%{}{dH4al>r*oyWecX79z4s!6EFEDjuMI-KEr?ht{iu#P36s}l9xr^d z6eN_SA`M)&9z&_AsLG>lN|1Cq99CLbE)6b{?j)I>ubz2f=hP^#mu4Jw&@(qrxh!9V zQY{50yJT@RjVq=3v;sPEPH9ZSciF(R@p7&?%8LO`!2H*?vQ|(Vn4<;eRB3^cNDB=3 zoU)Yw0Cv+Bm-O3l8{TqP&ck-e>L6@PxhIQ- z<)NR=akXi&AsJ0HxcLSl$VQj%i|MagiX}heyCl<)VW+(nf4pEcXg(@5d-DCS-fW1EwFu+@Om%i6$UMz1N+h}c+6F5*6^_ttI`{_svQ0%Q>OsK_Rw={OVN z;%uTJ#*sETZzL}vwge2Jgc%x>foMY`Hed;|HZ7*oB2tK@PJ4OywMT|(OS%G%q3-PW zNjvTz*XIh$vGQ?xE+PvMJrA&n2GCu@t~89D(zKguUb+3;H>aQQcAum0SA#fX(r4!B z@FeL4W8iX98=8;0XV7x@_lUybv4_#SfAfJ-&3b>+HqH9UBi={bFMAsxqq+dpzY2bV%GbnhGPKxNfWJ&wenU)zGHLQ}Z* zc*iVZ|hZ;hlu#WCu^VD^k)7AR`u zeZ!w0@%-;4e@3x=Z%uS(gLD}6{Nq=YjnB0VbY-8)q+_uNv!nH*TWC#$aaogBC~r-$ z@hHIDw1ON(^XH@AdmR)sb=|c8fb_%d7cc+ljgySVNprP_hOQXL6D~-rRpAYAVwz8Q zlCg9=LB)zspi0tn=1jwh3a?C##p?{Pvvs`h-guU=ACaYZUXb-c$@@g zug8g6T9iYLtN9OCOUWs>?=*EKk+k}3AYDwn6_F{|TYXL$@!UmJ|B83q;BLNtLZu^X2iC;zK)(L^y++|{~yxTEwyX5 z#7;MwRjpZ5#urU+fI^-ZqKO7br$x9Bu960&m29jw1V<$eZh!H z{weLa@Zx_BEITJRI-3pmVa#ik7h2;Y8*&I@l4lz@3oY_W7bhH0-x?+FkajuHoq_{i zb4OA?Xgs7S2=sgKvTrO8{HIUpzKG{)Szn%(ex5Z^FpWCgV3vlgZUkU;EAvq`<#lC+ zN6DU+roH_7`gabyXK#m9bsDYsG1R8xFLyH(NrEg!cD{kH3ebMTcjd?0-898C?i_cT zx>9nsZan+FS4YFzv(mlWBh6nOJKQisBL zb?WPz-)ODE>+5xo+K~)3g;_pKIQ@LGnM(lAMD9U^ndgA<9r0IsQTSb9)rV{NHQaa6 z+%GrH>p$Rt|B>;h#PlyIIN`jLS3fBisiyLW^gE}qB}e^jjD`>{C$8^S#r17W7Fk7b zv(jvg;X&X90(|c|`U2Ca?N9dZYBR^E>z9~bkV50jb89XC*}~u2_e9-J<(8C>8(<03qdaiDsh2uRi2r}*8a?5Q&zniyr^w!>#PQJd!F_$}58V0D_c{W*UKyc$~0wapbgAkyt?LQ1F z15pBCi5bc5kz_?Q5%I!K?60C-@WvZF)vpfQb6szF+I$oDOA87$D9cyyc6t9YtfI0j zlK*MEDZLRnAtKe^+36HY914r?9X6s}3XHfmS7L83SMnqFMBlDH#$c3qUkcoQ+ewoS zE;AY>>{+e(sZKi#M+Bn)hLvhXK{hxNqZAzYh{_}Q)|_F(SY-YKiEKV+%YBcWVGtU1 z0$;E>%FQOtuwIG-(HffL(N*y-LH>v(#(Zpuiv_rFl8>PABddbeNKt`cr_~g zSw85*;|(5`wMj@O9JMHROpvTHSS5-emj6InJF0ZKv^}Bwk*;8=#KW+z`o`vV!)Z0r zz`>H`;*e|~O1D&b$uXCj4IWDN?U9Hx2E08u;bEYFRR9zxMf~DN(x`RyN8CMhc6)x7 z9O(rSKEgbO72@7_D#?rOJ6V5aAFG?`6Y25p?4f}ZZZp7Z*&&-#J>vYAuNIkxNQnoC z25QkSI)DtC)d*)=;CSVJ5d;wGtOH(P%;W?>c#4G&G!#J5CxHG_&D7+WAB@+G!V3S% z@WXegkz3c`%B+8Wp-RnCRRt|2*>$F7$x0^29-TXv)nEds~ zZt8(N@W-E&<&~Bd8t+yJw=pej-ne&) znSBTTMSRI^lG*&wZTD5a(ur`nmibmy(W5FV&7;mB zgTNg5L&s$M_82Ksx1mp<{G7@w+eWHn+bF|O`x&_J3A%NY!MgEt{Qc>tV)J)a8F`#` z!1vOc;*{EZ!b!EH*aS$M1UP}Asi4QB5q=M-rBi7uuo0rZ>7IUjTbNa9`c%5@7qjiO zQaLO*qen;GBCkq{O3l-Vom_PYK|%omcX_!lI+N2Yq})KHe%*1?HT~s@8J+V7pFt9UW#)`uV7l6U{@2H(^F z>7T;~KhM^zUvS{ucE5k4!S_=rskFp7=-6B1=jftM9S`|vmQqYK!ANODe;ffyooW**U@PWUkvE*b zWBaMpJ-+_(2zorFea7;-etXuo{7f4E+E=sUkGyR(=@tYp)q5N+i1IIw*4G2K3>NX~;ah3i#CYI9^C+~?B7@6KIx zOLUk)QUy~$l|``)&ekAWl&1T4j{xii`zljX+C|4_@AM1l>O}C(?v)ql#%&~4$kdTe zhT)S)KC1&48(S<&?oP3HZCJ7pd7(jQlcIkjX$N?xWSn6kdso(h71@Tf#vk=(9D0Njq~3g|MjW`I`~*Y_fRL3eT;^5;B_1inUR$1 zwKTFqc^dO)3kv&IF1afV*w^{t7z2rtDC(T$Hfz`NDpgOYvu$G{NSs@N(z2+?eM6nYO0VElO^FZ zU{h|QEOT~s8Cau;3KVxC6(|*kkK`L^>u)O@ zr#?Egr1(byULfffgmfIs5r!K%Tmeid=9~vpQr1;cIjUnIqptmWUVau^-hhzmg%pJ; z^Z=8oqeqOsl6}e*g*@dElo1)+_tN-Ym-kz@to=NIJWY_GJ_RJ1`DQlO0o1DMubc&$;7)7kxedS71M-rXQq*iFa<`Cw*d+2k1y# zAx|{625~K@vQ#-FbD(9~^Y+d5xgBtS1RUVX0O^4rLC6;OREj~G9PLteg){&D;E+zF zAAXQ7shEAh%@0=@Bx5kKUpUS4P>LFJn!qLnH^U|c9*I?MYJ{bN6~t;*Y($l{dP{Vm z;Sl_@w5-&AX!tal_NFD@;2_eh7a3!LDw<#xUbS@ci~SGm(dSRFzPf9yuV17(w(aw_ z18y>Sbb8X_=H^^tV%X$@(KwtfWC{S@21SQ4rvzY`NWl#Z=9)kh!Bs&f4mg6*Aeq-L0dmicE^(+y;N*j+k`1=RnU0D88FW04S=3nh0$KGDL94#&T7eCOd8-CBs+z&QP zd~y9$*~u-21Q6Ou{AdrP+GT38@@GlzeW%U*+!6X*@p&~}Eflqcb#Ngnd0!i`Y0K_)}61G5d@5!H+- zMbKu_R*Q(J;f)2jILprjO5Y+vGuXi-13iCVG{m!fDaht8o$LUF>li%>WzvrQ2o2U2KYHVzd6B-uU850{bXNuH&udno1Fy8i&7*Hy>JFsyY8}2Wr3XSgajIE?J;WME&PnljirI3Ts2M>u~%? zKL1)vH_h*VG)a5EU%YJ6{QkZ7XwToeMEmQs@md-y_Lp z@TnElr+nr$vW8U!`lKBc z=tF%vUos4#pXIO;I@+u*{M8Z<75b3-W%jF_y=2zvmph&E(!g`HjKo${8Ur|%Avtlo z9L;$XU{3ThTsbcThh|W%rw2NK#c(vw*S)H~2Fu(xH!$;@v)pG^sSY_LJv^r#r1Q=Qikch#ek2#K)k01nmmH-#m zQ;NCDq6wC7txX9U8dFdihMEihDv}O?@n{07vsjpZ&)xj6+9o@wq*#Y#aOTkmx19aX z-P784ytI)U(oxQ_5jWoe(@82L2ly(^04LV+ka^4w>NgS*uOHd(VCuIscigt+gx=>r z*hh{XyxB{;JW3zk(^+crE$*lLeu?Rz%uO3M@7X}DDJgX1mvicP>E}5hN@9>vcLC?b z&nM$aXmUeU0MZ7@s#`=Z5y2UQiX>kvHgY_rSh8yRIOwlgHD`hbB&+Nu)U^{9BrGb9=+^7$W|S$)Kh?>M-{CarH^@cc;|kf5uNC1*zy4f$RL z5stBfplr!LQLxv^rc`_6iP_ggIN*?}e%^3U0#EpXCpOLK?{$>Q&gerWXp$Ox5L%aO z2%aCZKWy8pW+ShUbE4zq7;oPSpzx+e>Y+vrkr{{sNCn0&b ztE>!S71(Srj38wK?hsUbLPUgs%N!;fi)TeNXX-vaVWRy%rx-a^mI-w=S)c%6M|CXO zEyb0Ek(oEBCx3ZzRJi@*Y!kR&qMbx6QCK3DKoQVCne@V%Sw8;Gp$iWN?LEj0m$LgF;>BWeZ9K%nZw?i*8kuFZ)QK;vZLcnf6{T; z{%_CtYZfpg>g6iBXFD>-@>pK>r~r&E1DlI5!wDW$Cqk`6d<3?r4j#HGap=6;`W~da z#@~xnLizo_q~wx)md;H7ODXpygxbtC041HsS)lTSJlCs=bM`Gt3T zS7z8@Z&a>xEp6XFX@{4IaABE0wFd(SNEa=#;h8jB&xx(_P6`RXv`5)Q(RM~F`(bAa zy&+eo^scjiUGhy+r{K5#+R?QsE>Z2TO^Nv<45ZWT_Im0tlnaS}0&y`wE6PQRn_S0a zTBv(|ILDPNDiNJae+?h?R40f8!&#oHqo(c?YOGT;3zwd^kzGX^P7yBHVtuSAM#CHx z<3Q|*u(5*NsUfp4)f9SY&W|?^f2emKd76*|O)@XBJQcHdZ`Z8L$32HXxbd*?*^&(g z*E}}!BR}Y~Q76i0-cQGP>~srpAJ@Y1gw@Bj&{2S_nv_n00_fCxLzdinairwP|Ih1q zvJdmL%z5>7r=CZTH1sE&bh^Gi+5*y*K8~#iQ2-Ytv5I&jEyb84<1*zBIuCf@!dr?O zm%x->!wDkdivw#&+TNXrOl0H6ok9V46bjaG(^_lM1hWFEx$NoPO<&iB~Si8BTS|15#3f(2)p&YuJNvHL^k@1KAq0cm#q$ zit#G5&n6E#NTEcaWS|@5&|+{bOGSC5MLZCY{tEmS{9Hpj8Gy-7Mi35&0ee7<5$qt% zOgRR-!krPgSKj64qj8SmIe6WvWGotPMW=IQ?@g}A2X+SV#Zin00wr#^VO94*$DG@v z*t%dn6k&Yk^c_z;cpb6Q$g$OvW+^bD{DfHrwmxgV)~BJ_a>+eGO_hj{RX?5i^V~Jl zUmVm`s*I(kvdl3DY*<*gdWPXs&+3P2XBuHejkRt;(6g=v+Fme8Xe&>~!5|0*K*eFqhlHb)um%;Uoy=m(3rDI+ zBff2Y0WO=rK^J;T(g;WG$y`0?@4?E|by;sDo%xv#}30t!N{RSAl4guVSC{Py; zoxnVB_MB|JO-KJ$rX^?g6im*1O{r1s?!?T98(w0u_j>F>Y)hiW(Kc^9x_;g%^~5m_ZgIANv^X?6mvUu{aH0)FHLWw%mu zW-VT*j$Z65hr86|&%AZygxMd>lBsR7R8zEQF*8hzYl((|vLKMPfCB7sfQ~`YR9YmE zNUFf8k}Oqmh)*v7t2|9hqfgqPAq7Hu0XBksd_2#10BnK^5?mC$oNO^^T={nnQAdW(B%`t2(n3V-IX z=?|=ZV3sBYw03okM|8ov96cRkfWxIR+A;3`EG0 zOyL2@Kt}xWu6rK4RnGcs)~DXh*}^p0o=NhAEh@kwlRBKM$XBZd{c^vC?mXvlV4Xo7 z-u_Vb%05pn{Z#P_j8f2rrlx!TNyB*dvC^5_E`MPZxcV42%Z!)6*}8)~2=JmmUB&Km|} zQQ$^uxYvBSV0oQI69#rTa!<=R_aBgq^ck$P4-2*uyn))Z z7*o+v0;7?^&>dhJfC9J6y^Isqc40 zFED7x#xoo2vACb2=yy3+A5`;rPzVl5I6*m%8$^p?qbh^2GAOK}`TAtYmqZ07%osy$I1KU>z40JzMqb+ z>x0#WUH7oV+rJM}f%n(F$m8{Y-E_;sM@uGSJ@@>dcQUcutOJ_%m8_scW=?Y8snlC9 z!-8SJhcwfT>H7K@helQ!6s8F?sfj3ZiEp}wA9_Zn{KOqS z9y{5Fw@lTAL|w4B5zxj#p7vVa1L@}RWCej-&T=naz5Sv)?|Q87EvDoD4mR#}xw{v;T9l+){pr(kPqg4GQ24DL#$g+>Smr)p^zQ+$a= zIP=}m`~FzJ?!jFDNh4&2Q}1fYBWPI3_5@TWbulu558|W9BUK7%^)Ouvs&;cR1i`@I zDU*PnB?T+5@h@lXLhyAzq}`Kufy0>)D{yoLQyXLgK{L~NG3-btIQQ3IekjdF=+j~< zW~|I$Eanizqz4oz=Z1B+Jr-4;SYE{IiDc|wzWvcppUIUDdTjvG3S}qiqv5i2JmnX8 zcUD%+pthJI%;lUQ^2t_rEJigixn>(ZWyr-!;PL%s+JMpeC$&?;PbX`y^m$zOdtEo9 z2F7K^-*lK%_VTZ~23CaSN4Lg9$yk7cEJX%JA8EzmIDA+(VCVHIl)9Sp5RRNfQGule zl|mATFA>$JOl2cJ;9!GNNHnZMa6Aa$qo@k}jw%yH$zP%EjDrP7fJ8Qib#+#3sMOSu znKnGVYt^YeN^)@-dMs9Fv+>z$hy4cZro6ZQPuka_O1p_SKkBaA=^G!`yhz zY7c6O)X9U6+XaF^omW_nWm^8RYwnw?>k1C+D?$<=_2TD~qKb)C?oUEG#CVz9BMQ~; zDlsK9mwfi|+ZP{tvccS_G4^Gl=W3Rp$?*X$o&KimP8%LN4R=~l#$EY z5Y?WQVNO47dG%?Z_8#zGM<%B;{85)J`1rn7+5FCL6v_4eY6~t4cqJLAv!l~&wW-V^ zEW-n$R-~1wW*RtAHjQLRV^V-om&j!SvEiW+eY>8&ZgwVdS^1gQ3hsRNU#?oIV!2ky z(zKAf8j`Vfl}c$#=JAsrZ#eVG6OD#fS5&BuCIBlb7f}j))LK2C>_2=E5H6jKp~%?qerngZ+#LPe6F;L)T_+X>=n?Hh{?N1tP@ zi0LaG7P$zhhJmNX(uOFiXNe#S4=Vus5l3DV72p56dk*R}om*?>cjwHv&ublTG^Fcu znUKiEFY>`8sLyIi@yIc?(jKZ#Md_&@=Iy#=?#r2zDSL9zrr*wO(Ota5N{U9|2DTL<`G08##LB0#91gG6f44sb*8DXrcl0{lJg|McJA$TRYM> zhbAcLt))QiV+aVs|MABke;kncs8=DCU!)&>y4L<#xkNBmD06tGubP1K2JrIa`>q zemZ^7&09CI(=r z2-uTKP1o*Gi&%HvxV$JcbnR|x{UNs%l$cSM)#~WO)d307g1E+kp_JuZq2fwN!Y*fO zyj8TFiBl*WqlsXYGZgJ$l;}k{VCiP6nQ$`I3gS3krt{J5#hJF>&X`5?ecK@INsven z15rtmA7{dmb9aWnU9v&({WB?YBV} z1P4+SwO?xN+P<3}7$`Fv_k46YLJ1IP2zt$oZ2CT*m&4@?4%81P|BA4GTRuZe`@KiO z2bI9v=YD{e1K&i;6V@OR%Bv<#hRgkbPHJ9&Jm9x|gSP*4*I}CNVf;I`U1+)gcC_5N z`Zc)xbk%E`^R<19)?eS*((a3&s*}6hJ8!=75ig9)<;ps#Yo*rgH=*N}I&it)g*HODI$&Bdhx@6p$vJs>&Un4AV zZj()+yq1s?I4O{Xr%)rvOP)rqT~N_~v^>=hL{s@I)o9NCb~h@UI`C>Vx-gd=uDSlX zFQPGHWEpzpLs}7)@XSL{-+$+E^u4t$=)8;1L;Ekm`|D{f_3&Ba25Z*)zBC9f9kpM> z<;;3yI(&(*@A}jsaQWQRJ2cmIbo5JPngrW7(_b0(E?iE3N4x#PL(rHpeK^{G@PX)n zTNb~Ca(5@aTG0DFz7KjX7vuYwGzgvNvHf2$ge|L$OSvOGYabk(@zvswk2w^Xmv289 zIqOZ~m(h#IJMpp0GM^6|eantv=NZLs3MF-gEG4kyEy4kyw}SMiis5rDS|jF)jBn3x zW8P`4$StF(GAOts%*cBLgQW|4lRmBP&=vwJ$ONVC`ZCkq@;HRYjf zcM8$OOq9dGSydqbv8UiiAOf7kHD)vRr2Mq4;6l0XrmHe{?OHhh zf@Z7H2;~G^Kh05YHc6s138Wwg_k@jY2M_a8MNmjyl{sTN7bA09HV$znn~=(%QybuX=PfsIC388unG0r*=IQee19rYP;C#u3Xc!q|dR#nJQw2&y!Z8hA-Nw8> z%d|M3GkmE%)j@FW>de)NBTP>_#^z?ta9gsLbAajx3MVG&lY~8-i~%>@ljQ1E#wAL) zh61#O8Q1TavVEBzyE;=k+p7GPNsgbPGN<(ifGo^z=`EteKe8fqc6NR^6Jc4 zFaO6^yZsKlKEI@Rgdr|x@Kj7Nswq(&QkxP^juzwRZRdoDuh$iE~1HT?(UK{42T z!!c<2=>gT+>%o7rS+{X9I`A4S6#CETF%ZQmHVZ`WsD z**H4fd{qE%`6kDG^H&2U8f-Q@>v;|-G(rS}OaiDve!`g=Y=`;1hG?PzQFDysvZ!BGtS^q6{#uXm4e*5O}yAJt0I9I@l zhF){NxUkH9Einean?Lx=4tw&LQ9c;}cgw0L#`igF#&P|XwzV?z<8JrkS6CLxPHW-l zOcfwvbh&$iJTWPWE(e&L;CxhDPd7&EMF9^wa^O>gmmm?vpSHC3w~Ax8PhYyOn@lhr zX`2g|$4#AsT>RtFGVvKw)1LnW!owx6LF*SyOT*>O`1_~ouu>iUStDp^!OMH`d2g)7 z#ZGwn>C|+AUd4@>wZfu57ThMQe~&21F~6od;Y1I?k0i;WgiaaHCc=#h5CSXX=JM+y z$_9j@RGmdWPHm9Q}6}#94^P_fpGMklR!dgTVhR@mH7M~= zthFNAQpQ6s10%~}U6j!{dr>>_8T-mPLTDsfHn0F;qXKJU#R#ddiLOc0ct0c#ADD-IiJL z@~><9&X6I(&*~eBLk2HRhEQHb5Lv-AfkXjCk~{}ddUC|UoA85GEoq)#M`aJREwpY% zQ`1%K0gs>a(R;lQ+DEr;l+9aGl7C%Z&eCn4Veq}|D84G=yJ^L*GdGVn2DHHpd?G@N zNgm6paXdi^jmdN@QVz*o^MHB^^(R(k-WpK<(h*uU&z73*%#5hJId;vnV~rXXAf{|6V-quRx?46Cz~hAad4x60g3t}equHqNc-Ebn z7jD>SKHWdYsGviwUuqVh--uy>HAzUj4Bw}#+9QJnJF5m$YFd-|@j#y2{K3se0Q-($ zN%nFtoeuHIv=~ir^5nM;%A0VSkF}K^*0I7S{aFqGM(#htjYSm#?SOh`SQghD_ywbKh-zN=_E` z?vM>c_9&+Y*j98yAoi;P-0Edd^BjugQ)EP_UNhv7-IvZdhcT0p$2P7ny%;vzwpe?o0GS)Ixj3nFk{ zArN`O*~khE&CN=K;J5;gZx0#oVnTpGz;eOKQ(TdG1A27wQK@HL^*P!y&)s?5&_Mrn zMw1WW4JgG(ULTn1l~pJB1j!}MXas^KWm9;-^pC)$wlYM_-N5m1pSRK1XrX+KW;|v& zWP)4eoKPAG&gE`50-Ka^jcjuiq%xdwHW97oWGJheZ1aNq$G!34fSvui;_+yi*)y4` z$3OC}?VW=Sf&hR#(GeA@C;R;6R1s>C4`!?{ul;q|>rWIsMYN~a?yTlSHo}T56{q3` z66_t$j&VFU#uc7GLkVHp#!QSO!C|kTcJGaPaEWPSMqKz|pRtQZ8rgkTSe*jn)&N85 z^z+GBvLVgMRSLsDxxmS))W?f=n;*(7`F8&m2aY_tq)?n2aGats4us%G>nafxk~xxK zYgsaHD|T6l%U_`R0n( zihek={G-%?-&Q&D0f_Te_R9Aar&%v(b6r!<`*3FK;C_9dOUTu{8+DBi#V`nagiof* z`D7{uULPQw3&^sp&t0^2R{ztU>UZG(oWuD@CV1p~Kc0KzZ@NLhoz~6@0w=(Qj^j?H z0EG7tE=VvAwkViY0Z>My7S#&~<(GfUg^F1eH9Z{Cu=%4Y4$>qdSvCqc z*z#aFR-acJ5+o%aQ^RM>U+bKkEd_0o5V-_{!VXDkvpeISp>=*%* zA|MHi;xU9R0(gXxLk|oP_^6~G;`P1+oNPA5*z%kPL%a zr@Qd8O0?VMWxwUxx`s=1q6+H_AHZXontz;L`PuD;F+2s65129JC*hg-B-1?L-%g2*LNW9Hrp$g%+-$mZ)Ok86PRE{7fNOv}N)@ai8jvItcJ)CBeFRjs z8UV|SH-V}YvVk3?Vj%R<;Z3`4yXVQ?T?IexZrYq#L0x>u?7nfMW?wuD83@H7In})U zpaI3HH6#Rmyi~i?U-stA)U_kGK7GegqzoIT^?>+t%|9phl~=8RAt6YUcW*tX31jwQ`} zI#HX@Pbr3BgPF@O+%w;QeCerwr$YZ9d*1=yMBV@2!QPJy!GSnI9ON!r1xb@@8=AH; zX$y~xGfl4Tg)DQ|LU92P;zC75ML{1#T%f3^y`Z=e6>*Cb6cH2^2m0vaK>feI>vDI= zwMi*H&-4G8mvX(!<>q&M#{2Vr|DVeDKGk;iVKcW4iHz29^)dnDHkTMr0!U|m)Ce2f z#u&$}zrQEp%unPTEmPqyJX|9*4qT2hz3!mgpX^SV$zLE{g{W**Y1VIs-tcJT_fvb9 zcktYv^g~B4r4KLL_lW3X|07L~UO@;q)S% zzPPDvRLQ>kV&9bLB{Qs*&dGetSzTI6@?aDVG6p!`C4hPbk-T?D}o=0n4uF$H`u7Yq7RHaQy%>XgrYd923cSBG3rvfJv+>tI&ZOULgAl z5o6V)QR9t$NqWkvbA@F4#ogQgUcMu|-!Ymc`P|S~z0`hQ?yfh=Z*F^G{WldOKYWy& zDFgLogK;fbUjd5}WRm=JyvqkPz5r*8DbyTAn!4y$FdlI_L$k{u>a2oLW5#}$}T3V z%`a?edrSDB?$u!n_54Z&#iJF~qJWGem~I_jH!6(4#I9~&hhhpQ)drAYKwA((9lc`J z76u~LeMkXPBgJJR}1WTv| z*adtQe$gm!u#QP7@TlQV1Ym;7=rB)t&lkJ@ua*eD+IIPwPhHc0_hp@hW2i>A`S*V<~P9&u5__~Uf!4!M8~at1oRwE$ECsj+hJRIjz2-2K5_ zuU~bJ<{TXx`x?I##7ML8;p*&`E4Z|{;O#d0qkS)~eemSW7mWw6N+(WgQsybp5<)XZ z1=kt@{5XD!9W`v&cxH{KUuWON+ie@@*GEr(-liLvLrEZD*T4{mr5pxJ(6rcjs;9Tx zPPpLvzQ2xo5wDkLL_|9onx;r-TCG^`=?ZDUD2RgG z8QJ8RC?t)77-HG7+Be?4|jN6y~273bg<;BuaE(I6z*F8CRHhDsCJJ zRF8tZBhBNEsI+;Z=a#gNS@1VmSuuaL5eJu5M@$ zI1zG9*udE02jIQfcV91FoiY^<_%Dfzyw|qebm5KfZMGF=cab_!PP8c*Yg7eE6ssWJ zfT;ni%MHt98NY=^P%*R14e6=s0K^UOL^8;2Fre*n57bO8j`pV(2ZTGpPUT`{{j)M8 zZRUpGbb*qiN2%oKK}wEiWhy!5-um8ei;b#$@`?dj2%zyONrf7eGPufu5zrg~Y7-UV z&_>0cYzTAU1Iq>oP(m6jaPes>P>fbVcu4MCBpz|>>ixew;f{6hYM!b0+m1LP@$0h9 zOA7LDatducxzZ@yRl=N9$HJVsqYgf3tLqkcX7YtvDYY(U*P#tKA)Dl43Z$jaD{E&u zA?hEd6EO2m{)#Qz+s+WLnmlD@gRb)+XEPA1ENueAH%fK_XUI`spX6HLdk8a3OIQ^P zs6hm1Dw8|y&4!t?o|!QEkVs9T9!dM(@r{i7R2|j4>fsGpZ}H*}k5#QN-jAs08pr;- zgFgCE+v;16Eb%nntY^v4<|#G{YcVmNQk0-b7aY@O7(5E`NiHb*TcdS+psc#a>-2FE zOzT7`_?~ehR+epmaVTr06MY%+suVI|jwoFpqkwhiY%6`#Ry5N(X8%p+=bXCKEogSf zLUjS1hHIV7hq#!#4l)uU_A0DkoGH=3G&(DvUemW%w;q~n?cYtk?4|i$|NZS~n|Sf7 z*91}>0KUAXv^x*L*N(OeOa3*s|EEzMJChDZjPV4b$1p`eZ4#@p4xQyfd&RNds+`yM@Ma>sZe|*N-Wc1P&k7vmlQ+7E(n`WQK$}nlN z<4jWv=+`q$c$@Q3`s3BT2`|dZCKMMf!zTIPZ*G4k>Hb#s9<=8B+#t($y@>WZ8P~~6 zQ_-^0j$Z#YZ=H!O zQN=oKU~k*-n}?6MeYS2{i4nM*J}AWy;zimRgshbi!b}`d7-~^*OV)4u_?IKUcCYWD zwfL6dQ%}dsI9|>@UA<@YA3b$0_^Y-j-W>hug8AdKOq_m^GO}z#v)G(O(rOd{H~?~Z zuu@0U6p(KdfE~*vlUxYznom;p>o(6nA3Jo+)e|+?kM?w9Yz|)~>^z9VKC67p!t1ZD zeYxM@?!6C^m!=HgbyE$}-?ojt_TSvXp9$#Q&?DE#lQRxjTW7mC9yEjq7ii&Qjp_JP zMxNP{^#{;xplBY7bTzc%5?(xsYk7!idMAMHrcM@^WyRaaKGnvyoF9=RqyXwiLP_! z%IxQV<}$Q>L?T|OT-yHmD*WAC&Hd|veXZx6Xxi7>`-3m8++Kvf`>AbF&1b30_Y!8= zxgEB8lIWlpMi`q>e4i#HAw~_gP&Js zo@5ptHe&ZLdw%NC??04MDJ=N8&2;XeeQ#cTizfD~kG05MojdFaQ&5YWp=c~754E`6 zlK^~yrV>0C2teDQk_$pvb$?s&{DDw#PnIN8CTkZA12Wa^Hu~<)y^Vha1 zH+rhfeN2U&0}&``q~)SG6M#gip9e)6Q3cn^Xv0l%8ig4t*yFL9t^2YlC7xT@ z{(Aat{N6U!Uf}74>md2AJ-@tPr4_^-^6CAMRxg-U{?NNRX=Z6zggR^NS zQkVhzr4?q3ZXYfLgT(P)JU;gH?Ni4VbRDt%A8oM@M(-^0%-0Ff(&p-BkxOdcr8gO$ z-RjQzmO=YK^O{_Jtd=M@`khW@k`LzA5#xa0%=%FN(#%dm!AHM^&0UqQP&)3%m+$}H zb+#_tA&V$3ZD|m&+WN@ReC1 z@wAFB*h=)?ozaAXzLzoyczX+w=57V$!jn8#xsE z(P;{H*Q`LY0c2JH3Ij>PW{eG#1?~lA6F$O`oichji0R}WO)8T5EPDIv38$W*n*|C+ zNCZE^P&BlmBF%^&I*+JTvDD)(S7^pvrMkdFC^!bkAV_B5gzKo0%U{8s%21|IYb+4u zgU$$mrMU939J@)jQY!dD=bccu(LG*!m=dO{qBhdPu)zq^@`ru)Jdoz@vhp}- z(AL?9kNb+#*hrvg+|II4_K9zBdn?3DeMt){9Y@Z&|-JjHn!9!~G!CnZgK-wm1DQH`oie8l! zG9$od=aFDV1-+z^sXaGbbm8qCy_HDjTcOcgiE$u*;+6}BWb;!*y10}r5DF0}i!VN_ zl#fK1D!*Bg=>`f3wUG#e-)RZ>ufun``-lFkl<#!l)W4~`rA<#P7+>=Dk$R@Lu?!@~10vT5z|2mXsrDP#{1Fj-q+`ZT zvbo(vG5V<@&3Q7o-6b!@(j;^O)J+l2*KaSRKIvg>Mo&M$M1ncmBRIxLmqOjWK!QQ&cawW}vzq#5L`r{1QYIaY-2}>-qXebiC{E z^BS`c9fx|XQXL`CX=lsu{ZGQLd2k_mf7Vs#_w&C{1J94b@9pe4hh!x5!N;)&J=Y!h z`3}PEhr-XR5?|-7cz^P~d4oKF_ ziW8h%8hoQn2v%r|+_U}y6rKiK!SA3d3US10g+OCEHE2|C*4|!Yp`KGUP%`wP7u*y% zv>oJ*jTh>CPOrZ_cj(SQ>CwT9hJ5(zbTTJurwgo#R-HfwBt^kN987N7JD<`NWi}Rl?OI+vqjy&UEA^l}1ErqK1nJ z@g(r^03cwJzq$(BSqiBeb>CY%d$T*weQDMQ~ zq`ezgpLY8_k7V|+ihRk?(#kS^GusaTs}4z;1zDWd3>sJqiqTm>9TJ9*TSDO(;M0adc3A8V#sen#95lsN1R)BKMmwTkB9uI9M*AU-w|s5kqJp8)AwTYX zex8ZM1+*p2w5sGl+yi_^K+d6^5gZy&@K$6$9{MrvBUOo&>D7 z+ZQWwC85Ld;u?CZR?fwPKHX~ownwvCs&j4a$<%JgSpi5 zSEnx;cv81R`hDLam6|>(bC~40^^ee5(U0^XUmbR%tQFZ=IB1PRB+)|T?vmD$cx}S( z@lqyImtN8g%p9Qq4eAK8ceRcgYVC4dTxRRd78k#8#-V#BuX(Ir*Na^bmo~mVgocZq{hJYQ>-1L3ZRUk zPg$FwWHCU5O$Kx#i01ZrWuXq3Xroc0O-g)u!#M}UXgN{}-T!Uvw9xX*u^`tu6;&K4 zGmT-LuH2!zeHd%ohrtADS4^EIG+cGr3=r6gW|o5&~oLV zEie}G^_A%RHK&Y)+sns|Ez15hj*^N_`e4lMJ+P4m+GC|2w?7tI+@nP|c|cb>VbTK7p+f8_u7(A{ zYg`|vDDVL8M#e8-36!92tB6V^y`x`D=Hp);Cw=?M)?>qu-l4JMa+XC@Fnfi7RUO-Q=opCIjB_Qzq?dLo39 zQAKVSvEALFx#kN(#!VGuMt@-jMoyRc}HxGiWdR>z$q7!+cco2c#!9anZke zw11gnq~vVVma6`oPJjdt-*%OdH%X1d+DJz%7DxS)CM-TgYETb70dnfu=+PQ=g?7eD zp^2A;e*S272YDD-&JwZx!Cst8zN`Y~azS#%4*ttKVYasdxp0Ke#Pcd*PN4B}G+r7u zq2)1ikA(NiUW}H}CWU-m8{bKd@*>g8~a4L-aB zn|!GvHc*tMOpkC#4$`cT(yUL^tk2b~7vd4|6HPW`XMq}4`jPzgDN=a;7(p;SF#(FcrhbeAH+~Ap+*h#Dr?=*s2dbVc)}JV!!Y$2`9?ei z$bo8NM-1Ei%K0OP_W1LJ)2-5{ldiw~*y4wDkVUy#o0>@(?I#9;Gd+9*C-PCwQW;3j zUpFz*rE@f##Ad3JbpazQLv6ZQnDjXWu`0qAV&nUHUY% z@unUp`t`ys%HVKQ_yofZV&$^R79yj8d?&Rd1RlDSL zZsv4p?-@g${p{HnbZ#XVjUTU$peGn`vj<*OM2I-P(p5@G%5G4~-gVLmpTtM(%sXzd z^l!OZO=n13=8d`I`orfJbOIY%A;W>fUEz>+t)y3B!I{#;-DN$dRXOzTE%U7#DcJWL zxFq0l-aSL~<;bW~{F^QWi#1Mn2s#Bpqvqp8z!7`Kq_j5-i!nCwpdop*lB3AJ2BWJz_uYD z4fI_ zAAP#YqSIg~8fNoB2$740C_|Eq1ZF!Td}B=J;wVi9Q0!bV|`W2=Wa$9 zv#Mv(6%H82Io3HDK-Zp!~hT~_z0k8 z^kue~zs+l{1P(K~fCodU4gT=NvF*OmPlxN3rk^EkGE_ZOao-ubplB25_yD|%K_3W? zh=@}W>k4Sv0Q8HtG12_-WPWMXj!hfx+Dt|WTVBQ!bPO?Sn=<*E>lN$Bkg_M5g(g@i z0xH*O)@;1=z0MJ6)JTg5rDCrwAam11E&qf8h8SUBi?TKFF-S+Q;HYW2a~Qwz?YB4e zKJKslc_&AuTIoCK^IEIlqBjnkT^yjd^!m$dODhAyOeP!-D^yz)l}9|o9KWHYR%v#; zhP#4kpn9o4&rOy-UAoRN^}JJb6A}hL41|G*J7whsPoOp4EV?0kKrj%2)=zl$^tG)? zwy>*3dL~Q1o6gv^Z9oVO-8LY<$at^P!W7wfoSb%L#9oHf-xw%qNnsV?(5 zDpf+Po$p3dB>J%JZ~p75d-TGJ`N1M68tUUFlJUl5Ac_g4lstO6`5k-vldT<_({?tD zT?s5CTC?<#R~G(i9oYSVTl3$g8=?zi%g(9Rc@#E>!!5YDK!`TsFtyv~jSD=uuToIt zz-LhnL@u%+y(hEIG&i((>Tksde!*u;HKlKTJZtVOJ=B=uLMRFe?KvE!m<_|^aJXSD zWDt#q3E2k>^gHufYIwp z0EU;YYNqTUXI0@Wb%XBZ4TM1Dr(R7{{U3k)@y~8&KixZj>cnZ%mRy&(%wl&IM34S?9^ng9%s>8t-RoD z;v+=$jZPWEk;G_pZlygrvk4XTQV+t1_Rve!&~<?{R_R(F-3@zs=COjGE5WX~FJyyirp8C|M8ZLt4G9C zObvA8ETC_tA*%#Vl;6KR+r3=B->Dil3UEYTUxrsx?V2`i+_3Dpd14D4N( z4Lx>vC&bH(3KEj<2IDJdZZ#>gG@7|f9=~ZDNKt!1n*{EfJXC`)KA=hedi`#C`x9^W zBSjO(|H&HEdT6C*bb_>SpX-S=?`-Hq)EFV}P@0LE zjgTq&09P;v7*sn~aIF|YY07}N8kO-jm>6Lwvj#)kqSXYEPW#=0d1* z=BMw~B5k_-*w_i(TQVaYDpkG~O-K&ZvblXo=|jb1B6od_p17R_=^n5_sUi-l(`5$u z5&+hn_BREt^wn~dOmmq@L9(4f^qc zHBHyn>X~pRKuM2)nqUk;-pOPxFcS!*&g5f_b>(oVQS7JrmT}Th$ADrt&HwEZ5Jc#D zBW{iqd;GHB#&d=x>a7Se77((Jh1}i>!~hRwPb<4><&M$4=1aZvWy#G{1v*dK zw(QYu>(|%lJX~v2KxpD)jf9=V4%UG{Hz){YlU%SlDex^E+r&i@Kz59L1M&{;CWi3_ zeNkW=nAjS&|H6CszW4V_WK+=gd6{aN&s``(lIKbFuI-1e*th_%->sb|tw}0aSvD9?w6Y+~?M5`g2F5SahK6`@Rv;Ntp^+FH*_-ev zQ;B%mzO3>aS)&14zWycv`I%Ld3;;!_Km;eLz(8x%*vH_B8#T_E->OmqFlwa$Y{+O3 zX#)rvV_=c`Qq(DI`G5d^WniI*yx+}Ue(KAP;?I8@pl3i_j~gW6+qMdN2s)UFsCXLbd)2sq<;Wx3`CQVtf1R<(`aB&SaWcF59 z0zxMp&--_bereYH*9Hw7@L$q?3o>~2{vq8t{MqMTNiEE@mI<0%O$g(NwIb|owUQ9V z7D%tLW(OeT!X6Dp1wp7v@hvd}pyq;E-mV5rGEBXejrd+_kxPxd=;PrSI# zpY}X9Egi9b)d*6bmYb}lm9SBI zi6CtS8J9YT!&e3dOlPwo#-na%yK%{EcnZD2w0h#}E1M_2+V|wY9P0m&_kM+R!}Ay4 z8~I>*R=2{yg2_;X;USS^f-A&q4E%~%vw?MsRel;s5<<2PGG956+%;{;wi$6>S|Q>O zN@Ri65&&WqZ7hoelm-@I+9?5Im|;Z*E5_Ym%>-Ouw+QvvC>vWD4+1#Mul zn~A;*!Eeb|-XtFdUNdx}6Y&TiY(x<+ zWFUe_QUfv3T@QC3XMg9|*B7tu+oKD6wc1;}Qra-?zEcb4PtAlIWk^v(xo9F8Z!ni8 zfh8yxe3;lu=uWZ$K>$FrY7i%A=ce*UBV8q#P8;`!(EJ?U@t#8L3KmOCA7|KSmc=zDe?F?6z&C-CFsMFOW%((1EH!V+;%km@AXNZ@ z=gXGeF{CresKwIzvD3a`p7UpR1w40GC%9OpSAKUi4l<|dQ&BRi6;#qNT1sJMbSiK1 z(SmEFl}lf9uU+_pPSP~1^Qbz#t{^OBspFE6cQ>sC+b&5lq^|W_AYZW&f)BlXf{TFg zLQdlF8nG~_j+r~3?F~}u+df+_d-jt|#}do{zIs+na-3V2^$JJ`haop>dX9i`6IocB zLc-c0ltR;NB};g%n?O1p5xV9|Z;jZkO9{I*7#7JDrp;n>a@r_=1COQt9+t#)HWzq< zR5x+osEb#hoym-?nY&5SRe+8S80{$;sWX%&0xmd6jBera44-xP_ z29m8X-LG`}YpTBeQmJZq;FjWzQp^4G&fu@woz0}6X|@^{l(C6GYa|{BL0v7I% zS*gjO4(JjSLB!aH>Vyr-N++5PqlBg!QHT|H4SJA58bJzCXi#mbqP7moQjM$( znqep~D9HWYJqa6c&jSI+DIv>tf2qap?ysSiPMKNJaxHAm6tVXbr_ zagna7V5DhK6`ju1!>$2x%!pvaUjq3x{H1KuH)oCyD2PRt_E$fYt9!KnXqHN*Gs>S` z+HIa*n9B+c1x3?&FS%|Ir}tc=)XZz~QA z@byWk0tucj{KD)Igytw565uPuhO*HWkMc3lfNPQ*hZwTq4@jiX%|gCxzZ+zAUjFce z!pq+Ns?Ui!y)E>YC*MVb`*JDy!YcdrfoJ3#d#3E#*t4g)?4U-TiwbU$ik$accV-!( z#GjZEtFob)1=7=CbKX1);BOdjQ|RKx@$VbXk*}x!IS8uw;WV@ym!tjllg8^N(R{gT z^>>7FA?3o~9fi(FMu`VrLqjJi?EE{PA_yZv>osUeur;g^w474N|h`C3rXPD_D z)nLR*d}5NH*o{YSG5`-NR_8#!Dk3&H`j8;&Et2iFZ{Pp<(DF>dyVV zj?YJgoWok3W?;`aY4;?D$<79mNra59ay}H|VsKwmh!cVgfeG^>k9sR8z+nIb2bjdQ zPTA$U!@>&bgqQn|e&UVodf1+Jj2Jlk!q=lv6{{=9rN2s!5hw|4MO&(xqxD=8dKiHE zzJYH9c6Syd$J)M;V`Zbz#IdqbP@e8=&%m)l0|#+$`pej*E3aM%ivPMAV^mylyEN&` z)4L7&=rp}taT@jps{uQ9!*lhoZLkJ`l@2 zJAAwJ?$wK~x&7Sj8l$(JN@R4yZr?Z*Xd#gy=u#8Yj73yjNub7-i4Rm|^UnsxgasYT zNg=DlDiaLDev#FlVT{MI28J?#peKro0A4dY>xi{Nu#^vwv-(BgsG_ggI6!HDlOD6- z@2d`7vut4J%YW~X=$}TfsW^)8d-N*m=&_|`cHz>S%4~%9b9j5r`zV;(kkPxH@POJ-MI5x-d#8U>j4KZ19FdKJE8F8;}_qhhXSEsOf@awl{JB#C00t2SSb*MBEeQ5 zJOF>)=;9i1T?3>w%Ya zvB2=MpT^!MIrKt&-^9)yr8zE{jL5w1(5w@CnApj4HIK8f;9jYp@ucr|y!>jWIiyH` zYUII`aeUP1h-M&|o0PG9DqC|ir9<;sB*lQ~0^+a^U5YkGZWL{Zj~vCLPuO?=^y}82 zHGn*r>bKP|Fm6*X&m5hr19zYF#7n2odGoy$`J_9tcTBys2W`W9t0E2gr$DeuAIPEg6*_WhWc#N*GO%YI=QGa(z^L z?6h|qGQ+(jvY$mXGTr+@(hY?AVX!QOV4Da;Bo`Gakf7eG8erstogmJvvFXP1uk91< z-B}a#Vd=X)AGP=^<2rtxJ}*e77^1>7H~2XY!S?2&3_GwvAyCu4GzHordNT` z^34|EOzVco88Zy-XZs#mC8XW>o1;;nzyN+^mwyAmlK3}p-UezEu&ELGgS^=p&@{rJ zzknxHnytDIQo@m{zS2LTs!x&{ZoBn@3400uo41#y-O>H$S~QIWG0+;_K+~C*OCj=hMz(9gQ<qYEi+X(&nL0v_5Dv=!WnWf*lkP-K&go(Rd8#Ra8J0ekUZv&eivOR65_dHGayw z9r&_7m)BRDyDwW@@R&5rGw+|jxkzYvkf!wC=J8+#L^{~S1!p2c1s7BhLxPnWpdrnM z!>Q}%HayeE-ItKhjOhM)<)A!p_oWz4OgwN|>J{DvKijDkeU zfk18_lUyr%-8}n9k51E}Y`~&M8b-vPmQ8X+foppKSZ#wlMZ*e{b`my7!^&RY{6cJF zq55j{y}!~VWL&)H9)e3ZQyG3hhl{>GhdJXZ?tLlR(lz@clQH-{_?d-GRt!seE zgxd(^uOQ?P^lUpz*$JZ3#RrQ}T~_)6zr>!PfpwRn?+n-(1YB>3 z_!fN&-Uu^0!39Mwlp#eL#zo1-cr-zoea$hzudfKxp#w}}-SCKzzsk7_$lqK~h?8v)99!8O@e)ER%%ws>_YfBh9C|HRaqAvSHxk93fQPC^9LBz5NI}+h z@>z_-<*SCY-xnA6(R&h4N_W0=`u9J)yj~~RlY0=BwoS2FK)?Z(jwsbK7>s%ZB0rJRIXi$frP z$gSc=P!V-SJixbu6pvq|%&dz8!M!wU9m<2i{#;`O_)#~wD~he5S%CTX+t^-Hew-Md zD(I%J3UzMnX{mlqspYj_hGm9O@nZ#yzomSH0|Z*{pFRA|1JSp8T3R^h?ejmqwoGr1 zG7-!uMr3<{4ONrm6A{h^>W3hkgAw7$DH>=|CxcCJ2mmIDc3`R~((8`TNL7WOt)6hl z{LBbDL1qA?R85T=gwti3Rue8_!rK|fXl~#mB9|mZr;b?2)trd%LBK(UDJ29ATT+FR zCIKL*+)6RQpMI|$aKVV7Jr1^>Sz*Dm(hXNcty8|J%9dD57k@;f0Fr_De8pCGRL(C) zLGmEVFf=GyYve=?vOf_Q7+*y+bfr&hTtB7{3Ax;I3A%#&B4~ML4SHJxu~_H&H3h2e zWSM#W&q@6}zip2FT+3Fy+fLx^3~<9f?$$a*$~*N3AdC$?KSAxJhdo>JoL=v4X19R&W?Aw*^0$O!lb z6->9_9GlY@F&%NCC@+to)8uCBpGU(;BUXbp5W!arOS%T#<5U-2{$C9p9C_xJWQrzT5G?Z zt!JuhSR_lm_soK!{R?$pInC%m(@!?W?Q# zDmtUDrcK^=RX^S=E!egG-~B#!>&%xXV;XLX>UeN&3TCAg+9uF6L>vL&Pt;73tvSaf zHcKz;e&dk+?x!>lyu;ySip>K4&p}SjJjG^FNvYXTRhv5o3{{5^MLZ^WWM&8lqpYC@ z#eC(R0saoO`v4yk0TK@Y3uUkf&5|~->BEz}&0Th~+Dy&--5?TC@g8$rzgtiz{G z8{i)vE>OuueH<>tVX`T!gtOZ0ilOxWZyy@5^NQA@L;lML!S-ANby)6AY42yRFELgT z!i3rRPW5VFmC^5XGK%TO6yZVLs#4ucC6knyZzt4$lsYp>Kt?$Fkm-jR(O?Kd4>AQ+ zJgI{-DrYf3!^38m3&S;MC2W>zvnsjTtcvw}S-+2E%v=&s#z8|TqiR68Cjy7KuDba* zMuCRAFkGZsj($b`I?FXc0P?%zw$4~`_uV}QkH!1{wD!gq|2?gIHd&ul>V19ABX6u5 z^9mW>-;wqPpWYW7b&?*ggP>l_Q=HYMrHGCh_$XHF5kT0gxNM67Lt??^X9 z5AQMmv;{g2LK=YCp(q?IceJHpnPAqS40yr;U>&#x^CnUj`M`=d1Ah;oIB?da_L{$# zyZ+7r#6|GzM8lVNBU%OyL3jNN2C{CcMz7+Mqcmx0tkO~v&n{s4jue`NgKV7&`ih@b@t89nYvGcOTnxUw{3wRsmoELtAPkOY5mLlV zZiYJVWIn{j00S0N=Rt(^6a}c;ngJ*Ut83C&=iC`@j$w%mW1Sa#O>p-=hrI=$#^&Gv zYCx600YN^HHa>IXV^^<=>%rp;DHLE0Dw_!`JL=JvZN zgCp5k8VNKCFoLOUPdA#et%m7sYg}%{*e1v_BFTk@&5kL}qtFa9Teo z_pvmx@r(Kuo|hC8P(eHFmZmJ!mXrnlEwlIHVtLBu3Z1y?ho5m<#BL;Qu5M@mbOKlo0CZdYvW%4CD_B(M;#&A1M@q}E=ZP3t z9pE2i;LxBdT4w*4#fwdlRKh*U7xuvf2Z^9Dz6h)zqOH}HUgSiij}6WVsVsfkdNxR{ zF*DG}fuTcSd=84O2r67oqNPfW82WX-uZ1}u&$svQYTc@jrGC*@ zA~(KtqE1hf%c50Q!> z%$xhscS&RSZhq^ERpWKcB$@`q;$S|5#lf&B)ftb4h+tt_0bY^2n`hcOzWZ=*uY(@~ z{ZyJb{LEX&T|_Fd7q=5f0766Na&ESfR!0zs)sCt(nCRf=Z+ma!&|*2)^q&YRskx-~ zNax)2&~LlWSdO1cdqxs9LbX=g00=yl} z4U}RR+9uBnFf#07U4O4)9Uf1$)4{esF{IW%_`%j+cl0}WKJDkymz|lYqYA}Fglv&smTNNDr5DElbj*CCM;B6rONx-Q;ZA7MH?4;~|WXFEx zm(q+ce|d1ptO~qE%l!=;A4DPrO!H{a6Q&RmwOP3xL_7h#gpK52>>xeOz>sGByqZJl zU&cQ^@PCc-yRcxdwD>TO-TN`A&U`={X!JSCk{lOmr7ckqFbT#Z@uVXXQSx;O8T?#W zUs6fXg?uIx2`}Q(V}LjT>ah&^iK?zV-S0eM%90LXLi|swP~y6I`E&gb`JZ{xUrEW; z*L5%KIXN?&S|y8^L$PuG?aAr~ zO16^^(RbW=W%lEB(=5qntj_th$L|O}yP{mZZaGW6eit^XNu9(5EdTd3elX7!spI+N z`P`4cf3rZn?CAND57C=j-$Q*|viupxNLzFcKp-5e@$VnN%lkBSTzB_q|M$=3_})Lc zQhh%i?SCtyUUt;J5>@EPd-2FZm_6Nv>hoT4zWR5!;NxGzW^YHgXx7(`RIih0x=+)P zCUwxR>M>Q<+r0`^$F0QSTcQa}){i)&{p&Ke;^)(v{e0y5$a%?qx^f&J^qxDpE^>K0 zPS5RlM$L5|scENg;pd`l*VSaaE>z#g)?WDy#Cq4sBJdbFO_d~gQeXQnszbIFaciQW|ubbKu=;(TiG`}OCrQOu$ z)%G{Cy5Of@rn?`p=-9YccOCHR1gj$y z0)L=1pUScGsyyVJ4BlU*pRV2z8@6JzCN|kg^qhNIpK{0Kz4hUAbsMe}Zx zfp<2@+v3Vf+G0|Wwzx7#TdpTF?`HID8u26g@kR8<#L6j@!iY*9eKZd|Nn4ktf-(MwWsEl#~UVA z>GUwdjtr@#eOw|EXhleCpf?O^+5}rEuB2tO1j?w!6tttKPkC$1b>A%M-c|gQ8Mc1v zjidhkp!N70G6Q_*F3ed7wVd&2G!CULDMK0xXmxS$y)i9}kp>b7$ri3Op7aKifv6)E zD&s^D^n+DUNO!OuvM!n>fp;ia?yX^cfFZfF>bHdjg{cL7S{{96ZKZCG!j3x=kaOoM zIWfrx1sfBCF-(p!Kvltbq7;-&>q$bkH2iYg;;FwClb7`&W_BEdGxF!$gO*V~%SNS7Sc)+tg@GXxw~2E-&k+YRtbF@X;X|0TSj-BKr9ICjYe zp```6hV43yR;4M2!y6Yt*&fD7!Ny7(8~GNlHc=e|4=0dF#)Dj_ISKOvn9(AA4(5#Y zqizY)(e7PA4%bcfB)X^8{rujRFNR&BXG&m2B7(HHL%ksa(@S!}=A^*4aBLG7NpMLk z{=yxe1gI69(FCwL?A|07g0+|`Y5*&S)00C21tM?IZ--pukgeU2QA)by{#}LHn{}^L zq-Oq#weOy$7xz;NK-pCaPd*N)+)~D-fKVIb&-FJqH1M;&X`=M{ zmJx-!={i$WDr?iotB{6@!g$!K1}_SL!^30jbjN z=biiXGv{S9I*d^WY0ST}P-f^>lIF`PFf)=hlLfrY*zV(JGu3`G`(#C*K06NrZm_su zP|Ebln4U*bUuKT|%A(z{d}(2vPfvy#D4Hbn9F2`hCPTN)oYrj%!`m}=g=!mMq4t-t z;7?RLsHfa!?m)TCjFsD7{w(nIwy9$ax=P|?Q0j!Eyq~^hy-G7L9gH#ACEp&61G!t7$Uk+{d}Q@h=^WJFhmvIK6c?75%qV_%nX-dn11$f&C79hDLNA&vT$5sMSXe zh&CZDQ;u}&I!ZFC6xtLSMH5RBw+wT(hc*g<7OoVYfeTe}vnt&sz^fO0$R!U)qxCR7 z=oe{AJs%?cONw)`VxWsekg&qRU2~QP+b|z26Z;ZDLsnEiJ__ zKvQnkX;;JbKQ5R6*H^}_hC3{I+6LFlb}oYJ*G;_wE>jDxgv&?p@u;n6z3C&g-|q%9 z{M}{vJVWZx@0PAxl-2Y)B=z0x_4A%vQ;|6pVof`LQ*%Q@gu~&Tm>|*?UT`5qOoR)x zaFqdJW_3ep0DP~`eew(w_JzBx`}zgx^HsgOYN|OTwX(rwyJF$RI(?k7DO8e4WiVpw z@o|kn_TAsaH;Bw^K$L~lHF?Uyc!CsV2mcyi#@nl8o(uc1@SfA(TrXlm0H7t8QABK5 zF5J`}g^a!#Iym*?vO~u0ew@)Wflcc1lQO#;Wth$hGZQ#Mp_=&QcycBv#Z@VqX|3Ur zx|cB|RlefaW1l~3gx+OPpehOY#CZp{4ow-(eD@!>KSo|$qJ3B(m?LLb^09Q~kF6B@ zB#bU75HfWEVa|9%l#daZUq+RXft1AyA}$h|cjgp&Oj&S-o;cfhvrAk}faO5vi5oJ>{{QOZ7tSCcjJ7 z(9Hy?8dO464X{nKpp|1;G_(Qk!pNu>v*IUKI4{A2k_uKFAqNgUA$bTFKe|;}1Uc`$ z(^V-Yw+5{t_3QvoDI5kDx|B5%+Ed|R~pQC2tzV6w{=&Qo2U zSqBS6NfF=ZSFOhv+JE@0=Sc;Beg2G(l8mER1E%Sv>On`RmiHaDY|JSa>ZC?w{XrGg z83Z3s<^nU}{0nLD&^B4E5DE`s>I|dMDo_T0G>{Z4n?-K6o9LA=7KFxRs%1rKM7Xti z@0sHbBcAE9WXiLPid4(hczG9I-nOVHYiBz;wRTd$(M=;OGA#vtNs`PtWfH@fgAp!} zgjAO5+SFNJn%AH8GTTJVbdsb(LgjheKuNj@$jOuDHH@f3LoOy5n?gYV8A;+Q&Ryt26A|U2Z}MYeN;e z)%9VgHwgp@kx;7Q1wr%GKcWHNiY-SoySsqaWZcP5DGqo$+M6S>$6J`qQ6? z@FHRQr430AMxp()fC~(QTi~(dIY-4`Z3@PdakIZEkU)u_1Dug;?axTe?#oX;{hU-~ z&wT6EcW9Qj4j=B=l&|%SC4;IKWu{QI_39Mu_WAiJ9|2A&4I%*qKYWVo8c761sKAs5{XTd-M zly@UxpDgqijfHw=F{ajCoOr3{SJO3T$!RdF75RuTPEJ9mgW$wZ5}NB-H=D6T?r{!t zs@tLW?{J(tT<0MGia|Rs)Or0rM}FFemXzhIPk*XkHaGLgL|IQuE^6lm57!uo)SzLz zvZTa;iK()nOF+xBDDy~2uuiFAugNo^;Z}PGzy49A6S1?Vo;YsHrZZ>UN(R>sU0y^Z zHx4k$xubw76xeTS3jx#4sa;(o=AVO6PE4ut|>!R_u`|~%ZZxH zS*p1lIi*YjkJuz2sgzx~?2NqL6*#dVW2U;Ro3RUDh(j|2lIxJwa*Nd43k&S28Q&bb zrLk<0#KkSKn~1_}*DtSyWOtdT zrD#CVLAHZ=+|bdCZOA@lgG@Vx3UU1mE9+L|>-HBGxKa!L@%R({t+ZZxkDy*jzyq2k zRv1OA`9DXBNt*t6^ltmJjb2?u^;IzS+l+l8YmEeu6* z>D}=N;;x1|H|N_%&g)UMaln77@?n(1e9XqvS6JXq^?9S_hHI*)Yod(lYJTOo4PuHE zjk0sjrT`xkR1gMb3=!$8X{}KhXsH()z55rGZ{XIMd=&U*;uvJ)zl7 z_M4BF|5}}d$BE3{w{W&KTN&FrdLEJ`$4SP1adZ*C3S7IPOWsn%7)C zcH2q1{;V=R0kM667PCA6=D4I+OlF>Jk-4TQ`^lHwu&6I$4WOcbAxrNq`G_$HqgEGZXUymx^Ty7Va8b%{Bj8tNX%k)p zUx#4O8>>dR(ZOK*g^&dqct=rSfWlO(OugB7>3btPRmW1DI{EWc=zBiBt{_*NNin>l z0co6%gCRf2sgVG(ejxBy=9GiRRurt{=Wq}?(Gs7@`2!7TSJ`e-vb7`KILhdXNBJ1! zMFHeFMFUT&apeK#EG+P*R+I&9d~3>GnW0*gP!a;MPQNF%Gt zNO}qfd;#~AK*$5ytyV*fvNZ(+5Zs#u4eew+7>F<}41@Rgn^>9>II%o)r+Nr9@FD{;U~fA0>2E#LoqZ3y9CB60}ln1v5^z2nxhC9 zB;QJ~^Lz(jrLY#P6wUxEsc}hQlPSarK_)AbNf)*>L?_xzn#Zo&Rj z-FnGB1F8=J?UAzaB*_K?Ot6=F5%IRXlj_TGIGjJF(&W^V3-=s0Ysn+zo4jEog!i>W z^%pzdRiyx9LUSxAwF6Ka#3vr|*D-ESBu1Mpj3+{y%@75L19b9)ODkqvP@Q36Uv2vM z?JMbuqQn1>h03(Br^zXkd-|0>56B|>MrJ2R8FDllQFEs3{&<7P#Y!XbfLNViYXRa* zYv7oDH6C|~)x*~VO;zUi>5IC3*#DcpT~Rou9#5vEmQL<-^7z@UnXumqj3-L7+bN2{ zGV8rTWoFohXE(Wc7m`k9PlYp3$b+#3QJzEq1)UT-q4@PaDFsNF782Wbe{U&x2`bj$F z?`SXOe+&l6tQ_7$=ZT!1di1>h^GCkSJ0hYR)ZF zj%s_iOs~yZ39)D`gu`NVNm_A>VXU}CL1E7FfY3zrUi=iB@8mN*)%MK`-{0MHoSs8r zP2W6@q~)S-rl0DYky;o(@5zf!+@5p3D66mU_johC{ERppjpA@It`X$@&TgN!jW%KN zmr6dyN1LNK7(E9x&9rU^$a0&MRFC!b;re=}HUe2K2*{jef)Tg30#bO^*Rb}~sTX~B z$wNiQYTklgy+f{?_WADDQGG=Zo&9?J$#ZJDxv;69)~DS?!GT>N7S#J~#&-NTja1nkhS1Cq)8!?!A_pNLDypw9nIYtILC?~*0HhK44Rc5r6 zl{HDev5`v>l2Hf{%0+X=m~4(QK$Okrx8y8s9!w?P`uT;2zUFjazp`B24HGOTd<&SN zm9nYVk>(Mu-Em>RTT`Zv2KD?6`B19IMW26Nyq2IFn+i2a50e*@T!fsZWzHrJ_@l_R z1eq=v!81Bb%j~ce$;CG`WT_wWfpOk%W?$Xgck`JKyj*Eb|KaT#6w1S=9B?Ia-TnKVrfjR3m&p@^69jm zdqWxJl(mN!L>d@dke3F=-yIRYF$Vf96D}DM`RAIxy}FS}^4Av;ZP)2XA->HsPCpPPa$;UO81Y$EWsQ?ua1imqb9;z?%IiEPbbo=!q?Ztmq z7Fge@7J>Th*?e7l`~IL^E>g2Aiqx`joY@r|XAI;x z+rOIc`Dds6iweT2X~q4e=(kqg$XXf>LK%{TBf|mx8zA{u8w+s_fFd7)gz}9Ahf_N* zEq>i16j%gLP>x(&QcOR^Z>M>Gr|R8 z%?Wh>z-A_oQ!e6924amIA}!-VU2(d+e->L$vX?aainR4uJjAha6lcy<2ek=0dEvzEc~PB|iwi$7wD0q94D5w+Wi3;npS$vQv(AK` zF4m(BXkc?BMNk332O@GFoQz}nPUp?3Qb%ja4WsG`)rsA%Hx=9AlvHSrE4d2f5}+In zNpt&#Bw(v-*L)1P0a+88_ZZ67n2gVI01Zr-#x4PHpd4AkDv&`^!MZ2G$Jk>Vi2fx+UI46yj5XVgnQG>sO& zK1%cZ!h%_;{be6+9Dd7@dckjVrPCoqp3mY+t*M3;^b0Q^_j)EYLCGN( zkvZfd;S8=gI?WXqk*mnMhAYkmxZ=X?F~!jxFvZcBDekLx_m1s~Qnc38y1{4dx_+WV z?|s-DzDn6EM|=lXm%EN_7BDp0;j4rr64*(wfq(NV1THR^lL{Ym@h4y2@kvJO&D84g z%A&_weg&ilrA-z_;YOqd14br!Q6B@(}4}$arBZlV?qYni6V5%2PjgeN2 zYfnQM<#;P8&Bc)jOU40AIQ=11Lf9d*tiZNoN%{U>{r*GN@!ZtHEywJC=~^->T&hWx z5O=~39thvURdUgKE?Ewle4R8LVGXPmf5~_&f>G!Tz;qOI{K#jS-=4p`$6u+DgY!|6 z*r@5I)dAnRsbRgA-92!~;W`sKC;|e~s&#&+!^4z%%kwD(T96uY|v=ub<&BvA4e(9b66b?Z<22bi2NLYI|jgJ z5Y~YtTa>}=^Tq`pg^dv}yrW(KMQ)-z?xLWVi%U2`wOI{-88Eex76uq@7B-UmQ(BmM zf5D=fmiO)|Mqjq^f0#)Ybz#YD46YGds3B!sL@69F=n#^KBaHqs_}Cv3tY*aYNS z^FmrOOhA{%KyXFstuxKPU-d5G6&_xs4YR0B0}#7+hX7xH5LD5FppgMFLQ<7(n3IP- z!=n$brQ`nbg=gZU?sIj6EHS5)XGg=_|I!7h9X+Uy6OS&q7!qZ&J*L51nfZI)tXY6Z zP8kNbZ+v$NtY-ds&pU8=?+?A!%;75S1%ZXnXKJv^@8A zv^?x)v`j{~!~K)o`*67vM-VT=le2pT+Ru3dT3+>cz%zy?i?g?=Tu?cyY7#j;28xcommV^;Sg&NWWKb#(Eqhb?F_&xr<>=NO#2F`tRHw>>#EeM?z`@}vt^FX?9g$N zf~MWE7Qk=~Oa+{mAaW`c4IUKPiXT`z*^B&Wb+1m<-`)Gmbq$2OCWEL|jn~fFMqzxV zgckuo3RAB$p0EMN-GLUvh&Qe)Qj((P`-HDfoi?}eybI-8xrrUlb8g?bH2I7mrz}lG zF&u68VNwKp+O}Hx;c;a@_5G-4w@x>P>r?k`u>E`Zj-{P|CBjfIO&SKAYubk=+LilO zaIMgM=n$WXY$y|m6*FP2XFl;*H1_rEp?8Njq(=QR{DZ#`k*$ix!YAlfCVM2|Z zK$J?r$eu6qbZP43hC#g?bB@(>g-wJ$8cnMG7N z2HJ{zl%E4V4j&f{BxeGS3z18j0HhGX91NiBHx>t$4j9gqKY_$0+LXdcOrdIdB9ogU zyR?z)4dIoQGGkELD2X+9&@R`2lZ9Wd!?Z z2xloxa_2U4v0y8T`Xiez8@`gEVJ!x1b1-<|O~&g3^?ZaEc}@W4j_l9F1R7Bmf*z;> z6>nyvS-@!K_Q7aoHj46vM%E4g$2I~w6etqrLgGr`40^Wmj{GXQ3=NW6@UG$OG6PyzRiq%R%B88w~xU*NoIn;5EdPp!SQ8iO7a@`|^Q@ ztVnIX?@EJx?72F}w-K=mng$vd0JmEi;4#@E>{}k#Ue%fy)%Ea^Bt2XU7h!0Iq3B=} z@K8d!h}zsQd1b1l?WcPa#-@V~V`$&z%pLM-hV{RCh*!!?tWjJ$4vT>8@^3(E#J@oW z(VYRlhB53lOq3bgt+KIeXpb3XrOgjtUX=j)n%xh0B)B~_a%|+`z||M(n-sm$o{EHkk15NyUlp zVYJ5-GUPfwcgInM zyHjIYN3NYK*>vufHsGphM=TZ>12}tcDJcOL>!g`z)Gyi)raAzaH}hvxS)H0&aMvfL zKM?OKL+i^(*w$dc60-c-XU}`W9qZns%S^6&Q^{|vlg2I|t(S)}S2`6W%4is!4CraH z(hlpL=-$-cEu!s|%ffo6=@1sE_6?#a2c`qha~O?mMbH<;Ml?)qhjG?08eW?5HHNn@eYv(L;RDu!T=drUmIXO}pZ{3*P-@DOqfWYP zRR`4K?y5Sk)13!X>O-kjYX?>Qyzh=qJrG=uoLoABrR6) zIDrQO%uksz^HcAeQJ^rWSFX#suI;C@xUqZYkHtr3W{i_kRvMiTRJ?M7Q$m442~A$v(;)?P|?e4m2s4#YZ zf^G4JKw0V^;1Jxo{=g-gwl=c#p5q6W7hOMS4Y6Ln==#A@O|tE5&qqDJzcZwWb7f-D zQ_aS7k4>E^#xZ~z>931{)L2E7vxQ^S`A)#W=Ia9Dc3XnZ38nsr3WDaI8>@xd2oYpdEd^acb90MYFkH ziV}xw6_t4`H zt(a$cwEx&co#_whsU@1H+fG~h^^M0bsZt3>vPj{XQGDkBhRi%&?w(?GrYYgMN9N>ee5R;f9sTz?6Z!g#v9A5HiYXZXA~xk91+Q`4FCy^un-zQSIy3X)xIKQ zg~VOktavXLzXR{bDsWlU=G-J5tPbkPc0A>el8%N$Kca9zeJQt1f|EQe zAA7Acax|ryXWK$YKlt>hz2ou*vLVaa5ouvKogLijy8;tsJu_mLt<=wwwF2=Gjt2Ry!_x{g)qI#TeX z4v6R=AX0$JY*WPdQ<`+aM%0-3TDY=({OwK?J$bx#+-ZSCiG~s>y&r{oIeMkS5KqkNp;1lx zh0;fp235Wc$YLSwd5hI5rTfj)92O!lMfH+esh8B!ZYS+_(-b=g2`8+2%YC$bhB*bh zYOPl^nP^Vez!%#Z4m^16d9N)hs%D`GCY7GBTAk52AoY7g62b$f1&LRM5MRb$n4|m4 zZGq;lWjFT?tId^pXp@*>i;#S+@)0K?w1D4neuCu+@n7ho+1z%=#-lFX|AOeomr;CA zI9#dP&T81Q#9de}4IOVx7Bm7wwSSpU0YR2Wqd*M^K0&EeE=>|sX;$kLRz%t<${hAa z*Z{-F#aThR#ni%oowe=#-$BHBbDPVvZ~m;CR_8qyiy*ZX3aSA#K(q)D?^R)yw4^cf zlf+<#(59ZlENVTy+yMUdD^aNOY;OBx|7iL+tqt!t=UlRpMl?hsG#{+m z8W^7=!ZA&Cv9zVzuX}>ueKdGypPs+-y0fchOWXZs$IsXQR;|`~;UF&sKiM@62?8HR zl?+gHxi%4o&le!VxTQ@q`|WuS``MY9RUC9{r<#p;O+%W1(4&hmM!8Ctjs*W2r2<~q ze~c*4M+G;Zc|{K}Xm?inbxYfv<3blc`gTNR1nHp1v#x!QXK^apwBVO3zP|5>-uZ%6 zJzg9L*Pfs5MqAU&{-xP}-BUjVF8rV4#;9cPj3HFDFH!E{u#Sdj5L`7i-#Fv2KHubA z=&FrKTiR9)KJoV6T`Sdc&SD#st7`)q8;JBA&WiNf0XUPi0Ns>`uQ|#UGOxYb_U6H} zei?p&N9{zgCPSlAF}+b#OxKf0F z%V%KudOMjvn(?2uW1rjOC5~8#_YZW!x|%RxC1q+(+|9&&K1E(N%bFS!)25n@?nGl8 zegoCDuV>^5SB&hgv;e6*_;*J-x3vwL|MdL$p6@atCaCNK)cT>fr05>6<-Orph>3C0 z03qdE9exQ{0-#%%!c=Z38zd?y%4C8lciar6<>+`+lner5*6{CIw}~dqbWPNc%I;|J z3>#^JPmo#~*Wsck{qR}wDJRE<8Jc6DFm@~&VtuXX<4ma^B9_bp?hBG-gawCSuw1?R zuCo5aFY4N*h*%_DHg{>|RUi>+qw(bArf7HMmFIw#XV2fgHNDxk}?0!#~GNT5ih5}GZ zILBI3P3W9lw2AYEkz$D?-39u^b-T}-4T76u%MW+78NXR*sd)W*y#McfNB$1x+jQyq zHYe?>tFN`^$hOVXJiGDz@WdWR{!PaCQq9h`nZwq&zqx%)L6ATeX9a)?;YGf(9GDbI z;OQkoQt1dbPihB20BMM#frOoHy_kQV=)2&CBG^OO$&sPXpbP2bV4G1{kCT@@&9MEN?1HG+e7mZ2y@&(C6GlM~($G{fM5ui-`S{aE>h zL+IA|iS}J>8+y)v=ChJ!welCy!I;#7Q^v9#HY{Jm6UG*Bq$(1f9YJzR$Ss!8+Zxb5 zR-{8mjdpL`n|3_^TEUOnwmo^}6AS;Y|xe3xa#VVbNOen^185BV%S}67= zx*1V99ThENaY3dw7KPm$_359iCy{~r90+8g@1a5rz-6Ye@n&~(A`l2+iXx16GaR_x zCfenWn?=1LlwN>-+!nfqW}zJ>YowJ1?w)QkZ~E^?ZT?>#KD>n(rItR|qXr3P zeB5^0uqnRvKb)Mm zQGJ$-9YBm3lmp>svvFUuxHSZ#AwM1p>OeJ~&l`t+1-y9GEolRV`il9|>ozwK zCw$yb%t9M*3mK>K^Tz#!;$r!&*xmNilxHjJ-?$I&&nY+zl~f||kqo5>h0rFU$1fCN zQj+B>oi3vu4byBOPR)q}0paSP!Aw=N&~p;soK(HJlVkj>4S&SOIMn0}Yj_pILOrY3qJI*jL$ndUxyG z=2Ma(v-m~ZSC{_lrK|V8s0QC6xK^}~0>0&-kH9Kjg`@!T_xI|ruE2w-FL!0H<2V)-=K zB9*Rf7r3xYr`G-Rs<}On>*P^liOO+;dE3I@Gs8Z zH0WbRlCWJ3EYQGXjK9IlvEa9Z+&u4aW%GI@%*az#Z0>MX-7+ad=Sydev{Ir00T>&n zLG`liUqqP1N(^bC3A+(#hG0fItv>Y<5c6p%s>Rs?$9Ek)r0lMrebyEI$~rK|ru)i# z)8^keufCt>Dg{oKD)5xK>{*dJg@Yljz$UW7Avv_iejwdaTzCFXqo~&UDI!%s6C_npLKR;#NSqBb)odf@<)Dld=4{zWEQ;ab*jNY?wx~Hi z2Bql%VunLGb44iXja$ndCTqDvlqA$s)^Z1xMFkQUL64lu(%3FRIbVQh5Mg($S8pFs^F^`BMuM zfmus7;F!vDq^{Y^)3yX3kA`tziwiY8G({O&APt~}(#KnoJ)4#$9d$4X*obfr5~?(c zQS!U9@4N5)o$vMO$P^}TNWZmBb9a4vt9ynT46h26!!Q;jXc8(}(b6J$2wB3>76yZy zd_|P21T_Z0t}ycQIkSV)`R;{->7~NTOJ84mzR8q%wpCfG+{AU57>qP{x$3Borzl^D za=HonXU9cta@vC+9j7mMTHsS6*0;EDp* z(qdp00_8*>o_j^Fbj-`ep`4x4 zPsbEy!jKn1Rzvn3PTz+qRX8&w+U7xLJq!NNqoub`dt}YvEw}XjtEHS%Lt{6gTi@?~ zIpG5`GxJ_0N}C~8Ght?VDLcV46ySYOvht&7Vo4y9u>l zRL}o>U^_WDWpSVd6$ipOt1d>nJ#{WBjba-7ZsW-dw>@xT_s(V%muh+lqrT7&tNiv; zwPZ}rQehn*inWNP9h|8=S|4*)J1ww+0GK9b7U>0nMO4<3U}O6MnNiXwGRpLc+AHZd z(vw{1J*l#OyS&tI<<|W#9d+O8{>u5GFFv4T`-r!>hw$ESmN|7#`!d5aF^N^@k&Aod zvI&rcv@^gK4ww%i89Iuv08=Q2YmD*?xZ%~_MkZ8lfN+y&s%o!9GAlZI{())tb{*{O z@%x$Y_7+xcyoBx5JWUNxMT0hJKsoX(mNpKQa;=ZBbF5qq6Q1Zt&Sg|KubTpLhb5Xm z!X=kDH&-4(Wto=KzyX~-nrI9$RwwLN=6Dp%I~WsF!lgcn3I-cL-ClEtq1W^M3XK-J zXa)!yCe7dV!2V&`m~tYg#_#qz{O}sMfTF2Ex9H{WGAF=dgX#gol5@|!r{tb!A@H|C z${i3~q7l#wMOY}Gx(*qlZOHo`4iF|Ku5Y{G+OaBK$KVJ4!q91qiX_6Ygd;s}c=m-E z<2U}8?B1EHlyrn|ps?xZ0c-co_#%^`SEXP+iup3LOvglw-a#3%7tIJ6x) zF(CdpYw8-NO)a0CKdHEj=15_{g$F2WV2R2aEsvs6==%UA99flO&YVgXEY`7LQPzht zgXKyE7Y$P`;HLi3+B1dTzm-Y4hFIrm=Ba2q0}m?qcg^p59w{8y^~22rjR8%*Y!yYh zT3w8Z)Hv&6aka#y30Omg{CK4fP*7lNSX+=g@{z*bPhB+W-}mX&uxb;sC&I%vFhX-o z@}al^`=U9ke29`?sK9uMW~gw}y;lxca>h87Z%@_hlcb&XhNBU`i%IZI4OqfEBC$jq z*H0Aqy+;cR);;k3hk-hkwoaHp4V5>Z;9&cxY49NU*-~Q@m*t3}p4E01P!?fyl>dBs ztk5v@#1ER!T$?}pGF^BEQw!vOE4fY8Bl*5*MbdgILNugt9!HJ4b)Fhhm*$8CZjDsZg_XVJmG)`b23V0SzFX9~CA1(ouJ*P@ z6LHZ<4vSNzpg^io*|eFZ!&NTiaAD?Yb3U!?7vV7bXwv-S9c|L7r7F`qCX5up zvC+Y*HOG|gt~SGV7nXRD1S;`T6n3Fp7Vsj#xmib?qEe+`Mbv$b7OsBd^|{?H8>=$8 zka|eJ&5}?wK(7X>rEsa+F+xRIU(dv+K2e)aa|Sv=RW%({rU%3l0bz%0@nUUnV?!F$v= zY=reE!ZDE8gJuANKz+YVV3dMdA6Ce1H}Q#BEXu|457ZGcuWuIPr;({7&BquY8(@KL zB;-1U96>1BuP~hqqyMp}ky$i{cBBoP9;~Efp&iW>6%PBS#=q5nd0MA?Nh)EYvBL4p z!v6Pttm=bc#6&hpVW+Sr_@Me1}?z30k71N z%c;{@rKlP)+M2y=#6zXl@PIFcok-9qp-MpoMgoMEniKc9ov=ES^g)^>{76vfS|38> zD~iTs(MkaB-gn%}etU+0Q&QG}#cVoweTwkfkGGsNYTmd^$OMp=Xgdfg=teLshy{`e z4oEBW*>SbjJ2(qcmbJxzrIZb9WwNeu^uKEn^BQBq4WCv5EMaD7a&$CoD5dl|Kzg6 zJ5Xs|su?c~ey?`L(AnZud|SC#tWanH1gUF-lPIzDv&rW-w`95jARXoI(~#{^2QlQDzucp88CZcor)(~&RCtG zOt~)LnH_~@Ba-4*5Y<@tkZ%MDl)r%Y14T7@=vR+@aq?8ht`a5a+g)X=QF)#EAgmQe z&U@~N1zn%WKU&VNuO-5TRZJ_+XtR-4XPgs*3Q$Z^w4j_p?g@xU8B(mQL$R_oYpg7> z5M4-h`3zUDBG+f6pm}id3HKa6T!oop3iC}M1|Uc{aoeLlfZVflsBpQz$_I=ZJ6eHH z3hy1^{$Pg0Daiy8Qta1uG~r#PYHdL$oMyiJy3z%o6$1)L?kckxuErbZ*g4WLq@ssT z5?NnN7z1nshU8*lzo=-STv}>rGkUY96`%+N-C^_QJNJI}hq^vV~g;H>#WI_REksgfee~HS}98nkI*BK)8pl5fubjo z{c92V0d|J>acoSgu+>R#1%oi`2Mia7>Z{o}>?y1ihniq`HPY~j)FK1b3fR1nXatyu zOT|wVP-Bq;9`1>>dm`P4H!S{J{6ru$0KNi!6?zd8SUs_P-h`{aexTcszbUOzjqy~X zIbB%0J_tGpQriXA+q`%P!ijZ@?{#*~A2~Qvc;o5E-?yCgrD6%ufnwlP4X{~8 zZ)>OWm-4zD*{gp^eVl6rvmA;)VQn9r`FK>WXsSd{P%cnvsvAigvJeR^G|1_|^rnnC z2r^fQJ6Pwo(H+%}I#ZZBl)JzCmb28DCyJp?Z$l$xYm9NTb5UE?i`-7Lba=%M*W1m# z28sL)jlLw`!P_d_;utwYIPO$cyc-oyxT6Wq$6zHem=QMv(~UR)*)w9SQ&*`qBfD^S z-G;lY!yeBD^JgtbRtoW_aWRM~Y{Va(4a(5q`Ju`~GoayMf1XTXej_5rq?a^Xl_kvp zp)=DpG{XTWTct^WD~-dY9TdJQweX)QQ0N_Tqr` znZV+F*p;ZWY(wM;TN_B&?qjF(IStqQsJ1mq81_0fz&~z^8cU3jDYdEVZK#!YrKlMM zEJj(r`t8X(e+Na%QcZ<$;k7$IJ8<6`wO*`sK)C=g_8L(Srm{H3I~Cq`X(iuAI=xgy z4@KuqG*UUlNvHAzSm)T8fCs&RN~^no)K)Q8LUzNT$*z}=6yoE?T6ACM)MlTADulBu zT=UK5+lpzrF!ALLg`g`mTg)`e;z^bTF_t;ED6|>XB-k=svI-AxD}@=F`A44n%9nXF zk&7^YRVt1m0&zC~R#KaQwY5loTdc=I)mqsNVcl99uT12C7^z5A;z}_P0mCQtsV{(y z_2QGif9RyA@9pu&(~u_#KmX@0?fox3oIyjD%B*3>@pv2nah7lzv#c@fY&Wu!{Gn2vlr<}L>vfAxk z`~8LD_Vg=VE!_F5#aq$4HSZv=U^M_miqxol9ifE@Ou(`9c3i5nMB@~08@Xe}M;oWB z%{iI&wHf|gQuR1&6!Ogp9!i>f8jyWLh?mtUR;%_0aFGaDFg!uAR)N-VJi-;9V8 zkPBC=?2KC&aMe+>M^~P$Hb2Vy1*zp2Xi?%$_&|Mklmk`nS!P6%zGv|fBjnkbMRywE z_NcjtEVkr=VJcUyUg*P5xZ=zuQ!?SpDs0P&TcX5JhrOK);a!`@GcB8mIHK=JZ$irv z>SDuyE#E%w?9!!(E-7yu^}_HUzTI0ES*J$0R@WYLHn;Ks*APYA>UnPyBe$(j6{)nZ zVy=VPc_$lVLLjI>x&oYcHXTJp-YN);ya3MvdI$05h8L6Z4|^6m6U(b7)BAS%eizLY zA!&O2w^{SXWUggI>o=LgJW`e~hL$l!=-2gCYwuP;!Fh6!-2kcMU8c;qo%&5w!S8<`oex^!@wVV zf6%?NB&ka@=Lm1ydhUnURL##EiRDW_QT$V!eZ}@`3xPajN>Wuv2QyZ2#?&ef#DQQP z2bMLYK3$qhrb-1U-2SDmc#|-uS7&Rzm1?F5AM17JJ~3A;pmOFkRdcw;i&XUNGp1R5 znzTS6IEha-C&uwE#+TrDwuK3`QsQ+?G0y1QzU*SzcxEqAg6xED2!A^Lq$9Hajw{EY zc0=AFY%b={o(f9t57?BwITbkw?!d{|7-X51@hl`^MBwrzAihqJ?D}1 zm0hyP;-^y;ZTx{*Xj_hd&%KMX-`{D%rLBfz6KjuFBOmFUHBf#Jjj2G#O$ivR#W~!Y zx~lb>^Mt@hZ&h9V(@830jjp=dgIOAAAjZiETQm`g12Go+hC9x$>3zABWxk;-eXG%A z-%p*wOhG^Y=3~BWv#5NVXEx-0JNRM&i+mlUJdC<$)U;CEQrTTQF{H-*CrP zd39C~0sZw|TbCS{fe{X9dhgr0#g&!wLeh4Ik8{yh+MB>~{T5K20gp))9T0;N6Ey~D z+DEMl$GAq?e)Xycjw*r|Q=(}Wjy=(F+orQes7=xs+cSH-F&5CzOe}BIm$UIgEL2$G zlz(;WZM?U+km4YDKxDFpW_w$CM+E%%j#mY#mD97rS7Y9|#k03wg^!mbpjVhRv|ANU z(AVfkyaU)2`L5vadnRv04 z&8`u>9umTH+BRC+vu(5>+s1O(D^*K1bHk_=5{y~_lYvzODXqv!jO$vXKwm z*QFzR3-SRWD6G^9<65Z|g>?OF%1^NU$pLBPdy-`g(1ChehyX|$cqUt=+h#+nZLD^K z*zS{XF%)DM=1&%#B@A7B%Nv{Li&A)BsogJRkb$m0R>Q!O!KhMIcAqjNgFmz{E?cwo ziavw?ritoIp`(znZNLN9y}YDOEripCy|Wmafpu6i;RZ8w?PGoAYy?z1LaxCim(^&d ztI~_L5K+7Eim9;Ba{70bRS)EExGA>E@o3Jf0$p1Xb3&h?rucb_1#r-kN)Wq70y~lzNvjkM9MM&Va>G-&xvameOd&3Of;(*5Ylq6YG=eE-GzScic@ylXWK^J9w zp^k?}g^zb_`Gs*_S}=r|Ru@5tt4ar^;OIp!4w=nzT09NNkCJkY4o97+j2Gr>+}4bs zvd3NM+^Id709!J?G<$bBUkJ?Ge=hUI@%YF}B|!r6P=PL?KEW|zfNpAOH%Tx3;{D^d zzq+8Tzv6nHJS2VlZ4Mz0wdX@cLkGMtyr$3U6STC-x-WMGi~cSkf(2~JjsotyaNgcE z@B7D`tujv$B#iB#^apSVN6V<%Xf$T?^6|QWC#uYfqRh;S;};v9A584}cbAGwHR-qz zIdGKG?TyRaw8k z%uTyM=*R5n6`rmPKGmmfkQrt}48V!TJL295n+Vr{Dh4*vBvBIqaH}$v6ZriAv-O2U zJuV}QK8g0@k_bXu%kXi=4~x}-U}u)fKJ{O9kx=&NJEy<2_}YR(>TKK%l5|8`ydf4g zQ^kZym_e-_WEAmIo`Nc1*=;J|CtWN&ylR2A@062Oev*zr6xFF_V}%o*69iqWp|c>e z>{EW3QqwFomd_JD8Tjz8=i_B_QBoy3u*3y*K~#u^ZpET=U>;+7z9%|Qh`W|QdExg*Vm!qmqeZv1#>RW{HV zXWOKtTslIorAaNGfUJ>7H15Un6~^*%M5VWpRGr&YG>>4Ra2kKtQ|B8iO48Hcol3pR ziAjc?N_tjyo)w@?wa46|(nfV>20w^`t19qv6&7c>J@7G%i^{{PqH@B36>D#F=9FXsu3r)p#F(!Z zJOwUtD$Q~ zgA?`^JHy00oVSJHcyCCwV@GWOzXFmYDKy*5K7|(f%Yee~Hqbzg2`!@$Pf4b>Crac} zP_LB4p9@RH32h_vx~_|aS{>rEGHwm<#%`+<;;op+S8g+}>b1hi(L`cEdAE{ua5DGUD0h`~0^%IV^yNL9VU3|okDQG1 z)U4k_5^&!d@q4^%$S!I57nLkCNy#!K17wqO;5Q$8So7rvP5qVEZ^QcjSzGH5XR3ua zHwwdkdv4l*sjsw8J1R!r0JO7sO4kt90ZRNM11&l}Q-l^82tw`=I8y5_rwM|F6BaBc zK?Nx$slX&?TI<9_5`X{xF^ze9@^#6(yqFpb4R{W-mjx|4oX7ZjlzGc2EKdY z_cy6Pkhv)Tgw_pX8-r4QD4n8sO40!H z8pXj)K_dyn0S^vhAn?SAwd^F39N`>^#a1Aa0-A~x;GpDT%konm0|R?U>*`kucFisR zTUWSMa$r!w^RbG^~U^$p#UMWUP&i9MeKkrZBdck_qnX=)wh_Rtv+AnN;)i zdzWVtU`2ffr#BvFxJV7)AQ6UgHc}S@?r=2p1BEGQQzJ;g$6??jEB4gVgh?(`)Zz^p z^@taPp4GBE&HC9E8n6q%VFUV1G>14n^iP53?AHmC`-$hfzBGNC?_<5HCc!Pj*Yit! z!|oP`w;m-q8J+|}*Xv?*dA+0BPB&0Cpsg(@ckX)R!S^1#WRvFT|09cC^>o;6Lg_DE zN|*h2wU1pcZlC}Fj6ymW)0AO_$Qt!jbWg&C9dvs zw%k{qsD0(8!~6CB%l*8oKP3*X-~V|rQ3ooz!c7XvgeuC1!Sgb9KB09-xwt6&m8DwP zL>EZ}vr4gTO5{(qXi*P~7AsKE;-pR}TD)5rJfeKnwyV996ieAq-eR zWKt75X-=Brj}{p}ZEr(`3gvr|z|3pg@u)CT?PuI0j4eCiA7#upn!>4sXlW0eB4emZ z($~z8I%^;RRxS*0)xU*(s(h!Jf1!(Eaq;$15o(0_OT_m7sVfhwdgB+80H+zVVbHydXvfRbR` zh&F&54Rj)9(k*!_mai3>A3dqx{p-$E>GSQIH+(bzLWh^=yma>*Dn0XoqzDa%!yl_4!Cv46OAfaT^*YH+!)0nsTS(wi^9L> zR9&LEPl#_=_1x<{jA|KC&L0TzS<1h#cn>MzuuV-|0p_m{3#YYi-t=vYONEIFR#QlR z6|S#hAu|YJ@y*xLCa?#J%)qE+q$tAV^#>Dt9IObdnLymlHc~;b_6V|V+i$N1{O8Up zJ1EsWB7DU?^5DUWxLVIi39}F;#0LYR9XMsH(*e&vEzK+60hbiL1sPkRktgj4Wq}wu z2Z;H3=UE>Ss>=xXqeE&n=>c)7w-Y$F#4^+vegxi)vl*`3;jvlW9&k48p^oRSz2Jwo z+2y^5{T~g|x@gu3+;_{u=LWWBGNC$*J4r=w23qVSpw|I0MsWSTac{c{CoPh~328~M zjB92iY2|V5IGK_?@d3)844bmj6d+w#C;mKQ`hOqp{dZ;!%Q2R9!V2BdANo#sK#?z1 zANAcxD|x(~X-qW1!YsM?5n-amZcjHO-9jLPRMn_NWC@e}1L|f+fR!?w=j6w0>O*b< zrf)0|bp$#jfbST$(AG#R?FTx}1byD4^PeszBfC!cbmLcBcI^#jCW}=p*;C$}5EC@m zqhV2=M=E5IXO*Fvr2%8Z1nK30HH3=^N8^ABYoS-KzH89nqAHIb7sg&U@r#$&Uyz9< zVPr3zy_%Mo%ajQxaVky7NF-mC@V2bS^}uRe)4hS=ehQb?JJ(-&x%R# zyNT(T+|AekN;#|!Q~l9T2&YVFK53yRoXNDy2B49Kx)z2Dgrc+ANE2eW*Tr%{X>L6z zo-sg*Z&sY_=-|uO(QP%|MWUXs5=}aPz)NZwxdsyU}n_B2=N|6o#`X7ViEk+qoZW)PW!>$khM6qxd zUtM*Q;7h`?eKoOnT2Ia#S+RK}%kiz@xVO>hf^KtgxrNxVP|=WTdFP>f1hyU9*N;_h z-b=#93AYEjo%nJQkW0E-LRu0R)aRR{aPj30Icf<5;CI4Hholz>Et1Qz*CxVQL6)3O z)ks)^LVp1h5sIb=Bj3!iky*4i;-`Hf#>-JH-JbMp-`{~8c&X-PA-U(jC$9Vc41E7q zmgYO@+u$W>$}vRX0YVZd&48_du^@yn{LpJ1Exob6jZ62CP*Qm!5MVek%sT*N0n<`dz@gR`0zygJG_4OSAdo;Z60IJA z)Pb+5-?H$oeZz*7RvlvF9eVr$54n&`*R%;BrNIx8G~vOA`^;}0@@=tsZ&EJGkt6eM z5?@;ndpjIbNt!a@K`?g~99B-X10&+`Iq0TnN1D!%!Q7xamyJtL5*cB0-p;So+5uL5Vs@MK!o972lCT{MI69$@wYZ+*G;^i3G z;>J}40C2^B@FpRb8xuttX=rW@hC+w{FQ4l*fot2*1pZc`U)8b?54^ZW1?%sOGDp%3 ziy++I026OTAQVPeVdPU>U86Z?U1R=<-2VtW_kAkbNxCh|5c*dE-b$+`0@RH#b|Jm zygiEUJb3vk@i8m_k;mHQ*vrQ22F*@S(`QatUNhn29)160e5^$CmT=^o7k$IT! zW}jR)Osa5(KTXuVkZ6&5>^4#xjZ9;>s7P5CZ5CmTh}8+|RS|tx=LV|`Hqbgb!Emiq zka*>VV@|F=vdbcTCr-@s?mf7B34G=4b?6P>1 zN79o&$q8tCMf0+Df5$baZh_Zf@QLVi>bfH`(U&9BmqWwx@h&*S*bBd2Io>L7rt#yCi?~DCq#6wr6 zo!7J<)6Zjdb`>;@a?!Z{LJ{Im---`oZMU?3ISBWw2Nc#jJAcaF?1fbdS+iALJJjCp zQ|v!`5sKNyKZUMm!!zl>z=QY2%WS;&*J@k z*Mr7~kHmiH?pU&TB))G?-k3h_ugC3{y5g#|Q=^o5y8`U6ij=dz^vCh1K}J z-aewZApgKxZ%MX!Gw1w{-}Q##_)}vm@_PSKt2@?zM^DF*(b)9+Ibv$MEaK~B>GvVu z$I`pdb*a3XF46oBkIB0V``BFES>?PXK1M0_r>MkBf0f6m|K)JXr~-dSzOSRVrHiR3 z)hRB%>`u6CKD8umoK9ZYIlrsqTGS6-ynK2|KEGSpzS_ExzGGm)lvbN-BvUBXXW=o5zYx)JXW$f-h`&AP`M z%B)1Qc>Vs0khh7i=h;XTNM%(-aIQ<|aN7y3m1}~}1Bbe*G@uzM^;x8{0W%+Mk zz8$^$om+eSUm>R-FN>Y~W*rYd622WYc*OW~nle*sN)RAJ6A}Ob1gJp*SUjv#rBlf) zhqDSkiFE7TaZ($IaAqV`R)1m6@dAEqWcIR*fH9Zl?s z-f`2X<1>?bDoN31$_Q$MBYuYy)CaXd&}^}8%dv9K!v@T?S(206xmzeJ`)TWIzA2d} zfbh%+Gn@8`g++O}E5WiZHqunbIqVc=#&2e*u(PUV|N4C!ilLS47Wzb%AAZJ16GSj5 zqbay?p-y=s9COA~#oh?dgjyf~9mWc`)=-FQ`Syc>6 zzvI_YVdUSC;Q<0KK0;Kb@1P=}>r>P{=l*+n$zivYo^~ju_P2hd8s?Y6O+6R)xWIU| zT871<(7FQ6#fTK7kVqt^)XJX+i8c?7e48>xHP8sNmVQ=;^;(NDwIN8z1_CLix7j_P zXRDbm{P%t>T>Q<9_)!yDkqWMS>&(0R zKXPVIo#I!#e_{6J8nQQ0jqbst-Bq&=gCNAaC z5j66|lVf$z2y>1E4Xc%)vMAIVGG=HEm8oo%=k<+Xe&+PDzGF^Mi4jrbw2{ynOh$NV zR>p$!45zDn!M=?%4B^2?sC)r1b~duS(@r__ube5-d@J0r;ly)nkLmG|3<+bx9SgB> z%FjZf$Uv0yL3!wK3eA{=a=78|_-td{rsq^s> zrKo?Jawidj0wq>!1&U=YK((_z;%5SQe#lVmbgBi0@P&3J2Ay&|tyJSvO9$+qe*CXp zI&0x3PgBdg(E(xK#1T(dz8b;%XLrjrU1ZulyIplwHMwdu`?*6bXt~g`j59z0zrHoy|Cd?1E`TzVrJc^cFnpkZkL~vzTZvp`qXbbC{&-j z{2yOkHD4_WlDlSBbZ51OST9e>>{`VGT7`jYrlTvNt*&mUsci5>D;s{2{%+7Kz!l3b_pRPMeiN2_ zJ@osjwTsoV4Ze^r8jBZI`ipcwwX~>sfL1d$(lNCf$)rQKFU$>q53D>J{-WOg%;ABK?@mT7@XYpB08yMyOs>+K?%F#=dRm`X| zw`4l7f*LIoT|@h#u~r9azZDtshd|^|mnL$EKC6mWkv{~&hb@Du?(3MeX^-R?%g^3< z>9A?|$XZ2LwMeB0gbv6lMg1-&kn(r8xZ_a{PNNvK)T4qakmG@Cbr&|`fEXrxpRNDR zqp$mNg_KOSZ$-kCFP(W0iUxNgiub_nX!`?!v~KsFhOEC*HRWnI#|r@Xn!@{sux!G zNq%<5%A1a~jaM1vVVwJ6R12JdS`pB( zlFI5yw4ah}%=F}-D9X?XE#V57;QA#`dHbneKTdnT2+&We7gdv?m76)h+Imq}CR-!1 zwBJZ9k_?wcF2kh<*?wp;Kga8fqt=4_a)Z9d|L48pP{01k3rjz_^4CN~CJrk~-Pxni zx+BT~0femL2i1)P5ItyOpaeWJNQ4}XLLKD#Cm-MN@u0E`%xbqthp#+RgaoiQf`ZL3 z-3f|Vz>eGA;HhT$IHg3@&#LU6=MXy}sUKD~=7s~+YPh<~Q|%}xEUrW(&W4$4wh@GB zJQRv1Sl()N+T66Y+<`_|qlaT-sB}p-f#+`wJ19x+{9&A#z9$|^1a}B5SIP|xN`A8T?2`|Bc2G&- zgXiDT9ryPbjY~8~CO_S=B0k}W^NU?b;;oa50_7Po8I`@Gk!1E)7iNESRPs~eq_aNy zY?p}V=RW0(EJ|fVt(%R^%3BOR!%ht11R=)noap%dB)bW%Uq;jVa^iOF#p7r9JN$nQ z9b|B_-$gaG_w6X-qvdMt>489uUQSc00OcQjhgJDvQO^O8b{pmxKZzqne9!Lt-_HnFLjWr zL&?#}9rNd3ZrY<%C%!0^1NXeiyY zMn!lTEY=jNL^CXTc;vVq(_d314x0h%j}1c}5`zt@z+y1&jrf?%p0igqs6RG&?Cz~R zt36(gT%mWe$lk|ZiQ{Mp_7)nhADbL=QdGC}gVWURziE=YuGZ~~#u&fYL5LXm0|mi~ zc-T!8fM%bNy!X3fZvSkYD|4NX`=~({M=C`jT}%vEgAk;-E|#V-pG6eXpj%|2?yK%o zJYF+0`BUrTb634BO2%BGJXeX?sRN5Bi5mgitd(~$0fu8DKE@BYpBS=%??_e5zk1un zR|7|wK7Z2m(nT{W`A9AK+6jRh3c>Zw`Pyvi2-pR!P*)E)x`<@G-`R6>RPy*!5|hyi<;_%Tdm=IBT~_QFs^0&A(3^e*6%YfpJ- z&@Ih$BR~z8UAfD8+=JoXfAkG*Pku&z@kS-f`;8tkXYnxAF$W^NU>OI|G!P3YjWxu2 z1a-Nw(aBdvm+zYQ)RSu8k`Xm3txnQL_W)3yD~660z+|id_5&jIh!9nW!8=DJ9z|;c z2UJX)B-1~2x=nN=Rp+7Yu{w{IR&kiKi23;+X{XnBF zX<))^TZnZ-!F+j-Z6Z2ZLf(8RGXe zzLGN79q6nv=O?@&Iv#ZZ)ir&ymv43iQ9N#@YodN!`U8%m=|WGFS{nB)^rRm?D?a7q z*f795z%e=&4Y9sf^l_%tNs8Gi5Iv#)35t?(-(~%WU(~fw1r%jx7?b>Z;F=Hr`}&n? zTsl406D?1$As~uJxS23pYqP@Uhtix`QMW9}BR+jXi&`G#Z(=ByTTeS{-3E|E0#ZaM zt%))KU`=D8qt)NM!B6D+U?C*UEwi(4Uq3zjzW5OLzb#d3JY$pReX#CH{ZCHSFkUB3 zcwjl9(|P@VJHv^S9=K(7Tx}v0a(X#$7`!$MARP=B8<>qv{xqZNj#E#L7P{tELAolu zAfv>D)M$ZOURubys8n-u^5?#TJs%F3nvL(FRvbl`+&~*uT)c61dnHL`90HAp@2u*m zlaqJ0-Fw>?hB}ojRb~}g7O_PgsNxE>Fn)VuQ(Y{jLkk2p!*FQbKF6ZH?Uv?le-%d% z`IwNdigZfywIf5Z{jY3M+_;=AZK~M_{?B5oSZkr_rbq&$;|(+&jqwCY1JVo~0jk=J zV_G$7@I}LoY=oH@<=DA(F=Wz{2n0fm69;Cg(3e!kz985H2dA2i?nGl8o(@bg>nIJ-)Jq2E1Uv$(kB(W%KB;*&>hdf;v~_D~M}I`L7i9f$b8*KBBaKzl0f~W+a&d=K3QStuT3Q@0NDQdf zM?fNS61>%fLHs-`FRiCZ+AJPLyM#W~f$MolrlEjRYDQBvpr#5){jhS^F%5bV>+s?X z4E*9JgW-WNbLa_cC{)igJOp1s@C6wUsOYqc_Gsz3^|Q%WhE!)bChYzJZ68~JE+LPR zu(OR=uldB1tk-^A^103BH$7*KWD=*ufehl9R7*6J0M}J#6blvRu<>dZgkW4W>}DfP zA$Z6=n~nRLDH+alOvn#rXFJ0)90rsKBc!v}FyTgqD~IV=L`c!w8qh&(B$)5q zHa_{%VgI)pqwoDirrA#^O?P*LNqFDD6|b7KBAC*zYxc8k7!%zLX;pd-?d#jOPd z%h5=diODQMN-dO*_4+aYc-!r5YkRavA^Gy1h9sq^-f@ak@$SWOx1-l1QF8e*3Z($ud{T{}(eIwVw{1{{M8@xrQIN@}bPv5ZJ1zoNZAupr$TX-UbkMvd;Po*ei)v!# zz?v1jf(OVi3l^~nj-l4AAJCIrtnW@7N*(^C^O+h&@ei52Wa{?qR~@-8|EOQ4qz@R# z39yQWd?~;h3;`B^+Y8|CxhcvZo=Qdi5Sn8Gj*1qi68Ivd3R|F8!hleUAbi;6iw;D< z#7L7w#@7IF453;wc~n<+7|aYY2s~G|gg_x#{^VgYIcencXM`*giKiq3b_dyA=->%f zvkd&p(cp;q;7n$6PISQFOh%!S&3=vlW1B-Pe8SpK6bE=j1~NgKSl)&9DZhDJ&^Qf0E7oY3>+{kqUN1e=z`{MKB=ZVj!&flC|GIDy; zS^a)fK*@Qv+xj>g;>U{>%C?Hiw03IrMq24;z~Ra;4ao>bfMo`7gCHz{XvpuGjYJ0U zO-{Sv2(7lDg^YA62#G*AHUdIK;ZpBAM&gF|GdA#FRx@JRj$AT$XDvp9Dm0-$+$-!QpfhCg###kkq z)02&jTdrHwG%hoo#ej?%PudcvA`pd?KoD`)1p+)1r$X^loL6lSF7K-hvX5Ea{=WKo zosrx(_JU()&OK5E+qKli;^i#Q_~HPnQ|79!%=!5flCH0bhTb)TA~2SD%Cx`2OqF=x zAuL!7n9C3D`Q~UMhFcWD&ju`zGGM_BfQ9Ls2XE>7XG>q7m5f(tOHY68v;4uU44#kGZlltsoOaek za)TE6)RS2|0S<#ZfQ$eT7u5{RGOZCm6^4jGxz{%fh~2y6BoSj7A2XZfu`?W(@Wtu4 zToE7MCbx}tz<`Nzxs5PWLtk+A;lCCKZCR6JPcPf_j{v1gvei{K)TSs1gb@+)Q%8(2 zQNoL^m0B5Hp-^}FQcZbslKqU^spqa&AZ_{LkQMBlL=5z2Pa-0NB9-j2%vXY?FsViC zO$DRdB|<66C+2EznA6)~Dpdk&Ro9$Wl5Jny?s*ec5R6taR}eq1Jh`In^=;DvXRBru zv7Z_Yo(OXswrYlRCww5?8|8Q^({{~G(i1PU93xNbtx;?XX@z<{~4)Q9dr%o zKERuXbGR{40{Z25K%mT_0A<&Kevp zWcBO!Fktc{^r(`of(^wPj`1rvF|K0D?efnhRVRPFRb%4TELG)G$rUsS62?6fQRy40 zMJ|U(J1L6cE<8k;tQ=Aw3o45tbk)@!+*-24nfMvPW^3?<5ZeR%oO$zS(4{4LtnuZq zsZLHk>JC%=5j{%sT`Of%5JlM&ZXy$k<>7ycFPl`$?7|sdQ1w@Z!uhlhB=yjAup%1r z+lU%AlHf`BFQjB)H!FDn<&w*h!kH>}y`NpB-p{e&#jkGu)L8asafV7Yb;(_K-NXO% z@E=`sYU%8n)4Js04_+oCb%d&eI;k8w1eirAVGI*lp;UW^K!x-!5vV}# zhAjZ}1>$qVj%?w3XU!qglV<+E2cCIGlwSBM=Nw;@ffk{Mvj{-oC7oLl+z-XwOxPQV zvpz^}C&V$R|BEG31T$xfS(VUlDwz_E!eL)Vbz^PWdy%4QHI(cEq4c?EN z)+so+9pKGW>&%!IQypyr&;pRIj>Mz3)HGxT5(I#usXO7_cwUqVLXJUrd+i$aaWef*cEiSwX~~|y5fOx)8Cxi|4`{_N9Vf6 ziLKbWG5NQ2_-)l8Gu*NQzqW$H+U7Ce<`e92*>W;}iIz+h3l z0cYL#l!&SnXsQDCPi)y2dUT!ir#MidStN7*O+x@^L1wZ)ZU)d163c=V1W!l-ST zYU~J91f|rOYldKZD~2G911bG17F5iBy1nKOL$Bv0d(j^Fs#`VbTjdW4BxgSV(+`U_ zO;aOo5e-hXV#YX0io4SYJswYok**ZwxxUP-#VeN-8;>_sG+f zB$s}1%V4Qyb)_=OuCB%br3D6*^^u4-%=kf5sN`Z)OY`Pq1ErxgB_f&me#JKpEX}^3 z>-a#G7Jk3V_b7i^Q*v3aOSViHJwa_n1u_XWyf)_|eg1s&(rzyu^N6^A(`Dbj)O)|?AL72b$A8|rBYA9@xc`OU_0LbabC!tv zM_py|(+{41y0|~0Z}8{)U#*++G5$>^u0HVbw+F5j*Y&sTnK-y@?y6J7*OzF*$>f;o zn&0%b#^aYBpSSlIqHv3Y3CtNPxc6}`3TXFq zC>o79WTbe)MAMNd7xsoyah+4dX5gpVD$O=8&p;!Ilwv0saJ&wT%!OdRsXD!02UN|{ zPLa?xf(%7D8wdF)9;Uk;@P&j8Qj8LCMFYOVPE%Ac=tLzUaTITkN?>s&^97L-&rQngipN#_e;>Rsx+m0UD|=rCy@J4Lb1D&M)^@7}-TrrrJi zd`I>~a#!~y3(ot=mWi(BD==r43(J{V9x@~us-^Aw-v<5I`-AQsM_*?r&vaOBy)!yp zWw0{wiC8Sk#c^~&>SA29h4nKW4OR}`IPLX&W1tTQDI+?9YaluAY&wcmLW@)vo1L5y zUNmjv;Bji9ogP8b5>{>oSUJ!cLr^#jsoDI;*4Cu+ACVWm#*0)57wxBfBx-4}m?TdS zr+9*xf29XRAu6b3Yh1EmG@4phsNK=I$T~2c&4x1YwB^jyXTU zM0~CJiyjoRVw{`gCci#?!b79g@)Y_8C%D_KnnRC6k3)|`k3)|` zk3)|`k3)|`kN>j|HLl1-$-$=H=X~N374b486)=eHaEXfzROeciwpv#ybtT~9r|Y7c z9f$S#Mq1K!yD)pv=okfiSp56+w`*SLwQA;k4Sru2&Aeo_bE|#*7osM3ECXpUD)|CP z*&;7ka?CF^ z$1Gc+_Vua-LSWsdhhP=M$Js~|Is@p;8}YYW1(eAf4K}8dgP=&r5=n$Y(O8_0!}=cr z)&D4k+H#{lmnJt}a;<}T;#3hgRBbR)UW(8scm|bAIU>G>YN}=Hv?2EvQ+9M|GPt;Z z&AO%w6qhz%))cU=PlUX2wuPyVdi@iy<(6EfT?90dCcuqxbwynwS~Rbhx!0jM2d`_(}$)(5F|+i6EI zSnH-}oP3`M_F<(Odal-Op)Igd#~t^^DR(W6UgLJd6aiHqa#ew(!Bm=}F<=h}Duk8> zI+LBnIK3=+|Bw~$RT4+5;A2oYQxAYVBdFJja)mG(E>CWIy7bd+XYRpA3dslmb^Ln^ z6OFXV$>rU@yyTy9520U{&VZfjEG)ly>~)91?T0OgWxa%#Cm%U@$B=)Q+*rf~LP~gRDnM6@$FpNL~^)yJEo@&Mc4u*G0 zGlydY**Dm*0tnX3CS*@hlzt=-lcidm1t_Xtm29y#T-xJ>M^yUc?^SL?W>X`#60}cM zketxA0MZUE73kzpD8Ev5s92J`W%rZc&7WdZWY|)3Fi}Z4VcZapa-<&KlQ~YT=;XJC zu-EQVM4kJL+(!`7ewbNTS|HCZNb9StXMnup}boXPNThD{}EKj||$AXdUR zp{dOR{`>zU<`pYne5o_$wWZ0G%ih{{(;}}*k|foKXj6>?ifdZzEQeU(nY{!`0uV-2 zL0ISWB{(R03X@xMX>=3)-(Nk~HqF@DtxE?Z{u0f#N&Bvb{lCr-b>ALVb^tm+#lH#C z2xNIsG{eq?wSpki0n=Cn8DSVdPhm+c8Q~ia{Zxnny#+a;T;F`e-t%uZbyf4oI1g{d zDl;Vke57KleEyg`-=}=N`UtrqIr7-M8?T6D=}JnQSJHq4{eTLsY%w9qy@9MVp9mwH zJ&HuN(y;f`^C$%$@rI~iWB#M}Kaw*)VTKI&VyOC@?VymWubY7yDM2cHSVx=&OEs&L z`xab!;T?U)l&GWxwPEip1}QP41ZNm54*jWK3ui8WAnkxoi;Lym%|K~(wuke!FdXj< z;iaV`v!WhG5Ts7_L9`f}fg%LAfd*3E;xq(&b2)FUS#$|P0S26U)64m_jo@#-E)r@* zb#x6*Ocp?56CkN5eIfdl*iOjqg|!P*eFzZ$Xcs2n0GCK0+z!HScWtLd)2oxOtvUCU zB`+*5GHGs**u^d8v72O1#R^J2dQ?Vusys~h3YYf|Vy?*?~ zFLoEr&gWl-#32W~jn*U2{_6y|U9}D=ymi@o9NgX!Ky^@yVkpD^{Tt}{X`2w{Hn`2j_A?x7?e?ZGYqm^8v*O?%&`|foztGj3dltIBM@?00e77b)*^~_F@0_AG;Ok5- zrU{z9IypAVvGG=`zlG(aoCrIj+5*A|j63k5dL9@MAt9smWBHHvcO)OC#>9GWYE(P1 z+B(Fj8Wwi#OSQ&893ZKCTu^vbRKr+OC5 z>?Ka#)h+1q4z<<8?e+bJXT3dh6rKd4KwAkObFQpI1!g7q{_gr1RSSvE_Mh}aeNimO zxL_eF+!lM>=!57JPr&<|mz3cqduOtAfpLNMLxb8n#B6s^_Ss%8kdiMV2_^!{o&mNS z<-A;Lc_I*C3Ic=fNq)9yQXgT(+bR)xKJ!Or>lCtE2*-{uDa?o^VvwlimI#I=*u!3i7X3 zyzZ%;-8*y=b8#3}%Nd3^lAsKqjk?07)8PXT|tgXpsOK3Vwwp zb@Z3#cKigi`9zIl3l=M2uxj#_!%)NCL!j+5zo6rv29X-eH@Mw5j6&N{xEn|R)xF){ zvo<-S&T!=^cXZF&fj#dbIj7fvBxc5kVlC3UP36)0n7i6Zn0(%d^r0X>z(aUDt$3JB zRS!F>+(sIC5@d|3K?ru2)2N%dpu>wEtd{+Z--$ABlrso5LiNz70KTr#LtoNt9u({l zkoeE!+sUI}*!RRkiaAf}H5NRRW>7ix_Nk6)U}urwe2kn&Ny*fEbIsH`XrJa}V+_a~ zW+wqF1&0+-f(1ejZ*F)o8UL_np%+4K2bGR0r0VBX~wu= z!G?v8sJPMGmmJ!2%xdZ#OEKw2;}pg_t6?HsV&c_KSXn@7KNoGEJVvek+@Gu{CGP(8 zyk9bNg88p@vMJvv<}bMV0L`vlEC+nX6c%OaD9rztJ{2-#i(4;QrS;P9>R(=>c`#}0 z{_cZ;!<#eUT`18-bJ4gr&LH|ckQ6NjV|0^ri1NUtAN7h4n+~MjoVPo$jR4&s-a{vX&ct3%IrN=FSw0&_a z2D@b{HOadb+k7A5=kF?03qKxB27dT?z7>)`lkcZfRg(DbGTncg(M zvGvL3Z&wICM;_uF6*aLxnjH0tVOE!x*VJY!LL%|V^LCD`**uD}SVjLWlsCf9i#r?} zLvwxlyo^#zI`mpJ=YdMUlp`eQi!LS<^%>y!O;I4>4?YH@C*dLS2{@MHq-9+!Ud^;H zAu0oGt}0a}`rADlaF{70bmi;NtiGIjA~|^7)Nl9JinTjabH+DW#OqQzOF%Ek zSfp4TDN!zvUY#j>LH@<(9rgK?`=0F6+44hAB;P#ZvQIYOFXVkC(lPrKmIwJnMWFO4 z6MIQ-T&^}xs;kY*-U7qjcJ=1p{LYm1LVT!lJhRa}nLPf>J(n#_sAjOU;c6raT}~Y? zg&hlFf=xFOu`|5y|FQQS@J-bH|7n@Boq#xSBMx%eQ9;t=T0+w{0B&vzu3ORh;u_3`)o%?n=FyId}p z`>xM;f8K9dioqnzG6sN(Aw89LAyj&JDb+P_zaP6y^)9l1TAsV7oNY*Y-JnNt5`4Q; zqidJh{^{m2K|X3+&(!r{azLLJzQ(u<~h3!gDq;T$d@L;`{wpl3lEHI#r-M|LWe z2he-GbyP8g)IeI5w}Y3v)9Yt`&i;1JfE~@4SL)VwO?rOqzpwwSfG=BXu-7?JH7xE0 z^-0j`Aj^G6OtvG39aFH>Wi*uSvpFuF}-9Uj24d+ z5d}E|WON6d(MY=}Cq&sFVuP<*46Dtqo` zJwme>vc#o@VnYilCk;S|n9+l{Ig(S0BbcNK_Sx?bzF_k0g9rBQeXh7iyDYbyF#3{p z2Wwe?raI>gAs%jM4vPK+Zr~X*c#e>2FFmpIc-O&;5B=wFztV(WTT#m@!!4nhX(mwF zR+pp3=L0br4H|y4Pi*yx0qoJ!6xOt)m?R~$aoNv@;=C*)F-Vp*#-cH{efiUaC(amk z_FxK`-yXumn!~wIaYBx4rBANKoiT!^j+bn|peGh?SUKmtofc|5jwiYnPJ8Y2 z`4f-Q%yUK212-6|q*f%o)-GZ_94u$e0AkB0ET{*(tF%xoCv)&r*A+MYw#B&jOf4)= zQF)4R4sR3=4Ka2I*OOpOygDk^K&S|GmpA@<_xd$kR_?T;k^85*PP+B`AIF(XS3y^y zH!aR+I3QpZ-QMCl>K@H%;-}&dWdW^@?h@n0$LqhkcDbPMRa=jAYX#C6svm<8*kLO5 zZdM*fIBZ1vKujO1FB}es`@cMU(Wo8;rJn6-GPb_|*2>jd)h$KQwK<9>u(~-MY=`Ja z>Y}b_Sdb!&Rdt}T^A7^wT0TC0{exRp?$p26rrPJaZj_nvcU@u2$7JGhXXON7;PA@P z7Ab^s1)_`|6*2u3gdH&Xj@$n2xhFKVWf_{(~lFLZrB`m^9ccixl#^Kx~esK*YC1_~WqQc6IYw>m0k znTBeMbo`#nYhgQrp!}=(eCY0mj|>a=S51iaSVbCe)yf?qY=ksQqjGw+I-mbm^Gx%*M`ObGpKH$`|@bOznS6y1EwKi?& z+7!HdxA`MRYM3KHZ)KC>Gko4!-}KVCtu}OpcHZ>Mi9;P)msP|H6v8iPi9>2WrA7#} z5ZQfouXM?;a4$bG%$`4SXM^w5yCPEnmkfsmxf96@A}%VxAz_kqBmd&S+fMAsMEy$F zsw2+(YR;GaDsn9`tnZ=crwH*j)N7${W+0Y|s)sB~EI8;8x%P-1Qs!-RqgI|pq_aHf zunH%u1*XJ7vA zB}H&fj8&OX?VeG`$P~eBb(dxZyMfU0L}kdint-CSbhGl6F8%t?zdP-LF4f}SBV}2% zkH>(5yxd@i_%N}v(AtqX1-v}sXJ!OpF&QU;XNI~bYZypIOt%m9YhnyYT?vA|U5tZS0t`L44UHMH9&mx!OV?aJ z<>J}D_35oUeZ4DSJ@3aM%dhEinG}Pigfa+uMZmwe3~!~iR@DooQX9MKEnly>>x5vw zSCr$CF-F!?jlE$|$wnzZE9^) z7L$3ZMWwRLTOX$iXwtv!Q})<(=NZp*(Cfd|b)or~_eXdR(sB{)ONtu zW`8Ie5!rS%33Tb5?(ME!roTM0`e#v>8y3s*ZqKw?vX7L;u_FmFR40agVvC4tfJmWb zj#xmj813IKrfUy=cY}NQ|C;JZcfg}uAMBm3XOFdvd;Y;eWy`+h1lV#N8I@8tfErrd zg~~%<_U2Ghp0VN@#%L^qFJZ9^9M7l{n+RHn1xEr3Y0o05&E{rwuz<_O7}3R~=8%X$ zJV8Lh88T|w+xxE^G*_G)4g*qQo0;$fD4T~^|a7DPddn%W(!zD4D1FYR3E6bVT;^u(p7dqWAv(pbF zoUuiUXN75@0pa|qXaRtVNkG&fRYWxVf}xJr2B7UF7i!?Ddk{|B)HP`9>*;GhS(a~y za|uhLO%{a!!|=!?!-#dTc6c{R3CZrPfNotquIy|{CX%wqH$!){@{V|C1R78AX@&=j z+dY*=MhL(^Z66W5Hp@vg(QTwa4;7KMa}oVGxH z)De<|xWl2yisyfunzJiARVh z>Z1{FTucU{K5YpTyn3i5V_9M8vfs^b&K$JI|MB%eEA7-r_gPo}<*y$6`Ux(L=y--r z8_l{IQ>H!{2Eyw&RkAIBISvNP6%6^TYsh|^k33~$>HN-l)mzRe*r=iEP;^0V`Ib=z zFib@BC%kP^N!43uy;59nO0t=;;5sg4t{gu1a`ibM9(+tw|NnMv`)6JCD=t2zdh98x z!CQ{(I4j7ZPA5mD$2}%PHpWHYs}sW<=g8{B!2gDbU!()9XK2h znJS|LpoJaxS&bYYqc|n|6Br{>+EzBBBd3XM*jwBF&BI@<>xmKmdDq6DPxx}AZGu*2&wv69 zP#^~(F-NEs!bELqV|w#zbxV&t^Ps-vA_(%)@c-`GXGrHE+rxWk_*iz#U&V0_NN8Ln zK6}nCp~j31%>I*qLzmn0I$UmW@wWZZ4AlRMz0j?ldCzwA{!7HunS8~;X#esV658MQ zX8gJ7Z{P=XFJUj>$$l5vzD%~>5rrS?zq`(ub&vPN$|6DOCT@C_mn%IeU8(z`YtKt> z9R13JQvRI1gE0rhn*??f!Dm36p+Lw%O-)s-gMHCu+OzSkSBK5ghzxaGNxydB?m z-FfJ-|1s6PsD;*2lQHD*E4xwN7)CyP@!W9j}sqnKiy|{qU33}DqGz=Jz z$QGnkK%5CI&#}G6nNXqop=;}CjYT(S>>2@?|jbYFRR^lT?3PhqpUf?d(|Wb zIe_{rMxT?kz@!_FU8$5~EA_U1>^lED=kEv2xwd4BjKkU%6PhGBkrYBOadVyVgczpg z43akFV!R)!fy4mR*z!^YaW<-@{TL%?@K$p!Np=%mns(NsoUaVLC+eR^^InE>y~Urp z-my0yed`f7X$>+H=gO(0G1GDwe@;Ej^a2OI(N=oH{M@y)@6S)4TQgY;A*`=+QiT$O8D{QyJnEMqpyq{jo~-`ZE4J4; z>3-?o|N69hce&z88cbZ#LnYa20VF`hkcQ-=S#_EnQ)AU7Lu@7oom2QXecfembnSd} zKmFgOJbzKl%(kvg%>MVRe&{T6WNw}-(vAF!-UZU)0TJ}M;#t*~-Y5gM{267y6}n%$ zHns+Dt6Kj+Pq2#lOufCK`O_V9kCC4m%t0yIx1$}9;BU629B>$lL)P$-}O@Eo{(@LE#^{L;s@XV{JU%R=~u%|+! z-Q}ohjJg~(T65z}n}wbNr!ywBHa2-1Szo=U0R&yKt4OT#%o9U|zL|<56Fj)Kjj4~8 zZaZdTpV9y0^N%id?)KhtarNF(?&H#)J+tkRG8xF11 zRiu7SMZa0_YEjijXH%nhieW|>s*R}+Ki+cK+DZyM8`!63E3{XRhNB6Q+GH9bH$&mG z83x7NDDoy3h%@gT;G$;s4{ig@~;y|%soTp*!G5sdShF}rsvi4 z^k#{YbLvBToI~TJfsEgxBd*k{ANv+~3BT*AmV8En*a%PJ4hWCjFY zP=RNNWtFrcT*6=h{?}-j7f_%#8*fVpt%FY;KJ7gBg1*E5VuQ6(w^QncBQ}mp%$%#S zWEUqQWGvu!#A=*~yFj4IioGOTxl`)2D)ZFeE}#T zS!1_kvnbvji?QwZ-@10lp_`+92K{N>c5v!F|5uK{jBB-`HU--%Tbhfwf?U902gQQj zGDntJuxlw)u-iS~q^DD>Ck{y+`TZ`-FZul8LTN@D?`!50vMAEp0V66}XcA-zLiUK! zJYnbE0Wp%05}l}ofJ>Ml3xWS8RRsnEU&j-6MvT12z!W#YS`Yvz8&XFfP(zF2GB|dC zBjPat3{W{JzHLVPY&!w!a4wi5T^C+`M^CtqhNN5rj@!BYfXm7mmW02?`{ zlg+EvCUgV&&2HqU`fwmG)38=&4d-;?ro|19W^yYJXCSJvLPNP$v+QMPs%7eHOGi(l z6K{vQ2iu^_WfN(+b#k~T<1i!q=>Z2(B=stJhz{I*Lsot?@w&~HzSM`FcqQh;bdqhX zeIFbFyaW4+pVtz;Ocrk++7B~^3`^yrTIu`0XtdwZ)C)gt`g#AiukOD67<=xxDm=p) zi~tMrB_lMkm{aLsSG|eR|D~2dpg44)Ry=*iaE(?Ro~r)&(%T1yCuz+?CAA_rqh3K4 zBd9G)Ul4|;#vSgy)VnjI87q#X@lrb=p~mv+q29YJR3WuUyMg z=X6%Pl>s|Cs{(Y8m&x+a!pOsc7?@9P;6fvnH1)0e0}9^LUaN-|yvJQr8=D6#b2y$= z#W=JdKJE4sP=bsTTEs*~Q#+fK%C0EEOr=*))eu(1=HC*fPavn>10y;W6FnNq9#b$7a2Qd zUo>SjSaS7Sq=Motnv{&!X&@$dPyKl7=!x47{0G@zlNX@E!1u5OIXA`(fB3{!4lAK! zN_!gd^A%we%27D+1R2YY)ZjEXpZ{Fr5i91c?!WW@F^FWPZjaRX!;j!@n?T3e#j1yH zjW!4Ug6y~WeDF}rb)wvgr12QO`om;$$a-n$u)m0ZvPWvBZSdyLyROvA*Q$wVay=6* z^~k9#3k>8m5yO~V(J-h)keZErt1ps>%f@&jz}g9joNsqG^2ixz&j7P+{HfoX9<1&a zPMT4v_3_8`KmKr=%2Fx^8HvqzS&XzM+7L;IsIlDGIVaoXYHmg2h>8fA0U#X-G)A#a z6=yZM+QW#X7vvBi7N4P$oO0F`d&ici|FpV&+Gj?k*3D>Hv}qStJ}!i~4p0%&B#8@< z3xUL2s*|Bm=d`2{l3FA&00EFHGb&8LDP^n6jf;NAoqpQ&u$c8e8f0{8#NPKke%EU! z<-xZ|;K3gah!9^fSRqE!1Qb-!jEES`6*3mYO;sC-E{Fh|o*ZCN9LMHt!n-)yV}MI| zM4_b?zzQrrhcQ=6VkiKGZRDf7Ju>kn!yUKv>DxOJiPV!4O+K-ez~8lS@#X>xLg^;anAFruoa1h|cdzb}7zUigm{M&s zc&C(}#u$^j;``TsJuC3Os&AG780I(!@wLfl#swKdAef93fS=b}2uu(HI+&6aGWEPc z4{B)}!2vPjY(az>?BU%=nOuA}ilUXM!{A%|HF`OHQGf6wsmIzHJFAJqH2PJ5;9 zUd%gQteC119x{2Wrg`nS^f?+0q3&7&~xHCeve_u-)Pio|)!DVjIXgVQ4t^d>256919q^82Kgo%+@d7afx- zy}#qMor0Z0`F8=rQ4eEilsgf2s!>jgZjYpAJ!GW1IhPGwB$)77g8>7tf{e+?FxbA$ z!aGsNAeJWljWVEkUQ|(zesJ9#e?(v2Cw2I_Gbf67+^K;iDMthf|LurVF3?_+fnv-a z1g^kBi-&O%CR5`@59DNcJPhF1 zX8OcdDC(a9ix~=%)HyRt)#Y>gt_d&h7`Xr6NyQRZfdf*LmRRn(e#@?;(ej9yOa$Rf zja!Bj!&1G|ft`CWC2}y+1!GsF+Q1?wBd%%=ajVQi#s6j$Q-|o1zYPVWK`zdV->QOn z39r{!x1u248Vw?l9h)8kCOOW9#G8Yhiw`#H`JgwKO9>7a7|^cn2eb<#rDlh$u1ha6 z_NO%vht~|vI~8x|JoNL3ZxeZ@@C5ko7z|G}s>s`)#hPHc_m|;7 zYW+=Gjd^e?(ERiL0~?R(iO310k8_C|vJoG~%G0-aEXgS&Vupgj9c%`f5^Yk%)7U^I z9i@e02K@mGhJu7euT%s_%L!vsT#<4d;T5HTRJdMCDjZ9C5Yvj$^L2a}uhFazQXY;- zCl7PHua>LjxdgBZ;kWrHlD(Cpk^R%ht%M{5wc|f7dw?C1df~344_$V|{E{P}JDAdE zYz{|#bb4fg6baBqD=%m}KDBJW*R2=&hLoJKFN_$%M>9VMT1-V35a|TE03i5aEQ%N! zAClq-L2aySYGlkD6h@2Ktw9yxge!o4O`{vkXylE$BalvyOMYa&qZ)sN)iM|}@4&(A zlf-#|0(VNO2;g+=>lqK^jTx$dWZJi9e2P5ezn6+XGIekDtw#tMy0E!bRKkSw#q~7_&yZ*DI3Q$uLnmh|y zHAstQ))IsAC}bjWd`SC5)<{}@k^xUjY= z4`V5$=H1MeFV0<|v!qr&f5Drb^B9ddBx59fpX-F;TY~`ucky0TCmZoc1Mol+8`{3{ zTrlh8;luti2FFpUi`y3dV!ZbhE#PIod#qIVDXgJoN99_m3@INQ4J7BN(9kcUszLWu zY?UK+2pfXdW)q=zRSURteSt8-$mCj=+zrRv_JQ_II6 zcG&Jm9Fd=r%GFFUV9k^U!Y2YDF`@$N3ywPWy&L9kd#J~}Nk^wvPr7vC4-by1$a^rk z{M!sfPLc_+S{A}$h7BHKqB%BOBcc$rqqBfzqh}r&F1GZcA{QY>dsm*y2501F#$}Vi zDTMqU#Au0FRCe#Gqwr@1>w0#o}j5ml8q7(Y?N}9kQw6OFS5pd-LUREoZ_WI&!Js;gM3WgiHj5oiGeMkH z3_uVt6Zbdfm?f-d`I*=M6nd-Q;6HuxJvQ~@9XGBycxyX3vZ5#!ydVXX%TYt+FSXL} zic@STu+I4$>OzEr4ya#u`qpCygf#Bkx_jY$8owB}dugAmC%-aSBuz{|ryhpIhNb#* zbo(;-zIiHhgx-hR&@!pse|{GlxygOa)cD+D4YQ|Q8aaCZyQ!Yz$RgL9SJC}-hpC>E z`h0b}?xxWm{WR`R>(#HscC65qcRj6_Nn@*i(e~1MZvBdUU!Nk!wc2r9p6&_WTX6p~ zH-B{11^4#LJdeq#MHhYX#T(%@8U{ttA~loC-OwC#dS&pavB*4KE{y0*PE4@j7?GdX zW7RgQW5g0ZNO~e&%yVO_cAhmDfSxxSSw$d42xFj=y+}c<5n@AaUmrVB*a6$7Lgz{i z`r$##6K8&3a#%hygJK#Q5`tG!7Uid*O5>Tx5H>LkFf=(sNfZRtAesnqCO)5RA}4!g z{03-nf_HQp9Y zhA`xPq3CVvjLTxHJ3<@_fYoF$w#vLssjgv9YK5*Y zHR8MaqhsT5>_K8R%h{}~t`F{jcm-_96jvabYEmRq?feMyIZQJ(Sq(o;@{j-%L2JsG8%@Ocs@KMM#Sz%5Zn(q!6a1R_}7o zpvFO4$~Tg_cQYwDIkE2$Gnd<&=X@ezoB$V+{32V*#P2cavGoPP{_3a<-433(W<(N@ z+dd?|hPA-6_7TkUdj7C?o4&nb!h=m{lyD<>1wnA&r~oR-g49j*~zvR6?xN4pS4zniAiKD)EuP1uiu;7-f??beLqaE9{9z=??@rmI3Bt?H=E z1wBE+8=b=;-c1lpYVqkmdudB>@P9AgGc&d9x#p3d>~7Y;Yf+Qf1fq*si1T*3|LAIW=YDwc*wWV>a+R`}Ia-?yXKTR5^LN_}VyXE0CPj`>iSkWvY#P*tl zaW5|iethbTU0>L%x%1BaCMBj14)`L(ZQMN-rKB~o>1tj|eRk`~ zC8r`(zAypd^@;~>8hAToOK#8uJn{VIr@q!aKuhIQ+ zHn2bS<5hD`@xMmptT(HZ=6X*wo}e;ZWm<(BVhNCzCo0d+gFU*Y5y(ng@^sG za}QPM0;wy;o_Qd5MuEhgx^~c@hnk8&M(~Oh7-Z@Pt$ZCXizt0e3}ZJTpisCCVUBl) zIRSF39Pe)91a})25GWRCgnC4Xp`zL3jA`qFy}^rJp=(Xex^kxbyqRb9Fs`f+3-1l$ zGo@0Ly%&_Cf~gyChzy<-`AU@nFQ){_Rqa5ux=3Imi`nK91~bnmBdtJQDhBuv(y*p2 zujbsy4NM{VygYZv#5W0{?!sV(%+0x~9gHD~Aek<)1z2FQ4VKNQLs&i=em3%y6c$cX z#0HE2!(_A?jw#Y|cv;Lz+v|DsZEQBDj_%Bc78Sb2Fxm1JhG$GOL}6Z*Z<-vWA8Upd|#W6;nV=TOD#0XW4LUH|NG)OWK6IfnnND+1lwwB>xTiBQsindZ|W*emD9gzTwaWYj1 zCIh%U0~3=(zqmk(i&^;a5lK7HW1NV*2h_~0a9+TB9yW?-+unke^GLP z6(vUwvbs?dT%ePV78h06AV<@z*wjadkOf`N84bsz5Y&JqG!raEvMUCVTFu-VV*$Z1 z^rr(QTjFfHGLBG9WX$TnxV`n73I7@NR~5gl)P+;qN56UgW9dV*g0g6~M)FHm%v>OZ zt2&zmETS0X&O3bRm+pu9_jaT-oZ38TSC54=YDG$@wazqFk+P-^95AU*f{c1YOOuZi z+6ytUXg`Zc>WQskoBnfJa$lavW%p=bx-_cg@d^Rn7(Xd*E`&s`ba-z2RUdhJ&3Ca#d)tF_<8@GDAwVu^oaxfy2>GVC!assm6uQhX((iwU$(v z!ZwXp6fe|99g37$)-Su6k;sYO+bETq$LV{8U7Bi?c=W--M`P4--i9S zWox3TMPkjhUwrmYt&D=5@E@ree;HeSv>}Fz29)J@w2q(%Z&q&*1Ka-$V&F>M{M0UM zj(;>Yv_M^EZANoP!Lx3S$3(x>B7ymzXcs~j6N^9BuAL zgMWjs$9;4V+0y+(Rrh?Ko^e)K zGPQ#H3od2w7pufo*5+XU{z<@KIL{}iYD4=3hkQU$*NUp@%t5WSZBM299rbQSpdml;LYl)PHDlJ$a10Sa$c!1pD#Ox3kwa#AHJj_VV@evg zkCYXnAm;7K>Bp?@=Na%vCnb~}FIOUUL2AT)%PK#A;Sep{5o5@hWt^B`46S0K3TkPP zVbOk;um8a4s`o1BNSL>IA=*B0(@rHm>4m8mtZNpX``MzB?Z-OjggPfFpLGfH0x6PL zJ*(ymSDnU~v8cGKwn>!Z3Pm)=Kn^s*NMi5%J+k5Gp+YZ?^OI7K-Eq*%(++lME_HfH z=;68_qrOduD_Fa*j!RS)tD`b{{8t?z)RTS$d3&vM${0y)F84u4kg)W#b%ul!;#(+ zaBdj|6l>l!7<=v^Tq6}K4HSU{>GM7=iE%`Dr3_Z&qTKrLw|?VCquv|x$L9ghPrY!m zxbx+)q%JqmnhBIykZ8Fh5^#W!1ktcXgha@D$Vz}By0khfUzT4)#+k7p#dthTbyR66 z*FiXaqv^4p5SCWxE>0~^H-2^EGpFWtWiDYb(Pl@XD`GqT?Bd7Yjx4%cGi%x{JTJ>R6zmB)kN&_QLFRR*XJSz6nOK#2CX@9K zJ^}DCbq~I@U-$dv_uwm1_kOf|@0|u8tcht+c0*)va7o0H9hKSOr_9Aq?>FV9;aaGa zcOQ@t)b!-ZDRZIsqn9R1>a9&nzN#pE|I1R1&%VFk#{Cv)IP~4Q7vSt8|E<*}w)~$I z@wp~7Wyz~=rhn;B4cw9|`ND2zu?y%4*LM=R^xkow1%prFFr*_>9a_zn49$lL{<*=Fy<{0OeodZDu z14KJP^yr;}zfCk_#X`m>wt_K$V915!MAeUQ%feAb?(?ZrOy&V=BxE$QzXH|1 zDh44K2n;b0++<0);OynGyA~P-kJbJCQohD2rk6q{^|h(>=TrtS9Ocj$roeAO00Pda zEQ=u_OEGB+B*U@egm8$J@~6^=A8onK@3?GO-(IrID|IVU-=5*#xa-*lt-OnkLuO?{ zRAIwepayg#s-=!tREi`@_k~uZM%eCq?H?P)Y2lkm(QXwQK8$IB6bjXgV!+)}7ZzgW zq<2=OPW$}oc^_P0Ri!8M3hWsx@~NFdERmGOI0OyIItG6dXN-N|mX-f*3-3JqubSIi zmD**+@xN}os~B0bHYtYD+&x)xb9rRRyH#k}QMaY)C*RS0+0OM^x2lH)j0VCvSS^}_ z5bOFsCyXvWq)6D%OWZiujMqsPTS1JeLj8DW%rQs<9Z<#~E`CgfM44#Q#) z9_McpA=4x?`fLYg+XGVQ{e|0})cwskS9&Mxm(vOFO{M>_VHf}G$F$<$#cGW8HK1@S zB*fNEL_~^ZNe~e!G6id#l+2MDDqMmwQQ?{ZVxYq&P>+~JY?*pw8;{kUDA7gv{`38* z=KaqPt#TQ((xXt`S|>&7gbpug#Gr`^hxte@q&g(DM`gCzwX(@Mem2*aUi(AUchdEK z*8&qmX|RvAsWqzyU0&J$;QZJNP14|e6{u||BtNvCH6X?la!Nqgj``E#Au>O|2el*ml$fF0FZ%vE>%gz@s!UfLCHWVnQU~NJPVuA4RZH zsLYQ3M0uUkC*CJgi$6*q*!JdaJqCUtUN=O(j#sE^S!jhcB`q=4U>eY9SQ1_`<`E8L zYd&d~Sc}P~=S$y{Det#Wzdml+(VFH0CSsPOE#Sd1*7yP;R@Iph;{aQo0!3)*x`LUh z)+@g)kg_iQrk+mSe%vwpCFdk z<3J!ZC8YRK-L4}83}q|{xs#^}0LWJY{~!j6z}a5T-JP;=@u&7o>ax4$@BG4f=c`6n zuRy?RRk=K?!{Ls*L?M95xB<*%l;VzfJQ)@Pa6BuIu6*vLkJ4vTx4v%*&;FJ|QSYuO z=hsA_q!LwdD*wg{R)&Py0(JF{K!8g&<9BHKQIB^s`C@w}U5r@)@g!9pMZOeb>du@% z+5K_g7l9r (st?$RdbZy~1dFTqrWb-CM-pO6^%ue;=YAKlXT>Gt8Fx!XF` z_0+FA)qeOdZUGv`V^86T1w%_5NzbL^4?8Cw{MH4U{yC^r>>r)+KGBx6m{uO!NmQquRM(+w0qSE3)lEulLWrLoe(NIKN2^KS|u7m{r=tS5i zMG{oduSDQCf<1F?-aVBi-)hY$G-ZO3_{$Ah?Iv`s-1kwY_4&_)uilwGUe|l>5~JrOhqG2(IZh>2f+(ULz(B83fLh-AM&3eX2qCxK+IHnhO9zEBnUN*C=5CAqj+au) zM&Etsm2Y`VUgK!c+vlqGNbMq6D0l&&t64nR%)5Ej+odw5zLc6Ye?Zgn&9gPVf;zXa z8sg+gEX#lrOl}{xJo1C0K1D$yR&&J9p9@73sA5Ev*)bnZZG>Xi-Y58YId%A;iEH9JRFn7X6)vpW zr7h%wuP5%q!37{`<+SCK$YS#$6($HU2zil-E)n_ug>mcS{b^0 zb(_m$M|hHa&jCW;g2#*9hkN(j&rt$qjvPLF<6w=o{r%LpS1{l2-uLnRU|f#IJD0HX z2pPgKhGu9ULJZ;da|wp=w+S-kaq)vE=vRQ?Y5@(BFvi6M#mypiO~R;@^&zXU4_U<* z@HK0A7SWuW@i{d`ReWp8SMhy6b=?6g9{B1IiZbjd4`s;crz1bNs>|HwkmA>`tE2&cK4H%2th%P(L3bU>X6VHZ|qdS z^I@K_I-ST?WB0wxcgG7))C@c1@1?F+8@W>VQR?=cHlFl(!dX_D2QrK#*A25isH@0% zg3@YxzxC(M1@WODrDp9jW|IBelXbbNyi5jx6B9IpfRPyB{UhvNyAWav$umIdt|Cpq z0hrgwYh`XBtzZM?F%c*}SVUHE=I}RMAO8Ej3~=F@QP<~*Hj_aR$~;i4+37386eRA9m2MOP9^7CTgRe2D5{(`lrF%%g);4?UYs{Wx{t z*O#yTee4G+%Sqb}tCA9+qB{Xe?#L7Hsvb#(vAa(Eu~{C2EhdWr$&a-`r^iK*#BBh5 zA@G}MDuPyI*XBfPgT7j|Lx()`76 z+m7>IJao;~eg8b;?$gxPJ(81-yN^EVWxbjWB6*VRIgDOJI`CmZo`=h(l_f^_IP1$t z6gwPKL?PA~;&@-hJ~?PY?ZXRh(;A zoo!Ane&)J6uAF^1IlQc*%qFQ5!x(6Zsz6*)TnINytx5EV=}=HVVLfD|;!;8+pQ@3C z7%I*-m=V`op|@FzK%xzjRl?)#nNLATSU}4!Jq?&d>T9Qmu#h4{E{P^?6wb)boZebw zaU1d`PY0en8yb0*_lMj*ZVHe<2@pwRfdJle48fs`nUiE1W@sAg?T*r>LIuj!ce^WZ_MC2zpg!*cA3Efewn;;HzI zeaP%WxALUJDoUG|x1`#x54}9Yyth`69i+;QQoO0!J#)I(U03HVLlL)9_eE+G^W|yh z981^!;u4AlW9t-j=yKHfe6Zqal=NEjPBiFcF(g78D+(dvY%uc8%H=0Fyfl>F>V^jk zZ|Q59YX1b%qb9$bt3oqQHQmy`U;XE(0jrk2e-i!N7peAJ$F`ia^ZvQUWKju%%`La{vO-K>gRAQ}NgcBk-BcH}>yc z5bxI1;pbkn+A_ONqk#?jI;S@-CIeBg9Bmd|BG{F(!GdeP;1GyXIzk~wARvqJI41g4 zCFmM_kN!`=tSkjnXm}MXDW;h zCcchu6%&M)kEfk98fQ`MY~w{IiL2I_`cRX7J8?ZO+&OoD95LnBk{jRFKlk_%eRKD( z?4P?;|L$*6zmEQ9l=1UMjaiQZ`h#jfe~<$D4K|{3nTy!ZV*GoccKK~;m)GCw_sAPE zIr4O#qngWjWAev==!OSh1Cx5_A-@>sA>Fu8l%sqLCQi{)ynnS9vlTOXMCgHGUj>+P zc6Q%BCp2-;PHJJPU5a$Hm;2ZNphEX!Dz>ICKlbKF^JWTCNgiz%`LGD7Fg_9G zTO>K2$W)G5U9K98@o+uwIQCP9yDk_++*NJ-w*RSaGOAaUnK1boiq~&mA4A{NoGie@-1g zF0}5heqE~BySUxrm7~BXiC85m>W)JE3=EDBdgW+B^e4nXLvxT56B+$*6EZ=wu^N{m<@wZ`eGqWQ3vShedcGYB6e!wifl`4PaV1G(%tut*farl`sNmi$ST;;l2a$dkq-Iw%40SDVkn}#LAf+CmY0i*vY`gcR{f~O@m%$_d$ATmkI$e6m z@nbiv+HkdolR`VWJ(p8Y17mFV0?U0gEJYv~4v$*NP{~;H-tKN@hqx+PEuu2ET0y*P z#-P!iJ66q6kv{FQU3P!N-t%H!6QiMU-!q3myO_5!ed|NgZCASe<*c|lZNk{=1<*bd z;_;|o0_(B_FdIDQQm6bry1wa8{aqWrAK9g~r1pf>60HJQr$`p(C&h@rvuC`P<_xbT zR!Maf6-{%Xe01O2Lc{5AG_1sK&F#cb-R(zw{6rpuUOzDP%h@m12m7X%?RR40rteS4 zhcHmaL#GolFj7@*Gvq7kqlt{0hURBGS`s}%A^`$lSchFr^_%tVDu*A|=qiU3B|RkE zweO1hd0OoXB2$jWMz~KBVzOgAG1RG`mbKJ5(N0*U-bM%8~OO*T4L zpH`6Dn5dFx$aYe&|6e(ElKYGq_dsv>V>Q6P!)_sF}{hOcPgSyQ2*YBuQ z9)G1~Vb1nnvoPgL=XAV%|5RLXu;J7La(;=rNN|#>d4GOtc+Ph6_@i^S>Q@6fPPbRR zwd)_cdOrG1_ZYKFHHaaH7H!$V=}O))v(K%sX#n7Mm;&6C;fJKfhWXF}RUNA*Xd&Q% z9@)aKj4kW}Du2$MsTp;xyYXcuOPsqRcdPA(4oeR-Jv6cAx?}Sn6PIAjJRcDk@Te3( z$SJza&AJC!)<#Ye*|4{^{hNosTBk%1o;SL*Nn}`hdB=cjCfzf#n+%FgihCLwy!CA9 zxswXr@boX&?Q-aQRTH$jLmo9{khKUg2rIe0;dUG`GV$ja*Y7h*@u267S&hfF1K+8C zjMfc|NDrGo?b5?NcNBWi>ew)2B9R9W?COZgCC7*vJzq!T!*B%2tuedtHP^1enrl=uwU^Os-yl@AQvIW3?2vN_MAhY zLbqFb*4QCqJ{?@GE9|ZtEV(uq4GJI;3kw84lL1RGF~M`1i7;z##8clhIgw8uoZJ4dABf! zydE2no*-i;brPPSf&Pg;OBCf%dQFsNF#u6{=<<;G@&pZ*?C0#Pl9V2&f4z;o=l*}% zd|Sp3RReNP=#R~{?<#xO@~PB~OmFyh%;mE>C*?Q2nl?5^l2T9I3pWy z$scE%^~>Y`*^$6irEahEh4-EF3vX%4&o(O<1XVeBQd*lUPgy7h4+DsD4}#}?=_e=D zto&_2pWdPu-z#mHKlg;``hCkTZ!AL0sKvwF16oEk8)KPrQfh+7^0*oG8E!^Q&&W*$ zhQ=Ra2aUI{IjsNAf688IcgS!e@M=H$DFAd8T{Teo2mO)o?C$u#ShA>Y+r`=xJ{OCFP{j9dA!-4X#=G8iYcQ2M7?-8b#7@z~-e zTXo;uH~s9wQI{NPe(?{82{yJxY9`TEbyB%1x3lgKsIEUGJ@*C6($D&twR%~Bj00np;vS(hnpDurduus;9{Ink?u35I zZT`%5XnNBz%RHyPJ4x$t8T=udQ!+3ay%A?Lp2#3N851Exm!%l43Muu+ADZ56_aobj{&G^uFo?A;0?WI50>iU{`Zc+h?!5V@;XkJeaQ$ESaML%9<3L_cZwp>q$uK z*MYg)RjTcteR4l{Vn3}Xd}Mm;s9AG8`>rc_eMbI`BOc~ZT2WIF%$ReM!3dafXOl~8 zLGgu*|3b=>9_i28#qDf$bvKmTYMWA)O9D zrPc{?j5M%gpiyStMR`+3adxgol0<}&6j(vlC;2!V|48+&<73OyJJHhAC8UKah{5|Y z84NoU1;Lw0?dmmdl5--TJCJzvv&r^gG8ia5!Z&2!+c)<(_3!#>+H&Uf!S(O-y=l`~ zB}UQ>bwWp-6ydWXs@2YL48>G604cC(C}TxePrglv1VW+=D%BM0 zYs4Q*z)B!@0?!vbGK>0pPKJ0iD65|VOwfaHKE5Y1yir8UjFW0%Y)C`Zu$^~AI(euD z^3_7+A|%a-oy|vMF#M%xWXwy4Ua3^}{Ksy1yMP2{4%fh4FBq&fd?%*8H$3fbKV+g- z3e)0p)WG=3{APomi?$@h2*O7A#5g~_-o;j{i|%`r?yA&HN`L?JHJ2RHRZ>RJWtcu~ zTIqK8r1WV`7mogE!ACtU=+ZzzX%h(N+Q&d32{v*M>$&WidM=DxWsBEyu^6=K-r;(# zN?ldDE%oCH^K;|1TqefYf>;ZA%w^`D8V<9pH6FoeRj)sjGbfWivgnL&@Ql|y6^C+QLs{Y7-SG#$%}?NcFSOqWUMh6X5~;P`2TN%}-x-dtZ40YQ`YMVxdl~pRLl31bPX7ORELH>GmRM2g`Cc{P;1;##u_0;$zcq{dVrI zZyvBuMVS^2o!+ojL-rKR7T8wHP@HJlH|>5e0F>?s7|jmeEPtVJMXJuX)snK-Gf;@afxy{ zD9}n>O&CT(fAQ~?h4<-}205w7Fx{v3aYMSI z;C1M8tV#DBc-{H?y>*aQEr3x;0VPFcY_BK9@*2yXZaVzE(N_;%tOcc3GS}GrZK8i3 zuKmVYfq0==r8!r&H#Z4_UU+%8(u&kfDnNmaK}*i$)WqlNo0nDYXzy3r-AYr?o$i0p z3)A0y=0aVr(^?#W0QQLFmlE~KP{;{SMYC=#|4f5kPDUCc>Per@PkF1sgawnFmg~Jk z7X5A0{Qdg-_4lg>v)+Il%WP`8@`z84x@y2^4REcUL&eT@t+K$e4V<1o%h!KR>+vu5 z@6&^?&NT{a(+7@w|ASQ*oTmy#6rXa*w3t!(%S8d@__2BQEmas0(hwsoqIF3uz+guQ zvC=S-<{&V)1v^&A=Se?y!0>JLkrk@vTl_}?xgwIAq>5SboS&&JsZ8T9$fOTN6BzBT zUX3gYEiNkR1a2L!d2G77KGJr|vl>0DG?uFzM-P4(3iP|A zmKMY_i5yas3!xR`I0zJHd&-DKO0V%>L>SIsf-*|5M%fO*pTGepjO_@f8W%br8vJ{v z9(wY&3AqHD58=TwRJBzEv>8jXK{T}fx&9}h{2ENTzQludU>VlcrH&lEIF)4>{ z#V*D981RN-(JoDdIe^QhI4?`BZ3#Z!CbcB^Xe=irjvfs}!EXugyXew~rVXR_ZYAVd z`<|ZL4`vkUC+hR*^`@nt-aPl>Yo3wwdkuXOU>jz&CNRK>^NERuWTG`HMOqzlE7Did z!d0s*Ozg2)lvhQw!OMo0=6zVg^s%keC^=g{pE--uzhQbgk zlCuNP<(qew+-e^5_^_VOz0=d1w$!}jm>klT3~I=!<;R7gs54~r&v0yoqPl6Kgo>Bs zwO#YO?;TRn`p~#Ry`Ob#N_OT z$7ki`Nw@@K;h`Euj>e;Mf)7Ey-AmUYPS3l8K{m{WG#QEjw}>*l802gv0`zZPs27w~ zVWmHundy7qsFs4^9T3Ad_No}RHlfyW>C0}te&8v0&(=yS*yBPZ&>ZcMWP_QLBCR3O z<7ui>#G)w5*Iq3mP83L0BIT*+aTaoV}ob+iM z#+c`H^kA|ck+YNP(3pJfc=-v4E#;94@agrzH~+chw3QX5VydcTpi_I*DEI71{=Lb|v1Y^(2Gj$}PCv#C-_BHADI8a zxq}WX(wAH2ewcIPv!-o9`(qL$S9s*P70O>hUl%=mP{HecKE0(|T7l!pcu22tS(A{(sfAtcZNAy^0Ia3SNWH-}4wE||Xa z{K z+3^8AkM4xicP8(jckp9WF=>fbIB$o{lZn_+!dLj!agxZBx99_q(UbQ(aWV$MYy^s*}vOY65J{{8#Mv;em_FMy&h2~YmgLUBTqHzY)SqF;(- zvM7MM;Q>3!OMpzs2)Q?Taf}5@AkYU2@M`OE)CxlEZje6K^Ng*@3xq;qJdUJ$;DZKz z7;q0lpg~698Cr%+%lR7-hP4V+^Ct`z2-8HvynqV(vgHm5p>_F!yB;<^KSa0d|B-Hx zHOS_tmtTJS#bYjCua*1JhlP1!R%BXL5`vjBYQ%^rOMYjkKO_?K8Xw^}2a(GuJQ0%; zu5QXlY~7ZR;6M_#Zq$m{Ajkk^Th;uNmmU9QZ{!E&rysF&{&Mj?PnDex%~2ttAa$3c zrWg#4^mz(d2LlNM{0+)0+UON&&+QhyX4OEi?VmnwB`~Sc`9A$>U71sXoc`j~zGt5L z;!PBxQ|3CC4Ws6%VU@n%5iU=2-hyY!P*FP=XB z#gyT*-KoHNN2$pT6-K;T0Qvwiqybtot4=f6TLd7>lz<1##W%4|AM2X#WO=U6F_V`` z*%{WHH1N6c!+9NZHXr=Zz@7el3C%=$^65>FJl6P0k8{xVj9HP8hu{LEM_ae6J{e}~ z88cpZL>Z~(iZWxPVI4;#FfECyXnLNJHmmF@NAb!B2d;cz^XR&J{un#cl@Iv_yqY{; zl~5}{$CW82v^krw05XX|<3bvt1y!tJQXv>SjFqqBWf74b60!>SR6MHMi*fbfQ3siq zhDQG2Z|<4{iRs=?xSf>#uuFdGp2nDldjJdx8JIAM`!JYo7D%Pt5kE=BxIGdiW!rP; zXM-gZ&X(>PoSg33^x_TngZUmu1sJnSYWIm@=!o&2`Yx@S+|j3`H-G7w)B2_w+6oCS zCkmIk+$3lM%6*VCnjVpX2BlpLl>Qt}O)nj=&%5lClsV>N)pIZh76@_+qsJ9$5)s8! z;Ng!y{*o1YAH??`@+VtTS`;M}x--(h7@s(@ZfUCI#GHCYle8DU!qb$5CMkn@=>u^O zR?19G-SZYmxvT}&?pO=x>&tOk=H;2`y*$mAynLq?{Tl7xZkA#2rS!RNV&KT{BzROKV`V)xE6gK;B?s?T8t-JvtAWx(aWAGx9s#dg|LstH1n3_w4j; z-ySwP@zQ8*AP0qRNM#1j&P$K|k!iel-n-;T5BXZVCvEMHuT??1im6+Tq`POiUQP6~ zn5-3F(5$*(_Hwoihbz67n!`1A`G4M-R)E8`-yddspPxSF_vPDP9Dj39;*(m^3k7P6 zd!)QzQMqkZxp7KoFT^P?O!p6c|MV?$;#z_3GAaQr)r2$>CV`S_0renjfqO(!=aiKyptILfbI&52RRTCOprB6Fc)1KL~6nXW` z0?R14H<+%p0FEw5W0bl59+)gjSsIc1rAJ6RBp}F=#jGm3n3aoxrJAtJ*O&8ID2rNeE;yUR;7P^1KiTCgTad zO%xPONn0`}5C#1x1T5X9m^o@$smxuusvV3Wi3*%uVoRNX>hKxfUMIvTKZB81u-F;9-96(w0o{%&gIh!1LI+M7{tO(dx&X}>tzED`n z`9?DOr3R)IR2k(s!VC{OV{ZfXpQ$+ti3lc`|a>7DQ-ebaO7qWCxst{>}tJJV%W)8g7P#IFs+z z^JdP4AivnDP~&A#DGALDv1|#sA5V$Q1;bTat=DkP#=9onH0UhDFZ&*+Wm7BMLO?cJ zDe#fDpSK5d|rPi!;r&u=qKA-#Y97y#HJOxQz8{MphZ z7D3kPli`LIw-22eFUOd_Hr>PrpEg`{sMbuNDk$PfISVjhqB6(>9`(J^8!66f(=CC9 z8*jMHscEbePDjKLjHab#@M6*W1|?nr36zkaQNmI@A^EGNju=AWmf`kam;QX*vkTv! z=P2Gl3{Z&1qY*T~P(=k1u**o-=@qDv(r@AV^s*oBnsDsBHhfBJKp>;o+>M$uW5s|Bj&mqvoZ;Cd>|z9kGNl&x%t#_G8{>%p3q_Q1AuRIk z?nX@5+s>L2;376~4*t|{O%GQ8cFuquFN?k@J=t{T#s|K*pTb{z26+LDV`h)6OBul= z<(p`V24ZCtdtht?K}-dc1eq{bIr=^@A7ddK!r9 ztGgxr%eoJkH|4`C)PYDYVPJSZ8EH)lazG65F+ols-zlpDQ>f^w6h9rAblr<@=nJZE za12j!9~LR3mW8)bjcPc^`w zwEm1Oz3}|rbd~w$30r1SK&7pREVE@I2#uB;1Yr%^$UB^k?k1M^IOpg`4tVwfNS(I^Y1odVRNhQI+0Lc`JzLmbLtxeBz9G2*77Byl# z1Yn76%<>iV2ucD*fP;<}Iy!CqSKmE%z<&n6KVV0D-r97>^@}gF^{>}hnN6KSIK&tM zVFne5nehPmy5k&m9>&ll$`K*i!A4+tX02g-CJwtB+zqU+jPm#j-MVzg^U+iK|3tMh z2KMPu-a?TP(CB%L;uM3yCkB#!(GwK{4KYLuKSK&6Ko%&cge0}fJ7=u^yJ2e9uOG%A zh_>Gn7*`kB-cOFt*b8rmHRJW10y^n=XB3gSU#Y5TzgV?j?DK;N-19>slocjG-xRS} zZDjvIvh|bCrAVM@pFX+U)hfeQ{l5D61G>VWJG9JBOYe8JhB%4(c&f7SeyZ}%u|`UL zZ6W_E-)&O_1>mg;veQ-d{?q5zUg)Rocg)(WZg}Cv zqZ0J-pU9wK$9dcK(S25N+P^2&0n;Df=%N%yQmFp=!q|V(J%)6^a zlB$>Ny^8bRJAj5ncT@e!iZc84wQqO-{x?P5Z!B`&)*{ERR?n#=es8h+rQ2s~$h1ec zD^%MSjj$noe`pWqi=qD`^Ie7RmGq+1&KY^+y5%K1EBTm54nQeFLPXi`hL)DNn1J|g z4eO=j$81uBtTfNY$P0*I!T*McU!*j5-G{Zbf8DETOZ)aiPI`!rrzPsi)0|05O%X#e zQ8rkCicqdjMj~Q}1J+w4IuU6X3Eru8(;9)2?U6Ur zm8abN%T6N>%eN=VsBDxXo!*43&|1q{We9QgtNY|NJqhJi>fTH1nzp?@#HNX{(#M5x zEF{L{Xp6zdp}&b#y$?&gb|i426Ju-_WvS)=v3Di#P1F6m9f;hB7pFH~h|;9zJdm!< zSlLyYG7!<2wb_=fO>2@BhA4O;9w?ruAR>aV3i^t-zNGqkqM)LpuOKR-zOM&fD2NL3 z|NM@mY1(Yvn8*A6mk*jHP178|<9j^c=V_sXm25p9q2h(!|A(trt~|NtmZw&lM3~!x zH)#m)d;stc0Gb>cph*+gCY%+pNHqgEMHNyICJxlJFTZlh+U_f2sz#7z6%8_!06&i> zfrE>(x7(hDKU#gs@F$NPH}K+I={Q1pVq8L81)c9;i1EstSh^hP~M7fz| zhniWYP}>{-_waq}12a2Z5@rr<`gnCwV|>-b>mnu%!(7t<`lFRTszU3ggk94L3dmd> zYtj{ip%5dLq|$^q4)Fd4X_D#o!CTQc=ilF_v-E?kIXCyo>V`Rci-dDzL$5DbLOp|N z(C*AcN{DoOy*U(kVCtrM8HNs=_PHB7mI?TD_3iT_liu2TUQVmbOY#kNiX60*bc77; zp!#;<>Z7xL%5AnG&;1VS%>Q0}N}_(sT@~{Tsi)uLy|@5)B?VM91R2CiRfYL@GUkc1 z0$;~Tvc}`A2eA|lI4SJc2`09ETVJd$TYup#Wp6a%J?lFL6NJoIs>yCA*l09M*b}fW zVEQybtBU<#WXMdadg{(==IrcysNot76sndXCZ8W+_}thvPcZC1p^axVWS^VLm#eQ` zcXmm-&OFBiLln`fW)L}(2m%(@!hKR8PEk@Q%!DK~(Jc6O{sw)HY2O?2SF4wP^E$s^ zQ%x=o14Cxx5)%ca2K6zHaCk*dU^Pq33G*ZnZAOwb#A+r)B&=7*b0Q3DfGHr@78`^4 z^=(@{{ekFK{|PkS^Q<)wwo7MsWl9|2U%qg#I>-dQp+NX7FjHxT4SAw1TTXfRy3I>p zu{gRC`~Rge*RNL(ow0e;wnJB%g*e-Sz&kOhQq?*Mm{f{mrS}}O(b>A$=+rouoI1`W zy{A=@QyYFMP6v!V5gCa}Zv@V2vgLmYU$1`2eb=?!7R)rWlk?T&s4yoNptKO8h&8WP z$C?MxGO8OIltmg4-H{ksmP>Mn(0D1e7I^ZzYhnOa*7J9I^W7}puCAy$_`CbYpJ?VC zk^V{EP$~AhVATbTF?b>I9x8n45KHp6tIOt|(0%X*l_>SS{o65PR@XNAydj^u23H64 zD$OuYhQknM6XR<%a~z@pi@n|uCpE`p32hVhEG#hf{F+z7l(k>qAG$`5uBB`F)0Pt` zYu7{QTDq35rS)+_ms`lrF&M3pG5a0*#-rayOu~QI_`?RAYW%6pQdsT~T7Sj*1GN}T zPFbGH_fpKpbx5I)UXOlsB!g4;+Av5%X|G9>AUO}@x$t> zhjyn9d{*_CpESlp-IWRO9Ks2`EQc3x>m@{NQvwE2co3GoFe!`;54dLVQHP(`T`d>6 zY^@uvf4UYy-p;=jy~Q~@Tj#hu{u6X7zZjn0WP{PI`b4GkE`PiJbbFXxfX=`6PW#DU zo_@<~bIVb9*(P1T?uN!4AN9QmedG9(F4*N6GHhzosBZXy?N}|8?zifQBg45J1;M4| z=46b6MR%+S)Nh?|M__!Yyb;y0>HonzKtECOmLgjSaTe>f>}Fil(v z#A8G@?iHfrI2jN#f_f)Re9(%tF_!uTfhzFIf?*~^dzkp_2l7%(ZI-Sw9-o_GUWQSbBm_n#vR>J?9)ll{nE9@M!m&&X%ddLbSLPkeUY&ePHF8=u?4Hbkn;p6l!rJPH5 zao49eeV30lRbBSrjxxs($yKj(j$u93u+EK={B<=T5*#pA~5Q zoeR)^TmAS(WJtB7^GryoBFvqQDw42CNaoS+cdYCR|l~+Nu@K zo@(lGHl`X~dtUbX4*U#eQ*BvEdsmNt{UhaxM3Y(Sv6Y*T$8+y6-rD`e3 zVeMv%viN}4ufG46W^4N|TF-n(5Ncm2=MbVEr(kHAa4^6<%}TyNl%7o3uz8r2;gpYW zmDJ9Kg8sgQ5aE(?0OzQ3d!3UR53!bR$j2kILX;Jw+2;UV77Spxvx6cycxkHAQIv~u zG8drB7%D&L(2bg#moYXpH)K5rr-Ogd)eJqMRf2!o4F?JE6oT}G*2w);FE0AJ*$8M= z79F;1=0Tgnxn^#;fkh9n;sF~Mvg1Lw_*136*04!NLN9`GRifILS>L+e*>D%LzpE?M`(M3i z1FiC#bLh>r7pgoVNozX{Gn3LOlEkG`G+z(&f&orJ0Abm-%c$}cNEH=*|APJ9vVJ4m zd56|EwiDJYr(fH)cJTavmBqTxE#jiP2S0tlwL8o*6K&N(WU%Zx^$@83#8A9QxPySs zTB!F*5??O>w+nHPcC13eqg6;~?80s+^vOzy^cr4-c2>=F(|tjW$b^|9%dNjY`_!C% z#)xpQ<)`I+i2Y3V=LVm;E4!}T#kmI!Hu3NPqfjv*6!QB0bV=c?3*D97w~p9V{B2{w zv1T;~gV(5ks}ZVr5)=EVvxwAO%LJI#jxCgesK~OPa@B>0-LP)UpjMuNhnFUWCerkT z!XLqY%IuHI6D4ER)6UL++L}u5WSXWLZ(4X)8HoD#{gZ~^B1=!D^!-yWKkM!r3w~$0 z6?p-njuUYtoldfm3`jXAYnFRx-q0$>ymlLkQS#A%rR9~h4+m@vlOiOm8JGW7C5N;4WHpciC-Cl21!W-jR z3F_Pdo}+eXVf9ruFb}--;3+V!EGA*_5lRNiL zd3VNuk(RFIkC{vQD^FXc`bYZD&Taj)?2LkZrmE4ZM^tORvVqk+ACauR4IUo<=a z+SmXGDChN>_uA(};~g5k1xd!HhW_s=t{ylU`7G)DM-^^EAE1Q)L)?7s!sGFwIZXPt zINQWw*?RcY<4_GV6SRh2TC^@}huu~aM9g^&PWuUTVaM9+GKaVvtSf7Ck+ZZ~4 z1q@dW_+ffJRQJC3^P!4-N40&>F*8iUX(Ta@6F8BN;F8RV&?3j=FWLJjL@bz<(}Os= z96SmTy<(HeSPS|l0*9iwY$~;3bFbNNpFX;%Zys26zU{U`;=NCpnK#e7zv(j>rp&&i zaX{Vhw)x;`pEn$)LKFOj$1jU4!RvF@jf(a;mX@F>>gKAjvu2m`FObDz~*hAUfM?NNQy*c%E)=$rxkLRC9=f>} z=~HISxtCr0!F9(Tcf&0aS z1nJeyIWYbYIbETv3aW{q+&4NH*i?b#m-b#YxYvL_fAHHqM%i@3s)fr=E-{%O2sbB+ z39(uXC#dO3E+TW$Km!`*wQb-7S3{<9bSUBis6P0m7xqQr$!Zy))GfSr$rIZ?FL-=X zGfblc0uT$wDx6uBE_uu(0G9)%CG;JAY@`82mGnXc1OaFdYuQK>QzrnsjD#ps7?jBT z7T}!J%WawzQrRK44I>oLw_y#7gtbwDs}1zK3->gRRZcx|;ZHk$sy1rPnxhFC zrYErMHM|q#456!sQfapd@|>H(Qv`$ueO30 znm7@zkkKn;zg8y_m4i(Xns~X==IDFqL=bzNf)?<2WVblsSE*dYC1FP=73vc3t>%M7 zf}oS;6eVU?Smt<#_U_1I(tqbfWzO3-PTBd-xB(2F8Ma`34QM~rBFIzbZ*N&m*{tP3 zZy}%yAix7@H?t{xPrrXZ^SHIM_|9@OlcSVpNB6w`*e@P!4?;cT`7n07THFYxANVAE z<7l5xSK`d7%$+Qrg^`ln_(mw=C?KZ zLxu(K0oYg?+|!=*Z9DDr0i;c?Q*1*{aZ==>fhiUCVw9x;Z#n_qG!4>FLIl(Sf}mVR z?i;e#*zyUZIVhBKG8*!fMSN>gb%al z5{v^0c9%2xoc9#Won^Rk?a*IG^TU)XI>5AYcDkGa|AGwi?-8ce5ZSH@+Zd0!5A^gf zLr-QxbeIXDAVAm-~-yhU*y$T1^kv(Q+V_VQZ zgXSK=pqds!b;7`bjg4xYleFvhm$9+B>Ld`ns7nMI^Oqttw&rR#Vq{+xu)9?ppbyns zP#Wfs0y3q56`3S~50fEy%?vRhG8&}EF#z93mop9Do_Pkl4~~k}LMV@KucA4p*JLUz z)=(U9J^=LMB`q~4xUIx)_HC zS3#0VPb2~8&Sm@wP&6)0h$Xxn0fSwZ!^cwyA<(`Hv@0`Sb)T^`Rcvy3gi8hC&|Ezv zZzTcom%3AJMkNVZPQn}cZsmgZW(B4Qf#>nHh0~j&mwS0XutS>a< z0Y#<_7}q5p(%yrw!YPvgmOJ=>gZL>bZym+L`1^yIKIdD0Z*fnDGUem-AAWf2eP*U= zafmy=nHO`#(_Lts3xu?~!2&eeJJoP223?+b_t}@9mOt**-oC46X|Wmt#n~>8Q}Hh- zy?$M~(Ja;3mYqwuRV+;|S*hR$=`O9Le@&4Q9nRQ#2a`1Dzo;{TG zn^f<$LK2~`-7{#!7H8E58DimBx;GY6^><@f^D$5!i{(VgU3sJAuGXW)E=HUAvMpSK z0UrXaI*yi8n9TMlmd4c;XoxTpf&-L54aMO4Rke}e&U}Qc23A8`y8YY0q zy+d>my1I7cqNIAdxj@|m z#`TVEK5bsNfq!vORPJbTs^Yr-&g7mao+&t2Y%r)YT=yE^ZHI~;oSFfofjwGD5QoY! z>w6|Y>}@SS+}~ad@B6-YR$23R*V7c+@Nq?l&3(|MXr!%Cl5}S|mj3E6W-cjcyzHzv zz?)NsjGwq+xwTs-Pa~%(b({Miyx-<)3yzz$gM-`%?=SXx5&8i@Zuq(u$UYA9@U$$J zIHAa>U8Dw(}!KLbM_dM^jt<`n1t}4vV<&fs-CqCSx1O* z1%CpK&DE2xb%HvL&ZE>mQ@QNSUfpf4J!T5p(pRUE;3?8Ag51E#d<4V+=;qo8P|X9} z=(x6tm72IH8250I8!X@U(Ege*K)}E|vz7|B|A zG*uI(LRonhy#z2t$&IMfcAWHotTOb><+mR3zAC#pKPMH3!pVLg1yNN59bttUh^vvZ zD9A2);(_$&MT>g>*+M^=aj8lfOOBtlXRT-$pxaKC8j2ir!;z`cZ~6^@e{OG#uSyZS z-!N-H#oK1Kd0SJ9PWMlzXRS`as00s}JCGqR<`trd-_~tW8A4P@;&+E4Jd$ ziLFpMVk@2B3??X>=^l4f9WI$=TH3TG<2g1P;VhjN1r{|3#e>I#3d&noB5^YBeRW9H zlV2?BwXed&6O`_KPP}^Kex#}TZtd_uKvEJ<$}N-$JOZ}}r}_a6;!-?* z#i${;aABoN%SNw-QJTq-btigy`0(>~|hCsj=@!G(~h&ag_{}GsU#q;=Ig2@(4du6=r)V;9e2$V@wPE1{-W}}*Gn$r( z`&dbqGPUA_n^B)WgTN+Y>s90VE5=DXtQZGu(?XOLWSW~ULsFBxh2yk~3F&8PICnsl zP%%@<@Iorl1d*_EG2<0l7{I+llkGqbovUmRKWL07&Fy|{05S=QR@FyT;UF?Xy_rvO zomWPmw{UIVt4uGOQPRi%_DJ0Y3(bP*CSu{9NnEX0lDK$ntVI(ICt(hh1NI4sYS(ch zKom$ihBjPe2>B7HR3g@#>4JHy6+C&)R`@$PPnqi6xwm`Lh)FIe$OCKLMpq;vY%If~ zgPJQ%qj-+WqZ|*J$pghPkyRE|d>(?!8`u841(2Hb=rsR|RgS)VBJ&n?bld4io5tD} zY)_3ktBkLn>>N0(Ex>&+M3quuUs+Yy+aADuMCq}m{HwdJn%zM(Q>$#7wm^vH<9v)2 zdAX%J@~9%;Jwc2$BQn&Ip^xN&E~>UwsjO zT_9J1INW~w+-#!C%=^!e9^a@c3$M>ft|6)h!U4D$P{;xpS`b2qgBuV55kzcpWF%2n z$4EHpK@{J-;GT~N>!JT6knX6m#=ZOAYd4-|nnX8FW`s*^lPdKgMBY_YgejU}Xo4xc zgVZTM^0zJO_08u78&PLTw58alc6^`^-7Gh>5^KmxnFu<;BxUh1r1(%>hnt3k-imV~NyB7$Q{!s>KowD@0%Wj-} zPq6{Eka^i?1_OhPFCoc zy|ts3Gp~$#s+Eh;lUs@Izp`&%qR!dCz{Fz(t8?tdz!FiiX-{?vo%597W zW0qHnqpd91Gij^zX`euXJc&;TgcH3rKQDq2EX4(ko|HZ7lvG%#3^S#**_kX@ds+!7 z{#Ms5ws&(AuH_xV@~I4}G$*T|1cwH@?LZ>H zWr+Wl6i&mZegRc~w?@Oaug_6dUfOcOYacyzg~^mkMq>6v64aZ^Zia!WQ-Vai1`_OX zfe4TZi8QbxBctl}2*{sAG@c6^<3bDwD5nB~&EvhKhlxOg#Rgf!m?$Sj;IR()7a*@l zg4-_Kvq~u?yN+Bu`G>Pi^6x;pIFaO{I4M;O6XulA91k=!QdBB?2njRBuy8Rr6c(5S z0Hp@FyX{Y(Q2igFe`lz~XD5%RDPtSHSo-7aB^?2&8rwD8;ZUs~44m$)7;)=zubKsx0>bUM{o@2mXhiatHNcb1da zqU?U3zwLpkD!goq(E;;@DhVfS>j1b+2~nPfKtNr?^6&S}kY{K0?Kjx+zqMqTQ7%w6 z&z`>Gf^$`b^}V{7JxMZ59AE&MX}sK!XqK7U=DIq-r4!5|rX%cBtd0pbL`4R(P!o)s zswf3UX`lj)8ytMR5HvwhXq=>|SV8>T<@j{KkpgKfiXi1gCFBGG;Y=!?ud)FWgrQO^ z#M$BuPXl=&uuO~v%fXmk39AkuGjZ$#9f>rHD4tXrW9u;;c_!*62BMU1 z_=hKturS+}0uon%#t2RbM8Pw{1r_8X zLJ)KJIP?LPH*JQL*=v&h%k5<993ZwaO~$3!qKbGS_Yhfj-&l& zDld6Iefxr+t4&gsBnhOyP-uv5j>lQC1p<9gxTlhfC&ZQ#*zv)T2(3;}o}>4k`JI2( zjy*j)vw|;sqPsPF)l)pDs) zQhn$z>woBD?P&3dL#=AXo?b4DR-YKBWlsV+zbp!NWjGC~5YUc;r*wO3B`DFYIU`i4 zmf9Ek>40YU24F!~RokT~Rj3pt)Cr|1mnln9sTICCSN_2UtpgjhB%<;vwMq%Efj0Y8lEg(djbGcCJp0G(;2{@H%FAkIYiHA(>j3w~YZQ1~`a%PIL>wgaiwJsngH?_Nq?? zf7n-zcAj+asd+E((<{;bwc~AhKQB4#aJY`mLB}2WuM_j$;5=o@g4gEnSFKX$JzKE3 z0!zbU9GgO@TWn$IVVWlS4^7U~5M#3i6R{Q{5$D;MqXcLLWzyb&P#kn)H?wo$n-@NO zO4I%a|Cc%{R?GED&+8UWsC)5pL%^&Z*-8~)?kgRq!WBIIr2d?V+xO;?RgJm&!EO_by1Jk zzGwQlZcs+;neg;0Jq~Rp{pjYU%IX?=QsH?=tK~-JxM!+oUAZKc8@I`Tb~8{Ty^?h! z1nL3{f^ajHjK~3^)(94A3Sa`jl+Gn2+zcZm#5fzvP`w7#P#r7`I_~?wpL63=6Z&^P zhuj^?ZtL(X5*wu)zgUfk2SqN*14Ty2*n#s`c1)N_!>V}{&9TwAgkF-VoOq8(5LcfM z-|%zOvL1Kz-(U4c=Z{A+jc=?y5Dl&OAy8VcCbW*>?a}9=buHfCAFrPsfg0!TMzp;Q zZ!gE|yYPA_ZVl@C?h!rO2qr96R-d}X@=!0iJxS?Y%n|HnD$Re%B=F#*Ldt4%LXXaZ zGlh$lZ6^#r*?;iCt#lM8FVSTcx!vSdcah0C8!KO&epuNGOGiD2Jd98Aj@SWlYz4$s z63#X(`(k9-`#Zt1zf)QEy5o|j1?QM#_;HvG^9kE^odQC;fV>WnVZy)`!ZwNH>l!<#v1kSfZ>OHMGZTiSgF#0ifVQ40tO+Py-2&$Qj-e z)1aC`uiITBvO=UGC?;yzT0X|hEm*5NAA4D0ku*aA2$A?H4$aDF7o4VV+7x=Pq4&Z4y0yEh z+^qyJDY<&uKaR@@8mY3BvX}shluRs<$Z+=N>(sGA)hXNJ6}06g7NiNBucTaJv*0hK zAzmt2S_>H1Vd$ZeCYi>tjcG(^C0#8!32Mo0W*qM}bCUN)9Dv8ap@!c>fCME>Fy{>M zt^a->$o%eBHn3BbN!`SJ)~SaH)iSckae-DII=C>om*3!lip!7= zrjn`WWNf}NDwkVA0uC3+MCXO%`ln9#9oUVRDMj_Z^2*mnnY3{H?CUuyhBZlDAf)4O z5!g5%L5|_)?^G^z_I|#9`w=F~l^$<4U9fBGM6)25I|$gg*jTIu5x-UNwUAaM3uo>r z3}4>r4T5gGP)MEqB zIr!D@=Jx9nW%_*=y_k-^&vmmrtc;k@?X6>|U@p23wE~Z703yQ#fZs(R>s3=0(EGB$ z9?^zVkQno*x;qr4|A^a`PcHf5gMPm^kuX*NSGd}tN?sQiOf-Shu&-Qg8)e!F!_;h0!YE%*aPK|__3CPy0TvnityG&W>X zabNhT_K5P{$U%oLcx8bhX4@&O57`5q-R|`UMLxyK{0xv93(6uGi)miwykdPb^h0z? zSsHn_p8jD*XiVwi&t2XBxDu;JmFfQDKTUo#!ORbE`6qcp5chy_OUSneJN-OIQFaG_ zEeKJV*{ey!SecJ;6Pno=)VMC;>JlOcUgr;y1v{=U|FNZ}O?l zhtMBQE&odU>t_yS831f<>kiu64D349YHn1Vs+8LdS5hzwWu*`8@N-f`-APrH zwr)I;4tyl~uFj4kJ;09ghALf-Nxa}I4bW_g^9n5?uHGMDd7n~;nuzJPjci@%hvYL3@(A~a%s zkkQxyHL%q9MgT-TyG5t0ze`xs?~l@6Ftg@gR<7-N*H7IJe>rE$RYO$SZ=kWD=ZOs< z)x`_MlL-+}^|)xTj-qWqDdi(zCKZrJp`Dd%GTeg8qq0GqwV>h{2gPZJK8_lv=u!rS zk{TPe$6O8`^Wf=|kC`Dd*6#c8xU#v?UQzDfvuw_HsfY=Hj<8FyBuae(aHP8=F)>M3 z1W6mFr}ZTynUZ8a4%r3)PpmfqubOk2+z%KEKyBcXo=a$AqlfpPjd;L~zKqy;fXlR`q~ z>sn||o+zo3sdn(EUbg$>XT}`!&)=a!%4&H_xncGxcYS++J9oIwGSPvqUvq7Y!^A-l z3Iuv8C&^V1b;8d8*7U=;;*I!S*mkjeR`(ULWj{f1UdT-c=6md!*&X)ZLamT}$Jb zRPiV*z@7j$GL;A)&R%NDk03e3X$@)Q0^>ud1G*}G)bylCh2ptFFwlDi)!td!l_d=P zfUtoIx$0&akn*62>>)UmKNEi>0#Scf`WOE**{El1{JJ&uP6GbSTwWXkR96 zvod>WbyQ5Kn$(~7GZv?mO~RyAGz-F4Gf$9;$MZ-y zT#%X91AB(E7@qZSX$}z*4G2Cmrrqd8GG|`OpqPpm>9PH#09(h ze6)Y(B_BRkc20hPA2|IXOZIChm=h_h@-h!^0?G=)xRNR7SKAy(ZjB>JtCH4pB>5TF zr&HGfTy5t)nNO7Ahj^}AeA-ZxSRv$vweeC-WpzzOS&(i|aptGW?%-Q}zPZq2%?{eP zE0-6l_G(H^?THd*y)k3F$N^4El1Y)1k}+Nem9`QPZ~@h}s*DmU<$}qT5XuIlJ#>r* z#Ksgs(%`$*b#)RaOC60vBH=6w{RMhNX@+w%SPlby!E(A3*1^^LD&IWv*V}p;a}+0; ztP5=gMV9|4gMZw1`R#`_=k|}hJm(rC7z2k61Wo{GHck||Xo`(7a!VG_7G~;d0eu}P zVgSQKMWfw@n3tUB97rD`7-la2@WOWiJG$D)Hx=z$Bma-G>$kDDOS?-Iu>nYFYYNeSn!D89yhpa|Mm!c@>@X@7Po6Q#G92sJ6z#P@UGT&5K>_u-FxKa(a9x6uWLy zewlR;JLx!8aom&D44e!jaMKu8tyK+V)2ESuJ}tz>+QpuRK?fduQjUrT%TwPg-#pt9 zNwp%&x5|glpa1Tt5gT)F0INp;qMSHC0~!n=F3yTg0KzA8A}msYJZ+2#9X_ewOHm}C zPn{@;iCCvm;gh!f=L2M@6JsfW5K4uapg$am)m7M%3`N~`%0JILq63fWTV>Z_!uMY+ zzpo>f&7VX3LfG(#zSFr-y!J_QstM_JE}6;BBF-Daeo|;Ya9>bVp%sr{ZZ~3$WK?-p|Ze zpcW$(>~+Q=)uC=)Kog$^u)$p7ZcuRzzd{oDvkJb6gG^|s6iXAy^BBGhn-=;$%=c4N zu#|Q)Aux!-FRiP7C`CT7qSLB$t(IL%#Z=$^W#k#{88CBTTAeifSuH;+mcxJE`Q>LS zU5XLnhqH_COUN8fz8YIQwA1MF#f?D50Hii!!yDr)Hp#PFs zM5eLqQP#MgIda;p7xA7gIRgTGa6qae#IaFMbRn)YDo>pXspnTTEm1*TzF0f0FCmH? z6t6}fX|fYA@(}Qsa&n}B14gq8^!BW8l=DKA%Hk*hY|5A`m7-ETo93M~P~QKL|I(1r zk-9#WuQII2@|*HYWb>|f`pq)+y@+UCX1E0;{sEw*s15AdU~`%w?YiR`_5Del3=B;K z>_FUp>Lj3!$B^-eJ0GCNi)g4H$1b7;wsfto; z-Q~xBcwjXSsLsnWW%YI|k!`oyRMua@E+>%Dud<91S;E$CrglKpuEZ<5OZy(t6#;Ey z8nvXqSs4;8n zJJJwwelEp}GVSw)xFi@HquD}q_AGgIJMHtCA$&+?dK;=TL!+Gb^LO?&EezJ<2l2+9< za9j58FS!nF&o#82<=D)=^q^PsPnzjl8^1c`@#epoxR?1Nitb=p0Gh$3;a?PYR2>6A zY+>NdMWJC6C1A33Uy8&r1;CzTi6o6AKAT4LoQ3I5_ADx zsP`p=l*U-e5mDjzP}1Gz73%@Nw-j#C zm7IXy;r999=uT~zc;4SgzE98DU4wAf(zSFg#sMyUZNp1P?cO`i#Qp$OH5nN^7^y1; zxNrYtAL9Ms#O#kT2Xt8ElQFIxQ1@=>YkEKP{rH6{BkGZVOf56v0>RIUL_Hs2W7SDU zQo90;-|hzOm)=WQtV<C-wr)tSieE|eD~uQwi8=rN>({vjsE ztILmu0IK>s<4t}q&_;tYVc1K2@avgzvmTzK2vABI~Qf?MGUm~7N2q0(C!8A{? zmgXr2%5yZ;Hn%T@(w%{vbmzoxvmZ{VS5X_obno=h&wM!Ky;=V-yn#Z!8al~EngRP! zile4;5t!Vg`6x%#)o~FS)Zs$tQ$jFs;z!_s2jgo#7@ISoOdRbwHu&U^*bBX*nInx48bU^1!ZuX30Bc0 zcRjFjxiS#S!wi@|0F*^1Ii8|0pF$4jVBs%#K$^UG=G5(r&NK^F6oZO1I>|;jA1leU zA4Dm9B-IFi*#pb2fu1SYp#3#rzqs(aCGa5Yrvn8>DUrjTZNZJ(Fb22qu7Fi^|0~E2% z?O!|f@4Jt!><8?pW0=;|5q$#Fn}^^&;RNB_I2|8W%}2_>BnC>H1x`2go#Dj>PTL$tK2Ob za8lT>6HjjYrw>U#dF@ZLSM1N33`lu7*gSfD36jw1@F4f75QT~M)iw`Gmkb+p=%bD^ z4KWGr2~|`eVQjJ(sa*$Da11mHf~?5KIbe2&g79&{d4{UpIeypQo{IJ8(G^87d+PO&krk0gB+Rp$6h_H>RZ&=WG=r6nXQ|*K`#7(f_O#b;?YwLEx zu=FW=AG-1WZff)-gJS6rQEZ769wQ}=vi=(6htu~N`uPF&>}6#mS*OG zw^$AZSOGm6$j6m3Z}xjZlz*-2quz*rkhN1A#ISVPM?>E3J$jf~Y{d?U7*v%;2_$^3 ze)o$gFo2B#je2YTwej=ZHhFkDJ+sH!c^A=UMx}$My(nj?Sw0%QUFIW-@{GgU^C-@d zhXHTac1Qi-6$=Nb4QOGvLOafp=|yjxwdJEx>cvgZ3Fjh(Q(z%^$H4%o6YXK>u-8{! z=?%iGav__T+CF#wOII!;|1iqC%$*#Ye)RGvcgAO9)Op^R7|*EBAW+9RA1#Zl%+!Xcx6 z4w{%3gtI!y36(*u+KP0b;i|e>1~hX~jfv2Yvcmf5U*}TPH!N7`YlrpG%`!4Qcc5Ang>Z_@f2$Wd^TR10?Giv{0V-as)4`%19|riAH>Ug4*1KNStqB($Bt1RYP{1h zh84^=1aBPzlsQS3j0hoBu2DOn1H3;F_CrKsdWq5cW0bjfuXwI!=Kls6e+DJjh zaTJF^KVNXfoJeoB^dG#QKh11}cGm>`oXDrRXrKlq<=h+$u;91mstIZh0>Mp;gK_^h zE}^@{o<7e>^W5Qr*&}F+kDDZd64x9}0G%}s8CivRf*oVrwx?$=SXDl54`=$qOvVOK zF@ttNy9$~t9%${Uz25OY7l1R^xa1R`Kxq(kzPj&$E$!r~X#pJ?U?5;Z|+ zwF6*?TjJzkj1{nN3jZ|P=qH#)p`7V^?AunHzvWWAXSViJAcw&~@CRR~X)NgY+Ot7P zImMhVRLsep-^|7&CdI}A2tPuFA+>@RR&dIs3(##O;tUIuXPNRhnXPYL9U3Z?iGBP2 zNv+12zG_SHiF->Xn6w)6di304eBdnBR6$oIQ^`j;>Oq-#+~}^}H?*w_yX0%H^}%8D z@pjw%JZjWV@5zn!d&jASQYJ8ELU#z^Py;FGB%p)9$Ka&>2&F6+2>0*545c+DT%9eicm1yH zRQW5_*JiC}?zjlPXyGta{dLPOwEf$===fXkaot)F2>ptdd3m44^0nx9B`Z?7y#2uC ztv)dU%gu`&qgz*?e;MtdfM3aedHl#>^d&9cGq z52ix2n<=~YvA*o)HNA)ak56w$>fpNhluoUdG3njMT-U#6A2oxUlP%1NodFC%qzS#E zfFLI{HIQf~JIlChf|=BzQzt*h^_BMr_bWUt(J;Duw$Hr)hoRCKD56ZNeVr|m{{(`tYhZDh2 zVavkOkeJCQkpNOSC|nEQq_-AC`69A*8VJIKC-zn)gsSFPtbM>4Z@R1^zH#M=PO~5> z;Rb^Xn6RT>FDmeLdt*E+0mh$l9aM(4Gll8Zi~pTDk_zuJrw6Hv8=*bo`34RmU!vnzJpDEX{xvN*|XnxRF$wRfYz1x{?)bF^4uZ>DR^%&TBk8A zzGj^zYg=8OIBGn)GkiTeSJ7FYpEGMv*7jsw1{h2vR;v|mx{uxY+(j?$_~fG>!|=0d zo4HG0_C7gB{k=n%ynJTUjNz*ZOqyJ*>kifG=f0mtDWEq!!?z7wWT2J3#($kAG_2oLMql~phGP%XgjTMaq zW`D}S#sSe~hgDZVO%uq7skJ;6jaa@=7F!rq(*)Rv0jR+ZWkm@l5TyM~Ema+cawN8P z>yeC02j{*p^%YXV+c{X0R#5U<5rr--mZ?x~Us;z2J)`2BvMvw8%zISEIEtYNXGJ2> z)SS!|QNW{W0VX~KDkv_$a>?4=_w)Pz(SVk2mOwf*dcs$4u2fy&2A#hL_>w^Oo`D)m zQC<#!DKMy-`4a_RhPpC zZc(k8vNk<7eTrL-Bu(436Y zYNZLtISf*oPVE5TNkO$Dh*kvfF>2_DTfYQkzbXV}&9(#KdhLYvj(+9o%MNI9_I_Ly zay4R@NQb5cXi%FbY`maiE^r3lSgwJLGj~wrBu)e%U6_j1>ICv9{6TC3pEn^=D_Z`u zqch2S%hR9VGNO!GI>lg^wC%o^h#cEg%Elzl&m~PHl?X@nQ9d%)WHN&n7FjCNE4SLE zSxr;T-i50)A<97JFj~Raf@XoE0z4-Y#R(yz|f(1fWp*jP+!cZ6MQSFpPF zOJ(F~ADlhX(pk^9BK>HuORl$H^p=_3To@6t12K84cuu{q)0q{pq$39BifUYG2RbjB zH^4W>qpxTa8SUMdxzuW@O5dcouU!1XIcnR>=c1E#OqeM&$1$~c##?trr?Fxkz`6qv>2rhFtq8cXy)l`VKGe7V6`jh9aANL#n|1A7$)6Gi53OL?ssZLw|aoO^~ zQ+JvKesv{MBoX40F}4NaBtVo==7oC6Nkj?V4*RDD5<>;kcgcX|5oJ)8@9O%HHiVm2`z-1>K zY&44cJjB9ddVWH`>!wYixxXEH`+!0T0W3KTkTq%HFjD$@#q@$L4^7Cx7fK{FWR4k; z1^hf9fC!w#M#Bv!^owE0+KxA_y7A@H&R*8t4ElULWi8Nbn4I49_5)Mq4<2jg z-)lb#3k9|2;*}9$T%$?Q!q}L9+%NwXOirKP|Hb)V{j9Rf<;Z#K6C@x>1IRvLMCQ)j zXTMUYSM0UnvPaXpPjzw zbL*wCM`x%eXO5$v&2~>#vePShLF2k-JON)k3GEO>d@m)r2w%rX5b-^jm(eIE#o6gh zQse;ZeHPcfo*Exe-hVwkV7oqcu*P!vuE|Zj`xgbEWuEQS^Z~>79Q)~QDKo>b74l_0 z2dHUrb*^a+k+mqQTAXZ_8lWC30EN3j?b6hNeSgploARRUwMEyo^AT5E;98d6u=H#} zJ-*1or2T9D@loQunp~q$Mcbn^1j_J&;E9K#A}RAEaKxAd))Kx{YQMRaBimDp$fR$5 zFdB#Jvz&xF0$07Ysf9+ z^q-n?!}4k{HOn*8ENeZ>DSXwWJ&F$Gq9rXL69*2T#KxL1y3^@T#KA6bBdC3WS~=Rq z3=6IN)S)BKEA--P({E8n4J>)^bi6&+*s?vkG80&I4|_Onx;~Q1qatzcGwG|7i&ppQ z_ow&UNP6pz@0Pzc>|E1!ZBPv&ZIGXZ=BCR5A;i^J*8vq3jPx~113Bg9WQ+@p&&p>s zb_CMEr9JO3?5tBhHZz#oAiL1(lj|~uSu`m|k1Y-zH7#)n19cs8+e$RIt%RZd3_Y%G zQHXJfC8fL*L?Pdf;06hts~XjFe(s=TluO5q&!o-Qz`}AnetL6KqPco_fu@@2@epK5 zv0=P`-4<<$MVSaX2P4U>C`$}4Fp_#ACLq&nK;AcP^rrMBi;mndYLsZ^a;QUyTYWL+ z)B(j_FK)%H)re$ABF9sdLtx`v;YM>)x^z>^Gr`M78=yj&VHX#Q_)CPzG)bUX6x=9j zp@c{R)*Ch~T)6zv$9iAdv$KhOn$knB_-Wl0XFJS*ZZ^RFOebO~P9&Tn2NDxB?e!&+ zJPzS{Oo@4JG;khgMxjLdyMF!7?bRH~^&<>~3MhPnf*x!PGASUI2k`4z-I8#s7lI3; zz)+?g4jVG$GFwwR{iTZn-Tqr?@iPxGnf~;>3h$}?Z8?b~btq4=BFLn~N)sX#kHd*q zbrcwps|%E-;uJ+aebS7&wRf}KJ3A$0$x!v+D;Cr1YFvX?Jy&q|?mwWsl32%iOgllUD06NT*kln&U~N{Sj&4z>PvG^%xg#U3-UQ zMmN7dNnhn`Tm~7|2btW%%=GLX@7*x;l84PAHEpqh+O+@|4j%kYbf9_i#&%uaxESV* zyRV21`2B)M7o`us?8nDbx9|o#y?}~vDUPkJ(O}SvL4mpaVMCJigCv48a~#q$0!#z@ zDmGVSnU(fz`fQtWqAI7D%yo$>efsJ_SQZJG2SQwZRdbw**G_)w_A@QLHx20h2MwpQ z(hpXRyKB>teiPK2Jtikez{Cfg|6B<*SZ7Mw&^>@1fCsq@)&^6zzWM!{K{^@_zv9^xjT1=`Trd zy=VCc6~`QFiZXL~y_o(3xQ9Yr!VSuA+hxUBEtjT$dD(LaG3YFHwk>MQ&4>Oe$e6=u zcSd&!iKLDLPCt}QMOIXXyvPBbR;c#&Ywn(2aqiCU<1AfE*V4IWS$2l%vb4~%*JW47 zFU^U4Vy!U%Mv8Ml0f>q@&qlPxXWK0zxE`}^95E??~ROQ9InfjC& zzivzAqi^bX9QBIyh)*Y9Md^m9h=fHU zA|X_+>WjiyguR9nqgmBbRY-bkc5-i*Y?)<6937p9-Fr`KPN zi{y&*gU%gU4Bm2k+5bTf&5$^)AUsJ<1Ti^ZxMB((t1+}r4cq5oTR<^!m&(T4 zTr0yLqy|U&9(Yz@i?#Eab?2rh&pTqLGDwY4?P^c75laU8IdyW0@i5k}qhK~9knMh& z0!fWX3z+uXOdrpmxA(wfKRSQ^VgFBt&CGkbCOsv#>y2L?O__MFZ4s2%i9m?v<9v)2 zd0Dfi^zqR)s7erJ4oxy4+Sv{sqifUKKPzYcH9W44cp1wD2vMiFOv*(f5RYz%tAnWg z3V#hr$gp*BB0Nm}SZx@Fj0Ki71+4|15V{s1cQpO&8+!69U+GoZH4%3$f1>qc&G8@R zrz<`?V%7Y9H{=Fr^&F!?wd5za;7PTF${{Kn768G&aMp`tv?w|h4rMSR2?)=4p)N1@ z7)X?n4yKZ+=VXDo-QEdFjvLZdEACr% zWpq}-AR9GKg5RKzrqn61+%PA)GKZk4k#GS36CRl-N^Cu+4S@FS-Gw84Z%L0`Ir7U* z!?)%t^-scpvFo}+04oHlalm-x`94Mz0c^E$~JRDzSxjikjlb>Widjap6 zpMO}zr7bmVEa2A-q=3NL9tQa+EJ=-+xp)o4N^mAiB zaE3Tmk`fUflj0E`9KqzM>6(fPLU5pgy*i0**<8$lAjHf$2^)GZm@WFi#n%R&oz=IW zT9!ZbJOn&vn$Z=%GzR&dy>_&Y%A098ZsyG>94wrQ!m}6MhK@Vj@Vx<>kase?7X9w7 zjc7a049^N6_QS_jY|Qp%F1#)Ke5Y+1miM`Lvn))zTZ4wm?tjuL!%8bpHp^2J zKpefAhOz`c617_gkSeH)YH9_Aj$RAXPs*1r{nyzE17OYEvGe4?N`94_=&V$f{-9 zPqr>`4pp}cM)A35h^ym7PKa=(bls3%1|-sM{OsIm`;thrS{A48nSOlZtAv3!erw1Gb z2*l&fGHB0`0w$0L#mQ3+Dq7D`6iY*(*A4!g*S-JzdA*lYZedZ}-0M zH|N5qOm5j+EiR~stQ%oenuxhUr5s|UT=_9l(KegSz3IdEUv4?tPUi&ljqV&MK>}t_ z1zXD@Ze_PWfHx4$hCfh&GiQj{LoJR$_50Mg+i&VS|Li^8I*)_-zV!W@=Pdru$(u|r zzV&i*6)%feQv3l_j72*c726DNCxcK$g%CNnX|U~!Tet0tHGpbyK>*d_Y=G*+wL2Ge z<})m^tVo}F@?on&=cR;b?JIZjS zL&syoD(CHIFKYJRZur2C*ZbwkXX(%LvJ-t$?Z`f&6sPyo&!hFxc>i%&G;-&MXnjEd zt<`EkmCvX*{=Q0UtX|LlhTk87j~k5dchJN6-LnRvcktP?eLL2)Kmc5vmRA0N+t>1=TO760v5SM>3|J zd*`s5u4%GqWntY7ygu9UUXLOlam{Q~o^8qr!jqdp6yM0hMEB z_W$e$`m8ZUxP<4Knfqtfdl!epH+{C?<;tz2<*~R0?Dt#I!B4FwURE$@dcejX z>w541?a0m8IsJ0lmN(vi$g*ZW#=ot6v*G=7cAwU3C>DCVc*MURaUbFO@|#1^w)f&8 z8@o^0`taQcqwOnqG;TQd;_=nfa7+06ysZx@BmZF=g|C0hf|=CgBQ`Elw?{oW@Tcha z>z3St-(rtL&tL3$H2t!=eeDBBy|Hjo?;dI`-f_ZtXB_uppFZk#*^igse{*Q_1a*7P z=hr-b!C7ZrsBV84|F-F%Ud2zT+s@TXK3;V3!nNx5%9;HxzPLH^y1G5$SU&;BiE{5)Xtf%tty=UugY*T<);_y5VNBTpB^ z<1SaXr!{^QrtaLoF;knUq<=a1-L1b3iR9*h3e=vUSy0LkOKek|$krF6Jpr7=55_Ef z=>BtF>u@aG%;iIJY~4C-)`=k zwf%u7KV_J;o$KYB26f7LtR{ABTT6StceY{O_v!9=_y4mWLS(-;B>O#_wFGsQl>^(F z{L<+y<%bU6dq$;+_0>A|+~u#WM-(+OQo+nuY)mlimF_CCJe%H9eDph;E|>5gGt%U8 z72c0qZ6Qt$;y3-TAxVBVUHjKS~n2N!A zEuEkkzzb`%q`(m))qp<$4bmP4A&QN%WbW+k>ZD9HQuYyygNnogK{zAUh8gQe^U|Mv zA@x=t@(tJLpDN~G->txTd~JI8lWz~6(lpd0r~)ejZM+n$tge|dxnxq|2!yri+MVC@ zi=X&y!SEn;_!?c=EXfqow^LsnRDo7UZU$@q1xmHzL3I^@pTb8l$dOB6_TXE3+=HiLCb!$N`IO@ccF)*%?HeP};2*^wnhh+{jN5u+#aIdE? z>b3jHz^ZV&VQ7dqj!yEim^%Nc0Wzt%mI*L92Ncfo_D1@uTMobD{s2fox4#S2lF=vI z69Lp1=SR~OL2W~uB0anWM_}lg)KaHKd-$4bw*Z(X>ce80Ce$QA*V$bPl zJq({{uO3{b;@U02gSLUXOO}c+7RL*C|zEVIJ-Ml{%%zkq# zH|cqm+G|_Cm45x*t)p*i`j?46rX#9G6D^+#aq&tvSl z$%rf4L=Ij$Gz^7kppIta`8z_RE?7d_nePvOb3}U(e(g6{-c4`4rzL&x@n$8gdS}Z{ z=802N(`6K@hRpadTwR7fNL}PS;Pj3W&ipGqn>+lLSdHJL!MZW^vm2DFu=OCCoM~$r zU<0NRChKA{4NM@Jk4QNrNOk_1*4D4)y>$P7&UwZ%xlIOwQeWl73Ljn89tMJq>GQT< zI;^?BJNH)0^MFOvIGmwApQ3=uah|BiNf_ICk_pDM$g(ND&h@}rs_(d5C$&{oTGA5- z=`mO^Bzfy(PQ+1pEg=rIX#e$(ThAPMHr@UAYQme+&kmjQ!`#G# zDZ=SX#FNc3M0c05QiE1cqkRvCS%X!yopEF;)?As-!Onoc;7sA>wD{xZN8i}Gvb~R7 zt+%W6p&bAvtnQq|3%=^oQiR1b1H_SJ{-a4d7w6?kybw)HlO_t&cp(alh$M{$e-bZH zWyPf;G(PJRRN)ky@mD%kG;Bnpup}4+iFZsieqv+(kG(H} zbDGTGZ--M(4^&hHMO0LjCOxLbi%y%FDbvoBwhV}9=#iO8X`9-l1A~Zou8X&#;c`0O`+LB zQ(9DRqM`sdfVV&#ebCK%<2DPEe<|7vI?vY*|2+QU2eU8Q?O?;MS7(pMN2{f82GU>H zZ`a8yQ&fygOKqeb9NIH=6wF{LD01;L;Z!S@=8LryQ1$RBr_G8@ESV`qY$z#+AjA~t zp#8bJ5oYdM6k2|`y&}-?|Mx$$XvU_VXfQDvK3zTfV1C-6^tq(?Z>-QjcG8ec+i*j2 zFbYQuoPW!1OpZrB9DY32;hfm_=v@!(9}E%seD#ALKmNi*lTB}|m_g9r%yYA0_JjgS zW=IGCd9abxmD>Y*=z?bUFRwc`Pw0f9yZrO|V)gWiC*1ql($k7_I?5)TWWJ1&Br2mY z)dTfriu!4+Y`zMUgf$pzSFMZGZ`iuHVfEH8BNu;@Xw-4KN=Y74=GufXJCCetXKX@N z0$PRvP)G733S|m34^-MYuwnJ?%t?>GwRVC|3}&Vj4c90$E@D|W+-PXda0xCfay~98 zWICAkk9UO5Qbt~5vG+e#rvt2T^Ea;E_~P@6%o zhKy-!FpptP(S%yA^ri)k50=UrRp|gc|2#wg>(y)7yS`ufObLo6oHi{bZPIz=1Wl%5 zBHf-(zE#%ennDxyr&JL$R z3YZB5o$Q1BjfS7TJa@o=-|eZ{vO4tg{d1=M`mhF5ScWJBY=eXv0eJ?grnHnFnmDNd zRRnMf3lw-jwO{guJ0PbpNv5cJF-R+d18-IGv%$=vgJ?90ict($0{7>bb$<>n?r&Ew zI=gkq<>N=_m|r*<*ifixjc~1eifNzNdr94>Zt*gHw>s1|@y*9w&Mpwa5iJrpLX=?4 z4x|Kw1YRmubNO!dkU=MIX?b;p#`csgYLg?O1Ie+ZVSP-vII_c$dX$w$ctGe-})^W4tJCd+>ezF$4#$gm|hd8MAc z=~{nEsXkhg+FZx%bY04}+ox90}{LKkwZVoo~dRN;spdSs$C>APXw?3q6ydivkGreSF%_tB>(7xuE8GUNij`Xv7h5 z8)as^wWuQ-G`PV0mXgd(&E-brx!eGqDdLO3yeNRcz#W#t;35LA<0HvvJ9y;G-UI*O zOY!sSE53JM)+c^}Uf^1mQeR$;97x{Um~QLaf+a$!FqT%pK^zY)e)wf&B4;1X(x9_m zY|yr?zNEcl*pE@Y_8kRGvKpECsk{X3nbYs_sNozMqE(RdL~p^(`|tv&wp65>y>0bd z7c9E=@7EH&Xsv{Gb$dE1@d=SO38_Q}ifj>m*A$V9X$0aw`(d!9?~Bo)1fDtte;DDe z7^Yd0K~0dsPvPUAz{{)g@6V4#H^gg;ok(mPrrB+* z&qdj%*=<;Jp5SvR3)db_WB~>`6HZ0jkf)80Vv@-~^1MLbCEcl{{LiP?&TB0lgTLJStfe-+FQI5+Qveiu2ed{rw=zZ(Ff1XTVy??UO0v|>(!eSdL!!^^obXnR1DGHo?SQIN{S(axm z-#n&v&pJH>LlMn{*#u}NxD><)1UQjpriB7dSBPc2jE`vysn{mED>hkW=p~@Vl;&?kVMJ}AHgt`DGc*4nM_K+$ruYt_~uy%a0H4_pxOa+obGA%m0ysD ztRHdxdL6h;XP|Dd0)X%BJU5%NBmX7Q0dNRh4EwP(>nPMMx~1f0$%`(a2-wl70CS)L z@XW_m0?dw`5n!$|43t+7iOr_h=_%8j#SW2f5h*i}qG!Vq5wtLKIvv_khM70@f$MjM zoWIC%^rv**T8Yk`jQYKikPHit;r>-G&YCC&w{iD?Y6sT7gJ8i(; z-85Hw$b+8$vT^jW2~wDedcV8%y>lMf5*eUcZ>7m-8z$eH zzHyI!-*%MkWs`CaCHu6S2A(zeuPGJf@;uyN1DXLc9ZdP1 z0(;BDT81wEi0Nl6*J04cl?u`&tv!Vz)6jKLv0#-fcsgJy3&zQ$rfKgU7n3{B#pGs# zwEz^>nTvs2X$t;@r!)UzD}JPoI!DjH*hl{5@{Q8DC#Uq{JUW`NBzO_b7?mpR-BZMj@-A#NGkX8pJM?IB#&0%zP3(#Uu@)GL- zcPSL`xI%2L+tbWuG7NUae9a*yNJF7Dg*=X#ePG1{i_WwzAA0022-5FV4cb?}M4oxl z?6(isjVc;a!t7M7AM!f^`c0UF#L#|Vjhg;?kG~HYM18Is(difND{q|q@Gnm@Bm=jk z7)}*reEE_FWsZP9NC^_t9J)oRDUE|GitGc8kRQIcHFD8ev-|v6n1=L(d8!P<fv_m>cc=pLph?TtsCvC%Lv)DnCCiI+IB)(tLpd#bq>Wl z8E>41K6M^0fZn7;c1*0dnf}%5OoL_Dfcvks4#VZ#s}m1hIdZaI(ykP(nK=_{p-uj_ z4v~+B6UxBV0aGO~gk@~N+eyWkBuoRiFS+i%&SdoTgQ5N8WyXu!Z%?12W4?$h;UGaN z%F~pV4Mt#nrxOv~;T4?NDO*Pv779U4NZaJod+D$)e#`;#r^^-|KRMc}bG;Q>4Y(jo zXj!0d0BKk_Fq8U~44G=GIllss8iD-xdE?sMB&yLcN?vfjq4lQ=2{v+luc8M=)OtB^Z26=Ra0KaC;1dU zqa8SxGwHh*OMcG%r=q08gWJ&l{a<+j1+F~$yxc8)cG-tAUMKIq>l!Fu&)2F))l@v+ zukBUY=Sa&?LghQWB;LjJ-PQTM3w2zeuIQ+KHdU4NzWyFG9{Rk7#>X2?&y;B^4w28k z^MNmpe)lI$lJ*Z$>7#l^rH?KErEueIxq5wzJC0ffuyNhj6yUgWGdzH8Y8dz=H6u6UuWx_Q>Wx&4k(x43#UbU zzGwpP5@iS25hw5)V5@cwWZH(eh$ctEnJvi&5|C({Mnv0{p1#p=s5~?L(dr|(9hw|; zd3hg&?%Md~aK;|F&j@@ zkBjHJb-`Ivmp(SA=cN%3mrbAY2W)+HdWB|Te1IeRzX47Z672=kptJy9(DV*>PqW*Y zWHOmdEI7RP!r@D=AKLwacZ3`o6uKvI&9dTPwjrOoQ#4HG6BF5vs1Mo=T=4C2yu2=1oV}8jEVnu!{~nH&77+SZv&K7YAx@*%Yi(axvKQ8Z@za zS!K!_PH{E7lnjfrV3xWqEVkh$JUe8qWF-NuW0THcsVmsx$6^z%=->mLvYt2?|DHJ0 z7-U$=&iaHHDs{5p;{h5U?4V67hVG-CF}RoP@@M!Y$7VRNjZF&)KH7mkuDb9$N&XrP z6Z9W+qi70JU_#oEs+jg%@VCkAF%aV@1kD zRwY$=kdvwtknF3aJkD}0<@iT^OD_$IWQ;18i=PfHMK__uCKS{r+4A_fnZrcFVWwrK zplN?ylP4A9Gh9>xK?F&WnA^c0`HYAkg2CUeRw~(E%_!zs37SAV6SH_ zbv2jX;vV{Yf#=6667zjD;ck^`-73F+t$f7B@0RK0=4fjP-@_#&lR~Nh#R6awMX;rZ zvSOHa#!O=nUagRUi9Kg3R>w)W?~f!~JMnmIM8uQvHw100Kg0%tHEeRh;l1PC>51!Q zu*)|eed}fSuen`k{Fh`>SLIhJE8)6y)z+26qE4A%{nO8eyxbV`JV*_Zx~2OqcJZlq$h(YKQVfU&Ya+oulV-+*X21*9<*@6tF}d?WpjO(*1j}C26)=3 zEF#HuBQ>m$Hwdnv4rYe-xC$&+gUNK0I>Z zAEA_~?xl6fm-N{%?*83KVPQ@Y-i?NjVQq#xEz6~%9fWD=H`yNM2TSbKw|)Nf(Ohk-y!1^heV?9~w!@ zd~FM2D4lka`a~ygL8ovTgZdw%JJ16V+c8k*IjohJTz^jbRzK;Nd{pZdQ6M9p%|tnW zh8Hp@_RVsX4M!GauZSMNAZ$BWxNh+HH(xrt_g?=c=A&>q>gAWudm?+uDHC+!6WXpw z82T7L$EDkZ1YlT!a~*2p>SlJ(BR9Jri#|B5zWBQd^S_EfFFy~Lu<0;tgKc&JK|u3D z1)7SJWXmCMJ$Q5bN1Aj)dBh?9rt$RxNH-&GK&gCz11&1FDJv!T6b!;zc_Bqxr0^^* z$fsHps2eqyji5bw1e%s&5VV3Rw0A9PixOuT7AY7wk%B??);`;NRwklBPR}}W{5|Wh z!CSiSpjS0qQ8bf)`DmArO-Y^59O<(=nTsfnXyjPYY@TI=u|^T8(+ljmwLQU%SY?3KhQ>KgH<5=^Px{jrnfo4=dhXLKL^)?Jg&l_#)u@FD>0w`PD;4)*W4On^Hr%V$9Q zV)@CyE_=uz*S%}WtOIMl^xCp-3&C7XGLCs+A{9+Wqoq~i3`%856%}O?E6JNH#&YyBOp$HV&zjojz53$87L+I}%ci*5EaWl@ zBYA^7;sQByPB9r0W^t)J{SjlwM{`Wl-_ZW;6Pt700ZvYlKiq!ygijA#sPRGd@B>;# zWnfrKKnkh>Ni~8JC>wK3tUX*fjA#b|GfZ1Ci#0(Apmd)<#B$&L=Q=Q{66baMqv$uD zzp|HV{gZ3Z-RO^R{0#C-je5WQ$)8WIiTlpcLl$>pZ{ljyYQ+#2GlsYz!(vxk6~|6s zk*CT}uf6Q}myd5MGNM6=vaxJT02R>`FR@V}-QgjzLUoc$LV;nbZi>h4F?@?)IkR#t2l&4O1vs0!t z`Ww7WZ0Ef}cPu!y>gPv4G3@@Q4L_#K$Gp04-Fy2JjLfo13~=ZCUt~;Zc)SX}F&X9& zrUb251Vj^{i5sYLvMnjk^iDWP&G~J4wJTM!5LB>&W>$wa23N02@t|5+g-;0Bpdt)b zxw63O17L;-+StgFg}u^1j8Bh&tWsT8V}$@%W5qZAWck%cmh5=-Ef?Ohpr}q?f_9Up zQ-Z`bay?F86h=fzsD+uKN&k8LfiWS>bvx@&zK z#Z+uDc=m;oZ>Sp1fK+9OVnZ~`_xBy}&DgyM{@yCI%FJ1B)kATrY}&Nry z3L3xBf^eZ`XDa5I6tuGFiEBy&1{m~q2781Qg+2joBv38}@>%4iO@c0W#t*$mo2&CwsE>qJ3Y;A%a;==K)9vWMJf(e z`W$TSRXTi#%7+~|?ylBZhZTn^I9B($u(A+k<;9wChC>XI0DsV4HT0;EyMk~fD(|>x z)_tqieN=X0x;T*Y3PKtrEmEygTL1vv@_>Yf^7LOVK)$F5gFpqi)}WA)AU?LI7;-H@ ziw10}GA#a2Zsqxd$;dqI9ke`iBf2kV;id6Kv^;YZuJ>(IA76YyUw)GQ_R_C*=#9*- zE=InS4gfug`hk@3l$6EQ$U)d#%|-0O6yzi*5)A_hj_zGmSN^KHz|0Y>?-IgM52~#% z_FkG8`rFZJadLX`wrhT!afluw)2eAism`XP3{Z}5ue@EOMK-+TSorBNUY%Mb^HxC4CtyfV$*m(TmOO{ zSlNQ6(eID$t=c|yt5LO|EZ5*9=fU5i{WI_^{2YhYC!T3keNG?UJXfo1PhE6jhnZZ~CzDgbcUgus}A zLIBY=2<1jTWeHNk^0RYo@~{a<*y-`3NQqm+Q%hC*eIX(3<=VLfhV8j&rhVPD=gsyU zbW0xp-)dAtGxXN=USz*^nRii*YV3d!H$zB^Kim?%z@BH(NhwHAtmLuzDuIq@;J+PK1>pu<|=>4VUrxaPg^YO{w zJ%4NFe6sFJE`RHk-g{h6)^9Z!>h^r*vAfCo8_ys0>!<~>2gv%~A8c(N_fX(DvVPth zL$|Hi^tYGDdetHKT|Vr-rJKn53!g2TJF?})U&;DVsjkoBx@G5on!kZ@*|tvJYvAYu zjU`f^iV@!po|=LYu(BBW$!F+xF6v;C5iSPQ3X5$)jlve-h6X^EM$@b>FBz*a1dvQ# zqNy~`MY-9$hz$WqC$Lf>kI)3&`k;^XK*?+dhJD0z6pRM^@=lCO4U4GgyWaqxl;_P# z{akhGSBeMI(6e$4McFmYVP;dbO%Oy*k#-S7LgBOXb=D%%h7!yj3~GEuQHE8q2eCKc z=2yxDJV9@`L&!?Z>n*SD{q6(Xc017UfAggeB23H2{k%Lp_tb-QjCp~d+ySpNXnY0M zw0v`YnmqcX&%XV&{z6SUy`q@GQv}KL?WXIzWaSw@ef7X;?k&Y-cparP(qBb9??je^j?AoZ zD+h3?V!6s^J7=AMIvT?S>$%Tto*dEZ1%gS@!_-5jqzmiU=Tv70B z2e&()g|6pQl1Mp#c58r3hBLE3=OWz5v`4B1$1&q?9;{_Hp-29=poZGz6_)*zeXb*f zhD*xML}J&fnal7kyuO*%97dzI9s>J;sX?gAoTu2-IBg#u{No*ij(>XK9)I#nS!I|b z-@g3n$#+i=;w=YhokkdYk;JRWsA&h-k`oh4Rl_%+;2BlL7>4=a&M}#Dt}^sH=ubW= ztoY@?Kjdc2k=??o^NyQI6_0W31Rxn^lD5uJj%YX$1(XzAPzom!u#tj^^Dln#;s?)- zKW4XK|D}PH(J)Uw`<=z%)cH=mQgadWJZ*vCw`MNdlxCY5SAcO(aWQO=ncO3s^Supc z$oKZ$cU0pUe=V*UmCm30!gG9ls*nROB)z*xk(1nSHp!<5!+=Jlnk8*SIAacy4koY4=EiuQnkwkX-O!`iE$V}&s|mc zltAB`^yNo;Ht!6%${F(fzqjYUzU7|cN=KPJZ#3nM#oW9Y&F~oADE_XUZ?8??Z_<>t zcNoikN|havMonE*xqgQH!e5^;x3*<;vZ^+x&t2!AVyzE4eQvthOxZ}bkIaM=-46c3 zDmU;KRwu<)fTF5)3sE@6KrO?93F?b}ZUm*1qccZMyyujchVCpRP`|%szHEQ|?5S5@ zCFvoHqX}y`olYR~4k8Rl6$t|}PTI^yQ9;K{l4`Kv1$L7v4cJ)E$6_4pNNWd;n++io z3-tpjwtP(T0=e(zMeBrn57)~fDd$_5`i?Vpk&{@FpUW}H@}rNlL8P8D#dXz(Iq5fVUYZX z2xKlp#6ea1RRN_MMPSG2cEE|V^BCgu=ixiK{L6lv#W4b^A3x_8#$nER}MQV!qj}Bu3{i^0^nB@a@Fp{++;5 zfU-=pKUnW|H&?*AVKiJIpM7cDm;4n33*A;OIu7e9fy6v1Gm}0c+8jk9LeuQFy0Fy7 zWr9)Y;b}Cq1H}b(xXGffUQYJ7UUtw7un5{^2sW^mYR437LN-+RfdV|^VTmL z?&`Bw?>`%gQR(`qp+1+$7SA5uEx$CAz|yDG8@&4Z5qvYK<{5kL9#@yF_T0dbvW9_QI0@1CGp8Ty#qLaGPMX9E*x!}0^GflsM-iDe3+*o#vNJ_ z%mH9)(8k(6|5Uu8>UkUiv*bznXD z(HPfy;}s~;P>qMn!nR^lq<*BXlGh$S(fQV+x8f~ZhII8vkx+ZQQqEk_-l*wvu_+Jp zq<~8%@=*{f&`jK~AiP4275TJ-AFe8FK9~ediXemjZmqn7`rh!irZD?wf00yB7wX$Z zzbCG-4|^H@yMFhs*RI!p!)w_8$nPLFzC~xh77}=?@qg=gclC-J%iDiwg?72p@3sHN z?=$S=`R;n{dhN3N#rCqNUwUBZ{dD}tN?)IKv0l~1em%Qt>|&lN_f@s)5#06q9bejc zP`f^?OuInFh435uGgXFb6tsO)OTHNtP&A+B$D4vav}9wOA%en-&y8 zh*wUHex2Og{ErFm?Ivh`SJ~M=rzBTM0H?i7upv~z-Y;4Xw)Z(w1>~|my zJ3&Z56a^@%KyVLb1B=;QEWov*d?UlyTR90Hj#z>Km{)8I19%hY%L9snOo*K`Fn!eM z`a6dHUL?gg%1_^9KjrS33v>oB9ZeA6gTEF+8%uPPqc${~vM>Vbi3l!)k*7^*2{zt9 z(W(pwZnhVeyb}mKqEY;-bjTVFx660V=Po^T!ZF3a1X*lSzoX2}Tqee~V67|4)XG7Q zD!w}^3P!^nvZ0yUdPCdabPR7rVve-M$0dbKhnoXJlYn)TybJC%Yxknh61ySvsI~E4 zZy%i>c&D73MQ#0VIKj1PnL}y7`d16O;Ds0mVAeubY794mb258^Zje`wfnChE;oi#v zUmiJl@E@G5FdFWX4}1G#e!Uk9%9n?bqs-p$+>X3rnmOolp_}3oGJ-Re5>O`$li*`q zCulh{J1Kzpm?i~nEOZR2U3Ed1Yf3r>F@aE6vS+|_%x?*%GaBxe_q^bl*RSxAn$Jw_ zkfUhWl07FKP61tH3oi!4EnG-ITNp*xw)kdth-tqk`;dF&t2U~Z*UeKeT{ofQCZ3Fz zHVo1^8o4_Z*N)R(85n|&EJIR|QJaAA^IRem@n2;!MqBxHH%n${r1;5DP)GFPoUk$E3D0U@w#@ z*p}f_vw+cPdXGJRkf*w;0HN+Y_^zthjNK<+*FQaT=I1l@yl+!7Jd0zwOa>uX?0`$7 zo#$p38vYru4?JZQOPQnX=vX!if1lHAV;iCfNoYj}0!W&Ptz1~_etFG|r!UeS3Ruj%eme9xVEa~{p6$@u#>giWxpaHfb18nm8 zeaQS~7~CibMrYpkVtmiv?)&G2sh%eW-@7ZK-}Tz{+V$G?`dwar#q2mhCoO(>1)q1n zy!yPiUU@|#6p}^6!4{vVOAS<|r&j<|VplH@D)N%no3sTtv_gsNpg{H7pbSxhVL3gN!=w*$DW%4Cgd*8U? z8(DLXJK@ev_figwW%gwgA;Ir+y4_RVT89p5%m&>+kGPa`humQ$M;F61Hkik-rf33W z9fKA%jinMg$}ru%AXSFH%UfQ%>FsY{aTI45aO7gHYi?xbq=Cp9$Y@w$5>K%KfcSxe zB|4X~d-VS>TenO@M}6*iY}=99sV{RH7!$xKV6towYk0`!gEE}b2-H4 z4w%uUY0x@dAoC(BjObv0um<#qvB6q)@vWDh|EPknxu-7Sa(Ucg^TUP%4%A7_QC3$t z4O(|dY)}~+_(SrZGlx$(J2Joc{uCgu1;X1>ee&^q7eUFEA=F>cb;A(OsQ;!7Lq@|2 z`J&6#JTq>=J;mvsviSCG&HgDOVvGH4nD)C+>v9zF$A$1s&SH=+X&5*dho>(Z)$3i4 z*+=Btmpt`-%Z8~s$x_Nxs0>jyu}#PVq%LV6glR^H(>VpC%Mu-YsulISfoK)`1}0Cy zFNi$M;{+nRZM^B=tLlI0|3{}(ACYYjujsoy^d(-OQ%Svy5cva{O&Il0Nr|(0DcV+; zz0J{tkb?UfIZ?u-Kqv*^51Lps)j<1{FJ&p@N-a~l@GQbOhAbatAxFD}R14qgLBy

      $3vJ!86;&3z7eqr6()X)4N|Q6zVQph`plq#zw?DR8Xl8B-7VoA za_$*rmnwa(@nG6cf*+zH>n1&~Mapkjb-O9m)Y8Ie8)DH&q)Z|w;p3S0MQ;b}m6cH* zmm@bE(X{C$UdL9GbK|vN&y#*!iy8Ohs@svlCQFPHqfBwLF5iu2-73Qq@?keU6uR-g zRmIqV%8K4Lw+AWcp^@$OE4vIyx__I@mb0hz>R$tO1moolL+EH~}+g0`{`5 zC3&z~Ui-@Td%kz@!9`~oYD+n6EFpeTCC%Lw)81Y3j4FdH-~8Dl9d&%9%uFqjaIs?* zSQLNaWNpA{q1lEg%-PcDK=e+g2XeKteB3^-UAgCemmAb2pfZ|N+%Q=Rz$NhJ=G#c& zQwXCXH=pEEAR-Y1T(m&#hPV{kg+x|y+lzR03dJIZ30AWMp1E~YeD<3|M*JU*4|*A% zl9xQX{o{*{@o6Sqg$$HaOcI4#J90Jv@4Gh~;S#lwKY?I9kaJN&*sbNmTZVtS{cwZU zoxJ2)pK9GX1u-c+|Dw7Nve$VB6;&6FB`S)EJ#ReLw$HNzUc;aBlswLS$Hp7y-c+`c z)yl&r5IHU)TR~*&B?TZ7omtfc_A?U&kEDL*KCMjqMUwqNL} zmE8H{bnO z_r#C>DPMN_#8;#Pb$>ZcH2G7YStef<6``whD zr)wbytNQTVa0ZNCp*02kRlsE*WZw9FM0m>MIWrbNHe{3 zs-)`_lT$Mw?UF|cR6~poA&CNh3h`=GNFAIC#fKpWry8->1QUV;LsJf0ZNh33iJZCB z@<{FWzxFHlxz^``dRg{fwNLZ1pW1cqzlL2X4_qltE@Y~ZT*$;QHk8pqoz>SK^N*RM zx>Xu@Rla>>{WY5oxlhlH?n;5J+UJ7KPY(#N(Ut@>+)X&H0-XHl;q(L=;*%7d)Bd2H zjez^#;@#t=*vPqON%s;*+Ars>=2*cW- z;=&DRasc)waHKDsW=$lfmO`vhw!9vAa z6iH-6vW3D;IKd#PXS^jCbh?C;#Lbb^m{lBd(q_eHvE*6-LCm0y^~UW`o5zIg2`m|g z5I;Ktf~V6=`wLIKb^gm6KI->-C(s^RA`d!ZgV5{u0$lepyea?EcH!Ko$3)7j!D^pN z6_(lRYRjf(m3%dwjgv*k73_KmyU|Sdvw}M`RIv4RF%b}D+ z*`XlK27*?$T!-gPd7u8VpI6M>q&eR%QlfsCP#o_LXJ+#$5IMtjb%xXgGpA?|;0Q{g z_^Un)D3RTK29%52xuOiJRr8@tDCG;WwGlO57nYxWp#02C3&*_RfiSaX8YVh1T0Q?2 zfJ&5)LYM*Qm%$ws5s(c>tL1x#Z^`#Rvg-V24koGB^+o=_h0u1@bBQ$Inw2sgfMcXa z5E7_H9umAlD<6fvVRaqa#spN2 z$vcsU29DMZt*Cr~+*|A5MNp~800pjcZ(lFNdikcsy$+wuPSXuy3OyX4#6giJ6@P{o zGQ8B`jJ5Nkknv}Pb{@blDZIf4VI8on-{0b+)pcDjk2$N)Q7^yzVcEfr(*6O_@Se4PX4OYlVEbr<1TGjoF51-6B62z=ukULo zht}`gzp6U{lhPZnGW<&(*8Ae`xLQ3fXEOyktelZZhHK|xy4%e~6X6V!LFXiEG{J$K z_S+kSRCp)2oc|@C`{m!4a(C}$RG&zNnxhKlMRG@>umkbq*fw|zGoIQ=oSE)5S7WqP zur1rtlHfwZbS@*nJ08Q4U@E}1k^$(zhoM~scsx}KLPZr3LoyLC$jl67Vts59xd349 zaInr)2MZ$RKm({~NtB(%9s(->=|b?aqaQ!%_I-B(6IW$;NB+L~9NQ6WuA3RdLR=44 zV6+T_VujK%Wzp#AC1EZ)FD?XQf^J09kKVUSuDxH`Qq$Gz!CvKU zC!hC@{ML)JR?fbzUN5O+QM-EiLZ7|70$<a>2zg=w(}vK_v0+iC8#x9XPdRvTN(#`SbFp9> z-y#9B21Wx{jz4_f(?2aZ?k6Kjne1Msu*@~aoxLVs%e%kPH1@sCi_3QHiC5y~+c_vQ zi{Pl^o5LBe5CxBL3}nysE|5iWoY&oKL#vb-#*lec^gNNFpn1)c;znlL%b5rSefJfubdCMwf`Y7ewY z`*v84HMzp6m|sZnQG6T)IvM<+#+l7_j~#3`)^2#C(YN( z^N@3`CjM(D0zalkp(#zaC^;s|qmh`zFqRY$f2g1c{crg=u3x`#|9)7%4VNe2C3y{4HB7ZE4zPcgZ{OcK>*23S^?8d%YJ{$KxmfI4vnWyScLmwzaK@Qw zh2E>#*BoMkCRk;rTmWF;gsxt-SBMf4BEU65nVgx{+C;cj40R}xL?9`R)wh^&_l~?K zaMd+c6Lz&4{hz=|{wy#0TkD}C&i<=r$}2xsB#BG1r6@UCg*2A}>$N}xC>&G4^KP-Xp3KtM4W@TJc7N)ZNfCFH;x^S%{PZ$x zm#bc_J!Jc)x?+Ep)COT>4ul*$sTeoM3aGR?C@YwAg%oOaB8fE{JQPgVq#+9|1kJj*yGx->{zhZGDf7~} zUZg5Iyq|iR!>%Q%`{nxnF%Q-7eqCkQf0egByUe}R(xQ{gqRonYWC;3vQV9Vj${gZT z9eyd(T-ZbfIOw~yy15qMj^l1h*tUgIR!MCK#5#PPPU}a#rqB)B;EM1%w{n2VX@qWROl`f178rtBYrT-OGcBn znc7b3V>pSM+W3Bn6L58kGyI+0@aV+jI|GxD01;|6c+^XwtyKel}_Oby!`TQd& zNHNK5$Qx9Zwkc~A_Kv`^h6`F3&2^;|Zv_%Lz^<33%hfyYe!1_@+^_G9kBJ9b#LjAQ z3&~K1;|LEH737k9qss|X5=d5DzxH%Pkl_s&U4c zSa%U?bghty=1nZ<*)B@~xs;=!&z?LuSJi93=j5fA;=0emwqV&D$jTxz!^Gcf)9&?SP<0uSX7dyM9Bln$N3_(nT69Qs3_Ak>tk{5 zg>3`0g{VLXMNB1{O7mQlo6U5s8)Fabt#L@a-ezANClN?DlA^7&gVJc&J$Klu z!*4nCxYLW0ltGE2SyZe_a+y}n<0rQ=Z;a7wh-A>a1~NfBg$dk1wuR52R22Xz0k9JO zR|6nRPo6P3bNznTSM}UA+&g#mJ;#rp)PIc55VOQZAywTJgia0ga4-rzR!P!upWNt< z3m#wn&C_LD`tpgmwHDs)bOJya$Atv24Du33s*g@*qX0-5S`eLPeihWL7zA_ySV%6M zLP;h_?*z6x^51F)f5D)~LYFoa`t#lJ+%fL^?>ck0d8Mif1w%pba4^g&D3-f<4%SRz zrYuOa!1MFOxRk_89k6ttHvs@>K$pKXn-}A=0}BAt+5VtJ6$WWah@pDF`;zPK>rU6z z@Z5EaJcoWVlH@u2mlhtTEK|c`6476Pv;*ZpP_T{!pPFUDF(d{Vfgm7;ePrhRzaF;x z=vc452mT+=dkxP`e7*Ux*A6;J$KjGOY{EgJs+zZeeH@o zfl*n<#D7RW)U;~E>#y876p!Woa$7Ce+&<%$8@dCuYS1?GM!JJ)h+tGh1fv>CbYEIJ zWsK?hq}+(yhIg7b95CiVO-ukL3mQxoV4h%SBVKJbl5J@LX1^;&AUvxi{aV+7QBV`v zSTNcVj4}ay2K`yaTr|r7Kx`fO7c#NIdN9ZQkUsRt5y`QG_xO{Kj9!KVbB|uw+A-#! z=86*%(ER&cjJFm|Y+QyanD}5eLJU)935c%F@4#Hm<(J0)v9hXS%%{&2aD`Js3Z$Ar z!zgfByU0P{A8b==lYpHb@-!h*6%}t4qQz-vrh92B!-*JFkpJ#PM==S-{1p z#NRn6_u+r0|1x{|{Gwz@P@*Vtb~w#uApWUK6F{<+(5r3}cu}IN2`gm*#i6hU7B;VF z4oGCM8(9M?+i@nj$JV8L5A1#tXmoDduwRCKdNOX%HN0AsN4BC=2YkMOHK*yeuo&RN zq9{ZmXg0`45&$iXc^FmCV<2L>X^;8-#Jfh)$0fg{9&TUb)ip0ymE3k3My??j-&ISSED6t31#@!RxU%_NXRKuVaHba zO-P63KCS;Y6Za54fN2`1uml}UQCm7zZZ@-R*S_8`>B=<&NI~uUwP-YL^Px*W_xyRP zlUR<|hv3KiKfcZ_^-l`#2i&cJILAlYLC)EMmV{sEq<^3#nHNVkq9yUn79%}&11ZaG z9;zPucj5Co3$OF|^oWPGR^x#^L`EIHh*xUzO)Z*>AAk3B)%jm}r}})&`B6MJ=l#cR z-_-7YQ}Mi66snq#69M!NJb6|JF_A{*2Fy;?HNup1(CY{7fv|r-aW_c{42tHEcf>Hv zuK^%893TY-i%me3zz<~4adm}ZnJC~30+1Xg5-OrV>Z4f}CyS5B^ z^iBK`~)gGvohLZMrNN!5A5qyjO5F1wcnvU|A@yH_1x_c~tLgEC*knRMBueL5YS zN8~2O_8NKLCu8;Uc9(WN14L0n8)jHN=p^wN2?4++cx)dp98; zl{?ql`o@ZLym3XEarK<_mfhJUU(S%xgICM;I&8H8(KKY-A=}f7#1!#>SwZK%1Ff|iSr%^cX zqALj}O}QmAZp;4qrAGsPD_m+%04B^6AZVn_68@V50#ZyIhFTU#+N{&OKX>pmcMlk~ zwa2Kt^>MOPZrBI&LUUFTZ}eu(PcbJX!Qn}zvoKw3Lu#ieSV5|JH86Ds3g0(*cqx17 z6Z!t_tvl4|y^Fp=>rss#@M#YZkxzB+TXpX7Evd5`xo33}RGktXA?iQehe~Lj6kaK4 zJ!L9qK(b*5q`YEhB@9S4JI8=DA@}_aH~+LMT3k`X=>r9Wl}eAJn8Au-y>T;LL}5jh zqOhU}g%x;%Ju0N6FrR|ebc#Kp*J}d+X?@RC)Q-)?t*`9&$tT1fUZyn)rf4|j=eUG7 zEJ`Rl2fe62_Q(QN>SdG8@-|IeX{#!|Y^u`x zrN`y=S@o0s!B=YWmUMA82sWPrwLqx@+zZME1B^^K>5N7>kmf)?){a@!vdLsP(*Y5P z%zuVFeCCZCY`uRkN*|-)_}o1Yo&D3~#~v*^RReqAzz-V_i*@5wB|9}TMI-SDIjr)S zOC||gGoo14fo(~7ro)g^T>_-qAs7U_LB#npYyKmMJ}n};2-0jKS$@QJLauG<;(uPX zJ5#DMsn_ph=QCnQQVK_^MM=nnTRD=1>Y~f(Ib(S@RZYZhO5`aw&(<6smg7a_=^ z8y!Lgg@OWUTo;lUcI0BXdcehS=O&z8{laS>bm-Op5al$?Cd0A@Ek>gnJ}?J>qZZU= zAyrBV5-;>a(UfAzvw)#b4gn;H9sKx7=_f~>m%tNbaeJh)AmdWkD@x>SZc4$NKqedF)K*LRd17%h_ z@ZwUjkf1|xjdTeDTq|hzZOXv$&45C?&o}V=ynf``cTj2jMbx*8>7znGkO2uUKnkgMZXUIE;2M7LUjJpN5?^lZ z!be{CqN%NTzQ-wkH3_>i?ueJ>U+;P*1%bL{77r?^8{YKYY8~*@5aJS?wP(5WVN>py z^=r73^ImHiNHTRFn9qeaxH&OOHY#ucrHjEd=>9UV~y%GM^#_Jva&UQQH4ZQ+!tRPPR& zS$`o4i9{ku9*2(p|2x)p=qU5T{SsBg8$YX;IwwSylFoJy{v(8=2`^rb){QP^$_&Cs4!(d{T~dR%~NIQ~=q9PCM(7!@hh! zIb@&z5qO)?a7u2(!W}oCxQ;O7EGu$wl~P-+0M?6u8BS*{?jEXkI+;0K6h7f@AsOZY zp{>6m#A=ncP};HD83BerD&-MB3~Jiq(vSi@)WJj|i&lL+-}cQF#y=Z5pfa=8PnB7V z)l!P!pR4!n<8 z*c;*rm3(b@!s2_3#NG}d-=IN|2?X8j*iV*h=1&&;bw9X^UHlCv3w25RF%6~|>+}Il~9JQ?WwBm#z$`(6Nf*9H3kl+_Y2~wQ9 z>Vhs8NVGd+;dH+7&?RJqU^>A|d4@OEZ0_>CAme%1N9T++-?y|^@0}Q~>O^=;?(^RF z#cQ|!ofM0^eEPLcnTncF**pXa9lVa0X6^jBx3W-74JpULhf{0r zxFePu-5j~nZDq$RB+)!Y3?qPjK1!jjESpWWX2Y2n7h{n!77_OJ`x_KOa7E2M#IuM8 z!ye%KmKU8+EN#_t2<15B02^ zp<#lhW%RLnCcR{`gd)^mkT(`5A^hM{1TF0Qvi*{s=@~T|k~zbgOMhJVMNl``QL7u- zkbj}3lTip!7NntJi-ktu=*+WbuvNwi%|VqRm3!;jU)H_w;5a>W4nYe5qFYpEza-Fc0U+Z<2Yv&G!yC$qTQUKx2z8`WAfaiiSXZyg zkj`ZW_1eC6v7~|H0b}7{S&$e8bfJXSy4qil)FF#UzYXD-xYM%Xgvhps6P^b6K!GfS z1N;M+CW*FXAZVEl!-`2ko?dHPX4&_fWn;E6D>?UsV5gwn7JyZ|9sTiFb49 znhY17#bv6SA|jV*$6R+BHRbp>_Z|9nPq1$q4Vm1l57&;E>GBudEy4h;L!(XtY|36x z8YR@~=%gvoW=PtVa^quXKD1!fzyZIb``=qNjIz0f(_cB$T0vxEUF!IDXBu`w0XI&Kc8^;jtjem14cfyN39vyiSW4z zb^a3Ztg=|?RM8Ou~zQ46M$ES+0Gsav(LzFw2kxL zdv!<;riDeRBU(}F2oa^GsV+pRb@itotkQEN=I0)4-0$l5E)?+=t+12DUo+WHnSoIT zZcVr~EFn8)Eo36?WcH%+e+7j^I|qGhhA9z*z;m_-^CG=4KzQdbEr!28JZQka|6`y< zZGbXAchUI|KX%~xllAaeCJ=E6sl1Cxqjg*%*SAct=@txoS2)_nG3}M}YoD20{rPRf zn|5s1oLbkhE8>R$95Lh7`aUipnGR<-v0VD15}H1k!$>0>MA@P^?f|{VwXS3u20`G- zRIE^@x>^#SFhM7)k`aQ#9tNon*2nUxc3~E*J1ZIpgLK6Rvns=a+^w?f*@d5v(i!UJ zX?7cB<;7-Kb0}0(OW9~oO|X2y(*?QFyHA|Q-hYc7&T<*pD^35j#|&jExC5Zv;7y7fMRjk7pao=^)ML7!Bv;)=#{2!DZW)7sFSGd*}~?bau)IYwP-xK3T5+ z(h`$q=HMY*a-9Qc>-8G38KB zR4hetW$uEJkqPgM>qr*3%Nd&Rz(C+iI7#NyTd^YiJWmub!bID`8CF7B2AGwPVs27L zO}?`uvhls$cAWOnO9O1XrrQ6R?37xs^y=KSmy!*8>^Gx${3{rK@~{uWcuaCE@Nvrv zsu5B!iY64GAeHEuggO8LtqY{(tTe}Rb?*K*4&2aQBj{GsOF)O!_{ZM@K|HMNM91P> z|JM#4Oy85}I>hQkpvLT!gd`sg_@+W}8WS%z3yHAAgStdPnTBR5O5~*cE|5^Jq|#Mo zxITB><^%noZTMMJVl6{grq+XrO{ zc}uDVx1^$I4%9*{py&!*JZ4TfDxso?OUR}qCjMAxu50DMUw2v(@cP`%H%)Fi_nISh zpk*LB#Z^)$g+TcLgCABc41i}~Z|Ts@pi13St)smRH|55KJ|Dhq`gq+68gbF{?lEQK z#b7p);aWj17Ix8>{dC=wTea=>=SRK~)T@hF5so4i1#xvs;< zb}*L@9yu{!xZ6mqCgGdVQU#3BtaCbNrWJtdN|AQ7&h}851G_3e16KArQFH#sX!ak9 zmq%B1@AJDnZ#?GHRqEx@nq~hgwTaMMF4ruz$!o2X{sLa#PjlRUU7YuRWggen>j2IA zvt7EgOLF)AWb)lUCu-EmaC8O5DZxbRhf0{isF3DjfIAMhhQrlTGyrj^jIP?0hxWia zKZ6Byqa9H|RO&3S9)Pc@$tKf&DO1==K+IMjBt6LQV7y6-$zdxjDB6yj>+PCzZ3bBb z8;EYaNi)rOllFWce#KoYb$K{V9UJtpL9edn_ky<&U#9#|W67JfBzI)=A6GT}JVqxO zg=@Rv6l}l`a;Ieh7kxMZly|hS+U@TmjRsy^m@j+Zy=moiO`MZQ!*qm`3Cijb z13*^@T(x3lDQM)IFpXheM2e~AP=64riP4@W82lzLxb5CAzFoTaz?}^wstikWGd5l| zU_-A<%d2cs7MRFxN~Le2Xh^h*oY$4bOkAaz0l{&p~t6f#E%(FfrH?Zn} z%Qj5@^2otGUA0`Ao7=I`zxk^(%C2`{hTEVN2IAH+lp6rI2u6`QO=s1x_rVijO4i4a zT8dqFe((A&-kS@Z^TfLY?wLe#qgq7+?38&JhN(>mVW}DyCJ2>rOF{~A$#6>IqsRrL z1E8@TsK^0F(;ul%pC)`Zo9|DiDX-?_8u0qtSX-Ac_BTI*mVrk)f1mc%`(gF^Kk@uW zh;jRNadC(%bQzwH=4wXo+%owH`t0O`)>VMrP}RK$_ugDCHU7-?gWl9DZ(D+H6(qr& zC$g3x{YW~Bhvp>Ed;|UuU{7#7vLHAEG(2cqQ;NgGm|*ZID}gXXm1e-<23!OgOp=S= z5;U_=iUeX6U}K_H@s?^h7s4|naCF?C1p>pM8_oZvUb_-K=ZLoPi5SaOq9}8J?us{l>@zk@i1&&J z@rnYvIAcRS*Gw{gtfl|!plyQ0{uvK)WL`h$EBM9xjX}+L!)x$!@&!7dTg?dfbq`*D z%6wKAHf34v=G|U3HayaO0V|NyNV|bBN*!os=M!9a1+4VWa#?Pl1yA%JVz@E3a=s_e-USQ9y?U^o-2Xiy7e&T{_HcC2|fHt-83DB#PZ@%Fnc{#NE8o4t@ z33IHC1Rw?+wDClEEXWJ0M5;C(#zhl;scP10zTnIEA9->}cO=Qx)r94_XXCDef4C%7 zJV@|(bs!Ujdc6W%3%S9xd1{7-CQfqz5}hx#lVK=(w2h0-LYz!QUO1WjcvCEU`IME0 z--23F`Foe=Rv*!D*~EXxjO8ZEyFnLG#(*f3MS|{vMM7yLOOWKlc0h1A%wd({O?7r2 zDmXE3s*{Zab+Otmcp!sLR?P%it7L-w;j2s101vnGuJpsXZTGHv_vF2NdUFiH>cg4O z91(;>QwHljGFtdP>ZXG!V+7lu%EzR(@-5@Txh=K~_cXW3(2Yk5F|Uko88}1 zIPFY~i|) z39AKE2G`G-{!_k-lU%W>noHMgR0lRAHOppWxnp8g?z$6$t{FlDF~>SdtP$xL3(D@;s3PijT5@rKb4PhDNibfo;t)XLRGf{ zDZJ<`F4oFbN;qOP5Xx#_NDZ@gBv(a&>nc~XEM0&<8{X7KI62SBPKS`jLrmoz4K zZy4A#{&UT5VA!9`egFN8nP1%D&!`C7kKhG%jERv-QBJ&}v`zE2Si znS!%<5TrwVhzs0#DW5G??z5qNn6VWd0fhR%=6VS2B`E_X;{nPKDo7z1CdmU}f}`w_ z|4iefivCrJP>o)j-Zc~@PH_52aQXhl09NfDU)OP`~@0`&7a|AvX1PT1=TL-(p0b{{8& z0igP~>#5Z#0(9+>znJU2`@$11+U-F-yjK}LAh2zi5Mh8hx1yhky;ob&&$Q;9R>aU% z(>Zb|y5fs>yCZe`VlMWVhi+RN(UVA~EIwCVQ*E9?(vi0@l|1LK=5~CLHEb2gq0=h3 z&akKi(|o>g+J#xfo9jJl-Wtj>l?%@bWx~-}e5$p%9&O9N4N5+NIRmg_0R*fmm<(qm zUsmGgcu?vQU+xn3sHXFYsD>ps3;q>!!$K8i`hl&0`HxfRhUbq&-~Q~`+y4UO3wyeL zVKls!+we#LgAnEi9O4EbPV49dJ+8agUZwX|VxYom+LRveaJB|*qvRaZOodqjk6p9kMoD=4U~W77SB4e z?&p6^EFLJx{ecQ+B^jFX@jOFWfg6xb0v{a^Nr+7QXA>WNuzMrsyNp8E9}zcBUtk#MlOReN zL}caw6Ts-hrR1~lO@4J$jNv2IoQFs5$51r1LnQy-1 z{oeO^pC__tOwZ;c6)$>Xo-g`#d;4{v?ViI4!Y7L*)zX;cCCQhBBvCPu=tJayOXLQ; zd3;8|Wfs`BymjkWH_YuZ^uGoR_+I<^GbTSftyFIcZL(z;oG@6fnu}ws8Z!J~qeO{h z;7>%mC$?oxRhRY9L+);GUwrX}%kI7FXkA~siJ0mTLTnR2=vd;JmPg0#9)8xx>kT9r zb-{V+A0eI2&%Ahdi}`PaUk?UM(X7xp-RY5sF4l%-=j|9SP%D=sQBa)|9qzId- zObymK6;#{WXpm$ubyANn)_t8%+8Y+kiI1t9U+`?p%fkW&rguFb3=4r=PoH&Crv2^x z(-#{)Zy&ef-AVorLmfCGVCk#TqZAS(Esu$nf`>sAhe=*1<=U&$t>#<3KW~3xTko0? zj~=HRy2h-=kg5zMpDC>PvVSdIw&v)Ui}yW~=U45m_g%8NcIHey+s8s=iEvJx4NiId zQZ8@s6cysylgUy9PIlmZh1^NTF0e6v-Cla1kFq{@qFz^_^pH4dg&R_tEcro^=kVqk zQXg&eH(rTA+%t8+%3rrHp0H-Z+r0=>xl*fSLYK$HV7l%AT5U-s`bt9m9p+BVzw4~` zO8Qn0I_h^CS{sYH_q=_*9It~Q*5=n08NO+MYtX0XnJ&C6@7~Sjok%K>)S;eN06TIs z_&lwi7o_&3i29r-CP=X;_L~EP6B70Y!ah@$`|dQVSf}>yYQKEt)3xh{U)x3FSDhno ztLI=!QFoZXG)p`N9zbde&0kx#`Fs34WH($gu;YfltNrpLzhTz@_@?GX^YT=t^@1iU zb%prOxD?2D#@`4zkq9G}rQU-=3q;|ZlA2=4a0mt@Krds|bb%0iYO61Y)?a7TSG7Kh zeg9YgIm!e_JB~m;g)74*UEz#x+b=(=^5SK?LIscE9*IweVjeLT;I&zU8rNw_j#G1i zj`V$|-?!J?S-ti@|N2$~zRTPB3`p8L`G#pa3>?353jq=83pT{i2T=ggrXvr#%LDGK z?4*s#UfP(eo3_Jl8humB$X2rvbcFFLKdQINSI+tpl%2&FvVf}?PCJj@boy%GnIu8x zTQw8#3H>@72Y0vEtiD~?{^(@9XO_}&MA=x-I%DA7*#Oi}&8RIkVP3EMS-pDwkPf>JIlf%8);{;{_T~L|KXTCnC+mgy(m9wg>Y0H-&~!+U zK&O>{FC+_Fh{N^A_V&om`*&<4mQ8Ce#JL4Z(Na`ENci{!#8_%_4Fi`xF)=Z6#UsW2 z_R;XBZ=>yL4oK71d<5aeVj4ed%fe)WQ`u-1V zKhsSY+P`FDN7N+GzqD@}e)#p(KPR%SavbiYae{EQ(;>kyeHkat6{56-Z{fm8Ae$q3 zd6=RCnh&H2B^h!~Ot{9wj2LK>+NzxxJ&cTca923_jT_^{4cYSElV zn;SR@^fkPQX3a3$U^<|tBQg_|kr*YSgDH}u6Mfg5b8cL3 zKHV99*<|!o)N0Z@D)=Z8Sg7a3Zl{DPmZM7^p4e-2KyTWLd~Beb_XWz}^*FS=q* zK~+Y@7X(1>Y1L?~E0! zKv)Mk-xPtPOgOusu|VN8%LgQZ&;vODf+ht(u$1k2#Kp6}9x-;{;7*F`-sP{Twr|7R z%=NiD>94Lp$JbXOEA-kKX!{gw&#$)W8UB4_`iLdh4&Lb0b$L==zu(2QCirLw!d*cy zn=)o1*br+D&hf@#3DAyAg5+R4Re86dKJv5g-SyUwr(CCp>+LM3x9e#mg&<%u;>ITS zz@qZg0breEmJNFyr7p)y--K^FaM4+C{n7m~xE{9aB^06Fx>=_)?<+rX;~{s|^t?NJ z0+weXl(}G~htA1;BQelP^)3PU*XMh#3lHhL&w_RRWh>k8{%ud3m_6yj!viuNC?Ldv z{wxo3jhZ=^@w+>Jn5`gh>FQEC+E!H9lxu)I`lIKk(Z4*TmoiwGCOu;B^QA?(3kC#O z(_c9a@9a!Sq7(^9ly`$T{SbN9np58$^u@}(8SGur7A`CRlY;CYJCf z(_*P8d6=Aw^W+P+A&SSqBhLTNEm!|o(j0Xd1C|v>|J0%?mgu0K(pR=mSaF87K9x?35jb6Ox z08JdIB*Mj65qN%)-kktAYS0dKx*(cn)Ab%jU@-#4MYvk1)G=fB`kfWtseK7S{t4Z* z)-IhLC(9y54+&~^5nM9IC)+Rh&w&0mnW@myX81~UXeC;6G_aY*e=_| zgC5vJ{K47r+c3!0&eCYJAdNPqL?a|?z7rfFjlQW1knk)r zJ5x9jGr9e>logTMDd??oSPgW?Rs)@e5z-16p$Zq)d=z#v{ae zkj#ap9+gZpi0egFBQ?2qPPPE+;c)q-#x15-FG+Sa38#bh<8O-Ejcg9_b{BLW2jOS} zy~{$hv5YFj(RzgJK56PVr!&o z$&W|F*JtC^zMdf7f9oie?0M6$BUHyf#piFw>ksB5bo^?({zofXKQ$VyKg8#)KMJjH z#qH~kgApWRJm!ugg*4|*L`eF#x6pcw=J?=Nb(7OuA2C?H_T|~FebUKsa{rM!$KTeJ zC-DH>s_9oocCyZ{B%|bMp?79JcnNVot;wD*khuY6b4U@CqEjB`T4JKVjj_OEIN*=^ zM2*)0c*%V<`{8|q&+2)et=FGTqbl23ag@CLvA@4R=DHQ#giS3MT3vveC>az2VaQh@ z#=_;{*xcNKEt55$YYU^pK1Pn8JE0{p;%L3G1IKerel9N5MFjw|=E8;i#xZjHUwns; zxbtP5!8MDeAU7|o9++>6ntOmM!4Zor-$z=Qm}wDEJVz}|3{t#tdIuQP5+yv$o(0;| z)1nDUG)ajNQzA&L#6@_v#pP#V;!g`>P5=*Mt-EoV8&=()|GdYOMP08pkEg>JrlpLJ^U)9=4YtAHAyEDS-Cc>p zK^QZ<;6z)RMyw9t5gB7Avnc02nnjJ4=WTrcUU(oXhAhjj7n!boKnp z`$zh9-G4M*{&nU2x(n7X?}}R`gLwA2J?RYs?@J3@6Yob9>~*p-X3UJs4$ogQk%fU&pii_~q-mCl1T3_8~;2-oIC(1Q{8#`*xdCBbbs7wb+ z-1w$aArXv)cnmlLy(2K=C>vYNiag}w#yzBK3W^7{C<>3Vv1}ChC^Bq}F5ohTg9S_r ze01qorUyUmw@=colwHz9nJ!thr)FJ=9x#%qf8@wu^3MfsDvzovXSr4$@k&Lx$1$UP zP~w#v=A3a~Hf|w*?rJItNK`OcZBF89l^!o;4oXmjH!kv6zyw@^^>=|nFS7lWGFFNtJm87dfViFMtR3;!P6&I#eOe09gzBQNs#%K z3x|C|f-htiTVycFM;|rpD8tMg`bOy~nM*-3Xps_}n1H&PWxU8YFfGrFpLJe$>Khdq zEb_K>$@s|62w;6%uEq@vAPLe1vGIiHQZ#jdUUvinBHx1SC19>o7SPr~B$c%EPFr|- zF4zJ(M1Yy_C1_(qOq|P!AysGi^4G&|IAYB1{=+qIwBRDKTl#~ZOLO1nQx>5F-oWea zZ2xZUWQz?}x$NlMHeU717#-_fsWZ(0+!PSf@o*v^O<;ciGyXDgSEsWgJ&%D^zH0r* z=l485uPganU2=Nc91g(rB!=6BXd|-OB+{$y4QES{!6yH0$>m?aF_xqy&noJYrH1~( zK5QMNxJh*qWdjNJI9r$xIU{i?!;P<;TScz;=yiT)`ykS1ZT~w;YyB3le{D9X)~oP1 zbS8z?&vlY{I_Qs{Lj2*jr(N#*MeyPwO_h2ONEH{Rk`}82dM2c%$AI?s`1o=6b<`Da z(X0s@=_1`HE|KS-e$i(ePW&u?k6oU$pJsTLk5B9c^QXC+nLn+eSh)}lVLt#!!~>3i zMrZZEM*VbcUt-?1;g&n0mwN5)tv;>?j>(kn$?_|Ue|mJ!ibpj4Tb_xzN(xxY=7G!> z9+3}$FfQ+JBjE{#GGY?gZpzxVDzkR2C~LPgJ8SpGyy;CR$(u*bKjeyW3w3>AR+VG` zg3sv524s8M8HS;O;|#tL4?}>FSQOq1dBD_)1W2pb#;%*R_01m!yxV8*sV`5FMaP%7 z-F)ArNz1jf2qH^&aR;EyaX&`v#(37?)Q`M_gV+vh8Wz1Z;;KPkr?EU!Pjnl`;Wr zco3)tb2gy5IBC2J(8xZcdF&#aWs$)t7x(z!g1P;pSsk-4L7Q1N7>l>Dkyr~N3W5`Y zkdT0GMcg(Ki5Un4LtjCHvan^qzpikw(oo6)G)h1Gx-P#FL*pR-p^fc3?fX-6@r`u; z{EU3z3j^8*T=37Xe6*@;RRMK2nHgq)cWKbIr3YQ~k(?dYW}jJ8mz^Ee<+h^`)?w1} z-a5rnAwO$-_V@>y@9ARuw))C+g%t8qr3US|858Mu^xoPwY|n>}Pro`;%I3(DXs za4x4qAgVBjkp(dm*!G21#_O}QFPyMw*!}A)eY?vaF-88iuJ!UYbH?du5$4e0wL-U3 zdN_kgqyR;W$Uv~a%a^bulJPK)1fg_fda=(dnoxVeEFfZ!mEfQ!%-xJ=1l`Rg6m)$} zf$g^5qsBkNv}aJipujt5fgnzlmV_f0L4FcUiVh7ez+(~*!_ThX4bOCPQUdP=-7dob zW(XMZ^;Y>RvnuS(Lp!T4Rr2?98!lWv(5i>uK(1UG)KUo5^oX$pv~?f@k~)C zP1Y@6KkB~G?;kXklt6EdNlaT5uo=u-f|<%F8~m%Z&gCv+>lvrN*2^e0z7T~W3LXlv zXqlse8NTEP-+iqg41UtEf7!q6U-mEim;cX;(j(tnh2g7~>7k< zsPM(qQL*vI%7s=wy;PfkL|UoBFvvtQmPZtIU?4^K(Mji+pZ? zZBl?aiCKb%mLM!L2zhiuF>Ostp}~ECn*iJbxQ77<0Rm+Th)DZot0S~~MYvoK&Z+B| z&QcR=#vuaWtwz3}Na0YgI{E$cdyjbGo@@2tr4}w852KkGL7D>3S3JzMA+aZbO9sg^ zlD!w^V7H5SW!ma$ z)N{}suU)EvW)?bvIHU+>AJQ2=Y*{A)hK;$rSY2Dsg+ijo;bhVjlxpIKhXN<9x%9O| z2MzoKhks=(pxAJ_ymrHa$DY2KCas}|He^*7Zxp$Zip>}W-ZiWTEe~BRZaD4KA%uhL z%NNlvJvF!%fsr(G_+zwYtWbE?nf4> zw?Edbuf&Oor_IGdReWO2Nc01D9*cJTik-*{4nW&Ge?mN#=Z!(}@RN(j=B%L{UbkY+ zirbz-4|F|-nY@cL%I?Jk6bYO|e9f7;%jJ}%>K9#Hh60+8|JreR-ueMb-Wxgved+6@83j}Q1ex-Ww z;ritXXf2OL>*UGk`blHXQT^TQn_!Am?#rk{IT-tWEcuHdUD}K z6!aK4^9E`x0CoYNnXO)b#wcOsH$#ri^R-(v<_o9U?riA{e0f#>-1j@)@aI}GPS6>0 zqIacj%u9NPkR=4zZfR>pSt-n4hQMpL5S`6|j8@m98ScWDN zWnm46rJA6C*gN(*n1MkCLTFO8Ovz?*a75b}hJm7=uw_k$b1!H@xV)NQ0=gzZ2ZI+0 z5gr7hJC1K=qu{M(NhOmT)JB4{Pz6^tGK1OVt% zwS4{f7wuisa%+|sKWX}P>_5)Pew`{ZBd08AmJB~2KnI@#(n~V~88~_)^IT2+_ z7}+$*ui_4X#rmN`_x#+e(5G#dn;rfs&z^VrzVNk`c$(TIAqa?mP~TrCagF>w_qK)Q z$+NF6_RLBYLZxN=({N~65Qmm`ZyB_FF7|(iM61XUk^6^+-Z5><>A5-ynr2aJ0NFTP zTR6sr*Z}NBRX{|_RLw^e2tvt!DJTl@1i(8BB7;FsnF0I+e)O+z z9P(Jv9~YB}%bTPhNB=mV5IAS$6H~@%b}P1?05eEhd%;@mgh~EbJIx6X{NTG`G0;Hn zdSdY$*}bIaDsTKpyl0xSJ5c6ek#zEO4i@RnAOVUq77g;yBTngX(o?yHC<`E+HzU${ z8w=Sca?`dBpn@p7kiRP{-m{v(b&?S|75P}7|c}bU+gTy!2$h>1d?EjJgPEgWm~@*u~|)lkFp zAwHCr;>$rOsi7QhXemgcV3GXR)pLzUx3il1n>XPC_KX1WtB?@H9u;D@O3480Vso6L z1!Y~_sSD^_`Kme3?>xKc8J+M$0h!alFPwvEkFw*0Xd&7NJhN3oH1vn1QXgNOU#&Y= zK6=LP0l%*E>ji1enoJQ(nWG}zhJmD(J)L?RZX;p?Nr?{u&z8g}li>2NRp-ku95v(0 z%m4FZ-o0Wjc%~v4qned;KpddpBXc)f^~nM{X9X=uhj3tKDR3YZmW9jY6T+E!(|DaC zyg=@MPQ@t?{kA~kjw#UPsrcGD&Q3~k3T0^#Bq32<>GJt&E4+?st*3L@)gxc~$06>b zKHc7VUMPo`&iZ}{O}x=s!MF?;DUpEkqLeHK3#@bDa4FL9f@BjYLCYOO1ot@b=y0Sn zl9`1s_Zw!qdtDFWvuKJUR=x)wKsc~3b{DJG2E~U^IyK4lo;&JhoILT-gZu74*YAFb z`}ZXaZ){wPh=@xAba?v`8cSuZJ2*(DT1d9hyxv;c}m3RKlXv?dv06g?@3!ui;e^6GLQMC+@V z;tD6UT`HgW>FVii!_U-lV|Iw!R^?sdZOqkkOm zZlA9D8kfpf-BEGXF++(|a(2$AR{tp*=*(ETI0%U&@{tJG2r1mi;Cxe^#5109pNU0U zZaBRc2FhDdRIh?vV%iez4x;U1!!kL#q3OI+e=zI3l}QXWASWpZ8#@{sMJw`+<6u5H z0vgr9KOcYST?6{=b%=49>|N*iitAgZS8sDEZDDz5hN5AG2_nJ;*A%2-1o&y8bH4D} zxXq^**9L@t z&*@ADu34LS(G1hoT~iz;6C2dzT2L9`AJHW+Itdss?;`74U99`4SINsm)1UqE`g&q3 zXa^CXy$TXYLV^eiH`_7i5^f$6CL?^_M<9_6E|Y zrt!Z)KK?!Ktu1L*z*Xtzr|g2ngoQ>R-jEhz#N?#uY3jFUjQ=He{ic2g{As7|x5&rR z{>?uWZR)Zc#|S6(9CUT~%xssqQZgYp6ou=Q`Nv!c^AA}Zz4S`qR{7`Co8`MU5}`g% z-g6Gr=fT((nM+hc9w##C&=V*iyo6Q~WFnRf&?cyYa3J*!X>&qsE02Xks2{3rAiPi# z!tU5A&;cMukkPGz!>;LAwxnx<1&3`Ndo^Im>ORKP+hp&FXIK1MT%i~KCxRuGX&{>x zp%g)U*bLeE!B4)(pQ;FJ5o1cB$B4 zOm$ICY^#kcxRBFqFFDkHft!Lh+S263P zFIoA?=N_GLCZAMSoOqqO#pJpk4^L?lu3!&IR4uw25aNY z6E{qM_U%Dm4(M*tf$XvW5&4#evm0*SbGnW*p^FLmR0$wPz}W#(c}%PTH6E}fZu@jt z&3XlkR@W=_qw=qdPrcIr^gDP@YeDfWb=K5GR2O_4m=ey@#hlWb)9Qf>Jtoo=Hbi_) zTqrizA48oa@u*wUnM@R0lCA{^ab-?(oyMRk40h7y^hubI0Zj;?g>Z8#|KOrYKNJo4 z-6u{Ps9wakt30nXa5{wh@Iy5%!8xgbn};~s8zeKjdgIFjK; zh$t0cCu76rF-Uyzmlb3>JSNY(YU{2!_HjC)Svw*Ac7;K2K?XlAdizo+DJWybkWwcM%a6z^7XOWHimZY^tzB9{rW&3O^h#&k`x(%y}dm4BC? zFnr!7esE5~gP)SVUo*qY`fjQzp1V2o3H1g^TQ?4p&&nSzesuYaqgU%R*v?t6HQfH# zY2T$lyDC?bIK8@`{-xOP5BUk#syXY9s?_x*V3&(|Dknu09v8^xHJ!Yv%>y>f&$L5s1m^J z2mkaW17wO6P?xC(N#}x#oUuq;2=mZm0moi^TH1$hDs$o2s)pG+4w9hEFwA!cy*_J+ zSvd~T-+W;#*0BQqCEq@7YN9nZCEIAFj8(iC z<-=(K;%ctd&vOw8uo|L6OteK1V^NssPg1_q^Hv`;4nS90yJW4WSN?YBOY(icm0faS z(Or6l-Dw<7ZFhBNB<}aq5Pn7e;nSYO`^=lwJE@)F~2HX=esaAT7Zifk636aYw2F{2~C2T>aU z3AW{|o{|8#428h3bD0MB2FD<9rWy}P^&*;wZ{rrW8E@C)I1N!7FcE1_&5Vga zX|>m7cSoWt|8*_xx?pZSu#n=Pi!C z`A^Nebs*Q4)nmH(R)8$=1!M6vBB#uihR$}E?28SG8FLcqFp*tI?wXd!QCxtOT|uW> zY`Es9_6-*f>TcBWHrYM!>Xl2*dCQP5-l5t#vD)c@FrtZ!yBrXF!VOh?i#Ap}(?^)r z1Rq5~(@KbXC_@k*p!uaG(^cM)@kguuYvGzEc8=^NLhP7*33 zLFsrV;PDw*wAt&cE#a@;aTNFHHUsH(Ir?5?o3qic8MF0E(e1AV|LOSCO;beyc!xuL zD=+z*glH)joXtl=pka*Oex7~r#@09Ffe%b_tbEgCPu}d+{wnw-&e-m)PcykyR zvnmhT{7%n%dmj2fZX+wf(aLJ`hP?IE`GL`Q&%xVU^X?s84Vkf=5K&TA#Pk5vhP-@; zZ;-q>8FCT#o6@Vx@LLBw-tW0b4F~;~7Hqa<@t(YPd&QDp3#rz4^b5_a(>!+`36DhYq!1h|mLS5^p0NiX_Q~!eo74DeZA-_NUtIK|zdQbKkmfsL&tw!;n zKv#yU03N6U*v`*$n8K%{30kf}>SY<36|XKp^u1FmvhRN$gJpS@@2(YuOz?nTR2 zeeL%8P!8SvLH`T-bsb7YuXFcGmRfL53F+@kGi>s-lKjjfAd1%x-dtAmG^0eTH3CRbC(JT zGlwaUB&OK|VdMA|#z(PUY@4PtkC^q(ec$(@p%3*So7&J$yd{15AUli?|9>2Tp+u42g_V}0k2r$so@R>aM>YqQKc~E(F^dl#^6lE@R z)drfK*azN*YN-tb-cYZPa#ls;75mwB_WG^_l0TCVFg-SIZTssw0o;;mF0RZzRjD3i z*s*Aq@UW^uZIBO8j}EXCHo&aVAsO$%uUS|;S7#_|LTqD6&I~jRyj8eg^f9c<<161A zPSMZgttY+azGnHRd|f_@%$d9$Jsk}QCO2>tB%?$JT`?qd%@O42Hb>BB^43#keD%zE zv-6%tWg3^O~-s;S`{fw*_9IvGv~@o-yCX7-QPt~ltqL)=B(hgAJi zKJ@9EYj0lodEPIzx48fT4`!>%^!a)@044~Qt1A;)YQ;J)AE|>m`^hj4%WBZorej&E zW8A;vcf$SmFnlAgJ;D-u_Q^N!o<-UI8kM)u=7_eDkx_vrr|8-!UnlX(UFIC;DgA{O zmBOewC?#3|xu?PjXcZ*j|6{V?w#XIZZl>)dBEdi+14;>5&pZIKlA+(h&;DbXamJ1j z?+heVi!W|RrBQ*qo-KI$pLo4ZbNuHw(e`;oT`Ti%5M>tPn*MQab>F zE{PNaFgkpIgF6aLrkpHDKhMmS1)+SG33WKyk}M?-J01Mi9@O& zRR>1&jX}SJEj^tMjJ3P4IyIy0g{t5igI?#8G3!k7h6@L!dx2xn`b4~ajOJB3+s^h{ zd@D~j*WO*RjL9|`F=M3_+K1&L>@|Xrb%FqTC=gUlAI5nzC2$AyWM~n5-+X6>zkJL1 zlD@ef=Ue%QlkZ(w_0gW}^3M;^l_T~HtuD-r?raN&Awf0(aU>HsUX2g>d=3mQ%^m9l z0c^m?4blU;i;D#aYJt4SOgt8*_yxcW)eFd1E?Bba`JU^-Lr4krS%;eHkTHkDwmS}s zO@$ZT0N2(tx5M?Bc)RmD|DF6uAaL%bj;}RCc~=A}37LmlK7@<5v9Si1Hy3)4qMXip zF6@AcC=AptMCKApQz|`9a%+=Gk*OOKiEtl|J7Ja-#GRs{46=gr$QJyHSVbgI>u3E& zHo3`rs8lHq{Nu=!zn9m39DQZ!oYgu$vQ9mS_G&)C0b>vi;HaaCCL_p_u~nBLIh`(r z!mJu%-BOmZ@FJqB@tN5Ji^@-5KI4}(g~?U?zRSEdI)?N{90sYped zgok3oFLM8HZ~c1Ek>_W}1~M;?10TVLMjS)J;w37|7FZ4zU4n2+ex+bRq3xUm;m>*0 zZ)L1euTL`P_sM^eL(T_YKkwa}bZp6vsO}WAiJU1j-9cez!J&CbVP`=Uc8+WcyUAk^ zP{Tc@eUwoC4{gvu~g)_*-lYN03-twYUHH?m2BX~egfRqrqU?MHK$sh+gkBn=78xsgHHC1)t7KROmOD&*UQ%sBT*2~^`^SM#I z`u{=k%^s;)&ZqC8P93L=o zv(EZBsm+&F761F1rwG2es6d-d#ow;*z#-C!m|l*cRsRawD8auF;334cCfqSD#OMaU zDIF$&NeSbP{ob3@Yy5st@9%7V_DsEU2fx(!*N5?*<-Kwzme?3~IY=l$o;k){4iYq6 zZrEh`Xh`6qQNZRw5g!|E$xwa3305>AIV6WDau~BmGvNl-%ZFK{!)Z?U%b*8gTH|~$ z!G}5%VV(vPxZc+k64N(em?w8VY$>fZ_P%TX7v8_@U-mEim){*^*H<+K z>XX`R8!=?dNhHl|m1a6%ZsQ_h+Eq(aaWNL;C8>&ULlk_7CO|Py^1)%}bVs$DGU0)x z63X_bCr5Z(0qQ}S{QDMl12wvdb@i&vE2EkpaKAC+K*^ys?)G zNT)VD`=nN1zI1kElS9u>WKD}zp^2nOm54ly+7NFh^qi}8?R_-6`MWdUcx%QuL-)mB z`=%axXo9olid%HN6&8(QI zT3#Q+5}7~2J<~a0@AE7Ar&dXmex9_{p$9T6VMH+|rt_*OX9Wn;!JTj>WJ({02?UHu zkQ|JsssMcbfYh-M9XNWtw4Ou{v%LJ4G%p8HSti6B6pj8uL2D*Eb6QEi3qfx}SdbEF zcLO_@4PZ4ZibjWscP$zV@htkV64AZ{|Fr-MFpI60A%_`e#^&?f%8%1}DSFrUmi5h9 z5_)Xc+rHnkt>l;m6Zk3Ux@TJMsQY2hC(dU4ttQ`D^TC6{Lf3ux{0qLjv(JNE?Bk&% z?w5M!&M(ecJ>aaoeUwU$DCFZvBy#Fybn1$1#*WBl;LWjjSudl=Fep{F`Q%#JGqFhR zoXT4~0gGqip0-SoxJW=~OhRXT1}$M{y#Y2M@;q=zY9^LOQ0XKA_~pJwSj;+izc#^lz{qsgxv!K zZHOcvZDy<4Mm~YPZ7hkg$0P=bAB2{A6O9{=@88|&9mR&hsplSiYuz=wkIm{p{7q52 zktMyp!=a{&FQfAJ_Y6+m^Fi%`b8k6Kuaih68LvD^wUx1 zMm|AgETNcN{(OZ)Qg-Lzy+Y-sdX3BO<>tbU2uZgB3&7RPP-d7yk5C-0kdz~bzHnxd z15%H?p7`mfE<+A7MlF?yI-|cr8m1-uNx?`kt@9d*uXjU6J9S6n&8Os%sZj>wN<# z+@0X3ih#)+3oMrLBHw_N0d)+6DGUR6;m|n+&}j}!J@RtujMF9)HQ#58GXBx7I82Nf zpTt1Y=h9 zho@3EKWF>binBE~blzle7dtTVcC!MH3!QOn9qo{{-raM+0ELQFh#hyt2skSgh8WfA{Z*2O-P3AW;kdYSyxpv3W=dm zH3=O+=q9#CGGQ?=*5_|hADWs!;+cPaQgll8BnCx!0S`+@e{A?k@GWAQdX4S`$%*S|acyn7Bgx5uDA+%rEaHTk2>fAtN)(1`*gsfuZ|CJh%EMjFJs zy%TZ+Gr_zwDvx~nR)j9ZlIAc%aeU~}?}o4~qf{PaP}p`#cG#B4SyvTzR=UTgu4tPZZ>6dlQgFwkvvdf;J?~vkWYuozz!4>6Wa*wP(Jnkqn_YsCb)R-A}yrJ@^z z$H%13++BIbWk0UZ2AC8sRoC3rURCRoNGG9ss?xCX9BHWO3o>b_9>4kK$Je@glF4-S zb*MdGasjGJZw*85z82%@$$CK)4V(+3y>(y><5DAeYX7ry_0mAbF&&&Q=MbBdwqx0UP82$eJl6v)U4ihP3i z#l!^YVUegNMPVRq_T}wC;SVUj6dz$OLqQ3jcI4d?xNZA|SIOpOr zXFiTI%H|RI23`d05Rhuf-)2Rb%GgzgHgGqbZv~u?TK&WD`8^DrUiCBk-~+(iJ3wFz zyMN3(;j06gPSD=2c6#|nNNfl@>hz{RhH%3PhN2`sQ5O{e=>^X;kDhw}RUom9RHsu0 zqDMI9+~NYquM<;Su6<_WCi4`%8H5UJCN;&9K(U$FRxl*!a3DRxw9<$&EaVOJ`{c%> zuB`mI?;mf@8&jcUjFT@L=q^&5I-Tbv;(p2}L}wGfdIsrfVcA$*qAV;JSOND|98PUr z**XDc#eIZmBTWMXJRAnSA|LW4gCP1E6D1w+mIpM_T$vVLctB%T`0Om)tb2|Kf#;am|N2D)G={aWe(M^10;dOn7|Igvc z%&C>r&Y58>A`yi(`4*rB{#7a@L>~1sofP2{+df*}K51L=U;gw(Vo6PSp#Cy>&Q&CA zsdRN^;$x)ClekDc%*Vx817HdQ_6g=P%Y?ANe2fAG0#Ehw!I&6gvI1IGML>&20WE81 z0WCA@UpAj#yWZU6_m^X^rJ^@{HDlZ_A>A?6mP7fRWTnx-5=Y~#$cNNw=*Zn>hL)ZO zDGwq&i6P>A2QtTN5XNXlNkJJHp|N*Ps%x*(e@F z`;#ZLxqs50I-_Feb<=k}sDaSzTQThtOyh{yma4f{z`5kbN$wV38F0LUN@!y0{qT>B z_7o&e^jTpYHMx9czyJ?{XJXElXE6(1gAIRPEya@5Xa87mOMorcnNgRNxrlD4QGtC2 zmMgSI)pn^z<>Y0Uzl3)Q-kswHb-x1nNvX@?W9y19-eSnty2#2x0R2ojXW(8X`l9TG zlmHz~ZL*aLFp$7x_e&+&{Sru$w6oPLN-gt1o-pF62XGO1#;GL>w#-uaOP-%`BwT-5 ziE;sw%aON$ZXT;sN|RF_`=O`)tDfmBo(t1JYn3$mAXeBG3B_*L`w zdNHZM74K7v4kZ#r?`3s#R?tJ#V=)a5VW=e-Tn|GHMRW+@9MX*WP@@()C9*|Q&X6uT zf9E@q!T)PoGnpbSPhE5AfKjgG;X1vtNotcQ%7ZY5Fc-KWrqYTOec)3IcUIrf1wb1n zyh(HAHfNK}Tb;2;h)d)m%z?v|S>xlxv^gDWZj^SL=0-*8;)UPb@FLwp%C^_m~%gr=1;R_N<*8Kle!W@g+FHX9cbuf5q2dsJZS~ zO=%@Yq4Q#RU8DJ3QrT)tb3YF`POjH}joMN9VG}oNwr|(GpM7BNuRR?<*O8j*UpzX$ zT0>-(Z@*T3U$R_=pJN#A#tXFt$n~WB*5-iD?u$k5duhw5v*)NT?fCokyCFY_&XFhN z_uS+=bhh+9CBJ&rg3CYO`*!y-_sHDO`B%NizoxMJAF1hmZK4jxQZB+3RSNr-VF$X5x`5ToT~ zgdr_Rzb~Kg%JElxxw6;Zg2?p%)y0M>De<^+JZF~74v|Ax?gV8Od0=m_aH7pegS@LO(cm`5Sq78SF_bNR9q@HG#sCd3V`+i2 z2SQ;NJ?hsdKk9W|PeRRf+$$%kM;p!dtdPP1Fn%2p=3AR%9cD+(+i z{lPN!lvQ1bZ$Ud2gy6)45N)ilbX6%ikl=j95f(Vf$LCaDvveHpvZMp=7DeD)FWj~0 zK2(<`X^3eb{RFKq7^_zTbt$vWzw*MVNj-Q%Zf;8=>1-`?)ug>oDp>;9iK33TEYJvx zrBaX*F|nzb!&?t1>OzrLX^}WerdCCR$t1xw`#8Xbj092aIf+^A9haoN zGh$X0WWh5`rpD)F)6wU0_$Q3Fph$By>#JdXwK>0pS@9)m_xYEYo_e6yDIdRWjp+i3 z)S+n*P@pYJ{wOaW;l$ZYL;y^0nj|@G6k7?eLr7B}&4ztuw%6k7H~unkSEp$>`e|b` zQrG_{_*K9?LeG&g&2B9bqi$UM||m zo27^V(!6{|cGu;LD`@kVX=1rC8WVO09(+ISWa_fR(mh}OPE477Xm7*sx-iA+^_wHq zYi*&Qk$Ug#1F3!ilDnYIWic7c1g1pS5GAvQuuZzruG&_r>PdS{^fxeW3SWb?O+ECJqJgIEq4Mj6dc z-(4}7#w2!z5ry)Y;B~pkMR*PQoG(GsEF0m)MnqK_OD5O=1Ub7rT6dGl&o%lIF%d_& z!+Ay3K`ur~LTsxBKj8>9b3s0u@cAonS{iLt&Ou6(fF3w)?AQ3LT7F*yZ2@1?%F@PM zF9ymOTn0cJL9T_50uErzVaK%iSzjgi=QpxG7wf0k$^|zy7DbL3bfjVbqONwcQqPsl z7{B($M!lYu4#HTDv%=?e`eSMRQcjW_Audj!q!#E>uLs^qDJ|s&GUIeF1H5m6ym9qC z4T03bEo1-rt@(&-Gc98YH2F9Hd$M6%H4_- z&xP!)3o5iIJ?13i6Gy5u$o7^NhQSDP5JqZY+)55Knsvv5v)OnoECkyax-gl*K&tO8 zhxD;5o1xQn(V2aqKRx%D$N@=E+Y%2iisgg_FcLh};? zsqar8e)PuOtZp~1^uI%-D&}bdBu(`mHNpbgn<%d9qgWpWAm1Q*OPQZlpU3i6AiAwaZmf-X=MzbF`jfHh`kmzcI3 zF`^4Z?k_1_3O)Z zkV%xe+NGkYH`Qe+YM30+5E9WXaRP-kICIl7)o1AZu{f{Yn&znYLT?8~TIXbPto5^p zJ^EuGfIH}Zlv5(LXX3j@op?k&ZWzl8=_zs2o(q_57#`@0bHOy(s@rUgA^9%gs;}Ya zDo-LnFHcO6Vo`#FgQU{Uur%z1R$1k_gW!#+JU5#t|I}BaedKIsEZQJ6x*%GPg&-B9 zFT#n5>STg%b&;G$OnH>eB7;SWbNK;X9s2=Y$Pb9okXr6&AH_1voRWDBlRmzt$KXHB z6fT)sblQ>TcK4RNBNAD_bdpoviGLpP9YNoG8gr8~JFcYTVlE+&b?mh+13|hDbu1q9 z&vR}V@LM;e*w0OEzV4!7ML*|OE3>d{l%LCTMCc`rKlTd|9)O6FaR8VSq6va8w&Qbo zCgQ1T`TFrM+Pk7wR%B>REm-_c+e%NTrmnNzPkSoq(sFwte$KYkE0(SIT>s2I(L+Rf zf;klkbwvhm)X_t1OC_4uuX^Q8f(LKSHcFgMsD%!_4KdLS@^IW-A|V8M*nyPCL?4hH z0S^HyF7X$l`Dez8M;&%9Bgf_tu`B{pa?|1L58*d@{r<@Bd8ui4JTNq}dA`mk+dDl@ zlE&Pr{-#MxMj5Y#2?9@HGrq4g-`rCC;rMPdfDW5F;9ttl3puLLnqUH%b zVyv~zmGjwiN|sDP@d%WxZ)Wie0`@jsLNSpkJX!nf)Wz$@tQZ>4VM62ZK?$;y)8S`O zt!SelmGQuC1}ZX;rX2b-b0|^+vleB%0vE%=bIxFkiwd0Mot>&2{@aZozc)^&9@#T5fILASiBE=N;B!ejUaFED=TlZ5ZutN>qY>tUkes`mN=6jhNmPN# z9aZr9tZc6-+lKUe@5P?S?2iN#G$t)d%}+i*>Y`1PbjVlop?E|#B{Ta zLPj2_U08Y*CDz-#d?N&M(m)UsqCDKqRx{&nE-3-u9}nc2sC0U;Vp{r~IQy;-`}+s< z-DhUtMX8g@D}Fr0T$(+-QxO`G={IHZCAi>hAJ@Pq+Q{H&RN*!_A5-hIbtA3s#i>~r zp1E|%@Hu$T0i6#Zxtz82o-h~997)UO+FBGu@lG=B6!H31`IC#<%{mv;Sb?mu3$|WpPA20RNcx z!UVYel`Eb84ygnf!ggH@2 zv>|O75Nc7uAfyBgwn#BC!EzuLEwu2i&Qzj^8^D)rXb@WcBF|GcFCPcauaGYZcr<|l zuh0!QL)~yQ!DEJ@D_S2vL9-OCe0G}7{U($d&S#AB9p!Ho5_K3HmtT5SgbNv9;E7BJeht>{i4o zPMKhm7np}Zc1bUh(9Z1eQEW+?f)bg!W`aH{kAa=YKsKjOBFX`n$DCo9r|$4GEtAga zHRMkRNx3R@;jUW;cn`Z-&$8(RkgHaHRN*-zSXHx2SX)aPYm4yJ4wkWlkQbs!^p&#K z9cOHLbm!`R-4z5aHe8z;x2WeSTH#&1l_ovoh*3~*84qEH^o6NBym;DIZItGmc>eQKP+ zFl^c9$7_bvw0naXK2!;G)mA2>jj@J?I*AAT`%H`Es+fK24Xe`n*p?zhA@0RpWPdeG|{)TZwYX0jp|5^W?Ul*K#5h-4hhT^2LXCzCb0H!u&Tqm7UKj_D2SEX*5 zG;hR;YbNVC`V^#3o^k|`SK`4yjJWH3PpeX=?peM1tHB<<7`APSueQb)jK%p7_Bc_< z;{>Jw#NV5V-v^i+>L|#4-6iMSs?-saKa6ZUM2~ZprbIp-6BFfJf(zG4TqBRPE<9Di z{6E1hsYBPy9HC0L&hS>ekghKy1%()z}aL8$wxaRi!v)QS4 zr04;zMRV^Cchcu}L@{iux}*92D!lz{4s#^qSpY*VZE1*wLv?_Fstiy%12a)*;oaO^ zjNdXNr4rbqgJERd*kS!XeD^QK!|<&i!0X#2M7weG9JHoHw00ke;5GF<(8GUGqJDG> zCh2?&Zy$%vhB0{5xmSasyBhN_kkHVMPI{;wx*gA*sf%|#eA*F@-JcCqQg{tCE^gFp zKn-c2j4=NJB|+x$RRcs7Av4RZhYfQpY1ZU)!RfLKOkkM2B(foQs*Xf<_w~)|Qk(A@ zd;KGa5^aa~3U(A{+{4Jy(*sFook-JsL`bCDCMaY#7vRH8OU3{Hlc^|H{ zPt|&Qccl!&h73KH7D-^CNDH_~TRGT4VM8e)<<4r4TL^#@K-7BE@i^jjzzl_10d3mo zj!B6!K9Fp5$AYy1n5-c(4?14mvTO1DLF4vE+Iv%Qn9UlC2r*+yD86HS2 zu)THF!>13{U||Y0X-M8`h76gqvBYLzn>YZ!6ruf>o-C-Yqp23~R~x*!FCikww8W_B zl7W69@^?^BoT?o7A`*z(N0TiM@SX4nh(QgkO4G3{#ZX4JnvEc{1xVYMu#RXO3nIea zDv)cEpzJKRYFL=u1TH^p>)5M-en~66 zU{@yDHm=Mbn0;q0bHRO zAY`DAX%1~=jU{iCgHQdx5aZojT0!avg(O`*-IT=e&=0DPvGWdVV9i@L^*w)&1VoTt9LrI>#1~+=g^+_0WSAN z4QTs?XtC<}D!i@dTYX-0J*k(zi*mm=IZn>kTX;>mlXiU4Ak>~t!Rt!AuEFcG@OzSa zNY>;#4#(ws)z*%G|D%oS??CE5DZhV4)%9qahH;^&s0eN!`R2EW^y&ZZ4HWJN-b{S= zu3`LzZAakyE_wHp`=5VM`hxsUIrqftuN{{9j+9T4VMFTJ8#d7AFa9`h&yps*QQ`9O zVX~F>$%Emw6O)XLkj*&S=XU#vYmzdd8ztIKOY(q{b~*$O8gu=MlOh*oajG(m`B>I! zWlGp;R)9=JfFe&}c=@bs{?LMrsrSD)_@}quA*AVA0W_jVK{2fWIs?Ns5Q$gAwEna2EMgW=s4(yzfN;H$18XI4jjoNSVyri7ML?wH*#{l z>QP_*XK&T|vP*mA^=gl$MuzUcjlN5({Lme6K`l_w;&6CGp@mBb^MJYKNr(jRNSg%& zjBZn&0O=dN*;09o;fmz_SFa?XE(P`l>!wykV{@aWLP9D@Muk`u zrv5Xo?2MEez&XCMq-K>nFbnx zgXH5g3{54(HWrGB1QDAd+r&vtt|`dmPRAzzydrb=1TP}t5gH5Y1~ddl&9J?AzmVo_ zKeuF1SF4B~P27{Ii-nd)-~RBnF3h<+kVr2}(YZAarMwW5gv_c;@G3wb9f>E}I+%y0 zWd?nGg3Q3w=;pnF(La^ivC_5vA5SbPbf{A()GGh>^6+b8l}<@7s$$i@1k!baa7Rsn zTHH^k{Jjn_aJ36GJ)MFdR-+xAMP9#G64I1C9_FIHCQ*pac0@x?MCN^gxA(RWr`M+I z=}-OD>&o8hZTFjA4rQev498FrKFKZWUTNWLL?HzX(24^4#0Cr z5v~<7oq=7bGbH!&Ie^=RoF+syr=@>B`|M3Y4p zDUFB$-8)4i)}$H-K)OMiBDFYPhCWUKnnhXC2&Jp_ZB6d98+$HwKJ!ZXt6N6u06QSN z3=J5xoz))3=l50@LN4<{>if@qmKQ%P)9WNL1e&5C@}31WhPfEqFad^2(e&zRzdrng zE81&st+p3ZBj^0QY}57@of7C6BCp16T8U4)OThSCjGTITIYovSQ=9KP<@<4tM0N+A zi?1k?W{&|HWw8iIR|Lh6Z3`-=Vlks~#Cxhxx>I+t8*NQh-g@Y*@83$O&MS+x#%MZA z$I`?}7?kekX7f?TF=LSPhUW%?i^=|CD(cJH`3bcK4nHt7Q&R?e~ zm!jRBOri1dJ>R4C+D^)KasQrOD$llS)#aqO6yxW4?17%TR=FDQ_Hyd315YWQ`r~nW z9TyOCg_@=)fe^^OVogD&<=v`>dn%O#P1{i77%`2drtF#cL4qIRsryj3i)I2 z2>G)dzix}}9D94}j1OM?Xn4sPhAclICS%02XoA;qO2?q4TD%eV6$?0h||Zc zi52Cg;iVdK}~hVeIejF347nw4Br6@Y7M{M+^4T=mjn{kl8A z_F*dQt^8@nLp3^Kj2vw48MtCv!~%JmD7e=V3VHb;2(u9p3rCiS#f_LSbtBe{`%$-Y zewqr6F!z3JwYg{?1k7`4IR?~j<*F>bQMGtu7Us|HaDY5Np7+PV+9xDiFx^8 zQj`FbLkaMEX7)g#U)WES#$sWfi^7B^=;{YdizVrYw}ZbRbkbx6Y3)fEPlA_2zpyfJ z&(wv1Hxg(pfImk5b>~8$HM93|{LfN7AEZa#I`-D=@N`w4)cN7CyV;(jXAF1LFNVY5 z1BAmE_G$y1ZY(Fc!ibs5n!Xc3b&ylh7y|fcJbv@dkFRz0?EW|XfDb0yhL ziAX9#Xf|L86vBL6R7lWPAsP%PLwvOm6(U^N6%7kf9+K`zFj%?9(*LQ!JqqqIzer6< zJUs6I*!vFnw#mGIJ1yNU>)24BWpq$#$urD4vC_J664!Fm(gH%Zl|-%=lAI>&gB}!) zJ$k?~$~Y)cpo}Z4tjg?NHpjeU-f_n<53c3-|9{W($d+U)vD1{7d*A3&P$WyTEIs2l zzQ6Bx(PRB*E#|j|8=L0@=2f4y_{aLU$MN?2Zr4gn->-T!)~6?Cvhgkf2D^ZNc6%te zzyd()HXY{EwwdmW4m)ju|MZVW?C@V|OYWr`i7SPr?Y6Jhj~IXGDchfO1=&-xz_K9+ znjVOSnI`sSnpl_pXe9f7294ye*RSt9eTM^r9db#V;1YPUqj1p%!C9&6i5d<^)OTn9C7L_t|-E5DJ93KLfyC# zj|IX%{!A~@T0#j5AAphknFNE8Uk!YGNpS8WEE*}M1-KJIo`WH;lvmOU7Kn+1v(2;* zWju^LouxxGYZdgI5FD&lhW|R-zt`WN8Rvcb<~s*E)>Y)X*Qrkp$iH?K{p%t{YCj`j zec1@8LHM2|N&c6Jec&M5JJlJt`+HXZUO#L8>Qg$Oc({E0tLjO)kVHT^DLjQfz?5Bx z->?!{4&=56^dx=7Ct31l9SK2Jq-?K0m0|#3K%c+5@4Dd5UI3YD19A8?ygua&yq-MV zxL)xRHj5@&1Sf{sHm-kY+4?74ldR-BXrJcorSbySQed-riHPCUBLBH@{iwwI6OuE2 zO}1Y&zY<+^fOZ>jVG)4`bPHl{qG_NmXpd@OTtsx=!snnA&zVNtqo&2ftv-iC8HR;Wd(2 zL`0F~IBhS2(^j8Q9j30^d(YI`yDzs2K@MW@jdCWkP5D$R(8Mm_Q%it(+s$c(sjL_S z<(sesHK9r`;I&;GGd~rE?p}}l&u-SoMY-Amv0JITzdt;8*;);;vc~)yy*g1ftSm;m zB@AKJc59J3fQ;!-V%Hx3+Ie$N&X4}3_l?rS7^&`c_SpLmc`t7fs56wC8fQKOnR61v z8Y+(CRNvz`sgOY7y_Ve69w__mFPJcuvG+6ek5Xe#AAHXZXYf{dgenLDoq=q+EtBeP z7lozdC-*@HSR=#gD0Sj)BfXCv_>k!atBpS*lUgemDoS9;{S+U?N_C;-rA7{p@|9oF zC(8I0GbDg$T~_3*p{!_}>iDK>;mXhadAZSjZ1Mwl04@%8?K->q$LBt;bc?72j-?IV54Z=xc57Wl_xyxT?cLRO1&Cj{)s3w;!U31ONnm$WU z*`Q2n37t%cG)IVJU>v@V5YCDZ4q7B`cBoU4@HgmSf_Vm!ci8j%##Kknd-#hHTZ-S< ziW^`@b%S!)F}uCvvNG`;EsfZ`6C~OP6qt?e@bi%jvYb!L0UX}xt_dNxllt@?mkkST zKiR^wqp1do&&0dJQZ~lNL>T*_{lIK2EX(ht_nwwtytCm;v;gCpN9+~1%Wr09^|lc= zoY;KV>6-gmx|uS@;&7{}Nu)ZsaFNgt`d1$uft0SE0VRvbzdp&0?{-a_{781Xef$5C zV6Qcjb~p9kAFsUP=B-bxK4NE7P9YIC{omm^K}`aR@&I$NrkSY(+cn)MZ+H%tD~{mu z4*dkq{9#GMzxF)TS&Y8zvj$V+eL%dWZ|aQex#YMnevPG!S{v|ze<%C5-3ISJlkob$2n2G_ykIN<5y3UJ^!q=HR^SI ziV8lB*=|ANi#d4nwCu!lZ`t9L7xOJ51<|Ig)R@kdD-V% z_Q0`qyZ#@6D%IKcRL@$!clRsDt+tATSq7Yq(v$j!iX1H6j>aq$g`r?U<$yD|A2gK{ zg}AU(lm!lz*TKo0QsTQu040WD8@S+HtW&QAl+Baq1dCt0r`ompoo(j|yVtIO1_Zs> z7SToI&AENUL5+O8O8|*V0F&sX^{|>I$ZF{6`*G9M$5tYkNWz#G#|=1~73FLO3D{yW zG|UT&u0$leNj(KolBddyN*}f(DJw(Lhhj4f!_*#?*-PE#lf#bR`NY@C)BpV%yk2fO* zcH6n~y852ExB9EEj@|c@cjj9~KI&yYlZa(|M2U8@Vx}`CghK5tx_+nW@R&UkPp6=? z=F@E*MB1)~+TOj@$5(p)yp!5vFFjQzUNI+Px!~TC)^mwT10hSy?i=F2iqtr&F9**vO|3dqD~Q;4Qhpr#LZQL>|)z&RYDLx0dCYb_t8%)@Zvm99G zM)7ipo`s_57`!MB%R>g^tU^)oE?(jki5C?)7>ApWgA?rIV$?mWsKHd;t+VZ;I(C&Z z{EH!r@vYP?J%QO^MAP-6OvGcmg*KP~l&mBaOQvD$cbNL!6xN6Up z!rNrMT*Oat&2jW%d;@zicH05!livBKZoALtwT)+pu}7L2;H9Nv22_{Owh=DoKqDId z1ZL`tjL0A`qN^B(4wfNnO&4XNnU*Mr(Cc8wm|5ki(e5C z@Qjd^K)9Qjma#DF;P7Vkv?vFv*WbI}_THkP)k2Hp14Nap$T}1w%qR^8wl85Gf;e?V zND4kZAeC!7_LliYN~_I>N+y#X zm(1FJyHwP!r6|^tAoS(i8n?}Bo2|P2yIZ`U-TUptw0hj1$FBd?3Ab9lss4%{(xtc= z47C`r!c?X?OZOGrNMq7I2G)R0^l}VMLv*7AOVmo7f@y{c!!Xtyg}6r77l*$yI7wco z`rYbH($q(HvzPT!R`GF>7^g^rFtDMxh+}heW^79u=T!CJJvN_C^AhlM`6@p}pXFn0 zzz#5&QXHQ6DX_VM9HT+&y3tG@gt@_m;1uv&xeTOE!iW){{7|%ui}A9+&g0+{r{NQH ziAdY7$L+JBVZvZnaoKGymG)gd?(;DRSYb4rQlf)$LUOe!m0gMw+rEI%fxK3iEFLE? z-L0M(6ZCM5+C$AAb;@%`y^?We%kg=YIG2oRL*sC)>3?ZMx})-#u8r)2Lbv2m|LWa4 z@za`RXH_Z6Ft41R`a}DbZw}YWU3MdDZCi^~cum{1X>GNCqG@|~lg+hLKhJPC({*;U z95;OGabK<T;pWnCPuj|+uc zFb5;}I9@)HK+tw{b+|@T3Zf5KV4Y#Q+oIgbU%BpS`ti(>!#3NVJxCq#_+#(C=XuUH zFdva}h4>7}QHS{iAxPXp45qbJk=OU-o%KIz9IPfM%ELzOrZEGZZ!wXOi2wqc0a0K8 zj;PdgK}2P&^dbi6A|9IJilopqpx`t70u)4^(LWBu;O9oJ}uP_e-FRw$D|(Jh~p%_^LbNz?*ZIZPdO+M8P` z+c#PwH_6bBvIA`;m=NU@W#T?W0XJ2S{HgvX4p;B)U=Djdb5MUL(o$g z!eKOpD>D6wZc)ybSPPjNG8o<(9G_WgYVktRexs&Wzg!1r1k!R0xZ(H&pF>Vvv2dM| z1YVZ2agkR9@4~Fqmdhl7J0Jy+8aMeDrN9k~I^h3fPM>t{u>WjrANxN5fYApGW~n>h zwr@+%`^Q<;{Zw%A%kqcbk{~fDWU3gvLMAiiCc{8BBXD9-a5Rhy9NVJYiGQ9D-Ep>T zAIz|Z5%S|#_j>QJ*QHCfn)@krrZ^3~peu`t7&;|B9T2)jNiir+YOS|Vy~&TS&+UHO z>-!HsxXSze&^EOEl9&G8k5AXm`qE5+HaXm|&8W&1@FLfLpQ(F2waxl@l`4XPmzV_gxufFNf^ zxhU)%T|2F{_o(!!30wc-ph+S1#nrEz_0CBLmwT z+U)H5-I3dl`?_EA)5=N@sRzA0`HnfeRiAk(B8af90Pdj`FJERA0xe7egny%iEmA6pEY!f*(TZcZT6vuybjy>#_~ab1!;!jE1jigper5?Mrmzse zDTnFl(B;(lmU$?*d+^NHVd1J_YHMQ}R z$VW%sHcXd*;*`R)Gc&9z3AaG-fj$VkhP16Nz91jV36MT+3v(SiS0-B{#7AhZYt= zzw8F#hIwI(lMQFHxcCHGJ|d^1Jg{0SB%oK|LP@3`4#R-BzM^R!j&c`|46pda*i?C-Z49s1-JacX4QEddyq zknxD6jM8R8k84PHc&uf!=2YLtx0ar~afYdqpol}u#*%Sfiq{9_)@-y3z6D2t{ESIh^wUo#|N2O-&R#QilUEbB zEPG-3^h?Xb$y**FWYz>nv67XsVsmM1`}+l#U2-F(**oye!B~q9iL}UQ(dw z9#f!t+r!w>tbVYMsXk|5*@0JU!&J^ZMzn{6k#Lvj6?%ktULoz;(;hCiAIy@t-#uTS zvu5YfTaPidJFh7hrRB6{Sfu>Nnm)Ilv=gf9g~zwO?cjP-?t4%Rob}0%WHBY4tWAY{sn86;D66%;cFI~|To@+NYjj9RJ$hyL~)enDzK4q-0l0q;*7ZTfK z7PU4b*s}H|(I5;Ws5rVYonwU*IvJgo)Eqbm=Oy}R^+o0fqFq*La3yyR*FaM$!bo_C z0$j0_3A~VSb2&=A9~y}^)(MpYcklY|O2(f6z-KzMS@z$=0ihS3@J1!=QCt z*U>SgX)JTa=$TgR%0S>FsJ#W_r6?c5bK`a$Y!Ndpe2+HhyU2yeV`L&Q>^t}2Xc+sI zdLe_@Cd7{5LRqTkpufP5AOOkS-Pj%XbBqh*yqGpNz-?~O%5D?Ym4P**9lKvpb=Yd) z!m?iAt!?CU5WvzXZX<${moh?va)?mHi3$lSipf?#J1kM}p8Dgdt+VFV0w$>^2|GDW zdD(mndBPGeW{`%>VBtjSY#BBB!t{y!2J4V=K;%0!Sy=(WypF7?G`1FUv5ZQ;xx*=I z{;9=CSC%%38GxaqbPTr&maN^P)b%JQLXvXbR?faAw_Hlp<~2M zC$8wk;1sOyZE!`46~|%p8D`8LV4)^PsR8~twqoW7_dVJ@a;u3Z`*yS`WT@?rnm!+H z>P=d}wZXKXuJK)J$7>U~+z;Mp57YNgGU11|G3}pW(LHkN_iayXnx1a8ici!p^m!mM zg62{Z6-IUa8Kp%?0~wCTg)LZ53-UafWO)>?+Ri%MCaWhs|BvzWo-a>mV@9HUrZdk= z2_eDdcu5h_3>CIuL8ZJX8H5PpL?w^wDy_(hQW{4FqS5e@e^CcF{+!5z3xn_5w-hC> ztiJZ=%-LgU#?q4@bq8s4EdfO7XfKGwp^icj*G(zDGk{a~)sK?0df3*}>B~Mk)FO&T z(I~7)EUZSF$Tm2!bwr*!_RUIJg8%P@{dlW+dSKDp9>Oqc7%MYtR zHAVVrq+rns2apX;8ccclp5Z8}9>{Iju6##FN@(k75Hs1FTx|VDN2ayexerIhQ${ur z5lzVMmOSEzE7FLF8sS1U9@X`qy?(@%??%V{UkOs$ZO5sJolES^glC2)mBM(Pct1@O;}_v17)ZHTw@8u``bv zbC4GLz853TCvIc>87pSh8P?izP7HHLCc1GHuR=Cx-C$i3$Au%nQFl>qfG+TK@6SuMGF|8o7_N4#M8)?;pjT z?UpC-{#C<_MI_qx{6~%JZ+^{yiRI)zt@Kwp8p@tz}p9q^0AJ~@O?e| zY~^AWi9GI3)5lXxB`n1`rOtRicH0SR;fL=3OuG0wi)2>SnPpu)H!=I%+8)Srfl|>x za?FH22mb}RK87RdvSjU)Iwz^o?Y3Uu_F~M!eywLUDdnJ8HpYoK5Nqg+Vr9A<1_y0D zI10-|n#IcweDs(-2NVQ3MLl}?o8j+o)b7=1FMC0{T4&mYu`5jy--(EeN>$Kdh`%M1 zW4+&AO}+l4ee#gCRnwa|MIE!H&Od8a<2@Cw5>%*XQkdE7n?;0kTxAg>Y*qn z4u6Ld>7KYOl^l^G6$)~&Z&&s|0vMG>4BC`-s(Q-dXCD&W_dqKjl=99N6ask*E0Ba& zP)4sc3!W6XoE0dNRy_BKy>in(O?~S>AN=)_3pC7KSJ~L4XAz*hh<_KesF0y3+#Cm~ z4yHZIEV%EFZ+-mmTDvw7oOa|t00JQ0GoRagq+ zTRjRhg@g`;i2u=Tc_o)u8uA?-g2e1{=rh5WUVLKQFDVXdELAu|jreAN%e;EAX=th5 zM#mGb!52$f7~TD9VkU_qW|GXldV|}~P5H~J!|ogV({OE6xxE|zrYWD`_t~4nzwM(F zsvT9%RCk>E?F}cKcT|6oE%akZ%MbhWN*CpZ|D#B8i=cF6t#~vjH)wGbD%T^-3R!uZ^F%8ca0!Az0;X4qyv)$`R=%Qo6S z-mqc--VTufrU3VFn(N&Zn_7L5sfjc-CsH^9_f9p;APqBg~de}Ih0!8C& z3S~OLF3Vwj8?=d9CB^Kv3sujTr-c5q)#+9)6}Dl+T_WwyXR=a4kc0$ohgt=Hup@}X zHfW#40r+W`KYviaK|6_|j8l#9D3KaYTa>%;%pE4{C2^C)l)QXbi3p3RItGE^nNX7Q zB3oiEdavzaKuu=wWzl=`wud7^E`?x0#@*=1MqXBQyPfS}BUd)2Jj9%aKz@a3f>DhE z<~JmborbT0%OJk^spsx-!B#tmNB!LB`AgKBPm-^EWt)pFx`NiG>y3;Mebd%bK8RAI zVxl5AfWg!e#r;gxJbDO4J&*yc&bC6mcEyViJU^q&;@A1&*@Vz73QK9KNfc6vkO-1H za*@ZAa&?1S-Xf%9g2Vt!34@m!+wm?!KU8bY#|pJ@&>!}>@XkZ3=GfMS8|EuwN}g#N z>M>1lG1$H>jZqT%P;=P-79Dxj*ILSY_L-0mKK01O#l!aBuIN1 zRU#mgaoD3HJ*62!R#=IO1~7AoEYE~>^Ku-YNpRi3K+JKOtilCZ#Vg93%%=q~XW@8B z0H=+McLOmL}v>a#h+nwfMG2yQ%~FX~sf@W?t3{ z!&rx-Sf!2zjs9SOPdX=8)d??GSB`mM&Bu8yW^bm8s;oxobi|RarzoTOR7hx0Y<#dx z%JX!Rp*l!5IpqFD&h!3#=!0ATw`!l48tm`Y<^MYB?Mcy_O&DO)3@#k2qxLjZPdYiq znE7#WWbCfe?QvMSJw99@XgmUq_)!?Lqrff12DzL6KJ)5h`l#Ca!h?U)Chsf@cltVY zHUEUXY}l+y?VqMOEnv#!_})~OPau*xt;sv0LPpL?Y)*&+Lju>r5mjBL+wENb=0M!& z>(tj~PPl8tjOq5WvW$up-LA%T4)IayNV+SMX=A4!9Rw3JKsaDf*9g4Jgj=xcp7HoB z5#w`#B@2fazm(EQz!NZ;NJ0Xbz=0PEi$^#(A75e&=iL5q5K(wT>j@G>Jt0hhU5l6= zba}K{&js1pP(1BpOS@4cY2r|QkjDMpM7X~d{?LhzUDj`P@7n(D}>QoUgDp=3T5+>niN4J#dOh7r=t zcE{Y?GE)0Fn+O_n#N&8<^}Trg>0-RTd$Do*LbCpbocEs{jpvom3Ad>0XT15|9qe2S z=Y2r(bCg!h1^DZM_KsUr<(aQW9`kUrdZc|H6(!_pTL9#|T1>fETw4or+-_T~-gdtQzj3B3t6+lBykM)%>2$RqS;tFK=yM~u^o4VtIpHkOl zS5*B=i9rE;X)}X3_0&T6$s74hHY3Kd185};O3nvkC|hQ+wL}wCKANh>aNzlwv>mz!3w&2bu!M zCoLW)uqbfZgzaI%G>fV;Wu>C9LWpj#SQ@Enl?Pt_Bf4t0bOuLzlVFBwAt=a!Et=#F)IRunFD(Meos zr7zWw?hmMcz4PoR7VWq{*)vD)v|vw-az%uAUczymOh=Y=a7-hO`BVeH`M3?laWB3PfpP6Uz!YNN+DKB+^WVe_S=4V8O_MzloBZ8v^)48mq2nhy}$OeK8dC#6e z(D)JaShi=suXO5~wcqN4>c1T~C2yXlDKQ>XOODR~WZYuJzZHmboI0YMdPI~n{Fc<# zTdJC<&i0V{^n^)opLlaa`BNgO3lH*3nk3=aJT!Jp^qxz>L!+n#SqY*)U>s4jC__AV zj=)2)Z}-h-oO1Sru{R9UzH9v|oV~sB+@lfP=;VFyyL~8i4(b4(zGmzPM_oGHur}ZO zL+YiT!@fD?h^x!{L}g~{%J~N?;*Pl{zG|%sxshdv{b>rwW)xX+%1VN%CqY=QI~e6q ze51P<*z^q=!F8SOVRg!)$0Xmu8u7v!(*tlPpev^23OrdP&_d16EEO{eEK~R1;oH2` zGG~qbmja>ROZS5-@pU|`uD;FR%>F8Aa$2hu&;ZLRlwB&oWL^}`aG*U4{h|47B>BMx zh?Fhr>w2IeV|Hq%jIXxWJ+3bM-BZ&~efN~Ay^vzXE#fW22~?}9HFq%r+b#-A1!>?# zYgWJDadpLO%jbP_n|A+?nERf)Ehl7J!o@iq>$XGAESkl90*%>Ruf8LeA|p7W2o(_V zB2bHXdm221au(5!a7|P{6pS&<)X|gWr`5+tZuehgQ5i9SPpCUSb@8kl{&rdQt-8z; zN6h+pSt#){7)8#?Dg&GHfDCU0x_jV&Evjv~1qp01R-qjnJm)gd6wNUMjqKQMPpi{* zo3_z=$;BpYTTMX+v=WaKT6lShkZ2Lo7hH<5nAse~F_&fIf z=rg&DG37b|7vk>E*bVEcrfu!G@~7~O`u$taUUBjdhgO%5sT7Fzk{~o@;O`Dcxq-iw zXVo2VSQZVe5iL+18VECHhFHcJhH0dObNv*>#fcPTk(>g3Ofb19zCK4xB!mpwTvGx_ZQ+D<)e+Eh$G!V@Z23mzTQ;qtw8|k#)A`)uRh%UHZ5D z#bs6p5~1O`1U|=MPdcazHpz-dwZ)dG&kcsnhcH^U13?rQeRq=5t`p&ukYZC6BdC z*e#q|LdT;U%GL? zkhi1-=sejMSbAfi~VxeTZ+xa6*EK9!g+3lJ2H zD@|c8+QtQ2ql{K=#8Oz(D>SSEvO!a0`bXPG`AkJ_ZI7!{q};LhfR zxY!}aIT1vhlN5n2x_w&`9oYv2@~P)-3-lS^Ef1Y|Q=N4G-pe;!b(_T~LAxuEy*6gk zX`r4phzjd}WJ#e=$63d8Gfr9pXkoX|l$FA~#Han4#B4zUO?iS5LV`J#1hcH0Bgt1N z_jGgNCI&8Jct z?U`TdM75Ivs`{S&mim0p?b73Ky`kmmhxK>g8hb(z_##0IR7VnN_OvPOAVrX9FJku( zuy zb9ObZ%g6sesXfOAuetu%W(#w(9$A}^@B#OU1+*8Am#qJu{r>T_dx_I0S==iAR;s8ElMqNoH#uY64a)#sxcPVR_6tuv z`|Pt??RS|-43(CP$dCE}`9pF#w0&Bb3d=1*78=!!Mu7cRujIUu4YD-pbdR zEoJjL<}mN9^(S1>Jo=YMne(<99d-EKYxeb+0)wT%4nPjDbO`0kNdOlTbjcp9$q;Tq z)g#PZ$6fnp-#wu*gCQkujMcuQp8dk~Ba^rPf$Uk?uWg}IFDd~rFw&q`3t7@0nd||e zO}>|Pzj^+MscXqseRA9ydd>5N&l_u zR^1ezGCVU#uh0H7HIui)EM7O`^_hRh-~2GC4Q+n3y2y$4Dz)=}y2KbTID_o}@sheh z`TbVt@k@Ro-LJ03`?p)1zr!!=zPHr(S*@#m@8;p9TxI-y^<#A@b^AIEAZISH#-M77 z;^i(Wm6lu6EFXP>gy#>+-&mD0Z=h3tQMXHuWHvB!2+qw$|r-vwda}tGC@9S zWE_N~RB@{xHusn|&KYIXaB-Qt7zw~ZIm)F-z0oWQDWp=kw9Fh%K;>lK_9j&HLqe_y zz@OIU3_aC)q!|=tKyRK*DO?r}tYS7ZY26Xm?{v%Ww;nh!azCw z#DpUkSpkTAet$5N5G5h5XwnC?OO)H8#xocRXJy3Vi==%-Vq@wV&q+N`=}6|z#Z9ko z-V6Iw^gMBX-wBvw0F+FNqC$^=1ZrJ`O+Ov2~f}bG`Fm2Fw%Q=+qdePmu}kn8=P|`_zp(dVTn3x%W!#cT{p^NW4c=7ea z2an6_JJs>`X*VoW4C>;9~A8V%mp& z_Tz-nTl_Zvtxo#z)kAJMeU{bOWbA<0F+zP+ZsBvyLNC+JP(W8RhnKrF_lc!yD8$&P zCNG=z`hAD(YIz5m@(J8QErVa3ZIgQU#M|Dz^ql?e12Dx1VrDiF;v-|JgnP5J!!$#| z5SzkgnAdP2y)c?q*H0?=%kY(MZf*pJC*Uwv;WG(dN*GBaWHjp4bNCvLP`CxlQ%lvD zZnL+L>9$GD?Y5OPVTZ%XD#Wp^92@Qzb);q)XhEnVAaX1U}R=VQ)UkC55**qk&VtQbOK!=BBXg~iQJY`P!XgaC#8G& z6s?ctRSM&=d@zn{UlD&M#!f8|6G~V0!^ThQ%^xj%s(yB3^@GMBiEVN%D4k&dtd*SS^ zX(vg_z~Oc-7lGTABkL+6@cMz%WIT9_u3yC~L##l~nl2B8Cu#-8mGJCM90lQbwdvlI-a&QJ)UI1cvQ zw_wzIY5ZXEChEh=`u0;-IAPR9&qxiOR_LpW0`owt6%m$#%f&Dhjj#Z5fdi~t5WzEC zr2~-n4)4ItwuG{ACXLuvCg$?Yk!29NK(MLXG_OKEPKBw^i)J$>79$Y7Sc-LWi<&=sx?>B7C)#Zz z3yxiWJNh@t`Q-sW9X_-o=c5UgSmCz-o*QO$;57q=tcyN6diM1{jvO|8Guo{YH#n;B zbmzQJ4>-NaR%RYqQTI{~e@u+>oe&V|hrV~e4^G?pfPGp<*LuIz;vPp8q=zPFzJ5%y z7>WB+ws(5wh&fhCgn7x2(b_2Rq6kusM53yp^Qp}r7+sh$a?I}gZ?6TW-Z0&>tCvrw zC>qb4QEXIDG`m#nP}(uDrJHe!nOt5mkxPfWBP`8LyoF#b=BfECc<2?QTHf|W{nMa;Oe$8Uak@TpxwWje}x@8m@5 zYsvaIyWnSXhn7?`ZQr=Fal8D9jV+vT=~XWr>5;9b!#lgWVu-IBzINdoA~H((mp zI@|cdgBpm(mruiiRS!b#Sj*c$`-uvvYp-Jm(wL7LIyeN2| z^)jDH#Iil2r0FR_9zd(RavI@_p0->Z=L;%5W`Ez0*-sv`pG&fhhyzYfFg}|*vEzv4 zPwx`iVnTX$+l0a^Z+v+b?+IC3T8)h;iKGcGP~g?IW)%P>Vk@>DV_SGd5#s{MR_P;O zX1d3@i?PtosD(RO+|{;)xjQyLE|0j}3Q*)?1Nt$7Zj%Vq*R6HcxQ-f%a-bXGVpxtC zoC3T9gKMF?>oJD9z7H`T6!t-1L!_%2;p?{iJZ7)BF8{6D6;@xe zB6!F8wN~x6J|Y~O7bQWPFtuu2ngUKG&44!&hgMnTTbyz!Co(+3VopdQS;Df^NM(h2 zJuey};Gtf7~e5t&g&tiFPV@GLvp!*)X^K z4vFERvAF=DqtGHiIfLv*8&KFE5OTo`+R`i_BYD4z+o^5Fn!&)%?Nqq5dD7lrUUIm_ zoavQtY>jpUnGourINHV*sd$lu3JLdk@P{?nXge3q+IZRIz0doc?CGh+pRG~c+tJ7a zwMazZ<6V4AOo>Xb-ybXq#6U4C-;~jRj&n{S_RA( zl#6T8lqxc~$3u`&)2D!4hZTZy2?C`;kMAX^#C?sdZsWtoa zCe#xufpD92C5ed<47BFcK3*p2cj$h#N4hWl*UR?s;^VhEWC(Hoe`?X1-X4V!_A%?m z1}*cq)y||8)hQ^EY!=~`Y8fN;EGUmWd%$OpPPTHwr&Yx6aIFe@n`RX z<8)!7V`RS4K&=hV+HZm)b1?St%Ru8R@E}lLu7#5XM4dp!+2CCC3DezgWj@8BABjTZ z`+a%)Q5W4eZ^B>?vwIiXSFQca)9WY;PY;UUDR)@P_UMY!JwlHtE3%@SXnXE!^}@bG;blwK|G=n2ozX__P{yWG{+-NnPL;+6uvXRF7ou^T{e!~{=aOD z-M6rE;`C$rPiI)fJ)HhX3ldRm3eS%Kvxunq(GJer6rPXrN3{xU>|0pA{PO26Ydx~+ z6uil*#)Lv`ImH54=JNaJ2z)M@WxIG#4yws8+^?{9$&B-k`L;F^7FR=93o_t=v~Q;S z>dmkH3(vB*?zD1O%H)C=hCiULAhrFdM*=z+#y$rJnh^k7qPf#AIdA@R6@?&XxW4wPIaT0L8$7Q3>U*iZw~jcs2!(K$`>nF_~3_oE#~> zPZK%=WolhW2d1(hd75F;-pAivc5wRfaohYtM@qYGdSTTocRzW-cWH|njQ#>+Ty+L3 zD%GdFL7C;#f?sZu1i1^V;54%??%hY_FGK$no>}?+;N&J}vgP{iv2zd}ONrJOpO!jK?-s%_J*!eM_)k6!ziWi}(q ztr8g+?SuefV|zg8KPR zcjUI?zV5fZSlj8I!slutGk(Eb%PeRYFBfGy5aOqv>`4eZ>O{<0tw{|)tO`09By?); zVfBUUkBF>4J@LXoGP6keO$X!A)M>XE)$Y$Gi)gnUT==+m4!7#6SIZwvvxbL^6hp&E zIHSI}>4U$Jh3#_V-;A6rqR)vL$QrWQl)z`O_l4#de@sT?{>95cVvE64Q-nl?VQ8o~ z2*Btf=)}S+lu)4oITUJd(UN|ZXK>_8*FF{=QrPdk-@NMlZaaGgloRFPz@kD589}ia zcNMiJg{4#!LF(pH7|-MaNg~C^airPkLa#tKARL|_u|WWOE<1XHDNBn|Ka%^0=_6k zhXv4>Hg*oc&b%;ObV_^*(`$lAXbhdQXy$@{0?I<0_ow^`KeDfaeLw5)S#=ek{UL=X z#TP$l4pt}^(~>|08>^@Er@+&1&4vjhQ39AYtDk`mDcGL-!z)7PM2qlBeIV9}bs-Ub87~2P zpa!>fR-xzMvDY0veRs=A&+iWiIaH2^wa=OEIlrm@dv?=qV+KAM`3tVYJ3P;S_gU4i z)J%e+Qx}6}Qpq9N>M(5I%(e+6%$hx?>_#{xv3bPG; zHH6om!tt!%&)==CvO^yzghrgYd-v5VE&Sn%;6k4P!2mik>8v7DgCZOZNCSw_GA}LK zW$ye}{$Q^*gi$S&AyC*an!e(`bNYk5C(Y(~QiHuatzqvN;a(1a7nuRT-fc~Vx9{rw zX2i09MU<9yFA!oN?wO9IdT}vAk#rW>naIA;h^t*oc{%NE=Tllq>Hq_`!NTRgAG7qO zZC|v!tG?*y3D|T~(LRjb1pdvt6 z=fi|`fpWsSmxkM`9D7>}b1y&Ri{2+YttPwv0KGI-tYT=)b_){UDQpoz&bC5fy*PQ@ z54^=7UV`LNR6|x#vg!Fiq(IS%)LSG}DAShH3CvxJM0ML~35)pB=7I!YGC8(HKzsF42QHl)ezn46i{4AbG+} zM>YcL$9#(NC=w66j)Fgv0CZ4}AqY7SX60pG-s`SMH}2m%Vd79yp1hq%VT$vdi#NT| zWr`#9L0Q7fvLK@s35{ChZG32EZ{n3uv<*+?GDBK$$r`DD_S-+#U-h_s{4b!Az{ml{ z7CucJzUNsl(%Lh#oAFA(xCS~Ls4do~fFA_MVh}e31`~kgd;6S=*6n*ja@=nJM_QNl zGmRE56jp8j@Ux#)8sbVYt#omCN>>79r3p{58II*H!LicCiYS`qS~#t0t_wJjv4s?z z8)*jh&YUR3g{7h_l%&l$r39UipjZeyn+wj>WYE1uyjDpr1AR4JLUNhqG~66U96a|4 z|Bts9PqPiy@H))4pfK&R7bMqy$5l#j8UYo!Xo$j{k7%?JJrEj-WVIY8QizXdbG`lQ z96%%zz6D4_)}sSDF3m_BWRTzzu8Vu`ii?QIH&vV5X}Pw|;}k)S~vFXeoU3vzuP zT)ktnxUjZ2PxllH~M2ip7X07n*BRpK8o&Ic(ZyHuxCDQwiwcrd6=7G|TWJ_jQ*Jdl)dE_oh z%q+o!1Li3@>FAw4UvSF<;|4#`eN5qoCw^M-@Lji)Jumj#?=*66y^hyRtvno09BnxZ zv^M3&2NbKxDG%lu(76BGN|q#xElHw=T3)fVol}!w;gUtmwr$(CZM(W`+qP}nw%KK~ z%eJkl8#D7Zuk&!?`w1r__sYFwQzpzXOh2Xu*4y+x?O*G@rOj^dZ$b1mIE-F4%cP*I zg@WPw5@n+thF5k?7YYO01lbeQKuXECL)_mVxeC(PhC|@3laRtqVYT#W)IJOlsBso0 zdHag0VZnAbrwi=U#1?}%fwS>c&{@f;C!{DgDMvRESg8*$98huMgX4{*GBoJKFC@Pa z?SW8L3kn>UzE6yQ9-bY$>>xlt`z+@#(A5?y>Nk->xbZuF3Z(J)t1O!Yv3sQ)5*g~8 zSxXx|naa+MS1c;`MZqeo=uk#KeZI!%?f4go2qaS`To@P)M3DxKw^kN!wx4#gS{JGZ z$^WwZnKRc;4w>VEzIXfey-e58a27#f+7S2Gi%J;f;25uih-Ao*4bODrfvc)^=y*iP zQ;|kVOyki-Co&4o%_!%_I{Sa5n;mM>fp{*8YDN?rZ!6WbD@jIFQpxTJX;dP9ZU0EB- zUHTloTHz6Usj0%_&`8B5jztV4c@t%%p#~SwEEjM^jS*o(Qn6N@YXDr=(&tLwXK=LJ zV2D6yLi^JK4&m+=qM(;_pv!-GU)ka_8nu0gXv!bOFX`;{`|;eB318a~d(E`DuJp*1 zpF#LZL%=h;U;4|O0SR7SDn-U}SBA_nvHOz%W^X^s>pYkmh8Yfxef{xm*J=N_?aS#q z3#^gF3<*eZ2yJRqYF?I=>QhTL0a@0jfg$KXp3Ywk-t`BWXA$BEct+~UEFDc{z`|i+ z5j7$I4(R)3%?WVu=>N~%w&F8UZ+Ja^i zif?;C`)`N&{)ySQQ#*(iU&$(2R4#1ZUN^eUoI8@k4BSwBiAoMjnc>=MX^A%G^fp*u z4xL(Q3K`T?+JBK@7R^H{#+t7*e^Zd&qsJ-hL+_1-_dYs7IP`vwsTt-!+0p;&^J%9& z*r{|g1it6l6Y|VWukSI^N&VLqv&q|UAJ3CYzo;@Y$>`kxv#D^+1qnzCcPl;5$eW;S zj>Ke9CfH`T^wVUSe|Y3xB4+N@zo%97LcG>O;3CQ|26UM$jxkatj_UhV9gU`!_j}Fp zo@8=ZTvzmszZfP!L*<{vuChcjhl>C8-+97P|K39P?(%tG!{Y;yuse48|IsN+fOooJzklq$1yt!LxI0Ap)Za%0pbe-Xjirftx@r zmp-C0(^2@qj-xi&GWHVRa-XQdk(CHJ_^X7|(m=peXP8ktgeQBHmS!k)qinw)Oc((8 z{U-|cJ_dr4v$JtYNp~`X1jVyUVi0tbEY7}{nMSJ7I@5yd_VA0UXWR!*-+oJxoll~5 z9g|aIr?$`l48y?(@>XH?a(g(7-nfKGq+R6r@GHyqr$JJL6z=>@OE5x~J4xPO2qn=8 zXZ$e&r7$FFW^vB{A+`iQ8LR==UE$HKff^xZz(4U0k7mCvhx$Ihg2ygQ;bOe{!bNA> z3h*`0t;taa_4%4#KcilVy{35Fxoq9gsUaf7svE((gW*cM)MQJMq3oi)izGLsjUHK& zM2Sq*=|AOp2`flxTt!$Qx97sAbWYyg^l-j1HM)`0ENMzeH>BthwhMIWzCPT2vH!~zKl zoh^iG7zLf_s3`@D2!xlpLpt~^zoW@f4PWcL=INKwk#F84xwwcJhm#>RXZ$+9LDoY` zRa`9;Bl`n07qndoRA4LHcA5u|ga$L3VoyCYfSrJ&$*4$a4Xhq2Ml0|@&2upII$pp$Z&qf}<$f*2C zBCaUzt_E|}RwfluPQ;PcF^m6Lit5Tb$fT>5@8{$Xbzsm#TLXY-6@a_Be%WT{cGtb@ z_jTXCKI{5rdERfgPNbsm75_#toQ#W*&4zRy5$RQ;p6^pa2A`1AIX6~0Kj{nV2)qb9 zAB!SuT)iYTCa5d|GcylLf#p$d@*DPpVMBJ3HoTVc*mbTw%+TPm%KF`GTwR}hF)%I$ zfT4}+It+xSi=u=GYG<;LGA5{#0MpL=Tn8zX=spg2rdAPJ4l+5K8XjFI(d@06ws&Nd zd8NWgslmYzBKu6DfA<}PtkfXQ(iUVEKIP0pYBHxaL+UnG=-hPcH~x5D3EPP!y;3b| z4t8P^>M0Jl_ZNd;L}l=?%2g4C+l{_s!D0#Xq)(xi$ojQ|{jl0#SLyq>8qRm)%IO`^ z<5Mx5;g!M;(S<#8Ck2mkp+qvt7$cUFu8hwUy`jW&Eygyd6LR%Zf>O_eaYuvM!Ms*e z#5!8qA)Yxi{vMzQu3rN;`Oq=h7ZKQ;P;JYqogtAR%m(7iI`lpfr>1cD^Rb_Gp=l^}voz7mcP3)BC_?lP`GwzA)ausk6jL?7uPu_6Jb~vg zZg3s4(ua2Yo&wkXEsWyVn^|o~ej$wf`mj0v4(piP>TSKDm&RawgFm*}mi25kd9QKw zWv6QxErIhb|G9ckd?$^)E*)*!xGfPpgRb)S>ku9D2$2lKdwRpfw*VsLQ@+TrSQiqD zALdA~$&Fi6Zh$^!x;Cm`YS8P!jIsf$%XeTG=05zr4FQ@LlT;bz$oqqo6KD@Og;u~h#*t?Ch=t87raL{+ zpM*BtFnH9GMc4JE%&Oq8R=$IG-|vWXUifh=i(#Gm@c_*oxpm2Zvps7m#LCR@4kRRX zdWZ`6yXG<(r=!U>$inh{9VOswE+cCzk@`OTb{PN*rU1Q zn=;K;KA%v>N#pee;Dj9+a=R6$=&WCAZJO4K%cscgV%jZ_jw<>hT(52G75Zm7j-Q8CRwD=D||r0ZQ1P!?zoh{c9^iF(F~hJh6dben_B!EBMW zt{mDcMH+1Z2U4;1kC*oQ@j5KEXdY{G2K>ywbK_o;d&R@e$m+R8kbXxpxJw;#Cj}IW zwszKWjZWsNCW#->-q(L`#(LQur)Hg#(okG+nD=|HT+ig|SPflykX27xuvE2>qveKM zOnZK#naDwY+?P*NFUy;I0jZ`^UZS!g0X#a1CxSVwDT?GUMDU5q?n3)r;NL;>Z3tHF zfI0+4OcJeNYNvUEdCCNXK2M^*V|=x4bp}d$9cSDWis=neqOyPnB}>uxFC{f(sa`T? zhCH;68$;w3DlORN=zDuopX1iz<3R>-mCJB-M+rSO1-Ks`ciDjc_by~hbNMYMW8N{6 zQ0A<2ps9+s-ru8?P;c=t0!6stQ#`@pqg_)j4s@b${L`q4CSASuH@gQpJ#Il#FS)bT z(zBr1TvsO@zD39e0>S~o=kPR^tog{z-t5)wkrv{Dm+6w0mn)yw-aNiW%YUhOfYsw0 z^z`0+4;CMK4vSG}1!=y>!(s_IuiYG?h0*1E2e~-o5K-$eQWTFlWUi=-!?jc(JBkLS zVDoO7>2}Cuni)juD5knk*LPtga?CL)sw`aD$<|X7ksxXc!>QrvI#wpI9K3q6K7(jY*0vEKBUhh&u zR==O0fysB;7l>BY^8)L!!A*X7qR;4Z5MUqkEL8?=3+q;{N#|+ve}VCCVNd(80zsbF z!?DDv{5{g+e3nt`AnNFRHeWFtuGbbm9&IHAWFDl&v!_!}B#th+YPEFNG+*4Er<~S? z;xFfer4M!Ky{mZSX>ko1L4KP>N9&_Vghk56Kxe7z#^6!Zyru&(*M_Fd*c_KD`G)D#Sw|7it*o5esW zQAR2Hr`!E6(_~~OI^O>fb#a>E&>)=a%~&wQh>Hk}-`*CZ&0m86-Nil)_w|%tSe!L> zOGn$lWN)0@Rnv1cJmgCwim@qDPNoU1!t)O;mvBBSl_|4?A|Tuv%)y*(SE>Enk^HQT z{8Hf9FED&qPO-Ee*LC{aAn1&tGiq+^YgNQQVgI1%mz=c|H?eWKLoz`+?rYFz2PjOsM|fo z#2cxvSga*7t%fT0`CJ9g?{Tr3DXDFi3wp)?&&wR7!f)=`%bx(C+23j_crIa*<|x5} z@MQ8UXCUDKC9L|Fc~5+?Pe2ngGzO{2}T8%~q#&dGFn1O3$6)JNw0?ALU8 zhy1pR#`pSFY*y@sL8b|Ku$%?rf@Vb z^xYk)j(Dkzblkl`7by9;;L;qxCNZ26J49r|OeShz*t#0JS`L#--D@6Md_sXVdm#bu z0cZEW692Fobx}4WfV(x|Fe3DNBmjiz4ukYJ4zK}kjz7)kBuRufR5)2D%Grsae~m|$ zM<#U#SQaPVIVZ+ijFCBT{|@*n*apL!gNw7^--SUwRy-?eAT0usL)Ob9lZ&N2r21x> z;sz)N{|Hl^*TNN>{xX0)H+TaLlkYWRc6)C|E_>B(`Z9j)>VrVjVw^zI9u>fZhS}GD zR<`hyP$S}~t@%=u8gr2HOb^zx5g?d2L@xx*0_LjIk@{`=D|EO>9tHH^aHnJx#fLi@ z#x}&@-tFEW3*q?<*<@P>2^Aqc2JdkL7oxVPZ&eAB4t`M!@F9+-&1;&ejt1hky}=Sy zaZ#3a#c4&_2@^%{!YuG?{Z`deMIoRa#H(q@Og*)XYeprs5Mm54agIRAP!BiflZ6{) zI~!IFCg&^b8l(MC)iSBIl2x{Cp`rzdRcS1UqH2&A&m;)D-)R(e1lP%r20o&HfM zMv%@#-(?^1=bky>u-SgT>I0zE&&<8w&{uQ19rsKuoUl48(jprmsxvJDFfmGnYX!zm z2xK7w@=4cAsR_->UL%_&M`PTA7=EISSHK9O&SR)LN3|~&d_+2kG0qbf-qJv0MVW)hMb1~uB3N_`MvDK_idqFE4+s; zpjzSaxK|&}M1dp3*@*plrwF{oDrmz+9P_Rl36LO#EfGn|)f@(_OcIatR(=4U6bANu zjoz$Q?M&)gr!9d|GK2+C7t77I$0sBI#bKDXvBj$|^@%7#BuQ}{iQqvm7B#yt@M>Y~ zu&~wZ(G`NH5E^GY;l~cXF0sr6F(CGwn-pUz)%f$1S|HIyeUdO{Wi(%hU$}K1y=cSZ z*XLEDF|Fcu?>zEu&uz@Ke(~zT#DMQDXULRCL`SCt0rHV84O0Qoj=?V`iJk=7Q%?mC zAPg>Y2FnN?GGhv+VnW3M!5nBqNv+?4B09$t;`+N<+}Gg+E{lg{z}msAJBg=7Vy2s> zKU(N-V|pKd&BMbOR9V?f_aeV-$aR)A zaDR*d0o^aJE^ykNE>hqW2(ots#y0hM_$pIKN!@UzRnZ#;o6kcOxxUE33-O8Yy$(}5 za~p5f^p+mjo4n3-iyK%5>-s!l>s5Ih7f0sXz9=al&)fT*Crs%cD`9FHT4K#r1;OEh zGi}L`1{gZ0i%2+B20ESz01PyvrZqe}DaEEqpC)%vbUZe@am|lBHiKOXIwnpz+Oix} z(Zs9V?$mzuxfA0Za>-e;0ajSW4=F9AA|ptu9JXcw2;id1h3065Cn;g_1|o&J6}0CJ-)8ty)uJZv^5=z zZa+e3)CFs&pX648dmPMC@-CZFfRpt1bb5sR-rG7mVSdE@ZPRyHJ60#+)oy$L z9}6ih018{Dq=N$8Yv}~i0-P(C{yt6I(oJ^%PN4(2W zOGrp1sCH+f$P1CjG^D93VB0T{*v{{6$!x4CRjz?vW~k>NSDj(AKX_>^f#2Q%z_57g zPMgW$3O5GkP=d#u22JGbgQBGR&`vR3(yQS#!ku^h+N8R%W*YD|4UzgHDy}53Ve5xbnZ%f%w+Y#WT-Rf|+g?!)0~tfA{wi@YUliYyHD$ z%Z0-Q4IyFsLv#dokz<&9_m*$!13%*`TUAvm@cLitD@fFt=HR@~ zzvs?ybtoWh!X0|jAp8Q2)Qmh#FnqZ+C-2q!78GiCECP#vGL)8Y)2isYU;)gvirf#o z#OL1^u!lmQstq7&ip=&-+7OL2Y?xceW^K5P+Ayy4Xg?o{LQZskI}1~e?Rg|&jq$)z zhsC(U$M(!eRqDqc?viObI_!;%(hDqVNq>+2Ez8*$!KPJ`Zy$#lI)!uK;AAiv>8L97 z9F^EnAS}!J4}@ju#m>JOitA!(PBt`t(3pYsXi;K&OwNGuaTIM!5pSER2@Zp0fWr6l zLlk;BO8cy)N*C8*WPX^Q9dxXT7v;W1)Bw+Y=#~($MHcunJT~Jj@S`p7)uDInaK6i6 z;Vsy@Gd`B20n$XZVFxG=FdzgOej_`pSaqWDhj1n!lR_VVo4LgU!8qbHU^cqX-od#) z=N(o%TV~HMTr#uJ!vH(Cd#VsP4@)#WrQIx6=_9*uT6S<|~9=@5+e zx?w5|K&Uua3IUElW-Hk%{eu+y#KiURF>JH`L!U?Qm2hMdnS~6K0`Yjnv@ees;>X-)&`FoN zwG$b-)c{~X^4be;{EUY;1nD-LsuF6Mc@;6ZRk7ysZ|yanN?d~oI8dsGhc#}<73hwW zG$PePx;3nKqo6m(rB92#bt~TLdW?h=={c)iu?V?jfV%@QLy9~t#7Nm`!n=L7+}!Y= zFL{ZXU`Qnr+_A#6fLzkv!2q9Zac1t}Of z5DOw^j6+``?yZ0+dQM89?NmjD)JPbWX<&AzXebJF0NKWSI3$|y34d@PcQpGm<+U|X z^f~gP?SZLm;#UuQ>uvL9t#tGS7j;k-k~vKTzAd1)BC+`LxoE57C%0mk^rR?$@FeEA zU1a>j2adfOmUJMtiuux{ckps0B%ugTWMZ0#UAKx9=R#FLq%BWXa)WKvy=`^)al?j4 zXG!oxPRn&4R{FK^WQ}%`vJZZPrZ#2WYre3IuPu9jlnW4YP$TNpgArlTO4hR2@<`IC zAS8*-j6g(s%fgs~gi#4QzC`bt8!r5J@MbB;pH}OZXGn3C6@D8Br`98Padzwic!r&? zE@pbv<;Nl81W8!{)i)+l$R~3o3-A0j&eTXp5Fb?uVljF+R?9~(<BK=q2cmE7oN7l0ho0iIHTC#S5nZ@Ur-x&ma&{ z%w}5jwW7f^nPP23fG>!SWydmh*AF)2O~5_!V!mp~359t}O5Qnr^76ZyJHUI} zZ+sCyPd>b7gA$Ynv_Vs{j7)@(42%?CLfD&@6N`mRQWP*3Q)Gsx(V9vKwTW?19Qbg= zQKV>7#IlhP?lr08{ZmCTNzzY_A8;rNoim)@pV9IcG%PR{UU>8Fg+sv=#HN(!RFIk< z^O8bgH|B8LxiQW=7B_&>{25CUGz(0B7)U#w%rZY>@8+ZT>u(hK*Fqh2Ks$OG%J$t( zYVs-&UHuc=>Be`HtKn8#+11Yy9M?W^4o^#SOvstCjzURuxT!+e;AgXJbP=VhQoO1p zw>FhhPs81u4f^;tM{+z3>2kcD1+41joVNrZlz?8*_TXj^ZbK@FnjOec1enwVSsK@% z1ELHNY=J>*bE+s^fO1U?n-LCFOLw{J?g+6GuL`KbV9D%8&v2+u+?lX=$}(}=Y<9)q zWYpkI`Ci1}>oo}HXVlNF=Q)WSuX=5zBMxej+{&-r z_cTr#ESfRhf_a&uU^7|ZJxxR`r#<&@Q#3g0s@Y?`7WlOPW2SqMO(HD~BQ=7pTGw35 z@i0dljwyYv@!3DTamog-LA9*;hK^8u!xZ7jR%6q$Z?BRV?5T>PZ7Qj#{glgjP?D2q4^6y>ol)vFE zByL1r5&fucd_NfP8t41v5ER^TDcBHStS z2S#5KoakqPlI5A|76tPe4HfG>($38i^K@x`?w6$@{_Wz&vU%Yo+doDNHF4K}`n>%< zMmBmZ@%uc~zRpH804tkSXyQkhpUDIxSI7ztDYs1xFapRiNA9yvVQ~_eDauvjnUIwx z@7eFh(O@c=7)2?9h9tucNM;{LHZDhS^VoA7^w(gDh==vQxfG~UjCmYu46UfZI0kXE$krEpD7OCV(zkO(5K%sA0NOJ;O; zvnKutfRNee;1`i{k)0!UYxnhddDyCBzp}o)>?`Iz5@BC`suMX{c@jh|{oSQ@b?wgu zA*0B*7E&0dLMI5Yi3sF`6QfAW9ex%I{AEDq^poqLG~dhO?>3|4_f7NlGHY61N=C zJ*Qp|HcRYmiE)3jUT6>O@|!wCfVqt`PU_(hj5w%g5sgDkXyRatUev=A9Q({=;2+ zgKGY@@&PAQ5fj%t*zppe&J6_w^P_=xa&w&>*E#TEH-;RW34Gh%V5SP*$tGWu8J%h- zT{Vwg#>0wQMnyl&`ASb0TlmuVvZLat^nOYV3%c6=$Jub^XUh+*)@}(9#~jW77=R4y zg{J>=`^UU5P%@oXnZu0xfGIJIB+CkpvN~a|EY$bs8y{CuvHr)Q3cB}a&oo=Gw4|UY zce`lU{duQBeE|K1Kdn0P>E{UUrmQ7OpVRV~Pnk^ZGznfX#l)jmHBy)^ zbS_GiVWY!fDXPQ)x971QJ!*G6?8reDmk`ImI1dKCA?#&T;k;Z8Or2L%p~HZ72O)dd z%Se!aG+QnP41vUjYWB`pjSbh-qyU_~d#g$1@2u4ce#1qeiE=G1&{8T2(UcXWrBl8d zDP?G}8f7w=Vgp?4+B}v7^1d_q7Xz#tvKbRO*P2h?50u0hEhYV7iHy>B%?K$5$F-Bo zdj%VNX`-UZi$s$8ky2&HBMABNH`3$(#=ZDX)U7)mz_m`Qx~gvleSTEE^(G5LWZ>g$ z`##T9jeptq5bpPWoS?_N(d$-b6C)a}!$_&X!SqcL)GyLVEkz?Vg}FDk&yWr#1u!HKl7LM znMdHQi4N%|80xX?3#=ouMi|(jwW`on0S)4H-ukx4A0U|m?VL*f2p92_ty9UQ_;^ z4GeUJNt9qqa0+Jn?&EUq71vpj^Z<{##l4hhEzjK?o=mkeg6y=f09h+L{_UAI#ynlL zy1-ndY2;!n?;U4N*T-JF@S!RI5wlh#Y;}0i%Y_rv#IB3-!lPbOJ#}7q!=bSV z@!}A$HK(O5;uPNA1q=h*Il7-m;4Fb_KR#Cp?=ssLh7E-JU-ND!)P!s)L_Gz`GBtIx^m(3+F z)G77d(|l!?8vGGOYI~D~sOek9YsU=8C~CH0W;`;a0g%-X=}-hD>b+mnxf#ey z`1E~ETL@&vwuyfVqmej0h`DebicEH%>UMfqzsy1`>ST6F^ab-XpjFOxBtr?UeFD3~6`Ic*3O6y=JuM~HrvB!6nWd3VSvi}weV)8aq~lxw^f z-^jz;>gv_LwnJx7OM#iv^jmLi%6b~x<{y+}goWIUY;3L}&*e0q`=_G0lXE)6+0P4S zZ6RYnhS`>)0IPv`D|N?XPRbR7KaU?+9axascIlP5ON&K1fDgwEtBOv^X)bXnX-0#7 zm#X72Oz5f&te`gEF*Q2D2EkQto=}?*OBOAoL9Xdx-SgXir}@`meLqt=oc7AQ1sho~ z@y?qApVI+TJEfzjz#r@@GEUy0AJ*c)?NW;c841*}sdkxaRw!tw%G;3xwlLCoJi`^w zU^8t?yDR_CzhRya-fNp!LQaB zYL3K7$Z^t-Ux~jB>m`aqjArkXrK0q_gUM7g3U!1F(@j_>vVZL2d~1xSN7`$cFjd#> zZn5@kW{1O2ASTgD$fQ+LZ-cRS4UK{p*xkaGTcviR%Qvo1->{sv1>K$G^8{}c9#>`=TJ}aEZX=SKkrz4|v33wF&7SPS;KHitv zGfD_eKkFmmbYJ>iq2X7H7-uG zmTAy##R?8-THFjeTG7;$n6fh+0=8s%;xgbYLU5;cI!8k;cY%u4C95y$c(7^iRwj~E zvMW^P>!@!P2O{h%Jb}J2h|dka#%0Ljb~g)s*3&xQleF-kZg0?Hi=(yO zE>Lw6h&VtmsUTh_Pxj%*;|{zD^+fmRuk`ugUEF}Rg>z&0&PJ!_BE4TxkO#lC)7l0T zaNhUx8*yH?lA?wOB`T_d3uyx1bC@EZoFG zi06Dn>ORc54L*#uj@oCXn9QT2CVH6m_h)u_-%@uxA&u+O$ld@fp?H=HAELX4)V`%( zqZ5GD8K&u55ys%n5Hwqn{((6U0nvEg+;O~Jm}X2=!$DV#D0x?rVOtsumyZH@?0gyX z9Of4zyzrC%z6MX&o1|0E5!$p>5nYka%Kb6qMuvoRo@AuQ_YAx$TUe>iEeA!c|_={pAB`-gWmlv}Q+%!SNgIN>MCifoR68<$p-d^(>Lwb$jq(>i)|9;cc% zPhVS6wN8MyUVgI?g^;t`sjs#vci%({p!LS~^3BAdn(FnP?E?R;3fIPSYh=}O2+H7R z;hi86Qm4+zj?G)`cUZQshPuy)*x7EM(}*7quQI1dW|$nI)~UsuXB?do+NYAFAhOhLzV=OUKV#E>r8i?bj>FM~4dmra zuDS5!1j|@yDtyTjuI>W_NEFMUAbeT!Qc>d{=uLANrR!-B3CUO!r1tp-QUB0wybt6C z>HvJ&o{0Uqi|E#EMl9k+qKxdN(1<)h7N&)Vniv!{gzxbb6#-ajm6*(>2*78N-rQv^ zi}U})1+LsX@#IdO8olW3bDrr0c^jKGcomzg#1ZUmBLO=XH|=GZ>pIkvARvUl+jLUVR8;}tEJHmTz$G<_V2jT_nq?#`FKbAWD4DCX`P zJ$)c5Lc|5T*IvAlqqA{1RTOvmJp-%`8hxAgWGj><d-(SAVVhQ6tmZozG219`0UD>Hv2j&^mouiQoV*8e3Tp;U#ve00`4) zGg`$VK0OFN@PdiU;oxFw4Uq{18|3|1?Ih>vuuiG|i1m(Mb#HZWG7;#V!tb;Ys5TZY z;RN|;0y+7zf0jF<#gGRb4y2&1LP%HgM}Q4X6J*XqbYbfP`$n$Gji&0n1$C^>hW>j> z?& zz=>*+gtjY+ucVO@E!Swv*}_!x@syd{)Geu=R#j9=Oj*ri0`4ZsXi6}SOeA3@UkQ!D zl4wW^8_XaK3TD+Q@#z|2x1eA=>{0muckYti{Z5p5y>%SZx?zI!i~R5pyQN7VZmUc5 zR`%OL%7}k}PTTop6vOCZXRG7(WK!SZ7MlE1L zQvJrv**y?#f&@U*U)M-)R+I6JEU=qTbS$kZC?#calWX7IH81%4D-#v&R$)EzTq&V; zn9Aw#kiAm9=Zo*Ae9yVoct(1elovxYpZ$WxjY!abVUriaPMvc-ZWRf{bAn}wQ z(HRMZh(Au0l!)RFj(`WmmC)M`ArhWF6k@{6)Wa4va;3?xc;-JkMsteB(5el9^e?CP zNVrKJAF3bY=hShOwp<~n&d?`S(?*M3bGl}Zlul+CV{F}l1S8!T@J?sf$ii<^pzQ??^QCQE{ROE3J6s) z{&@Mu;R{Cx$b|6n!7>tn7w~a%y)waMH4?Lo05l!wHAR zjo%yGufg)FAIWb#(-YNxj-wub7CA@IOGy4^)u11*NZ;X%WVv~6F)mU53TGgaJ?`yJ z0?^oK^8S|oQOcH|Ad2sEm~1^204T4f(<|x$SkS@ANnK?ib_UGVFm7(#hHu`#9PAYMN~otD5Qk$ zeEaR}&|sQ}AG)=xeP_Ru^L@zh2&K&7^l>|>SCi`{bLTQt6J|o8*+LKtf;!Auc!_w( zsf2S7ndvPE!7U<+9)`AxS}0zp!SdLi>)M~6+n z5Ekh$1PKc6(QW1e*j!LUtDtyWNCI#gqz2 zZ%AjoNn5fO-~#N0xS&}wDkt=Wxv|b={>fuBB@nF=ah85B^o4cZa_t)M6{D{jaJ<0w zB6(OZ5!dPZh$+LK9?iizr^am4u$DwX*c7NIU!!ZO{HKHZ4_5(EtFbBML^0?W4e&0MJkjAHOrQL6w?x2xTydM&>=(mDZJ**sv=EMNQz~-zg^6U zGtjy=R302aLXhKbR~Q{(6U#(o#&W=)C=UVMiiDMnqKWh2zB2E8#S8prJ*-$NDG{?} zGlN_AN)F?fA4K{(1|(jFu)!vsLmjLf>Y*WkB4~j>!{0gjGrx z^xK%VyA>o}ONE{64jT8LBNAmzoI&G6U4`~@F1%4pM%Xwzmjw%%Xxt>DI&6!gp_DO>{t?%?(6m9I zW>TFiB2%OTYLc72wCh?R38j{^NR;p(YAIXm-|X6z9qDBm1i^Y#XLC0+j32N?BnXag z!SsNb-7yX9ibF~og_AQIjpJ@=?D=(ZGQ)2jdNzx(hH7fIkindulE!=5kw3OOEHoXJ zpK^nEJC_NJr{$6Oyn@E5`zeUO{ocW%e75Q2yq7&?%=j=sn0n&;Wx;-yzL666FA5j5 zw5HtC(Aa>X$Q-G^F`lhVv06HH={dbziV%qrQ2_}-tK*oA&WtEx7ji8jgd1*CfXt^mxGMO>E zVx$TNT8i9!F|(fDdh`3;}2hK4ivb=}vKrQMqF~Nxi;MT4~$VvcRVl+M^e*Q_v55 z+}DHp;#kJPxO9FtEQICDjTp$q9PM8q0G^9qI2Vu^>|{3PRyw``^8gy5QP^3?Uq}{f z0A9pwov7fS9>j8;;1$xYrgx@bO~D6Bi8P^ILCGAP4{ytgcah@>p?}5D;uDiwCjI5W zXQTzd@enr0yG8V)YjGTJzleR`OWai34wl|B+|+M6jhEWMvGEdk$A};zB|x(c8|XB( zadhz7o#p+!eM^7n$7&9@yF}7bPbE_%;b~eJ2nl1^z<_&8MFJAK&t{dWL%Gbk7NY+r=A#v1|S3$Tkpua#+y*MJ*L;X^U!t>v!6} z%%b-g=zp*X>oBN8+a)HJZ2FDIi

      bi zw6sD+PK=PGynyj~+w`;zX!Ez^rkN<&v@Qt)gh4*ZMZ$%K(>1?jbB0y>RQ?c__UZeH zgtbyQy%vIl={zoaiP3gcIbtRJdmJ>-%A8Dqr(}>X5+}71uQkpgH*-;JbVW(6-r7if zI->V&sU;^;jbf6{!&-EoapdyTs_xS{O1^QTn~|#}AMAJUJykh2sN!c4{&f8`no2I$ z;(V1~tnQ8W>v}DyD=(Mz!qjvfjcmNEwdY8;yc_+a1D|wSb^X@zohaG&xVbH5l~UTo zWmXCEoc1R?XQlLdD~HNhR%%s8Cr zwgV*?h>xM;@Z6HX4kwbVH=$z|i z>9(Kqz*POzYoVG38Xb=bgKTbjzYm3&N$oQDau7Z&<2z&=+awVQoqXPTb7Aj$ykN-B z=Xh*!CFWm5G!F<9q3{RL0gmE0z!_{AF)SHG!(3=LeG{+*H(pS*9-Lyk45OJ2kg9V} z$Sg;rRMu!Vbp8AvgSK_KO!f#YO$x1+vgOEFY zQ5Zr%Cx)7mf&=m|$}I}Nv~c2gx%_sclg)YGd~sZBmEZGsp>Vr+9sbT5sBFTzz?_KA z@hnIm|8)X(m4@|7!j(SF`kxu~>SUjPnsF>@9mnPScXCWKgWn&)WhCKdT`DX@XsB%r zR#}sr#SP?e?>RDP#<+AbRq>GUvNcOC9Y^g1veeLo*n;2%om$56du#iCZh%D0NANLf z)Y3_&z8s%v6Y|)vvVnR;RjFVsE!CrYukcCc8u4hwe^sN{u?iaW|4`+mrG!k=MQ|92 z;*GdW#e-J(jbjp)Do9UV(Z4=vlccnt)iP?wU*-CI?`CIV*(WsjkQ?vZ$n>*dv!8m=_Pc0 z{b}u?+GmLrgyxOSCd~INOrQP0kBKw(#YyWd+&N%! z*isEaXp6W>^_BYS{JMudoR}KIe&6o-6oJBdaSPy}iXi-heL%3Dwz*Vd1Wim*A~c*J ztn}IrA=hWf2e~eQmetA;?gu>xjF!=!?;n7Nc*i)64Im4vq^zSNgsK|BW2c=m!Y6>PUIhFo&W|+2R zA9|fWIhyJJ9FXVEU{&38;aqQOcD6-Gih6E<8SLLL4u2C^A5o5yH|7-DXtZi-3iCOZ zGTYMsGS#CsDlI8 z^V`-ou}9gHJ!3*$tqS~8e|ORu?V@uvH!CX^1a#rZ7|kDGI)N~~9&ZnQ5x<|Fb_g!r znO#!G} zLYmtR1z0WiOmMP*#k-S#z_hz3YS*vFeHKV1}@rYY$hP2*n>6CLORSZ}l zv#C;}7HTQ5JLcD5aH0()2tGb(yZ$!d_K_O2Krb@AosiKT8E0mu+ecd}I7&7*+Js}3 z0N5-l?p1NjIa*6Fg5G~{PgwotIHxWy*JJro6`A5Z-e1S=x!reZ_E|fHXb0zaRAJ#1 zome9_vxdbl0S*6yZNB9k!z#Gi&!rtH*5ND zMClX5oko57ubCEUPlB$x*iai}y+!pw_pa)h#A(IKmBQ!##bhc?&oQ>o20y3^7~sDE zdO(H0$)jBLK868dEg~NPM7WyMrrx?O^yVr|4`d!4aN^x_o|s@5mtp)SYw^awhuMQN zV+px~s?#%0oZROzHM&J?lj7a6<$5R+oiK9g7hj&Jy9V79D2324w`LG%k!%cfvVkTy zzoKmr zuFSmaTW{|B&P7JJJ#Ft}K|t%;gzSn&H8G-6QlT|aB9!EGw03+29Ih5cm4%R+gLf2a zt$-43OH0f8BgO?HTZPd*ir%P$P45lR`XP&Kwn^z=JFwDB%@ge7LJJ4=XQR z6+Hb3qcTF5$k@{Qebq=b8RfBZpP@CWyke0)s;P#k28LA^U$&edhyMzCK%LV_MZ)C4 ziyaM26RJ$BGmA&{KIOWllZuB@Qk`Jy-Kd@fQkck_8e*Vf0mnePY zvf`bLDv;Qq5DGbHvsD#li&QZJ+7#MKY?T@Ofa7N!RjYRX_5HrnuQ{&o_No+X@0K

      HRn+(LsDT{lW`tj?fme)nMThE!{Sj20N`^Au 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ⅈw~Gi1-;V8hf-p_03h0#D7gN*h8bMfS;~ip9CYeG2COz1J2V`- zRS@PM0>&_?Ye+$UHb_V4WJwYQzSC+hJ_o*dnvn7)fo<%UDQg&)A%yuTFC(?td|i*~ z-gKm}=?I*QV-KHnwYrYOXsIvn{uQ02yfboBbk-eHb27n35P?iJN1mEphT;6Ep1OJH zH&dfeF7CIxbG5md$g`Evx5qvAo|iB%1FT(KEJ}NtDKid6*7HD?Q9ZpvQ{-f4V?!mf z{)wP4j6u?HBQ4Gwh%(bfO4Rh)ucIcPUShnAa==&zm}LUIBuk|d@NYDv5WPg1 z_WY#3t-mXR_pHcGB!UQz*uh2d#AF8*zkq5w*TV*R5y<|a`br%aZEa5SaWd5aEoNlB zVMXGTHw_$d_;D@$M*L2(RAr`1mBq^Wmppr6ok4@f!!U8XX>+3s3){PAx{zW8Dn$kj z9Y7l)z7ZB0!%4N{>LVWlK3-3gYFk-PBhLcmYI(@X+=p{=)52=C`^;P#0c3X`z{8Q9 zi6VXu;!X5g_qMFoJ$Q{^asojj%FH@ba$=XM4HqcKFxNY$EGCyepiI{gF@HGF`YurT z8y8J-@vxW>!mP+gIf*3wEKIbO^|yyb7Ficy3^?8M@X@FLKt@xi-K;#XW7c z@bT?e8sVJ`&9hj(kR?SkhzApLB!qYtNJe<30sc{%N(y|4pDRc_s$d0U2`l^MN;#E` z@}6nUF$Uz~J=2fb|Ujy9Q(ms4V#4;Pafyjp2`@xb%;Ix%46-d2K1uhHxAVJ=^) zDis$K(I{{!>-dx?fEs89S&0S5v&627&<{od=8gQsnH?B^Gc&kgTr zsZ}T|?4o{N&hkr`Nx&Gv8-jqBtJzi1j(HZe!i#!GtNNAFhB+ zVF|BObnAcXcoACn&cC0=`+dW;`%gL2=wVH`{MS?ebTwlH7Na5h#pBauO=)v7k%U$8 zskob$LZXnAQK^8+DJ(qCeZBJ9%0D`vT3u_DpRqT(W(aXtb4^VKRbc~yB#1E#!!f)X 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

      4di=<@xe%*eltxQANCDA!5P1fFz$ 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 diff --git a/packages/compiler/src/backend/llvm/call-lifetimes.test.ts b/packages/compiler/src/backend/llvm/call-lifetimes.test.ts index 90909a024..5c40bb4ce 100644 --- a/packages/compiler/src/backend/llvm/call-lifetimes.test.ts +++ b/packages/compiler/src/backend/llvm/call-lifetimes.test.ts @@ -760,3 +760,154 @@ test("a parameter stored as its last use takes the owned convention", () => { const passed = ctor([{ kind: "exprStmt", expr: call("use", [ref("item", cell)]), loc }]); expect(analyze(passed).borrowed.get("%Box.constructor")).toEqual(new Set([0, 1])); }); + +test("a wrap into a pointer union forwards the wrapped binding to the callee's parameter", () => { + const wrap = (id: string): IrExpr => ({ + kind: "unionWrap", + unionId: "optional", + tag: 0, + value: ref(id, record), + type: optional, + loc, + }); + const leaf = helper("leaf"); + const outer = helper("outer"); + outer.params[0]!.type = outer.locals[0]!.type = record; + outer.locals.push(local("cell", record)); + outer.body = [ + { + kind: "varDecl", + localId: "cell", + init: { kind: "recordLit", fields: [], type: record, loc }, + loc, + }, + { kind: "exprStmt", expr: call("leaf", [wrap("value")]), loc }, + ret(call("leaf", [wrap("cell")])), + ]; + const functions = new Map([leaf, outer].map((fn) => [fn.name, fn])); + const analyzeWith = (pointer: boolean) => + analyzeCallLifetimes( + functions, + undefined, + undefined, + undefined, + undefined, + undefined, + () => pointer, + ); + // A boxed union builds a new box around the payload: a whole-value use. + expect(analyzeWith(false).parameters.get("outer")).toBeUndefined(); + expect(analyzeWith(false).locals.get("outer")).toEqual(new Set()); + // A pointer union passes the payload pointer itself. + expect(analyzeWith(true).parameters.get("outer")).toEqual(new Set([0])); + expect(analyzeWith(true).locals.get("outer")).toEqual(new Set(["cell"])); + // A callee that keeps its parameter keeps the wrapped binding too. + leaf.body.push(ret(ref("value"))); + expect(analyzeWith(true).parameters.get("outer")).toBeUndefined(); + expect(analyzeWith(true).locals.get("outer")).toEqual(new Set()); +}); + +test("a pointer-wrapped binding needs a callee that keeps the narrowed payload in place", () => { + const wrapCell: IrExpr = { + kind: "unionWrap", + unionId: "optional", + tag: 0, + value: ref("cell", record), + type: optional, + loc, + }; + const outer = helper("outer", []); + outer.locals.push(local("cell", record)); + outer.body = [ + { + kind: "varDecl", + localId: "cell", + init: { kind: "recordLit", fields: [], type: record, loc }, + loc, + }, + ret(call("leaf", [wrapCell])), + ]; + const read = (value: IrExpr): IrExpr => ({ + kind: "recordGet", + obj: value, + shapeId: "cell", + field: "x", + type: F64, + loc, + }); + const keeps = (leaf: IrFunction, ...more: IrFunction[]): boolean => { + const result = analyzeCallLifetimes( + new Map([outer, leaf, ...more].map((fn) => [fn.name, fn])), + (className) => className === "Node", + undefined, + undefined, + undefined, + undefined, + () => true, + ); + return result.locals.get("outer")?.has("cell") !== true; + }; + const leafWith = (body: IrStmt[]): IrFunction => ({ ...helper("leaf"), body }); + // Tag tests and field reads of the narrowed payload leave it in place. + expect(keeps(leafWith([{ kind: "exprStmt", expr: tag("value"), loc }]))).toBe(false); + expect(keeps(leafWith([ret(read(narrow("value")))]))).toBe(false); + // So do field reads through a checked narrowing, which throws on the + // other arm (`value.x` of a `T | undefined` parameter). + const checked: IrExpr = { + kind: "ternary", + cond: tag("value"), + then: { kind: "libCall", fn: "error.nodeThrow", args: [], type: record, loc }, + else_: narrow("value"), + type: record, + loc, + }; + expect(keeps(leafWith([ret(read(checked))]))).toBe(false); + // Returning it keeps the payload. + const returnsChecked = leafWith([ret(checked)]); + returnsChecked.returnType = record; + expect(keeps(returnsChecked)).toBe(true); + // Returning the narrowed payload, or a narrowed nullish read, keeps it, + // although the union itself is only projected. + const returned = leafWith([ret(narrow("value"))]); + returned.returnType = record; + expect(analyze(returned).parameters.get("leaf")).toEqual(new Set([0])); + expect(keeps(returned)).toBe(true); + const defaulted = leafWith([ + ret({ kind: "nullish", left: ref("value"), right: ref("other", record), type: record, loc }), + ]); + defaulted.locals.push(local("other", record)); + expect(keeps(defaulted)).toBe(true); + // So does a nullable-pointer field store of the union. + const self: IrType = { kind: "object", className: "Node" }; + const stored = leafWith([ + { + kind: "fieldSet", + obj: ref("this", self), + className: "Node", + field: "next", + value: ref("value"), + loc, + }, + ]); + stored.params = [{ localId: "value", name: "value", type: optional }]; + stored.locals.push(local("this", self)); + expect(keeps(stored)).toBe(true); + // A narrowed payload passed on, or the union passed on, is in place when + // the next callee keeps it in place. + const inner = (body: IrStmt[], type: IrType = record): IrFunction => { + const fn = helper("inner"); + fn.params[0]!.type = fn.locals[0]!.type = type; + fn.body = body; + return fn; + }; + const passNarrowed = leafWith([ret(call("inner", [narrow("value")]))]); + expect(keeps(passNarrowed, inner([ret(read(ref("value", record)))]))).toBe(false); + const returnsRecord = inner([ret(ref("value", record))]); + returnsRecord.returnType = record; + expect(keeps(passNarrowed, returnsRecord)).toBe(true); + const passUnion = leafWith([ret(call("inner", [ref("value")]))]); + expect(keeps(passUnion, inner([ret(read(narrow("value")))], optional))).toBe(false); + const innerReturned = inner([ret(narrow("value"))], optional); + innerReturned.returnType = record; + expect(keeps(passUnion, innerReturned)).toBe(true); +}); diff --git a/packages/compiler/src/backend/llvm/call-lifetimes.ts b/packages/compiler/src/backend/llvm/call-lifetimes.ts index db5bdb574..becd24805 100644 --- a/packages/compiler/src/backend/llvm/call-lifetimes.ts +++ b/packages/compiler/src/backend/llvm/call-lifetimes.ts @@ -14,6 +14,11 @@ import { storedLastUseRead } from "./local-extents.js"; interface ForwardedUse { callee: string; index: number; + /** The binding reached the call inside a nullable-pointer union + * (PointerWrapTest): the callee's parameter holds the binding itself as + * its payload, so the callee must keep the payload, not only the union, + * in place. */ + wrapped: boolean; } interface Uses { @@ -21,6 +26,13 @@ interface Uses { written: Set; declarations: Map; forwards: Map; + /** Union bindings whose payload a use may keep: a narrowed read that is + * not projected or passed on, a narrowed nullish read, a store into a + * nullable-pointer field. The union itself can still be only projected. */ + payloadKept: Set; + /** Narrowed payloads of union bindings passed directly as call arguments: + * the payload stays in place if the callee's parameter is proved. */ + payloadForwards: Map; } interface Parameter { @@ -99,19 +111,55 @@ const NO_INLINE_FIELDS: InlineFieldTest = { record: () => false, classField: () * reads the record and keeps no reference to it. */ export type RecordDynCopyTest = (shapeId: string) => boolean; +/** Wraps into a nullable-pointer union whose value is the payload pointer + * itself (LlEmitter.borrowableNullableWrap): the wrapped binding reaches the + * callee's parameter unchanged. */ +export type PointerWrapTest = (wrap: IrExpr & { kind: "unionWrap" }) => boolean; + function collectUses( fn: IrFunction, nullableField: NullableFieldTest, registerReturn: boolean, inlineField: InlineFieldTest, recordDynCopy: RecordDynCopyTest, + pointerWrap: PointerWrapTest, ): Uses { const uses: Uses = { invalid: new Set(), written: new Set(), declarations: new Map(), forwards: new Map(), + payloadKept: new Set(), + payloadForwards: new Map(), }; + const forward = ( + table: Map, + localId: string, + use: ForwardedUse, + ): void => { + let forwards = table.get(localId); + if (!forwards) table.set(localId, (forwards = [])); + forwards.push(use); + }; + /** The union binding `x` whose payload `value` is: `unionNarrow(x)`, or a + * checked narrowing `unionIsTag(x) ? : unionNarrow(x)` (either + * order), whose other branch is visited as any use. */ + function narrowedBinding(value: IrExpr): string | null { + if (value.kind === "unionNarrow") + return value.value.kind === "varRef" ? value.value.localId : null; + if ( + value.kind !== "ternary" || + value.cond.kind !== "unionIsTag" || + value.cond.value.kind !== "varRef" + ) + return null; + const id = value.cond.value.localId; + if (value.else_.kind === "libCall" && narrowedBinding(value.then) === id) + return expr(value.else_) ? id : null; + if (value.then.kind === "libCall" && narrowedBinding(value.else_) === id) + return expr(value.then) ? id : null; + return null; + } const aliases: { alias: string; source: string }[] = []; const stringInput = (value: IrExpr): boolean => { if (value.kind === "varRef" && value.type.kind === "string") return true; @@ -145,6 +193,12 @@ function collectUses( if (borrowsMapReadInputs(node)) return expr(node.receiver) && node.args.every(stringInput); break; case "unionNarrow": + // The payload may escape; the union itself does not. + if (node.value.kind === "varRef") { + uses.payloadKept.add(node.value.localId); + return true; + } + break; case "unionIsTag": if (node.value.kind === "varRef") return true; break; @@ -161,12 +215,16 @@ function collectUses( node.left.kind === "varRef" && node.left.type.kind === "union" && node.type.kind !== "union" - ) + ) { + uses.payloadKept.add(node.left.localId); return expr(node.right); + } break; case "fieldGet": case "recordGet": - if (node.obj.kind === "varRef") return true; + // A field read of a binding, or of a union binding's narrowed + // payload, keeps neither. + if (node.obj.kind === "varRef" || narrowedBinding(node.obj) !== null) return true; break; case "dynFrom": // A copied record converts field by field; a live capsule keeps it. @@ -200,13 +258,19 @@ function collectUses( return node.args.every(expr); case "call": node.args.forEach((arg, index) => { - if (arg.kind !== "varRef") { + const narrowed = narrowedBinding(arg); + if (narrowed !== null) { + forward(uses.payloadForwards, narrowed, { callee: node.callee, index, wrapped: false }); + return; + } + const wrapped = + arg.kind === "unionWrap" && arg.value.kind === "varRef" && pointerWrap(arg); + const value = wrapped ? arg.value : arg; + if (value.kind !== "varRef") { expr(arg); return; } - let forwards = uses.forwards.get(arg.localId); - if (!forwards) uses.forwards.set(arg.localId, (forwards = [])); - forwards.push({ callee: node.callee, index }); + forward(uses.forwards, value.localId, { callee: node.callee, index, wrapped }); }); return true; case "assignExpr": @@ -250,8 +314,11 @@ function collectUses( node.value.kind === "varRef" && node.value.type.kind === "union" && nullableField(node.className, node.field) - ) + ) { + // The field retains the payload. + uses.payloadKept.add(node.value.localId); return expr(node.obj); + } const stored = fieldStore( node.obj, node.value, @@ -345,10 +412,14 @@ export function analyzeCallLifetimes( registerReturns: ReadonlySet = new Set(), inlineField: InlineFieldTest = NO_INLINE_FIELDS, recordDynCopy: RecordDynCopyTest = () => false, + pointerWrap: PointerWrapTest = () => false, ): CallLifetimes { const usesByFunction = new Map(); const lazyCaptures = new LazyCaptures(functions); const nodes = new Map(); + /** Union parameters that keep their payload in place too, which a + * pointer-wrapped argument needs (ForwardedUse.wrapped). */ + const payloadNodes = new Map(); const unsafe: Parameter[] = []; const consumed: { fn: string; index: number }[] = []; const result: CallLifetimes = { @@ -361,7 +432,7 @@ export function analyzeCallLifetimes( }; for (const fn of functions.values()) { if (fn.generator !== undefined && fn.classCaptures === undefined) { - const uses = collectUses(fn, nullableField, false, inlineField, recordDynCopy); + const uses = collectUses(fn, nullableField, false, inlineField, recordDynCopy, pointerWrap); const locals = new Map(fn.locals.map((local) => [local.id, local])); const stable = new Set(); for (const param of fn.params) { @@ -386,6 +457,7 @@ export function analyzeCallLifetimes( registerReturns.has(fn.name), inlineField, recordDynCopy, + pointerWrap, ); usesByFunction.set(fn.name, uses); // Class-capturing bodies get only local facts (computed below from @@ -460,23 +532,50 @@ export function analyzeCallLifetimes( return node; }), ); + payloadNodes.set( + fn.name, + fn.params.map((param) => { + if (param.type.kind !== "union") return undefined; + const node: Parameter = { safe: !uses.payloadKept.has(param.localId), callers: new Set() }; + if (!node.safe) unsafe.push(node); + return node; + }), + ); } + /** The fact a forwarded use needs from the callee's parameter. */ + const target = (use: ForwardedUse): Parameter | undefined => + use.wrapped ? payloadNodes.get(use.callee)?.[use.index] : nodes.get(use.callee)?.[use.index]; for (const fn of functions.values()) { const params = nodes.get(fn.name); const uses = usesByFunction.get(fn.name); if (!params || !uses) continue; - fn.params.forEach((param, index) => { - const node = params[index]!; + const depend = (node: Parameter, callees: (Parameter | undefined)[]): void => { if (!node.safe) return; - for (const use of uses.forwards.get(param.localId) ?? []) { - const callee = nodes.get(use.callee)?.[use.index]; + for (const callee of callees) { if (!callee) { node.safe = false; unsafe.push(node); - break; + return; } callee.callers.add(node); } + }; + fn.params.forEach((param, index) => { + const node = params[index]!; + const forwards = uses.forwards.get(param.localId) ?? []; + depend(node, forwards.map(target)); + const payload = payloadNodes.get(fn.name)?.[index]; + if (!payload) return; + // The payload stays in place when the union does, when every callee + // the union reaches keeps its payload too, and when every callee its + // narrowed payload reaches proves that parameter. + depend(payload, [ + node, + ...forwards.map((use) => payloadNodes.get(use.callee)?.[use.index]), + ...(uses.payloadForwards.get(param.localId) ?? []).map( + (use) => nodes.get(use.callee)?.[use.index], + ), + ]); }); } for (let i = 0; i < unsafe.length; i++) { @@ -508,7 +607,7 @@ export function analyzeCallLifetimes( ) continue; const forwards = uses.forwards.get(local.id) ?? []; - if (forwards.every((use) => result.parameters.get(use.callee)?.has(use.index) === true)) { + if (forwards.every((use) => target(use)?.safe === true)) { projected.add(local.id); if (eligible(local) && !uses.written.has(local.id)) safe.add(local.id); } diff --git a/packages/compiler/src/backend/llvm/dyn.ts b/packages/compiler/src/backend/llvm/dyn.ts index 6d02daa8b..da31ffdbb 100644 --- a/packages/compiler/src/backend/llvm/dyn.ts +++ b/packages/compiler/src/backend/llvm/dyn.ts @@ -193,6 +193,11 @@ function builtinStreamKind(className: string): number | null { return kinds[className] ?? null; } +/** Unions whose discriminant has fewer string literals keep one literal test + * per arm (dispatchValues): one runtime lookup costs about what a few + * literal tests do. */ +const DISCRIMINANT_DISPATCH_VALUES = 4; + export class LlDyn { private readonly dynMatchers = new Map(); private readonly dynBuilders = new Map(); @@ -413,6 +418,109 @@ export class LlDyn { return order; } + /** The string literals of `def`'s discriminant when its arms are chosen + * by reading the discriminant once (unionArmsByDiscriminant), or null + * when the union keeps one literal test per arm: some literal is not a + * string, or there are fewer than DISCRIMINANT_DISPATCH_VALUES. */ + private dispatchValues(def: IrUnionDef): string[] | null { + const values: string[] = []; + for (const guard of def.discriminant?.cases ?? []) { + if (guard.values.length === 0) return null; + for (const value of guard.values) { + if (typeof value !== "string") return null; + if (!values.includes(value)) values.push(value); + } + } + return values.length < DISCRIMINANT_DISPATCH_VALUES ? null : values; + } + + /** Branches to `hits[tag]` for the first arm in `order` that `%d` matches + * (unionArmMatch), or to `none` when no arm does, for + * a union whose discriminant literals are `values` (dispatchValues). The + * discriminant is read once (scr_dyn_discriminant_case, against the + * constant `table`), and only the arms whose literal it holds and the arms + * without a literal are tested, in `order`: every other arm's literal test + * fails. An arm's failed check can run a getter that changes the + * discriminant, so it is read again after each one; when its case + * changed, the tests continue arm by arm after the failed arm, as they + * would have run from the first arm. A value the runtime cannot classify + * that way (a typed capsule, an accessor, an inherited discriminant) takes + * the tests arm by arm. */ + private unionArmsByDiscriminant( + B: BlockBuilder, + def: IrUnionDef, + values: readonly string[], + order: readonly number[], + hits: readonly string[], + none: string, + preserveRefs: boolean, + table: string, + ): void { + const discriminant = def.discriminant!; + const literalsOf = (tag: number): readonly (string | number | boolean)[] | null => + discriminant.cases.find((candidate) => candidate.tag === tag)?.values ?? null; + const host = this.host; + this.defs.push( + `${table} = private unnamed_addr constant [${values.length} x ptr] [${values.map((value) => `ptr ${host.internLiteral(value)}`).join(", ")}]`, + ``, + ); + host.declare(`declare i32 @scr_dyn_discriminant_case(ptr, ptr, ptr, ${host.sizeType})`); + const classify = (): string => { + const index = B.tmp(); + B.line( + `${index} = call i32 @scr_dyn_discriminant_case(ptr %d, ptr ${host.internLiteral(discriminant.field)}, ptr ${table}, ${host.sizeType} ${values.length})`, + ); + return index; + }; + // The arm-by-arm tests, entered at any arm (`from[i]` tests order[i] + // and the arms after it). + const tests = B.newLabel("du.tests"); + const from = order.map((_, i) => (i === 0 ? tests : B.newLabel("du.t"))); + const after = (position: number): string => + position + 1 < order.length ? from[position + 1]! : none; + // Tests the arms a value in case `k` (-1: no literal) can match. + const tryCase = (k: number): void => { + const value = k < 0 ? null : values[k]!; + const positions = order + .map((_, position) => position) + .filter((position) => { + const literals = literalsOf(order[position]!); + return literals === null || (value !== null && literals.includes(value)); + }); + if (positions.length === 0) { + B.br(none); + return; + } + positions.forEach((position, index) => { + const tag = order[position]!; + const failed = B.newLabel("du.c.f"); + this.unionArmStructure(B, def, tag, hits[tag]!, failed, preserveRefs); + B.startBlock(failed); + const next = index === positions.length - 1 ? none : B.newLabel("du.c.n"); + const same = B.tmp(); + B.line(`${same} = icmp eq i32 ${classify()}, ${k}`); + B.condBr(same, next, after(position)); + if (next !== none) B.startBlock(next); + }); + }; + const index = classify(); + const unmatched = B.newLabel("du.none"); + const cases = values.map(() => B.newLabel("du.case")); + B.terminate( + `switch i32 ${index}, label %${tests} [ i32 -1, label %${unmatched} ${cases.map((label, k) => `i32 ${k}, label %${label}`).join(" ")} ]`, + ); + values.forEach((_, k) => { + B.startBlock(cases[k]!); + tryCase(k); + }); + B.startBlock(unmatched); + tryCase(-1); + order.forEach((tag, position) => { + B.startBlock(from[position]!); + this.unionArmMatch(B, def, tag, hits[tag]!, after(position), preserveRefs); + }); + } + /** Branch to a variant only after its literal discriminator and complete * structure match. Use the same path for predicates and builders. */ private unionArmMatch( @@ -450,6 +558,18 @@ export class LlDyn { }); B.startBlock(structure); } + this.unionArmStructure(B, def, tag, yes, no, preserveRefs); + } + + /** The part of unionArmMatch past the arm's literal test. */ + private unionArmStructure( + B: BlockBuilder, + def: IrUnionDef, + tag: number, + yes: string, + no: string, + preserveRefs: boolean, + ): void { const matches = B.tmp(); B.line( `${matches} = call zeroext i1 @${this.dynMatchHelper(def.arms[tag]!, preserveRefs)}(ptr %d)`, @@ -1278,11 +1398,26 @@ export class LlDyn { ); // Arms in canonical order; any full match answers true. const yes = B.newLabel("dm.y"); - for (let tag = 0; tag < def.arms.length; tag++) { - const ln = B.newLabel("dm.n"); - this.unionArmMatch(B, def, tag, yes, ln, preserveRefs); - B.startBlock(ln); - } + const values = this.dispatchValues(def); + if (values !== null) { + const no = B.newLabel("dm.n"); + this.unionArmsByDiscriminant( + B, + def, + values, + def.arms.map((_, tag) => tag), + def.arms.map(() => yes), + no, + preserveRefs, + `@${name}.cases`, + ); + B.startBlock(no); + } else + for (let tag = 0; tag < def.arms.length; tag++) { + const ln = B.newLabel("dm.n"); + this.unionArmMatch(B, def, tag, yes, ln, preserveRefs); + B.startBlock(ln); + } B.terminate(`ret i1 false`); B.startBlock(yes); B.terminate(`ret i1 true`); @@ -2462,12 +2597,8 @@ export class LlDyn { ); // Arms in unionArmOrder, first FULL match wins. The matched arm's // builder can no longer fail. - for (const i of this.unionArmOrder(def)) { + const build = (i: number): void => { const arm = def.arms[i]!; - const lHit = B.newLabel("dcu.h"); - const lNext = B.newLabel("dcu.n"); - this.unionArmMatch(B, def, i, lHit, lNext, preserveRefs); - B.startBlock(lHit); if (arm.kind === "undefinedT" || arm.kind === "nullT") { // A matched unit arm builds nothing: THE interned immortal // instance (rc == SIZE_MAX — no retain owed). @@ -2506,8 +2637,36 @@ export class LlDyn { ); B.terminate(`ret ptr ${u}`); } - B.startBlock(lNext); - } + }; + const order = this.unionArmOrder(def); + const values = this.dispatchValues(def); + if (values !== null) { + const hits = def.arms.map(() => B.newLabel("dcu.h")); + const unmatched = B.newLabel("dcu.n"); + this.unionArmsByDiscriminant( + B, + def, + values, + order, + hits, + unmatched, + preserveRefs, + `@${name}.cases`, + ); + for (const i of order) { + B.startBlock(hits[i]!); + build(i); + } + B.startBlock(unmatched); + } else + for (const i of order) { + const lHit = B.newLabel("dcu.h"); + const lNext = B.newLabel("dcu.n"); + this.unionArmMatch(B, def, i, lHit, lNext, preserveRefs); + B.startBlock(lHit); + build(i); + B.startBlock(lNext); + } if (preserveRefs) { B.line( `call void @scr_dyn_check_fail(ptr %path, ptr ${host.cstr("reference with its original layout")}, ptr %d)`, diff --git a/packages/compiler/src/backend/llvm/emit-function.ts b/packages/compiler/src/backend/llvm/emit-function.ts index 8f306035a..e015c2d72 100644 --- a/packages/compiler/src/backend/llvm/emit-function.ts +++ b/packages/compiler/src/backend/llvm/emit-function.ts @@ -159,6 +159,7 @@ export function emitFunction(emitter: LlEmitter, fn: IrFunction): string { emitter.optionalArrayReads, emitter.referenceWrites, emitter.fnByName, + emitter.nodeIndex, ) : new Set(); emitter.localArrayReads = findLocalArrayReads( @@ -324,7 +325,7 @@ export function emitFunction(emitter: LlEmitter, fn: IrFunction): string { const paramIds = new Set(fn.params.map((p) => p.localId)); if (emitter.debug === null) { - for (const id of findIntegerViews(numericFn)) { + for (const id of findIntegerViews(numericFn, emitter.nodeIndex)) { // An i32 slot is its own view. if (emitter.int32Locals.has(id)) continue; const slot = B.slot(); @@ -1307,8 +1308,10 @@ export function emitArgPackAndTrampolinePrologue( * code. */ export function parkingFunctions(emitter: LlEmitter): Set | null { if (emitter.wasi || emitter.mod.workers === true) return null; - for (const decl of emitter.decls) if (/@scr_test_sub\b/.test(decl)) return null; - for (const text of emitter.fnDefText.values()) if (/@scr_test_sub\b/.test(text)) return null; + const testSub = (text: string): boolean => + text.includes("@scr_test_sub") && /@scr_test_sub\b/.test(text); + for (const decl of emitter.decls) if (testSub(decl)) return null; + for (const text of emitter.fnDefText.values()) if (testSub(text)) return null; // Reverse mention edges, then propagate "may park" to every mentioner. const mentionedBy = new Map>(); const parks = new Set(); diff --git a/packages/compiler/src/backend/llvm/emit-module.ts b/packages/compiler/src/backend/llvm/emit-module.ts index fe4b80610..5d30797db 100644 --- a/packages/compiler/src/backend/llvm/emit-module.ts +++ b/packages/compiler/src/backend/llvm/emit-module.ts @@ -67,6 +67,7 @@ import { STRING_READ_HELPERS, stringScanDecl } from "./string-reads.js"; import { emitLibraryIdentityLines } from "../library-identity-markers.js"; import { InternalCompilerError } from "../../errors.js"; import { targetCpuAttribute } from "../target-cpu.js"; +import type { IrFunction } from "../../ir/ir.js"; /** The function bodies emitted in `chunks` contiguous ranges, each by its * own emitter (LlEmitter.chunkEmitter), then merged in function order: the @@ -208,6 +209,26 @@ function functionAttributes(emitter: LlEmitter, hasNoInlineRecordClone: boolean) ]; } +/** The group line written before each function's text. Functions from one + * source file share a group, which the LLVM helper keeps in the same + * partitions so that their calls to each other stay inside a partition + * (native/llvm-codegen/src/partition.h). A group is numbered by the first + * function of its file in the module's function order, which does not depend + * on the host. Functions without a source file get no group. */ +function partitionGroupLines(functions: readonly IrFunction[]): string[] { + const groups = new Map(); + return functions.map((fn) => { + const file = fn.loc.file; + if (file === "") return PARTITION_GROUP_END; + let group = groups.get(file); + if (group === undefined) groups.set(file, (group = groups.size)); + return `${PARTITION_GROUP_END} ${group}`; + }); +} + +/** Ends the group of the definitions that follow. */ +const PARTITION_GROUP_END = "; scriptc-group"; + export function emitModuleParts(emitter: LlEmitter): string[] { // Function bodies first (the literal/unit/fn-value tables fill as they // emit), then the file assembles around them — the runtime ABI’s order. @@ -349,6 +370,8 @@ export function emitModuleParts(emitter: LlEmitter): string[] { // Fetch-referencing programs register native fetch before main. // Runtime selection compiles scr_fetch.c on the same predicate. const usesFetch = runtimeFeatures.fetch; + // URL programs give the host parser the IDNA unit's ToASCII. + const usesUrlIdna = runtimeFeatures.urlIdna; const snapshotsTlsCa = runtimeFeatures.tls || runtimeFeatures.tlsCa; // The process verdict has the same precedence as the C reference // emitter: node:test owns the final status when present; otherwise an @@ -414,6 +437,7 @@ export function emitModuleParts(emitter: LlEmitter): string[] { if (usesHttp2) emitter.declare(`declare void @scr_http2_dyn_install()`); if (usesHttp) emitter.declare(`declare void @scr_http_dyn_install()`); if (usesFetch) emitter.declare(`declare void @scr_fetch_install()`); + if (usesUrlIdna) emitter.declare(`declare void @scr_url_idna_install()`); if (usesNodeTest) { emitter.declare(`declare i32 @scr_test_exit_code()`); @@ -931,9 +955,13 @@ export function emitModuleParts(emitter: LlEmitter): string[] { for (const line of wrappers) out.push(line); for (const line of asyncDefs) out.push(line); for (const line of emitter.resolveThunkDefs) out.push(line); - out.push(fnDefs[0] ?? ""); - for (let i = 1; i < fnDefs.length; i++) out.push("", fnDefs[i]!); - out.push(""); + const groups = partitionGroupLines(emitter.mod.functions); + for (let i = 0; i < fnDefs.length; i++) { + if (i > 0) out.push(""); + out.push(groups[i] ?? PARTITION_GROUP_END, fnDefs[i]!); + } + if (fnDefs.length === 0) out.push(""); + out.push(PARTITION_GROUP_END, ""); // WebAssembly modules translated into this program, and the registry. for (const line of emitWasmModules(emitter.mod, flushedDecls, emitter.wasmBoundsChecks)) out.push(line); @@ -1052,6 +1080,7 @@ export function emitModuleParts(emitter: LlEmitter): string[] { ...(emitter.ffiHasForeignCallback ? [` call void @scr_ffi_install()`] : []), ...(snapshotsTlsCa ? [` call void @scr_tls_ca_install()`] : []), ...(usesFetch ? [` call void @scr_fetch_install()`] : []), + ...(usesUrlIdna ? [` call void @scr_url_idna_install()`] : []), ...(usesNet ? [` call void @scr_net_install()`, ` call void @scr_net_dyn_install()`] : []), ...(usesNetLookup ? [` call void @scr_net_lookup_install()`] : []), ...(usesHttp ? [` call void @scr_http_dyn_install()`] : []), diff --git a/packages/compiler/src/backend/llvm/emit-statements.ts b/packages/compiler/src/backend/llvm/emit-statements.ts index 55e31219c..d356bfa3d 100644 --- a/packages/compiler/src/backend/llvm/emit-statements.ts +++ b/packages/compiler/src/backend/llvm/emit-statements.ts @@ -2437,7 +2437,7 @@ function planProvenLoop( loop: Extract, ): ProvenLoopPlan | null { if ( - loop.kind !== "for" || + loop.kind === "doWhile" || !emitter.speculativeLoopsEnabled || emitter.speculation !== null || emitter.speculationResume !== null || diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index 8575a8f6d..0cd439783 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -97,7 +97,12 @@ import { unshareNodes } from "../../ir/unshare.js"; import { runPairedWhileLoopsAsFor } from "../../ir/paired-while-loops.js"; import { copyStableCaptures } from "../../ir/capture-values.js"; import { resolveSelfCaptures } from "../../ir/self-captures.js"; -import { analyzeInt32Slots, dynamicFieldStores, type Int32Slots } from "../../ir/int32-slots.js"; +import { + analyzeInt32Slots, + dynamicFieldStores, + type DynamicFieldStores, + type Int32Slots, +} from "../../ir/int32-slots.js"; import { analyzeFinalFields, type FinalFields } from "../../ir/final-fields.js"; import { foldConstantGlobals } from "../../ir/constant-globals.js"; import { dropUnwrittenPropertyBags } from "../../ir/property-bags.js"; @@ -171,7 +176,7 @@ import { type MapEntryFusion } from "./map-entry-fusion.js"; import { emitBorrowedFieldSequence, guardedValue } from "./borrowed-receivers.js"; import { emitBorrowedInputs } from "./borrowed-inputs.js"; import { findWalkBorrows, type WalkBorrowHost } from "./walk-borrows.js"; -import { IrNodeIndex } from "../../ir/node-index.js"; +import { eachNodeOfKinds, IrNodeIndex, type IrNodeKind } from "../../ir/node-index.js"; import { lastUseRead } from "./local-extents.js"; import { findReboundParameters } from "./rebound-parameters.js"; import { ReferenceEffects } from "./reference-effects.js"; @@ -509,14 +514,24 @@ function versionParameters(mod: IrModule): IrModule { return versionLoopBoundParameters(mod, mangleFunction); } -/** The int32 arrays the int32 slot analysis keeps in `mod` (proven and - * checked), under the inputs LlEmitter gives it (selectInt32Arrays). */ -function provenInt32Arrays(mod: IrModule): ReadonlySet { - const slots = analyzeInt32Slots(mod, { - dynamicStores: dynamicFieldStores(mod), - initializerBindings: findInitializerBindings(mod), - }); - return new Set([...slots.int32Arrays, ...slots.checkedInt32Arrays]); +/** The int32 slot analysis of one module and the inputs it read: the + * constructor's own analyses of that module, which LlEmitter takes over + * instead of repeating them when it emits the same module. */ +export interface Int32SlotAnalysis { + readonly mod: IrModule; + readonly nodeIndex: IrNodeIndex; + readonly initializerBindings: ReturnType; + readonly dynamicStores: DynamicFieldStores; + readonly slots: Int32Slots; +} + +/** The int32 slot analysis of `mod`, with the inputs LlEmitter gives it. */ +function analyzeModuleInt32Slots(mod: IrModule): Int32SlotAnalysis { + const nodeIndex = new IrNodeIndex(mod); + const initializerBindings = findInitializerBindings(mod, nodeIndex); + const dynamicStores = dynamicFieldStores(mod, undefined, undefined, nodeIndex); + const slots = analyzeInt32Slots(mod, { dynamicStores, initializerBindings, nodes: nodeIndex }); + return { mod, nodeIndex, initializerBindings, dynamicStores, slots }; } /** The functions whose calls the backend may emit as calls of their @@ -533,8 +548,16 @@ function moduleEmitter(input: IrModule, options: LlvmTargetOptions): LlEmitter { // Facts are keyed by node identity: emit the same module whether it was // lowered in memory or read back from its serialized form. const mod = unshareNodes(input); + // Each round of selectInt32Arrays analyzes the module it marks; the + // emitter of the module it returns reuses that round's analysis. + const rounds: { last: Int32SlotAnalysis | null } = { last: null }; + const proven = (marked: IrModule): ReadonlySet => { + const analysis = analyzeModuleInt32Slots(marked); + rounds.last = analysis; + return new Set([...analysis.slots.int32Arrays, ...analysis.slots.checkedInt32Arrays]); + }; // Keep source storage intact for debugger inspection in dev builds. - return new LlEmitter( + const emitted = options.debugSources === undefined ? selectInt32Arrays( versionParameters( @@ -562,12 +585,12 @@ function moduleEmitter(input: IrModule, options: LlvmTargetOptions): LlEmitter { ), ), ), - provenInt32Arrays, + proven, resultEntryTargets, ) - : mod, - options, - ); + : mod; + const prepared = rounds.last; + return new LlEmitter(emitted, options, null, prepared?.mod === emitted ? prepared : null); } export function emitLlvmModule(input: IrModule, options: LlvmTargetOptions = {}): string { @@ -601,6 +624,21 @@ export function llStrBytes(text: string): string { const NO_BORROWED: ReadonlySet = new Set(); +/** The nodes that write a binding by its id (numberGlobalWriters). */ +const GLOBAL_WRITE_KINDS: readonly IrNodeKind[] = ["assign", "varDecl", "assignExpr", "incDec"]; +/** Runtime library calls (readsLoopMetrics). */ +const LIB_CALL_KINDS: readonly IrNodeKind[] = ["libCall"]; + +/** [A-Za-z0-9_] */ +function isIdentifierByte(code: number): boolean { + return ( + (code >= 48 && code <= 57) || + (code >= 65 && code <= 90) || + (code >= 97 && code <= 122) || + code === 95 + ); +} + /** Runtime entry points (and await-call entries) that may park the running * execution context, as they appear in emitted function text. */ export const SUSPENDS = @@ -1566,6 +1604,7 @@ export class LlEmitter { readonly mod: IrModule, options: LlvmTargetOptions, journal: EmitJournal | null = null, + int32Analysis: Int32SlotAnalysis | null = null, ) { this.targetOptions = options; this.journal = journal; @@ -1576,7 +1615,7 @@ export class LlEmitter { options.debugSources === undefined); // One walk of every body, which the analyses below read instead of // walking the bodies themselves. - this.nodeIndex = new IrNodeIndex(mod); + this.nodeIndex = int32Analysis?.nodeIndex ?? new IrNodeIndex(mod); this.stackTraces = observesStacks(mod, this.nodeIndex); this.nullableUnions = new NullableUnions( mod, @@ -1595,14 +1634,18 @@ export class LlEmitter { this.nullableUnions.armTypes(), ); this.constantNumericTables = findConstantNumericTables(mod); - this.initializerBindings = findInitializerBindings(mod, this.nodeIndex); + this.initializerBindings = + int32Analysis?.initializerBindings ?? findInitializerBindings(mod, this.nodeIndex); // One walk finds the dynamic field stores every analysis below consults. - const dynamicStores = dynamicFieldStores(mod, undefined, undefined, this.nodeIndex); - this.int32Slots = analyzeInt32Slots(mod, { - dynamicStores, - initializerBindings: this.initializerBindings, - nodes: this.nodeIndex, - }); + const dynamicStores = + int32Analysis?.dynamicStores ?? dynamicFieldStores(mod, undefined, undefined, this.nodeIndex); + this.int32Slots = + int32Analysis?.slots ?? + analyzeInt32Slots(mod, { + dynamicStores, + initializerBindings: this.initializerBindings, + nodes: this.nodeIndex, + }); this.liveViewsReadOnly = mod.lib === undefined && !dynamicStores.all && dynamicStores.names.size === 0; this.int32Abis = this.debug === null ? findInt32Abis(mod, this.int32Slots) : new Map(); @@ -1786,6 +1829,7 @@ export class LlEmitter { const shape = this.recordsById.get(shapeId); return shape !== undefined && !recordDynKeepsIdentity(shape); }, + (wrap) => this.borrowableNullableWrap(wrap) === "ref", ); this.lentStringParameters = this.debug === null ? findLentStringParameters(this.fnByName, this.callLifetimes) : new Map(); @@ -1808,9 +1852,9 @@ export class LlEmitter { ) : NO_INTEGER_CLONES; this.stackCallbacks = new StackCallbacks(this.fnByName); - this.receiverReaders = new AmbientReceiverReaders(this.fnByName); + this.receiverReaders = new AmbientReceiverReaders(this.fnByName, this.nodeIndex); this.stackCaptures = new StackCaptures(this.fnByName, this.callLifetimes, this.stackCallbacks); - this.lazyCaptures = new LazyCaptures(this.fnByName); + this.lazyCaptures = new LazyCaptures(this.fnByName, this.nodeIndex); const traced = computeTraced(mod, dynamicStores, cycleMutability); this.tracedShapes = traced.shapes; this.tracedUnions = traced.unions; @@ -2239,9 +2283,23 @@ export class LlEmitter { this.mangledFunctions.set(mangleBorrowedFunction(fn.name), fn.name); } } - for (const match of text.matchAll(/@(sc_b?f_[A-Za-z0-9_]+)/g)) { - const callee = this.mangledFunctions.get(match[1]!); + // The names `@(sc_b?f_[A-Za-z0-9_]+)` matches, found with indexOf. + for (let at = text.indexOf("@sc_"); at >= 0;) { + let start = at + 4; + if (text.charCodeAt(start) === 98 /* b */) start++; + if (text.charCodeAt(start) !== 102 /* f */ || text.charCodeAt(start + 1) !== 95 /* _ */) { + at = text.indexOf("@sc_", at + 1); + continue; + } + let end = start + 2; + while (end < text.length && isIdentifierByte(text.charCodeAt(end))) end++; + if (end === start + 2) { + at = text.indexOf("@sc_", at + 1); + continue; + } + const callee = this.mangledFunctions.get(text.slice(at + 1, end)); if (callee !== undefined) yield callee; + at = text.indexOf("@sc_", end); } } @@ -3573,15 +3631,14 @@ export class LlEmitter { set.add(fn.name); writers.set(localId, set); }; - everyStmtList(fn.body, { - stmt: (s) => { - if (s.kind === "assign" || s.kind === "varDecl") note(s.localId); - return true; - }, - expr: (e) => { - if (e.kind === "assignExpr" || e.kind === "incDec") note(e.localId); - return true; - }, + eachNodeOfKinds(fn, this.nodeIndex.scan(GLOBAL_WRITE_KINDS), (node) => { + if ( + node.kind === "assign" || + node.kind === "varDecl" || + node.kind === "assignExpr" || + node.kind === "incDec" + ) + note(node.localId); }); } this.globalWriters = writers; @@ -5361,13 +5418,21 @@ export class LlEmitter { private loopMetricsRead: boolean | undefined; readsLoopMetrics(): boolean { if (this.loopMetricsRead !== undefined) return this.loopMetricsRead; - const visitor = { - expr: (e: IrExpr): boolean => - !(e.kind === "libCall" && (e.fn === "perf.loopStart" || e.fn === "perf.idleTime")), - stmt: (): boolean => true, - }; - this.loopMetricsRead = !this.mod.functions.every((fn) => everyStmtList(fn.body, visitor)); - return this.loopMetricsRead; + let found = false; + const scan = this.nodeIndex.scan(LIB_CALL_KINDS); + for (const fn of this.mod.functions) { + eachNodeOfKinds(fn, scan, (node) => { + if ( + node.kind === "libCall" && + (node.fn === "perf.loopStart" || node.fn === "perf.idleTime") + ) + found = true; + return !found; + }); + if (found) break; + } + this.loopMetricsRead = found; + return found; } private lastUseMovesAllowed(): boolean { @@ -5735,6 +5800,10 @@ export class LlEmitter { }); return; } + if (e.kind === "dynInvoke" && e.calleeNameValue === undefined) { + emitDynamicExpr(this, e, true); + return; + } this.emitExpr(e); } diff --git a/packages/compiler/src/backend/llvm/expr-dynamic.ts b/packages/compiler/src/backend/llvm/expr-dynamic.ts index 26905a7ef..b7a5c7736 100644 --- a/packages/compiler/src/backend/llvm/expr-dynamic.ts +++ b/packages/compiler/src/backend/llvm/expr-dynamic.ts @@ -23,6 +23,7 @@ import { isUnitType, typeEquals, typeKey, + VOID, } from "../../ir/ir.js"; import { BYTES_ELEM_NUM, closureIdentityEqual } from "./common.js"; import { DYN_KIND } from "./dyn.js"; @@ -57,6 +58,7 @@ export function emitDynamicExpr( | "caughtNarrow" | "caughtToDyn" >, + discarded = false, ): LlValue { const B = host.B; switch (e.kind) { @@ -257,6 +259,18 @@ export function emitDynamicExpr( // Each call passes its method name's id slot, so only the first call // looks the name up. const invoke = DYN_BUFFER_METHODS.get(e.method) ?? "scr_dyn_invoke_prepared_id"; + // A statement-position push drops the new length, so its entry + // need not box it. + if (discarded && e.method === "push" && invoke === "scr_dyn_invoke_prepared_id") { + host.declare( + `declare void @scr_dyn_invoke_discard_id(ptr, ptr, ptr, ptr, ptr, ${host.sizeType}, ptr)`, + ); + B.line( + `call void @scr_dyn_invoke_discard_id(ptr ${recv.name}, ptr ${prepared}, ptr ${host.cstr(e.method)}, ptr ${host.methodIdSlot(e.method)}, ptr ${argsPtr}, ${host.sizeType} ${args.length}, ptr ${host.cstr(e.calleeName)})`, + ); + host.emitPendingCheck(); + return { name: "", type: VOID }; + } host.declare(`declare ptr @${invoke}(ptr, ptr, ptr, ptr, ptr, ${host.sizeType}, ptr)`); let name = host.cstr(e.calleeName); if (e.calleeNameValue !== undefined) { diff --git a/packages/compiler/src/backend/llvm/expr-stream-bridges.ts b/packages/compiler/src/backend/llvm/expr-stream-bridges.ts index 46c2d884f..675932d47 100644 --- a/packages/compiler/src/backend/llvm/expr-stream-bridges.ts +++ b/packages/compiler/src/backend/llvm/expr-stream-bridges.ts @@ -20,6 +20,7 @@ import { isRefCounted, shapeHasAccessorSlots, typeKey, + type IrClassDef, } from "../../ir/ir.js"; import { mangleFunction, mangleGlobal, mangleRecordStruct } from "../mangle.js"; import { BlockBuilder } from "./blocks.js"; @@ -272,9 +273,7 @@ export function streamTypedRefCommitAdapter( ); }); } - const symbols = new Map( - (meta.def.symbolFields ?? []).map((symbol) => [symbol.field, symbol.globalId]), - ); + const symbols = new Map((meta.def.symbolFields ?? []).map((symbol) => [symbol.field, symbol])); const fields = meta.def.fields.filter( (field) => (isClassOwnEnumerableFieldName(field.name) || symbols.has(field.name)) && @@ -294,13 +293,15 @@ export function streamTypedRefCommitAdapter( const inline = host.inlineUnions.classField(t.className, field.name); const fieldTy = int32 ? "i32" : llFieldType(field.type, inline); const checkTy = host.llType(field.type); - const symbolGlobal = symbols.get(field.name); - if (symbolGlobal) { + const symbolKey = symbols.get(field.name); + if (symbolKey) { host.declare(`declare ptr @scr_dyn_symbol_key_get(ptr, ptr, i1 zeroext)`); host.declare(`declare void @scr_dyn_release_v(ptr)`); + const keyLines = symbolKeyLines(host, symbolKey, `f${index}_keyraw`); lines.push( - ` %f${index}_keyraw = load ptr, ptr @${mangleGlobal(symbolGlobal)}`, + ...keyLines.load, ` %f${index}_key = call ptr @${host.dyn.toDynHelper(SYMBOL_T)}(ptr %f${index}_keyraw)`, + ...keyLines.release, ); if (field.type.kind === "symbol") { // A base constructor can mutate the instance before this @@ -328,7 +329,7 @@ export function streamTypedRefCommitAdapter( lines.push( ` %${raw} = call ptr @scr_dyn_obj_get(ptr %d, ptr ${host.cstr(field.name)}, ${host.sizeType} ${Buffer.byteLength(field.name, "utf8")})`, ); - if (meta.def.tracksOwnFields && !symbolGlobal) + if (meta.def.tracksOwnFields && !symbolKey) lines.push( ` %f${index}_present = icmp ne ptr %${raw}, null`, ` br i1 %f${index}_present, label %f${index}_read, label %${after}`, @@ -339,7 +340,7 @@ export function streamTypedRefCommitAdapter( ` %${undef} = call ptr @scr_dyn_undefined()`, ` %${input} = select i1 %${missing}, ptr %${undef}, ptr %${raw}`, ` %${next} = call ${field.type.kind === "bool" ? "zeroext " : ""}${checkTy} @${host.dyn.dynCheckHelper(field.type)}(ptr %${input}, ptr null)`, - ...(symbolGlobal ? [` call void @scr_dyn_release_v(ptr %${raw})`] : []), + ...(symbolKey ? [` call void @scr_dyn_release_v(ptr %${raw})`] : []), ...host.pendingTestLines(`%${pending}`), ` br i1 %${pending}, label %done, label %${store}`, `${store}:`, @@ -494,16 +495,18 @@ export function streamTypedRefCommitAdapter( ? `declare void @scr_dyn_symbol_key_placeholder(ptr, ptr)` : `declare void @scr_dyn_key_delete_computed(ptr, ptr, i1 zeroext)`, ); - [...symbols.values()].forEach((globalId, index) => + [...symbols.values()].forEach((symbol, index) => { + const keyLines = symbolKeyLines(host, symbol, `bag_symraw${index}`); lines.push( - ` %bag_symraw${index} = load ptr, ptr @${mangleGlobal(globalId)}`, + ...keyLines.load, ` %bag_sym${index} = call ptr @${host.dyn.toDynHelper(SYMBOL_T)}(ptr %bag_symraw${index})`, + ...keyLines.release, meta.def.tracksOwnFields ? ` call void @scr_dyn_symbol_key_placeholder(ptr %bag, ptr %bag_sym${index})` : ` call void @scr_dyn_key_delete_computed(ptr %bag, ptr %bag_sym${index}, i1 zeroext false)`, ` call void @scr_dyn_release_v(ptr %bag_sym${index})`, - ), - ); + ); + }); const { index } = classFieldIndex(meta, DYN_CLASS_PROPERTIES); lines.push( ` %bag_ptr = getelementptr inbounds %${classStructSym(t.className)}, ptr %target, i64 0, i32 ${index}`, @@ -700,6 +703,27 @@ export function liveDynUnionRefAdapter( return sym; } +/** The raw ScrSym of a class's symbol field key into `%name`: a module + * key is borrowed from its global, a well-known one comes from the + * runtime's registry (+1, released by the `release` lines once the key + * value holds it). */ +function symbolKeyLines( + host: LlvmEmitterContext, + symbol: NonNullable[number], + name: string, +): { load: string[]; release: string[] } { + if ("globalId" in symbol) + return { load: [` %${name} = load ptr, ptr @${mangleGlobal(symbol.globalId)}`], release: [] }; + host.declare("declare ptr @scr_sym_well_known(ptr)"); + host.declare("declare void @scr_sym_release(ptr)"); + return { + load: [ + ` %${name} = call ptr @scr_sym_well_known(ptr ${host.internLiteral(symbol.wellKnown)})`, + ], + release: [` call void @scr_sym_release(ptr %${name})`], + }; +} + export function streamTypedRefBoxValue( host: LlvmEmitterContext, B: BlockBuilder, @@ -924,8 +948,10 @@ export function streamTypedRefMaterializeAdapter( B.line(`${fieldValue} = sitofp i32 ${raw} to double`); } else if (inline) fieldValue = loadStructField(B, host.sizeType, fieldPtr, field.type, true); else B.line(`${fieldValue} = load ${llFieldType(field.type, false)}, ptr ${fieldPtr}`); - B.line(`${rawKey} = load ptr, ptr @${mangleGlobal(symbol.globalId)}`); + const keyLines = symbolKeyLines(host, symbol, rawKey.slice(1)); + for (const line of keyLines.load) B.line(line.trim()); const key = host.streamTypedRefBoxValue(B, SYMBOL_T, rawKey); + for (const line of keyLines.release) B.line(line.trim()); const afterSymbol = meta.def.tracksOwnFields || field.type.kind === "symbol" ? B.newLabel("symbol.after") @@ -1490,9 +1516,26 @@ function liveClassOps(host: LlvmEmitterContext, snapshot: string, meta: LlClassM // The constructor's name, as util.inspect prints before the fields. const jsName = meta.def.jsName ?? meta.def.name.replace(/^%/, ""); const className = jsName === "" ? "null" : host.internLiteral(jsName); + // Its Symbol.toStringTag getter's string, for Object.prototype.toString + // and util.inspect. + let stringTag = "null"; + if (meta.def.stringTagHelper) { + // The runtime lends the instance; the helper takes its own reference. + stringTag = `@${snapshot}_ctag`; + const retain = vAdapters(host.shapeHost, { kind: "object", className: meta.def.name }).retain; + host.resolveThunkDefs.push( + `define internal ptr ${stringTag}(ptr %p) ${FN_ATTRS} { ; Symbol.toStringTag of ${meta.def.name}`, + `entry:`, + ` %owned = call ptr ${retain}(ptr %p)`, + ` %tag = call ptr @${mangleFunction(meta.def.stringTagHelper)}(ptr %owned)`, + ` ret ptr %tag`, + `}`, + ``, + ); + } host.resolveThunkDefs.push( `@${names} = internal constant [${members.length} x ptr] [${literals.join(", ")}]`, - `@${ops} = internal constant { ptr, ${host.sizeType}, ptr, ptr } { ptr ${exact}, ${host.sizeType} ${members.length}, ptr @${names}, ptr ${className} }`, + `@${ops} = internal constant { ptr, ${host.sizeType}, ptr, ptr, ptr } { ptr ${exact}, ${host.sizeType} ${members.length}, ptr @${names}, ptr ${className}, ptr ${stringTag} }`, ``, ); } diff --git a/packages/compiler/src/backend/llvm/integer-views.ts b/packages/compiler/src/backend/llvm/integer-views.ts index c38770160..579f010a2 100644 --- a/packages/compiler/src/backend/llvm/integer-views.ts +++ b/packages/compiler/src/backend/llvm/integer-views.ts @@ -1,6 +1,9 @@ import type { IrExpr, IrFunction, IrStmt } from "../../ir/ir.js"; import { everyExprChild, everyStmtChild } from "../../ir/traverse.js"; import { byteNumberAccess } from "../../ir/byte-numbers.js"; +import { eachNodeOfKinds, type IrNodeIndex, type IrNodeKind } from "../../ir/node-index.js"; + +const LOOP_KINDS: readonly IrNodeKind[] = ["for", "forOf", "while", "doWhile"]; /** Keep a computed ToUint32 view beside an ordinary number when integer * consumers in loops can reuse it. The number remains authoritative for floating @@ -14,9 +17,16 @@ import { byteNumberAccess } from "../../ir/byte-numbers.js"; * compare converts the stored number back, and LLVM moves that number's * conversion into the join of a NaN-coded typed-array read (`phi [sitofp x, * 0.0]`), where nothing folds it back to the integer. */ -export function findIntegerViews(fn: IrFunction): Set { +export function findIntegerViews(fn: IrFunction, nodes?: IrNodeIndex): Set { const wanted = new Set(); if (fn.async || fn.generator) return wanted; + // Every view is wanted inside a loop: a body without one wants none. + let loops = false; + eachNodeOfKinds(fn, nodes?.scan(LOOP_KINDS), (node, statement) => { + if (statement && LOOP_KINDS.includes(node.kind)) loops = true; + return !loops; + }); + if (!loops) return wanted; const initialized = new Set(fn.params.map((p) => p.localId)); const excluded = new Set( [...(fn.captures ?? []), ...(fn.classCaptures ?? [])].map((c) => c.localId), diff --git a/packages/compiler/src/backend/llvm/lazy-captures.ts b/packages/compiler/src/backend/llvm/lazy-captures.ts index 2014869af..85acff2ef 100644 --- a/packages/compiler/src/backend/llvm/lazy-captures.ts +++ b/packages/compiler/src/backend/llvm/lazy-captures.ts @@ -1,5 +1,8 @@ import type { IrExpr, IrFunction, IrStmt } from "../../ir/ir.js"; import { everyStmtList } from "../../ir/traverse.js"; +import { eachNodeOfKinds, type IrNodeIndex, type IrNodeKind } from "../../ir/node-index.js"; + +const CLOSURE_KINDS: readonly IrNodeKind[] = ["closure"]; /** The local a node rebinds. Writes through the bound reference, such as a * field store or an array push, leave the binding unchanged. Catch bindings @@ -37,7 +40,11 @@ export class LazyCaptures { private readonly pending = new Set(); private sites: Map | null = null; - constructor(private readonly functions: ReadonlyMap) {} + constructor( + private readonly functions: ReadonlyMap, + /** The module's node index, read instead of walking the bodies it holds. */ + private readonly nodes?: IrNodeIndex, + ) {} /** The captures of closure body `fnName` that hold one value for the * closure's whole life: at every creation site the captured binding is @@ -103,16 +110,15 @@ export class LazyCaptures { private creationSites(): Map { if (this.sites !== null) return this.sites; const sites = new Map(); + const scan = this.nodes?.scan(CLOSURE_KINDS); for (const fn of this.functions.values()) { - const visit = (node: IrStmt | IrExpr): boolean => { + eachNodeOfKinds(fn, scan, (node) => { if (node.kind === "closure") { let list = sites.get(node.fnName); if (!list) sites.set(node.fnName, (list = [])); list.push({ owner: fn.name, captures: node.captures }); } - return true; - }; - everyStmtList(fn.body, { stmt: visit, expr: visit }); + }); } this.sites = sites; return sites; diff --git a/packages/compiler/src/backend/llvm/loop-array-borrows.ts b/packages/compiler/src/backend/llvm/loop-array-borrows.ts index 9335894d9..cc9e03a5c 100644 --- a/packages/compiler/src/backend/llvm/loop-array-borrows.ts +++ b/packages/compiler/src/backend/llvm/loop-array-borrows.ts @@ -1,5 +1,6 @@ import { F64, isRefCounted, type IrExpr, type IrFunction, type IrStmt } from "../../ir/ir.js"; import { everyStmtList, transformStmtList } from "../../ir/traverse.js"; +import { eachNodeOfKinds, type IrNodeIndex, type IrNodeKind } from "../../ir/node-index.js"; import type { CallLifetimes } from "./call-lifetimes.js"; import type { ReferenceEffects } from "./reference-effects.js"; import type { OptionalArrayReads } from "./local-array-reads.js"; @@ -57,6 +58,8 @@ export function dynHoleRead(value: IrExpr): (IrExpr & { kind: "arrayGet" }) | nu return same(cond.left.arr, then.arr) && same(cond.left.index, then.index) ? then : null; } +const LOOP_KINDS: readonly IrNodeKind[] = ["forOf", "for", "while", "doWhile"]; + /** Limit a borrow to a loop whose complete iteration preserves heap edges. * Initialization and unrelated work elsewhere in the function may mutate. * The array remains owned by its unchanged local or global binding; the @@ -72,6 +75,8 @@ export function findLoopArrayBorrows( optionalReads?: OptionalArrayReads, writes?: ReferenceWrites | null, functions?: ReadonlyMap, + /** The module's node index, read instead of walking for the loops. */ + nodes?: IrNodeIndex, ): ReadonlySet { const result = new Set(); if (fn.async || fn.generator) return result; @@ -88,9 +93,10 @@ export function findLoopArrayBorrows( (!local.boxed && !local.tdz && (bindings?.has(local.id) || parameters.has(local.id))) ); }; - everyStmtList(fn.body, { - expr: () => true, - stmt: (loop) => { + eachNodeOfKinds(fn, nodes?.scan(LOOP_KINDS), (node, statement) => { + if (!statement) return true; + const loop = node as IrStmt; + { if (loop.kind === "forOf") { const local = locals.get(loop.localId); if ( @@ -187,7 +193,7 @@ export function findLoopArrayBorrows( }, }); return true; - }, + } }); return result; } diff --git a/packages/compiler/src/backend/llvm/shapes.test.ts b/packages/compiler/src/backend/llvm/shapes.test.ts index 7af16ab83..61c1a074d 100644 --- a/packages/compiler/src/backend/llvm/shapes.test.ts +++ b/packages/compiler/src/backend/llvm/shapes.test.ts @@ -110,10 +110,9 @@ describe("LLVM runtime RC symbols", () => { expect(releaseSym(host, { kind: "union", unionId: "u0" } as never)).toBe( "@sc_rc_release_union", ); - // Array retains inline; array releases stay calls. const array = { kind: "array", elem: { kind: "string" } } as never; expect(retainSym(host, array)).toBe("@sc_rc_retain_arr"); - expect(releaseSym(host, array)).toBe("@scr_arr_release"); + expect(releaseSym(host, array)).toBe("@sc_rc_release_arr"); expect(retainSym(host, { kind: "dyn" })).toBe("@sc_rc_retain_dyn"); expect(releaseSym(host, { kind: "dyn" })).toBe("@sc_rc_release_dyn"); // Unmirrored families and caught snapshots keep their runtime entry points. @@ -125,6 +124,7 @@ describe("LLVM runtime RC symbols", () => { expect(declarations).toContain("declare void @scr_str_release(ptr)"); expect(declarations).toContain("declare void @scr_cyc_on_release(ptr)"); expect(inlineRcDecls(host).sort()).toEqual([ + "declare void @scr_arr_release(ptr)", "declare void @scr_cyc_on_release(ptr)", "declare void @scr_dyn_release(ptr)", "declare void @scr_dyn_release_survivor(ptr)", @@ -280,6 +280,22 @@ describe("inline release budgets", () => { ); }); + test("each family's budget applies to its own sites in a function that has both", () => { + const strings = body("mixed", INLINE_STR_RELEASES_PER_FUNCTION + 1, "str"); + // One function: string sites over their budget, dyn sites within theirs. + const mixed = strings.replace( + " ret void", + ` call void @sc_rc_release_dyn(ptr %v)\n call void @sc_rc_release_other(ptr %v)\n ret void`, + ); + const other = body("other", 2, "str"); + const limited = limitInlineReleases([mixed, other], "release").join("\n"); + const out = limited.slice(0, limited.indexOf("@other(")); + expect(out).not.toContain("@sc_rc_release_str("); + expect(out).toContain("call void @sc_rc_release_dyn(ptr %v)"); + expect(out).toContain("call void @sc_rc_release_other(ptr %v)"); + expect(limited).toContain(other); + }); + test("a function over the string budget calls the runtime string release at every site", () => { const small = body("small", INLINE_STR_RELEASES_PER_FUNCTION, "str"); const large = body("large", INLINE_STR_RELEASES_PER_FUNCTION + 1, "str"); diff --git a/packages/compiler/src/backend/llvm/shapes.ts b/packages/compiler/src/backend/llvm/shapes.ts index b3f5084d3..a966ff305 100644 --- a/packages/compiler/src/backend/llvm/shapes.ts +++ b/packages/compiler/src/backend/llvm/shapes.ts @@ -550,17 +550,16 @@ interface InlineRcFamily { * scr_dyn_release_survivor for kinds whose candidacy is per value, * including arrays and objects of intact documents (ScrDynRegion). * - * Releases stay plain calls for: - * - arr: array releases are the most numerous release sites and the - * least hot (at most 1% self time across the benchmark suite), and - * inlining them roughly doubled the code growth for no measured speedup. - * Array retains are inlined. */ + * The array release inlines the decrement of an array that stays alive + * and is not headered (`a->cyc`): those are most array releases in + * type-checker workloads, where scr_arr_release's own prologue and checks + * took about half of its time. */ export const INLINE_RC_FAMILIES: Readonly> = { str: { cycle: "none", retainNull: false, release: "scr_str_release" }, bytes: { cycle: "none", retainNull: false, release: "scr_bytes_release" }, regex: { cycle: "none", retainNull: false, release: "scr_regex_release" }, bigint: { cycle: "none", retainNull: true, release: "scr_bigint_release" }, - arr: { cycle: "arr", retainNull: false, release: null }, + arr: { cycle: "arr", retainNull: false, release: "scr_arr_release" }, map: { cycle: "map", retainNull: false, release: "scr_map_release" }, union: { cycle: "always", retainNull: false, release: "scr_union_release" }, closure: { cycle: "always", retainNull: false, release: "scr_closure_release" }, @@ -692,34 +691,32 @@ export function limitInlineReleases( parts: readonly string[], mode: InlineRcMode | undefined, ): string[] { - const dyn = limitInlineReleaseFamily(parts, "dyn", INLINE_DYN_RELEASES_PER_FUNCTION); - return mode === "release" - ? limitInlineReleaseFamily(dyn, "str", INLINE_STR_RELEASES_PER_FUNCTION) - : dyn; -} - -function limitInlineReleaseFamily( - parts: readonly string[], - family: "dyn" | "str", - max: number, -): string[] { - const call = `call void @${inlineRcName(family, "release")}(`; - const runtime = `call void @${INLINE_RC_FAMILIES[family]!.release}(`; + const families: readonly ("dyn" | "str")[] = mode === "release" ? ["dyn", "str"] : ["dyn"]; + const limits = families.map((family) => + family === "dyn" ? INLINE_DYN_RELEASES_PER_FUNCTION : INLINE_STR_RELEASES_PER_FUNCTION, + ); + const calls = families.map((family) => `${inlineRcName(family, "release")}(`); + const runtimes = families.map((family) => `call void @${INLINE_RC_FAMILIES[family]!.release}(`); + const head = "call void @"; + const prefix = `${head}${inlineRcName("", "release")}`; // The function each release site belongs to: the last `define` line - // before it, counted over the joined text. + // before it, counted over the joined text. One walk over each part finds + // the sites of every family. const sites = ( part: string, - each: (offset: number, fn: number) => void, + each: (offset: number, family: number, fn: number) => void, first: number, ): number => { let fn = first; let define = part.startsWith("define ") ? 0 : part.indexOf("\ndefine "); - for (let at = part.indexOf(call); at >= 0; at = part.indexOf(call, at + call.length)) { + for (let at = part.indexOf(prefix); at >= 0; at = part.indexOf(prefix, at + prefix.length)) { + const family = calls.findIndex((call) => part.startsWith(call, at + head.length)); + if (family < 0) continue; while (define >= 0 && define < at) { fn++; define = part.indexOf("\ndefine ", define + 1); } - each(at, fn); + each(at, family, fn); } while (define >= 0) { fn++; @@ -727,29 +724,47 @@ function limitInlineReleaseFamily( } return fn; }; - const counts = new Map(); + const counts = families.map(() => new Map()); + // The functions each part's sites can belong to. + const spans: number[] = []; let fn = 0; - for (const part of parts) fn = sites(part, (_, f) => counts.set(f, (counts.get(f) ?? 0) + 1), fn); - const over = new Set([...counts].filter(([, n]) => n > max).map(([f]) => f)); - if (over.size === 0) return [...parts]; - fn = 0; - return parts.map((part) => { - const cuts: number[] = []; + for (const part of parts) { + spans.push(fn); fn = sites( part, - (at, f) => { - if (over.has(f)) cuts.push(at); - }, + (_, family, f) => counts[family]!.set(f, (counts[family]!.get(f) ?? 0) + 1), fn, ); + spans.push(fn); + } + const over = counts.map( + (count, family) => new Set([...count].filter(([, n]) => n > limits[family]!).map(([f]) => f)), + ); + if (over.every((set) => set.size === 0)) return [...parts]; + const anyOver = new Set(over.flatMap((set) => [...set])); + const touches = (from: number, to: number): boolean => { + for (let f = from; f <= to; f++) if (anyOver.has(f)) return true; + return false; + }; + return parts.map((part, index) => { + const from = spans[2 * index]!; + if (!touches(from, spans[2 * index + 1]!)) return part; + const cuts: { at: number; family: number }[] = []; + sites( + part, + (at, family, f) => { + if (over[family]!.has(f)) cuts.push({ at, family }); + }, + from, + ); if (cuts.length === 0) return part; let out = ""; - let from = 0; - for (const at of cuts) { - out += part.slice(from, at) + runtime; - from = at + call.length; + let next = 0; + for (const cut of cuts) { + out += part.slice(next, cut.at) + runtimes[cut.family]!; + next = cut.at + head.length + calls[cut.family]!.length; } - return out + part.slice(from); + return out + part.slice(next); }); } diff --git a/packages/compiler/src/backend/may-throw.ts b/packages/compiler/src/backend/may-throw.ts index 0cfab9244..693d20b3b 100644 --- a/packages/compiler/src/backend/may-throw.ts +++ b/packages/compiler/src/backend/may-throw.ts @@ -93,7 +93,7 @@ export function computeMayThrow( const classes = new Map((mod.classes ?? []).map((cls) => [cls.name, cls])); const constructorClasses = new Map(); const classValueCallers = new Map>(); - const tdzGlobals = (mod.globals ?? []).filter((g) => g.tdz).map((g) => g.id); + const tdzGlobals = new Set((mod.globals ?? []).filter((g) => g.tdz).map((g) => g.id)); for (const cls of mod.classes ?? []) { constructorClasses.set(`%${cls.name}.constructor`, cls.name); for (const m of cls.methods ?? []) { @@ -113,11 +113,10 @@ export function computeMayThrow( if (explain) f.calleeLocs = new Map(); // TDZ reads and non-initializing writes can throw ReferenceError. // Capture locals carry the same flag as the declaring binding. - const tdzIds = new Set([...tdzGlobals, ...fn.locals.filter((l) => l.tdz).map((l) => l.id)]); - const mutableTdzIds = new Set([ - ...tdzGlobals, - ...fn.locals.filter((l) => l.tdz && l.mutable).map((l) => l.id), - ]); + // Every TDZ global counts for both reads and writes; the module's set is + // shared by every function. + const tdzLocals = new Set(fn.locals.filter((l) => l.tdz).map((l) => l.id)); + const mutableTdzLocals = new Set(fn.locals.filter((l) => l.tdz && l.mutable).map((l) => l.id)); // Traverse typed executable nodes without copying the IR into unknown. const visit = (rec: IrExpr | IrStmt): boolean => { const threw = f.throws; @@ -133,13 +132,17 @@ export function computeMayThrow( case "varRef": case "incDec": case "assignExpr": - if (tdzIds.has(rec.localId)) f.throws = true; + if (tdzGlobals.has(rec.localId) || tdzLocals.has(rec.localId)) f.throws = true; break; case "assign": // A declaration is allowed to fill an empty box. Legacy const // TDZ stores also initialize; only mutable subsequent stores // introduce the new write-side exception edge. - if (rec.initializes !== true && mutableTdzIds.has(rec.localId)) f.throws = true; + if ( + rec.initializes !== true && + (tdzGlobals.has(rec.localId) || mutableTdzLocals.has(rec.localId)) + ) + f.throws = true; break; case "dynCheck": case "caughtCheck": diff --git a/packages/compiler/src/backend/vendor-archives.ts b/packages/compiler/src/backend/vendor-archives.ts index dbcaf2d36..ef63aa4e4 100644 --- a/packages/compiler/src/backend/vendor-archives.ts +++ b/packages/compiler/src/backend/vendor-archives.ts @@ -14,6 +14,10 @@ import type { CcDriver } from "./native/driver.js"; const execFileAsync = promisify(execFile); +/** The section flags the libregexp/libunicode objects build with (the + * runtime pack's executable_section_elimination flags). */ +const LRE_SECTION_FLAGS = ["-ffunction-sections", "-fdata-sections"]; + import { QJS_COMMIT, MBEDTLS_VERSION, @@ -191,13 +195,13 @@ export function createVendorArchives(context: VendorArchiveContext) { (sanitize ? "asan" : "plain") + (driver.argv.length === 1 && driver.argv[0] === "clang" ? "" : "-zigcc") + `-${vendorCacheTargetFlavor(driver)}-${buildIdentity}`; - const cacheDir = join(cacheRoot, `${QJS_COMMIT.slice(0, 12)}-lre-${flavor}`); + const cacheDir = join(cacheRoot, `${QJS_COMMIT.slice(0, 12)}-lre-sections-${flavor}`); return LRE_SOURCES.map((f) => join(cacheDir, f.replace(/\.c$/, ".o"))); } /** The libregexp objects for one flavor, compiled lazily on the first * regex-using build (~1s) and cached under - * /vendor/-lre---/*.o — with the same atomic-rename + * /vendor/-lre-sections---/*.o — with the same atomic-rename * publish (parallel first builds race safely; losers discard their work). * Plain is -Os to keep regex-using binaries small; asan matches the final link so * the sanitized lane instruments the matcher too. Cross targets get their @@ -228,6 +232,10 @@ export function createVendorArchives(context: VendorArchiveContext) { vendor: vendorEngineDir(), sources: LRE_SOURCES, objects: lreObjectPaths(sanitize, driver, buildIdentity, cacheRoot), + // Section elimination keeps only the libunicode tables a program + // reaches: the URL host parser's NFC links the normalization tables + // without the regex property ones. + flags: LRE_SECTION_FLAGS, }); } @@ -296,6 +304,7 @@ export function createVendorArchives(context: VendorArchiveContext) { vendor: string; sources: readonly string[]; objects: string[]; + flags?: readonly string[]; }): Promise { const { sanitize, driver, cacheRoot, flavor, name, vendor, sources, objects } = options; if ((await Promise.all(objects.map(validVendorArtifact))).every(Boolean)) return objects; @@ -312,6 +321,7 @@ export function createVendorArchives(context: VendorArchiveContext) { "-std=c11", ...driver.targetArgs, ...(sanitize ? ["-O1", "-fsanitize=address"] : ["-Os"]), + ...(options.flags ?? []), "-I", vendor, "-c", diff --git a/packages/compiler/src/contracts/int32-elements.ts b/packages/compiler/src/contracts/int32-elements.ts index ca61a8e49..67446f2d1 100644 --- a/packages/compiler/src/contracts/int32-elements.ts +++ b/packages/compiler/src/contracts/int32-elements.ts @@ -709,7 +709,8 @@ export class Int32ElementContracts { const findChainsIn = (st: IrStmt): boolean => everyStmtChild(st, findChains, findChainsIn); for (const st of fn.body) findChainsIn(st); // Parameters whose callers are not all visible hold opaque arrays. - if (this.valueEscaped.has(fn.name) || this.runtimeVirtual(fn.name)) + const runtimeVirtual = this.runtimeVirtual; + if (this.valueEscaped.has(fn.name) || runtimeVirtual(fn.name)) for (const p of fn.params) if (this.holds(p.type)) { const why = this.valueEscaped.has(fn.name) diff --git a/packages/compiler/src/frontend/lowering/builtins/webassembly.ts b/packages/compiler/src/frontend/lowering/builtins/webassembly.ts index 8e5c3a048..f33ebe9fe 100644 --- a/packages/compiler/src/frontend/lowering/builtins/webassembly.ts +++ b/packages/compiler/src/frontend/lowering/builtins/webassembly.ts @@ -403,7 +403,10 @@ export function lowerWebAssemblyValueOf( recv: IrExpr, loc: IrExpr["loc"], ): IrExpr | null { - const ctx = { checker: lowerer.checker, isStdlibFile: lowerer.isStdlibFile }; + const ctx = { + checker: lowerer.checker, + isStdlibFile: (sf: ts.SourceFile) => lowerer.isStdlibFile(sf), + }; if (!isWebAssemblyType(lowerer.typeOf(receiver), ctx)) return null; lowerer.usesWebAssembly = true; return { kind: "libCall", fn: "wasm.valueOf", args: [recv], type: DYN, loc }; diff --git a/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts b/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts index f219fd5e5..fc6d0a922 100644 --- a/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts +++ b/packages/compiler/src/frontend/lowering/class-dynamic-dispatch.ts @@ -1,4 +1,5 @@ import { primitiveConstructorOr } from "./lower-exprs.js"; +import { TO_STRING_TAG_FIELD, wellKnownSymbolOfField } from "./symbol-fields.js"; import { InternalCompilerError } from "../../errors.js"; import { dynUndefinedExpr, helperLoc, nodeThrowExpr, varRef } from "../../ir/build.js"; import { constructedValue } from "./constructor-returns.js"; @@ -26,6 +27,7 @@ import { isUnitType, typeEquals, typeKey, + type IrClassDef, type IrExpr, type IrFunction, type IrParam, @@ -153,6 +155,41 @@ const STREAM_NUM_PROPERTIES = new Set([ const streamProperty = (name: string): boolean => STREAM_BOOL_PROPERTIES.has(name) || STREAM_NUM_PROPERTIES.has(name); +/** `(instance) => string`, the string a class's inherited + * Symbol.toStringTag getter answers, which the runtime reads for + * Object.prototype.toString and util.inspect of an instance seen as + * `unknown`. None for a class without a string getter, or whose own tag + * field shadows it. */ +function stringTagHelper(lowerer: Lowerer, info: ClassInfo, loc: SrcLoc): IrFunction | null { + if (info.fields.has(TO_STRING_TAG_FIELD)) return null; + const getter = findMethodOn(lowerer, info, "get:sym:toStringTag"); + if (getter?.sig.ret.kind !== "string") return null; + const type: IrType = { kind: "object", className: info.def.name }; + const owner = getter.declarer.def.name; + return { + name: `%class.stringTag:${info.def.name}`, + params: [{ localId: "this", name: "this", type }], + locals: [{ id: "this", name: "this", type, mutable: false }], + returnType: STRING, + body: [ + { + kind: "return", + value: accessorCall( + lowerer, + owner, + "get:sym:toStringTag", + lowerer.upcastTo(varRef("this", type, loc), owner), + [], + STRING, + loc, + ), + loc, + }, + ], + loc, + }; +} + function symbolMemberKey( lowerer: Lowerer, info: ClassInfo, @@ -1375,10 +1412,27 @@ export class ClassDynamicDispatch { const info = lowerer.classes.get(className); if (!info || info.builtinEmitter || info.builtinStream || info.builtinError) continue; if (info.symbolFields && info.def.symbolFields === undefined) { - info.def.symbolFields = [...info.symbolFields].flatMap(([symbol, field]) => { - const global = lowerer.globalsBySymbol.get(symbol); - return global?.type.kind === "symbol" ? [{ field, globalId: global.id }] : []; - }); + info.def.symbolFields = [...info.symbolFields].flatMap( + ([symbol, field]): NonNullable => { + const global = lowerer.globalsBySymbol.get(symbol); + if (global?.type.kind === "symbol") return [{ field, globalId: global.id }]; + const wellKnown = wellKnownSymbolOfField(field); + return wellKnown === null ? [] : [{ field, wellKnown }]; + }, + ); + } + const tagged = (current: ClassInfo): ClassInfo[] => [ + current, + ...current.subclasses.flatMap(tagged), + ]; + for (const current of tagged(info)) { + if (current.def.stringTagHelper !== undefined) continue; + const fn = stringTagHelper(lowerer, current, functions[0]!.loc); + if (!fn) continue; + current.def.stringTagHelper = fn.name; + this.generated.add(fn); + lowerer.liftedFns.push(fn); + changed = true; } if (this.prototypeHelper && !this.prototypeClasses.has(className)) { this.prototypeClasses.add(className); @@ -3662,10 +3716,29 @@ export class ClassDynamicDispatch { name, lowerer.coerceToExpected(varRef(global.id, global.type, loc), DYN), ); + } else if (wellKnownSymbolOfField(name) !== null) { + // A field keyed by a well-known symbol (Symbol.toStringTag). + symbols.set(name, { + kind: "dynFrom", + type: DYN, + loc, + value: { + kind: "libCall", + fn: "sym.wellKnown", + args: [ + { kind: "strLit", value: wellKnownSymbolOfField(name)!, type: STRING, loc }, + ], + type: SYMBOL_T, + loc, + }, + }); } } for (let owner: ClassInfo | null = info; owner; owner = owner.base) { - for (const name of [...owner.methods.keys()]) + for (const method of [...owner.methods.keys()]) { + // Accessors key by the property they define (`get [Symbol.toStringTag]`). + const name = + method.startsWith("get:") || method.startsWith("set:") ? method.slice(4) : method; if (name.startsWith("sym:")) { symbols.set(name, { kind: "dynFrom", @@ -3680,6 +3753,7 @@ export class ClassDynamicDispatch { }, }); } + } } const branches: IrStmt[] = []; if (!dispatch.write && !dispatch.reflect && !info.def.tracksOwnFields) { diff --git a/packages/compiler/src/frontend/lowering/class-method-mutations.ts b/packages/compiler/src/frontend/lowering/class-method-mutations.ts index 22d2a722a..8f12d15de 100644 --- a/packages/compiler/src/frontend/lowering/class-method-mutations.ts +++ b/packages/compiler/src/frontend/lowering/class-method-mutations.ts @@ -36,9 +36,20 @@ export function collectClassMethodMutations( const computedWrites: { key: ts.Expression | undefined; receiver: ts.Expression | undefined; + /** The written element access, when the write has one. */ + target?: ts.ElementAccessExpression; site: ts.Node; }[] = []; const propertyWrites: { target: ts.PropertyAccessExpression; site: ts.Node }[] = []; + /** Writes and deletes of a method name through an element access with a + * known key (`o["m"] = f`, `o[k] = f` with `k: "m" | "n"`), judged like + * the named writes in propertyWrites. */ + const keyedWrites: { + name: string; + receiver: ts.Expression; + target: ts.ElementAccessExpression; + site: ts.Node; + }[] = []; const reflection: ts.PropertyAccessExpression[] = []; const globals: ts.Identifier[] = []; const jsAssignments: (ts.PropertyAccessExpression | ts.ElementAccessExpression)[] = []; @@ -274,13 +285,32 @@ export function collectClassMethodMutations( sameBinding(receiver, keys.arguments.nodes[0]!) ); }; - const markKey = (key: ts.Expression, site: ts.Node, receiver?: ts.Expression): void => { + /** A write of the known key `name`: through an element access, a write + * to a method name is judged like a named write (keyedWrites). */ + const markKeyed = ( + name: string, + site: ts.Node, + receiver?: ts.Expression, + target?: ts.ElementAccessExpression, + ): void => { + if (receiver && target && methods.has(name) && name !== "prototype" && name !== "__proto__") { + receiverFields.add(name); + keyedWrites.push({ name, receiver, target, site }); + } else markName(name, site); + }; + const markKey = ( + key: ts.Expression, + site: ts.Node, + receiver?: ts.Expression, + target?: ts.ElementAccessExpression, + ): void => { const value = unwrap(key); - if (ts.isStringLiteralLike(value)) markName(value.text, site); - else if (ts.isNumericLiteral(value)) markName(String(Number(value.text)), site); + if (ts.isStringLiteralLike(value)) markKeyed(value.text, site, receiver, target); + else if (ts.isNumericLiteral(value)) + markKeyed(String(Number(value.text)), site, receiver, target); // The key keeps its assertions: `slots[at as number]` and `slots[at!]` // write a number key whatever the type of `at`. - else computedWrites.push({ key, receiver, site }); + else computedWrites.push(target ? { key, receiver, target, site } : { key, receiver, site }); }; const markFields = (value: ts.Expression, site: ts.Node, receiver?: ts.Expression): void => { value = unwrap(value); @@ -307,7 +337,7 @@ export function collectClassMethodMutations( propertyWrites.push({ target, site }); } else markName(name, site, arrow); } else if (ts.isElementAccessExpression(target)) - markKey(target.argumentExpression, site, target.expression); + markKey(target.argumentExpression, site, target.expression, target); else if (ts.isArrayLiteralExpression(target)) { for (const element of target.elements.nodes) { if (ts.isSpreadElement(element)) markTarget(element.expression, site); @@ -426,7 +456,19 @@ export function collectClassMethodMutations( (ts.isElementAccessExpression(base) && ts.isStringLiteralLike(base.argumentExpression) && base.argumentExpression.text === "prototype"); - if (prototype) { + // `Object.prototype.toString.call(value)` calls the builtin and + // keeps no reference to it, so it replaces nothing. + const builtinCall = + ts.isPropertyAccessExpression(node) && + ts.isPropertyAccessExpression(base) && + ts.isIdentifier(unwrap(base.expression)) && + lowerer.isStdlibGlobal(unwrap(base.expression) as ts.Identifier, "Object") && + ts.isPropertyAccessExpression(node.parent) && + node.parent.expression === node && + (node.parent.name.text === "call" || node.parent.name.text === "apply") && + ts.isCallExpression(node.parent.parent) && + node.parent.parent.expression === node.parent; + if (prototype && !builtinCall) { if (ts.isPropertyAccessExpression(node)) lowerer.noteMethodAccess(node.name.text, node); else if (ts.isStringLiteralLike(node.argumentExpression)) lowerer.noteMethodAccess(node.argumentExpression.text, node); @@ -611,7 +653,7 @@ export function collectClassMethodMutations( if (lowerer.prototypeMethodAccesses.has(name)) lowerer.noteMethodSite(name, site); else lowerer.noteMethodAccess(name, site); } - for (const { key, receiver, site } of computedWrites) { + for (const { key, receiver, target, site } of computedWrites) { // A class method declared with a well-known symbol key is not a write; // any other write with one can replace that method. const symbolName = key ? wellKnownMethodName(unwrap(key)) : null; @@ -628,7 +670,7 @@ export function collectClassMethodMutations( const type = key ? lowerer.typeOf(key) : undefined; const names = type && (literalValues(type) ?? (key ? literalLoopKeys(unwrap(key)) : null)); if (names) { - for (const name of names) markName(String(name), site); + for (const name of names) markKeyed(String(name), site, receiver, target); continue; } if (key && receiver && preservesExistingMethod(key, receiver, site)) continue; @@ -650,6 +692,19 @@ export function collectClassMethodMutations( markUnknownKey(site); } } + lowerer.checker.prefetchClassCollection( + keyedWrites.flatMap((write) => [write.target, write.receiver]), + [], + ); + for (const { name, receiver, target, site } of keyedWrites) { + if ( + !dictionaryView(receiver) && + (functionFree(lowerer.typeOf(target)) || !methodOwnerCanInhabit(receiver, name)) + ) + continue; + if (lowerer.prototypeMethodAccesses.has(name)) lowerer.noteMethodSite(name, site); + else lowerer.noteMethodAccess(name, site); + } if (numericKey) { for (const name of [...methods, ...arrowFields]) { if (String(Number(name)) === name) markName(name, numericKey); diff --git a/packages/compiler/src/frontend/lowering/class-to-primitive.ts b/packages/compiler/src/frontend/lowering/class-to-primitive.ts index 0b107ab4e..8807ac5a5 100644 --- a/packages/compiler/src/frontend/lowering/class-to-primitive.ts +++ b/packages/compiler/src/frontend/lowering/class-to-primitive.ts @@ -13,6 +13,7 @@ import * as ts from "../ts7/adapter.js"; import type { Lowerer } from "./lowerer.js"; import { accessorCall, findMethodOn, type ClassInfo } from "./lower-classes.js"; import { isClassCallback } from "./class-callbacks.js"; +import { TO_STRING_TAG_FIELD } from "./symbol-fields.js"; import { isSafeToRepeat } from "./expressions/evaluation-safety.js"; import { DATE_TIME_FIELD, dateRootOf } from "./builtins/date-classes.js"; import { dateValueMethod } from "./builtins/dates.js"; @@ -29,7 +30,15 @@ type ConversionMethod = "sym:toPrimitive" | "valueOf" | "toString"; * Date`, or through Object.prototype.toString ("[object Object]"). */ type Plan = | { method: ConversionMethod; ret: IrType } - | { method: null; date?: "toString" | "valueOf" }; + | { method: null; date?: "toString" | "valueOf"; tag?: ToStringTag }; + +/** Where Object.prototype.toString finds a class's Symbol.toStringTag: a + * string field (`[Symbol.toStringTag] = "LRUCache"`) or a getter that + * returns a string, declared on `owner`. */ +interface ToStringTag { + owner: ClassInfo; + getter: boolean; +} const PRIMITIVE_KINDS = new Set(["f64", "string", "bool", "bigint", "undefinedT", "nullT"]); @@ -52,6 +61,17 @@ export function classToStringConversion( ); } +/** Object.prototype.toString of a program class instance: "[object " + + * its Symbol.toStringTag + "]" (an own tag field, else an inherited + * getter), or "[object Object]". The class's own conversion methods do not + * take part. Null as for classToStringConversion, and for Date subclasses. */ +export function classObjectTag(lowerer: Lowerer, value: IrExpr, node: ts.Node): IrExpr | null { + if (value.type.kind !== "object") return null; + const info = lowerer.classes.get(value.type.className); + if (!info || dateRootOf(info) !== null) return null; + return classConversion(lowerer, value, "tag", node, STRING, (tag) => tag); +} + /** ToNumber(ToPrimitive(value, "number")) of a program class instance * (`Number(x)`): `[Symbol.toPrimitive]("number")`, then `valueOf` and then * `toString`, and NaN for "[object Object]". Null as for @@ -122,7 +142,7 @@ function mayBeBigint(lowerer: Lowerer, type: IrType): boolean { function classConversion( lowerer: Lowerer, value: IrExpr, - hint: ConversionHint, + hint: ConversionHint | "tag", node: ts.Node, resultType: IrType, finish: (primitive: IrExpr) => IrExpr, @@ -131,7 +151,7 @@ function classConversion( const info = lowerer.classes.get(value.type.className); if (!info || !plainProgramClass(info)) return null; const classes = subtree(lowerer, info); - for (const cls of classes) refuseReplacedConversions(lowerer, cls, node); + if (hint !== "tag") for (const cls of classes) refuseReplacedConversions(lowerer, cls, node); const plans = new Map(classes.map((cls) => [cls, planOf(lowerer, cls, hint, node)])); // A class whose plan differs from its base's starts a group; the deepest // groups are tested first, so each instance takes its own class's plan. @@ -164,12 +184,52 @@ function classConversion( }; return finish(dateValueMethod(plan.date, time, loc)!); } + if (plan.method === null && plan.tag) { + // Object.prototype.toString: "[object " + the tag + "]". + const owner = plan.tag.owner.def.name; + const tag: IrExpr = plan.tag.getter + ? accessorCall( + lowerer, + owner, + "get:sym:toStringTag", + lowerer.upcastTo(object, owner), + [], + STRING, + loc, + ) + : { + kind: "fieldGet", + obj: lowerer.upcastTo(object, owner), + className: owner, + field: TO_STRING_TAG_FIELD, + type: STRING, + loc, + }; + return finish({ + kind: "strConcat", + left: { + kind: "strConcat", + left: { kind: "strLit", value: "[object ", type: STRING, loc }, + right: tag, + type: STRING, + loc, + }, + right: { kind: "strLit", value: "]", type: STRING, loc }, + type: STRING, + loc, + }); + } if (plan.method === null) return finish({ kind: "strLit", value: "[object Object]", type: STRING, loc }); const args: IrExpr[] = plan.method === "sym:toPrimitive" ? [{ kind: "strLit", value: hint, type: STRING, loc }] : []; return finish(accessorCall(lowerer, cls.def.name, plan.method, object, args, plan.ret, loc)); }; + // "[object Object]" reads nothing of the instance, but the receiver + // expression still runs, once. + const own = plans.get(info)!; + if (tops.length === 0 && own.method === null && !own.date && !own.tag && !isSafeToRepeat(value)) + prefix.push({ kind: "exprStmt", expr: value, loc }); let result = convert(info, receiver); for (let i = tops.length - 1; i >= 0; i--) { const top = tops[i]!; @@ -228,10 +288,28 @@ function depth(info: ClassInfo): number { } function samePlan(a: Plan, b: Plan): boolean { - return ( - a.method === b.method && - (a.method !== null || b.method !== null || a.date === (b as { date?: string }).date) - ); + if (a.method !== null || b.method !== null) return a.method === b.method; + return a.date === b.date && a.tag?.owner === b.tag?.owner && a.tag?.getter === b.tag?.getter; +} + +/** The class's Symbol.toStringTag, when it has one: the class at the top + * of the chain whose layout holds the tag field (an own property, which + * shadows any getter), or its getter. Other tag types would make + * Object.prototype.toString answer "Object" or the value depending on the + * run, and are refused. */ +function toStringTagOf(lowerer: Lowerer, info: ClassInfo, node: ts.Node): ToStringTag | null { + const type = info.fields.get(TO_STRING_TAG_FIELD); + if (type !== undefined) { + if (type.kind !== "string") refuse(lowerer, node, info, "a non-string Symbol.toStringTag"); + let owner = info; + while (owner.base?.fields.has(TO_STRING_TAG_FIELD)) owner = owner.base; + return { owner, getter: false }; + } + const getter = findMethodOn(lowerer, info, "get:sym:toStringTag"); + if (!getter) return null; + if (getter.sig.ret.kind !== "string") + refuse(lowerer, node, info, "a non-string Symbol.toStringTag"); + return { owner: getter.declarer, getter: true }; } /** A conversion method the class declares or inherits (a field of that @@ -246,7 +324,16 @@ function declared( return found ? { ret: found.sig.ret } : null; } -function planOf(lowerer: Lowerer, info: ClassInfo, hint: ConversionHint, node: ts.Node): Plan { +function planOf( + lowerer: Lowerer, + info: ClassInfo, + hint: ConversionHint | "tag", + node: ts.Node, +): Plan { + if (hint === "tag") { + const tag = toStringTagOf(lowerer, info, node); + return tag ? { method: null, tag } : { method: null }; + } const exotic = declared(lowerer, info, "sym:toPrimitive"); if (exotic) { if (!primitive(lowerer, exotic.ret)) @@ -271,7 +358,8 @@ function planOf(lowerer: Lowerer, info: ClassInfo, hint: ConversionHint, node: t refuse(lowerer, node, info, `a '${method}' method that can return an object`); return { method, ret: found.ret }; } - return { method: null }; + const tag = toStringTagOf(lowerer, info, node); + return tag ? { method: null, tag } : { method: null }; } function primitive(lowerer: Lowerer, type: IrType): boolean { @@ -292,8 +380,6 @@ function refuseReplacedConversions(lowerer: Lowerer, info: ClassInfo, node: ts.N if (lowerer.prototypeMethodAccesses.has(method)) refuse(lowerer, node, info, `a '${method}' the program reaches through a prototype`); } - if (findMethodOn(lowerer, info, "get:sym:toStringTag") || info.fields.has("sym:toStringTag")) - refuse(lowerer, node, info, "a Symbol.toStringTag"); } function refuse(lowerer: Lowerer, node: ts.Node, info: ClassInfo, what: string): never { diff --git a/packages/compiler/src/frontend/lowering/containers/array-pipelines.ts b/packages/compiler/src/frontend/lowering/containers/array-pipelines.ts index 2f839a20b..ff7da5fd7 100644 --- a/packages/compiler/src/frontend/lowering/containers/array-pipelines.ts +++ b/packages/compiler/src/frontend/lowering/containers/array-pipelines.ts @@ -1019,7 +1019,9 @@ class FusedLoop { private callee(arg: IrExpr & { type: FuncType }): Callee { const known = this.callees.find((c) => c.arg === arg); if (known) return known; - const target = this.inlineTarget(arg); + // Called as a plain function: the loop is not the target's receiver. + const inlineTarget = this.inlineTarget; + const target = inlineTarget(arg); let callee: Callee; if (target && arg.kind === "closure") { const captures = new Map(); diff --git a/packages/compiler/src/frontend/lowering/containers/iterator-helpers.ts b/packages/compiler/src/frontend/lowering/containers/iterator-helpers.ts index ba5d0684d..f6580c70e 100644 --- a/packages/compiler/src/frontend/lowering/containers/iterator-helpers.ts +++ b/packages/compiler/src/frontend/lowering/containers/iterator-helpers.ts @@ -1182,10 +1182,10 @@ function bindSource( /** Where chain code allocates its locals: a lifted helper function's own * frame, or hidden locals of the function being lowered (a fused for-of). */ -interface ChainFrame { - local(base: string, type: IrType, mutable: boolean): string; +abstract class ChainFrame { + abstract local(base: string, type: IrType, mutable: boolean): string; /** `id = id + 1` over a number local. */ - bump(id: string): IrStmt; + abstract bump(id: string): IrStmt; } /** `id = id + 1` over a number local. */ @@ -1206,11 +1206,13 @@ function bumpLocal(id: string, loc: SrcLoc): IrStmt { } /** Hidden locals of the function being lowered. */ -class HostFrame implements ChainFrame { +class HostFrame extends ChainFrame { constructor( private readonly lowerer: Lowerer, private readonly loc: SrcLoc, - ) {} + ) { + super(); + } local(base: string, type: IrType, mutable: boolean): string { const local = this.lowerer.declareHiddenLocal(`%${base}`, type); local.mutable = mutable; @@ -1223,11 +1225,13 @@ class HostFrame implements ChainFrame { /** The locals and parameters of a lifted helper function under * construction. */ -export class LiftedFrame implements ChainFrame { +export class LiftedFrame extends ChainFrame { readonly locals: IrLocal[] = []; readonly params: IrParam[] = []; private n = 0; - constructor(private readonly loc: SrcLoc) {} + constructor(private readonly loc: SrcLoc) { + super(); + } local(base: string, type: IrType, mutable: boolean): string { const id = `${base}.${this.n++}`; this.locals.push({ id, name: base, type, mutable }); diff --git a/packages/compiler/src/frontend/lowering/cycle-initialization.ts b/packages/compiler/src/frontend/lowering/cycle-initialization.ts index 4b1e74fcf..8c8ce06e6 100644 --- a/packages/compiler/src/frontend/lowering/cycle-initialization.ts +++ b/packages/compiler/src/frontend/lowering/cycle-initialization.ts @@ -707,11 +707,17 @@ function rewriteFunction( * unchecked. */ export function refuseUncheckedCycleReads( lowerer: Lowerer, - classes: readonly { baseValueGlobal?: string; symbolFields?: { globalId: string }[] }[], + classes: readonly { + baseValueGlobal?: string; + symbolFields?: readonly ({ globalId: string } | { wellKnown: string })[]; + }[], ): void { if (lowerer.cycleInitFlags.size === 0) return; for (const cls of classes) { - const ids = [cls.baseValueGlobal, ...(cls.symbolFields ?? []).map((f) => f.globalId)]; + const ids = [ + cls.baseValueGlobal, + ...(cls.symbolFields ?? []).map((f) => ("globalId" in f ? f.globalId : undefined)), + ]; for (const id of ids) { const flag = id === undefined ? undefined : lowerer.cycleInitFlags.get(id); if (flag === undefined) continue; diff --git a/packages/compiler/src/frontend/lowering/generic-functions.ts b/packages/compiler/src/frontend/lowering/generic-functions.ts index 222cb89f9..7896da578 100644 --- a/packages/compiler/src/frontend/lowering/generic-functions.ts +++ b/packages/compiler/src/frontend/lowering/generic-functions.ts @@ -645,8 +645,7 @@ function extendsParameter( info: GenericFnInfo, ): boolean { const params = new Set(); - const fn = info.decl as { parameters?: { nodes: readonly ts.ParameterDeclaration[] } }; - for (const param of fn.parameters?.nodes ?? []) { + for (const param of info.decl.parameters.nodes) { const symbol = ts.isIdentifier(param.name) ? lowerer.checker.getSymbolAtLocation(param.name) : undefined; @@ -672,8 +671,7 @@ function declaredInside(node: ts.Node, owner: ts.Node): boolean { * return gives anything else (or nothing). Nested functions and classes keep * their own returns. */ function returnedLocalClass(lowerer: Lowerer, info: GenericFnInfo): ts.ClassLikeDeclaration | null { - const fn = info.decl as ts.Node & { body?: ts.Node }; - const body = fn.body; + const body = info.decl.body; if (!body) return null; const classOf = (node: ts.Expression): ts.ClassLikeDeclaration | null => { let expr = node; diff --git a/packages/compiler/src/frontend/lowering/instantiation-path.test.ts b/packages/compiler/src/frontend/lowering/instantiation-path.test.ts index a31617106..267b402bc 100644 --- a/packages/compiler/src/frontend/lowering/instantiation-path.test.ts +++ b/packages/compiler/src/frontend/lowering/instantiation-path.test.ts @@ -1,19 +1,23 @@ import { expect, test } from "vitest"; +import type * as ts from "../ts7/adapter.js"; import { extendInstantiationPath, MAX_INSTANTIATION_RECURSION } from "./instantiation-path.js"; +/** A stand-in declaration: paths compare declarations by identity only. */ +const node = (): ts.Node => ({}) as ts.Node; + test("independent declarations and roots do not consume a recursive budget", () => { - const declaration = {}; + const declaration = node(); for (let i = 0; i < MAX_INSTANTIATION_RECURSION * 2; i++) expect(extendInstantiationPath(null, declaration)).not.toBeNull(); let path = extendInstantiationPath(null, declaration)!; for (let i = 0; i < MAX_INSTANTIATION_RECURSION * 2; i++) - path = extendInstantiationPath(path, {})!; + path = extendInstantiationPath(path, node())!; expect(extendInstantiationPath(path, declaration)).not.toBeNull(); }); test("bounds fresh recursive demands across intervening declarations", () => { - const first = {}; - const second = {}; + const first = node(); + const second = node(); let path = extendInstantiationPath(null, first)!; for (let i = 1; i < MAX_INSTANTIATION_RECURSION; i++) { path = extendInstantiationPath(path, second)!; diff --git a/packages/compiler/src/frontend/lowering/instantiation-path.ts b/packages/compiler/src/frontend/lowering/instantiation-path.ts index d79760988..b4a8375f6 100644 --- a/packages/compiler/src/frontend/lowering/instantiation-path.ts +++ b/packages/compiler/src/frontend/lowering/instantiation-path.ts @@ -1,7 +1,9 @@ +import type * as ts from "../ts7/adapter.js"; + /** Queued bodies preserve their demand ancestry. Independent concrete uses * do not consume a recursion budget; only fresh instances on one path do. */ export interface InstantiationPath { - declaration: object; + declaration: ts.Node; parent: InstantiationPath | null; } @@ -9,7 +11,7 @@ export const MAX_INSTANTIATION_RECURSION = 100; export function extendInstantiationPath( parent: InstantiationPath | null, - declaration: object, + declaration: ts.Node, ): InstantiationPath | null { let repetitions = 0; for (let path = parent; path; path = path.parent) { diff --git a/packages/compiler/src/frontend/lowering/lower-calls.ts b/packages/compiler/src/frontend/lowering/lower-calls.ts index 389e3db80..d7b95663d 100644 --- a/packages/compiler/src/frontend/lowering/lower-calls.ts +++ b/packages/compiler/src/frontend/lowering/lower-calls.ts @@ -189,7 +189,7 @@ import { import { isSafeToDiscard } from "./expressions/evaluation-safety.js"; import { tryLowerExpression } from "./expressions/try-lower-expression.js"; import { lowerChildMethodValue, lowerChildPropertyCall } from "./handle-properties.js"; -import { classToNumberConversion } from "./class-to-primitive.js"; +import { classObjectTag, classToNumberConversion } from "./class-to-primitive.js"; import { hasRuntimeStatics } from "./class-runtime-statics.js"; import { structuralReadType } from "./class-unions.js"; import { @@ -3124,6 +3124,10 @@ function lowerObjectPrototypeCall( const immediate = immediateObjectTagReceiver(lowerer, receiverNode); const receiver = immediate?.effect ?? lowerer.lowerExpr(receiverNode); const tag = immediate?.tag ?? objectToStringTag(lowerer, receiver.type); + if (tag === null && immediate === null && call.arguments.nodes.length === 1) { + const classTag = classObjectTag(lowerer, receiver, receiverNode); + if (classTag) return classTag; + } // A generator object answers its tag through its checked capsule. if (tag === null && receiver.type.kind !== "dyn" && receiver.type.kind !== "generator") { lowerer.noLowering( diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index ac1864051..b829b6ddc 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -8161,7 +8161,10 @@ export function classMemberNameOf(lowerer: Lowerer, name: ts.PropertyName): stri member === "asyncIterator" || member === "dispose" || member === "asyncDispose" || - member === "toPrimitive" + member === "toPrimitive" || + // A toStringTag field keeps its symbol field name; its accessor and + // method forms take the method slot name. + (member === "toStringTag" && !ts.isPropertyDeclaration(name.parent)) ) { return `sym:${member}`; } diff --git a/packages/compiler/src/frontend/lowering/lower-inspect.ts b/packages/compiler/src/frontend/lowering/lower-inspect.ts index e7a43bde1..48bb0f9e6 100644 --- a/packages/compiler/src/frontend/lowering/lower-inspect.ts +++ b/packages/compiler/src/frontend/lowering/lower-inspect.ts @@ -18,6 +18,7 @@ import { jsFuncNameOf, type Lowerer } from "./lowerer.js"; import { isJsSourceFile } from "../program.js"; import { BOOL, + CAUGHT, DYN, F64, type IrExpr, @@ -44,9 +45,9 @@ import { shapeKeyOrders, typeKey, } from "../../ir/ir.js"; -import type { ClassInfo } from "./lower-classes.js"; +import { accessorCall, findMethodOn, type ClassInfo } from "./lower-classes.js"; import { isSafeToDiscard, isSafeToRepeat } from "./expressions/evaluation-safety.js"; -import { symbolFieldDisplayName } from "./symbol-fields.js"; +import { symbolFieldDisplayName, TO_STRING_TAG_FIELD } from "./symbol-fields.js"; import { eventTargetRootOf } from "./lower-event-target.js"; import { dateRootOf } from "./builtins/date-classes.js"; import { lowerSystemErrorMap } from "./lower-system-errors.js"; @@ -2000,8 +2001,86 @@ function inspectHelper(lowerer: Lowerer, t: IrType, loc: SrcLoc): string { // observable way — Node's inspect omits them entirely (verified), // so a class whose only fields are private prints as `C {}`. const visible = info.def.fields.filter((f) => isClassOwnEnumerableFieldName(f.name)); + // A Symbol.toStringTag getter (an own tag field is listed instead) + // brackets the tag after the name, `Name [tag] {`, when it is a + // nonempty string other than the name. A getter that throws shows + // no tag, as in Node. + const tagGetter = info.fields.has(TO_STRING_TAG_FIELD) + ? null + : findMethodOn(lowerer, info, "get:sym:toStringTag"); + let named: (plain: string, make: (head: IrExpr) => IrExpr) => IrExpr = (plain) => + strLit(plain, loc); + if (tagGetter?.sig.ret.kind === "string") { + const owner = tagGetter.declarer.def.name; + locals.push( + { id: "tag.0", name: "tag", type: STRING, mutable: true }, + { id: "tagError.0", name: "tagError", type: CAUGHT, mutable: false }, + ); + body.push( + { kind: "varDecl", localId: "tag.0", init: strLit("", loc), loc }, + { + kind: "tryCatch", + tryBody: [ + { + kind: "assign", + localId: "tag.0", + value: accessorCall( + lowerer, + owner, + "get:sym:toStringTag", + lowerer.upcastTo(v(), owner), + [], + STRING, + loc, + ), + loc, + }, + ], + catchBody: [], + catchLocalId: "tagError.0", + finallyBody: null, + loc, + }, + ); + const tag = (): IrExpr => varRef("tag.0", STRING, loc); + const shown: IrExpr = { + kind: "logical", + op: "&&", + left: { + kind: "strEq", + negated: true, + left: tag(), + right: strLit("", loc), + type: BOOL, + loc, + }, + right: { + kind: "strEq", + negated: true, + left: tag(), + right: strLit(display, loc), + type: BOOL, + loc, + }, + type: BOOL, + loc, + }; + const head = concatAll( + [strLit(`${display === "" ? "Object" : display} [`, loc), tag(), strLit("]", loc)], + loc, + ); + named = (plain, make) => ({ + kind: "ternary", + cond: shown, + then: make(head), + else_: strLit(plain, loc), + type: STRING, + loc, + }); + } + const after = (text: string) => (head: IrExpr) => concatAll([head, strLit(text, loc)], loc); if (visible.length === 0) { - body = [ret(strLit(display === "" ? "{}" : `${display} {}`, loc))]; + body.push(ret(named(display === "" ? "{}" : `${display} {}`, after(" {}")))); break; } const get = (field: string, type: IrType): IrExpr => ({ @@ -2012,7 +2091,22 @@ function inspectHelper(lowerer: Lowerer, t: IrType, loc: SrcLoc): string { type, loc, }); - body = [depthGate(display === "" ? "[Object]" : `[${display}]`), ...begin()]; + body.push( + { + kind: "if", + cond: { kind: "bin", op: ">", left: r(), right: d(), type: BOOL, loc }, + then: [ + ret( + named(display === "" ? "[Object]" : `[${display}]`, (head) => + concatAll([strLit("[", loc), head, strLit("]", loc)], loc), + ), + ), + ], + else_: null, + loc, + }, + ...begin(), + ); // def.fields carries layout order: the base chain first, then own — // exactly the own-property insertion order of a constructor that // assigns in declaration order (SEMANTICS.md 36's stance). SYMBOL- @@ -2041,7 +2135,7 @@ function inspectHelper(lowerer: Lowerer, t: IrType, loc: SrcLoc): string { ret( end( strLit("", loc), - strLit(display === "" ? "{" : `${display} {`, loc), + named(display === "" ? "{" : `${display} {`, after(" {")), strLit("}", loc), false, boolLit(false, loc), diff --git a/packages/compiler/src/frontend/lowering/lower-modules.ts b/packages/compiler/src/frontend/lowering/lower-modules.ts index 1eb9f7ecf..542235e0d 100644 --- a/packages/compiler/src/frontend/lowering/lower-modules.ts +++ b/packages/compiler/src/frontend/lowering/lower-modules.ts @@ -1189,19 +1189,22 @@ function jsDynHoldableInitializer(lowerer: Lowerer, init: ts.Expression | undefi } if (e.kind === ts.SyntaxKind.NullKeyword) return true; if (ts.isIdentifier(e) && e.text === "undefined") return true; - if (ts.isConditionalExpression(e)) { - return ( - jsDynHoldableInitializer(lowerer, e.whenTrue) && - jsDynHoldableInitializer(lowerer, e.whenFalse) - ); - } + // The arms of a conditional or logical expression: checked values, or + // strings, numbers and booleans, which box into the checked-dynamic + // result (`const APP_NAME = config.name || "pi"`). + const arm = (x: ts.Expression): boolean => { + if (jsDynHoldableInitializer(lowerer, x)) return true; + const kind = lowerer.mapTypeOf(lowerer.typeOf(x))?.kind; + return kind === "string" || kind === "f64" || kind === "bool"; + }; + if (ts.isConditionalExpression(e)) return arm(e.whenTrue) && arm(e.whenFalse); if ( ts.isBinaryExpression(e) && (e.operatorToken.kind === ts.SyntaxKind.QuestionQuestionToken || e.operatorToken.kind === ts.SyntaxKind.BarBarToken || e.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) ) { - return jsDynHoldableInitializer(lowerer, e.left) && jsDynHoldableInitializer(lowerer, e.right); + return arm(e.left) && arm(e.right); } // A member of a checked module value is itself checked, including a // callable whose inferred overloads cannot describe one native ABI. diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 69ddbd282..27e4d4943 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -3770,7 +3770,7 @@ export class Lowerer { positionOf: (node) => this.positions.of(node), shapes: this.shapes, unions: this.unions, - classNamer: this.classNamer, + classNamer: (decl) => this.classNamer(decl), resolveTypeParam: this.typeParamResolver, resolveTypeParamTs: this.typeParamTsResolver, isErasing: () => this.erasingDepth > 0, @@ -3851,8 +3851,8 @@ export class Lowerer { }, mixinIntersectionInstance: (widened) => mixinIntersectionInstanceType(this, widened), classImplementedProtocol: (type) => this.classImplementedProtocol(type), - isStdlibFile: this.isStdlibFile, - isNpmFile: this.isNpmFile, + isStdlibFile: (sf) => this.isStdlibFile(sf), + isNpmFile: (sf) => this.isNpmFile(sf), // The declaration-typed boundary's generated types (decl-projection.ts) // describe data, like an explicitly mapped external type surface. isExternalTypeFile: (sf) => @@ -8117,16 +8117,24 @@ export class Lowerer { lower: () => IrFunction | null; } >(); - const bodyRoots = (...roots: (ts.Node | undefined | null)[]): ts.Node[] => - roots.filter((root) => root !== undefined && root !== null); - const functionRoots = (decl: ts.FunctionLikeDeclaration): ts.Node[] => - bodyRoots(...decl.parameters.nodes.map((param) => param.initializer), decl.body); - const classCtorRoots = (info: ClassInfo): ts.Node[] => - bodyRoots( - ...(info.ctor?.parameters?.nodes ?? []).map((param) => param.initializer), - info.ctor?.body, - ...info.fieldOrder.map((field) => field.initializer), - ); + // Roots are collected with plain pushes: spread arguments into a rest + // parameter pass the nodes as dynamic values. + const addRoot = (roots: ts.Node[], root: ts.Node | undefined | null): void => { + if (root !== undefined && root !== null) roots.push(root); + }; + const functionRoots = (decl: ts.FunctionLikeDeclaration): ts.Node[] => { + const roots: ts.Node[] = []; + for (const param of decl.parameters.nodes) addRoot(roots, param.initializer); + addRoot(roots, decl.body); + return roots; + }; + const classCtorRoots = (info: ClassInfo): ts.Node[] => { + const roots: ts.Node[] = []; + for (const param of info.ctor?.parameters?.nodes ?? []) addRoot(roots, param.initializer); + addRoot(roots, info.ctor?.body); + for (const field of info.fieldOrder) addRoot(roots, field.initializer); + return roots; + }; const classMemberRoots = (info: ClassInfo): ts.Node[] => { const roots = classCtorRoots(info); for (const { member } of this.classMethodMembers(info)) roots.push(...functionRoots(member)); @@ -8303,7 +8311,8 @@ export class Lowerer { register(`%${cName}.set:${prop}`, [], () => this.throwingSetterFn(info, prop)); } }; - for (const name of collectionEdges) this.onEdge(name); + const onEdge = this.onEdge; + for (const name of collectionEdges) onEdge(name); // Generic instances queued by the bodies above lower here (an instance // body fires edges of its own and can queue further instances of // either kind — function instances and class instantiations drain to @@ -8438,7 +8447,8 @@ export class Lowerer { // profile-mapped exports are called from outside the graph, so they // seed the worklist beside the init bodies. Unknown names are inert // (the export-map resolution reports them as SC4002 later). - for (const root of extraRoots ?? []) this.onEdge?.(root); + const rootEdge = this.onEdge; + for (const root of extraRoots ?? []) rootEdge?.(root); const shuffle = lowerShuffle(); const drainUnits = (): void => { while (queue.length > 0) { @@ -8556,7 +8566,9 @@ export class Lowerer { /** Reachability hook (see emitReachable): fires when lowering resolves a * reference to a lowerable body. */ noteEdge(name: string): void { - if (this.onEdge) this.onEdge(name); + // Called as a plain function: the instance is not its receiver. + const onEdge = this.onEdge; + if (onEdge) onEdge(name); } /** A subclass constructor's super() edge: the base constructor runs, but @@ -11968,12 +11980,15 @@ export class Lowerer { /** Method-like members with their collected method-map names. Body * lowering omits abstract declarations; ABI analysis must include them - * because an abstract-typed call selects the same virtual slot. */ - *classMethodMembers( + * because an abstract-typed call selects the same virtual slot. An array, + * not a generator: a generator's yielded values are dynamic values, which + * would make every syntax node one. */ + classMethodMembers( info: ClassInfo, includeAbstract = false, - ): Generator<{ mName: string; member: ts.MethodDeclaration | ts.AccessorDeclaration }> { - if (!info.decl) return; // builtin error classes: runtime-provided bodies + ): { mName: string; member: ts.MethodDeclaration | ts.AccessorDeclaration }[] { + const members: { mName: string; member: ts.MethodDeclaration | ts.AccessorDeclaration }[] = []; + if (!info.decl) return members; // builtin error classes: runtime-provided bodies for (const member of info.decl.members.nodes) { const fnLike = ts.isMethodDeclaration(member) || ts.isGetAccessor(member) || ts.isSetAccessor(member) @@ -11997,8 +12012,9 @@ export class Lowerer { : `${ts.isGetAccessor(fnLike) ? "get" : "set"}:${baseName}`; const signature = info.methods.get(mName); if (!signature || (!fnLike.body && !(includeAbstract && signature.abstract))) continue; - yield { mName, member: fnLike }; + members.push({ mName, member: fnLike }); } + return members; } lowerClassCtor(info: ClassInfo): IrFunction { diff --git a/packages/compiler/src/frontend/lowering/site-dependencies.test.ts b/packages/compiler/src/frontend/lowering/site-dependencies.test.ts index ca5affcbe..0580a52ee 100644 --- a/packages/compiler/src/frontend/lowering/site-dependencies.test.ts +++ b/packages/compiler/src/frontend/lowering/site-dependencies.test.ts @@ -1,9 +1,13 @@ import { expect, test } from "vitest"; +import type * as ts from "../ts7/adapter.js"; import { SiteDependencies } from "./site-dependencies.js"; +/** A stand-in node fact: facts are compared by identity. */ +const node = (): ts.Node => ({}) as ts.Node; + test("a changed fact makes the sites that read it stale", () => { const dependencies = new SiteDependencies(3); - const a = {}; + const a = node(); const b = "key"; dependencies.begin(0); dependencies.read(a); @@ -20,8 +24,8 @@ test("a changed fact makes the sites that read it stale", () => { test("a visit that changes a fact makes every reader of its facts stale", () => { const dependencies = new SiteDependencies(3); - const shared = {}; - const own = {}; + const shared = node(); + const own = node(); dependencies.begin(0); dependencies.read(shared); dependencies.end(false); @@ -37,7 +41,7 @@ test("a visit that changes a fact makes every reader of its facts stale", () => test("reads outside a visit are not recorded", () => { const dependencies = new SiteDependencies(1); - const fact = {}; + const fact = node(); dependencies.read(fact); dependencies.changed(fact); expect(dependencies.isStale(0)).toBe(false); @@ -45,7 +49,7 @@ test("reads outside a visit are not recorded", () => { test("a site visited again is listed once per fact", () => { const dependencies = new SiteDependencies(3); - const fact = {}; + const fact = node(); for (const site of [0, 2, 1, 2, 0]) { dependencies.begin(site); dependencies.read(fact); diff --git a/packages/compiler/src/frontend/lowering/site-dependencies.ts b/packages/compiler/src/frontend/lowering/site-dependencies.ts index da8531e48..868531353 100644 --- a/packages/compiler/src/frontend/lowering/site-dependencies.ts +++ b/packages/compiler/src/frontend/lowering/site-dependencies.ts @@ -1,3 +1,5 @@ +import type * as ts from "../ts7/adapter.js"; + /** The facts each site of a fixed-point scan read on its last visit, so that * a pass visits again only the sites whose facts changed since. * @@ -13,14 +15,19 @@ * that with a pass over every site once a pass changes nothing, and resumes * when that pass changes a fact: a fact this tracking misses costs passes, * not a different result. */ +/** A fact a site reads: a symbol, a syntax node, or the name of a derived + * fact. A typed union keeps nodes and symbols native values; as `unknown` + * every syntax node would become a dynamic value. */ +export type SiteFact = ts.Node | ts.Symbol | string; + export class SiteDependencies { /** Each fact's entry: the visit that last read it, so that a visit lists a * fact once, followed by the sites that read it, ascending. */ - private readonly readers = new Map(); + private readonly readers = new Map(); private readonly stale: Uint8Array; private site = -1; private visit = 0; - private facts: unknown[] = []; + private facts: SiteFact[] = []; constructor(siteCount: number) { this.stale = new Uint8Array(siteCount); @@ -46,7 +53,7 @@ export class SiteDependencies { } /** The site being visited read `fact`. */ - read(fact: unknown): void { + read(fact: SiteFact): void { if (this.site < 0) return; const entry = this.readers.get(fact); if (entry === undefined) { @@ -72,7 +79,7 @@ export class SiteDependencies { } /** `fact` changed: every site that read it is visited again. */ - changed(fact: unknown): void { + changed(fact: SiteFact): void { const entry = this.readers.get(fact); if (entry !== undefined) for (let i = 1; i < entry.length; i++) this.stale[entry[i]!] = 1; } diff --git a/packages/compiler/src/frontend/lowering/string-index-bounds.ts b/packages/compiler/src/frontend/lowering/string-index-bounds.ts index af1b00ec6..6418aed76 100644 --- a/packages/compiler/src/frontend/lowering/string-index-bounds.ts +++ b/packages/compiler/src/frontend/lowering/string-index-bounds.ts @@ -182,11 +182,28 @@ export class StringIndexBounds { private readonly identifiers = new Map>(); constructor( - private readonly symbolAt: (node: ts.Node) => ts.Symbol | null, - private readonly declarationOf: (symbol: ts.Symbol) => ts.Node | undefined, - private readonly isString: (node: ts.Expression) => boolean, + private readonly lookupSymbol: (node: ts.Node) => ts.Symbol | null, + private readonly lookupDeclaration: (symbol: ts.Symbol) => ts.Node | undefined, + private readonly stringTyped: (node: ts.Expression) => boolean, ) {} + // The lookups are called as plain functions: the instance is not their + // receiver. + private symbolAt(node: ts.Node): ts.Symbol | null { + const lookup = this.lookupSymbol; + return lookup(node); + } + + private declarationOf(symbol: ts.Symbol): ts.Node | undefined { + const lookup = this.lookupDeclaration; + return lookup(symbol); + } + + private isString(node: ts.Expression): boolean { + const test = this.stringTyped; + return test(node); + } + /** True when `read` (an element access on a string receiver) is proven * to name an existing code unit. */ inBounds(read: ts.ElementAccessExpression): boolean { diff --git a/packages/compiler/src/frontend/lowering/symbol-fields.ts b/packages/compiler/src/frontend/lowering/symbol-fields.ts index 56718615e..cdfb9e1b8 100644 --- a/packages/compiler/src/frontend/lowering/symbol-fields.ts +++ b/packages/compiler/src/frontend/lowering/symbol-fields.ts @@ -77,6 +77,8 @@ export function fenceSymbolFieldCopy( } export function classSymbolKeyOf(lowerer: Lowerer, key: ts.Expression): ClassSymbolKey | null { + const wellKnown = wellKnownSymbolKeyOf(lowerer, key); + if (wellKnown !== undefined) return wellKnown; if ( !ts.isIdentifier(key) && (!ts.isPropertyAccessExpression(key) || key.questionDotToken || !ts.isIdentifier(key.name)) @@ -90,6 +92,53 @@ export function classSymbolKeyOf(lowerer: Lowerer, key: ts.Expression): ClassSym return sym ? classSymbolKeyOfSymbol(lowerer, sym) : null; } +/** Well-known symbols a class field may be keyed by: those no protocol + * consults on an instance, or whose protocol the lowering reads from the + * field (Symbol.toStringTag, by the class string conversions). A field + * keyed by any other well-known symbol (Symbol.iterator, toPrimitive, + * hasInstance, ...) would be skipped by its protocol, so it keeps the + * computed-key refusal. */ +const FIELD_WELL_KNOWN_SYMBOLS: ReadonlySet = new Set(["toStringTag"]); + +/** The key of `Symbol.` on the standard global: undefined when the + * expression is not one, null when it is a well-known symbol a field may + * not be keyed by. The identity is the lib's declaration of the property, + * one symbol for every program reference. */ +function wellKnownSymbolKeyOf( + lowerer: Lowerer, + key: ts.Expression, +): ClassSymbolKey | null | undefined { + while (ts.isParenthesizedExpression(key)) key = key.expression; + if ( + !ts.isPropertyAccessExpression(key) || + key.questionDotToken || + !ts.isIdentifier(key.expression) || + !ts.isIdentifier(key.name) || + !lowerer.isStdlibGlobal(key.expression, "Symbol") + ) + return undefined; + const name = key.name.text; + const sym = lowerer.checker.getSymbolAtLocation(key.name); + if (!sym || !(lowerer.typeOf(key).flags & ts.TypeFlags.UniqueESSymbol)) return undefined; + if (!FIELD_WELL_KNOWN_SYMBOLS.has(name)) return null; + return { sym, identity: sym, fieldName: wellKnownSymbolFieldName(name) }; +} + +/** The layout name of a field keyed by the well-known `Symbol.`: a + * reserved symbol-field name, printed as Node spells the key. */ +export function wellKnownSymbolFieldName(name: string): string { + return `${FIELD_PREFIX}Symbol(Symbol.${name})`; +} + +/** The well-known symbol a field name is keyed by (`toStringTag`), or null. */ +export function wellKnownSymbolOfField(field: string): string | null { + const match = /^%symbol:Symbol\(Symbol\.(\w+)\)$/.exec(field); + return match === null ? null : match[1]!; +} + +/** The layout name of a `Symbol.toStringTag` field. */ +export const TO_STRING_TAG_FIELD = wellKnownSymbolFieldName("toStringTag"); + /** A literal Symbol()/Symbol.for() initialized once at module scope. The * whole-file proof also covers var declarations emitted by bundlers. Keys * cannot be used before initialization: a computed class field evaluates diff --git a/packages/compiler/src/frontend/npm-static.ts b/packages/compiler/src/frontend/npm-static.ts index eed02c95c..b00e14aa0 100644 --- a/packages/compiler/src/frontend/npm-static.ts +++ b/packages/compiler/src/frontend/npm-static.ts @@ -254,13 +254,18 @@ function aliasedPackageName(pkgDir: string): string | null { export function npmStaticTransformPkgJson(pkg: Record): void { delete pkg["types"]; delete pkg["typings"]; - const transform = (v: unknown): void => { - if (v === null || typeof v !== "object") return; - if (Array.isArray(v)) { - for (const item of v) transform(item); - return; - } - const obj = v as Record; + const transform = (v: unknown): unknown => { + if (v === null || typeof v !== "object") return v; + if (Array.isArray(v)) return v.map(transform); + // The result is a new object, built in key order; the first entry of a + // key wins. + const entries: [string, unknown][] = []; + const seen = new Set(); + const add = (key: string, value: unknown): void => { + if (seen.has(key)) return; + seen.add(key); + entries.push([key, value]); + }; // 0. The "node" condition HOISTS: Node's runtime resolution matches it // (yaml's `{ types, node: "./dist/index.js", default: "./browser/ // index.js" }` runs the node dist; the browser dist is a DIFFERENT @@ -270,24 +275,18 @@ export function npmStaticTransformPkgJson(pkg: Record): void { // under import+require (either matcher finds it there), an object's // entries splice inline — earlier real keys keep winning, exactly // Node's first-match-in-key-order rule. - if (obj["node"] !== undefined) { - const entries = Object.entries(obj); - for (const k of Object.keys(obj)) delete obj[k]; - for (const [k, val] of entries) { - if (k !== "node") { - if (!(k in obj)) obj[k] = val; - continue; - } - const inner: Record = - typeof val === "string" - ? { import: val, require: val } - : val !== null && typeof val === "object" && !Array.isArray(val) - ? (val as Record) - : {}; - for (const [ik, iv] of Object.entries(inner)) { - if (!(ik in obj)) obj[ik] = iv; - } + for (const [key, value] of Object.entries(v as Record)) { + if (key !== "node") { + add(key, value); + continue; } + const inner: Record = + typeof value === "string" + ? { import: value, require: value } + : value !== null && typeof value === "object" && !Array.isArray(value) + ? (value as Record) + : {}; + for (const [innerKey, innerValue] of Object.entries(inner)) add(innerKey, innerValue); } // 1. The types claims go AFTER the hoist: a node object's own // "types" key (uuid's `node: { types: "./dist/index.d.ts", default: @@ -295,15 +294,17 @@ export function npmStaticTransformPkgJson(pkg: Record): void { // in place tsgo follows it, maps the hidden declaration to its // same-stem JS (dist/index.js, the browser build) and disagrees with // this resolver's runtime answer. - delete obj["types"]; - delete obj["typings"]; - for (const value of Object.values(obj)) transform(value); + return Object.fromEntries( + entries + .filter(([key]) => key !== "types" && key !== "typings") + .map(([key, value]): [string, unknown] => [key, transform(value)]), + ); }; - if (pkg["exports"] !== undefined) transform(pkg["exports"]); + if (pkg["exports"] !== undefined) pkg["exports"] = transform(pkg["exports"]); // The "imports" field maps "#" specifiers with the same condition objects // (chalk 5's `"#supports-color": { node, default }`), so Node's "node" // target hoists there too. - if (pkg["imports"] !== undefined) transform(pkg["imports"]); + if (pkg["imports"] !== undefined) pkg["imports"] = transform(pkg["imports"]); } /** npmStaticTransformPkgJson over a package.json TEXT (the fs shadow's diff --git a/packages/compiler/src/frontend/services.ts b/packages/compiler/src/frontend/services.ts index 19728d6ce..14b366bfa 100644 --- a/packages/compiler/src/frontend/services.ts +++ b/packages/compiler/src/frontend/services.ts @@ -52,8 +52,10 @@ export class FrontendServices { } private sourceParser(): Ts7SourceParser { this.ensureOpen(); + // Called as a plain function: the instance is not its receiver. + const createApi = this.createApi; return (this.parser ??= new Ts7SourceParser( - (options) => this.createApi({ ...options, collectTiming: false }), + (options) => createApi({ ...options, collectTiming: false }), this.cwd, )); } @@ -62,9 +64,10 @@ export class FrontendServices { } evaluateComptime(source: string, timeoutMs: number): unknown { this.ensureOpen(); - if (this.comptimeEvaluator === undefined) + const evaluate = this.comptimeEvaluator; + if (evaluate === undefined) throw new Error("this compiler host does not provide compile-time evaluation"); - return this.comptimeEvaluator(source, timeoutMs); + return evaluate(source, timeoutMs); } createProgramHost(options?: Ts7HostOptions): Ts7Host { this.ensureOpen(); diff --git a/packages/compiler/src/frontend/token-equivalence.test.ts b/packages/compiler/src/frontend/token-equivalence.test.ts index 880a07221..7bbe08929 100644 --- a/packages/compiler/src/frontend/token-equivalence.test.ts +++ b/packages/compiler/src/frontend/token-equivalence.test.ts @@ -1,8 +1,10 @@ import { expect, test } from "vitest"; -import { tokenEquivalentSource } from "./token-equivalence.js"; +import { tokenEquivalentSource, tokenPositionEquivalentSource } from "./token-equivalence.js"; const equivalent = (previous: string, current: string, path = "/src/a.ts") => tokenEquivalentSource(path, previous, current); +const positionEquivalent = (previous: string, current: string, path = "/src/a.ts") => + tokenPositionEquivalentSource(path, previous, current); test("whitespace and plain comments are trivia", () => { expect(equivalent("const a = 1;\n", "const a = 1; // one\n")).toBe(true); @@ -105,3 +107,50 @@ test("text the scanner cannot classify is never equivalent", () => { expect(equivalent("const a = ; // a\n", "const a = ; // b\n", "/src/a.tsx")).toBe(false); expect(equivalent('const s = "open\n', 'const s = "open // \n')).toBe(false); }); + +test("a / after a non-null assertion divides", () => { + expect( + equivalent("const q = data[i]! / 7; // ratio\n", "const q = data[i]! / 7; // the ratio\n"), + ).toBe(true); + expect( + equivalent("const q = value! / 7; // ratio\n", "const q = value! / 7; // the ratio\n"), + ).toBe(true); + expect(equivalent("const q = this! / 7; // ratio\n", "const q = this! / 7; // the ratio\n")).toBe( + true, + ); + // A prefix `!` negates a regular expression, whose `//` is code. + expect( + equivalent("const t = !/[//]/.test(s); c = 1;\n", "const t = !/[//]/.test(s); c = 2;\n"), + ).toBe(false); + expect(equivalent("return !/[//]/.test(s); // one\n", "return !/[//]/.test(s); // two\n")).toBe( + true, + ); + // After a line break, `!` starts a new expression. + expect(equivalent("a\n!/[//]/.test(s); c = 1;\n", "a\n!/[//]/.test(s); c = 2;\n")).toBe(false); + // `f()!` and `if (a) !` read the same up to the `/`. + expect(equivalent("const q = f()! / 2; // one\n", "const q = f()! / 2; // two\n")).toBe(false); +}); + +test("position equivalence also keeps every token's line and column", () => { + const source = "const a = 1; // one\nconst b = a; /* two */ f(b);\n"; + // A comment's text within its line, after the line's last token. + expect( + positionEquivalent(source, "const a = 1; // the first\nconst b = a; /* two */ f(b);\n"), + ).toBe(true); + // Comments and whitespace after the last token, and trailing whitespace. + expect(positionEquivalent(source, source + "// appended\n\n")).toBe(true); + expect( + positionEquivalent(source, "const a = 1; // one\nconst b = a; /* two */ f(b); \n"), + ).toBe(true); + expect(positionEquivalent(source, source.replaceAll("\n", "\r\n"))).toBe(true); + // A longer comment before a token moves its column; a new line moves the + // lines below it. Both stay token-equivalent. + const column = "const a = 1; // one\nconst b = a; /* the second */ f(b);\n"; + const line = "// header\nconst a = 1; // one\nconst b = a; /* two */ f(b);\n"; + expect(positionEquivalent(source, column)).toBe(false); + expect(positionEquivalent(source, line)).toBe(false); + expect(equivalent(source, column)).toBe(true); + expect(equivalent(source, line)).toBe(true); + // A token edit is never equivalent. + expect(positionEquivalent(source, source.replace("1", "2"))).toBe(false); +}); diff --git a/packages/compiler/src/frontend/token-equivalence.ts b/packages/compiler/src/frontend/token-equivalence.ts index 7a0f6cc79..9f6fd4613 100644 --- a/packages/compiler/src/frontend/token-equivalence.ts +++ b/packages/compiler/src/frontend/token-equivalence.ts @@ -17,7 +17,10 @@ * before it. After `)` it divides unless the parenthesis closes an `if`, * `while`, `for`, `for await`, or `with` header. After `}`, `++` or * `--` the scanner cannot tell which, so it gives up, as it does for - * escaped identifiers, which can spell keywords. + * escaped identifiers, which can spell keywords. After `!` in + * TypeScript it divides when the `!` follows an operand on the same line + * (a non-null assertion, `x! / 2`) and gives up when that operand is a + * `)`, `}`, `++` or `--`. * - A `/` with a line break (or a comment that spans lines) since the * previous token gives up: whether automatic semicolon insertion ends the * statement before it decides how it reads. @@ -35,6 +38,8 @@ interface Token { text: string; comment: boolean; lineBreakBefore: boolean; + /** The offset of the token's first code unit. */ + start: number; } /** Keywords after which `/` starts a regular expression. */ @@ -135,14 +140,20 @@ function scan(path: string, source: string): Token[] | null { // A line break, or a comment spanning lines, since the last token other // than a comment. let breakSinceCode = false; - // The previous token and the one before it, and whether a `)` closed a - // statement header. - const last: { token: string | null; before: string | null } = { token: null, before: null }; + // The previous token and the one before it, whether a line break came + // before the previous token, and whether a `)` closed a statement header. + const last: { token: string | null; before: string | null; broke: boolean } = { + token: null, + before: null, + broke: false, + }; let closedHeader = false; + // Every token ends at `index` when it is pushed. const push = (text: string, comment = false): void => { - tokens.push({ text, comment, lineBreakBefore }); + tokens.push({ text, comment, lineBreakBefore, start: index - text.length }); lineBreakBefore = false; if (!comment) { + last.broke = breakSinceCode; breakSinceCode = false; last.before = last.token; last.token = text; @@ -291,7 +302,19 @@ function scan(path: string, source: string): Token[] | null { else if (before.startsWith("'") || before.startsWith('"') || before.endsWith("`")) regex = false; else if (before.startsWith("/") && before.length > 1 && before !== "/=") regex = false; - else regex = true; + else if (before === "!" && typeScript && !last.broke && last.before !== null) { + // `x! / 2` divides: a `!` right after an operand on the same line is + // a non-null assertion. `!/re/.test(s)` negates a regular expression. + const operand = last.before; + if (operand === ")" || operand === "}" || operand === "++" || operand === "--") return null; + regex = !( + operand === "]" || + operand.startsWith("'") || + operand.startsWith('"') || + operand.endsWith("`") || + (/^[A-Za-z0-9_$]/.test(operand) && !EXPRESSION_KEYWORDS.has(operand)) + ); + } else regex = true; if (regex) { const start = index; index++; @@ -373,9 +396,33 @@ function scan(path: string, source: string): Token[] | null { return tokens; } -/** Whether `current` differs from `previous` only in whitespace and in - * comments that cannot affect compilation. */ -export function tokenEquivalentSource(path: string, previous: string, current: string): boolean { +/** The line and column of each token's start, with the line terminators + * source locations count (backend/source-locations.ts). */ +function tokenPositions(source: string, tokens: readonly Token[]): number[] { + const positions: number[] = []; + let line = 0; + let lineStart = 0; + let offset = 0; + for (const token of tokens) { + for (; offset < token.start; offset++) { + const code = source.charCodeAt(offset); + if (code === 13 && source.charCodeAt(offset + 1) === 10) offset++; + if (code === 10 || code === 13 || code === 0x2028 || code === 0x2029) { + line++; + lineStart = offset + 1; + } + } + positions.push(line, token.start - lineStart); + } + return positions; +} + +function equivalentSources( + path: string, + previous: string, + current: string, + positions: boolean, +): boolean { if (previous === current) return true; const left = scan(path, previous); if (left === null) return false; @@ -387,5 +434,27 @@ export function tokenEquivalentSource(path: string, previous: string, current: s if (a.text !== b.text || a.comment !== b.comment) return false; if (index > 0 && a.lineBreakBefore !== b.lineBreakBefore) return false; } - return true; + if (!positions) return true; + const before = tokenPositions(previous, left); + const after = tokenPositions(current, right); + return before.every((value, index) => value === after[index]); +} + +/** Whether `current` differs from `previous` only in whitespace and in + * comments that cannot affect compilation. */ +export function tokenEquivalentSource(path: string, previous: string, current: string): boolean { + return equivalentSources(path, previous, current, false); +} + +/** Whether `current` is token-equivalent to `previous` (tokenEquivalentSource) + * and every token keeps its line and column: the edit leaves the source + * positions debug information records unchanged (a comment's text within + * its line, comments and whitespace after the last token, trailing + * whitespace). */ +export function tokenPositionEquivalentSource( + path: string, + previous: string, + current: string, +): boolean { + return equivalentSources(path, previous, current, true); } diff --git a/packages/compiler/src/frontend/ts7/lib-diagnostics.test.ts b/packages/compiler/src/frontend/ts7/lib-diagnostics.test.ts index f041a6cb5..e87db5f1a 100644 --- a/packages/compiler/src/frontend/ts7/lib-diagnostics.test.ts +++ b/packages/compiler/src/frontend/ts7/lib-diagnostics.test.ts @@ -219,3 +219,53 @@ test("a supplied file that changes is a different entry", () => { expect(store.entries.size).toBe(2); writeFileSync(fallback, fallbackText); }); + +/** The program's files, recording which ones were read. */ +function recording(texts: Record): ((name: string) => SourceFile | undefined) & { + read: string[]; +} { + const inner = files(texts); + const read: string[] = []; + return Object.assign((name: string) => (read.push(name), inner(name)), { read }); +} + +test("a program of modules stores its answer without reading the supplied files", () => { + const store = memoryStore(); + setLibDiagnosticsStore(store, "checker"); + const sources = recording({ [main]: "export const n: number = 'x';\n" }); + reusedLibDiagnostics( + sessionProgram({ semantic: new Map([[main, []]]) }), + names, + supplied, + sources, + ); + expect(sources.read).toEqual([main]); + const [text] = [...store.entries.values()]; + expect(JSON.parse(text!).globals).toBeNull(); + // A later program of modules reuses it, again without reading them. + const again = recording({ [main]: "export const n: number = 'x';\n" }); + const program = sessionProgram({ semantic: new Map([[main, []]]) }); + expect(reusedLibDiagnostics(program, names, supplied, again)).not.toBeNull(); + expect(program.asked).toEqual([`checked ${main}`]); + expect(again.read).toEqual([main]); +}); + +test("a script that uses an answer stored without global names collects and stores them", () => { + const store = memoryStore(); + setLibDiagnosticsStore(store, "checker"); + const semantic = new Map([[main, []]]); + reusedLibDiagnostics(sessionProgram({ semantic }), names, supplied, moduleFile); + const script = recording({ [main]: "const total = 1;\n" }); + const program = sessionProgram({ semantic }); + expect(reusedLibDiagnostics(program, names, supplied, script)).not.toBeNull(); + expect(program.asked).toEqual([`checked ${main}`]); + expect(script.read).toEqual([main, lib, fallback]); + const [text] = [...store.entries.values()]; + expect(new Set(JSON.parse(text!).globals)).toEqual(new Set(["NaN", "Array", "process"])); + // A script that declares one of them runs the full check, and the entry keeps its names. + const clash = sessionProgram({ semantic }); + reusedLibDiagnostics(clash, names, supplied, files({ [main]: "declare var NaN: number;\n" })); + expect(clash.asked[0]).toBe("getGlobalDiagnostics"); + expect(store.entries.size).toBe(1); + expect(JSON.parse([...store.entries.values()][0]!).globals).not.toBeNull(); +}); diff --git a/packages/compiler/src/frontend/ts7/lib-diagnostics.ts b/packages/compiler/src/frontend/ts7/lib-diagnostics.ts index 827b337bd..30c6e81f0 100644 --- a/packages/compiler/src/frontend/ts7/lib-diagnostics.ts +++ b/packages/compiler/src/frontend/ts7/lib-diagnostics.ts @@ -10,7 +10,14 @@ * (getDiagnosticsOfCheckedFiles), and the semantic diagnostics merge in the * order the full check sorts them, by file name. An answer is stored only * when the full check reports no global diagnostics: the global diagnostics - * of checking the other files are then the full check's. */ + * of checking the other files are then the full check's. + * + * The global names the supplied files declare matter only to programs with + * scripts, and collecting them reads every supplied file's syntax tree, + * which a program of modules does not otherwise read (about 4 MB at the + * peak of a small build). An answer stored by such a program leaves them + * out; the first program with scripts that uses the answer collects them + * and stores them with it. */ import { createHash } from "node:crypto"; import { statSync } from "node:fs"; import type { Node, SourceFile } from "./ast-types.js"; @@ -25,7 +32,7 @@ export interface LibDiagnosticsStore { write(key: string, text: string): void; } -const SCHEMA = "scriptc.lib-diagnostics.v1"; +const SCHEMA = "scriptc.lib-diagnostics.v2"; let configured: { store: LibDiagnosticsStore; checker: string } | null = null; @@ -89,7 +96,14 @@ export function reusedLibDiagnostics( const key = entryKey(checker, options, libs); if (key === null) return null; const stored = readEntry(store, key, libs); - if (stored !== null && !collides(stored.globals)) { + // An answer stored without the supplied files' global names: a program + // with scripts collects them and stores them with the answer. + let globals = stored?.globals ?? null; + if (stored !== null && globals === null && scripts.length > 0) { + globals = suppliedGlobalNames(libs, sourceFile); + if (globals !== null) writeEntry(store, key, globals, Object.fromEntries(stored.files)); + } + if (stored !== null && (scripts.length === 0 || (globals !== null && !collides(globals)))) { const checked = program.checkedFileDiagnosticData(own); if (checked === null) return null; const byFile = new Map(stored.files); @@ -104,20 +118,35 @@ export function reusedLibDiagnostics( const semantic = program.diagnosticData("getSemanticDiagnostics"); // A server that cannot check only some files could never use the answer. if (global.length === 0 && stored === null && program.checkedFileDiagnosticData([]) !== null) { - const globals = suppliedGlobalNames(libs, sourceFile); - if (globals !== null && !collides(globals)) { + const names = scripts.length === 0 ? null : suppliedGlobalNames(libs, sourceFile); + if (scripts.length === 0 || (names !== null && !collides(names))) { const files: Record = {}; for (const name of libs) files[name] = program.diagnosticData("getSemanticDiagnostics", name); - try { - store.write(key, JSON.stringify({ schema: SCHEMA, globals: [...globals], files })); - } catch { - // Best effort: a failed write is a later miss. - } + writeEntry(store, key, names, files); } } return { semantic, global }; } +/** Stores an answer: the supplied files' diagnostics, and their global names + * when they were collected (null otherwise). Best effort: a failed write is + * a later miss. */ +function writeEntry( + store: LibDiagnosticsStore, + key: string, + globals: ReadonlySet | null, + files: Record, +): void { + try { + store.write( + key, + JSON.stringify({ schema: SCHEMA, globals: globals === null ? null : [...globals], files }), + ); + } catch { + // A failed write is a later miss. + } +} + /** Whether a file cannot add to or change the global declarations the * supplied files declare: a module with no `declare global`, no module * augmentation and no UMD `export as namespace` declaration. */ @@ -276,7 +305,7 @@ function readEntry( store: LibDiagnosticsStore, key: string, libs: readonly string[], -): { files: Map; globals: Set } | null { +): { files: Map; globals: Set | null } | null { let text: string | null; try { text = store.read(key); @@ -290,7 +319,11 @@ function readEntry( } catch { return null; } - if (entry.schema !== SCHEMA || entry.files === undefined || !Array.isArray(entry.globals)) + if ( + entry.schema !== SCHEMA || + entry.files === undefined || + (entry.globals !== null && !Array.isArray(entry.globals)) + ) return null; const files = new Map(); for (const name of libs) { @@ -298,7 +331,10 @@ function readEntry( if (!Array.isArray(list)) return null; files.set(name, list); } - return { files, globals: new Set(entry.globals.filter((name) => typeof name === "string")) }; + const globals = Array.isArray(entry.globals) + ? new Set(entry.globals.filter((name): name is string => typeof name === "string")) + : null; + return { files, globals }; } /** Each file's diagnostics (already in the checker's order) in the order the diff --git a/packages/compiler/src/frontend/ts7/semantic-model.ts b/packages/compiler/src/frontend/ts7/semantic-model.ts index 405f4775b..04fa8e637 100644 --- a/packages/compiler/src/frontend/ts7/semantic-model.ts +++ b/packages/compiler/src/frontend/ts7/semantic-model.ts @@ -64,7 +64,9 @@ export interface SemanticQuery { export class SemanticProgram { constructor(private readonly sourceFile: (path: string) => AstNode | undefined) {} getSourceFile(path: string): AstNode | undefined { - return this.sourceFile(path); + // Called as a plain function: the instance is not its receiver. + const sourceFile = this.sourceFile; + return sourceFile(path); } } diff --git a/packages/compiler/src/frontend/ts7/source-parser.ts b/packages/compiler/src/frontend/ts7/source-parser.ts index f9029774c..bbb6cae7a 100644 --- a/packages/compiler/src/frontend/ts7/source-parser.ts +++ b/packages/compiler/src/frontend/ts7/source-parser.ts @@ -42,7 +42,9 @@ export class Ts7SourceParser { } private connect(): Ts7Api { - return this.createApi({ + // Called as a plain function: the instance is not its receiver. + const createApi = this.createApi; + return createApi({ cwd: this.cwd, fs: { readFile: (path) => this.files.get(tsgoPath(path)) ?? null, diff --git a/packages/compiler/src/ir/callback-specialization.ts b/packages/compiler/src/ir/callback-specialization.ts index 6038ccaa5..4764754af 100644 --- a/packages/compiler/src/ir/callback-specialization.ts +++ b/packages/compiler/src/ir/callback-specialization.ts @@ -130,10 +130,7 @@ export function specializeCallbackCalls( const { written, closureWritten } = rebindings(mod); const copies = new Map(); const candidates = new Map(); - let totalNodes = 0; for (const fn of mod.functions) { - const nodes = countNodes(fn); - totalNodes += nodes; if ( !(fn.ownsPrototype || fn.name.startsWith("%arr.")) || fn.name === mod.entry || @@ -142,10 +139,11 @@ export function specializeCallbackCalls( fn.captures !== undefined || fn.classCaptures?.length || fn.fastRead !== undefined || - fn.speculativeDispatch || - nodes > MAX_FUNCTION_NODES + fn.speculativeDispatch ) continue; + const nodes = countNodes(fn); + if (nodes > MAX_FUNCTION_NODES) continue; const rebound = written.get(fn.name)!; const slots: number[] = []; fn.params.forEach((param, index) => { @@ -165,19 +163,30 @@ export function specializeCallbackCalls( const definitions = new Map>(); const globalIds = new Set(mod.globals?.map((global) => global.id)); const globalWrites = new Map(); + // The sum of countNodes over every function, counted by the walk below. + let totalNodes = 0; for (const fn of mod.functions) { + let nodes = 0; const values = new Map(); const counts = new Map(); const record = (id: string, value: IrExpr | null, weight: number): void => { counts.set(id, (counts.get(id) ?? 0) + weight); - if (value) values.set(id, [...(values.get(id) ?? []), value]); + if (value) { + const list = values.get(id); + if (list === undefined) values.set(id, [value]); + else list.push(value); + } }; everyStmtList(fn.body, { stmt: (stmt) => { + nodes++; if (stmt.kind === "varDecl") record(stmt.localId, stmt.init, stmt.init ? 1 : 0); if (stmt.kind === "assign") { - if (globalIds.has(stmt.localId)) - globalWrites.set(stmt.localId, [...(globalWrites.get(stmt.localId) ?? []), stmt.value]); + if (globalIds.has(stmt.localId)) { + const list = globalWrites.get(stmt.localId); + if (list === undefined) globalWrites.set(stmt.localId, [stmt.value]); + else list.push(stmt.value); + } record(stmt.localId, stmt.value, 1); } if (stmt.kind === "forOf") record(stmt.localId, null, 2); @@ -186,6 +195,7 @@ export function specializeCallbackCalls( return true; }, expr: (expr) => { + nodes++; if (expr.kind === "assignExpr" || expr.kind === "incDec") { record(expr.localId, null, 2); if (globalIds.has(expr.localId)) globalWrites.set(expr.localId, []); @@ -208,6 +218,7 @@ export function specializeCallbackCalls( ) single.set(id, list[0]!); definitions.set(fn.name, single); + totalNodes += Math.min(nodes, MAX_FUNCTION_NODES + 1); } const globalDefinitions = new Map(); for (const global of mod.globals ?? []) diff --git a/packages/compiler/src/ir/capture-values.ts b/packages/compiler/src/ir/capture-values.ts index 779ca1b76..bcc587f1b 100644 --- a/packages/compiler/src/ir/capture-values.ts +++ b/packages/compiler/src/ir/capture-values.ts @@ -538,7 +538,7 @@ export class CaptureFlow { facts.callees.add(e.callee.localId); break; } - return everyExprChild(e, expr, (s) => stmt(s, false)); + return everyExprChild(e, expr, nested); }; // `split` mirrors rewrite(): only statement lists reached through // ordinary nesting from the body are expanded. Switch cases share one @@ -599,8 +599,10 @@ export class CaptureFlow { list(s.body, split) ); } - return everyStmtChild(s, expr, (child) => stmt(child, false)); + return everyStmtChild(s, expr, nested); }; + // Statements nested in expressions and in other statements' heads. + const nested = (s: IrStmt): boolean => stmt(s, false); list(fn.body, true); return facts; } diff --git a/packages/compiler/src/ir/constant-globals.ts b/packages/compiler/src/ir/constant-globals.ts index f18764223..76b086f40 100644 --- a/packages/compiler/src/ir/constant-globals.ts +++ b/packages/compiler/src/ir/constant-globals.ts @@ -36,7 +36,11 @@ export function foldConstantGlobals(mod: IrModule): IrModule { if (value && (value.kind === "numLit" || value.kind === "boolLit")) values.set(id, value); else values.delete(id); }; - for (const fn of mod.functions) + // Per function, the candidates it reads: the rewrite below visits only the + // functions that read a constant. + const readsByFunction = new Map>(); + for (const fn of mod.functions) { + let read: Set | undefined; everyStmtList(fn.body, { // Every node other than a read that names the binding is a write // (assignments, loop and catch bindings, compound updates); only a @@ -48,16 +52,21 @@ export function foldConstantGlobals(mod: IrModule): IrModule { return true; }, expr: (e) => { - if (e.kind !== "varRef" && "localId" in e && typeof e.localId === "string") - write(e.localId, null); + if (e.kind === "varRef") { + if (candidates.has(e.localId)) { + if (read === undefined) read = new Set(); + read.add(e.localId); + } + } else if ("localId" in e && typeof e.localId === "string") write(e.localId, null); return true; }, }); + if (read !== undefined) readsByFunction.set(fn, read); + } const constants = new Map(); for (const [id, value] of values) if (writes.get(id) === 1) constants.set(id, value); if (constants.size === 0) return mod; - const reads = (e: IrExpr): boolean => !(e.kind === "varRef" && constants.has(e.localId)); const rewriteExpr = (e: IrExpr): IrExpr => { if (e.kind === "varRef") { const value = constants.get(e.localId); @@ -68,7 +77,8 @@ export function foldConstantGlobals(mod: IrModule): IrModule { const rewriteStmt = (s: IrStmt): IrStmt => mapStmtChildren(s, rewriteExpr, rewriteStmt); let changed = false; const functions = mod.functions.map((fn): IrFunction => { - if (everyStmtList(fn.body, { stmt: () => true, expr: reads })) return fn; + const read = readsByFunction.get(fn); + if (read === undefined || ![...read].some((id) => constants.has(id))) return fn; changed = true; return { ...fn, body: fn.body.map(rewriteStmt) }; }); diff --git a/packages/compiler/src/ir/function-references.test.ts b/packages/compiler/src/ir/function-references.test.ts index 743422562..970a3da8f 100644 --- a/packages/compiler/src/ir/function-references.test.ts +++ b/packages/compiler/src/ir/function-references.test.ts @@ -157,10 +157,12 @@ const MODULE_FIELDS: Record>, Role> = { "classes[].errorNameAfter": "other", "classes[].prototypeDataHelper": "reference", "classes[].instancePrototypeHelper": "reference", + "classes[].stringTagHelper": "reference", "classes[].localCaptures[].name": "other", "classes[].localCaptures[].localId": "other", "classes[].symbolFields[].field": "other", "classes[].symbolFields[].globalId": "other", + "classes[].symbolFields[].wellKnown": "other", "classes[].fields[].name": "other", "classes[].methods[]": "method", "classes[].prototypeNames[]": "other", @@ -289,6 +291,10 @@ const REFERENCE_FIXTURES: Record IrModule> = { ...module(), classes: [{ name: "%m0.Cell", fields: [], instancePrototypeHelper: TARGET, loc }], }), + "classes[].stringTagHelper": () => ({ + ...module(), + classes: [{ name: "%m0.Cell", fields: [], stringTagHelper: TARGET, loc }], + }), "lib.exports[].fnName": () => ({ ...module(), lib: { diff --git a/packages/compiler/src/ir/function-references.ts b/packages/compiler/src/ir/function-references.ts index db474e9bb..6696a3c11 100644 --- a/packages/compiler/src/ir/function-references.ts +++ b/packages/compiler/src/ir/function-references.ts @@ -24,6 +24,7 @@ export function moduleFunctionReferences(mod: IrModule): string[] { for (const cls of mod.classes ?? []) { if (cls.prototypeDataHelper !== undefined) names.push(cls.prototypeDataHelper); if (cls.instancePrototypeHelper !== undefined) names.push(cls.instancePrototypeHelper); + if (cls.stringTagHelper !== undefined) names.push(cls.stringTagHelper); } return names; } diff --git a/packages/compiler/src/ir/int32-slots.test.ts b/packages/compiler/src/ir/int32-slots.test.ts index 0739bbb4f..b94dee341 100644 --- a/packages/compiler/src/ir/int32-slots.test.ts +++ b/packages/compiler/src/ir/int32-slots.test.ts @@ -523,6 +523,12 @@ test("counting-down recursion proves its parameter from the call-site ranges", ( ); const rising = analyzeInt32Slots(mod([], [up, fn("user", [], [stmt(call("up", [num(-18)]))])])); expect(rising.facts("up").params?.get("d")).toEqual({ min: -18, max: 0 }); + // The same with the caller first, so the fixpoint analyzes it after the + // parameter dropped: the narrowing still sees its argument. + const callerFirst = analyzeInt32Slots( + mod([], [fn("user", [], [stmt(call("up", [num(-18)]))]), up]), + ); + expect(callerFirst.facts("up").params?.get("d")).toEqual({ min: -18, max: 0 }); // A negative start counts down past the smallest int32. const negative = analyzeInt32Slots(mod([], [count, even, odd, user([18, -1])])); diff --git a/packages/compiler/src/ir/int32-slots.ts b/packages/compiler/src/ir/int32-slots.ts index 06a173c1a..1616a2a77 100644 --- a/packages/compiler/src/ir/int32-slots.ts +++ b/packages/compiler/src/ir/int32-slots.ts @@ -1208,8 +1208,11 @@ export function analyzeInt32Slots(mod: IrModule, inputs: Int32SlotInputs = {}): // Each function's parameter and result writes under its latest analysis: // at the fixpoint, the ranges of every write under the final facts. const lastWrites = new Map>(); - while (queue.length) { - const fn = functions.get(queue.pop()!)!; + // First in, first out: a function whose slots change while others wait + // goes after them, so a caller of many callees is analyzed again once + // for all of their changes, not once for each. + for (let head = 0; head < queue.length; head++) { + const fn = functions.get(queue[head]!)!; queued.delete(fn.name); const params = slots.facts(fn.name).params; if (params) for (const id of params.keys()) reads(`param:${fn.name}\0${id}`, fn.name); @@ -1663,8 +1666,14 @@ function narrowSlotRanges( // The ranges every function was last analyzed under. let analyzed: Map = new Map(proven); let verified: Map = new Map(proven); - // Functions whose recorded writes predate their current facts. + // Functions whose recorded writes predate their current facts: those + // whose parameters rangedParameters proved, and their callers, which + // wrote nothing into those parameters while they had no fact. const dirty = new Set(changed); + for (const name of changed) { + const callers = readersOf(`ret:${name}`); + if (callers) for (const caller of callers) dirty.add(caller); + } // The narrowing operator: a bound moves at most once from its proven // value (a revived result's from int32), so recursion that shifts its // argument (`f(d - 1)`) cannot walk a bound down one step per round. diff --git a/packages/compiler/src/ir/integer-loop-facts.ts b/packages/compiler/src/ir/integer-loop-facts.ts index 8807212dc..d66153b19 100644 --- a/packages/compiler/src/ir/integer-loop-facts.ts +++ b/packages/compiler/src/ir/integer-loop-facts.ts @@ -152,7 +152,7 @@ export function boundedIntegerLoopFacts( e.receiver.kind === "varRef" && stable(e.receiver.localId) ) - return { min: 0, max: Number.MAX_SAFE_INTEGER }; + return BYTES_LENGTH_RANGE; // Every evaluation of an array length lies in its range, so the // condition bounds each pass even when the body resizes the array. if (isArrayLength(e)) return ARRAY_LENGTH_RANGE; @@ -225,6 +225,12 @@ export function boundedIntegerLoopFacts( return result; } +/** Every length, byteLength and byteOffset of a typed array, DataView or + * Buffer: each counts elements or bytes of one allocation, and every + * supported target addresses less than 2^48 bytes. Counters and offsets + * derived from them then stay exact integers far below 2^53. */ +export const BYTES_LENGTH_RANGE: IntegerRange = { min: 0, max: 2 ** 48 }; + /** Every length an array can have: SCR_ARR_MAX_LENGTH (scr_array.c). */ export const ARRAY_LENGTH_RANGE: IntegerRange = { min: 0, max: 4294967295 }; @@ -353,6 +359,13 @@ export function guardedLoopCounterFacts( stable(e.receiver.localId) ) return { min: 0, max: STRING_MAX_UNITS }; + if ( + e.kind === "bytesIntrinsic" && + (e.method === "length" || e.method === "byteLength") && + e.receiver.kind === "varRef" && + stable(e.receiver.localId) + ) + return BYTES_LENGTH_RANGE; // An array length can change on any pass, but never leaves its range, // which is all a ceiling needs. if (isArrayLength(e)) return ARRAY_LENGTH_RANGE; @@ -402,9 +415,84 @@ export function guardedLoopCounterFacts( if (Number.isSafeInteger(start.min) && Number.isSafeInteger(max)) result.set(id, { min: start.min, max }); } + // Companion counters: a binding the loop changes only by positive literal + // increments that no condition bounds (`out[k++] = ...` beside + // `while (i < n)`). A bounded counter that every pass advances before it + // can continue limits the number of passes, and each pass adds at most + // the companion's increments in the body. Increments inside nested loops + // can repeat within a pass, so those companions are not bounded. + let passes = Infinity; + for (const [id, range] of result) { + const hi = ceiling.get(id)!; + const step = guaranteedStep(loop.body, id); + if (step <= 0) continue; + passes = Math.min(passes, Math.floor((hi - range.min) / step) + 1); + } + if (!Number.isSafeInteger(passes) || passes < 0) return result; + const repeated = new Set(); + for (const inner of nested) for (const id of writtenLocals(inner.body)) repeated.add(id); + for (const [id, total] of budget) { + const local = locals.get(id), + start = initial.get(id); + if (result.has(id) || refused.has(id) || repeated.has(id) || ceiling.has(id)) continue; + if (!local || local.boxed || local.tdz || !start) continue; + const max = start.max + passes * total; + if (Number.isSafeInteger(start.min) && Number.isSafeInteger(max)) + result.set(id, { min: start.min, max }); + } return result; } +/** The increments of counter `id` that every pass of `body` makes before it + * can start another pass: those of the leading statements up to the first + * one that can continue the loop or holds a nested region (0 when there is + * none). A pass that leaves the loop earlier starts no further pass, so the + * count bounds the passes that continue. */ +function guaranteedStep(body: readonly IrStmt[], id: string): number { + let step = 0; + for (const s of body) { + if (s.kind === "assign" && s.localId === id) { + const delta = increment(id, s.value); + if (delta === null || delta <= 0) return 0; + step += delta; + continue; + } + if (s.kind === "exprStmt" && s.expr.kind === "incDec" && s.expr.localId === id) { + if (s.expr.op !== "+") return 0; + step += 1; + continue; + } + if (mayContinue(s)) break; + } + return step; +} + +/** Whether `s` can start another pass of the enclosing loop before its + * following statements run: it holds a `continue`, a loop or another + * region whose control flow is not walked here. */ +function mayContinue(s: IrStmt): boolean { + let found = false; + const stmt = (x: IrStmt): boolean => { + if ( + x.kind === "continue" || + x.kind === "for" || + x.kind === "while" || + x.kind === "doWhile" || + x.kind === "forOf" || + x.kind === "tryCatch" || + x.kind === "switch" || + (x.kind === "block" && !!x.labels?.length) + ) { + found = true; + return false; + } + return everyStmtChild(x, expr, stmt); + }; + const expr = (e: IrExpr): boolean => everyExprChild(e, expr, stmt); + stmt(s); + return found; +} + /** The largest value counter `id` takes in one pass of `body`, which starts * at most at `entry`. The caller has checked that the body changes the * counter only by positive literal increments outside switch, exception and diff --git a/packages/compiler/src/ir/integer-ranges.test.ts b/packages/compiler/src/ir/integer-ranges.test.ts index 5ae04d28f..318ff2c09 100644 --- a/packages/compiler/src/ir/integer-ranges.test.ts +++ b/packages/compiler/src/ir/integer-ranges.test.ts @@ -828,6 +828,72 @@ test("a while condition on a string's length bounds a counter, and guarded incre expect(run((inside) => [observe(inside), bump, rebound]).after).toBeNull(); }); +test("a while counter every pass advances bounds the companions the loop increments", () => { + // pos = 0; k = 0; while (pos < text.length) { pos++; observe(k); if (unknown === 1) k++; k++; } observe(k) + const text: IrExpr = { loc, kind: "varRef", localId: "text", type: STRING }; + const length: IrExpr = { + loc, + kind: "strIntrinsic", + method: "length", + receiver: text, + args: [], + type: F64, + }; + const set = (localId: string, value: IrExpr): IrStmt => ({ loc, kind: "assign", localId, value }); + const bump = (localId: string): IrStmt => ({ + loc, + kind: "exprStmt", + expr: { loc, kind: "incDec", op: "+", prefix: false, localId, type: F64 }, + }); + const maybe = (then: IrStmt[]): IrStmt => ({ + loc, + kind: "if", + cond: condition("===", ref("unknown"), num(1)), + then, + else_: null, + }); + const run = (body: (inside: IrExpr) => IrStmt[]) => { + const inside = ref("k"), + after = ref("k"); + const loop: IrStmt = { + loc, + kind: "while", + cond: condition("<", ref("pos"), length), + body: body(inside), + }; + const f = fn([set("pos", num(0)), set("k", num(0)), loop, observe(after)]); + f.locals.push( + { id: "pos", name: "pos", type: F64, mutable: true }, + { id: "k", name: "k", type: F64, mutable: true }, + { id: "text", name: "text", type: STRING, mutable: false }, + ); + const facts = analyzeIntegerRangeFacts(f); + return { + inside: facts.ranges.get(inside), + after: facts.ranges.get(after), + loop: facts.loopRanges.get(loop)?.get("k"), + }; + }; + // At most 2^31 - 1 passes, each adding at most 2. + const bounded = { min: 0, max: 4294967294 }; + expect(run((inside) => [bump("pos"), observe(inside), maybe([bump("k")]), bump("k")])).toEqual({ + inside: bounded, + after: bounded, + loop: bounded, + }); + // A pass that can continue before advancing the counter, or an increment a + // nested loop repeats, bounds nothing. + const skip: IrStmt = maybe([{ loc, kind: "continue" }]); + expect(run((inside) => [skip, bump("pos"), observe(inside), bump("k")]).after).toBeNull(); + const repeat: IrStmt = { + loc, + kind: "while", + cond: condition("===", ref("unknown"), num(1)), + body: [bump("k")], + }; + expect(run((inside) => [bump("pos"), observe(inside), repeat]).after).toBeNull(); +}); + test("a nested while loop may advance a counter its own condition bounds", () => { // while (pos < text.length) { observe(pos); while (pos < text.length && unknown === 1) pos++; pos += 2; } const text: IrExpr = { loc, kind: "varRef", localId: "text", type: STRING }; @@ -1323,7 +1389,7 @@ test("a for loop bounds cursors it resets and copies, and their writes keep the } }); -test("a cursor of a loop over a typed array keeps its writes exact up to 2^53 - 1", () => { +test("a cursor of a loop over a typed array keeps its writes within the largest length", () => { // for (x = 0; x < bytes.length; x++) changes = changes + 1; const bytes: IrExpr = { loc, @@ -1355,7 +1421,7 @@ test("a cursor of a loop over a typed array keeps its writes exact up to 2^53 - { id: "changes", name: "changes", type: F64, mutable: true }, { id: "bytes", name: "bytes", type: { kind: "bytes", elem: "u8" }, mutable: false }, ); - // The sum of the header range passes 2^53 - 1; the write takes the loop - // range instead. - expect(analyzeIntegerRanges(f).get(counted)).toEqual({ min: 0, max: Number.MAX_SAFE_INTEGER }); + // The sum of the header range passes the largest typed array length; the + // write takes the loop range instead. + expect(analyzeIntegerRanges(f).get(counted)).toEqual({ min: 1, max: 2 ** 48 }); }); diff --git a/packages/compiler/src/ir/integer-ranges.ts b/packages/compiler/src/ir/integer-ranges.ts index 683ceab75..1909040c4 100644 --- a/packages/compiler/src/ir/integer-ranges.ts +++ b/packages/compiler/src/ir/integer-ranges.ts @@ -2,6 +2,7 @@ import type { IrExpr, IrFunction, IrStmt } from "./ir.js"; import { everyExprChild, everyStmtChild, everyStmtList } from "./traverse.js"; import { byteNumberAccess, byteNumberRange } from "./byte-numbers.js"; import { + BYTES_LENGTH_RANGE, boundedIntegerLoopFacts, guardedLoopCounterFacts, integerPathFallsThrough, @@ -821,7 +822,7 @@ export function analyzeIntegerRangeFacts( const numeric = byteNumberAccess(e); if (numeric && !numeric.write) range = byteNumberRange(numeric); else if (e.method === "length" || e.method === "byteLength" || e.method === "byteOffset") - range = { min: 0, max: Number.MAX_SAFE_INTEGER }; + range = BYTES_LENGTH_RANGE; else if (e.method === "get" && e.invalidNaN !== true && e.receiver.type.kind === "bytes") { const elem = e.receiver.type.elem; if (elem === "u8" || elem === "u8c") range = { min: 0, max: 255 }; @@ -1075,6 +1076,19 @@ export function analyzeIntegerRangeFacts( // inside and after the loop. const guarded = s.kind === "while" ? guardedLoopCounterFacts(s, loopLocals, facts) : noInvariants; + // The same bounds hold on entry and at every write in the loop, + // which is what a proven integer loop needs (loopRanges). A loop + // analyzed again keeps the bindings every analysis bounds. + if (s.kind === "while") { + const previous = loopRanges.get(s); + if (!previous) loopRanges.set(s, new Map(guarded)); + else + for (const [id, range] of previous) { + const other = guarded.get(id); + if (other) previous.set(id, union(range, other)); + else previous.delete(id); + } + } const loop = new Map(facts); havocWith(loop, [s], loop, guarded); for (const [id, range] of guarded) set(loop, id, range); diff --git a/packages/compiler/src/ir/ir.ts b/packages/compiler/src/ir/ir.ts index c090a5cd3..353cf2715 100644 --- a/packages/compiler/src/ir/ir.ts +++ b/packages/compiler/src/ir/ir.ts @@ -1518,6 +1518,9 @@ export interface IrClassDef { prototypeDataHelper?: string; /** Native instance to its actual prototype, including factory captures and subclasses. */ instancePrototypeHelper?: string; + /** Native instance to the string its inherited Symbol.toStringTag getter + * answers, read by the runtime for an instance seen as `unknown`. */ + stringTagHelper?: string; /** Public JavaScript fields record their creation in the shared property * bag. Its descriptors preserve presence and insertion order independently * of native layout order; field values remain in their native slots. */ @@ -1531,8 +1534,10 @@ export interface IrClassDef { * dynamic write keeps `name` and `message` where the bag recorded them * (scr_error_dyn_follow_bag). */ errorBagOrder?: boolean; - /** Stable module symbol identities for public instance layout fields. */ - symbolFields?: { field: string; globalId: string }[]; + /** Stable symbol identities for public instance layout fields: the + * module global holding the key, or the name of the well-known symbol + * (`toStringTag` for `Symbol.toStringTag`). */ + symbolFields?: ({ field: string } & ({ globalId: string } | { wellKnown: string }))[]; /** RUNTIME-PROVIDED class (the builtin Error hierarchy): the struct, RC * helpers, and vtable live in the runtime (ScrError / scr_error_*), so * backends emit no definitions for it — only the preorder-interval diff --git a/packages/compiler/src/ir/js-ic.test.ts b/packages/compiler/src/ir/js-ic.test.ts index f71a1e9db..f5391b83e 100644 --- a/packages/compiler/src/ir/js-ic.test.ts +++ b/packages/compiler/src/ir/js-ic.test.ts @@ -126,6 +126,140 @@ test("property helpers whose class branches only test capsules are cache sites", expect(sites.site("%dyn.class.property.1")).toEqual({ kind: "set", key: "y" }); }); +test("bags converted between dyn and jsval are still the receiver", () => { + // A program that declares a class returns its bags as jsvals, and the + // helpers read them through js.toDyn. + const toDyn = (value: IrExpr): IrExpr => ({ + kind: "libCall", + fn: "js.toDyn", + args: [value], + type: DYN, + loc, + }); + const fromDyn = (value: IrExpr): IrExpr => ({ + kind: "libCall", + fn: "js.fromDyn", + args: [value], + type: { kind: "jsval" }, + loc, + }); + const jsvalBag = helper( + "%dyn.class.readPropertiesOrEmpty.js", + ["v"], + [capsuleBranch("v"), ret(fromDyn(ref("v")))], + ); + const staticBag = helper("%dyn.class.staticProperties", ["v"], [ret(ref("v"))]); + const getter = getHelper( + "%dyn.class.property.0", + "x", + [capsuleBranch("p.0")], + call(staticBag.name, toDyn(call(jsvalBag.name, ref("p.0")))), + ); + const setter = setHelper("%dyn.class.property.1", "y"); + const write = setter.body[0] as Extract; + const keySet = write.expr as Extract; + keySet.args[0] = toDyn(call(jsvalBag.name, ref("p.0"))); + // A converted value that is not the receiver stays a helper call. + const foreign = getHelper( + "%dyn.class.property.2", + "x", + [], + toDyn(fromDyn({ kind: "dynObjLit", type: DYN, loc } as IrExpr)), + ); + const sites = sitesOf(jsvalBag, staticBag, getter, setter, foreign); + expect(sites.site("%dyn.class.property.0")).toEqual({ kind: "get", key: "x" }); + expect(sites.site("%dyn.class.property.1")).toEqual({ kind: "set", key: "y" }); + expect(sites.site("%dyn.class.property.2")).toBeNull(); +}); + +test("a bag helper may first rebind its parameter to a bag of it", () => { + // Programs with subclasses normalize the value before the class branches. + const normalize = helper("%dyn.class.normalize", ["v"], [capsuleBranch("v"), ret(ref("v"))]); + const rebind = (value: IrExpr): IrStmt => ({ kind: "assign", localId: "v", value, loc }); + const normalized = helper( + "%dyn.class.readPropertiesOrEmpty.normalized", + ["v"], + [rebind(call(normalize.name, ref("v"))), capsuleBranch("v"), ret(ref("v"))], + ); + const replaced = helper( + "%dyn.class.readPropertiesOrEmpty.replaced", + ["v"], + [rebind({ kind: "dynObjLit", type: DYN, loc } as IrExpr), ret(ref("v"))], + ); + const sites = sitesOf( + normalize, + normalized, + replaced, + getHelper("%dyn.class.property.0", "x", [], call(normalized.name, ref("p.0"))), + getHelper("%dyn.class.property.1", "x", [], call(replaced.name, ref("p.0"))), + // The property helper itself normalizes its receiver first, too. + getHelper("%dyn.class.property.2", "x", [ + { kind: "assign", localId: "p.0", value: call(normalize.name, ref("p.0")), loc }, + capsuleBranch("p.0"), + ]), + ); + expect(sites.site("%dyn.class.property.0")).toEqual({ kind: "get", key: "x" }); + expect(sites.site("%dyn.class.property.1")).toBeNull(); + expect(sites.site("%dyn.class.property.2")).toEqual({ kind: "get", key: "x" }); +}); + +test("keyed helpers may test capsules between the key's coercion and the read", () => { + const read = (object: IrExpr, key: string): IrExpr => ({ + kind: "libCall", + fn: "js.fromDyn", + args: [{ kind: "dynKeyGet", value: object, key: ref(key), type: DYN, loc }], + type: { kind: "jsval" }, + loc, + }); + const guard = (test: "symbol" | "nullish", tested: string, object: IrExpr): IrStmt => ({ + kind: "if", + cond: { kind: "dynTest", test, value: ref(tested), type: BOOL, loc }, + then: [ret(read(object, "p.key"))], + else_: null, + loc, + }); + const keyed = (name: string, between: IrStmt[]): IrFunction => + helper( + name, + ["p.0", "p.key"], + [ + capsuleBranch("p.0"), + guard("symbol", "p.key", call(identityBag.name, ref("p.0"))), + guard("nullish", "p.0", ref("p.0")), + { + kind: "varDecl", + localId: "key.string", + init: { + kind: "libCall", + fn: "dyn.toStringCoerce", + args: [ref("p.key")], + type: STRING, + loc, + }, + loc, + }, + ...between, + ret(read(call(identityBag.name, ref("p.0")), "key.string")), + ], + ["key.string"], + ); + const errorBranch: IrStmt = { + kind: "if", + cond: { kind: "dynTest", test: "error", value: ref("p.0"), type: BOOL, loc }, + then: [ret(ref("p.0"))], + else_: null, + loc, + }; + const sites = sitesOf( + keyed("%dyn.class.computed.0", []), + keyed("%dyn.class.computed.1", [capsuleBranch("p.0"), capsuleBranch("p.0", "dyn.classIs")]), + keyed("%dyn.class.computed.2", [errorBranch]), + ); + expect(sites.site("%dyn.class.computed.0")).toEqual({ kind: "keyed" }); + expect(sites.site("%dyn.class.computed.1")).toEqual({ kind: "keyed" }); + expect(sites.site("%dyn.class.computed.2")).toBeNull(); +}); + test("any other prefix or tail keeps the helper call", () => { const errorBranch: IrStmt = { kind: "if", @@ -237,3 +371,57 @@ test("bag helpers that exit early for values no class branch matches are still t expect(sites.site("%dyn.class.property.2")).toBeNull(); expect(sites.site("%dyn.class.property.3")).toBeNull(); }); + +test("helpers that answer plain values first with the same operation are cache sites", () => { + const negated = (test: "classCapsule" | "funcKind"): IrExpr => ({ + kind: "dynTest", + test, + negated: true, + value: ref("p.0"), + type: BOOL, + loc, + }); + const exit = (body: IrStmt[], test: IrExpr = negated("classCapsule")): IrStmt => ({ + kind: "if", + cond: test, + then: [{ kind: "if", cond: negated("funcKind"), then: body, else_: null, loc }], + else_: null, + loc, + }); + const store = (key: string): IrStmt[] => [ + { + kind: "exprStmt", + expr: { + kind: "libCall", + fn: "dyn.keySet", + args: [ref("p.0"), str(key), ref("p.1")], + type: VOID, + loc, + }, + loc, + }, + ret(null), + ]; + const load = (key: string): IrStmt[] => [ + ret({ kind: "dynKeyGet", value: ref("p.0"), key: str(key), type: DYN, loc }), + ]; + const sites = sitesOf( + setHelper("%dyn.class.property.0", "x", [exit(store("x")), capsuleBranch("p.0")]), + getHelper("%dyn.class.property.1", "x", [exit(load("x")), capsuleBranch("p.0")]), + // An exit for another key, or one plain values do not take. + setHelper("%dyn.class.property.2", "x", [exit(store("y"))]), + setHelper("%dyn.class.property.3", "x", [ + exit(store("x"), { + kind: "dynTest", + test: "classCapsule", + value: ref("p.0"), + type: BOOL, + loc, + }), + ]), + ); + expect(sites.site("%dyn.class.property.0")).toEqual({ kind: "set", key: "x" }); + expect(sites.site("%dyn.class.property.1")).toEqual({ kind: "get", key: "x" }); + expect(sites.site("%dyn.class.property.2")).toBeNull(); + expect(sites.site("%dyn.class.property.3")).toBeNull(); +}); diff --git a/packages/compiler/src/ir/js-ic.ts b/packages/compiler/src/ir/js-ic.ts index 752316db3..48019636a 100644 --- a/packages/compiler/src/ir/js-ic.ts +++ b/packages/compiler/src/ir/js-ic.ts @@ -61,13 +61,68 @@ export class JsIcSites { if (fn.params.some((p) => p.type.kind !== "dyn")) return null; const receiver = fn.params[0]?.localId; if (receiver === undefined) return null; + const second = fn.params[1]?.localId; + const exits: JsIcSite[] = []; let i = 0; - while (i < fn.body.length && this.capsuleBranch(fn.body[i]!, receiver)) i++; + for (; i < fn.body.length; i++) { + const s = fn.body[i]!; + if (this.capsuleBranch(s, receiver) || this.rebinding(s, receiver)) continue; + const exit = this.plainExit(s, receiver, second); + if (exit === null) break; + exits.push(exit); + } const tail = fn.body.slice(i); - if (fn.params.length === 1) return this.getTail(tail, receiver); - if (fn.params.length !== 2) return null; - const second = fn.params[1]!.localId; - return this.setTail(tail, receiver, second) ?? this.keyedTail(tail, receiver, second); + let site: JsIcSite | null; + if (fn.params.length === 1) site = this.getTail(tail, receiver); + else if (fn.params.length !== 2 || second === undefined) return null; + else site = this.setTail(tail, receiver, second) ?? this.keyedTail(tail, receiver, second); + if (site === null || site.kind === "keyed") return exits.length === 0 ? site : null; + // An exit answers plain values with the operation the site caches. + return exits.every((exit) => exit.kind === site.kind && exit.key === site.key) ? site : null; + } + + /** `if (!classCapsule(receiver)) { [if (!funcKind(receiver))] OP }`, no + * else: an exit that runs the helper's generic operation directly on a + * value no class table matches. OP is `return [js.fromDyn](dynKeyGet(R, + * K))` or `dyn.keySet(R, K, value); return`, with R the receiver (or a + * bag of it). */ + private plainExit(s: IrStmt, receiver: string, value: string | undefined): JsIcSite | null { + const negated = (e: IrExpr, test: "classCapsule" | "funcKind"): boolean => + e.kind === "dynTest" && e.test === test && e.negated === true && isVar(e.value, receiver); + if (s.kind !== "if" || s.else_ !== null || !negated(s.cond, "classCapsule")) return null; + let body = s.then; + const inner = body[0]; + if ( + body.length === 1 && + inner?.kind === "if" && + inner.else_ === null && + negated(inner.cond, "funcKind") + ) + body = inner.then; + const [first, ret] = body; + if (body.length === 1 && first?.kind === "return") { + const read = unwrapFromDyn(first.value); + if ( + read?.kind !== "dynKeyGet" || + read.key.kind !== "strLit" || + !this.bagOf(read.value, receiver) + ) + return null; + return { kind: "get", key: read.key.value }; + } + if ( + body.length !== 2 || + first?.kind !== "exprStmt" || + ret?.kind !== "return" || + ret.value !== null + ) + return null; + const call = first.expr; + if (call.kind !== "libCall" || call.fn !== "dyn.keySet" || call.args.length !== 3) return null; + const [bag, key, stored] = call.args; + if (!bag || !this.bagOf(bag, receiver) || key?.kind !== "strLit") return null; + if (value === undefined || !isVar(stored, value)) return null; + return { kind: "set", key: key.value }; } /** `varDecl bag = BAG(receiver); return [js.fromDyn](bag === receiver ? @@ -109,10 +164,14 @@ export class JsIcSites { /** `if (typeof key === "symbol") return dynKeyGet(BAG(receiver), key); * if (receiver == null) return dynKeyGet(receiver, key); * const s = String(key); return dynKeyGet(BAG(receiver), s)`, each read - * possibly under js.fromDyn. */ + * possibly under js.fromDyn. Capsule branches may precede the final read: + * a program that declares classes looks the string key up in each class's + * key table there. */ private keyedTail(tail: IrStmt[], receiver: string, key: string): JsIcSite | null { - const [symbol, nullish, decl, ret] = tail; - if (tail.length !== 4) return null; + const [symbol, nullish, decl] = tail; + const ret = tail[tail.length - 1]; + if (tail.length < 4) return null; + if (!tail.slice(3, -1).every((s) => this.capsuleBranch(s, receiver))) return null; if (!this.guard(symbol, "symbol", key, (read) => this.bagOf(read, receiver), key)) return null; if (!this.guard(nullish, "nullish", receiver, (read) => isVar(read, receiver), key)) return null; @@ -159,9 +218,12 @@ export class JsIcSites { } /** Whether `e` is the receiver itself for every ordinary object or array: - * the receiver, or a chain of property-bag helpers applied to it. */ + * the receiver, or a chain of property-bag helpers applied to it. A + * conversion between the dyn and jsval forms keeps the object it holds. */ private bagOf(e: IrExpr, receiver: string): boolean { if (isVar(e, receiver)) return true; + if (e.kind === "libCall" && (e.fn === "js.toDyn" || e.fn === "js.fromDyn")) + return e.args.length === 1 && this.bagOf(e.args[0]!, receiver); return ( e.kind === "call" && e.args.length === 1 && @@ -182,6 +244,13 @@ export class JsIcSites { return ret.kind === "return" && ret.value !== null && this.bagOf(ret.value, param); } + /** `param = `, such as the subclass normalization + * `value = %dyn.class.normalize(value)`, which leaves an ordinary object + * or array in `param`. */ + private rebinding(s: IrStmt, param: string): boolean { + return s.kind === "assign" && s.localId === param && this.bagOf(s.value, param); + } + /** A property-bag helper that returns its argument unless a capsule * branch is taken. */ private identityHelper(name: string): boolean { @@ -204,7 +273,10 @@ export class JsIcSites { identity = fn.body .slice(0, -1) - .every((s) => this.capsuleBranch(s, param) || this.kindExit(s, param)) && + .every( + (s) => + this.capsuleBranch(s, param) || this.kindExit(s, param) || this.rebinding(s, param), + ) && last?.kind === "return" && last.value !== null && this.bagOf(last.value, param); diff --git a/packages/compiler/src/ir/receiver-readers.ts b/packages/compiler/src/ir/receiver-readers.ts index 3d0e6f35d..f5270aa7d 100644 --- a/packages/compiler/src/ir/receiver-readers.ts +++ b/packages/compiler/src/ir/receiver-readers.ts @@ -1,6 +1,6 @@ import { isBorrowSafeMath } from "./analysis.js"; import type { IrExpr, IrFunction, IrLibFn, IrStmt } from "./ir.js"; -import { everyStmtList } from "./traverse.js"; +import { eachNodeOfKinds, type IrNodeIndex } from "./node-index.js"; /** Expression kinds that run no user code of their own and never consult * the ambient receiver stack. Calls are admitted here and resolved through @@ -85,6 +85,25 @@ const RECEIVER_FREE_STMTS = new Set([ "runtimeFence", ]); +/** The kinds whose nodes the readers walk answers true for without looking + * at them: every receiver-free statement, and the receiver-free expressions + * other than calls, library calls, string conversions and data intrinsics. */ +const TRIVIALLY_RECEIVER_FREE = new Set([ + ...RECEIVER_FREE_STMTS, + ...[...RECEIVER_FREE_EXPRS].filter( + (kind) => + kind !== "call" && + kind !== "new" && + kind !== "virtualCall" && + kind !== "libCall" && + kind !== "toString" && + kind !== "arrIntrinsic" && + kind !== "strIntrinsic" && + kind !== "mapIntrinsic" && + kind !== "setIntrinsic", + ), +]); + /** Runtime library calls beyond scalar Math that only compute or build and * park a native error: the f64[] folds behind Math.max/min(...xs), * `new Error(message)` (scr_error_new), and the checked-read TypeError @@ -133,7 +152,11 @@ function opaqueOperand(e: IrExpr): boolean { export class AmbientReceiverReaders { private readers: Set | null = null; - constructor(private readonly functions: ReadonlyMap) {} + constructor( + private readonly functions: ReadonlyMap, + /** The module's node index, read instead of walking the bodies it holds. */ + private readonly nodes?: IrNodeIndex, + ) {} ignores(fn: IrFunction): boolean { if (fn.async || fn.generator) return false; @@ -153,6 +176,7 @@ export class AmbientReceiverReaders { } const readers = new Set(); const callers = new Map(); + const scan = this.nodes?.scanExcept(TRIVIALLY_RECEIVER_FREE); for (const fn of this.functions.values()) { const callees = new Set(); let reads = fn.async === true || fn.generator !== undefined; @@ -161,32 +185,36 @@ export class AmbientReceiverReaders { callees.add(name); return true; }; + const expr = (expr: IrExpr): boolean => { + if (!RECEIVER_FREE_EXPRS.has(expr.kind)) return false; + switch (expr.kind) { + case "call": + return edge(expr.callee); + case "new": + return edge(`%${expr.className}.constructor`); + case "virtualCall": { + // Any class's override may run: admit only when every + // same-named method is itself receiver-free. + const targets = byMethod.get(expr.method) ?? []; + return targets.length > 0 && targets.every(edge); + } + case "libCall": + return isBorrowSafeMath(expr.fn) || RECEIVER_FREE_LIB_FNS.has(expr.fn); + case "toString": + return !opaqueOperand(expr.operand); + default: { + const operands = dataIntrinsicOperands(expr); + return operands === null || !operands.some(opaqueOperand); + } + } + }; if (!reads) - reads = !everyStmtList(fn.body, { - stmt: (stmt) => RECEIVER_FREE_STMTS.has(stmt.kind), - expr: (expr) => { - if (!RECEIVER_FREE_EXPRS.has(expr.kind)) return false; - switch (expr.kind) { - case "call": - return edge(expr.callee); - case "new": - return edge(`%${expr.className}.constructor`); - case "virtualCall": { - // Any class's override may run: admit only when every - // same-named method is itself receiver-free. - const targets = byMethod.get(expr.method) ?? []; - return targets.length > 0 && targets.every(edge); - } - case "libCall": - return isBorrowSafeMath(expr.fn) || RECEIVER_FREE_LIB_FNS.has(expr.fn); - case "toString": - return !opaqueOperand(expr.operand); - default: { - const operands = dataIntrinsicOperands(expr); - return operands === null || !operands.some(opaqueOperand); - } - } - }, + eachNodeOfKinds(fn, scan, (node, statement) => { + const free = statement + ? RECEIVER_FREE_STMTS.has((node as IrStmt).kind) + : expr(node as IrExpr); + if (!free) reads = true; + return free; }); if (reads) readers.add(fn.name); for (const callee of callees) { diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index cdacd1e93..3543b29de 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -715,6 +715,10 @@ interface RuntimeFeatureRule { /** Gives every rule in the table one type. */ const rule = (r: RuntimeFeatureRule): RuntimeFeatureRule => r; +/* The node:url and WHATWG URL entry points: every URL value comes from + * one, and parsing one can reach the UTS #46 host processing. */ +const URL_PREFIXES: readonly string[] = ["url."]; + /* The HTTP, HTTPS, HTTP/2 and TLS surfaces, which link the net unit. */ const NET_PREFIXES: readonly string[] = ["net.", "http.", "tls.", "https.", "http2."]; @@ -1066,9 +1070,10 @@ const RUNTIME_FEATURE_RULES = { /** scr_url_legacy.c parses and stringifies queries. */ qs: rule({ fns: [...QS_LIB_FNS, ...LEGACY_URL_LIB_FNS] }), /** scr_url_legacy.c lowercases and normalizes hostnames with the regex - * unit's libunicode, NODE_DEBUG matching in scr_util_callable.c and - * readline's terminal unit use the regex unit, and locale case mapping - * runs its default conversion. */ + * unit's libunicode, the WHATWG URL host parser runs UTS #46 through + * scr_idna.c (which links with the regex unit), NODE_DEBUG matching in + * scr_util_callable.c and readline's terminal unit use the regex unit, + * and locale case mapping runs its default conversion. */ regex: rule({ fns: [ ...REGEX_LIB_FNS, @@ -1077,13 +1082,17 @@ const RUNTIME_FEATURE_RULES = { "rl.terminal", "str.localeCase", ], + prefixes: URL_PREFIXES, expr: (node, _tables) => node.kind === "regexLit" || node.kind === "regexIntrinsic" || (node.kind === "strIntrinsic" && CASE_MAPPING_STR_METHODS.has(node.method)), - types: ["regex"], + types: ["regex", "url"], }), searchParams: rule({ fns: ["url.searchParams"], prefixes: ["sp."], types: ["searchParams"] }), + /** URL programs install the IDNA unit's ToASCII for the WHATWG host + * parser (scr_url_idna_install). */ + urlIdna: rule({ prefixes: URL_PREFIXES, types: ["url"] }), /** stdin setEncoding / string data listeners / stdio 'resize' events. A * typed string 'data' listener takes setEncoding-decoded chunks; the * process stream object's setEncoding and 'resize' members are reached @@ -1181,6 +1190,7 @@ function noRuntimeFeatures(): RuntimeFeatures { qs: false, regex: false, searchParams: false, + urlIdna: false, stdioExtended: false, stream: false, streamDyn: false, diff --git a/packages/compiler/src/ir/self-captures.ts b/packages/compiler/src/ir/self-captures.ts index e009e9a11..74f634d4a 100644 --- a/packages/compiler/src/ir/self-captures.ts +++ b/packages/compiler/src/ir/self-captures.ts @@ -118,7 +118,12 @@ export function resolveSelfCaptures(mod: IrModule): IrModule { } if (resolved.size === 0) return mod; + // Only the resolved bodies and the functions that create their closures + // change. + const touched = new Set(resolved.keys()); + for (const name of resolved.keys()) for (const site of sites.get(name)!) touched.add(site.owner); const rewritten = mod.functions.map((fn) => { + if (!touched.has(fn.name)) return fn; const own = resolved.get(fn.name); const self = own === undefined ? null : fn.captures![own]!; let changed = false; diff --git a/packages/compiler/src/ir/validate.ts b/packages/compiler/src/ir/validate.ts index a694e8d2c..5bae241b1 100644 --- a/packages/compiler/src/ir/validate.ts +++ b/packages/compiler/src/ir/validate.ts @@ -502,10 +502,29 @@ export function validateModule(mod: IrModule): IrValidationError[] { }); } } - for (const symbol of cls.symbolFields ?? []) { - const global = mod.globals?.find((global) => global.id === symbol.globalId); + if (cls.stringTagHelper !== undefined) { + const helper = functionsByName.get(cls.stringTagHelper); + const receiver = helper?.params[0]?.type; if ( - global?.type.kind !== "symbol" || + !helper || + helper.params.length !== 1 || + receiver?.kind !== "object" || + receiver.className !== cls.name || + helper.returnType.kind !== "string" || + helper.captures !== undefined || + helper.classCaptures !== undefined + ) { + errors.push({ + message: `class ${cls.name}: string tag helper must be a noncapturing (instance) => string function`, + loc: cls.loc, + }); + } + } + for (const symbol of cls.symbolFields ?? []) { + const global = + "globalId" in symbol ? mod.globals?.find((global) => global.id === symbol.globalId) : null; + if ( + ("globalId" in symbol ? global?.type.kind !== "symbol" : symbol.wellKnown === "") || !cls.fields.some((field) => field.name === symbol.field) ) { errors.push({ message: `class ${cls.name}: invalid symbol field metadata`, loc: cls.loc }); diff --git a/packages/compiler/src/native/cache.ts b/packages/compiler/src/native/cache.ts index 937b4b109..712c1c232 100644 --- a/packages/compiler/src/native/cache.ts +++ b/packages/compiler/src/native/cache.ts @@ -118,22 +118,11 @@ export class NativeCache { } } - /** Whether a marker or entry exists, without reading or checking it. */ + /** Whether an entry exists, without reading or checking it. */ has(family: string, key: string): boolean { return existsSync(join(this.root, family, key)); } - /** Records an empty marker that has() finds. */ - mark(family: string, key: string): void { - try { - const directory = join(this.root, family); - mkdirSync(directory, { recursive: true, mode: 0o700 }); - writeFileSync(join(directory, key), ""); - } catch { - /* Cache failures never change a build's result. */ - } - } - /** Writes `bytes` under their content digest, and returns the digest. */ writeContent(family: string, bytes: Uint8Array): string { const digest = contentDigest(bytes); @@ -178,7 +167,7 @@ export class NativeCache { "object", "sanitizer", "executable", - "linked", + "kept", "binary", "dsym", "coverage", diff --git a/packages/compiler/src/native/compiler.ts b/packages/compiler/src/native/compiler.ts index 63769fba6..a4582ec49 100644 --- a/packages/compiler/src/native/compiler.ts +++ b/packages/compiler/src/native/compiler.ts @@ -407,7 +407,9 @@ export class NativeCompiler { ffi, executablePack, ); - const restored = executableCache?.restore(stagedOutput) ?? false; + // An unchanged rebuild keeps the executable the last build left. + const kept = executableCache?.keep(output) ?? false; + const restored = kept || (executableCache?.restore(stagedOutput) ?? false); timing(restored ? "executable-cache-hit" : "executable-cache-miss"); if (!restored) { let programObjects = [object]; @@ -524,7 +526,10 @@ export class NativeCompiler { irPath = join(options.outDir, `${stem}.ir.json`); writeTextPartsSync(irPath, prepared.ir!); } - renameSync(stagedOutput, output); + if (!kept) { + renameSync(stagedOutput, output); + executableCache?.recordOutput(output); + } if (target.platform === "darwin" && (optimization !== "dev" || options.strip)) rmSync(output + ".dSYM", { recursive: true, force: true }); return { diff --git a/packages/compiler/src/native/executable-cache.test.ts b/packages/compiler/src/native/executable-cache.test.ts index 83a493721..97f9a3571 100644 --- a/packages/compiler/src/native/executable-cache.test.ts +++ b/packages/compiler/src/native/executable-cache.test.ts @@ -224,7 +224,7 @@ test("a failed or empty link trace cannot publish a completed executable", () => }); test.each(["ld", "crt", "libc"] as const)( - "a Linux key's second link records the linker, startup objects and libc; replacing the %s misses", + "a Linux key's first link records the linker, startup objects and libc; replacing the %s misses", (input) => { const f = fixture(); const lib = join(f.root, "lib"); @@ -257,26 +257,46 @@ test.each(["ld", "crt", "libc"] as const)( }; }); const open = () => new NativeExecutableCache(f.cache, f.key, "clang", false, [f.runtime], true); - // A key's first link is not traced; the caller links the output itself. - expect(open().trace(["-o", f.output], f.stage)).toBe(false); - expect(spawnSync).not.toHaveBeenCalled(); - expect(open().restore(f.destination)).toBe(false); - // Its next link traces both the driver and the linker in one run. + // A key's first link traces the driver and the linker in one run, and + // records the output it leaves instead of storing the executable. const entry = open(); expect(entry.trace(["-o", f.output], f.stage)).toBe(true); expect(spawnSync).toHaveBeenCalledTimes(1); expect(vi.mocked(spawnSync).mock.calls[0]![1]).toEqual(["-o", f.output, "-v", "-Wl,-t"]); entry.publish(f.output); + expect(f.cache.read("executable", f.key)).toBeNull(); + entry.recordOutput(f.output); + expect(open().keep(f.output)).toBe(true); const recorded = ( - JSON.parse(f.cache.read("executable", f.key)!.toString()) as { inputs: { path: string }[] } + JSON.parse(f.cache.read("kept", f.key)!.toString()) as { inputs: { path: string }[] } ).inputs.map((saved) => saved.path); expect(recorded).toEqual(expect.arrayContaining([...Object.values(paths), nonshared, lib])); expect(recorded).not.toContain(program); - expect(open().restore(f.destination)).toBe(true); const before = statSync(paths[input]); writeFileSync(paths[input] + ".new", "x".repeat(before.size)); utimesSync(paths[input] + ".new", before.atime, before.mtime); renameSync(paths[input] + ".new", paths[input]); - expect(open().restore(f.destination)).toBe(false); + expect(open().keep(f.output)).toBe(false); }, ); + +test("a Linux build whose output changed links again, and then stores the executable", () => { + const f = fixture(); + const open = () => new NativeExecutableCache(f.cache, f.key, "clang", false, [f.runtime], true); + const first = open(); + expect(first.trace(["-o", f.output], f.stage)).toBe(true); + first.publish(f.output); + first.recordOutput(f.output); + // The output is overwritten: it is not kept, and the next link publishes. + writeFileSync(f.output, Buffer.from([1, 2, 3, 4])); + expect(open().keep(f.output)).toBe(false); + const second = open(); + expect(second.restore(f.destination)).toBe(false); + expect(second.trace(["-o", f.output], f.stage)).toBe(true); + second.publish(f.output); + second.recordOutput(f.output); + expect(open().keep(f.output)).toBe(true); + // The stored executable restores at another path. + expect(open().restore(f.destination)).toBe(true); + expect(readFileSync(f.destination)).toEqual(readFileSync(f.output)); +}); diff --git a/packages/compiler/src/native/executable-cache.ts b/packages/compiler/src/native/executable-cache.ts index 1dfbf0b00..b9058e947 100644 --- a/packages/compiler/src/native/executable-cache.ts +++ b/packages/compiler/src/native/executable-cache.ts @@ -124,6 +124,41 @@ function tracePaths(output: string, driver: boolean, roots: string[]): string[] return [...paths].sort(); } +/** Linux: the output a build left, which an unchanged rebuild keeps while + * the output and every input keep their identities. */ +interface KeptEntry { + schema: "scriptc.native-kept.v1"; + output: InputIdentity; + inputs: InputIdentity[]; +} + +function validIdentity(input: InputIdentity): boolean { + return ( + input !== null && + typeof input === "object" && + typeof input.path === "string" && + isAbsolute(input.path) && + typeof input.canonical === "string" && + (input.kind === "file" || input.kind === "directory") && + [input.dev, input.ino, input.size, input.mtime, input.ctime].every( + (value) => typeof value === "number" && Number.isFinite(value), + ) + ); +} + +function validKept(value: unknown): value is KeptEntry { + if (value === null || typeof value !== "object") return false; + const entry = value as Partial; + return ( + entry.schema === "scriptc.native-kept.v1" && + entry.output !== undefined && + validIdentity(entry.output) && + Array.isArray(entry.inputs) && + entry.inputs.length > 0 && + entry.inputs.every(validIdentity) + ); +} + function validEntry(value: unknown): value is ExecutableEntry { if (value === null || typeof value !== "object") return false; const entry = value as Partial; @@ -135,18 +170,7 @@ function validEntry(value: unknown): value is ExecutableEntry { (typeof entry.symbols === "string" && /^[0-9a-f]{64}$/.test(entry.symbols))) && Array.isArray(entry.inputs) && entry.inputs.length > 0 && - entry.inputs.every( - (input) => - input !== null && - typeof input === "object" && - typeof input.path === "string" && - isAbsolute(input.path) && - typeof input.canonical === "string" && - (input.kind === "file" || input.kind === "directory") && - [input.dev, input.ino, input.size, input.mtime, input.ctime].every( - (value) => typeof value === "number" && Number.isFinite(value), - ), - ) + entry.inputs.every(validIdentity) ); } @@ -178,8 +202,8 @@ function stageSymbols(bytes: Buffer, binary: string): void { export class NativeExecutableCache { private inputs: InputIdentity[]; private traced = false; - /** Linux: no entry exists and the key was never linked before. */ - private readonly firstLink: boolean; + /** The inputs of the entry restore() used. */ + private restoredInputs: InputIdentity[] | null = null; constructor( private readonly cache: NativeCache, @@ -187,30 +211,46 @@ export class NativeExecutableCache { private readonly linker: string, private readonly debug: boolean, paths: string[], - /** Linux: trace with one verbose link, from a key's second link on. */ + /** Linux: trace with one verbose link, keep an unchanged output, and + * store the executable from a key's second link on. */ private readonly linux = false, ) { - this.firstLink = linux && !cache.has("executable", key) && !cache.has("linked", key); - // A first link neither restores nor traces, so it needs no identities. - this.inputs = this.firstLink ? [] : [...new Set(paths)].sort().map(identity); + this.inputs = [...new Set(paths)].sort().map(identity); + } + + /** Whether `recorded`, the inputs of an entry, still match and cover this + * build's inputs. */ + private covers(recorded: InputIdentity[]): boolean { + if (!stillMatches(recorded) || !stillMatches(this.inputs)) return false; + const saved = new Map(recorded.map((input) => [input.path, input])); + return this.inputs.every((input) => { + const found = saved.get(input.path); + return found !== undefined && sameIdentity(found, input); + }); + } + + /** Linux: true when `output` is the executable the last build of this key + * left there, unchanged, and its inputs are unchanged; the caller keeps it. */ + keep(output: string): boolean { + if (!this.linux) return false; + try { + const metadata = this.cache.read("kept", this.key); + if (metadata === null) return false; + const entry: unknown = JSON.parse(metadata.toString("utf8")); + if (!validKept(entry)) return false; + const current = identity(output); + return sameIdentity(current, entry.output) && this.covers(entry.inputs); + } catch { + return false; + } } restore(output: string): boolean { - if (this.firstLink) return false; try { const metadata = this.cache.read("executable", this.key); if (metadata === null) return false; const entry: unknown = JSON.parse(metadata.toString("utf8")); - if (!validEntry(entry) || !stillMatches(entry.inputs) || !stillMatches(this.inputs)) - return false; - const saved = new Map(entry.inputs.map((input) => [input.path, input])); - if ( - !this.inputs.every((input) => { - const recorded = saved.get(input.path); - return recorded !== undefined && sameIdentity(recorded, input); - }) - ) - return false; + if (!validEntry(entry) || !this.covers(entry.inputs)) return false; if (this.debug !== (entry.symbols !== null)) return false; const binary = this.cache.read("binary", entry.binary); const symbols = entry.symbols === null ? null : this.cache.read("dsym", entry.symbols); @@ -219,6 +259,7 @@ export class NativeExecutableCache { if (symbols !== null) stageSymbols(symbols, output); writeFileSync(output, binary); chmodSync(output, 0o755); + this.restoredInputs = entry.inputs; return true; } catch { return false; @@ -234,12 +275,6 @@ export class NativeExecutableCache { trace(args: string[], stage: string): boolean { this.traced = false; try { - // On Linux a key's first link only records that it was linked; a later - // link of the same key traces, so a build that runs once traces nothing. - if (this.firstLink) { - this.cache.mark("linked", this.key); - return false; - } const roots = [resolve(stage), realpathSync(stage)]; let driverInputs = this.linux ? [] @@ -250,7 +285,14 @@ export class NativeExecutableCache { const paths = tracePaths(linked, false, roots); if (paths.length === 0 || !stillMatches(this.inputs) || !stillMatches(driverInputs)) return false; - this.inputs.push(...driverInputs, ...paths.map(identity)); + // The driver's job line and the linker's trace name many of the same + // files; each is checked once. + const listed = new Set(this.inputs.map((input) => input.path)); + for (const input of [...driverInputs, ...paths.map(identity)]) + if (!listed.has(input.path)) { + listed.add(input.path); + this.inputs.push(input); + } this.traced = true; return true; } catch { @@ -260,7 +302,10 @@ export class NativeExecutableCache { publish(output: string): void { try { - if (!this.traced || !stillMatches(this.inputs)) return; + // On Linux the first build of a key only records its output (see + // recordOutput); the executable is stored once a later build relinks. + if (!this.traced || (this.linux && !this.cache.has("kept", this.key))) return; + if (!stillMatches(this.inputs)) return; const binary = readFileSync(output); const symbols = this.debug ? readSymbols(output) : null; const binaryKey = this.cache.writeContent("binary", binary); @@ -277,6 +322,24 @@ export class NativeExecutableCache { /* Build artifacts remain valid when caching is unavailable. */ } } + + /** Linux: records `output`, the executable this build left in place, for + * keep(). */ + recordOutput(output: string): void { + if (!this.linux) return; + try { + const inputs = this.traced ? this.inputs : this.restoredInputs; + if (inputs === null || !stillMatches(inputs)) return; + const entry: KeptEntry = { + schema: "scriptc.native-kept.v1", + output: identity(output), + inputs, + }; + this.cache.write("kept", this.key, JSON.stringify(entry)); + } catch { + /* Build artifacts remain valid when caching is unavailable. */ + } + } } export function openNativeExecutableCache( diff --git a/packages/compiler/src/native/prepare.test.ts b/packages/compiler/src/native/prepare.test.ts index 7ae2d1d5f..5d0f9faae 100644 --- a/packages/compiler/src/native/prepare.test.ts +++ b/packages/compiler/src/native/prepare.test.ts @@ -70,7 +70,7 @@ function fixture() { loads++; return runFrontend(path, loadProgram, npmStatic, externalTypes); }; - const prepare = (extra: { emitIr?: boolean } = {}) => + const prepare = (extra: { emitIr?: boolean; optimization?: "release" | "dev" } = {}) => prepareNativeExecutable(entry, { ...options, ...extra }, null, toolchain, frontend, cache); return { root, entry, dependency, cache, options, prepare, loads: () => loads }; } @@ -123,6 +123,38 @@ test("comment and whitespace edits reuse the frontend output a fresh build repro expect(edited.ok && edited.llvm.join("")).not.toBe(first.llvm.join("")); }); +test("a dev build reuses its frontend output after edits that keep every token's position", () => { + const f = fixture(); + const dev = { optimization: "dev" as const }; + const first = f.prepare(dev); + expect(first.ok, JSON.stringify(first)).toBe(true); + if (!first.ok) return; + // Debug information records lines and columns: a comment after the last + // token and trailing whitespace keep them. + const appended = 'export const value = "first"; \n// The exported value.\n'; + writeFileSync(f.dependency, appended); + const reused = f.prepare(dev); + expect(f.loads()).toBe(1); + expect(reused.ok).toBe(true); + if (!reused.ok) return; + expect(reused.llvm.join("")).toBe(first.llvm.join("")); + expect(new Map(reused.sources).get(f.dependency)).toBe(appended); + const fresh = prepareNativeExecutable( + f.entry, + { ...f.options, ...dev }, + null, + fixtureToolchain(), + (path, npmStatic, externalTypes) => runFrontend(path, loadProgram, npmStatic, externalTypes), + new NativeCache(join(f.root, "fresh-cache")), + ); + expect(fresh.ok && fresh.llvm.join("")).toBe(first.llvm.join("")); + // A comment that moves the token after it is rebuilt. + writeFileSync(f.dependency, '// The exported value.\nexport const value = "first";\n'); + const moved = f.prepare(dev); + expect(f.loads()).toBe(2); + expect(moved.ok && moved.llvm.join("")).not.toBe(first.llvm.join("")); +}); + test("a comment edit inside source text the output carries is rebuilt", () => { const f = fixture(); // A failing assert(value) reports its call's source text. diff --git a/packages/compiler/src/native/prepare.ts b/packages/compiler/src/native/prepare.ts index 67a4b5a9e..7118e47b9 100644 --- a/packages/compiler/src/native/prepare.ts +++ b/packages/compiler/src/native/prepare.ts @@ -2,6 +2,7 @@ import { targetCpuField, targetCpuTargetRefusal } from "../backend/target-cpu.js import { nativeCodegenDiag, type ScrDiagnostic } from "../diagnostics/diagnostic.js"; import type { CompilationTiming } from "../timing.js"; import { readFileSync } from "node:fs"; +import { availableParallelism } from "node:os"; import { basename, dirname, join, resolve } from "node:path"; import type { CompileFailure, @@ -31,7 +32,10 @@ import { import { compilerOwnedFileRoots } from "../frontend/dts-paths.js"; import { provenanceSources } from "../frontend/provenance-registry.js"; import { processFork } from "../frontend/process-fork.js"; -import { tokenEquivalentSource } from "../frontend/token-equivalence.js"; +import { + tokenEquivalentSource, + tokenPositionEquivalentSource, +} from "../frontend/token-equivalence.js"; import { llvmBytes, wtf8Bytes } from "../backend/literals.js"; import { prepareLibrary } from "../library/prepare.js"; import type { LibraryProfile } from "../library/library-profile.js"; @@ -142,9 +146,11 @@ function readFrontendCache( /** The stale entry's input when every changed source is token-equivalent to * the text the entry was built from (edits to whitespace and to comments * that cannot affect compilation; see token-equivalence.ts). Equivalent - * sources lower to the same IR apart from source locations, which only dev - * builds' debug information and the serialized IR carry. Diagnostics carry - * locations too, so an entry that reported warnings is rebuilt. A changed + * sources lower to the same IR apart from source locations, which only the + * debug information of dev builds and the serialized IR carry. A build + * with debug information accepts only edits that keep every token's line + * and column, the positions the debug information records. Diagnostics + * carry locations too, so an entry that reported warnings is rebuilt. A changed * source whose raw text or line positions the frontend read (call-site text * in messages, comptime callbacks, test locations) is rebuilt as well: * frontendInputsSemanticallyMatch refuses its `text` probe. */ @@ -154,17 +160,17 @@ function equivalentFrontendInput( exclusions: FrontendInputExclusions, ): { input: NativeExecutableInput; probes: FrontendInputSnapshot } | null { if ( - options.optimization === "dev" || options.sanitize === true || options.emitIr === true || stale.ir !== null || (stale.input.warnings?.length ?? 0) > 0 ) return null; + const debugInfo = options.optimization === "dev" && !options.strip; const match = frontendInputsSemanticallyMatch( stale.probes, new Map(stale.input.sources), - tokenEquivalentSource, + debugInfo ? tokenPositionEquivalentSource : tokenEquivalentSource, exclusions, ); if (match === null || match.changed.length === 0) return null; @@ -546,10 +552,12 @@ export function prepareNativeLibrary( return input; } -/** Worker processes that emit function bodies at a time - * (SCRIPTC_EMIT_WORKERS; 0 or 1 emits in this process). */ +/** Worker processes that emit function bodies at a time: up to eight, one + * per available core (SCRIPTC_EMIT_WORKERS sets the count; 0 or 1 emits in + * this process). */ function emitWorkers(): number { - const value = Number(process.env["SCRIPTC_EMIT_WORKERS"] ?? "4"); + const configured = process.env["SCRIPTC_EMIT_WORKERS"]; + const value = configured === undefined ? Math.min(8, availableParallelism()) : Number(configured); return Number.isFinite(value) && value > 1 ? Math.floor(value) : 1; } diff --git a/packages/compiler/test/chunked-emission.test.ts b/packages/compiler/test/chunked-emission.test.ts index b4912c9f6..2aec1e49b 100644 --- a/packages/compiler/test/chunked-emission.test.ts +++ b/packages/compiler/test/chunked-emission.test.ts @@ -9,9 +9,10 @@ import { inlineRcOption } from "../src/backend/llvm/shapes.js"; // Programs whose function bodies request module-level helpers and tables // that the chunk journal (emit-journal.ts) carries: checked-dynamic -// conversions, inspection, publication walkers, live record views, stream -// adapters, regex instances, colliding literal digests, interned C strings, -// speculative loop sites, typed message listeners and readers. +// conversions (with their discriminant tables), inspection, publication +// walkers, live record views, stream adapters, regex instances, colliding +// literal digests, interned C strings, speculative loop sites, typed message +// listeners and readers. const PROGRAMS = [ "1003-json-parse-unions.ts", "114-live-record-delete.ts", @@ -21,6 +22,7 @@ const PROGRAMS = [ "4900-console-instances.ts", "5612-readable-from-iterables.cjs", "5702-publish-candidate-buffers.ts", + "6305-json-discriminant-dispatch.ts", "7321-speculative-loop-bail-sites.ts", "7360-worker-typed-records.ts", "node24-text-utilities-coercion.js", diff --git a/packages/compiler/test/js-ic-emission.test.ts b/packages/compiler/test/js-ic-emission.test.ts index 47d641bff..54ea13d26 100644 --- a/packages/compiler/test/js-ic-emission.test.ts +++ b/packages/compiler/test/js-ic-emission.test.ts @@ -64,6 +64,50 @@ console.log(read(o), at(dyn([5, 6]), 1), call(o), o.n); } }); +test("property sites keep their caches in programs that declare classes and subclasses", async () => { + const dir = await mkdtemp(join(tmpdir(), "scriptc-js-ic-class-")); + try { + const entry = join(dir, "main.js"); + const outPath = join(dir, "main.ir.json"); + // Declared classes give every property helper class branches and + // property-bag lookups, and a subclass adds a normalization step; plain + // objects still read through the caches. + await writeFile( + entry, + ` +class Point { + constructor(x) { this.x = x; } +} +class Tagged extends Point { + constructor(x, tag) { super(x); this.tag = tag; } +} +function dyn(v) { return v; } +function read(o) { return o.x; } +function write(o, v) { o.x = v; } +function at(a, i) { return a[i]; } +var o = dyn({ x: 1 }); +var p = dyn(new Point(4)); +var t = dyn(new Tagged(6, "t")); +write(o, 3); +write(p, 5); +write(t, 7); +console.log(read(o), read(p), read(t), at(dyn([5, 6]), 1), at(p, "x"), at(t, "tag")); +`, + ); + const result = await compile(entry, { outDir: dir, outPath, outputKind: "ir" }); + if (!result.ok) + throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); + const mod = deserializeModule(await readFile(outPath, "utf8")); + expect(validateModule(mod)).toEqual([]); + const llvm = emitLlvmModule(mod); + expect(body(llvm, "read")).toContain("@scr_js_load_probe("); + expect(body(llvm, "write")).toContain("@scr_js_store_probe("); + expect(body(llvm, "at")).toContain("@scr_js_keyed_probe("); + } finally { + await rm(dir, { recursive: true, force: true }); + } +}); + test("typed programs have no cache sites and keep the ordinary runtime", async () => { const dir = await mkdtemp(join(tmpdir(), "scriptc-js-ic-typed-")); try { diff --git a/packages/compiler/test/keyed-method-writes.test.ts b/packages/compiler/test/keyed-method-writes.test.ts new file mode 100644 index 000000000..407530945 --- /dev/null +++ b/packages/compiler/test/keyed-method-writes.test.ts @@ -0,0 +1,79 @@ +import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { expect, test } from "vitest"; +import { compile, deserializeModule } from "../src/index.js"; +import type { IrModule } from "../src/ir/ir.js"; +import { everyStmtList } from "../src/ir/traverse.js"; + +async function lowerSource(source: string): Promise { + const dir = await mkdtemp(join(tmpdir(), "scriptc-keyed-writes-")); + try { + const entry = join(dir, "main.ts"); + await writeFile(entry, source); + const outPath = join(dir, "main.ir.json"); + const result = await compile(entry, { outPath, outDir: dir, outputKind: "ir" }); + if (!result.ok) throw new Error(result.diagnostics.map((d) => d.message).join("\n")); + return deserializeModule(await readFile(outPath, "utf8")); + } finally { + await rm(dir, { recursive: true, force: true }); + } +} + +/** Calls in `run` that go through a dynamic value. */ +function dynamicCalls(mod: IrModule): number { + const fn = mod.functions.find((f) => f.name === "run"); + if (!fn) throw new Error("no run function"); + let n = 0; + everyStmtList(fn.body, { + expr: (e) => { + if (e.kind === "dynCall" || e.kind === "dynInvoke") n++; + return true; + }, + stmt: () => true, + }); + return n; +} + +const shape = ` +type Step = "scale" | "clamp"; +class Transform { + scale(x: number): number { + return x * 2; + } + clamp(x: number): number { + return x < 0 ? 0 : x; + } +} +`; + +test("element writes of data under method names keep the methods native", async () => { + const mod = await lowerSource(`${shape} +const enabled: Record = { scale: false, clamp: false }; +function enable(name: Step): void { + enabled[name] = true; +} +const totals: Record = {}; +function run(t: Transform): number { + enable("scale"); + totals["clamp"] = 1; + return t.clamp(t.scale(3)); +} +console.log(run(new Transform())); +`); + expect(dynamicCalls(mod)).toBe(0); +}); + +test("element writes through untyped receivers can still replace a method", async () => { + const mod = await lowerSource(`${shape} +function replace(target: object, name: Step): void { + (target as any)[name] = (x: number) => x + 100; +} +function run(t: Transform): number { + replace(t, "scale"); + return t.clamp(t.scale(3)); +} +console.log(run(new Transform())); +`); + expect(dynamicCalls(mod)).toBeGreaterThan(0); +}); diff --git a/packages/compiler/test/native-partitions.test.ts b/packages/compiler/test/native-partitions.test.ts index ce1f14335..fcd0132e8 100644 --- a/packages/compiler/test/native-partitions.test.ts +++ b/packages/compiler/test/native-partitions.test.ts @@ -29,8 +29,7 @@ afterEach(async () => { /** A program whose internal functions, constants and state must stay * reachable across partitions. `edit` changes one function's addend. */ -function program(edit = 0, extra = ""): string { - const count = 24; +function program(edit = 0, extra = "", count = 24): string { const lines = [ "; partitioned program", "%Pair = type { i64, i64 }", @@ -74,11 +73,12 @@ function program(edit = 0, extra = ""): string { return lines.join("\n") + "\n"; } -function expectedExit(edit = 0): number { - const addends = Array.from({ length: 24 }, (_, index) => (index === 5 ? index + edit : index)); +function expectedExit(edit = 0, count = 24): number { + const addends = Array.from({ length: count }, (_, index) => (index === 5 ? index + edit : index)); let total = 5; // strlen("total") - for (let start = 0; start < 24; start++) - for (let index = start; index < 24; index++) total += (start === 0 ? 4 : 1) * addends[index]!; + for (let start = 0; start < count; start++) + for (let index = start; index < count; index++) + total += (start === 0 ? 4 : 1) * addends[index]!; return total % 251; } @@ -162,6 +162,56 @@ describe.runIf(helper !== null)("LLVM program partitions", () => { }); } + test("functions under one group line share a partition", async () => { + const dir = await mkdtemp(join(tmpdir(), "scriptc-partitions-groups-")); + dirs.push(dir); + // Groups of four steps, each smaller than the mean partition; main ends + // the last group. Placement by group applies from 32 partitions. + const steps = 128; + const grouped = (edit: number, count = steps) => + program(edit, "", count) + .split("\n") + .flatMap((line) => { + const step = /^define internal void @step(\d+)\(/.exec(line); + if (step !== null && Number(step[1]) % 4 === 0) + return [`; scriptc-group ${Number(step[1]) / 4}`, line]; + return line.startsWith("define i32 @main(") ? ["; scriptc-group", line] : [line]; + }) + .join("\n"); + const cache = join(dir, "cache"); + const options = { outputs: 32, optLevel: "0", cache } as const; + const objects = await emit(dir, grouped(0), { ...options, name: "grouped" }); + expect(await exitCode(dir, objects, "grouped")).toBe(expectedExit(0, steps)); + const owner = new Map(); + for (const [index, object] of objects.entries()) { + const { stdout } = await execFileAsync("nm", [object]); + for (const line of stdout.split("\n")) { + const defined = /^[0-9a-fA-F]+ [A-Za-z] _?step(\d+)$/.exec(line.trim()); + if (defined !== null) owner.set(Number(defined[1]), index); + } + } + expect(owner.size).toBe(steps); + // step0's only caller is main, so it goes with main. + for (let group = 0; group < steps / 4; group++) { + const members = [0, 1, 2, 3].map((offset) => group * 4 + offset).filter((step) => step > 0); + expect(new Set(members.map((step) => owner.get(step))).size).toBe(1); + } + + // An edit to one function still changes one partition's source. + const sources = await cacheEntries(cache, ".o"); + const edited = await emit(dir, grouped(7), { ...options, name: "edited" }); + const after = await cacheEntries(cache, ".o"); + expect([...after].filter((entry) => !sources.has(entry))).toHaveLength(1); + expect(await exitCode(dir, edited, "edited")).toBe(expectedExit(7, steps)); + + // With fewer partitions, functions keep their placement by name. + const contents = (paths: string[]) => Promise.all(paths.map((path) => readFile(path))); + const few = { outputs: 4, optLevel: "0" } as const; + expect( + await contents(await emit(dir, grouped(0, 24), { ...few, name: "few-grouped" })), + ).toEqual(await contents(await emit(dir, program(), { ...few, name: "few-plain" }))); + }); + test("a table written one element per line keeps the text partitioner and its reuse", async () => { const dir = await mkdtemp(join(tmpdir(), "scriptc-partitions-table-")); dirs.push(dir); diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6305-json-discriminant-dispatch.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6305-json-discriminant-dispatch.ts.json new file mode 100644 index 000000000..b83ada276 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6305-json-discriminant-dispatch.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/6305-json-discriminant-dispatch.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6306-discriminant-getter-dispatch.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6306-discriminant-getter-dispatch.ts.json new file mode 100644 index 000000000..ba7cba509 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/6306-discriminant-getter-dispatch.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/6306-discriminant-getter-dispatch.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7660-pointer-union-forwarded-arguments.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7660-pointer-union-forwarded-arguments.ts.json new file mode 100644 index 000000000..8f317668f --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7660-pointer-union-forwarded-arguments.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7660-pointer-union-forwarded-arguments.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7663-pointer-union-stored-payload.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7663-pointer-union-stored-payload.ts.json new file mode 100644 index 000000000..51998f0eb --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7663-pointer-union-stored-payload.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7663-pointer-union-stored-payload.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7751-class-well-known-symbol-fields.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7751-class-well-known-symbol-fields.ts.json new file mode 100644 index 000000000..2985bdf05 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7751-class-well-known-symbol-fields.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7751-class-well-known-symbol-fields.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7984-untyped-array-methods.mjs.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7984-untyped-array-methods.mjs.json new file mode 100644 index 000000000..2c823a24f --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/7984-untyped-array-methods.mjs.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/7984-untyped-array-methods.mjs" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8002-while-byte-length-companions.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8002-while-byte-length-companions.ts.json new file mode 100644 index 000000000..e2a36c22a --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8002-while-byte-length-companions.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8002-while-byte-length-companions.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8105-url-idna-hosts.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8105-url-idna-hosts.js.json new file mode 100644 index 000000000..50ed1b401 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8105-url-idna-hosts.js.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8105-url-idna-hosts.js" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8106-shared-typed-array-set.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8106-shared-typed-array-set.ts.json new file mode 100644 index 000000000..8b7a07fac --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8106-shared-typed-array-set.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8106-shared-typed-array-set.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8107-shared-typed-array-set-workers.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8107-shared-typed-array-set-workers.ts.json new file mode 100644 index 000000000..338b4bc03 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8107-shared-typed-array-set-workers.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8107-shared-typed-array-set-workers.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8215-js-any-logical-module-bindings/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8215-js-any-logical-module-bindings/main.ts.json new file mode 100644 index 000000000..0ae9f6f2b --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/8215-js-any-logical-module-bindings/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/8215-js-any-logical-module-bindings/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/untyped-push-emission.test.ts b/packages/compiler/test/untyped-push-emission.test.ts new file mode 100644 index 000000000..2abdf7f41 --- /dev/null +++ b/packages/compiler/test/untyped-push-emission.test.ts @@ -0,0 +1,42 @@ +import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { expect, test } from "vitest"; +import { compile, deserializeModule, validateModule } from "../src/index.js"; +import { emitLlvmModule } from "../src/backend/llvm/emitter.js"; + +// An untyped push in statement position drops the new length, so it calls +// the entry that does not box it; a push whose result is read keeps the +// ordinary entry, as do the other methods. +test("a statement-position untyped push skips boxing its result", async () => { + const dir = mkdtempSync(join(tmpdir(), "scriptc-untyped-push-")); + try { + const entry = join(dir, "main.mjs"); + const output = join(dir, "main.ir.json"); + writeFileSync( + entry, + `function fill(a, n) { + for (let i = 0; i < n; i++) a.push(i); + const length = a.push(n); + a.pop(); + return length; +} +console.log(fill(JSON.parse("[]"), 3)); +`, + ); + const lowered = await compile(entry, { outputKind: "ir", outDir: dir, outPath: output }); + if (!lowered.ok) throw new Error(JSON.stringify(lowered.diagnostics)); + const module = deserializeModule(readFileSync(output, "utf8")); + expect(validateModule(module)).toEqual([]); + const llvm = emitLlvmModule(module, {}); + const body = llvm.split(/\n(?=define )/).find((fn) => /@sc_[a-z]*f_fill\b/.test(fn))!; + const discarded = [...body.matchAll(/call void @scr_dyn_invoke_discard_id\(/g)]; + const kept = [...body.matchAll(/= call ptr @scr_dyn_invoke_prepared_id\(/g)]; + expect(discarded).toHaveLength(1); + // `a.push(n)` for its length, and `a.pop()`, whose result is dropped + // but which has no unboxed entry. + expect(kept).toHaveLength(2); + } finally { + rmSync(dir, { recursive: true, force: true }); + } +}); diff --git a/packages/compiler/test/while-induction-emission.test.ts b/packages/compiler/test/while-induction-emission.test.ts new file mode 100644 index 000000000..08fbab849 --- /dev/null +++ b/packages/compiler/test/while-induction-emission.test.ts @@ -0,0 +1,94 @@ +import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { expect, test } from "vitest"; +import { compile } from "../src/index.js"; + +async function emitLlvm(source: string): Promise { + const dir = await mkdtemp(join(tmpdir(), "scriptc-while-induction-")); + try { + const entry = join(dir, "main.ts"); + const outPath = join(dir, "main.ll"); + await writeFile(entry, source); + const result = await compile(entry, { + outDir: dir, + outPath, + outputKind: "llvm", + }); + expect(result.ok, JSON.stringify(result.diagnostics)).toBe(true); + return await readFile(outPath, "utf8"); + } finally { + await rm(dir, { recursive: true, force: true }); + } +} + +/** The definition holding the function's statements: the borrowed-argument + * body when there is one, otherwise the function itself. */ +function body(ll: string, name: string): string { + const definition = (prefix: string): number => + ll.search(new RegExp(`define [^\\n]*@${prefix}_${name}\\(`)); + const start = definition("sc_bf") >= 0 ? definition("sc_bf") : definition("sc_f"); + expect(start).toBeGreaterThanOrEqual(0); + return ll.slice(start, ll.indexOf("\n}\n", start)); +} + +test("a while loop bounded by a byte length keeps its counter and companions in integers", async () => { + const ll = await emitLlvm(` +function reversed(line: Uint8Array, target: Uint8Array): number { + const len = line.length; + let read = 0; + let written = 0; + let lines = 0; + while (read < len) { + const c = line[len - 1 - read]!; + read++; + if (c === 10) { + if (read === len) break; + read++; + } + target[written] = c; + written++; + if (written % 60 === 0) { + target[written] = 10; + written++; + lines++; + } + } + return written + lines; +} +console.log(reversed(new Uint8Array([65, 10, 66]), new Uint8Array(8))); +`); + const fn = body(ll, "reversed"); + expect(fn).toContain("alloca i64 ; integer read"); + expect(fn).toContain("alloca i64 ; integer written"); + expect(fn).toContain("alloca i64 ; integer lines"); +}); + +test("a companion a nested loop advances, or a counter a continue can skip, stays a double", async () => { + const ll = await emitLlvm(` +function nested(line: Uint8Array): number { + let read = 0; + let total = 0; + while (read < line.length) { + read++; + for (let j = 0; j < 2; j++) total++; + } + return total; +} +function skipped(line: Uint8Array): number { + let read = 0; + let total = 0; + while (read < line.length) { + if (line[read] === 0) continue; + read++; + total++; + } + return total; +} +console.log(nested(new Uint8Array(3)), skipped(new Uint8Array([1, 2]))); +`); + expect(body(ll, "nested")).not.toContain("; integer total"); + // The counter compared with the length directly is an integer. + expect(body(ll, "skipped")).toContain("; integer read"); + expect(body(ll, "skipped")).not.toContain("; integer total"); +}); diff --git a/packages/runtime-pack-common/scripts/build.mjs b/packages/runtime-pack-common/scripts/build.mjs index 810573d53..7fcc40dee 100644 --- a/packages/runtime-pack-common/scripts/build.mjs +++ b/packages/runtime-pack-common/scripts/build.mjs @@ -386,6 +386,10 @@ async function build() { ? [ await archive("libregexp", lreSources, quickjs, [ ...vendorTarget, + // Section elimination keeps only the libunicode tables a + // program reaches: the URL host parser's NFC links the + // normalization tables without the regex property ones. + ...matrix.executable_section_elimination.compile_flags, "-std=c11", "-Os", "-I", diff --git a/packages/runtime/src/scr_array.c b/packages/runtime/src/scr_array.c index 4c7b84d98..39998b8ff 100644 --- a/packages/runtime/src/scr_array.c +++ b/packages/runtime/src/scr_array.c @@ -1724,6 +1724,14 @@ static void scr_frozen_undeletable(double index) { scr_frozen_throw("Cannot delete property '", index, "' of [object Array]"); } +void scr_array_not_extensible_error(double index) { + scr_frozen_not_extensible(index); +} + +void scr_array_undeletable_error(double index) { + scr_frozen_undeletable(index); +} + /* Each case finds the operation's first write in the order the spec makes * its writes. */ bool scr_array_frozen_error(int op, size_t len, double x, double y, double z) { diff --git a/packages/runtime/src/scr_array.h b/packages/runtime/src/scr_array.h index 23390a183..48fa4f26f 100644 --- a/packages/runtime/src/scr_array.h +++ b/packages/runtime/src/scr_array.h @@ -231,6 +231,10 @@ bool scr_arr_is_frozen(const ScrArr *a); * end), 9 copyWithin (x = target, y = start, z = end), 10 splice (x = * start, y = delete count, z = item count). */ bool scr_array_frozen_error(int op, size_t len, double x, double y, double z); +/* Node's TypeErrors for a write that a non-extensible or sealed array + * refuses: adding the element at `index`, or deleting it. */ +void scr_array_not_extensible_error(double index); +void scr_array_undeletable_error(double index); /* The start of the dense slots' allocation: `data` less any head room. */ static inline uint64_t *scr_arr_block(const ScrArr *a) { diff --git a/packages/runtime/src/scr_bigint.c b/packages/runtime/src/scr_bigint.c index dd0a70ff7..5af2eafaa 100644 --- a/packages/runtime/src/scr_bigint.c +++ b/packages/runtime/src/scr_bigint.c @@ -215,30 +215,81 @@ static int bi_cmp_limbs(const bi_limb *a, size_t an, const bi_limb *b, size_t bn return 0; } -/* r = a + b over n limbs; returns the carry. r may alias a or b. */ +/* x + y + carry_in (0 or 1), with the carry out in *carry: the add-with- + * carry builtins compile to one adc chain. */ +#if defined(__has_builtin) +#if __has_builtin(__builtin_addcll) && __has_builtin(__builtin_subcll) && \ + __has_builtin(__builtin_addc) && __has_builtin(__builtin_subc) +#define BI_HAVE_ADDC 1 +#endif +#endif +static inline bi_limb bi_addc(bi_limb x, bi_limb y, bi_limb *carry) { +#if defined(BI_HAVE_ADDC) && BI_LIMB_BITS == 64 + unsigned long long c; + bi_limb s = __builtin_addcll(x, y, *carry, &c); + *carry = c; + return s; +#elif defined(BI_HAVE_ADDC) + unsigned c; + bi_limb s = __builtin_addc(x, y, *carry, &c); + *carry = c; + return s; +#else + bi_limb s = x + y; + bi_limb c1 = s < x; + bi_limb t = s + *carry; + *carry = c1 | (t < s); + return t; +#endif +} + +/* x - y - borrow_in (0 or 1), with the borrow out in *borrow. */ +static inline bi_limb bi_subc(bi_limb x, bi_limb y, bi_limb *borrow) { +#if defined(BI_HAVE_ADDC) && BI_LIMB_BITS == 64 + unsigned long long b; + bi_limb d = __builtin_subcll(x, y, *borrow, &b); + *borrow = b; + return d; +#elif defined(BI_HAVE_ADDC) + unsigned b; + bi_limb d = __builtin_subc(x, y, *borrow, &b); + *borrow = b; + return d; +#else + bi_limb d = x - y; + bi_limb b1 = x < y; + bi_limb t = d - *borrow; + *borrow = b1 | (d < *borrow); + return t; +#endif +} + +/* r = a + b over n limbs; returns the carry. r may alias a or b. Four + * limbs a pass keep the carry in one chain. */ static bi_limb bi_add_n(bi_limb *r, const bi_limb *a, const bi_limb *b, size_t n) { bi_limb carry = 0; - for (size_t i = 0; i < n; i++) { - bi_limb x = a[i], s = x + b[i]; - bi_limb c1 = s < x; - bi_limb t = s + carry; - carry = c1 | (t < s); - r[i] = t; + size_t i = 0; + for (; i + 4 <= n; i += 4) { + r[i] = bi_addc(a[i], b[i], &carry); + r[i + 1] = bi_addc(a[i + 1], b[i + 1], &carry); + r[i + 2] = bi_addc(a[i + 2], b[i + 2], &carry); + r[i + 3] = bi_addc(a[i + 3], b[i + 3], &carry); } + for (; i < n; i++) r[i] = bi_addc(a[i], b[i], &carry); return carry; } /* r = a - b over n limbs; returns the borrow. r may alias a or b. */ static bi_limb bi_sub_n(bi_limb *r, const bi_limb *a, const bi_limb *b, size_t n) { bi_limb borrow = 0; - for (size_t i = 0; i < n; i++) { - bi_limb x = a[i], y = b[i]; - bi_limb d = x - y; - bi_limb b1 = x < y; - bi_limb t = d - borrow; - borrow = b1 | (d < borrow); - r[i] = t; + size_t i = 0; + for (; i + 4 <= n; i += 4) { + r[i] = bi_subc(a[i], b[i], &borrow); + r[i + 1] = bi_subc(a[i + 1], b[i + 1], &borrow); + r[i + 2] = bi_subc(a[i + 2], b[i + 2], &borrow); + r[i + 3] = bi_subc(a[i + 3], b[i + 3], &borrow); } + for (; i < n; i++) r[i] = bi_subc(a[i], b[i], &borrow); return borrow; } @@ -277,9 +328,22 @@ static bi_limb bi_sub_into(bi_limb *r, size_t rn, const bi_limb *a, size_t an) { return borrow; } -/* r = a * m + carry over n limbs; returns the high limb. r may alias a. */ +/* r = a * m + carry over n limbs; returns the high limb. r may alias a. + * Four limbs a pass: the four products, then one carry chain adding each + * product's high limb into the next low limb. */ static bi_limb bi_mul1(bi_limb *r, const bi_limb *a, size_t n, bi_limb m, bi_limb carry) { - for (size_t i = 0; i < n; i++) { + size_t i = 0; + for (; i + 4 <= n; i += 4) { + bi_wide p0 = (bi_wide)a[i] * m, p1 = (bi_wide)a[i + 1] * m; + bi_wide p2 = (bi_wide)a[i + 2] * m, p3 = (bi_wide)a[i + 3] * m; + bi_limb c = 0; + r[i] = bi_addc((bi_limb)p0, carry, &c); + r[i + 1] = bi_addc((bi_limb)p1, (bi_limb)(p0 >> BI_LIMB_BITS), &c); + r[i + 2] = bi_addc((bi_limb)p2, (bi_limb)(p1 >> BI_LIMB_BITS), &c); + r[i + 3] = bi_addc((bi_limb)p3, (bi_limb)(p2 >> BI_LIMB_BITS), &c); + carry = (bi_limb)(p3 >> BI_LIMB_BITS) + c; + } + for (; i < n; i++) { bi_wide p = (bi_wide)a[i] * m + carry; r[i] = (bi_limb)p; carry = (bi_limb)(p >> BI_LIMB_BITS); @@ -287,10 +351,27 @@ static bi_limb bi_mul1(bi_limb *r, const bi_limb *a, size_t n, bi_limb m, bi_lim return carry; } -/* r += a * m over n limbs; returns the high limb. */ +/* r += a * m over n limbs; returns the high limb. Four limbs a pass: one + * carry chain forms the four product limbs, a second adds them to r. */ static bi_limb bi_addmul1(bi_limb *r, const bi_limb *a, size_t n, bi_limb m) { bi_limb carry = 0; - for (size_t i = 0; i < n; i++) { + size_t i = 0; + for (; i + 4 <= n; i += 4) { + bi_wide p0 = (bi_wide)a[i] * m, p1 = (bi_wide)a[i + 1] * m; + bi_wide p2 = (bi_wide)a[i + 2] * m, p3 = (bi_wide)a[i + 3] * m; + bi_limb c = 0, k = 0; + bi_limb t0 = bi_addc((bi_limb)p0, carry, &c); + bi_limb t1 = bi_addc((bi_limb)p1, (bi_limb)(p0 >> BI_LIMB_BITS), &c); + bi_limb t2 = bi_addc((bi_limb)p2, (bi_limb)(p1 >> BI_LIMB_BITS), &c); + bi_limb t3 = bi_addc((bi_limb)p3, (bi_limb)(p2 >> BI_LIMB_BITS), &c); + r[i] = bi_addc(r[i], t0, &k); + r[i + 1] = bi_addc(r[i + 1], t1, &k); + r[i + 2] = bi_addc(r[i + 2], t2, &k); + r[i + 3] = bi_addc(r[i + 3], t3, &k); + /* r + a * m over these limbs stays below B^5, so this cannot wrap */ + carry = (bi_limb)(p3 >> BI_LIMB_BITS) + c + k; + } + for (; i < n; i++) { bi_wide p = (bi_wide)a[i] * m + r[i] + carry; r[i] = (bi_limb)p; carry = (bi_limb)(p >> BI_LIMB_BITS); @@ -301,7 +382,23 @@ static bi_limb bi_addmul1(bi_limb *r, const bi_limb *a, size_t n, bi_limb m) { /* r -= a * m over n limbs; returns the borrow limb. */ static bi_limb bi_submul1(bi_limb *r, const bi_limb *a, size_t n, bi_limb m) { bi_limb carry = 0; - for (size_t i = 0; i < n; i++) { + size_t i = 0; + for (; i + 4 <= n; i += 4) { + bi_wide p0 = (bi_wide)a[i] * m, p1 = (bi_wide)a[i + 1] * m; + bi_wide p2 = (bi_wide)a[i + 2] * m, p3 = (bi_wide)a[i + 3] * m; + bi_limb c = 0, k = 0; + bi_limb t0 = bi_addc((bi_limb)p0, carry, &c); + bi_limb t1 = bi_addc((bi_limb)p1, (bi_limb)(p0 >> BI_LIMB_BITS), &c); + bi_limb t2 = bi_addc((bi_limb)p2, (bi_limb)(p1 >> BI_LIMB_BITS), &c); + bi_limb t3 = bi_addc((bi_limb)p3, (bi_limb)(p2 >> BI_LIMB_BITS), &c); + r[i] = bi_subc(r[i], t0, &k); + r[i + 1] = bi_subc(r[i + 1], t1, &k); + r[i + 2] = bi_subc(r[i + 2], t2, &k); + r[i + 3] = bi_subc(r[i + 3], t3, &k); + /* a * m + carry over these limbs stays below B^5: the borrow fits */ + carry = (bi_limb)(p3 >> BI_LIMB_BITS) + c + k; + } + for (; i < n; i++) { bi_wide p = (bi_wide)a[i] * m + carry; bi_limb lo = (bi_limb)p; carry = (bi_limb)(p >> BI_LIMB_BITS); @@ -543,6 +640,56 @@ static void bi_divmod_knuth(bi_limb *q, bi_limb *r, const bi_limb *a, size_t an, free(un); } +/* a / b for a and b of n >= 2 limbs each, b's top limb nonzero: the + * quotient is one limb. Knuth's estimate comes from the top limbs as + * they read normalized (three of a, two of b) and is the quotient or one + * more, which one pass of a - qhat * b over the operands as they are + * settles, with no normalized copies. r, unless NULL, receives the n + * limbs of a % b. */ +static bi_limb bi_div_qlimb(bi_limb *r, const bi_limb *a, const bi_limb *b, size_t n) { + unsigned s = bi_clz(b[n - 1]); + bi_limb d1 = b[n - 1], d0 = b[n - 2], u2 = 0, u1 = a[n - 1], u0 = a[n - 2]; + if (s) { + unsigned t = BI_LIMB_BITS - s; + bi_limb b3 = n >= 3 ? b[n - 3] : 0, a3 = n >= 3 ? a[n - 3] : 0; + d1 = (d1 << s) | (d0 >> t); + d0 = (d0 << s) | (b3 >> t); + u2 = u1 >> t; + u1 = (u1 << s) | (u0 >> t); + u0 = (u0 << s) | (a3 >> t); + } + bi_limb qhat, rhat; + bool rhat_big; /* rhat >= B: the estimate needs no further test */ + if (u2 >= d1) { + qhat = BI_LIMB_MAX; + rhat = u1 + d1; + rhat_big = rhat < d1; + } else { + bi_divisor top = bi_divisor_of(d1); + qhat = bi_div21(u2, u1, top.d, top.v, &rhat); + rhat_big = false; + } + while (!rhat_big && (bi_wide)qhat * d0 > (((bi_wide)rhat << BI_LIMB_BITS) | u0)) { + qhat--; + rhat += d1; + rhat_big = rhat < d1; + } + /* a - qhat * b: negative when the product's high limb or the borrow + * reaches past a's n limbs */ + bi_limb carry = 0, borrow = 0; + for (size_t i = 0; i < n; i++) { + bi_wide p = (bi_wide)b[i] * qhat + carry; + carry = (bi_limb)(p >> BI_LIMB_BITS); + bi_limb d = bi_subc(a[i], (bi_limb)p, &borrow); + if (r) r[i] = d; + } + if (carry || borrow) { + qhat--; + if (r) bi_add_n(r, r, b, n); + } + return qhat; +} + /* ---- comparisons and hashing ----------------------------------------- */ static int bi_cmp_abs(const ScrBigInt *a, const ScrBigInt *b) { @@ -709,6 +856,13 @@ static void bi_divmod_abs(const ScrBigInt *a, const ScrBigInt *b, ScrBigInt **qo if (rout) *rout = bi_u64_signed(rem, 1); return; } + if (an == bn) { + ScrBigInt *r = rout ? bi_alloc(bn) : NULL; + bi_limb q = bi_div_qlimb(r ? r->limb : NULL, a->limb, b->limb, bn); + if (qout) *qout = bi_u64_signed(q, 1); + if (rout) *rout = bi_finish(r, bn, 1); + return; + } size_t qn = an - bn + 1; ScrBigInt *q = bi_alloc(qn); ScrBigInt *r = rout ? bi_alloc(bn) : NULL; diff --git a/packages/runtime/src/scr_bytes.c b/packages/runtime/src/scr_bytes.c index 3926bf83e..e6df837c8 100644 --- a/packages/runtime/src/scr_bytes.c +++ b/packages/runtime/src/scr_bytes.c @@ -755,12 +755,29 @@ void scr_bytes_set_from(ScrBytes *dst, const ScrBytes *src, double offset) { } size_t width = scr_bytes_elem_size(dst->elem); if (dst->shared || src->shared) { - /* Convert a private copy of the source, then publish the target range. */ SCR_BYTES_SNAPSHOT(src); size_t bytes = src->len * width; + uint8_t *target = dst->data + (size_t)t * width; + if (dst->elem == src->elem) { + /* The same element kind copies the source's bytes, NaN payloads + * included. A source range that overlaps the target range (views of + * one buffer, where no snapshot was taken) is copied out first. */ + uintptr_t to = (uintptr_t)target, from = (uintptr_t)src->data; + bool overlap = to <= from ? from - to < bytes : to - from < bytes; + if (!overlap) { + scr_bytes_raw_out(dst, target, src->data, bytes); + return; + } + uint8_t *copy = scr_bytes_scratch(bytes); + scr_bytes_raw_in(src, copy, src->data, bytes); + scr_bytes_raw_out(dst, target, copy, bytes); + free(copy); + return; + } + /* Convert a private copy of the source, then publish the target range. */ uint8_t *scratch = scr_bytes_scratch(bytes); scr_bytes_convert_span(scratch, dst->elem, src->data, src->elem, src->len); - scr_bytes_raw_out(dst, dst->data + (size_t)t * width, scratch, bytes); + scr_bytes_raw_out(dst, target, scratch, bytes); free(scratch); return; } diff --git a/packages/runtime/src/scr_bytes.test.c b/packages/runtime/src/scr_bytes.test.c index 58f52fa63..8b2ff3cc1 100644 --- a/packages/runtime/src/scr_bytes.test.c +++ b/packages/runtime/src/scr_bytes.test.c @@ -37,6 +37,52 @@ static void external_set(void) { } } +/* Same-kind sets into and out of shared storage copy raw bytes, NaN + * payloads included, also between overlapping views of one shared buffer. */ +static void shared_set(void) { + enum { COUNT = 37 }; + for (ScrBytesElem elem = SCR_BYTES_U8; elem <= SCR_BYTES_F16; elem++) { + size_t width = scr_bytes_elem_size(elem), bytes = COUNT * width; + uint8_t pattern[COUNT * 8], expected[COUNT * 8]; + for (size_t i = 0; i < bytes; i++) pattern[i] = (uint8_t)(i * 37 + 0x7f); + /* Signaling NaNs, which a conversion through double would quiet. */ + const uint16_t nan16 = 0x7d01; + const uint32_t nan32 = 0x7fa00001; + const uint64_t nan64 = UINT64_C(0x7ff4000000000001); + for (size_t i = 1; i < COUNT; i += 6) { + if (elem == SCR_BYTES_F16) memcpy(pattern + i * width, &nan16, width); + if (elem == SCR_BYTES_F32) memcpy(pattern + i * width, &nan32, width); + if (elem == SCR_BYTES_F64) memcpy(pattern + i * width, &nan64, width); + } + for (int direction = 0; direction < 2; direction++) { + ScrBytes *shared = scr_bytes_new(elem, COUNT); + scr_bytes_make_shared(shared); + memcpy(shared->data, pattern, bytes); + ScrBytes *src = direction ? scr_bytes_subarray(shared, 3, COUNT) : scr_bytes_subarray(shared, 0, COUNT - 3); + double offset = direction ? 0 : 3; + memcpy(expected, pattern, bytes); + memmove(expected + (size_t)offset * width, pattern + (direction ? 3 : 0) * width, (COUNT - 3) * width); + scr_bytes_set_from(shared, src, offset); + assert(!scr_exc_pending()); + assert(memcmp(shared->data, expected, bytes) == 0); + scr_bytes_release(src); + + ScrBytes *local = scr_bytes_new(elem, COUNT); + memcpy(local->data, pattern, bytes); + ScrBytes *head = scr_bytes_subarray(local, 0, COUNT - 1); + scr_bytes_set_from(shared, head, 1); + memcpy(expected + width, pattern, bytes - width); + assert(memcmp(shared->data, expected, bytes) == 0); + memset(local->data, 0, bytes); + scr_bytes_set_from(local, shared, 0); + assert(memcmp(local->data, expected, bytes) == 0); + scr_bytes_release(head); + scr_bytes_release(local); + scr_bytes_release(shared); + } + } +} + static void copied_storage(void) { /* Same-kind copies preserve NaN payloads, signed zero and ownership. */ const uint64_t bits[] = {UINT64_C(0x7ff8000000000042), UINT64_C(0x8000000000000000), @@ -79,6 +125,7 @@ static void filled_storage(void) { void scr_bytes_test_bulk_storage(void) { long before = scr_bytes_live_count(); external_set(); + shared_set(); copied_storage(); filled_storage(); assert(scr_bytes_live_count() == before); diff --git a/packages/runtime/src/scr_dyn.h b/packages/runtime/src/scr_dyn.h index 257aa6444..82fe1a6d9 100644 --- a/packages/runtime/src/scr_dyn.h +++ b/packages/runtime/src/scr_dyn.h @@ -398,6 +398,10 @@ typedef struct ScrDynTypedClassOps { size_t count; ScrStr *const *names; /* immortal member-name strings */ ScrStr *class_name; /* immortal constructor name; NULL for an anonymous class */ + /* The string an inherited Symbol.toStringTag getter answers for the + * instance (+1), or NULL with a pending exception from the getter; + * NULL when the class has no such getter. */ + ScrStr *(*string_tag)(void *instance); } ScrDynTypedClassOps; /* A compiled JavaScript class whose instances record their own properties @@ -677,6 +681,14 @@ void scr_dyn_copy_entry(ScrDyn *target, const ScrDyn *source, const ScrDynEntry bool scr_dyn_field_eq_str(const ScrDyn *d, const ScrStr *key, const ScrStr *value); bool scr_dyn_field_eq_num(const ScrDyn *d, const ScrStr *key, double value); bool scr_dyn_field_eq_bool(const ScrDyn *d, const ScrStr *key, bool value); +/* The case a union's checked match takes from its string discriminant: the + * index in `values` of the string `d`'s own data property `key` holds, or + * -1 when every literal test above fails (`d` is not an object, or its own + * data property `key` holds no string among `values`), or -2 when only the + * tests themselves can tell (a typed capsule, an accessor, or a property + * `d` does not own). Borrowed args. */ +int32_t scr_dyn_discriminant_case(const ScrDyn *d, const ScrStr *key, ScrStr *const *values, + size_t count); /* Object.keys/values/entries over the checked-dynamic tree: JS own-key order (array-index * keys ascending first), dyn-array results (+1); values/entries RETAIN @@ -921,6 +933,7 @@ void scr_dyn_install_iterator_symbol(ScrDyn *key); void scr_dyn_install_has_instance_symbol(ScrDyn *key); void scr_dyn_install_async_iterator_symbol(ScrDyn *key); void scr_dyn_install_async_dispose_symbol(ScrDyn *key); +void scr_dyn_install_to_string_tag_symbol(ScrDyn *key); /* True when key is Symbol.asyncDispose (registered by the symbol unit when * the program names it); handle symbol_get ops outside that unit use it. */ bool scr_dyn_is_async_dispose_symbol(const ScrDyn *key); @@ -1084,6 +1097,9 @@ ScrDyn *scr_record_source_apply(ScrDyn *snapshot, const void *rec); /* Attach the prototype member names of a class instance capsule * (idempotent), so `in` sees its methods and accessors. */ void scr_dyn_typed_ref_bind_class(ScrDyn *d, const ScrDynTypedClassOps *ops); +/* A class instance capsule's inherited Symbol.toStringTag string from its + * class's getter (+1); NULL when it has none or the getter threw. */ +ScrStr *scr_dyn_typed_ref_class_tag(const ScrDyn *d); /* Attach the bag and prototype hooks of a capsule of a bag-tracked class * instance (idempotent). */ void scr_dyn_typed_ref_bind_bag_class(ScrDyn *d, const ScrDynTypedBagClassOps *ops); @@ -1181,6 +1197,10 @@ void scr_weak_dispose(void *object); double scr_dyn_arr_len(const ScrDyn *d); ScrDyn *scr_dyn_arr_at(const ScrDyn *d, double i); ScrDyn *scr_dyn_arr_named_get(const ScrDyn *d, const ScrStr *key); +/* The member `key` of an array found before Array.prototype: an own named + * property, or one on its custom prototype chain (Object.setPrototypeOf). + * NULL when the chain reaches Array.prototype without it. +1. */ +ScrDyn *scr_dyn_arr_custom_member(const ScrDyn *d, const char *key, size_t key_len); void scr_dyn_obj_set(ScrDyn *obj, const char *key, size_t key_len, ScrDyn *value); void scr_dyn_obj_set_field(ScrDyn *obj, const char *key, size_t key_len, ScrDyn *value); ScrDyn *scr_dyn_define_property(ScrDyn *target, ScrDyn *key, ScrDyn *descriptor); @@ -1383,6 +1403,9 @@ ScrDyn *scr_dyn_invoke_prepared(ScrDyn *recv, ScrDyn *callee, const char *method * *mid_slot, the site's -1-initialized slot, caches the name's method id * after the first call, so later calls skip the name lookup. */ ScrDyn *scr_dyn_invoke_prepared_id(ScrDyn *recv, ScrDyn *callee, const char *method, int32_t *mid_slot, ScrDyn *const *args, size_t argc, const char *what); +/* scr_dyn_invoke_prepared_id for a call whose result is discarded: a plain + * array's push appends without boxing its new length. */ +void scr_dyn_invoke_discard_id(ScrDyn *recv, ScrDyn *callee, const char *method, int32_t *mid_slot, ScrDyn *const *args, size_t argc, const char *what); /* scr_dyn_invoke_prepared_id for Buffer.prototype method names * (scr_bytes_dyn.c), one entry per method family: a Buffer receiver runs * the method, any other takes the ordinary dispatch. */ diff --git a/packages/runtime/src/scr_dyn_invoke.c b/packages/runtime/src/scr_dyn_invoke.c index 1dd5711a0..4901fa694 100644 --- a/packages/runtime/src/scr_dyn_invoke.c +++ b/packages/runtime/src/scr_dyn_invoke.c @@ -144,6 +144,10 @@ static void scr_dyn_display_buf(ScrJsonBuf *b, const ScrDyn *d, bool to_string) return; case SCR_DYN_TYPED_REF: { + /* ToString of a class instance that converts through + * Object.prototype.toString shows its Symbol.toStringTag getter's + * string. */ + if (to_string && scr_dyn_typed_ref_put_tag(b, d)) return; ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); scr_dyn_display_buf(b, materialized, to_string); scr_dyn_release(materialized); @@ -771,6 +775,8 @@ ScrDyn *scr_dyn_prepare_method(ScrDyn *recv, const char *method) { return scr_dyn_invoke(recv, method, NULL, 0, method); if (recv->kind == SCR_DYN_OBJ) return scr_dyn_obj_read(recv, method, strlen(method)); + if (recv->kind == SCR_DYN_ARR && (recv->v.arr.properties || recv->prototype)) + return scr_dyn_arr_custom_member(recv, method, strlen(method)); if (recv->kind == SCR_DYN_PROXY) { ScrStr *key = scr_str_new(method, strlen(method)); ScrDyn *result = scr_dyn_proxy_get(recv, key); @@ -795,20 +801,117 @@ ScrDyn *scr_dyn_invoke(ScrDyn *recv, const char *method, return scr_dyn_invoke_impl(recv, method, dyn_method_of(method), args, argc, what, NULL); } -ScrDyn *scr_dyn_invoke_prepared_id(ScrDyn *recv, ScrDyn *callee, const char *method, - int32_t *mid_slot, ScrDyn *const *args, size_t argc, - const char *what) { - if (callee) return scr_dyn_invoke_prepared(recv, callee, method, args, argc, what); - /* The slot is the call site's, shared by every thread: each writes the - * same id. */ +/* A dense array without holes, named properties or a prototype of its + * own, whose length and elements are writable: its common methods below + * run without the dispatch ladder, which answers every other receiver and + * method as before. */ +static bool dyn_arr_plain(const ScrDyn *recv) { + return recv->kind == SCR_DYN_ARR && !recv->v.arr.presence && !recv->v.arr.properties && + !recv->prototype && !recv->null_proto && !recv->non_extensible && + !recv->v.arr.sealed && !recv->v.arr.frozen && !scr_dyn_is_array_prototype(recv); +} + +/* scr_dyn_strict_eq, with the number and string cases inline: an element + * search compares every element. */ +static inline bool dyn_elem_strict_eq(const ScrDyn *a, const ScrDyn *b) { + if (a->kind == SCR_DYN_STR && b->kind == SCR_DYN_STR) { + const ScrStr *x = a->v.str, *y = b->v.str; + return x == y || (x->len == y->len && memcmp(x->data, y->data, x->len) == 0); + } + if (a->kind == SCR_DYN_NUM && b->kind == SCR_DYN_NUM) return a->v.num == b->v.num; + return scr_dyn_strict_eq(a, b); +} + +/* push, pop, shift, at, includes and indexOf of a plain array, with the + * ladder's results. An argument that would run user code (a non-number + * index, a fromIndex) leaves the call to the ladder. True when answered. */ +static bool dyn_arr_fast(ScrDyn *recv, int mid, ScrDyn *const *args, size_t argc, + ScrDyn **result) { + size_t len = recv->v.arr.len; + switch (mid) { + case DYN_M_push: + for (size_t i = 0; i < argc; i++) scr_dyn_arr_push(recv, scr_dyn_retain(args[i])); + *result = scr_dyn_new_num((double)recv->v.arr.len); + return true; + case DYN_M_pop: + if (len == 0) { + *result = scr_dyn_retain(scr_dyn_undefined()); + return true; + } + recv->v.arr.len = len - 1; + *result = recv->v.arr.items[len - 1]; /* ownership moves out */ + return true; + case DYN_M_shift: + if (len == 0) { + *result = scr_dyn_retain(scr_dyn_undefined()); + return true; + } + *result = recv->v.arr.items[0]; /* ownership moves out */ + memmove(recv->v.arr.items, recv->v.arr.items + 1, (len - 1) * sizeof(ScrDyn *)); + recv->v.arr.len = len - 1; + return true; + case DYN_M_at: { + if (argc == 0 || args[0]->kind != SCR_DYN_NUM) return false; + double index = args[0]->v.num; + index = isnan(index) ? 0 : trunc(index); + if (index < 0) index += (double)len; + *result = index < 0 || index >= (double)len ? scr_dyn_retain(scr_dyn_undefined()) + : scr_dyn_retain(recv->v.arr.items[(size_t)index]); + return true; + } + case DYN_M_includes: + case DYN_M_indexOf: { + if (argc > 1) return false; + ScrDyn *needle = argc > 0 ? args[0] : scr_dyn_undefined(); + bool nan = mid == DYN_M_includes && needle->kind == SCR_DYN_NUM && needle->v.num != needle->v.num; + for (size_t i = 0; i < len; i++) { + const ScrDyn *item = recv->v.arr.items[i]; + if (nan ? item->kind == SCR_DYN_NUM && item->v.num != item->v.num + : dyn_elem_strict_eq(item, needle)) { + *result = mid == DYN_M_includes ? scr_dyn_new_bool(true) : scr_dyn_new_num((double)i); + return true; + } + } + *result = mid == DYN_M_includes ? scr_dyn_new_bool(false) : scr_dyn_new_num(-1); + return true; + } + default: + return false; + } +} + +/* The call site's method id. The slot is the site's, shared by every + * thread: each writes the same id. */ +static int32_t dyn_site_method(const char *method, int32_t *mid_slot) { int32_t mid = __atomic_load_n(mid_slot, __ATOMIC_RELAXED); if (mid < 0) { mid = dyn_method_of(method); __atomic_store_n(mid_slot, mid, __ATOMIC_RELAXED); } + return mid; +} + +ScrDyn *scr_dyn_invoke_prepared_id(ScrDyn *recv, ScrDyn *callee, const char *method, + int32_t *mid_slot, ScrDyn *const *args, size_t argc, + const char *what) { + if (callee) return scr_dyn_invoke_prepared(recv, callee, method, args, argc, what); + int32_t mid = dyn_site_method(method, mid_slot); + ScrDyn *result; + if (dyn_arr_plain(recv) && dyn_arr_fast(recv, mid, args, argc, &result)) return result; return scr_dyn_invoke_impl(recv, method, mid, args, argc, what, NULL); } +void scr_dyn_invoke_discard_id(ScrDyn *recv, ScrDyn *callee, const char *method, + int32_t *mid_slot, ScrDyn *const *args, size_t argc, + const char *what) { + /* A plain array's push whose new length nobody reads. */ + if (!callee && dyn_arr_plain(recv) && dyn_site_method(method, mid_slot) == DYN_M_push) { + for (size_t i = 0; i < argc; i++) scr_dyn_arr_push(recv, scr_dyn_retain(args[i])); + return; + } + scr_dyn_release(scr_dyn_invoke_prepared_id(recv, callee, method, mid_slot, args, argc, what)); +} + static ScrDyn *scr_dyn_invoke_impl( ScrDyn *recv, const char *method, int mid, ScrDyn *const *args, size_t argc, const char *what, ScrDyn *callback_recv) { @@ -1121,6 +1224,14 @@ static ScrDyn *scr_dyn_invoke_impl( if (frozen_op >= 0 && scr_array_frozen_error(frozen_op, len, (double)splice_start, frozen_op == 10 ? (double)splice_removed : items, items)) return NULL; + if ((mid == DYN_M_push) && grows && recv->non_extensible) { + scr_array_not_extensible_error((double)len); + return NULL; + } + if ((mid == DYN_M_pop) && shrinks && recv->v.arr.sealed) { + scr_array_undeletable_error((double)(len - 1)); + return NULL; + } if ((grows && recv->non_extensible) || (shrinks && recv->v.arr.sealed && !(mid == DYN_M_shift))) { static const char message[] = "Cannot modify a sealed or frozen array"; scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1); @@ -1150,8 +1261,7 @@ static ScrDyn *scr_dyn_invoke_impl( scr_dyn_release(recv->v.arr.items[i - 1]); recv->v.arr.items[i - 1] = scr_dyn_retain(recv->v.arr.items[i]); } - static const char message[] = "Cannot delete non-configurable property"; - scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1); + scr_array_undeletable_error((double)(len - 1)); return NULL; } ScrDyn *first = recv->v.arr.items[0]; diff --git a/packages/runtime/src/scr_idna.c b/packages/runtime/src/scr_idna.c index 34c9e3882..7507e5caa 100644 --- a/packages/runtime/src/scr_idna.c +++ b/packages/runtime/src/scr_idna.c @@ -1,8 +1,8 @@ /* UTS #46 domain processing for node:url — the conversions Node applies to - * url.parse() hostnames (ToASCII), url.domainToASCII()/domainToUnicode() - * and url.format()'s unicode option: nontransitional mapping, NFC, label - * validity (leading combining marks, ContextJ, and the RFC 5893 bidi rule), - * and Punycode. It matches Node 24's implementation, including its + * WHATWG URL hosts and url.parse() hostnames (ToASCII), + * url.domainToASCII()/domainToUnicode() and url.format()'s unicode option: + * nontransitional mapping, NFC, label validity (leading combining marks, + * ContextJ, and the RFC 5893 bidi rule), and Punycode. It matches Node 24's implementation, including its * validity-data snapshot and the shortcuts its label checks take; the * differential corpus and test/url-legacy-cases.txt (generated from Node) * are the oracle. @@ -511,3 +511,6 @@ ScrStr *scr_idna_to_unicode(const char *p, size_t n) { } return scr_jb_finish(&out); } + +/* The URL host parser's UTS #46 ToASCII (scr_url.c). */ +void scr_url_idna_install(void) { scr_url_host_to_ascii = &scr_idna_to_ascii; } diff --git a/packages/runtime/src/scr_inspect.c b/packages/runtime/src/scr_inspect.c index 333802c70..75317f420 100644 --- a/packages/runtime/src/scr_inspect.c +++ b/packages/runtime/src/scr_inspect.c @@ -1258,6 +1258,20 @@ static bool insp_tag_names_class(const char *tag, const char *cls) { memcmp(tag + tag_len - cls_len, cls, cls_len) == 0; } +/* The Symbol.toStringTag a class instance inherits from its class's + * getter (+1), which Node brackets after the class name when it is a + * nonempty string other than the name. An own tag field is listed with + * the fields instead. A getter that throws shows no tag, as in Node. */ +static ScrStr *insp_inherited_tag(const ScrDyn *instance, const ScrStr *name) { + ScrStr *tag = scr_dyn_typed_ref_class_tag(instance); + if (!tag && scr_exc_pending()) scr_exc_clear(); + if (tag && (tag->len == 0 || (tag->len == name->len && memcmp(tag->data, name->data, name->len) == 0))) { + scr_str_release(tag); + return NULL; + } + return tag; +} + /* A native Set or Map held as a checked-dynamic value: `Set(n) { a, b }`, * `Map(n) { k => v }`, at most 100 entries like Node's maxArrayLength. */ /* Node's formatWeakCollection: the entries of a WeakMap or WeakSet are not @@ -1979,10 +1993,23 @@ ScrStr *scr_insp_dyn(ScrDyn *d, double recurse, double depth) { free(cls); } else if (name && materialized->kind == SCR_DYN_OBJ && scr_dyn_obj_get(materialized, "%error", 6) == NULL) { - char *cls = malloc(name->len + 1); + ScrStr *tag = insp_inherited_tag(d, name); + if (scr_exc_pending()) { + scr_dyn_release(materialized); + return scr_str_new("", 0); + } + size_t tag_len = tag ? tag->len + 3 : 0; + char *cls = malloc(name->len + tag_len + 1); if (!cls) scr_trap("scriptc: out of memory\n"); memcpy(cls, name->data, name->len); - cls[name->len] = '\0'; + if (tag) { + /* Node's `Name [tag]` prefix. */ + memcpy(cls + name->len, " [", 2); + memcpy(cls + name->len + 2, tag->data, tag->len); + cls[name->len + tag_len - 1] = ']'; + scr_str_release(tag); + } + cls[name->len + tag_len] = '\0'; size_t nseen = g_nseen; g_pending_seen = instance; out = scr_insp_obj(materialized, recurse, depth, cls); diff --git a/packages/runtime/src/scr_js.h b/packages/runtime/src/scr_js.h index 6fa20fdb8..1d874b31e 100644 --- a/packages/runtime/src/scr_js.h +++ b/packages/runtime/src/scr_js.h @@ -195,10 +195,13 @@ bool scr_js_truthy(ScrJsVal value); * index and which keys an object lacks. * * Each property site of compiled dynamic-tier code owns one zeroed, - * thread-local ScrJsIc. The code at the site is fixed: it tests entry 0 - * inline and calls a probe for everything else. Probes never run user - * code: they answer from plain data properties or return a miss (NULL / - * false) with nothing done, and the site then runs its generic path. + * thread-local ScrJsIc with static storage: the reset that frees a + * thread's shapes (at thread exit, and when a library session ends) clears + * every record that holds entries. The code at the site is fixed: it tests + * entry 0 inline and calls a probe for everything else. Probes never run + * user code: they answer from plain data properties or return a miss + * (NULL / false) with nothing done, and the site then runs its generic + * path. * * load entry: shape = receiver shape; target = NULL for an own property * (slot indexes the receiver's entries), else the shape of diff --git a/packages/runtime/src/scr_js_object.c b/packages/runtime/src/scr_js_object.c index 63929ab57..0e0ec0908 100644 --- a/packages/runtime/src/scr_js_object.c +++ b/packages/runtime/src/scr_js_object.c @@ -18,6 +18,7 @@ #include "scr_key.h" #include +#include /* The compiler's inline cache tests read these in place (64-bit targets; * backend/llvm/js-ic.ts). */ @@ -37,10 +38,10 @@ _Static_assert(sizeof(ScrJsIcEntry) == 40 && sizeof(ScrJsIc) == 168, "cache layo * take the generic path and its hash index. */ #define SCR_JS_SHAPE_MAX 64 -/* Shapes live until the thread exits, so a thread creates at most this - * many, holding at most this many key bytes. Once either budget is spent, - * objects whose key sequence has no shape yet stay unshaped; shapes that - * exist keep serving. */ +/* Shapes live until the thread exits or a library session ends, so a thread + * creates at most this many, holding at most this many key bytes. Once + * either budget is spent, objects whose key sequence has no shape yet stay + * unshaped; shapes that exist keep serving. */ #define SCR_JS_SHAPE_BUDGET ((size_t)1 << 16) #define SCR_JS_SHAPE_KEY_BYTES_BUDGET ((size_t)4 << 20) @@ -63,12 +64,25 @@ static SCR_TL size_t scr_js_transition_count; static SCR_TL size_t scr_js_shape_key_bytes; static SCR_TL bool scr_js_shapes_registered; +/* The cache records that hold entries. Entries name shapes and prototype + * objects, so the reset that frees the shapes also clears these records: a + * library's next session runs the same sites with the same records. */ +static SCR_TL ScrJsIc **scr_js_filled_ics; +static SCR_TL size_t scr_js_filled_count; +static SCR_TL size_t scr_js_filled_capacity; + /* The shape word of an object whose key sequence has no shape within the * budgets. No cache entry names it, so its accesses take the probes, * which answer with a miss until the key set changes. */ static ScrJsShape scr_js_unshaped; static void scr_js_shapes_reset(void) { + for (size_t i = 0; i < scr_js_filled_count; i++) + memset(scr_js_filled_ics[i], 0, sizeof *scr_js_filled_ics[i]); + free(scr_js_filled_ics); + scr_js_filled_ics = NULL; + scr_js_filled_count = 0; + scr_js_filled_capacity = 0; while (scr_js_all_shapes) { ScrJsShape *shape = scr_js_all_shapes; scr_js_all_shapes = shape->all_next; @@ -192,6 +206,16 @@ static size_t scr_js_shape_find(const ScrJsShape *shape, const char *key, size_t /* Fills a cache entry: `stale` (a matching entry whose hit failed) when * there is one, else a free or replaceable one. */ static void scr_js_ic_add(ScrJsIc *ic, uint32_t stale, ScrJsIcEntry entry) { + if (ic->count == 0) { + if (scr_js_filled_count == scr_js_filled_capacity) { + size_t capacity = scr_js_filled_capacity ? scr_js_filled_capacity * 2 : 64; + ScrJsIc **grown = realloc(scr_js_filled_ics, capacity * sizeof *grown); + if (!grown) scr_trap("scriptc: out of memory\n"); + scr_js_filled_ics = grown; + scr_js_filled_capacity = capacity; + } + scr_js_filled_ics[scr_js_filled_count++] = ic; + } uint32_t index; if (stale < ic->count) { index = stale; diff --git a/packages/runtime/src/scr_js_object.test.c b/packages/runtime/src/scr_js_object.test.c index a14aa9ff6..6b6934dea 100644 --- a/packages/runtime/src/scr_js_object.test.c +++ b/packages/runtime/src/scr_js_object.test.c @@ -24,11 +24,17 @@ static ScrDyn *object_with(const ScrStr *key, double n) { return object; } +/* Cache records have static storage, as the compiled sites' do: the reset + * at exit clears every record that holds entries. Each check starts from + * an empty record. */ +static ScrJsIc load_ic; +static ScrJsIc store_ic; + /* Whether a load probe answers `object.key` and returns `n`. */ static bool probe_reads(ScrDyn *object, const ScrStr *key, double n) { - ScrJsIc ic; - memset(&ic, 0, sizeof ic); - ScrDyn *value = scr_js_load_probe(object, key, &ic); + ScrJsIc *ic = &load_ic; + memset(ic, 0, sizeof *ic); + ScrDyn *value = scr_js_load_probe(object, key, ic); if (!value) return false; assert(value->kind == SCR_DYN_NUM && value->v.num == n); scr_dyn_release(value); @@ -66,14 +72,13 @@ static void budget_bounds_shapes(size_t key_len, size_t budget) { /* A store probe that would add a new shape leaves the add to the generic * store; one that replaces through an existing shape still runs. */ - ScrJsIc ic; - memset(&ic, 0, sizeof ic); + memset(&store_ic, 0, sizeof store_ic); ScrStr *added = scr_str_new("added", 5); ScrDyn *value = scr_dyn_new_num(8); - assert(!scr_js_store_probe(object, added, value, &ic)); + assert(!scr_js_store_probe(object, added, value, &store_ic)); assert(object->v.obj.len == 1); - memset(&ic, 0, sizeof ic); - assert(scr_js_store_probe(object, first, value, &ic)); + memset(&store_ic, 0, sizeof store_ic); + assert(scr_js_store_probe(object, first, value, &store_ic)); assert(probe_reads(object, first, 8)); scr_dyn_release(value); scr_str_release(added); @@ -90,10 +95,9 @@ static void immortal_objects_stay_unshaped(void) { object->rc = SIZE_MAX; assert(!probe_reads(object, key, 3)); assert(object->v.obj.shape == NULL); - ScrJsIc ic; - memset(&ic, 0, sizeof ic); + memset(&store_ic, 0, sizeof store_ic); ScrDyn *value = scr_dyn_new_num(4); - assert(!scr_js_store_probe(object, key, value, &ic)); + assert(!scr_js_store_probe(object, key, value, &store_ic)); assert(object->v.obj.shape == NULL); scr_dyn_release(value); scr_str_release(key); diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index 74fd53159..49af072ed 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -202,6 +202,19 @@ void scr_dyn_install_has_instance_symbol(ScrDyn *key) { scr_atexit(scr_has_instance_symbol_cleanup); } +/* Symbol.toStringTag, installed when the program first evaluates it: no + * object holds the key before then. */ +static SCR_TL ScrDyn *scr_to_string_tag_symbol; +static void scr_to_string_tag_symbol_cleanup(void) { + scr_dyn_release(scr_to_string_tag_symbol); + scr_to_string_tag_symbol = NULL; +} +void scr_dyn_install_to_string_tag_symbol(ScrDyn *key) { + if (scr_to_string_tag_symbol) return; + scr_to_string_tag_symbol = scr_dyn_retain(key); + scr_atexit(scr_to_string_tag_symbol_cleanup); +} + void scr_dyn_install_iterator_symbol(ScrDyn *key) { if (scr_iterator_symbol) return; scr_iterator_symbol = scr_dyn_retain(key); @@ -1273,10 +1286,14 @@ void scr_dyn_release(ScrDyn *d) { return; } #ifndef SCR_RC_AUDIT - /* Number and string boxes own at most one string, are never cycle - * candidates and cannot be weak keys: return them to the free list. */ + /* Number and string boxes own at most one string and cannot be weak + * keys: return them to the free list. Their releases never buffer them, + * but a collector pass can (a box that traces its payload reaches them, + * and scr_xg_release buffers what it settles), so a buffered box leaves + * its candidate buffer first. */ if ((d->kind == SCR_DYN_NUM || d->kind == SCR_DYN_STR) && !d->prototype && !d->symbol_properties && !d->symbol_keys && scr_dyn_free_count < SCR_DYN_FREE_MAX) { + scr_cyc_dead(d); if (d->kind == SCR_DYN_STR) scr_str_release(d->v.str); d->v.str = (ScrStr *)scr_dyn_free_misc; scr_dyn_free_misc = d; @@ -1422,6 +1439,24 @@ bool scr_dyn_field_eq_num(const ScrDyn *d, const ScrStr *key, double value) { return matches; } +int32_t scr_dyn_discriminant_case(const ScrDyn *d, const ScrStr *key, ScrStr *const *values, + size_t count) { + if (!d) return -1; + if (d->kind == SCR_DYN_TYPED_REF) return -2; + if (d->kind != SCR_DYN_OBJ) return -1; + for (size_t i = 0; i < d->v.obj.len; i++) { + const ScrDynEntry *entry = &d->v.obj.entries[i]; + if (entry->key_len != key->len || memcmp(entry->key, key->data, key->len) != 0) continue; + if (entry->accessor) return -2; + const ScrDyn *member = entry->value; + if (!member || member->kind != SCR_DYN_STR) return -1; + for (size_t k = 0; k < count; k++) + if (scr_str_eq(member->v.str, values[k])) return (int32_t)k; + return -1; + } + return -2; +} + bool scr_dyn_field_eq_bool(const ScrDyn *d, const ScrStr *key, bool value) { ScrDyn *member = scr_dyn_discriminant(d, key); bool matches = member && member->kind == SCR_DYN_BOOL && member->v.b == value; @@ -1704,6 +1739,21 @@ ScrDyn *scr_dyn_arr_at(const ScrDyn *d, double i) { return result; } +ScrDyn *scr_dyn_arr_custom_member(const ScrDyn *d, const char *key, size_t key_len) { + if (d->v.arr.properties && scr_dyn_obj_get(d->v.arr.properties, key, key_len)) + return scr_dyn_obj_read_receiver(d->v.arr.properties, key, key_len, d); + for (const ScrDyn *link = d->prototype; link && link != scr_builtin_array_prototype; + link = link->prototype) { + const ScrDyn *table = link->kind == SCR_DYN_OBJ ? link + : link->kind == SCR_DYN_ARR ? link->v.arr.properties + : NULL; + if (table && scr_dyn_obj_get(table, key, key_len)) + return scr_dyn_obj_read_receiver(table, key, key_len, d); + if (link->kind != SCR_DYN_OBJ && link->kind != SCR_DYN_ARR) break; + } + return NULL; +} + ScrDyn *scr_dyn_arr_named_get(const ScrDyn *d, const ScrStr *key) { if (d->v.arr.properties && scr_dyn_obj_get(d->v.arr.properties, key->data, key->len)) return scr_dyn_obj_read_receiver(d->v.arr.properties, key->data, key->len, d); @@ -3932,6 +3982,12 @@ static bool scr_dyn_name_in_strs(const ScrStr *key, ScrStr *const *names, size_t return false; } +ScrStr *scr_dyn_typed_ref_class_tag(const ScrDyn *d) { + if (!d || d->kind != SCR_DYN_TYPED_REF || d->prototype) return NULL; + const ScrDynTypedClassOps *ops = scr_typed_ref_class_ops(d); + return ops && ops->string_tag ? ops->string_tag(d->v.typed_ref.ptr) : NULL; +} + bool scr_dyn_typed_ref_class_has(const ScrDyn *d, const ScrStr *key) { if (!d || d->kind != SCR_DYN_TYPED_REF || d->prototype) return false; const ScrDynTypedClassOps *ops = scr_typed_ref_class_ops(d); @@ -4020,6 +4076,9 @@ ScrDyn *scr_dyn_index_get(const ScrDyn *d, double index) { return scr_dyn_typed_ref_element(d, i); } +static ScrStr *scr_dyn_typed_ref_conversion_tag(const ScrDyn *d); +static ScrStr *scr_dyn_tag_string(const ScrStr *tag); + ScrDyn *scr_dyn_typed_ref_string_view(const ScrDyn *d) { /* An instance of a class declared `extends Date` converts through its * toString, declared or inherited. With an exception pending the view is @@ -4033,6 +4092,16 @@ ScrDyn *scr_dyn_typed_ref_string_view(const ScrDyn *d) { scr_str_release(empty); return out; } + /* A class instance converting through Object.prototype.toString shows + * its Symbol.toStringTag getter's string. */ + ScrStr *class_tag = scr_dyn_typed_ref_conversion_tag(d); + if (class_tag || scr_exc_pending()) { + ScrStr *text = class_tag ? scr_dyn_tag_string(class_tag) : scr_str_new("", 0); + scr_str_release(class_tag); + ScrDyn *out = scr_dyn_new_str(text); + scr_str_release(text); + return out; + } ScrDyn *view = scr_dyn_typed_ref_materialize(d); const char *tag = scr_event_ref_hooks ? scr_event_ref_hooks->string_tag(d) : NULL; if (!tag || view->kind != SCR_DYN_OBJ || scr_dyn_property_owner(view, "toString", 8)) return view; @@ -8321,11 +8390,66 @@ void scr_dyn_throw(ScrDyn *d) { scr_dyn_trace_v, scr_dyn_is_object(d)); } +static ScrStr *scr_dyn_tag_string(const ScrStr *tag) { + ScrJsonBuf b; + scr_jb_init(&b); + scr_jb_puts(&b, "[object "); + scr_jb_write(&b, tag->data, tag->len); + scr_jb_putc(&b, ']'); + return scr_jb_finish(&b); +} + +/* The Symbol.toStringTag getter's string of a class instance whose + * ToString is Object.prototype.toString (its class has no toString; the + * string hint never reaches valueOf, since that answers a string): +1, or + * NULL otherwise or with the getter's exception pending. */ +static ScrStr *scr_dyn_typed_ref_conversion_tag(const ScrDyn *d) { + ScrStr *to_string_key = scr_str_new("toString", 8); + bool own_conversion = scr_dyn_typed_ref_class_has(d, to_string_key); + scr_str_release(to_string_key); + return own_conversion ? NULL : scr_dyn_typed_ref_class_tag(d); +} + +bool scr_dyn_typed_ref_put_tag(ScrJsonBuf *b, const ScrDyn *d) { + ScrStr *tag = scr_dyn_typed_ref_conversion_tag(d); + if (!tag) return scr_exc_pending(); + scr_jb_puts(b, "[object "); + scr_jb_write(b, tag->data, tag->len); + scr_jb_putc(b, ']'); + scr_str_release(tag); + return true; +} + +/* Object.prototype.toString of an object whose own or inherited + * @@toStringTag is a string (+1), NULL otherwise or with a pending + * exception from its getter. */ +static ScrStr *scr_dyn_string_tag(const ScrDyn *d) { + ScrStr *getter_tag = scr_dyn_typed_ref_class_tag(d); + if (getter_tag) { + ScrStr *out = scr_dyn_tag_string(getter_tag); + scr_str_release(getter_tag); + return out; + } + if (scr_exc_pending() || !scr_to_string_tag_symbol) return NULL; + ScrDyn *tag = scr_dyn_symbol_key_get(d, scr_to_string_tag_symbol, true); + if (!tag) return NULL; + ScrStr *out = tag->kind == SCR_DYN_STR ? scr_dyn_tag_string(tag->v.str) : NULL; + scr_dyn_release(tag); + return out; +} + ScrStr *scr_dyn_object_tag(const ScrDyn *d) { if (d->kind == SCR_DYN_PROXY) { scr_dyn_proxy_unsupported("Symbol.toStringTag lookup"); return NULL; } + /* Object.prototype.toString answers a string @@toStringTag over the + * builtin tag of a plain object or a class instance. */ + if ((d->kind == SCR_DYN_OBJ || (d->kind == SCR_DYN_TYPED_REF && !scr_dyn_ref_is_error(d) && + !scr_dyn_generator(d)))) { + ScrStr *tag = scr_dyn_string_tag(d); + if (tag || scr_exc_pending()) return tag; + } if (d->kind == SCR_DYN_TYPED_REF) { if (scr_dyn_ref_is_error(d)) return scr_str_new("[object Error]", 14); if (scr_dyn_generator(d)) { @@ -9668,6 +9792,13 @@ ScrStr *scr_dyn_string_coerce_js(const ScrDyn *d) { return NULL; } if (d->kind == SCR_DYN_TYPED_REF) { + ScrStr *tag = scr_dyn_typed_ref_conversion_tag(d); + if (tag) { + ScrStr *out = scr_dyn_tag_string(tag); + scr_str_release(tag); + return out; + } + if (scr_exc_pending()) return NULL; ScrDyn *materialized = scr_dyn_typed_ref_string_view(d); ScrStr *out = scr_dyn_string_coerce_js(materialized); scr_dyn_release(materialized); @@ -9688,7 +9819,7 @@ ScrStr *scr_dyn_string_coerce_js(const ScrDyn *d) { scr_error_release(error); return text; } - return scr_str_new("[object Object]", 15); + return scr_dyn_object_tag(d); } if (!m || m->kind != SCR_DYN_FUNC) { scr_dyn_release(m); continue; } /* OrdinaryToPrimitive performs a method call, not a bare function diff --git a/packages/runtime/src/scr_json.h b/packages/runtime/src/scr_json.h index de4510264..8a4ecc62d 100644 --- a/packages/runtime/src/scr_json.h +++ b/packages/runtime/src/scr_json.h @@ -119,6 +119,11 @@ _Static_assert(offsetof(ScrJsonBuf, data) == 0 && offsetof(ScrJsonBuf, len) == s "LLVM backend expects ScrJsonBuf to start with { data, len, cap }"); void scr_jb_init(ScrJsonBuf *b); +/* String conversion of a class instance whose ToString is + * Object.prototype.toString and whose class has a Symbol.toStringTag + * getter: appends "[object Tag]" and answers true, also with the getter's + * exception pending; false when the ordinary conversion applies. */ +bool scr_dyn_typed_ref_put_tag(ScrJsonBuf *b, const ScrDyn *d); /* Release a buffer's text without finishing it (error paths). */ void scr_jb_abandon(ScrJsonBuf *b); /* Append a borrowed byte span verbatim, including embedded NUL bytes. */ diff --git a/packages/runtime/src/scr_json.test.c b/packages/runtime/src/scr_json.test.c index a28759876..29ba4bfe3 100644 --- a/packages/runtime/src/scr_json.test.c +++ b/packages/runtime/src/scr_json.test.c @@ -391,6 +391,30 @@ static bool buffered_after_read(ScrDyn *d) { return buffered(d); } +/* A collector pass can buffer a number or string box that it reached + * through an owner that traces it: scr_xg_release, settling an edge a + * restricted pass skipped, calls scr_cyc_on_release on the target. The + * box's last release must take it out of its candidate buffer before its + * block returns to the free list, which hands it to the next box. */ +static void buffered_leaf_release(void) { + for (uint16_t gen = SCR_CYC_NURSERY; gen < SCR_CYC_NGENS; gen++) { + ScrStr *text = scr_str_new("buffered", 8); + ScrDyn *leaves[2] = {scr_dyn_new_str(text), scr_dyn_new_num(0.5)}; + scr_str_release(text); + for (int i = 0; i < 2; i++) { + scr_cyc_set_gen(scr_cyc_hdr(leaves[i]), gen); + scr_cyc_on_release(leaves[i]); + scr_dyn_release(leaves[i]); + } + ScrDyn *fresh[2] = {scr_dyn_new_num(1.5), scr_dyn_new_num(2.5)}; + assert(!buffered(fresh[0]) && !buffered(fresh[1])); + scr_collect_cycles(); + assert(fresh[0]->v.num == 1.5 && fresh[1]->v.num == 2.5); + scr_dyn_release(fresh[0]); + scr_dyn_release(fresh[1]); + } +} + static ScrDyn *parse_text(const char *text) { ScrStr *input = scr_str_new(text, strlen(text)); ScrDyn *parsed = scr_json_parse(input); @@ -823,6 +847,7 @@ int main(void) { shared_property_keys(); checked_leaf_cycles(); checked_number_storage(); + buffered_leaf_release(); json_intact_regions(); json_schema_parse(); json_schema_special_names(); diff --git a/packages/runtime/src/scr_symbol.c b/packages/runtime/src/scr_symbol.c index 647c31dc3..727e008b5 100644 --- a/packages/runtime/src/scr_symbol.c +++ b/packages/runtime/src/scr_symbol.c @@ -90,6 +90,11 @@ ScrSym *scr_sym_well_known(ScrStr *name) { scr_dyn_install_has_instance_symbol(key); scr_dyn_release(key); } + if (name->len == 11 && !memcmp(name->data, "toStringTag", 11)) { + ScrDyn *key = scr_dyn_new_symbol(symbol); + scr_dyn_install_to_string_tag_symbol(key); + scr_dyn_release(key); + } if (name->len == 13 && !memcmp(name->data, "asyncIterator", 13)) { ScrDyn *key = scr_dyn_new_symbol(symbol); scr_dyn_install_async_iterator_symbol(key); diff --git a/packages/runtime/src/scr_url.c b/packages/runtime/src/scr_url.c index 09ccb87fe..a61286c63 100644 --- a/packages/runtime/src/scr_url.c +++ b/packages/runtime/src/scr_url.c @@ -21,10 +21,8 @@ * case preserved, C0-encoded), a single "/" roots a normalized path, * anything else is an OPAQUE path with the C0 control set encoded * (data:text/plain,hi there) - * - * DOCUMENTED DIVERGENCE: a special host that holds non-ASCII text after - * percent-decoding is rejected with "Invalid URL" (no UTS #46 processing), - * and "xn--" labels are kept without Punycode validation. + * - UTS #46 processing of non-ASCII hosts through the IDNA unit + * (scr_url_idna_install) * * Failures THROW catchable TypeErrors through the exception cell with * Node's messages; callers are compiler-emitted pending checks. */ @@ -430,16 +428,21 @@ static int hex_val(char c) { return -1; } +/* UTS #46 ToASCII (scr_idna.c), which programs that use URLs install at + * startup (scr_url_idna_install). NULL refuses hosts that hold non-ASCII + * text. */ +ScrStr *(*scr_url_host_to_ascii)(const char *p, size_t n) = NULL; + /* The URL Standard's host parser for the constructor and the setters, * with canonical IPv6 serialization: * - a non-special (opaque) host refuses forbidden host code points and * percent-encodes the C0 control set; - * - a special host is percent-decoded, lowercased, refused when it holds a - * forbidden domain code point, and serialized as dotted decimal when it - * ends in a number (or refused when that number is invalid). - * Divergence: a special host that decodes to non-ASCII needs UTS #46 - * processing, which this unit does not link, so it is refused; "xn--" - * labels are kept without Punycode validation. */ + * - a special host is percent-decoded and lowercased; when that leaves + * non-ASCII text it goes through UTS #46 ToASCII (as Node's host parser + * does, an ASCII host, "xn--" labels included, is only lowercased). The + * result is refused when it holds a forbidden domain code point, and + * serialized as dotted decimal when it ends in a number (or refused when + * that number is invalid). */ static bool parse_host(const char *hp, size_t host_len, bool special, bool is_file, ScrStr **host) { bool ipv6 = host_len > 0 && hp[0] == '['; @@ -467,6 +470,7 @@ static bool parse_host(const char *hp, size_t host_len, bool special, bool is_fi *host = ub_take(&hb); return true; } + bool non_ascii = false; for (size_t i = 0; i < host_len; i++) { unsigned char c = (unsigned char)hp[i]; int hi, lo; @@ -475,12 +479,27 @@ static bool parse_host(const char *hp, size_t host_len, bool special, bool is_fi c = (unsigned char)(hi * 16 + lo); i += 2; } - if (url_host_byte_class[c] & URL_FORBIDDEN_DOMAIN) { + if (c >= 0x80) non_ascii = true; + if (c >= 'A' && c <= 'Z') c = (unsigned char)(c - 'A' + 'a'); + ub_push(&hb, (char)c); + } + if (non_ascii) { + /* UTS #46 ToASCII, or refused without the IDNA unit. */ + ScrStr *ascii = scr_url_host_to_ascii ? scr_url_host_to_ascii(hb.data, hb.len) : NULL; + free(hb.data); + if (!ascii || ascii->len == 0) { + scr_str_release(ascii); + return false; + } + ub_init(&hb); + ub_append(&hb, ascii->data, ascii->len); + scr_str_release(ascii); + } + for (size_t i = 0; i < hb.len; i++) { + if (url_host_byte_class[(unsigned char)hb.data[i]] & URL_FORBIDDEN_DOMAIN) { free(hb.data); return false; } - if (c >= 'A' && c <= 'Z') c = (unsigned char)(c - 'A' + 'a'); - ub_push(&hb, (char)c); } if (url_ends_in_number(hb.data, hb.len)) { UrlBuf ip; diff --git a/packages/runtime/src/scr_url.h b/packages/runtime/src/scr_url.h index c7c9c63c8..13a7d093b 100644 --- a/packages/runtime/src/scr_url.h +++ b/packages/runtime/src/scr_url.h @@ -46,6 +46,10 @@ void scr_url_set_checked(ScrUrl *u, ScrStr *field, const ScrDyn *value); /* borr * null and has no lowering for an object that is not a URL. Borrowed; +1, * or NULL with the error pending. */ ScrDyn *scr_url_to_http_options(ScrUrl *u); +/* UTS #46 ToASCII for the host parser: NULL until scr_url_idna_install + * (scr_idna.c, emitted at startup by programs that use URLs) sets it. */ +extern ScrStr *(*scr_url_host_to_ascii)(const char *p, size_t n); +void scr_url_idna_install(void); ScrDyn *scr_url_to_http_options_dyn(const ScrDyn *value); /* node:url's legacy surface (scr_url_legacy.c — linked with the regex, * querystring and dyn-async units). url.parse() answers a checked-dynamic diff --git a/scripts/zero-cost-compare.mjs b/scripts/zero-cost-compare.mjs index ff3acf2e9..088bad751 100644 --- a/scripts/zero-cost-compare.mjs +++ b/scripts/zero-cost-compare.mjs @@ -405,8 +405,9 @@ export function nodeIslandSymbols(names) { * not yet traced to its typed root. bench/thread-slots, * bench/channel-messages and bench/worker-messages, added later, link them * through worker messages: - * node:worker_threads values are dyn objects. bench/dynamic-methods is - * untyped JavaScript. Every other bench workload is fully typed and must link none. The gate and + * node:worker_threads values are dyn objects. bench/json-unions, added + * later too, decodes JSON.parse trees. bench/dynamic-methods and + * bench/dynamic-properties are untyped JavaScript. Every other bench workload is fully typed and must link none. The gate and * tests/harness/bench-dynamic-tier.test.ts enforce that, and the test also * fails when a listed workload stops linking them, so remove a workload here * when a leak fix makes its binary clean. */ @@ -421,10 +422,12 @@ export const DYNAMIC_WORKLOADS = new Set([ "bench/thread-slots", "bench/channel-messages", "bench/dynamic-methods", + "bench/dynamic-properties", "bench/worker-messages", "bench/typed-array-scan-workers", "bench/log-summary", "bench/inventory-report", + "bench/json-unions", ]); /** Names of the functions (text and weak symbols) in `nm` output. Mach-O diff --git a/tests/corpus/6305-json-discriminant-dispatch.ts b/tests/corpus/6305-json-discriminant-dispatch.ts new file mode 100644 index 000000000..ac4d992da --- /dev/null +++ b/tests/corpus/6305-json-discriminant-dispatch.ts @@ -0,0 +1,123 @@ +// JSON cast into a union with many string discriminant literals: the cast +// reads the discriminant once and tests only the arm whose literal it +// holds, plus the arms that are not records. An arm can list several +// literals, and values that are not objects reach the other arms in +// canonical order. Valid casts only (see 1002-json-parse-cast.ts); JSON keys +// and record fields alphabetical for stringify parity. + +type Expr = + | { kind: "num"; value: number } + | { kind: "str"; text: string } + | { kind: "neg"; operand: Expr } + | { kind: "add" | "mul"; left: Expr; right: Expr } + | { args: Expr[]; kind: "call"; name: string } + | { kind: "method"; name: string; target: Expr } + | { kind: "list"; items: Expr[] }; + +function show(e: Expr): string { + switch (e.kind) { + case "num": + return String(e.value); + case "str": + return JSON.stringify(e.text); + case "neg": + return `-(${show(e.operand)})`; + case "add": + return `(${show(e.left)} + ${show(e.right)})`; + case "mul": + return `(${show(e.left)} * ${show(e.right)})`; + case "call": + return `${e.name}(${e.args.map(show).join(", ")})`; + case "method": + return `${show(e.target)}.${e.name}()`; + case "list": + return `[${e.items.map(show).join(", ")}]`; + } +} + +function evaluate(e: Expr): number { + switch (e.kind) { + case "num": + return e.value; + case "str": + return e.text.length; + case "neg": + return -evaluate(e.operand); + case "add": + return evaluate(e.left) + evaluate(e.right); + case "mul": + return evaluate(e.left) * evaluate(e.right); + case "call": + return e.args.reduce((sum, arg) => sum + evaluate(arg), 0); + case "method": + return evaluate(e.target); + case "list": + return e.items.length; + } +} + +const source = + '{"kind":"add","left":{"kind":"mul","left":{"kind":"num","value":3},' + + '"right":{"kind":"neg","operand":{"kind":"num","value":4}}},' + + '"right":{"args":[{"kind":"str","text":"abc"},{"kind":"num","value":2}],"kind":"call","name":"sum"}}'; +const tree = JSON.parse(source) as Expr; +console.log(show(tree)); +console.log(evaluate(tree)); +console.log(JSON.stringify(tree) === source); + +const method = JSON.parse( + '{"kind":"method","name":"size","target":{"items":[{"kind":"num","value":1}],"kind":"list"}}', +) as Expr; +console.log(show(method), evaluate(method)); + +// A deep list of every arm, built from text. +const parts: string[] = []; +for (let i = 0; i < 200; i++) { + parts.push( + i % 3 === 0 + ? `{"kind":"num","value":${i}}` + : i % 3 === 1 + ? `{"kind":"neg","operand":{"kind":"num","value":${i}}}` + : `{"kind":"mul","left":{"kind":"num","value":${i}},"right":{"kind":"str","text":"xy"}}`, + ); +} +const list = JSON.parse(`{"items":[${parts.join(",")}],"kind":"list"}`) as Expr; +if (list.kind === "list") { + let total = 0; + for (const item of list.items) total += evaluate(item); + console.log(list.items.length, total); +} + +// Arms that are not records: a value that is not an object can only be one +// of them. +type Token = + | { kind: "ident"; name: string } + | { kind: "number"; value: number } + | { kind: "string"; value: string } + | { kind: "punct"; symbol: string } + | { kind: "comment"; line: number; text: string } + | string + | number; + +function describe(token: Token): string { + if (typeof token === "string") return `raw ${token}`; + if (typeof token === "number") return `count ${token}`; + switch (token.kind) { + case "ident": + return `ident ${token.name}`; + case "number": + return `number ${token.value}`; + case "string": + return `string ${JSON.stringify(token.value)}`; + case "punct": + return `punct ${token.symbol}`; + case "comment": + return `comment ${token.line}: ${token.text}`; + } +} + +const tokens = JSON.parse( + '[{"kind":"ident","name":"x"},{"kind":"punct","symbol":"="},{"kind":"number","value":42},' + + '{"kind":"string","value":"hi"},{"kind":"comment","line":3,"text":"note"},"spare",7]', +) as Token[]; +for (const token of tokens) console.log(describe(token)); diff --git a/tests/corpus/6306-discriminant-getter-dispatch.ts b/tests/corpus/6306-discriminant-getter-dispatch.ts new file mode 100644 index 000000000..4f0a1244f --- /dev/null +++ b/tests/corpus/6306-discriminant-getter-dispatch.ts @@ -0,0 +1,55 @@ +// A checked cast into a union with many string discriminant literals reads +// the discriminant once, but a getter that runs while an arm's fields are +// checked can change it. The cast then continues with the arms after the +// one that failed, testing each arm's literal again, and matches the arm +// the new discriminant names. Each getter changes the discriminant on its +// first call only; the program reads the getter once itself, so Node (where +// the cast runs no code) reaches the same state. Valid casts only (see +// 1002-json-parse-cast.ts). + +type Shape = + | { kind: "circle"; radius: number } + | { kind: "square"; side: number } + | { kind: "rect"; height: number; width: number } + | { kind: "tri"; a: number; b: number; c: number }; + +function area(shape: Shape): number { + switch (shape.kind) { + case "circle": + return Math.round(Math.PI * shape.radius * shape.radius); + case "square": + return shape.side * shape.side; + case "rect": + return shape.width * shape.height; + case "tri": { + const s = (shape.a + shape.b + shape.c) / 2; + return Math.sqrt(s * (s - shape.a) * (s - shape.b) * (s - shape.c)); + } + } +} + +// The circle arm reads `radius`, whose getter turns the value into a square. +let squareReads = 0; +const square: any = { + kind: "circle", + get radius() { + squareReads++; + if (squareReads === 1) square.kind = "square"; + return "none"; + }, + side: 3, +}; +const asSquare = square as Shape; +void square.radius; +console.log(square.kind, asSquare.kind, area(asSquare)); + +// Values without getters take the arm their discriminant names. +const plain: any[] = [ + { kind: "rect", width: 2, height: 5 }, + { kind: "tri", a: 3, b: 4, c: 5 }, + { kind: "circle", radius: 2 }, +]; +for (const value of plain) { + const shape = value as Shape; + console.log(shape.kind, area(shape)); +} diff --git a/tests/corpus/7660-pointer-union-forwarded-arguments.ts b/tests/corpus/7660-pointer-union-forwarded-arguments.ts new file mode 100644 index 000000000..664f79fcb --- /dev/null +++ b/tests/corpus/7660-pointer-union-forwarded-arguments.ts @@ -0,0 +1,127 @@ +// Records and class instances passed to `T | undefined` and `T | null` +// parameters. The callee receives the object pointer itself, so a binding +// that the callee only reads keeps its frame storage; callees that keep, +// return or compare the argument still see one shared object. +interface Vec { + x: number; + y: number; +} +interface Tagged { + name: string; + at: Vec; +} +function vec(x: number, y: number): Vec { + return { x, y }; +} +function len(v: Vec | undefined): number { + return v === undefined ? -1 : Math.sqrt(v.x * v.x + v.y * v.y); +} +function sum(a: Vec | undefined, b: Vec): Vec { + return a === undefined ? b : { x: a.x + b.x, y: a.y + b.y }; +} +function label(t: Tagged | undefined): string { + return t === undefined ? "none" : t.name + "@" + t.at.x + "," + t.at.y; +} +function depth(v: Vec | undefined, n: number): number { + if (v === undefined || n === 0) return 0; + return v.x + depth(v, n - 1); +} + +const kept: (Vec | undefined)[] = []; +function keep(v: Vec | undefined): number { + kept.push(v); + return kept.length; +} +function same(a: Vec | undefined, b: Vec): boolean { + return a === b; +} +function orNull(v: Vec | undefined): Vec | undefined { + return v !== undefined && v.x < 0 ? undefined : v; +} + +class Cell { + value: number; + next: Cell | null; + constructor(value: number, next: Cell | null) { + this.value = value; + this.next = next; + } +} +function cellTotal(c: Cell | null): number { + let total = 0; + for (let at = c; at !== null; at = at.next) total += at.value; + return total; +} +function fail(v: Vec | undefined): number { + if (v !== undefined && v.x > 100) throw new Error("too far: " + v.x); + return v === undefined ? 0 : v.x; +} + +function projections(): void { + const a = vec(3, 4); + const b = sum(a, vec(1, 1)); + console.log("len", len(a), len(b), len(undefined)); + const c = sum(sum(a, b), a); + console.log("sum", c.x, c.y, sum(undefined, a).x); + console.log("depth", depth(a, 5), depth(undefined, 3)); + let total = 0; + for (let i = 0; i < 1000; i++) { + const p = vec(i, i + 1); + total += len(p) + len(sum(p, a)); + } + console.log("loop", total.toFixed(6)); +} + +function mutated(): void { + const p = vec(1, 2); + console.log("before", len(p)); + p.x = 6; + p.y = 8; + console.log("after", len(p)); +} + +function strings(): void { + const prefix = ["a", "b", "c"].join("-"); + const t: Tagged = { name: prefix + "!", at: vec(2, 5) }; + console.log("label", label(t), label(undefined)); + const u: Tagged = { name: label(t), at: t.at }; + console.log("nested", label(u)); +} + +function escapes(): void { + const a = vec(7, 8); + const count = keep(a); + const b = vec(9, 10); + console.log("kept", count, kept[0] === a, kept[0]!.x, keep(b), kept[1]!.y); + a.x = 70; + console.log("shared", kept[0]!.x); + const c = vec(1, 1); + console.log("same", same(c, c), same(c, vec(1, 1)), same(undefined, c)); + const d = vec(-1, 2); + const e = vec(4, 5); + console.log("returned", orNull(d), orNull(e) === e, orNull(e)!.y); +} + +function classes(): void { + const tail = new Cell(3, null); + const list = new Cell(1, new Cell(2, tail)); + console.log("cells", cellTotal(list), cellTotal(tail), cellTotal(null)); +} + +function throwing(): void { + const near = vec(5, 0); + const far = vec(500, 0); + try { + console.log("near", fail(near)); + console.log("far", fail(far)); + } catch (e) { + console.log("caught", (e as Error).message, near.x, far.x); + } +} + +projections(); +mutated(); +strings(); +escapes(); +classes(); +throwing(); diff --git a/tests/corpus/7663-pointer-union-stored-payload.ts b/tests/corpus/7663-pointer-union-stored-payload.ts new file mode 100644 index 000000000..92ac68bfb --- /dev/null +++ b/tests/corpus/7663-pointer-union-stored-payload.ts @@ -0,0 +1,83 @@ +// Records passed to `T | undefined` parameters whose callee keeps the +// narrowed record: pushed into a global array (also through a non-null +// assertion), kept through `??`, stored in a nullable class field or a record +// field, or passed on to a callee that keeps it. Each record must outlive its +// caller's frame. A callee that only reads the narrowed record lets it stay +// where it is. +interface Tagged { + id: number; + tags: string[]; +} +interface Slot { + held: Tagged | undefined; +} +const kept: Tagged[] = []; +const slot: Slot = { held: undefined }; +function pushNarrowed(t: Tagged | undefined): void { + if (t !== undefined) kept.push(t); +} +function pushAsserted(t: Tagged | undefined): void { + kept.push(t!); +} +function keepDefaulted(t: Tagged | undefined): void { + kept.push(t ?? { id: -1, tags: [] }); +} +function storeInSlot(t: Tagged | undefined): void { + if (t !== undefined) slot.held = t; +} +function keepRecord(t: Tagged): void { + kept.push(t); +} +function passOn(t: Tagged | undefined): void { + if (t !== undefined) keepRecord(t); +} +function readOnly(t: Tagged | undefined): number { + return t === undefined ? 0 : t.id + t.tags.length; +} +class Holder { + last: Tagged | undefined = undefined; + take(t: Tagged | undefined): void { + this.last = t; + } +} +const holder = new Holder(); +function fill(round: number): number { + let read = 0; + for (let i = 0; i < 3; i++) { + const a: Tagged = { id: round * 10 + i, tags: ["a", String(i)] }; + pushNarrowed(a); + const b: Tagged = { id: round * 10 + i + 100, tags: ["b"] }; + keepDefaulted(b); + const c: Tagged = { id: round * 10 + i + 200, tags: ["c"] }; + storeInSlot(c); + const d: Tagged = { id: round * 10 + i + 300, tags: ["d", "d"] }; + holder.take(d); + const e: Tagged = { id: round * 10 + i + 400, tags: [] }; + passOn(e); + const g: Tagged = { id: round * 10 + i + 600, tags: ["g", "g", "g"] }; + pushAsserted(g); + const f: Tagged = { id: round * 10 + i + 500, tags: ["f"] }; + read += readOnly(f); + } + return read; +} +// Reuses the stack the callers above ran on, and allocates collectable +// records, before the kept ones are read. +function churn(n: number): number { + let total = 0; + for (let i = 0; i < n; i++) { + const t: Tagged = { id: i, tags: [String(i), String(i + 1)] }; + total += t.tags.length + readOnly(t); + } + return total; +} +let reads = 0; +for (let round = 0; round < 4; round++) { + reads += fill(round); + reads += churn(200); +} +console.log("reads", reads); +console.log("kept", kept.length); +for (const t of kept) console.log(t.id, t.tags.join("+")); +console.log("slot", slot.held === undefined ? "none" : slot.held.id, slot.held?.tags.join("+")); +console.log("holder", holder.last === undefined ? "none" : holder.last.id, holder.last?.tags.join("+")); diff --git a/tests/corpus/7751-class-well-known-symbol-fields.ts b/tests/corpus/7751-class-well-known-symbol-fields.ts new file mode 100644 index 000000000..d57fce3f8 --- /dev/null +++ b/tests/corpus/7751-class-well-known-symbol-fields.ts @@ -0,0 +1,115 @@ +// Class fields keyed by well-known symbols, Symbol.toStringTag first (the +// lru-cache shape), beside toStringTag getters and module symbol keys. +// String conversion, Object.prototype.toString and util.inspect read the +// tag as Node does, through typed values and through `unknown`. + +const limit = Symbol("limit"); + +class Cache { + size = 0; + [limit] = 10; + [Symbol.toStringTag] = "LRUCache"; +} + +class Sub extends Cache { + extra = 1; +} + +class Retag extends Cache { + constructor() { + super(); + this[Symbol.toStringTag] = "Retagged"; + } +} + +class Tagged { + x = 1; + get [Symbol.toStringTag](): string { + return "Custom"; + } +} + +class TaggedSub extends Tagged { + y = 2; +} + +class Named { + get [Symbol.toStringTag](): string { + return "Named"; + } +} + +class Blank { + get [Symbol.toStringTag](): string { + return ""; + } +} + +class Plain { + n = 3; +} + +const c = new Cache(); +console.log(String(c), `${c}`, Object.prototype.toString.call(c), c[Symbol.toStringTag]); +console.log(c); +console.log(Object.keys(c), JSON.stringify(c)); +console.log(new Sub(), String(new Sub())); +const r: Cache = new Retag(); +console.log(String(r), r); +c[Symbol.toStringTag] = "Other"; +console.log(`${c}`, c); + +const t = new Tagged(); +console.log(String(t), `${t}`, t, [t], { deep: { deeper: { t } } }); +const ts: Tagged = new TaggedSub(); +console.log(String(ts), ts); +console.log(new Named(), new Blank(), String(new Blank())); +console.log(String(new Plain()), new Plain()); + +const values: unknown[] = [new Cache(), new Tagged(), new TaggedSub(), new Plain()]; +for (const v of values) { + console.log(Object.prototype.toString.call(v), String(v), (v as { [Symbol.toStringTag]?: unknown })[Symbol.toStringTag]); +} +console.log(values); + +const literal: unknown = { [Symbol.toStringTag]: "Literal", a: 1 }; +console.log(Object.prototype.toString.call(literal), String(literal), `${literal}`); + +// util.inspect ignores a Symbol.toStringTag getter that throws, typed or +// held as an untyped value. +class Throwing { + get [Symbol.toStringTag](): string { + throw new Error("tag"); + } +} +const throwing: unknown = new Throwing(); +console.log(new Throwing(), [new Throwing()], throwing, [throwing]); + +// A conversion to "[object Object]" still evaluates its receiver. +let made = 0; +function make(): Plain { + made++; + return new Plain(); +} +function fail(): Plain { + throw new Error("receiver"); +} +console.log(Object.prototype.toString.call(make()), String(make()), made); +try { + console.log(Object.prototype.toString.call(fail())); +} catch (error) { + console.log((error as Error).message); +} + +// ToString of a class with valueOf and no toString reads its tag; the +// default hint calls valueOf. +class Valued { + valueOf(): number { + return 1; + } + get [Symbol.toStringTag](): string { + return "Valued"; + } +} +const valued: unknown = new Valued(); +console.log(String(valued), `${valued}`, [valued].join(), valued + "", Object.prototype.toString.call(valued)); diff --git a/tests/corpus/7984-untyped-array-methods.mjs b/tests/corpus/7984-untyped-array-methods.mjs new file mode 100644 index 000000000..a68ec305e --- /dev/null +++ b/tests/corpus/7984-untyped-array-methods.mjs @@ -0,0 +1,120 @@ +// Untyped calls of push, pop, shift, at, includes and indexOf: plain arrays +// take a direct path; arrays with holes, frozen, sealed or non-extensible +// arrays, Array.prototype, proxies, and arrays whose own property or +// prototype defines the method take the full dispatch. Each call is made +// both for its result and as a statement, whose result is dropped. +function attempt(label, f) { + try { + console.log(label, f()); + } catch (e) { + console.log(label, "threw", e.constructor.name, e.message); + } +} +function push(a, v) { + return a.push(v); +} +function pushOnly(a, v) { + a.push(v); + return a.length; +} +function push2(a, v, w) { + return a.push(v, w); +} +function pop(a) { + return a.pop(); +} +function shift(a) { + return a.shift(); +} +function at(a, i) { + return a.at(i); +} +function includes(a, v) { + return a.includes(v); +} +function indexOf(a, v) { + return a.indexOf(v); +} +function indexFrom(a, v, from) { + return a.indexOf(v, from); +} +function len(a) { + return a.length; +} + +const holes = JSON.parse("[1, 2, 3]"); +delete holes[1]; +attempt("holes push", () => push(holes, 4)); +attempt("holes push statement", () => pushOnly(holes, 5)); +attempt("holes includes", () => [includes(holes, undefined), indexOf(holes, undefined), at(holes, 1)]); +attempt("holes pop", () => [pop(holes), len(holes)]); +attempt("holes shift", () => [shift(holes), len(holes), 1 in holes]); + +const frozen = Object.freeze(JSON.parse("[1, 2]")); +attempt("frozen push", () => push(frozen, 3)); +attempt("frozen push statement", () => pushOnly(frozen, 3)); +attempt("frozen pop", () => pop(frozen)); +attempt("frozen shift", () => shift(frozen)); +attempt("frozen includes", () => [includes(frozen, 2), indexOf(frozen, 2), at(frozen, -1)]); + +const sealed = Object.seal(JSON.parse("[1, 2]")); +attempt("sealed push", () => push(sealed, 3)); +attempt("sealed push statement", () => pushOnly(sealed, 3)); +attempt("sealed pop", () => pop(sealed)); +attempt("sealed shift", () => [shift(sealed), JSON.stringify(sealed)]); +attempt("sealed includes", () => [includes(sealed, 2), at(sealed, 0)]); + +const fixed = Object.preventExtensions(JSON.parse("[1, 2]")); +attempt("fixed push", () => push(fixed, 3)); +attempt("fixed push statement", () => pushOnly(fixed, 3)); +attempt("fixed pop", () => [pop(fixed), len(fixed)]); +attempt("fixed shift", () => [shift(fixed), len(fixed)]); + +attempt("prototype includes", () => [includes(Array.prototype, 1), indexOf(Array.prototype, 1), at(Array.prototype, 0)]); + +const handler = new Proxy({ push(v) { return "proxied push " + v; }, at(i) { return "proxied at " + i; } }, {}); +attempt("proxy push", () => push(handler, 7)); +attempt("proxy push statement", () => pushOnly(handler, 7)); +attempt("proxy at", () => at(handler, 1)); + +const own = JSON.parse("[1, 2]"); +own.push = function (v) { + return "own push " + v; +}; +own.includes = function (v) { + return "own includes " + v; +}; +attempt("own push", () => [push(own, 9), len(own)]); +attempt("own push statement", () => pushOnly(own, 9)); +attempt("own includes", () => [includes(own, 1), indexOf(own, 1)]); +const notCallable = JSON.parse("[1, 2]"); +notCallable.pop = 5; +attempt("own non-callable pop", () => pop(notCallable)); + +const customProto = Object.create(Array.prototype); +customProto.push = function (v) { + return "proto push " + v + " onto " + this.length; +}; +const reproto = JSON.parse("[1, 2]"); +Object.setPrototypeOf(reproto, customProto); +attempt("reproto push", () => push(reproto, 9)); +attempt("reproto push statement", () => pushOnly(reproto, 9)); +attempt("reproto pop", () => [pop(reproto), len(reproto)]); + +const plain = JSON.parse("[]"); +for (let i = 0; i < 5; i++) push2(plain, i, i * 2); +for (let i = 0; i < 3; i++) pushOnly(plain, "s" + i); +attempt("plain", () => [len(plain), pop(plain), shift(plain), at(plain, -2), at(plain, 1.9), at(plain, -0), at(plain, NaN), at(plain, 100), at(plain, -100)]); +attempt("plain search", () => [includes(plain, 8), indexOf(plain, 8), includes(plain, "s1"), indexOf(plain, "s1"), indexOf(plain, "s9"), indexFrom(plain, 2, 3), includes(plain)]); +attempt("plain at string", () => [at(plain, "1"), at(plain, undefined), at(plain, { valueOf() { return 2; } })]); +const nans = JSON.parse("[1]"); +pushOnly(nans, NaN); +pushOnly(nans, -0); +attempt("nan", () => [includes(nans, NaN), indexOf(nans, NaN), includes(nans, 0), indexOf(nans, 0), indexOf(nans, -0)]); +const empty = JSON.parse("[]"); +attempt("empty", () => [pop(empty), shift(empty), at(empty, 0), includes(empty, undefined), indexOf(empty, undefined), len(empty)]); +const objects = JSON.parse("[]"); +const key = { k: 1 }; +pushOnly(objects, key); +pushOnly(objects, { k: 1 }); +attempt("objects", () => [includes(objects, key), indexOf(objects, key), indexOf(objects, { k: 1 }), at(objects, 0) === key]); diff --git a/tests/corpus/8002-while-byte-length-companions.ts b/tests/corpus/8002-while-byte-length-companions.ts new file mode 100644 index 000000000..e37ec9e57 --- /dev/null +++ b/tests/corpus/8002-while-byte-length-companions.ts @@ -0,0 +1,201 @@ +// While loops bounded by a typed array or Buffer length, with companion +// counters that only grow: reversed copies with line breaks, steps of two, +// early exits, skipped passes, nested loops and loops inside loops. + +function reverseLines( + line: Uint8Array, + target: Uint8Array, + start: number, +): number { + const len = line.length; + const right = len - 1; + let read = 0; + let written = 0; + let count = 0; + let lines = 0; + while (read < len) { + let c = line[right - read]!; + read++; + if (c === 10) { + if (read === len) break; + c = line[right - read]!; + read++; + } + target[written] = c + 1; + written++; + count++; + if ((count + start - lines) % 5 === 0) { + target[written] = 10; + written++; + count++; + lines++; + } + } + return written * 1000 + lines * 10 + count; +} + +const text = Buffer.from("ABCDEFGHIJ\nKLMNOPQRST\nUVWXYZ\n"); +const out = new Uint8Array(64); +for (const start of [0, 1, 3, 7]) { + const summary = reverseLines(text, out, start); + console.log( + start, + summary, + Buffer.from(out.subarray(0, Math.floor(summary / 1000))).toString("latin1"), + ); +} + +function pairs(values: Uint16Array): number[] { + let i = 0; + let sums = 0; + let odd = 0; + const result: number[] = []; + while (i < values.length) { + i += 2; + sums++; + if ((values[i - 2]! & 1) === 1) odd += 3; + result.push(values[i - 2]! + (values[i - 1] ?? -1)); + } + result.push(i, sums, odd); + return result; +} +console.log(pairs(new Uint16Array([1, 2, 3, 4, 5]))); +console.log(pairs(new Uint16Array(0))); +console.log(pairs(new Uint16Array([65535, 65535]))); + +function firstZero(bytes: Uint8Array): string { + let i = 0; + let seen = 0; + let total = -5; + while (i < bytes.length) { + i++; + if (bytes[i - 1] === 0) break; + seen++; + total += bytes[i - 1]!; + } + return `${i} ${seen} ${total}`; +} +console.log( + firstZero(new Uint8Array([3, 4, 0, 9])), + firstZero(new Uint8Array([1, 2])), + firstZero(new Uint8Array(0)), +); + +function skipping(bytes: Uint8Array): string { + let i = 0; + let kept = 0; + let skipped = 0; + while (i < bytes.length) { + const b = bytes[i]!; + i++; + if (b > 100) { + skipped++; + continue; + } + kept++; + } + return `${i} ${kept} ${skipped}`; +} +console.log(skipping(new Uint8Array([1, 200, 3, 250, 255, 7]))); + +function repeated(bytes: Uint8Array): string { + let i = 0; + let inner = 0; + let outer = 0; + while (i < bytes.length) { + i++; + outer++; + let j = 0; + while (j < bytes[i - 1]!) { + j++; + inner++; + } + } + return `${i} ${outer} ${inner}`; +} +console.log(repeated(new Uint8Array([2, 0, 5, 1]))); + +function grid(rows: Float64Array[]): string { + let total = 0; + let cells = 0; + for (const row of rows) { + let k = 0; + let doubled = 0; + while (k < row.length) { + k++; + cells++; + doubled += 2; + total += row[k - 1]! * doubled; + } + total += k * 0.5; + } + return `${cells} ${total}`; +} +console.log( + grid([ + new Float64Array([0.5, 1.5]), + new Float64Array(0), + new Float64Array([-2, 3, 4.25]), + ]), +); + +function views(buffer: ArrayBuffer): string { + const view = new DataView(buffer, 2); + let offset = 0; + let words = 0; + const parts: string[] = []; + while (offset < view.byteLength) { + offset += 2; + words++; + if (offset <= view.byteLength) + parts.push(view.getUint16(offset - 2, true).toString(16)); + } + return `${offset} ${words} ${parts.join(",")}`; +} +const backing = new Uint8Array([9, 9, 1, 2, 3, 4, 5]).buffer; +console.log(views(backing)); + +function captured(bytes: Uint8Array): number { + let i = 0; + let n = 0; + const read = (): number => n; + while (i < bytes.length) { + i++; + n++; + } + return read() + i; +} +console.log(captured(new Uint8Array(4))); + +function fromNegative(bytes: Int8Array): string { + let i = 0; + let level = -3; + let low = -0; + while (i < bytes.length) { + i++; + level++; + if (bytes[i - 1]! < 0) low++; + } + return `${level} ${low} ${Object.is(low, -0)}`; +} +console.log( + fromNegative(new Int8Array([-1, 2, -3])), + fromNegative(new Int8Array(0)), +); + +function throwing(bytes: Uint8Array): number { + let i = 0; + let n = 0; + while (i < bytes.length) { + i++; + n++; + if (bytes[i - 1] === 7) throw new Error(`stopped at ${i} after ${n}`); + } + return n; +} +try { + console.log(throwing(new Uint8Array([1, 2]))); + console.log(throwing(new Uint8Array([1, 7, 3]))); +} catch (error) { + console.log((error as Error).message); +} diff --git a/tests/corpus/8105-url-idna-hosts.js b/tests/corpus/8105-url-idna-hosts.js new file mode 100644 index 000000000..329566013 --- /dev/null +++ b/tests/corpus/8105-url-idna-hosts.js @@ -0,0 +1,58 @@ +// WHATWG URL hosts that hold non-ASCII text, directly or after +// percent-decoding, go through UTS #46 ToASCII as the host parser in Node +// does: mapped and normalized labels become Punycode, and disallowed code +// points, invalid joiners and bidi violations make the URL invalid. Cases +// from the WPT url test data, plus setters, pathToFileURL UNC hosts and +// URL.canParse. +import url from "node:url"; + +const parses = [ + ["http://é@é", null], + ["http://GOO\u200B\u2060\uFEFFgoo.com", "http://other.com/"], + ["http://www.foo。bar.com", "http://other.com/"], + ["http://Go.com", "http://other.com/"], + ["http://你好你好", "http://other.com/"], + ["https://faß.ExAmPlE/", null], + ["http://0Xc0.0250.01", "http://other.com/"], + ["ftp://%e2%98%83", null], + ["https://%e2%98%83", null], + ["file://a\u00ADb/p", null], + ["file://a%C2%ADb/p", null], + ["file://loC𝐀𝐋𝐇𝐨𝐬𝐭/usr/bin", null], + ["https://a%C2%ADb/", null], + ["http://münchen.de/straße", null], + ["https://日本語.jp/", null], + ["http://例え.テスト/", null], + ["http://xn--mnchen-3ya.de/", null], + ["http://a\u200Db.com/", null], + ["http://אa.com/", null], + ["http://ab�c/", null], + ["ws://ÉXAMPLE.org:8080/x", null], +]; +function describe(value) { + return [value.href, value.host, value.hostname, value.origin].join(" | "); +} +for (const [input, base] of parses) { + let line; + try { + line = describe(base === null ? new URL(input) : new URL(input, base)); + } catch (e) { + line = `throws ${e.code}`; + } + console.log(JSON.stringify(input), "=>", line, URL.canParse(input, base ?? undefined)); +} +const writes = [ + ["host", "https://x/", "ß"], + ["host", "https://example.com/", "a%C2%ADb"], + ["hostname", "https://example.com/", "a%C2%ADb"], + ["hostname", "https://example.com/", "BÜCHER.example"], +]; +for (const [name, href, value] of writes) { + const target = new URL(href); + if (name === "host") target.host = value; + else target.hostname = value; + console.log(name, JSON.stringify(value), "=>", describe(target)); +} +for (const path of ["\\\\münchen\\share\\f", "\\\\BÜCHER\\s\\f"]) { + console.log(JSON.stringify(path), url.pathToFileURL(path, { windows: true }).href); +} diff --git a/tests/corpus/8106-shared-typed-array-set.ts b/tests/corpus/8106-shared-typed-array-set.ts new file mode 100644 index 000000000..7e20aad72 --- /dev/null +++ b/tests/corpus/8106-shared-typed-array-set.ts @@ -0,0 +1,97 @@ +// TypedArray.prototype.set where the source, the target or both are views of +// a SharedArrayBuffer: same element kinds (bytes copied as is, NaN payloads +// included), different kinds (converted per element), offsets, overlapping +// ranges of one buffer, Buffer targets and out-of-bounds offsets. +function bits(label: string, buffer: ArrayBufferLike): void { + const words = new Uint32Array(buffer); + const out: string[] = []; + for (let i = 0; i < words.length; i++) out.push(words[i]!.toString(16)); + console.log(label, out.join(",")); +} + +const shared = new SharedArrayBuffer(32); +const bytes = new Uint8Array(shared); + +// Private source into a shared target, then shared into shared and shared into private. +bytes.set(new Uint8Array([1, 2, 3, 4, 5]), 2); +console.log("private into shared", bytes.subarray(0, 8).join(",")); +const other = new Uint8Array(new SharedArrayBuffer(8)); +other.set(bytes.subarray(2, 7)); +console.log("shared into shared", other.join(",")); +const local = new Uint8Array(12); +local.set(other, 3); +console.log("shared into private", local.join(",")); + +// Overlapping ranges of the same buffer, forward and backward. +const overlap = new Uint8Array(new SharedArrayBuffer(10)); +overlap.set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); +overlap.set(overlap.subarray(0, 6), 3); +console.log("overlap forward", overlap.join(",")); +overlap.set(overlap.subarray(4, 10), 1); +console.log("overlap backward", overlap.join(",")); + +// Same kind, wider elements: a signaling NaN keeps its bits. +const floatBits = new Uint32Array(new SharedArrayBuffer(8)); +floatBits[0] = 0x7fa00001; +floatBits[1] = 0xffc00002; +const floatsShared = new Float32Array(floatBits.buffer); +const floatsLocal = new Float32Array(2); +floatsLocal.set(floatsShared); +bits("f32 shared into private", floatsLocal.buffer); +const floatsBack = new Float32Array(new SharedArrayBuffer(8)); +floatsBack.set(floatsLocal); +bits("f32 private into shared", floatsBack.buffer); + +const doubleBits = new Uint32Array(new SharedArrayBuffer(16)); +doubleBits[0] = 5; +doubleBits[1] = 0x7ff40000; +doubleBits[2] = 0; +doubleBits[3] = 0xc0090000; +const doublesShared = new Float64Array(doubleBits.buffer); +const doublesCopy = new Float64Array(new SharedArrayBuffer(16)); +doublesCopy.set(doublesShared); +bits("f64 shared into shared", doublesCopy.buffer); +console.log("f64 values", doublesCopy[1]); + +const signed = new Int16Array(new SharedArrayBuffer(8)); +signed.set(new Int16Array([-32768, -1, 32767]), 1); +console.log("i16 private into shared", signed.join(",")); + +// Different kinds convert each element. +const clamped = new Uint8ClampedArray(new SharedArrayBuffer(4)); +clamped.set(new Int16Array([300, -5, 128, 255])); +console.log("i16 into shared clamped", clamped.join(",")); +const wrapped = new Uint8Array(new SharedArrayBuffer(4)); +wrapped.set(new Int16Array(signed.buffer, 2, 3)); +console.log("shared i16 into shared u8", wrapped.join(",")); +const narrowed = new Int8Array(4); +narrowed.set(new Float64Array(doublesShared.buffer, 8, 1)); +narrowed.set(new Uint8Array([200, 127]), 2); +console.log("f64 and u8 into i8", narrowed.join(",")); +const fromClamped = new Uint8Array(new SharedArrayBuffer(4)); +fromClamped.set(clamped); +console.log("shared clamped into shared u8", fromClamped.join(",")); + +// Buffer views over shared memory take the same paths. +const buf = Buffer.from(shared, 16, 8); +buf.set(Buffer.from("scriptc"), 1); +console.log("buffer", buf.toString("latin1", 1, 8), bytes[17], bytes[23]); +const into = Buffer.alloc(4); +into.set(buf.subarray(1, 4)); +console.log("buffer into private", into.toString("hex")); + +// Offsets past the end throw before writing. +for (const offset of [-1, 30, 31]) { + try { + bytes.set(new Uint8Array([9, 9]), offset); + console.log("set at", offset, bytes[30], bytes[31]); + } catch (error) { + console.log("set at", offset, (error as Error).name, (error as Error).message); + } +} +try { + floatsBack.set(new Float32Array(3)); +} catch (error) { + console.log("too long", (error as Error).name, (error as Error).message); +} +console.log("unchanged", floatsBack.join(",")); diff --git a/tests/corpus/8107-shared-typed-array-set-workers.ts b/tests/corpus/8107-shared-typed-array-set-workers.ts new file mode 100644 index 000000000..6be32668b --- /dev/null +++ b/tests/corpus/8107-shared-typed-array-set-workers.ts @@ -0,0 +1,63 @@ +// TypedArray.prototype.set on SharedArrayBuffer views in a program with +// workers: the same cases on the main thread and in a worker (same element +// kinds with NaN payloads, overlapping ranges of one buffer, converted +// kinds), and a worker's set into a buffer that the main thread reads after +// a message. +import { isMainThread, parentPort, Worker, workerData } from "node:worker_threads"; + +interface Job { + shared: SharedArrayBuffer; +} + +function hex(buffer: ArrayBufferLike): string { + const words = new Uint32Array(buffer); + const out: string[] = []; + for (let i = 0; i < words.length; i++) out.push(words[i]!.toString(16)); + return out.join(","); +} + +function cases(where: string): string[] { + const lines: string[] = []; + const bytes = new Uint8Array(new SharedArrayBuffer(12)); + bytes.set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]); + bytes.set(bytes.subarray(0, 8), 4); + lines.push(`${where} overlap forward ${bytes.join(",")}`); + bytes.set(bytes.subarray(5, 12), 0); + lines.push(`${where} overlap backward ${bytes.join(",")}`); + + const floatBits = new Uint32Array(new SharedArrayBuffer(8)); + floatBits[0] = 0x7f800001; + floatBits[1] = 0x7fc12345; + const local = new Float32Array(2); + local.set(new Float32Array(floatBits.buffer)); + const back = new Float32Array(new SharedArrayBuffer(12)); + back.set(local, 1); + lines.push(`${where} f32 ${hex(local.buffer)} ${hex(back.buffer)}`); + + const halves = new Uint16Array(new SharedArrayBuffer(8)); + halves.set(new Uint16Array([65535, 1, 2]), 1); + const signed = new Int16Array(4); + signed.set(halves); + const clamped = new Uint8ClampedArray(new SharedArrayBuffer(4)); + clamped.set(signed); + lines.push(`${where} kinds ${halves.join(",")} ${signed.join(",")} ${clamped.join(",")}`); + return lines; +} + +if (isMainThread) { + for (const line of cases("main")) console.log(line); + const shared = new SharedArrayBuffer(16); + const job: Job = { shared }; + const worker = new Worker(new URL(import.meta.url), { workerData: job }); + worker.on("message", (message: string) => { + console.log(message); + console.log("worker wrote", new Uint8Array(shared).join(",")); + void worker.terminate(); + }); +} else { + const { shared } = workerData as Job; + const target = new Uint8Array(shared); + target.set(new Uint8Array([9, 8, 7]), 2); + target.set(target.subarray(2, 5), 10); + parentPort!.postMessage(cases("worker").join("\n")); +} diff --git a/tests/corpus/8215-js-any-logical-module-bindings/main.ts b/tests/corpus/8215-js-any-logical-module-bindings/main.ts new file mode 100644 index 000000000..3a1d5eb17 --- /dev/null +++ b/tests/corpus/8215-js-any-logical-module-bindings/main.ts @@ -0,0 +1,8 @@ +// Module bindings of a JavaScript package whose initializers combine an +// untyped value with a string, number or boolean through `||`, `&&`, `??` +// or `?:` (pi-coding-agent's config.js): other modules and functions read +// the values as in Node. +import { banner, usage } from "app-config"; + +console.log(banner); +console.log(usage("check")); diff --git a/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/config.js b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/config.js new file mode 100644 index 000000000..faecb8b2b --- /dev/null +++ b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/config.js @@ -0,0 +1,18 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +let pkg = {}; +try { + pkg = JSON.parse(readFileSync(join(import.meta.dirname, "..", "package.json"), "utf-8")); +} +catch (e) { + if (e.code !== "ENOENT") + throw e; +} +const configName = pkg.appConfig?.name; +export const APP_NAME = configName || "app"; +export const APP_TITLE = configName ? APP_NAME : "App"; +export const CONFIG_DIR = pkg.appConfig?.configDir || ".config"; +export const VERSION = pkg.version ?? "0.0.0"; +export const RETRIES = pkg.appConfig?.retries ?? 3; +export const isBundled = typeof APP_BUNDLED !== "undefined" && APP_BUNDLED; diff --git a/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.d.ts b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.d.ts new file mode 100644 index 000000000..4c4706926 --- /dev/null +++ b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.d.ts @@ -0,0 +1,2 @@ +export declare const banner: string; +export declare function usage(kind: "check" | "list"): string; diff --git a/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.js b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.js new file mode 100644 index 000000000..251303802 --- /dev/null +++ b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/index.js @@ -0,0 +1 @@ +export { banner, usage } from "./usage.js"; diff --git a/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/usage.js b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/usage.js new file mode 100644 index 000000000..736cef3c0 --- /dev/null +++ b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/dist/usage.js @@ -0,0 +1,12 @@ +import { APP_NAME, APP_TITLE, CONFIG_DIR, RETRIES, VERSION, isBundled } from "./config.js"; + +const USAGE = { + check: `${APP_NAME} check --dir ${CONFIG_DIR}`, + list: `${APP_NAME} list`, +}; + +export const banner = `${APP_TITLE} ${VERSION} (bundled: ${isBundled}, retries: ${RETRIES})`; + +export function usage(kind) { + return `${USAGE[kind]} [${APP_NAME.toUpperCase()}_HOME=${CONFIG_DIR}] ${typeof isBundled} ${RETRIES + 1}`; +} diff --git a/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/package.json b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/package.json new file mode 100644 index 000000000..918204988 --- /dev/null +++ b/tests/corpus/8215-js-any-logical-module-bindings/node_modules/app-config/package.json @@ -0,0 +1 @@ +{ "name": "app-config", "version": "2.1.0", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", "appConfig": { "configDir": ".app" } } diff --git a/tests/harness/ci-test-plan.test.ts b/tests/harness/ci-test-plan.test.ts index dd77039ca..29268c841 100644 --- a/tests/harness/ci-test-plan.test.ts +++ b/tests/harness/ci-test-plan.test.ts @@ -298,8 +298,10 @@ test("pull requests run the full suite on Linux and the darwin suite on macOS", // runner, and directly elsewhere. const linuxRun = linux.steps.at(-1)!.run as string; expect(linuxRun.startsWith("ulimit -c 0\n")).toBe(true); - expect(linuxRun).toContain("systemd-run --scope --quiet -p MemoryMax=14G -p OOMPolicy=continue"); - expect(linuxRun).toMatch(/-- env PATH="\$PATH" HOME="\$HOME" node scripts\/ci-test\.mjs\n/); + expect(linuxRun).toContain("systemd-run --scope --quiet -p MemoryMax=15G -p OOMPolicy=continue"); + expect(linuxRun).toMatch( + /-- env PATH="\$PATH" HOME="\$HOME" NODE_OPTIONS="--max-old-space-size=4096" node scripts\/ci-test\.mjs\n/, + ); expect(linuxRun.endsWith("fi\nnode scripts/ci-test.mjs\n")).toBe(true); expect(macos.steps.at(-1)!.run).toBe("node scripts/ci-test.mjs"); for (const job of [linux, macos]) expect(job.strategy.matrix.flavor).toEqual(["plain", "san"]); diff --git a/tests/harness/corpus-costs/6305-json-discriminant-dispatch.ts.json b/tests/harness/corpus-costs/6305-json-discriminant-dispatch.ts.json new file mode 100644 index 000000000..7e2a9d53c --- /dev/null +++ b/tests/harness/corpus-costs/6305-json-discriminant-dispatch.ts.json @@ -0,0 +1 @@ +{ "plain": 5844, "san": 7609 } diff --git a/tests/harness/corpus-costs/6306-discriminant-getter-dispatch.ts.json b/tests/harness/corpus-costs/6306-discriminant-getter-dispatch.ts.json new file mode 100644 index 000000000..2c49e2f02 --- /dev/null +++ b/tests/harness/corpus-costs/6306-discriminant-getter-dispatch.ts.json @@ -0,0 +1 @@ +{ "plain": 3800, "san": 4900 } diff --git a/tests/harness/corpus-costs/7751-class-well-known-symbol-fields.ts.json b/tests/harness/corpus-costs/7751-class-well-known-symbol-fields.ts.json new file mode 100644 index 000000000..5ed28c9dd --- /dev/null +++ b/tests/harness/corpus-costs/7751-class-well-known-symbol-fields.ts.json @@ -0,0 +1 @@ +{ "plain": 3800, "san": 4300 } diff --git a/tests/harness/corpus-costs/7984-untyped-array-methods.mjs.json b/tests/harness/corpus-costs/7984-untyped-array-methods.mjs.json new file mode 100644 index 000000000..5ae927c90 --- /dev/null +++ b/tests/harness/corpus-costs/7984-untyped-array-methods.mjs.json @@ -0,0 +1 @@ +{ "plain": 4100, "san": 4500 } diff --git a/tests/harness/corpus-costs/8002-while-byte-length-companions.ts.json b/tests/harness/corpus-costs/8002-while-byte-length-companions.ts.json new file mode 100644 index 000000000..d22ff8534 --- /dev/null +++ b/tests/harness/corpus-costs/8002-while-byte-length-companions.ts.json @@ -0,0 +1 @@ +{ "plain": 3948, "san": 3569 } diff --git a/tests/harness/corpus-costs/8215-js-any-logical-module-bindings/main.ts.json b/tests/harness/corpus-costs/8215-js-any-logical-module-bindings/main.ts.json new file mode 100644 index 000000000..d5d1c5f65 --- /dev/null +++ b/tests/harness/corpus-costs/8215-js-any-logical-module-bindings/main.ts.json @@ -0,0 +1 @@ +{ "plain": 2500, "san": 3500 } diff --git a/tests/harness/dyncheck.test.ts b/tests/harness/dyncheck.test.ts index 15068776a..69e97dc6d 100644 --- a/tests/harness/dyncheck.test.ts +++ b/tests/harness/dyncheck.test.ts @@ -396,6 +396,95 @@ console.log("unreachable", s.kind); expect(r.stderr).toContain("Uncaught TypeError: expected object | object at $, got object"); }); + test("a union read by its discriminant fails with every arm named, as arm-by-arm tests do", async () => { + // Five record arms with six literals, plus string and number arms: the + // check reads `kind` once and tests only the arm it names and the + // arms that are not records. + const r = await compileAndRun( + "union-discriminant-dispatch", + `type Expr = + | { kind: "num"; value: number } + | { kind: "str"; text: string } + | { kind: "neg"; operand: Expr } + | { kind: "add" | "mul"; left: Expr; right: Expr } + | { items: Expr[]; kind: "list" } + | string + | number; +const inputs = [ + '{"kind":"num"}', + '{"kind":"nope","value":1}', + '{"kind":7,"value":1}', + '{"value":1}', + '{"kind":"neg","operand":{"kind":"add","left":{"kind":"num","value":1},"right":{"kind":"str","text":5}}}', + 'true', + '{"items":["a",3,{"kind":"mul","left":"x","right":2}],"kind":"list"}', +]; +for (const input of inputs) { + try { + console.log(JSON.stringify(JSON.parse(input) as Expr)); + } catch (error) { + console.log((error as Error).message); + } +} +`, + ); + const any = "number | object | object | object | object | object | string"; + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe( + [ + `expected ${any} at $, got object`, + `expected ${any} at $, got object`, + `expected ${any} at $, got object`, + `expected ${any} at $, got object`, + `expected ${any} at $, got object`, + `expected ${any} at $, got boolean`, + '{"items":["a",3,{"kind":"mul","left":"x","right":2}],"kind":"list"}', + "", + ].join("\n"), + ); + }); + + test("a getter that changes the discriminant during an arm's check continues with the later arms", async () => { + // Each getter sets `kind` and fails its arm's check: to a later arm's + // literal (that arm matches), to an earlier arm's literal (arm-by-arm + // tests do not go back), and to a literal no arm holds. + const r = await compileAndRun( + "union-discriminant-getter", + `type Shape = + | { kind: "circle"; radius: number } + | { kind: "square"; side: number } + | { kind: "rect"; height: number; width: number } + | { kind: "tri"; a: number; b: number; c: number }; +const flip = (value: any, to: string): string => { + value.kind = to; + return "none"; +}; +const later: any = { kind: "circle", get radius() { return flip(later, "square"); }, side: 3 }; +const earlier: any = { kind: "square", radius: 2, get side() { return flip(earlier, "circle"); } }; +const unknown: any = { kind: "square", get side() { return flip(unknown, "hexagon"); } }; +const inputs = [later, earlier, unknown]; +for (const input of inputs) { + try { + const shape = input as Shape; + console.log("matched", shape.kind); + } catch (error) { + console.log((error as Error).message); + } +} +`, + ); + const any = "object | object | object | object"; + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe( + [ + "matched square", + `expected ${any} at $, got object`, + `expected ${any} at $, got object`, + "", + ].join("\n"), + ); + }); + test("nested paths point at the offending element", async () => { const r = await compileAndRun( "nested-path", diff --git a/tests/harness/event-loop-cases.ts b/tests/harness/event-loop-cases.ts index 50a7d2b85..e0ecfc899 100644 --- a/tests/harness/event-loop-cases.ts +++ b/tests/harness/event-loop-cases.ts @@ -37,9 +37,11 @@ export const eventLoopCases: EventLoopCase[] = [ { title: "stdio values: 'readable' drains with read(), then fires once more at EOF", fixture: "stdio-readable.mjs", + // The first chunk waits until both readers run: a reader that starts + // after the second chunk arrives reads the two in one 'readable'. script: { writes: [ - { delayMs: 0, data: "alpha " }, + { delayMs: 500, data: "alpha " }, { delayMs: 60, data: "beta\n" }, ], end: true, diff --git a/tests/harness/library-mode.test.ts b/tests/harness/library-mode.test.ts index 7eecd3c93..784dc747b 100644 --- a/tests/harness/library-mode.test.ts +++ b/tests/harness/library-mode.test.ts @@ -363,6 +363,17 @@ globals: undefined fenced expect(run.stdout).toBe(SESSION + SESSION + SESSION); }); + test("K4: untyped property caches start empty in every session", async () => { + // The shapes a session's cache entries name are freed when it ends; + // the next session's sites must not find those entries. + const { archive, outDir } = await buildLibrary("js-ic-sessions", emission); + const probe = buildProbe("js-ic-sessions", archive, outDir); + const run = runProbe(probe); + expect(run.signal).toBeNull(); + expect(run.status).toBe(0); + expect(run.stdout).toBe("run: 20000\n".repeat(3)); + }); + /* ── K5/K6/K7: the trap channel ──────────────────────────────────────── */ test("K5: a trap delivers to the sink exactly once, host survives", async () => { @@ -582,6 +593,15 @@ survived, sink_calls=1 expect(run.stdout).toBe(SESSION + SESSION + SESSION); }); + platformTest("K10: property caches across sessions under ASan", async () => { + const { archive, outDir } = await buildLibrary("js-ic-sessions", emission, { sanitize: true }); + const probe = buildProbe("js-ic-sessions", archive, outDir, { sanitize: true }); + const run = runProbe(probe); + expect(run.signal).toBeNull(); + expect(run.status).toBe(0); + expect(run.stdout).toBe("run: 20000\n".repeat(3)); + }); + platformTest("K10: K5/K7 under ASan", async () => { const { archive, outDir } = await buildLibrary("traps", emission, { sanitize: true }); const probe = buildProbe("traps", archive, outDir, { sanitize: true }); diff --git a/tests/library-mode/js-ic-sessions/lib.ts b/tests/library-mode/js-ic-sessions/lib.ts new file mode 100644 index 000000000..ebea59a54 --- /dev/null +++ b/tests/library-mode/js-ic-sessions/lib.ts @@ -0,0 +1,6 @@ +// The library's typed export over untyped code (work.mjs). +import { runAll } from "./work.mjs"; + +export function run(): number { + return runAll() as number; +} diff --git a/tests/library-mode/js-ic-sessions/probe.c b/tests/library-mode/js-ic-sessions/probe.c new file mode 100644 index 000000000..7dbcb56bf --- /dev/null +++ b/tests/library-mode/js-ic-sessions/probe.c @@ -0,0 +1,25 @@ +/* Three sessions of a library whose untyped code reads and writes through + * property caches: each prints the same result, and under the sanitize + * flavor no session reads a cache entry the previous session freed. */ +#include +#include + +extern void kj_init(void); +extern void kj_set_panic_sink(void (*fn)(void *, const uint8_t *, size_t, uint64_t), void *ctx); +extern void kj_collect(void); +extern double kj_run(void); + +static void sink(void *ctx, const uint8_t *msg, size_t len, uint64_t addr) { + (void)ctx; (void)addr; + printf("UNEXPECTED SINK: %.*s", (int)len, (const char *)msg); +} + +int main(void) { + kj_set_panic_sink(sink, NULL); + for (int session = 0; session < 3; session++) { + kj_init(); + printf("run: %.0f\n", kj_run()); + kj_collect(); + } + return 0; +} diff --git a/tests/library-mode/js-ic-sessions/profile.json b/tests/library-mode/js-ic-sessions/profile.json new file mode 100644 index 000000000..fd802b42c --- /dev/null +++ b/tests/library-mode/js-ic-sessions/profile.json @@ -0,0 +1,14 @@ +{ + "profile_format": 1, + "name": "conformance-js-ic-sessions", + "entry": "lib.ts", + "emission": "llvm", + "abi": { + "prefix": "kj_", + "init_symbol": "kj_init", + "sink_register_symbol": "kj_set_panic_sink", + "collect_symbol": "kj_collect", + "result_reset_symbol": null + }, + "exports": [{ "export": "run", "symbol": "kj_run", "params": [], "returns": "f64" }] +} diff --git a/tests/library-mode/js-ic-sessions/work.mjs b/tests/library-mode/js-ic-sessions/work.mjs new file mode 100644 index 000000000..5c1afcd18 --- /dev/null +++ b/tests/library-mode/js-ic-sessions/work.mjs @@ -0,0 +1,26 @@ +// Dynamic-tier property caches across library sessions: objects built empty +// and filled through untyped stores, read back through untyped loads, and a +// class instance at the same kind of sites. Each session must start with +// empty caches, since the shapes their entries named are freed when the +// previous session ends. +class Box { + constructor(v) { + this.v = v; + } +} +function fill(o, n) { + o.a = n; + o.b = n + 1; + return o; +} +function sum(o) { + return o.a + o.b; +} +function unbox(b) { + return b.v; +} +export function runAll() { + let total = 0; + for (let i = 0; i < 100; i++) total += sum(fill({}, i)); + return total + unbox(new Box(total)); +} From fe6dd9a5c5fa057f799fc7072e92bc2772c96785 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sat, 24 Oct 2026 17:38:25 -0500 Subject: [PATCH 008/128] Skip a byte order mark at the start of package.json The run-time resolver parsed package.json as it read it, so a file that starts with a UTF-8 byte order mark failed to parse and computed require and require.resolve ended with the invalid-package-config refusal. Node's reader skips the mark; the resolver now does too. The corpus program writes the package with the marked package.json to a fresh directory at run time and resolves it by its absolute path, so no committed file contains the mark. --- packages/runtime/src/scr_require.c | 7 +++++++ .../8211-require-resolve-computed/main.ts | 6 ++++-- .../node_modules/resolve-probe/index.js | 21 ++++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/runtime/src/scr_require.c b/packages/runtime/src/scr_require.c index 645273bce..d1ede2186 100644 --- a/packages/runtime/src/scr_require.c +++ b/packages/runtime/src/scr_require.c @@ -138,6 +138,13 @@ static ScrDyn *req_read_package(ScrRequire *r, ScrStr *pjson) { if (scr_exc_pending()) scr_exc_clear(); return NULL; } + /* Node's reader skips a leading UTF-8 byte order mark. */ + if (text->len >= 3 && (unsigned char)text->data[0] == 0xEF && + (unsigned char)text->data[1] == 0xBB && (unsigned char)text->data[2] == 0xBF) { + ScrStr *body = scr_str_new(text->data + 3, text->len - 3); + scr_str_release(text); + text = body; + } ScrDyn *pkg = scr_json_parse(text); scr_str_release(text); if (pkg == NULL) { diff --git a/tests/corpus/8211-require-resolve-computed/main.ts b/tests/corpus/8211-require-resolve-computed/main.ts index d8e441d2f..ab94d0625 100644 --- a/tests/corpus/8211-require-resolve-computed/main.ts +++ b/tests/corpus/8211-require-resolve-computed/main.ts @@ -1,7 +1,9 @@ // require.resolve with requests computed at run time, called directly and // read as a value, resolves like Node: builtins, relative files with -// Node's extension search, package "main" and "exports" entries, a -// package's own name, and MODULE_NOT_FOUND for requests that name nothing. +// Node's extension search, package "main" and "exports" entries (a +// package.json that starts with a byte order mark included, written at run +// time), a package's own name, and MODULE_NOT_FOUND for requests that name +// nothing. import { resolveAll } from "resolve-probe"; for (const line of resolveAll()) console.log(line); diff --git a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js index 870a14401..4be08c224 100644 --- a/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js +++ b/tests/corpus/8211-require-resolve-computed/node_modules/resolve-probe/index.js @@ -1,5 +1,7 @@ +import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; import { createRequire } from "node:module"; -import { dirname, relative } from "node:path"; +import { tmpdir } from "node:os"; +import { dirname, join, relative } from "node:path"; import { fileURLToPath } from "node:url"; const importer = fileURLToPath(import.meta.url); @@ -39,6 +41,22 @@ const requests = [ 42, ]; +// A package whose package.json starts with a byte order mark, written to a +// fresh directory and resolved by its absolute path: "main" is still read. +function resolveWithByteOrderMark() { + const dir = mkdtempSync(join(tmpdir(), "scriptc-bom-")); + try { + const pkg = join(dir, "with-bom"); + mkdirSync(join(pkg, "lib"), { recursive: true }); + const manifest = JSON.stringify({ name: "with-bom", main: "lib/entry.js" }); + writeFileSync(join(pkg, "package.json"), "\uFEFF" + manifest); + writeFileSync(join(pkg, "lib", "entry.js"), 'module.exports = "with-bom";\n'); + return relative(pkg, load.resolve(pkg)); + } finally { + rmSync(dir, { recursive: true, force: true }); + } +} + export function resolveAll(options = {}) { const resolve = options.resolve ?? load.resolve; const label = (request) => (typeof request === "string" ? JSON.stringify(request) : String(request)); @@ -46,5 +64,6 @@ export function resolveAll(options = {}) { ...requests.map((request) => `call ${label(request)} -> ${describe((r) => load.resolve(r), request)}`), ...requests.slice(0, 4).map((request) => `value ${label(request)} -> ${describe(resolve, request)}`), `options ${describe((r) => load.resolve(r, {}), "with-main")}`, + `byte order mark -> ${resolveWithByteOrderMark()}`, ]; } From 65555dace3072de3546caeb9f525cea72dbfb221 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Sat, 24 Oct 2026 17:47:58 -0500 Subject: [PATCH 009/128] Drop struct type names before the thin link instead of renaming promoted locals The partitions of a program build have no locals for ThinLTO to promote: symbols that other partitions refer to are already hidden. What changed the modules after importing, and with them the object cache keys, of partitions an edit did not touch was the numbering of struct types. Every partition declares the program's types under the same names, and the thin link loads the importing partition and the partitions it imports from into one context, which tells same-named types apart by appending a counter that runs across the whole link. An edit that adds a type anywhere shifted the counter. Partitions now drop the names of their struct types before their summary is written; importing matches unnamed types by their bodies. The promoted-locals option, the per-partition source file name and the partition index in the summary key are removed. --- native/llvm-codegen/README.md | 2 +- native/llvm-codegen/src/emit.cpp | 45 +++++++++----------------------- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/native/llvm-codegen/README.md b/native/llvm-codegen/README.md index d72aebdfd..70c118202 100644 --- a/native/llvm-codegen/README.md +++ b/native/llvm-codegen/README.md @@ -37,7 +37,7 @@ Repeating `--output` divides the program into that many partitions, which are co WebAssembly code generation differs from LLVM's default pipeline in two ways that do not change its output. The pass that gives multiple-entry loops a single entry runs only on functions whose control flow is irreducible; its reachability analysis grows with the square of a function's block count even when it has nothing to change. Object emission also leaves out the module pass that collects external symbols for assembly declarations, so each function's machine code is freed once it is printed instead of when the whole module is compiled. -`--cache-dir

    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

  • o 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