xbintsc 0.3.14 → 0.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -22
- package/README.zh-CN.md +20 -19
- package/bin/xbintsc.js +1 -2
- package/dist/src/cli/main.js +8 -5
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/codegen/generator/state.js +8 -0
- package/dist/src/codegen/generator/state.js.map +1 -1
- package/dist/src/codegen/generator/tables.d.ts +5 -6
- package/dist/src/codegen/generator/tables.js +13 -6
- package/dist/src/codegen/generator/tables.js.map +1 -1
- package/dist/src/driver/bundler/graph.d.ts +8 -0
- package/dist/src/driver/bundler/graph.js +85 -0
- package/dist/src/driver/bundler/graph.js.map +1 -0
- package/dist/src/driver/bundler/merge.d.ts +11 -0
- package/dist/src/driver/bundler/merge.js +288 -0
- package/dist/src/driver/bundler/merge.js.map +1 -0
- package/dist/src/driver/bundler/resolve.d.ts +12 -0
- package/dist/src/driver/bundler/resolve.js +246 -0
- package/dist/src/driver/bundler/resolve.js.map +1 -0
- package/dist/src/driver/bundler/symbols.d.ts +15 -0
- package/dist/src/driver/bundler/symbols.js +51 -0
- package/dist/src/driver/bundler/symbols.js.map +1 -0
- package/dist/src/driver/bundler/types.d.ts +36 -0
- package/dist/src/driver/bundler/types.js +5 -0
- package/dist/src/driver/bundler/types.js.map +1 -0
- package/dist/src/driver/index.d.ts +1 -2
- package/dist/src/driver/index.js +1 -2
- package/dist/src/driver/index.js.map +1 -1
- package/dist/src/driver/modules.d.ts +9 -16
- package/dist/src/driver/modules.js +8 -644
- package/dist/src/driver/modules.js.map +1 -1
- package/dist/src/driver/paths.d.ts +0 -9
- package/dist/src/driver/paths.js +0 -31
- package/dist/src/driver/paths.js.map +1 -1
- package/dist/src/driver/toolchain-provider.d.ts +10 -10
- package/dist/src/driver/toolchain-provider.js +9 -38
- package/dist/src/driver/toolchain-provider.js.map +1 -1
- package/dist/src/driver/toolchain.js +8 -2
- package/dist/src/driver/toolchain.js.map +1 -1
- package/dist/src/extensions/catalog.js +2 -1
- package/dist/src/extensions/catalog.js.map +1 -1
- package/dist/src/extensions/gui/index.d.ts +24 -0
- package/dist/src/extensions/gui/index.js +101 -0
- package/dist/src/extensions/gui/index.js.map +1 -0
- package/dist/src/extensions/native.d.ts +2 -3
- package/dist/src/extensions/native.js +2 -3
- package/dist/src/extensions/native.js.map +1 -1
- package/dist/tests/driver/paths.test.js +1 -9
- package/dist/tests/driver/paths.test.js.map +1 -1
- package/dist/tests/driver/toolchain-provider.test.js +12 -79
- package/dist/tests/driver/toolchain-provider.test.js.map +1 -1
- package/dist/tests/e2e/compile-basics.test.d.ts +4 -0
- package/dist/tests/e2e/compile-basics.test.js +134 -0
- package/dist/tests/e2e/compile-basics.test.js.map +1 -0
- package/dist/tests/e2e/compile-builtins.test.d.ts +4 -0
- package/dist/tests/e2e/compile-builtins.test.js +191 -0
- package/dist/tests/e2e/compile-builtins.test.js.map +1 -0
- package/dist/tests/e2e/compile-control-flow.test.d.ts +4 -0
- package/dist/tests/e2e/compile-control-flow.test.js +190 -0
- package/dist/tests/e2e/compile-control-flow.test.js.map +1 -0
- package/dist/tests/e2e/compile-modules.test.d.ts +4 -0
- package/dist/tests/e2e/compile-modules.test.js +48 -0
- package/dist/tests/e2e/compile-modules.test.js.map +1 -0
- package/dist/tests/e2e/compile-objects-classes.test.d.ts +4 -0
- package/dist/tests/e2e/compile-objects-classes.test.js +362 -0
- package/dist/tests/e2e/compile-objects-classes.test.js.map +1 -0
- package/dist/tests/e2e/differential-helpers.d.ts +12 -0
- package/dist/tests/e2e/differential-helpers.js +16 -0
- package/dist/tests/e2e/differential-helpers.js.map +1 -0
- package/dist/tests/e2e/differential-language.test.d.ts +4 -0
- package/dist/tests/e2e/{differential.test.js → differential-language.test.js} +5 -287
- package/dist/tests/e2e/differential-language.test.js.map +1 -0
- package/dist/tests/e2e/differential-symbols.test.d.ts +4 -0
- package/dist/tests/e2e/differential-symbols.test.js +92 -0
- package/dist/tests/e2e/differential-symbols.test.js.map +1 -0
- package/dist/tests/e2e/differential-values.test.d.ts +4 -0
- package/dist/tests/e2e/differential-values.test.js +197 -0
- package/dist/tests/e2e/differential-values.test.js.map +1 -0
- package/dist/tests/e2e/gui.test.d.ts +12 -0
- package/dist/tests/e2e/gui.test.js +493 -0
- package/dist/tests/e2e/gui.test.js.map +1 -0
- package/dist/tests/e2e/native-extensions.test.d.ts +4 -5
- package/dist/tests/e2e/native-extensions.test.js +6 -7
- package/dist/tests/e2e/native-extensions.test.js.map +1 -1
- package/dist/tests/e2e/runtime-coverage-buffer.test.d.ts +4 -0
- package/dist/tests/e2e/runtime-coverage-buffer.test.js +97 -0
- package/dist/tests/e2e/runtime-coverage-buffer.test.js.map +1 -0
- package/dist/tests/e2e/runtime-coverage-globals.test.d.ts +4 -0
- package/dist/tests/e2e/runtime-coverage-globals.test.js +149 -0
- package/dist/tests/e2e/runtime-coverage-globals.test.js.map +1 -0
- package/dist/tests/e2e/runtime-coverage-node-modules.test.d.ts +4 -0
- package/dist/tests/e2e/runtime-coverage-node-modules.test.js +177 -0
- package/dist/tests/e2e/runtime-coverage-node-modules.test.js.map +1 -0
- package/dist/tests/e2e/runtime-coverage-streams.test.d.ts +4 -0
- package/dist/tests/e2e/runtime-coverage-streams.test.js +161 -0
- package/dist/tests/e2e/runtime-coverage-streams.test.js.map +1 -0
- package/dist/tests/e2e/runtime-coverage-system.test.d.ts +4 -0
- package/dist/tests/e2e/runtime-coverage-system.test.js +91 -0
- package/dist/tests/e2e/runtime-coverage-system.test.js.map +1 -0
- package/dist/tests/e2e/timers.test.d.ts +7 -0
- package/dist/tests/e2e/timers.test.js +63 -0
- package/dist/tests/e2e/timers.test.js.map +1 -0
- package/package.json +2 -2
- package/runtime/ext_gui/css.cpp +743 -0
- package/runtime/ext_gui/css.h +98 -0
- package/runtime/ext_gui/document.cpp +264 -0
- package/runtime/ext_gui/document.h +89 -0
- package/runtime/ext_gui/dom.cpp +472 -0
- package/runtime/ext_gui/dom.h +71 -0
- package/runtime/ext_gui/gui.cpp +457 -0
- package/runtime/ext_gui/gui_engine.h +81 -0
- package/runtime/ext_gui/image.cpp +125 -0
- package/runtime/ext_gui/image.h +42 -0
- package/runtime/ext_gui/layout.cpp +748 -0
- package/runtime/ext_gui/layout.h +93 -0
- package/runtime/ext_gui/paint.cpp +137 -0
- package/runtime/ext_gui/paint.h +75 -0
- package/runtime/ext_gui/renderer.cpp +959 -0
- package/runtime/ext_gui/renderer.h +68 -0
- package/runtime/ext_gui/stb_image.h +7988 -0
- package/runtime/ext_gui/style.cpp +771 -0
- package/runtime/ext_gui/style.h +117 -0
- package/runtime/ext_gui/text.cpp +378 -0
- package/runtime/ext_gui/text.h +78 -0
- package/runtime/ext_gui/window.cpp +405 -0
- package/runtime/ext_node/fs/fs_common.h +13 -527
- package/runtime/ext_node/fs/meta_ops.c +3 -3
- package/runtime/ext_node/fs/parts/buffer-bridge.inc +6 -0
- package/runtime/ext_node/fs/parts/builtins.inc +69 -0
- package/runtime/ext_node/fs/parts/dir.inc +47 -0
- package/runtime/ext_node/fs/parts/encoding.inc +186 -0
- package/runtime/ext_node/fs/parts/errors.inc +66 -0
- package/runtime/ext_node/fs/parts/flags.inc +39 -0
- package/runtime/ext_node/fs/parts/platform.inc +86 -0
- package/runtime/ext_node/fs/parts/promisify.inc +15 -0
- package/runtime/ext_node/fs/parts/time.inc +9 -0
- package/runtime/rt.h +36 -4
- package/runtime/rt_internal.h +10 -23
- package/runtime/xt_builtins.c +4 -0
- package/runtime/xt_containers/access.inc +168 -0
- package/runtime/xt_containers/arrays.inc +108 -0
- package/runtime/xt_containers/boxes.inc +11 -0
- package/runtime/xt_containers/objects.inc +326 -0
- package/runtime/xt_containers.c +8 -618
- package/runtime/xt_ext.h +0 -1
- package/runtime/xt_io/base64.inc +87 -0
- package/runtime/xt_io/console.inc +119 -0
- package/runtime/xt_io/exception.inc +142 -0
- package/runtime/xt_io/inspect.inc +212 -0
- package/runtime/xt_io.c +11 -556
- package/runtime/xt_loop.c +262 -24
- package/runtime/xt_regex/api.inc +58 -0
- package/runtime/xt_regex/helpers.inc +68 -0
- package/runtime/xt_regex/matcher.inc +248 -0
- package/runtime/xt_regex/parser.inc +236 -0
- package/runtime/xt_regex/types.inc +58 -0
- package/runtime/xt_regex.h +9 -672
- package/runtime/xt_stdlib2/helpers.inc +2 -4
- package/runtime/xt_values/arithmetic.inc +150 -0
- package/runtime/xt_values/comparison.inc +112 -0
- package/runtime/xt_values/constructors.inc +41 -0
- package/runtime/xt_values/conversions.inc +115 -0
- package/runtime/xt_values/number-format.inc +180 -0
- package/runtime/xt_values/strings.inc +22 -0
- package/runtime/xt_values.c +10 -626
- package/scripts/build-gui.ts +317 -0
- package/scripts/build-runtime.ts +7 -8
- package/scripts/coverage-runtime.ts +4 -4
- package/scripts/package-release.ts +12 -84
- package/src/cli/main.ts +8 -4
- package/src/codegen/generator/state.ts +8 -0
- package/src/codegen/generator/tables.ts +13 -6
- package/src/driver/bundler/graph.ts +95 -0
- package/src/driver/bundler/merge.ts +312 -0
- package/src/driver/bundler/resolve.ts +240 -0
- package/src/driver/bundler/symbols.ts +55 -0
- package/src/driver/bundler/types.ts +37 -0
- package/src/driver/index.ts +1 -9
- package/src/driver/modules.ts +9 -693
- package/src/driver/paths.ts +0 -31
- package/src/driver/toolchain-provider.ts +12 -45
- package/src/driver/toolchain.ts +7 -2
- package/src/extensions/catalog.ts +2 -1
- package/src/extensions/gui/index.ts +107 -0
- package/src/extensions/native.ts +2 -3
- package/dist/src/driver/toolchain-download.d.ts +0 -50
- package/dist/src/driver/toolchain-download.js +0 -102
- package/dist/src/driver/toolchain-download.js.map +0 -1
- package/dist/tests/driver/toolchain-download.test.d.ts +0 -1
- package/dist/tests/driver/toolchain-download.test.js +0 -53
- package/dist/tests/driver/toolchain-download.test.js.map +0 -1
- package/dist/tests/e2e/compile.test.d.ts +0 -8
- package/dist/tests/e2e/compile.test.js +0 -893
- package/dist/tests/e2e/compile.test.js.map +0 -1
- package/dist/tests/e2e/differential.test.d.ts +0 -7
- package/dist/tests/e2e/differential.test.js.map +0 -1
- package/dist/tests/e2e/runtime-coverage.test.d.ts +0 -11
- package/dist/tests/e2e/runtime-coverage.test.js +0 -646
- package/dist/tests/e2e/runtime-coverage.test.js.map +0 -1
- package/scripts/fetch-toolchain.ts +0 -101
- package/src/driver/toolchain-download.ts +0 -135
package/README.md
CHANGED
|
@@ -69,15 +69,15 @@ be replaced without touching the compiler.
|
|
|
69
69
|
## Usage
|
|
70
70
|
|
|
71
71
|
> **Before you start:** check the per-platform prerequisites in
|
|
72
|
-
> [Requirements](./doc/requirements.md).
|
|
73
|
-
>
|
|
74
|
-
>
|
|
75
|
-
>
|
|
72
|
+
> [Requirements](./doc/requirements.md). xbintsc does not bundle a compiler, so
|
|
73
|
+
> every platform needs a clang-compatible toolchain installed (macOS: Xcode
|
|
74
|
+
> Command Line Tools; Linux: clang+lld; Windows: LLVM + Visual Studio C++ build
|
|
75
|
+
> tools).
|
|
76
76
|
|
|
77
77
|
### Prebuilt standalone archives
|
|
78
78
|
|
|
79
79
|
Every [GitHub Release](https://github.com/zy445566/xbintsc/releases/latest) attaches a
|
|
80
|
-
|
|
80
|
+
release archive per platform, plus a `.sha256` checksum next to it:
|
|
81
81
|
|
|
82
82
|
| Platform | Archive |
|
|
83
83
|
| --- | --- |
|
|
@@ -90,10 +90,11 @@ self-contained archive per platform, plus a `.sha256` checksum next to it:
|
|
|
90
90
|
`<version>` is the release version (for example `0.3.8`), embedded in the asset
|
|
91
91
|
name so downloads from different releases do not collide.
|
|
92
92
|
|
|
93
|
-
Each archive unpacks to a `xbintsc-<os>-<arch>/` folder
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
`bin/xbintsc` directly) — there is no
|
|
93
|
+
Each archive unpacks to a `xbintsc-<os>-<arch>/` folder containing the compiler
|
|
94
|
+
(`bin/xbintsc[.exe]`) and the C runtime. It needs **no Node.js**, but you must
|
|
95
|
+
have the platform toolchain installed (see [Requirements](./doc/requirements.md)).
|
|
96
|
+
Unpack it and put `bin/` on `PATH` (or call `bin/xbintsc` directly) — there is no
|
|
97
|
+
install step for xbintsc itself.
|
|
97
98
|
|
|
98
99
|
**macOS / Linux example** — here using `xbintsc-<version>-darwin-arm64.tar.zst` (swap in
|
|
99
100
|
`-linux-x64`, etc. for your platform):
|
|
@@ -113,10 +114,12 @@ tar -xf xbintsc-<version>-darwin-arm64.tar.zst
|
|
|
113
114
|
./build/hello
|
|
114
115
|
```
|
|
115
116
|
|
|
116
|
-
**Windows example** —
|
|
117
|
+
**Windows example** — install LLVM and the Visual Studio C++ build tools (see
|
|
118
|
+
[Requirements](./doc/requirements.md)), then download an archive from the
|
|
117
119
|
[Releases page](https://github.com/zy445566/xbintsc/releases/latest) (here
|
|
118
|
-
`xbintsc-<version>-win32-x64.tar.zst`; use `-arm64` on Windows on ARM)
|
|
119
|
-
(Windows
|
|
120
|
+
`xbintsc-<version>-win32-x64.tar.zst`; use `-arm64` on Windows on ARM) and run the
|
|
121
|
+
commands below in an **x64 Native Tools Command Prompt for VS 2022** (Windows on
|
|
122
|
+
ARM: **ARM64 Native Tools**) — Windows 10+ ships `tar`:
|
|
120
123
|
|
|
121
124
|
```powershell
|
|
122
125
|
# 1. Verify the checksum (optional but recommended)
|
|
@@ -259,8 +262,8 @@ xbintsc run examples/extensions/cpp/demo.ts \
|
|
|
259
262
|
```jsonc
|
|
260
263
|
{
|
|
261
264
|
"name": "mathx-cpp",
|
|
262
|
-
"objects": ["build/
|
|
263
|
-
"linkerFlagsByPlatform": { "linux": ["-lstdc++"], "darwin": ["-lc++"], "win32": ["-
|
|
265
|
+
"objects": ["build/mathx.o"],
|
|
266
|
+
"linkerFlagsByPlatform": { "linux": ["-lstdc++", "-lm"], "darwin": ["-lc++"], "win32": ["-lmsvcprt"] },
|
|
264
267
|
"builtins": { "cppClamp": { "symbol": "mathx_clamp" } },
|
|
265
268
|
"modules": { "mathx": { "exports": { "add": { "symbol": "mathx_add" } } } }
|
|
266
269
|
}
|
|
@@ -291,26 +294,23 @@ covers the C runtime with clang's source instrumentation instead: it exports
|
|
|
291
294
|
the collected profiles against `runtime/` with `llvm-cov`. Pass
|
|
292
295
|
`-- --report-only` to only re-report profiles from an earlier instrumented run,
|
|
293
296
|
or `-- --threshold 60` to fail below a coverage bar. CI runs the report with
|
|
294
|
-
`--threshold
|
|
297
|
+
`--threshold 80`, so a runtime-coverage regression fails the job. The instrumented objects
|
|
295
298
|
live in `xbintsc_CACHE_DIR`, a separate cache from `.xbintsc`, because the
|
|
296
299
|
object cache key does not include compiler flags: sharing one cache would
|
|
297
300
|
silently reuse un-instrumented objects. It also sets `xbintsc_PREFER_PREBUILT=0`
|
|
298
301
|
so the runtime is compiled from source rather than linked from an
|
|
299
302
|
un-instrumented `runtime/lib` archive. Requires `llvm-profdata`/`llvm-cov`
|
|
300
|
-
matching the resolved clang
|
|
303
|
+
matching the resolved clang; the script
|
|
301
304
|
skips with a warning when they are missing.
|
|
302
305
|
|
|
303
306
|
## Requirements
|
|
304
307
|
|
|
305
|
-
See [Requirements](./doc/requirements.md) for the full, per-platform list.
|
|
306
|
-
only use the prebuilt standalone binaries, the relevant part is
|
|
307
|
-
[Requirements → Prebuilt releases](./doc/requirements.md#prebuilt-releases-recommended)
|
|
308
|
-
(Windows/Linux bundle their toolchain; macOS needs the Xcode Command Line Tools).
|
|
308
|
+
See [Requirements](./doc/requirements.md) for the full, per-platform list.
|
|
309
309
|
|
|
310
310
|
- Node.js 22+ — only to run/build from source; released binaries are standalone
|
|
311
311
|
- macOS: the Xcode Command Line Tools (`xcode-select --install`)
|
|
312
|
-
- Windows:
|
|
313
|
-
- Linux:
|
|
312
|
+
- Windows: LLVM + the Visual Studio C++ build tools (MSVC ABI)
|
|
313
|
+
- Linux: `clang` and `lld` from your distribution
|
|
314
314
|
- To build a binary yourself: a `clang`-compatible compiler on `PATH`
|
|
315
315
|
(override with `xbintsc_CLANG`)
|
|
316
316
|
|
package/README.zh-CN.md
CHANGED
|
@@ -64,15 +64,14 @@ xt_value fn(xt_value env, int32_t argc, xt_value *argv);
|
|
|
64
64
|
## 使用方法
|
|
65
65
|
|
|
66
66
|
> **使用前请先确认:** 各平台的运行前置条件见
|
|
67
|
-
> [使用前置要求](./doc/zh-CN/requirements.md)
|
|
68
|
-
>
|
|
69
|
-
>
|
|
70
|
-
> (Windows/Linux 自带工具链;macOS 需要 Xcode Command Line Tools)。
|
|
67
|
+
> [使用前置要求](./doc/zh-CN/requirements.md)。xbintsc 不再自带编译器,每个平台
|
|
68
|
+
> 都需要安装兼容 clang 的工具链(macOS:Xcode Command Line Tools;Linux:
|
|
69
|
+
> clang+lld;Windows:LLVM + Visual Studio C++ 生成工具)。
|
|
71
70
|
|
|
72
71
|
### 预编译独立发布包
|
|
73
72
|
|
|
74
73
|
每个 [GitHub Release](https://github.com/zy445566/xbintsc/releases/latest) 都会附上
|
|
75
|
-
|
|
74
|
+
各平台的发布归档,并在旁边附 `.sha256` 校验文件:
|
|
76
75
|
|
|
77
76
|
| 平台 | 归档 |
|
|
78
77
|
| --- | --- |
|
|
@@ -84,9 +83,10 @@ xt_value fn(xt_value env, int32_t argc, xt_value *argv);
|
|
|
84
83
|
|
|
85
84
|
`<version>` 是发布版本号(例如 `0.3.8`),会写入归档文件名,避免不同版本的下载文件相互覆盖。
|
|
86
85
|
|
|
87
|
-
每个归档解压后都是一个 `xbintsc-<os>-<arch>/`
|
|
88
|
-
(`bin/xbintsc[.exe]
|
|
89
|
-
|
|
86
|
+
每个归档解压后都是一个 `xbintsc-<os>-<arch>/` 目录,其中包含编译器
|
|
87
|
+
(`bin/xbintsc[.exe]`)与 C 运行时。它**无需 Node.js**,但你需要先安装对应平台
|
|
88
|
+
的工具链(见 [使用前置要求](./doc/zh-CN/requirements.md))。解压后把 `bin/` 加入
|
|
89
|
+
`PATH`(或直接调用 `bin/xbintsc`)即可,xbintsc 本身无需安装步骤。
|
|
90
90
|
|
|
91
91
|
**macOS / Linux 示例** —— 此处以 `xbintsc-<version>-darwin-arm64.tar.zst` 为例(请按你的平台
|
|
92
92
|
换成 `-linux-x64` 等):
|
|
@@ -106,10 +106,12 @@ tar -xf xbintsc-<version>-darwin-arm64.tar.zst
|
|
|
106
106
|
./build/hello
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
**Windows 示例** ——
|
|
109
|
+
**Windows 示例** —— 先安装 LLVM 与 Visual Studio C++ 生成工具(见
|
|
110
|
+
[使用前置要求](./doc/zh-CN/requirements.md)),再从
|
|
110
111
|
[Releases 页面](https://github.com/zy445566/xbintsc/releases/latest) 下载对应归档
|
|
111
112
|
(此处为 `xbintsc-<version>-win32-x64.tar.zst`;Windows on ARM 请用 `-arm64`),
|
|
112
|
-
然后在
|
|
113
|
+
然后在 **x64 Native Tools Command Prompt for VS 2022**(Windows on ARM 用
|
|
114
|
+
**ARM64 Native Tools**)中执行以下命令 —— Windows 10+ 自带 `tar`:
|
|
113
115
|
|
|
114
116
|
```powershell
|
|
115
117
|
# 1. 校验哈希(可选,但推荐)
|
|
@@ -247,8 +249,8 @@ xbintsc run examples/extensions/cpp/demo.ts \
|
|
|
247
249
|
```jsonc
|
|
248
250
|
{
|
|
249
251
|
"name": "mathx-cpp",
|
|
250
|
-
"objects": ["build/
|
|
251
|
-
"linkerFlagsByPlatform": { "linux": ["-lstdc++"], "darwin": ["-lc++"], "win32": ["-
|
|
252
|
+
"objects": ["build/mathx.o"],
|
|
253
|
+
"linkerFlagsByPlatform": { "linux": ["-lstdc++", "-lm"], "darwin": ["-lc++"], "win32": ["-lmsvcprt"] },
|
|
252
254
|
"builtins": { "cppClamp": { "symbol": "mathx_clamp" } },
|
|
253
255
|
"modules": { "mathx": { "exports": { "add": { "symbol": "mathx_add" } } } }
|
|
254
256
|
}
|
|
@@ -276,25 +278,24 @@ V8 只能看到编译器自身的源码,因此 `npm run coverage:runtime` 改
|
|
|
276
278
|
都会带上 `-fprofile-instr-generate -fcoverage-mapping`),运行测试后用
|
|
277
279
|
`llvm-cov` 把采集到的 profile 映射回 `runtime/`。加 `-- --report-only`
|
|
278
280
|
可只对上一次插桩运行留下的 profile 重新出报告,加 `-- --threshold 60`
|
|
279
|
-
可在低于覆盖率门槛时失败;CI 固定以 `--threshold
|
|
281
|
+
可在低于覆盖率门槛时失败;CI 固定以 `--threshold 80` 运行,runtime 覆盖率回退会直接
|
|
280
282
|
让 job 失败。插桩产物存放在 `xbintsc_CACHE_DIR` 指向的独立缓存,
|
|
281
283
|
因为对象缓存的 key 不包含编译参数:与普通缓存共用会静默复用未插桩的对象。
|
|
282
284
|
脚本还会设置 `xbintsc_PREFER_PREBUILT=0`,强制从源码编译 runtime,而不是链接
|
|
283
285
|
未插桩的 `runtime/lib` 预编译归档。
|
|
284
|
-
需要与解析到的 clang 版本匹配的 `llvm-profdata`/`llvm-cov
|
|
286
|
+
需要与解析到的 clang 版本匹配的 `llvm-profdata`/`llvm-cov`;
|
|
285
287
|
缺失时脚本会打印警告并跳过。
|
|
286
288
|
|
|
287
289
|
## 运行要求
|
|
288
290
|
|
|
289
291
|
完整的分平台要求见 [使用前置要求](./doc/zh-CN/requirements.md)。若只使用预编译的
|
|
290
|
-
|
|
291
|
-
[使用前置要求
|
|
292
|
-
(Windows/Linux 自带工具链;macOS 需要 Xcode Command Line Tools)。
|
|
292
|
+
独立二进制,见
|
|
293
|
+
[使用前置要求](./doc/zh-CN/requirements.md)。
|
|
293
294
|
|
|
294
295
|
- Node.js 22+ —— 仅从源码运行/构建时需要;发布版二进制是独立的
|
|
295
296
|
- macOS:Xcode Command Line Tools(`xcode-select --install`)
|
|
296
|
-
- Windows
|
|
297
|
-
- Linux
|
|
297
|
+
- Windows:LLVM + Visual Studio C++ 生成工具(MSVC ABI)
|
|
298
|
+
- Linux:发行版提供的 `clang` 与 `lld`
|
|
298
299
|
- 若要自行编译二进制:`PATH` 中有兼容 `clang` 的 C 编译器(可用 `xbintsc_CLANG` 覆盖)
|
|
299
300
|
|
|
300
301
|
用 `xbintsc doctor` 检查环境。
|
package/bin/xbintsc.js
CHANGED
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
* Resolution order:
|
|
6
6
|
* 1. a native compiler for this platform — an `xbintsc_BINARY` override, an
|
|
7
7
|
* installed `@xbintsc/<os>-<arch>` package, or a co-located `bin/xbintsc`.
|
|
8
|
-
* This is what a
|
|
9
|
-
* toolchain at runtime.
|
|
8
|
+
* This is what a packaged install provides; it needs no Node at runtime.
|
|
10
9
|
* 2. the compiled CLI in `dist/` (a checkout that ran `npm run build`).
|
|
11
10
|
* 3. the TypeScript sources through `tsx` (a plain checkout).
|
|
12
11
|
*/
|
package/dist/src/cli/main.js
CHANGED
|
@@ -23,7 +23,6 @@ import { resolveToolchain } from "../driver/toolchain-provider.js";
|
|
|
23
23
|
import { realRunner } from "../driver/toolchain.js";
|
|
24
24
|
import { createDefaultRegistry } from "../extensions/registry.js";
|
|
25
25
|
import { bundledExtensions } from "../extensions/catalog.js";
|
|
26
|
-
import { nodeExtension } from "../extensions/node/index.js";
|
|
27
26
|
import { nativeExtensionFromManifest } from "../extensions/native.js";
|
|
28
27
|
const defaultIo = {
|
|
29
28
|
stdout: (text) => process.stdout.write(text),
|
|
@@ -90,11 +89,12 @@ function buildRegistry(flags) {
|
|
|
90
89
|
const registry = createDefaultRegistry();
|
|
91
90
|
const requested = flags.get("ext");
|
|
92
91
|
if (typeof requested === "string") {
|
|
92
|
+
const bundled = bundledExtensions();
|
|
93
93
|
for (const name of requested.split(",").map((n) => n.trim()).filter(Boolean)) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
else
|
|
94
|
+
const extension = bundled.find((candidate) => candidate.name === name);
|
|
95
|
+
if (!extension)
|
|
97
96
|
throw new Error(`Unknown extension '${name}'`);
|
|
97
|
+
registry.register(extension);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
// Each `--ext-native` value is a manifest path describing a pre-built C++ or
|
|
@@ -162,7 +162,10 @@ function doctor(io) {
|
|
|
162
162
|
io.stdout(`compiler : ${firstLine(version) || "unknown"}\n`);
|
|
163
163
|
}
|
|
164
164
|
catch {
|
|
165
|
-
io.stdout("toolchain : not found
|
|
165
|
+
io.stdout("toolchain : not found\n");
|
|
166
|
+
io.stdout(" install one of: Xcode Command Line Tools (`xcode-select --install`) on macOS,\n");
|
|
167
|
+
io.stdout(" clang+lld (apt/dnf/pacman) on Linux, or LLVM + Visual Studio C++ build tools on Windows,\n");
|
|
168
|
+
io.stdout(" then re-run; or set xbintsc_CLANG to a clang binary. See doc/requirements.md.\n");
|
|
166
169
|
}
|
|
167
170
|
try {
|
|
168
171
|
io.stdout(`runtime : ${findRuntimeDir()}\n`);
|
package/dist/src/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAA0B,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,6 +140,10 @@ export const RUNTIME_DECLARATIONS = [
|
|
|
140
140
|
"declare i64 @xt_decode_uri(i32, i64*)",
|
|
141
141
|
"declare i64 @xt_btoa(i32, i64*)",
|
|
142
142
|
"declare i64 @xt_atob(i32, i64*)",
|
|
143
|
+
"declare i64 @xt_set_timeout(i32, i64*)",
|
|
144
|
+
"declare i64 @xt_clear_timeout(i32, i64*)",
|
|
145
|
+
"declare i64 @xt_set_interval(i32, i64*)",
|
|
146
|
+
"declare i64 @xt_clear_interval(i32, i64*)",
|
|
143
147
|
"declare i64 @xt_number_ctor(i32, i64*)",
|
|
144
148
|
"declare i64 @xt_bigint_ctor(i32, i64*)",
|
|
145
149
|
"declare i64 @xt_bigint_static(i64, i32, i64*)",
|
|
@@ -171,6 +175,10 @@ export const RUNTIME_DECLARATIONS = [
|
|
|
171
175
|
"declare i64 @xt_builtin_value_encodeURI(i64, i64, i32, i64*)",
|
|
172
176
|
"declare i64 @xt_builtin_value_decodeURIComponent(i64, i64, i32, i64*)",
|
|
173
177
|
"declare i64 @xt_builtin_value_decodeURI(i64, i64, i32, i64*)",
|
|
178
|
+
"declare i64 @xt_builtin_value_setTimeout(i64, i64, i32, i64*)",
|
|
179
|
+
"declare i64 @xt_builtin_value_clearTimeout(i64, i64, i32, i64*)",
|
|
180
|
+
"declare i64 @xt_builtin_value_setInterval(i64, i64, i32, i64*)",
|
|
181
|
+
"declare i64 @xt_builtin_value_clearInterval(i64, i64, i32, i64*)",
|
|
174
182
|
"declare i64 @xt_builtin_value_number(i64, i64, i32, i64*)",
|
|
175
183
|
"declare i64 @xt_builtin_value_string(i64, i64, i32, i64*)",
|
|
176
184
|
"declare i64 @xt_builtin_value_boolean(i64, i64, i32, i64*)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/codegen/generator/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/codegen/generator/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,11 @@ import { AssignmentOperator, BinaryOperator, type Node } from "../../ast/nodes.j
|
|
|
5
5
|
/**
|
|
6
6
|
* True when a `try` frame must be saved with `_setjmpex` rather than `_setjmp`.
|
|
7
7
|
*
|
|
8
|
-
* 64-bit Windows on ARM has no `_setjmp`:
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* its own host.
|
|
8
|
+
* 64-bit Windows on ARM has no `_setjmp`: the UCRT declares `setjmp` as
|
|
9
|
+
* `_setjmpex(buf, sponentry)` there, so the linker expects `_setjmpex` (with the
|
|
10
|
+
* caller's stack pointer at entry, `llvm.sponentry`, instead of its frame
|
|
11
|
+
* pointer). clang lowers a C `setjmp` on this target to exactly that pair.
|
|
12
|
+
* Checked at code-generation time because xbintsc builds for its own host.
|
|
14
13
|
*/
|
|
15
14
|
export declare function requiresSetjmpex(platform: string, arch: string): boolean;
|
|
16
15
|
export declare const BINARY_RUNTIME: Record<string, string | undefined>;
|
|
@@ -5,12 +5,11 @@ import { BinaryOperator, SyntaxKind, } from "../../ast/nodes.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* True when a `try` frame must be saved with `_setjmpex` rather than `_setjmp`.
|
|
7
7
|
*
|
|
8
|
-
* 64-bit Windows on ARM has no `_setjmp`:
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* its own host.
|
|
8
|
+
* 64-bit Windows on ARM has no `_setjmp`: the UCRT declares `setjmp` as
|
|
9
|
+
* `_setjmpex(buf, sponentry)` there, so the linker expects `_setjmpex` (with the
|
|
10
|
+
* caller's stack pointer at entry, `llvm.sponentry`, instead of its frame
|
|
11
|
+
* pointer). clang lowers a C `setjmp` on this target to exactly that pair.
|
|
12
|
+
* Checked at code-generation time because xbintsc builds for its own host.
|
|
14
13
|
*/
|
|
15
14
|
export function requiresSetjmpex(platform, arch) {
|
|
16
15
|
return platform === "win32" && arch === "arm64";
|
|
@@ -109,6 +108,10 @@ export const GLOBAL_FUNCTIONS = {
|
|
|
109
108
|
decodeURI: "xt_decode_uri",
|
|
110
109
|
btoa: "xt_btoa",
|
|
111
110
|
atob: "xt_atob",
|
|
111
|
+
setTimeout: "xt_set_timeout",
|
|
112
|
+
clearTimeout: "xt_clear_timeout",
|
|
113
|
+
setInterval: "xt_set_interval",
|
|
114
|
+
clearInterval: "xt_clear_interval",
|
|
112
115
|
Number: "xt_number_ctor",
|
|
113
116
|
String: "xt_string_ctor",
|
|
114
117
|
Boolean: "xt_boolean_ctor",
|
|
@@ -127,6 +130,10 @@ export const BUILTIN_FUNCTION_VALUES = {
|
|
|
127
130
|
encodeURI: "xt_builtin_value_encodeURI",
|
|
128
131
|
decodeURIComponent: "xt_builtin_value_decodeURIComponent",
|
|
129
132
|
decodeURI: "xt_builtin_value_decodeURI",
|
|
133
|
+
setTimeout: "xt_builtin_value_setTimeout",
|
|
134
|
+
clearTimeout: "xt_builtin_value_clearTimeout",
|
|
135
|
+
setInterval: "xt_builtin_value_setInterval",
|
|
136
|
+
clearInterval: "xt_builtin_value_clearInterval",
|
|
130
137
|
Number: "xt_builtin_value_number",
|
|
131
138
|
String: "xt_builtin_value_string",
|
|
132
139
|
Boolean: "xt_builtin_value_boolean",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/codegen/generator/tables.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,cAAc,EACd,UAAU,GAEX,MAAM,oBAAoB,CAAC;AAE5B
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/codegen/generator/tables.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,cAAc,EACd,UAAU,GAEX,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAY;IAC7D,OAAO,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ;IAC9B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ;IACnC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ;IACnC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ;IACjC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,QAAQ;IACpC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ;IACnC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO;IAClC,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO;IACxC,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO;IACrC,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,OAAO;IAC3C,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO;IACtC,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,OAAO;IAC3C,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,QAAQ;IAC7C,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,QAAQ;IAClD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,YAAY;IACxC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW;IACjC,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,YAAY;IACpC,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,QAAQ;IAC3C,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,QAAQ;IACjD,CAAC,cAAc,CAAC,iCAAiC,CAAC,EAAE,SAAS;IAC7D,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,OAAO;IAC5B,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,gBAAgB;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,kBAAkB;IACzB,GAAG,EAAE,gBAAgB;IACrB,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,wBAAwB;IACpC,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,sBAAsB;IAChC,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,qBAAqB;IAC9B,OAAO,EAAE,qBAAqB;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;IAC5C,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IAC9F,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK;IAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;CAC/F,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,CAAC,EAAE,IAAI,CAAC,CAAC;IACT,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,OAAO,EAAE,IAAI,CAAC,OAAO;CACtB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IAC9C,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,SAAS;IACT,mBAAmB;IACnB,mBAAmB;IACnB,KAAK;CACN,CAAC,CAAC;AAEH;;mEAEmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,oBAAoB;IAC/B,UAAU,EAAE,qBAAqB;IACjC,WAAW,EAAE,sBAAsB;IACnC,cAAc,EAAE,yBAAyB;IACzC,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,mBAAmB;IAC7B,cAAc,EAAE,yBAAyB;CAC1C,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,kBAAkB,EAAE,yBAAyB;IAC7C,SAAS,EAAE,eAAe;IAC1B,kBAAkB,EAAE,yBAAyB;IAC7C,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,gBAAgB;IAC5B,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,WAAW;IACnB,GAAG,kBAAkB;CACtB,CAAC;AAEF;gDACgD;AAChD,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,QAAQ,EAAE,2BAA2B;IACrC,UAAU,EAAE,6BAA6B;IACzC,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,2BAA2B;IACrC,kBAAkB,EAAE,qCAAqC;IACzD,SAAS,EAAE,4BAA4B;IACvC,kBAAkB,EAAE,qCAAqC;IACzD,SAAS,EAAE,4BAA4B;IACvC,UAAU,EAAE,6BAA6B;IACzC,YAAY,EAAE,+BAA+B;IAC7C,WAAW,EAAE,8BAA8B;IAC3C,aAAa,EAAE,gCAAgC;IAC/C,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,yBAAyB;CAClC,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,cAAc;IAClB,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,uBAAuB;IACpC,MAAM,EAAE,kBAAkB;CAC3B,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,OAAO,EAAE,gBAAgB;IACzB,aAAa,EAAE,gBAAgB;IAC/B,MAAM,EAAE,eAAe;CACxB,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,KAAK,EAAE,cAAc;IACrB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,sBAAsB;IACnC,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB;IAC5B,YAAY,EAAE,uBAAuB;IACrC,GAAG,kBAAkB;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IAC7C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ;IACrG,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa;IACpG,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;CACrE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS;IAClD,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,IAAsB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,UAAU,CAAC,iBAAiB;YAC/B,OAAQ,IAAoC,CAAC,IAAI,CAAC;QACpD,KAAK,UAAU,CAAC,aAAa;YAC3B,OAAQ,IAAqC,CAAC,KAAK,CAAC;QACtD,KAAK,UAAU,CAAC,cAAc;YAC5B,OAAO,MAAM,CAAE,IAAqC,CAAC,KAAK,CAAC,CAAC;QAC9D;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAiB;IAChD,CAAC,UAAU,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC9C,CAAC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAC5C,CAAC,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IAClD,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAChD,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAChD,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAChD,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC;IAC1C,CAAC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAC5C,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAC3C,CAAC,UAAU,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;IAC3D,CAAC,UAAU,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;IACxD,CAAC,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IAClD,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAChD,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAChD,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QACvC,IAAI,IAAI,GAAG,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7B,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EACnB,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAC5B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAC3B,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAwB;IAClD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import-graph loading: parse and bind the entry module and every module it
|
|
3
|
+
* reaches, in dependency order.
|
|
4
|
+
*/
|
|
5
|
+
import { DiagnosticBag } from "../../diagnostics/diagnostic.js";
|
|
6
|
+
import type { ModuleRecord } from "./types.js";
|
|
7
|
+
/** Load, parse and bind the entry module and every module it imports. */
|
|
8
|
+
export declare function loadGraph(entryPath: string, diagnostics: DiagnosticBag, externalSpecifiers: ReadonlySet<string>): ModuleRecord[] | undefined;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import-graph loading: parse and bind the entry module and every module it
|
|
3
|
+
* reaches, in dependency order.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import { dirname } from "node:path";
|
|
7
|
+
import { SyntaxKind } from "../../ast/nodes.js";
|
|
8
|
+
import { bind } from "../../binder/binder.js";
|
|
9
|
+
import { DiagnosticCode } from "../../diagnostics/diagnostic.js";
|
|
10
|
+
import { SourceFile } from "../../diagnostics/source.js";
|
|
11
|
+
import { Parser } from "../../parser/parser.js";
|
|
12
|
+
import { classifyDependency } from "./resolve.js";
|
|
13
|
+
function moduleSpecifierOf(statement) {
|
|
14
|
+
if (statement.kind === SyntaxKind.ImportDeclaration) {
|
|
15
|
+
return statement.moduleSpecifier.value;
|
|
16
|
+
}
|
|
17
|
+
if (statement.kind === SyntaxKind.ExportDeclaration) {
|
|
18
|
+
const specifier = statement.moduleSpecifier;
|
|
19
|
+
if (specifier)
|
|
20
|
+
return specifier.value;
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
/** Load, parse and bind the entry module and every module it imports. */
|
|
25
|
+
export function loadGraph(entryPath, diagnostics, externalSpecifiers) {
|
|
26
|
+
const records = new Map();
|
|
27
|
+
const order = [];
|
|
28
|
+
const visiting = new Set();
|
|
29
|
+
let counter = 0;
|
|
30
|
+
let failed = false;
|
|
31
|
+
const load = (path) => {
|
|
32
|
+
const existing = records.get(path);
|
|
33
|
+
if (existing)
|
|
34
|
+
return existing;
|
|
35
|
+
if (visiting.has(path)) {
|
|
36
|
+
diagnostics.error(DiagnosticCode.CodegenError, `Circular import detected involving '${path}'`);
|
|
37
|
+
failed = true;
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
if (!existsSync(path)) {
|
|
41
|
+
diagnostics.error(DiagnosticCode.CodegenError, `Cannot find module '${path}'`);
|
|
42
|
+
failed = true;
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
visiting.add(path);
|
|
46
|
+
const text = readFileSync(path, "utf8");
|
|
47
|
+
const file = new SourceFile(path, text);
|
|
48
|
+
const parser = new Parser(file, diagnostics);
|
|
49
|
+
const sourceFile = parser.parseSourceFile();
|
|
50
|
+
const bindResult = bind(sourceFile);
|
|
51
|
+
const record = {
|
|
52
|
+
path,
|
|
53
|
+
text,
|
|
54
|
+
sourceFile,
|
|
55
|
+
bind: bindResult,
|
|
56
|
+
prefix: `m${counter++}_`,
|
|
57
|
+
exports: new Map(),
|
|
58
|
+
originalNames: new Map(),
|
|
59
|
+
finalNames: new Map(),
|
|
60
|
+
};
|
|
61
|
+
records.set(path, record);
|
|
62
|
+
for (const statement of sourceFile.statements) {
|
|
63
|
+
const specifier = moduleSpecifierOf(statement);
|
|
64
|
+
if (!specifier)
|
|
65
|
+
continue;
|
|
66
|
+
const dependency = classifyDependency(dirname(path), specifier, externalSpecifiers);
|
|
67
|
+
if (dependency.kind === "external")
|
|
68
|
+
continue;
|
|
69
|
+
if (dependency.kind === "missing") {
|
|
70
|
+
diagnostics.error(DiagnosticCode.CodegenError, `Cannot resolve module '${specifier}' from '${path}'`, statement, path);
|
|
71
|
+
failed = true;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
load(dependency.path);
|
|
75
|
+
}
|
|
76
|
+
visiting.delete(path);
|
|
77
|
+
order.push(record);
|
|
78
|
+
return record;
|
|
79
|
+
};
|
|
80
|
+
load(entryPath);
|
|
81
|
+
if (failed)
|
|
82
|
+
return undefined;
|
|
83
|
+
return order;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../src/driver/bundler/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge every reachable module's statements into a single source file.
|
|
3
|
+
*
|
|
4
|
+
* Dependencies come first (post-order over the import graph), the entry module
|
|
5
|
+
* last. Top-level bindings are renamed to globally unique names and imports are
|
|
6
|
+
* rewritten to the (renamed) exported binding; namespace imports are lowered
|
|
7
|
+
* to a synthetic object literal.
|
|
8
|
+
*/
|
|
9
|
+
import type { DiagnosticBag } from "../../diagnostics/diagnostic.js";
|
|
10
|
+
import type { BundleResult } from "./types.js";
|
|
11
|
+
export declare function bundleModules(entryPath: string, diagnostics: DiagnosticBag, externalSpecifiers?: ReadonlySet<string>): BundleResult | undefined;
|