@scriptc/compiler 0.0.5 → 0.0.7
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/dist/backend/emission/emit-exprs.js +25 -2
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emit-walkers.js +47 -0
- package/dist/backend/emission/emit-walkers.js.map +1 -1
- package/dist/backend/emission/emitter.js +7 -0
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/emission/may-throw.js +12 -0
- package/dist/backend/emission/may-throw.js.map +1 -1
- package/dist/backend/llvm/dyn.js +23 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +28 -4
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +5 -0
- package/dist/backend/llvm/walkers.js +65 -5
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -0
- package/dist/diagnostics/diagnostic.js +16 -0
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lib-contract.d.ts +96 -0
- package/dist/frontend/lib-contract.js +291 -0
- package/dist/frontend/lib-contract.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.js +41 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +19 -4
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +7 -0
- package/dist/frontend/lowering/lower-inspect.js +130 -28
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +9 -1
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +1 -1
- package/dist/frontend/lowering/lowerer.js +16 -6
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/types.d.ts +68 -6
- package/dist/frontend/types.js +285 -57
- package/dist/frontend/types.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.js +60 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/nodes.d.ts +27 -4
- package/dist/ir/nodes.js +105 -13
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +10 -0
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/profile.d.ts +36 -0
- package/dist/library/profile.js +105 -3
- package/dist/library/profile.js.map +1 -1
- package/dist/library/sidecar-validate.d.ts +4 -0
- package/dist/library/sidecar-validate.js +506 -0
- package/dist/library/sidecar-validate.js.map +1 -0
- package/dist/library/sidecar.d.ts +191 -0
- package/dist/library/sidecar.js +568 -0
- package/dist/library/sidecar.js.map +1 -0
- package/dist/library/wyhash.d.ts +12 -0
- package/dist/library/wyhash.js +116 -0
- package/dist/library/wyhash.js.map +1 -0
- package/package.json +2 -2
- package/surface-manifest.json +1 -1
|
@@ -32,6 +32,11 @@ export declare class LlWalkers {
|
|
|
32
32
|
/** Loads a union box's tag. */
|
|
33
33
|
private unionTag;
|
|
34
34
|
private unionPeek;
|
|
35
|
+
/** Emits the enter call + early return; caller pairs it with jbLeave. */
|
|
36
|
+
private jbEnter;
|
|
37
|
+
private jbLeave;
|
|
38
|
+
private jbEdgeProp;
|
|
39
|
+
private jbEdgeIdx;
|
|
35
40
|
jsonWriteHelper(t: IrType): string;
|
|
36
41
|
/** Loads a record field slot (i8-stored bools trunc to i1). */
|
|
37
42
|
private loadField;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isRefCounted, typeKey } from "../../ir/nodes.js";
|
|
2
2
|
import { mangleRecordStruct } from "../mangle.js";
|
|
3
3
|
import { BlockBuilder } from "./blocks.js";
|
|
4
|
-
import { llFieldType, releaseSym } from "./shapes.js";
|
|
4
|
+
import { llFieldType, releaseSym, traceAdapter } from "./shapes.js";
|
|
5
5
|
import { LlvmUnsupportedError } from "./unsupported.js";
|
|
6
6
|
/** Exact double literal (the emitter's f64Lit — duplicated to avoid a
|
|
7
7
|
* cyclic import; both spell every bit pattern identically). */
|
|
@@ -83,6 +83,34 @@ export class LlWalkers {
|
|
|
83
83
|
B.line(`${t} = load ptr, ptr ${p}`);
|
|
84
84
|
return t;
|
|
85
85
|
}
|
|
86
|
+
/* ── circular-structure detection (the C walkers' scr_jb_enter bracket,
|
|
87
|
+
* ported): CYCLE-CAPABLE containers push themselves on the buffer's
|
|
88
|
+
* seen stack; a repeat throws V8's exact circular TypeError inside
|
|
89
|
+
* scr_jb_enter and the walker returns with the exception pending. ── */
|
|
90
|
+
/** Emits the enter call + early return; caller pairs it with jbLeave. */
|
|
91
|
+
jbEnter(B, isArray) {
|
|
92
|
+
this.host.declare(`declare zeroext i1 @scr_jb_enter(ptr, ptr, i1)`);
|
|
93
|
+
const ok = B.tmp();
|
|
94
|
+
B.line(`${ok} = call zeroext i1 @scr_jb_enter(ptr %b, ptr %v, i1 ${isArray ? "true" : "false"})`);
|
|
95
|
+
const go = B.newLabel("jw.go");
|
|
96
|
+
const circ = B.newLabel("jw.circ");
|
|
97
|
+
B.condBr(ok, go, circ);
|
|
98
|
+
B.startBlock(circ);
|
|
99
|
+
B.terminate(`ret void ; circular: pending TypeError`);
|
|
100
|
+
B.startBlock(go);
|
|
101
|
+
}
|
|
102
|
+
jbLeave(B) {
|
|
103
|
+
this.host.declare(`declare void @scr_jb_leave(ptr)`);
|
|
104
|
+
B.line(`call void @scr_jb_leave(ptr %b)`);
|
|
105
|
+
}
|
|
106
|
+
jbEdgeProp(B, name) {
|
|
107
|
+
this.host.declare(`declare void @scr_jb_edge_prop(ptr, ptr)`);
|
|
108
|
+
B.line(`call void @scr_jb_edge_prop(ptr %b, ptr ${this.host.cstr(name)}) ; ${JSON.stringify(name)}`);
|
|
109
|
+
}
|
|
110
|
+
jbEdgeIdx(B, idx) {
|
|
111
|
+
this.host.declare(`declare void @scr_jb_edge_idx(ptr, i64)`);
|
|
112
|
+
B.line(`call void @scr_jb_edge_idx(ptr %b, i64 ${idx})`);
|
|
113
|
+
}
|
|
86
114
|
/* ── type-directed JSON serializers (jsonWriteHelper, ported) ─────────── */
|
|
87
115
|
jsonWriteHelper(t) {
|
|
88
116
|
const key = typeKey(t);
|
|
@@ -120,7 +148,7 @@ export class LlWalkers {
|
|
|
120
148
|
this.emitRecordWriter(B, t.shapeId);
|
|
121
149
|
break;
|
|
122
150
|
case "array":
|
|
123
|
-
this.emitArrayWriter(B, t.elem);
|
|
151
|
+
this.emitArrayWriter(B, t.elem, traceAdapter(this.host, t) !== null);
|
|
124
152
|
break;
|
|
125
153
|
case "union":
|
|
126
154
|
this.emitUnionWriter(B, t.unionId);
|
|
@@ -150,6 +178,13 @@ export class LlWalkers {
|
|
|
150
178
|
if (!shape)
|
|
151
179
|
throw new Error(`llvm emitter bug: jsonStringify of unknown shape ${shapeId}`);
|
|
152
180
|
const fieldIndex = new Map(shape.fields.map((f, i) => [f.name, i + 1]));
|
|
181
|
+
// CYCLE-CAPABLE shapes bracket the walk with the circular-detection
|
|
182
|
+
// stack; edge labels stamp before members whose walk can re-enter —
|
|
183
|
+
// emit-walkers.ts's contract, ported.
|
|
184
|
+
const cyclic = traceAdapter(this.host, { kind: "record", shapeId }) !== null;
|
|
185
|
+
const edgeable = (ft) => cyclic && traceAdapter(this.host, ft) !== null;
|
|
186
|
+
if (cyclic)
|
|
187
|
+
this.jbEnter(B, shape.tuple === true);
|
|
153
188
|
// A tuple serializes as a JSON ARRAY in index order — JS-exact. Every
|
|
154
189
|
// position is required, so commas are static.
|
|
155
190
|
if (shape.tuple) {
|
|
@@ -158,10 +193,14 @@ export class LlWalkers {
|
|
|
158
193
|
byIndex.forEach((f, i) => {
|
|
159
194
|
if (i > 0)
|
|
160
195
|
this.putc(B, "%b", "44"); // ','
|
|
196
|
+
if (edgeable(f.type))
|
|
197
|
+
this.jbEdgeIdx(B, String(i));
|
|
161
198
|
const v = this.loadField(B, "%v", shapeId, fieldIndex.get(f.name), f.type);
|
|
162
199
|
B.line(`call void @${this.jsonWriteHelper(f.type)}(ptr %b, ${this.valTy(f.type)} ${v}) ; [${f.name}]`);
|
|
163
200
|
});
|
|
164
201
|
this.putc(B, "%b", "93"); // ']'
|
|
202
|
+
if (cyclic)
|
|
203
|
+
this.jbLeave(B);
|
|
165
204
|
return;
|
|
166
205
|
}
|
|
167
206
|
// Fields serialize in DECLARED order (JS insertion order); internal
|
|
@@ -179,6 +218,8 @@ export class LlWalkers {
|
|
|
179
218
|
if (!droppable) {
|
|
180
219
|
emitFields.forEach((f, i) => {
|
|
181
220
|
this.puts(B, "%b", `${i > 0 ? "," : ""}"${f.name}":`);
|
|
221
|
+
if (edgeable(f.type))
|
|
222
|
+
this.jbEdgeProp(B, f.name);
|
|
182
223
|
const v = this.loadField(B, "%v", shapeId, fieldIndex.get(f.name), f.type);
|
|
183
224
|
B.line(`call void @${this.jsonWriteHelper(f.type)}(ptr %b, ${this.valTy(f.type)} ${v}) ; ${f.name}`);
|
|
184
225
|
});
|
|
@@ -215,6 +256,8 @@ export class LlWalkers {
|
|
|
215
256
|
}
|
|
216
257
|
comma();
|
|
217
258
|
this.puts(B, "%b", `"${f.name}":`);
|
|
259
|
+
if (edgeable(f.type))
|
|
260
|
+
this.jbEdgeProp(B, f.name);
|
|
218
261
|
B.line(`call void @${this.jsonWriteHelper(f.type)}(ptr %b, ${this.valTy(f.type)} ${v}) ; ${f.name}`);
|
|
219
262
|
if (skip !== null) {
|
|
220
263
|
B.br(skip);
|
|
@@ -222,14 +265,16 @@ export class LlWalkers {
|
|
|
222
265
|
}
|
|
223
266
|
}
|
|
224
267
|
if (shape.indexValue)
|
|
225
|
-
this.emitOverflowEntries(B, shape, first);
|
|
268
|
+
this.emitOverflowEntries(B, shape, first, edgeable(shape.indexValue));
|
|
226
269
|
}
|
|
227
270
|
this.putc(B, "%b", "125"); // '}'
|
|
271
|
+
if (cyclic)
|
|
272
|
+
this.jbLeave(B);
|
|
228
273
|
}
|
|
229
274
|
/** Overflow entries follow the declared fields, in JS OWN-KEY order
|
|
230
275
|
* (scr_map_keys_js_order); keys escape like any JSON string;
|
|
231
276
|
* undefined-valued entries drop (the optional-field rule). */
|
|
232
|
-
emitOverflowEntries(B, shape, first) {
|
|
277
|
+
emitOverflowEntries(B, shape, first, edgeKeys = false) {
|
|
233
278
|
const iv = shape.indexValue;
|
|
234
279
|
const host = this.host;
|
|
235
280
|
const ovfp = B.tmp();
|
|
@@ -333,6 +378,10 @@ export class LlWalkers {
|
|
|
333
378
|
host.declare(`declare void @scr_jb_put_json_str(ptr, ptr)`);
|
|
334
379
|
B.line(`call void @scr_jb_put_json_str(ptr %b, ptr ${k})`);
|
|
335
380
|
this.putc(B, "%b", "58"); // ':'
|
|
381
|
+
if (edgeKeys) {
|
|
382
|
+
this.host.declare(`declare void @scr_jb_edge_key(ptr, ptr)`);
|
|
383
|
+
B.line(`call void @scr_jb_edge_key(ptr %b, ptr ${k})`);
|
|
384
|
+
}
|
|
336
385
|
B.line(`call void @${this.jsonWriteHelper(iv)}(ptr %b, ${this.valTy(iv)} ${val})`);
|
|
337
386
|
B.line(`call void @scr_str_release(ptr ${k})`);
|
|
338
387
|
if (isRefCounted(iv))
|
|
@@ -347,10 +396,14 @@ export class LlWalkers {
|
|
|
347
396
|
host.declare(`declare void @scr_arr_release(ptr)`);
|
|
348
397
|
B.line(`call void @scr_arr_release(ptr ${ks})`);
|
|
349
398
|
}
|
|
350
|
-
emitArrayWriter(B, elem) {
|
|
399
|
+
emitArrayWriter(B, elem, cyclic) {
|
|
351
400
|
const host = this.host;
|
|
352
401
|
const w = this.jsonWriteHelper(elem);
|
|
353
402
|
host.declare(`declare double @scr_arr_len(ptr)`);
|
|
403
|
+
// A cycle-capable array joins the circular-detection stack exactly
|
|
404
|
+
// like a cycle-capable record.
|
|
405
|
+
if (cyclic)
|
|
406
|
+
this.jbEnter(B, true);
|
|
354
407
|
this.putc(B, "%b", "91"); // '['
|
|
355
408
|
const len = B.tmp();
|
|
356
409
|
B.line(`${len} = call double @scr_arr_len(ptr %v)`);
|
|
@@ -377,6 +430,11 @@ export class LlWalkers {
|
|
|
377
430
|
this.putc(B, "%b", "44"); // ','
|
|
378
431
|
B.br(lj);
|
|
379
432
|
B.startBlock(lj);
|
|
433
|
+
if (cyclic) {
|
|
434
|
+
const idx = B.tmp();
|
|
435
|
+
B.line(`${idx} = fptoui double ${i} to i64`);
|
|
436
|
+
this.jbEdgeIdx(B, idx);
|
|
437
|
+
}
|
|
380
438
|
if (elem.kind === "f64" || elem.kind === "bool") {
|
|
381
439
|
const acc = elem.kind;
|
|
382
440
|
const accTy = elem.kind === "f64" ? "double" : "i1";
|
|
@@ -399,6 +457,8 @@ export class LlWalkers {
|
|
|
399
457
|
B.br(lc);
|
|
400
458
|
B.startBlock(le);
|
|
401
459
|
this.putc(B, "%b", "93"); // ']'
|
|
460
|
+
if (cyclic)
|
|
461
|
+
this.jbLeave(B);
|
|
402
462
|
}
|
|
403
463
|
emitUnionWriter(B, unionId) {
|
|
404
464
|
const def = this.host.unionsById.get(unionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walkers.js","sourceRoot":"","sources":["../../../src/backend/llvm/walkers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walkers.js","sourceRoot":"","sources":["../../../src/backend/llvm/walkers.ts"],"names":[],"mappings":"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"}
|
|
@@ -177,5 +177,11 @@ export declare function libDynamicDiag(what: string, loc: SrcLoc): ScrDiagnostic
|
|
|
177
177
|
* compiled function is one concrete signature (the SC2001 monomorphization
|
|
178
178
|
* rule, re-anchored at the profile entry). */
|
|
179
179
|
export declare function libGenericExportDiag(exportName: string, loc: SrcLoc): ScrDiagnostic;
|
|
180
|
+
/** SC4009 — the contract sidecar cannot be projected: a profile
|
|
181
|
+
* designation names nothing the entry declares, a designated type falls
|
|
182
|
+
* outside the schema's closed vocabulary, or a contract convention const
|
|
183
|
+
* is malformed. The sidecar records verdicts, never guesses — anything
|
|
184
|
+
* unprojectable refuses with the offending declaration named. */
|
|
185
|
+
export declare function libSidecarDiag(detail: string, loc: SrcLoc, hint?: string): ScrDiagnostic;
|
|
180
186
|
export declare function iceDiag(message: string, loc: SrcLoc): ScrDiagnostic;
|
|
181
187
|
export {};
|
|
@@ -558,6 +558,22 @@ export function libGenericExportDiag(exportName, loc) {
|
|
|
558
558
|
"export const update_f64 = update<number>",
|
|
559
559
|
};
|
|
560
560
|
}
|
|
561
|
+
/** SC4009 — the contract sidecar cannot be projected: a profile
|
|
562
|
+
* designation names nothing the entry declares, a designated type falls
|
|
563
|
+
* outside the schema's closed vocabulary, or a contract convention const
|
|
564
|
+
* is malformed. The sidecar records verdicts, never guesses — anything
|
|
565
|
+
* unprojectable refuses with the offending declaration named. */
|
|
566
|
+
export function libSidecarDiag(detail, loc, hint) {
|
|
567
|
+
return {
|
|
568
|
+
code: "SC4009",
|
|
569
|
+
message: `contract sidecar: ${detail}`,
|
|
570
|
+
loc,
|
|
571
|
+
hint: hint ??
|
|
572
|
+
"the sidecar's type table speaks a closed vocabulary (bool, number, string/Uint8Array, optional, arrays, " +
|
|
573
|
+
"named records, string-literal-union enums, and kind-tagged unions of object literals) read from the entry " +
|
|
574
|
+
"module's exported declarations in source order",
|
|
575
|
+
};
|
|
576
|
+
}
|
|
561
577
|
export function iceDiag(message, loc) {
|
|
562
578
|
return {
|
|
563
579
|
code: "SC9001",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as ts from "./ts7/adapter.js";
|
|
2
|
+
import type { SrcLoc } from "../ir/nodes.js";
|
|
3
|
+
/** A syntactic type shape — exactly what the source spells, no checker. */
|
|
4
|
+
export type ContractTypeShape = {
|
|
5
|
+
k: "bool";
|
|
6
|
+
} | {
|
|
7
|
+
k: "number";
|
|
8
|
+
} | {
|
|
9
|
+
k: "text";
|
|
10
|
+
} | {
|
|
11
|
+
k: "bytes";
|
|
12
|
+
} | {
|
|
13
|
+
k: "void";
|
|
14
|
+
} | {
|
|
15
|
+
k: "absent";
|
|
16
|
+
} | {
|
|
17
|
+
k: "ref";
|
|
18
|
+
name: string;
|
|
19
|
+
} | {
|
|
20
|
+
k: "array";
|
|
21
|
+
elem: ContractTypeShape;
|
|
22
|
+
} | {
|
|
23
|
+
k: "tuple";
|
|
24
|
+
elems: ContractTypeShape[];
|
|
25
|
+
} | {
|
|
26
|
+
k: "object";
|
|
27
|
+
fields: ContractField[];
|
|
28
|
+
} | {
|
|
29
|
+
k: "stringLit";
|
|
30
|
+
text: string;
|
|
31
|
+
} | {
|
|
32
|
+
k: "union";
|
|
33
|
+
parts: ContractTypeShape[];
|
|
34
|
+
} | {
|
|
35
|
+
k: "unsupported";
|
|
36
|
+
text: string;
|
|
37
|
+
};
|
|
38
|
+
export interface ContractField {
|
|
39
|
+
name: string;
|
|
40
|
+
optional: boolean;
|
|
41
|
+
shape: ContractTypeShape;
|
|
42
|
+
loc: SrcLoc;
|
|
43
|
+
}
|
|
44
|
+
export interface ContractTypeDecl {
|
|
45
|
+
name: string;
|
|
46
|
+
/** `interface` projects to a by-reference record; a type-alias object
|
|
47
|
+
* literal to a by-value record; alias unions classify downstream. */
|
|
48
|
+
form: "interface" | "alias";
|
|
49
|
+
shape: ContractTypeShape;
|
|
50
|
+
loc: SrcLoc;
|
|
51
|
+
}
|
|
52
|
+
export interface ContractFnDecl {
|
|
53
|
+
name: string;
|
|
54
|
+
params: {
|
|
55
|
+
name: string;
|
|
56
|
+
shape: ContractTypeShape | null;
|
|
57
|
+
}[];
|
|
58
|
+
returns: ContractTypeShape | null;
|
|
59
|
+
generic: boolean;
|
|
60
|
+
loc: SrcLoc;
|
|
61
|
+
}
|
|
62
|
+
/** One recognized exported-const convention value; `malformed` carries the
|
|
63
|
+
* reason when the initializer does not fit the convention's shape. */
|
|
64
|
+
export interface ContractConst<T> {
|
|
65
|
+
value: T;
|
|
66
|
+
loc: SrcLoc;
|
|
67
|
+
}
|
|
68
|
+
export interface ContractFacts {
|
|
69
|
+
/** Exported interface/type-alias declarations, statement order. */
|
|
70
|
+
types: ContractTypeDecl[];
|
|
71
|
+
/** Exported function declarations, statement order. */
|
|
72
|
+
functions: ContractFnDecl[];
|
|
73
|
+
modelUnbound: ContractConst<string[]> | null;
|
|
74
|
+
msgUnbound: ContractConst<string[]> | null;
|
|
75
|
+
appearanceMsg: ContractConst<string> | null;
|
|
76
|
+
chromeMsg: ContractConst<string> | null;
|
|
77
|
+
envMsgs: ContractConst<{
|
|
78
|
+
env: string;
|
|
79
|
+
msg: string;
|
|
80
|
+
}[]> | null;
|
|
81
|
+
/** Convention-named consts whose initializers do not fit the expected
|
|
82
|
+
* shape — refusals, never guesses. */
|
|
83
|
+
malformedConsts: {
|
|
84
|
+
name: string;
|
|
85
|
+
detail: string;
|
|
86
|
+
loc: SrcLoc;
|
|
87
|
+
}[];
|
|
88
|
+
}
|
|
89
|
+
/** The syntactic shape of a type node, over the closed vocabulary the
|
|
90
|
+
* sidecar schema can express. Anything else lands as `unsupported` with
|
|
91
|
+
* the source text preserved for the refusal message. */
|
|
92
|
+
export declare function typeShape(file: ts.SourceFile, node: ts.TypeNode): ContractTypeShape;
|
|
93
|
+
/** Everything the sidecar projection needs from the entry module's syntax
|
|
94
|
+
* tree, in statement (declaration) order. Call before the frontend is
|
|
95
|
+
* disposed. */
|
|
96
|
+
export declare function entryContractFacts(entry: ts.SourceFile): ContractFacts;
|