@scriptc/compiler 0.0.6 → 0.0.8

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 (75) hide show
  1. package/dist/backend/emission/emit-exprs.js +47 -1
  2. package/dist/backend/emission/emit-exprs.js.map +1 -1
  3. package/dist/backend/emission/emit-island.js +9 -1
  4. package/dist/backend/emission/emit-island.js.map +1 -1
  5. package/dist/backend/emission/emit-stmts.js +3 -1
  6. package/dist/backend/emission/emit-stmts.js.map +1 -1
  7. package/dist/backend/emission/emit-walkers.js +22 -8
  8. package/dist/backend/emission/emit-walkers.js.map +1 -1
  9. package/dist/backend/emission/emitter.js +12 -1
  10. package/dist/backend/emission/emitter.js.map +1 -1
  11. package/dist/backend/emission/may-throw.js +4 -3
  12. package/dist/backend/emission/may-throw.js.map +1 -1
  13. package/dist/backend/llvm/emitter.js +105 -9
  14. package/dist/backend/llvm/emitter.js.map +1 -1
  15. package/dist/diagnostics/diagnostic.d.ts +49 -1
  16. package/dist/diagnostics/diagnostic.js +119 -5
  17. package/dist/diagnostics/diagnostic.js.map +1 -1
  18. package/dist/frontend/lib-contract.d.ts +114 -0
  19. package/dist/frontend/lib-contract.js +372 -0
  20. package/dist/frontend/lib-contract.js.map +1 -0
  21. package/dist/frontend/lowering/lower-builtins.js +16 -1
  22. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  23. package/dist/frontend/lowering/lower-calls.d.ts +47 -7
  24. package/dist/frontend/lowering/lower-calls.js +560 -36
  25. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  26. package/dist/frontend/lowering/lower-classes.d.ts +14 -1
  27. package/dist/frontend/lowering/lower-classes.js +85 -15
  28. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  29. package/dist/frontend/lowering/lower-containers.js +43 -1
  30. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  31. package/dist/frontend/lowering/lower-emitter.js +1 -1
  32. package/dist/frontend/lowering/lower-emitter.js.map +1 -1
  33. package/dist/frontend/lowering/lower-exprs.d.ts +26 -3
  34. package/dist/frontend/lowering/lower-exprs.js +474 -44
  35. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  36. package/dist/frontend/lowering/lower-island.d.ts +7 -0
  37. package/dist/frontend/lowering/lower-island.js +71 -10
  38. package/dist/frontend/lowering/lower-island.js.map +1 -1
  39. package/dist/frontend/lowering/lower-mixins.d.ts +1 -1
  40. package/dist/frontend/lowering/lower-mixins.js +1 -1
  41. package/dist/frontend/lowering/lower-modules.js +95 -4
  42. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  43. package/dist/frontend/lowering/lower-stmts.js +430 -44
  44. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  45. package/dist/frontend/lowering/lowerer.d.ts +19 -3
  46. package/dist/frontend/lowering/lowerer.js +188 -11
  47. package/dist/frontend/lowering/lowerer.js.map +1 -1
  48. package/dist/frontend/types.d.ts +28 -1
  49. package/dist/frontend/types.js +300 -8
  50. package/dist/frontend/types.js.map +1 -1
  51. package/dist/index.d.ts +11 -2
  52. package/dist/index.js +96 -7
  53. package/dist/index.js.map +1 -1
  54. package/dist/ir/nodes.d.ts +48 -2
  55. package/dist/ir/nodes.js +103 -3
  56. package/dist/ir/nodes.js.map +1 -1
  57. package/dist/ir/validate.js +35 -6
  58. package/dist/ir/validate.js.map +1 -1
  59. package/dist/library/profile.d.ts +53 -3
  60. package/dist/library/profile.js +143 -12
  61. package/dist/library/profile.js.map +1 -1
  62. package/dist/library/sidecar-validate.d.ts +4 -0
  63. package/dist/library/sidecar-validate.js +506 -0
  64. package/dist/library/sidecar-validate.js.map +1 -0
  65. package/dist/library/sidecar.d.ts +191 -0
  66. package/dist/library/sidecar.js +687 -0
  67. package/dist/library/sidecar.js.map +1 -0
  68. package/dist/library/trap-teaching.d.ts +11 -0
  69. package/dist/library/trap-teaching.js +49 -0
  70. package/dist/library/trap-teaching.js.map +1 -0
  71. package/dist/library/wyhash.d.ts +12 -0
  72. package/dist/library/wyhash.js +116 -0
  73. package/dist/library/wyhash.js.map +1 -0
  74. package/package.json +2 -2
  75. package/surface-manifest.json +37 -2
@@ -14,6 +14,35 @@ export interface LibraryExportEntry {
14
14
  params: LibParamClass[];
15
15
  returns: LibReturnClass;
16
16
  }
17
+ /** The ask-2 contract-sidecar configuration: the profile-declared echo
18
+ * constants, identity-getter symbols, and contract designations. Presence
19
+ * of the section turns sidecar emission on for the invocation. */
20
+ export interface LibrarySidecarConfig {
21
+ /** Sidecar file, resolved beside the archive; null selects the neutral
22
+ * default `<out>.contract.json`. */
23
+ path: string | null;
24
+ wireVersion: number;
25
+ abiVersion: number;
26
+ snapshotFormat: number;
27
+ /** The u64 build_id identity getter's C symbol. */
28
+ buildIdSymbol: string;
29
+ /** The u32 abi_version identity getter's C symbol. */
30
+ abiVersionSymbol: string;
31
+ /** The entry module's exported root state type (an interface). */
32
+ model: string;
33
+ /** The entry module's exported message union type (a tagged alias). */
34
+ msg: string;
35
+ /** The exported init/update/subscriptions function names the shape
36
+ * flags key on (and model_helpers excludes). */
37
+ initExport: string;
38
+ updateExport: string;
39
+ subscriptionsExport: string;
40
+ /** The profile-selected source-tree hashing contract. v1 implements
41
+ * exactly one: "module-graph" (wyhash-64, seed 0xc0de5eed, over the
42
+ * length-prefixed sorted module graph — canonical root-relative POSIX
43
+ * paths and exact source bytes). */
44
+ sourceHash: "module-graph";
45
+ }
17
46
  export interface LibraryProfile {
18
47
  profileFormat: 1;
19
48
  name: string;
@@ -32,10 +61,27 @@ export interface LibraryProfile {
32
61
  * every entry prologue resets the result arena. */
33
62
  resultResetSymbol: string | null;
34
63
  exports: LibraryExportEntry[];
35
- /** Profile-supplied teaching text appended to refusals (the ratified
36
- * SC4004/SC4005 rider): keyed by diagnostic code ("SC4005"), with
37
- * "async" accepted as the shared key for both async-surface codes. */
64
+ /** The ask-2 contract-sidecar section; null = the profile declares no
65
+ * sidecar and the invocation emits none. */
66
+ sidecar: LibrarySidecarConfig | null;
67
+ /** The profile file's exact bytes — build_id input 2 (the profile
68
+ * identity: two compiles under different profiles are different
69
+ * builds). */
70
+ profileBytes: Uint8Array;
71
+ /** Profile-supplied teaching text (the ratified SC4004/SC4005 rider,
72
+ * extended by the structured trap-teaching encoding): keyed by diagnostic
73
+ * code ("SC4005"), with "async" accepted as the shared key for both
74
+ * async-surface codes. Refusal teachings ride the diagnostic hint;
75
+ * runtime-trap teachings become the structured sink message's text
76
+ * field. Keys and values are validated free of the encoding's reserved
77
+ * bytes (0x01/0x1F) — keys as bare tokens, never for registry membership
78
+ * (embedder code spaces are the embedder's; SC is the compiler's). */
38
79
  teachings: Readonly<Record<string, string>>;
80
+ /** Profile-supplied remediation text, keyed like `teachings`: the
81
+ * structured trap-teaching message's optional fourth field — the whole
82
+ * field is absent from the assembled bytes when the profile supplies
83
+ * none. Same reserved-byte validation as `teachings`. */
84
+ remediations: Readonly<Record<string, string>>;
39
85
  }
40
86
  /** Parse + validate a profile file. Returns the profile or the SC4001
41
87
  * diagnostics (one per problem found before parsing had to stop). */
@@ -50,3 +96,7 @@ export declare function loadLibraryProfile(profilePath: string): {
50
96
  * SC4004/SC4005 carry profile-supplied guidance naming the embedder's
51
97
  * sanctioned alternative). Falls back to the shared "async" key. */
52
98
  export declare function profileTeaching(profile: LibraryProfile, code: string): string | undefined;
99
+ /** The profile's remediation text for one code — the structured
100
+ * trap-teaching message's optional fourth field. No shared-key fallback:
101
+ * a remediation names one code's fix. */
102
+ export declare function profileRemediation(profile: LibraryProfile, code: string): string | undefined;
@@ -23,12 +23,50 @@
23
23
  * },
24
24
  * "exports": [ { "export": "update", "symbol": "<prefix>_update",
25
25
  * "params": ["f64", "string"], "returns": "bytes" } ],
26
+ * "sidecar": { ... }, // ask-2 contract sidecar
27
+ * // (see below); absent =
28
+ * // no sidecar is emitted
26
29
  * "determinism": { ... } // ask-5 surface, reserved;
27
- * // only `teachings` is read
30
+ * // only `teachings` and
31
+ * // `remediations` are read
28
32
  * // today (the SC4004/SC4005
29
- * // teaching rider)
33
+ * // teaching rider + the
34
+ * // structured trap-teaching
35
+ * // encoding's text sources)
30
36
  * }
31
37
  *
38
+ * The `sidecar` section (ask 2): when present, the same invocation that
39
+ * emits the archive also emits the machine-readable contract sidecar
40
+ * (schema format 1) and the two profile-declared identity getters. The
41
+ * profile supplies the schema's echoed constants and designations:
42
+ *
43
+ * "sidecar": {
44
+ * "path": "app.contract.json", // optional; resolved beside
45
+ * // the archive; the neutral
46
+ * // default when unstated is
47
+ * // <out>.contract.json
48
+ * "wire_version": 3, // echoed
49
+ * "abi_version": 1, // echoed + getter-exported
50
+ * "snapshot_format": 1, // echoed
51
+ * "build_id_symbol": "<prefix>build_id", // u64 identity getter
52
+ * "abi_version_symbol": "<prefix>abi_version", // u32 identity getter
53
+ * "model": "Model", // entry's exported root
54
+ * // state type (interface)
55
+ * "msg": "Msg", // entry's exported message
56
+ * // union type (tagged alias)
57
+ * "init_export": "init", // optional, default "init"
58
+ * "update_export": "update", // optional, default "update"
59
+ * "subscriptions_export": "subscriptions", // optional, default
60
+ * "source_hash": "module-graph" // optional; the one v1
61
+ * // hashing contract
62
+ * }
63
+ *
64
+ * The COMPILATION ROOT for sidecar purposes is the profile file's
65
+ * directory: the sidecar's `entry` field and the build_id/source_hash
66
+ * canonical module paths are root-relative POSIX paths. The identity
67
+ * getters are pure data returns exempt from the poisoned guard and every
68
+ * runtime touch (ratified): callable before init and after a trap.
69
+ *
32
70
  * Marshalling classes (design §4.2 + session ruling 3): f64, bool, string,
33
71
  * bytes for params and returns; u8/u32/i32 are PARAM-ONLY plumbing classes
34
72
  * in v1 (outbound integer returns wait for ask-4's prove-or-refuse
@@ -83,16 +121,16 @@ export function loadLibraryProfile(profilePath) {
83
121
  ok: false,
84
122
  diagnostics: [libProfileDiag(detail, profilePath)],
85
123
  });
86
- let text;
124
+ let bytes;
87
125
  try {
88
- text = readFileSync(profilePath, "utf8");
126
+ bytes = readFileSync(profilePath);
89
127
  }
90
128
  catch (e) {
91
129
  return fail(`cannot read profile: ${e.message}`);
92
130
  }
93
131
  let raw;
94
132
  try {
95
- raw = JSON.parse(text);
133
+ raw = JSON.parse(new TextDecoder().decode(bytes));
96
134
  }
97
135
  catch (e) {
98
136
  return fail(`profile is not valid JSON (${e.message})`);
@@ -162,6 +200,67 @@ export function loadLibraryProfile(profilePath) {
162
200
  }
163
201
  entries.push({ export: exportName, symbol, params, returns: returns });
164
202
  });
203
+ // The ask-2 sidecar section: presence turns contract emission on.
204
+ // Unknown fields inside it are refused like abi's (a typo here would
205
+ // silently change the emitted contract).
206
+ let sidecar = null;
207
+ const sc = p["sidecar"];
208
+ if (sc !== undefined && sc !== null) {
209
+ if (typeof sc !== "object" || Array.isArray(sc))
210
+ throw new ProfileError("'sidecar' must be an object");
211
+ rejectUnknownKeys(sc, "sidecar", [
212
+ "path", "wire_version", "abi_version", "snapshot_format",
213
+ "build_id_symbol", "abi_version_symbol", "model", "msg",
214
+ "init_export", "update_export", "subscriptions_export", "source_hash",
215
+ ]);
216
+ const s = sc;
217
+ const intField = (key) => {
218
+ const v = req(s[key], `sidecar.${key}`, "number");
219
+ if (!Number.isInteger(v) || v < 0) {
220
+ throw new ProfileError(`'sidecar.${key}' must be a non-negative integer, got ${v}`);
221
+ }
222
+ return v;
223
+ };
224
+ const nameField = (key, fallback) => {
225
+ if (s[key] === undefined && fallback !== null)
226
+ return fallback;
227
+ const v = req(s[key], `sidecar.${key}`, "string");
228
+ if (v === "")
229
+ throw new ProfileError(`'sidecar.${key}' must be a non-empty name`);
230
+ return v;
231
+ };
232
+ let path = null;
233
+ if (s["path"] !== undefined && s["path"] !== null) {
234
+ const v = req(s["path"], "sidecar.path", "string");
235
+ if (v === "")
236
+ throw new ProfileError("'sidecar.path' must be a non-empty relative path");
237
+ if (isAbsolute(v)) {
238
+ throw new ProfileError("'sidecar.path' must be relative (the sidecar is written beside the archive)");
239
+ }
240
+ path = v;
241
+ }
242
+ const sourceHash = s["source_hash"] === undefined ? "module-graph" : req(s["source_hash"], "sidecar.source_hash", "string");
243
+ if (sourceHash !== "module-graph") {
244
+ throw new ProfileError(`'sidecar.source_hash' names an unknown hashing contract '${sourceHash}' (this scriptc implements "module-graph")`);
245
+ }
246
+ sidecar = {
247
+ path,
248
+ wireVersion: intField("wire_version"),
249
+ abiVersion: intField("abi_version"),
250
+ snapshotFormat: intField("snapshot_format"),
251
+ buildIdSymbol: symbolField(s["build_id_symbol"], "sidecar.build_id_symbol", prefix, false),
252
+ abiVersionSymbol: symbolField(s["abi_version_symbol"], "sidecar.abi_version_symbol", prefix, false),
253
+ model: nameField("model", null),
254
+ msg: nameField("msg", null),
255
+ initExport: nameField("init_export", "init"),
256
+ updateExport: nameField("update_export", "update"),
257
+ subscriptionsExport: nameField("subscriptions_export", "subscriptions"),
258
+ sourceHash: "module-graph",
259
+ };
260
+ if (sidecar.model === sidecar.msg) {
261
+ throw new ProfileError(`'sidecar.msg' must differ from 'sidecar.model' ('${sidecar.model}')`);
262
+ }
263
+ }
165
264
  // Pairwise-distinct symbols across the whole declared set (exports +
166
265
  // the mode-provided entries).
167
266
  const all = new Map();
@@ -178,6 +277,10 @@ export function loadLibraryProfile(profilePath) {
178
277
  claim(sinkRegisterSymbol, "abi.sink_register_symbol");
179
278
  claim(collectSymbol, "abi.collect_symbol");
180
279
  claim(resultResetSymbol, "abi.result_reset_symbol");
280
+ if (sidecar !== null) {
281
+ claim(sidecar.buildIdSymbol, "sidecar.build_id_symbol");
282
+ claim(sidecar.abiVersionSymbol, "sidecar.abi_version_symbol");
283
+ }
181
284
  entries.forEach((e, i) => claim(e.symbol, `exports[${i}].symbol`));
182
285
  const exportNames = new Set();
183
286
  entries.forEach((e, i) => {
@@ -186,18 +289,37 @@ export function loadLibraryProfile(profilePath) {
186
289
  }
187
290
  exportNames.add(e.export);
188
291
  });
189
- // Ask-5 surface: only the teachings rider is read today; everything
190
- // else under `determinism` is reserved and ignored.
292
+ // Ask-5 surface: only the teachings and remediations riders are read
293
+ // today; everything else under `determinism` is reserved and ignored.
294
+ // Both maps feed the structured trap-teaching encoding, which reserves
295
+ // 0x01 (the version marker) and 0x1F (the field separator): a key or
296
+ // value carrying either would corrupt the assembled sink message, so
297
+ // both are refused at load. Keys are diagnostic codes validated ONLY
298
+ // as tokens free of the reserved bytes — embedder code spaces belong
299
+ // to the embedder (SC is the compiler registry's); membership is
300
+ // never checked here.
191
301
  const teachings = {};
302
+ const remediations = {};
192
303
  const det = p["determinism"];
193
304
  if (det !== undefined && det !== null && typeof det === "object" && !Array.isArray(det)) {
194
- const t = det["teachings"];
195
- if (t !== undefined && t !== null && typeof t === "object" && !Array.isArray(t)) {
305
+ const readRider = (rider, into) => {
306
+ const t = det[rider];
307
+ if (t === undefined || t === null || typeof t !== "object" || Array.isArray(t))
308
+ return;
196
309
  for (const [k, v] of Object.entries(t)) {
197
- if (typeof v === "string")
198
- teachings[k] = v;
310
+ if (typeof v !== "string")
311
+ continue;
312
+ if (/[\u0001\u001f]/.test(k)) {
313
+ throw new ProfileError(`'determinism.${rider}' key ${JSON.stringify(k)} contains a reserved byte — 0x01 and 0x1F are the structured trap encoding's marker and separator; a code must be a plain token`);
314
+ }
315
+ if (/[\u0001\u001f]/.test(v)) {
316
+ throw new ProfileError(`'determinism.${rider}.${k}' contains a reserved byte — 0x01 and 0x1F are the structured trap encoding's marker and separator; teaching and remediation text must be plain UTF-8`);
317
+ }
318
+ into[k] = v;
199
319
  }
200
- }
320
+ };
321
+ readRider("teachings", teachings);
322
+ readRider("remediations", remediations);
201
323
  }
202
324
  const entry = isAbsolute(entryRel) ? entryRel : resolve(dirname(profilePath), entryRel);
203
325
  return {
@@ -213,7 +335,10 @@ export function loadLibraryProfile(profilePath) {
213
335
  collectSymbol,
214
336
  resultResetSymbol,
215
337
  exports: entries,
338
+ sidecar,
339
+ profileBytes: bytes,
216
340
  teachings,
341
+ remediations,
217
342
  },
218
343
  };
219
344
  }
@@ -229,4 +354,10 @@ export function loadLibraryProfile(profilePath) {
229
354
  export function profileTeaching(profile, code) {
230
355
  return profile.teachings[code] ?? (code === "SC4004" || code === "SC4005" ? profile.teachings["async"] : undefined);
231
356
  }
357
+ /** The profile's remediation text for one code — the structured
358
+ * trap-teaching message's optional fourth field. No shared-key fallback:
359
+ * a remediation names one code's fix. */
360
+ export function profileRemediation(profile, code) {
361
+ return profile.remediations[code];
362
+ }
232
363
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/library/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/library/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Validate a parsed sidecar document against the doc-internal halves of
2
+ * V1–V10 (plus V11's shape checks). Returns rule-tagged violation
3
+ * messages; empty = conforming. */
4
+ export declare function validateSidecar(doc: unknown): string[];