scriptc 0.0.35 → 0.0.36
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 +15 -2
- package/dist/bootstrap.js +18 -3
- package/dist/bootstrap.js.map +1 -1
- package/dist/main.js +72 -21
- package/dist/main.js.map +1 -1
- package/dist/output-options.d.ts +25 -0
- package/dist/output-options.js +67 -0
- package/dist/output-options.js.map +1 -0
- package/dist/paths.d.ts +9 -0
- package/dist/paths.js +37 -5
- package/dist/paths.js.map +1 -1
- package/dist/usage.d.ts +7 -1
- package/dist/usage.js +10 -3
- package/dist/usage.js.map +1 -1
- package/package.json +2 -2
- package/scripts/runtime-pack-host.d.mts +5 -0
- package/scripts/runtime-pack-host.mjs +10 -0
- package/scripts/warm-cache.mjs +8 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# scriptc
|
|
2
2
|
|
|
3
|
-
Compile ordinary TypeScript and JavaScript to small, fast native executables or WASI WebAssembly modules — no Node, no V8, no JavaScript engine in the artifact.
|
|
3
|
+
Compile ordinary TypeScript and JavaScript to small, fast native executables or WASI WebAssembly modules — no Node, no V8, no JavaScript engine in the artifact.
|
|
4
4
|
|
|
5
5
|
```console
|
|
6
6
|
$ cat fib.ts
|
|
@@ -22,7 +22,7 @@ $ scriptc build fib.ts -o fib && ./fib
|
|
|
22
22
|
$ npm install -g scriptc
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Requires
|
|
25
|
+
Requires Node.js 24. Executable builds require a platform linker driver and SDK. On macOS 15+ arm64, LLVM-tier executables use the matching optional helper and precompiled runtime pack, so the driver only links; explicit C builds, LLVM fallbacks, and `--sanitize` still compile C. `--emit=ir|c|llvm` requires only Node, while `--emit=asm|obj` requires neither an external compiler nor a linker.
|
|
26
26
|
|
|
27
27
|
Builds use a bounded persistent cache by default. Exact unchanged library builds validate their recorded TypeScript/module-resolution inputs and restore the generated C/LLVM unit before starting the frontend. TypeScript comment-only edits can restore validated lowered IR instead, rebasing source locations and regenerating exact-source build identity before emission; directives, JSDoc-bearing JavaScript, token edits, configuration, package resolution, and newly appearing candidates still invalidate it. Library identity getters live in a tiny C translation unit, so build-id-only changes reuse the large compiled program object and compile only that small member before rearchiving. The native cache then applies its independent toolchain checks. Unchanged executables and library archives skip native code generation and linking after fresh compiler metadata probes, while edited builds reuse stable runtime objects. Experimental provenance-source builds bypass the early frontend tier because their fetched-source registry is process state. FFI builds with archive/object inputs or ambient `system_libraries` relink every time but still reuse runtime objects. Mutable compiler input paths such as `CPATH` and `SDKROOT`, and compiler wrappers, bypass persistent native artifacts and objects so same-path dependency edits cannot go stale. Opaque archiver wrappers rebuild library program members and archives while retaining runtime-object reuse. Direct Clang, Apple's system Clang shim, `zig cc`, trusted platform archivers, and `zig ar` retain their applicable persistent tiers. Set `SCRIPTC_NO_CACHE=1` to bypass every cache or `SCRIPTC_CACHE_DIR` to choose its location; an existing POSIX override must already be private, otherwise caching is bypassed without changing its permissions.
|
|
28
28
|
|
|
@@ -32,6 +32,19 @@ Builds use a bounded persistent cache by default. Exact unchanged library builds
|
|
|
32
32
|
- `scriptc run <file.ts>` — compile and run
|
|
33
33
|
- `scriptc coverage <file.ts>` — what compiles statically, and why the rest doesn't
|
|
34
34
|
|
|
35
|
+
`scriptc build app.ts --emit=ir|c|llvm|asm|obj` selects serialized typed IR,
|
|
36
|
+
readable C, textual LLVM IR, target assembly, or a relocatable program object
|
|
37
|
+
as the one primary artifact. `--emit=exe` is the default. Assembly/object
|
|
38
|
+
emission currently requires a macOS 15+ arm64 host and emits objects targeting
|
|
39
|
+
macOS 14.0 (`arm64-apple-macosx14.0.0`).
|
|
40
|
+
Objects retain undefined `scr_*` runtime references plus the
|
|
41
|
+
`scr_runtime_abi_v1` compatibility marker; they are not library archives.
|
|
42
|
+
External consumption is experimental and requires the exact matching runtime.
|
|
43
|
+
`scriptc build app.ts --print=native-link-info -o app.o` prints the versioned
|
|
44
|
+
JSON target/runtime/link recipe without performing a link.
|
|
45
|
+
`--emit=asm|obj --sanitize` is rejected until ASan pipeline parity is
|
|
46
|
+
available.
|
|
47
|
+
|
|
35
48
|
For embedder-hosted modules that are not installed npm packages, coverage can
|
|
36
49
|
map an exact bare specifier to a local declaration with repeatable
|
|
37
50
|
`--external-types <specifier=file.d.ts>` options. This is analysis-only: the
|
package/dist/bootstrap.js
CHANGED
|
@@ -6,6 +6,7 @@ import { arch } from "node:process";
|
|
|
6
6
|
import { basename, dirname, join, resolve } from "node:path";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { parseArgs } from "node:util";
|
|
9
|
+
import { hostSupportsRuntimePack } from "../scripts/runtime-pack-host.mjs";
|
|
9
10
|
import { CLI_OPTIONS, USAGE } from "./usage.js";
|
|
10
11
|
// Node 24 can persist V8's compiled module bytecode. scriptc's CLI imports
|
|
11
12
|
// the compiler and its lowering/backend graph before handling any command, so
|
|
@@ -52,6 +53,9 @@ async function tryFastPath() {
|
|
|
52
53
|
}
|
|
53
54
|
const [command, inputArg] = positionals;
|
|
54
55
|
if ((command !== "build" && command !== "run") || inputArg === undefined ||
|
|
56
|
+
(values.emit !== undefined && values.emit !== "exe") ||
|
|
57
|
+
values.print !== undefined ||
|
|
58
|
+
values["emit-ir"] ||
|
|
55
59
|
values.lib || values["from-c"] || values["provenance-sources"] ||
|
|
56
60
|
(values["external-types"] ?? []).length > 0)
|
|
57
61
|
return null;
|
|
@@ -88,7 +92,7 @@ async function tryFastPath() {
|
|
|
88
92
|
return null;
|
|
89
93
|
const input = resolve(inputArg);
|
|
90
94
|
const outDir = values.out ? dirname(resolve(values.out)) : join(dirname(input), ".scriptc");
|
|
91
|
-
const stem = basename(input).replace(/\.(ts|js|mjs|cjs|c|ll)$/, "");
|
|
95
|
+
const stem = basename(input).replace(/\.(ts|mts|cts|js|mjs|cjs|c|ll)$/, "");
|
|
92
96
|
const defaultName = buildPlatform === "win32"
|
|
93
97
|
? `${stem}.exe`
|
|
94
98
|
: buildPlatform === "wasi"
|
|
@@ -114,8 +118,15 @@ async function tryFastPath() {
|
|
|
114
118
|
...(optimization === "dev" ? { optimization: "dev" } : {}),
|
|
115
119
|
npmStatic,
|
|
116
120
|
ffiProfile: ffiPath === null ? null : { path: ffiPath, bytes: ffiBytes },
|
|
117
|
-
target: `${process.env["SCRIPTC_TARGET"] ?? "native"}:${buildPlatform}:${arch}
|
|
118
|
-
|
|
121
|
+
target: `${process.env["SCRIPTC_TARGET"] ?? "native"}:${buildPlatform}:${arch}:${hostSupportsRuntimePack(process.platform, arch) &&
|
|
122
|
+
(process.env["SCRIPTC_TARGET"] ?? "") === "" &&
|
|
123
|
+
backend !== "c" && !values.sanitize &&
|
|
124
|
+
process.env["SCRIPTC_RUNTIME_PACK"] !== "0" &&
|
|
125
|
+
process.env["SCRIPTC_FETCH_CURL"] !== "1" &&
|
|
126
|
+
((process.env["SCRIPTC_CC"] ?? "") === "" || process.env["SCRIPTC_CC"] === "clang")
|
|
127
|
+
? "runtime-pack"
|
|
128
|
+
: "driver-tu"}`,
|
|
129
|
+
compiler: [process.env["SCRIPTC_LINKER"] ?? process.env["SCRIPTC_CC"] ?? "clang"],
|
|
119
130
|
nativeEnvironment,
|
|
120
131
|
nodeVersion: process.version,
|
|
121
132
|
});
|
|
@@ -124,6 +135,10 @@ async function tryFastPath() {
|
|
|
124
135
|
if (hit.native.llvmRefusal !== undefined) {
|
|
125
136
|
process.stderr.write(`scriptc: backend c (llvm refused: ${hit.native.llvmRefusal})\n`);
|
|
126
137
|
}
|
|
138
|
+
// Source-primary invocations can replace a previously cached executable.
|
|
139
|
+
// A routed hit restores that executable without loading the full compiler,
|
|
140
|
+
// so mirror its output-kind cleanup before returning from the fast path.
|
|
141
|
+
await rm(join(outDir, `${stem}.ir.json`), { force: true });
|
|
127
142
|
if (!values["keep-c"])
|
|
128
143
|
await rm(hit.cPath, { force: true });
|
|
129
144
|
if (command === "build") {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { existsSync, readFileSync, rmSync, statSync } from "node:fs";
|
|
3
|
-
import {
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { parseArgs } from "node:util";
|
|
6
|
-
import { analyze, buildTargetPlatform, compile, compileC, compileLibrary, isExactExternalTypeSpecifier,
|
|
7
|
-
import {
|
|
6
|
+
import { analyze, buildTargetPlatform, compile, compileC, compileLibrary, isExactExternalTypeSpecifier, renderDiagnostics, renderCoverage, resolveProvenanceSources, setProvenanceSources, warmNativeCaches } from "@scriptc/compiler";
|
|
7
|
+
import { resolveOutputOptions } from "./output-options.js";
|
|
8
|
+
import { selectOutputPaths } from "./paths.js";
|
|
8
9
|
import { CLI_OPTIONS, USAGE } from "./usage.js";
|
|
9
10
|
/** The version of the installed package. Read from the manifest rather than
|
|
10
11
|
* baked in by the build, so a stamped release and a source checkout answer
|
|
@@ -65,7 +66,7 @@ async function main() {
|
|
|
65
66
|
if (command === "cache") {
|
|
66
67
|
if (inputArg !== "warm")
|
|
67
68
|
fail(`unknown cache command "${inputArg ?? ""}" (supported: warm)\n\n${USAGE}`);
|
|
68
|
-
if (values.lib || values.dynamic || values.backend !== undefined || values["from-c"] || values.ffi !== undefined || values.profile !== undefined || (values["npm-static"] ?? []).length > 0 || values["provenance-sources"] || externalTypeArgs.length > 0 || values.out !== undefined || values["emit-ir"] || !values["keep-c"]) {
|
|
69
|
+
if (values.lib || values.dynamic || values.backend !== undefined || values.emit !== undefined || values.print !== undefined || values["from-c"] || values.ffi !== undefined || values.profile !== undefined || (values["npm-static"] ?? []).length > 0 || values["provenance-sources"] || externalTypeArgs.length > 0 || values.out !== undefined || values["emit-ir"] || !values["keep-c"]) {
|
|
69
70
|
fail(`scriptc cache warm takes only native optimization/sanitizer options and profile names\n\n${USAGE}`);
|
|
70
71
|
}
|
|
71
72
|
const optimization = values.optimization;
|
|
@@ -116,8 +117,8 @@ async function main() {
|
|
|
116
117
|
if (inputArg) {
|
|
117
118
|
fail("scriptc build --lib takes no input positional: the profile names the entry module");
|
|
118
119
|
}
|
|
119
|
-
if (values.dynamic || values.backend !== undefined || values.optimization !== undefined || values.ffi !== undefined || (values["npm-static"] ?? []).length > 0 || externalTypeArgs.length > 0) {
|
|
120
|
-
fail("scriptc build --lib takes no --dynamic/--backend/--optimization/--npm-static/--ffi/--external-types: the profile pins the emission and optimization, npm imports are judged automatically, outbound FFI belongs to executable builds, and external type mappings belong to coverage");
|
|
120
|
+
if (values.dynamic || values.backend !== undefined || values.emit !== undefined || values.print !== undefined || values.optimization !== undefined || values.ffi !== undefined || (values["npm-static"] ?? []).length > 0 || externalTypeArgs.length > 0) {
|
|
121
|
+
fail("scriptc build --lib takes no --dynamic/--backend/--emit/--print/--optimization/--npm-static/--ffi/--external-types: the profile pins the emission and optimization, npm imports are judged automatically, outbound FFI belongs to executable builds, and external type mappings belong to coverage");
|
|
121
122
|
}
|
|
122
123
|
const profilePath = resolve(profileArg);
|
|
123
124
|
const libOutDir = values.out ? dirname(resolve(values.out)) : join(dirname(profilePath), ".scriptc");
|
|
@@ -130,7 +131,7 @@ async function main() {
|
|
|
130
131
|
});
|
|
131
132
|
if (!result.ok) {
|
|
132
133
|
const color = process.stderr.isTTY ?? false;
|
|
133
|
-
process.stderr.write(
|
|
134
|
+
process.stderr.write(renderDiagnostics(result.diagnostics, result.sourceTexts, { color }) + "\n");
|
|
134
135
|
const n = result.diagnostics.length;
|
|
135
136
|
process.stderr.write(`\n${n} error${n === 1 ? "" : "s"}.\n`);
|
|
136
137
|
return 1;
|
|
@@ -144,9 +145,25 @@ async function main() {
|
|
|
144
145
|
process.stdout.write(`${result.sidecarPath}\n`);
|
|
145
146
|
return 0;
|
|
146
147
|
}
|
|
148
|
+
if (values["emit-ir"] && (command === "build" || command === "run")) {
|
|
149
|
+
process.stderr.write("scriptc: warning: --emit-ir is deprecated; use --emit=ir for IR as the primary output\n");
|
|
150
|
+
}
|
|
147
151
|
if (!inputArg)
|
|
148
152
|
fail(`missing input file\n\n${USAGE}`);
|
|
149
153
|
const input = resolve(inputArg);
|
|
154
|
+
if (command === "coverage" && values.emit !== undefined) {
|
|
155
|
+
fail(`--emit is a build/run option\n\n${USAGE}`);
|
|
156
|
+
}
|
|
157
|
+
if (values.print !== undefined && values.print !== "native-link-info") {
|
|
158
|
+
fail(`unknown print kind "${values.print}" (supported: native-link-info)\n\n${USAGE}`);
|
|
159
|
+
}
|
|
160
|
+
const printNativeLinkInfo = values.print === "native-link-info";
|
|
161
|
+
if (printNativeLinkInfo && command !== "build") {
|
|
162
|
+
fail(`--print=native-link-info is a build option\n\n${USAGE}`);
|
|
163
|
+
}
|
|
164
|
+
if (printNativeLinkInfo && values.emit !== undefined && values.emit !== "obj") {
|
|
165
|
+
fail(`--print=native-link-info requires --emit=obj\n\n${USAGE}`);
|
|
166
|
+
}
|
|
150
167
|
if (externalTypeArgs.length > 0 && command !== "coverage") {
|
|
151
168
|
fail(`--external-types is a coverage-only option\n\n${USAGE}`);
|
|
152
169
|
}
|
|
@@ -178,14 +195,30 @@ async function main() {
|
|
|
178
195
|
externalTypes[specifier] = declarationPath;
|
|
179
196
|
}
|
|
180
197
|
const ffiProfilePath = values.ffi !== undefined ? resolve(values.ffi) : undefined;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
fail(`unknown backend "${backend}" (supported: c, llvm)\n\n${USAGE}`);
|
|
198
|
+
if (values.backend !== undefined && values.backend !== "c" && values.backend !== "llvm") {
|
|
199
|
+
fail(`unknown backend "${values.backend}" (supported: c, llvm)\n\n${USAGE}`);
|
|
184
200
|
}
|
|
185
201
|
const optimization = values.optimization;
|
|
186
202
|
if (optimization !== undefined && optimization !== "release" && optimization !== "dev") {
|
|
187
203
|
fail(`unknown optimization "${optimization}" (supported: release, dev)\n\n${USAGE}`);
|
|
188
204
|
}
|
|
205
|
+
const output = command === "coverage"
|
|
206
|
+
? null
|
|
207
|
+
: resolveOutputOptions(command, {
|
|
208
|
+
...(values.emit === undefined && !printNativeLinkInfo
|
|
209
|
+
? {}
|
|
210
|
+
: { emit: values.emit ?? "obj" }),
|
|
211
|
+
emitIr: values["emit-ir"],
|
|
212
|
+
...(values.backend === undefined ? {} : { backend: values.backend }),
|
|
213
|
+
fromC: values["from-c"],
|
|
214
|
+
keepC: values["keep-c"],
|
|
215
|
+
sanitize: values.sanitize,
|
|
216
|
+
...(values.optimization === undefined ? {} : { optimization: values.optimization }),
|
|
217
|
+
...(values.ffi === undefined ? {} : { ffi: values.ffi }),
|
|
218
|
+
});
|
|
219
|
+
if (output !== null && !output.ok)
|
|
220
|
+
fail(`${output.message}\n\n${USAGE}`);
|
|
221
|
+
const backend = output?.ok ? output.backend : undefined;
|
|
189
222
|
// --npm-static: repeatable and comma-splittable; the literal "auto"
|
|
190
223
|
// switches to eligibility-based detection (mixing "auto" with names
|
|
191
224
|
// is rejected — the shapes answer different questions).
|
|
@@ -223,9 +256,10 @@ async function main() {
|
|
|
223
256
|
process.stdout.write(renderCoverage(coverage, { color, sourceTexts }) + "\n");
|
|
224
257
|
return coverage.preflightFailed ? 1 : 0;
|
|
225
258
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const outPath =
|
|
259
|
+
if (output === null || !output.ok)
|
|
260
|
+
throw new Error("internal output-option state");
|
|
261
|
+
const { outDir, outPath, defaultOutputPath } = selectOutputPaths(input, output.cliOutputKind, values.out);
|
|
262
|
+
let nativeLinkInfo;
|
|
229
263
|
const build = async () => {
|
|
230
264
|
if (values["from-c"]) {
|
|
231
265
|
if (ffiProfilePath !== undefined) {
|
|
@@ -243,17 +277,20 @@ async function main() {
|
|
|
243
277
|
const result = await compile(input, {
|
|
244
278
|
outPath,
|
|
245
279
|
outDir,
|
|
246
|
-
|
|
280
|
+
outputKind: output.outputKind,
|
|
281
|
+
defaultOutputPath,
|
|
282
|
+
emitIr: output.emitIr,
|
|
247
283
|
sanitize: values.sanitize,
|
|
248
284
|
dynamic: values.dynamic,
|
|
249
285
|
...(backend !== undefined ? { backend } : {}),
|
|
250
286
|
...(optimization !== undefined ? { optimization } : {}),
|
|
251
287
|
...(npmStatic !== undefined ? { npmStatic } : {}),
|
|
252
288
|
...(ffiProfilePath !== undefined ? { ffiProfilePath } : {}),
|
|
289
|
+
...(printNativeLinkInfo ? { nativeLinkInfo: true } : {}),
|
|
253
290
|
});
|
|
254
291
|
if (!result.ok) {
|
|
255
292
|
const color = process.stderr.isTTY ?? false;
|
|
256
|
-
process.stderr.write(
|
|
293
|
+
process.stderr.write(renderDiagnostics(result.diagnostics, result.sourceTexts, { color }) + "\n");
|
|
257
294
|
const n = result.diagnostics.length;
|
|
258
295
|
process.stderr.write(`\n${n} error${n === 1 ? "" : "s"}.\n`);
|
|
259
296
|
throw new CliExit(1);
|
|
@@ -263,12 +300,17 @@ async function main() {
|
|
|
263
300
|
// names the refusal. A successful LLVM build is the documented default
|
|
264
301
|
// (and the kept .ll next to the binary is the durable record), and an
|
|
265
302
|
// explicit --backend was the user's own choice — neither gets a line.
|
|
266
|
-
if (result.
|
|
267
|
-
|
|
303
|
+
if (result.artifact.kind === "exe") {
|
|
304
|
+
if (result.artifact.llvmRefusal !== undefined) {
|
|
305
|
+
process.stderr.write(`scriptc: backend c (llvm refused: ${result.artifact.llvmRefusal})\n`);
|
|
306
|
+
}
|
|
307
|
+
if (!values["keep-c"])
|
|
308
|
+
rmSync(result.artifact.translationUnitPath, { force: true });
|
|
268
309
|
}
|
|
269
|
-
if (
|
|
270
|
-
|
|
271
|
-
|
|
310
|
+
else if (result.artifact.kind === "obj") {
|
|
311
|
+
nativeLinkInfo = result.artifact.nativeLinkInfo;
|
|
312
|
+
}
|
|
313
|
+
return result.artifact.path;
|
|
272
314
|
};
|
|
273
315
|
const binary = await build();
|
|
274
316
|
if (command === "run") {
|
|
@@ -295,7 +337,16 @@ async function main() {
|
|
|
295
337
|
});
|
|
296
338
|
});
|
|
297
339
|
}
|
|
298
|
-
|
|
340
|
+
if (printNativeLinkInfo) {
|
|
341
|
+
if (nativeLinkInfo === undefined)
|
|
342
|
+
throw new Error("internal native-link-info state");
|
|
343
|
+
// Keep stdout pure JSON for tooling; the ordinary artifact path is in
|
|
344
|
+
// program.object inside the document.
|
|
345
|
+
process.stdout.write(`${JSON.stringify(nativeLinkInfo, null, 2)}\n`);
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
process.stdout.write(`${binary}\n`);
|
|
349
|
+
}
|
|
299
350
|
return 0;
|
|
300
351
|
}
|
|
301
352
|
try {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CompileOutputKind } from "@scriptc/compiler";
|
|
2
|
+
import type { CliOutputKind } from "./paths.js";
|
|
3
|
+
export interface OutputOptionValues {
|
|
4
|
+
emit?: string;
|
|
5
|
+
emitIr: boolean;
|
|
6
|
+
backend?: string;
|
|
7
|
+
fromC: boolean;
|
|
8
|
+
keepC: boolean;
|
|
9
|
+
sanitize: boolean;
|
|
10
|
+
optimization?: string;
|
|
11
|
+
ffi?: string;
|
|
12
|
+
}
|
|
13
|
+
export type OutputOptionResolution = {
|
|
14
|
+
ok: true;
|
|
15
|
+
outputKind: CompileOutputKind;
|
|
16
|
+
cliOutputKind: CliOutputKind;
|
|
17
|
+
backend?: "c" | "llvm";
|
|
18
|
+
emitIr: boolean;
|
|
19
|
+
deprecateEmitIr: boolean;
|
|
20
|
+
} | {
|
|
21
|
+
ok: false;
|
|
22
|
+
message: string;
|
|
23
|
+
};
|
|
24
|
+
/** Pure compatibility/validation matrix for build/run output selection. */
|
|
25
|
+
export declare function resolveOutputOptions(command: "build" | "run", values: OutputOptionValues): OutputOptionResolution;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const SOURCE_KINDS = new Set(["ir", "c", "llvm"]);
|
|
2
|
+
const NATIVE_ARTIFACT_KINDS = new Set(["asm", "obj"]);
|
|
3
|
+
/** Pure compatibility/validation matrix for build/run output selection. */
|
|
4
|
+
export function resolveOutputOptions(command, values) {
|
|
5
|
+
if (values.backend !== undefined && values.backend !== "c" && values.backend !== "llvm") {
|
|
6
|
+
return { ok: false, message: `unknown backend "${values.backend}" (supported: c, llvm)` };
|
|
7
|
+
}
|
|
8
|
+
const backend = values.backend;
|
|
9
|
+
const rawEmit = values.emit;
|
|
10
|
+
if (rawEmit !== undefined && rawEmit !== "ir" && rawEmit !== "c" && rawEmit !== "llvm" &&
|
|
11
|
+
rawEmit !== "asm" && rawEmit !== "obj" && rawEmit !== "exe") {
|
|
12
|
+
return {
|
|
13
|
+
ok: false,
|
|
14
|
+
message: `unknown emit kind "${rawEmit}" (supported: ir, c, llvm, asm, obj, exe)`,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const emit = (rawEmit ?? "exe");
|
|
18
|
+
if (command === "run" && emit !== "exe") {
|
|
19
|
+
return { ok: false, message: `scriptc run requires --emit=exe` };
|
|
20
|
+
}
|
|
21
|
+
if (values.emitIr && rawEmit !== undefined && emit !== "ir" && emit !== "exe") {
|
|
22
|
+
return { ok: false, message: `--emit-ir cannot be combined with --emit=${emit}; use --emit=ir` };
|
|
23
|
+
}
|
|
24
|
+
if (values.emitIr && emit === "ir") {
|
|
25
|
+
return { ok: false, message: `--emit-ir and --emit=ir select the same output; use --emit=ir` };
|
|
26
|
+
}
|
|
27
|
+
if (values.fromC && emit !== "exe") {
|
|
28
|
+
return { ok: false, message: `--from-c only supports --emit=exe` };
|
|
29
|
+
}
|
|
30
|
+
if (emit === "ir" && backend !== undefined) {
|
|
31
|
+
return { ok: false, message: `--emit=ir cannot be combined with --backend; IR is emitted before backend selection` };
|
|
32
|
+
}
|
|
33
|
+
if (emit === "c" && backend === "llvm") {
|
|
34
|
+
return { ok: false, message: `--emit=c cannot be combined with --backend=llvm` };
|
|
35
|
+
}
|
|
36
|
+
if ((emit === "llvm" || NATIVE_ARTIFACT_KINDS.has(emit)) && backend === "c") {
|
|
37
|
+
return { ok: false, message: `--emit=${emit} cannot be combined with --backend=c` };
|
|
38
|
+
}
|
|
39
|
+
if (SOURCE_KINDS.has(emit)) {
|
|
40
|
+
if (!values.keepC) {
|
|
41
|
+
return { ok: false, message: `--no-keep-c is only meaningful with --emit=exe` };
|
|
42
|
+
}
|
|
43
|
+
if (values.sanitize) {
|
|
44
|
+
return { ok: false, message: `--sanitize is only meaningful with --emit=exe` };
|
|
45
|
+
}
|
|
46
|
+
if (values.optimization !== undefined) {
|
|
47
|
+
return { ok: false, message: `--optimization is only meaningful with --emit=exe` };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (NATIVE_ARTIFACT_KINDS.has(emit) && !values.keepC) {
|
|
51
|
+
return { ok: false, message: `--no-keep-c is only meaningful with --emit=exe` };
|
|
52
|
+
}
|
|
53
|
+
const outputKind = emit;
|
|
54
|
+
return {
|
|
55
|
+
ok: true,
|
|
56
|
+
outputKind,
|
|
57
|
+
cliOutputKind: emit,
|
|
58
|
+
...(emit === "c"
|
|
59
|
+
? { backend: "c" }
|
|
60
|
+
: emit === "llvm" || NATIVE_ARTIFACT_KINDS.has(emit)
|
|
61
|
+
? { backend: "llvm" }
|
|
62
|
+
: backend === undefined ? {} : { backend }),
|
|
63
|
+
emitIr: values.emitIr && emit === "exe",
|
|
64
|
+
deprecateEmitIr: values.emitIr,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=output-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-options.js","sourceRoot":"","sources":["../src/output-options.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
export type CliOutputKind = "ir" | "c" | "llvm" | "asm" | "obj" | "exe";
|
|
2
|
+
export declare function defaultOutputName(stem: string, kind: CliOutputKind, platform?: string): string;
|
|
3
|
+
export interface OutputPaths {
|
|
4
|
+
outDir: string;
|
|
5
|
+
outPath: string;
|
|
6
|
+
defaultOutputPath: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** One authority for explicit and default primary artifact paths. */
|
|
9
|
+
export declare function selectOutputPaths(input: string, kind: CliOutputKind, explicitOut?: string, platform?: string): OutputPaths;
|
|
1
10
|
/** Default executable filename for the build target. Explicit --out paths
|
|
2
11
|
* stay exact; only scriptc's generated default needs the Windows PE suffix. */
|
|
3
12
|
export declare function defaultExecutableName(stem: string, platform?: string): string;
|
package/dist/paths.js
CHANGED
|
@@ -1,13 +1,45 @@
|
|
|
1
1
|
import { tmpdir } from "node:os";
|
|
2
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
2
3
|
import { buildTargetPlatform, wasiGuestPath } from "@scriptc/compiler";
|
|
4
|
+
const POSIX_SUFFIXES = {
|
|
5
|
+
ir: ".ir.json",
|
|
6
|
+
c: ".c",
|
|
7
|
+
llvm: ".ll",
|
|
8
|
+
asm: ".s",
|
|
9
|
+
obj: ".o",
|
|
10
|
+
exe: "",
|
|
11
|
+
};
|
|
12
|
+
const WINDOWS_SUFFIXES = {
|
|
13
|
+
...POSIX_SUFFIXES,
|
|
14
|
+
asm: ".asm",
|
|
15
|
+
obj: ".obj",
|
|
16
|
+
exe: ".exe",
|
|
17
|
+
};
|
|
18
|
+
export function defaultOutputName(stem, kind, platform) {
|
|
19
|
+
const selectedPlatform = platform ?? (kind === "exe" ? buildTargetPlatform() : process.platform);
|
|
20
|
+
if (kind === "exe" && selectedPlatform === "wasi")
|
|
21
|
+
return `${stem}.wasm`;
|
|
22
|
+
return `${stem}${(selectedPlatform === "win32" ? WINDOWS_SUFFIXES : POSIX_SUFFIXES)[kind]}`;
|
|
23
|
+
}
|
|
24
|
+
/** One authority for explicit and default primary artifact paths. */
|
|
25
|
+
export function selectOutputPaths(input, kind, explicitOut, platform) {
|
|
26
|
+
const absoluteInput = resolve(input);
|
|
27
|
+
const outDir = explicitOut === undefined
|
|
28
|
+
? join(dirname(absoluteInput), ".scriptc")
|
|
29
|
+
: dirname(resolve(explicitOut));
|
|
30
|
+
const stem = basename(absoluteInput).replace(/\.(ts|mts|cts|js|mjs|cjs|c|ll)$/, "");
|
|
31
|
+
return {
|
|
32
|
+
outDir,
|
|
33
|
+
outPath: explicitOut === undefined
|
|
34
|
+
? join(outDir, defaultOutputName(stem, kind, platform))
|
|
35
|
+
: resolve(explicitOut),
|
|
36
|
+
defaultOutputPath: explicitOut === undefined,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
3
39
|
/** Default executable filename for the build target. Explicit --out paths
|
|
4
40
|
* stay exact; only scriptc's generated default needs the Windows PE suffix. */
|
|
5
41
|
export function defaultExecutableName(stem, platform = buildTargetPlatform()) {
|
|
6
|
-
|
|
7
|
-
return `${stem}.exe`;
|
|
8
|
-
if (platform === "wasi")
|
|
9
|
-
return `${stem}.wasm`;
|
|
10
|
-
return stem;
|
|
42
|
+
return defaultOutputName(stem, "exe", platform);
|
|
11
43
|
}
|
|
12
44
|
/** Host paths exposed by `scriptc run` to a WASI Preview 1 module. Guest
|
|
13
45
|
* `/tmp` maps to the host's real platform temp directory instead of assuming
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/usage.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
export declare const USAGE = "scriptc \u2014 TypeScript/JavaScript to native and WebAssembly executables (experimental)\n\nUsage:\n scriptc build <file.ts|.js> [options] compile to an executable
|
|
1
|
+
export declare const USAGE = "scriptc \u2014 TypeScript/JavaScript to native and WebAssembly executables (experimental)\n\nUsage:\n scriptc build <file.ts|.js> [options] compile to an executable or source artifact\n scriptc run <file.ts|.js> [options] compile and run\n scriptc coverage <file.ts|.js> how much compiles statically, and why not\n scriptc coverage <file.ts|.js> --dynamic what a --dynamic build compiles, and what still blocks it\n scriptc coverage <file.ts|.js> --external-types <specifier=file.d.ts>\n type-resolve an embedder-provided module for analysis\n scriptc build --lib --profile <p.json> library mode: compile the profile's entry\n module to a linkable static archive\n (<name>.lib.a) exporting the\n profile-declared C symbols; a profile\n with a sidecar section also gets the\n contract sidecar JSON beside the archive\n scriptc cache warm [runtime|tls|dynamic\u2026] prebuild expensive native cache families\n for the current compiler/SDK/target\n\nOptions:\n -o, --out <path> primary output path (default: .scriptc/<name><suffix>)\n --emit <kind> primary output: ir, c, llvm, asm, obj, or exe\n (default: exe). asm/obj currently support macOS 15+ arm64\n --print <kind> print machine-readable metadata instead of the output path\n (native-link-info implies --emit=obj and never links)\n --backend <b> code generator. llvm is the default and the output that\n ships; c emits readable C for inspecting what the\n compiler produced, and program behavior is identical\n either way. On native targets, a program outside the LLVM tier still\n builds \u2014 the default lane emits C for it and a one-line\n stderr note names the construct \u2014 while an explicit\n --backend llvm fails with that construct named\n wasm32-wasi is LLVM-only unless --backend c is explicit;\n its C inspection lane accepts async-free programs only\n --optimization <release|dev>\n native optimization posture (default: release/-O2). dev\n uses -O0 and stable cached LLVM object shards for faster\n edits of large programs\n --from-c treat input as a C (or .ll) file (toolchain plumbing/debugging)\n --keep-c keep the generated program TU next to the executable\n (default; the .ll \u2014 or the .c under --backend=c or\n when the build fell back)\n --no-keep-c delete the generated program TU after compiling\n --emit-ir also write IR beside an executable or library archive;\n deprecated for executables: use --emit=ir for primary IR\n --sanitize build with ASan + runtime RC audit\n --dynamic embed the dynamic engine (adds ~620KB; static stays the default)\n --ffi <file> bind signature-only TypeScript declarations to native\n C symbols and link the manifest's archives/libraries\n --npm-static <pkg[,pkg\u2026]|auto>\n compile the named npm packages' shipped JS statically as\n program modules (repeatable; \"auto\" opts in every eligible\n direct import: own .d.ts, unminified JS, no build-transform\n markers). A package preflight refuses falls back to the\n island (--dynamic) with a coverage-report note \u2014 opt-in,\n experimental\n --provenance-sources\n EXPERIMENTAL: compile npm dependencies from their\n provenance-attested SOURCE (fetched at the attested\n commit) as static program modules; packages without a\n usable attestation keep the island path (a note, never\n a failure)\n --external-types <specifier=file.d.ts>\n coverage only: map an exact bare module specifier to a\n local declaration file. The declaration supplies types\n for analysis; the host module remains an explicit\n external-boundary blocker (repeatable)\n -h, --help show this help\n -v, --version print the version\n";
|
|
2
2
|
export declare const CLI_OPTIONS: {
|
|
3
3
|
readonly out: {
|
|
4
4
|
readonly type: "string";
|
|
5
5
|
readonly short: "o";
|
|
6
6
|
};
|
|
7
|
+
readonly emit: {
|
|
8
|
+
readonly type: "string";
|
|
9
|
+
};
|
|
10
|
+
readonly print: {
|
|
11
|
+
readonly type: "string";
|
|
12
|
+
};
|
|
7
13
|
readonly backend: {
|
|
8
14
|
readonly type: "string";
|
|
9
15
|
};
|
package/dist/usage.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const USAGE = `scriptc — TypeScript/JavaScript to native and WebAssembly executables (experimental)
|
|
2
2
|
|
|
3
3
|
Usage:
|
|
4
|
-
scriptc build <file.ts|.js> [options] compile to an executable
|
|
4
|
+
scriptc build <file.ts|.js> [options] compile to an executable or source artifact
|
|
5
5
|
scriptc run <file.ts|.js> [options] compile and run
|
|
6
6
|
scriptc coverage <file.ts|.js> how much compiles statically, and why not
|
|
7
7
|
scriptc coverage <file.ts|.js> --dynamic what a --dynamic build compiles, and what still blocks it
|
|
@@ -17,7 +17,11 @@ Usage:
|
|
|
17
17
|
for the current compiler/SDK/target
|
|
18
18
|
|
|
19
19
|
Options:
|
|
20
|
-
-o, --out <path> output path (default: .scriptc/<name>
|
|
20
|
+
-o, --out <path> primary output path (default: .scriptc/<name><suffix>)
|
|
21
|
+
--emit <kind> primary output: ir, c, llvm, asm, obj, or exe
|
|
22
|
+
(default: exe). asm/obj currently support macOS 15+ arm64
|
|
23
|
+
--print <kind> print machine-readable metadata instead of the output path
|
|
24
|
+
(native-link-info implies --emit=obj and never links)
|
|
21
25
|
--backend <b> code generator. llvm is the default and the output that
|
|
22
26
|
ships; c emits readable C for inspecting what the
|
|
23
27
|
compiler produced, and program behavior is identical
|
|
@@ -36,7 +40,8 @@ Options:
|
|
|
36
40
|
(default; the .ll — or the .c under --backend=c or
|
|
37
41
|
when the build fell back)
|
|
38
42
|
--no-keep-c delete the generated program TU after compiling
|
|
39
|
-
--emit-ir also write
|
|
43
|
+
--emit-ir also write IR beside an executable or library archive;
|
|
44
|
+
deprecated for executables: use --emit=ir for primary IR
|
|
40
45
|
--sanitize build with ASan + runtime RC audit
|
|
41
46
|
--dynamic embed the dynamic engine (adds ~620KB; static stays the default)
|
|
42
47
|
--ffi <file> bind signature-only TypeScript declarations to native
|
|
@@ -64,6 +69,8 @@ Options:
|
|
|
64
69
|
`;
|
|
65
70
|
export const CLI_OPTIONS = {
|
|
66
71
|
out: { type: "string", short: "o" },
|
|
72
|
+
emit: { type: "string" },
|
|
73
|
+
print: { type: "string" },
|
|
67
74
|
backend: { type: "string" },
|
|
68
75
|
optimization: { type: "string" },
|
|
69
76
|
"from-c": { type: "boolean", default: false },
|
package/dist/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEpB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACnC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC5C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IAC7C,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IAC5C,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IACzD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpD,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IACxC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;IACrD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;CAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scriptc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"description": "Compile ordinary TypeScript and JavaScript to small, fast native executables — no Node, no V8, no JavaScript engine in the binary",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://scriptc.dev",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"node": ">=24"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@scriptc/compiler": "0.0.
|
|
24
|
+
"@scriptc/compiler": "0.0.36"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { release } from "node:os";
|
|
2
|
+
|
|
3
|
+
export function hostSupportsRuntimePack(
|
|
4
|
+
platform = process.platform,
|
|
5
|
+
architecture = process.arch,
|
|
6
|
+
hostRelease = release(),
|
|
7
|
+
) {
|
|
8
|
+
const darwinMajor = Number.parseInt(hostRelease.split(".", 1)[0] ?? "", 10);
|
|
9
|
+
return platform === "darwin" && architecture === "arm64" && darwinMajor >= 24;
|
|
10
|
+
}
|
package/scripts/warm-cache.mjs
CHANGED
|
@@ -3,12 +3,19 @@
|
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { hostSupportsRuntimePack } from "./runtime-pack-host.mjs";
|
|
6
7
|
|
|
7
8
|
// Workspace installs should stay cheap and deterministic: repository test
|
|
8
9
|
// images already manage cache warming explicitly. Published npm packages do
|
|
9
10
|
// not contain src/, so only installed consumers take this best-effort path.
|
|
10
11
|
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
11
|
-
if (
|
|
12
|
+
if (
|
|
13
|
+
!existsSync(join(packageRoot, "src")) &&
|
|
14
|
+
process.env["SCRIPTC_NO_CACHE"] !== "1" &&
|
|
15
|
+
// A supported macOS arm64 install already carries immutable release/dev
|
|
16
|
+
// runtime artifacts. Older macOS hosts retain the source-toolchain path.
|
|
17
|
+
!hostSupportsRuntimePack()
|
|
18
|
+
) {
|
|
12
19
|
try {
|
|
13
20
|
const { warmNativeCaches } = await import("@scriptc/compiler");
|
|
14
21
|
await warmNativeCaches();
|