behavior-contracts 0.8.1 → 0.8.3
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/authoring.d.ts +3 -0
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.js +7 -0
- package/dist/authoring.js.map +1 -1
- package/dist/behavior.d.ts +4 -0
- package/dist/behavior.d.ts.map +1 -1
- package/dist/behavior.js.map +1 -1
- package/dist/expr-operator-types.d.ts.map +1 -1
- package/dist/expr-operator-types.js +2 -0
- package/dist/expr-operator-types.js.map +1 -1
- package/dist/generator/emit-shared-go-typed.d.ts.map +1 -1
- package/dist/generator/emit-shared-go-typed.js +130 -4
- package/dist/generator/emit-shared-go-typed.js.map +1 -1
- package/dist/generator/emit-shared-rust-typed.d.ts.map +1 -1
- package/dist/generator/emit-shared-rust-typed.js +49 -1
- package/dist/generator/emit-shared-rust-typed.js.map +1 -1
- package/dist/generator/emit-shared-typescript-typed.d.ts +83 -0
- package/dist/generator/emit-shared-typescript-typed.d.ts.map +1 -0
- package/dist/generator/emit-shared-typescript-typed.js +259 -0
- package/dist/generator/emit-shared-typescript-typed.js.map +1 -0
- package/dist/generator/emit-shared-typescript.d.ts.map +1 -1
- package/dist/generator/emit-shared-typescript.js +88 -0
- package/dist/generator/emit-shared-typescript.js.map +1 -1
- package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
- package/dist/generator/emit-straightline-typed-typescript.js +2 -0
- package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
- package/dist/generator/emit-typed-native-go.d.ts.map +1 -1
- package/dist/generator/emit-typed-native-go.js +179 -21
- package/dist/generator/emit-typed-native-go.js.map +1 -1
- package/dist/generator/emit-typed-native-rust.d.ts.map +1 -1
- package/dist/generator/emit-typed-native-rust.js +192 -26
- package/dist/generator/emit-typed-native-rust.js.map +1 -1
- package/dist/generator/emit-typescript-native.d.ts +56 -0
- package/dist/generator/emit-typescript-native.d.ts.map +1 -0
- package/dist/generator/emit-typescript-native.js +44 -0
- package/dist/generator/emit-typescript-native.js.map +1 -0
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +6 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/native-expr.d.ts +17 -0
- package/dist/generator/native-expr.d.ts.map +1 -1
- package/dist/generator/native-expr.js +82 -2
- package/dist/generator/native-expr.js.map +1 -1
- package/dist/generator/straightline.d.ts +22 -1
- package/dist/generator/straightline.d.ts.map +1 -1
- package/dist/generator/straightline.js +25 -7
- package/dist/generator/straightline.js.map +1 -1
- package/dist/generator/typed.d.ts +5 -0
- package/dist/generator/typed.d.ts.map +1 -1
- package/dist/generator/typed.js +8 -0
- package/dist/generator/typed.js.map +1 -1
- package/dist/guard.d.ts +2 -1
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +6 -5
- package/dist/guard.js.map +1 -1
- package/dist/type-gate.d.ts.map +1 -1
- package/dist/type-gate.js +5 -2
- package/dist/type-gate.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-straightline-typed-typescript.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-typescript.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-typescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-typed-native-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-typed-native-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"emit-typed-native-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-typed-native-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAipF5D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CA6RhF;AAqCD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAC"}
|
|
@@ -75,12 +75,12 @@ function inferPortType(node, inputPorts, asBinding) {
|
|
|
75
75
|
if (e.path.length === 1) {
|
|
76
76
|
const s = inputPorts[e.path[0]];
|
|
77
77
|
if (s) {
|
|
78
|
-
if (s.type === "string")
|
|
79
|
-
return "string";
|
|
78
|
+
if (s.type === "string" || s.type === "literal")
|
|
79
|
+
return "string"; // literal = constrained string.
|
|
80
80
|
if (s.type === "int")
|
|
81
81
|
return "int64";
|
|
82
|
-
if (s.type === "float")
|
|
83
|
-
return "float64";
|
|
82
|
+
if (s.type === "float" || s.type === "number")
|
|
83
|
+
return "float64"; // `"number"` = the float channel.
|
|
84
84
|
if (s.type === "bool")
|
|
85
85
|
return "bool";
|
|
86
86
|
}
|
|
@@ -134,12 +134,77 @@ function portFieldGoType(node, inputPorts, where = "port", asBinding, plan, type
|
|
|
134
134
|
const num = numLiteralGoExpr(node);
|
|
135
135
|
if (num !== null)
|
|
136
136
|
return Number.isInteger(node) ? "int64" : "float64";
|
|
137
|
+
// a ref to a `$as` element field (or an input map port) whose type is a MAP or NAMED struct (NOT a bare
|
|
138
|
+
// scalar) → the native map/struct type (#108-map: a `{map:V}` write port lowers to map[string]V).
|
|
139
|
+
const composite = portCompositeRef(node, inputPorts, asBinding, plan);
|
|
140
|
+
if (composite !== null)
|
|
141
|
+
return renderTypeRef(composite);
|
|
137
142
|
const ft = inferPortType(node, inputPorts, asBinding);
|
|
138
143
|
if (ft === "Value") {
|
|
139
144
|
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go combined read (bc#90 / runtime-free): ${where} '${JSON.stringify(node)}' does not lower to a native Go type (would need a boxed dslcontracts.Value). The covered read plane is runtime-free and admits NO boxed escape — the covered corpus ports are string / bool / static-string-array (projection) / bare-number (limit) only. Regenerate on the boxed straight-line path if this port is genuinely dynamic.`);
|
|
140
145
|
}
|
|
141
146
|
return ft;
|
|
142
147
|
}
|
|
148
|
+
/** portCompositeRef (go twin) — the full TypeRef of a port that is a `{ref:[...]}` into a `$as` element
|
|
149
|
+
* MAP or NAMED field (or an input MAP port with elemType). Returns null otherwise (caller falls through
|
|
150
|
+
* to scalar/array inference). #108-map: enables a `{map:V}` write port to lower to map[string]V. */
|
|
151
|
+
function portCompositeRef(node, inputPorts, asBinding, plan) {
|
|
152
|
+
const e = classifyExpr(node);
|
|
153
|
+
if (e.kind !== "ref" || plan === undefined)
|
|
154
|
+
return null;
|
|
155
|
+
let ref = null;
|
|
156
|
+
if (asBinding !== undefined && e.path[0] === asBinding.name) {
|
|
157
|
+
try {
|
|
158
|
+
ref = goTypedInternals.typedFieldAccess(asBinding.name, asBinding.ref, e.path.slice(1), asBinding.plan).ref;
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else if (e.path.length === 1) {
|
|
165
|
+
const s = inputPorts[e.path[0]];
|
|
166
|
+
if (s !== undefined && s.type === "map") {
|
|
167
|
+
const et = s.elemType;
|
|
168
|
+
if (et !== undefined)
|
|
169
|
+
return { kind: "map", value: deriveTypeRef(et, plan) };
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
if (ref === null)
|
|
174
|
+
return null;
|
|
175
|
+
if (ref.kind === "map" || ref.kind === "named")
|
|
176
|
+
return ref;
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
/** emitCompositePortValue (go twin) — the OWNED native value expr for a `{map:V}`/named port ref: a typed
|
|
180
|
+
* field access `<elemBase>.<field>` (native map/struct, ZERO boxed Value). `elemBaseExpr` is the map arm's
|
|
181
|
+
* element base for a `$as`-headed ref (omitted at top level — only input map-port refs resolve there). */
|
|
182
|
+
function emitCompositePortValue(node, inputPorts, asBinding, plan, elemBaseExpr) {
|
|
183
|
+
const e = classifyExpr(node);
|
|
184
|
+
if (e.kind !== "ref")
|
|
185
|
+
return null;
|
|
186
|
+
if (asBinding !== undefined && elemBaseExpr !== undefined && e.path[0] === asBinding.name) {
|
|
187
|
+
let acc;
|
|
188
|
+
try {
|
|
189
|
+
acc = goTypedInternals.typedFieldAccess(elemBaseExpr, asBinding.ref, e.path.slice(1), plan);
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
if (acc.ref.kind !== "map" && acc.ref.kind !== "named")
|
|
195
|
+
return null;
|
|
196
|
+
return acc.expr;
|
|
197
|
+
}
|
|
198
|
+
// a WHOLE-port ref to an input MAP port (with elemType) — valid at top level OR inside a map node (a
|
|
199
|
+
// ref head that is NOT the `$as` element binding). Reads the native map[string]V off the input struct.
|
|
200
|
+
if ((asBinding === undefined || e.path[0] !== asBinding.name) && e.path.length === 1) {
|
|
201
|
+
const s = inputPorts[e.path[0]];
|
|
202
|
+
if (s !== undefined && s.type === "map" && s.elemType !== undefined) {
|
|
203
|
+
return `in.${goFieldName(e.path[0])}`;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
143
208
|
function staticArrElems(node) {
|
|
144
209
|
if (node === null || typeof node !== "object" || Array.isArray(node))
|
|
145
210
|
return null;
|
|
@@ -310,6 +375,13 @@ function coveredMapNode(n, bodyIds, comp) {
|
|
|
310
375
|
return false;
|
|
311
376
|
if (m.relationKind !== undefined && m.relationKind !== "single" && m.relationKind !== "connection")
|
|
312
377
|
return false;
|
|
378
|
+
// A map node must carry an outType (its ELEMENT type per the recorder SoT — authoring.ts recordMap
|
|
379
|
+
// holds `node.outType = mapElem`, the PRE-array-wrap element; the emitter synthesizes the produced
|
|
380
|
+
// `[]element`). A map WITHOUT outType is uncovered. Legacy hand-built IR that already carries the
|
|
381
|
+
// `{arr:element}` produced form is ALSO accepted — mapNodeArrRef normalizes both to the array ref.
|
|
382
|
+
const outT = n.outType;
|
|
383
|
+
if (outT === undefined || typeof outT !== "object")
|
|
384
|
+
return false;
|
|
313
385
|
// `over` element type must be STATICALLY resolvable: a ref to a PRIOR BODY NODE's typed arr field
|
|
314
386
|
// (mapOverElemType) OR a ref to an INPUT array port that carries `elemType` (#108 — the C3 "BC does
|
|
315
387
|
// not infer" rule: an input array WITHOUT elemType stays fail-closed / uncovered).
|
|
@@ -394,12 +466,15 @@ function coverageRejectReason(comp) {
|
|
|
394
466
|
// to it too. A non-single/connection bindField member is rejected by that shared check.
|
|
395
467
|
for (const [i] of ep.parallelStageOf) {
|
|
396
468
|
const n = comp.body[i];
|
|
397
|
-
// #125: a
|
|
398
|
-
//
|
|
399
|
-
//
|
|
400
|
-
//
|
|
401
|
-
//
|
|
402
|
-
|
|
469
|
+
// #125/#108: a cond node IS allowed as a parallel-stage member — it is a pure Expression (no
|
|
470
|
+
// dispatch), evaluated in preflight ascending order, so its produced flag / typed result cell is
|
|
471
|
+
// settled before any dispatch. It carries no handler and no boxed result, so it does not disturb the
|
|
472
|
+
// bounded-concurrency error-precedence protocol (which governs the componentRef fan-out members).
|
|
473
|
+
// Covers BOTH the when(...) control-gate cond (#136, {ok}/null skip marker) AND the Φ-merge VALUE
|
|
474
|
+
// cond (#108, has outType, then/else are data branches — the sibling Φ-join). The cond's own
|
|
475
|
+
// validity (a value cond REQUIRES outType; a control gate is exempt) is enforced by the per-node
|
|
476
|
+
// cond check below, so a parallel value cond without outType still loud-rejects there.
|
|
477
|
+
if ("cond" in n)
|
|
403
478
|
continue;
|
|
404
479
|
if (!("component" in n))
|
|
405
480
|
return `node '${n.id}' is a non-componentRef member of a parallel stage (not native-covered)`;
|
|
@@ -764,6 +839,19 @@ function fanoutOverElemInfo(comp, node, typedNodes, plan) {
|
|
|
764
839
|
}
|
|
765
840
|
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go fanout (v3): fanout '${node.id}' 'over' must be a ref to a prior node's typed arr field OR an input array port with a declared elemType (got ${JSON.stringify(f.over)}).`);
|
|
766
841
|
}
|
|
842
|
+
/** mapNodeArrRef — the map node's PRODUCED-ARRAY TypeRef from its `outType`, normalizing the two IR
|
|
843
|
+
* conventions to the one array shape every downstream site assumes (`typedNodes.get(mapId)` is an arr):
|
|
844
|
+
* - the RECORDER SoT (authoring.ts recordMap): `node.outType` is the ELEMENT (pre-array-wrap) — wrap
|
|
845
|
+
* to `{arr:element}` (the map produces `[]element`), matching type-gate's outputType wrap
|
|
846
|
+
* (`"map" in n ? {arr:ot} : ot`). This is the declarative-authoring form (graphddb batchWrite/forEach).
|
|
847
|
+
* - legacy hand-built IR: `node.outType` already the `{arr:element}` produced form — take it as-is.
|
|
848
|
+
* A map ELEMENT is never itself an `{arr:…}` in the covered corpus, so the discriminator is unambiguous.
|
|
849
|
+
* Both converge to the SAME produced-array ref, so existing goldens stay byte-identical. */
|
|
850
|
+
function mapNodeArrRef(node, plan) {
|
|
851
|
+
const outT = node.outType;
|
|
852
|
+
const isArr = outT !== null && typeof outT === "object" && "arr" in outT;
|
|
853
|
+
return deriveTypeRef((isArr ? outT : { arr: outT }), plan);
|
|
854
|
+
}
|
|
767
855
|
/** mapElemRowRef — the handler's per-element RETURN shape for a covered map node: the `into` field's
|
|
768
856
|
* type (into) or the element outType directly (no-into). This is the type of RawElem_<comp>_<node>. */
|
|
769
857
|
function mapElemRowRef(node, arrRef, plan) {
|
|
@@ -946,10 +1034,14 @@ function inStructName(compName) {
|
|
|
946
1034
|
function inputPortGoType(schema, plan) {
|
|
947
1035
|
switch (schema?.type) {
|
|
948
1036
|
case "string":
|
|
1037
|
+
// a `"literal"` port is a constrained STRING union (`param.literal(…)`, stored 'S') → native string.
|
|
1038
|
+
case "literal":
|
|
949
1039
|
return "string";
|
|
950
1040
|
case "int":
|
|
951
1041
|
return "int64";
|
|
952
1042
|
case "float":
|
|
1043
|
+
// a `"number"` port is the FLOAT channel (run_behavior: number → float / f64 / float64).
|
|
1044
|
+
case "number":
|
|
953
1045
|
return "float64";
|
|
954
1046
|
case "bool":
|
|
955
1047
|
return "bool";
|
|
@@ -962,6 +1054,13 @@ function inputPortGoType(schema, plan) {
|
|
|
962
1054
|
return `[]${renderTypeRef(deriveTypeRef(et, plan))}`;
|
|
963
1055
|
return `${PKG}.Value`;
|
|
964
1056
|
}
|
|
1057
|
+
case "map": {
|
|
1058
|
+
// an input MAP port (dynamic string keys, declared value elemType) lowers to a native map[string]ElemT.
|
|
1059
|
+
const et = schema.elemType;
|
|
1060
|
+
if (et !== undefined && plan !== undefined)
|
|
1061
|
+
return `map[string]${renderTypeRef(deriveTypeRef(et, plan))}`;
|
|
1062
|
+
return `${PKG}.Value`;
|
|
1063
|
+
}
|
|
965
1064
|
default:
|
|
966
1065
|
return `${PKG}.Value`;
|
|
967
1066
|
}
|
|
@@ -970,10 +1069,12 @@ function inputPortGoType(schema, plan) {
|
|
|
970
1069
|
function inputScalarKind(schema) {
|
|
971
1070
|
switch (schema?.type) {
|
|
972
1071
|
case "string":
|
|
1072
|
+
case "literal": // a `"literal"` union is a constrained string (see inputPortGoType).
|
|
973
1073
|
return "string";
|
|
974
1074
|
case "int":
|
|
975
1075
|
return "int64";
|
|
976
1076
|
case "float":
|
|
1077
|
+
case "number": // a `"number"` port is the FLOAT channel (run_behavior: number → float / float64).
|
|
977
1078
|
return "float64";
|
|
978
1079
|
case "bool":
|
|
979
1080
|
return "bool";
|
|
@@ -1049,6 +1150,14 @@ function emitInDecoder(comp, plan) {
|
|
|
1049
1150
|
lines.push(`\t}`);
|
|
1050
1151
|
continue;
|
|
1051
1152
|
}
|
|
1153
|
+
if (schema?.type === "map" && et !== undefined) {
|
|
1154
|
+
// #108-map: decode the boxed *Obj into the native map[string]V (test glue — the input map port
|
|
1155
|
+
// carries a declared elemType). materializeExpr covers the map de-box (Obj → map[string]V).
|
|
1156
|
+
const mapRef = { kind: "map", value: deriveTypeRef(et, plan) };
|
|
1157
|
+
lines.push(`\t\tin.${field} = ${goTypedInternals.materializeExpr("v", mapRef, plan)}`);
|
|
1158
|
+
lines.push(`\t}`);
|
|
1159
|
+
continue;
|
|
1160
|
+
}
|
|
1052
1161
|
if (scalar === undefined) {
|
|
1053
1162
|
lines.push(`\t\tin.${field} = v`);
|
|
1054
1163
|
}
|
|
@@ -1120,8 +1229,15 @@ function emitNativeScalar(node, want, resolveRef) {
|
|
|
1120
1229
|
* plane — a boxed escape would re-introduce the bc-runtime coupling this module removes). Returns the
|
|
1121
1230
|
* struct field initializer (`Field: <expr>`). `resolveRef` resolves a ref head for the scalar path.
|
|
1122
1231
|
*/
|
|
1123
|
-
function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan, typedNodes) {
|
|
1232
|
+
function emitPortInit(pn, expr, fieldGoType, resolveRef, inputPorts, plan, typedNodes, asBinding, elemBaseExpr) {
|
|
1124
1233
|
const fieldName = goPortFieldName(pn);
|
|
1234
|
+
// #108-map: a port that is a ref to a `$as` element MAP/NAMED field (or an input map port) → the typed
|
|
1235
|
+
// composite value directly off the element/input (native map[string]V / struct — ZERO boxed Value).
|
|
1236
|
+
if (plan !== undefined) {
|
|
1237
|
+
const compExpr = emitCompositePortValue(expr, inputPorts ?? {}, asBinding, plan, elemBaseExpr);
|
|
1238
|
+
if (compExpr !== null)
|
|
1239
|
+
return `${fieldName}: ${compExpr}`;
|
|
1240
|
+
}
|
|
1125
1241
|
// #110: a componentRef port bound to a runtime array input port (with elemType) → the native []ElemT,
|
|
1126
1242
|
// read straight from the concrete input struct (`in.<Field>`) — ZERO boxed Value on the read hot path.
|
|
1127
1243
|
// The over-elem/element-source case (map…over) already resolves via mapOverElemInfo; this is the plain
|
|
@@ -1195,10 +1311,35 @@ function emitParallelStageArm(comp, stage, atPos, concurrency, metas, typedNodes
|
|
|
1195
1311
|
const ids = stage.map((i) => comp.body[i].id);
|
|
1196
1312
|
lines.push(`\t// ── bc#87 real-concurrency stage {${ids.map((x) => JSON.stringify(x)).join(", ")}} — static parallel`);
|
|
1197
1313
|
lines.push(`\t// orchestration (goroutine per op, bound=${concurrency}); preflight+commit in ascending index order.`);
|
|
1314
|
+
// #125/#108: a stage member may be a cond node — a pure Expression (NO handler/dispatch). The
|
|
1315
|
+
// parallel orchestration (goroutine/WaitGroup/semaphore) governs only the componentRef fan-out
|
|
1316
|
+
// members; a cond is settled in ascending preflight order — BEFORE any dispatch — via the SAME
|
|
1317
|
+
// emitCondArm the sequential path uses (no forked lowering). This covers BOTH cond kinds that the
|
|
1318
|
+
// sequential path covers, and emitCondArm routes them internally:
|
|
1319
|
+
// - a when(...) control-gate cond (#136, isControlGate, no outType): commits produced_<gate>
|
|
1320
|
+
// ({ok}/null skip marker), whose gated children read it in a later stage;
|
|
1321
|
+
// - a Φ-merge VALUE cond (#108, has outType, then/else are data branches): materializes its typed
|
|
1322
|
+
// result cell (short-circuit taken branch) — the sibling Φ-join (e.g. two when-gated connection
|
|
1323
|
+
// relations each folding to `ref | emptyConn`). Both are mutually independent (§1), so emitting
|
|
1324
|
+
// them ascending at the head of the stage block is byte-equal to run_behavior (each cond's `if`
|
|
1325
|
+
// evaluated in preflight). A cond never shares a stage with a node that depends on it (an intra-
|
|
1326
|
+
// stage parent/child dep is rejected by concurrencyPlan).
|
|
1327
|
+
const condMembers = stage.filter((i) => "cond" in comp.body[i]);
|
|
1328
|
+
const refMembers = stage.filter((i) => !("cond" in comp.body[i]));
|
|
1329
|
+
for (const i of condMembers) {
|
|
1330
|
+
// emit the cond EXACTLY as #108/#136 does sequentially (reused, not forked) — position in `order`
|
|
1331
|
+
// is atPos + slot; emitCondArm dispatches control-gate vs value-cond internally.
|
|
1332
|
+
lines.push(emitCondArm(comp, comp.body[i], atPos + stage.indexOf(i), typedNodes, plan, priorNodeAt, zeroOut));
|
|
1333
|
+
}
|
|
1334
|
+
// A cond-ONLY stage carries no handler fan-out — the conds above ARE the whole stage (each committed
|
|
1335
|
+
// its produced flag / typed cell in ascending order). Skip the parallel orchestration block entirely
|
|
1336
|
+
// (no goroutine / WaitGroup / semaphore to emit — an empty one would be dead scaffolding).
|
|
1337
|
+
if (refMembers.length === 0)
|
|
1338
|
+
return lines.join("\n");
|
|
1198
1339
|
lines.push(`\t{`);
|
|
1199
1340
|
// per-member outcome + resolved-flag + ports locals, declared at STAGE scope (assigned in the
|
|
1200
1341
|
// ascending preflight, read at dispatch/commit — a goroutine closes over the ports local).
|
|
1201
|
-
for (const i of
|
|
1342
|
+
for (const i of refMembers) {
|
|
1202
1343
|
const node = comp.body[i];
|
|
1203
1344
|
const s = sanitize(node.id);
|
|
1204
1345
|
const structName = portsStructName(comp.name, comp.body[i].id);
|
|
@@ -1219,17 +1360,26 @@ function emitParallelStageArm(comp, stage, atPos, concurrency, metas, typedNodes
|
|
|
1219
1360
|
// per member (BEFORE dispatch). For a bindField relation child the bound key is read from the SETTLED
|
|
1220
1361
|
// parent struct field (typed access — no serialize); a nil bound => the member is UNPRODUCED/skipped
|
|
1221
1362
|
// (run_${s} stays false), exactly run_behavior's preflightOp bindField skip, before any dispatch.
|
|
1222
|
-
for (const i of
|
|
1363
|
+
for (const i of refMembers) {
|
|
1223
1364
|
const node = comp.body[i];
|
|
1224
1365
|
const s = sanitize(node.id);
|
|
1225
1366
|
const structName = portsStructName(comp.name, node.id);
|
|
1226
1367
|
let ind = "\t\t";
|
|
1227
1368
|
const closers = [];
|
|
1369
|
+
// #125: a stage member gated by a PRIOR-stage control gate (`parent=gate, bindField:"ok"`). Its
|
|
1370
|
+
// bindField is the gate's skip sentinel, NOT a relation data key — the gate is typeless (no struct
|
|
1371
|
+
// field to read). Mirror the sequential arm: when the gate is produced we are past the skip, so the
|
|
1372
|
+
// bound is the non-nil "ok" sentinel (the child's ports read the REAL data parent, not the gate).
|
|
1373
|
+
const parentIsGate = node.parent !== undefined && isControlGate(comp.body.find((b) => b.id === node.parent));
|
|
1228
1374
|
if (node.parent !== undefined && priorNodeAt(node.parent, atPos)) {
|
|
1229
1375
|
lines.push(`${ind}if produced_${sanitize(node.parent)} {`);
|
|
1230
1376
|
closers.unshift(`${ind}}`);
|
|
1231
1377
|
ind += "\t";
|
|
1232
|
-
if (node.bindField !== undefined) {
|
|
1378
|
+
if (node.bindField !== undefined && parentIsGate) {
|
|
1379
|
+
lines.push(`${ind}gateOK_${s} := "ok"`);
|
|
1380
|
+
lines.push(`${ind}bound_${s} = &gateOK_${s}`);
|
|
1381
|
+
}
|
|
1382
|
+
else if (node.bindField !== undefined) {
|
|
1233
1383
|
const parentRef = typedNodes.get(node.parent);
|
|
1234
1384
|
const { expr: bfExpr, ref: bfRef } = goTypedInternals.typedFieldAccess(typedLocal(node.parent), parentRef, [node.bindField], plan);
|
|
1235
1385
|
if (bfRef.kind === "opt") {
|
|
@@ -1257,10 +1407,10 @@ function emitParallelStageArm(comp, stage, atPos, concurrency, metas, typedNodes
|
|
|
1257
1407
|
lines.push(c);
|
|
1258
1408
|
}
|
|
1259
1409
|
// 2) DISPATCH (bounded): one goroutine per runnable member, bound by a semaphore of the static size.
|
|
1260
|
-
const bound = Math.min(concurrency,
|
|
1410
|
+
const bound = Math.min(concurrency, refMembers.length);
|
|
1261
1411
|
lines.push(`\t\tvar wg sync.WaitGroup`);
|
|
1262
1412
|
lines.push(`\t\tsem := make(chan struct{}, ${bound})`);
|
|
1263
|
-
for (const i of
|
|
1413
|
+
for (const i of refMembers) {
|
|
1264
1414
|
const node = comp.body[i];
|
|
1265
1415
|
const s = sanitize(node.id);
|
|
1266
1416
|
lines.push(`\t\tif run_${s} {`);
|
|
@@ -1276,7 +1426,7 @@ function emitParallelStageArm(comp, stage, atPos, concurrency, metas, typedNodes
|
|
|
1276
1426
|
}
|
|
1277
1427
|
lines.push(`\t\twg.Wait()`);
|
|
1278
1428
|
// 3) COMMIT (ascending index): interpret + materialize deterministically — lowest-index failure wins.
|
|
1279
|
-
for (const i of
|
|
1429
|
+
for (const i of refMembers) {
|
|
1280
1430
|
const node = comp.body[i];
|
|
1281
1431
|
const meta = metas[i];
|
|
1282
1432
|
const s = sanitize(node.id);
|
|
@@ -1327,7 +1477,7 @@ function emitNativeRawRunner(comp, plan, flags) {
|
|
|
1327
1477
|
// carries no typedNodes entry. Its skip is expressed purely via produced_<gate> (children gate on it).
|
|
1328
1478
|
for (const n of comp.body)
|
|
1329
1479
|
if (!isControlGate(n))
|
|
1330
|
-
typedNodes.set(n.id, deriveTypeRef(n.outType, plan));
|
|
1480
|
+
typedNodes.set(n.id, "map" in n ? mapNodeArrRef(n, plan) : deriveTypeRef(n.outType, plan));
|
|
1331
1481
|
const idToPos = new Map();
|
|
1332
1482
|
order.forEach((opIdx, k) => idToPos.set(comp.body[opIdx].id, k));
|
|
1333
1483
|
const priorNodeAt = (head, atPos) => {
|
|
@@ -1632,7 +1782,8 @@ function emitMapArm(comp, node, atPos, typedNodes, plan, priorNodeAt, zeroOut, f
|
|
|
1632
1782
|
const asBinding = { name: asName, ref: overElemRef, plan };
|
|
1633
1783
|
for (const pn of portNames) {
|
|
1634
1784
|
const fieldGoType = portFieldGoType(m.ports[pn], comp.inputPorts, `map port '${pn}' of node '${node.id}'`, asBinding, plan);
|
|
1635
|
-
|
|
1785
|
+
// #108-map: pass the element binding + base expr so a `$as` MAP/NAMED field port reads the typed composite.
|
|
1786
|
+
inits.push(emitPortInit(pn, m.ports[pn], fieldGoType, resolveRef, comp.inputPorts, plan, undefined, asBinding, elemLocal(s)));
|
|
1636
1787
|
}
|
|
1637
1788
|
out.push(`${il}ep_${s} := ${structName}{${inits.join(", ")}}`);
|
|
1638
1789
|
return out;
|
|
@@ -2071,6 +2222,8 @@ function goZero(ref) {
|
|
|
2071
2222
|
return "nil";
|
|
2072
2223
|
case "opt":
|
|
2073
2224
|
return "nil";
|
|
2225
|
+
case "map":
|
|
2226
|
+
return "nil";
|
|
2074
2227
|
}
|
|
2075
2228
|
}
|
|
2076
2229
|
// bc#90 / runtime-free: the nv* helper set (nvVE/nvBindVE/nvFieldVE/nvCatVE/nvArrVE) is REMOVED —
|
|
@@ -2123,6 +2276,11 @@ function makeGoExprBackend(zeroOut, resolveHead, plan) {
|
|
|
2123
2276
|
notOp: (a) => `(!${a})`,
|
|
2124
2277
|
structLit: (name, inits) => `${name}{${inits.map((i) => `${goFieldName(i.field)}: ${i.expr}`).join(", ")}}`,
|
|
2125
2278
|
arrLit: (elemTy, items) => `[]${elemTy}{${items.join(", ")}}`,
|
|
2279
|
+
// an opt (`*T`) NONE literal is `nil` (the inner type is not needed for the untyped nil in Go).
|
|
2280
|
+
optNone: (_innerTy) => "nil",
|
|
2281
|
+
// opt (`*T`) null-presence test: present = `(expr != nil)`, absent = `(expr == nil)`.
|
|
2282
|
+
optIsSome: (expr) => `(${expr} != nil)`,
|
|
2283
|
+
optIsNone: (expr) => `(${expr} == nil)`,
|
|
2126
2284
|
ternary: (cond, t, e, ty) => `func() ${ty} { if ${cond} { return ${t} }; return ${e} }()`,
|
|
2127
2285
|
shortCircuitBool: (op, temp, left, rStmts, rExpr) => {
|
|
2128
2286
|
// and: temp=false; if left { <rStmts>; temp=rExpr }. or: temp=true; if !left { <rStmts>; temp=rExpr }.
|
|
@@ -2327,7 +2485,7 @@ function emit(ctx) {
|
|
|
2327
2485
|
// build the full typed-node map FIRST so a map's over-element resolution can see every node.
|
|
2328
2486
|
for (const n of c.body)
|
|
2329
2487
|
if (!isControlGate(n))
|
|
2330
|
-
typedNodes.set(n.id, deriveTypeRef(n.outType, plan)); // #125: control-gate は
|
|
2488
|
+
typedNodes.set(n.id, "map" in n ? mapNodeArrRef(n, plan) : deriveTypeRef(n.outType, plan)); // #125: control-gate typeless; map は produced-array ref に正規化
|
|
2331
2489
|
for (const n of c.body) {
|
|
2332
2490
|
if ("fanout" in n) {
|
|
2333
2491
|
// v3: a fanout node emits a per-id element ports struct + a batch struct (like a batched map).
|
|
@@ -2470,7 +2628,7 @@ ${native.map((c) => `\t${handlerIfaceName(c.name)}`).join("\n")}
|
|
|
2470
2628
|
const typedNodes = new Map();
|
|
2471
2629
|
for (const n of c.body)
|
|
2472
2630
|
if (!isControlGate(n))
|
|
2473
|
-
typedNodes.set(n.id, deriveTypeRef(n.outType, plan)); // #125: control-gate は
|
|
2631
|
+
typedNodes.set(n.id, "map" in n ? mapNodeArrRef(n, plan) : deriveTypeRef(n.outType, plan)); // #125: control-gate typeless; map は produced-array ref に正規化
|
|
2474
2632
|
for (const n of c.body) {
|
|
2475
2633
|
if ("cond" in n)
|
|
2476
2634
|
continue; // #108: cond has no handler method (pure Expression) — no scripted impl.
|