xbintsc 0.3.46 → 0.3.49

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 (91) hide show
  1. package/AGENTS.md +95 -0
  2. package/README.md +25 -0
  3. package/README.zh-CN.md +23 -0
  4. package/dist/src/cli/hints.d.ts +54 -0
  5. package/dist/src/cli/hints.js +165 -0
  6. package/dist/src/cli/hints.js.map +1 -0
  7. package/dist/src/cli/main.js +73 -9
  8. package/dist/src/cli/main.js.map +1 -1
  9. package/dist/src/codegen/generator/tables.d.ts +26 -0
  10. package/dist/src/codegen/generator/tables.js +64 -12
  11. package/dist/src/codegen/generator/tables.js.map +1 -1
  12. package/dist/src/diagnostics/source-text.d.ts +22 -0
  13. package/dist/src/diagnostics/source-text.js +76 -0
  14. package/dist/src/diagnostics/source-text.js.map +1 -0
  15. package/dist/src/driver/bundler/graph.js +2 -1
  16. package/dist/src/driver/bundler/graph.js.map +1 -1
  17. package/dist/src/driver/compiler.js +3 -2
  18. package/dist/src/driver/compiler.js.map +1 -1
  19. package/dist/src/lexer/scanner/strings.js +16 -3
  20. package/dist/src/lexer/scanner/strings.js.map +1 -1
  21. package/dist/tests/cli/hints.test.d.ts +9 -0
  22. package/dist/tests/cli/hints.test.js +143 -0
  23. package/dist/tests/cli/hints.test.js.map +1 -0
  24. package/dist/tests/cli/main.test.js +6 -4
  25. package/dist/tests/cli/main.test.js.map +1 -1
  26. package/dist/tests/codegen/llvm.test.js +17 -2
  27. package/dist/tests/codegen/llvm.test.js.map +1 -1
  28. package/dist/tests/helpers.js +3 -2
  29. package/dist/tests/helpers.js.map +1 -1
  30. package/dist/tests/lexer/strings.test.js +14 -2
  31. package/dist/tests/lexer/strings.test.js.map +1 -1
  32. package/doc/DESIGN.md +117 -0
  33. package/doc/ai/README.md +63 -0
  34. package/doc/ai/build-recipe.md +137 -0
  35. package/doc/ai/cli.md +142 -0
  36. package/doc/ai/contributing.md +196 -0
  37. package/doc/ai/extensions.md +148 -0
  38. package/doc/ai/language-support.md +152 -0
  39. package/doc/ai/troubleshooting.md +163 -0
  40. package/doc/ai/zh-CN/README.md +56 -0
  41. package/doc/ai/zh-CN/build-recipe.md +132 -0
  42. package/doc/ai/zh-CN/cli.md +127 -0
  43. package/doc/ai/zh-CN/contributing.md +173 -0
  44. package/doc/ai/zh-CN/extensions.md +139 -0
  45. package/doc/ai/zh-CN/language-support.md +147 -0
  46. package/doc/ai/zh-CN/troubleshooting.md +150 -0
  47. package/doc/gui-scripts.md +350 -0
  48. package/doc/gui.md +646 -0
  49. package/doc/icon.md +265 -0
  50. package/doc/implemented.md +373 -0
  51. package/doc/node-implemented.md +588 -0
  52. package/doc/node-unimplemented.md +167 -0
  53. package/doc/post/announce.md +43 -0
  54. package/doc/requirements.md +145 -0
  55. package/doc/unimplemented.md +286 -0
  56. package/doc/xbintsc.config.schema.json +67 -0
  57. package/doc/zh-CN/DESIGN.md +104 -0
  58. package/doc/zh-CN/gui-scripts.md +329 -0
  59. package/doc/zh-CN/gui.md +588 -0
  60. package/doc/zh-CN/icon.md +241 -0
  61. package/doc/zh-CN/implemented.md +365 -0
  62. package/doc/zh-CN/node-implemented.md +533 -0
  63. package/doc/zh-CN/node-unimplemented.md +141 -0
  64. package/doc/zh-CN/plan-require-node-modules.md +284 -0
  65. package/doc/zh-CN/post/announce.md +47 -0
  66. package/doc/zh-CN/requirements.md +134 -0
  67. package/doc/zh-CN/unimplemented.md +247 -0
  68. package/llms.txt +45 -0
  69. package/package.json +4 -1
  70. package/runtime/ext_gui/gui.cpp +3 -1
  71. package/runtime/ext_gui/renderer.cpp +13 -11
  72. package/runtime/ext_gui/renderer_image.cpp +12 -8
  73. package/runtime/ext_gui/renderer_shaders.h +131 -4
  74. package/runtime/ext_gui/renderer_shaders_data.h +1809 -0
  75. package/runtime/ext_gui/renderer_text.cpp +12 -8
  76. package/runtime/ext_gui/shaders.hlsl +98 -0
  77. package/runtime/ext_gui/spirv/fill.frag +19 -0
  78. package/runtime/ext_gui/spirv/fill.vert +42 -0
  79. package/runtime/ext_gui/spirv/image.frag +16 -0
  80. package/runtime/ext_gui/spirv/quad.vert +30 -0
  81. package/runtime/ext_gui/spirv/text.frag +16 -0
  82. package/scripts/build-gui-shaders.mjs +204 -0
  83. package/scripts/build-gui.ts +35 -0
  84. package/scripts/check-file-length.ts +5 -1
  85. package/src/cli/hints.ts +194 -0
  86. package/src/cli/main.ts +82 -9
  87. package/src/codegen/generator/tables.ts +60 -14
  88. package/src/diagnostics/source-text.ts +78 -0
  89. package/src/driver/bundler/graph.ts +2 -1
  90. package/src/driver/compiler.ts +3 -2
  91. package/src/lexer/scanner/strings.ts +16 -3
package/AGENTS.md ADDED
@@ -0,0 +1,95 @@
1
+ # AGENTS.md — working in the xbintsc repository
2
+
3
+ **xbintsc is a compiler: it turns a subset of TypeScript into standalone native
4
+ binaries.** It lexes and parses TypeScript itself, binds names, lowers the
5
+ program to **LLVM IR text**, and hands that text to **clang**, which produces an
6
+ executable linked against a small C runtime. There is no Node, V8 or TypeScript
7
+ compiler in the produced binary.
8
+
9
+ Read this file first. Then read **one** of the documents below — the one that
10
+ matches your task. Do not read all of `doc/`.
11
+
12
+ ## Which task are you doing?
13
+
14
+ | Your task | Read next |
15
+ | --- | --- |
16
+ | Write/compile a TypeScript program *with* xbintsc | [doc/ai/cli.md](./doc/ai/cli.md) |
17
+ | Check whether a syntax or API is supported | [doc/ai/language-support.md](./doc/ai/language-support.md) |
18
+ | Use `fs`, `http`, `crypto`, … or a C++/Rust library | [doc/ai/extensions.md](./doc/ai/extensions.md) |
19
+ | A build failed and you need to fix it | [doc/ai/troubleshooting.md](./doc/ai/troubleshooting.md) |
20
+ | Change the compiler, runtime or tests | [doc/ai/contributing.md](./doc/ai/contributing.md) |
21
+ | Machine-readable index of every doc | [llms.txt](./llms.txt) |
22
+
23
+ Chinese: [doc/ai/zh-CN/](./doc/ai/zh-CN/).
24
+
25
+ ## The 60-second version
26
+
27
+ ```bash
28
+ npm install # Node.js >= 22, this checkout only
29
+
30
+ # Compile and run (from source; a release archive calls `xbintsc` directly)
31
+ npx tsx src/cli/main.ts run examples/hello.ts
32
+ npx tsx src/cli/main.ts build examples/hello.ts --out build
33
+ ./build/hello # build/hello.exe on Windows
34
+
35
+ # Inspect the generated LLVM IR instead of building
36
+ npx tsx src/cli/main.ts emit examples/hello.ts
37
+
38
+ # Which toolchain did xbintsc pick?
39
+ npx tsx src/cli/main.ts doctor
40
+ ```
41
+
42
+ A program that needs a Node module must opt the extension in, or the import
43
+ fails: `npx tsx src/cli/main.ts run app.ts --ext node`.
44
+
45
+ ## Non-negotiable facts about the language
46
+
47
+ These are the traps that make plausible-looking TypeScript fail. Confirm details
48
+ in [doc/ai/language-support.md](./doc/ai/language-support.md).
49
+
50
+ - **It is a subset.** Syntax outside the subset fails with `UnsupportedFeature`
51
+ or a parse error. Never assume "TypeScript" means "what Node accepts".
52
+ - **Types are erased, never checked.** Annotations, interfaces, generics and
53
+ `as` do nothing at runtime — a type error in the source is not caught for you.
54
+ - **Node modules need `--ext node`.** Bare third-party npm imports are not
55
+ supported.
56
+ - **Strings are UTF-8 bytes.** `"é".length` is 1, `"😀".length` is 4 — not the
57
+ ECMAScript UTF-16 counts.
58
+ - **`async` is a synchronous microtask model,** not a real event loop. A promise
59
+ settled from a timer or socket callback cannot be awaited.
60
+ - **No CommonJS.** `require()` is rejected; use ESM `import`. No live bindings.
61
+ - **clang ≥ 16 is required.** clang 15 rejects the emitted IR (typed-pointer
62
+ error `'@.str.0' defined with type '[6 x i8]*' but expected 'i8*'`). `xbintsc
63
+ doctor` reports the resolved version.
64
+
65
+ ## Repository map
66
+
67
+ ```
68
+ src/lexer, src/parser, src/ast source text -> tokens -> AST
69
+ src/binder scopes, symbols, closures
70
+ src/codegen AST -> LLVM IR text (values.ts defines the value model)
71
+ src/driver build orchestration, clang invocation, incremental cache
72
+ src/extensions optional compile modules (node/, gui/, native C++/Rust)
73
+ src/diagnostics diagnostic codes and rendering
74
+ src/cli/main.ts the CLI (`build` / `run` / `emit` / `doctor`)
75
+ runtime/ the C runtime: values, containers, stdlib, GC, event loop
76
+ tests/ per-module unit tests + tests/e2e that compile real binaries
77
+ doc/ the detailed, canonical documentation
78
+ ```
79
+
80
+ ## Rules for changing this repository
81
+
82
+ - **Keep the source files small.** ESLint enforces a 600-line cap per code file
83
+ (`npm run lint`), so split modules by responsibility instead of growing them.
84
+ - **No `any`.** `@typescript-eslint/no-explicit-any` is an error.
85
+ - **Run the gate before you claim done:** `npm run typecheck && npm run lint &&
86
+ npm test`. End-to-end tests compile and run real binaries, so they need clang;
87
+ they skip when it is missing.
88
+ - **Runtime changes are C.** Compiled functions use one ABI —
89
+ `xt_value fn(xt_value env, int32_t argc, xt_value *argv)` — and every value is
90
+ one NaN-boxed 64-bit word (see `runtime/rt.h`, `src/codegen/values.ts`).
91
+ - **Update the docs when support changes.** `doc/implemented.md`,
92
+ `doc/unimplemented.md` and `doc/ai/language-support.md` are the contract AI
93
+ agents rely on; a feature that lands without them becomes a wrong answer later.
94
+ - **Bilingual docs.** `doc/*.md` is English and `doc/zh-CN/*.md` is its
95
+ translation; `doc/ai/` follows the same split.
package/README.md CHANGED
@@ -356,3 +356,28 @@ Check your environment with `xbintsc doctor`.
356
356
  - [Implemented features](./doc/implemented.md)
357
357
  - [Unimplemented features](./doc/unimplemented.md)
358
358
  - [Application icons & project config](./doc/icon.md)
359
+
360
+ ## Using xbintsc with an AI agent
361
+
362
+ The compiler is strict about its language subset — types are erased rather than
363
+ checked, Node modules need `--ext node`, third-party npm imports are unsupported,
364
+ strings are UTF-8 bytes and `async` is a synchronous microtask model. An agent
365
+ that assumes "TypeScript" means "what Node accepts" will write code that does
366
+ not compile, so the documentation is layered for exactly that reader:
367
+
368
+ - [AGENTS.md](./AGENTS.md) — the entry point for an agent working **in this
369
+ repository**: what xbintsc is, the repository map, the build gate and the rules.
370
+ - [doc/ai/](./doc/ai) — the task-oriented guide for using the compiler, split by
371
+ task: [build recipe](./doc/ai/build-recipe.md),
372
+ [CLI and config](./doc/ai/cli.md),
373
+ [language support](./doc/ai/language-support.md),
374
+ [extensions](./doc/ai/extensions.md),
375
+ [troubleshooting](./doc/ai/troubleshooting.md),
376
+ [contributing](./doc/ai/contributing.md). Read the page for the task, not the
377
+ whole directory. Chinese: [doc/ai/zh-CN/](./doc/ai/zh-CN).
378
+ - [llms.txt](./llms.txt) — a machine-readable index of every document, for a
379
+ tool that wants one fetch instead of a checkout.
380
+
381
+ Failures point the way themselves: a compiler error ends with a
382
+ `hint: … — see <document>` line naming the page that explains the fix. Pass
383
+ `--no-hints` for plain output.
package/README.zh-CN.md CHANGED
@@ -304,3 +304,26 @@ V8 只能看到编译器自身的源码,因此 `npm run coverage:runtime` 改
304
304
 
305
305
  - [已实现特性](./doc/zh-CN/implemented.md)
306
306
  - [未实现特性](./doc/zh-CN/unimplemented.md)
307
+
308
+ ## 让 AI 使用 xbintsc
309
+
310
+ 这个编译器对语言子集很严格——类型只被擦除而从不检查、Node 模块需要
311
+ `--ext node`、不支持直接 import 第三方 npm 包、字符串按 UTF-8 字节计、`async`
312
+ 是同步微任务模型。如果 AI 把"TypeScript"当成"Node 能跑的 TypeScript",写出来的
313
+ 代码就编译不过,因此文档正是按这类读者分层组织的:
314
+
315
+ - [AGENTS.md](./AGENTS.md) —— **在本仓库内**工作的 AI 的入口:xbintsc 是什么、
316
+ 仓库结构、构建门禁与改动规则。
317
+ - [doc/ai/](./doc/ai) —— 面向使用者的任务导向指南,按任务拆分:
318
+ [构建配方](./doc/ai/zh-CN/build-recipe.md)、
319
+ [CLI 与配置](./doc/ai/zh-CN/cli.md)、
320
+ [语言支持范围](./doc/ai/zh-CN/language-support.md)、
321
+ [扩展](./doc/ai/zh-CN/extensions.md)、
322
+ [排错](./doc/ai/zh-CN/troubleshooting.md)、
323
+ [参与开发](./doc/ai/zh-CN/contributing.md)。只读当前任务需要的那一篇,不必通读。
324
+ 英文版:[doc/ai/](./doc/ai)。
325
+ - [llms.txt](./llms.txt) —— 所有文档的机器可读索引,让工具一次抓取即可,无需克隆
326
+ 仓库。
327
+
328
+ 报错本身也会指路:编译器错误末尾会有一行 `hint: … — see <文档>`,指明解释该问题的
329
+ 页面;需要干净输出时加 `--no-hints`。
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Documentation pointers for diagnostics.
3
+ *
4
+ * Every failure printed by the CLI ends with a `hint:` line naming the document
5
+ * that explains what to do next. The messages already say what is wrong; these
6
+ * lines say where to read more, which is what keeps an agent (or a person) from
7
+ * re-deriving the language subset one failed build at a time.
8
+ *
9
+ * The paths are relative to the repository root, so they stay clickable in
10
+ * GitHub's rendered output and on a terminal that links paths.
11
+ */
12
+ import { DiagnosticCode, type Diagnostic } from "../diagnostics/diagnostic.js";
13
+ /** Where a reader should go next. */
14
+ export interface DocumentationPointer {
15
+ /** Message printed after `hint:`. */
16
+ readonly text: string;
17
+ /** Repository-relative path to the document. */
18
+ readonly path: string;
19
+ }
20
+ export declare const DOC_LANGUAGE_SUPPORT = "doc/ai/language-support.md";
21
+ export declare const DOC_EXTENSIONS = "doc/ai/extensions.md";
22
+ export declare const DOC_TROUBLESHOOTING = "doc/ai/troubleshooting.md";
23
+ export declare const DOC_CLI = "doc/ai/cli.md";
24
+ export declare const DOC_REQUIREMENTS = "doc/requirements.md";
25
+ /** Hint for a clang failure: a missing or too-old clang has a specific answer. */
26
+ export declare function toolchainPointer(message: string): DocumentationPointer;
27
+ /** A thrown failure the CLI can name, in table order. */
28
+ export interface ThrownFailure {
29
+ /** Tested against the thrown message. */
30
+ readonly match: RegExp;
31
+ readonly code: DiagnosticCode;
32
+ readonly pointer: DocumentationPointer;
33
+ }
34
+ /** The failure a thrown error's message describes, if any. */
35
+ export declare function thrownFailure(message: string): ThrownFailure | undefined;
36
+ /**
37
+ * The completion for an unclassified thrown error: the toolchain's own wording
38
+ * is the only thing worth directing a reader to.
39
+ */
40
+ export declare const UNEXPECTED_FAILURE_HINT: DocumentationPointer;
41
+ /**
42
+ * The document that explains a diagnostic, or `undefined` for internal errors
43
+ * that no reader can act on.
44
+ */
45
+ export declare function documentationFor(diagnostic: Diagnostic): DocumentationPointer | undefined;
46
+ /** Render one `hint:` line, or `undefined` when the code has no document. */
47
+ export declare function formatDocumentationHint(diagnostic: Diagnostic): string | undefined;
48
+ /**
49
+ * One hint line per failing diagnostic, in first-seen order and without
50
+ * repeating a document the reader has already been sent to.
51
+ */
52
+ export declare function documentationHints(diagnostics: readonly Diagnostic[]): string[];
53
+ /** Render one hint line for an already-classified thrown failure. */
54
+ export declare function formatThrownHint(pointer: DocumentationPointer): string;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Documentation pointers for diagnostics.
3
+ *
4
+ * Every failure printed by the CLI ends with a `hint:` line naming the document
5
+ * that explains what to do next. The messages already say what is wrong; these
6
+ * lines say where to read more, which is what keeps an agent (or a person) from
7
+ * re-deriving the language subset one failed build at a time.
8
+ *
9
+ * The paths are relative to the repository root, so they stay clickable in
10
+ * GitHub's rendered output and on a terminal that links paths.
11
+ */
12
+ import { DiagnosticCode } from "../diagnostics/diagnostic.js";
13
+ export const DOC_LANGUAGE_SUPPORT = "doc/ai/language-support.md";
14
+ export const DOC_EXTENSIONS = "doc/ai/extensions.md";
15
+ export const DOC_TROUBLESHOOTING = "doc/ai/troubleshooting.md";
16
+ export const DOC_CLI = "doc/ai/cli.md";
17
+ export const DOC_REQUIREMENTS = "doc/requirements.md";
18
+ const CHECKER_HINT = {
19
+ text: "the compiler supports a subset of TypeScript; check what is implemented before rewriting",
20
+ path: DOC_LANGUAGE_SUPPORT,
21
+ };
22
+ const REQUIREMENT_HINT = {
23
+ text: "xbintsc needs clang 16 or newer; run `xbintsc doctor` to see the resolved toolchain",
24
+ path: DOC_REQUIREMENTS,
25
+ };
26
+ /** Hint for a clang failure: a missing or too-old clang has a specific answer. */
27
+ export function toolchainPointer(message) {
28
+ const usesTypedPointers = /defined with type '\[.*i8\]\*' but expected 'i8\*'/.test(message);
29
+ if (usesTypedPointers || /No C compiler found/i.test(message))
30
+ return REQUIREMENT_HINT;
31
+ return {
32
+ text: "read the clang output above, then the toolchain section of the troubleshooting guide",
33
+ path: DOC_TROUBLESHOOTING,
34
+ };
35
+ }
36
+ /**
37
+ * Failures the CLI reports as a message instead of a diagnostic. Matching on the
38
+ * text is what lets each one reach the document that actually explains it —
39
+ * a missing manifest and an unknown extension are both "cannot read something",
40
+ * but only one of them is answered by the CLI reference.
41
+ */
42
+ const THROWN_FAILURES = [
43
+ {
44
+ match: /native extension manifest/i,
45
+ code: DiagnosticCode.IOError,
46
+ pointer: {
47
+ text: "check the manifest path and its JSON; objects are relative to the manifest file",
48
+ path: DOC_EXTENSIONS,
49
+ },
50
+ },
51
+ {
52
+ match: /Unknown extension/i,
53
+ code: DiagnosticCode.IOError,
54
+ pointer: {
55
+ text: "run `xbintsc help` for the flag, and see the built-in extensions this build ships",
56
+ path: DOC_EXTENSIONS,
57
+ },
58
+ },
59
+ {
60
+ match: /config|JSON/i,
61
+ code: DiagnosticCode.IOError,
62
+ pointer: {
63
+ text: "check the project config path and its fields",
64
+ path: DOC_CLI,
65
+ },
66
+ },
67
+ ];
68
+ /** The failure a thrown error's message describes, if any. */
69
+ export function thrownFailure(message) {
70
+ return THROWN_FAILURES.find((failure) => failure.match.test(message));
71
+ }
72
+ /**
73
+ * The completion for an unclassified thrown error: the toolchain's own wording
74
+ * is the only thing worth directing a reader to.
75
+ */
76
+ export const UNEXPECTED_FAILURE_HINT = {
77
+ text: "this failure has no dedicated guide; check the resolved toolchain and the source paths",
78
+ path: DOC_TROUBLESHOOTING,
79
+ };
80
+ /**
81
+ * The document that explains a diagnostic, or `undefined` for internal errors
82
+ * that no reader can act on.
83
+ */
84
+ export function documentationFor(diagnostic) {
85
+ switch (diagnostic.code) {
86
+ // Lexer, parser and binder report a precise location; the guidance is the
87
+ // same subset reference.
88
+ case DiagnosticCode.UnterminatedString:
89
+ case DiagnosticCode.UnterminatedTemplate:
90
+ case DiagnosticCode.UnterminatedComment:
91
+ case DiagnosticCode.InvalidCharacter:
92
+ case DiagnosticCode.InvalidNumber:
93
+ case DiagnosticCode.InvalidEscape:
94
+ case DiagnosticCode.UnexpectedToken:
95
+ case DiagnosticCode.ExpectedToken:
96
+ case DiagnosticCode.ExpectedIdentifier:
97
+ case DiagnosticCode.UnexpectedEof:
98
+ case DiagnosticCode.InvalidAssignmentTarget:
99
+ case DiagnosticCode.DuplicateDefault:
100
+ case DiagnosticCode.InvalidTypeSyntax:
101
+ case DiagnosticCode.DuplicateIdentifier:
102
+ case DiagnosticCode.CannotFindName:
103
+ case DiagnosticCode.IllegalRedeclaration:
104
+ case DiagnosticCode.CannotAssignToConst:
105
+ case DiagnosticCode.UnsupportedFeature:
106
+ return CHECKER_HINT;
107
+ // Every codegen and bundler error carries its own message; the subset page
108
+ // is what separates "you wrote unsupported code" from "you wrote a bug".
109
+ case DiagnosticCode.CodegenError:
110
+ return CHECKER_HINT;
111
+ case DiagnosticCode.ModuleNotFound:
112
+ return {
113
+ text: "Node modules need the `node` extension (`--ext node`); third-party npm packages are not supported",
114
+ path: DOC_EXTENSIONS,
115
+ };
116
+ case DiagnosticCode.IOError:
117
+ return {
118
+ text: "check the path and the project config; paths in xbintsc.config.json resolve against that file",
119
+ path: DOC_TROUBLESHOOTING,
120
+ };
121
+ case DiagnosticCode.ToolchainError:
122
+ return toolchainPointer(diagnostic.message);
123
+ case DiagnosticCode.IncrementalCacheError:
124
+ return {
125
+ text: "the incremental cache could not be trusted; retry with `--force` or remove the cache directory",
126
+ path: DOC_CLI,
127
+ };
128
+ // The checker codes are defined but never emitted today.
129
+ case DiagnosticCode.TypeMismatch:
130
+ case DiagnosticCode.NotCallable:
131
+ case DiagnosticCode.PropertyNotFound:
132
+ case DiagnosticCode.ArgumentCountMismatch:
133
+ return CHECKER_HINT;
134
+ }
135
+ }
136
+ /** Render one `hint:` line, or `undefined` when the code has no document. */
137
+ export function formatDocumentationHint(diagnostic) {
138
+ const pointer = documentationFor(diagnostic);
139
+ if (!pointer)
140
+ return undefined;
141
+ return `hint: ${pointer.text} — see ${pointer.path}`;
142
+ }
143
+ /**
144
+ * One hint line per failing diagnostic, in first-seen order and without
145
+ * repeating a document the reader has already been sent to.
146
+ */
147
+ export function documentationHints(diagnostics) {
148
+ const lines = [];
149
+ const seen = new Set();
150
+ for (const diagnostic of diagnostics) {
151
+ if (diagnostic.category !== "error")
152
+ continue;
153
+ const line = formatDocumentationHint(diagnostic);
154
+ if (line === undefined || seen.has(line))
155
+ continue;
156
+ seen.add(line);
157
+ lines.push(line);
158
+ }
159
+ return lines;
160
+ }
161
+ /** Render one hint line for an already-classified thrown failure. */
162
+ export function formatThrownHint(pointer) {
163
+ return `hint: ${pointer.text} — see ${pointer.path}`;
164
+ }
165
+ //# sourceMappingURL=hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.js","sourceRoot":"","sources":["../../../src/cli/hints.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,8 @@ import { build, compileEntry, COMPILER_VERSION } from "../driver/compiler.js";
21
21
  import { findRuntimeDir, platformSlug } from "../driver/paths.js";
22
22
  import { runtimeLibDir } from "../driver/runtime-lib.js";
23
23
  import { resolveToolchain } from "../driver/toolchain-provider.js";
24
- import { realRunner } from "../driver/toolchain.js";
24
+ import { realRunner, ToolchainError } from "../driver/toolchain.js";
25
+ import { DOC_CLI, DOC_TROUBLESHOOTING, documentationHints, thrownFailure, toolchainPointer, UNEXPECTED_FAILURE_HINT, } from "./hints.js";
25
26
  import { createDefaultRegistry } from "../extensions/registry.js";
26
27
  import { bundledExtensions } from "../extensions/catalog.js";
27
28
  import { nativeExtensionFromManifest } from "../extensions/native.js";
@@ -31,6 +32,12 @@ const defaultIo = {
31
32
  stdout: (text) => process.stdout.write(text),
32
33
  stderr: (text) => process.stderr.write(text),
33
34
  };
35
+ /**
36
+ * `--no-hints` state for the current {@link run} call. A module-level flag (and
37
+ * not a parameter) keeps the hint layer out of the signatures of every helper
38
+ * that can fail.
39
+ */
40
+ let hintsDisabled = false;
34
41
  const VALUE_FLAGS = new Set([
35
42
  "output",
36
43
  "out",
@@ -137,6 +144,43 @@ function printDiagnostics(diagnostics, fileName, io) {
137
144
  }
138
145
  io.stderr(formatDiagnostic(diagnostic, source) + "\n");
139
146
  }
147
+ for (const hint of documentationHints(diagnostics))
148
+ emitHint(io, hint);
149
+ }
150
+ /** Print one `hint:` line unless the caller asked for plain output. */
151
+ function emitHint(io, line) {
152
+ if (hintsDisabled)
153
+ return;
154
+ io.stderr(`${line}\n`);
155
+ }
156
+ /**
157
+ * Report a failure that threw instead of becoming a diagnostic, ending with the
158
+ * documentation pointer that explains it. Without this a toolchain failure is a
159
+ * raw stack trace, which tells a reader nothing about which document answers
160
+ * the question.
161
+ */
162
+ function reportThrown(error, io) {
163
+ const message = error instanceof ToolchainError
164
+ ? `xbintsc: ${error.message}`
165
+ : `xbintsc: ${error instanceof Error ? error.message : String(error)}`;
166
+ io.stderr(`${message.trimEnd()}\n`);
167
+ const text = error instanceof ToolchainError ? error.message : message;
168
+ const pointer = error instanceof ToolchainError ? toolchainPointer(text) : thrownPointer(text);
169
+ emitHint(io, `hint: ${pointer.text} — see ${pointer.path}`);
170
+ return 1;
171
+ }
172
+ /** The document that explains a failure the CLI reports as a plain message. */
173
+ function thrownPointer(message) {
174
+ return thrownFailure(message)?.pointer ?? UNEXPECTED_FAILURE_HINT;
175
+ }
176
+ /** Report a project-config failure, which never becomes a diagnostic bag. */
177
+ function reportConfigError(error, io) {
178
+ io.stderr(`xbintsc: ${error}\n`);
179
+ const pointer = /JSON/i.test(error)
180
+ ? `hint: fix the JSON; an unreadable or malformed config fails the build — see ${DOC_TROUBLESHOOTING}`
181
+ : `hint: check the config path and its fields — see ${DOC_CLI}`;
182
+ emitHint(io, pointer);
183
+ return 1;
140
184
  }
141
185
  const HELP = `xbintsc ${COMPILER_VERSION} - TypeScript binary compiler
142
186
 
@@ -165,6 +209,14 @@ Options:
165
209
  --app-id <id> macOS bundle identifier (e.g. com.example.demo)
166
210
  --force Ignore the incremental cache
167
211
  --verbose Print progress information
212
+ --no-hints Do not append the "hint: … see <doc>" line to failures
213
+
214
+ xbintsc compiles a subset of TypeScript to a native binary. Types are erased
215
+ (never checked), Node modules need --ext node, third-party npm imports are not
216
+ supported, and clang 16+ is required to link.
217
+
218
+ Docs: doc/ai/README.md (task guide) - doc/ai/language-support.md (subset) -
219
+ doc/ai/troubleshooting.md (failures) - llms.txt (index of every document)
168
220
  `;
169
221
  function firstLine(text) {
170
222
  const index = text.indexOf("\n");
@@ -256,6 +308,20 @@ function listFlag(flags, name) {
256
308
  .filter(Boolean);
257
309
  }
258
310
  export function run(argv, io = defaultIo) {
311
+ const disableHints = parseArgs(argv).flags.has("no-hints");
312
+ const previous = hintsDisabled;
313
+ hintsDisabled = disableHints;
314
+ try {
315
+ return dispatch(argv, io);
316
+ }
317
+ catch (error) {
318
+ return reportThrown(error, io);
319
+ }
320
+ finally {
321
+ hintsDisabled = previous;
322
+ }
323
+ }
324
+ function dispatch(argv, io) {
259
325
  const args = parseArgs(argv);
260
326
  const command = args.command;
261
327
  if (!command || command === "help" || args.flags.has("help")) {
@@ -272,13 +338,12 @@ export function run(argv, io = defaultIo) {
272
338
  if (command === "emit") {
273
339
  const cliEntry = args.positionals[0];
274
340
  const resolved = resolveProjectConfig(args.flags, cliEntry);
275
- if (!resolved.ok) {
276
- io.stderr(`xbintsc: ${resolved.error}\n`);
277
- return 1;
278
- }
341
+ if (!resolved.ok)
342
+ return reportConfigError(resolved.error, io);
279
343
  const entry = cliEntry ?? resolved.config.entry;
280
344
  if (!entry) {
281
345
  io.stderr(`xbintsc: emit requires a source file (or 'entry' in ${CONFIG_FILE_NAME})\n`);
346
+ emitHint(io, `hint: pass the entry file, or set 'entry' in ${CONFIG_FILE_NAME} — see ${DOC_CLI}`);
282
347
  return 1;
283
348
  }
284
349
  const extNames = listFlag(args.flags, "ext") ?? resolved.config.extensions ?? [];
@@ -295,14 +360,13 @@ export function run(argv, io = defaultIo) {
295
360
  if (command === "build" || command === "run") {
296
361
  const cliEntry = args.positionals[0];
297
362
  const resolved = resolveProjectConfig(args.flags, cliEntry);
298
- if (!resolved.ok) {
299
- io.stderr(`xbintsc: ${resolved.error}\n`);
300
- return 1;
301
- }
363
+ if (!resolved.ok)
364
+ return reportConfigError(resolved.error, io);
302
365
  const config = resolved.config;
303
366
  const entry = cliEntry ?? config.entry;
304
367
  if (!entry) {
305
368
  io.stderr(`xbintsc: ${command} requires a source file (or 'entry' in ${CONFIG_FILE_NAME})\n`);
369
+ emitHint(io, `hint: pass the entry file, or set 'entry' in ${CONFIG_FILE_NAME} — see ${DOC_CLI}`);
306
370
  return 1;
307
371
  }
308
372
  const emit = args.flags.get("emit") ?? "exe";
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -47,5 +47,31 @@ export declare function propertyNameText(name: Node): string;
47
47
  /** Human readable syntax kind for diagnostics (const enums have no reverse map). */
48
48
  export declare function kindName(kind: number): string;
49
49
  export declare const KIND_NAMES: Map<number, string>;
50
+ /**
51
+ * The UTF-8 bytes of one code point, which must be an ASCII byte or a Unicode
52
+ * scalar (`0..0x10ffff`, not a surrogate). Encoded by hand rather than with
53
+ * `String.fromCharCode`/`String.fromCodePoint`, which a self-hosted build would
54
+ * run through the runtime and encode a second time.
55
+ */
56
+ export declare function codePointBytes(code: number): number[];
57
+ /**
58
+ * The bytes a string literal stands for.
59
+ *
60
+ * A compiled string is a sequence of UTF-8 bytes (`"é".length` is 1 and
61
+ * `"😀".length` is 4 - see doc/ai/language-support.md). The text reaching this
62
+ * point is whatever a host's strings are, and both shapes have to produce the
63
+ * same bytes:
64
+ *
65
+ * - a UTF-16 host decodes a file into characters, so `é` is one code unit
66
+ * (0xe9) and has to be encoded here;
67
+ * - the self-hosted runtime has no UTF-8 decoder, so `readFileSync` hands over
68
+ * a file's bytes, and `é` is already `c3 a9`. Encoding that again is what
69
+ * turned the three bytes of `—` into six and broke the self-hosting fixpoint.
70
+ *
71
+ * A code unit above 0xff can only be text, so its presence settles which shape
72
+ * this is: text is encoded (once), and text that is already a byte sequence is
73
+ * emitted as it is. A source file read on either host therefore lands on the
74
+ * same bytes, which is what the fixpoint needs.
75
+ */
50
76
  export declare function utf8Bytes(text: string): number[];
51
77
  export declare function escapeBytes(bytes: readonly number[]): string;