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.
Files changed (201) hide show
  1. package/README.md +22 -22
  2. package/README.zh-CN.md +20 -19
  3. package/bin/xbintsc.js +1 -2
  4. package/dist/src/cli/main.js +8 -5
  5. package/dist/src/cli/main.js.map +1 -1
  6. package/dist/src/codegen/generator/state.js +8 -0
  7. package/dist/src/codegen/generator/state.js.map +1 -1
  8. package/dist/src/codegen/generator/tables.d.ts +5 -6
  9. package/dist/src/codegen/generator/tables.js +13 -6
  10. package/dist/src/codegen/generator/tables.js.map +1 -1
  11. package/dist/src/driver/bundler/graph.d.ts +8 -0
  12. package/dist/src/driver/bundler/graph.js +85 -0
  13. package/dist/src/driver/bundler/graph.js.map +1 -0
  14. package/dist/src/driver/bundler/merge.d.ts +11 -0
  15. package/dist/src/driver/bundler/merge.js +288 -0
  16. package/dist/src/driver/bundler/merge.js.map +1 -0
  17. package/dist/src/driver/bundler/resolve.d.ts +12 -0
  18. package/dist/src/driver/bundler/resolve.js +246 -0
  19. package/dist/src/driver/bundler/resolve.js.map +1 -0
  20. package/dist/src/driver/bundler/symbols.d.ts +15 -0
  21. package/dist/src/driver/bundler/symbols.js +51 -0
  22. package/dist/src/driver/bundler/symbols.js.map +1 -0
  23. package/dist/src/driver/bundler/types.d.ts +36 -0
  24. package/dist/src/driver/bundler/types.js +5 -0
  25. package/dist/src/driver/bundler/types.js.map +1 -0
  26. package/dist/src/driver/index.d.ts +1 -2
  27. package/dist/src/driver/index.js +1 -2
  28. package/dist/src/driver/index.js.map +1 -1
  29. package/dist/src/driver/modules.d.ts +9 -16
  30. package/dist/src/driver/modules.js +8 -644
  31. package/dist/src/driver/modules.js.map +1 -1
  32. package/dist/src/driver/paths.d.ts +0 -9
  33. package/dist/src/driver/paths.js +0 -31
  34. package/dist/src/driver/paths.js.map +1 -1
  35. package/dist/src/driver/toolchain-provider.d.ts +10 -10
  36. package/dist/src/driver/toolchain-provider.js +9 -38
  37. package/dist/src/driver/toolchain-provider.js.map +1 -1
  38. package/dist/src/driver/toolchain.js +8 -2
  39. package/dist/src/driver/toolchain.js.map +1 -1
  40. package/dist/src/extensions/catalog.js +2 -1
  41. package/dist/src/extensions/catalog.js.map +1 -1
  42. package/dist/src/extensions/gui/index.d.ts +24 -0
  43. package/dist/src/extensions/gui/index.js +101 -0
  44. package/dist/src/extensions/gui/index.js.map +1 -0
  45. package/dist/src/extensions/native.d.ts +2 -3
  46. package/dist/src/extensions/native.js +2 -3
  47. package/dist/src/extensions/native.js.map +1 -1
  48. package/dist/tests/driver/paths.test.js +1 -9
  49. package/dist/tests/driver/paths.test.js.map +1 -1
  50. package/dist/tests/driver/toolchain-provider.test.js +12 -79
  51. package/dist/tests/driver/toolchain-provider.test.js.map +1 -1
  52. package/dist/tests/e2e/compile-basics.test.d.ts +4 -0
  53. package/dist/tests/e2e/compile-basics.test.js +134 -0
  54. package/dist/tests/e2e/compile-basics.test.js.map +1 -0
  55. package/dist/tests/e2e/compile-builtins.test.d.ts +4 -0
  56. package/dist/tests/e2e/compile-builtins.test.js +191 -0
  57. package/dist/tests/e2e/compile-builtins.test.js.map +1 -0
  58. package/dist/tests/e2e/compile-control-flow.test.d.ts +4 -0
  59. package/dist/tests/e2e/compile-control-flow.test.js +190 -0
  60. package/dist/tests/e2e/compile-control-flow.test.js.map +1 -0
  61. package/dist/tests/e2e/compile-modules.test.d.ts +4 -0
  62. package/dist/tests/e2e/compile-modules.test.js +48 -0
  63. package/dist/tests/e2e/compile-modules.test.js.map +1 -0
  64. package/dist/tests/e2e/compile-objects-classes.test.d.ts +4 -0
  65. package/dist/tests/e2e/compile-objects-classes.test.js +362 -0
  66. package/dist/tests/e2e/compile-objects-classes.test.js.map +1 -0
  67. package/dist/tests/e2e/differential-helpers.d.ts +12 -0
  68. package/dist/tests/e2e/differential-helpers.js +16 -0
  69. package/dist/tests/e2e/differential-helpers.js.map +1 -0
  70. package/dist/tests/e2e/differential-language.test.d.ts +4 -0
  71. package/dist/tests/e2e/{differential.test.js → differential-language.test.js} +5 -287
  72. package/dist/tests/e2e/differential-language.test.js.map +1 -0
  73. package/dist/tests/e2e/differential-symbols.test.d.ts +4 -0
  74. package/dist/tests/e2e/differential-symbols.test.js +92 -0
  75. package/dist/tests/e2e/differential-symbols.test.js.map +1 -0
  76. package/dist/tests/e2e/differential-values.test.d.ts +4 -0
  77. package/dist/tests/e2e/differential-values.test.js +197 -0
  78. package/dist/tests/e2e/differential-values.test.js.map +1 -0
  79. package/dist/tests/e2e/gui.test.d.ts +12 -0
  80. package/dist/tests/e2e/gui.test.js +493 -0
  81. package/dist/tests/e2e/gui.test.js.map +1 -0
  82. package/dist/tests/e2e/native-extensions.test.d.ts +4 -5
  83. package/dist/tests/e2e/native-extensions.test.js +6 -7
  84. package/dist/tests/e2e/native-extensions.test.js.map +1 -1
  85. package/dist/tests/e2e/runtime-coverage-buffer.test.d.ts +4 -0
  86. package/dist/tests/e2e/runtime-coverage-buffer.test.js +97 -0
  87. package/dist/tests/e2e/runtime-coverage-buffer.test.js.map +1 -0
  88. package/dist/tests/e2e/runtime-coverage-globals.test.d.ts +4 -0
  89. package/dist/tests/e2e/runtime-coverage-globals.test.js +149 -0
  90. package/dist/tests/e2e/runtime-coverage-globals.test.js.map +1 -0
  91. package/dist/tests/e2e/runtime-coverage-node-modules.test.d.ts +4 -0
  92. package/dist/tests/e2e/runtime-coverage-node-modules.test.js +177 -0
  93. package/dist/tests/e2e/runtime-coverage-node-modules.test.js.map +1 -0
  94. package/dist/tests/e2e/runtime-coverage-streams.test.d.ts +4 -0
  95. package/dist/tests/e2e/runtime-coverage-streams.test.js +161 -0
  96. package/dist/tests/e2e/runtime-coverage-streams.test.js.map +1 -0
  97. package/dist/tests/e2e/runtime-coverage-system.test.d.ts +4 -0
  98. package/dist/tests/e2e/runtime-coverage-system.test.js +91 -0
  99. package/dist/tests/e2e/runtime-coverage-system.test.js.map +1 -0
  100. package/dist/tests/e2e/timers.test.d.ts +7 -0
  101. package/dist/tests/e2e/timers.test.js +63 -0
  102. package/dist/tests/e2e/timers.test.js.map +1 -0
  103. package/package.json +2 -2
  104. package/runtime/ext_gui/css.cpp +743 -0
  105. package/runtime/ext_gui/css.h +98 -0
  106. package/runtime/ext_gui/document.cpp +264 -0
  107. package/runtime/ext_gui/document.h +89 -0
  108. package/runtime/ext_gui/dom.cpp +472 -0
  109. package/runtime/ext_gui/dom.h +71 -0
  110. package/runtime/ext_gui/gui.cpp +457 -0
  111. package/runtime/ext_gui/gui_engine.h +81 -0
  112. package/runtime/ext_gui/image.cpp +125 -0
  113. package/runtime/ext_gui/image.h +42 -0
  114. package/runtime/ext_gui/layout.cpp +748 -0
  115. package/runtime/ext_gui/layout.h +93 -0
  116. package/runtime/ext_gui/paint.cpp +137 -0
  117. package/runtime/ext_gui/paint.h +75 -0
  118. package/runtime/ext_gui/renderer.cpp +959 -0
  119. package/runtime/ext_gui/renderer.h +68 -0
  120. package/runtime/ext_gui/stb_image.h +7988 -0
  121. package/runtime/ext_gui/style.cpp +771 -0
  122. package/runtime/ext_gui/style.h +117 -0
  123. package/runtime/ext_gui/text.cpp +378 -0
  124. package/runtime/ext_gui/text.h +78 -0
  125. package/runtime/ext_gui/window.cpp +405 -0
  126. package/runtime/ext_node/fs/fs_common.h +13 -527
  127. package/runtime/ext_node/fs/meta_ops.c +3 -3
  128. package/runtime/ext_node/fs/parts/buffer-bridge.inc +6 -0
  129. package/runtime/ext_node/fs/parts/builtins.inc +69 -0
  130. package/runtime/ext_node/fs/parts/dir.inc +47 -0
  131. package/runtime/ext_node/fs/parts/encoding.inc +186 -0
  132. package/runtime/ext_node/fs/parts/errors.inc +66 -0
  133. package/runtime/ext_node/fs/parts/flags.inc +39 -0
  134. package/runtime/ext_node/fs/parts/platform.inc +86 -0
  135. package/runtime/ext_node/fs/parts/promisify.inc +15 -0
  136. package/runtime/ext_node/fs/parts/time.inc +9 -0
  137. package/runtime/rt.h +36 -4
  138. package/runtime/rt_internal.h +10 -23
  139. package/runtime/xt_builtins.c +4 -0
  140. package/runtime/xt_containers/access.inc +168 -0
  141. package/runtime/xt_containers/arrays.inc +108 -0
  142. package/runtime/xt_containers/boxes.inc +11 -0
  143. package/runtime/xt_containers/objects.inc +326 -0
  144. package/runtime/xt_containers.c +8 -618
  145. package/runtime/xt_ext.h +0 -1
  146. package/runtime/xt_io/base64.inc +87 -0
  147. package/runtime/xt_io/console.inc +119 -0
  148. package/runtime/xt_io/exception.inc +142 -0
  149. package/runtime/xt_io/inspect.inc +212 -0
  150. package/runtime/xt_io.c +11 -556
  151. package/runtime/xt_loop.c +262 -24
  152. package/runtime/xt_regex/api.inc +58 -0
  153. package/runtime/xt_regex/helpers.inc +68 -0
  154. package/runtime/xt_regex/matcher.inc +248 -0
  155. package/runtime/xt_regex/parser.inc +236 -0
  156. package/runtime/xt_regex/types.inc +58 -0
  157. package/runtime/xt_regex.h +9 -672
  158. package/runtime/xt_stdlib2/helpers.inc +2 -4
  159. package/runtime/xt_values/arithmetic.inc +150 -0
  160. package/runtime/xt_values/comparison.inc +112 -0
  161. package/runtime/xt_values/constructors.inc +41 -0
  162. package/runtime/xt_values/conversions.inc +115 -0
  163. package/runtime/xt_values/number-format.inc +180 -0
  164. package/runtime/xt_values/strings.inc +22 -0
  165. package/runtime/xt_values.c +10 -626
  166. package/scripts/build-gui.ts +317 -0
  167. package/scripts/build-runtime.ts +7 -8
  168. package/scripts/coverage-runtime.ts +4 -4
  169. package/scripts/package-release.ts +12 -84
  170. package/src/cli/main.ts +8 -4
  171. package/src/codegen/generator/state.ts +8 -0
  172. package/src/codegen/generator/tables.ts +13 -6
  173. package/src/driver/bundler/graph.ts +95 -0
  174. package/src/driver/bundler/merge.ts +312 -0
  175. package/src/driver/bundler/resolve.ts +240 -0
  176. package/src/driver/bundler/symbols.ts +55 -0
  177. package/src/driver/bundler/types.ts +37 -0
  178. package/src/driver/index.ts +1 -9
  179. package/src/driver/modules.ts +9 -693
  180. package/src/driver/paths.ts +0 -31
  181. package/src/driver/toolchain-provider.ts +12 -45
  182. package/src/driver/toolchain.ts +7 -2
  183. package/src/extensions/catalog.ts +2 -1
  184. package/src/extensions/gui/index.ts +107 -0
  185. package/src/extensions/native.ts +2 -3
  186. package/dist/src/driver/toolchain-download.d.ts +0 -50
  187. package/dist/src/driver/toolchain-download.js +0 -102
  188. package/dist/src/driver/toolchain-download.js.map +0 -1
  189. package/dist/tests/driver/toolchain-download.test.d.ts +0 -1
  190. package/dist/tests/driver/toolchain-download.test.js +0 -53
  191. package/dist/tests/driver/toolchain-download.test.js.map +0 -1
  192. package/dist/tests/e2e/compile.test.d.ts +0 -8
  193. package/dist/tests/e2e/compile.test.js +0 -893
  194. package/dist/tests/e2e/compile.test.js.map +0 -1
  195. package/dist/tests/e2e/differential.test.d.ts +0 -7
  196. package/dist/tests/e2e/differential.test.js.map +0 -1
  197. package/dist/tests/e2e/runtime-coverage.test.d.ts +0 -11
  198. package/dist/tests/e2e/runtime-coverage.test.js +0 -646
  199. package/dist/tests/e2e/runtime-coverage.test.js.map +0 -1
  200. package/scripts/fetch-toolchain.ts +0 -101
  201. package/src/driver/toolchain-download.ts +0 -135
@@ -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, so a bundled toolchain can
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. a toolchain shipped next to the package (`vendor/<os>-<arch>/bin`)
11
- * 3. the system `PATH` (`findClang`)
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" | "vendor" | "system";
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
- * Extra environment for the toolchain subprocesses, merged over the current
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, env?: Record<string, string>): boolean {
36
+ function works(runner: Runner, command: string): boolean {
40
37
  try {
41
- return runner.run(command, ["--version"], env ? { env } : undefined).status === 0;
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
  }
@@ -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
- const result = runner.run(candidate, ["--version"]);
68
- if (result.status === 0) return candidate;
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
+ };
@@ -18,9 +18,8 @@
18
18
  * {
19
19
  * "name": "mathx",
20
20
  * "description": "C++ math helpers",
21
- * "objects": ["build/libmathx.a"],
22
- * "linkerFlags": ["-lm"],
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAEhD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,YAAY,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,kBAAkB,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,kBAAkB,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7D,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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 {};