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/src/driver/paths.ts
CHANGED
|
@@ -22,15 +22,6 @@ export function findRuntimeDir(): string {
|
|
|
22
22
|
throw new Error("Unable to locate the xbintsc runtime directory (missing runtime/rt.h)");
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
export function findPackageRoot(): string {
|
|
26
|
-
return resolve(findRuntimeDir(), "..");
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** `<package>/vendor` — where a bundled toolchain is assembled (may not exist). */
|
|
30
|
-
export function vendorRootDir(): string {
|
|
31
|
-
return resolve(findPackageRoot(), "vendor");
|
|
32
|
-
}
|
|
33
|
-
|
|
34
25
|
/** Platform-architecture slug, e.g. `darwin-arm64`, `linux-x64`, `win32-x64`. */
|
|
35
26
|
export function platformSlug(): string {
|
|
36
27
|
return `${process.platform}-${process.arch}`;
|
|
@@ -68,25 +59,3 @@ export function releaseArchiveFileName(
|
|
|
68
59
|
export function releaseArchiveExtension(useZstd: boolean): string {
|
|
69
60
|
return useZstd ? ".tar.zst" : ".tar.gz";
|
|
70
61
|
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Directory that may hold a toolchain shipped next to the package:
|
|
74
|
-
* `<package>/vendor/<os>-<arch>` (or a generic `vendor/`). Undefined when none
|
|
75
|
-
* is present, in which case the driver falls back to the system PATH.
|
|
76
|
-
*/
|
|
77
|
-
export function findVendorDir(): string | undefined {
|
|
78
|
-
const roots: string[] = [];
|
|
79
|
-
try {
|
|
80
|
-
roots.push(findPackageRoot());
|
|
81
|
-
} catch {
|
|
82
|
-
// `runtime/` may be absent (e.g. a bare `emit` install); vendor is optional.
|
|
83
|
-
}
|
|
84
|
-
roots.push(resolve(here, "../../.."), resolve(here, "../.."), process.cwd());
|
|
85
|
-
for (const root of roots) {
|
|
86
|
-
const specific = join(root, "vendor", platformSlug());
|
|
87
|
-
if (existsSync(specific)) return specific;
|
|
88
|
-
const generic = join(root, "vendor");
|
|
89
|
-
if (existsSync(generic)) return generic;
|
|
90
|
-
}
|
|
91
|
-
return undefined;
|
|
92
|
-
}
|
|
@@ -3,23 +3,23 @@
|
|
|
3
3
|
*
|
|
4
4
|
* xbintsc shells out to a clang-compatible driver for three jobs: lowering LLVM
|
|
5
5
|
* IR to an object, compiling the C runtime, and linking. This module decides
|
|
6
|
-
* *which* driver to use, in a fixed priority order
|
|
7
|
-
* shadow the system one without touching the driver code:
|
|
6
|
+
* *which* driver to use, in a fixed priority order:
|
|
8
7
|
*
|
|
9
8
|
* 1. an explicit `xbintsc_CLANG` / `xbintsc_TOOLCHAIN`
|
|
10
|
-
* 2.
|
|
11
|
-
*
|
|
9
|
+
* 2. the system `PATH` (`findClang`)
|
|
10
|
+
*
|
|
11
|
+
* xbintsc does not ship a compiler. Every host must provide a clang-compatible
|
|
12
|
+
* toolchain (see `doc/requirements.md`): the Xcode Command Line Tools on macOS,
|
|
13
|
+
* the distribution's clang/lld on Linux, and LLVM plus the Visual Studio C++
|
|
14
|
+
* build tools (the MSVC ABI) on Windows.
|
|
12
15
|
*
|
|
13
16
|
* Extra linker arguments (for example `-fuse-ld=lld`) can be supplied through
|
|
14
17
|
* `xbintsc_LINKER_ARGS`.
|
|
15
18
|
*/
|
|
16
19
|
|
|
17
|
-
import { existsSync } from "node:fs";
|
|
18
|
-
import { join } from "node:path";
|
|
19
|
-
import { findVendorDir } from "./paths.js";
|
|
20
20
|
import { findClang, realRunner, type Runner } from "./toolchain.js";
|
|
21
21
|
|
|
22
|
-
export type ToolchainSource = "env" | "
|
|
22
|
+
export type ToolchainSource = "env" | "system";
|
|
23
23
|
|
|
24
24
|
export interface ResolvedToolchain {
|
|
25
25
|
/** Path or name of the clang-compatible driver to invoke. */
|
|
@@ -28,17 +28,14 @@ export interface ResolvedToolchain {
|
|
|
28
28
|
readonly source: ToolchainSource;
|
|
29
29
|
/** Extra arguments to pass to the link step. */
|
|
30
30
|
readonly linkerArgs: readonly string[];
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
* environment. Used to point `LD_LIBRARY_PATH` at bundled shared libraries
|
|
34
|
-
* (for example the legacy `libtinfo.so.5` the official Linux build needs).
|
|
35
|
-
*/
|
|
31
|
+
/** Extra environment for the toolchain subprocesses, merged over the current
|
|
32
|
+
* environment. */
|
|
36
33
|
readonly env: Record<string, string>;
|
|
37
34
|
}
|
|
38
35
|
|
|
39
|
-
function works(runner: Runner, command: string
|
|
36
|
+
function works(runner: Runner, command: string): boolean {
|
|
40
37
|
try {
|
|
41
|
-
return runner.run(command, ["--version"]
|
|
38
|
+
return runner.run(command, ["--version"]).status === 0;
|
|
42
39
|
} catch {
|
|
43
40
|
return false;
|
|
44
41
|
}
|
|
@@ -50,18 +47,6 @@ function linkerArgs(fallback: readonly string[]): string[] {
|
|
|
50
47
|
return [...fallback];
|
|
51
48
|
}
|
|
52
49
|
|
|
53
|
-
/**
|
|
54
|
-
* Environment overrides for a bundled toolchain. The official Linux build links
|
|
55
|
-
* the removed `libtinfo.so.5` soname, so when we ship it under `vendor/lib/` we
|
|
56
|
-
* prepend that directory to the dynamic linker search path.
|
|
57
|
-
*/
|
|
58
|
-
function vendorEnv(vendor: string): Record<string, string> {
|
|
59
|
-
const libDir = join(vendor, "lib");
|
|
60
|
-
if (process.platform !== "linux" || !existsSync(libDir)) return {};
|
|
61
|
-
const existing = process.env.LD_LIBRARY_PATH;
|
|
62
|
-
return { LD_LIBRARY_PATH: existing ? libDir + ":" + existing : libDir };
|
|
63
|
-
}
|
|
64
|
-
|
|
65
50
|
/** Resolve the toolchain that `build` should use. See the module docblock. */
|
|
66
51
|
export function resolveToolchain(runner: Runner = realRunner): ResolvedToolchain {
|
|
67
52
|
const explicit = process.env.xbintsc_CLANG ?? process.env.xbintsc_TOOLCHAIN;
|
|
@@ -69,23 +54,5 @@ export function resolveToolchain(runner: Runner = realRunner): ResolvedToolchain
|
|
|
69
54
|
return { clang: explicit, source: "env", linkerArgs: linkerArgs([]), env: {} };
|
|
70
55
|
}
|
|
71
56
|
|
|
72
|
-
const vendor = findVendorDir();
|
|
73
|
-
if (vendor) {
|
|
74
|
-
const env = vendorEnv(vendor);
|
|
75
|
-
const names = process.platform === "win32" ? ["clang.exe", "clang"] : ["clang"];
|
|
76
|
-
for (const name of names) {
|
|
77
|
-
const candidate = join(vendor, "bin", name);
|
|
78
|
-
if (existsSync(candidate) && works(runner, candidate, env)) {
|
|
79
|
-
// A bundled toolchain ships `ld.lld`, so prefer lld over any system linker.
|
|
80
|
-
return {
|
|
81
|
-
clang: candidate,
|
|
82
|
-
source: "vendor",
|
|
83
|
-
linkerArgs: linkerArgs(["-fuse-ld=lld"]),
|
|
84
|
-
env,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
57
|
return { clang: findClang(runner), source: "system", linkerArgs: linkerArgs([]), env: {} };
|
|
91
58
|
}
|
package/src/driver/toolchain.ts
CHANGED
|
@@ -64,8 +64,13 @@ export function findClang(runner: Runner = realRunner): string {
|
|
|
64
64
|
"cc",
|
|
65
65
|
].filter((candidate): candidate is string => Boolean(candidate));
|
|
66
66
|
for (const candidate of candidates) {
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
let status: number;
|
|
68
|
+
try {
|
|
69
|
+
status = runner.run(candidate, ["--version"]).status;
|
|
70
|
+
} catch {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (status === 0) return candidate;
|
|
69
74
|
}
|
|
70
75
|
throw new ToolchainError("clang --version", 1, "No C compiler found. Set xbintsc_CLANG to a clang binary.");
|
|
71
76
|
}
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
import type { Extension } from "./registry.js";
|
|
14
14
|
import { nodeExtension } from "./node/index.js";
|
|
15
|
+
import { guiExtension } from "./gui/index.js";
|
|
15
16
|
|
|
16
17
|
/** Every extension bundled with xbintsc, in registration order. */
|
|
17
18
|
export function bundledExtensions(): readonly Extension[] {
|
|
18
|
-
return [nodeExtension];
|
|
19
|
+
return [nodeExtension, guiExtension];
|
|
19
20
|
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GUI extension: a self-contained, GPU-accelerated HTML/CSS renderer.
|
|
3
|
+
*
|
|
4
|
+
* Unlike the system-WebView approach, this extension ships its *own* rendering
|
|
5
|
+
* engine (HTML parser, CSS cascade, layout, GPU compositor) written in C/C++.
|
|
6
|
+
* It is therefore delivered as a per-platform prebuilt archive — the same way
|
|
7
|
+
* the core runtime ships `runtime/lib/<os>-<arch>/core.a` — and linked through
|
|
8
|
+
* `nativeObjects`. The core compiler stays platform-agnostic and never learns
|
|
9
|
+
* that "gui" exists beyond the module bindings below.
|
|
10
|
+
*
|
|
11
|
+
* Design and roadmap live in `doc/gui.md`. The C++/GPU sources are not built
|
|
12
|
+
* yet: `nativeObjects()` fails with an actionable message until
|
|
13
|
+
* `runtime/lib/<os>-<arch>/gui.a` exists.
|
|
14
|
+
*
|
|
15
|
+
* TypeScript sees one importable module:
|
|
16
|
+
*
|
|
17
|
+
* import { createWindow, run } from "gui";
|
|
18
|
+
*
|
|
19
|
+
* Window instances are runtime objects whose methods are dispatched in C
|
|
20
|
+
* (through the existing `xt_call_method` object model); the registry only
|
|
21
|
+
* needs to bind the top-level functions.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { join } from "node:path";
|
|
25
|
+
import type { Extension, ExtensionModule } from "../registry.js";
|
|
26
|
+
import { findRuntimeDir, platformSlug } from "../../driver/paths.js";
|
|
27
|
+
import { findRuntimeLibrary } from "../../driver/runtime-lib.js";
|
|
28
|
+
|
|
29
|
+
/** Top-level `gui` module bindings. */
|
|
30
|
+
const guiModule: ExtensionModule = {
|
|
31
|
+
namespace: "gui",
|
|
32
|
+
exports: {
|
|
33
|
+
createWindow: { symbol: "xt_gui_create_window" },
|
|
34
|
+
run: { symbol: "xt_gui_run" },
|
|
35
|
+
quit: { symbol: "xt_gui_quit" },
|
|
36
|
+
/** Window handles are opaque runtime objects created by `createWindow`. */
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/** Absolute path to the per-platform prebuilt GUI archive (`gui.a`, or
|
|
41
|
+
* `gui.lib` with the MSVC ABI on Windows). */
|
|
42
|
+
function guiArchive(): string {
|
|
43
|
+
return join(findRuntimeDir(), "lib", platformSlug(), "gui.a");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const guiExtension: Extension = {
|
|
47
|
+
name: "gui",
|
|
48
|
+
description: "GPU-accelerated HTML/CSS GUI (self-hosted renderer, no webview)",
|
|
49
|
+
nativeObjects: () => {
|
|
50
|
+
const archive = findRuntimeLibrary("gui");
|
|
51
|
+
if (archive === undefined) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
`GUI native library not found at ${guiArchive()} (or gui.lib).\n` +
|
|
54
|
+
`Build it for ${platformSlug()} first (see doc/gui.md).`,
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
return [archive];
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* System libraries the archive itself depends on. The vendored third-party
|
|
61
|
+
* libraries (GPU backend, HarfBuzz, FreeType, ...) are linked *into* `gui.a`
|
|
62
|
+
* by its build script, so only OS frameworks remain here. TODO(gui): confirm
|
|
63
|
+
* the exact set once the GPU backend is chosen (see doc/gui.md).
|
|
64
|
+
*/
|
|
65
|
+
linkerFlags: () => {
|
|
66
|
+
if (process.platform === "darwin") {
|
|
67
|
+
return [
|
|
68
|
+
"-framework", "CoreMedia",
|
|
69
|
+
"-framework", "CoreVideo",
|
|
70
|
+
"-framework", "Cocoa",
|
|
71
|
+
"-weak_framework", "UniformTypeIdentifiers",
|
|
72
|
+
"-framework", "IOKit",
|
|
73
|
+
"-framework", "ForceFeedback",
|
|
74
|
+
"-framework", "Carbon",
|
|
75
|
+
"-framework", "CoreAudio",
|
|
76
|
+
"-framework", "AudioToolbox",
|
|
77
|
+
"-framework", "AVFoundation",
|
|
78
|
+
"-framework", "Foundation",
|
|
79
|
+
"-framework", "GameController",
|
|
80
|
+
"-framework", "Metal",
|
|
81
|
+
"-framework", "QuartzCore",
|
|
82
|
+
/* HarfBuzz's CoreText shaper (macOS system fonts). */
|
|
83
|
+
"-framework", "CoreText",
|
|
84
|
+
"-framework", "CoreGraphics",
|
|
85
|
+
"-framework", "CoreFoundation",
|
|
86
|
+
"-weak_framework", "CoreHaptics",
|
|
87
|
+
"-lpthread",
|
|
88
|
+
"-lm",
|
|
89
|
+
"-lc++",
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
if (process.platform === "win32") {
|
|
93
|
+
return [
|
|
94
|
+
/* SDL_GPU D3D12 backend. */
|
|
95
|
+
"-ld3d12", "-ldxgi", "-ldxguid",
|
|
96
|
+
/* Win32 / COM / multimedia services SDL3 uses. */
|
|
97
|
+
"-luser32", "-lgdi32", "-lshell32",
|
|
98
|
+
"-lole32", "-loleaut32", "-luuid", "-ladvapi32",
|
|
99
|
+
"-lwinmm", "-limm32", "-lversion", "-lsetupapi",
|
|
100
|
+
/* The engine is C++; link the MSVC C++ runtime. */
|
|
101
|
+
"-lmsvcprt",
|
|
102
|
+
];
|
|
103
|
+
}
|
|
104
|
+
return ["-lX11", "-lwayland-client", "-lEGL", "-lGL", "-ldl", "-lpthread", "-lstdc++"];
|
|
105
|
+
},
|
|
106
|
+
modules: () => ({ gui: guiModule }),
|
|
107
|
+
};
|
package/src/extensions/native.ts
CHANGED
|
@@ -18,9 +18,8 @@
|
|
|
18
18
|
* {
|
|
19
19
|
* "name": "mathx",
|
|
20
20
|
* "description": "C++ math helpers",
|
|
21
|
-
* "objects": ["build/
|
|
22
|
-
* "
|
|
23
|
-
* "linkerFlagsByPlatform": { "linux": ["-lstdc++"], "darwin": ["-lc++"] },
|
|
21
|
+
* "objects": ["build/mathx.o"],
|
|
22
|
+
* "linkerFlagsByPlatform": { "linux": ["-lstdc++", "-lm"], "darwin": ["-lc++"], "win32": ["-lmsvcprt"] },
|
|
24
23
|
* "builtins": { "fastAdd": { "symbol": "mathx_add" } },
|
|
25
24
|
* "modules": {
|
|
26
25
|
* "mathx": {
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which toolchain xbintsc bundles for each host.
|
|
3
|
-
*
|
|
4
|
-
* The end goal is that `build` needs no user-installed compiler. Per the
|
|
5
|
-
* recorded decisions (see `doc/requirements.md`):
|
|
6
|
-
*
|
|
7
|
-
* Linux -> the official LLVM release (clang + lld + llvm-ar)
|
|
8
|
-
* Windows -> llvm-mingw (clang + lld + the MinGW-w64 sysroot/CRT/import libs)
|
|
9
|
-
* macOS -> nothing; the Xcode Command Line Tools are the prerequisite
|
|
10
|
-
*
|
|
11
|
-
* This module only maps a host to a pinned download; the actual fetch lives in
|
|
12
|
-
* `scripts/fetch-toolchain.ts`.
|
|
13
|
-
*/
|
|
14
|
-
/** Pinned LLVM release used for the Linux bundle. */
|
|
15
|
-
export declare const LLVM_VERSION = "18.1.8";
|
|
16
|
-
/** Pinned llvm-mingw release used for the Windows bundle. */
|
|
17
|
-
export declare const LLVM_MINGW_VERSION = "20260908";
|
|
18
|
-
export interface ToolchainDownload {
|
|
19
|
-
/** Download URL. */
|
|
20
|
-
readonly url: string;
|
|
21
|
-
/** Suggested local file name for the archive. */
|
|
22
|
-
readonly archive: string;
|
|
23
|
-
/** Archive type. Both are unpacked with `tar` (bsdtar reads zip). */
|
|
24
|
-
readonly kind: "tar.xz" | "zip";
|
|
25
|
-
/** Leading path segments to strip while extracting. */
|
|
26
|
-
readonly stripComponents: number;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* The toolchain to bundle for a host, or undefined when the host's own SDK is
|
|
30
|
-
* used instead (macOS: the Xcode Command Line Tools).
|
|
31
|
-
*/
|
|
32
|
-
export declare function toolchainDownload(platform?: string, arch?: string): ToolchainDownload | undefined;
|
|
33
|
-
export interface SupportLibrary {
|
|
34
|
-
/** Candidate download URLs, tried in order. */
|
|
35
|
-
readonly urls: readonly string[];
|
|
36
|
-
/** Local file name for the downloaded `.deb`. */
|
|
37
|
-
readonly archive: string;
|
|
38
|
-
/** Path inside the extracted `.deb` data tree. */
|
|
39
|
-
readonly member: string;
|
|
40
|
-
/** File name placed in `vendor/<os>-<arch>/lib/`. */
|
|
41
|
-
readonly dest: string;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Extra shared libraries the bundled toolchain needs but that are not part of
|
|
45
|
-
* the OS C library. The official Linux LLVM build links the legacy
|
|
46
|
-
* `libtinfo.so.5` soname, which current distributions no longer ship, so we
|
|
47
|
-
* bundle it (from the Ubuntu `libtinfo5` package) into `vendor/<os>-<arch>/lib`
|
|
48
|
-
* and point `LD_LIBRARY_PATH` at that directory.
|
|
49
|
-
*/
|
|
50
|
-
export declare function toolchainSupportLibraries(platform?: string, arch?: string): readonly SupportLibrary[];
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which toolchain xbintsc bundles for each host.
|
|
3
|
-
*
|
|
4
|
-
* The end goal is that `build` needs no user-installed compiler. Per the
|
|
5
|
-
* recorded decisions (see `doc/requirements.md`):
|
|
6
|
-
*
|
|
7
|
-
* Linux -> the official LLVM release (clang + lld + llvm-ar)
|
|
8
|
-
* Windows -> llvm-mingw (clang + lld + the MinGW-w64 sysroot/CRT/import libs)
|
|
9
|
-
* macOS -> nothing; the Xcode Command Line Tools are the prerequisite
|
|
10
|
-
*
|
|
11
|
-
* This module only maps a host to a pinned download; the actual fetch lives in
|
|
12
|
-
* `scripts/fetch-toolchain.ts`.
|
|
13
|
-
*/
|
|
14
|
-
/** Pinned LLVM release used for the Linux bundle. */
|
|
15
|
-
export const LLVM_VERSION = "18.1.8";
|
|
16
|
-
/** Pinned llvm-mingw release used for the Windows bundle. */
|
|
17
|
-
export const LLVM_MINGW_VERSION = "20260908";
|
|
18
|
-
/**
|
|
19
|
-
* The toolchain to bundle for a host, or undefined when the host's own SDK is
|
|
20
|
-
* used instead (macOS: the Xcode Command Line Tools).
|
|
21
|
-
*/
|
|
22
|
-
export function toolchainDownload(platform = process.platform, arch = process.arch) {
|
|
23
|
-
if (platform === "linux") {
|
|
24
|
-
if (arch === "x64") {
|
|
25
|
-
return {
|
|
26
|
-
url: `https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz`,
|
|
27
|
-
archive: `clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu.tar.xz`,
|
|
28
|
-
kind: "tar.xz",
|
|
29
|
-
stripComponents: 1,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (arch === "arm64") {
|
|
33
|
-
return {
|
|
34
|
-
url: `https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz`,
|
|
35
|
-
archive: `clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz`,
|
|
36
|
-
kind: "tar.xz",
|
|
37
|
-
stripComponents: 1,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
if (platform === "win32" && arch === "x64") {
|
|
43
|
-
return {
|
|
44
|
-
url: `https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-x86_64.zip`,
|
|
45
|
-
archive: `llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-x86_64.zip`,
|
|
46
|
-
kind: "zip",
|
|
47
|
-
stripComponents: 1,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (platform === "win32" && arch === "arm64") {
|
|
51
|
-
// The llvm-mingw `aarch64` package is the Windows-on-ARM host build; its
|
|
52
|
-
// clang targets aarch64 by default, so a native Windows ARM64 runner gets
|
|
53
|
-
// native MinGW-w64 binaries with no MSVC dependency.
|
|
54
|
-
return {
|
|
55
|
-
url: `https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-aarch64.zip`,
|
|
56
|
-
archive: `llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-aarch64.zip`,
|
|
57
|
-
kind: "zip",
|
|
58
|
-
stripComponents: 1,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
// macOS (and any other host) uses the system SDK; nothing to bundle.
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Extra shared libraries the bundled toolchain needs but that are not part of
|
|
66
|
-
* the OS C library. The official Linux LLVM build links the legacy
|
|
67
|
-
* `libtinfo.so.5` soname, which current distributions no longer ship, so we
|
|
68
|
-
* bundle it (from the Ubuntu `libtinfo5` package) into `vendor/<os>-<arch>/lib`
|
|
69
|
-
* and point `LD_LIBRARY_PATH` at that directory.
|
|
70
|
-
*/
|
|
71
|
-
export function toolchainSupportLibraries(platform = process.platform, arch = process.arch) {
|
|
72
|
-
if (platform === "linux" && arch === "x64") {
|
|
73
|
-
return [
|
|
74
|
-
{
|
|
75
|
-
urls: [
|
|
76
|
-
"https://security.ubuntu.com/ubuntu/pool/main/n/ncurses/libtinfo5_6.1-1ubuntu1.18.04.1_amd64.deb",
|
|
77
|
-
"https://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libtinfo5_6.1-1ubuntu1.18.04.1_amd64.deb",
|
|
78
|
-
],
|
|
79
|
-
archive: "libtinfo5.deb",
|
|
80
|
-
member: "lib/x86_64-linux-gnu/libtinfo.so.5.9",
|
|
81
|
-
dest: "libtinfo.so.5",
|
|
82
|
-
},
|
|
83
|
-
];
|
|
84
|
-
}
|
|
85
|
-
if (platform === "linux" && arch === "arm64") {
|
|
86
|
-
// The aarch64 release build links the same removed `libtinfo.so.5` soname as
|
|
87
|
-
// the x86_64 one; arm64 packages live in the Ubuntu ports archive.
|
|
88
|
-
return [
|
|
89
|
-
{
|
|
90
|
-
urls: [
|
|
91
|
-
"https://ports.ubuntu.com/ubuntu-ports/pool/main/n/ncurses/libtinfo5_6.1-1ubuntu1.18.04.1_arm64.deb",
|
|
92
|
-
"http://ports.ubuntu.com/ubuntu-ports/pool/main/n/ncurses/libtinfo5_6.1-1ubuntu1.18.04.1_arm64.deb",
|
|
93
|
-
],
|
|
94
|
-
archive: "libtinfo5.deb",
|
|
95
|
-
member: "lib/aarch64-linux-gnu/libtinfo.so.5.9",
|
|
96
|
-
dest: "libtinfo.so.5",
|
|
97
|
-
},
|
|
98
|
-
];
|
|
99
|
-
}
|
|
100
|
-
return [];
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=toolchain-download.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain-download.js","sourceRoot":"","sources":["../../../src/driver/toolchain-download.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,qDAAqD;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAa7C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAAmB,OAAO,CAAC,QAAQ,EACnC,OAAe,OAAO,CAAC,IAAI;IAE3B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO;gBACL,GAAG,EAAE,kEAAkE,YAAY,eAAe,YAAY,uCAAuC;gBACrJ,OAAO,EAAE,cAAc,YAAY,0BAA0B;gBAC7D,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,CAAC;aACnB,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,GAAG,EAAE,kEAAkE,YAAY,eAAe,YAAY,2BAA2B;gBACzI,OAAO,EAAE,cAAc,YAAY,2BAA2B;gBAC9D,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,CAAC;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3C,OAAO;YACL,GAAG,EAAE,4DAA4D,kBAAkB,eAAe,kBAAkB,kBAAkB;YACtI,OAAO,EAAE,cAAc,kBAAkB,kBAAkB;YAC3D,IAAI,EAAE,KAAK;YACX,eAAe,EAAE,CAAC;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7C,yEAAyE;QACzE,0EAA0E;QAC1E,qDAAqD;QACrD,OAAO;YACL,GAAG,EAAE,4DAA4D,kBAAkB,eAAe,kBAAkB,mBAAmB;YACvI,OAAO,EAAE,cAAc,kBAAkB,mBAAmB;YAC5D,IAAI,EAAE,KAAK;YACX,eAAe,EAAE,CAAC;SACnB,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAaD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAmB,OAAO,CAAC,QAAQ,EACnC,OAAe,OAAO,CAAC,IAAI;IAE3B,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3C,OAAO;YACL;gBACE,IAAI,EAAE;oBACJ,iGAAiG;oBACjG,gGAAgG;iBACjG;gBACD,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,sCAAsC;gBAC9C,IAAI,EAAE,eAAe;aACtB;SACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7C,6EAA6E;QAC7E,mEAAmE;QACnE,OAAO;YACL;gBACE,IAAI,EAAE;oBACJ,oGAAoG;oBACpG,mGAAmG;iBACpG;gBACD,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,uCAAuC;gBAC/C,IAAI,EAAE,eAAe;aACtB;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { LLVM_MINGW_VERSION, LLVM_VERSION, toolchainDownload, toolchainSupportLibraries, } from "../../src/driver/toolchain-download.js";
|
|
3
|
-
describe("toolchainDownload", () => {
|
|
4
|
-
it("maps Linux x64 to the pinned LLVM release", () => {
|
|
5
|
-
const target = toolchainDownload("linux", "x64");
|
|
6
|
-
expect(target?.url).toContain(`llvmorg-${LLVM_VERSION}`);
|
|
7
|
-
expect(target?.url).toContain("x86_64-linux-gnu");
|
|
8
|
-
expect(target?.kind).toBe("tar.xz");
|
|
9
|
-
expect(target?.stripComponents).toBe(1);
|
|
10
|
-
});
|
|
11
|
-
it("maps Linux arm64 to the pinned LLVM release", () => {
|
|
12
|
-
const target = toolchainDownload("linux", "arm64");
|
|
13
|
-
expect(target?.url).toContain("aarch64-linux-gnu");
|
|
14
|
-
expect(target?.kind).toBe("tar.xz");
|
|
15
|
-
});
|
|
16
|
-
it("maps Windows x64 to the pinned llvm-mingw release", () => {
|
|
17
|
-
const target = toolchainDownload("win32", "x64");
|
|
18
|
-
expect(target?.url).toContain(`llvm-mingw-${LLVM_MINGW_VERSION}`);
|
|
19
|
-
expect(target?.url).toContain("ucrt-x86_64");
|
|
20
|
-
expect(target?.kind).toBe("zip");
|
|
21
|
-
expect(target?.stripComponents).toBe(1);
|
|
22
|
-
});
|
|
23
|
-
it("maps Windows arm64 to the pinned llvm-mingw release", () => {
|
|
24
|
-
const target = toolchainDownload("win32", "arm64");
|
|
25
|
-
expect(target?.url).toContain(`llvm-mingw-${LLVM_MINGW_VERSION}`);
|
|
26
|
-
expect(target?.url).toContain("ucrt-aarch64");
|
|
27
|
-
expect(target?.kind).toBe("zip");
|
|
28
|
-
expect(target?.stripComponents).toBe(1);
|
|
29
|
-
});
|
|
30
|
-
it("does not bundle a toolchain on macOS", () => {
|
|
31
|
-
expect(toolchainDownload("darwin", "arm64")).toBeUndefined();
|
|
32
|
-
expect(toolchainDownload("darwin", "x64")).toBeUndefined();
|
|
33
|
-
});
|
|
34
|
-
it("bundles libtinfo.so.5 for Linux x64", () => {
|
|
35
|
-
const libraries = toolchainSupportLibraries("linux", "x64");
|
|
36
|
-
expect(libraries).toHaveLength(1);
|
|
37
|
-
expect(libraries[0]?.dest).toBe("libtinfo.so.5");
|
|
38
|
-
expect(libraries[0]?.urls.length).toBeGreaterThan(0);
|
|
39
|
-
});
|
|
40
|
-
it("bundles libtinfo.so.5 for Linux arm64", () => {
|
|
41
|
-
const libraries = toolchainSupportLibraries("linux", "arm64");
|
|
42
|
-
expect(libraries).toHaveLength(1);
|
|
43
|
-
expect(libraries[0]?.dest).toBe("libtinfo.so.5");
|
|
44
|
-
expect(libraries[0]?.member).toContain("aarch64-linux-gnu");
|
|
45
|
-
expect(libraries[0]?.urls.length).toBeGreaterThan(0);
|
|
46
|
-
});
|
|
47
|
-
it("requests no support libraries on other hosts", () => {
|
|
48
|
-
expect(toolchainSupportLibraries("darwin", "arm64")).toEqual([]);
|
|
49
|
-
expect(toolchainSupportLibraries("win32", "x64")).toEqual([]);
|
|
50
|
-
expect(toolchainSupportLibraries("win32", "arm64")).toEqual([]);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=toolchain-download.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain-download.test.js","sourceRoot":"","sources":["../../../tests/driver/toolchain-download.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* End-to-end tests: compile TypeScript all the way to a native binary and run
|
|
3
|
-
* it. Each program is compiled and executed through the shared
|
|
4
|
-
* {@link describeE2E} harness, so the suite is skipped when no
|
|
5
|
-
* clang-compatible compiler is available. Node extension coverage lives in
|
|
6
|
-
* `compile-node.test.ts`.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|