@scriptc/compiler 0.0.0 → 0.0.1
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/LICENSE +202 -0
- package/ambient/package.json +3 -0
- package/ambient/scriptc-node-fallback.d.ts +3001 -0
- package/ambient/scriptc-overrides.d.ts +95 -0
- package/ambient/scriptc.d.ts +74 -0
- package/dist/backend/cc.d.ts +169 -0
- package/dist/backend/cc.js +897 -0
- package/dist/backend/cc.js.map +1 -0
- package/dist/backend/emission/emit-async.d.ts +145 -0
- package/dist/backend/emission/emit-async.js +996 -0
- package/dist/backend/emission/emit-async.js.map +1 -0
- package/dist/backend/emission/emit-exprs.d.ts +3 -0
- package/dist/backend/emission/emit-exprs.js +5947 -0
- package/dist/backend/emission/emit-exprs.js.map +1 -0
- package/dist/backend/emission/emit-island.d.ts +45 -0
- package/dist/backend/emission/emit-island.js +271 -0
- package/dist/backend/emission/emit-island.js.map +1 -0
- package/dist/backend/emission/emit-shapes.d.ts +142 -0
- package/dist/backend/emission/emit-shapes.js +575 -0
- package/dist/backend/emission/emit-shapes.js.map +1 -0
- package/dist/backend/emission/emit-stmts.d.ts +78 -0
- package/dist/backend/emission/emit-stmts.js +960 -0
- package/dist/backend/emission/emit-stmts.js.map +1 -0
- package/dist/backend/emission/emit-types.d.ts +65 -0
- package/dist/backend/emission/emit-types.js +652 -0
- package/dist/backend/emission/emit-types.js.map +1 -0
- package/dist/backend/emission/emit-walkers.d.ts +154 -0
- package/dist/backend/emission/emit-walkers.js +1587 -0
- package/dist/backend/emission/emit-walkers.js.map +1 -0
- package/dist/backend/emission/emitter.d.ts +452 -0
- package/dist/backend/emission/emitter.js +1249 -0
- package/dist/backend/emission/emitter.js.map +1 -0
- package/dist/backend/emission/may-throw.d.ts +15 -0
- package/dist/backend/emission/may-throw.js +250 -0
- package/dist/backend/emission/may-throw.js.map +1 -0
- package/dist/backend/llvm/blocks.d.ts +21 -0
- package/dist/backend/llvm/blocks.js +68 -0
- package/dist/backend/llvm/blocks.js.map +1 -0
- package/dist/backend/llvm/classes.d.ts +84 -0
- package/dist/backend/llvm/classes.js +438 -0
- package/dist/backend/llvm/classes.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +123 -0
- package/dist/backend/llvm/dyn.js +2624 -0
- package/dist/backend/llvm/dyn.js.map +1 -0
- package/dist/backend/llvm/emitter.d.ts +3 -0
- package/dist/backend/llvm/emitter.js +10087 -0
- package/dist/backend/llvm/emitter.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +78 -0
- package/dist/backend/llvm/shapes.js +754 -0
- package/dist/backend/llvm/shapes.js.map +1 -0
- package/dist/backend/llvm/unsupported.d.ts +6 -0
- package/dist/backend/llvm/unsupported.js +12 -0
- package/dist/backend/llvm/unsupported.js.map +1 -0
- package/dist/backend/llvm/walkers.d.ts +58 -0
- package/dist/backend/llvm/walkers.js +793 -0
- package/dist/backend/llvm/walkers.js.map +1 -0
- package/dist/backend/mangle.d.ts +124 -0
- package/dist/backend/mangle.js +232 -0
- package/dist/backend/mangle.js.map +1 -0
- package/dist/coverage/report.d.ts +64 -0
- package/dist/coverage/report.js +226 -0
- package/dist/coverage/report.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +140 -0
- package/dist/diagnostics/diagnostic.js +458 -0
- package/dist/diagnostics/diagnostic.js.map +1 -0
- package/dist/diagnostics/render.d.ts +11 -0
- package/dist/diagnostics/render.js +58 -0
- package/dist/diagnostics/render.js.map +1 -0
- package/dist/frontend/cjs-lexer.d.ts +20 -0
- package/dist/frontend/cjs-lexer.js +813 -0
- package/dist/frontend/cjs-lexer.js.map +1 -0
- package/dist/frontend/lowering/http2-constants.d.ts +1 -0
- package/dist/frontend/lowering/http2-constants.js +251 -0
- package/dist/frontend/lowering/http2-constants.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.d.ts +6 -0
- package/dist/frontend/lowering/lib-boundary.js +143 -0
- package/dist/frontend/lowering/lib-boundary.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.d.ts +18 -0
- package/dist/frontend/lowering/lower-assert.js +1269 -0
- package/dist/frontend/lowering/lower-assert.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +511 -0
- package/dist/frontend/lowering/lower-builtins.js +5249 -0
- package/dist/frontend/lowering/lower-builtins.js.map +1 -0
- package/dist/frontend/lowering/lower-calls.d.ts +581 -0
- package/dist/frontend/lowering/lower-calls.js +6281 -0
- package/dist/frontend/lowering/lower-calls.js.map +1 -0
- package/dist/frontend/lowering/lower-classes.d.ts +727 -0
- package/dist/frontend/lowering/lower-classes.js +4701 -0
- package/dist/frontend/lowering/lower-classes.js.map +1 -0
- package/dist/frontend/lowering/lower-comptime.d.ts +53 -0
- package/dist/frontend/lowering/lower-comptime.js +244 -0
- package/dist/frontend/lowering/lower-comptime.js.map +1 -0
- package/dist/frontend/lowering/lower-containers.d.ts +483 -0
- package/dist/frontend/lowering/lower-containers.js +6281 -0
- package/dist/frontend/lowering/lower-containers.js.map +1 -0
- package/dist/frontend/lowering/lower-dgram.d.ts +20 -0
- package/dist/frontend/lowering/lower-dgram.js +319 -0
- package/dist/frontend/lowering/lower-dgram.js.map +1 -0
- package/dist/frontend/lowering/lower-emitter.d.ts +10 -0
- package/dist/frontend/lowering/lower-emitter.js +688 -0
- package/dist/frontend/lowering/lower-emitter.js.map +1 -0
- package/dist/frontend/lowering/lower-enums.d.ts +22 -0
- package/dist/frontend/lowering/lower-enums.js +235 -0
- package/dist/frontend/lowering/lower-enums.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.d.ts +35 -0
- package/dist/frontend/lowering/lower-expando.js +276 -0
- package/dist/frontend/lowering/lower-expando.js.map +1 -0
- package/dist/frontend/lowering/lower-exprs.d.ts +524 -0
- package/dist/frontend/lowering/lower-exprs.js +8099 -0
- package/dist/frontend/lowering/lower-exprs.js.map +1 -0
- package/dist/frontend/lowering/lower-generators.d.ts +50 -0
- package/dist/frontend/lowering/lower-generators.js +421 -0
- package/dist/frontend/lowering/lower-generators.js.map +1 -0
- package/dist/frontend/lowering/lower-inspect.d.ts +20 -0
- package/dist/frontend/lowering/lower-inspect.js +1069 -0
- package/dist/frontend/lowering/lower-inspect.js.map +1 -0
- package/dist/frontend/lowering/lower-island.d.ts +108 -0
- package/dist/frontend/lowering/lower-island.js +650 -0
- package/dist/frontend/lowering/lower-island.js.map +1 -0
- package/dist/frontend/lowering/lower-mixins.d.ts +96 -0
- package/dist/frontend/lowering/lower-mixins.js +534 -0
- package/dist/frontend/lowering/lower-mixins.js.map +1 -0
- package/dist/frontend/lowering/lower-modules.d.ts +135 -0
- package/dist/frontend/lowering/lower-modules.js +1613 -0
- package/dist/frontend/lowering/lower-modules.js.map +1 -0
- package/dist/frontend/lowering/lower-namespaces.d.ts +168 -0
- package/dist/frontend/lowering/lower-namespaces.js +706 -0
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -0
- package/dist/frontend/lowering/lower-server.d.ts +90 -0
- package/dist/frontend/lowering/lower-server.js +3471 -0
- package/dist/frontend/lowering/lower-server.js.map +1 -0
- package/dist/frontend/lowering/lower-stmts.d.ts +361 -0
- package/dist/frontend/lowering/lower-stmts.js +5341 -0
- package/dist/frontend/lowering/lower-stmts.js.map +1 -0
- package/dist/frontend/lowering/lower-stream.d.ts +88 -0
- package/dist/frontend/lowering/lower-stream.js +1533 -0
- package/dist/frontend/lowering/lower-stream.js.map +1 -0
- package/dist/frontend/lowering/lower-test.d.ts +27 -0
- package/dist/frontend/lowering/lower-test.js +353 -0
- package/dist/frontend/lowering/lower-test.js.map +1 -0
- package/dist/frontend/lowering/lowerer.d.ts +1748 -0
- package/dist/frontend/lowering/lowerer.js +6256 -0
- package/dist/frontend/lowering/lowerer.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +272 -0
- package/dist/frontend/lowering/surfaces.js +1096 -0
- package/dist/frontend/lowering/surfaces.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +55 -0
- package/dist/frontend/npm-static.js +300 -0
- package/dist/frontend/npm-static.js.map +1 -0
- package/dist/frontend/npm.d.ts +330 -0
- package/dist/frontend/npm.js +1259 -0
- package/dist/frontend/npm.js.map +1 -0
- package/dist/frontend/program.d.ts +186 -0
- package/dist/frontend/program.js +2172 -0
- package/dist/frontend/program.js.map +1 -0
- package/dist/frontend/provenance-registry.d.ts +48 -0
- package/dist/frontend/provenance-registry.js +87 -0
- package/dist/frontend/provenance-registry.js.map +1 -0
- package/dist/frontend/provenance.d.ts +6 -0
- package/dist/frontend/provenance.js +459 -0
- package/dist/frontend/provenance.js.map +1 -0
- package/dist/frontend/resolve.d.ts +56 -0
- package/dist/frontend/resolve.js +682 -0
- package/dist/frontend/resolve.js.map +1 -0
- package/dist/frontend/shared.d.ts +60 -0
- package/dist/frontend/shared.js +232 -0
- package/dist/frontend/shared.js.map +1 -0
- package/dist/frontend/ts7/adapter.d.ts +7 -0
- package/dist/frontend/ts7/adapter.js +54 -0
- package/dist/frontend/ts7/adapter.js.map +1 -0
- package/dist/frontend/ts7/ast.d.ts +50 -0
- package/dist/frontend/ts7/ast.js +211 -0
- package/dist/frontend/ts7/ast.js.map +1 -0
- package/dist/frontend/ts7/census-check.d.ts +1 -0
- package/dist/frontend/ts7/census-check.js +12 -0
- package/dist/frontend/ts7/census-check.js.map +1 -0
- package/dist/frontend/ts7/checker.d.ts +140 -0
- package/dist/frontend/ts7/checker.js +544 -0
- package/dist/frontend/ts7/checker.js.map +1 -0
- package/dist/frontend/ts7/enums.d.ts +18 -0
- package/dist/frontend/ts7/enums.js +43 -0
- package/dist/frontend/ts7/enums.js.map +1 -0
- package/dist/frontend/ts7/program.d.ts +99 -0
- package/dist/frontend/ts7/program.js +278 -0
- package/dist/frontend/ts7/program.js.map +1 -0
- package/dist/frontend/ts7/world-check.d.ts +3 -0
- package/dist/frontend/ts7/world-check.js +34 -0
- package/dist/frontend/ts7/world-check.js.map +1 -0
- package/dist/frontend/types.d.ts +205 -0
- package/dist/frontend/types.js +2485 -0
- package/dist/frontend/types.js.map +1 -0
- package/dist/index.d.ts +85 -0
- package/dist/index.js +424 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/nodes.d.ts +4334 -0
- package/dist/ir/nodes.js +1906 -0
- package/dist/ir/nodes.js.map +1 -0
- package/dist/ir/serialize.d.ts +4 -0
- package/dist/ir/serialize.js +34 -0
- package/dist/ir/serialize.js.map +1 -0
- package/dist/ir/validate.d.ts +36 -0
- package/dist/ir/validate.js +4884 -0
- package/dist/ir/validate.js.map +1 -0
- package/package.json +30 -6
- package/README.md +0 -3
- package/index.js +0 -2
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { IrModule, IrRecordShape, IrType } from "../../ir/nodes.js";
|
|
2
|
+
/** What the tables need from the emitter: the extern-declaration ledger
|
|
3
|
+
* and the module-wide cycle/shape indexes. */
|
|
4
|
+
export interface ShapeHost {
|
|
5
|
+
declare(decl: string): void;
|
|
6
|
+
/** Request the shared OOM abort helper (@sc_oom) — emitted once. */
|
|
7
|
+
needOom(): void;
|
|
8
|
+
readonly tracedShapes: Set<string>;
|
|
9
|
+
readonly tracedUnions: Set<string>;
|
|
10
|
+
readonly recordsById: Map<string, IrRecordShape>;
|
|
11
|
+
}
|
|
12
|
+
/** Every emitted function/helper carries #0 = { sanitize_address } — see
|
|
13
|
+
* the emitter header. */
|
|
14
|
+
export declare const FN_ATTRS = "#0";
|
|
15
|
+
export declare function computeTraced(mod: IrModule): {
|
|
16
|
+
shapes: Set<string>;
|
|
17
|
+
unions: Set<string>;
|
|
18
|
+
};
|
|
19
|
+
/** The runtime's `_v` (ptr → ptr / ptr → void) RC entry points for one
|
|
20
|
+
* refcounted type — used both as the CALL targets of the LLVM tier's
|
|
21
|
+
* retain/release (everything is `ptr` here, so the `_v` shape IS the
|
|
22
|
+
* direct shape) and as the function-pointer arguments of every container
|
|
23
|
+
* construction (unions, ref arrays, obj boxes, overflow maps). Records
|
|
24
|
+
* use their emitted per-shape helpers, whose signatures are already
|
|
25
|
+
* `_v`-shaped. */
|
|
26
|
+
export declare function vAdapters(host: ShapeHost, t: IrType): {
|
|
27
|
+
retain: string;
|
|
28
|
+
release: string;
|
|
29
|
+
};
|
|
30
|
+
/** The retain call target (ptr → ptr, +1 unless immortal) — the `_v`
|
|
31
|
+
* table above; the split exists so call sites read type-directedly. */
|
|
32
|
+
export declare function retainSym(host: ShapeHost, t: IrType): string;
|
|
33
|
+
/** The release call target (ptr → void, NULL-tolerant). The runtime's
|
|
34
|
+
* typed releases are external symbols, so the direct (non-`_v`) entry
|
|
35
|
+
* points serve where one exists; records use their emitted helper. */
|
|
36
|
+
export declare function releaseSym(host: ShapeHost, t: IrType): string;
|
|
37
|
+
/** The trace entry point for a payload/field type, or null when the type
|
|
38
|
+
* cannot participate in a cycle — traceAdapterC's table over the LLVM
|
|
39
|
+
* tier's kinds (promise/object rows are out of tier and unreachable:
|
|
40
|
+
* their RC rows refuse first). */
|
|
41
|
+
export declare function traceAdapter(host: ShapeHost, t: IrType): string | null;
|
|
42
|
+
/** `@trace` or `null` — the trace argument at a container call site. */
|
|
43
|
+
export declare function traceArg(host: ShapeHost, t: IrType): string;
|
|
44
|
+
/** Runtime accessor suffix for an element type (matches emit-types.ts:
|
|
45
|
+
* f64 and bool unboxed, everything refcounted through the `_ref` family). */
|
|
46
|
+
export declare function elemAccess(elem: IrType): "f64" | "bool" | "ref";
|
|
47
|
+
/** Array construction call text (arrNewC's dispatch): ref elements
|
|
48
|
+
* (records, unions, closures — and cycle-capable inner arrays, whose
|
|
49
|
+
* SCR_ELEM_ARR spelling would hide them from the outer array's trace)
|
|
50
|
+
* construct through scr_arr_new_ref with the element type's `_v` RC entry
|
|
51
|
+
* points; every other element kind keeps the plain scr_arr_new call. */
|
|
52
|
+
export declare function arrNewCall(host: ShapeHost, elem: IrType, capText: string): string;
|
|
53
|
+
/** Box construction call text (boxNewC's dispatch): plain-kind boxes for
|
|
54
|
+
* the runtime-known payloads, obj-kind boxes (RC entry points + trace as
|
|
55
|
+
* data) for per-shape payloads and cycle-capable arrays. SCR_BOX_* tags
|
|
56
|
+
* from scr_runtime.h. */
|
|
57
|
+
export declare function boxNewCall(host: ShapeHost, t: IrType): string;
|
|
58
|
+
/** Box accessor suffix (boxAccess): scalars unboxed, ref kinds pointers. */
|
|
59
|
+
export declare function boxAccess(t: IrType): "f64" | "bool" | "ref";
|
|
60
|
+
/** A record field's in-struct LLVM type. bool fields store as i8 (the C
|
|
61
|
+
* _Bool layout); loads/stores convert at the access site. */
|
|
62
|
+
export declare function llFieldType(t: IrType): "double" | "i8" | "ptr";
|
|
63
|
+
/** Runtime suffix for a map's KEY kind (mapKeyAccess's table): f64 with
|
|
64
|
+
* SameValueZero, string content, or handle-identity REF (symbols). */
|
|
65
|
+
export declare function mapKeyAccess(key: IrType): "f64" | "str" | "ref";
|
|
66
|
+
/** The ScrMapKeyKind / ScrMapValKind constants for scr_map_new. */
|
|
67
|
+
export declare function mapKeyKindNum(key: IrType): number;
|
|
68
|
+
export declare function mapValKindNum(value: IrType): number;
|
|
69
|
+
/** Per-record-shape LLVM emission: the named struct types (returned as
|
|
70
|
+
* `typeDefs`) and the new/retain/release (+trace/gcFree for cycle-capable
|
|
71
|
+
* shapes) function definitions (`defs`). Layout mirrors the C emitter:
|
|
72
|
+
* `{ i64 rc, fields..., [ptr overflow] }`; the retain/release signatures
|
|
73
|
+
* are already `_v`-shaped, so the same symbols serve as container RC
|
|
74
|
+
* entry points. */
|
|
75
|
+
export declare function emitRecordShapes(host: ShapeHost, mod: IrModule): {
|
|
76
|
+
typeDefs: string[];
|
|
77
|
+
defs: string[];
|
|
78
|
+
};
|